本文由 ARinChina(www.arinchina.com)原創(chuàng),轉(zhuǎn)載請(qǐng)聯(lián)系 ARinChina(微信 ID:arinchinaservice)。
如果有人問,上圖中的物體是什么?是個(gè)人都會(huì)毫不猶豫地回答:“蘋果!”問下圖,也會(huì)得到同樣的答案。
明明圖不一樣,為什么答案卻相同?這是由于人的視覺細(xì)胞對(duì)物體邊緣特別敏感,先看到物體的輪廓,然后才判斷這到底是什么東西。
人之所以對(duì)物體邊緣特別敏感,是因?yàn)檫吘壈畔⒏鼮樨S富。物體的邊界與 3D 中的遮擋事件對(duì)應(yīng),一旦知道了邊界,就可以了解物體間的遮擋關(guān)系。下圖中,通過邊緣檢測可以得出,貼紙擋在了小女孩的前面,因?yàn)樾∨⒌妮喞笔Я艘欢涡畔ⅰ?/p>
如果有人讓你指出一幅圖像最“顯著”的物體邊緣,你會(huì)追蹤哪些邊緣?下圖右側(cè)為計(jì)算機(jī)檢測出的邊緣,你的感知與它有多接近?
邊緣出現(xiàn)在那些顏色、亮度或紋理不同的區(qū)域之間,因此大多數(shù)人的感知和上圖右側(cè)所示相差無幾。如果按這些因素將圖像分割成相同區(qū)域塊會(huì)非常困難。因此,有人提出將邊緣定義為亮度變化劇烈的位置。
圖像邊緣檢測大幅度地減少了數(shù)據(jù)量,并且剔除了不相關(guān)的信息,保留了圖像重要的結(jié)構(gòu)屬性。邊緣檢測方法有很多,它們大都需要經(jīng)過以下幾個(gè)步驟:
1. 圖像濾波
邊緣檢測算法主要是基于圖像亮度的一階或二階導(dǎo)數(shù)。
函數(shù)的導(dǎo)數(shù)值就是切線的斜率,綠色代表其值為正,紅色代表其值為負(fù),黑色代表值為零。
導(dǎo)數(shù)運(yùn)算可以找出亮度變化明顯的邊界。但成像過程中會(huì)產(chǎn)生噪聲(妨礙人們接受信息因素),在圖像高頻部分所占比重較大,但導(dǎo)數(shù)卻又強(qiáng)調(diào)了高頻率部分,因此求導(dǎo)的過程同時(shí)放大了噪聲。
這就像收音機(jī)里的噪聲一樣,在我們調(diào)大聲音的同時(shí),噪聲也跟著變大。下圖為圖像噪聲示意圖,該圖為噪聲的模擬圖,并非采集圖像時(shí)所導(dǎo)致。
那如何處理收音機(jī)里的噪音呢?將頻道調(diào)至合適位置,便能獲得清晰的聲音。因?yàn)槊總€(gè)頻道發(fā)出的頻率不一樣,接收時(shí)必須調(diào)整到相應(yīng)頻道才可以收聽。每個(gè)頻道就像一個(gè)“過濾網(wǎng)”,僅允許一個(gè)范圍內(nèi)的波頻通過。
解決圖像噪聲問題也一樣,引入低通濾波器,允許低頻率的信號(hào)通過,阻止高頻率信號(hào)通過。但是,這里的低通濾波器并不是阻止高頻信息通過,而是減弱高頻信息。
下圖分別是圖像經(jīng)過濾波前后的對(duì)比。
2.圖形增強(qiáng)
經(jīng)低通濾波器過濾后的圖片變得非常平滑,但是邊緣部分并沒有被突出出來。這時(shí)就需要對(duì)邊緣進(jìn)行銳化,使圖像的邊緣變得清晰。
平滑處理是將每個(gè)像素和周圍的像素進(jìn)行平均,要使邊緣再變得清晰,則要對(duì)圖像再做逆運(yùn)算。
圖像模糊是因?yàn)椴捎玫屯V波器將圖像高頻信號(hào)減弱。相反,圖像銳化就可以用高通濾波器來減弱低頻信息,以此來突出高頻信息,使圖像看起來清晰。
3.圖像檢測
圖像的邊緣有幅度和方向?qū)傩?,沿邊緣方向像素變化緩慢,垂直邊緣方向像素變化劇烈。因此,邊緣上的變化能通過梯度計(jì)算出來。在圖像中有許多點(diǎn)的梯度幅值(與周圍點(diǎn)的差值)較大,而這些點(diǎn)有時(shí)并不都是我們需要的邊緣,所以需要用某些方法來確定哪些是邊緣的點(diǎn)。
最簡單的邊緣檢測是給定一個(gè)閾值。
首先使用一個(gè)閾值上限去尋找邊線開始的地方。一旦找到了一個(gè)開始點(diǎn),便可以“順藤摸瓜”。在圖像上逐點(diǎn)跟蹤邊緣路徑也一樣,當(dāng)大于門檻下限時(shí),一直記錄邊緣位置,直到數(shù)值小于下限后才停止記錄。
下圖是一張色盲檢測圖,它在正常人眼中是這樣的:
但是在色盲患者眼中,它則如下圖所示:
色盲患者無法感知到色彩信息,他們只能看到圖像的亮度信息。
大多數(shù)邊緣檢測都是針對(duì)灰度圖像進(jìn)行的,但對(duì)于上述色盲檢測圖中的數(shù)字來說,它們的亮度與周圍點(diǎn)相同。因此使用灰度邊緣檢測器的話,檢測結(jié)果就如同色盲患者所見結(jié)果一樣無法檢測出數(shù)字邊緣。此時(shí),可以利用彩色圖像信息來輔助完成邊緣識(shí)別。
彩色圖像邊緣檢測算法都是基于一定的顏色空間的,比較常用的有如上圖所示的 RGB,還有 HSI、YUV 等。顏色空間是對(duì)色彩的一種描述方式,定義有很多種,區(qū)別在于面向不同的應(yīng)用背景。
例如顯示器中采用的 RGB 顏色空間,是基于物體發(fā)光定義的(RGB 正好對(duì)應(yīng)光的三原色:Red,Green,Blue);工業(yè)印刷中常用的 CMY 顏色空間,是基于光反射定義的(CMY 對(duì)應(yīng)了繪畫中的三原色:Cyan,Magenta,Yellow);HSV、HSI 兩個(gè)顏色空間,都是從人視覺的直觀反映而提出來的(H 是色調(diào),S 是飽和度,I 是強(qiáng)度)。
由于人的視覺對(duì)亮度的敏感程度遠(yuǎn)強(qiáng)于對(duì)顏色濃淡的敏感強(qiáng)度,為了便于色彩處理和識(shí)別,人的視覺系統(tǒng)經(jīng)常采用 HSI(H 是色彩,S 是深淺,I 是明暗)色彩空間。
HSI 色彩空間是從人的視覺系統(tǒng)出發(fā),用色調(diào)(Hue)、色飽和度(Saturation)和亮度(Intensity)來描述色彩,它比 RGB 色彩空間更符合人的視覺特性。在圖像處理和計(jì)算機(jī)視覺中大量算法,都可在 HSI 色彩空間中方便地使用,它們可以分開處理而且相互獨(dú)立。
因此,HSI 色彩空間可以大大簡化圖像分析和處理的工作量。
基于彩色邊緣檢測的一個(gè)簡單方法,是在每個(gè)顏色空間獨(dú)立地檢測邊緣,然后將它們聯(lián)合起來。就像下圖的賀卡,每個(gè)顏色制作一個(gè)字母,然后把這些字母疊加在一起便形成一個(gè)單詞。
目前的圖像采集設(shè)備都是基于 RGB 彩色空間的,所以要進(jìn)行顏色格式的轉(zhuǎn)換。我們以 HSI 顏色空間為例,可以將轉(zhuǎn)換后的圖像視為有三層——H、S、I。分別在這三層上進(jìn)行邊緣檢測,然后將這三層的檢測結(jié)果疊加在一起形成最后的邊緣信息。
上圖是彩色圖像邊緣檢測的結(jié)果,雖然它已經(jīng)可以較好地識(shí)別物體輪廓,但是如果想要達(dá)到人眼識(shí)別的效果,就必須結(jié)合更多的視覺線索,如亮度、顏色和紋理等,才能構(gòu)建出更好的檢測器。
題圖來源:Active Trade
聯(lián)系客服