石則斌, 羅雪峰, 王 隱, 聞春敖, 蔡佩君
(浙江大學(xué)光電科學(xué)與工程學(xué)院,杭州 310027)
垃圾分類是垃圾處理流程中的基礎(chǔ)環(huán)節(jié),一直以來是各級(jí)政府倡導(dǎo)與推行的重要工作。由于配套設(shè)施不完善,人們垃圾分類意識(shí)與能力不強(qiáng),該項(xiàng)工作成效并不理想,收集到的垃圾多為混合垃圾,后續(xù)仍需人工進(jìn)行分類,增加了處理成本。將后續(xù)分揀工作交由機(jī)器完成[1],不僅能降低成本,提高工作效率,也能避免工人長期與垃圾接觸所引發(fā)的健康問題。
目前常見的智能車多基于機(jī)器人操作系統(tǒng)(Robot Operating System,ROS),使用激光雷達(dá)進(jìn)行定位導(dǎo)航[2-3],該類車價(jià)格昂貴,不適合用于垃圾分揀。為此,設(shè)計(jì)一種智能垃圾分揀車,基于樹莓派平臺(tái),利用單目廣角攝像頭、傾斜角度傳感器、超聲波測距傳感器等,通過Yolo-Fastest目標(biāo)檢測算法,實(shí)現(xiàn)自主路徑規(guī)劃、垃圾拾取分類、垃圾定點(diǎn)運(yùn)放的功能[4-5],具有較高的性價(jià)比,對智能垃圾分揀做了一定的探索。
卷積神經(jīng)網(wǎng)絡(luò)是一種前饋型神經(jīng)網(wǎng)絡(luò),包括輸入層、卷積層、池化層、全連接層以及輸出層,各層的神經(jīng)元都只與上一層相連[6]。本項(xiàng)目采用的Yolo-fastest算法基于輕量級(jí)神經(jīng)網(wǎng)絡(luò)EfficientNet-Lite[7-9],通過量化和算子優(yōu)化,使得算法模型體積更小,運(yùn)算速度更快。
Yolo-Fastest是Yolo系列中最輕、最快的通用目標(biāo)檢測算法,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。與傳統(tǒng)Yolo 網(wǎng)絡(luò)一樣,Yolo-Fastest 網(wǎng)絡(luò)由主干網(wǎng)絡(luò)和深層網(wǎng)絡(luò)組成,主干網(wǎng)絡(luò)用于提取圖像特征,深層網(wǎng)絡(luò)用于提取目標(biāo)物的邊界框。與傳統(tǒng)Yolo不同,Yolo-Fastest的主干網(wǎng)只有27 層,其中第1 層為標(biāo)準(zhǔn)卷積層,其余均為深度可分離卷積層,大大減少了模型的參數(shù)量和運(yùn)算量[10-11]。
圖1 Yolo-Fastest算法網(wǎng)絡(luò)結(jié)構(gòu)
Yolo-Fastest卷積神經(jīng)網(wǎng)絡(luò)將輸入的圖片分割成S×S個(gè)網(wǎng)格,每個(gè)單元格負(fù)責(zé)檢測那些中心點(diǎn)落在該格子內(nèi)的目標(biāo),通過卷積網(wǎng)絡(luò)提取特征,使用全連接層得到預(yù)測值。利用神經(jīng)網(wǎng)絡(luò),可得到檢測目標(biāo)的中心位置(x,y),并根據(jù)損失函數(shù)Loss 計(jì)算預(yù)測結(jié)果的置信度。
超聲波測距與雷達(dá)原理一樣,利用超聲波在空氣中的傳播速度已知,測量聲波從發(fā)射到遇到障礙物反射回來的時(shí)間,根據(jù)發(fā)射與接收的時(shí)間差計(jì)算出發(fā)射點(diǎn)到障礙物的實(shí)際距離。超聲波在空氣中的傳播速度為340 m/s,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離:
這就是所謂的時(shí)間差測距法。
以簡單可靠、經(jīng)濟(jì)實(shí)用為設(shè)計(jì)理念設(shè)計(jì)的垃圾分揀車整體結(jié)構(gòu)如圖2 所示。圖2(a)是垃圾分揀車的系統(tǒng)框圖,分揀車以樹莓派4B[12]為開發(fā)平臺(tái),通過單目廣角攝像頭獲取的圖像,作為主要信息;超聲波測距傳感器、傾斜角度傳感器作為輔助信息來源,通過算法處理,輸出信號(hào)控制電動(dòng)機(jī)和舵機(jī),控制分揀車的運(yùn)動(dòng)和垃圾抓取。圖2(b)是分揀車的實(shí)物圖,長35 cm、寬25 cm、高50 cm。
圖2 垃圾分揀車整體結(jié)構(gòu)
采用4 GBRAM 樹莓派4B 作為主控制板。樹莓派4B 是一款基于Cortex-A72 架構(gòu)的微型計(jì)算機(jī)板卡,搭載了4 核BCM2711 處理器,主頻達(dá)1.5 GH,具有強(qiáng)大的運(yùn)算性能,可作為低成本開發(fā)平臺(tái),能較好地滿足分揀車的運(yùn)算需求,同時(shí)也符合簡單可靠、經(jīng)濟(jì)實(shí)用的設(shè)計(jì)理念。
使用135°廣角無畸變攝像頭。該攝像頭采用OV2710 傳感器,具有最高200 萬像素,支持手動(dòng)調(diào)焦和自動(dòng)曝光,通過USB接口可免驅(qū)動(dòng)與樹莓派主板相連。使用時(shí)獲取的圖像分辨率設(shè)置為640 ×480,能比較穩(wěn)定地獲取較大視場范圍的清晰圖像,使得分揀車一次性獲得盡可能多的信息,提高分揀效率。
使用超聲波傳感器獲取距離信息,作為分揀車運(yùn)動(dòng)控制的輔助信息來源,進(jìn)一步提高分揀車運(yùn)動(dòng)的準(zhǔn)確性。該傳感器包括超聲波發(fā)射器、接收器與控制電路,采用I/O口TRIG觸發(fā),可提供2 ~400 cm的非接觸式距離,測距準(zhǔn)確度可達(dá)3 mm。
分揀車運(yùn)動(dòng)過程中因?yàn)檫\(yùn)動(dòng)累計(jì)誤差,產(chǎn)生角度偏移,導(dǎo)致無法準(zhǔn)確駛向垃圾堆放點(diǎn),引入傾斜角度傳感器,能在任意位置得到準(zhǔn)確的角度,通過與初始角度比較,對分揀車姿態(tài)做出修正,保證分揀車沿直線行駛。該傳感器工作電壓在3 ~5 V,測量范圍-180° ~180°,具有1°的測量準(zhǔn)確度和0.01°的分辨率。
分揀車針對室內(nèi)等較平坦地面,采用抓取框的抓取方式。圖3 所示為分揀車的抓取框,由亞克力板制成,其中前臂、左右臂分別與舵機(jī)相連,通過運(yùn)動(dòng)抓取算法控制,可實(shí)現(xiàn)某一臂的單獨(dú)抬放和組合抬放,配合分揀車的前移和左右移,實(shí)現(xiàn)對不同位置垃圾的快速抓取。在抓取框與地面接觸一側(cè)裝有毛刷,避免電池、果皮等較小垃圾從分揀框下方漏過,同時(shí)減小分揀框與地面的摩擦。
圖3 垃圾分揀車抓取框
分揀車使用64 Bit樹莓派操作系統(tǒng),使用C ++語言進(jìn)行算法開發(fā)編寫。軟件設(shè)計(jì)包括圖像識(shí)別和運(yùn)動(dòng)抓取算法兩部分,圖像識(shí)別采用目標(biāo)檢測算法Yolo-Fastest,在樹莓派上能實(shí)現(xiàn)15 幀的較高幀數(shù)視頻的目標(biāo)檢測;運(yùn)動(dòng)抓取采用一種反饋控制算法,能夠較好地配合Yolo-Fastest算法做出快速的運(yùn)動(dòng)和抓取。
實(shí)驗(yàn)選取一次性紙杯、橘子皮、礦泉水瓶、七號(hào)電池、A4 紙團(tuán),按分類標(biāo)準(zhǔn)可分為可回收垃圾、廚余垃圾、有害垃圾和其他垃圾。為得到較好的訓(xùn)練結(jié)果,用于訓(xùn)練和測試模型的數(shù)據(jù)集均由分揀車攝像頭拍攝制作,分別從不同的角度和背景共拍攝了2 000 張照片,根據(jù)后續(xù)訓(xùn)練效果添加特定背景和角度下照片300張,同一照片中同時(shí)存在多個(gè)檢測目標(biāo),盡可能保證各類目標(biāo)總數(shù)相近。通過人工方式對數(shù)據(jù)集標(biāo)簽進(jìn)行分類,將這些數(shù)據(jù)集按照9∶1的比例分為訓(xùn)練集和測試集在電腦上用于神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)Loss值與重復(fù)次數(shù)的關(guān)系如圖4所示,Loss值越低,模型對測試集中目標(biāo)的檢測準(zhǔn)確度越高,可見,當(dāng)重復(fù)次數(shù)達(dá)到約6 000 次時(shí),Loss 降到1%以下且變化逐漸趨于平穩(wěn)。分別選取重復(fù)次數(shù)為7 000、8 000、9 000、10 000 和12 000 的模型作為待選定模型,分別部署在樹莓派后,通過實(shí)際的圖像識(shí)別效果,從中選取最優(yōu)的模型。
圖4 訓(xùn)練中Loss與重復(fù)次數(shù)關(guān)系
將訓(xùn)練獲得的模型文件轉(zhuǎn)換移植到樹莓派的NCNN框架中進(jìn)行測試,通過OpenCV 可實(shí)時(shí)預(yù)覽識(shí)別結(jié)果。通過比較,綜合考慮圖像識(shí)別的精度和速度,最終選擇重復(fù)次數(shù)為8 000 次的模型為最終模型。實(shí)驗(yàn)中,靜止情況下,分揀車對2 m以內(nèi)的目標(biāo)可以實(shí)現(xiàn)95%以上的識(shí)別率,對4 m處的目標(biāo)仍有60%左右的識(shí)別率。
根據(jù)圖像識(shí)別算法計(jì)算得到的目標(biāo)坐標(biāo)信息以及其他傳感器獲得的距離、角度等信息,算法可判斷目標(biāo)相對于分揀車的位置,產(chǎn)生指令控制分揀車運(yùn)動(dòng)和垃圾抓取動(dòng)作。
垃圾分揀流程如圖5 所示,分揀車啟動(dòng),記錄自身初始姿態(tài),獲取圖像并識(shí)別。根據(jù)識(shí)別結(jié)果,未檢測到垃圾時(shí),分揀車會(huì)按一定的路線巡視;當(dāng)檢測到垃圾后,分揀車會(huì)向最近的垃圾移動(dòng)并完成抓取。根據(jù)抓取垃圾的種類,分揀車將前往相應(yīng)的垃圾堆放點(diǎn),在這一過程中,分揀車將不斷判斷視野中是否出現(xiàn)相同類別的垃圾,如果有,分揀車會(huì)繼續(xù)抓取,以提高垃圾分揀的效率;如果沒有,分揀車會(huì)將垃圾在堆放區(qū)放下,并重復(fù)上述操作開始新一輪垃圾分揀。
圖5 分揀車?yán)謷鞒?/p>
運(yùn)動(dòng)抓取算法中,核心問題是如何判斷垃圾的實(shí)際位置。為解決這一問題,采用一種反饋控制算法,通過不斷判斷垃圾與分揀車的相對位置,進(jìn)而反饋控制分揀車運(yùn)動(dòng)。目標(biāo)識(shí)別時(shí),圖像識(shí)別算法會(huì)計(jì)算得到目標(biāo)中心在整個(gè)圖像中的相對位置,該值以像素的形式輸出,由于攝像頭固定在分揀車上隨分揀車一起運(yùn)動(dòng),可以認(rèn)為所獲取圖像中,分揀車即攝像頭的位置是固定不變的,通過比較目標(biāo)中心與分揀車中心的像素,判斷目標(biāo)與分揀車的相對位置。該判斷算法與人抓取物體的方式相似,通過快速的圖像識(shí)別,將分揀車每次運(yùn)動(dòng)后新的位置進(jìn)行反饋,控制分揀車做出新的運(yùn)動(dòng),逼近目標(biāo)直至完成抓?。?3]。
垃圾實(shí)際分揀情況如圖6 所示,實(shí)驗(yàn)在3.5 m ×5.5 m的場地中進(jìn)行,對隨機(jī)擺放的10 個(gè)5 種上述垃圾進(jìn)行分類,最快可在2 min 完成分揀,平均能在2 min 40 s完成分揀,分揀正確率90%以上。圖6(a)為分揀車對場地中垃圾的識(shí)別結(jié)果,分揀車對目標(biāo)具有很好的識(shí)別效果,對視場內(nèi)的垃圾識(shí)別普遍具有0.9以上的高置信度;圖6(b)為分揀車將垃圾運(yùn)送投放至垃圾堆放點(diǎn),完成垃圾分類堆放。
圖6 垃圾實(shí)時(shí)分揀情況
分揀車通過目標(biāo)識(shí)別算法,快速準(zhǔn)確地對單目廣角攝像頭獲取的圖像進(jìn)行識(shí)別,配合超聲波測距傳感器和傾斜角度傳感器,利用麥克納姆輪移動(dòng)靈活快速的優(yōu)勢,提高分揀車的運(yùn)動(dòng)速度和靈活性[14],以較低的成本實(shí)現(xiàn)所需功能,符合簡單可靠、經(jīng)濟(jì)實(shí)用的設(shè)計(jì)理念,對垃圾自動(dòng)拾取、分類做了一定的探索研究,具有較好的應(yīng)用前景。分揀車在硬件結(jié)構(gòu)和算法上還有較大的提升空間,如使用機(jī)械爪和垃圾收集裝置,進(jìn)一步提高垃圾抓取的速度;應(yīng)用更復(fù)雜的定位算法,實(shí)現(xiàn)單目攝像頭的地圖構(gòu)建和空間定位[15-16],以適應(yīng)更復(fù)雜環(huán)境下的工作等。