姚展YAO Zhan;郗艷華XI Yan-hua
(咸陽(yáng)師范學(xué)院,咸陽(yáng) 712000)
隨著國(guó)家的經(jīng)濟(jì)快速發(fā)展,而且城市化進(jìn)程加速,“垃圾圍城”成了日益突出的現(xiàn)象,垃圾所含有有害物質(zhì),會(huì)直接破壞當(dāng)?shù)氐沫h(huán)境。垃圾被分類(lèi)后,被送到相應(yīng)的垃圾處理廠,以便進(jìn)一步的處理[1]。這樣可以節(jié)省土地,還可以實(shí)現(xiàn)對(duì)廢舊資源的進(jìn)一步應(yīng)用。顯然,垃圾分類(lèi)處理可以使得社會(huì)、經(jīng)濟(jì)、生態(tài)三方面獲得相應(yīng)的效益。研究一款智能垃圾分類(lèi)系統(tǒng)有一定的社會(huì)價(jià)值。
當(dāng)前智能垃圾分類(lèi)箱按照不同產(chǎn)品的類(lèi)型[2,3],可分為如下幾個(gè)類(lèi)別:視頻識(shí)別垃圾、二維碼識(shí)別垃圾、其他。
Intuitive AI公司設(shè)計(jì)了一款名叫Oscar的垃圾分類(lèi)系統(tǒng)。它的基本運(yùn)轉(zhuǎn)方式是:利用計(jì)算機(jī)視覺(jué)系統(tǒng)對(duì)垃圾進(jìn)行分類(lèi),該系統(tǒng)通過(guò)成千上萬(wàn)的垃圾圖片分析學(xué)習(xí),已經(jīng)可以將垃圾分成數(shù)百個(gè)類(lèi)別,而且仍然接受訓(xùn)練,從部分可見(jiàn)的視覺(jué)線(xiàn)索識(shí)別垃圾,進(jìn)而進(jìn)行分類(lèi)。
深圳市德立信環(huán)境工程有限公司則更加專(zhuān)注于運(yùn)用人工智能、云端大數(shù)據(jù)平臺(tái)的研究[4],經(jīng)過(guò)其測(cè)試與校準(zhǔn)后,并搭載百度AI人臉識(shí)別系統(tǒng)的德立信智能垃圾分類(lèi)設(shè)備不需要復(fù)雜的手機(jī)掃碼、驗(yàn)證碼、微信等傳統(tǒng)登陸模式登陸,只需通過(guò)設(shè)備屏幕的人臉設(shè)別,即可完成登錄、投放等操作
宿遷皓玗交通設(shè)施有限公司的智能垃圾箱主要功能有垃圾自動(dòng)稱(chēng)重、自動(dòng)累計(jì)積分、掃碼、刷卡、人臉識(shí)別、電動(dòng)開(kāi)門(mén)、分類(lèi)語(yǔ)音提示、垃圾自動(dòng)稱(chēng)重、GPS定位、滿(mǎn)桶檢測(cè)報(bào)警等。
國(guó)內(nèi)的眾多垃圾分類(lèi)箱,雖然應(yīng)用范圍廣泛,設(shè)計(jì)也兼具很多新意,但是一定程度上仍然是人為參與操作,尚未實(shí)現(xiàn)解決垃圾的智能分類(lèi)。
本設(shè)計(jì)的智能垃圾分類(lèi)系統(tǒng)需要實(shí)現(xiàn)的功能是對(duì)所投入的垃圾進(jìn)行識(shí)別分類(lèi),進(jìn)而投入所屬箱內(nèi),由于本設(shè)計(jì)是對(duì)垃圾進(jìn)行分類(lèi),因此需要采集所投入箱中的物品,故而需要有輸入模塊;為了更好的對(duì)其所投入箱中的物品進(jìn)行進(jìn)一步的分析、識(shí)別、檢測(cè)其主要參數(shù),因此需要數(shù)據(jù)處理模塊;除此之外,還應(yīng)該專(zhuān)門(mén)有一個(gè)負(fù)責(zé)對(duì)其進(jìn)行最終分類(lèi),并把它放入指定目標(biāo)垃圾箱中的裝置,因此系統(tǒng)需要一個(gè)輸出模塊以專(zhuān)門(mén)負(fù)責(zé)傳送分類(lèi);為了滿(mǎn)足以上所有要求,系統(tǒng)還需要一個(gè)主控模塊來(lái)對(duì)其他模塊進(jìn)行管理及協(xié)調(diào)功能模塊間的工作。系統(tǒng)框圖如圖1所示。
對(duì)于以單片機(jī)為核心控制芯片的垃圾分離系統(tǒng),其基本目標(biāo)是對(duì)于所驅(qū)動(dòng)的攝像頭進(jìn)行拍攝所取得的圖片信息傳送給數(shù)據(jù)處理芯片進(jìn)行處理。需要有對(duì)投入物品進(jìn)行實(shí)時(shí)拍攝的輸入電路、可以處理圖片信息的數(shù)據(jù)處理電路、以及最終實(shí)現(xiàn)分類(lèi)的輸出電路。
2.1.1 數(shù)據(jù)處理電路
數(shù)據(jù)處理電路主要采用的是ARM芯片作為數(shù)據(jù)處理芯片,將ARM芯片的第40引腳片選引腳端口接入主控芯片的P3.7讀信號(hào)引腳端口進(jìn)行數(shù)據(jù)交換與傳送,當(dāng)改端口輸出為高電平時(shí),則選中改芯片,由P1.0~P1.7端口傳送數(shù)據(jù)。
2.1.2 顯示電路
顯示電路主要是由LCD1602顯示屏和10k排阻構(gòu)成,顯示器的第1引腳VSS接入5V電源,使能端置為高電平,將讀寫(xiě)引腳與主控芯片的第16引腳相連接,進(jìn)行讀寫(xiě)輸入控制以顯示目標(biāo)參數(shù),并將D0~D7的8個(gè)數(shù)據(jù)引腳端口經(jīng)由10k歐上拉電阻連接至主控芯片引腳的P2.0~P2.7端口,以進(jìn)行數(shù)據(jù)傳送。電路如圖2所示。
輸入模塊中需要有程序支持,其中的圖像拍攝需要對(duì)攝像頭進(jìn)行初始化,故軟件設(shè)計(jì)中需要有初始化程序;主控模塊需要有程序?qū)φ麄€(gè)系統(tǒng)進(jìn)行控制以管理各個(gè)模塊,因此軟件設(shè)計(jì)中需要有主控程序;數(shù)據(jù)處理芯片中需要對(duì)數(shù)據(jù)進(jìn)行處理,因此數(shù)據(jù)處理芯片中需要有數(shù)據(jù)處理程序;輸出模塊要對(duì)垃圾進(jìn)行分類(lèi)是對(duì)分析結(jié)果實(shí)現(xiàn),因此軟件設(shè)計(jì)中需要有輸出程序段。
2.2.1 初始化子程序
本設(shè)計(jì)采用的是OV7725攝像頭作為該系統(tǒng)的輸入模塊,主要功能是對(duì)各數(shù)據(jù)初始化;各個(gè)接口初始化;攝像頭初始化;作用是對(duì)所放入的物品進(jìn)行拍照取樣,因此需要對(duì)其進(jìn)行程序編寫(xiě)。首先對(duì)攝像頭OV7725進(jìn)行初始化,其次是配置其驅(qū)動(dòng)程序,還應(yīng)該將重量傳感器、溫度傳感器等一系列傳感器設(shè)置為初始狀態(tài),最后在接受到單片機(jī)的重量傳感信息后進(jìn)行接受并傳輸數(shù)據(jù)。該程序的編寫(xiě)核心部分是攝像頭及其一系列傳感器的初始化以及攝像頭的驅(qū)動(dòng)程序的配置。
2.2.2 輸入子程序
當(dāng)OV7725攝像頭設(shè)置完成后,應(yīng)該調(diào)用主程序進(jìn)行掃描判斷是否有物品投入垃圾箱內(nèi),如果有,則啟用攝像頭進(jìn)行拍照,并將拍照所得結(jié)果傳輸給主控芯片,并由其傳送給數(shù)據(jù)處理芯片,以完成下一步的分析。
如果由重量傳感器檢測(cè)所得的數(shù)值不為0的時(shí)候,則啟動(dòng)連接在P0.0引腳的攝像頭,進(jìn)行對(duì)物品攝像,并將所得數(shù)據(jù)暫時(shí)保存在message中,進(jìn)而將message通過(guò)攝像頭的第11引腳由P0.1引腳口傳送回主控芯片。其中核心語(yǔ)句如下所示:
2.2.3 數(shù)據(jù)處理子程序
當(dāng)由主控芯片傳送過(guò)來(lái)所捕獲的物品圖像時(shí),數(shù)據(jù)處理芯片開(kāi)始對(duì)其信號(hào)進(jìn)行進(jìn)一步處理,圖像的彩色邊緣檢測(cè),圖像的分割,圖像的色彩特征及其形狀特征提取,圖像的分類(lèi)識(shí)別,可以使得機(jī)器具有一定的視覺(jué)功能,能夠認(rèn)識(shí)“記憶”中的水果。
①邊緣檢測(cè)。邊緣是圖像的一個(gè)基本特征,攜帶了圖像中的大量信息,邊緣檢測(cè)不僅能得到關(guān)于邊界的有用的結(jié)構(gòu)信息,而且還能極大地減少要處理的數(shù)據(jù),很多圖像處理和識(shí)別算法都以邊緣檢測(cè)為重要基礎(chǔ)。本設(shè)計(jì)采用的算子是索貝爾(Sobel)算子它是效果最好的一種,可以直接應(yīng)用于彩色圖像的各個(gè)顏色分量進(jìn)行檢測(cè),可分別對(duì)紅,綠,藍(lán)三個(gè)顏色通道(或其他顏色空間分量)執(zhí)行邊緣檢測(cè),最后的輸出是這三幅邊緣圖像的合成,其結(jié)構(gòu)如圖3所示。
②數(shù)學(xué)形態(tài)處理。圖像經(jīng)過(guò)邊緣檢測(cè)后,所獲得的邊緣既不是很連續(xù)也不是很光滑,而且在高細(xì)節(jié)區(qū)存在瑣細(xì)邊緣,難以形成一個(gè)大區(qū)域,因此需要進(jìn)行形態(tài)的處理,在本設(shè)計(jì)中構(gòu)造了邊緣元素進(jìn)行膨脹處理,以使得這些噪點(diǎn)消失,為此,在0°以及90°的方向上分別構(gòu)造。
Se0為在水平方向上的構(gòu)造函數(shù),Se90為在垂直方向上所構(gòu)造的膨脹處理函數(shù)。分別在水平和垂直方向上構(gòu)造函數(shù)并進(jìn)行處理,可對(duì)圖像有完整的表述。核心語(yǔ)句代碼如下所示:
③填充處理。在數(shù)學(xué)形態(tài)處理完成后,圖像有了完整而又連續(xù)的邊緣,得到了很好的描述,但是其內(nèi)部還依然存在著許多孔洞,可以通過(guò)填充操作來(lái)使這些空洞消失,以便完成后續(xù)操作。
本設(shè)計(jì)中將已經(jīng)進(jìn)行數(shù)學(xué)形態(tài)處理的BW2圖像采用函數(shù)imfill進(jìn)行孔洞填充,其中,holes為填充參數(shù)內(nèi)容,這種格式的調(diào)用可以填充所有的空洞區(qū)域,然后將填充的結(jié)果返還給BW3,并將其顯示。其核心代碼段如下所示:
BW3=imfill(BW2,'holes');
figure,imshow(BW3);title('填充處理')
④標(biāo)記提取。在填充處理后,為了使得更加清楚的觀察到分割所得到的結(jié)果,則對(duì)其上面的連通區(qū)域進(jìn)行標(biāo)記,將不同的區(qū)域用不同的顏色表示,并且統(tǒng)計(jì)上一步標(biāo)記圖像中的連通域的面積分布。
接下來(lái)則就是找到最大連通區(qū)域的標(biāo)號(hào),并將標(biāo)記為最大的連通區(qū)域置為0。在黑白二值圖像中,可將連續(xù)且值為1的像素集合提取出來(lái),由于上述操作已經(jīng)可以將不同區(qū)域以不同標(biāo)記,則可以得到不同坐標(biāo),進(jìn)而提取出指定的連續(xù)區(qū)域范圍,因此,可以選擇指定的對(duì)象。核心代碼如下所示:
BW3(find(L==ind))=0;%將其區(qū)域置為0
⑤特征提取。所獲得圖像在經(jīng)過(guò)邊緣提取和圖像分割操作后,就會(huì)得到邊緣和區(qū)域,也就是獲得了物體的形狀??梢杂脕?lái)表示形狀的特征包括幾何特征和矩特征,在這里統(tǒng)計(jì)了諸多變量,相關(guān)數(shù)據(jù)儲(chǔ)存在states表格中,所統(tǒng)計(jì)的數(shù)據(jù)包括面積、重心、偏心率、周長(zhǎng)、細(xì)度比例等其核心代碼語(yǔ)句如下所示:
主程序是本系統(tǒng)實(shí)現(xiàn)設(shè)計(jì)目標(biāo)的核心模塊,當(dāng)程序開(kāi)始運(yùn)行后,首先對(duì)于相關(guān)設(shè)備進(jìn)行初始化,設(shè)置攝像頭、重量傳感器、溫度傳感器等一系列傳感器為初始狀態(tài),對(duì)所放入的物品進(jìn)行拍照取樣,其次還將由重量感應(yīng)器對(duì)目標(biāo)物品進(jìn)行稱(chēng)重,以便于輔助分類(lèi),以判斷其分類(lèi)桶中是否被裝滿(mǎn)。由濕度傳感器則用于判斷應(yīng)為干垃圾還是濕垃圾,進(jìn)而進(jìn)行精確分類(lèi)。最后由溫度傳感器是以用于當(dāng)垃圾投入箱中時(shí),判斷其所放入物品的核心溫度以便于分類(lèi)。
當(dāng)攝像頭采集到數(shù)據(jù)后,數(shù)據(jù)處理芯片開(kāi)始對(duì)其信號(hào)進(jìn)行進(jìn)一步處理,圖像的彩色邊緣檢測(cè),圖像的分割,圖像的色彩特征及其形狀特征提取,圖像的分類(lèi)識(shí)別,可以使得機(jī)器具有一定的視覺(jué)功能,能夠認(rèn)識(shí)“記憶”中的水果。所獲得圖像在經(jīng)過(guò)邊緣提取和圖像分割操作后,就會(huì)得到邊緣和區(qū)域,也就是獲得了物體的形狀。用來(lái)表示形狀的特征包括幾何特征和矩特征等相關(guān)數(shù)據(jù),與儲(chǔ)存在states表格中,所統(tǒng)計(jì)的數(shù)據(jù)包括面積、重心、偏心率、周長(zhǎng)、細(xì)度比例等標(biāo)準(zhǔn)信息進(jìn)行對(duì)比,判斷出物品是否具有回收價(jià)值,如果物品具備回收價(jià)值,則由相應(yīng)部件完成回收,進(jìn)行二次利用。如果物品不具備回收價(jià)值,則由相應(yīng)部件完成分類(lèi)處理。
主程序的主要功能是傳送數(shù)據(jù)項(xiàng);控制整個(gè)系統(tǒng)邏輯運(yùn)轉(zhuǎn);并完成最后分類(lèi)。如圖4所示。
當(dāng)系統(tǒng)處于工作狀態(tài)時(shí),顯示模塊上的顯示屏處于點(diǎn)亮狀態(tài);第一行所顯示SE為所放入物品的所屬種類(lèi),應(yīng)該將其放入那一塊垃圾分類(lèi)箱中,第二行顯示的RE為該物品的可回收狀態(tài)即放入物品的損壞程度,依此來(lái)進(jìn)行判斷是否可以對(duì)其進(jìn)行二次的回收利用,此處由于屏幕顯示器的大小限制,因此只顯示該兩個(gè)部分。
當(dāng)腐爛程度高于所設(shè)標(biāo)準(zhǔn)閾值時(shí),則會(huì)對(duì)其進(jìn)行丟棄處理,如圖5所示。
當(dāng)其損壞程度較低時(shí),則會(huì)將其進(jìn)行回收,如圖6所示。
垃圾分類(lèi)和人們的生活息息相關(guān),不管是在日常生活中還是工業(yè)、環(huán)境、生態(tài)等領(lǐng)域都需要對(duì)垃圾分類(lèi)進(jìn)行控制,因此,對(duì)于智能垃圾分類(lèi)方面的研究具有一定的價(jià)值。
本設(shè)計(jì)采用以AT89C51單片機(jī)為主控芯片,以ARM為數(shù)字處理芯片,可以實(shí)現(xiàn)對(duì)垃圾的智能識(shí)別以及分類(lèi)。經(jīng)實(shí)驗(yàn)證明,本系統(tǒng)具有垃圾智能識(shí)別以及分類(lèi)功能,對(duì)所投入的物品進(jìn)行智能識(shí)別并完成最終分類(lèi)。本系統(tǒng)可以廣泛適用于家庭、常規(guī)的工作場(chǎng)合以及儲(chǔ)存庫(kù)房等地方。