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
以下是场景中标记的对象:
然后我运行示例代码以检测未标记图像中的对象:
python object_detection.py --model yolov3.weights --config yolov3.cfg --height 320 --input 7745390240_0dcf7d107d_z.jpg
这将在检测到的对象周围绘制矩形。但是这些检测基本上是垃圾。
如果我直接使用Darknet,则标签如下:
答案 0 :(得分:2)
缺少的参数似乎是%.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。