吳嘉凱,高婕,吳昊天,顧振宇
基于谷歌TensorFlow Object Detection的“智慧”分類垃圾桶設計*
吳嘉凱,高婕,吳昊天,顧振宇
(上海對外經貿大學,上海 200336)
在生態(tài)文明建設的政策導向下,對總書記命名為“新時尚的垃圾分類”的建設進行了多方面調研,并針對“智慧”分類垃圾桶設計進行了探究?;诠雀鑄ensorFlow Object Detection進行虛擬實境的操作,為“智慧”分類垃圾桶設計提供了理論基礎和實踐經驗,提升了用戶對于“智慧”分類垃圾桶的感知與體驗,并希望能夠對今后的相關研究有參考價值。
垃圾智能分類;谷歌TensorFlow;Object Detection;python
加強垃圾綜合治理,既是貫徹習近平生態(tài)文明思想、推進上海生態(tài)文明建設的重要舉措,也是破解超大城市精細化管理世界級難題的重要環(huán)節(jié)。然而,市民垃圾分類意識及標準的普及依舊較為落后,未按標準丟棄垃圾的現象時有發(fā)生。為降低該類現象所帶來的人工分類垃圾時人力資源的消耗及減少對生態(tài)可持續(xù)發(fā)展的破壞,本小組緊隨時事熱點與政策導向,提出依據谷歌開源算法最終制成可以自行識別并對垃圾進行分類的垃圾桶,以踐行“綠色發(fā)展”的理念。
同時,當今高校越來越注重學生全方位素質教育。垃圾分類和每個人的生活息息相關,學生在學習垃圾分類的同時,自然而然可以簡化方式并推廣垃圾分類意識,從而發(fā)揚綠色環(huán)保理念。因此,通過對智能垃圾桶建設與技術的研究、學習和應用技術實踐,總結一些經驗,為之后智能垃圾桶建設與技術的研究提供一定的借鑒作用,也為高校垃圾分類建設提供參考。
2016-10,谷歌內部的物體識別系統(tǒng)達到了業(yè)內最佳水平,在COCO識別挑戰(zhàn)中名列第一。自那時起,該系統(tǒng)為大量文獻提供了參考,并被一些谷歌的產品所采用。
2017年,谷歌宣布開源其內部使用的TensorFlow Object Detection API 物體識別系統(tǒng),為機器學習社區(qū)作出貢獻,幫助打造更好的計算機視覺模型。而利用其目標檢測的概念,并利用算法在圖片中用框框標記各種各樣的目標,讓機器可以像人眼一樣迅速發(fā)現場景中物體的位置和大小,從而做出進一步判斷。對于智慧垃圾桶當中極為關鍵的一個設計環(huán)節(jié)——物體的精準識別而言,該技術能很好地提高垃圾分類的準確性,有助于提升后續(xù)相關生產鏈的可操作性,增加垃圾桶的使用功能和用戶體驗。對于垃圾分類來說,結合數字化信息技術而成的智慧垃圾桶設計,以提高識別精確度和增強用戶體驗的視角探究人機交互技術,可以使垃圾分類更加智能化。
在智能垃圾桶設計開發(fā)過程中,主要使用了谷歌TensorFlow Object Detection技術,并以OpenCV相關計算機視覺庫和python語言等作為輔助,通過訓練神經網絡完善模型,實現對物體的查找和判斷。
2.2.1 TensorFlow
TensorFlow是一個端到端開源機器學習平臺。它擁有一個包含各種工具、庫和社區(qū)資源的全面靈活生態(tài)系統(tǒng),可以讓研究人員推動機器學習領域的先進技術的發(fā)展,并讓開發(fā)者輕松地構建和部署由機器學習提供支持的應用。
TensorFlow提供多個抽象級別,開發(fā)者可以根據自己的需求選擇合適的級別,同時也可以使用高階Keras API構建和訓練模型。谷歌TensorFlow官方圖標如圖1所示。
圖1 谷歌TensorFlow官方圖標
2.2.2 神經網絡
神經網絡通過梯度下降法進行訓練。每層中的權重都以隨機值開始,并且這些權重會隨著時間的推移以迭代的方式不斷改進,使網絡更準確。使用損失函數量化網絡的不準確程度,并使用一種名為“反向傳播算法”的流程確定每個權重應該增加還是降低以減小損失。
迭代進入第一層神經網絡如圖2所示。迭代進入第層神經網絡如圖3所示。特征點分析錯誤如圖4所示。特征點分析正確如圖5所示。
圖2 迭代進入第一層神經網絡
圖3 迭代進入第n層神經網絡
圖4 特征點分析錯誤
圖5 特征點分析正確
迭代入不同的神經網絡層,計算機可以摘取目標特征點,不同的特征點導向不同的結果,經過人為標注,可以引導計算機對不同結果的特征點進行分析,最終使計算機能夠成功識別目標。
智能垃圾分類回收系統(tǒng)利用科技手段、物聯網技術,實現垃圾回收箱自動開關門、接收識別、監(jiān)測、稱重、滿溢預警、太陽能蓄電,微信掃碼,用戶身份識別等智能化功能。
智能垃圾分類回收系統(tǒng)可根據回收種類,設置多個箱體,分別回收不同的資源,如金屬、廢棄塑料、紡織物、易拉罐、塑料瓶、紙類、玻璃、有害垃圾等。
設置場地為小區(qū)、寫字樓、酒店、鬧市區(qū)??刹捎梅惮F、返積分的方式接收市民投放的廢紙、塑料、金屬、玻璃、紡織物等廢棄物,鼓勵居民積極配合,并養(yǎng)成垃圾分類及投放的習慣。對接正規(guī)環(huán)衛(wèi)公司,合理處理垃圾,整合廢品回收生態(tài)鏈,為社會的環(huán)保公益事業(yè)作出一份貢獻。
使用的操作系統(tǒng)是Windows 10 1903,CPU為Intel i5-8400,內存16 G,顯卡為Nvidia GTX1660(顯存6 G)。
針對“智慧”垃圾桶對于垃圾分類方向的需求,收集了“蘋果apple”“電池battery”“筷子chopsticks”作為模板樣本,分別對應代表濕垃圾、有害垃圾以及可回收垃圾作為試驗分類類別。分別從互聯網收集了清晰圖片各300張,即分辨率大于等于800×600,并且利用相機,拍攝共500張像素為1 920×1 080的圖片。從這1 400張照片中,以2∶8的比例,作為測試集和訓練集,即測試集280張,訓練集 1 120張。訓練所用原始圖片數據集如圖6所示。
圖6 訓練所用原始圖片數據集
本次標注所使用的軟件為labelImg(app version:1.8.1)。對每一張數據集,使用人工標注的方法,對圖片內出現的目標物體進行標注。人工標注耗時較長,但可以更為精確地對數據集進行標注,提升后期使用tensorflow建立神經網絡模型識別物體的準確性。
對圖片中的每一個目標物體進行框選,并且添加物體labels如“apple”“battery”,如圖7、圖8所示。
圖7 進行apple標注
圖8 進行battery標注
分別針對測試數據集和訓練數據集的標注結果進行歸納并轉化為csv文件,文件中包括以下這些類別:①圖片文件名Filename;②圖片寬度Width;③圖片高度Height; ④標注類別名Class;⑤橫坐標起始位置Xmin;⑥縱坐標起始位置Ymin;⑦橫坐標終止位置Xmax;⑧縱坐標終止位置Ymax。
其中Class、Xmin、Ymin、Xmax、Ymax需要通過獲取2.3步驟內標注得到的數據,經過轉化得到test.csv和train.csv兩份csv格式文件。csv文件如圖9所示。
圖9 csv文件
本次實驗所選用的神經網絡模型為tensorflow-ssd_ mobilenet_v1_coco,該模型被大量運用與圖片物體識別與檢測,可以很好地為本項目服務。
本次實驗所使用到的tensorflow是基于gpu進行運算的tensorflow-gpu。相對于基于cpu進行運算的tensorflow,tensorflow-gpu可以利用顯卡的高運算性能,更快速地完成神經網絡的訓練。
訓練重要參數設置:Batch_size為8,steps為150 000。batch_size可以理解為批處理參數,它的極限值為訓練集樣本總數。
利用tensorflow自帶的可視化tensorboard平臺,可以看到訓練過程。在訓練過程中利用以下幾種重要的參數和方法來對訓練優(yōu)良率進行評估。
3.6.1 loss函數
損失函數(loss/cost)用于描述模型預測值與真實值的差距大小。localization_loss函數如圖10所示。classification_ loss函數如圖11所示。cmd訓練中的loss值和step值如圖12所示。
圖10、圖11、圖12為當訓練到50 600 steps時的loss函數,loss函數越接近0則代表越收斂,即可支持識別率越高。Loss函數一般會隨著訓練步數的增加逐漸趨向收斂。此外,數據集的精確度以及數據集的數量都會影響到loss函數的走向。一共訓練了150 000 steps,最終loss值約為0.23。
圖10 localization_loss函數
圖11 classification_loss函數
圖12 cmd訓練中的loss值和step值
3.6.2 可視化test集測試結果
chopsticks的實際與預期檢測如圖13所示。
圖13 chopsticks的實際與預期檢測
在tensorboard中為研究提供了可視化訓練結果的參考,通過對測試集進行同步驗證,可以看到神經網絡的精確度在逐步提升。如圖13中右側為通過labelImg標注的chopsticks選框,而左側為通過神經網絡工作識別出的chopsticks區(qū)域。隨著steps的不斷增加,test集的驗證結果逐步與給出的結果相統(tǒng)一。
經過150 000 steps,訓練的神經網絡模型便可用于檢測圖片物體。經過測試,本套神經網絡識別蘋果、電池、筷子地準確率約為60%,同時對測試環(huán)境有著較為嚴苛的要求,在用于識別的圖片清晰度較高且背景單一時,識別率較高;在圖片模糊而又背景雜亂時,識別率較低,總識別率并不盡如人意。這一識別率無法保證“智慧”垃圾桶進行垃圾物體識別。同時,由于用于訓練的數據集較少,僅局限于三種物體所對應的三種分類垃圾,識別物體種類較少,無法滿足智慧垃圾桶的更高需求。
由于識別準確率較低、可識別物體種類較少,后期對神經網絡訓練過程進行了改進。通過拍攝更多更清晰的物體照片,增加了可識別物體的種類,同時提升了物體識別的準確率。為了調整神經網絡訓練參數,通過增加訓練steps到 300 000 steps甚至600 000 steps可以使loss函數更加趨向于收斂,同時更改batch_size也可以幫助模型的loss函數趨向收斂,使得模型的識別準確率提高。在硬件選擇上,選用了更為高清的攝像頭進行垃圾圖像捕捉,圖像識別背景使用單一綠色幕布。同時增加用于輔助識別的傳感器,在物理性質上對垃圾種類進行判別,如溫度傳感器、紅外傳感器等。
通過這次對智慧垃圾桶設計的建設情況與技術的調研與探究,本文總結了智慧垃圾桶設計的現狀、優(yōu)勢,并以谷歌TensorFlow Object Detection作為基礎,輔助OpenCV相關計算機視覺庫及機械相關理論,從識別精確度和用戶體驗的視角探究人機交互技術、機械操縱優(yōu)化設計,注重更自然的交互、規(guī)范性、合理性和安全性,使其具有較好的整體效果和推廣價值。在實現了智慧垃圾桶設計技術的部分構想的同時,也存在很大的改進空間,如垃圾識別準確率還不夠精準、能夠識別的物體種類有限等。能與超高清掃描系統(tǒng)或者照片縫合技術相結合,展示的效果應該會更好。所以,想要把“智慧”垃圾桶設計的各種應用技術發(fā)揮到極致,需要從技術的角度出發(fā)綜合巧妙地運用各種方法,更好地挖掘智慧垃圾桶潛在的功能,使之能為垃圾分類提供更好的幫助。
[1]王曉華.TensorFlow深度學習應用實踐[M].北京:清華大學出版社,2018.
[2]何之源.21個項目玩轉深度學習:基于TensorFlow的實踐詳解[M].北京:電子工業(yè)出版社,2018.
[3]李金洪.深度學習之TensorFlow入門、原理與進階實戰(zhàn)[M].北京:機械工業(yè)出版社,2010.
[4]章敏敏,徐和平,王曉潔,等.谷歌TensorFlow機器學習框架及應用[J].微型機與應用,2017,36(10):58-60.
[5]程嘉暉.基于深度卷積神經網絡的飛行器圖像識別算法研究[D].北京:航空航天學院,2017.
X705
A
10.15913/j.cnki.kjycx.2019.22.008
2095-6835(2019)22-0031-04
“2019年度上海大學生創(chuàng)新創(chuàng)業(yè)訓練計劃示范?!苯ㄔO經費資助
〔編輯:嚴麗琴〕