Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

extracted common functions to pose_helper.py #2

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
extract function
use for loop
  • Loading branch information
waragai-katsunori committed Nov 10, 2021
commit b2c0ec2771008ddbf69af141fc9f6d220d0fa169
178 changes: 34 additions & 144 deletions demo_multipose.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,150 +160,28 @@ def draw_debug(
# 0:鼻 1:左目 2:右目 3:左耳 4:右耳 5:左肩 6:右肩 7:左肘 8:右肘 # 9:左手首
# 10:右手首 11:左股関節 12:右股関節 13:左ひざ 14:右ひざ 15:左足首 16:右足首
for keypoints, scores in zip(keypoints_list, scores_list):
# Line:鼻 → 左目
index01, index02 = 0, 1
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:鼻 → 右目
index01, index02 = 0, 2
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左目 → 左耳
index01, index02 = 1, 3
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右目 → 右耳
index01, index02 = 2, 4
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:鼻 → 左肩
index01, index02 = 0, 5
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:鼻 → 右肩
index01, index02 = 0, 6
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左肩 → 右肩
index01, index02 = 5, 6
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左肩 → 左肘
index01, index02 = 5, 7
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左肘 → 左手首
index01, index02 = 7, 9
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右肩 → 右肘
index01, index02 = 6, 8
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右肘 → 右手首
index01, index02 = 8, 10
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左股関節 → 右股関節
index01, index02 = 11, 12
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左肩 → 左股関節
index01, index02 = 5, 11
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左股関節 → 左ひざ
index01, index02 = 11, 13
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左ひざ → 左足首
index01, index02 = 13, 15
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右肩 → 右股関節
index01, index02 = 6, 12
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右股関節 → 右ひざ
index01, index02 = 12, 14
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右ひざ → 右足首
index01, index02 = 14, 16
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
for index01, index02 in ((0, 1), # Line:鼻 → 左目
(0, 2), # Line:鼻 → 右目
(1, 3), # Line:左目 → 左耳
(2, 4), # Line:右目 → 右耳
(0, 5), # Line:鼻 → 左肩
(0, 6), # Line:鼻 → 右肩
(5, 6), # Line:左肩 → 右肩
(5, 7), # Line:左肩 → 左肘
(7, 9), # Line:左肘 → 左手首
(6, 8), # Line:右肩 → 右肘
(8, 10), # Line:右肘 → 右手首
(11, 12), # Line:左股関節 → 右股関節
(5, 11), # Line:左肩 → 左股関節
(11, 13), # Line:左股関節 → 左ひざ
(13, 15), # Line:左ひざ → 左足首
(6, 12), # Line:右肩 → 右股関節
(12, 14), # Line:右股関節 → 右ひざ
(14, 16), # Line:右ひざ → 右足首
):
if is_good_keypoints(index01, index02, keypoint_score_th, scores):
draw_keypoints(debug_image, index01, index02, keypoints)


# Circle:各点
for keypoint, score in zip(keypoints, scores):
Expand Down Expand Up @@ -332,5 +210,17 @@ def draw_debug(
return debug_image


def is_good_keypoints(index01, index02, keypoint_score_th, scores):
return scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th


def draw_keypoints(debug_image, index01, index02, keypoints):
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)


if __name__ == '__main__':
main()
177 changes: 33 additions & 144 deletions demo_multipose_onnx.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,150 +161,27 @@ def draw_debug(
# 0:鼻 1:左目 2:右目 3:左耳 4:右耳 5:左肩 6:右肩 7:左肘 8:右肘 # 9:左手首
# 10:右手首 11:左股関節 12:右股関節 13:左ひざ 14:右ひざ 15:左足首 16:右足首
for keypoints, scores in zip(keypoints_list, scores_list):
# Line:鼻 → 左目
index01, index02 = 0, 1
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:鼻 → 右目
index01, index02 = 0, 2
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左目 → 左耳
index01, index02 = 1, 3
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右目 → 右耳
index01, index02 = 2, 4
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:鼻 → 左肩
index01, index02 = 0, 5
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:鼻 → 右肩
index01, index02 = 0, 6
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左肩 → 右肩
index01, index02 = 5, 6
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左肩 → 左肘
index01, index02 = 5, 7
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左肘 → 左手首
index01, index02 = 7, 9
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右肩 → 右肘
index01, index02 = 6, 8
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右肘 → 右手首
index01, index02 = 8, 10
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左股関節 → 右股関節
index01, index02 = 11, 12
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左肩 → 左股関節
index01, index02 = 5, 11
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左股関節 → 左ひざ
index01, index02 = 11, 13
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:左ひざ → 左足首
index01, index02 = 13, 15
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右肩 → 右股関節
index01, index02 = 6, 12
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右股関節 → 右ひざ
index01, index02 = 12, 14
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
# Line:右ひざ → 右足首
index01, index02 = 14, 16
if scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th:
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)
for index01, index02 in ((0, 1), # Line:鼻 → 左目
(0, 2), # Line:鼻 → 右目
(1, 3), # Line:左目 → 左耳
(2, 4), # Line:右目 → 右耳
(0, 5), # Line:鼻 → 左肩
(0, 6), # Line:鼻 → 右肩
(5, 6), # Line:左肩 → 右肩
(5, 7), # Line:左肩 → 左肘
(7, 9), # Line:左肘 → 左手首
(6, 8), # Line:右肩 → 右肘
(8, 10), # Line:右肘 → 右手首
(11, 12), # Line:左股関節 → 右股関節
(5, 11), # Line:左肩 → 左股関節
(11, 13), # Line:左股関節 → 左ひざ
(13, 15), # Line:左ひざ → 左足首
(6, 12), # Line:右肩 → 右股関節
(12, 14), # Line:右股関節 → 右ひざ
(14, 16), # Line:右ひざ → 右足首
):
if is_good_keypoints(index01, index02, keypoint_score_th, scores):
draw_keypoints(debug_image, index01, index02, keypoints)

# Circle:各点
for keypoint, score in zip(keypoints, scores):
Expand Down Expand Up @@ -333,5 +210,17 @@ def draw_debug(
return debug_image


def is_good_keypoints(index01, index02, keypoint_score_th, scores):
return scores[index01] > keypoint_score_th and scores[
index02] > keypoint_score_th


def draw_keypoints(debug_image, index01, index02, keypoints):
point01 = keypoints[index01]
point02 = keypoints[index02]
cv.line(debug_image, point01, point02, (255, 255, 255), 4)
cv.line(debug_image, point01, point02, (0, 0, 0), 2)


if __name__ == '__main__':
main()
Loading