计算机视觉caffe之路附1:Ubuntu+Opencv+Caffe开发深度学习常见错误及经验
来源:互联网 发布:python 连接sap 编辑:程序博客网 时间:2024/04/29 16:36
- Opencv31编译CUDA版本大于80引起
- GPU选择错误
- 图像模式错误非RGB
- mbox_loss 0 1 0 loss
- bndbox参数超出图像尺寸
- 找不到或打不开图片文件
- 关于学习率的设置base_lr
- cvimshow不显示图片
- LNK1104 无法打开文件opencv_dep_cudartlib
1.Opencv3.1编译,CUDA版本大于8.0引起
/home/usrname/OpenCV-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState‘ has not been declared typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat
解决方法:
进入opencv-3.1.0/modules/cudalegacy/src/目录,修改graphcuts.cpp文件,将:
#include "precomp.hpp"#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改为
#include "precomp.hpp"#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
2.GPU选择错误
Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal
原因:GPU选择错误caffe.set_device(1)
。
解决方法:
改为 caffe.set_device(0)
Jetson TX1只有一个GPU,#0。
3.图像模式错误:非RGB
在训练自己数据集时报出如下两类错误:
OpenCV Error: Assertion failed ((scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F)) in cvtColor, file /ssda/software/opencv-3.1.0/modules/imgproc/src/color.cpp, line 8141terminate called after throwing an instance of 'cv::Exception'
或者:
annotated_data_layer.cpp:205] Check failed: std::equal(top_shape.begin() + 1, top_shape.begin() + 4, shape.begin() + 1)
原因:数据集图片内混有非RGB模式图片,如灰度图(L),img.mode='L'
。
解决方法:
- 去掉非RGB图片。
- python转换L为RGB:
img = img.convert("RGB")img.save(dir+'/' + name + '.jpg')
4. mbox_loss = 0 (* 1 = 0 loss)
原因是数据集制作错误,如果使用VOC作为参考,需要严格按照其格式,包括数据类型,例如bndbox:
<bndbox> <xmin>60</xmin> <ymin>27</ymin> <xmax>385</xmax> <ymax>331</ymax></bndbox>
解决方法:
bndbox参数必须为整数,如果是小数<xmin>60.0</xmin>
,运行时不会报错,但是训练模型不会成功,持续是loss=0。
5. bndbox参数超出图像尺寸
错误现象:
xml bounding box irregular
解决方法:
修改bndbox参数,使其不超过图片尺寸。
6.找不到或打不开图片文件
在制作数据集的过程中,经常出现can not open or find ..pic.jpg
之类的找不到图片的错误,但是路径是正确的,文件也存在。
原因:图片列表文件train.txt、val.txt或者trainval.txt、test.txt的换行符包含’\r’,这是由windows导入到Linux下出现的
解决方法:
将’\r\n’全部替换’\n’。
7.关于学习率的设置:base_lr
不能设置太大,数十次迭代之后就会出现Nan;
不能设置太小,否则loss基本不会下降;
受制于GPU显存大小,通常batch_size不可能设置成容纳全部图片,Jetson TX1训练ssd时只能设置为4,还是在不test的情况下,因此loss波动会很厉害,但是是正常现象,并非学习率设置太大导致的波动,进而改小学习率导致始终无法下降。
通常设置初始学习率base_ir为0.0001,stepsize为20000。实际训练总,设置合适的snapshot,多存储快照,根据 计算机视觉caffe之路第五篇:ImageNet数据集训练及预测实例中绘制loss曲线的方法监控loss下降趋势,如果发现loss不下降,这适当调大base_lr,通常是成倍的增加,自制loss有效下降。
此外可以学习下这篇论文:http://cilvr.nyu.edu/lib/exe/fetch.php?media=deeplearning:dl-optimization.pdf
8.cv::imshow不显示图片
cv::VideoCapture cap(0);//0表示摄像头id //cap.open("test.avi"); //或者打开视频cv::namedWindow("video",1); for(;;){ cv::Mat frame; cap<<frame; if(frame.empty()) break; cv::imshow("video",frame); cv::waitKey(10) //!!!}
注意最后一定要加上waitKey(10)
,否则显示窗口不会显示,原因是循环中,highgui没有给予imshow绘制处理的时间。
9.LNK1104 无法打开文件“opencv_dep_cudart.lib”
用vs2015编译有些opencv项目时出现此编译错误。
解决方法:
在项目-属性-连接器-输入-附加库目录中,删除opencv_dep_cudart.lib项目。
未完待续
- 计算机视觉caffe之路附1:Ubuntu+Opencv+Caffe开发深度学习常见错误及经验
- 计算机视觉caffe之路附2:caffe资源汇总
- 深度学习框架Caffe之常见错误
- 计算机视觉caffe之路附3: Caffe均值文件mean.binaryproto转mean.npy
- 计算机视觉的开源深度学习:Torch VS Caffe
- [深度学习之caffe配置] ubuntu下配置caffe框架
- 【深度学习】caffe之编译错误
- 深度学习之caffe
- 深度学习之----caffe
- 计算机视觉caffe之路第三篇:CIFAR-10数据集训练及预测实例
- 计算机视觉caffe之路第四篇:VOC2007数据集训练及预测实例
- 计算机视觉caffe之路第五篇:ImageNet数据集训练及预测实例
- Ubuntu搭建Caffe深度学习
- 深度学习--caffe(1)
- 深度学习笔记(1)------linux Ubuntu 14.04+Anaconda2+opencv 3.2.0+caffe-master配置
- 深度学习之caffe使用小结(1)
- 计算机视觉及深度学习
- 深度学习之caffe Loss
- java之接口
- insert into on DUPLICATE KEY UPDATE使用
- 庆祝博客开通,这是个良好的开端,哈哈哈哈!
- IIS安装报错:使用了托管处理程序,但是未安装或未完整安装 ASP.NET
- MySQL 入门常用命令大全(上)
- 计算机视觉caffe之路附1:Ubuntu+Opencv+Caffe开发深度学习常见错误及经验
- ARM程序的镜像文件以及在内存中的分区
- cocos2dx的hello world C++工程转到android studio上继续开发
- java中Atomic类之AtomicLong
- Eclipse使用码云上传代码和下载代码
- 数据的地理配准
- Python 批量下载验证码图片及切割验证码图片,识别验证码,并以识别的文字重命令验证码
- JAVA 基础语法(六)——方法(函数)
- 宽带密码忘了怎么办?ADSL宽带账号密码找回教学