我已经建立了Tensorflow对象检测模型(带有coco或任何其他模型的e.g.SSD)来检测图片中的“汽车”,它工作得很好。现在我想用我自己的数据集,在coco上使用预先训练好的SSD模型来训练相同的SSD模型,以检测一个自定义对象,比如“门”。问:训练完模型后,经过训练的SSD模型还能检测到“车”和“门”吗?或者,训练的模型将只检测“门”,因为这是模型训练的目的。如果训练的模型没有检测到“汽车”和“门”,我如何实现检测“汽车”(这是一个标准对象)和“门”,我希望模型被训练来检测自定义对象?
谢谢。
发布于 2018-10-18 15:02:07
当在不同的类集合上微调预先训练的模型时(新的集合是否包括旧的模型或包含在其中等都无关紧要),每个检测头的权重都会初始化,因为它不再是同一层。例如,如果您有一个固态硬盘检测器,则检测头是具有#个锚点*(4+#classes)通道的卷积头。如果更改#classes,通道的数量也会更改,并且不再是同一层。因此,当你微调一个模型以检测“汽车”和“门”时,你将不得不在“汽车”和“门”上训练模型,即使预先训练的模型已经知道检测“汽车”。然而,由于所有其他层都被恢复了,所以“汽车”将更容易被检测到,而“门”将需要更多的训练。
https://stackoverflow.com/questions/52859477
复制相似问题