25

我正在尝试在 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

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

4

5 回答 5

31

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

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

于 2018-04-23T16:06:38.260 回答
8

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

于 2018-03-23T23:58:33.510 回答
8

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

于 2019-08-03T07:54:44.187 回答
2

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

  1. 当您打开darknet.cfg(yolo-darknet.cfg) 文件时,您可以查看所有
    超参数及其值。
  2. 如您的cfg文件中所示,图像尺寸为 (416,416)->(weight,height),您可以更改这些值,以便暗网在训练前自动调整图像大小。
  3. 由于图片的维度比较高,可以调整batch和sub-division的值(降低32,16,8,必须是2的倍数),这样darknet就不会崩溃(内存分配错误)
于 2019-02-26T12:12:12.890 回答
0

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

于 2020-06-25T18:38:28.087 回答