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