18年11月01日

一次成功用Open CV拼圖的經驗

懶惰,造就科研人才,所以我從小就注定投身這行業!上年我在日本因酒醉而買了一幅平常連碰都不會碰的拼圖,結果?看標題就知道了吧。

路飛…你害我近視加深了

一星期的堅持…

最初的一星期,我也堅持每天砌一點,可是七天很快便過去了,我看到的只有一幅拚圖的邊緣,根本連十分一也沒有!

你收聲!

然後…

然後我就把拼圖封印在床下底了…咦?不應該是這樣的,難道這不是一個天才工程師神跡般的技術完成拼圖的故事嗎?

… 不是。

半年後…用程式挑戰!

不過我又怎能讓它一直放在床下呢,於是我就打算用自己的專長把這又麻煩、又礙事的東西解決掉。這就是我當時的程式,我把原圖拆分成九格進行運算,這樣做除了計算速度比較快,也比較準確!

惡夢…

學習了兩種不熟悉的程式語言

這就是我喜歡做 Side Project 的原因,因為我經常要學習一些陌生的技術,每次都讓我感到很新鮮有趣。這次我總共寫了兩個程式

一個是 iOS App,主要是 real-time 拍下拼圖片然後傳送到伺服器,這花了我不少時間,還迫我裝了個黑蘋果…

另一個是 Python 伺服器再加上 OpenCV 3.0,CV 就是電腦視覺 Computer Vision 的縮寫,用於圖像比對,雖然 OpenCV 很有趣,但我不太喜歡 Python

難題 1、沒有原圖

我只能靠印在拼圖盒上的圖片作比較,大小最多就只 800pixel,加上小弟沒有攝影的習慣,所以全程都只是在用我的手機 iPhone 6S 進行拍攝,難免有準確性問題…

難題 2、不規則的形狀

因為拍照得來的拼圖的大小和形狀都跟原圖不一樣,所難度又增加了一點…

你爺爺丫!

我用了 OpenCV 的 Feature Matching 和 Homography 技術解決這個問題,這技術可以無視大小和 rotation 進行比較,但就如上面說的,我的原圖跟拼圖的圖像質素都不太好,所以效果就不太理想…

官方效果圖,這是騙人的…

結果還是要用肉眼看

雖然這個程式是有一點幫助,但是程式只能顯示大概的位置

改善方法  —  擴增實境(AR)

從那時候開始就一直有加入 AR 的想法,我只要拍下拼圖,App 就會「叮」一聲然後把正確的位置顯示出來,完美!

談何容易!經過多番嘗試,發現以現在的技術來說還有一定的難度,確準性是一大難題。但最近聽到 Apple 將推出 ARKit 2 的消息,又給了我一絲希望,我拭目以待!

完成品

幾經辛苦,我的拼圖在程式的協助下也花了約一星期才完成,短時間內我大概不會再碰 1000pic 的拼圖了…

p.s. 這程式只適用顏色有一定對比度的拼圖,好險我不是買純白地獄…

(´~`)

相關文章

OpenCV 拼圖輔助程式(續)