何婷婷姚繼超張鐘莉莉蘆天罡岳煥芳
(1. 山西農業大學,山西 太谷 030801;2. 北京市農林科學院智能裝備技術研究中心,北京 100097;3. 山東省聊城市水利事業發展和保障中心,山東 聊城 252000;4. 北京市數字農業農村促進中心,北京 100101;5. 北京市農業技術推廣站,北京 100029)
表面缺陷是決定番茄品質分級的重要因素,準確檢測出番茄表面的缺陷區域,對于保障番茄品質分級工作具有重要的意義。對番茄的表面損傷檢測中國仍然以人工檢測為主,不僅檢測效率低而且會對番茄果實造成二次損傷,此外,由于人的主觀差異帶來的分級不穩定的情況同樣值得關注。在此背景基礎下,基于機器視覺的無接觸檢測方法在番茄表面損傷的定位與識別工作中具有廣泛的應用前景。
采用閾值分割技術提取缺陷的方法在果蔬表面缺陷檢測上的應用較為普遍[1-2],但分割后的圖像存在花萼與莖疤、高亮區域與缺陷區域共存的現象。為了更準確地提取樣本表面的損傷區域,在進行缺陷區域分割前進行花萼與莖疤檢測[3-4]和表面亮度矯正[5-6]等處理是必要的。經過花萼與莖疤檢測和亮度矯正后的圖像表面缺陷區域與正常區域的顏色和紋理有較明顯的差異[7],可采用圖像分割方法對處理后的樣本圖像進行缺陷分割。Cao[8]使用Otsu分割方法對蘋果表面的腐爛區域進行識別,但由于缺陷邊緣與其相鄰正常區域的對比度較低,導致缺陷提取不完整且缺陷區域存在“毛邊”。燕紅文[9]使用區域生長算法對番茄的損傷區域進行分割,但需要根據試驗結果不斷調整種子像素值和相似閾值以獲取準確的損傷區域,試驗步驟繁瑣且耗時較長。此外,基于圖像分割的缺陷區域提取方法無法完整提取連續大面積分布的缺陷區域,故部分學者提出使用基于圖像局部像素差異的方法來提取果蔬表面的缺陷區域。Hassan等[10]通過遍歷圖像像素,計算各像素與其±0°,±45°,±90°,±135°角上相鄰像素的差值來判定橄欖的缺陷區域。Beyaz等[11]通過使用每個像素周圍的局部一階圖像統計選擇的局部自適應閾值來對橄欖圖像進行二值化,以確定缺陷的位置。遍歷圖像像素進行缺陷區域判斷可以準確定位缺陷區域,但是耗時長。針對此問題,馬大國等[12]將木材圖像進行分塊,對每一塊圖像進行多方向多尺度Gabor變換并統計其系數的均值和方差作為特征,實現了木材表面缺陷的準確定位與識別。郭慧等[13]將刨花板灰度圖像劃分成若干圖像塊,使用灰度共生矩陣參數對各圖像的紋理進行表征,通過分層聚類算法將不同紋理特征的區域區分開。根據已發表的文獻,這種基于圖像分塊技術的局部特征統計方法目前主要應用于木材表面缺陷的檢測。
研究擬以番茄為研究對象,采用圖像分塊技術將番茄圖像劃分為若干個互不重疊的圖像塊,計算每個圖像塊的像素方差用于表征該區域的像素變化,以此來定位番茄表面缺陷的位置,通過計算缺陷面積占番茄圖像總面積的比例作為特征,使用SVM模型進行缺陷檢測,以期實現番茄表面缺陷的準確、高效的識別。
基于機器視覺的果蔬缺陷檢測通常基于4個步驟來實現,如圖1所示。試驗從圖像采集開始,采集的圖像經過圖像處理操作以便進行分析,果蔬缺陷檢測的精度通常取決于缺陷區域的顏色或紋理特征提取結果。

圖1 試驗流程
番茄樣本采摘于北京市大興區宏福農業科技有限公司的連棟溫室,品種為Cappricia,其果面缺陷的類型包括刺傷、病斑、裂紋和臍腐等。試驗所用的番茄圖像均由圖2所示的圖像采集裝置捕獲。選擇不同成熟度的健康和缺陷番茄的圖像共500張作為訓練集進行缺陷檢測訓練,另準備健康和缺陷番茄圖像各50張用于驗證。

1. 背景框架 2. 光源 3. 相機支架 4. 相機與鏡頭 5. 番茄樣本 6. 計算機
番茄圖像的背景、花萼與莖疤以及表面高亮區域都可能影響缺陷區域提取結果,因此在進行缺陷檢測前,剔除這些干擾因素是必要的。通過顏色空間轉換來增強番茄果實顏色強度,而后根據番茄果體與其他干擾區域的像素差異,采用閾值分割方法提取干擾區域進行相應的剔除或矯正操作。
1.2.1 背景去除 在試驗設置的圖像采集條件下,番茄目標與背景能夠明顯區分,使用簡單閾值分割方法就可以將番茄目標與背景分離。為了突出番茄輪廓并降低背景像素,將RGB圖像轉換至與設備無關的HSV和LAB顏色空間下進行顯示,使用S+L圖像進行Otsu分割,實現番茄目標提取。
1.2.2 花萼與莖疤檢測 由于番茄的花萼和莖疤與缺陷的顏色和紋理相似,因此在進行缺陷區域檢測和提取時,有必要將花萼和莖疤與檢測區域分離,以檢測真實的缺陷。為了準確檢測并剔除花萼和莖疤,采用1.5G—R法來增加番茄紅色果體與花萼和莖疤的對比度,分割閾值由式(1)計算。
(1)
式中:
T——分割閾值,像素;
μmxr——圖像中重復次數最多的像素值;
μmean——圖像像素均值。
1.2.3 高亮區域矯正 在基于顏色和紋理的水果表面缺陷檢測研究中,水果表面的高亮區域同樣會造成健康或缺陷區域的誤識別,因此有必要對番茄表面的高亮區域進行亮度矯正。亮度矯正的前提是實現高亮區域的準確定位和提取,對番茄圖像的B分量圖進行簡單閾值分割以獲取其表面的高亮區域,分割閾值為B分量的圖像直方圖的中值。完成高亮區域提取后,采用Telea[14]提出的圖像快速修復方法來矯正番茄圖像中高亮區域的亮度,該方法通過將高亮區域鄰近的像素鄰域中所有已知像素的歸一化加權和代替原區域像素的方法來矯正高亮區域亮度。在選擇權重時,對于靠近待矯正點的像素、靠近邊界的法線和位于邊界輪廓上的像素,給予更多的權重。
圖像處理的流程和每個步驟的處理結果如圖3所示。可以看出,所用的圖像處理方法在背景去除、花萼與莖疤檢測和高亮區域亮度矯正3個處理階段均取得較好的效果。
而后,將處理后的番茄圖像劃分成若干子區塊,計算每個子區快的像素方差與設定閾值進行比較,大于閾值的區域像素被設置為1,否則設為0,遍歷所有子區塊,得到所有包含缺陷區域的圖像塊。
研究提出一種基于圖像局部方差的缺陷區域分割方法來定位番茄表面的缺陷區域。該方法將圖形劃分為互不重疊的固定大小的矩形塊,通過統計分析所有矩形塊內的像素方差和紋理變化,進而確定缺陷的具體位置[15]。
為了方便選擇子區域塊的大小以及統計缺陷區域面積等特征,在劃分子區塊前,將圖像大小統一設置為512×512,并將番茄圖像劃分成若干子區塊,計算每個子區塊的方差作為分類特征,大于指定閾值的子區塊被提取出來,否則舍棄,具體步驟:
(1) 將番茄圖像劃分為m×n個區塊,其大小根據缺陷區域大小進行選擇,按式(2)計算每個矩形塊的方差σ2。
(2)
式中:
σ2——矩形塊的方差;
i——子區塊內每個像素點的灰度值;
μ——子區塊的平均灰度值,μ=ΣiPi;
Pi——像素值i在子區塊內出現的概率,Pi=Ni/N;
Ni——子區塊內i的像素個數;
N——子區塊的像素總數。
(2) 建立空白圖像I(512,512),并將其劃分成m×n個矩形塊與番茄圖像的子區塊位置一一對應,將方差σ2大于設定閾值σ0的子區塊內的像素指定為1,否則,指定像素為0。
(3) 遍歷所有子區塊,將圖像I作為缺陷區域分割的掩膜圖像與原始圖像進行按位與處理,就可以提取出番茄表面的缺陷區域。
分割閾值σ0的確定方法為,尋找番茄輪廓的最大內接圓,確定其圓心和半徑R,將R分成M份,從圓心開始以K×R/M(1≤k≤M)的半徑向外畫圓,分別計算各圓環區域的圖像方差,以M個方差的平均值作為最終的缺陷分割閾值。
采用支持向量機(Support vector machine, SVM)對番茄表面缺陷進行檢測,SVM本質上是一個二分類器,包括線性、多項式、sigmoid和高斯4個常見核函數,能夠處理多種分類問題,且適用于小樣本的分類[16-17]。試驗以每張番茄圖像提取的表面缺陷區域面積占番茄圖像總面積的比例為SVM模型的輸入來檢測番茄是否存在表面缺陷,將番茄分為健康番茄與缺陷番茄兩類,使用50個健康番茄和50個缺陷番茄來驗證所提方法的適用性。
試驗工作平臺包括硬件與軟件平臺兩個部分,硬件配置為英特爾酷睿 i5-11400H CPU處理器,內存為16.0 GB,RTX 3050顯卡。軟件開發平臺為Windows 11 64 位操作系統下,整個試驗基于OpenCV 3.4.2.16開源軟件庫實現,編程語言為 Python,特征數據使用Excel進行處理與分析。
采用圖像局部像素方差法分別對亮度矯正前后的番茄圖像進行缺陷區域提取,結果如圖4所示。從圖4可以看出,由于高亮區域與番茄缺陷在顏色上具有較強的相似性,因此在未進行高亮區域亮度矯正時,表面存在小面積高亮區域的番茄圖像能夠提取出比較完整的缺陷區域,而表面分布有大面積高亮區域的番茄圖像存在部分高亮區域被誤分割為缺陷的情況。經過高亮區域亮度矯正后,番茄表面的缺陷區域被完整地分割出來,且結果圖中的非缺陷區域非常少,可忽略不計。將基于亮度矯正的缺陷區域提取算法應用于50幅缺陷番茄圖像進行驗證(圖5),該算法在未進行矯正的番茄圖像集上準確率和均方根誤差(RMSE)分別為61.47%和27.34,精度較低;而在經過亮度矯正的圖像上分別獲得了89.21%的準確率和9.13的RMSE,相對于亮度矯正前,準確率提高了27.74個百分點,RMSE降低了18.21。

圖4 番茄表面缺陷區域提取結果
為了驗證所提方法對番茄表面缺陷提取的準確度,將所提方法的缺陷提取結果分別與全局閾值分割、動態閾值分割和區域生長算法進行比較(圖5)。可以看出,全局閾值分割方法對番茄表面的缺陷區域的分割效果最差,由于缺陷區域和正常區域的對比度明顯小于番茄果體和黑色背景,故該方法無法將對比度較小的缺陷和正常區域區分開。基于動態閾值的分割方法能夠基本確定番茄表面的缺陷位置,但無法提取與健康區域顏色接近的缺陷,并且會忽略番茄輪廓邊緣位置處與健康顏色差異明顯的缺陷。相對而言,基于區域生長算法的分割方法能夠更準確地分割缺陷區域,然而對于顏色和紋理較淺的缺陷區域,該方法仍不能準確檢測并完整地分割出來。從圖5可以看出,相比傳統的圖像分割算法,基于圖像局部方差的缺陷區分割方法不僅能夠準確檢測出顏色、紋理與正常區域相似的小面積缺陷,并且可以完整地提取番茄表面存在連續分布的多區域缺陷。
使用SVM模型對番茄表面缺陷檢測的結果如表1所示。可以看出,4個SVM對番茄表面缺陷檢測的平均準確率按照線性-SVM<多項式-SVM 表1 缺陷檢測結果 針對基于顏色的閾值分割方法難以提取與果體顏色差異不明顯和連續分布有大面積缺陷的問題,提出一種考慮亮度矯正下基于圖像局部方差的番茄表面缺陷檢測方法。采用閾值分割和圖像快速修復方法對番茄圖像進行圖像處理,以去除可能會對缺陷檢測造成干擾的背景、花萼與莖疤以及高亮區域等因素。 經過亮度矯正,缺陷區域的提取準確率比亮度矯正前提高了27.74%。以缺陷區域面積占比為輸入的高斯-SVM模型在缺陷檢測方面的性能最優,其平均檢測準確率為96%,對健康和缺陷番茄的檢測準確率均超過90%。結果表明,該方法可以用于番茄產后檢測過程中對表面缺陷的識別。
3 結論