使用OpenCV DNN和YOLOv3的对象检测不良

时间:2019-08-27 17:54:19

标签: opencv computer-vision object-detection yolo

OpenCV的DNN模块随附object detection sample code

我从训练时使用的同一COCO数据集中下载了YOLOv3模型和示例图像:

wget https://pjreddie.com/media/files/yolov3.weights  
wget https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov3.cfg
wget http://farm8.staticflickr.com/7272/7745390240_0dcf7d107d_z.jpg

以下是场景中标记的对象:

labeled objects

然后我运行示例代码以检测未标记图像中的对象:

python object_detection.py --model yolov3.weights --config yolov3.cfg --height 320 --input 7745390240_0dcf7d107d_z.jpg 

这将在检测到的对象周围绘制矩形。但是这些检测基本上是垃圾。

detections


如果我直接使用Darknet,则标签如下:

darknet output

1 个答案:

答案 0 :(得分:2)

enter image description here

缺少的参数似乎是%.2f,它们来自this tutorial

--scale 0.00392 --rgb

这些作为参数传递给 --scale SCALE Preprocess input image by multiplying on a scale factor. (default: 1.0) --rgb Indicate that model works with RGB input images instead BGR ones. (default: False)

我认为cv2.dnn.blobFromImage实际上不是在调整输入图像的大小,而是将图像的每个元素转换为[0.0,1.0]范围内的浮点数。 0.00392约为1/255。