このリポジトリには、Panoptic Studio (Panoptic) データをダウンロード、処理、視覚化するためのツールボックスが含まれています。
2024年5月14日: ソウル大学にミラーサーバーを構築しました。元の CMU サーバーを引き続き使用できます。CMU サーバーが応答しない場合は、 getData.sh
およびgetData_kinoptic
スクリプトに--snu-endpoint
オプションを追加するだけで SNU エンドポイントを使用できます。
簡単な例をセットアップするには、次の手順に従います。
git clone https://github.com/CMU-Perceptual-Computing-Lab/panoptic-toolbox cd panoptic-toolbox
この例では「171204_pose1_sample」という名前のデータセットをダウンロードするには、次のスクリプトを実行します。
./scripts/getData.sh 171204_pose1_sample
この bash スクリプトには、curl または wget が必要です。
このスクリプトはフォルダー「./171204_pose1_sample」を作成し、次のファイルをダウンロードします。
171204_pose1_sample/hdVideos/hd_00_XX.mp4 #同期された HD ビデオ ファイル (31 ビュー)
171204_pose1_sample/vgaVideos/KINECTNODE%d/vga_XX_XX.mp4 #同期された VGA ビデオ ファイル (480 ビュー)
171204_pose1_sample/calibration_171204_pose1_sample.json #キャリブレーション ファイル
171204_pose1_sample/hdPose3d_stage1_coco19.tar #3D ボディ キーポイント データ (coco19 キーポイント定義)
171204_pose1_sample/hdFace3d.tar #3D顔キーポイントデータ
171204_pose1_sample/hdHand3d.tar #3Dハンドキーポイントデータ
このサンプル例には現在 VGA ビデオが含まれていないことに注意してください。
このスクリプトを通じて他のシーケンスをダウンロードすることもできます。 「171204_pose1panopticHD」の代わりに、ターゲット シーケンスの名前を使用してください。たとえば、
./scripts/getData.sh 171204_pose1
171204_pose1 シーケンスのフルバージョンの場合:ダウンロードするビデオpanopticHDntの数を指定することもできます。
./scripts/getData.sh (sequenceName) (VGA_Video_Number) (HD_Video_Number)
たとえば、次のコマンドは 240 個の vga ビデオと 10 個のビデオをダウンロードします。
./scripts/getData.sh 171204_pose1_sample 240 10
均一に分散されたビューをダウンロードできるように、VGA カメラの順序を並べ替えていることに注意してください。
現在利用可能なシーケンスのリストは、次のリンクで確認できます。
公開シーケンス一覧(ver1.2)
すべて (ビデオを含む) をダウンロードするには時間がかかる場合がありますが、3D キーポイント ファイル (ボディ + 顔 + 入手可能な場合は手) のダウンロードは「比較的」早くなるはずです。
次のスクリプトを使用して、現在利用可能なシーケンス (バージョン 1.2) をダウンロードできます。
./scripts/getDB_panopticHD_ver1_2.sh
デフォルト設定では、ビデオはダウンロードされません。動画もダウンロードしたい場合は、スクリプト内の「vgaVideoNum」と「hdVideoNum」を他の数値に自由に変更してください。
各シーケンスのサンプルビデオとその他の情報は、当社の Web サイト「データセットの参照」でご覧いただけます。
各シーケンスの 3D ビューアを確認してください: Web ブラウザで 3D スケルトンを視覚化できるページ。例: http://domedb.perception.cs.cmu.edu/panopticHDpose1.html
この手順には ffmpeg が必要です。
./scripts/extractAll.sh 171204_pose1_sample
これにより、画像 (例: 171204_pose1_sample/hdImgs/00_00/00_00_00000000.jpg
) と、対応する 3D スケルトン データ (例: 171204_pose1_sample/hdPose3d_stage1_coco19/body3DScene_00000000.json
が抽出されます。
extractAll.sh
次の一連のコマンドを組み合わせた単純なスクリプトです (これらを再度実行する必要はありません)。
cd 171204_pose1_サンプル ../scripts/vgaImgsExtractor.sh # VGA ビデオからの PNG ファイル (25 fps)../scripts/hdImgsExtractor.sh # HD ビデオからの PNG ファイル (29.97 fps) tar -xf vgaPose3d_stage1.tar # VGA フレームレートでスケルトンを抽出tar -xf hdPose3d_stage1.tar # HDcd のスケルトンを抽出します。
このコードには numpy、matplotlib が必要です。
3D キーポイント (体、顔、手) の視覚化:
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
結果は次のようになります。
選択した HD ビューで 3D キーポイント (体、顔、手) を再投影します。
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
結果は次のようになります。
このコードには numpy、matplotlib が必要です。
3D キーポイント (体、顔、手) の視覚化:
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
結果は次のようになります。
選択した HD ビューで 3D キーポイント (体、顔、手) を再投影します。
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
結果は次のようになります。
このコードには pyopengl が必要です。
3D キーポイント (体、顔、手) の視覚化:
python glViewer.py
注: Matlab コードは古いため、3D キーポイント出力 (coco19 ボディ、顔、手) を処理できません。このコードは参考としてのみ参照してください。これについては後ほど更新します。
Matlab の例 (古い):
>>> cd matlab>>> デモ
Jooらの手法を用いて人の3D骨格を再構築します。 2018年。
各フレームの出力は json ファイルに書き込まれます。例えば、
{ "version": 0.7, "univTime" :53541.542, "fpsType" :"hd_29_97", "bodies" : [ { "id": 0, "joints19": [-19.4528, -146.612, 1.46159, 0.724274, -40.4564, -163.091, -0.521563, 0.575897, -14.9749, -91.0176, 4.24329, 0.361725, -19.2473, -146.679, -16.1136, 0.643555, -14.7958, -118.804, -20.6738, 0.619599, -22.611, -93.8793, -17.7834, 0.557953, -12.3267, -91.5465, -6.55368, 0.353241, -12.6556, -47.0963, -4.83599, 0.455566, -10.8069, -8.31645, -4.20936, 0.501312, -20.2358, -147.348, 19.1843, 0.628022, -13.1145, -120.269, 28.0371, 0.63559, -20.1037, -94.3607, 30.0809, 0.625916, -17.623, -90.4888, 15.0403, 0.327759, -17.3973, -46.9311, 15.9659, 0.419586, -13.1719, -7.60601, 13.4749, 0.519653, -38.7164, -166.851, -3.25917, 0.46228, -28.7043, -167.333, -7.15903, 0.523224, -39.0433, -166.677, 2.55916, 0.395965, -30.0718, -167.264, 8.18371, 0.510041] } ] }
ここで、各主題は以下の値を有する。
id : シーケンス内の一意のサブジェクト インデックス:。時間の経過とともに同じ ID を持つスケルトンは、時間的に関連付けられた移動スケルトン (個体) を表します。ただし、同じ人が複数の ID を持つジョイントを持つ場合があります 19 : [x1,y1,z1,c1,x2,y2,z2,c2,...] としてフォーマットされた 19 の 3D ジョイント位置。各 c はpanopticHDjoint 信頼スコアです。
3D スケルトンには次のキーポイントの順序があります。
0: Neck 1: Nose 2: BodyCenter (center of hips) 3: lShoulder 4: lElbow 5: lWrist, 6: lHip 7: lKnee 8: lAnkle 9: rShoulder 10: rElbow 11: rWrist 12: rHip 13: rKnee 14: rAnkle 15: lEye 16: lEar 17: rEye 18: rEar
この方法は OpenPose の出力順序に基づいていますが、これは OpenPose の出力順序とは異なることに注意してください。
以前は古い形式 (古いドキュメントで説明されているように mpi15 という名前) を使用していましたが、現在はこの形式を使用していないことに注意してください。
Kinoptic Studio は、10 個の Kinect2 センサーで構成される Panoptic Studio のサブシステムです。参照してください: README_kinoptic
次のスクリプトを使用して、3D PointCloud DB ver.1 に含まれるすべてのシーケンスをダウンロードできます。
./scripts/getDB_ptCloud_ver1.sh
値切りシーケンスの加工データを公開しました。ソーシャル信号処理リポジトリを参照してください。
Panoptic Studio データセットは、非営利および研究目的にのみ無料で利用できます。
データセットを使用すると、次の論文の少なくとも 1 つを引用することに同意したことになります。
@inproceedings{Joo_2015_ICCV, author = {Joo, Hanbyul and Liu, Hao and Tan, Lei and Gui, Lin and Nabbe, Bart and Matthews, Iain and Kanade, Takeo and Nobuhara, Shohei and Sheikh, Yaser}, title = {Panoptic Studio: A Massively Multiview System for Social Motion Capture}, booktitle = {ICCV}, year = {2015} } @inproceedings{Joo_2017_TPAMI, title={Panoptic Studio: A Massively Multiview System for Social Interaction Capture}, author={Joo, Hanbyul and Simon, Tomas and Li, Xulong and Liu, Hao and Tan, Lei and Gui, Lin and Banerjee, Sean and Godisart, Timothy Scott and Nabbe, Bart and Matthews, Iain and Kanade, Takeo and Nobuhara, Shohei and Sheikh, Yaser}, journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, year={2017} } @inproceedings{Simon_2017_CVPR, title={Hand Keypoint Detection in Single Images using Multiview Bootstrapping}, author={Simon, Tomas and Joo, Hanbyul and Sheikh, Yaser}, journal={CVPR}, year={2017} } @inproceedings{joo2019ssp, title={Towards Social Artificial Intelligence: Nonverbal Social Signal Prediction in A Triadic Interaction}, author={Joo, Hanbyul and Simon, Tomas and Cikara, Mina and Sheikh, Yaser}, booktitle={CVPR}, year={2019} }