编译darknet_no_gpu项目时(使用CPU),报错未找到opencv-world430.lib,原因是我的opencv在编译时没有勾选BUILD-opencv-world,所以没有生成opencv-world430.lib和opencv-world430.dll,而是多个.lib和.dll.
解决方法:将image_opencv.cpp第55行注释掉,然后在项目配置添加多个lib和dll,编译成功后就能用darknet_no_gpu.exe检测视频了。
编译darknet项目的时候(使用GPU)
VS2017会报错#error: -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!
这是由于CUDA文件定义不支持最新版VS2017,根据报错问题在host_config.h文件的135行
打开文件路径 D:\CUDA\v9.2\include\crt中的host_config.h文件,定位135行
//#if _MSC_VER < 1600 || _MSC_VER > 1913改为
#if _MSC_VER < 1600 || _MSC_VER > 1916
1916是我的VS2017版本。难怪网上都是用VS2015版本编译darknet。
检测视频的平均FPS(CPU:i5-9400):
darknet CPU版本:1.4
opencv yolov3版本:5
所以CPU版本用opencv yolov3检测速度更快。
训练速度和结果:
batch=1
subdivisions=1
训练失败:迭代次数到1000左右的时候avg loss上升到最高,之后一直是直线
GPU版本训练记录:
显卡:1050m,显存2G
batch=4
subdivisions=4
9个物体,40张训练图片
训练时间:6.5小时
batch=8
subdivisions=8
训练时间:13.5小时
占用显存1.5G
batch=16
subdivisions=16
训练时间:27小时