【问题标题】:Pretrained model or training from scratch for object detection?用于对象检测的预训练模型或从头开始训练?
【发布时间】:2021-05-05 00:17:37
【问题描述】:

我有一个由 10k-15k 图片组成的数据集,用于监督对象检测,这与 Imagenet 或 Coco 非常不同(图片更暗,代表完全不同的事物,与工业相关)。

目前使用的模型是 FasterRCNN,它使用 Resnet 作为主干提取特征。 是否可以在一个阶段从头开始训练模型的主干,然后在另一个阶段训练整个网络,而不是加载在 Coco 上预训练的网络,然后在一个阶段重新训练整个网络的所有层?

【问题讨论】:

  • 你能解释一下骨干是什么意思吗?您是说卷积网络权重作为一种无监督技术(如自动编码器)吗?以及最终的目标检测作为监督方式?
  • 感谢您的评论,我编辑了一些细节的问题。

标签: deep-learning pytorch conv-neural-network object-detection transfer-learning


【解决方案1】:

根据我的经验,这里有一些要点:

  • 您的训练集不够大,无法从头开始训练检测器(尽管取决于网络配置,fastrcnn+resnet18 可以工作)。最好在 imagenet 上使用预训练的网络;
  • 网络预训练的域并不那么重要。网络,尤其是大网络,需要学习所有这些拱形、圆形和其他原始图形,以便使用这些知识来检测更复杂的物体;
  • 火车图像的亮度可能很重要,但不会阻止您使用预训练网络;
  • 从头开始训练需要更多的时期和更多的数据。训练时间越长,你的 LR 控制算法就越复杂。至少,它不应该是恒定的,而是根据累积损失来改变 LR。初始设置取决于多种因素,例如网络规模、增强和 epoch 数;
  • 我玩了很多fastrcnn+resnet(不同层数)和其他网络。我建议你使用 maskcnn 而不是 fasterrcnn。只需命令它不要使用掩码,不要进行分割。我不知道为什么,但它提供了更好的结果。
  • 不要将时间花在移动网络上,以您的训练集大小,您将无法使用一些合理的 AP 和 AR 对其进行训练。从 maskrcnn+resnet18 主干开始。

【讨论】:

    猜你喜欢
    • 2019-06-21
    • 2019-01-22
    • 2017-08-19
    • 2020-01-15
    • 2018-08-12
    • 2022-10-19
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多