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
版權宣告:本文為博主原創文章,轉載請附上博文連結!