張糧 王璇之
摘? 要:水果銷售作為餐飲零售業(yè)的重要分支,正逐漸引入無接觸服務(wù)的概念。通過非接觸式水果銷售機器人,消費者可以享受到安全、衛(wèi)生、快速的購買體驗,同時商家也因此獲得更高效的銷售方式和更為便捷的管理手段。在該系統(tǒng)中,基于圖像處理的圖像識別技術(shù)顯得尤為關(guān)鍵。因此,該研究著眼于設(shè)計一款低成本的水果自動分類系統(tǒng),并應(yīng)用于TI AM5708工業(yè)派上。該設(shè)計通過工業(yè)相機采集實時視頻流,提取圖像特征制作數(shù)據(jù)集,并訓(xùn)練決策樹分類模型。經(jīng)過測試,該模型可準(zhǔn)確快速識別水果,滿足實際水果店銷售需求。
關(guān)鍵詞:OpenCV;決策樹算法;水果識別;嵌入式系統(tǒng);圖像識別
中圖分類號:TP391? ? ? ? 文獻標(biāo)志碼:A? ? ? ? ? 文章編號:2095-2945(2024)06-0018-06
Abstract: As an important branch of catering retail, fruit sales is gradually introducing the concept of contactless service. Through the contactless fruit sales robot, consumers can enjoy a safe, hygienic and fast purchasing experience, and merchants thus get more efficient sales methods and more convenient management means. In this system, the image recognition technology based on image processing is particularly critical. Therefore, this study focuses on designing a low-cost automatic fruit classification system and applying it to TI AM5708 industry. In this design, the industrial camera collects the real-time video stream, extracts the image features to make the data set, and trains the decision tree classification model. Through testing, the model can accurately and quickly identify fruits and meet the actual sales needs of fruit stores.
Keywords: OpenCV; decision tree algorithm; fruit recognition; embedded system; image recognition
隨著科技不斷進步,人工智能與嵌入式系統(tǒng)結(jié)合為餐飲零售業(yè),尤其是水果銷售領(lǐng)域帶來前瞻性的發(fā)展機遇[1]。本研究旨在介紹一種基于決策樹的水果實時分類算法,并應(yīng)用于TI AM5708芯片,提供高效準(zhǔn)確的自動分類解決方案[2]。
該算法在無接觸式水果銷售機器人中起關(guān)鍵作用。通過處理和分析水果圖像,能精準(zhǔn)辨識品種和品質(zhì),為消費者提供個性化購買選擇,為商家提供便捷管理手段。決策樹作為常用的機器學(xué)習(xí)算法,簡單明了,適用于分類問題[3]。
為實現(xiàn)該算法,選擇了TI AM5708芯片作為嵌入式平臺[4]。該芯片計算能力強大,外設(shè)接口豐富,適合高效處理圖像和視頻數(shù)據(jù),并能實時執(zhí)行復(fù)雜算法。在該芯片上實現(xiàn)水果實時分類算法成本低,性能優(yōu)異,為水果銷售行業(yè)帶來實際商業(yè)價值。
本研究詳細(xì)介紹基于決策樹的水果實時分類算法設(shè)計原理、實現(xiàn)方法和TI AM5708芯片特性。重點關(guān)注算法在嵌入式平臺上的實時性能和準(zhǔn)確度,并通過實驗驗證其可行性和可靠性。通過這項研究,旨在為水果銷售行業(yè)提供高效實時分類算法,推動行業(yè)智能化發(fā)展,提升購物體驗,為商家創(chuàng)造更多商業(yè)價值。
1? 整體模塊介紹
1.1? OpenCV和決策樹圖像識別
在圖像識別方面,本研究使用傳統(tǒng)的OpenCV算法[5]和決策樹模型進行識別。首先將攝像頭采集到的圖像轉(zhuǎn)成灰度圖,通過合理閾值將其二值化,然后對二值化的圖像進行多次膨脹濾波,濾除其他噪聲對識別的影響,接著利用Canny濾波[6]進行輪廓提取,對提取的輪廓進行檢測和剔除,提取出當(dāng)前水果的輪廓,根據(jù)保留的輪廓得到當(dāng)前水果HSV圖像[7],進而得出當(dāng)前水果的特征,最后將特征輸入至實時分類算法中判斷水果類型。水果識別示意圖如圖1所示。
實時分類算法采用歸納式機器學(xué)習(xí)中的決策樹算法,其利用已知的訓(xùn)練樣本構(gòu)建樹狀模型,通過將提取出的水果特征輸入進樹狀模型中進行預(yù)測。相比于其他圖像識別算法而言,該算法的輸入僅需幾個特征參數(shù),因此耗時較少,可以滿足機器人高實時性的識別要求。
1.2? DSP加速單元
在上述圖像識別部分完成之后,本研究還使用DSP加速單元對OpenCV圖像處理部分進行硬件加速。ARM到DSP之間的通信采用MessageQ消息隊列機制[8]。MessageQ用于實現(xiàn)多核之間的通信,消息通過消息隊列發(fā)送和接收。每個消息隊列只能有一個讀取者,但可以有多個寫入者。使用流程如下:ARM將數(shù)據(jù)寫入共享內(nèi)存,使用MessageQ通知DSP寫入完成,通知信息包含共享內(nèi)存的物理地址和數(shù)據(jù)長度。DSP從共享內(nèi)存中讀取數(shù)據(jù)并處理,處理完成后,DSP將數(shù)據(jù)寫入共享內(nèi)存,使用MessageQ通知ARM寫入完成,通知信息包含共享內(nèi)存的物理地址和數(shù)據(jù)長度。ARM從共享內(nèi)存中讀出數(shù)據(jù)并進行后續(xù)處理。DSP和ARM核間的通信示意圖如圖2所示。
通過多次測試發(fā)現(xiàn),OpenCV圖像處理操作中的膨脹操作的耗時是最長的,因此將膨脹操作轉(zhuǎn)移到DSP加速單元中進行硬件加速。為了減少ARM核與DSP核之間的通信數(shù)據(jù)量,本研究壓縮了字節(jié)和像素間的對應(yīng)關(guān)系,將原本的1個字節(jié)對應(yīng)1個像素壓縮為1個字節(jié)對應(yīng)8個像素,降低了核間通信所花費的時間。使用DSP核心進行硬件加速的流程如下。
1)ARM端通過OpenCV采集一幀圖像,將圖像轉(zhuǎn)灰度和二值化操作之后,壓縮字節(jié)和像素之間的對應(yīng)關(guān)系,并將壓縮后的圖像數(shù)據(jù)存儲到物理緩沖區(qū),使用MessageQ將物理緩沖區(qū)首地址及長度信息發(fā)送給DSP。
2)DSP端通過MessageQ接收物理緩沖區(qū)的首地址及長度信息,然后讀取緩沖區(qū)中的圖像數(shù)據(jù),對圖像進行多次膨脹之后,將數(shù)據(jù)重新寫回相同的緩沖區(qū),然后MessageQ發(fā)送到ARM。
3)ARM端通過MessageQ接收物理緩沖區(qū)首地址及長度信息,讀取緩沖區(qū)中的數(shù)據(jù),將數(shù)據(jù)存儲關(guān)系更改為1個字節(jié)對應(yīng)1個像素后,進行后續(xù)的Canny邊界提取和提取圖像特征等操作。
為了驗證DSP的加速效果,本研究設(shè)計了對比實驗,一組單純使用Cortex A15識別100張圖片并計算每張圖片平均消耗時間;另一組使用Cortex A15+DSP識別相同的100張圖片并計算每張圖片平均消耗時間。通過對比發(fā)現(xiàn),使用DSP加速單元進行硬件加速后效率可達(dá)ARM端的150%以上。對比結(jié)果見表1。
2? 決策樹算法介紹
2.1? 理論背景
當(dāng)前數(shù)據(jù)分析領(lǐng)域中,機器學(xué)習(xí)是備受矚目的研究領(lǐng)域,其中涵蓋了多種可供選擇的算法。常見的分類算法包括決策樹、人工神經(jīng)網(wǎng)絡(luò)、遺傳算法、KNN算法、支持向量機、樸素貝葉斯和Adaboosting等[9]。在這些算法中,決策樹因其快速構(gòu)建和分類速度等優(yōu)勢而備受關(guān)注,在實際應(yīng)用層面相對于其他機器學(xué)習(xí)算法更具適用性[3]。
決策樹分類模型是一種簡單直觀的機器學(xué)習(xí)算法。通過對數(shù)據(jù)逐步進行特征劃分,構(gòu)建一棵樹狀結(jié)構(gòu),用于分類任務(wù)。從根節(jié)點開始,根據(jù)特征值不斷選擇最優(yōu)劃分,直至達(dá)到葉子節(jié)點,完成分類。該模型易于理解和解釋,適用于大規(guī)模數(shù)據(jù)集[10]。
在完成訓(xùn)練后,決策樹生成了一棵類似于樹的判別模型,通過每個節(jié)點的判決,最終得出正確的分類結(jié)果。圖3呈現(xiàn)了一個簡明的決策樹示例。
在決策樹的構(gòu)建過程中,一個關(guān)鍵的任務(wù)是選擇用于劃分?jǐn)?shù)據(jù)集的最優(yōu)特征。對于分類問題,常用的指標(biāo)是信息增益(Information Gain)或基尼不純度(Gini Impurity)。信息增益衡量的是通過某個特征對數(shù)據(jù)集進行劃分后,信息不確定性的減少程度,計算公式為
式中:Ent(D)表示數(shù)據(jù)集D的信息熵(Entropy),計算公式為
Ent(D)=-∑pilog2(pi) 。 (2)
對于回歸問題,決策樹使用方差作為衡量連續(xù)值預(yù)測的不確定性的指標(biāo)。假設(shè)數(shù)據(jù)集D的連續(xù)值標(biāo)簽為y1,y2,…,yn,則方差的計算公式為
決策樹的構(gòu)建過程始于根節(jié)點,該節(jié)點包含訓(xùn)練集中的全部數(shù)據(jù)。通過對特征值的比較,決策樹將數(shù)據(jù)集逐步劃分成不同的子集,使得每個子集中的樣本具有相似的特征。這個過程將繼續(xù)遞歸地進行,直到滿足某個停止條件,例如達(dá)到樹的最大深度或子集中的樣本數(shù)量過少。
決策樹具有易于理解和解釋的優(yōu)勢,因為其能夠生成清晰的樹狀結(jié)構(gòu),直觀地展示了分類或回歸的決策過程[11]。
2.2基于決策樹的水果實時分類算法設(shè)計
本研究設(shè)計的決策樹算法的核心思想如下。
1)提取水果的4個特征參數(shù),包括面積、周長、似圓度和顏色,這些參數(shù)用于區(qū)分不同的水果類別。
2)在包含6種水果的根節(jié)點上,計算參數(shù)集的信息總量,以了解整個數(shù)據(jù)集的初始信息量。
3)計算每個屬性在葉節(jié)點上的信息總量,同時根據(jù)每個屬性,計算依據(jù)其劃分后的信息需求。
4)逐個計算4個屬性(面積、周長、似圓度和顏色)對應(yīng)的信息增益,通過比較信息增益值來選擇最優(yōu)的屬性進行數(shù)據(jù)劃分。
5)選擇具有最大信息增益的屬性進行劃分,從而在每次劃分中都選擇最具區(qū)分性的特征。
6)通過遞歸地繼續(xù)劃分,按照同樣的步驟對子節(jié)點進行處理,直到所有葉節(jié)點都在單一類別上。
7)所有葉節(jié)點都指向單一類別時,停止劃分,此時決策樹構(gòu)建完成。
3算法部署
3.1圖像特征提取
物體識別流程如圖4所示。具體實現(xiàn)方法如下。
首先,針對本研究實時獲取的水果圖像中可能包含大量冗余信息的問題,本研究只需對水果圖像的部分進行識別分類,而不必處理整個圖像。因此,在分類模塊中本研究使用邊緣分割法對水果圖像進行分割。具體步驟如下:首先,采用閾值法來提取水果的輪廓;接著,根據(jù)檢測到的水果輪廓,本研究繪制外接矩形,將該區(qū)域作為分割出的水果圖像,傳到下一個分類模塊進行處理。
在本研究的圖像分類中,圖像特征是描述圖像的原始屬性,通常包括顏色、輪廓、紋理、形狀和空間位置等。顏色特征可以通過提取RGB圖像的3個通道來獲取。而輪廓特征是形狀特征中最易獲取且具有良好分類效果的特征之一。本研究選擇的輪廓特征是水果的周長、二維映射面積以及似圓度。在視頻中水果所占面積并不一樣,因此可以使用輪廓面積來判別。通過結(jié)合輪廓特征和顏色特征,本研究成功實現(xiàn)了對水果的實時分類,并經(jīng)過測試證明,在水果分類的準(zhǔn)確率上優(yōu)于僅使用輪廓特征的方法[12]。
3.1.1面積特征
水果圖像的面積通常定義為其輪廓的面積。通過在上一步獲取的水果輪廓上計算水果圖像的面積(Area)[7]。
3.1.2? 周長特征
水果圖像的周長是指其輪廓的周長;在上一步獲取的水果輪廓上計算水果圖像的周長(L)。
3.1.3? 似圓度特征
似圓度表示閉合輪廓和圓形的接近程度。本研究定義計算公式如公式(4)所示
根據(jù)公式(4)可知,似圓度越接近1越圓,反之則越不接近圓形。
3.1.4? 顏色特征
為了在水果分類中更好地處理光線變化的影響,本研究選擇了HSV(色相、飽和度、明度)顏色空間作為顏色特征的提取方式。相對于RGB顏色空間,HSV顏色空間更加穩(wěn)定,能夠有效地表達(dá)色彩的明暗、色調(diào)和鮮艷程度,便于進行顏色間的對比。
在圖像像素值的讀取過程中,對飽和度(S)在43~255且明度(V)在46~255的像素視為彩色像素。對于這些彩色像素,本研究采取的方法是對于關(guān)鍵變量色調(diào)(H)進行控制,通過彩色對照表進行量化,再遍歷每一個像素,將其分類保存。通過這種方法,能夠更好地識別彩色像素并提取其色調(diào)信息。將色調(diào)進行非均勻量化有助于突出圖像中的主要顏色分布,同時計算像素計數(shù)可以衡量不同色調(diào)的出現(xiàn)頻率。由于計數(shù)最多的色調(diào)值反映了圖像中占據(jù)主導(dǎo)地位的顏色特征,因此作為圖像的顏色特征進行選取,有助于準(zhǔn)確地表征圖像的色彩特性。色調(diào)的量化公式如下
在顏色特征提取的過程中,本研究采取了對顏色的劃分,將H值進行了非均勻量化。具體做法是將色調(diào)劃分為0~6的7個區(qū)間,分別對應(yīng)不同的顏色。首先遍歷圖像的三通道得到RGB數(shù)值,接著通過轉(zhuǎn)換公式得到h、s、v數(shù)值。對于彩色像素,本研究對其h值進行非均勻量化,得到H值,并統(tǒng)計各個H值的像素點數(shù)量。在遍歷過程中,記錄每個H值對應(yīng)的像素點數(shù)量,然后選擇計數(shù)值最大的H值作為圖像的顏色特征參數(shù)[7]。
本研究中將提取得到的參數(shù)進行了本地存儲如圖5所示。每一類水果的特征排布均相同,按照類別、面積、周長、似圓度及顏色的格式進行排布,方便后期讀取。
3.2? 決策樹算法構(gòu)建
本研究一共得到了600條數(shù)據(jù)作為樣本,90%作為訓(xùn)練集,其余的作為測試集。
為了實現(xiàn)水果實時分類算法,本研究選擇了WEKA軟件作為工具。WEKA是一款開源的機器學(xué)習(xí)軟件,提供豐富的數(shù)據(jù)挖掘和機器學(xué)習(xí)算法,適用于數(shù)據(jù)分析、模型構(gòu)建和預(yù)測等任務(wù)[13]。利用WEKA軟件,能夠?qū)τ?xùn)練集數(shù)據(jù)進行處理和分析,構(gòu)建基于決策樹的水果實時分類算法。
通過以上的處理,在計算機上成功構(gòu)建了基于決策樹的水果實時分類算法。這一算法利用600條特征值數(shù)據(jù)進行訓(xùn)練和測試,旨在實現(xiàn)對水果的實時分類,為后續(xù)的實驗和研究工作提供可靠的分類基礎(chǔ)。
在使用軟件進行分類的過程中,首先通過樣例存儲樣本訓(xùn)練集數(shù)據(jù),確保數(shù)據(jù)的有效管理。其次,利用分類器定義通用的分類算法結(jié)構(gòu),為后續(xù)的機器學(xué)習(xí)方法提供了統(tǒng)一接口。再次,通過數(shù)據(jù)集加載工具加載數(shù)據(jù)文件,實現(xiàn)了數(shù)據(jù)集的導(dǎo)入和讀取。在數(shù)據(jù)加載過程中,提前設(shè)定好水果類別。最后,通過分類器的J48決策樹方法進行訓(xùn)練,為模型的構(gòu)建奠定了堅實的基礎(chǔ)。具體的模型構(gòu)建流程如圖6所示。
WEKA平臺上構(gòu)建了J48決策樹分類器的實例,利用Classifier、Instance和ArffLoader方法,能夠有效地操作和處理訓(xùn)練數(shù)據(jù)集。通過指定數(shù)據(jù)文件路徑,本研究成功導(dǎo)入了訓(xùn)練數(shù)據(jù),確保了后續(xù)訓(xùn)練過程的順利進行。在導(dǎo)入數(shù)據(jù)集后,我們設(shè)定了標(biāo)識列,以確保訓(xùn)練數(shù)據(jù)的正確標(biāo)記。然后,本研究通過運用J48決策樹算法對模型進行了訓(xùn)練,直到模型訓(xùn)練過程順利完成。
針對之前獲取的數(shù)據(jù)集,針對每種水果隨機選擇60條數(shù)據(jù),共計540條數(shù)據(jù)作為訓(xùn)練集。在WEKA中基于該訓(xùn)練集構(gòu)建了水果決策樹分類模型。圖7展示了構(gòu)建的模型。
根據(jù)構(gòu)建的決策樹,本研究發(fā)現(xiàn)顏色分量在決策樹中充當(dāng)了根節(jié)點的劃分屬性,而該屬性具有最大的信息增益。通過遍歷葉子節(jié)點,可以得到?jīng)Q策樹的判決規(guī)則。當(dāng)分割模塊將水果圖像傳入模型后,首先進行顏色判決,根據(jù)對應(yīng)的結(jié)果送到不同的下一級葉節(jié)點。本研究根據(jù)決策樹模型構(gòu)建邏輯判斷語句,最終確定唯一的結(jié)果。
4結(jié)果測試
將分類算法移植到工業(yè)派后,調(diào)用攝像頭進行識別,部分結(jié)果截取如下。
由測試結(jié)果可知,識別結(jié)果播放幀率約為30 fps,正確率也極高,基本符合應(yīng)用要求。
5? ?結(jié)束語
本研究旨在開發(fā)一個水果實時分類系統(tǒng),該系統(tǒng)利用圖像特征進行水果實時識別。通過深入研究水果的圖像特征,選擇了最適用于該系統(tǒng)的特征。在實時視頻流中提取水果的關(guān)鍵特征,并將這些特征保存在本地,形成訓(xùn)練和測試的樣本集。選擇基于決策樹的水果實時分類算法,并在WEKA中利用大量水果數(shù)據(jù)集對其進行訓(xùn)練。最終,成功構(gòu)建了一個基于決策樹的水果實時分類模型,該模型能夠在實時場景中準(zhǔn)確地對水果進行分類,為水果相關(guān)應(yīng)用提供了有力支持。
本系統(tǒng)的水果自動分類算法基于監(jiān)督學(xué)習(xí)的決策樹算法設(shè)計,因此本研究可以通過增加水果參數(shù)集來擴充系統(tǒng)對水果種類的識別能力。然而,由于橙子和蘋果具有相似性,當(dāng)攝像頭快速晃動時,系統(tǒng)的性能可能會受到一定影響。因此,未來的研究方向是改進特征參數(shù)的描述方法,采用更有效的水果特征,以提高系統(tǒng)的準(zhǔn)確率。
參考文獻:
[1] 孟祥楓,龔賢明.消費者參與無接觸式配送的影響因素分析[J].中國集體經(jīng)濟,2022(27):124-128.
[2] 王壯飛,盧海林,耿文濤,等.基于OpenCV的水果采摘機器人目標(biāo)檢測與定位系統(tǒng)研究[J].電子技術(shù)與軟件工程,2022(2):137-140.
[3] 何宇健.Python與機器學(xué)習(xí)實戰(zhàn) 決策樹、集成學(xué)習(xí)、支持向量機與神經(jīng)網(wǎng)絡(luò)算法詳解及編程實現(xiàn)[M].北京:電子工業(yè)出版社,2017.
[4] 薛培康,杜紅棉,王瑋,等.基于AM5708的智能多目標(biāo)跟蹤監(jiān)控系統(tǒng)設(shè)計[J].科學(xué)技術(shù)與工程,2021,21(4):1471-1476.
[5] 雷得超,任守華.基于OpenCV圖像處理車牌識別系統(tǒng)分析研究[J].電腦與信息技術(shù),2022,30(4):15-17.
[6] 安帥帥,李慶忠.基于改進Canny的彩色圖像邊緣檢測算法[J].軟件導(dǎo)刊,2023,22(2):8-14.
[7] 楊鴿,鄭嘉龍,王瑩.基于HSV與RGB顏色空間的人體檢測與跟蹤算法[J].自動化技術(shù)與應(yīng)用,2022,41(9):17-20,28.
[8] WANG K, LIU S. RGBD Object Recognition and Flat Area Analysis Method for Manipulator Grasping[C]//2020 IEEE 9th Data Driven Control and Learning Systems Conference (DDCLS). IEEE, 2020: 729-734.
[9] 孫雨琛.基于機器學(xué)習(xí)的人臉表情識別與分析系統(tǒng)[D].貴陽:貴州大學(xué),2020.
[10] 王宏,張強,王穎,等.基于ELM的改進CART決策樹回歸算法[J].計算機系統(tǒng)應(yīng)用,2021,30(2):201-206.
[11] 鄭力嘉,宋冰.決策樹分類算法的預(yù)剪枝與優(yōu)化[J].自動化儀表,2023,44(5):56-62.
[12] 陳貝文,陳淦.水果分類識別與成熟度檢測技術(shù)綜述[J].計算機時代,2022(7):62-65.
[13] 趙寧杰,李雪飛.基于Weka平臺的分類算法比較分析[J].信息與電腦(理論版),2020,36(6):73-75.