【问题标题】:Why yolo can't detect all objects in image?为什么yolo检测不到图像中的所有物体?
【发布时间】:2019-10-10 07:50:10
【问题描述】:

我正在尝试使用 AlexeyAB 暗网检测图像中的物体。但它只检测到 2 或 3 个物体。它无法检测到小物体(例如帽子)。我正在使用这个命令:

./darknet detector test ./cfg/coco.data ./cfg/yolov3.cfg /weight_path/ /image_path/

我该怎么做?

【问题讨论】:

    标签: machine-learning image-processing object-detection yolo darknet


    【解决方案1】:

    根据AlexeyAB page 对于小物体,您可以这样做:

    用于训练小物体(小于 16x16 后的图像 调整为 416x416) - 设置图层 = -1, 11 而不是 https://github.com/AlexeyAB/darknet/blob/6390a5a2ab61a0bdf6f1a9a6b4a739c16b36e0d7/cfg/yolov3.cfg#L720 并设置 stride=4 而不是 https://github.com/AlexeyAB/darknet/blob/6390a5a2ab61a0bdf6f1a9a6b4a739c16b36e0d7/cfg/yolov3.cfg#L717

    对于训练小型和大型对象,您可以使用修改后的模型:

    同样在训练完成后,在检测阶段,你可以做以下事情:

    通过在您的 .cfg 文件中设置来提高网络分辨率(height=608 和 width=608) 或 (height=832 and width=832) 或 (32 的任意倍数) - 这提高了精度并可以检测小物体:link

    • 无需再次训练网络,只需使用已训练为 416x416 分辨率的 .weights 文件

    • 但为了获得更高的准确度,您应该使用更高分辨率 608x608 或 832x832 进行训练,注意:如果出现内存不足错误
      然后在 .cfg 文件中,您应该增加 subdivisions=16、32 或 64:link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 2015-12-06
      • 1970-01-01
      • 2021-11-29
      • 2020-10-30
      • 1970-01-01
      • 2016-08-24
      相关资源
      最近更新 更多