ssd训练错误

今天,填充数据重新训练SSD时出现错误

OpenCV Error: Assertion failed ((scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F)) in cvtColor, file /build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/imgproc/src/color.cpp, line 3959 
terminate called after throwing an instance of ‘cv::Exception’ 
what(): /build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/imgproc/src/color.cpp:3959: error: (-215) (scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F) in function cvtColor 
* Aborted at 1492071248 (unix time) try “date -d @1492071248” if you are using GNU date * 
PC: @ 0x7f1497764428 gsignal 
* SIGABRT (@0x3e800000985) received by PID 2437 (TID 0x7f1455438700) from PID 2437; stack trace: * 
@ 0x7f14977644b0 (unknown) 
@ 0x7f1497764428 gsignal 
@ 0x7f149776602a abort 
@ 0x7f1497d9d84d __gnu_cxx::__verbose_terminate_handler() 
@ 0x7f1497d9b6b6 (unknown) 
@ 0x7f1497d9b701 std::terminate() 
@ 0x7f1497d9b919 __cxa_throw 
@ 0x7f1487838c66 cv::error() 
@ 0x7f1489de2f91 cv::cvtColor() 
@ 0x7f149967b817 caffe::AdjustSaturation() 
@ 0x7f149967fc0b caffe::RandomSaturation() 
@ 0x7f14996802ef caffe::ApplyDistort() 
@ 0x7f149982f743 caffe::DataTransformer<>::DistortImage() 
@ 0x7f14997a5096 caffe::AnnotatedDataLayer<>::load_batch() 
@ 0x7f14997fbecb caffe::BasePrefetchingDataLayer<>::InternalThreadEntry() 
@ 0x7f1499685d45 caffe::InternalThread::entry() 
@ 0x7f149751a5d5 (unknown) 
@ 0x7f1496dd36ba start_thread 
@ 0x7f149783582d clone 
@ 0x0 (unknown) 
Aborted (core dumped)


观察错误大致是因为图像通道不一致,查询资料只SSD只支持3、4通道的数据,不支持单通道的图,因此解决方法就是写个脚本将灰度图从数据集里剔除。重新运行就可。

如何查询灰度图:可以用下面的表达来查找xml中所有depth!=3的图像
grep \<depth\>[^3]

 

然后用脚本将对应xml与jpg删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值