🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
OpenPose

OpenPoseとは、深層学習を使って人の体や指などの位置(座標)や向きといったポーズを可視化する技術。関節点など人の体における特徴点が座標のどこにあるかを検出することができます。高性能プロセッサを使えば動画像内の複数の人物もリアルタイムで検出することが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1055閲覧

openposeのpythonで全身の比率を調べたい

Kaito0312

総合スコア7

OpenPose

OpenPoseとは、深層学習を使って人の体や指などの位置(座標)や向きといったポーズを可視化する技術。関節点など人の体における特徴点が座標のどこにあるかを検出することができます。高性能プロセッサを使えば動画像内の複数の人物もリアルタイムで検出することが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/12/18 05:01

編集2019/12/18 05:55

openposeで歩きたばこの検出をしようとしており、鼻から手首の距離を求めることで、それをしようとしているのですが、人が歩いておくから手前に来たり手前から奥に行ったり、また後ろ姿じゃ測定が難しい状況になってます。この問題を解決する方法はありますか?(全身の腕の比率を調べたい)

Python

1import numpy as np 2import json 3import glob 4import pandas as pd 5import math 6 7if __name__ == '__main__': 8 #jsons_list = sorted(glob.glob('./json_dancing/dancing_000000000000_keypoints.json')) #デバッグ用 9 jsons_list = sorted(glob.glob('./ファイル名/ファイル名_*_keypoints.json')) 10 11 #データを最終的に入れるべきリストを作成する 12 data_x_list=list() 13 data_y_list=list() 14 data_p_list=list() 15 16 for jsons in jsons_list: 17 with open(jsons) as f: 18 data = json.load(f) 19 for d in data['people']: 20 kpt = np.array(d['pose_keypoints_2d']).reshape((-1, 3)) 21 kpt=kpt.T 22 23 data_x=kpt[0,:].reshape(1,25).flatten() 24 data_y=kpt[1,:].reshape(1,25).flatten() 25 data_p=kpt[2,:].reshape(1,25).flatten() 26 #print(data_x) #デバッグ用 27 28 data_x_list.append(data_x) 29 data_y_list.append(data_y) 30 data_p_list.append(data_p) 31 #print(data_x_list) #デバッグ用 32 33 np.savetxt('data_x_list.csv', X=data_x_list, delimiter=",") 34 np.savetxt('data_y_list.csv', X=data_y_list, delimiter=",") 35 np.savetxt('data_p_list.csv', X=data_p_list, delimiter=",") 36 37 csvs_list = sorted(glob.glob('*.csv')) 38 for csvs in csvs_list: 39 dfc = pd.read_csv(csvs, header=None) 40 dfc.columns=['Nose','Neck','RShoulder','RElbow','RWrist','LShoulder','LElbow','LWrist','MidHip','RHip','RKnee','RAnkle','LHip','LKnee','LAnkle','REye','LEye','REar','LEar','LBigToe','LSmallToe','LHeel','RBigToe','RSmallToe','RHeel'] 41 dfc.to_csv(csvs,index=False) 42 43 44 #以下、手首と鼻のkeypoints間の距離を計算するプログラム 45 # 46 d_nose_list = list() #鼻のx,y座標データを格納するリスト 47 d_Lwrist_list = list() #左手首のx,y座標を格納するリスト 48 49 for k in range(len(data_x_list)): 50 print(k) 51 d_nose_list.append([data_x_list[k][0], data_y_list[k][0]]) 52 d_Lwrist_list.append([data_x_list[k][7], data_y_list[k][7]]) 53 54 #左手首と鼻の間のユークリッド距離を計算して、ファイルに保存する 55 dist = list() 56 for k in range(len(d_nose_list)): 57 dist_tmp = (d_nose_list[k][0] - d_Lwrist_list[k][0])**2 + (d_nose_list[k][1] - d_Lwrist_list[k][1])**2 58 dist.append(math.sqrt(dist_tmp)) 59 np.savetxt('data_distance.csv', X=dist, delimiter=",")

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

openposeで歩きたばこの検出をしようとしており、鼻から手首の距離を求めることで、それをしようとしているのですが、人が歩いておくから手前に来たり手前から奥に行ったり、また後ろ姿じゃ測定が難しい状況になってます。この問題を解決する方法はありますか?

OpenPose は2次元姿勢推定なので、この問題の解決は無理だと思います。
画像から3次元の姿勢を復元する3次元姿勢推定を行うモデルを使うといいと思います。

【CVPR'19 / ICCV'19】3D Human Pose Estimationの最新研究動向まとめ|Hiromi Nakagawa|note

投稿2019/12/18 06:00

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kaito0312

2020/01/17 01:09

ありがとうございました。頑張ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問