【摘? 要】為了增大我國(guó)對(duì)豬群飼養(yǎng)的規(guī)模,為了提高市場(chǎng)豬肉的質(zhì)量和產(chǎn)量,為了響應(yīng)國(guó)家對(duì)農(nóng)業(yè)發(fā)展的大力支持,為了滿足我國(guó)眾多人口對(duì)豬肉的需求,本文契合時(shí)機(jī)地順應(yīng)當(dāng)下機(jī)器視覺技術(shù)的蓬勃發(fā)展,將主要針對(duì)機(jī)器視覺圖像處理方面的技術(shù)展開研究,以求達(dá)到對(duì)群養(yǎng)豬圖像中的豬個(gè)體實(shí)現(xiàn)智能識(shí)別。首先,針對(duì)豬舍中惡劣的環(huán)境,為了減少陰影、光線不足的影響,取得較好的識(shí)別效果,本文選用豬舍正上方俯視拍攝群養(yǎng)豬視頻序列的方法。由于豬舍背景復(fù)雜,目標(biāo)提取難度大,所以在事先標(biāo)定的有效區(qū)域內(nèi)利用Visual Studio2015軟件結(jié)合Open CV中的Crab Cut交互式目標(biāo)提取的算法,對(duì)原始彩色圖像中的7頭豬進(jìn)行初步目標(biāo)分割,并結(jié)合簡(jiǎn)單的閾值分割、形態(tài)學(xué)處理和孔洞填充等操作,將目標(biāo)盡可能完整地從背景中提取出來(lái)。其次,對(duì)豬舍中的7頭豬個(gè)體分別建立樣本圖像庫(kù),依次提取灰度直方圖、顏色矩、灰度共生矩陣、不變矩等多種特征。針對(duì)高維度的數(shù)據(jù)會(huì)增加算法復(fù)雜度,也可能會(huì)降低分類器識(shí)別率等問題。
【關(guān)鍵詞】? 群養(yǎng)豬;特征提取;圖像分割;Crab Cut,Open Cv;智能識(shí)別
1. 緒論
1.1研究目的及意義
本研究主要對(duì)基于VS2015結(jié)合OpenCv的CrabCut算法對(duì)群養(yǎng)豬的圖像分割進(jìn)行重點(diǎn)研究,后續(xù)對(duì)數(shù)據(jù)優(yōu)化和分類識(shí)別等方面作了簡(jiǎn)單介紹,簡(jiǎn)潔描述了樣本庫(kù)中豬個(gè)體提取顏色、紋理和形狀等多種特征提取方法以及數(shù)據(jù)優(yōu)化,最后介紹利用混合函數(shù)SVM完成對(duì)群養(yǎng)豬的個(gè)體身份識(shí)別。
1.2課題主要研究工作
基于opencv的機(jī)器視覺系統(tǒng)用于群養(yǎng)豬身份的自動(dòng)識(shí)別,首先俯拍群養(yǎng)豬視頻序列,在標(biāo)定的區(qū)域內(nèi)使用Grab Cut交互式目標(biāo)提取算法,對(duì)彩色圖像進(jìn)行初步目標(biāo)分割,并結(jié)合閾值分割、形態(tài)學(xué)處理和孔洞填充等操作,將目標(biāo)提取出來(lái)。
2.群養(yǎng)豬視頻采集及目標(biāo)提取
基于在OpenCV中的“摳圖”(Crab Cut)算法對(duì)目標(biāo)提取上的輕量高效,本文主要采用VS配置OpenCV,并采用C++語(yǔ)言編寫程序,在VS環(huán)境中對(duì)OpenCV中的函數(shù)進(jìn)行調(diào)用,從而實(shí)現(xiàn)交互式Crab Cut算法對(duì)圖像進(jìn)行目標(biāo)分割。
2.1群養(yǎng)豬俯視視頻采集
采用俯拍方式拍攝群養(yǎng)豬的RGB圖像序列,在進(jìn)行拍攝豬群時(shí),應(yīng)在光照充足且均勻的環(huán)境下拍攝,避免陰影的影響造成拍攝模糊不清。在選擇視頻片段時(shí),應(yīng)避免采用存在某些豬個(gè)體臥躺、攀爬、爭(zhēng)斗、重疊嚴(yán)重的情況,以免對(duì)后面的豬個(gè)體特征提取造成影響。本文選取了滿足實(shí)驗(yàn)要求視頻序列作為樣本幀,圖像如圖(2-1)所示:
2.2群養(yǎng)豬個(gè)體目標(biāo)提取
隨著養(yǎng)豬業(yè)規(guī)模的不斷發(fā)展,對(duì)群養(yǎng)豬進(jìn)行個(gè)體身份識(shí)別、健康狀況判斷、行為分析等研究具有重要的實(shí)用價(jià)值。但是目前群養(yǎng)豬的檢測(cè)技術(shù)依舊處于初級(jí)階段,外加豬舍環(huán)境復(fù)雜,外界的干擾因素較多,分割難度也隨之增大。
(1)傳統(tǒng)目標(biāo)分割算法?;陂撝档姆指罘椒ā;叶乳撝捣指罘ㄊ且环N最常用的并行區(qū)域技術(shù),它是圖像分割中應(yīng)用數(shù)量最多的一類。閾值分割方法實(shí)際上是輸入圖像f到輸出圖像g的如下變換:其中,T為閾值;對(duì)于物體的圖像元素,g(i,j)=1,對(duì)于背景的圖像元素,g(i,j)=0。
(2)交互式Grab Cut算法。交互式圖像分割(Crab Cut)算法只需用戶輸入一些簡(jiǎn)單的標(biāo)記,就可以很好地解決自動(dòng)分割的一些問題,使得目標(biāo)提取更加完整。使用VS結(jié)合OpenCV操作方法簡(jiǎn)單,運(yùn)行快速,輕量高效。
(3)豬目標(biāo)提取方法及結(jié)果。本在window10系統(tǒng)下,采用VS2015結(jié)合OpenCV3.2來(lái)實(shí)現(xiàn)Crab Cut算法對(duì)圖像進(jìn)行的目標(biāo)分割。在此之前要先將OpenCV加入系統(tǒng)環(huán)境變量中,并將OpenCV目錄下build中的bin等文件地址添加到VS2015中等操作,完成OpenCV和VS2015的配置,并能夠?qū)崿F(xiàn)VS2015對(duì)OpenCV調(diào)用。在成功配置好OpenCV和VS2015后,需要編寫程序來(lái)實(shí)現(xiàn)圖像分割?;趯?duì)CrabCut函數(shù)的認(rèn)識(shí),在調(diào)用Grab Cut函數(shù)前需要建立鼠標(biāo)回調(diào)函數(shù)-setMouseCallback并且還需建立-onMouse函數(shù)實(shí)現(xiàn)對(duì)矩形窗口區(qū)域進(jìn)行處理。
在完成VS2015對(duì)豬群圖片的讀取后,在豬群中任選一頭豬鼠標(biāo)劃出一個(gè)矩形框來(lái)完全框起這頭豬。在框好之后,按“n”進(jìn)行第一次迭代,在完成第一次迭代后,可繼續(xù)按“n”可進(jìn)行第二次迭代,以此類推,可進(jìn)行多次迭代直到符合我們的要求即可。(注意,此處的“n”只是程序定義的開始符,也可以修改程序換為其他的標(biāo)識(shí)符)。本文列舉第1、3次迭代的實(shí)驗(yàn)結(jié)果如下:(下圖為第一次迭代,第三次迭代)
根據(jù)實(shí)驗(yàn)結(jié)果,第三次迭代的效果產(chǎn)生了退化,所以不能采用第三次迭代的結(jié)果作為目標(biāo)提取的最終結(jié)果,只能采用第一次迭代或第二次迭代。從分割效果上看,第一次和第二次迭代的區(qū)別不大,為了節(jié)省時(shí)間,此處選取第一次迭代結(jié)果作為樣本。對(duì)豬群進(jìn)行從左到右,從上到下進(jìn)行1到7編號(hào),重復(fù)上述操作得到的圖片經(jīng)過(guò)Crab Cut后的7個(gè)圖像。但是這些圖片還可能存在噪聲干擾、邊界不平滑或存在孔洞等問題,所以這些圖像需要經(jīng)過(guò)一些簡(jiǎn)單的處理才能得到準(zhǔn)確的目標(biāo)。
對(duì)于類似這類干擾、噪聲太多的目標(biāo)分割。一方面我們可以在原始3個(gè)圖像中尋找合適的位置、有利于Crab Cut算法分割的,對(duì)目標(biāo)進(jìn)行分割。從而節(jié)約后續(xù)操作的時(shí)間,提高目標(biāo)提取的精確度。另一方面我們可以通過(guò)一些簡(jiǎn)單的MATLAB處理,首先我們將Crab Cut處理過(guò)的7個(gè)圖像導(dǎo)入到MATLAB新建的可執(zhí)行文件所在的文件夾,為下面的圖像處理做準(zhǔn)備。(1)將交互式提取的圖像轉(zhuǎn)化為灰度圖;(2)再將灰度圖轉(zhuǎn)化為合適的二值圖,得到二值圖圖像如圖下:
(3)最后,再利用imfill函數(shù)實(shí)現(xiàn)豬身目標(biāo)區(qū)域內(nèi)大孔洞的填充,用bwareaopen函數(shù)去除相對(duì)較大的干擾物,在處理完二值圖噪聲去除之后再將二值圖轉(zhuǎn)化為彩色圖像。
2.3樣本庫(kù)的建立
本文采用俯視攝像機(jī)俯拍群養(yǎng)豬的運(yùn)動(dòng)視頻,可以避免豬身陰影和相互緊貼、遮擋的影響,提高了特征提取的準(zhǔn)確率。實(shí)驗(yàn)中的豬舍中包含一個(gè)喂食槽以及7頭處于不同生長(zhǎng)階段的,皮毛顏色略有差異的豬只。為便于實(shí)驗(yàn)分析滿足實(shí)驗(yàn)要求,選取的群養(yǎng)豬圖片不存在群養(yǎng)豬之間攀爬、打斗、或重疊遮擋等情況。圖(2.1)為某樣本幀,采用編號(hào)順序?yàn)椋合葟纳系较?,再?gòu)淖蟮接乙来芜M(jìn)行編號(hào),圖像背景為黑色,保存為相同的圖片格式(jpg),本文只列舉身份編號(hào)為2的圖像如下:
3.群養(yǎng)豬個(gè)體特征提取和特征數(shù)據(jù)的優(yōu)化
3.1圖像特征提取算法分類
圖像特征可以表示為圖像自身所具有、能用于區(qū)分自身的一些獨(dú)特屬性進(jìn)行分類,具體的特征:紋理、顏色、輪廓等。
(1)顏色特征提取。顏色直方圖:顏色直方圖反映圖像中彩色的分布比例,適合于不需要考慮目標(biāo)空間位置的圖像,但是具有忽視顏色相似性和空間分布信息的缺點(diǎn)。
(2)紋理特征提取。圖像紋理就是由紋理基元按某種確定性的規(guī)律或者某種統(tǒng)計(jì)規(guī)律排列組成的,反映了圖像亮度的空間變化情況。
(3)形狀特征提取。圖像經(jīng)過(guò)邊緣提取和圖像分割,就會(huì)得到目標(biāo)的邊緣和區(qū)域,進(jìn)而獲得目標(biāo)的形狀。形狀描述方法一般分為基于輪廓的和基于區(qū)域兩類:基于邊界的描述方法、基于區(qū)域的描述方法。
3.2豬個(gè)體特征提取方法
能否提取區(qū)分度大的特征是分類識(shí)別的關(guān)鍵,若特征選擇不當(dāng),則會(huì)造成分類器識(shí)別率降低,不能滿足要求。但若選擇恰當(dāng),則會(huì)大大加強(qiáng)分類識(shí)別的準(zhǔn)確性。
(1)顏色特征提取。圖像基于RGB顏色空間,顏色特征對(duì)于豬個(gè)體是非常重要的一種特征,單靠顏色的不同,我們就可以把群養(yǎng)豬區(qū)分成不同的幾類。除了分析和提取彩色空間的顏色特征以外,灰度特征也是用于描述豬個(gè)體的重要特征.
(2)紋理特征提取。紋理能表現(xiàn)出豬背部圖像的粗糙或者細(xì)致程度,反應(yīng)其灰度等級(jí)的變化,體現(xiàn)豬個(gè)體自身的屬性?;叶裙采仃嚕ǎ槠渲袘?yīng)用最廣泛、鑒別性能較好的算法之一。
(3)形狀特征提取。由于實(shí)驗(yàn)對(duì)象的特殊性,不同大小的豬可能具有相近的顏色和紋理,本文把顏色、紋理與形狀這幾類特征相融合,構(gòu)成特征矢量作為分類器識(shí)別的依據(jù)。首先將豬只彩色圖像轉(zhuǎn)換成二值圖,再提取豬個(gè)體簡(jiǎn)單的、區(qū)分度大的邊界特征和區(qū)域特征。
(4)數(shù)據(jù)降維方法簡(jiǎn)介。在信息化社會(huì),大量數(shù)據(jù)都具有較高維數(shù),比如在機(jī)器視覺、數(shù)據(jù)檢索、身份識(shí)別等領(lǐng)域。降維算法多種多樣,通常按照數(shù)據(jù)特性間的差異,存在線性與非線性降維方法;按照監(jiān)督模式的差異,可以分為有監(jiān)督、無(wú)監(jiān)督和半監(jiān)督降維方法;按照不同數(shù)據(jù)結(jié)構(gòu),又可以分為基于全局結(jié)構(gòu)、基于局部鄰域結(jié)構(gòu)和基于稀疏結(jié)構(gòu)的降維方法。
4.基于混合核函數(shù)SVM的豬個(gè)體身份識(shí)別
4.1 SVM基本內(nèi)容
支持向量機(jī)(support vector machines, SVM)是一種二分類模型,它的基本模型是定義在特征空間上的間隔最大的線性分類器,間隔最大使它有別于感知機(jī)。
(1)傳統(tǒng)機(jī)器學(xué)習(xí)方法易產(chǎn)生過(guò)擬合問題,而利用現(xiàn)有樣本信息的最優(yōu)解且不考慮局部極值問題,專門針對(duì)了小樣本問題。(2)根據(jù)統(tǒng)計(jì)學(xué)涉及到的一些理論知識(shí)可知,一些符合條件的函數(shù)均能作為中使用的核函數(shù)。(3)因?yàn)楹艘环N典型局部核,核則擁有優(yōu)良全局性,所以我們把核和核通過(guò)線性組合,可以得到混合核函數(shù)仍符合條件,且性能更好。
4.2圖像處理界面設(shè)計(jì)
通過(guò)MATLAB GUI制作用戶的圖像處理軟件界面,實(shí)現(xiàn)群養(yǎng)豬身份識(shí)別系統(tǒng)的可視化操作。在Grab Cut算法的提取后,處理后的終分割圖像如下:
5.總結(jié)與展望
5.1本文總結(jié)
本文的核心在于果斷地采用Visual Studio2015結(jié)合OpenCV的CrabCut簡(jiǎn)單高效地對(duì)群養(yǎng)豬圖像進(jìn)行目標(biāo)分割,簡(jiǎn)單介紹了群養(yǎng)豬個(gè)體特征提取和對(duì)數(shù)據(jù)進(jìn)行優(yōu)化,并利用混合函數(shù)SVM完成了對(duì)群養(yǎng)豬的個(gè)體身份識(shí)別。
5.2未來(lái)的展望
整體上打破了傳統(tǒng)上使用豬耳標(biāo)或在豬體表繪寫數(shù)字等其他識(shí)別方法,這些傳統(tǒng)的方法總會(huì)隨豬群的碰撞、生長(zhǎng)以及泥濘的環(huán)境而無(wú)法識(shí)別,而基于機(jī)器視覺的圖像捕捉的技術(shù)不僅更加方便有效,還提高了識(shí)別的穩(wěn)定性,更加有利于飼養(yǎng)員的工作。此外,基于機(jī)器視覺的非接觸群養(yǎng)豬智能識(shí)別,在未來(lái)還可以察覺許多人肉眼無(wú)法察覺的許多癥狀。例如有些豬的呼吸或心跳頻率過(guò)高或過(guò)低,人是無(wú)法識(shí)別的,而這種癥狀極有可能是豬已經(jīng)感染病毒的前期癥狀,如果不及時(shí)進(jìn)行隔離極有可能感染其他豬,從而及時(shí)避免引發(fā)更大的麻煩。所以本文的研究對(duì)未來(lái)的群養(yǎng)豬個(gè)體身份識(shí)別可能有一定的推動(dòng)作用。在未來(lái)的圖像識(shí)別中還需要繼續(xù)研究數(shù)據(jù)優(yōu)化方面的技術(shù)和多元特征分析的技術(shù),爭(zhēng)取越來(lái)越高效地解決計(jì)算機(jī)在對(duì)群養(yǎng)豬個(gè)體身份識(shí)別中的時(shí)間過(guò)長(zhǎng)和多角度全方位地有效識(shí)別等方面的問題。
參考文獻(xiàn)
[1]王蜀金,郭春華,編譯.全球豬肉市場(chǎng)縱覽:附加生產(chǎn)力刺激世界豬肉產(chǎn)量[J].豬業(yè)科學(xué),2014,12:24-25.
[2]王峰.種豬的飼養(yǎng)管理[J].農(nóng)業(yè)技術(shù)與裝備,2014,4:30-32.
[3]董晶,姜永增,郭艷宏.基于射頻技術(shù)的生豬養(yǎng)殖監(jiān)控系統(tǒng)的設(shè)計(jì)[J].黑龍江畜牧獸醫(yī),2014,4:83-85.
[4]沈明霞,劉龍申,閆麗.畜禽養(yǎng)殖個(gè)體信息監(jiān)測(cè)技術(shù)研究進(jìn)展[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2014,45(10):245-251.
[5]馬麗,紀(jì)濱,劉宏申等.單只豬輪廓圖的側(cè)視圖識(shí)別[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29(10):168-174.
[6]劉同海.基于雙目視覺的豬體體尺參數(shù)提取算法優(yōu)化及三維重構(gòu)[D].中國(guó)農(nóng)業(yè)大學(xué)博士學(xué)位論文,2014.
基金項(xiàng)目:本文系江蘇大學(xué)京江學(xué)院2019年度大學(xué)生實(shí)踐創(chuàng)新訓(xùn)練計(jì)劃項(xiàng)目,項(xiàng)目編號(hào):201913986012Y。
作者簡(jiǎn)介:李凱(1997.2),男,漢族,江蘇淮安人,江蘇大學(xué)京江學(xué)院本科在讀,研究方向?yàn)殡姎夤こ碳捌渥詣?dòng)化。