蔡鑫垚,何開紀,張晨陽,李高平
(西南民族大學計算機科學與技術學院,四川 成都 610041)
我國是農業(yè)大國,自古以來土地資源與氣候環(huán)境都很優(yōu)渥,適宜大面積種植農作物,因此也很早就有以農治國的傳統(tǒng)[1].現(xiàn)如今農作物的采摘與分級揀選成為食品生產加工中不可或缺的重要環(huán)節(jié),但以目前我國市場現(xiàn)狀來看,現(xiàn)有的果蔬分選機器絕大多數(shù)仍以一些較為粗略的特征作為分選指標,例如大小、重量等.這樣一來由于機器的分選精確度較低,且成本昂貴,不適于中小型企業(yè)的配備.除此之外,大部分此類設施的功能相對單一,只能對某一農產品進行分類揀選,其操作的精準度與效率都有待提高.由此,研制出一套造價低廉、易于操作同時高效而精確的果蔬采摘分揀設備勢在必行.
本文主要通過建立混合高斯背景模型與仿射變換模型,提取蔬菜水果分揀過程中所拍攝的監(jiān)控視頻中特定圖像的前景目標,并將其數(shù)字化之后進行圖像處理,以方便果蔬分選機器快速高效地識別蔬果圖像.目前生產中的很多果蔬分揀系統(tǒng)已經具備功能較為完整的生產流水線,其組成子系統(tǒng)一般有運輸系統(tǒng)、分揀系統(tǒng)、包裝系統(tǒng)、溯源系統(tǒng)等. 整條生產線核心分揀功能主要依靠工業(yè)機器人和視覺識別系統(tǒng)來完成[2].通過在分揀系統(tǒng)安裝攝像機進行拍照,將影像數(shù)據(jù)數(shù)字化后,與前期所采集的圖像數(shù)據(jù)進行對比分析,再由計算機做出相應決策并控制機器執(zhí)行動作,完成果蔬分揀的一系列實際操作[3].
在本文中主要考慮分揀系統(tǒng)在輸送果蔬的過程中,出現(xiàn)下述三種情況下前景目標提取問題:(1)在指定位置采集果蔬影像數(shù)據(jù),即靜態(tài)背景下前景目標的提取情況;(2)在運行的傳送帶上采集果蔬影像數(shù)據(jù),即動態(tài)背景下前景目標的提取情況;(3)在指定位置采集果蔬影像數(shù)據(jù)時,果蔬滾動或攝像頭晃動,即鏡頭晃動或果蔬滾動下前景目標的提取.
在指定位置采集果蔬影像數(shù)據(jù)相當于在靜態(tài)背景下提取前景目標.對于這種情況我們可以選擇混合高斯背景模型來建模.混合高斯背景模型是一種基于像素樣本統(tǒng)計信息的背景表示方法,他的基本原理是先采集每個像素在一段較長時間內的大量樣本值的統(tǒng)計特征(如數(shù)量及其均值和方差)并利用多個高斯模型來表征,然后用重新獲取的圖像中像素點的特征來更新模型,并將其與原本圖像中每個像素點的混合高斯模型相匹配[4],隨后用統(tǒng)計差分的方法確定目標像素是背景點還是前景點.
在果蔬分揀機器采集的影像數(shù)據(jù)中,視頻圖像可看做是由一個個像素點組成.而每一個像素點的灰度值在一系列圖像中的變化,可視作一個連續(xù)產生像素值的隨機過程,因此,可以將每個像素點的灰度值變化規(guī)律用高斯分布來描述.
而對于多模態(tài)的高斯分布模型,圖像中的每一個像素點具有不同的權值下的多個高斯分布.[5]我們將其疊加到模型中,使得產生像素灰度值的每個狀態(tài)可以具有與之相對應的高斯分布,各個高斯分布的權重及其分布參數(shù)隨時間變化. 這里,假定圖像中像素點灰度值相互獨立并具有相同的方差.觀察得到隨機變量X 的觀測樣本數(shù)據(jù)集為t 時刻像素的樣本,則單個樣本點xt的混合高斯分布概率密度函數(shù)如下:
其中k 為分布模式總數(shù),η ( xt,μi,t,τi,t)為t 時刻第i 個高斯分布,μi,t為其均值,τi,t為其協(xié)方差矩陣,δi,t為方差,I 為一維單位矩陣,ωi,t為t 時刻第i 個高斯分布的權重[6].
將每個新的像素值xt和當前k 個模型進行對比,直到找到與當前模型均值偏差相匹配的分布模型,該均值偏差的范圍在2.5σ 內. 如果能偶找到滿足背景要求模式,則該像素點可劃分為圖像背景的類別,不然則判定為前景目標. 隨后更新各模式的權值,并對各個模式的權重歸一化處理.[7]同時,未匹配模式的均值μ 與標準差σ 保持不變,匹配模式的更新參數(shù)的公式如下式所示:
如果上述步驟中沒有任何模式能與新的像素點成功匹配,則要換掉其中權重最小的模式,并取其均值為當前像素灰度值,取其標準差為初始較大值,權重為較小值.每種模式根據(jù)公式w/α2降序排列,其中α 表示的是學習速率,即靠前的模式是具有較大權重和較小標準差的模式.
這里選擇滿足(7)式的前B 個模式作為背景點,參數(shù)T 表示背景所占比例[8]
在實際分揀過程中,在傳送帶上采集果蔬影像數(shù)據(jù)時,背景模型往往是多模態(tài)的,對于種多模態(tài)場景下的前景目標提取,適宜用多個高斯分布的概率模型來描述背景.這里采用改進的高斯混合背景模型實現(xiàn)背景建模.該方法的優(yōu)點在于不僅能不斷更新背景模型,而且能直接在新的一幀圖像中識別背景目標點[9],這樣一來就省去了對差分計算的需要,提升了檢測過程效率和準確性. 該算法的基本思想是:對所采集的視頻圖像中每個像素灰度值建模,觀測一定時間內各個高斯分布的持續(xù)變動的差異,來判別更符合背景的高斯分布. 更接近的分布即判定為背景模型.而圖像中灰度值不能與該高斯分布相匹配的像素點即為是背景目標點.具體計算方法如下:
假設在較長一段時間內檢測到坐標為(x0,y0)的像素點灰度值為:
按上述方法對其進行建模,對新一幀圖像中的像素點(x0,y0,t),將它的灰度值與現(xiàn)有的k 個高斯分布相比較,由此判斷他們是否匹配,若是,則該像素點即被判別為為背景點[10].
若存在與像素點(x0,y0,t)匹配的高斯分布,則對背景模型中原有各個參數(shù)進行更新
這里只針對匹配成功的高斯分布,若像素點均不符合與原有的k 個高斯分布,則相應參數(shù)保持不變;ρ為參數(shù)學習速率,定義為:
類似地,添加以該像素的灰度值作均值的新的高斯分布,來替換原始的k 個高斯分布中具有概率和權重均為最小的分布.從而將其更新為具有更大方差與更低權重的新的背景模型.如此便實現(xiàn)了高斯混合模型的更新.
由此可見,建立混合高斯模型的方法,能夠將場景的動特性較為完整地表征出來,同時可以在保證效率與準確度的條件下適應背景環(huán)境的變化,例如光照強度的改變、小幅度畫面振動等情況.
在果蔬分揀系統(tǒng)運作的過程中,當監(jiān)控攝像頭發(fā)生輕微震動或果蔬滾動時,會引發(fā)采集圖像中相連續(xù)的幀與幀之間背景的運動速度的變化.這種非線性的變化通常將其分為繞軸旋轉和沿軸平移兩種情況.對此,對獲取的視頻圖像采用全局運動補償?shù)姆椒ǎ词紫葘討B(tài)背景轉化為靜態(tài). 其步驟大致為:首先獲取某一特征點或特征區(qū)域的運動情況,再利用回歸算法計算參數(shù)的最優(yōu)解來估計全局運動的參數(shù),再進行背景目標點與模型的匹配.在背景為動態(tài)的視頻圖像中,攝像設備位置的變化會導致視頻畫面中某一像素點從在第k -1 幀中的處移動到第k 幀( xk,yk)處,圖中像素點坐標的改變情況應當存在某種變換模型,我們假設這種模型為( xk,yk).不同的運動狀態(tài)對應不同的模型,所以,建立相對準確的描述運動狀態(tài)的參數(shù)模型是找到圖像中像素點對應坐標變化規(guī)律的必要前提.仿射變換模型是現(xiàn)有模型中較能有效地描述攝像設備位置變動所引發(fā)的圖像背景的變化的一種模型.[11]該模型中的6 個參數(shù)如下:
其中,r 為縮放參數(shù),θ 為旋轉角度, (c,d)分別為圖像沿水平與豎直方向的偏移量.
圖像數(shù)據(jù)的多尺度特征的主要思想是將尺度參數(shù)引入處理圖像數(shù)據(jù)的的模型中,綜合所獲得的多尺度特征以深度挖掘圖像信息. Lowe 發(fā)表于1999 年的尺度不變特征轉換算法,選取高斯差分DoG(Difference of Gaussian)尺度空間得到的最大值點作為特征點,不僅提升了運算效率,而且對圖像的尺度、角度、光照等多種變化情況適應度較高.其在各種尺度空間中表達式如下:
其中,σ 是尺度空間因子,L 為圖像的尺度空間.針對兩個相近的尺度空間之差可得到一個近似的圖像LoG 卷積運算:
檢測每組相鄰DoG 圖像之間極值點. 具體方法為:對待測點及其周圍的點(即相同尺度空間下待測點四圍的8 個點及相鄰尺度空間的圖像中的2 ×9個,共26 個點)來進行對比分析.選擇對比過程中的極大值或極小值點作為備選的特征點.
通過上述方法可得到一組備選特征點集,但仍然會有“偽極值點”的出現(xiàn).這是由于在離散空間中進行檢測,運算結果存在誤差,因而為了降低誤差,仍然需要為極大值或極小值點多次進行精準確定.精確的極值點應為X0+X.即該極值點的值為:
除此之外,圖像邊緣的像素點也屬于易受噪聲干擾的不確定的極值點,而且DoG 算子對圖像的邊緣適用度較低,所以仍需刪掉圖像的邊緣上的點. 通常情況下,穿過邊緣的方向主曲率較大,而沿邊緣的方向上主曲率較小,因此,邊緣線上的極值點的主曲率最大值和最小值的比率大于其它位置.
用一個2×2 的Hessian 矩陣[12]可以計算主曲率:
H 的特征值和主曲率成正比.這里參考Harris 算法,設α、β 分別為H 的最大特征值和最小特征值,γ=α/β[13],通常設閾值γ0=10,如果:
則保留該極值點,否則丟棄.
本次實驗所使用的水果(獼猴桃)由蔬果市場隨機購買所得,并通過紙帶模擬傳送帶,手機拍攝獲取圖像.手機型號為iPhone SE,攝像頭為1200 萬像素.對上述模型的求解,首先我們調用了Python cv2 模塊,把視頻按幀數(shù)讀取,用高斯背景分離將每一幀的前景目標提取出來.
①靜態(tài)背景下前景目標的提取.基于混合高斯模型,得出的靜態(tài)背景下前景目標(獼猴桃)的提取結果如圖1 所示.
圖1 靜態(tài)背景下前景目標的提取Fig.1 Extraction of foreground objects in static background
從圖1 可以看出模型提取的前景目標顯示不完全,但背景處理得比較干凈,噪點較少.此模型雖然以犧牲目標像素完整性為代價對圖像的背景進行了高度的降噪處理,但同時也保證了對圖像的前景目標的有效提取,使得提取的圖像更加準確.
②動態(tài)背景下前景目標的提取.通過抖動紙帶及添加微小障礙物來模擬動態(tài)背景,基于改進后的混合高斯模型,得出的動態(tài)背景下前景目標(獼猴桃)的提取結果如圖2 所示.
圖2 動態(tài)背景下前景目標的提取Fig.2 Extraction of foreground targets in dynamic background
由圖2 可以看出,通過對混和高斯背景模型的改進,對動態(tài)背景做處理之后,能夠得出一個圖像較為完整且邊緣較為清晰的結果.但是圖像中仍有少數(shù)的噪點存在,且前景目標的邊緣特征沒有問題一顯示的結果明顯.說明該改進模型對處理動態(tài)背景下的前景目標的檢測與提取能夠做到比較有效的從動態(tài)背景中提取出目標,但仍有缺陷,也可能是在對模型的改進中導致了這個有悖于求解初衷的效果,仍需完善.
③鏡頭晃動下前景目標的提取.在提取晃動攝像頭情況下的視頻前景目標時,用Python-OpenCV 進行每一幀的讀取并保存,對第一幀的背景進行特征點提取,后面每一幀特征點與第一幀背景特征點進行旋轉角度比較,然后通過仿射變換,對當前幀進行修正,修正后的每一幀另外保存,基本矯正了圖片偏移角度的問題,再把矯正過的圖片轉換為視頻.
鏡頭晃動或果蔬滾動背景下前景目標(獼猴桃)的提取結果如圖3 所示.
圖3 鏡頭晃動下前景目標的提取Fig.3 Extraction of foreground targets under lens shaking
由圖可以看出,畫面相比原視頻截圖穩(wěn)定了許多,基本修正了畫面旋轉的問題. 再通過混和高斯背景模型下的Matlab 編碼運算,提取到了比較清晰的前景目標;但相較于靜態(tài)圖像提取出的前景目標模糊了一些.因為當圖像存在縮放等尺度改變的情況時,DoG 算法的尺度不變性很好,所以往后在這種情況下要考慮使用其他算法來彌補這種情況下DoG 算法的不足,比如SUSAN 算法.
針對以上實驗結果,該方法同樣適用于其他果蔬,特別是形狀、紋理完全不同的果蔬,該方法能夠進行較好的識別,以滿足蔬果實際分揀中對前景目標提取的需求.
針對該問題,有其他方法可以達到類似的效果.如二幀差分法、單高斯模型和VIBE 模型等.二幀差分法是背景差分法中的一種,主要原理是通過視頻圖像中相鄰兩幀圖像像素值的差分運算來獲取運動目標的輪廓[14],由此實現(xiàn)前景目標的提取. 單高斯模型SGM(Single Gaussian background model)適用于單一背景的場景[15].主要采用參數(shù)迭代的方法,對視頻圖像中像素點灰度值的變化看作是不斷產生像素點的隨機過程[16]. 基于像素模型的背景建模算法VIBE(Visual background extractor)采用背景幀的像素樣本構成像素的背景模型,然后將輸入幀的像素值與之匹配,根據(jù)預設閾值判定該像素點是否屬于背景點并用匹配上的像素點更新其背景模型[17].
針對于上述三種模型,通過Matlab 編程實現(xiàn)上述三種模型的結果通過一系列的圖片如圖4 所示:
圖4 其他方法提取前景目標的效果Fig.4 Other methods to extract the effect of the foreground target
如圖4 所示,在相機不帶抖動、靜態(tài)背景下,單高斯法和VIBE 算法的提取結果明顯優(yōu)于二幀差分法,然而,參考多模態(tài)的視頻圖像提取結果,混合高斯背景模型效果更優(yōu).
在以上幾種方法里,二幀差分法雖然算法邏輯簡單、計算效率高,且算法采用連續(xù)的兩幀圖像相減來計算前景目標,適應性較好,然而它的缺點是不能一次提取所有相關特征點,導致提取的目標出現(xiàn)內部空隙;此外,在進行連通域處理后雖然消除了大部分噪點,但是降噪的同時會去掉一些緩慢移動的目標,不利于低速移動目標的提取.而高斯背景建模方法中采用單模態(tài)分布,不能很好地適應背景點的值分布較分散的情況.VIBE 算法采用初始化單幀圖像,然后對后續(xù)圖像序列進行前景目標提取的操作,因此具有初始化速度快、內存消耗少和占用資源少等優(yōu)點[18],但算法自身也存在著局限性,主要有鬼影、和運動目標不完整等問題.
為了采集蔬菜水果分揀過程中監(jiān)控視頻圖像中的前景目標,運用成熟的仿射變換模型和混合高斯背景模型,并結合機器學習與模式識別手段所建立的算法,實現(xiàn)了前景目標(獼猴桃)的提取,所采用的算法可靠、準確,能夠滿足蔬果實際分揀中對前景目標提取的需求.