宋蘭霞,周作梅,鄧世權
(1凱里學院大數據工程學院 貴州 凱里 556011)
(2凱里學院微電子與人工智能學院 貴州 凱里 556011)
計算機視覺使用計算機模擬人眼對目標進行識別、跟蹤和測量[1],并對圖形和圖像進行識別、解釋和處理,即實現計算機“看得懂”,現已成為人工智能率先取得較大突破、應用場景較為明確的關鍵技術之一,隨著計算機技術的發展,我國用計算機視覺技術進行肉質檢測和自動分級技術的研究已取得了一定進展,并在依據大理石花紋進行胴體分級方面的研究頗見成效,但他們大多采用文本文件存儲數據,不能實現大規模數據的存儲;在國外用計算機視覺技術對肉質檢測和分級也進行了大量的理論研究[2],但通過下基層進行調研走訪,發現該技術在雷山縣還未見使用,也未見公開報道,因此,我們有必要研究出一套適合于雷山縣的豬肉分級體系,實現雷山縣豬肉的科研價值,本文以大固魯村豬肉為例,利用計算機視覺技術從豬肉樣本圖像中提取出白紅比這一特征,并把結果儲存到數據庫中,以便于以后豬肉的在線分級。該法不但實現了豬肉的科學研究價值,而且為實現豬肉在線分級打下基礎。
系統使用的硬件環境為數碼相機、圖像采集卡、計算機、光源、黑板,系統使用的軟件開發平臺為Microsoft Visual Studio,使用Visual C#語言編寫程序,使用Microsoft SQL Server數據庫存儲數據,使用數據結構進行圖像處理,使用圖像采集卡獲取數碼相機拍攝的豬肉圖像。
通過到基層進行調研和走訪,了解用戶對系統的需求,掌握白紅比特征提取系統中用戶的基本功能,需要包括圖像獲取、圖像處理[3]、濾波去噪,以及如何對圖像處理后的豬肉圖像進行白紅比特征提取,并將提取的特征保存在特征數據庫中,其中,圖像處理是本系統研究的重要內容,為白紅比特征提取做好準備工作。
系統包括獲取圖像、去除背景、中值濾波、灰度化處理、提取大理石紋、保存六大模塊,系統的功能模塊圖如圖1所示。
為了方便存儲大批的數據,本文選用了Microsoft SQL Server數據庫進行數據的存儲,字段名稱從左到右依次分別為樣本編號、去除背景后的圖像、大理石紋圖像、去除背景后圖像的總像素數量、大理石花紋像素數量、白紅比(%)。
用數碼相機拍攝豬肉圖像如圖2所示,然后輸入計算機進行圖像處理[4]。
雙峰法比較簡單,在可能情況下常常作為首選的閾值確定方法,應用比較普遍,這種方法適用于前景目標和背景物體的灰度值存在差別,并且分布相對均勻的情況,當某一圖像得直方圖具有兩個峰時,可以取兩峰所夾的谷底作為門限閾值,但是,當出現灰度直方圖的波谷平坦,各區域直方圖的波形重疊等情況時,用雙峰法就難以確定閾值。
去除背景的算法思想是對RGB胴體圖像的紅色分量運用統計決策論中的知識計算最佳閾值,將彩色圖像紅色分量的直方圖劃分成兩個部分,并且這個閾值使得兩部分之間的距離即類間方差最大,然后用半閾值分割法把黑色背景從整塊胴體圖像中去除。去除背景后的圖像如圖3所示。
排序,是程序設計中的一種重要操作,它的功能是將一個數據元素的任意序列,重新排列成一個按關鍵字有序的序列。
中值濾波的算法思想是通過運用數據結構中學到的排序算法對其鄰域內的像素點先進行排序然后再用中值換掉。
假設含有n個元素的有限序列為{f1,f2,……,fn},窗口長度為m(m為奇數),對此一維序列進行中值濾波,即從輸入序列依次抽出m個數{fi-v,……,fi-1,fi,fi+1,……,fi+v},其中fi為窗口中心v-(m-1)/2的值,對這m個數按照關鍵字非遞減關系進行排序,取其中值Med{fi-v,……,fi-1,fi,fi+1,……,fi+v}代替窗口中心值fi,即fi=Med{fi-v,……,fi-1,fi,fi+1,……,fi+v}。例如,圖4所示的圖像數據,為了求出像素10(中括號內所圍的像素值)的代替值,就要對其方框內3×3領域的9個像素值按照由小到大的順序進行排列,即2、2、3、3、4、4、4、5、10,其中間值為4。像素值為10的像素中值處理后變為4,像素值為10的像素是作為噪聲故意輸入進去的,通過中值處理后噪聲就被消除了。如圖4所示。
再如,有一個有限序列{20,10,30,15,25},從小到大排列后序列為{10,15,20,25,30},中值濾波的輸出結果為20。如果像素點為30的像素是噪聲點,則經中值濾波后噪聲就被消除了,中值濾波的算法減少了隨機干擾和脈沖干擾,克服了線性濾波器所帶來的圖像細節模糊問題,適合于去除掃描噪聲和顆粒噪聲[5]。
灰度化處理的算法思想是用加權平均值法對圖像進行灰度化處理,用數學公式描述為Y=0.2989R+0.5870G+0.1140R,其中,R、G、B分別表示彩色豬肉圖像的紅色分量、綠色分量、藍色分量,0.2989、0.5870、0.1140分別表示R、G、B的權值,Y表示灰色豬肉圖像的亮度值即灰度級別。在加權平均值法中,灰色(亮度Y)和彩色(色度I、飽和度Q)是分離的,同一信號既可表示彩色圖像也可表示灰色圖像,沒有I、Q分量時為灰色圖像,否則為彩色圖像。
提取白紅比的算法思想是先用迭代法設置閾值,然后根據閾值用二值化處理的方法把脂肪從整塊豬肉圖像中分割出來[6]。
4.5.1 迭代法閾值的選取:
算法思想是先取圖像中值T0,再按下式迭代:
4.5.2 二值化處理的算法描述:
S1:若 F(X,Y)>T,則G(X,Y)=255,否則跳轉到S2;
S2:若F(X,Y)<T,則G(X,Y)=0。
其中,F(X,Y)表示灰度胴體圖像像素的亮度值,G(X,Y)表示二值化后的圖像像素的值,T表示黑色大理石紋和背景區域之間的邊界像素的值。
4.5.3 提取大理石紋的算法描述:
S1:對胴體圖像在[0,255)范圍的亮度值由小到大排序,得到圖像亮度的最大值和最小值;
S2:取初始閾值為圖像的最大亮度值和最小亮度值的均值;
S3:把圖像分割為兩類像素,其中一類像素都大于等于閾值,另一類則小于閾值;
S4:分別計算兩類像素的平均亮度值
S5:新的閾值為兩類像素的平均亮度值的均值
S6:如果新的閾值<初始閾值則找到了最終的閾值,也就是說找到大理石紋和其他區域的分界點,否則跳轉到S3;
S7:如果圖像的亮度值小于閾值,則為大理石紋,用黑色表示,否則其值保持不變。
通過以上的算法描述[7],整個圖像分成兩部分,其中,黑色為大理石紋(見圖5),用邏輯“0”表示,白色用邏輯“1”表示,從而實現大理石紋的提取。
4.5.4 提取白紅比特征的算法描述
S1:將去除背景后的圖像中的非白色像素點個數進行統計,比如,圖3中的非白色像素點個數計為white=41231個像素點;
S2:將大理石花紋圖像中的黑色像素點個數進行像素統計,比如,圖5中的黑色像素點個數計為black=11 792個像素點;
S3:計算白紅比:
d=black/(white-black)×100%=40.055 708 4%。
在對白紅比特征提取系統進行程序設計的過程中往往離不開數據庫的支持,也就是說,每一個程序的開發都是需要使用到數據庫實現對數據進行保存。點擊“保存數據”按鈕,計算機則會自動將樣本編號、去除背景后的圖像、大理石紋圖像、去除背景后圖像的總像素數量、大理石花紋像素數量以及白紅比計算的結果存入數據庫。例如,樣本2的數據存儲結果如圖6所示。
本文選取6組樣本圖像,用上述方法測的各組樣本圖像的白紅比與實測等級的關系見表1。

表1 6組樣本圖像的白紅比與實測等級的關系
為建立圖像白紅比與實測等級的關系,我們設等級為Y,白紅比為X,用描點法畫出白紅比與實測等級的關系圖,見圖7。建立的一元線性回歸方程為Y=5.195 3-0.064 5X,見圖8。結果表明,白紅比與圖像實測等級呈顯著的線性相關,相關系數為-0.99。因此,本白紅比特征提取系統有著重要的科學研究價值。
本文是對計算機視覺技術應用于雷山縣大固魯村豬肉進行技術研發的一次嘗試,用正確高效的算法實現了白紅比無損檢測。
該系統的白紅比特征結果由根據計算機視覺知識研制而成的白紅比特征提取系統軟件測定,為雷山縣大固魯村豬肉技術研發提供科研價值,為雷山農畜產品分級帶來新方法,為大數據在貴州農畜產品技術研發提供借鑒和參考價值。