2017-01-16 94 views
0

我有一個應用程序需要拍攝一張房間的兩張照片,並檢測第一張照片中的某個物體是否在第二張照片中丟失。它如何使用OpenCV或任何其他工具做到這一點?使用圖像比較檢測丟失的物體

+0

這比你想象的要難。 – sascha

+1

這兩個圖像有相同的POV?你有你要找的物品的模板嗎?物體總是具有相同的方向?或者你只是在尋找任何/所有缺失的物體? 如果你想得到更完整的答案,我認爲你必須詳細闡述你的問題。 – Soltius

+1

計算兩個幀的差異,只要相機的位置和照度保持不變,就會產生一個二進制掩碼,您可以稍後使用它來查找輪廓並獲取丟失物體的位置 – ZdaR

回答

1

如果您感興趣的對象具有衆所周知的結構 - 即它是一個增強現實標記,那麼這個任務將被很好地描述並且實現起來幾乎是微不足道的。如果您沒有關於丟失物體的先驗知識,則唯一可以做的就是比較2張照片,即可以用SIFT或SURF完成的全景拼接(請進一步閱讀這些內容)。如果對象更加複雜,並且如果兩個圖像都是以相似的視野拍攝的,並且缺失對象的模型是先驗已知的(即您只有一張感興趣對象的圖片),則可以使用SIFT或SURF檢測先驗模型圖像和輸入圖像(想要找到缺失物體的圖像)中的特徵,執行特徵匹配並查找最密集的匹配特徵(即使用粒子羣優化算法)。你需要意識到這不會在任何情況下都有效,並且可能會給你帶來很多誤報。像各種不同的物體,照明差異,部分遮擋等干擾很容易破壞這個模型。這種方法不需要對圖像進行變形等等,因爲SIFT是規模,平移和旋轉不變的。我們有很多更健壯的方法,包括深度學習(查找關於物體檢測的科學論文),但具有特徵匹配的方法似乎是最先嚐試的最簡單的方法。