前言:

為了要進行更準確又快速的人臉偵測系統,使用近期興起的CNN神經網路方式來做model的訓練,而現在有許多神經網路的演算法,今天我們選擇用yolo來實現我們的實作。

其yolo官網有釋出名為darknet的框架,該作者Joseph Redmon訴求該model是以輕量、依賴性少、演算法效率高的方向所設計,所以對在工業應用領域上有極高的實現價值,因此我們才會選擇此架構來做我們的產品開發的演算法原型。

準備步驟:

*環境:  Windows 10 + Python 3.5 + Visual Studio 2015 + CUDA 8.0 + CuDnn 6.0 \

1. 查看自己電腦是否有Nvidia顯卡,cuda只支援Nvidia顯卡,其他家一概不支援。請查看顯卡型號,為了查詢所使用的顯卡支援的cuda版本。

2. 系統尚需有visual studio 2015,若你是其他版本,請還是再安裝visual studio 2015,確保問題最少。

3.到CUDA網頁下載Toolkit,https://developer.nvidia.com/cuda-toolkit-archive,選擇你的CUDA版本,在根據你的開發環境下載。像下列這樣,下載完安裝,安裝CUDA前,請先將'visual studio先安裝完畢。

4. 驗證DUDA是否安裝成功。打開命令列,執行cmd,接著輸入"nvcc -V",如果安裝正確會顯示下列圖示,顯示了版本為cuda8.0

5. 到cuDNN官網下載cuDNN,https://developer.nvidia.com/cudnn,這必須要申請帳號才能下載。下載後,得到三個資料夾: bin\ include\ lib\,請將這三個資料夾複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0

6. 建立windows系統環境變數,把以下兩個路徑加入PATH裡。

"C:\ProgramData\NVIDIA GPU Computing Toolkit\v8.0"

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64

7. 編譯opencv3.3.0,使用cmake建立專案,在建立時,必須將Build下的BUILD_opencv_world的選項開啟,否則在編譯darknet時會缺少opencv_world330.lib而發生錯誤。

編譯完後的opencv,build/lib/Release會得到以下檔案

及bulild/bin/Release會得到DLL檔

以上這些檔案,都是在編譯darknet時會用到的。

開始編譯darknet:

首先我們看到以下圖顯示darknet的資料夾裡有幾個重要的檔案,紅色框是GPU版及CPU版的darknet solution檔;綠色框為GPU版及CPU版projection檔,及藍框是opencv所需要的dll檔。請確認有下列該檔後再開始做事。

由於我們要執行darknet的使用camera作物件偵測的動作,所以需要用到GPU版本,使用的是darknet專案。

1. 開啟darknet專案,若專案載入失敗,而你重新加入時發生下列錯誤,表示預設的darknet所使用的cuda版本與你不同,需要修改darknet.proj的內容

2. 若步驟一成功,請跳至步驟三。請開啟darknet.proj,搜尋"$(VCTargetsPath)\BuildCustomizations\CUDA 10.0.props",將其版號置換成你的版本,一共有兩處,更改後再開啟專案即可。

3. 開啟專案後,設定opencv的路徑,先開啟設定屬性列,再到"組態屬性->C/C++->一般->其他Include目錄"'加入你的opencv include的資料夾。

4. 到"組態屬性->連結器->一般->其他程式庫目錄"加入你的opencv library路徑。

5.以上設定完後,大致上專案就完成,再進行編譯,即可成功,接著執行指令"detector demo cfg/sit.data cfg/yolov3_IT.cfg yolov3_eyes_final.weights" 就可進行live demo物件偵測。

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ^_^ 的頭像
    ^_^

    一切的安排,都是最好的安排

    ^_^ 發表在 痞客邦 留言(0) 人氣()