问题描述
我使用darknet和yolov4为用例训练了一个自定义对象检测模型。我在obj.name文件中提到了3个类,如下所述:
# data/obj.names
no_helmet
helmet
vest
培训已完成,检测工作也取得了良好的结果。
现在,我想向模型中添加2个新类,所以我用2个新类名更新了类文件:
# data/obj.names
no_helmet
helmet
vest
fire
smoke
我对配置文件进行了更改,并为所有classes=3
层及之前classes=5
的{{1}}更新为filter=24
,将filter=30
更新为[yolo]
}层。
对于数据集,我仅提供了两个新类([convolutional]
和fire
)的图像和注释。
然后,我开始进行暗网训练,并为权重参数提供了旧的yolov4训练过的权重。完成后,我进行了测试,但未在图像中检测到任何东西。甚至老班级也没有。
我哪里出错了?
我的感觉是,由于我没有为较旧的类提供数据集,因此该模型忘记了这些。但是,那么它至少应该检测到新的类,对吗?还是我在这里错了?
新编辑:
我再次使用合并的数据集(旧的3个班级和2个新的班级)对预先训练的自定义权重(针对前3个班级进行了培训)进行了训练,当我将其用于测试时,仍然没有输出。 / p>
有人可以告诉我这是怎么回事吗?我在想它背后有一些我不知道的数学。
我每次都要从头开始训练吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)