我有一个应用程序需要拍摄一张房间的两张照片,并检测第一张照片中的一个物体是否在第二张照片中丢失。如何使用OpenCV或任何其他工具来做到这一点?
答案 0 :(得分:1)
如果您感兴趣的对象具有众所周知的结构 - 即它是增强现实标记,则此任务被很好地描述并且实现起来几乎无关紧要。如果您没有关于丢失物体的先验知识,您唯一能做的就是比较2张照片,例如可以用SIFT或SURF完成的全景拼接(请进一步阅读这些照片)。如果对象更复杂,并且如果两个图像都是使用相似的视野拍摄的,并且缺失对象的模型是先验已知的(即您拥有感兴趣对象的图片而且只有它),您可以使用SIFT或SURF用于检测先验模型图像和输入图像(您想要找到缺失对象的图像)中的特征,执行特征匹配并寻找最密集的匹配特征群(即使用粒子群优化算法)。你需要意识到这并不适用于所有情况,并且可能会给你很多误报。诸如物体看起来与每一侧不同,光线差异,部分遮挡等干扰将很容易打破这种模式。这种方法不需要对图像等进行去扭曲,因为SIFT是缩放,平移和旋转不变的。
有很多更强大的方法,包括深度学习(寻找关于物体检测的科学论文),但具有特征匹配的方法似乎是最容易尝试的方法。