假设我有一个包含10,000张详细图像(例如照片)的数据库,我希望在其他环境中识别这些图像,例如挂在墙上的画框中,或者在公交站的海报上,因此不是完全相同的图像,而是打印出来的,可能带有反光,或者以不同的角度出现在另一张图像中。
我可以为其中一张图像在不同环境中(如挂在墙上、在公交站)创建一个训练集,但手动为每张图像这样做对我来说太多了。
我想到了一种方法,即编写一个计算机程序,将图像插入到各种位置,并使用这些作为训练集(例如,10,000张图像乘以X个位置/环境),但这将是一个非常大的训练集。
有没有其他方法可以在没有为每张图像专门创建训练集的情况下做到这一点?理想情况下,一旦模型训练完成,我可以给它第10,001张图像,它就能在各种环境中识别出来。
回答:
这通常使用基于特征的方法来完成,如SIFT、SURF等。这些方法创建的图像描述符对各种变形具有相当的鲁棒性,并且不需要训练。
然而,请注意,对于10,000张图像,效果可能会有所不同。
结果取决于未见图像的分辨率,每张10,000张图像中实际图像特征的数量,以及它们之间的相似程度。