角點
? ? ? ? 一般來說,角點就是極值點,在某些屬性上強度最大或者最小的孤立點、線段的終點或拐點等。其實理解角點可以按照我們的直覺來理解,以下圖為例,圖中用顏色標注的地方都是角點:
? ? ? ? 原圖地址:理解經(jīng)典角點檢測算法–Harris角點 | 碼農(nóng)家園?
? ? ? ? ?對于人類來說,判斷角點是很容易的,對于計算機來說又是如何檢測到角點的呢?
角點的特征
? ? ? ? ?這幅圖應該是所有講角點特征的時候必用的圖了。對于平坦區(qū)域,當我們對某個子窗口超各個方向進行移動統(tǒng)計區(qū)域內梯度變化的時候,基本不會有明顯的梯度變化;對于邊來說,在某個方向上梯度有明顯變化;對于角來說,移動時各個方向的梯度變化都很明顯。
? ? ? ? 上圖的意思,就是說我們設定一塊小區(qū)域或小窗口,然后朝著各個方向進行移動,計算出各個方向移動的時候對應的梯度變化,然后進行對所有方向的變化進行加和。用數(shù)學公式表達如下:
? ? ? ? 其中:
? ? ? ? (x,y)表示窗口w對應的像素坐標位置,有多少個像素點位置取決于窗口的大小
? ? ? ? I(x,y)是像素坐標為(x,y)的像素點的灰度值
? ? ? ? I(x + u, y + v)是像素坐標為(x + u,y + v)的像素點的灰度值
? ? ? ? w(x,y)是一個窗口函數(shù),實際理解為一個權重值就可以了,窗口函數(shù)一般有兩種思路:
? ? ? ? ?一種是用邊界判斷的方法,窗口內的像素權重都取1,窗口外的像素權重都取0.實際上這種方式就相當于沒有窗口函數(shù)了(Moravec)。
? ? ? ? 另一種思路是用高斯函數(shù)做加權,如果窗口W中心點是角點時,移動前與移動后, 該點在灰度變化貢獻最大;而離窗口w中心(角點)較遠的點對灰度變化貢獻較小,因此使用二維高斯函數(shù)來表示窗口函數(shù)是自然而然的事情。
? ? ? ? 實際上,上面的式子就是Moravec角點檢測算法的核心,這種角點檢測方法的(u,v)考慮了0°,45°,90°,135°方向的像素點坐標,實際可以理解為(u,v)取值有四種 (1, 0) , (1,1), (0,1)以及(-1,1)。當然,實際應用中,我們也可以讓(u,v)取8個方向的值。
? ? ? ? 從Moravec角點檢測算法看,它主要有幾個缺點:
? ? ? ? 1.? 不具有旋轉不變性和尺度不變性
? ? ? ? 2. 算法使用方形窗口,因此的E的響應比較容易受到干擾
? ? ? ? 3. 對邊緣響應過于靈敏
二元函數(shù)泰勒展開
? ? ? ? 要理解Harris角點檢測,我們需要知道二元函數(shù)泰勒展開式。
? ? ? ? 這個公式看起來很復雜,實際上對于理解Harris角點檢測來說,我們不用關注二階導以上的部分。關注一下一階導部分即可,我們將h和k換成前一小節(jié)的u和v,則有如下近似:
? ? ? ? ? 其中,和分別表示x的一階偏導和y的一階偏導。
Harris角點檢測
? ? ? ? Harris角點檢測的w窗口函數(shù)一般情況選取的是二維高斯函數(shù),當然也可以用其他窗口函數(shù)。
? ? ? ? 我們先切回到求E的這個等式:
? ? ? ? 我們對中括號里的這一項,進行二元函數(shù)泰勒的一階展開,可得:
????????
? ? ? ? 將這個式子帶回到原始,可得(這里忽略掉窗口函數(shù)):
? ? ? ? ?然后,將這個完全平方展開的式子改寫成矩陣形式:
? ? ? ? 這個矩陣形式,可以用矩陣乘法計算一下,和之前的式子是相等的。對于求和符號來說,由于u,v和x,y是無關的,我們可以將包含u和v的向量提取出來,得到:
????????我們將窗口函數(shù)放回來,用一個矩陣M來表示,可以得到:
?? ? ? ? 最后,我們可以得到E(u,v)和M的相關函數(shù):
? ? ? ? 得到這個式子后,我們可以看到,E的值和M是相關的。
? ? ? ? 我們再來看M矩陣:
? ? ? ? ?這是一個實對稱矩陣(2階方陣,元素都是實數(shù),并且轉置矩陣和M本身相等),這里不管每一個Ix和Iy取值如何,相加后矩陣仍然是對稱的。
????????實對稱矩陣一定可以做相似對角化,即存在正交矩陣P,使得
? ? ? ? ,是M的特征值,由上面的式子可以得:
????????由于P是正交矩陣,P的轉置? ,因此,有:
????????
? ? ? ? ?將M代回到E(u,v),可以得到:
? ? ? ??
? ? ? ? 根據(jù)矩陣的轉置運算規(guī)則:,可以知道:
????????
? ? ? ? 假設[u,v]P的結果是[u',v'],則有:
????????
? ? ? ? ?將這個式子展開,有:
????????
? ? ? ? 可以看到,最終得到的式子其實表示的是橢圓的方程。標準橢圓方程為:
????????
? ? ? ? 可以將前面式子的和對應于和,因此這個橢圓的兩個軸的長度分別對應于和。這兩個數(shù)就是harris角點檢測的文章中常常會看到的橢圓的兩個軸的參數(shù):
? ? ? ? 結合角點檢測原理和推導出橢圓方程來看,如果是角點,則E(u,v)的值要大,對應和也必須同時都大才能滿足。因此我們就知道了下面這幅圖的含義:
? ? ? ? ?對于平坦區(qū)域:E(u,v)值非常小,對應和也會很小。
? ? ? ? 對于邊緣:E(u,v)值比平坦區(qū)域大,但沒有角點的E(u,v)值大,此時要么比大很多,要么反過來。
? ? ? ? 對于角點:E(u,v)值很大,和都比較大,并且兩者接近。?
響應函數(shù)R
? ? ? ? 前面我們基本知道了Harris角點檢測的基本原理和推導過程,如果直接使用前面的結論來做檢測,理論上是可以的。但是會有一件麻煩事,就是求M矩陣的特征值和。有沒有比較好的辦法不用求它們的值,通過矩陣的一些性質就能估算出和的關系呢?答案是有,發(fā)明算法的兩位大神想到了對稱矩陣的行列式detM以及矩陣的跡和、之間的關系:
? ? ? ? 對矩陣M求行列式值和矩陣的跡的運算顯然比計算出特征值要來得簡單高效。?那么最終每個像素的像素點響應R被定義為:
? ? ? ? 當k取的數(shù)值比較合適的時候,這個R響應函數(shù)就能較好的反映出和之間的關系。
? ? ? ? k是一個經(jīng)驗值,取值一般在(0.04-0.06)。k值越大,會降低角點檢測的靈敏度,減少檢測角點的數(shù)量;減少k值,會增加角點檢測的靈敏度,增加檢測角點的數(shù)量。
? ? ? ? 對于是否是焦點的判斷,最終就是判斷R的值:
- 角點——R為大數(shù)值正數(shù)
- 邊緣——為大數(shù)值負數(shù)
- 平坦區(qū)——為小數(shù)值
????????Harris角點檢測具有旋轉不變性,但不具有尺度不變性。
????????Harris角點檢測的穩(wěn)定性和 k 值有關,而 k 是個經(jīng)驗值,不好設定最佳值。
Shi-Tomasi 角點檢測
????????Shi-Tomasi 角點檢測改進了Harris角點檢測算法的R響應函數(shù),R響應函數(shù)更加簡單高效。
????????Shi-Tomasi 發(fā)現(xiàn)角點的穩(wěn)定性其實和矩陣 M 的較小特征值有關,于是直接用較小的那個特征值作為分數(shù)。這樣就不用調整k值了。如果矩陣M的兩個特征值中較小的那一個大于設定的閾值,那么這個點是角點;如果兩個特征值都小于閾值,那較小的特征值也必定小于閾值,那這個點就是平坦區(qū)域的點;如果其中一個特征值大于閾值而另外一個特征值小于閾值,那么這個點就是邊緣點。所以我們只需要判斷矩陣M的兩個特征值中較小的那一個特征值是否是大于閾值,如果大于閾值這個點就是強角點。
關于相關線性代數(shù)知識比如實對稱矩陣的正交對角化和矩陣的行列式、特征值和跡相關內容,可以參考這里:
線性代數(shù)學習筆記——第七十四講——實對稱矩陣的相似對角化_實對稱矩陣相似對角化_預見未來to50的博客-CSDN博客1. 對任一實對稱矩陣,存在正交矩陣,滿足矩陣的連乘等于對角矩陣2. 求正交矩陣與對角矩陣的計算步驟3. 實對稱矩陣的正交矩陣與對角矩陣的求解示例4. 兩個實對稱矩陣相似的充要條件是它們有相同的特征值..._實對稱矩陣相似對角化https://blog.csdn.net/hpdlzu80100/article/details/100715880
31.《線性代數(shù) 》實對稱矩陣的正交對角化_嗶哩嗶哩_bilibili-, 視頻播放量 7820、彈幕量 31、點贊數(shù) 207、投硬幣枚數(shù) 112、收藏人數(shù) 114、轉發(fā)人數(shù) 35, 視頻作者 mathfish2020, 作者簡介 廈門大學 余鈮娜,相關視頻:26.《線性代數(shù)》正交矩陣,《線性代數(shù)》-廈門大學-余鈮娜,8.《線性代數(shù)》分塊矩陣的行列式,25.《線性代數(shù)》規(guī)范正交基——施密特(Schmidt)正交化方法,13.《線性代數(shù)》用初等變換求逆矩陣及例子,19.《線性代數(shù)》向量組的最大無關組與秩-1,36.《線性代數(shù)》正定二次型與正定矩陣-1,12.《線性代數(shù)》矩陣的初等變換及初等矩陣,38.《線性代數(shù)》習題課:二次型、正定矩陣,大學生期末僅剩1小時考線性代數(shù)怎么搞https://www.bilibili.com/video/BV1G54y1R76C/?spm_id_from=333.337.search-card.all.click&vd_source=474bff49614e62744eb84e9f8340d91a線性代數(shù)——韋達定理、矩陣行列式、矩陣的跡、矩陣特征值及關系_矩陣的跡和特征值關系_xia ge tou lia的博客-CSDN博客一、韋達定理回顧對于一元二次方程(且),設兩個根為,。則:且易得到:,以上定理交代了兩根之和(積)與方程系數(shù)的關系。依次類推:對于一元三次方程,設三個根為,,。易得到:,故對于一元次的方程,我們可以表示為,其中代表第次項的系數(shù),代表常數(shù)項。則,二、矩陣的特征值及特征向量回顧以下知識點來自吳傳生主編的《線性代數(shù)》【知識點1】:設是階方陣,如果標量和..._矩陣的跡和特征值關系https://blog.csdn.net/huangguohui_123/article/details/105940318? ? ? ?在實對稱相似對角化中,如何快速反求矩陣A ?_嗶哩嗶哩_bilibili不求特征向量,不求逆,減少計算量!, 視頻播放量 7367、彈幕量 19、點贊數(shù) 142、投硬幣枚數(shù) 81、收藏人數(shù) 149、轉發(fā)人數(shù) 37, 視頻作者 KireiIU, 作者簡介 Папа агрессивен, а сын ускоряется,相關視頻:【俗說矩陣】實對稱矩陣和相似對角化究竟有什么關系呢?看了就知道!,對稱矩陣相似對角化,怎樣將矩陣對角化?,矩陣【相似對角化】的本質+條件,5.1實對稱矩陣,反求矩陣的兩種方法,實對稱矩陣為什么一定可以相似對角化|【線代基礎】,已知基礎解系反求矩陣A,小可愛們都要會哦。,實對稱矩陣的相似對角化及獨特性質,正交矩陣及其5條重要性質匯總,以及斯密特正交化,矩陣可對角化條件及實對稱矩陣對角化的方法https://www.bilibili.com/video/av718563485/?vd_source=474bff49614e62744eb84e9f8340d91a參考資料:
角點檢測harris corner公式推導詳解_harris角點推導_WorstCoder的博客-CSDN博客
?Harris角點檢測原理推導過程_ha_lee的博客-CSDN博客文章來源:http://www.zghlxwxcb.cn/news/detail-513865.html
計算機視覺——harris角點檢測之harris角點響應函數(shù)R_-wshuhu-的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-513865.html
到了這里,關于Harris和Shi-tomasi角點檢測筆記(詳細推導)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!