问题描述
假设我有 3 个图像(一个苹果、一个橙子、一个香蕉)和另外 1000 个任意图像。我想要做的是看看这 1000 张任意图像是否包含与前 3 张图像相似的对象,如果是,则绘制一个边界框来指示这些对象。但是,这 1003 个图像或对象都没有标记,也没有任何注释。
我在互联网上做了一些研究,并试图找到一些深度学习对象检测方法(例如 Faster R-CNN、YOlov3),但我想不出它们如何与我的任务相关联。
我也注意到有一个术语叫做模板匹配,但它似乎与深度学习没有太大关系。
所以我的问题是:
有什么好的方法或深度学习模型可以满足我的需求?
我会从任何预训练的 Faster R-CNN、YOlov3 模型中受益吗? (例如,如果他们通过汽车、人、狗、猫图像集进行训练,这些有意义的特征是否也适用于新领域?)
解决方法
我想做的是看看这 1000 张任意图像是否包含与前 3 张图像相似的对象
“相似”是什么意思?
如果您的意思是“我想查看 1000 张图像是否包含来自目标类的对象:橙色、苹果和香蕉”,那么答案如下:
-
如果您的模型用您的目标类(橙色、 苹果和香蕉),然后你可以使用这些预先训练的模型来 检测您的 1003 个图像中的对象。你可以选择橙色, 苹果和香蕉作为配置中的类名。
-
如果您的预训练模型没有针对您的目标类别进行训练,并且您只有 1003 张图像,您将需要进行所谓的微调, 正在训练模型的最后一层。 1003 张图像可能不足以训练模型,您可能需要执行数据增强来扩展数据。此外,请考虑使您的类平衡(意味着每个类具有相同数量的对象)。
对于接近“相似度得分”的东西,您可以考虑 类x的置信度,即边界框包含对象x的可能性。但是,这个置信度主要取决于“有多好训练”模型在 x 类上。例如,不同模型对于相同图像的置信度分数可能不同。此外,同一模型对于同一对象在不同角度、光照和方向上可能具有不同的置信度分数。因此,无论如何对模型进行微调可能是一个更好的主意,以便它们对目标类的任何表示都更加“稳健”。