雒珊,楊澳軍,王洪爽,岳嘉龍
(呂梁學院,山西呂梁,033301)
伴隨著蘋果種植及產(chǎn)量的不斷增大,蘋果分揀所需要的勞動力也不斷提高,而對于傳統(tǒng)的蘋果分揀作業(yè),主要包括蘋果好壞、成熟度以及蘋果大小的分類,大多依賴人工進行,分揀方式單一,分揀效率低、速度慢,基于視覺的蘋果分揀裝置對于降低勞動成本、提高農(nóng)業(yè)自動化水平都具有重要的研究意義。
國內(nèi)外目前主要以PLC、嵌入式控制方式結(jié)合機械式、聲波檢測、光譜檢測等技術(shù)完成對水果大小、質(zhì)量、表面缺陷、色澤等特征進行檢測,完成對水果等級分揀的功能,如:唐媛紅等引入PLC 控制技術(shù),通過將分揀機器人各執(zhí)行機構(gòu)的運行參數(shù)進行有效整合和合理分配,改善了簡單的機械控制[1];劉智豪等針對水果多模式檢測需求,設(shè)計了一種多用途水果分揀設(shè)備,由進料裝置、傳送裝置、檢測裝置、分料裝置和出料裝置等幾大部分組成,水果通過進料裝置進入傳送裝置分批經(jīng)過大小檢測傳感器、顏色檢測傳感器或重量檢測傳感器對水果做出檢測與判斷[2]。
針對目前整個水果分揀現(xiàn)狀,本項目基于單目視覺的蘋果分揀裝置設(shè)計具有較高的自動化水平和智能化程度,能夠適應(yīng)各種復雜環(huán)境,精確高效地完成設(shè)定的任務(wù);相比于人工分揀,大大提高了分揀速度、降低了人力成本、提高水果的從農(nóng)產(chǎn)品到商品的轉(zhuǎn)化時間;相比于相對有應(yīng)用的半自動化水果分揀機器人——只能做到簡單的機械控制,而本項目設(shè)計的單目視覺智能分揀裝置實現(xiàn)了對于蘋果色澤、大小等各項分揀參數(shù)的分揀,分揀類別更多、更加智能化、自動化,且準確率高,避免了半自動化水果分揀機器人動作不流暢,出現(xiàn)卡頓和分揀失敗的現(xiàn)象。
本設(shè)計將機器視覺、深度學習與雙舵機分揀裝置相結(jié)合,將不同等級的蘋果完成自動化分類工作,提高了蘋果分級的效率,降低了生產(chǎn)成本。
設(shè)計制作一個以單目視覺OpenMV4 OV7725 攝像頭對特定目標物體進行識別定位,并采用STM32H7 為核心的數(shù)據(jù)處理器對采集目標數(shù)據(jù)進行處理,通過UART 通信方式,把采集到的數(shù)據(jù)以數(shù)據(jù)包的形式發(fā)送到Arduino UnoR3 主控制系統(tǒng),通過該主控制系統(tǒng)的數(shù)據(jù)分析,進而實現(xiàn)對云臺的精確控制。
本設(shè)計分為控制單元、攝像頭采集單元、TFT 液晶屏顯示單元、語音合成播報單元、OLED12864 液晶顯示屏單元、雙舵機控制單元、火焰檢測單元七個單元組成。系統(tǒng)工作原理圖如圖1 所示。
圖1 系統(tǒng)整體設(shè)計方案圖
采用Arduino Uno 一款基于微控制器ATmega328P 的開發(fā)板。它有14 個數(shù)字輸入/輸出引腳,6 個模擬輸入引腳,16 MHz 石英晶振,USB 接口,電源接口,支持在線串行編程以及復位按鍵。
OpenMV4 是一個以STM32H743 ARM Cortex M7 處理器為核心,集成了 OV7725 攝像頭芯片的機器視覺模塊,其搭載了Micro Python 解釋器。其中,Ov7725 圖像采集模塊可以處理640×480(8 位)的灰度圖像或者320×240(16 位)的 rgb565 彩色圖像,幀率為80。處理器運行在400MHz 主頻,支持的圖像格式有Grayscale、RGB56、JPEG 和BAYER。
圖像液晶顯示單元,主要由2.2 寸TFTLCD 液晶顯示屏幕和0.96 寸OLED 液晶顯示屏幕組成。
TFT 液晶顯示器上的每一液晶像素點都是由集成在其后的薄膜晶體管來驅(qū)動,從而可以做到高速高亮高對比度的顯示屏幕信息,實現(xiàn)屏幕顯示也較為容易,易于擴展,制作工藝相對比較成熟,制作成本相對較低[3]。
OLED 采用有機發(fā)光二極管,是當下非常受歡迎的顯示技術(shù)。OLED 顯示屏與傳統(tǒng)LCD 顯示方式不同,它無需背光,每個像素點自發(fā)光,體積更小、更輕更薄更省電,而且能做成柔性屏。
本設(shè)計采用高度集成的TTS 語音合成模塊,可以實現(xiàn)中文、英文和數(shù)字語音合成。
為滿足語音播報需求,需要將漢字經(jīng)由GBK 碼轉(zhuǎn)化為十六進制格式。語音合成后的編碼如圖2 所示。
圖2 語音編碼值
主要由兩個數(shù)字舵機組成,舵機的選擇決定云臺系統(tǒng)的穩(wěn)定。針對本設(shè)計需求,高響應(yīng),易分揀,最終選擇數(shù)字舵機作為云臺控制基礎(chǔ)。
2.4.1 雙舵機結(jié)構(gòu)圖
雙舵機結(jié)構(gòu)構(gòu)造說明如下,雙舵機結(jié)構(gòu)圖如圖3 所示。
圖3 雙舵機結(jié)構(gòu)圖
2.4.2 軌道結(jié)構(gòu)圖
軌道結(jié)構(gòu)構(gòu)造說明如下,軌道結(jié)構(gòu)圖如圖4 所示。
圖4 軌道結(jié)構(gòu)圖
Arduino 的編程語言是基于C 語言改進的,開發(fā)者在有了C 語言的基礎(chǔ)之后很快就能夠上手進行獨立的開發(fā)。
該語言十分地簡單,主要有兩個部分,一個部分是setup()函數(shù),另一個部分是loop()函數(shù);OpenMV4 通過Python 語言可完成各種機器視覺相關(guān)的任務(wù)[2]。
本設(shè)計是基于單目視覺的智能分揀裝置,從系統(tǒng)上電系統(tǒng)開始,首先進行系統(tǒng)重要部件(攝像頭、語音播報模塊、火焰?zhèn)鞲衅?、分揀系統(tǒng)等)初始化,其次是系統(tǒng)自檢,自檢過程對于保證整個系統(tǒng)穩(wěn)定運行具有至關(guān)重要的作用,如果自檢不成功將重新進行系統(tǒng)初始化,直到系統(tǒng)正常工作。
經(jīng)過初始化以后,進入按鍵掃描,如果沒有按鍵按下,按鍵狀態(tài)值為0,系統(tǒng)不工作,紅色LED 指示燈常亮、OLED 顯示屏顯示提示信息、語音播報模塊播報“初始化完成”的語音。
當按鍵按下時,主控讀取鍵值,按鍵狀態(tài)值為2 時,系統(tǒng)工作,綠色LED 指示燈常亮,如果攝像頭未采集到圖像持續(xù)3s 以上,語音播報模塊播報“請放入水果”;否則,語音播報模塊播報“正在分揀”,此時,系統(tǒng)開始對蘋果進行圖像處理,通過視覺算法優(yōu)化對蘋果表面缺陷進行精準識別,并進行色度判斷,經(jīng)過大小、色度綜合比較后,將蘋果進行大、中、小分揀和歸類,并且能夠在TFT 屏幕上實時顯示攝像頭采集畫面及目標顏色、在OLED 上看到已完成分類的蘋果數(shù)量及總量信息。
在該裝置工作期間,如果火焰檢測模塊檢測到火焰,該裝置通過語音合成模塊對“警報”進行多次語音播報,OLED 顯示屏顯示“警報”。
當分揀完成后,即攝像頭采集不到待分類物體信息持續(xù)3s 后,開始語音播報“分揀完成、結(jié)果如下”,并對于已分類不同規(guī)格蘋果的數(shù)量、總量,進行依次播報。系統(tǒng)主程序流程圖如圖5 所示。
圖5 系統(tǒng)主程序流程圖
使用單目視覺對采集的蘋果進行OTSU閾值分割、中值自適應(yīng)濾波。
使用 Cannny 邊緣檢測算子算法、神經(jīng)網(wǎng)絡(luò)算法優(yōu)化對蘋果表面缺陷進行精準識別,根據(jù)LAB 分量和RGB 分量對蘋果表面進行色度判斷。
OTSU 閾值分割:使用聚類的思想,把圖像的灰度數(shù)按灰度級分成2 個部分,使得兩個部分之間的灰度值差異最大,每個部分之間的灰度差異最小,通過方差的計算來尋找一個合適的灰度級別來劃分。OTSU 閾值分割效果圖如圖6 所示。
圖6 OTSU 閾值分割效果圖
中值自適應(yīng)濾波:通過對采集到的蘋果圖像比較像素周圍的像素的中值減去偏移量來自適應(yīng)閾值圖像,進而達到對于采集圖像濾波的目的。中值自適應(yīng)濾波效果圖如圖7 所示。
圖7 中值自適應(yīng)濾波效果圖
將識別、處理后的圖像信息通過UART 串口發(fā)送給主控單元,經(jīng)過解析判斷,去掉數(shù)據(jù)的幀頭、幀尾提取出有效的信息。圖像處理子程序流程如圖8 所示。
圖8 圖像處理子程序流程圖
雙舵機分揀裝置采用輸出兩路50Hz 的PWM 信號來驅(qū)動,通過字符數(shù)據(jù)對應(yīng)后,實現(xiàn)對應(yīng)不同類型蘋果的數(shù)量統(tǒng)計和分揀。
Arduino 利用舵機的特性,通過產(chǎn)生不同占空比的PWM 波,來控制下面位置舵機的水平角度轉(zhuǎn)向和上面位置舵機的垂直方向的位置變化。云臺控制子程序流程圖如圖9所示。
圖9 雙舵機控制子程序流程圖
串口調(diào)試作為一種常用的調(diào)試方式,具有方便快捷,精準定位等優(yōu)勢。本設(shè)計采用串口1(UART1)作為調(diào)試接口。
首先需要進行硬件環(huán)境的搭建,RX 接到TX,TX 接到RX,確保正常通信,軟件層,要實現(xiàn)與上位機正常通信,要保證波特率設(shè)置匹配,此處設(shè)定為19200baud,數(shù)據(jù)長度為8 Bits。采用Arduino IDE的串口調(diào)試助手,調(diào)試過程界面如圖10 所示。
圖10 串口調(diào)試界面
角度控制調(diào)試是主控單片機輸出不同的占空比的PWM 波對于舵機進行控制,確保舵機按照設(shè)定好的分揀角度正常、穩(wěn)定地運行。
在編寫程序后,通過串口監(jiān)視器進行角度和角度值變化的觀察。舵機角度調(diào)試界面如圖11 所示,舵機分揀實物調(diào)試如圖12 所示。
圖11 脈沖輸出調(diào)試界面
圖12 舵機分揀調(diào)試
攝像頭采集穩(wěn)定性測試,主要通過采集幀數(shù)來判斷,OpenMV4 通過調(diào)用time.clock()函數(shù)來返回時鐘對象,進而通過clock 函數(shù)來對于攝像頭進行幀率的采集。
根據(jù)每秒采集幀數(shù)的穩(wěn)定值得到如下幀率數(shù)值。幀率數(shù)值見表1。
表1 圖像采集幀數(shù)穩(wěn)定性測試
使用高性能低功耗的Arduino 系統(tǒng)板設(shè)計制作,采用單目機器視覺OpenMV4(Cam H7)攝像頭,利用對于蘋果的色域采用閾值分割、中值濾波等圖像處理方法,實現(xiàn)采集到畫面的旋轉(zhuǎn)最小矩形面積與矩形邊界來衡量密度,并結(jié)合神經(jīng)網(wǎng)絡(luò)算法優(yōu)化,進而完成單目視覺對于蘋果的大小、色澤的精準識別,并根據(jù)檢測結(jié)果進行蘋果分揀,通過數(shù)據(jù)分析。
結(jié)合串口通信電路,把獲取的大小,色澤飽和度等信息傳到核心處理器中,通過信息分析,結(jié)合按鍵電路的模式切換,將分揀結(jié)果顯示在液晶顯示屏上。
為防止系統(tǒng)上電后產(chǎn)生識別誤差,OpenMV4 攝像頭模塊識別程序的運行采用外部電平觸發(fā)的方式,即主控Arduino 給攝像頭模塊發(fā)送高電平信號后,方可開始對于待分揀物體的識別和數(shù)據(jù)的發(fā)送。圖像采集初始化效果圖如圖13 所示。
圖13 圖像初始化效果圖
在固定的識別區(qū)域內(nèi),采用閾值分割、中值濾波等圖像處理方法,實現(xiàn)采集到畫面的旋轉(zhuǎn)最小矩形面積與矩形邊界來衡量密度,并結(jié)合神經(jīng)網(wǎng)絡(luò)算法優(yōu)化。圖像抗干擾優(yōu)化效果圖如圖14 所示。
圖14 圖像抗干擾優(yōu)化效果圖
本設(shè)計以單目視覺技術(shù)為基礎(chǔ),結(jié)合自動控制技術(shù),實現(xiàn)水果的分級分揀,具有重要理論研究和實際應(yīng)用價值。這對于解決水果分級的難題、對提高分級精度、提高果品效益、提高水果品質(zhì)、擴大水果出口量、改變我國水果分級現(xiàn)狀,同時對提高我國水果市場競爭力與產(chǎn)品增值效益具有重要應(yīng)用意義。
所以本設(shè)計是緊密結(jié)合我國農(nóng)業(yè)發(fā)展規(guī)劃和服務(wù)社會發(fā)展、生態(tài)環(huán)境而進行的關(guān)鍵性技術(shù)研發(fā)和應(yīng)用,對國家、社會民生發(fā)展、農(nóng)業(yè)自動化水平的提高等提供了關(guān)鍵技術(shù)支撐。
如果大規(guī)模應(yīng)用和推廣,可提高農(nóng)業(yè)從生成、分揀到產(chǎn)品包裝等現(xiàn)代農(nóng)業(yè)自動化水平,可帶動環(huán)境改善、節(jié)約人工勞動成本、實現(xiàn)技術(shù)推廣和服務(wù)等經(jīng)濟效益,是結(jié)合農(nóng)業(yè)現(xiàn)代化、自動化、智能化的一種創(chuàng)新應(yīng)用,具有很好的應(yīng)用前景。