為了解決傳統溯源電子秤不夠智能、操作繁瑣的問(wèn)題,設計了一種新型果蔬圖像溯源秤系統。系統采用C/S架構,包括溯 源秤客戶(hù)端和服務(wù)端兩大部分,客戶(hù)端基于圖像處理技術(shù)可以通過(guò)攝像頭采集果蔬圖像來(lái)實(shí)現果蔬產(chǎn)品的自動(dòng)售賣(mài),服務(wù)端 通過(guò)Wi-Fi遠程管理客戶(hù)端,整個(gè)系統都是利用QT框架開(kāi)發(fā)。重點(diǎn)研究了基于顏色紋理特征的多類(lèi)SVM果蔬圖像識別算 法、QT圖形界面開(kāi)發(fā)、基于Tcp協(xié)議的網(wǎng)絡(luò )通信開(kāi)發(fā)等。系統測試表明:果蔬圖像識別速度快捷、識別率高,系統整體功能工 作良好,可以滿(mǎn)足實(shí)際使用需求。
隨著(zhù)國家對于食品溯源體系建設的日益重 視,商務(wù)部“肉類(lèi)蔬菜流通追溯體系”正在緊鑼密 鼓的開(kāi)展中。溯源秤作為集計量稱(chēng)重、打印憑 證、無(wú)線(xiàn)通訊、電子結算、數據上傳為一體的終端 設備,通過(guò)與物聯(lián)網(wǎng)技術(shù)的“嫁接”,已經(jīng)成為了食 品流通追溯體系中的關(guān)鍵一環(huán)|31。目前傳統的溯 源秤主要采用人工記憶輸人或二維碼標簽、RFID 標簽掃描的形式來(lái)輸人果蔬產(chǎn)品的類(lèi)別信息,不 僅需要耗費大量的人力物力成木,同時(shí)也不利于 果蔬產(chǎn)品的自動(dòng)售賣(mài)。為解決上述問(wèn)題,木文開(kāi) 發(fā)研究了基于圖像處理的果蔬溯源秤系統。木系 統采用C/S架構模式,客戶(hù)端和服務(wù)端之間采用 無(wú)線(xiàn)網(wǎng)絡(luò )進(jìn)行數據通信,其中客戶(hù)端運行在嵌入 式系統平臺上,負責果蔬銷(xiāo)售功能和果蔬圖像識 別;服務(wù)端運行在PC機平臺上,負責對客戶(hù)端銷(xiāo) 售的信息進(jìn)行管理。
1.系統方案論述
木文提出了一種新型果蔬圖像識別溯源秤系 統,溯源秤系統包括溯源秤客戶(hù)端和溯源秤服務(wù)端 軟件,其具體要求與功能為:溯源秤客戶(hù)端具有果 蔬識別和常規電子秤功能,果蔬識別采用木文提出的基于顏色和紋理特征的多類(lèi)SVM分類(lèi)算法。本 客戶(hù)端軟件通過(guò)Wi-Fi模塊與服務(wù)端軟件進(jìn)行數 據通信,進(jìn)行溯源信息的上傳與下載。服務(wù)端軟件 主要負責溯源信息的管理,管理員在PC端登錄服 務(wù)端軟件,對銷(xiāo)售的果蔬溯源信息進(jìn)行錄人,并且 可以通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )遠程管理客戶(hù)端上的數據。通 過(guò)客戶(hù)端和服務(wù)端的協(xié)作,整個(gè)溯源秤系統可以完 成果蔬產(chǎn)品的自動(dòng)售賣(mài)以及實(shí)現果蔬產(chǎn)品信息的 追溯功能。
2.系統設計
溯源秤客戶(hù)端運行在Linux系統上,運行于PC 的溯源秤服務(wù)端軟件和溯源秤客戶(hù)端運行的應用 程序都是利用QT開(kāi)發(fā)。溯源秤客戶(hù)端和服務(wù)端的 組成框圖如圖1、圖2所示??蛻?hù)端主要需要完成 圖像采集、圖像識別、稱(chēng)重信息顯示、無(wú)線(xiàn)通信等功 能。服務(wù)端主要負責溯源信息管理以及與客戶(hù)端 之間進(jìn)行網(wǎng)絡(luò )通信。
2.1硬件設計
2.1.1Tiny210V2開(kāi)發(fā)板平臺
本系統使用的嵌人式開(kāi)發(fā)平臺為Tiny210V2開(kāi)發(fā)板4。該開(kāi)發(fā)板是一款高性 能 Cortex-A8核心板,米用了 Samsung S5PV210 作 為處理器,運行主頻高達1 GHz,64/32位內部總線(xiàn)結 構,可以實(shí)現2 000 DM instraction/s(每秒運算2億條 指令集)的高性能運算能力,內部集成了 PowerVR SGX540高性能圖形引擎,可以流暢運行Android, Linux和WinCE6等高級操作系統,具有低功耗高效 率的特性,能夠充分滿(mǎn)足溯源秤系統的基本要求。
Tiny210V2開(kāi)發(fā)板米用了核心板加底板的設計 方法,如圖3和圖4所示。核心板上主要有 S5PV210 處理器,512 Mbyte DDR2 RAM 內存,512 Mbyte NAND Flash存儲器以及若干與底板連接的 接口等。底板上主要有LCD顯示屏接口、網(wǎng)口、 RS232 串口、SD 卡座、USB 接 口、SDIO Wi-Fi 接 口 等硬件資源。
2.1.2USB攝像頭選取
本系統中選用USB攝像頭作為圖像采集丁具, 使用USB攝像頭的優(yōu)點(diǎn)是即插即用,并且Linux系 統上可以通過(guò)V4L2驅動(dòng)來(lái)配置USB攝像頭的幀 率、圖像壓縮格式、圖像大小等參數,便于程序優(yōu) 化。同時(shí),考慮到溯源秤大小有限,為了方便以后開(kāi) 模加丁,攝像頭體積應該比較小巧。據此,本系統選 擇的攝像頭為HDF9655-BJ,該產(chǎn)品主要應用于筆 記本電腦、一體機、小型攝像機,USB輸出,130萬(wàn)像 素,符合VGA標準。攝像頭實(shí)拍圖如圖5所示。
2.1.3Zigbee無(wú)線(xiàn)傳輸模塊
本系統使用的Wi-Fi模塊是友善之臂公司提 供的基于Marvell 8686芯片的SD Wi-Fi模塊,如 圖6所示。
該模塊具有低功耗、高性能的特點(diǎn),通過(guò) Tiny210 SDK底板上的 SDIO 接口與 Tiny210V2 開(kāi)發(fā)板連接使用。該模塊丁作特性為:(1)支持
IEEE 802.11b/g; (2) 11g: 54/48/36/24/18/12/9/6M 自 適應;(3)11b: 11/5.5/2/1M自適應;(4)常規功耗 (3.3 V 供電):180 mA(接收)270 mA(發(fā)送)。
2.2溯源枰客戶(hù)端軟件設計
2.2.1系統工作流程
本系統在丁作時(shí),首先撥動(dòng)開(kāi)發(fā)板上電開(kāi)關(guān), Linux系統啟動(dòng)后自動(dòng)加載溯源秤客戶(hù)端軟件,加 載數據庫以及SVM圖像樣本特征庫,隨后開(kāi)啟串口 通信和網(wǎng)絡(luò )通信線(xiàn)程,等待接收數據,并顯示出軟 件操作界面等待用戶(hù)操作。用戶(hù)打開(kāi)攝像頭后,攝 像頭采集到YUV格式的圖片,轉換成QImage格式 并實(shí)時(shí)顯示在LCD屏上,隨后進(jìn)行圖像處理和識別 過(guò)程,識別出果蔬產(chǎn)品的種類(lèi)后,結合數據庫中的 信息將交易結果顯示在屏幕上,即完成一筆自動(dòng)售 賣(mài)交易。交易結果可以通過(guò)無(wú)線(xiàn)網(wǎng)發(fā)送到遠程的 服務(wù)端軟件內。丁作流程如圖7所示。
2.2.2果蔬圖像數據庫構建
為了模擬溯源秤的實(shí)際使用環(huán)境,本系統搭建 了如圖8所示的圖像采集裝置。以超市常用的ACS 電子秤為基礎,安裝了開(kāi)發(fā)板和USB攝像頭。其中 攝像頭安裝在電子秤的頂部,斜向下約45°拍攝,秤盤(pán)大小為32 cmX24 cm,攝像頭距離秤盤(pán)垂直高度為 35 cm。米用基于Tiny210V2開(kāi)發(fā)板自主開(kāi)發(fā)的圖 像采集軟件,來(lái)采集果蔬圖像,果蔬產(chǎn)品的擺放位置 隨機,個(gè)數隨機,包含了貼近、堆疊、粘連等情況。
本文構建的果蔬圖像數據庫一共包含13種果 蔬,包括蘋(píng)果、香蕉、桃子、梨、獼猴桃、火龍果、提 子、土豆、西紅柿、黃瓜、西蘭花、青菜、油麥菜。為 了保證構建的圖像數據庫盡可能接近實(shí)際光照情 況,設計了 6種光照,包括陰影(光強73 cd)、弱側光 (光強103 cd)、強測光(光強118 cd)、室內光(光強 98 cd)、正面強光(光強124 cd)、正面弱光(光強 110 cd)。所有的果蔬在每種光照下拍攝260張照 片,六種光照下果蔬圖片共計1 560張。
2.2.3果蔬圖像預處理
作為一款應用于超市、菜市場(chǎng)里的實(shí)用產(chǎn)品,周 圍的圖像采集環(huán)境肯定不是一成不變的,亮度不均勻、 陰影、遮擋、鏡面反光、背景混亂以及攝像頭可能存在 缺陷導致拍攝圖像失真,這些因素都會(huì )嚴重的影響果 蔬農產(chǎn)品的識別。在與處理中,將果蔬產(chǎn)品與背景準 確的分割開(kāi)來(lái)是圖像預處理的關(guān)鍵步驟,本文采用了 一種基于Lab顏色空間的K均值聚類(lèi)分割算法。
預處理主要步驟如下:(1)對攝像頭采集到的 圖片進(jìn)行切割處理,由于設備攝像頭位置同定,故 僅保留圖片中秤盤(pán)內的部分,可以切除外圍的干 擾;(2)對切割后的圖片進(jìn)行中值濾波;(3)將RGB 彩色圖像轉換到Lab顏色空間,采用K均值聚類(lèi)方 法對圖像進(jìn)行分割;(4)對分割后的二值圖像進(jìn)行 形態(tài)學(xué)處理,填充孔洞;(5)中值濾波后的圖片與形 態(tài)學(xué)處理后的圖片做交集,即得到去除背景后的果 蔬圖片。圖9為預處理前后圖像。
2.2.4特征提取
通常,描述果蔬圖像的特征一般包括顏色特 征、紋理特征。本系統提取了 HSV全局顏色直方圖 作為顏色特征,提取了局部二值模型(LBP)作為紋 理特征。下面簡(jiǎn)要給出這兩種特征的提取方法。
2.2.4.1顏色特征
HSV顏色直方圖按照公式(1)計算,通過(guò)計算 可以得到一個(gè)256維的顏色直方圖:
L = HxQgxQV + SxQV + V ⑴
式中:H、S , V是量化后的顏色分量,本文將H分 量非均勻量化為16級,S、分量分別均勻量化為 4級;Qs、Qv分別為S、分量的量化級數。
2.2.4.2紋理特征
局部二值化模式LBP(Local Binary Pattern)最早 是由Ojala^81等人在1996年提出,由于具有計算速 度快和實(shí)現簡(jiǎn)單的優(yōu)點(diǎn),而且該方法是計算局部的紋 理特征,對光線(xiàn)變化具有較好的承受能力,可以得到 良好的識別效果,得到了許多研究人員的認可,現在 多將其應用于圖像紋理特征的提取上,因此本文提取 果蔬圖像的LBP特征作為紋理特征用于果蔬識別。
圖10是一個(gè)LBP編碼過(guò)程例子,首先使用一 個(gè)3x3大小的窗口從原始圖像中取出對應像素值, 通過(guò)中心點(diǎn)閾值化,得到LBP 二進(jìn)制編碼,再與權 值窗口中對應的權值相乘,即可得到中心點(diǎn)對應的 LBP十進(jìn)制編碼值。
2.2.3基于顏色紋理特征的多類(lèi)SVM果蔬圖像識 別算法
本文提取果蔬圖像的顏色紋理特征,并通過(guò)多 類(lèi)SVM分類(lèi)器191進(jìn)行識別,整個(gè)果蔬識別算法流程 如圖11所示。訓練階段,首先將樣本圖像進(jìn)行預處 理,然后提取果蔬圖像的GCH特征(256維)和LBP 特征(256維),將這兩種特征采用級聯(lián)的方式融合 成圖像特征矢量(512維),并采用最大最小歸一化 方法歸一化到0和1之間,隨后,使用一對一(OAO) SVM多類(lèi)分類(lèi)器11101進(jìn)行訓練,得到分類(lèi)器模型。其 中,SVM的核函數均為徑向基函數RBF(Radial Ba-sis Function);在一對一SVM分類(lèi)器訓練時(shí),米用5 折交叉驗證法進(jìn)行訓練,然后采用網(wǎng)格搜索法來(lái)得 到最優(yōu)的懲罰因子C和RBF核函數的參數g。
測試階段,首先讀人測試圖像,進(jìn)行預處理、提取特 征并歸一化(方法同訓練過(guò)程),然后,將待測圖像特征 輸人訓練好的多類(lèi)SVM分類(lèi)器中,即可得至IJ識別結果。
在實(shí)際編程實(shí)現時(shí),先在MATLAB中訓練好 SVM模型,將模型導出為SVM.Model模型文件供 溯源枰系統客戶(hù)端軟件在進(jìn)行果蔬識別時(shí)使用。
2.3溯源秤服務(wù)端軟件設計
Qt是1991年奇趣科技開(kāi)發(fā)的一個(gè)跨平臺的 C++圖形用戶(hù)界面應用程序框架lul。它提供給應用 程序開(kāi)發(fā)者建立藝術(shù)級的圖形用戶(hù)界面所需的所 用功能。本設計的上位機軟件正是用QT開(kāi)發(fā),選 用的集成開(kāi)發(fā)環(huán)境是Qt Creator。
2.3.1信息管理模塊
信息管理界面是數據庫與用戶(hù)直接交互的工 具,需要具備信息錄人、信息修改、信息刪除以及信 息查詢(xún)這4個(gè)主要功能。主界面分為5個(gè)Tab頁(yè)’ 分別是商戶(hù)信息、商品信息、交易信息、賬號密碼和 網(wǎng)絡(luò )管理。服務(wù)端和客戶(hù)端都采用Sqlite3數據 庫1121來(lái)存儲溯源數據信息。
商戶(hù)信息Tab頁(yè)如圖12所示,包含該商戶(hù)的名 稱(chēng)、電話(huà)、經(jīng)營(yíng)主體備案號以及商戶(hù)的地址。直接在 輸人框內輸人相應信息,然后單擊“保存”,商戶(hù)信息 隨后會(huì )寫(xiě)人服務(wù)端數據庫。點(diǎn)擊“取消”后,輸人框 內的信息會(huì )清空,同時(shí)數據庫清除商戶(hù)信息數據。
商品信息Tab頁(yè),用于果蔬產(chǎn)品信息的輸人、 修改、查詢(xún),采用Qt中的QTabelView表格控件來(lái)顯 示,如圖13所示。
交易信息Tab頁(yè)用于顯示和查詢(xún)客戶(hù)端的交易 信息,如圖14所示。為了保證溯源信息不被修改, 本頁(yè)面只提供數據檢索和數據刪除功能,不提供數 據添加和數據修改功能。
本系統的服務(wù)端和客戶(hù)端采用的是基于無(wú)線(xiàn) 網(wǎng)絡(luò )的Tcp通信,服務(wù)端軟件主要負責創(chuàng )建服務(wù)端 口,等待客戶(hù)端建立Tcp通信,網(wǎng)絡(luò )管理界面如圖15 所示。在使用時(shí),輸人本機IP地址及網(wǎng)絡(luò )端口號, 點(diǎn)擊開(kāi)啟服務(wù),待客戶(hù)端狀態(tài)由“未連接”變成“已 連接”時(shí),即可點(diǎn)擊右側相應按鈕進(jìn)行數據通信。
本服務(wù)端軟件初始賬戶(hù)為Admin賬戶(hù),在實(shí)際 使用時(shí)可以根據需要在該頁(yè)面修改Admin賬戶(hù)的密 碼,或者為其他管理員新創(chuàng )建賬戶(hù)密碼。具體界面 如圖16所示。
2.3.2網(wǎng)絡(luò )通信模塊
Qt 提供了 的 QTcpSocket 類(lèi)和 QUdpSocket 類(lèi), 分別對應實(shí)現TCP和UDP傳輸協(xié)議。TCP是面向 連接的基于數據流的可靠傳輸協(xié)議,適用于連續大 量的數據傳輸;UDP是輕量級無(wú)連接的基于數據報 文的不可靠傳輸協(xié)議,適用于離散信息包在網(wǎng)絡(luò )節 點(diǎn)間傳輸。為了保證客戶(hù)端和服務(wù)端之間數據傳輸 的正確可靠,本系統選擇使用TCP協(xié)議來(lái)進(jìn)行數據 傳輸,TCP服務(wù)端和客戶(hù)端創(chuàng )建流程如圖17所示。
服務(wù)端軟件和客戶(hù)端軟件中,網(wǎng)絡(luò )通信模塊都 是在單獨的線(xiàn)程中運行,這樣可以實(shí)時(shí)進(jìn)行數據的 上傳下載以及數據庫的更新。為了方便數據傳輸 和解析,本系統按照自定義的通信巾貞協(xié)議來(lái)傳輸數 據庫表中的數據,數據通信幀格式見(jiàn)表1和表2。
其中每組數據之間用“%”間隔,不同字段之間用” &”間隔,并且字段與字段之間的順序嚴格按照數據庫 表設計的順序排列。月艮務(wù)端和客戶(hù)端通信采用字符串 流的形式傳輸數據,且每次通信發(fā)起方都是服務(wù)端。 客戶(hù)端在正確收到服務(wù)端的請求后,立即回復表2中 的”10ACK”幀命令,隨后再完成服務(wù)端請求中要實(shí)現 的功能,如保存信息、刪除信息、更新系統時(shí)間等。
3.系統測試
系統開(kāi)發(fā)完畢后,為了測試本系統的性能,搭建 了如圖18的系統聯(lián)試環(huán)境。主要包括ACS電子秤 一臺、USB攝像頭一個(gè)、安裝了溯源秤客戶(hù)端軟件的 Tiny210V2開(kāi)發(fā)板一套、安裝了溯源秤服務(wù)端軟件的 筆記本電腦一臺、無(wú)線(xiàn)路由器一臺以及串口線(xiàn)兩根等。
打開(kāi)攝像頭,將兩個(gè)蘋(píng)果隨意擺放在秤盤(pán)上, 如圖19所示,從圖像顯示區可以實(shí)時(shí)看到USB攝 像頭采集到的蘋(píng)果的圖像,同時(shí)將蘋(píng)果的重量 0.346 kg顯示在屏幕上,此時(shí)交易按鈕處于使能狀 態(tài),等待點(diǎn)擊開(kāi)始果蔬識別并交易。
單擊“交易”按鈕后,后臺開(kāi)始對采集到的果蔬 圖像進(jìn)行識別,等待約3 s,彈出交易對話(huà)框。對話(huà)框 中給出3種備選產(chǎn)品類(lèi)別,依次為OAO SVM分類(lèi)器 獲得的投票數排名前三的果蔬類(lèi)別,等待用戶(hù)確認。
點(diǎn)擊人工確認的產(chǎn)品名稱(chēng)所在的按鈕,客戶(hù)端軟 件根據產(chǎn)品名查詢(xún)數據庫,得到本次交易信息詳情,如 圖20所示,顯示在QLable控件內。隨后,點(diǎn)擊“確認 購買(mǎi)”,本次交易完成并且將交易信息寫(xiě)人數據庫內。
在當天銷(xiāo)售結束后,通過(guò)點(diǎn)擊服務(wù)端軟件的網(wǎng) 絡(luò )管理模塊的“接收交易信息”按鈕,客戶(hù)端將交易 信息上報至服務(wù)端,服務(wù)端將交易內容寫(xiě)人數據庫 并在交易信息Tab頁(yè)內顯示,如圖21所示。
本次交易中的蘋(píng)果圖像識別總耗時(shí)約2.303s,識 別過(guò)程中各階段耗時(shí)如表3所示。
其中預處理階段耗時(shí)最長(cháng),占總耗時(shí)的66.17%, 由于使用了基于LAB顏色空間的K-means聚類(lèi)算 法,聚類(lèi)時(shí)需要對圖像中每個(gè)像素點(diǎn)與聚類(lèi)中心計算 歐式距離,因此所需計算量較大,耗時(shí)較長(cháng)。
為了測試溯源秤客戶(hù)端在實(shí)際環(huán)境下對數據庫中 的13種果蔬的識別能力,定義圖20交易界面中的 OAO SVM分類(lèi)獲得票數最高的識別結果為直接識別 結果;定義3種備選結果中至少包含一次正確類(lèi)別的結 果為自動(dòng)識別結果。對這13種果蔬分別進(jìn)行20次試 驗,每次試驗擺放個(gè)數不定,擺放姿態(tài)隨意,記錄如表4 所示。從表4可以看出系統的平均果蔬自動(dòng)識別率達 到了 97%,且平均識別時(shí)間在2.5 s內,是在用戶(hù)使用時(shí) 的允許等待時(shí)間范圍內。果蔬實(shí)地測試結果表明本果 蔬溯源秤系統的識別功能具有較高的實(shí)用價(jià)值。
4.結論
本文利用果蔬圖像識別技術(shù),設計了一種新型 果蔬圖像溯源秤,解決了目前市場(chǎng)上現有的溯源秤 不夠智能、不易于自動(dòng)售賣(mài)的問(wèn)題。文中詳細給出了溯源秤各功能模塊的開(kāi)發(fā)設計方法,并在最后對 整個(gè)系統進(jìn)行了實(shí)地測試,測試驗證了系統能夠穩 定運行,并且具有較好的果蔬自動(dòng)識別能力,可以 滿(mǎn)足超市、菜場(chǎng)等地的自動(dòng)售賣(mài)需求。