我正在尝试训练一个自定义对象检测器,这对yolov5架构可以训练的目标类对象的数量是有限制的。例如- coco数据集有80个目标类,假设我有500个对象类型要检测,是否建议使用yolov5。
这可以用理由来解释吗?
发布于 2021-10-25 02:37:29
您可以向任何网络添加任意数量的类。yolo架构以更关注推理时间而不是性能而闻名。虽然在传统数据集上取得了良好的结果,但yolo模型是为速度而构建的。
但从本质上讲,你需要一个拥有良好主干(深度和广度)的网络,可以真正从你的图像中获得丰富的功能。
根据我的经验,确实没有直接的答案。这也取决于您的数据集,如果您有大/中/小对象要检测。我真的建议尝试不同的模型,因为每个单独的模型在自定义数据集上的表现都不同。从这里你可以选择最好的一个。最先进的模型与迁移学习和微调方面的最佳模型没有直接关系。
对我来说,Yolo和其他所有的单镜头检测器在微调方面工作得最好(到目前为止,RetinaNet对我的用例来说是最好的),它们对于超参数调整很好,因为你可以快速训练它们,测试哪些有效,哪些无效。使用两个阶段检测器(Faster-RCNN等),我从来没有取得过总体上的好结果,主要是因为训练过程不同,而且速度慢得多。
我建议你阅读这篇article,它解释了两种架构类型,优缺点。
此外,如果您想要训练超过500个类的模型,Tensorflow对象检测API具有针对OpenImages数据集(600个类)的预训练模型,还有Detectron2 on LVIS数据集(1200个类)。如果您想要微调到数据集中类似数量的类,我建议从在较高数量的类上进行训练的模型开始。
https://stackoverflow.com/questions/69687666
复制相似问题