Darknet YOLO图像大小

Far*_*ts9 8 machine-learning image-recognition tensorflow darknet yolo

我正在尝试在Darknet中训练自定义对象分类器YOLO v2 https://pjreddie.com/darknet/yolo/

我收集了一个图像数据集,其中大部分都是6000 x 4000像素和一些较低的分辨率.

我需要在训练前调整图像的大小才能平方吗?

我发现配置使用:

[net]
batch=64
subdivisions=8
height=416
width=416
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1
Run Code Online (Sandbox Code Playgroud)

这就是为什么我想知道如何将它用于不同大小的数据集.

Ner*_*xis 13

您不必调整大小,因为Darknet会代替您而不是!

这意味着您真的不需要这样做,并且您可以在训练期间使用不同的图像大小.您上面发布的内容只是网络配置.还应该有完整的网络定义.高度和宽度告诉你什么是网络分辨率.而且它也保持纵横比,检查如这个.

  • 一点更新/评论:我发现还有其他基于Darknet的存储库(例如[this](https://github.com/AlexeyAB/darknet))无法保持宽高比。检查一下:https://github.com/AlexeyAB/darknet/issues/232#issuecomment-336955485 (2认同)

Dav*_*rks 8

在训练之前调整图像大小是很常见的。416x416 比普通的略大。例如,大多数 imagenet 模型将图像调整大小并将其平方为 256x256。所以我希望这里也一样。尝试在 6000x4000 上进行训练将需要大量 GPU。标准过程是将图像平方到最大尺寸(高度或宽度),在较短的一侧填充 0,然后使用标准图像调整工具(如 PIL)调整大小。


Nou*_*san 6

您不需要调整数据库图像的大小。PJReddie 的 YOLO 架构根据 .cfg 文件中的分辨率自行确保纵横比安全(不会丢失任何信息)。例如,如果您的图像大小为 1248 x 936,YOLO 会将其调整为 416 x 312,然后用黑条填充额外的空间以适应 416 x 416 网络。