python - 如何改进我的数据集以增加 yolov4 对象检测框架中的 mAP

标签 python google-colaboratory object-detection yolo yolov4

我想使用 Yolov4 物体检测器来检测 LED 矩阵,如附图中所示。我的项目的目标主要是在车辆场景中对这些类型的 LED 矩阵执行自动 RoI。

不幸的是,这些类型的对象并不是很受欢迎,我找不到一种方法来生成良好的训练数据集。我尝试使用不同的 cfg 参数训练 Yolov4 算法,但总是发生两件事:

  1. 过度拟合
  2. 算法不收敛,不执行检测。

您对如何改进数据集有什么建议吗?这种物体不太受欢迎。另外,我还附上了用于训练在 Google Colab 上执行的检测器的代码。

注意:我使用tiny-yolo-v4进行训练,因为它的s

from google.colab import drive
drive.mount('/content/gdrive')

!ln -s /content/gdrive/My\ Drive/ /mydrive

%cd /mydrive/yolov4

!git clone https://github.com/AlexeyAB/darknet

%cd darknet/
!sed -i 's/OPENCV=0/OPENCV=1/' Makefile
!sed -i 's/GPU=0/GPU=1/' Makefile
!sed -i 's/CUDNN=0/CUDNN=1/' Makefile
!sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile
!sed -i 's/LIBSO=0/LIBSO=1/' Makefile

!make

# run process.py file, used to create train.txt and test.txt from annotated images
!python process.py
!ls data/

# Here we use transfer learning. Instead of training a model from scratch, we use pre-trained YOLOv4 weights which have been trained up to 137 convolutional layers. Run the following command to download the YOLOv4 pre-trained weights file.
#!wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.conv.137
!wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.conv.29

!chmod +x ./darknet

#!./darknet detector train data/matheus.data cfg/yolov4-custom.cfg yolov4.conv.137 -dont_show -map
!./darknet detector train data/matheus.data cfg/yolov4-custom.cfg yolov4-tiny.conv.29 -dont_show -map

最佳答案

我假设您知道您想要附加的图像没有显示。

有几个重要因素可以帮助您改进 mAP 和数据集,以便训练 YOLOv4。

改进您的数据集:

  • 在数据集中包含相同状态的多个图像非常重要。

  • 如果您有很多类别,每个类别的图像越多,结果就越好、越准确。

  • 如果您的平均损失较低且平均平均精度也较低,那么您应该检查每个单独的测试图像并将其与数据集中的图像进行比较,您是否有足够的与数据集中的训练图像类似的训练图像你的测试图像?

  • 确保数据集的 10% 是完全没有标签的背景图像。这样,模型将被训练为不必不断地在图像中进行检测。 (这在固定相机/图像中是不必要的,预计至少有 1 次检测)

网络规模:

我对这个话题不感兴趣,所以请引用Stephanes FAQ .

如果您尝试使用 416x416 的尺寸来训练神经网络,网络会将任何图像的大小调整为网络的尺寸,这也会使图像中的对象变得更小。 YOLOv4 应该适用于任何大小为 16x16 像素及以上的对象。因此,如果图像中的任何物体一开始就非常小,那么幸运的是,这将对您的 mAP% 产生负面影响。

建议内容:每类 1000 张图像,其中许多图像在多个角度或情况下重复。

关于python - 如何改进我的数据集以增加 yolov4 对象检测框架中的 mAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75064208/

相关文章:

python - SQLite插入不同于2个变量

javascript - 使用回调使用 slider 更新 Bokeh 数据

python - Dlib 不在 Google Colab 上使用 GPU

c++ - 使用opencv跟踪移动车辆的可能方法

python - Python 脚本中 'import' 的放置

python - 删除多行字符串中直到给定模式的所有字符

python - Pandas 上采样不包括一年最后一天的 23 小时

google-colaboratory - 机器学习和模型训练

python - 如何使用 Detectron2 的张量板获得测试精度?

android - 我所有关于 opencv_traincascade 的问题