Spaces:
Configuration error
Configuration error
Update app.py
Browse files
app.py
CHANGED
|
@@ -51,24 +51,24 @@ def predict(img):
|
|
| 51 |
print(f"POSE_RESULTS: {pose_results}")
|
| 52 |
|
| 53 |
# define colors for each body part
|
| 54 |
-
|
| 55 |
-
"nose":
|
| 56 |
-
"left_eye":
|
| 57 |
-
"right_eye":
|
| 58 |
-
"left_ear":
|
| 59 |
-
"right_ear":
|
| 60 |
-
"left_shoulder":
|
| 61 |
-
"right_shoulder":
|
| 62 |
-
"left_elbow":
|
| 63 |
-
"right_elbow":
|
| 64 |
-
"left_wrist":
|
| 65 |
-
"right_wrist":
|
| 66 |
-
"left_hip":
|
| 67 |
-
"right_hip":
|
| 68 |
-
"left_knee":
|
| 69 |
-
"right_knee":
|
| 70 |
-
"left_ankle":
|
| 71 |
-
"right_ankle":
|
| 72 |
}
|
| 73 |
|
| 74 |
# create a black image of the same size as the original image
|
|
@@ -80,23 +80,23 @@ def predict(img):
|
|
| 80 |
keypoints = person['keypoints']
|
| 81 |
|
| 82 |
# draw lines between keypoints to form a skeleton
|
| 83 |
-
skeleton = [("right_eye", "left_eye", (255,
|
| 84 |
-
("left_shoulder", "left_ear", (255,
|
| 85 |
-
("left_elbow", "left_wrist",(0,
|
| 86 |
-
("right_shoulder", "right_hip", (255,
|
| 87 |
-
("right_hip", "right_knee",(
|
| 88 |
for start_part, end_part, color in skeleton:
|
| 89 |
-
start_idx = list(
|
| 90 |
-
end_idx = list(
|
| 91 |
if keypoints[start_idx][2] > 0.1 and keypoints[end_idx][2] > 0.1:
|
| 92 |
pt1 = (int(keypoints[start_idx][0]), int(keypoints[start_idx][1]))
|
| 93 |
pt2 = (int(keypoints[end_idx][0]), int(keypoints[end_idx][1]))
|
| 94 |
cv2.line(black_img, pt1, pt2, color, thickness=2, lineType=cv2.LINE_AA)
|
| 95 |
|
| 96 |
# draw circles at each keypoint
|
| 97 |
-
for i in range(keypoints.shape[0]):
|
| 98 |
-
|
| 99 |
-
|
| 100 |
|
| 101 |
|
| 102 |
|
|
|
|
| 51 |
print(f"POSE_RESULTS: {pose_results}")
|
| 52 |
|
| 53 |
# define colors for each body part
|
| 54 |
+
body_part = {
|
| 55 |
+
"nose": 0,
|
| 56 |
+
"left_eye": 1,
|
| 57 |
+
"right_eye": 2,
|
| 58 |
+
"left_ear": 3,
|
| 59 |
+
"right_ear": 4,
|
| 60 |
+
"left_shoulder": 5,
|
| 61 |
+
"right_shoulder": 6,
|
| 62 |
+
"left_elbow": 7,
|
| 63 |
+
"right_elbow": 8,
|
| 64 |
+
"left_wrist": 9,
|
| 65 |
+
"right_wrist": 10,
|
| 66 |
+
"left_hip": 11,
|
| 67 |
+
"right_hip": 12,
|
| 68 |
+
"left_knee": 13,
|
| 69 |
+
"right_knee": 14,
|
| 70 |
+
"left_ankle": 15,
|
| 71 |
+
"right_ankle": 16
|
| 72 |
}
|
| 73 |
|
| 74 |
# create a black image of the same size as the original image
|
|
|
|
| 80 |
keypoints = person['keypoints']
|
| 81 |
|
| 82 |
# draw lines between keypoints to form a skeleton
|
| 83 |
+
skeleton = [("right_eye", "left_eye", (255,128,0)),("nose", "left_eye", (255,128,0)), ("left_eye", "left_ear", (255,128,0)), ("nose", "right_eye", (255,128,0)), ("right_eye", "right_ear", (255,128,0)),
|
| 84 |
+
("left_shoulder", "left_ear", (255,128,0)),("right_shoulder", "right_ear", (255,128,0)), ("left_shoulder", "right_shoulder", (255,128,0)), ("left_shoulder", "left_elbow", (0, 255, 0)), ("right_shoulder", "right_elbow",(51,153,255)),
|
| 85 |
+
("left_elbow", "left_wrist",(0, 255, 0)), ("right_elbow", "right_wrist",(51,153,255)), ("left_shoulder", "left_hip",(255,128,0)),
|
| 86 |
+
("right_shoulder", "right_hip", (255,128,0)), ("left_hip", "right_hip", (255,128,0)), ("left_hip", "left_knee",(0, 255, 0)),
|
| 87 |
+
("right_hip", "right_knee",(51,153,255)), ("left_knee", "left_ankle",(0, 255, 0)), ("right_knee", "right_ankle",(51,153,255))]
|
| 88 |
for start_part, end_part, color in skeleton:
|
| 89 |
+
start_idx = list(body_part.keys()).index(start_part)
|
| 90 |
+
end_idx = list(body_part.keys()).index(end_part)
|
| 91 |
if keypoints[start_idx][2] > 0.1 and keypoints[end_idx][2] > 0.1:
|
| 92 |
pt1 = (int(keypoints[start_idx][0]), int(keypoints[start_idx][1]))
|
| 93 |
pt2 = (int(keypoints[end_idx][0]), int(keypoints[end_idx][1]))
|
| 94 |
cv2.line(black_img, pt1, pt2, color, thickness=2, lineType=cv2.LINE_AA)
|
| 95 |
|
| 96 |
# draw circles at each keypoint
|
| 97 |
+
#for i in range(keypoints.shape[0]):
|
| 98 |
+
# pt = (int(keypoints[i][0]), int(keypoints[i][1]))
|
| 99 |
+
# cv2.circle(black_img, pt, 3, (255, 255, 255), thickness=-1, lineType=cv2.LINE_AA)
|
| 100 |
|
| 101 |
|
| 102 |
|