我已经设置了Tensorflow对象检测模型(例如带有可可的SSD或任何其他模型)来检测图片中的``汽车'',效果很好。现在,我想在coco上使用预先训练的SSD模型,用我自己的数据集训练相同的SSD模型,以检测自定义对象,例如“门”。 问:训练完模型后,训练后的SSD模型是否仍然能够检测到“汽车”和“门”?否则,受过训练的模型将仅检测到“门”,因为这就是该模型所针对的。 如果训练后的模型没有检测到“汽车”和“门”,我如何实现检测“汽车”(这是标准对象)和“门”,我希望训练模型来检测自定义对象?
谢谢。
答案 0 :(得分:0)
在不同类别的集合上微调预训练模型时(新集合是否包含旧模型或是否包含旧模型都没关系),每个检测头的权重为已初始化,因为它不再是同一层了。 例如,如果您有SSD检测器,则检测头是具有#anchors *(4 +#classes)个通道的卷积头。如果您更改#classes,则通道数也会更改,并且不再是同一层。 因此,当您对模型进行微调以检测“汽车”和“门”时,即使预先训练的模型已经知道可以检测“汽车”,您也必须同时在“汽车”和“门”上训练模型。 。 但是,由于所有其他层都已还原,因此可能更容易检测到“汽车”,并且需要对“门”进行更多的培训。