Darknet YOLO图像大小

时间:2018-03-23 13:31:55

标签: tensorflow machine-learning image-recognition 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

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

5 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

您无需调整图像大小,可以直接更改darknet.cfg文件中的值。

  1. 打开darknet.cfg(yolo-darknet.cfg)文件时,您可以全部
    超参数及其值。
  2. cfg文件中所示,图像尺寸为(416,416)->(重量,高度),您可以更改值,以便darknet在训练之前自动调整图像的大小。
  3. 由于图像的尺寸较大,因此可以调整批处理和细分值(较低的值32、16、8。该值必须为2的倍数),以使Darknet不会崩溃(内存分配错误)< / li>

答案 3 :(得分:1)

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

答案 4 :(得分:0)

默认情况下,暗网api在推理和训练中都会更改图像的大小,但理论上任何输入大小w,h = 32 x X,其中X属于自然数,W是宽度,H是高度。默认情况下,X = 13,因此输入大小为w,h =(416,416)。我在opencv中将这个规则与yolov3一起使用,并且X越大越好。