fasterrcnn+matlab+cuda训练过程中错误

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

2、

错误使用 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改为以下格式:
在这里插入图片描述

3、

运行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');

视自己情况修改位置在functions\nms\nvmex.m
在这里插入图片描述
4、

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"

5、
在这里插入图片描述
方法:此电脑中更新cuda驱动,记住是驱动不是cuda版本
参考链接:https://blog.csdn.net/dzkd1768/article/details/69525610

6、修改faster_rcnn-master\experiments\script_faster_rcnn_demo.m的model_dir为你下载的模型,然后运行。
注:运行一分钟左右出现闪退情况,vgg网络太大,显存吃不消
修改demo.m 注释第一行,改为
在这里插入图片描述

出错情况参考:
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一定要相同,我的电脑解压图片有些莫名的发生旋转
数据集的问题,重新标注了图片,生成xml

7、
排了半天唉

MEX 文件 'D:\tian ying biao\faster_rcnn-master\bin\nms_gpu_mex.mexw64' 无效: 缺少依赖共享库:
'D:\tian ying biao\faster_rcnn-master\bin\nms_gpu_mex.mexw64' 需要 'cudart64_75.dll'。

出错 nms (line 37)
        pick = nms_gpu_mex(single(boxes)', double(overlap));

出错 Faster_RCNN_Train.do_proposal_test>boxes_filter (line 24)
                aboxes{i} = aboxes{i}(nms(aboxes{i}, nms_overlap_thres, use_gpu), :);

出错 Faster_RCNN_Train.do_proposal_test (line 7)
    aboxes                      = boxes_filter(aboxes, model_stage.nms.per_nms_topN, model_stage.nms.nms_overlap_thres,
    model_stage.nms.after_nms_topN, conf.use_gpu);

出错 script_faster_rcnn_VOC2007_ZF>@(x,y)Faster_RCNN_Train.do_proposal_test(conf_proposal,model.stage1_rpn,x,y) (line 47)
dataset.roidb_train        	= cellfun(@(x, y) Faster_RCNN_Train.do_proposal_test(conf_proposal, model.stage1_rpn, x, y), dataset.imdb_train,
dataset.roidb_train, 'UniformOutput', false);

出错 script_faster_rcnn_VOC2007_ZF (line 47)
dataset.roidb_train        	= cellfun(@(x, y) Faster_RCNN_Train.do_proposal_test(conf_proposal, model.stage1_rpn, x, y), dataset.imdb_train,
dataset.roidb_train, 'UniformOutput', false)

解决方法 https://dl.pconline.com.cn/download/1610016.html

放进去,在这里插入图片描述
把缺失的拷到bin目录下

8、
错误使用 containers.Map/values,此容器中不存在指定的键。出错 roidb_from_voc>attach_proposals (line 172)

gt_classes = class_to_id.values({voc_rec.objects(valid_objects).class})

答:你标注的目标种类与datasets/VOCdevkit2007/VOCcode/VOC2007/VOCiniy.m中指定的目标种类不匹配。比如你只在VOCinit.m中写了一个目标类型标签‘car’,但你标记结果Annotations/中某个.xml中不小心标注两种对象object如’car’和’person’。这样机会报错,解决方法是重新标记那个.xml对应的图片,去掉多余的目标种类。
9
错误使用 fprintf
文件标识符无效。使用 fopen 生成有效的文件标识符。

出错 imdb_eval_voc (line 63)
fprintf(fid, ‘%s %f %.3f %.3f %.3f %.3f\n’, image_ids{i}, bbox(j,end), bbox(j,1:4));

出错 fast_rcnn_test (line 171)
res(model_ind) = imdb.eval_func(cls, aboxes{model_ind}, imdb, opts.cache_name, opts.suffix);

出错 Faster_RCNN_Train.do_fast_rcnn_test (line 6)
mAP = fast_rcnn_test(conf, imdb, roidb, …

出错 script_faster_rcnn_VOC2007_ZF (line 55)
opts.mAP = Faster_RCNN_Train.do_fast_rcnn_test(conf_fast_rcnn, model.stage1_fast_rcnn, dataset.imdb_test, dataset.roidb_test);

datasets文件组织不对,我的是缺了results文件
10
多看原作者任少卿github,很多问题都有。

训练步骤参考小咸鱼

11在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值