李美錕,楊明夏,凌濱
(東北林業(yè)大學(xué),黑龍江哈爾濱,150040)
將訓(xùn)練好的垃圾分類模型放入樹莓派;當顯示屏顯示“按下按鍵開始識別”后,按下按鍵電路中的開關(guān),樹莓派收到按鍵信號后調(diào)用攝像頭進行拍照并調(diào)用模型處理圖像信息;處理完成后,樹莓派將通過引腳向單片機發(fā)送垃圾所屬類別的信號。單片機接收樹莓派給出的信息后,驅(qū)動步進電機對垃圾桶的托盤和擋板將垃圾分類投放。再次按下按鍵將開始下一次識別。智能垃圾桶工作流程如圖1所示。
圖1 智能垃圾桶工作過程
本設(shè)計將垃圾分成四類:可回收垃圾、其他垃圾、廚余垃圾、有害垃圾,相應(yīng)的將垃圾桶分成四個區(qū)域并標號為1、2、3、4。
如圖2所示,將1區(qū)域定為初始擋板設(shè)置的位置,2區(qū)域定為圓盤開口的位置,上方步進電機控制擋板的轉(zhuǎn)動,下方步進電機控制托盤的轉(zhuǎn)動,根據(jù)垃圾所屬類別,可以將步進電機控制移動分為四種情況:
圖2 智能垃圾桶區(qū)域劃分
(1)垃圾類別在1區(qū)域正下方,下方托盤順時針旋轉(zhuǎn)90度,待垃圾下落后,電機復(fù)位。
(2)在2區(qū)域的正下方,上方步進電機逆時針轉(zhuǎn)動90度,帶動垃圾到2區(qū)域缺口上方,待垃圾自動下落后,電機復(fù)位。
(3)在3區(qū)域的正下方,下方電機逆時針旋轉(zhuǎn)90度,托盤缺口轉(zhuǎn)到3區(qū)域;上方電機逆時針旋轉(zhuǎn)180度,使垃圾轉(zhuǎn)到3區(qū)域上方自動下落,依次復(fù)位上方和下方電機。
企業(yè)為學(xué)校提供學(xué)生實習的場所,使學(xué)生在實際中接觸社會、接觸真實的工作場景,增強其工作中處理問題、解決問題的能力。
(4)在4區(qū)域的正下方,上方電機順時針旋轉(zhuǎn)90度,托盤轉(zhuǎn)到4區(qū)域;下方電機順時針旋轉(zhuǎn)180度,使托盤缺口位置轉(zhuǎn)到4區(qū)域上方,垃圾下落后,依次復(fù)位上方和下方電機。
智能垃圾桶功能的實現(xiàn)主要依賴樹莓派3b+,STC89C52芯片,28BYJ4型步進電機等器件。智能垃圾桶的硬件結(jié)構(gòu)如3所示。
圖3 系統(tǒng)硬件結(jié)構(gòu)圖
(1)按鍵與樹莓派的GPIO25相連,當按鍵按下時樹莓派會檢測到該引腳電平進而對垃圾進行拍照并調(diào)用垃圾分類模型進行識別。
(2)識別結(jié)束,樹莓派一方面控制顯示電路部分相應(yīng)類別的LED燈亮,一方面對應(yīng)的引腳會變?yōu)槎虝旱牡碗娖?,通知單片機垃圾所屬類別圖4、5為樹莓派與顯示部分電路結(jié)構(gòu)。
圖4 樹莓派
圖5 按鍵與顯示電路
有四組共32個引腳可供使用,資源豐富,引腳輸出電壓滿足步進電機的驅(qū)動要求。
當樹莓派識別結(jié)束后,某一垃圾類別對應(yīng)的引腳會變?yōu)槎虝旱牡碗娖?,一方面點亮小燈、另一方面便是通知單片機垃圾所屬類別。單片機收到信號后便會根據(jù)相應(yīng)垃圾類別驅(qū)動步進電機控制垃圾桶的擋板與托盤將垃圾投放到對應(yīng)的垃圾收納區(qū)域內(nèi)。圖6為單片機部分電路圖。
圖6 單片機電路
驅(qū)動上方擋板和下方電機移動以及復(fù)位,實現(xiàn)垃圾分類的投放部分。本設(shè)計中,驅(qū)動電路采用高耐壓、大電流的達林頓陣列——ULN2003芯片來實現(xiàn)單片機對步進電機的控制。驅(qū)動電路結(jié)構(gòu)如圖7所示。
圖7 步進電機驅(qū)動電路圖
垃圾分類的核心是圖像處理并分類。圖像處理,即通過訓(xùn)練機器,找出相同類別物體映射到二維空間中的像素點在數(shù)值與相對位置方面的規(guī)律,進而得出該類物體的像素特征,并與其他類別物體的像素特征加以區(qū)分,最終達到區(qū)分不同類別物體的目的。
為了達到這一目的,需要卷積核、人工神經(jīng)網(wǎng)絡(luò)這樣的工具,并通過數(shù)據(jù)集的訓(xùn)練與優(yōu)化,從而得到某類物體的像素特征。卷積核就是參與卷積運算的像素模塊。如圖8,它們的任務(wù)是用其特有的像素結(jié)構(gòu)去提取圖片中的結(jié)構(gòu)單元。當兩個及兩個以上的卷積核捆綁在一起使用時,就得到了卷積網(wǎng)絡(luò)的過濾器。
圖8 卷積核
經(jīng)過對比現(xiàn)有的各神經(jīng)網(wǎng)絡(luò)模型,準確率較高的模型是NASNetLarge與MobileNet,因MobileNet運行時所占存儲空間較小,故更適用于本設(shè)計。
(2)可分類的垃圾數(shù)據(jù)集
本數(shù)據(jù)集來源于網(wǎng)絡(luò),共包括四個大類:可回收垃圾、其他垃圾、廚余垃圾、有害垃圾。
為縮短加載圖片時間,使用opencv處理圖像數(shù)據(jù),按照8:2的比例將數(shù)據(jù)集劃分為訓(xùn)練集和測試集,為解決內(nèi)存問題,將訓(xùn)練集與測試集圖片平均分為40組包保存,調(diào)用MobileNet的底層來預(yù)處理圖片,完成數(shù)據(jù)集構(gòu)建。
使用opencv處理圖像數(shù)據(jù),將圖片加載到MobileNet模型中進行預(yù)測并將輸出放入全連接層中訓(xùn)練其權(quán)重,調(diào)用MobileNet的底層來預(yù)處理圖片。本文使用的深度可分離卷積原理如圖9所示。
圖9 深度可分離卷積
(3)模型構(gòu)建程序設(shè)計
首先要使用Python調(diào)用TensorFlow的庫來構(gòu)建模型的頂層,之后使用之前生成好的npy數(shù)據(jù)集來訓(xùn)練模型,期間使用GPU進行加速。當40組數(shù)據(jù)訓(xùn)練完模型的頂層后,將MobileNet模型的底層與訓(xùn)練好的模型頂層連接起來便得到了最終的垃圾分類模型。
(4)模型優(yōu)化
廣泛用于多分類情況的最終輸出層中,因為它可以將神經(jīng)網(wǎng)絡(luò)的輸出值映射到[0,1]的區(qū)間內(nèi),且其全部輸出結(jié)果的和為1。本設(shè)計就是多分類情況,要對40種垃圾圖片進行分類,因此模型中最后一層神經(jīng)元使用的激活函數(shù)便是softmax函數(shù)。
②優(yōu)化器:隨機梯度下降法——深度學(xué)習中尋找最優(yōu)解的方法。梯度下降法原理如圖10所示。
圖10 梯度下降示意圖
③損失函數(shù):本設(shè)計中使用的是categorical_cros sentropy(交叉熵損失函數(shù))。當誤差大的時候其權(quán)重更新快,當誤差小的時候,權(quán)重更新慢。
④正則化:過擬合會對測試機數(shù)據(jù)的準確率產(chǎn)生較大影響,出現(xiàn)過擬合現(xiàn)象。消除過擬合的方法是正則化神經(jīng)網(wǎng)絡(luò)的權(quán)值矩陣,Dropout,這是神經(jīng)網(wǎng)絡(luò)中最有效,最常用的正規(guī)化方法,用以防止網(wǎng)絡(luò)的權(quán)值出現(xiàn)某些偶然模式,進而消除過擬合。
本設(shè)計采用谷歌團隊依據(jù)ImageNet數(shù)據(jù)集訓(xùn)練的MobileNet神經(jīng)網(wǎng)絡(luò)作為該垃圾識別模型的底部,權(quán)重保持不變,頂部加入512個神經(jīng)元與40個輸出神經(jīng)元組成的全連接層,全連接層部分的權(quán)重由電腦的GPU進行訓(xùn)練。
經(jīng)測試:(1)步進電機旋轉(zhuǎn)投放垃圾時間滿足投放允許誤差范圍,處理四類垃圾的響應(yīng)時間如表1所示。
表1 步進電機對不同垃圾的處理時間
由表可知,智能垃圾桶處理需一定的時間,但本設(shè)計主要應(yīng)用于家庭,家庭用戶產(chǎn)生的垃圾種類較為單一且投放垃圾時間間隔較長,該處理速度基本能滿足家庭用戶需求。
(2)通過對數(shù)據(jù)集中的垃圾類別進行識別,可知智能垃圾桶對每種垃圾分類的準確度。如圖11所示。
圖11 準確度
(3)表格2為垃圾識別模型對四大類垃圾識別準確率的對照表,該數(shù)據(jù)是由測試集數(shù)據(jù)得出的,即使模型將某一垃圾的所屬小類識別錯誤,若其最終的所屬大類沒有改變,則仍算識別正確。
表2 垃圾識別模型對四大類垃圾識別準確率
文設(shè)計的智能垃圾桶能夠完成日常生活垃圾的分類識別、自動投放等功能。具有占地小、學(xué)習能力強、識別準確的優(yōu)點;且在制作方面運用的樹莓派和輔助芯片等材料成本較低,適合家庭或企業(yè)的垃圾分類要求,有望普及。