Skip to content

Commit 7a2f5fc

Browse files
committed
Refactoring everything to the new saved model.
1 parent 5a45406 commit 7a2f5fc

16 files changed

+311
-53
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
images/*
22
output/*
3+
output_old/*
34
.idea/*
45
.idea
56
_models/*
7+
_tf_models/*
8+
_tfjs_models/*
69
_posenet_weights/*
710
env.sh
811

Dockerfile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
FROM tensorflow/tensorflow:nightly-py3-jupyter
2-
# This is the CPU version!
1+
# default image version, override using --build-arg IMAGE_VERSION=otherversion
2+
ARG IMAGE_VERSION=nightly-py3-jupyter
3+
FROM tensorflow/tensorflow:$IMAGE_VERSION
4+
# The default version is the CPU version!
35
# see: https://www.tensorflow.org/install/docker
46
# see: https://hub.docker.com/r/tensorflow/tensorflow/
57

Dockerfile-gpu

Lines changed: 0 additions & 27 deletions
This file was deleted.

benchmark.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
def main():
1717

1818
with tf.compat.v1.Session() as sess:
19-
model_cfg, model_outputs = posenet.load_model(args.model, sess)
20-
output_stride = model_cfg['output_stride']
19+
output_stride, model_outputs = posenet.load_model(args.model, sess)
2120
num_images = args.num_images
2221

2322
filenames = [

docker_img_build.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ fi
88

99
if [ "$1" = "GPU" ]; then
1010
image="posenet-python-gpu"
11-
dockerfile="Dockerfile-gpu"
11+
version="--build-arg IMAGE_VERSION=2.0.0-gpu-py3-jupyter"
1212
else
1313
image="posenet-python-cpu"
14-
dockerfile="Dockerfile"
14+
version=""
1515
fi
1616

1717
docker rmi -f "$image"
1818

19-
docker build -t "$image" -f "$dockerfile" .
19+
docker build -t "$image" $version .

docker_run.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ echo "device is: $POSENET_PYTHON_DEVICE"
2020

2121
if [ "$POSENET_PYTHON_DEVICE" = "GPU" ]; then
2222
image="posenet-python-gpu"
23+
gpu_opts="--gpus all"
2324
else
2425
image="posenet-python-cpu"
26+
gpu_opts=""
2527
fi
2628

27-
docker run --gpus all -it --rm -v $WORK:/work "$image" python "$@"
29+
docker run $gpu_opts -it --rm -v $WORK:/work "$image" python "$@"

image_demo.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import os
66

77
import posenet
8+
import posenet.converter.tfjs2tf as tfjs2tf
9+
import posenet.converter.tfjsdownload as tfjsdownload
810

911

1012
parser = argparse.ArgumentParser()
@@ -18,9 +20,12 @@
1820

1921
def main():
2022

23+
model = 'posenet'
24+
neuralnet = 'mobilenet_v1_100' # mobilenet_v1_100 resnet50_v1
25+
model_variant = 'stride16'
26+
2127
with tf.compat.v1.Session() as sess:
22-
model_cfg, model_outputs = posenet.load_model(args.model, sess)
23-
output_stride = model_cfg['output_stride']
28+
output_stride, model_outputs = posenet.load_tf_model(sess, model, neuralnet, model_variant)
2429

2530
if args.output_dir:
2631
if not os.path.exists(args.output_dir):
@@ -34,10 +39,14 @@ def main():
3439
input_image, draw_image, output_scale = posenet.read_imgfile(
3540
f, scale_factor=args.scale_factor, output_stride=output_stride)
3641

42+
model_cfg = tfjsdownload.model_config(model, neuralnet, model_variant)
43+
input_tensor_name = model_cfg['input_tensors'][0]
44+
45+
# ORDER OF THE FEATURES IS DEPENDENT ON THE config.yaml file output_tensors list!!!
3746
heatmaps_result, offsets_result, displacement_fwd_result, displacement_bwd_result = sess.run(
38-
model_outputs,
39-
feed_dict={'image:0': input_image}
40-
)
47+
model_outputs,
48+
feed_dict={input_tensor_name: input_image}
49+
)
4150

4251
pose_scores, keypoint_scores, keypoint_coords = posenet.decode_multiple_poses(
4352
heatmaps_result.squeeze(axis=0),

posenet/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from posenet.constants import *
22
from posenet.decode_multi import decode_multiple_poses
33
from posenet.model import load_model
4+
from posenet.model import load_tf_model
45
from posenet.utils import *

posenet/converter/common.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
TFJS_OP_KEY = 'op'
2+
TFJS_DILATIONS_KEY = 'dilations'
3+
TFJS_CONV2D_KEY = 'Conv2D'
4+
5+
TF_NHWC = 'NHWC'
6+
TF_NCHW = 'NCHW'

posenet/converter/config.yaml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,74 @@
1+
models:
2+
tfjs:
3+
bodypix:
4+
resnet50_v1:
5+
base_url: 'https://storage.googleapis.com/tfjs-models/savedmodel/bodypix/resnet50/float'
6+
model_variant:
7+
stride16:
8+
filename: 'model-stride16.json'
9+
output_stride: 16
10+
data_format: 'NHWC'
11+
input_tensors:
12+
- 'sub_2:0'
13+
output_tensors:
14+
- 'float_heatmaps:0'
15+
- 'float_short_offsets:0'
16+
- 'resnet_v1_50/displacement_fwd_2/BiasAdd:0'
17+
- 'resnet_v1_50/displacement_bwd_2/BiasAdd:0'
18+
- 'float_part_heatmaps:0'
19+
- 'float_part_offsets:0'
20+
- 'float_long_offsets:0'
21+
- 'float_segments:0'
22+
mobilenet_v1_100:
23+
base_url: 'https://storage.googleapis.com/tfjs-models/savedmodel/bodypix/mobilenet/float/100'
24+
model_variant:
25+
stride16:
26+
filename: 'model-stride16.json'
27+
output_stride: 16
28+
data_format: 'NHWC'
29+
input_tensors:
30+
- 'sub_2:0'
31+
output_tensors:
32+
- 'float_heatmaps:0'
33+
- 'float_short_offsets:0'
34+
- 'MobilenetV1/displacement_fwd_2/BiasAdd:0'
35+
- 'MobilenetV1/displacement_bwd_2/BiasAdd:0'
36+
- 'float_part_heatmaps:0'
37+
- 'float_part_offsets:0'
38+
- 'float_long_offsets:0'
39+
- 'float_segments:0'
40+
posenet:
41+
resnet50_v1:
42+
base_url: 'https://storage.googleapis.com/tfjs-models/savedmodel/posenet/resnet50/float'
43+
model_variant:
44+
stride16:
45+
filename: 'model-stride16.json'
46+
output_stride: 16
47+
data_format: 'NHWC'
48+
input_tensors:
49+
- 'sub_2:0'
50+
output_tensors:
51+
- 'float_heatmaps:0'
52+
- 'float_short_offsets:0'
53+
- 'resnet_v1_50/displacement_fwd_2/BiasAdd:0'
54+
- 'resnet_v1_50/displacement_bwd_2/BiasAdd:0'
55+
mobilenet_v1_100:
56+
base_url: 'https://storage.googleapis.com/tfjs-models/savedmodel/posenet/mobilenet/float/100'
57+
model_variant:
58+
stride16:
59+
filename: 'model-stride16.json'
60+
output_stride: 16
61+
data_format: 'NHWC'
62+
input_tensors:
63+
- 'sub_2:0'
64+
output_tensors:
65+
- 'MobilenetV1/heatmap_2/BiasAdd:0'
66+
- 'MobilenetV1/offset_2/BiasAdd:0'
67+
- 'MobilenetV1/displacement_fwd_2/BiasAdd:0'
68+
- 'MobilenetV1/displacement_bwd_2/BiasAdd:0'
69+
70+
71+
172
chk: 3 # 3=mobilenet_v1_101
273
imageSize: 513
374
GOOGLE_CLOUD_STORAGE_DIR: 'https://storage.googleapis.com/tfjs-models/weights/posenet/'

0 commit comments

Comments
 (0)