劉佳輝,李 澤
(北京科技大學(xué)天津?qū)W院,天津 301830)
現(xiàn)階段,我國(guó)大部分城市都遭受著“垃圾圍城”的困擾,這不僅制約了城鄉(xiāng)均衡發(fā)展和新型城鎮(zhèn)化的空間布局,而且還對(duì)居民的身心健康和社會(huì)進(jìn)步產(chǎn)生了嚴(yán)重影響。破解“垃圾圍城”,首要條件是從源頭上實(shí)現(xiàn)垃圾減量。因此,推動(dòng)城市社區(qū)開展垃圾分類勢(shì)在必行。自20世紀(jì)90年代中期起,部分地區(qū)的政府和民間團(tuán)體就已開始自發(fā)探索垃圾分類工作。至2000年,原建設(shè)部選取北京、上海、南京等八個(gè)大中城市作為生活垃圾分類收集試點(diǎn),嘗試大范圍推廣生活垃圾分類。就具體實(shí)踐而言,我國(guó)城市社區(qū)垃圾分類存在進(jìn)展緩慢、推進(jìn)困難以及居民參與率低等問(wèn)題,垃圾分類獲得成功的社區(qū)案例少之又少。有學(xué)者指出,當(dāng)前垃圾分類設(shè)施供給不足與垃圾回收利用體系不健全是社區(qū)生活垃圾分類進(jìn)展緩慢的原因所在。本文的目標(biāo)在于設(shè)計(jì)一款家用垃圾分類回收系統(tǒng),從根源上解決垃圾分類難的問(wèn)題。
系統(tǒng)主要分為硬件和軟件兩部分,硬件主要包括Arduino控制硬件的舵機(jī)模塊、光電傳感器、超聲波傳感器模塊,以及樹莓派、攝像頭等。軟件部分主要包括基于樹莓派的交互界面設(shè)計(jì)和基于Lobe的垃圾檢測(cè)模型的訓(xùn)練。系統(tǒng)框架如圖1所示。
圖1 系統(tǒng)框架
智能垃圾分類回收系統(tǒng)的運(yùn)轉(zhuǎn)主要由2個(gè)270°舵機(jī)拖動(dòng),雙舵機(jī)結(jié)構(gòu)具有結(jié)構(gòu)簡(jiǎn)單、驅(qū)動(dòng)控制便捷、承重能力強(qiáng),以及分類運(yùn)轉(zhuǎn)速度快等優(yōu)點(diǎn),適用于家庭垃圾分類。
本文選擇的Arduino UNO R3開發(fā)板使用ATmega328P作為主控制芯片。Arduino軟件具有自己的文本編輯器,開發(fā)者可以使用其文本編輯器來(lái)編寫和修改程序,并將程序上傳到Arduino開發(fā)板。
Arduino硬件電路板由一條用于為整個(gè)電路供電的USB數(shù)據(jù)線、一個(gè)微控制器IC組成。
選擇使用270°海靈智電舵機(jī)作為控制器,原因在于其可控制轉(zhuǎn)動(dòng)方向角度,支持角度反饋,具有智能防堵轉(zhuǎn)功能,可最大限度減少舵機(jī)因?yàn)槎罗D(zhuǎn)而燒壞的幾率。金屬齒輪的舵機(jī)具有大扭力,可避免齒輪因?yàn)樨?fù)載過(guò)大而崩牙。使用高精度齒輪鑲嵌可減少摩擦帶來(lái)的噪音。
舵機(jī)的伺服系統(tǒng)由脈沖控制,通過(guò)改變脈沖寬度控制舵機(jī)旋轉(zhuǎn)的角度,使用控制線來(lái)傳送脈沖。脈沖的參數(shù)包括最大值、最小值和頻率。例如:中間位置為1.5 ms脈沖(選擇使用270°舵機(jī),那么中間位置為135°)??刂葡到y(tǒng)發(fā)出信號(hào),使舵機(jī)移動(dòng)到需要的角度并保持,這時(shí)外力的影響不會(huì)使角度發(fā)生變化(除非超過(guò)該舵機(jī)的最大扭力)。
滿載檢測(cè)選用超聲波模塊,超聲波模塊跟隨上舵機(jī)運(yùn)動(dòng),當(dāng)垃圾入桶后,超聲波模塊根據(jù)發(fā)送的超聲波與接收到超聲波的時(shí)間差,計(jì)算出垃圾的高度,以此實(shí)現(xiàn)滿載檢測(cè)。
垃圾分類回收系統(tǒng)機(jī)械部分分為視頻識(shí)別區(qū)、垃圾投放區(qū)、垃圾儲(chǔ)存區(qū)。
垃圾投放區(qū)由上、下2個(gè)分離的平面組成,平面為2個(gè)四分之三圓,視頻識(shí)別區(qū)識(shí)別到投放的垃圾種類后,垃圾投放區(qū)的上平面擋板將垃圾推至該種垃圾儲(chǔ)存區(qū)上方,當(dāng)下平面缺口與上平面缺口重合,垃圾便落入垃圾儲(chǔ)存區(qū),如此即可實(shí)現(xiàn)垃圾分類。垃圾存儲(chǔ)區(qū)如圖2所示,垃圾識(shí)別區(qū)如圖3所示。
圖2 垃圾儲(chǔ)存區(qū)
圖3 垃圾識(shí)別區(qū)
垃圾桶的監(jiān)測(cè)功能包括滿載檢測(cè)、垃圾種類識(shí)別等,當(dāng)光電開關(guān)檢測(cè)到信號(hào)時(shí),Arduino通過(guò)串口通信的方式將數(shù)據(jù)傳輸至樹莓派,調(diào)用提前訓(xùn)練好的垃圾檢測(cè)模型,對(duì)攝像頭讀取到的垃圾圖片進(jìn)行檢測(cè)。樹莓派再通過(guò)串口通信將識(shí)別結(jié)果傳輸至Arduino UNO板,然后Arduino發(fā)送指令控制2個(gè)舵機(jī)轉(zhuǎn)動(dòng)使缺口重合,將垃圾投入對(duì)應(yīng)的垃圾桶。
系統(tǒng)硬件設(shè)計(jì)如圖4所示。
圖4 系統(tǒng)硬件設(shè)計(jì)
Lobe是一款方便用戶使用的可視化工具,我們可以創(chuàng)建需要的深度學(xué)習(xí)模型并訓(xùn)練,這個(gè)過(guò)程無(wú)需編寫任何代碼就能將其部署到APP中。
為降低垃圾識(shí)別模型的訓(xùn)練時(shí)間,提高識(shí)別準(zhǔn)確性,選用Lobe進(jìn)行垃圾識(shí)別模型的訓(xùn)練,通過(guò)使用大量垃圾圖片數(shù)據(jù)訓(xùn)練出準(zhǔn)確度超98%的垃圾分類模型。
Lobe是微軟開發(fā)的一款用于訓(xùn)練機(jī)器學(xué)習(xí)模型的軟件,可通過(guò)圖形化操作界面導(dǎo)入提前準(zhǔn)備的數(shù)據(jù)集,并根據(jù)文件樹自動(dòng)給照片貼上標(biāo)簽。選擇Lobe的原因在于其具有模型精度高、訓(xùn)練速度快等優(yōu)點(diǎn)。
(1)模型構(gòu)建。從計(jì)算機(jī)中選擇數(shù)據(jù)所在的文件夾,之后Lobe自動(dòng)創(chuàng)建深度學(xué)習(xí)模型并訓(xùn)練。工作過(guò)程中,Lobe會(huì)調(diào)整設(shè)置并連接預(yù)訓(xùn)練部分對(duì)模型進(jìn)行微調(diào)。
(2)模型訓(xùn)練。隨著模型的改進(jìn),可利用交互式操作界面實(shí)時(shí)監(jiān)控模型的訓(xùn)練進(jìn)度。由于訓(xùn)練在云端進(jìn)行,故能夠快速生成結(jié)果,同時(shí)不影響電腦的運(yùn)行速度。
(3)模型部署。模型訓(xùn)練完成后,可以將訓(xùn)練好的模型導(dǎo)出到TensorFlow,然后將其部署在樹莓派中,或者生成API,直接將模型部署到云端,然后遠(yuǎn)程調(diào)用模型。
為提高人機(jī)交互界面的體驗(yàn),使用Tkinter實(shí)現(xiàn)圖形化操作界面,可通過(guò)觸摸屏實(shí)現(xiàn)垃圾分類知識(shí)普及。視頻與攝像頭識(shí)別界面可隨時(shí)切換,并顯示出垃圾總數(shù)及各類垃圾的數(shù)量等信息。視頻宣傳界面如圖5所示,垃圾檢測(cè)界面及垃圾檢測(cè)結(jié)果如圖6所示。
圖5 視頻宣傳界面
圖6 垃圾檢測(cè)界面及垃圾檢測(cè)結(jié)果
本文設(shè)計(jì)的垃圾分類回收系統(tǒng)利用視覺(jué)識(shí)別技術(shù)與單片機(jī)技術(shù)實(shí)現(xiàn)了垃圾智能識(shí)別和分類,并具有滿載檢測(cè)功能,能夠在顯示屏上實(shí)時(shí)顯示垃圾分類情況。此垃圾分類回收系統(tǒng)用盡可能低的成本實(shí)現(xiàn)了較多實(shí)用功能,但目前的承重能力和硬件可維護(hù)方面還存在一定問(wèn)題。下一步,團(tuán)隊(duì)將側(cè)重于系統(tǒng)機(jī)械承重和結(jié)構(gòu)部分的改進(jìn),同時(shí)對(duì)視覺(jué)識(shí)別數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化和擴(kuò)充,使之能夠具有較好的現(xiàn)實(shí)情景實(shí)用性。