賀靜王樹才
(華中農業大學 工程技術學院,武漢 430070)
在目前的蛋品加工行業中,勞動力主要密集在人工檢測,即通過操作工人的感官來測定蛋殼是否破損。由于人工檢測生產效率低,勞動強度大,對檢測工技術要求高,檢測穩定性較差,這些嚴重制約著我國蛋品加工行業的規?;l展[1]。國內外對于雞蛋裂紋的無損檢測研究主要集中聲學技術和計算機視覺技術兩方面。聲學振動法是一種判斷雞蛋破損的有效方法,但其檢測準確率易受到蛋殼結構和外界噪聲的影響,降低了檢測準確率[2]。而機器視覺技術可以克服以上缺點,并能實現禽蛋綜合品質的檢測。Kurt C.Lawrence等人[3]研制了圖像檢測雞蛋裂紋的改進型壓力系統,分別采集大氣壓和加壓下雞蛋圖像送入系統處理,識別裂紋的準曲率達到99.6%,但是在采集兩副圖像之間雞蛋必須保持絕對靜止。H.R.Pourreza等人[4]利用彩色圖像中雞蛋缺陷引起的不連續性找到目標區域,提出最小矩形法刪除雞蛋投影邊緣,利用自適應閾值法分割圖像二值化,計算處理后圖片中的目標點數與總的矩形區域的比值,該值大于設定值時該雞蛋存在缺陷,此算法的正確識別率為 99%,但是在主頻為667MHz的PC機上處理一副雞蛋圖像需要用時0.87s。 Patel等人[5~6]將直方圖作為變量,建立一個神經網絡來識別雞蛋缺陷,準確率為67.5%。
以上介紹的均是在PC機上完成,而DSP芯片隨著集成電路的發展和巨大的市場,在過去的十多年時間,DSP芯片已經在圖像處理和語音處理等許多領域得到廣泛應用[7]。高性能DSP微處理器采用改進的哈佛總線結構,具有精度高、可靠性強、集成度高、接口方便、靈活性好和時分復用等優點,為圖像處理系統的快速實時處理提供了契機[8]。本研究以雞蛋為研究對象,采用 TI公司的 DSP(TMS320DM642)作為運算處理器,設計了從圖像采集到結果輸出的實時圖像處理系統。
雞蛋圖像的采集在 25×25×22cm 的長方體光照箱環境內,系統由合眾達電子公司的SEED-VPM642 DSP實驗箱、Aironix (奧尼克斯) MCC-4036H型模擬攝像頭以及自行設計的LED光源和箱體組成。為了去除環境光的干擾,簡化后續的處理步驟,實驗箱體設計為封閉式光照箱。由于蛋殼的硬度不一致且實際生產中雞蛋不容易定位遮住光孔[9],研究中采用同軸光源法。白色LED光源環形面陣板和相關控制電路,如圖2所示,光照強度運用PWM脈寬調制法實現調節,保證光照柔和均勻,光強相對穩定,有效地減少由光源所引起的噪聲。攝像頭采集雞蛋的正反兩面圖像(下同),圖像采集的背景選擇黑色[10]。圖1中的DSP試驗箱負責將采集到的模擬視頻信號進行 A/D轉換,處理圖像并判斷,最后通過 D/A轉換在實驗箱液晶顯示屏上顯示出判斷結果。試驗所用雞蛋均為市場上采購的洗凈的大個白殼雞蛋140枚。

圖1.蛋圖像采集系統示意圖

圖2.形LED白光光源
一幀雞蛋的圖像處理流程如圖3所示。系統采集光照箱體內雞蛋圖像,雞蛋圖像由模擬攝像頭實時采集,攝像頭為PAL制式(下同)。模擬視頻信號被解碼為YUV分量,通過高性能視頻解碼芯片(TVP5150PBS),進行A/D量化采樣,轉換成8位數字視頻流送入DM642中,經過圖像預處理剔除非目標噪聲,刪除雞蛋投影邊緣,標記目標區域,最后將處理結果經過D/A轉換后傳送給顯示屏顯示。

圖3.幀圖像處理框圖
2.1.像預處理
雞蛋圖像采集時受各種因素影響,使采集的圖像不僅包含目標對象雞蛋,還參雜一些非目標對象即噪聲,而這些噪聲的存在嚴重影響著系統判斷。考慮到邊緣檢測后的二值圖像通過 3×3中值濾波后,仍存在非目標區域噪聲,如圖 4所示(圖中背景為灰色是為突出顯示雞蛋,其真實背景顏色為白色,下同),提出了疊加法和外接矩形法兩種方法。

圖43.3中值濾波效果圖
(1)疊加法
由于圖像的直方圖沒有明顯的雙峰,因此采用最大方差閾值分割法求取閾值[11]。將灰度化后的圖像分別存儲在兩個緩存區域temp1Y和temp2Y中。求取閾值T=150,對緩存temp1Y中存儲的圖像進行二值化,如圖5a所示,雞蛋顏色為黑色,背景為白色。而對緩存temp2Y中存儲的圖像先進行sobel邊緣檢測后求取閾值二值化,如圖5b所示。從圖5b中可看出雞蛋邊緣外仍然存在很多噪聲點,而且裂紋、邊界和噪聲點的灰度值都是0,目標和背景無法分割。
依次逐點比較圖5a和圖5b兩副圖像,雞蛋邊緣和破損區域具有相同的灰度值0,則通過或運算能有效的刪除非目標區域噪聲。設圖 5a中第 i行第 j列像素點的灰度值為Pa(i,j),圖 5b中相應像素點的灰度值為Pb(i,j),疊加運算后該點灰度值為P(i,j)的數學表達式為:

式中: 運算符號+為或運算,i=0,1,2,3,…,575,j=0,1,2,3,…,719

圖5.加運算過程
(a)直接二值化圖片 (b)sobel邊緣檢測后二值化圖片 (c)疊加運算所得圖片
(2)外接矩形法
形心也稱為質心,對于經過閾值分割并反色后的平面圖像,利用公式2和3可得雞蛋的形心(,。

式中:S為二值圖像中雞蛋的區域,A為二值圖像中雞蛋區域的面積,即圖像中所有目標點的總和。
經過形心分別找出水平線和豎直線上的邊界點1x、x 2 、y1、y2對圖像做一個灰度值為16矩形框。雞蛋投影從形狀上分析近似為橢圓,此法描繪的矩形近似為橢圓的外接矩形,如圖6a所示,很好的將雞蛋區域從圖像中分割出來。而且,該法是通過質心找到矩形框的中心和長寬,對任意放置的雞蛋都能畫出一個灰度值與破損相異的外接矩形,如圖6b所示。

以上兩種方法均能較好的剔除非目標區域噪聲,但經疊加法處理后的雞蛋邊緣不連續,如圖5c所示,給后續處理引入了新的噪聲。并且疊加法處理后的圖片在進行后續處理時要掃描整幅圖像,計算量大,處理所需時間長。而采用外接矩形法提取出目標區域,后續處理范圍縮小到矩形框內,極大地減少了運算量。因此,本研究采用外接矩形法分割目標區域。
2.2.除邊緣
經過圖像預處理后的二值圖片,雞蛋邊緣和破損同為黑色,為了防止將雞蛋邊緣誤判為破損并減少標記算法的計算量,采取先刪除雞蛋投影邊緣后進行標記的方法。雞蛋投影邊緣是一個封閉的近似橢圓,將目標區域(即矩形框內區域)各行均以質心橫坐標作為中點將圖像一分為二,分別進行從左往右和從右往左逐行掃描,掃描時總能遇到灰度值為0的像素點,而第一次掃描到的黑點即為雞蛋的邊緣起點。以左邊界為例,起始掃描點的坐標為(y從起始點開始從左往右掃描找到第一個黑點,令其灰度值255。另 x=x+ 1(即第一個黑點的右鄰像素點),滿足,則繼續判斷是否為0,若0,則令=255,繼續判斷其右鄰相素點直到或=255時結束當前行掃描,換至下一行掃描。攝像頭PAL格式實時采集和顯示,即當下一行為偶數行時或者 y=y2+1時,循環結束。右邊界也用相同的方法刪除,刪除邊緣后的圖像如圖7所示。由于邊緣檢測后的邊界并非完全光滑,所以在刪除邊緣后會留下一些小噪聲。

圖7.除邊緣和矩形框的效果圖
2.3.進型連通區域標記
分割后的一幅圖像內,可能存在多個連通成分,每個連通成分都對應一個目標圖像區,給各目標圖像區分配唯一標號的工作稱為連通區域標記[12~14]。常見的連通規則為 4連通區域和8連通區域,標記值為1-254的灰度值。考慮到雞蛋的一處破損可能有多條微小分支,而各分支與主裂紋之間可能出現小的斷裂,并且在刪除邊緣時,由于邊緣不光滑而出現噪聲點,見圖7。如果采用簡單的4連通或者8連通區域搜索后標記,將出現標記值大于254的情況,然而搜索區域過大會把原本的兩個破損誤標記為一個。因此選用了一個閾值(T)來剔除虛假破損[8],搜索區域選用5×5鄰域。

圖8.進型裂紋標記流程圖
改進型裂紋標記流程圖如圖8所示,在開始標記之前,定義一個與原圖像大小一致的緩存空間temp1Y,用于存放臨時圖像。依次逐點掃描目標圖像,當找到某未標記的目標像素點時,標記該點并將其作為種子點壓入堆棧,在該點5×5鄰域內搜索符合條件的點標記壓入堆棧,當鄰域各點掃描結束后棧首地址后移一位,即原來的目標點5×5領域內搜索到的第一個目標點作為新的種子點。如此反復更新種子點,標記其符合條件的鄰域點,當堆棧為空時標記結束并輸出 S變量。 S變量的值為每次被標記點的數目,即標記值是Label的標記區域大小。當 S>T時,掃描到一個破損區域,停止往下掃描,結果信號經D/A轉換后在實驗箱自帶的7寸顯示屏上顯示其為破損雞蛋。當目標區域掃描結束時仍未出現S>T的破損區域,雞蛋判定為好殼蛋,同樣將結果送入顯示屏顯示。
T的選取直接影響破損檢測的準確率。為了選擇合適的T值,選取大個白色雞蛋80個(其中保留好殼蛋40個,人工敲破40個,且最小破損長度約為8.24mm)依次放入光照實驗箱中,分別選用T=35、T=40和T=45對80個雞蛋進行處理,結果如表1所示,其中T=40時系統準確率最好,因此在研究中選取T=40作為閾值。
選取合適的閾值T=40后,選取破損雞蛋60枚,蛋殼的破損裂縫長度不一。按照裂紋長度(l)將雞蛋分為 I(0 而對于好殼蛋,經實驗表明當蛋殼斑點顏色與蛋殼顏色對比性較大,并且其面積大于15.04mm2時,好殼蛋被誤判為損殼蛋。 表1.值T的選取 圖9.損長度與準確率 (1)構建了基于DSP的雞蛋蛋殼破損無損檢測實驗系統,實現了雞蛋圖像的采集、處理、識別和結果顯示,為實現流水線上雞蛋蛋殼破損無損檢測研究提供了契機。 (2)對雞蛋圖像中的非目標區域噪聲刪除提出了疊加法和外接矩形法兩種方法,實驗結果表明長短軸矩形法既能有效地去除雞蛋邊緣投影外的噪聲,又能提高圖像后續處理的效率。 (3)對刪除邊界后的各個目標點利用改進型連通區域法進行標記,實驗表明當閾值 T=40時5×5領域搜索的破損識別準確率最高,其中破損長度大于8mm的損殼蛋識別準確率為96%,而蛋殼上的明顯斑點會被誤判為破損。 (4)采用600MHz 作為DSP主頻,處理一幀576×720圖像所需時間約為0.735s。處理時間還較長,需進一步對程序進行優化或嘗試采用 dsp/bios編寫程序縮短圖像處理時間,從而提高破損檢測效率。 [1]陳紅,王巧華,文友先.無損檢測技術在禽蛋破損自動檢測中的應用[J].食品與機械,2003,(5):9-10. [2]Kurt C. Lawrence,Seung Chul Yoon,Deana R. Jones,et al.Modified Pressure System for Imaging Egg Cracks[A]. 2008 ASABE Annual International Meeting[C].Rhode Island:June 29- July 2, 2008. [3]H R Pourreza,R S Pouzzreza, S Fazeli, et al. Automatic Detecion of Eggshell Defects Based on Machine Vision [J].Journal of Animal and Veterinary Advances, 2008,7(10):1200-1203. [4]Patel, V C, R W McClendon, et al. Crack Detetion in eggs using computer vision and neural networks [J].A.I.Appl.,1994,8(2):21-31. [5]Patel, V C, R W McClendon, et al. Detection of blood spots and dirt stain in eggs using computer vision and neural network[J]. Applied Eng.Agric.,1996,12(2):253_258. [6]Patel, V C, R W McClendon, et al. Color computer vision and artificial neural networks for the detection of defects in poultry eggs[J].Artificial Interll.Rev.,1998,12:163-176. [7]寧改媂,曾翔君,駱一萍.DSP控制器原理及應用[M].北京:科學出版社,2008. [8]張雄偉,曹鐵勇.DSP芯片的與原理與開發應用[M].北京:電子工業出版社,2000. [9]任明燦.基于計算機視覺雞蛋品質檢測的研究[D].上海:上海交通大學碩士學位論文,2006.12. [10]潘磊慶,屠 康,蘇子鵬,楊佳麗,李宏文.基于計算機視覺和神經網絡檢測雞蛋裂紋的研究[J].農業工程學報,2007,23(5):154~158. [11]謝鳳英,趙丹培.Visual C++數字圖像處理[M].北京:電子工業出版社,2008. [12]李青,鄭南寧,游屈波,等.計算機圖形分離算法研究及實現[J].計算機輔助設計與圖形學學報, 2004,16 (8):1040-1044. [13]牟少敏,孫永香,朱紅梅,等.昆蟲圖像的自動計數方法的研究[ J ].儀器儀表學報, 2003, 24 (4期增刊) : 426-429. [14]范鋼鋒,李金伴.機動車輛牌照自動定位算法研究[J].江蘇大學學報(自然科學版) , 2002, 23 (2) : 46-49.

4.論