YOLOv2在Windows下的配置方法

2021-08-09 04:56:54 字數 3097 閱讀 6034

研究深度學習數月,從普通的cnn(mnist、cifar10),到高階的fast rcnn、faster rcnn,到現在的yolo、yolo2,被ai界大神們的思維能力深深折服。

如下是是yolov2在windows下的配置方法,記錄下來,初衷是幫助準備進入ml大門的新人少走一些彎路。

本文主要包括環境搭建、編譯、測試、自己訓練模型四個部分。

1. 環境

yolo**

windows ms visual studio 2015 (v140):(or offline iso image)

cuda 8.0:

opencv 3.x:

or opencv 2.4.13:

yolo是用純c**編寫的,如果你不在乎執行速度,甚至只需要安裝有vs2015就能進行編譯、訓練、測試。

weights:

2. 編譯

1. msvs 2015 + opencv 3.0 + cuda 8.0

修改包含路徑c:\opencv_3.0\opencv\build\include和 c:\opencv_3.0\opencv\build\x64\vc14\lib

然後用vs2015開啟build\darknet\darknet.sln, 在x64 and release下, 編譯:build -> build darknet

將c:\opencv_3.0\opencv\build\x64\vc14\bin下的opencv_world320.dll and opencv_ffmpeg320_64.dll拷貝到darknet.exe所在路徑下

2. msvs 2015 + opencv 3.0 + cuda (not 8.0)

開啟build\darknet\darknet.vcxproj, 將兩處」cuda 8.0」 替換為」cuda x.x」(你的cuda版本號), 然後按1進行。

3. msvs 2015 + opencv 3.0 but no gpu

修改包含路徑c:\opencv_3.0\opencv\build\include 和 c:\opencv_3.0\opencv\build\x64\vc14\lib

然後用vs2015開啟build\darknet\darknet_no_gpu.sln, 在x64 and release下, 編譯:build -> build darknet_no_gpu

將c:\opencv_3.0\opencv\build\x64\vc14\bin下的opencv_world320.dll and opencv_ffmpeg320_64.dll拷貝到darknet_no_gpu.exe所在路徑下

4. opencv 2.4.13 instead of 3.0

修改如下路徑:

4.1 (right click on project) -> properties -> c/c++ -> general -> additional include directories: c:\opencv_2.4.13\opencv\build\include

4.2 (right click on project) -> properties -> linker -> general -> additional library directories: c:\opencv_2.4.13\opencv\build\x64\vc14\lib

5. 其他版本opencv 2.4.x (not 3.x)

則還需要修改#pragma comment(lib, 「opencv_core2413.lib」) in the file \src\detector.c(共三處)

3. 測試

經過上述編譯,則可以進行測試了:在darknet.exe路徑下,cmd輸入:

darknet_no_gpu detector test data/voc.data yolo-voc.cfg yolo-voc.weights,結果如下圖所示:

4. 自己訓練模型

接下來就可以準備自己的資料,通過yolo訓練自己的模型了。

ab大神給我們準備了很好用的資料標註工具yolo_mark,可以很方便的製作voc資料:具體使用方法在鏈結中有詳細說明,這裡就不贅述了。

標記資料準備好之後,就可以開始進行訓練了。

在darknet.exe路徑下,cmd輸入:

darknet_no_gpu.exe detector train data/obj.data my_obj.cfg, 結果如下圖所示:

因為工作電腦沒有gpu,對於tiny_yolo模型,訓練乙個batch大約需120s,在另一台nvidia gtx750上實測,乙個batch小於5s,可見cuda平行計算對於深度學習提速的優勢巨大。

訓練過程中,每100batch會在darknet\x64\backup資料夾下儲存乙個weights檔案:

後續可以直接選擇在其中某個weights基礎上繼續訓練,方式如下:

YOLO v2 檢測原理

v2版本的優化目標 改善召回率,提公升定位精度,保證分類準確度。yolov2相比yolov1的改進 v2在每乙個卷積之後增加了bn層,提高了網路訓練的速度,加快了收斂,消除了對其他正則化的依賴,且正則化效果更好,使調參更簡單,即使去掉dropout層也不會產生過擬合。v1先使用224 224的解析度...

YOLOV2演算法筆記

yolov2演算法詳解部落格 一 better 1.對每一層都做了歸一化 2.先利用分類資料對網路進行訓練,然後遷移學習。3.不再和yolov1那樣直接 bounding box,yolov2中開始利用ancher box,4.dimension clusters,利用k means聚類的方式,發現...

Yolo v2 多版本安裝

1 vs2015 opencv3.2 geforce gt 1030 c 編譯 github vs2015安裝 opencv3.2配置 cuda選擇9.0,cudnn配套 配置和編譯 雙擊 darknet master build darknet darknet.sln 如果沒有gpu採用darkn...