原文鏈接:https://blog.techbridge.cc/2019/01/18/openpose-installation/
注:轉(zhuǎn)載如有侵權(quán),請(qǐng)馬上聯(lián)系刪除。
如何在 Windows 安裝 OpenPose 跟使用 Python API 來偵測(cè)人體姿態(tài)
?
前言
?
OpenPose?是 Carnegie Mellon University(CMU)論文實(shí)作的開源函式庫,提供的功能主要就是可以偵測(cè)人體的各部位在什麼地方,例如可以在影像中找到臉、身體、手等等地方的特徵點(diǎn)。但他厲害的地方在於可以一次偵測(cè)很多人,看看下面這張圖就知道
這個(gè) repository 仍然相當(dāng)?shù)?active,有兩個(gè) CMU 的學(xué)生常常在 Github 上面解 issue。這次因?yàn)楣P者需要在 Windows 上面安裝 OpenPose 並呼叫 Python API,所以跟開發(fā)者有不少互動(dòng),才想到乾脆來寫一篇教學(xué),讓之後想要使用 OpenPose 的讀者可以省去好幾天的環(huán)境安裝 debug。
OpenPose 演算法簡(jiǎn)介
上面是 OpenPose 的架構(gòu)圖,輸入會(huì)是一張大小為 w x h 的彩色影像;接著會(huì)先經(jīng)過 Stage 0 的 VGG-19 Network,得到輸入影像的 feature map;然後會(huì)在 Stage 1 經(jīng)過一些 CNN 來得到身體各部位的 confidence map。Stage 1 分成兩個(gè) branch,branch 1 可以產(chǎn)生某特定部位的 confidence map,例如左肩的 confidence map:
branch 2 則是產(chǎn)生不同身體部位之間的關(guān)聯(lián)性,例如脖子跟左肩的關(guān)係:
最後結(jié)合這些結(jié)果就可以得到全身各部位大致在什麼地方,還有彼此相對(duì)位置的關(guān)係。以上的講法有點(diǎn)過於簡(jiǎn)化,有興趣的讀者可以看看延伸閱讀 1 的原始論文。
Windows 安裝步驟
-
確認(rèn)一下你的硬體跟作業(yè)系統(tǒng)符合?OpenPose 要求
-
Clone OpenPose 的原始碼
因?yàn)槲覀円褂?Python API,所以不能只是下載已經(jīng)編譯好的 library 文件,必須要從原始碼開始編譯。我推薦大家可以用 Github Desktop 來下載原始碼 & 管理。
-
下載並安裝 CMake GUI
可以上?CMake 的網(wǎng)站下載,Windows 的話請(qǐng)下載?
cmake-X.X.X-win64-x64.msi
。 -
安裝 Visual Studio 2015
OpenPose 的官方要求是 Visual Studio 2015 Enterprise Update 3,但似乎也有人用 Visual Studio 2015 Community 安裝成功。筆者是用 Enterprise 版本安裝成功的。
-
安裝 CUDA
官方推薦的版本是 CUDA 8。這一步要在安裝完 Visual Studio 之後做,因?yàn)榘惭b過程會(huì)產(chǎn)生一些 Visual Studio 需要的檔案。
-
安裝 cuDNN
官方建議安裝 5.1 版本。安裝方法很簡(jiǎn)單,只要把下載的壓縮檔內(nèi)容解壓縮到?
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
?路徑就好。(cuDNN 壓縮檔裡面會(huì)有三個(gè)資料夾,可以對(duì)應(yīng)到?C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
?裡面也有的資料夾,分別把檔案放到對(duì)應(yīng)的資料夾就好)。 -
開始設(shè)定 CMake 來準(zhǔn)備編譯需要的檔案
-
用 Visual Studio 2015 打開?
build/OpenPose.sln
?檔案 - 切換到 Release Mode 並 Build Project
這一步很重要,因?yàn)橹挥?Debug Mode build 會(huì)讓後面的 Python API 啟動(dòng)失敗。詳見?issue 1026。
Python API 呼叫步驟
如果上面的步驟都做完,應(yīng)該可以在?
openpose\build\python\openpose\Release
?看到?
openpose_python.cp36-win_amd64.pyd
?library 文件。(OpenPose 原生是用 C++ 寫的,是用 pybind11 包成 Python 可以呼叫的 library)。
接著,我們準(zhǔn)備要來跑?
openpose\build\examples\tutorial_api_python\1_body_from_image.py
,要記得把裡面的 library 搜尋路徑改成自己的:
我可以跑起來的範(fàn)例如下:
? |
|
這時(shí),你就可以去 cmd.exe 執(zhí)行,執(zhí)行下列步驟
? |
|
然後跑出下面的結(jié)果:
總結(jié)
今天跟大家介紹了 CMU 的 OpenPose 要怎麼安裝,也稍微介紹了 Python API 要怎麼使用,理論上學(xué)完這篇教學(xué)的內(nèi)容後,你就可以用 Python 呼叫 OpenPose 的 API 來實(shí)作自己想要的更高階功能了。希望對(duì)你的研究或 project 有幫助!
延伸閱讀
- Convolutional Pose Machines
關(guān)於作者:
@pojenlai?演算法工程師,對(duì)機(jī)器人、電腦視覺和人工智慧有少許研究,正在學(xué)習(xí)用心體會(huì)事物的本質(zhì)跟不斷進(jìn)入學(xué)生心態(tài)改進(jìn)。
喜歡我們的文章嗎?歡迎分享按讚給予我們支持和鼓勵(lì)!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
