opencv - 检测时使用哪种图像尺寸?.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 文件?
解决方案
推荐阅读
- javascript - 如何在 c3 分组条形图上固定 Y 轴的位置?
- java - 错误:用于编码 windows-1251 的不可映射字符 (0x98)
- pentaho - 如何在pentaho pdi的目标表中检查数据是否存在
- html - 使用弹性框时如何在属性周围垂直应用空间?
- python - windows 10更改用户文件夹名称后如何恢复系统
- c# - 正确的过载选择
- python - 如何在树莓派 3 中安装 pymysql sing raspbian os
- ios - 当我得到数组值时应用程序崩溃
- c - 打印 memcpy 垃圾数据后
- c# - 使用 .Net 提供额外的 platform.dependent .dll