角點(diǎn)是圖像很重要的特征,對圖像圖形的理解和分析有很重要的作用。角點(diǎn)檢測(Corner Detection)是計(jì)算機(jī)視覺系統(tǒng)中用來獲得圖像特征的一種方法,廣泛應(yīng)用于運(yùn)動(dòng)檢測、圖像匹配、視頻跟蹤、三維建模和目標(biāo)識(shí)別等領(lǐng)域中,也稱為特征點(diǎn)檢測。
角點(diǎn)通常被定義為兩條邊的交點(diǎn),更嚴(yán)格的說,角點(diǎn)的局部鄰域應(yīng)該具有兩個(gè)不同區(qū)域的不同方向的邊界。而實(shí)際應(yīng)用中,大多數(shù)所謂的角點(diǎn)檢測方法檢測的是擁有特定特征的圖像點(diǎn),而不僅僅是“角點(diǎn)”。這些特征點(diǎn)在圖像中有具體的坐標(biāo),并具有某些數(shù)學(xué)特征,如局部最大或最小灰度、某些梯度特征等。
現(xiàn)有的角點(diǎn)檢測算法并不是都十分的魯棒。很多方法都要求有大量的訓(xùn)練集和冗余數(shù)據(jù)來防止或減少錯(cuò)誤特征的出現(xiàn)。角點(diǎn)檢測方法的一個(gè)很重要的評價(jià)標(biāo)準(zhǔn)是其對多幅圖像中相同或相似特征的檢測能力,并且能夠應(yīng)對光照變化、圖像旋轉(zhuǎn)等圖像變化。
近年來提出的角點(diǎn)檢測方法大多是基于灰度圖像的角點(diǎn)檢測。主要分三類:
(1)基于邊緣特征的角點(diǎn)檢測。主要分三個(gè)步驟:首先,對圖像進(jìn)行預(yù)分割;然后對預(yù)分割后得到的圖像中邊界輪廓點(diǎn)進(jìn)行順序編碼,得到邊緣輪廓鏈碼;最后,根據(jù)邊緣輪廓鏈碼對圖像中的角點(diǎn)進(jìn)行描述和提取。Wallg和Braday提出了一種基于表面曲率的角點(diǎn)檢測算法。為了改善角點(diǎn)檢測的穩(wěn)定性,首先將圖像和高斯濾波器卷積,然后計(jì)算整個(gè)圖像的表面曲率,當(dāng)曲率高于一定閾值,并為局部最大值的點(diǎn)被認(rèn)為是候選角點(diǎn)。
(2)基于模板的角點(diǎn)檢測。一般首先建立一系列具有不同角度的角點(diǎn)模板,然后在一定的窗口內(nèi)比較待測圖像與標(biāo)準(zhǔn)模板之間的相似程度,以此來檢測圖像中的角點(diǎn)?;谀0宓姆椒ㄖ饕紤]像素鄰域點(diǎn)的灰度變化,即圖像亮度的變化,將與鄰點(diǎn)亮度對比足夠大的點(diǎn)定義為角點(diǎn)。首先設(shè)計(jì)一系列角點(diǎn)模板,然后計(jì)算模板與所有圖像子窗口的相似性,以相似性判斷在子窗口中心的像素是否為角點(diǎn)。
(3)基于亮度變化的角點(diǎn)檢測。該算法基于角點(diǎn)相應(yīng)函數(shù)(CRF)對每個(gè)像素基于其模板鄰域的圖像灰度計(jì)算CRF值,如果大于某一閾值且為局部極大值,則認(rèn)為該點(diǎn)為角點(diǎn)。
當(dāng)然,角點(diǎn)的檢測算法非常之多,僅基于模板的角點(diǎn)檢測算法就有Kitchen-Rosenfeld角點(diǎn)檢測算法、Harris角點(diǎn)檢測算法、KLT角點(diǎn)檢測算法及SUSAN角點(diǎn)檢測算法等,在此不再一一展開介紹。維視圖像從事機(jī)器視覺行業(yè)十?dāng)?shù)年,其XAVIS機(jī)器視覺科研平臺(tái)包含近300個(gè)優(yōu)異算法,其中就包含多種優(yōu)異的角點(diǎn)檢測算法,這些算法均是從實(shí)際工業(yè)項(xiàng)目中積累、優(yōu)化而來,在算法效率、穩(wěn)定性上均處于視覺行業(yè)領(lǐng)先地位。