林浩岳 歐陽培建
摘 要:文章基于C#編程語言為茶葉分揀設(shè)備設(shè)計(jì)了一套控制軟件,軟件根據(jù)設(shè)備提供的茶葉圖像資料,結(jié)合識別算法判斷出茶葉的質(zhì)量,并通過特定通信協(xié)議控制設(shè)備對茶葉進(jìn)行分揀。該軟件對茶葉的批量化、自動化生產(chǎn)有一定的促進(jìn)作用。
關(guān)鍵詞:茶葉分揀;茶葉識別;分揀軟件
DOI:10.16640/j.cnki.37-1222/t.2019.24.067
1 概述
本軟件在微軟Visual Studio編程平臺上進(jìn)行開發(fā),結(jié)合基礎(chǔ)類庫MFC和開源opencv圖像識別庫完成軟件的設(shè)計(jì)。軟件采用MVC開發(fā)框架,采用數(shù)據(jù)層,業(yè)務(wù)層和展現(xiàn)層的分層結(jié)構(gòu)。茶葉識別算法的設(shè)計(jì)分為狀選和色選兩個部分,分別對茶葉的外觀特征和顏色進(jìn)行識別處理,最后得出茶葉的質(zhì)量及分類數(shù)據(jù)。
2 茶葉圖像特點(diǎn)分析
以鳳凰茶葉為例,分析合格和不合格茶葉的圖像特點(diǎn):
表1中觀察對比發(fā)現(xiàn)茶葉質(zhì)量等級可以由兩個方面來判斷,一是茶葉的顏色,二是茶葉的形狀。上位機(jī)軟件可以通過形狀算法來判斷茶葉的寬窄,通過HSV顏色系統(tǒng)來進(jìn)行判斷顏色。具體方法是給二值圖的像素點(diǎn)做標(biāo)記,尋找茶葉的輪廓,計(jì)算茶葉的面積,計(jì)算黃色所占面積占整個茶葉面積的比重。圖像初始化后,進(jìn)行骨骼化,找出茶葉的中軸,再找出兩個端點(diǎn),取中軸兩邊多點(diǎn)計(jì)算平均寬度,得到茶葉的寬度值。
3軟件整體架構(gòu)
軟件的整體架構(gòu)設(shè)計(jì)如圖1所示,利用可視化編程框架MFC編寫軟件的界面,在業(yè)務(wù)層處理的時候?qū)⒉枞~識別算法分為色選和狀選兩部分,數(shù)據(jù)層是從網(wǎng)絡(luò)攝像頭獲取的茶葉圖像數(shù)據(jù)。
系統(tǒng)的軟件分為數(shù)據(jù)層、業(yè)務(wù)層和展示層三部分。數(shù)據(jù)層是獲取攝像頭采集的圖片數(shù)據(jù)。業(yè)務(wù)層是茶葉識別算法,茶葉識別分為兩個部分,一部分是茶葉顏色的識別,茶葉和茶梗是黑色,而雜葉偏黃;另一部分是茶葉形狀的識別,茶葉和雜葉都比較寬,而茶梗比較細(xì)。展示層則是可視化編程框架MFC編寫軟件的界面,界面會顯示攝像頭拍攝到的茶葉圖片。圖像處理過程中,色選模塊,采用符合我們描述顏色方式的HSV顏色系統(tǒng),H代表色相,即顏色種類;S代表飽和度,即顏色的深淺;V代表色調(diào),即顏色的亮度[1,2]。色選模塊通過計(jì)算顏色偏黃的面積占茶葉總面積的比例,分揀出質(zhì)量不同的茶葉。將采集到的原始圖像,經(jīng)過高斯低通濾波,把圖像的噪點(diǎn)濾除,再利用灰度圖進(jìn)行二值化,尋找茶葉的輪廓,從而計(jì)算出茶葉的面積。狀選模塊是先對初始化的圖像進(jìn)行骨骼化,骨骼化即對圖像進(jìn)行細(xì)化處理,找出茶葉的中軸,將圖像細(xì)化為二值圖,但整體形狀不變,利用骨骼化后的圖像找到茶葉的兩個端點(diǎn),再用迪杰斯特拉最短算法求出茶葉的兩條邊,最后再取中軸兩邊的10對點(diǎn)計(jì)算出平均寬度,通過茶葉的寬度識別茶葉質(zhì)量的好壞。通過色選和狀選兩個模塊,可以準(zhǔn)確對茶葉進(jìn)行識別判斷,得到分類數(shù)據(jù),用于控制下位機(jī)進(jìn)行分揀動作。
3.1 HSV顏色系統(tǒng)介紹
經(jīng)過多次的測試,最后決定在圖像的處理過程中采用HSV顏色系統(tǒng),因?yàn)镠SV對于茶葉顏色的表達(dá)更準(zhǔn)確。H、S和V分別代表色相、飽和度和色調(diào)。我們可以參照表2確定顏色的大致區(qū)間。
3.2 色選模塊算法設(shè)計(jì)
色選模塊算法流程:開始原始圖像計(jì)算茶葉總面積S1計(jì)算茶葉黃色區(qū)域面積S2計(jì)算茶葉黃色面積占整體面積的比例 (S2/S1)結(jié)束。
色選模塊的算法設(shè)計(jì)如上所示,主要分為兩部分,一部分是計(jì)算茶葉的總面積,另一部分是計(jì)算黃色區(qū)域面積,最后計(jì)算黃色面積占整體面積的比例,我們可以根據(jù)這個比例識別出茶葉是不是偏黃。
3.3 茶葉總面積的計(jì)算
計(jì)算茶葉總面積算法流程:開始原始圖像高斯濾波? ? ? ?灰度圖二值化尋找輪廓計(jì)算茶葉面積結(jié)束。
計(jì)算茶葉總面積的流程圖如上所示,首先原始圖像通過高斯濾波剔除一些外在的干擾,然后將圖像轉(zhuǎn)化為灰度圖,再二值化,最后尋找輪廓計(jì)算茶葉面積。
4 上位機(jī)軟件界面設(shè)計(jì)
上位機(jī)軟件的整體界面如圖2所示,整體的布局分為數(shù)據(jù)處理部分和數(shù)據(jù)統(tǒng)計(jì)部分。圖像顯示部分在界面的上半部分,數(shù)據(jù)統(tǒng)計(jì)部分在界面的下半部分。
下面詳細(xì)介紹各部分的功能:
①網(wǎng)絡(luò)攝像頭傳采集到的茶葉原始圖像;
②、③、⑤、⑥顯示茶葉識別判斷的結(jié)果;
④顯示茶葉圖像的灰度圖片;
⑦通信接口的相關(guān)配置;
⑧茶葉分類的數(shù)據(jù);
⑨設(shè)備啟動與停止按鈕。
5 與下位機(jī)的通信協(xié)議設(shè)計(jì)
PC機(jī)將識別判斷好的茶葉數(shù)據(jù)通過串口通信發(fā)送給下位機(jī),通信數(shù)據(jù)包含茶葉所在的圖像通道和茶葉的質(zhì)量等級等信息。通信協(xié)議定義為:“0xff+0xff+通道號+茶葉質(zhì)量等級標(biāo)記+長度+校檢碼+0x0d+0x0a”。其中“0Xff+0xff”是通信開始標(biāo)識,“0X0d+0x0a”是通信結(jié)束標(biāo)識,下位機(jī)首先創(chuàng)建循環(huán)結(jié)構(gòu)體隊(duì)列,然后循環(huán)執(zhí)行以下程序:讀取位置編碼器的脈沖,在接收到正確的協(xié)議內(nèi)容后,將包含數(shù)據(jù)頭的結(jié)構(gòu)體壓入隊(duì)列,并循環(huán)檢測4通道是否為空,在隊(duì)列非空的情況下,根據(jù)信息頭信息來控制分揀機(jī)構(gòu)的執(zhí)行狀態(tài)。
6 小結(jié)
本文設(shè)計(jì)的茶葉分揀上位機(jī)軟件能顯示茶葉原始及灰度圖像,并通過識別茶葉的顏色和形狀來判斷茶葉質(zhì)量,得到的判別結(jié)果圖像顯示在軟件界面右上方,茶葉的統(tǒng)計(jì)數(shù)據(jù)在軟件下方顯示。并通過特定通信協(xié)議與下位機(jī)通信,完成茶葉分揀工作。經(jīng)測試軟件運(yùn)行穩(wěn)定,茶葉質(zhì)量識別率高于90%。該上位機(jī)軟件在界面美化及數(shù)據(jù)保存功能方面還需要繼續(xù)完善升級。
參考文獻(xiàn):
[1]付貝貝.可視化傳感體系構(gòu)建及在茶葉檢測中的應(yīng)用研究[D].重慶大學(xué),2016.
[2]余洪.基于計(jì)算機(jī)視覺技術(shù)的茶葉品質(zhì)分級研究[D].江西農(nóng)業(yè)大學(xué),2017.
[3]陳勝勇.基于OpenCV的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)[M].科學(xué)出版社,2008.
作者簡介:林浩岳(1986-),男,廣東江門人,本科,實(shí)驗(yàn)師,研究方向:電氣工程自動化。