首页 > 解决方案 > 检测时使用哪种图像尺寸?.cfg 文件与 cv2.dnn.blobFromImage()

问题描述

我正在使用https://github.com/pjreddie/darknet

我有我的自定义 yolov3-tiny 模型,并在 .cfg 文件中使用 416 * 416 的大小对其进行了训练。

[net]
# Testing
batch=1
subdivisions=1
width=416
height=416
channels=3

我知道在将各种尺寸的训练图像转换为 416 * 416 之后开始训练。

而且我知道此命令将输入​​图像大小更改为 416 * 416 与 .cfg 文件一样,并检测 ~.jpg 中的对象

./darknet detect  ~.cfg  ~.weights  ~.jpg

现在我在检测中使用 Opencv dnn 模块。

net = cv2.dnn.readNet("./custom.weights", "./custom.cfg")
.
.
.
blob = cv2.dnn.blobFromImage(frame, 1/255, (416, 416), [0,0,0], 1, crop=False)
net.setInput(blob)
outs = net.forward(getOutputsNames(net))

我在 blobFromImage() 中将 (416, 416) 更改为 (608, 608) ,它仍然可以正常检测对象。但是网络上实际使用的图像大小是多少?是 608 * 608 还是 416 * 416 ?blobFromImage() 中的大小参数是否优先于 .cfg 文件?

标签: opencvobject-detectionyolo

解决方案


推荐阅读