2017-02-28 65 views
1

假設我有從我的移動攝像頭拍攝的汽車圖像,並且我從互聯網上下載了同一輛汽車的另一張圖像。 (爲了簡單起見,假設兩張圖像都包含同一輛車的相同側視投影。)如何比較兩個圖像代表相同的對象,如果對象的圖片屬於兩個不同的來源 - 在OpenCV中?

如何檢測兩張圖像是否代表相同的對象,即本例中使用OpenCV的汽車?

我試過模板匹配,功能匹配(ORB)等,但那些不工作,並沒有提供令人滿意的結果。

+1

你可以把ORB /模板匹配的結果,你試圖瞭解他們爲什麼他們「不工作」或「不提供令人滿意的結果」? –

+0

考慮接受最好的答案,如果他們有幫助。 – m3h0w

回答

1

SIFT特徵匹配可能比ORB產生更好的結果。然而,這裏的主要問題是,你只有一種類型的圖像(來自移動照相機和互聯網),如果你有這種車型的大量圖像,那麼你可以使用這些圖像訓練機器學習系統。以後你可以提交一個圖像的汽車到機器學習系統,並且機器學習系統識別它的機會要高得多

從機器學習的角度來看,只使用一個圖像作爲主,與另一個相匹配的情況類似於僅使用一個手寫字母「A」給孩子教字母「A」,並期待他/她識別任何人寫的任何手寫字母「A」

+0

所以,如果我們將汽車的圖像替換爲書的封面,由於書的封面是獨一無二的,並且如果應用相同的過程,您是否有這方面的建議? 就像我有Dan Brown的地獄的移動照相機圖像和一個網上下載的圖像一樣。在這種情況下你有什麼建議? – Neelesh

+0

書籍封面上的文字和插圖組件使它們成爲SIFT功能的更好選擇。圖書封面通常是平面的,所以照片和參考文獻之間的差異可以主要通過仿射變換,噪聲和光照變化來表示。 SIFT在這些條件下工作得很好。 我已經嘗試過OpenCV SIFT書本封面示例,僅供測試。工作總體良好。 – Totoro

+0

The paper at http://ai.pku.edu.cn/aiwebsite/research.files/collected%20papers%20-%20others/Book%20Cover%20Identification%20by%20Using%20Four%20Directional%20Features%20Filed.pdf有點舊,但算法應該很容易在OpenCV中實現。 TinEye是一家提供軟件的公司,你也可以看看他們的工作。 – Totoro

1

想想你怎麼能數學描述汽車的功能,以便每輛車我不同的。也許每輛車都有不同尺寸的車輪?也許從門把手到側窗底部的距離是每輛車的獨特特徵?也許每輛車的前車窗與後車窗寬度的比例是該車的個別特徵?

對這些問題中的任何一個,您都可能無法回答「是」,而且100%有信心。但是,你可以做的是將它們組合成一個多維特徵向量並執行分類。

現在,這裏至關重要的一點是,由於您正在進行手動功能描述,因此您需要關注做出優秀的工作並測試每一步的每一步。例如,您需要設計具有規模和透視不變性的特徵。在這裏,我建議閱讀face detection是如何設計來滿足這一要求的。

機器學習會是一個更好的解決方案嗎?取決於兩件事情。首先,你打算在算法中拋出什麼樣的數據。其次,你可以如何控制這個過程。

今天大多數人都沒有意識到,機器學習對於每一個問題都不是一種神奇的解決方案。它是一種工具,並且每種工具都需要適當的處理來提供結果。如果我要給你建議,我會說你不會很好地處理它。

我的建議:熟悉基本特徵提取和一般圖像處理算法。邊緣檢測(Canny,Sobel),輪廓發現,形狀描述,hough變換,形態學操作,掩蔽等。沒有那些觸手可及的情況下,我會說在這種特殊情況下,即使機器學習也不會救你。

對不起:這裏沒有捷徑。你需要做你的功課,以使這一個工作。但不要讓這嚇倒你。這是一個偉大的項目。祝你好運!

相關問題