1. 程式人生 > >OpenPose 安裝配置與測試

OpenPose 安裝配置與測試

1.關於OpenPose 
介紹:OpenPose是一個由CMU開源的實時多人關鍵點檢測庫,它實現了一個人人體、手部和臉部關鍵點檢測的實時系統(共130個關鍵點)。 
github地址:https://github.com/CMU-Perceptual-Computing-Lab/openpose

2.系統配置 
作業系統:Win7 x64 
IDE:Viusal studio 2015 
GPU:GT 720 
CUDA: 8.0

2.1安裝CUDA,CuDNN,Visual Studio2015 
(1)CUDA安裝:https://developer.nvidia.com/cuda-downloads 
按照提示直接安裝即可。

(2)CuDNN安裝:https://developer.nvidia.com/cudnn 
這一步需要註冊一個賬號,並填寫一個問卷,完成後即可下載。CuDNN下載後解壓,新增 [yourPath]\cuda 和[yourPath]\cuda\bin 到環境變數 並按照如下操作: 
[yourPath]\cuda\bin\cudnn64_5.dll —> (拷貝至) 
[yourPath]\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin 
[yourPath]\cuda\include\cudnn.h —> (拷貝至) 
[yourPath]\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include 
[yourPath]\cuda\lib\x64\cudnn.lib —>(拷貝至) 
[yourPath]\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64

(2)安裝Visual Studio 2015 
嘗試過使用Visual Studio 2013 進行編譯,出現很多錯誤,改用VS2015後正常(可能跟工程配置或使用了C++14 的新特性有關)。

2.2下載相關依賴 
下載上述GitHub上的OpenPose,執行openpose-master/windows路徑下的批處理檔案”download_3rdparty_and_models.bat“,會自動下載工程需要的caffe,opencv以及相關model。 
 
下載完成後,下載的caffe,opencv及相關庫檔案在在openpose-master/3rdparty/windows下: 
 
下載的人體,手部以及臉部的caffemodel檔案在openpose-master\models下的pose,hand和face各自資料夾中: 


(3)執行 
開啟工程,切換到release模式,直接編譯執行。 
可能會遇到的問題: 
A. GPU out of memory -> GUP記憶體不夠,換用更高記憶體的GUP;或更改相關引數(見後文) 
B. GPU compute capacity mismatch -> GUP的compute capacity與CuDNN 不匹配。CuDNN要求GPU的compute capacity大於3.0. 之前使用Tesla c2050遇到了這樣的情況。GPU的compute capacity詳見https://developer.nvidia.com/cuda-gpus,這裡有Nvida官方提供的各型號GPU的相關資料。

3.測試 
程式執行會自動檢測可用的攝像頭,也可以設定為使用本地圖片或視訊進行測試,使用本地圖片測試需要修改openpose.cpp:
(1)讀取測試圖片資料夾(工程自帶了一些測試圖片,存放在openpose-master\examples\media): 
 
(2)儲存測試結果資料夾(在openpose-master\examples\media 下新建一個resultImg資料夾): 
 
使用GT720顯示卡測試單張圖片出現 GPU out of memory問題,因一時沒有更大容量的GPU,修改了程式中一些引數得以正常執行。主要修改的引數netInputSize,faceNetInputSize,handNetInputSize。修改後的引數如下圖,其中註釋為程式中預設設定的引數。注意size的長寬需要為16的整數倍。 
關於netInputSize,程式碼中的註解: 
/** 
* CCN (Conv Net) input size. 
* The greater, the slower and more memory it will be needed, but it will potentially increase accuracy. 
* Both width and height must be divisible by 16. 
*/

修改後進行測試,本機上使用GT720的FPS為0.6(由於顯示卡容量限制,這裡只檢測人體關鍵點,未開啟人臉和手部關鍵點檢測),部分測試結果(圖片來自網路): 

由於修改了netInputSize,會導致結果比預設引數情況下差。

使用K40c 顯示卡進行測試,使用工程預設netInputSize,只進行人體關鍵點檢測,FPS在4.0左右。同時進行人體,手部和臉部的關鍵點檢測(工程預設只進行人體關鍵點檢測,檢測人臉和手部關鍵點需要在在程式碼中修改開啟)並修改netInputSize引數分別為512x256,256x256,256x256 FPS在1.2左右,部分結果如下: 

測試中使用windows自帶的截圖工具從網頁上截圖並儲存為jpg格式,字尾為”.JPG”(大寫)無法完成測試,工程自帶的圖片,字尾為”.jpg”(小寫)可以正常測試。將擷取儲存的圖片使用畫圖工具”另存為JPEG”,得到的圖片字尾為”.jpg”,可以正常測試。可能是程式問題。
--------------------- 
作者:JerryZhang__ 
來源:CSDN 
原文:https://blog.csdn.net/JerryZhang__/article/details/76208871 
版權宣告:本文為博主原創文章,轉載請附上博文連結!