哈哈, 剛剛在知乎看到類似的問題, https://www.zhihu.com/question/39513724 , 某位答主和我一樣廢話比較多
, 我要是也能有人家一樣的技術就好了. 這個連結涉及到模闆比對的實際問題, 高票答主提到的ESM, 結構特征ASM的, 我都是第一次看到. 即便是我之前在下面提到的ICP算法也沒有實際去應用過, 計算機視覺的道路任重而道遠啊.
----------------2016. 9.11 15:46
---------------------------------------------------------------------------------------------------------------------------------------------------
這兩天等待投遞履歷回應的期間又從頭看起了算法書,
主要複習的是computer and machine vision 和 computer vision algorithms and applications,
加上對應opencv2 cookbook 涉及到的大部分算法
關于特征的部分我這裡做個總結, 盡量做全, 總結的可能會有不準确還希望讀者有自己的判斷, 歡迎留言探讨
HOG那篇論文中提到了Matching Shape
以及google到的 Matching Shape with a Reference Point
和 Hierarchical Matching of Deformable Shapes
我前面的部落格内容大部分都是圍繞着直線、圓、橢圓、多邊形這類的shape特征寫的, 像sift,surf,daisy之類的隻寫了一篇, 因為一開始隻是想翻譯, 措辭比較花時間, 沒能寫完. 還有一個重要的原因, 我認為像sift這樣的東西, 本身就是實驗得來的, 用的時候可能隻管效果, 可能不怎麼關心你這個是 harris-based 還是 hessian-based, 可能不會關心你這個是不是binary descriptor. 也許我需要精度高的用了sift, 也許我要實時強的orb, 甚至用freak. 也許什麼時候計算機能力提高sift也能實時, 總之還是要看描述子本身的特性. 覺得這方面先讀懂sift就夠了, 大家又不去設計descriptor, 用到哪再看哪好了.
----------------------------------------------------------------
注: 實際上上面這段話還是有些偏頗的, 最近看的論文, 有人會修改descriptor. 另外二值描述子相對來說更快
------------2016.6.27
---------------------------------------------------------------
對于有噪點存在的shape特征, 一般都是用hough變換或者是ransac,
其他方法我反正在computer and machine vision這本書裡沒有見過, 在algorithms and applications裡也隻多提了個vanishing point, 實際上也不是找shape特征, 找的是透視投影的視點, 可以用霍夫變換去找這樣的視點.
對于能給出一般方程表示出的曲線, ransac和hough變換都能找到, 可能要注意的是如果參數次元過高, 可能需要降維簡化計算
對于不能給出一般方程的, 如果像簡單的線、圓特征組合, ransac和hough可能還能使用, 如果是複雜曲線, 用這兩個找參數的思路可能就不行了.
下面我來說一個這兩天在CSE586課件裡面看到的檢測方法(shape alignment)
圖檔來源: http://www.cse.psu.edu/~rtc12/CSE586/
對于這兩條線, 我們要找到一個使下面式子取最小值的變換(平移+旋轉+尺度, x1, x2代表兩條直線, T(x2)表示變換x2)
圖檔來源: http://www.cse.psu.edu/~rtc12/CSE586/
有時候我們可能會不知道T, 這時就需要ICP算法(Iterative Closest Point)
算法介紹: 張正友 Iterative Point Matching for Registration of Free-Form Curves and Surfaces
wiki https://en.wikipedia.org/wiki/Iterative_closest_point
最後一種方法, correlation(這個詞我不知道該怎麼翻譯)
correlation我之前在特征比對SSD提到過, 一開始求最小 sum square difference經過推導 到求 最大的correlation
也就是用Correlation-based Algorithms, 有求差的, 有求差的平方的, 具體不細講了用到的話找這方面看看就好
correlation可能計算量要比前面大一些, 而且對于旋轉之類的變換基本沒有辦法(遇到無法估計的R,T), 遇到縮放也比較麻煩, 要将待檢測的圖像進行一系列的縮小或放大, 多尺度的尋找要多很多計算量
ps : 關于特征檢測, 一般就是用sliding window(滑窗), bounding box(外接矩形), 對于多尺度, 有改變滑窗大小的, 有改變待檢測圖像大小的, bounding box一般直接resize就行,我不知道有沒有bounding box+ sliding window 的, 對于機器學習來說, 輸入的特征向量的維數需要一緻. 對于深度學習, 可能就沒有這樣的要求, 我看到的都是用滑窗