博客 | Github開源人體姿態識別項目OpenPose中文文檔

logo

OpenPose人體姿態識別項目是美國卡耐基梅隆大學(CMU)基於卷積神經網絡和監督學習並以caffe爲框架開發的開源庫。可以實現人體動作、面部表情、手指運動等姿態估計。適用於單人和多人,具有極好的魯棒性。是世界上首個基於深度學習的實時多人二維姿態估計應用,基於它的實例如雨後春筍般涌現。人體姿態估計技術在體育健身、動作採集、3D試衣、輿情監測等領域具有廣闊的應用前景,人們更加熟悉的應用就是抖音尬舞機。 OpenPose項目Github鏈接:https://github.com/CMU-Perceptual-Computing-Lab/openpose 爲了便於中國開發者學習CMU開源人體姿態識別項目,我將README文檔翻譯成了中文。 向卡耐基梅隆大學大學的開發者以及本項目其他貢獻者致敬。 英譯漢:張子豪(同濟大學開源軟件協會) 文章勘誤、補充,請看譯者知乎專欄:人工智能小技巧 In order to facilitate Chinese software developers to learn, use Openpose, make progress in human gesture recognition development and source code contributions, we translated README file into simplified Chinese. Salute to the developers in Carnegie Mellon university and the contributors to this project. Translattor: Tommy in Tongji Univerisity Opensource Software Association

人體姿態識別與估計的應用場景:抖音尬舞機、體育動作教學、3D健身教練、3D試衣、繪畫輔助、遊戲人物動作採集。

本項目更詳細的中文介紹:【AI識人】OpenPose:實時多人2D姿態估計 | 附視頻測試及源碼鏈接

本項目理論基礎來自Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ,是CVPR 2017的一篇論文,作者是來自CMU感知計算實驗室的曹哲,Tomas Simon,Shih-En Wei,Yaser Sheikh 。

一些人體姿態識別案例案例:

《芳華》文工團跳舞視頻片段:人體姿態識別

《芳華》文工團跳舞視頻片段:人體姿態識別

《葉問》武打視頻片段:人體姿態識別

《葉問》武打視頻片段:人體姿態識別

內容

  1. 特點
  2. 最近更新
  3. 效果
  4. 安裝、重裝、卸載
  5. 快速啓動
  6. 輸出
  7. 增加運算速度以及基準測試
  8. 向我們提供出錯信息和反饋
  9. 作者和項目貢獻者
  10. 引用
  11. 授權協議

特點

  • 功能:

·能夠對攝像機拍攝中出現的扭曲等內外參數進行簡易評估。

·通過多個單一角度的視頻進行三角測量。

·菲力爾品牌攝像機的視頻同步處理。

·與Flir攝像機和Point Grey攝像機兼容,提供了C++語言的代碼樣本,用戶可以自定義輸入。

·15、18或 25個身體/腳部的關鍵點識別,運算時間與檢測出的人數無關。

·221個手部關鍵點識別。目前,運算時間取決於檢測出的人數*。

·70個面部關鍵點的識別。目前,運算時間取決於檢測出的人數

·二維多人關鍵點實時識別:

·三維單關鍵點實時識別:

·校準工具:

·針對未來的加速優化和視覺流暢,增加了單人位置追蹤 。

  • 輸入: 圖片、視頻、網絡攝像頭的視頻流、Flir或Point Grey和IP攝像機。項目提供了C++語言的代碼樣本,用戶可以自定義輸入。
  • 輸出: 原有圖片+關鍵點展示(PNG、JPG、AVI等格式),關鍵點數據存儲文件((JSON, XML, YML等格式)。
  • 操作系統: Ubuntu (14, 16), Windows (8, 10), Mac OSX, Nvidia TX2.
  • 其它:

·項目提供: 命令行測試、C++封裝、C++ API接口。

·CUDA (Nvidia GPU), OpenCL (AMD GPU), and CPU 版本。

最近更新

  • Sep 2018: 單人位置追蹤測試 增加處理速度,觀看體驗更加流暢!
  • Jun 2018: 軀幹、腳部聯合檢測的模型發佈!速度加快40%,精確度增加5%!
  • Jun 2018: Python API接口發佈!
  • Jun 2018: OpenCL/AMD 顯卡版本 發佈!
  • Jun 2018: 校準工具 發佈!
  • Jun 2018: Mac OSX 版本(CPU) 發佈!
  • Mar 2018: CPU 版本!
  • Mar 2018: 三維關鍵點重建模型 (從多個攝像機角度識別)!

更多信息可訪問 全部更新文檔 以及 版本更新記錄.

效果

軀幹、腳部識別

軀幹、臉部、手部識別

身體、手指關鍵點識別

身體識別

安裝、重裝、卸載

Windows能用的版本: 點擊所有版本 下載最新的版本即可。

或者,你也可以點擊 安裝文檔 查看通過源代碼編譯安裝的安裝指南。

快速啓動

大部分用戶不需要調用OpenPose的C++和Python的開發接口,這些用戶只需要運行OpenPose Demo即可

  • OpenPose Demo: 爲了便於處理圖片、視頻或者網絡攝像頭的視頻流,並展示和後處理結果,你需要看doc/demo_overview.md. 例如,你可以直接通過以下命令在Ubuntu操作系統上處理一個視頻。
# Ubuntu./build/examples/openpose/openpose.bin --video examples/media/video.avi
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi
  • 校準工具: 三維的OpenPose處理和其它立體視覺處理任務需要你便捷校準攝像機,可查看 doc/modules/calibration_module.md文檔。
  • OpenPose C++ API: 如果你想定製開發讀取特定內容的接口、增加個性定製的後處理功能或者展示存儲功能,點擊這個鏈接查看C++的API接口,examples/tutorial_api_cpp/ 和 doc/library_introduction.md。你可以增加自己的代碼examples/user_code/ 使用Cmake快速編譯整個項目。快速增加自己定製的代碼,看這個文檔:examples/user_code/README.md
  • OpenPose Python API: 類似C++的API接口,點擊文檔查看Python API的教程examples/tutorial_api_python/.
  • 增加額外的模塊:查看 doc/library_add_new_module.md.
  • 獨立的臉部和手指檢測:
    • 臉部 不對身體關鍵點進行識別,僅對臉部關鍵點識別:如果你想加快處理速度(同時也會減少識別臉的個數),請看OpenCV臉部識別文檔:doc/standalone_face_or_hand_keypoint_detector.md.
    • 使用你自己的臉部和手部識別工具: 與身體關鍵點識別不同,你可以使用你自己的臉部和手部識別工具。比方說,在手指能看清但身體看不清的時候使用(OpenPose的識別器不能正常工作)。查看文檔doc/standalone_face_or_hand_keypoint_detector.md.

輸出

請點擊這個文檔,查看輸出文件的格式、關鍵點數據結構等信息。doc/output.md.

增加運算速度以及基準測試

點擊這個文檔,查看增加運行速度、減少內存需求的提示 doc/faq.md#speed-up-memory-reduction-and-benchmark.

向我們提供出錯信息和反饋!

我們的代碼庫面向以科學研究爲目的開發者開源,我們希望持續不斷地優化它!所以,如果出現了以下情況,請及時向我們反饋。

  1. 你發現OpenPose處理圖片或視頻出錯,請把識別失敗的案例發到[email protected]郵箱中,我們會運用你提供的信息優化我們的算法。
  2. 你發現了軟件功能或者運行速度上的bug。
  3. 你增加了一些我們可能吸納到項目源代碼中的函數、類或者其它子類。
  4. 你知道如何針對本項目優化性能、提升檢測速度。
  5. 你發現本項目的一個潛在應用場景。
  6. 其它問題.

你可以在Github上評論,或者pull request提交你的新代碼,我們會盡快回復你的。如果你基於本項目做了有趣的開發或者錄製了Youtube視頻,請給我們發電子郵件。

作者和項目貢獻者

Openpose項目由 Gines Hidalgo, Zhe Cao, Tomas Simon, Shih-En Wei, Hanbyul Joo, 和 Yaser Sheikh創造發起。 目前,這個項目由 Gines Hidalgo 和 Yaadhav Raaj進行日常維護。 original CVPR 2017 repo 包括了Matlab和Python版本,以及模型訓練代碼。人體姿態評估方面的工作是基於 the original ECCV 2016 demo的。

除此之外,不可或缺的還有 CMU Panoptic Studio dataset。

我們還想感謝所有幫助過OpenPose項目的人,主要貢獻者列在了這個文檔裏doc/contributors.md。

引用

如果本項目幫助了你的研究,請在你發表的作品裏註明引用出處(人臉關鍵點識別與[Simon et al. 2017]使用了同樣的訓練方法)。

@inproceedings{cao2017realtime,
  author = {Zhe Cao and Tomas Simon and Shih-En Wei and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields},
  year = {2017}
}@inproceedings{simon2017hand,
  author = {Tomas Simon and Hanbyul Joo and Iain Matthews and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Hand Keypoint Detection in Single Images using Multiview Bootstrapping},
  year = {2017}
}@inproceedings{wei2016cpm,
  author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Convolutional pose machines},
  year = {2016}
}

授權協議

Openpose對於非商業化使用是免費的,而且僅限於這些情況。點擊 license查看更多細節。對商業使用的授權感興趣?點我吧。諮詢商業應用相關信息可以聯繫 Yaser Sheikh.

參考文獻和擴展閱讀

【1】論文:

https://arxiv.org/pdf/1611.08050.pdf

【2】姿態檢測視頻製作源碼:muyiguangda/caffe_rtpose

【3】開頭視頻:Changing Batteries 更換電池「中字」

【4】CMU訓練數據集: CMU Panoptic Dataset

【4】匈牙利算法: Hungarian algorithm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章