Openpose——windows编译(炒鸡简单)
前言
最近準(zhǔn)備看看rtpose的代碼,發(fā)現(xiàn)已經(jīng)由openpose這個(gè)項(xiàng)目維護(hù)著了,由于經(jīng)常在windows下調(diào)試代碼,所以嘗試了一下如何在windows下編譯openpose源碼,整體來說非常簡單的。
國際慣例,參考博客:
[OpenPose]的主頁
[OpenPose]的windows版本,截止到寫博客最新版本是v1.70
官方安裝說明
【注】強(qiáng)烈建議解壓目錄路徑不要太長,比如解壓在E:\code下,不要解壓在E:\code\xx\xx\xx\xx_xxx之類的,我自己嘗試的時(shí)候給我彈一堆問題。
準(zhǔn)備工作
使用工具
CMake`,`Visual Studio`,`CUDA`,`cudnn具體地,我用的具體版本是:
CMake: 3.17.3
Visual Studio:建議2013以上,我用的2017
CUDA: 10.0
cudnn:cudnn-10.0-windows10-x64-v7.6.3.30
關(guān)于CUDA的安裝就不說了,可以看別人博客,也可以看我配置caffe的時(shí)候配置CUDA的方法
【注】無需再下載opencv、caffe之類的東東了,只需要保證你的網(wǎng)絡(luò)良好,cmake的時(shí)候會(huì)自動(dòng)下載,不過我也會(huì)針對(duì)下載的東西在網(wǎng)盤立馬提供備份鏈接,供網(wǎng)絡(luò)不好的大哥們下載。
下載工程
直接用git命令行模式:
git clone --recursive https://github.com/CMU-Perceptual-Computing-Lab/openpose.git或者按照官網(wǎng)說的:
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose cd openpose/ git submodule update --init --recursive --remote一定要注意使用--recursive模式,不然不會(huì)在openpose/3rdparty/caffe目錄下自動(dòng)下載作者DIY的caffe工程。
我的這一步上傳到了:鏈接:https://pan.baidu.com/s/1UuSVFk2F3C9qeWGh3jkaZw 提取碼:ow7t
生成工程文件
接下來直接到CMake里編譯生成VS工程:
建議保持默認(rèn),暫時(shí)不要勾選BUILD_UNITY_SUPPORT和BUILD_PYTHON,避免出錯(cuò)無法排查。如果CMAKE出錯(cuò),建議和我上面的截圖核對(duì)一下,哪里出問題可以貼在評(píng)論區(qū)或者私信我,這樣能夠定位問題。
同時(shí)我也把CMake的log貼出來看看:
Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.18363. The C compiler identification is MSVC 19.16.27043.0 The CXX compiler identification is MSVC 19.16.27043.0 Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe - works Detecting C compiler ABI info Detecting C compiler ABI info - done Detecting C compile features Detecting C compile features - done Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe - works Detecting CXX compiler ABI info Detecting CXX compiler ABI info - done Detecting CXX compile features Detecting CXX compile features - done CMAKE_VERSION = 3.17.3 Found CUDA: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0 (found version "10.0") Building with CUDA. Downloading windows dependencies... Downloading http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/windows/opencv_450_v15_2020_11_18.zip... Extracting D:/code/C++/openpose/3rdparty/windows/opencv_450_v15_2020_11_18.zip... Downloading http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/windows/caffe3rdparty_16_2020_11_14.zip... Extracting D:/code/C++/openpose/3rdparty/windows/caffe3rdparty_16_2020_11_14.zip... Downloading http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/windows/caffe_16_2020_11_14.zip... Extracting D:/code/C++/openpose/3rdparty/windows/caffe_16_2020_11_14.zip... Windows dependencies downloaded. Adding Example Calibration Adding Example tutorial_add_module_custom_post_processing Adding Example tutorial_api_thread_1_user_processing_function Adding Example tutorial_api_thread_2_user_input_processing_output_and_datum Adding Example OpenPoseDemo Adding Example 01_body_from_image_default Adding Example 02_whole_body_from_image_default Adding Example 03_keypoints_from_image Adding Example 04_keypoints_from_images Adding Example 05_keypoints_from_images_multi_gpu Adding Example 06_face_from_image Adding Example 07_hand_from_image Adding Example 08_heatmaps_from_image Adding Example 09_keypoints_from_heatmaps Adding Example 10_asynchronous_custom_input Adding Example 11_asynchronous_custom_input_multi_camera Adding Example 12_asynchronous_custom_output Adding Example 13_asynchronous_custom_input_output_and_datum Adding Example 14_synchronous_custom_input Adding Example 15_synchronous_custom_preprocessing Adding Example 16_synchronous_custom_postprocessing Adding Example 17_synchronous_custom_output Adding Example 18_synchronous_custom_all_and_datum Download the models. Downloading BODY_25 model... NOTE: This process might take several minutes depending on your internet connection. Not downloading body (COCO) model Not downloading body (MPI) model Downloading face model... NOTE: This process might take several minutes depending on your internet connection. Downloading hand model... NOTE: This process might take several minutes depending on your internet connection. Models Downloaded. Configuring done然后再cmake里面再generate一下,就可以O(shè)pen Project了。
或者Genrate完畢以后,在openpose/build下就能看到openpose.sln文件了,打開就行。
【注】有時(shí)候由于網(wǎng)絡(luò)原因,下載文件會(huì)失敗,導(dǎo)致生成失敗或者編譯不成功,可以手動(dòng)下載:
pose_iter_584000.caffemodel,放入\openpose\models\pose\body_25
pose_iter_440000.caffemodel,放入\openpose\models\pose\coco
pose_iter_160000.caffemodel,放入\openpose\models\pose\mpi
pose_iter_116000.caffemodel,放入\openpose\models\face
pose_iter_102000.caffemodel,放入\openpose\models\hand
三方庫(放到\openpose\3rdparty\windows,解壓方式選擇解壓到當(dāng)前文件夾):
caffe_cpu_2018_05_27:鏈接:https://pan.baidu.com/s/1qjya7lWbj8jXu_8Hx4t5JQ 提取碼:873e
caffe_16_2020_11_14:鏈接:https://pan.baidu.com/s/1Itu_C_8gWbHlGr1AMBaM1Q 提取碼:hl6y
opencv_450_v15_2020_11_18:鏈接:https://pan.baidu.com/s/1yjmTCU11m1yjIoz4RrtotQ 提取碼:bq1r
caffe3rdparty_16_2020_11_14:鏈接:https://pan.baidu.com/s/16kGyDG9Xwsun_wvnACU4Zw 提取碼:ccsi
編譯工程
注意我們CMake時(shí)候選了x64,所以打開的VS工程也是默認(rèn)DEBUG x64。再次提示我用的VS2017
直接對(duì)著整個(gè)工程ALL_BUILD生成即可,如果出錯(cuò),請(qǐng)把錯(cuò)誤在評(píng)論區(qū)或者私信指出。
生成完畢可以在openpose/build/x64/Debug下看到很多生成的exe,代表成功了。
然后將你想測(cè)試的項(xiàng)目設(shè)置成啟動(dòng)項(xiàng)
接下來運(yùn)行就行;如果這里運(yùn)行報(bào)錯(cuò),建議直接使用CPU版本,方法就CMAKE里面的GPU_MODE改成CPU_ONLY,USE_CUDNN選項(xiàng)去掉。
整個(gè)工程的文件也打包放到百度云了:
鏈接:https://pan.baidu.com/s/1c8BwQvEhycjwEARcRjZZwA
提取碼:9v3u
后記
這個(gè)代碼工程比較大,其實(shí)我個(gè)人建議跑rtpose的代碼,雖然配置有點(diǎn)難度,但是源碼看著很清晰。這個(gè)回頭再說,下一篇博客可能就是解析openpose的前身rtpose的論文了:Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
即將參考的博客是:Human pose estimation using OpenPose with TensorFlow
【更新日志2020-1-15】
這里有一個(gè)超級(jí)簡單的,基于opencv調(diào)用openpose的caffe模型,實(shí)現(xiàn)多人姿態(tài)估計(jì)的代碼:
https://github.com/spmallick/learnopencv/tree/master/OpenPose-Multi-Person
公眾號(hào)已同步本篇博客,如有問題可直接評(píng)論或公眾號(hào)私聊。
總結(jié)
以上是生活随笔為你收集整理的Openpose——windows编译(炒鸡简单)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《炉石传说》全新冒险模式“怪物狩猎”免费
- 下一篇: 【TensorFlow-windows】