该问题已在最新版本中修复。
问题描述:
在windows下使用vs2015 + Yolov3的DLL版本时(https://github.com/AlexeyAB/darknet),根据官网有两种检测方法如下图:

一种是直接加载图片的文件名,另一种是使用Opencv,先用Mat加载图片文件名,再用Detector做检测。按道理来说两种方法检测效果应该一致,可是实际情况却是使用Mat作为检测目标时,检测效果没有直接加载图片做检测的效果好。
解决方案:
从源码比较
std::vector<bbox_t> detect(std::string image_filename, float thresh = 0.2, bool use_mean = false);和
std::vector<bbox_t> detect(cv::Mat mat, float thresh = 0.2, bool use_mean = false);
这两种方法的异同。发现detect(cv::Mat mat, float thresh = 0.2, bool use_mean = false);方法在检测之前
先对Mat做了一

在Windows环境下使用VS2015和Yolov3的DLL版本时,通过文件名加载图片和使用OpenCV的Mat加载图片进行检测,效果存在差异。问题在于detect(cv::Mat mat)方法中对Mat进行了resize操作导致检测质量下降。解决方案是修改源码,避免不必要的resize步骤,从而保持检测的一致性。
最低0.47元/天 解锁文章
7243





