Net.forward()出错的解决方式
个人环境为VS2015+opencv4.0,目标为使用Net.forward()实现Mask R-CNN目标检测的前向推断。出现的问题为,有些图片能正常检测,有些图片却出现CV:Exception(ucrtbase.dll)异常。
遂使用try catch查找错误:
try { net.forward(outs, outNames); } catch (cv::Exception& e) { const char* err_msg = e.what(); QString s1(err_msg); qDebug() << "exception caught: " << err_msg << s1<< endl; }
得到的结果为: OpenCV(4.0.0) C:……matrix.cpp:540: error: (-215:Assertion failed) r == Range::all() || (0 <= r.start && r.start < r.end && r.end <= m.size[i]) in function ‘cv::Mat::Mat’
于是将需要检测的图像尺寸缩小,即可以正常显示结果。 令人疑惑的是,出现异常的图片甚至比可以正常显示结果的图片尺寸更小。因此出现问题的原因,和图片尺寸非直接挂钩,而可能是计算过程中产生的内存溢出。
上一篇:
JS实现多线程数据分片下载
下一篇:
对象储存服务obs优劣以及实践储服务