林穎 黃澤豪 曾文軒 林瓊萍
(華南理工大學廣州學院 廣東省廣州市 510000)
隨著環保進程的推進,如何將垃圾進行快速準確分類是當下實現環保目標首要考慮的問題。現市面上已推出相關垃圾分類產品,但依舊存在痛點。其一是與環境的協調性,例如無關物體進入攝像頭范圍引起垃圾桶開關,控制過程存在盲動性,導致系統的工作效率較低,能耗居高不下,并且整體而言智能化較差,不符合未來發展趨勢。其二在于辨別能力差,垃圾的分類處理其核心在于對垃圾進行準確分類判別。
給垃圾分類機器配備視覺傳感器能夠對垃圾進行捕捉,根據后臺系統提前設計好的一套算法和模型,就可以對所投入垃圾進行識別和分類,根據所確定類別開合相關垃圾桶,以此來賦予垃圾桶智能化和機械化的有機統一,達到提升工作效率的目的,并且實時的識別控制垃圾桶開合,能夠一改之前機器的盲動性從而減少耗能。系統利用視覺識別技術對垃圾進行圖像處理,對于不同類別的垃圾制定不同流向,最終實現整個垃圾智能化分類的過程。系統流程圖如圖1。

圖1:系統流程圖
機器學習的流程(如圖2)依次為;數據收集、數據清洗、數據標注、數據增強、模型設計、模型訓練、模型評估。首先,通過開啟攝像頭對當前讀取的圖片進行保存以實現數據收集。在數據的預處理階段對圖片進行掩膜、高斯濾波、重新設置大小、轉換顏色空間的處理。去除照片中拍攝不清楚無法識別出來的部分以實現數據清洗。然后對其進行人工標注處理以實現數據標注。完成標記之后就交給卷積神經網絡進行學習,可以添加多幾個隱藏層來增加學習的準確度。可以通過一張圖片,獲取出來很多不同角度的圖片,實現模型增強以防止學習過擬合。在模型設計階段,標注和模型設計可以放在一起,這樣就只需要保存一個訓練好之后的模型。學習好后進行模型的保存,這樣就不用每次都去訓練,直接加載訓練模型文件即可。并對模型進行預測。最后進行模型評估。對于不同類型的數據,判斷其正確率的方式都是不一樣的。包括以下幾種情況:TRUE POSITIVE:預測正確,實際也正;TRUE NEGATIVE:預測正確,實際也正確;FALSE POSITIVE:預測錯誤,實際錯誤;FALSE NEGATIVE;預測錯誤,實際錯誤。

圖2:系統軟件流程圖
垃圾所在環境相對復雜,容易因為一些陰影而造成圖像檢測異常,通過提取感興趣ROI 和灰度均值計算并且灰度變換可以將原來弱光環境變亮。為了降低像素值,減少計算量,將獲取到的圖片讀取進來并且進行降采樣獲得圖像金字塔部分,進行傳統的檢測操作,這樣不斷的循環直到對比處理到最后一張圖像。
針對垃圾我們需要將顏色、大小、形狀、狀態等等諸多因素設計進入系統參數,要獲取足夠多的圖像數據來制作訓練數據集,該數據集也是設計模型的原始數據。針對垃圾形態和體積大小兩種主要因素進行采集,對多種生活當中常見的垃圾在不同生活場景之下的樣本圖片進行采集,并且利用 python 批量采集方式抓取,自定義搜索詞,同一類別的圖片名稱的前幾個是一樣的,后面是按順序遞增,全部圖片在一個文件夾下,并建立txt 文檔記錄全部的圖片。
僅靠采集數據對于系統模型進行訓練是遠遠不夠的,我們要利用 Keras 提供的圖像數據增強工具 ImageDataGenerator 對所采集的樣本數據及規模進行擴充,如此可以增強對于系統訓練的強度,并且有效的將數據集進行擴大,將我們所建立的數據模型的泛化能力提升。最后將所獲得的圖片按照7:2:1 的比例進行初步的劃分,并且以此作為訓練集對系統進行驗證和測試,在系統完善的情況之下最終可以實現一個類別的垃圾建立一個對應的文件夾。另外通過增強后的圖片數據信息需要用 LabelImg 工具進行標注,將真實垃圾物體的矩形區域的坐標進行標注,生成并保存了對應圖片中垃圾的坐標信息圖片完成分類后,將數據傳輸給模型以實現圖像處理物品標定,模型判別為哪種型的垃圾并定位其所在的位置,打開相應垃圾回收通道,從而完成垃圾分類。
針對日常垃圾識別分類選擇合適的算法對模型進行訓練,主要從識別的速度、精確度兩個方面綜合考慮來選擇合適的網絡模型。
系統采用YOLOv3 算法,是一種one‐stage 算法,該算法是應用于回歸思想的基礎算法,算法過程是對于圖片上的不同位置進行均勻且密集的采樣,整個采樣過程當中的尺度和長寬比是不限制的,可以采用不同的尺度進行采樣,采樣所獲得的樣本通過卷積神經網絡提取特征,之后便可一步到位的進行分類和回歸。整個過程加快了算法速度。YOLO 目標檢測原理:
(1)邊界框:在找到的物體周圍畫一個框,以可視化的形式展現出定位的物體。繪制邊界框有兩種形式:以左上和右下的坐標點作為定位,在定位的物體周圍畫出來框;只以左上的坐標點作為定位,得到能覆蓋物體的寬度和高度,畫出框。在數據集中會給出物體實際的真實框數據。作用是用預測框與真實框進行比對,查看誤差的大小。
(2)交并比:真實框和預測框之間會產生一個比值,而這個比值我們通常稱之為“交并比”,而數值上越接近于1 就說明預測框的效果越好,越與真實框重合。
使用 YOLO v3 的識別流程是,首先是加載數據集,并且找到在數據集中所有被標注為的數據,根據迭代關系找到所有為的數據。再創建兩個函數,分別來處理為和不為的數據。具體操作如下:
(1)把讀取輸入圖片數據自適應調整大小,然后將圖片分網絡單元格,之后進入卷積層不斷地提取特征;
(2)判斷某個網絡單元格是否對目標負責,即先預測是否這個網絡單元格存在目標的中心,通常該過程需有五個必要的參數,歸一化后的 X 坐標值 x,Y 坐標值 y,目標框的寬度 w,高度 h,置信值;
(3)結合置信公式,標出候選框最后采用非極大抑制等算法提煉出高精確度的目標框。
識別模塊作為數據處理單元,對看到的信號進行處理后,把結果發給系統,再根據上報的結果做進一步處理。其中,系統部分的代碼已經寫好,用戶不需要做任何更改,因為這部分代碼不會因為環境的改變而改變。而識別模塊則需要重新學習,因為每個不同的環境,其背景都會有些不同,需要識別的物體也會有所不同。圖像分類時考慮像素與它們附近的其他像素之間的關系,對鄰域的梯度進行分析以提取整個圖像的特征。
系統硬件流程圖如圖3。

圖3:系統硬件流程圖
該智能垃圾垃圾箱的硬件設計是利用 STM32 單片機、舵機、以及相應的供電模塊和設備實現。該智能分類垃圾箱的供電電源是通過 220V 家用電,分別通過穩壓模塊分別穩壓至 12V、6V,用于給舵機、單片機、等用電硬件供電。制作過程中因過多電源同時供電,導致工作時電壓不穩設備不能正常工作,因此該硬件電路采用了多穩壓單獨供電的方法,保證各個硬件能夠在額定電壓下穩定工作。系統將攝像頭檢測模塊采集到的圖片信息發給STM32F103RCT6 進行分析處理,根據處理結果,通過舵機驅動模塊對垃圾桶的開閉進行控,將垃圾桶運行后的處理結果檢測送給中央處理單元實現閉環反饋控制,調試模塊方便查看部分參數和變量。利用電源模塊和電源管理實現不同工作電壓的模塊正常工作。
分辨率是攝像頭設備的重要參數,通常按照一定的分辨率對圖像進行采集,一般使用的是隔行掃描的方式,將被采集圖像細分為一個個的小點進行采集,當某一小點被攝像頭所采集到時,圖像傳感芯片就會將該點的圖像灰度數據進行采集,同時將采集到的數據和圖像灰度所對應的電壓值進行對比和轉化,將光學信號轉化為電信號,電信號可以通過視頻信號端進行輸出。系統的識別率受到不同場景下光線明暗的影響。LED 燈本身是具備發熱少、照明均勻的特性的,并且因其響應快可以很好的保持整個拍攝環境及拍攝過程的及時性,所以本系統選擇在攝像頭上加上LED 補光燈,保證光照相同,讓系統更加穩定。為了提高模型的泛化性,在訓練過程中加入了多種數據增強方式,分別對數據集中的圖像進行隨機剪裁、以一定的概率對圖像進行隨機垂直和水平翻轉以及以一定的概率對圖像進行隨機像素內容變換和對圖像進行標準化等操作。
綜上所述,整個系統在運行過程當中的圖像采集、處理、分類識別過程中所涉及到的主要元器件都有詳細介紹,當通過上述過程完成對于垃圾的種類識別之后,就是通過與之匹配的機械結構來對垃圾分類投入的機械過程進行操作。本設計研究選取舵機負責垃圾桶桶蓋開和關的過程。依據實驗研究要求,本項目設計垃圾桶打開的角度為90 度。為了實現舵機輸出軸轉角為90 度,需要給舵機信號線一個周期為20ms 的脈沖,脈寬為2.5ms。依據實驗研究要求,本次選擇舵機MG995,其是金屬外殼,具有良好的散熱能力;另外其具有 13KG 的超大扭力,能實現180 度大角度轉動,滿足實驗所需,控制STM32 產生PWM 就可以實現對該舵機的控制。
受限于應用推廣的成本和場景,視覺識別在垃圾分類系統中僅作為輔助,只有實現整個系統的優化提升才能發揮更大作用。目前該系統主要用于宣講,雖暫時無法投入到實際生活中,但是隨著長期的數據收集,數據越豐富,識別的精準度就越高,會有更大的實際應用的空間。