陳美玲 朱溫涵 劉佳成 鄭陽
摘? 要:由于人們生活水平的不斷提高,隨之產(chǎn)生的生活垃圾也不斷增多。為解決靠人力進行垃圾分類效率低下的問題,對自動垃圾分揀系統(tǒng)進行研究,并設(shè)計一種基于機器視覺的垃圾分揀系統(tǒng)。使用搭載有攝像頭的樹莓派作為主控單片機,利用卷積神經(jīng)網(wǎng)絡(luò)來分辨攝像頭所拍攝垃圾的類型,借助Arduino控制舵機自動開合垃圾桶,實現(xiàn)垃圾分類。經(jīng)過測試分析,系統(tǒng)的準確精度均能達到70%以上,準確精度較好,籍此人們能夠輕松處理生活垃圾。
關(guān)鍵詞:機器視覺;樹莓派;卷積神經(jīng)網(wǎng)絡(luò);Arduino
中圖分類號:TP311? 文獻標識碼:A? 文章編號:2096-4706(2023)04-0018-05
Design of Garbage Sorting System Based on Machine Vision
CHEN Meiling1, ZHU Wenhan2, LIU Jiacheng1, ZHENG Yang3
(1.Nanjing Tech University Pujiang Institute, Nanjing? 211200, China; 2.Graduate School Qinhuangdao Branch, Northeastern University, Qinhuangdao? 066004, China; 3.Jiamusi University, Jiamusi? 154007, China)
Abstract: With the continuous improvement of people's living standards, the amount of domestic garbage generated is also increasing. In order to solve the problem of inefficient waste sorting by manpower, the automatic waste sorting system is studied and a waste sorting system based on machine vision is designed. The Raspberry pie equipped with a camera is used as the main control MCU, and the Convolution Neural Network is used to distinguish the type of garbage captured by the camera. The steering gear is controlled by Arduino to automatically open and close the garbage can, realizing garbage classification. After testing and analysis, the accuracy of the system can reach more than 70%, and the accuracy is good, so people can easily handle domestic garbage.
Keywords: machine vision; Raspberry pie; Convolution Neural Network; Arduino
0? 引? 言
截至目前,全國每天的生活垃圾生產(chǎn)量已經(jīng)超過4.5億噸,而全國生活垃圾清運量僅為2.29億噸。合理地進行垃圾分類是有效進行垃圾處理、減少環(huán)境污染的關(guān)鍵舉措,也是最有效的垃圾科學(xué)管理方式[1]。
在國內(nèi),北京領(lǐng)邦儀器公司研發(fā)出了一款采用機器視覺技術(shù)和光學(xué)檢測技術(shù)的工業(yè)零件檢測機器人,該機器人可實現(xiàn)對高精度零件進行檢測分揀[2];在國外,ABB公司于2020年上海舉辦的進博會上,展示了最新研發(fā)產(chǎn)品——YuMi智能垃圾分類機器人[3]。該機器人能夠?qū)崿F(xiàn)垃圾的初步化過濾,對垃圾迅速準確地進行識別,多自由度機械臂靈活分揀,垃圾分類分揀完成后的數(shù)據(jù)傳遞等功能。目前,隨著深度學(xué)習(xí)技術(shù)的不斷進步,借助高速的計算機視覺技術(shù)實現(xiàn)自動分揀垃圾有現(xiàn)實的可能性[4]。
1? 理論基礎(chǔ)
在20世紀40年代,人工神經(jīng)網(wǎng)絡(luò)由于無法完成非線性分類、反向傳播訓(xùn)練速度慢的發(fā)展進入了一段很長的低迷期。2006年,深度信念網(wǎng)絡(luò)的概念被提出,由于該方法對手寫字體識別的效果好,使得更多人投身于此。深度神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,使得神經(jīng)網(wǎng)絡(luò)訓(xùn)練的速度大大提高。
1.1? 卷積神經(jīng)網(wǎng)絡(luò)
與常規(guī)神經(jīng)網(wǎng)絡(luò)不同,卷積神經(jīng)網(wǎng)絡(luò)能夠解決處理大尺寸圖像的三個明顯缺點:一是圖像向量化造成空間信息丟失,二是參數(shù)過于龐大而導(dǎo)致的訓(xùn)練困難,三是大量的參數(shù)會導(dǎo)致網(wǎng)絡(luò)的過擬合。在本設(shè)計中,垃圾分類的圖片數(shù)據(jù)良莠不濟,使用卷積神經(jīng)網(wǎng)絡(luò)可以很好地解決這個問題。
1.2? 卷積層
在機器視覺中運用卷積神經(jīng)網(wǎng)絡(luò),卷積層是它的核心。不同的卷積核可以提取例如角、水平、線性等特征。每一層圖片經(jīng)過卷積后得到的計算公式為:
其中, 表示第i層的數(shù)據(jù)寬度, 表示第i-1層的輸入數(shù)據(jù)寬度,p[i]是對第i層數(shù)據(jù)進行0填充的大小,f [i]是第i層過濾器的維度,s[i]是第i層過濾器的步長。以上公式同樣適用于輸入圖片的高度。
1.3? 池化層
池化層通常按一定周期規(guī)律插入到連續(xù)的卷積層之間。所謂池化即為壓縮網(wǎng)絡(luò)中原有數(shù)據(jù)參數(shù)的大小,以此來達到簡化卷積神經(jīng)網(wǎng)絡(luò)計算,減少卷積層中的相互聯(lián)系單元,同時控制過擬合這一目的。
通常有三種大值池化的操作方法:最大值池化(Max Pooling)、平均池化(Mean Pooling)和隨機池化(Stochastic Pooling)。實踐證明,最大池化的效果比其余二者的都好。
1.4? 全連接層
在卷積神經(jīng)網(wǎng)絡(luò)中,全連接層多位于網(wǎng)絡(luò)末端后兩層。全連接層的作用則是將這些圖形數(shù)據(jù)進行整合,然后進行歸一化處理。圖1是一個簡化的全連接層設(shè)計流程圖。
全連接層的計算相對于前面的卷積運算來講容易得多,當(dāng)使用多次卷積和最大池化操作對原始圖像像素特征提取之后,再乘以提前在全連接層中定義好的權(quán)重參數(shù),接下來通過Softmax函數(shù)激活,得到的結(jié)果是對應(yīng)輸入圖像所對應(yīng)的類別的概率大小,最后通過概率判斷輸入圖像的類別。
2? 總體設(shè)計
首先在模型訓(xùn)練及預(yù)測方面,本文使用個人PC機自帶的GPU,使用卷積神經(jīng)網(wǎng)絡(luò)模型ResNet對預(yù)處理過的數(shù)據(jù)集進行訓(xùn)練及預(yù)測。由于樹莓派的體積小,可布置在多個復(fù)雜環(huán)境。若預(yù)測效果較為滿意,則將該模型重新部署到樹莓派端使用。
在樹莓派端的垃圾分揀系統(tǒng)包括Arduino Mega 2560、樹莓派4B、樹莓派專用攝像頭,設(shè)計結(jié)構(gòu)如圖2所示。
本設(shè)計以兩類主控板分別對整個垃圾分揀系統(tǒng)進行聯(lián)合控制。首先通過在樹莓派端訓(xùn)練預(yù)測模型,再使用其專用攝像頭來獲取需要分揀的垃圾數(shù)據(jù),圖片經(jīng)過卷積、池化、激活等一系列深度學(xué)習(xí)處理,最后進行歸類并顯示在其連接的顯示器上[5]。同時,樹莓派會將歸類結(jié)果通過串口發(fā)送給Arduino,Arduino將根據(jù)結(jié)果控制相應(yīng)舵機的啟停,并根據(jù)當(dāng)前視野內(nèi)是否出現(xiàn)垃圾為依據(jù)控制傳送帶上電機的移動,進而實現(xiàn)塑料、金屬、紙張、紙板四類生活垃圾分類分揀的效果。
3? 硬件系統(tǒng)
首先在PC端上使用GPU進行模型訓(xùn)練及預(yù)測,接著在準確性、快速性達標的情況下,將該模型網(wǎng)絡(luò)部署到樹莓派端,進而實現(xiàn)實時垃圾分類。在本章中,將介紹本設(shè)計所用到的硬件環(huán)境。
3.1? CPU與GPU
GPU,又稱視覺處理器,是一種專門在私人PC機、移動設(shè)施上對圖像和圖形做相應(yīng)計算和處理的單元。GPU的存在使得其可以為CPU分擔(dān)大部分冗長復(fù)雜的圖像處理工作,使得顯卡減少了對CPU的依賴;CPU,又稱中央處理器,是計算機控制系統(tǒng)中的核心器件,它能夠通過各類邏輯運算電路完成信息處理、程序運行等功能。CPU主要包括控制器及運算器兩大部分[6]。
該設(shè)計所使用的硬件環(huán)境如表1所示。在GPU產(chǎn)生之前,傳統(tǒng)處理二三維圖像的方法都是使用CPU,然而由于CPU不只對圖像進行處理,還有其他繁多的任務(wù)。隨著機器視覺技術(shù)的發(fā)展需求,GPU作為專門處理圖像的單元而產(chǎn)生。CPU和GPU的合作運行,最大程度上發(fā)揮了電腦的性能。然而由于圖片數(shù)據(jù)大,CPU處理圖像速度緩慢等因素,故選擇單獨配置使用GPU來對模型進行訓(xùn)練。
3.2? 樹莓派與圖像識別模塊
本設(shè)計采用樹莓派(Raspberry Pi)4B開發(fā)板作為主控模塊,是一片僅有身份證大小的微型計算機,也是單片機的一種。樹莓派4B開發(fā)板在同價位的開發(fā)板中,性價比較高,其擁有多種不同規(guī)格的外設(shè)接口,可以連接顯示屏、鼠標、鍵盤等外設(shè),其中的GPIO接口擴展模塊也能夠各種各樣識別的傳感器。主板上有提前預(yù)留好的接口,可以與樹莓派專用的500萬像素攝像頭完美連接。樹莓派專用攝像頭實物圖如圖3所示。
可以看到攝像頭與樹莓派連接方便,使主控板和圖像提取模塊集成在一個區(qū)域,為垃圾分揀系統(tǒng)的實物設(shè)計留足了空間。Python為其主要的編程語言,同時也可以使用基于ARM框架的其他編譯語言。在本設(shè)計中主要在樹莓派中運用機器視覺中的TensorFlow+keras算法框架。
3.3? Arduino與數(shù)字舵機模塊
Arduino是一個既有硬件又有軟件的開源電子平臺:硬件部分是集成各個模塊功能、能夠與外設(shè)連接的Arduino電路板,軟件部分則是Arduio IDE,與keil4類似,用作個人計算機端的程序開發(fā)環(huán)境。由于其編程語言的簡單及人性化,故使用者可以將一些常用的語句組合函數(shù)化,這使得使用者能夠快速入門。
該設(shè)計使用Arduino Mega2560作為舵機控制的控制板,其實物圖如圖4所示。它是采用USB接口的核心電路板,具有54個數(shù)字I/O口,針對本項目垃圾歸類類別多這一難點,可以同時控制多個舵機。
在舵機方面,本文使用20KG舵機,根據(jù)實際情況,既可組裝成多自由度的機械臂,又可與垃圾桶蓋結(jié)合,組裝成智能垃圾桶。在電壓保持恒定輸入的情況下,由PID位置式算法控制舵機可以精準迅速地達到所要求的角度。故針對各種復(fù)雜的垃圾,該舵機能很好地勝任分揀的任務(wù)。
4? 垃圾分揀系統(tǒng)的實現(xiàn)
在本節(jié)中,將實現(xiàn)垃圾分揀系統(tǒng)所用到的AlexNet模型在PC端、樹莓派端上有效的運行,并對結(jié)果進行分析。
4.1? 模型框架選取
TensorFlow是一個端到端的開源符號式數(shù)學(xué)系統(tǒng),被廣泛應(yīng)用于先進機器學(xué)習(xí)技術(shù),可以隨時隨地在云端、本地甚至是瀏覽器中訓(xùn)練部署模型;PyTorch是由Facebook人工智能研究院于2017年提出的,在機器視覺領(lǐng)域,它具有相當(dāng)簡潔高效快速的框架,入門容易,設(shè)計理念是追求最少的封裝,使初學(xué)者能夠迅速入門。
TenorFlow與Pytorch的區(qū)別如表2所示。雖然TensorFlow入門難度大,編程難度也更大,但對于大數(shù)據(jù)的數(shù)量顯然較Pytorch要高,另外其社區(qū)學(xué)習(xí)資源、代碼更豐富,當(dāng)代卷積神經(jīng)網(wǎng)絡(luò)框架TensorFlow較為成熟,程序代碼已可以運用在Windows、Linux系統(tǒng)上。本文通過網(wǎng)絡(luò)上預(yù)先獲取到的圖片數(shù)據(jù)集,在Windows系統(tǒng)下,使用PC端中的GPU來對AlexNet卷積神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練。為使得本設(shè)計能更符合工業(yè)化生產(chǎn)要求及更貼近實際生活,故采用TensorFlow作為框架[7]。
4.2? PC端模型預(yù)測
將數(shù)據(jù)集輸入提前布置好的AlexNet網(wǎng)絡(luò)模型代碼當(dāng)中,使用PC端進行模型訓(xùn)練和預(yù)測,預(yù)測腳本的代碼編寫思路是:首先載入訓(xùn)練好的模型,接下來讀入圖片信息進行預(yù)測,最后展示預(yù)測的效果。使用數(shù)據(jù)爬取技術(shù)對三個數(shù)據(jù)集分別進行預(yù)測,測試結(jié)果如表3所示。
由表3可知,對三個大小差別不大的圖片數(shù)據(jù)集進行預(yù)測,其準確精度均能達到70%以上,準確精度較好;另外其分析圖片的實際時間差別不大,使用PC端GPU基本能符合快速性要求。以上,垃圾分類在PC端預(yù)測能夠得到較好的結(jié)果,可以將模型重新部署到樹莓派端。
4.3? 樹莓派端模型預(yù)測
將代碼和圖片集拷貝到樹莓派上,使用樹莓派攝像頭進行垃圾分類:激活虛擬環(huán)境后,克隆代碼并進入代碼目錄,測試好視頻接口后,打開攝像頭運行代碼開始垃圾分類。在攝像頭視野內(nèi)手動放入一個礦泉水瓶,樹莓派檢測結(jié)果如圖5所示。
可以看到,樹莓派在多個時間段內(nèi)判斷礦泉水瓶均屬于plastic(塑料),該圖片分類效果較好。接下來,再放入形狀與礦泉水瓶類似的罐裝可樂瓶,樹莓派檢測結(jié)果如圖6所示。
可以看到,樹莓派在多個時間段內(nèi)判斷罐裝可樂瓶均屬于metal(金屬),該圖片分類效果較好。接下來,再放入不規(guī)則形狀的衛(wèi)生紙,樹莓派檢測結(jié)果如圖7所示。
不斷翻轉(zhuǎn)手中的衛(wèi)生紙,檢測結(jié)果均為paper(紙),該圖片分類效果較好。最后,再放入與紙材料類似的平面紙板,樹莓派檢測結(jié)果如圖8所示。
以上,可以看到四種垃圾在30秒內(nèi)失誤數(shù)都較少,整體準確率均達到80%以上,故部署在樹莓派端的模型分類可以達到預(yù)期效果。
4.4? Arduino端分揀實驗
將Arduino與樹莓派串行連接,攝像頭實時拍攝需要分揀的生活垃圾,顯示屏則用作顯示當(dāng)前分類的結(jié)果;Arduino控制4個舵機進而帶動垃圾桶進行開合,基于機器視覺的垃圾分揀系統(tǒng)圖如圖9所示。
當(dāng)樹莓派檢測結(jié)果為plastic時,舵機1轉(zhuǎn)動45度;當(dāng)檢測結(jié)果為metal時,舵機2轉(zhuǎn)動;當(dāng)檢測結(jié)果為paper時,舵機3轉(zhuǎn)動;當(dāng)檢測結(jié)果為carboard時,舵機4轉(zhuǎn)動。舵機是由信號線輸入一個PWM信號進而控制一定的角度并鎖死,現(xiàn)場圖片分類時,其中一個分類情況下,舵機轉(zhuǎn)動如圖10所示。
可以看到,當(dāng)垃圾分類結(jié)果出現(xiàn)時,其中一個舵機轉(zhuǎn)動,由上述實驗結(jié)果可以得到結(jié)論:PC端內(nèi)GPU可以較好地使用訓(xùn)練好的模型進行預(yù)測,將模型部署到樹莓派端后,樹莓派也能在快速性的基礎(chǔ)上對垃圾圖片進行準確分類,同時與樹莓派進行串口通信的Arduino也能夠控制相應(yīng)的舵機轉(zhuǎn)動,進而能夠?qū)⒂嬎銠C有效代替人力實現(xiàn)垃圾分類分揀。
5? 結(jié)? 論
本設(shè)計在PC端和樹莓派端分別進行模型訓(xùn)練,在GPU端使用訓(xùn)練好的模型預(yù)測數(shù)據(jù)進行匯總分析后,將AlexNet網(wǎng)絡(luò)模型部署到樹莓派端使用,得到了多個準確的分類實驗結(jié)果,與此同時Arduino上的相應(yīng)舵機角度轉(zhuǎn)動也較為精確。以上,實現(xiàn)了基于機器視覺的垃圾分揀系統(tǒng)所要求的準確性及穩(wěn)定性,實驗結(jié)果較好,成本在可控范圍內(nèi);相較人力分揀而言,可代替大量重復(fù)工作,達到快速性的效果,在硬件和算法進一步完善更新的基礎(chǔ)上,有較好的市場前景。
參考文獻:
[1] 王蓉蓉.基于機器學(xué)習(xí)的垃圾識別與分類研究 [D].蘭州:蘭州理工大學(xué),2021.
[2] 李健凱.基于深度學(xué)習(xí)的視覺機器人垃圾分揀系統(tǒng)設(shè)計 [D].天津:天津工業(yè)大學(xué),2021.
[3] 肖揚.基于機器視覺的廢紙箱分類識別技術(shù)研究 [D].鄭州:河南大學(xué),2020.
[4] 王喆.基于機器視覺的醫(yī)療垃圾桶識別抓取方法研究 [D].濟南:齊魯工業(yè)大學(xué),2020.
[5] 張鳳.智能垃圾分揀系統(tǒng)關(guān)鍵技術(shù)研究 [D].成都:成都理工大學(xué),2020.
[6] 黃帥.基于機器視覺的大型生活垃圾焚燒過程診斷方法研究 [D].杭州:浙江大學(xué),2020.
[7] 段昆昕,江秋儀,陳鋒楠,等.基于樹莓派下智能分類垃圾桶設(shè)計 [J].中國新技術(shù)新產(chǎn)品,2022(1):37-39.
作者簡介:陳美玲(1984—),女,滿族,吉林四平人,副教授,碩士,研究方向:智能控制、圖像處理。
收稿日期:2022-09-23
基金項目:校一般科研課題(njpj2021-2-04)