iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
AI & Data

欸你在幹嘛?跟一眼瞬間就懂你的行為辨識技術初次見面系列 第 5

[DAY05]github尋神之路01--OPENPOSE

哈囉大家好,我是橘白卯咪,歡迎大家來看看我能不能撐過30天

今天要來介紹openpose的安裝
先附上github
https://github.com/CMU-Perceptual-Computing-Lab/openpose

在開始之前打個預防針,雖然講明了安裝環境跟安裝步驟,但有時候電腦就是個神奇的東西
別人可以自己的就是裝不起來或開不起來也是很正常的事
(不然為什麼機房裡都是綠色乖乖呢...?/images/emoticon/emoticon19.gif
遇到問題請多google或爬爬issue,橘白卯咪友善提醒~

0.安裝環境

作業系統: windows10
顯示卡: NVIDIA GeForce RTX 2070
CUDA: 最新版,用ToolKit工具安裝
Visual Studio: 2019 professional版 (用commity版失敗...,重點在c++相關套件一定要裝,沒有裝到的話可以installer再裝上去)

會選擇裝在windows真是個勇敢的決定,也因此繞了一些路
所以想重現看看的,這點要斟酌一下/images/emoticon/emoticon16.gif

1.取得openpose 專案

clone或下載,依據個人習慣即可~

2.安裝CMAKE

cmake
Windows 的話請下載 cmake-X.X.X-win64-x64.msi

3.安裝visual studio

我是安裝vs 2019 professional 試用版,用community版會失敗...
(有成功的可以留言並告訴我你怎麼操作的~~
重點在安裝的時候,c++相關的元件都要裝(沒裝到可以用installer-->modify)

4.安裝cuda

這一步要在安裝完 Visual Studio 之後做,因為安裝過程會產生一些 Visual Studio 需要的檔案
我裝的是cuda10,也就是最新版的。如果要確定可以點nvidia控制面板-->點選幫助-->看產品支持哪一個版本。

5.安裝 cuDNN

要註冊nvidia會員才能下載。(以前有一些教學文說不用,有任何變更歡迎跟我說)
cuDNN 壓縮檔裡面會有三個資料夾,可以對應到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.0 裡面也有的資料夾,分別把檔案放到對應的資料夾就好

6.使用cmake Configure跟generate

source code 就是github code 載下來那包的位置
build就是在那包code的位址下面建一個資料夾(我是命名成build
按下 Configure 按鈕(generator 記得選 Visual Studio 16 2019 Win64),按下finish
這一步會比較久,不過實際看個人電腦狀況
等待Configure Done,勾選bulid python(這步一定要做),按下generate
到build/OpenPose.sln路徑下,對專案右鍵-->開啟檔案-->選擇vs
切換到 Release Mode 並 Build Project (一定要用release mode!!)
如果上面的步驟都做完,應該可以在 openpose\build\python\openpose\Release 看到 openpose_python.cp37-win_amd64.pyd library 文件。(OpenPose 原生是用 C++ 寫的,是用 pybind11 包成 Python 可以呼叫的 library)。
名字每一個版本可能會不太一樣,像我的lib
https://ithelp.ithome.com.tw/upload/images/20200905/20129150oHxELyumL9.jpg

然後,如果電腦沒有鏡頭,有可能會報錯。把執行視窗關掉就好,我們用其他方法。

7.拿張圖片來試試

lib出現之後,就可以來跑圖片/影片了
這也是我覺得很神奇的地方,我在兩台電腦裝過openpose,一個可以用官方教學的方式跑,一個不行,用另一個方式才能

所以我們先看看官方教學

:: Windows - Portable Demo
bin\OpenPoseDemo.exe --image_dir examples\media\
:: With face and hands
bin\OpenPoseDemo.exe --image_dir examples\media\ --face --hand

:: Windows - Library - Assuming you copied the DLLs following doc/installation.md#windows
build\x64\Release\OpenPoseDemo.exe --image_dir examples\media\
:: With face and hands
build\x64\Release\OpenPoseDemo.exe --image_dir examples\media\ --face --hand

然而我裝的其中一台電腦,這樣的方法行不通/images/emoticon/emoticon02.gif
所以以下是我的怪怪步驟

  1. 先對其中一個範例右鍵-->設為"啟始專案"
    https://ithelp.ithome.com.tw/upload/images/20200905/20129150uyqSDoc8Xt.png

  2. 將要使用的圖片放在路徑:
    https://ithelp.ithome.com.tw/upload/images/20200905/201291501GJXBSG74r.jpg

  3. 回到vs,點開被設為啟始專案的目錄-->source files-->點開.cpp檔
    https://ithelp.ithome.com.tw/upload/images/20200905/201291502H4sZLHc5k.png

  4. 找到image path,將所使用的檔名+副檔名改上去
    https://ithelp.ithome.com.tw/upload/images/20200905/20129150aslZsxFEOQ.jpg

  5. release mode 下建置
    https://ithelp.ithome.com.tw/upload/images/20200905/20129150IY2vUiu93B.png

  6. 然後就有結果啦~~

8.影片也拿來試試

官方使用方法原文

:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi
:: With face and hands
bin\OpenPoseDemo.exe --video examples\media\video.avi --face --hand

:: Windows - Library - Assuming you copied the DLLs following doc/installation.md#windows
build\x64\Release\OpenPoseDemo.exe --video examples\media\video.avi
:: With face and hands
build\x64\Release\OpenPoseDemo.exe --video examples\media\video.avi --face --hand

我的方法

  1. 打開PowerShell (Windows button + X, and then A),然後cd 到openpose路徑下(或者在資料夾中直接開啟)
cd C:\Users\Documents\GitHub\openpose
  1. 輸入指令(video.avi可換成所需影片)
build\x64\Release\OpenPoseDemo.exe --video examples\media\video.avi
  1. 結果
    https://ithelp.ithome.com.tw/upload/images/20200905/201291504aVpftZOaG.jpg

整個安裝過程遇到很多坑,齁氣氣氣氣
但總算是裝好啦~~

這一路上參考過的文件:

  1. windows的安裝教學
  2. windows 運行方法
  3. 官方的說明

雖然有點跳,不過明天來介紹一下,從影像中找出人體關鍵點的top-down跟bottom-up方法吧~


上一篇
[DAY04]github尋神去! 每個環節都有大神們的蹤跡
下一篇
[DAY06]喂你在哪裡?找出影像中的人體關鍵點與姿態
系列文
欸你在幹嘛?跟一眼瞬間就懂你的行為辨識技術初次見面30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
Waving
iT邦新手 5 級 ‧ 2020-11-01 14:09:47

您好,想請問一下,如果想訓練自己的數據集的話,要準備哪寫資料? 我從網路上找到的資料都是直接拿coco dataset 做訓練,要改成自己的訓練集,我就不太知道要如何修改json檔裡面的資料,請問您知道如何修改嗎? 謝謝~~
備註:我想使用tf-pose-estimation github 來做訓練

0
zxc100066
iT邦新手 5 級 ‧ 2020-11-23 10:28:44

不好意思,我想請問您指的"c++相關的元件都要裝"是包括旁邊所有的元件都要打勾嗎?

我要留言

立即登入留言