馬麗 姜熠昕 郭旋 王福真 趙晨宇 代亭山
摘要:為了實現(xiàn)基于計算機視覺技術(shù)建立農(nóng)產(chǎn)品無損檢測系統(tǒng),本文闡釋了一套基于OpenCV和MPC平臺的玉米果穗輪廓提取系統(tǒng)。首先通過玉米果穗側(cè)面圖像,對圖像進(jìn)行預(yù)處理及邊緣提取,得到相應(yīng)的玉米果穗表面幾何特征參數(shù)值;其次獲取玉米果穗穗粒分布圖,通過對研究對象進(jìn)行閾值分級,將每一區(qū)域相似的果穗粒分割,并提取出穗粒,最后轉(zhuǎn)化確定后的像素值,獲取玉米果穗穗粒分布圖。根據(jù)玉米果穗二值圖像自動檢測得到的外部幾何特征和玉米穗粒分布區(qū)域圖像,為玉米果穗的識別提供了新的方法,加快了果穗識別速度,為玉米烤種、育種提供新的參考。最后針對以上研究成果,構(gòu)建玉米果穗輪廓提取網(wǎng)站。
關(guān)鍵詞:機器視覺;玉米果穗;機器學(xué)習(xí);二值圖像
基金項目:吉林省科技廳科技引導(dǎo)計劃項目(20180412036XH);吉林省大創(chuàng)項目:基于機器視覺的玉米果穗輪廓提取方法研究、基MOOC+SPOC的高校課堂教學(xué)系統(tǒng)構(gòu)建、智能剝椰殼機支持支持項目
中圖分類號:TP391.41 文獻(xiàn)標(biāo)識碼:A DOI編號:10.14025/j.cnki.dlny.2019.15.077
隨著信息技術(shù)的不斷發(fā)展和廣泛應(yīng)用,計算機視覺技術(shù)在各個行業(yè),特別是農(nóng)業(yè)工程的各個領(lǐng)域也得到了迅速發(fā)展。該自動檢測技術(shù)具有檢測速度快,檢測標(biāo)準(zhǔn)均勻的優(yōu)點,在許多領(lǐng)域引起了人們的關(guān)注。玉米育種指標(biāo)主要依靠玉米穗的形態(tài)特征來判斷標(biāo)準(zhǔn),包括玉米果穗的大小、粒數(shù)、行數(shù)等??茖W(xué)合理的選擇已成為相當(dāng)大多數(shù)農(nóng)業(yè)生產(chǎn)者提供援助的實用方法。由于其可以提供準(zhǔn)確有效的種子選擇系統(tǒng),與傳統(tǒng)的手工檢測農(nóng)產(chǎn)品形態(tài)特征的方法相比,不僅速度慢,而且投入成本高。此外,其很容易受到人們主觀意識的影響,農(nóng)產(chǎn)品質(zhì)量無法標(biāo)準(zhǔn)化,以及基于計算機視覺技術(shù)的自動檢測系統(tǒng)的出現(xiàn),其改變了現(xiàn)有傳統(tǒng)產(chǎn)業(yè)的發(fā)展模式,對推動農(nóng)業(yè)工程自動化的發(fā)展起到了重要作用。
1圖像與數(shù)據(jù)采集
1.1二值圖像采集
在參考整個圖像和數(shù)據(jù)采集系統(tǒng)的設(shè)計思想后,設(shè)計了系統(tǒng)所需要的功能,即完成圖像采集和信息的傳輸內(nèi)容。在設(shè)備選用上,選用了佳能(型號為:EOS200 D套機EF-$18-55 mm+EF50 mm f/1.8s)相機,來獲取玉米的整體輪廓,為了清晰獲得玉米輪廓,提高識別度,本研究采用了白熾光照明,增加亮度,并且確保周圍無反光材質(zhì)。系統(tǒng)硬件處理采用華碩x-450型號電腦(CPU主頻為2.6GHz,顯存容量為3GB,內(nèi)存為500G)進(jìn)行整個操作?;贛icrosoftVisual Studio 2010平臺,開發(fā)了本圖像處理算法,使用OpenCV(Open Source Computer Vision Library)開源工具包,實現(xiàn)圖像處理與分析。
1.2玉米果穗圖像的預(yù)處理
圖像預(yù)處理的工作主要包括:圖像灰度化處理和圖像增強?;叶忍幚淼募夹g(shù)流程為:將三維彩色圖像轉(zhuǎn)換為二維灰度圖像,加速圖像處理并減少后續(xù)圖像處理和識別所需的工作量。提高整個系統(tǒng)的效率和準(zhǔn)確性;圖像增強使圖像的背景信息變?nèi)?。改善圖像的辨別力,使圖像模糊不易。在決定使用哪種過濾方法時,有必要遵循實驗研究中圖像的具體要求,反復(fù)試驗找到最適合的濾波方法。
2玉米輪廓檢測分析方法
2.1玉米果穗表面幾何特征的檢測分析方法研究
使用玉米穗側(cè)面的任何圖像進(jìn)行預(yù)處理和提取圖像,然后使用像素逐個掃描標(biāo)記,以獲得長度和寬度的四個邊界的最鄰近像素位置。計算像素坐標(biāo)以獲得玉米穗表面的相應(yīng)幾何參數(shù)。
2.2玉米果穗表面數(shù)量特征的檢測分析方法研究
使用分級閾值的分割方法,確定每個相似區(qū)域中的尖峰閾值,提取核,然后變換每個閾值圖像的像素值。對滿足要求的尖峰圖像進(jìn)行成像,最后形成玉米穗和谷粒分布圖。
2.3獲取玉米果穗穗粒分布圖
通過玉米穗二元圖像自動檢測的外部幾何特征(長度,寬度和長寬比)和玉米穗顆粒分布圖檢測到的玉米穗粒總數(shù),為玉米穗育種的表面性狀自動檢測提供了技術(shù)理論。
3玉米果穗輪廓提取
玉米果穗圖像二值化處理是將獲取到的玉米果穗樣本圖像轉(zhuǎn)化為只有黑白兩色的圖像,這樣可以更加清楚和快速的獲取玉米果穗外部輪廓信息,圖像經(jīng)過二值化處理之后,能夠快速提取實現(xiàn)玉米果穗邊緣像素點信息,進(jìn)行輪廓提取及相關(guān)特征計算。
玉米果穗圖像二值化的操作是,將獲得的玉米穗樣品的圖像轉(zhuǎn)換成僅具有黑色和白色的圖像。通過這種方式的處理,可以更清晰、更快速地獲得玉米穗的外輪廓信息,并在圖像二值化后,可以快速提取玉米穗邊緣的像素信息,提取輪廓和相關(guān)特征。
4網(wǎng)站構(gòu)建技術(shù)需求
4.1建設(shè)后臺
利用框架ssm建設(shè)后臺,將后臺的代碼同一進(jìn)行處理,在網(wǎng)站的前臺使用的Jquery,使用ajax動態(tài)生成下拉框,使用jsp和html以及其他Web語言編寫。HTTP協(xié)議是無狀態(tài)協(xié)議,這意味著每次HTTP請求需要與服務(wù)器建立連接以進(jìn)行數(shù)據(jù)傳輸時,服務(wù)器還需要啟動一個單獨的線程來處理http請求。減少http請求的主要方法包括合并CSS、JavaScript、圖像等,從而減少瀏覽器請求的數(shù)量。
4.2使用瀏覽器緩存
通過設(shè)置http頭的Cache-Control和Expires屬性,可以設(shè)置瀏覽器緩存。在某些時候靜態(tài)資源文件的變化需要客戶端瀏覽器及時更新,這種情況下可通過更改文件名實現(xiàn),即可以更新javaScript文件而不是更新JavaScript文件內(nèi)容,生成一個新的Js文件,并更新http文件中的引用。
4.3啟動壓縮
在頁面執(zhí)行中,頁面通訊量過大會影響傳輸效率,使頁面打開速度降低。為HTTP、CSS、JavaScript等應(yīng)用啟用Gzip壓縮可以實現(xiàn)更好的壓縮,并減少通信傳輸?shù)臄?shù)據(jù)量。CSS位于頁面頂部,JavaScript位于頁面底部。當(dāng)瀏覽器加載JavaScript時,其會立即執(zhí)行,有時會阻塞整個頁面,導(dǎo)致顯示速度太慢,因此,JavaScript最好放在頁面底部。使用該壓縮后,會大大減少通訊量,提高通訊效率。
4.4減小cookie的傳輸
cookie包含在每個http請求和響應(yīng)報文中,當(dāng)cookie數(shù)據(jù)太大時,它將影響網(wǎng)絡(luò)數(shù)據(jù)傳輸。例如,在訪問CSS和JavaScript等靜態(tài)資源時,不需要傳輸cookie,在動態(tài)資源訪問時為實現(xiàn)交互才進(jìn)行cookie傳輸。
4.5使用MyBatis
MyBatis是iBatis大版本號的增強版。業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合被削弱,并且視圖層變得更加多樣化。MyBatis和Hibernate是對象關(guān)系映射框架,旨在允許Java程序員使用對象編程思想來操作數(shù)據(jù)庫。
4.6應(yīng)用Spring開發(fā)“一站式”選擇
Spring是一個全面的框架,專注于J2EE應(yīng)用程序的各個層,而不僅僅是關(guān)注解決方案的一個層,并貫穿表示層、業(yè)務(wù)層和持久層。但是,Spring不想替換現(xiàn)有的框架,其可以與其他框架無縫集成。
5結(jié)語
近年來.玉米產(chǎn)業(yè)的快速發(fā)展,玉米相關(guān)研究逐漸走進(jìn)人們的視野,能不能種出良好的玉米關(guān)乎到我國民生問題。玉米穗的研究主要用于圖像采集技術(shù),圖像處理算法和圖像預(yù)處理方法。在構(gòu)建網(wǎng)站時,使用框架ssm還有在網(wǎng)站的前臺用Jquery以及ajax,還有jsp、html等常用的網(wǎng)頁語言進(jìn)行編寫。在該研究中,開發(fā)出了一個玉米果穗的輪廓提取系統(tǒng),能夠提取玉米果穗的側(cè)面圖像,處理和提取圖像以獲得關(guān)于玉米穗的一些數(shù)據(jù)。下一步,將對此進(jìn)行更加深層次的探索,并且該提取系統(tǒng)功能有待繼續(xù)完善和開發(fā)。