1. 程式人生 > >ubuntu 使用yolov3 yolo-tiny-v3 基於cudnn 7.1 + cuda 9.1 + opencv 3.4.0 以及yolo資料集製作

ubuntu 使用yolov3 yolo-tiny-v3 基於cudnn 7.1 + cuda 9.1 + opencv 3.4.0 以及yolo資料集製作

1.我在Ubuntu官網上直接下載並安裝ubuntu ,顯示卡使用的gtx1070

2.在nvidia官網家上下載cuda9.1 runtime ubuntu16.04版本

3.下載cudnn7.1 (需要註冊)

4.在opencv官網上下載opencv3.4.0 原始碼

5.在nvidia官網上下載最新版本的驅動(使用cuda的驅動需要降低核心版本,而我在測試階段降低核心版本後由於網絡卡驅動的不相容斷網,所以懶得折騰了就直接使用nvidia官網上的驅動,而如果使用ubuntu addintional driver中的驅動會造成版本的不支援,也懶得折騰索性直接用官網的驅動)

安裝過程:1.由於yolo不需要opencv對python的支援,所以不折騰opencv對python的支援安裝,直接無腦根據官網的安裝方式裝,裝依賴,然後cmake,make,make install就折騰完了

               2.安裝cuda,根據cuda Document中的要求關閉和圖形介面有關的所有東西(注:sudo service lightdm stop關閉圖形介面),選擇的時候不安裝驅動,其他的全部yes就行了

               3.安裝驅動,一樣需要關閉圖形介面,省的出奇奇怪怪的問題。sh run就行了。

               4.安裝yolo,用github上https://github.com/pjreddie/darknet.git下載原始碼,修改Makefile檔案opencv,cudnn,cuda=1,然後make就行了。

6.資料集的製作:

6.1 使用https://github.com/tzutalin/labelImg.git的工具,我這裡用的是自己的視訊,用ffmpeg將視訊剪輯成圖片序列名字用yolo要求的名字--%06d(其實也無所謂,就是方便管理)

6.2 使用labelimg,型別選擇yolo新建一個資料夾,叫VOC好了,目錄結構如下:

--VOC

----JPEGImages

----labels

--train.txt

JPEGImages中存放圖片,train.txt中存放所有圖片的絕對路徑,labels中存放labelimg工具中生成的標籤檔案。

7.訓練

根據需求訓練,本人使用過yolov3,yolov3-tiny 在darknet資料夾下的cfg資料夾下的幾個cfg檔案,修改classes和filters就行了(classes+croods+1)*3=filters

然後根據官網上的訓練就完事兒了。