王冰妍,劉必林,顧心雨
(1 上海海洋大學信息學院,上海 201306;2 上海海洋大學海洋科學學院,上海 201306;3 大洋漁業(yè)資源可持續(xù)開發(fā)教育部重點實驗室, 上海 201306;4 國家遠洋漁業(yè)工程技術(shù)研究中心,上海 201306;5 農(nóng)業(yè)農(nóng)村部大洋漁業(yè)開發(fā)重點實驗室,上海 201306;6 農(nóng)業(yè)農(nóng)村部大洋漁業(yè)資源環(huán)境科學觀測實驗站,上海 201306)
邊緣檢測(Edge detection)是利用計算機視覺處理圖像的一種基本方法,其原理是標識數(shù)字圖像中亮度變化明顯的像素點,圖像中像素的顯著變化通常反映了圖像的重要特征[1],因此邊緣檢測被廣泛應用于計算機視覺和圖像處理的研究中,尤其是特征提取的研究。傳統(tǒng)的邊緣檢測算子包括Sobel算子[2]、Prewitt算子[3]、Canny算子[4]等,其中Canny算子是最常用的邊緣檢測方法,具有低錯誤率、高定位性、最小響應的優(yōu)點[5-6]。隨著計算機視覺技術(shù)在生產(chǎn)生活中的應用與發(fā)展,人們研發(fā)出各種改進的算法,提高了生活質(zhì)量與工作效率,如徐武等[7]研究的基于改進Canny算子的圖像邊緣檢測方法中,采用雙濾波設計代替高斯濾波,采用Otsu算法自適應計算高低閾值,自適應能力強、去噪效果好,邊緣提取更完整。
角質(zhì)顎是頭足類口球內(nèi)的幾丁質(zhì)硬組織,具有形態(tài)結(jié)構(gòu)穩(wěn)定、耐腐蝕的特點,能夠良好地儲存頭足類的生物信息[8]。其形態(tài)特征的研究一般基于特征點的標定以及特征參數(shù)的提取,通過游標卡尺的手動徑向測量法是獲取角質(zhì)顎形態(tài)參數(shù)的傳統(tǒng)方法[9]。近年來,人工智能技術(shù)被越來越多地利用在角質(zhì)顎生物形態(tài)研究[10],如宋自根等[11]采用Mask-RCNN深度學習的神經(jīng)網(wǎng)絡模型,實現(xiàn)了角質(zhì)顎色素沉積的識別,為角質(zhì)顎等生物信息研究提供了新的方法與思路;賀芊菡等[12]采用Canny邊緣檢測算法提取角質(zhì)顎輪廓圖,以輔助標定特征點并提取特征參數(shù),實現(xiàn)了利用計算機技術(shù)進行角質(zhì)顎形態(tài)特征的研究,改善了傳統(tǒng)人工測量存在的耗時耗力等問題。但由于Canny算子具有低錯誤率的特性,在圖像處理過程中無可避免會產(chǎn)生與研究不相關(guān)的冗余邊緣信息,包括由圖像背景環(huán)境中的噪聲、圖像中檢測目標的紋理信息等產(chǎn)生[13-14]。并且對于閾值的把控要求很高[15],極易使提取的目標輪廓產(chǎn)生缺損。這將導致后續(xù)研究中產(chǎn)生誤差,同時也限制了利用計算機視覺技術(shù)進行研究的范圍。
本研究基于計算機視覺研究一種邊緣檢測算法,并應用在頭足類角質(zhì)顎的識別中,旨在能夠準確提取角質(zhì)顎外輪廓,并減少甚至消除在邊緣檢測中產(chǎn)生的冗余邊緣信息,為進一步研究奠定基礎(chǔ)。
本研究以30尾中東太平洋莖柔魚、30尾西北太平洋柔魚、30尾中東大西洋翼柄柔魚共90尾角質(zhì)顎上顎作為研究對象,樣本保存于盛有70%的乙醇溶液的試管中,拍攝時用鑷子取出角質(zhì)顎并洗凈表面黏液。
在圖像采集過程中,使用三腳架固定相機,使鏡頭視角平行于桌面。所用相機分辨率為200萬像素,光圈為F3.5,快門速度為1/50 s,ISO為3 200。將角質(zhì)顎樣本水平放置于藍色卡紙,同時根據(jù)拍攝效果打光,以減小光照對圖像效果的影響。采集角質(zhì)顎的側(cè)視圖圖像如圖1,并將其保存為JPEG(Joint Photographic Experts Group)或PNG(Portable Network Graphics)文件格式。
圖1 角質(zhì)顎彩色二維側(cè)視圖
Canny邊緣檢測算子是一種多級邊緣檢測算法,相比普通的梯度算法,Canny算子能夠有效抑制噪聲引起的偽邊緣并實現(xiàn)邊緣細化,是邊緣檢測的一種標準算法,在眾多領(lǐng)域包括生物學領(lǐng)域的研究中應用廣泛,通常分為以下5個步驟實現(xiàn)[16]:
(1)圖像灰度化通常采用加權(quán)法計算,計算方法有以下兩種:
Gray(x,y)=0.114 0×B(x,y)+0.587 0×G(x,y)+0.298 9×R(x,y)
(1)
Gray(x,y)=0.114 0×R(x,y)+0.587 0×G(x,y)+0.298 9×B(x,y)
(2)
式中:(x,y)為像素點坐標,R(x,y)、G(x,y) 、B(x,y)分別為該像素點的RGB三通道色彩空間中的紅色分量、綠色分量和藍色分量,Gray(x,y)為計算所得該像素點的灰度值。
(2)高斯濾波處理。高斯濾波是一種線性濾波器,能夠抑制噪聲,平滑圖像。高斯濾波器模板的生成,基于二維高斯函數(shù)h(x,y)的離散化取樣,計算得到模板系數(shù)Hx,y。對于(2k+1)×(2k+1)的窗口模板,模板中心像素值為[17]:
(3)
(4)
(3)用一階偏導的有限差分來計算梯度的幅值和方向。圖像邊緣的方向具有不確定性,在經(jīng)典Canny算法中分別計算了水平、垂直兩個方向的梯度幅值:
(5)
(6)
式中:Gray(x,y) 為坐標為(x,y)的像素點的灰度值,由Px[x,y]與Py[x,y]計算得到(x,y)處梯度的幅值M(x,y)與方向θ(x,y)[18]:
(7)
(8)
(4)梯度幅值的非極大值抑制。如當前像素的梯度幅值為局部極大值,即其梯度幅值均大于梯度方向上與八鄰域兩交點處的梯度幅值,則保留該像素點為邊緣,否則將抑制。
(5)選擇雙閾值連接邊緣。設置一個高閾值與一個低閾值,當像素點的梯度值大于高閾值時被認為是強邊緣,當像素點的梯度值小于高閾值而大于低閾值時被認為是弱邊緣,否則被抑制。
1.3.1 算法流程
本研究的方法主要通過圖像灰度化、濾波去噪、圖像二值化、構(gòu)造目標連通域、提取邊緣輪廓5個步驟,實現(xiàn)邊緣檢測具體流程如圖2。
圖2 邊緣檢測流程示意圖
1.3.2 圖像灰度化
在邊緣檢測中,認為有效信息為物體的邊緣信息,因此需要對圖像的梯度信息進行分析處理。雖然三通道的圖像所反映的梯度信息更完整,但一個像素點的顏色取值有2563種,使運算速度極大受限,也增大了運算的存儲負擔。因此,對圖像進行灰度化處理,即對圖像矩陣進行降維,既可以使運算速度得到大幅提高,也能夠保留邊緣檢測所需要的梯度信息。同時,又滿足了OpenCV庫函數(shù)在作圖像處理時對輸入圖像的格式要求。本研究中對彩色圖像中每個像素點的3個顏色分量R、G、B分別按照0.298 9、0.587 0、0.114 0的比例加權(quán)計算,得到灰度化圖像。本研究選擇如下方式計算:
Gray(x,y)=0.114 0×B(x,y)+0.587 0×G(x,y)+0.298 9×R(x,y)
(9)
1.3.3 濾波去噪
過濾可以減少圖像中的噪聲,增強感興趣的可視特征,是圖像處理中的重要環(huán)節(jié)[19]。本研究使用雙邊濾波(Bilateral filter)對圖像作去噪處理,這是一種非線性的濾波方法[20],對于待處理的像素點,結(jié)合其空間鄰近度和像素值相似度作折中處理,即同時考慮空域信息σd和灰度相似性σr兩個因素。在圖像的頻域分析中,邊緣檢測需要增強高頻波段、抑制低頻波段,圖像中的邊緣信息即為高頻信息,而雙邊濾波恰好能夠很好地保存高頻信息,過濾低頻噪聲,達到保邊去噪的目的。對于每一個像素點值的計算方法為:
(10)
式中:(i,j)是當前被卷積像素的坐標,(k,l)是鄰域像素的坐標點,w(i,j,k,l) 為權(quán)重系數(shù),取決于定義域核及值域核的乘積,即[21]:
(11)
1.3.4 圖像二值化
在灰度圖像的基礎(chǔ)上,對圖像做二值化處理,將灰度圖像的256個亮度級在合適的閾值下進行分割,使圖像的像素值只由0與255兩個數(shù)值呈現(xiàn)。其中,目標輪廓的像素值為255,顯示為白色;其余像素的值均為0,顯示為黑色。經(jīng)過二值化處理的圖像呈現(xiàn)出黑白效果,進一步減少了圖像中的數(shù)據(jù)信息[22],更加凸顯出目標輪廓,同時也適應了OpenCV庫中輪廓檢測函數(shù)對輸入圖像的格式要求,為進一步圖像處理奠定了基礎(chǔ)。
OpenCV庫中實現(xiàn)圖像的二值化處理有兩種方法:固定閾值和自適應閾值。本研究中采用自適應閾值二值化方法,閾值類型選擇黑白二值反轉(zhuǎn),自適應方法選擇高斯加權(quán)均值,設置像素值上限為255。當待處理的像素灰度值大于自適應閾值時,將該像素值處理為0;當待處理的像素灰度值小于自適應閾值時,將該像素值處理為像素值上限[23],算法如下:
(12)
式中:maxValue為閾值上限,thresh為自適應閾值。
1.3.5 構(gòu)造目標連通域
針對二值化的圖像效果分析,目標輪廓可能存在部分不連通的情況,且冗余輪廓信息主要出現(xiàn)在目標輪廓內(nèi)部,主要由樣本表面的紋理產(chǎn)生,還存在由拍攝環(huán)境造成的光斑等其他一些因素產(chǎn)生。通過技術(shù)手段完全消除這些影響因素難度較高、成本較大,因此設計算法做進一步圖像處理,消除冗余邊緣信息。
本研究設計算法思路,構(gòu)造目標連通域,再進行輪廓檢測,實現(xiàn)邊緣輪廓提取。主要分為以下3個步驟實現(xiàn):
(1)采集輪廓信息。將相連的像素值為255的像素點保存在同一個列表中,定義為一個輪廓。使用輪廓檢測函數(shù)采集二值化圖像中的輪廓信息,由于目標輪廓可能存在部分不連通的情況,因此不能夠只檢測最外側(cè)輪廓。選擇輪廓的近似方法為CHAIN_APPROX_NONE,采用樹形結(jié)構(gòu)輸出的檢索模式,檢測二值圖中的所有輪廓信息并保存,即以輪廓為單位,保存構(gòu)成該輪廓的像素點坐標[24]。
(2)自定義去噪。先根據(jù)樣本在圖像中占據(jù)的像素比例,選擇一個合適的值m,將包含少于m個像素點的輪廓作為噪音從輪廓集中刪除,避免了目標輪廓周圍的噪音對邊緣連通產(chǎn)生不利影響,有效降低了后續(xù)形態(tài)學處理時輪廓的形變程度。
(3)構(gòu)造目標連通域。本研究結(jié)合形態(tài)學技術(shù)處理圖像,確保邊緣連通,構(gòu)造目標連通域。新建一張單通道的黑色幕布,繪制經(jīng)過篩查的輪廓集,如果輪廓閉合則進行填充。對去噪圖像采用一個3×3的結(jié)構(gòu)元素作一次形態(tài)學閉運算處理,初步得到連通域的圖像。通常情況下,一次形態(tài)學閉運算無法完全實現(xiàn)目標分割[25]。再次檢索角質(zhì)顎輪廓,如果得到的輪廓集中的輪廓數(shù)量等于1,則表示已經(jīng)完成目標連通域的構(gòu)造,直接進行1.3.6節(jié)中的提取邊緣輪廓操作;如果輪廓數(shù)量大于1,理論上說明填充的輪廓圖像仍然存在缺損,未形成一個完整的連通域,則圖像做如下進一步處理:
①按級增大結(jié)構(gòu)元素,對圖像做形態(tài)學閉運算處理;
②檢索圖像中的輪廓及其數(shù)量;
③重復①②直至輪廓數(shù)量為1。
同時,為了避免圖像中存在面積較大且距離目標較遠的噪聲連通域未被去除,也為了防止形態(tài)學處理過度造成圖像變形嚴重,應根據(jù)樣本在圖像中占據(jù)的像素比例,選擇一個合適的值n,確保(3)的執(zhí)行次數(shù)不超過n次。
1.3.6 提取邊緣輪廓
得到完全填充的邊緣輪廓圖像后,新建單通道黑色幕布,檢測并繪制出最長輪廓。
2.1.1 濾波去噪
對采集到的角質(zhì)顎樣本彩色圖像做灰度處理,再分別采用雙邊濾波和高斯濾波進行平滑去噪(圖3)。其中,雙邊濾波需要根據(jù)具體圖像選擇合適的顏色空間的σr值和坐標空間的σd值,本文中選用值為10、15;高斯濾波的卷積核設置為3×3。可以觀察到使用濾波前后的圖像效果對比明顯,顆粒狀噪聲基本得到平滑 ,而角質(zhì)顎仍保持形態(tài)清晰,形態(tài)特異性顯著。觀察局部放大圖(圖4),雙邊濾波的保邊效果顯著優(yōu)于高斯濾波,因此后續(xù)采用雙邊濾波做進一步研究。
圖3 分別用雙邊濾波(左)和高斯濾波(右)處理后的角質(zhì)顎灰度圖像
圖4 分別用雙邊濾波(左)和高斯濾波(右)處理后的角質(zhì)顎灰度圖像局部放大圖
2.1.2 構(gòu)造角質(zhì)顎連通域
對圖像作繼續(xù)做二值化處理,圖像呈現(xiàn)為角質(zhì)顎形態(tài)與背景分割的二值圖像,但仍可見圖像中分布有噪聲點(圖5)。
圖5 角質(zhì)顎二值圖像
因此在構(gòu)造角質(zhì)顎連通域的過程中,首先進行自定義去噪能夠進一步抑制二值圖像背景中的噪聲,分別設置m的值為5、10、20、50,得到不同程度去噪的角質(zhì)顎二值圖像(表1、圖6)。
注:6-1(m=5),6-2(m=10),6-3(m=20),6-4(m=50)
表1 m值對噪聲處理程度的影響
本研究中m值選擇20,將像素點個數(shù)大于20的連通域作為噪聲刪除,使角質(zhì)顎的邊緣輪廓能夠精確地完成連通。進而經(jīng)過1次迭代閉運算,卷積核增至5×5,得到角質(zhì)顎連通域。
2.1.3 提取邊緣輪廓
將經(jīng)過雙邊濾波與高斯濾波去噪處理的灰度圖,分別進一步處理構(gòu)造連通域,得到角質(zhì)顎連通域二值圖像后檢測出連通域圖像中的最長輪廓并提取,得到角質(zhì)顎外輪廓圖像(圖7)。結(jié)果顯示,經(jīng)過雙邊濾波處理后提取得到的角質(zhì)顎輪廓能夠更好地保留其形態(tài)特異性,故最終選擇雙邊濾波做圖像的平滑去噪處理。再將本研究提取得到的輪廓圖與傳統(tǒng)的Canny算子提取得到的結(jié)果圖進行對比(圖8)可知,本研究的邊緣檢測算法提取得到的輪廓更完整,保留的邊緣信息更簡潔明確。
圖7 分別用雙邊濾波(左)和高斯濾波(右)處理后最終得到的角質(zhì)顎輪廓圖像對比
圖8 改進算法(左)與Canny算法(右)對二維角質(zhì)顎彩色圖像邊緣檢測結(jié)果對比
通過本研究方法與Canny算子隨機取30張角質(zhì)顎二維形態(tài)圖像進行輪廓提取,計算識別的準確率并分析。本研究分別計算像素準確率(Pixel Accuracy)與平均像素準確率(Mean Pixel Accuracy)對比兩種算法的識別準確率計算結(jié)果,本研究方法的兩種準確率均優(yōu)于傳統(tǒng)的Canny算子,本研究方法的 PA與MPA分別為97.79%與97.53%,而Canny算子的PA與MPA分別為95.03%與93.90%。由此可見,本研究方法較Canny算子不僅圖像分割效果更佳,且提取到的輪廓更加完整精確。
高斯濾波為圖像處理中最常用的濾波器之一,是一種全局的濾波器,適用于消除高斯噪聲[26],在邊緣檢測研究中會較明顯地模糊邊緣,缺失對高頻信息的保護。與之相比,雙邊濾波器多計算了一個高斯方差,即基于空間分布的高斯濾波函數(shù)。它結(jié)合當前被卷積像素的領(lǐng)域的空間鄰近度σd和像素值σr相似度計算被卷積像素的像素值, 在邊緣附近,距離較遠的像素不會對邊緣上的像素值影響太大,保證了邊緣附近像素值的保存[27]。在相關(guān)研究中,劉瑞[28]選取了均值濾波、高斯濾波、中值濾波、雙邊濾波四種常用的濾波方法處理點云深度圖像,再對圖像邊緣提取的結(jié)果進行定性分析,研究發(fā)現(xiàn)雙邊濾波在圖像去噪與邊緣保持上效果較好。
在局部放大圖中(圖4)兩種濾波的保邊效果對比明顯。其中,雙邊濾波能夠在平滑去噪的基礎(chǔ)上,基本保證了輪廓邊緣信息的準確保存,有利于后續(xù)算法步驟的順利實現(xiàn),為提取得到標準的角質(zhì)顎外輪廓奠定了良好的基礎(chǔ)(圖7)。而對于相同的圖像,雖然高斯濾波處理后,肉眼仍可以清晰分辨出角質(zhì)顎輪廓,但對邊緣信息并未設置特殊保護,全圖得到了相同程度的平滑。本研究中即使采用最小的卷積核進行濾波平滑后,在構(gòu)造連通域的步驟中,由于輪廓缺損程度較大,為了能夠使邊緣輪廓閉合,共需要迭代進行多達6次形態(tài)學閉運算,卷積核增達13,使角質(zhì)顎邊緣輪廓產(chǎn)生較明顯形變,失去了角質(zhì)顎的形態(tài)特征,無法在此基礎(chǔ)上展開進一步研究。而雙邊濾波做預處理后,只需在構(gòu)造連通域進行2次閉運算處理。因此,在本研究中選取雙邊濾波做圖像預處理。
本研究選取自適應局部閾值方法對灰度圖像做二值化處理,這種方法為圖像中每一個像素點根據(jù)其鄰域內(nèi)的亮度分布單獨計算閾值,實現(xiàn)了動態(tài)自適應調(diào)整屬于每個像素點的閾值,使二值化結(jié)果更加精確。在對圖像的二值化處理中,自適應局部閾值方法較固定閾值方法有以下兩點優(yōu)勢[29]:
(1)固定閾值方法雖然對于以單張圖片為單位的二值化處理也有較理想的效果,但處理多張圖片時,需要對每張圖片做大量不同閾值的對比以篩選找到適應于該圖片的最佳閾值[30]。避免在批量處理時,由于光線等拍攝因素導致各圖片的最佳閾值不同,從而引起輪廓提取失敗。
(2) 固定閾值方法為全局性閾值的二值化方法,相較于局部性閾值的方法準確性較低。通過對比不難得出,自適應局部閾值的二值化方法能夠高效準確地實現(xiàn)圖像的批量處理,在本文研究的改進的邊緣檢測算法中作為重要的一步,對于角質(zhì)顎等生物形態(tài)研究具有普適性。
傳統(tǒng)的圖像處理算法中大多使用固定閾值,如Canny算子。近年來,在人們提出的各種改進的算法中,自適應閾值方法的優(yōu)勢也日漸凸顯。胡峰松等[31]研究的疲勞識別方法中采用自適應閾值對人眼圖像做二值化處理,通過計算二值圖中黑色像素累積差值,識別閉眼狀態(tài),識別準確率高達96.78%。
目前,各類改進的邊緣檢測算法推動著形態(tài)學研究的進展,如鄭如新等[32]對Canny算法進行改進,優(yōu)化了邊緣檢測效果,并應用于金銀花的自動采摘,識別率為79.17%,提高了金銀花采摘效率;范凌云等[33]提出一種鴨蛋外殼檢測系統(tǒng),基于機器視覺采集鴨蛋圖像,并進行灰度化、二值化、邊緣檢測處理,實現(xiàn)裂紋鴨蛋等破損鴨蛋的精確檢測,能夠有效代替?zhèn)鹘y(tǒng)的人工檢測。
分別采用本研究中的算法與Canny算法提取角質(zhì)顎邊緣輪廓(圖8)。通過本研究中的邊緣檢測算法能夠提取得到標準的角質(zhì)顎外輪廓。同時不難發(fā)現(xiàn),利用Canny算法提取得到的頭足類角質(zhì)顎輪廓圖中存在許多冗余輪廓信息。在調(diào)整了合適的閾值,消除了由于拍攝條件的限制而產(chǎn)生的背景噪聲后,仍然無法完全避免角質(zhì)顎的紋理經(jīng)圖像處理后產(chǎn)生的冗余輪廓。同時,角質(zhì)顎外輪廓存在缺損。這將對后續(xù)利用計算機視覺提取特征點產(chǎn)生潛在影響,進而極大限制了利用計算機視覺在生物形態(tài)中的研究。
本研究提出了一種改進的邊緣檢測方法,通過圖像灰度化、濾波去噪、圖像二值化、構(gòu)造目標連通域、提取邊緣輪廓5個步驟,提取研究對象的形態(tài)外輪廓。將改進的算法在頭足類角質(zhì)顎的模式識別中進行研究分析,并與Canny算子的處理效果進行對比。本研究的方法效果良好,能夠有效區(qū)分信噪,提高了目標選擇的準確性,同時又能夠在誤差允許的范圍內(nèi)保證輪廓的完整性。應用在頭足類角質(zhì)顎的識別中,能夠提取得到標準的角質(zhì)顎邊緣輪廓,對以角質(zhì)顎為例的生物形態(tài)研究具有普適性。與 Canny算子的檢測結(jié)果相比,本研究中的檢測結(jié)果直觀、完整、精確度更高,為解決傳統(tǒng)的人工測量角質(zhì)顎形態(tài)特征參數(shù)存在的檢測精度差、檢測效率低等弊端提供新思路。隨著計算機視覺技術(shù)與形態(tài)測量學的發(fā)展,利用相關(guān)算法提取生物邊緣輪廓、從數(shù)量和形狀上來總結(jié)形態(tài)數(shù)據(jù)、將生物形態(tài)差異定量描述并可視化,具有傳統(tǒng)形態(tài)學方法所無法達到的分析效果,促進了生物形態(tài)學研究的智能化發(fā)展。
□