WIN10下卷积神经网络 Faster-RCNN + ZF模型 准备、训练过程记录 (GPU+CPU)

开头:一定要仔细检查自己的显卡和cpu,显卡一定是英伟达的,支持cuda,AMD真是累

一、本文所用到的资料如下

1、VS2013(为避免出错先安装vs2013再装MATLAB)
MATLAB 2018b
CUDA 7.5 (官网上一定要匹配对电脑和操作系统型号,否则安装会出错)
参考链接:https://blog.csdn.net/fengbingchun/article/details/53892997
https://blog.csdn.net/Mind_programmonkey/article/details/99688839?utm_source=app&from=singlemessage
labelimg: https://pan.baidu.com/s/1Qc9Kg5opIQekEh04Z0NE6Q 提取码:1248
Faster-RCNN源码下载地址:https://github.com/ShaoqingRen/faster_rcnn
cuda7.5编译得到的external文件:https://pan.baidu.com/s/1z_X-iE3ehcFJcMKjmxCCUw 提取码:98r0

2、先安装vs2013,再安装matlab,否则会出现matlab找不到vs2013,当然也有解决办法见博客

https://blog.csdn.net/desire121/article/details/60466845
在这里插入图片描述
matlab命令框中输入 mbuild -setup表明matlab成功找到vs

3、图像标注
下载提供的 labelimg文件,具体步骤按文件下的redme.txt执行
使用过程:https://blog.csdn.net/python_pycharm/article/details/85338801?utm_source=app
4、制备voc2007数据集
voc数据集格式按分享文件制作
https://pan.baidu.com/s/1aSi3twu9CzeLTMc_JRl4yw 提取码:d6i3

详细参考小咸鱼博客
https://blog.csdn.net/sinat_30071459/article/details/50723212?utm_source=app

注:使用小咸鱼博客的matlab程序后面训练会出现一些问题:

	错误使用 textread (line 162)未找到文件。出错 imdb_from_voc (line 										46)  imdb.image_ids = textread(sprintf(VOCopts.imgsetpath, image_set), '%s');
	出错 Dataset.voc2007_trainval (line 11)dataset.imdb_train    = {  imdb_from_voc(devkit, 'trainval', '2007', use_flip) };
	出错 script_faster_rcnn_VOC2007_ZF (line 29)dataset= Dataset.voc2007_trainval(dataset, 'train', use_flipped);      

四个TXT命名不对
/faster_rcnn-master\datasets\VOCdevkit2007\logos\ImageSets\Main
该路径下txt改为以下格式:
在这里插入图片描述
5、解压external文件(版本为cuda7.5)解压到faster_rcnn-master下,其余版本请自行编译,编译博客参考如下:
https://www.cnblogs.com/maitre-zhao/p/6689953.html

https://blog.csdn.net/ChuQiDeCha/article/details/56293553
6、步骤参考小咸鱼博客(https://blog.csdn.net/sinat_30071459/article/details/50546891
292\477行
我的错误如下:
(1)运行faster_rcnn-master\faster_rcnn_build.m
出错情况如下:
错误使用 mexLINK : fatal error LNK1181: 无法打开输入文件“nms_gpu_mex.o”
出错 nvmex (line 48)
eval(mexCommandLine);
出错 faster_rcnn_build (line 23)
nvmex(‘functions/nms/nms_gpu_mex.cu’, ‘bin’);
在这里插入图片描述
视自己情况修改

(2)

Error using mex
LIBCMT.lib(crt0dat.obj) : error LNK2005: _amsg_exit 已经在
MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(crt0dat.obj) : error LNK2005: _initterm_e 已经在
MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtCaptureCurrentContext
已经在 MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtCapturePreviousContext
已经在 MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtTerminateProcess 已经在
MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtUnhandledException 已经
在 MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)"
(?terminate@@YAXXZ) 已经在 MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(crt0init.obj) : error LNK2005: __xi_a 已经在
MSVCRT.lib(cinitexe.obj) 中定义
LIBCMT.lib(crt0init.obj) : error LNK2005: __xi_z 已经在
MSVCRT.lib(cinitexe.obj) 中定义
LIBCMT.lib(crt0init.obj) : error LNK2005: __xc_a 已经在
MSVCRT.lib(cinitexe.obj) 中定义
LIBCMT.lib(crt0init.obj) : error LNK2005: __xc_z 已经在
MSVCRT.lib(cinitexe.obj) 中定义
LIBCMT.lib(winxfltr.obj) : error LNK2005: __CppXcptFilter 已经在
MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(mlock.obj) : error LNK2005: _lock 已经在
MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(mlock.obj) : error LNK2005: _unlock 已经在
MSVCRT.lib(MSVCR120.dll) 中定义

正在创建库 G:\faster_rcnn-master\bin\nms_gpu_mex.lib 和对象
G:\faster_rcnn-master\bin\nms_gpu_mex.exp
LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用
/NODEFAULTLIB:library
LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用
/NODEFAULTLIB:library
G:\faster_rcnn-master\bin\nms_gpu_mex.mexw64 : fatal error LNK1169: **找到
一个或多个多重定义的符号**
Error in nvmex (line 48)
eval(mexCommandLine);
Error in faster_rcnn_build (line 23)
nvmex('functions/nms/nms_gpu_mex.cu', 'bin');

这个错误是lib库冲突了,解决办法是修改mex命令

mex -outdir bin nms_gpu_mex.o -L"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64" -lcudart LINKFLAGS="$LINKFLAGS /NODEFAULTLIB:LIBCMT.LIB"

参考链接:https://blog.csdn.net/dzkd1768/article/details/69525610
(2)运行faster_rcnn-master\startup.m

(3)运行faster_rcnn-master\fetch_data\fetch_faster_rcnn_final_model.m 下载训练好的模型
(下载失败的话,可以用百度云下载 https://pan.baidu.com/s/1hsFKmeK,解压到faster_rcnn-master下)
(4)修改faster_rcnn-master\experiments\script_faster_rcnn_demo.m的model_dir为你下载的模型,然后运行。

注:运行一分钟左右出现闪退情况,vgg网络太大,显存吃不消
修改demo.m 注释第一行,改为
在这里插入图片描述
在这里插入图片描述
接下来训练自己网络参考小咸鱼博客:https://blog.csdn.net/sinat_30071459/article/details/50546891

出错情况参考:
https://www.cnblogs.com/zjutzz/p/5983160.html
https://blog.csdn.net/dzkd1768/article/details/69525610
https://blog.csdn.net/dzkd1768/article/details/69525610

cpu训练版本参考
https://blog.csdn.net/weixin_39566131/article/details/100335321
https://blog.csdn.net/qq_39550159/article/details/80404224

训练过程中我的错误在这里插入图片描述
很多情况是数据集的问题,老师给了一个示例让我检验是模型还是数据集的问题,

图片大小和xml一定要相同,我的电脑解压图片有些莫名的发生旋转

猜你喜欢

转载自blog.csdn.net/qq_38781549/article/details/105654442