戰秋成,季龍華,趙際云,修艷琪,戴婷婷
(哈爾濱理工大學機械動力工程學院,哈爾濱 150080)
據不完全統計,截至2019年全國每年僅城市產生的垃圾超4 億t,每年處理這部分垃圾需花費300 億元以上,處理帶來的環境污染問題日益嚴重,全國668個城市中超過2/3的城市被垃圾環帶包圍,其中大部分可回收垃圾并未被回收利用,而將這部分垃圾綜合利用(如:相關材料再利用,建造垃圾發電廠等),卻能創造2500 億元的效益。到2020年底,生活垃圾清運量己達到24 206 萬t/a[1]。
如何正確處理垃圾分類等問題迫在眉睫。我國垃圾分類智能化程度相比于國外,仍然面臨起步相對較晚的現狀,并且我國在垃圾的種類識別上的智能化程度仍然不高,尤其是垃圾分類智能化社區部署方面仍有待提高[2],而本文從深度學習算法的角度出發,針對生活垃圾智能分類系統做了一系列研究,為社區化普及智能化垃圾分類提供了解決方案。
根據國家統計局和部分數據整理網站統計,2010—2020年生活垃圾清運量及增速趨勢如圖1[3]所示,可以看出,我國垃圾清運量增速雖逐年放緩,但總量是逐年上升的。

圖1 生活垃圾清運量及增速趨勢
由此可知我國垃圾分類處理回收利用的需求量巨大,而目前我國的垃圾分類回收普及效果不好,大多數分類措施依賴于垃圾分類站進行大規模分類,大都為人工分類[4];智能化分類主要由傳感器、傳送帶、單片機控制大型機械臂進行分類,其準確度較低,普及程度不高,很難進行社區化部署,無法從源頭改善垃圾分類效果差的現狀[5]。小型社區化智能垃圾分類系統的重要性體現于此,能更好地實現生活垃圾分類智能化、自主化、社區化。
本文所設計的系統可實現垃圾自動分類、滿載故障報警、人機交互、模塊化社區部署、集群化管理等。系統使用優化后的YOLOv5模型,通過圖像識別實現自主識別4類垃圾(可回收垃圾、廚余垃圾、有害垃圾、其他垃圾),通過多級分類系統實現分類投放,通過物聯網云平臺實現儲存、記錄對應信息等功能;滿載故障報警可實時檢測垃圾桶狀態,是否裝滿,是否有模塊損壞,并及時同步到云平臺警告處理;人機交互可實現投放垃圾信息顯示、宣傳片播放、廣告投放,對應激勵功能等;模塊化社區部署可實現應對不同場景可個性化組裝相應功能、客制化部署。主要功能邏輯如圖2所示。

圖2 主要功能邏輯圖
在模型的選用上,分別測試了當下較為突出的幾種模型,分別測試了Faster RCNN、AlexNet、Google Net、VGG-16、ResNet-50、YOLOv3、YOLOv4、YOLOv5,最后發現YOLO 系列模型整體效果上要優于FasterRCNN AlexNet、Google Net、VGG-16、ResNet-50等模型。在準確率方面,YOLO 系列模型較強于AlexNet、Google Net、VGG-16、ResNet-50等模型。通過對比實驗發現YOLOv5模型相較于FasterRCNN模型速度提高了2~3倍,而在對于較小垃圾(如:煙頭等)識別方面YOLOv5模型對于物體定位信息也更準確,而且其部署更簡易,在整體方面YOLOv5模型有更好的性能。
對于YOLO系列模型,進行了對比實驗,數據表明YOLOv3模型遠不如其他兩款模型,YOLOv4模型在速度上超過了YOLOv5,分析可能是由于YOLOv5模型仍在開發中,尚未完善。但YOLOv5模型較小型化,便于部署到移動端,且更容易優化,于是選擇了YOLOv5模型進行后續開發。
在選擇了YOLOv5模型之后對于其中權重的選擇又進行了對比實驗,權重實驗對比在精確度方面X權重表現最好,但其識別花費時間過長,相較s權重耗時多1倍而準確度提升較小,由于嵌入式部署算力受限,最后選擇了s模型進行后續實驗部署。
在基本對比實驗完成之后,進行代碼測試,發現識別效果較穩定,但識別時間在70 ms左右,這個速度還是沒有達到的預期,于是進一步重構優化代碼,使用TensorRT加速,終于識別時間進一步縮短,最快可達10 ms,穩定識別時間低于30 ms。
在代碼優化完成后進行了訓練測試,訓練可視化圖如圖3所示,基本達到預期效果。項目初期識別分類基本完成,根據相關要求變化進一步改進優化算法代碼。

圖3 訓練可視化圖
產品與物聯網云平臺的對接是本項目的一個重要功能。物聯網云平臺是5G時代智能設備必不可少的功能。其包括但不限于數據收集、儲存、分析處理、可視化和遠程管理控制等功能,實現了智能設備的一站式管理。而本項目系統的推廣、簡易化、模塊化部署與管理離不開物聯網云平臺。
初步選用的云服務器有Apache和Nginx兩種,經過整體分析比較,Nginx云服務器和項目選擇的后端框架更為契合,所以選用Nginx作為本項目的服務器。
服務器對應的后端框架有多種,主流框架有基于Python的Flask、Django框架,Php后端和Golang后端等,基于性能、產品龐大的市場、復雜度等考量,決定選用適用范圍最廣的Django作為項目開發的后端框架。
在數據庫的選取方面,由于Django框架支持市面上絕大部分主流的數據庫,在實驗對比了占用空間大小和讀寫效率后,選擇了Sqlite3作為項目的數據庫系統,用于存儲前后端使用的所有重要數據。
在云平臺搭建完成后,為了更方便地實現人機交互,便于管理端與個人用戶及時查看相關數據,開發了相關App。當前主流App開發主要有基于Java的Android App、基于C# Xamarin App及HTML5開發App。由于項目系統針對性較強,交互系統更加方便簡潔,在進行對比后發現,Java和C#框架過于龐大繁瑣,于是選擇HTML5作為App的前端實現方案,經校內實驗測試效果良好。
面對嵌入式部署的復雜環境及不斷新增的垃圾種類,對于已識別垃圾通過桶內攝像頭拍照上傳云端的方式進行處理,基于現有數據集半自動標注,不斷提升識別精度;同時維護人員定期收集未識別垃圾,定期手動更新數據集,提升權重提高精度。定期云端更新部署到各嵌入式垃圾桶,達到持續更新垃圾識別種類的要求,不斷提升垃圾識別精度。
如何在短時間內準確地分類大量垃圾,如何在較小空間內更高效地運作相關機構,在面對種類繁雜的垃圾怎樣保證相關元件不被腐蝕更大限度地延長使用壽命,這些問題都是產品設計時面對的難點。
分別測試了傳送帶機構、六軸機械臂機構,實驗發現以上方案速度、準確度、空間利用率各方面效果均不太理想,機械結構對比實驗數據如表1所示。于是項目結合了相關機構的優點,設計了振動分離機構、機械臂、環形傳送帶等多級分離機構,在相互配合之后,每件垃圾分類時間為1~2 s左右,識別后的垃圾分類準確度在99%左右。

表1 機械結構對比實驗數據表
而對不同特征的垃圾有不同的解決方案,如:對于干垃圾,通過傳送帶的振動及差速分離進行預處理,將垃圾初步分散,經攝像頭識別分類再通過機械臂夾取投放至對應垃圾桶;對于濕垃圾,攝像頭識別后,會在對應廚余垃圾桶上方進行分軌,通過一定坡度及振動將垃圾投入進垃圾桶。同時垃圾桶傳送軌道設有擋板防止垃圾在傳送過程中落桶,對夾爪進行模塊化設計便于維護更換,可有效避免夾取過程中不慎掉落。
為使結構在小空間內高效運作,解決方案是使環形傳送帶持續運作,以應對大量垃圾同時投放,同時傳送帶設計了分軌結構,以處理未識別分類的垃圾(在超過一定時間內無人投放垃圾時,折疊在傳送帶擋板上的垃圾導板會展開,未識別的垃圾會在導板和傳送帶共同作用下從未識別垃圾出口處離開傳送帶掉入專用垃圾桶,并上傳數據,后續維護人員會記錄相關數據定期優化升級,并處理該部分垃圾),分離機構模型圖如圖4所示。

圖4 多級分離機構
傳送帶作為關鍵分離暫存機構,它通過傳送帶的摩擦力將垃圾初步分離開來。選用的傳送帶摩擦因數為0.44,滾輪半徑為25 mm,電動機最高轉矩為95 N·m,傳送帶速度設定值為0.5 m/s,加速距離為200 mm,根據F·S=1/2mv2,M=f·d 計算解得M=30.4 kg,即每次投放垃圾的質量不可超過30.4 kg,滿足日常需求。
機械臂的最大伸展長度為600 mm,電動機的最高轉矩為95 N·m,機械臂自重0.5 kg,根據M=F·d ,F=m·g解得M=15 kg 所以機械臂最大載荷為15 kg,滿足日常需求,機械臂前端安裝有夾爪,將已識別的垃圾從傳送帶上夾取至已識別垃圾投放口投入下方垃圾桶中。
在防腐材料選用方面,對于不同部件選用了不同的材料,對于承重結構來說,由于垃圾的總體質量不大。所以選用較輕質的鋁材作為框架和承重結構,關鍵結構件選用了ABS材料并經3D打印,結構易加工的同時兼具防腐性,對于傳送帶材料選用了NR-45LVHS聚氨酯噴涂的橡膠材料,保證了耐磨和防腐性。
本項目以Nvidia Jetson Agx Xavier為上位機進行視覺數據分析及數據云端上傳,以stm32f427為下位機對機械臂和傳送帶進行控制,連接各種外設傳感器獲取流程狀態。上下位機通信采用.json格式數據,數據標準兼容方便。傳送帶電動機選用大疆的M3508電動機,機械臂舵機采用大轉矩總線舵機,傳感器選用高精度超聲波,紅外光電傳感器。
傳送帶的電動機控制采用PID雙閉環調速系統,外環為速度環,內環為位置環,通過獲取電動機編碼器并進行累加來確定電動機轉動路程,將路程與期望路程進行內環位置環閉環處理,反饋數值再與電動機轉速進行外環電流環閉環處理,從而確定傳送帶轉動距離,配合紅外光電傳感器實時反饋物體經過特定區域的情況,如果遮擋光電傳感器返回低電平,反之則高電平。在產生低電平到高電平的跳變的時候,視為垃圾離開光電傳感器位置,記錄電動機編碼器數據并做校準。校準由于傳送帶表面摩擦因數關系導致垃圾在傳送帶上產生的移動誤差。
機械臂舵機采用大轉矩總線舵機,總線舵機的好處在于有位置和速度及轉矩電流反饋,結合算法可以得知當前機械臂整體姿態、當前狀態及夾取情況。并且總線舵機采用總線串聯的形式接線,整體只有1根線貫穿機械臂。算法采用矩陣分析,通過對機械臂的位姿矩陣進行分析與轉換,正逆運動學分析算法及速度雅可比矩陣方法實現路徑規劃。為了使得機械臂的整體運動平滑,通過對機械臂進行規劃,對末端速度、加速度等進行一定約束。
在垃圾桶容量計算方面,采用超聲波傳感器,由單片機定時器記錄時間,計算發射聲波與回波所需時間計算垃圾桶內橫切面的邊距情況。一旦垃圾桶容量超過一定高度,超聲波計算的距離值將會縮小,表面垃圾已經堆放到當前高度。通過設置一定的體積高度計算滿載情況,實時反饋當前垃圾桶剩余容量。
出于對社區化的推廣問題考慮,進行了模塊化設計便于清潔、維修、部署,大到垃圾處理站配套分類機構,小到街道垃圾桶均可以針對不同市場需求進行特質化定制,同時加裝了太陽能板進行應急供電,外觀模型效果圖如圖5所示。

圖5 外觀效果圖
我國目前對于垃圾回收,主要集中于價值較高的稀缺資源,對于生活垃圾僅有部分城市進行了分類回收,且回收手段主要靠居民自主分類、統一集中處理,其中對于資源回收利用的效率低、花費高,并且普及推廣難度大,大部分城市對于垃圾分處理還處在不分類直接處理階段。簡化垃圾分類,使其不那么繁瑣,進一步推廣垃圾分類,成為了當下亟待解決的難題。而垃圾分類智能化,作為解決此難題的可行方案仍不成熟。現有市面上不論國內外,并沒有一套完善的垃圾自動分類設備和垃圾分類管理系統。但隨著計算機軟硬件飛速發展,相關從業者的拓展研究,圖像檢測及卷積神經網絡等深度學習在智能化識別中嶄露頭角,并逐漸趕上甚至超越傳統視覺算法,然而針對于移動端社區化部署,以及精確化特征識別提取仍有一定問題待解決,需要優化相關網絡模型來解決相關問題。
為了探究深度學習在垃圾分類的應用部署,尤其是針對社區化移動端部署這一具體問題,本文以識別速度較快、模型較小的YOLOv5卷積祌經網絡模型為基礎,對如何提升網絡小型化部署和識別檢測速度、進一步提升網絡分類準確率,以及社區智能化管理這一方向上展開研究工作。以下是研究內容和取得的成果:
1)在模型的選用上,分別測試了當下較為突出的幾種模型,分別測試了Faster RCNN、AlexNet、Google Net、VGG-16、ResNet-50,YOLOv3、YOLOv4、YOLOv5幾類卷積神經網絡模型在自建數據集上的精度、檢測速度、移動端部署難易程度,最終選用了模型最小、識別速度最快、精確度較高的YOLOv5模型作為研究的基礎算法模型,在其模型中加入了1×3卷積和3×1卷積來提升模型對待檢測目標的細節特征提取能力。通過改進后的YOLOv5網絡模型在數據集上進行訓練及測試,獲得了95.23%的準確率。
2)為了進一步加快識別檢測速度以便于小型化部署,采用YOLOv5.s權重,并通過分析修改網絡超參數使之在較低版本權重依然能保持不錯的識別準確率,將YOLOv5神經網絡模型部分進行C++編譯重構,同時使用TensorRT進行加速,最終利用此方式改進的模型,并在自制數據集上進行驗證,使圖像識別處理速度達到120 fps以上,且模型更加小型化便于社區移動端部署使用。
3)針對目前垃圾分類智能化仍未普及,設計社區部署搭建物聯網云平臺,實現集群化管理,利用數據收集、儲存、分析處理,實現可視化和遠程管理控制等功能,以求達到智能設備的一站式管理。有助于本項目系統的推廣、簡易化、模塊化部署。解決了日常生活中生活垃圾的自動分類問題,進一步緩解了日益增加的垃圾種類多、分類困難的問題,促進了垃圾分類的普及,積極進行環境保護、資源回收,力求對人與自然和諧相處做出一定貢獻。