李澥 范斌年 余峻鋒 曹志賢
摘? 要:隨著社會(huì)的進(jìn)步和人們生活水平的提高,垃圾的產(chǎn)生量也隨之增加,意味著資源消耗量不斷加大,垃圾分類(lèi)刻不容緩。但垃圾分類(lèi)政策實(shí)施以來(lái),分類(lèi)效果不佳,依然存在分類(lèi)難、效率低等問(wèn)題。為此,文章提出采用計(jì)算機(jī)視覺(jué)技術(shù)、CNN卷積神經(jīng)網(wǎng)絡(luò)以及語(yǔ)音交互進(jìn)行垃圾圖像識(shí)別以實(shí)現(xiàn)垃圾分類(lèi)。使用樹(shù)莓派驅(qū)動(dòng)外接攝像頭采集垃圾圖像,上傳圖像并解析返回結(jié)果,使用STM32單片機(jī)作為底層驅(qū)動(dòng)核心板驅(qū)動(dòng)電機(jī),完成對(duì)單個(gè)目標(biāo)的分類(lèi)。
關(guān)鍵詞:樹(shù)莓派;STM32;垃圾分類(lèi);語(yǔ)音交互;圖像識(shí)別
中圖分類(lèi)號(hào):TP274;TP391.4;TN912.34 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2023)19-0032-05
Design of Multifunctional Garbage Sorting System Based on Speech Interaction and Image Recognition
LI Xie, FAN Binnian, YU Junfeng, CAO Zhixian
(Software Engineering Institute of Guangzhou, Guangzhou? 510990, China)
Abstract: With the progress of society and the improvement of people's living standards, the amount of generated garbage has also increased, which means that resource consumption is constantly increasing, and garbage classification is urgent. However, since the implementation of the garbage classification policy, the classification effect has been poor, and there are still problems such as difficulty in classification and low efficiency. Therefore, this paper proposes to use computer vision technology, CNN convolutional neural networks, and voice interaction for garbage image recognition to achieve garbage classification. Use a Raspberry Pi to drive external camera to collect garbage images, upload images, and parse the returned results. Use the STM32 Single-Chip Microcomputer as the underlying driver core board to drive the motor, completing the classification of individual targets.
Keywords: Raspberry Pi; STM32; garbage sorting; voice interaction; image recognition
0? 引? 言
垃圾分類(lèi)政策實(shí)施3年多以來(lái),主要依賴(lài)居民自主判別垃圾類(lèi)別后分類(lèi)投放和垃圾回收站人員人工分揀。目前我國(guó)居民的垃圾分類(lèi)意識(shí)還比較薄弱,僅靠居民自主識(shí)別垃圾種類(lèi)的方式達(dá)不到理想效果,錯(cuò)扔錯(cuò)分的情況屢見(jiàn)不鮮。尤其是在以年輕人為主的大城市中,進(jìn)行垃圾分類(lèi)處理的人員占比偏低,一般是對(duì)認(rèn)知內(nèi)的可回收物單獨(dú)處理,其他垃圾分類(lèi)或不分類(lèi)直接丟進(jìn)垃圾桶中,靠垃圾站工人再度進(jìn)行分類(lèi)處理。無(wú)論是居民自主分類(lèi)還是依賴(lài)?yán)竟と嗽俣确诸?lèi)的方式,都存在效率低、成本高、分類(lèi)效果不佳等問(wèn)題。因此,研發(fā)一種高效可行的垃圾分類(lèi)系統(tǒng)將是推動(dòng)垃圾分類(lèi)政策落地見(jiàn)效的催化劑。
基于以上信息,采用樹(shù)莓派作為圖像處理控制單元,以STM32單片機(jī)為控制核心單元來(lái)驅(qū)動(dòng)底層設(shè)備,設(shè)計(jì)一款能夠在短時(shí)間內(nèi)完成垃圾識(shí)別任務(wù)的多功能垃圾桶,如圖1所示。
1? 垃圾分類(lèi)系統(tǒng)設(shè)計(jì)
采用樹(shù)莓派和STM32開(kāi)發(fā)平臺(tái),通過(guò)超聲波感應(yīng)開(kāi)蓋裝置完成垃圾投放,利用攝像頭采集垃圾的圖片,通過(guò)樹(shù)莓派進(jìn)行圖像識(shí)別并返回識(shí)別結(jié)果,樹(shù)莓派對(duì)識(shí)別結(jié)果進(jìn)行分析后形成自定義協(xié)議內(nèi)容經(jīng)由串口通信發(fā)送到STM32,單片機(jī)借助信號(hào)驅(qū)動(dòng)電機(jī)驅(qū)動(dòng)器間接驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)垃圾分類(lèi)投放。此系統(tǒng)底層使用STM32單片機(jī),采用LD3320語(yǔ)音交互模塊,通過(guò)咪頭采集語(yǔ)音信息,與提前設(shè)定好的關(guān)鍵詞列表進(jìn)行匹配,并返回最佳匹配結(jié)果,由MP3語(yǔ)音播報(bào)模塊播報(bào)垃圾種類(lèi),同時(shí)STM32單片機(jī)間接驅(qū)動(dòng)電機(jī)使垃圾投入到相應(yīng)的垃圾桶完成垃圾分類(lèi)。通過(guò)HX711y壓力傳感器采集垃圾桶的重量以判斷是否需要清理垃圾。
1.1? 硬件設(shè)計(jì)
采用樹(shù)莓派進(jìn)行圖像攝取與處理,采用STM32驅(qū)動(dòng)底層硬件。下文將簡(jiǎn)要介紹樹(shù)莓派3B和STM32的選取。
目前市場(chǎng)上的樹(shù)莓派有Model A和Model B兩種型號(hào)。Model A硬件功能裁剪部分多,比如沒(méi)有網(wǎng)線接口;相對(duì)而言,Model B樹(shù)莓派有以太網(wǎng)接口并且支持Wi-Fi,與B+類(lèi)型相比,成本較低。
樹(shù)莓派3B擁有1.2 GHz的64位雙核處理器、板載BCM43438Wi-Fi、40個(gè)GPIO引腳,功能強(qiáng)大?;趫D像識(shí)別的垃圾分類(lèi)需要能夠驅(qū)動(dòng)攝像頭拍攝圖片,通過(guò)無(wú)線網(wǎng)絡(luò)將圖片上傳至云平臺(tái)進(jìn)行處理并接收返回結(jié)果,同時(shí)能夠與STM32進(jìn)行串口通信?;谝陨闲畔⒖芍?,樹(shù)莓派3B滿(mǎn)足本系統(tǒng)的設(shè)計(jì)需求,故選擇樹(shù)莓派3B作為圖像識(shí)別垃圾分類(lèi)的控制單元。
STM32系列產(chǎn)品根據(jù)CPU位數(shù)可分為32位和8位。在32位CPU位數(shù)的STM32系列里根據(jù)內(nèi)核不同可分為Cortex-M0、Cortex-M3、Cortex-M4、Cortex-M7;8位的則有超級(jí)版6502內(nèi)核,主要應(yīng)用于汽車(chē)應(yīng)用領(lǐng)域。本設(shè)計(jì)使用32位意法半導(dǎo)體微控制器,選取主頻為72 MHz、48個(gè)引腳、64 KB字節(jié)閃存存儲(chǔ)器的STM32F103C8T6單片機(jī)作為底層硬件驅(qū)動(dòng)核心板。
STM32F103C8T6是Cortex-M3系列中的最小系統(tǒng)板,其內(nèi)核的主頻高達(dá)72 MHz,能夠快速處理復(fù)雜的控制任務(wù),可提供包括ADC、DAC、I2C、SPI、USART等在內(nèi)的多種常用外設(shè),可以擴(kuò)展更多的外設(shè)或接入外部存儲(chǔ)器,功耗低,能夠滿(mǎn)足本系統(tǒng)的設(shè)計(jì)需求,故選擇STM32F103C8T6單片機(jī)作為底層硬件驅(qū)動(dòng)核心板。
1.2? 軟件系統(tǒng)設(shè)計(jì)
選擇樹(shù)莓派作為核心處理器,用以實(shí)現(xiàn)圖像識(shí)別與語(yǔ)音交互功能?;赑yTorch搭建ResNet卷積神經(jīng)網(wǎng)絡(luò)模型,通過(guò)攝像頭采集垃圾圖像,再調(diào)用訓(xùn)練好的模型進(jìn)行圖像預(yù)測(cè),識(shí)別結(jié)果可通過(guò)樹(shù)莓派串口發(fā)送到STM32進(jìn)行控制處理,從而實(shí)現(xiàn)語(yǔ)音交互功能。在此過(guò)程中,樹(shù)莓派搭載LD3320語(yǔ)音識(shí)別模塊與SYN6288語(yǔ)音合成模塊協(xié)同工作。
1.2.1? 圖像識(shí)別模塊
通過(guò)攝像頭采集垃圾圖片,使用PyTorch深度學(xué)習(xí)框架訓(xùn)練出來(lái)的模型進(jìn)行圖像識(shí)別,通過(guò)串口通信將識(shí)別結(jié)果發(fā)送到STM32進(jìn)行控制處理,與此同時(shí)樹(shù)莓派結(jié)合SYN6288語(yǔ)音合成模塊將識(shí)別結(jié)果文字信息合成語(yǔ)音進(jìn)行播報(bào),如圖2所示。
模型訓(xùn)練前,首先需要獲取數(shù)據(jù)集,根據(jù)Python爬蟲(chóng)基本原理向遠(yuǎn)程服務(wù)器發(fā)送請(qǐng)求,獲取目標(biāo)網(wǎng)頁(yè)的HTML文件,然后跟蹤并解析文件,獲取數(shù)據(jù)并創(chuàng)建數(shù)據(jù)集。需要根據(jù)實(shí)際應(yīng)用場(chǎng)景選擇合適的卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu),在PyTorch開(kāi)源框架上搭建深度學(xué)習(xí)環(huán)境并訓(xùn)練模型。在圖像識(shí)別領(lǐng)域,經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)有GoogLennet、VGG、ResNet等。本次設(shè)計(jì)選用ResNet深度殘差網(wǎng)絡(luò)結(jié)構(gòu),ResNet是一個(gè)基于深度可分離卷積神經(jīng)網(wǎng)絡(luò)的模型,它利用殘差結(jié)構(gòu)來(lái)構(gòu)建更深層次的特征表示,有效解決了深度網(wǎng)絡(luò)中“梯度消失”的問(wèn)題,從而獲得更高的準(zhǔn)確率。ResNet殘差網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
ResNet模型定義的核心流程圖如圖4所示。初始化ResNet模型的參數(shù),包括輸入數(shù)據(jù)的形狀、卷積核數(shù)量、步長(zhǎng)。定義第一層卷積層,包括一個(gè)7×7大小的卷積核、步幅為2、填充為3的卷積操作,以及批量標(biāo)準(zhǔn)化和ReLU激活函數(shù)。定義四個(gè)殘差模塊,每個(gè)模塊包含若干個(gè)殘差塊。其中,第一個(gè)殘差模塊進(jìn)行降采樣,每個(gè)殘差塊包含兩個(gè)3×3卷積層以及批量標(biāo)準(zhǔn)化和ReLU激活函數(shù);后續(xù)三個(gè)殘差模塊均包含連續(xù)存在的若干個(gè)殘差塊,在最后一個(gè)殘差模塊結(jié)束后,進(jìn)行全局平均池化層的操作,將特征圖轉(zhuǎn)換為固定長(zhǎng)度的向量,然后傳遞到全連接層中,輸出結(jié)果為分類(lèi)概率。最后,采用交叉熵?fù)p失函數(shù)進(jìn)行訓(xùn)練,并選擇合適的優(yōu)化算法反向傳播更新參數(shù),直至損失函數(shù)收斂。整個(gè)ResNet-50網(wǎng)絡(luò)模型的主要特點(diǎn)在于使用殘差塊技術(shù),緩解深層神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的梯度消失和精度下降問(wèn)題,實(shí)現(xiàn)更好的圖像分類(lèi)效果。
在PyTorch上根據(jù)50-layer模型結(jié)構(gòu)搭建ResNet-50網(wǎng)絡(luò)模型,如圖5所示。
1.2.2? 語(yǔ)音功能模塊
語(yǔ)音交互功能包含語(yǔ)音識(shí)別和語(yǔ)音合成兩種功能,語(yǔ)音識(shí)別功能基于LD3320語(yǔ)音模塊實(shí)現(xiàn),LD3320是一種基于非特定人語(yǔ)音識(shí)別技術(shù)的語(yǔ)音識(shí)別/聲控芯片,如圖6所示。LD3320芯片上集成了高精度的A/D和D/A接口,無(wú)須外接輔助的Flash和RAM即可實(shí)現(xiàn)語(yǔ)音識(shí)別/聲控/人機(jī)對(duì)話功能。LD3320對(duì)語(yǔ)音信息進(jìn)行頻譜分析并提取相對(duì)應(yīng)的特征,通過(guò)設(shè)定好的關(guān)鍵詞列表進(jìn)行匹配,將識(shí)別率最高的關(guān)鍵詞作為識(shí)別結(jié)果。
LD3320語(yǔ)音識(shí)別模塊初始化包括GPIO初始化、中斷初始化、SPI初始化,最后復(fù)位LD3320模塊等待音頻信號(hào),當(dāng)模塊接收到音頻信號(hào)時(shí)觸發(fā)中斷,在中斷處理函數(shù)中讀取識(shí)別碼判斷是否識(shí)別成功,成功則發(fā)送識(shí)別結(jié)果,失敗則忽略。識(shí)別流程圖如圖7所示。
語(yǔ)音合成采用SYN6288語(yǔ)音合成模塊,該模塊采用一種先進(jìn)的數(shù)字信號(hào)處理技術(shù),基于差值融合的音素合成技術(shù),可以將文本轉(zhuǎn)換為高質(zhì)量的語(yǔ)音輸出。該模塊支持中文、英文、日文等多種語(yǔ)言的語(yǔ)音合成;聲音可制定,可根據(jù)客戶(hù)要求定制不同類(lèi)型的聲音,如男生、女生、年輕人或老年人的聲音等;靈活性強(qiáng),支持不同的音頻格式輸出,如WAV、MP3等;易于集成,提供多種接口和SDK。如圖8所示為SYN6288芯片原理圖。
樹(shù)莓派和SYN6288語(yǔ)音合成模塊通過(guò)UART接口進(jìn)行連接。當(dāng)需要進(jìn)行語(yǔ)音合成時(shí),樹(shù)莓派會(huì)向SYN6288語(yǔ)音合成模塊發(fā)送文本信息。SYN6288語(yǔ)音合成模塊接收到文本信息后會(huì)將其轉(zhuǎn)換為語(yǔ)音信號(hào)輸出。輸出的信號(hào)經(jīng)過(guò)功率放大器放大后,通過(guò)喇叭進(jìn)行播放,具體流程圖如圖9所示。
利用模塊板載的咪頭采集語(yǔ)音信息,通過(guò)內(nèi)置的離線語(yǔ)音芯片對(duì)采集到的語(yǔ)音信息進(jìn)行一系列處理(包括頻譜分析、特征提取以及匹配詞匯列表等),以實(shí)現(xiàn)語(yǔ)音信號(hào)識(shí)別,并將識(shí)別結(jié)果發(fā)送到該模塊板載的STC11L08單片機(jī)。樹(shù)莓派通過(guò)SPI通信讀取LD3320內(nèi)部識(shí)別碼,通過(guò)匹配識(shí)別碼得到識(shí)別結(jié)果,再利用串口將識(shí)別結(jié)果發(fā)送至STM32進(jìn)行控制處理,與此同時(shí)樹(shù)莓派結(jié)合SYN6288語(yǔ)音合成模塊將識(shí)別結(jié)果文字信息合成語(yǔ)音進(jìn)行播報(bào)。如圖10所示為語(yǔ)音交互功能結(jié)構(gòu)圖。
2? 結(jié)果分析
構(gòu)建好模型后,設(shè)置數(shù)據(jù)集加載路徑,在搭建好的環(huán)境中進(jìn)行模型訓(xùn)練,通過(guò)可視化輸出與實(shí)際要求準(zhǔn)確率的對(duì)比結(jié)果,若準(zhǔn)確率達(dá)不到實(shí)際要求則通過(guò)反復(fù)調(diào)整參數(shù)進(jìn)行模型訓(xùn)練,最終得到準(zhǔn)確率較高的模型,最終訓(xùn)練結(jié)果如圖11所示。
當(dāng)用戶(hù)對(duì)LD3320模塊說(shuō)出預(yù)設(shè)的垃圾名稱(chēng)時(shí),觸發(fā)語(yǔ)音識(shí)別垃圾分類(lèi)功能,MP3模塊播報(bào)出對(duì)應(yīng)垃圾種類(lèi)名稱(chēng),STM32驅(qū)動(dòng)電機(jī)完成垃圾分類(lèi)。
通過(guò)黑盒測(cè)試得知,本系統(tǒng)垃圾圖像識(shí)別功能準(zhǔn)確率符合預(yù)期目標(biāo),語(yǔ)音交互功能測(cè)試過(guò)程中系統(tǒng)處于噪音較大的環(huán)境下,系統(tǒng)的語(yǔ)音交互功能受到一定的影響,不過(guò)通過(guò)反復(fù)修改,系統(tǒng)的各項(xiàng)功能均滿(mǎn)足基本要求,符合“多功能應(yīng)用分類(lèi)垃圾桶”的需求設(shè)計(jì)。
3? 結(jié)? 論
項(xiàng)目使用了語(yǔ)音交互、圖像識(shí)別和傳感器技術(shù)。語(yǔ)音交互技術(shù)采用LD3320模塊,在對(duì)語(yǔ)音信息進(jìn)行頻譜分析、提取特征后,將語(yǔ)音識(shí)別器中的內(nèi)容與寄存器儲(chǔ)存的關(guān)鍵詞語(yǔ)列表進(jìn)行匹配,輸出最優(yōu)匹配結(jié)果發(fā)送到STM32F103C8T6單片機(jī),啟動(dòng)控制程序,控制電機(jī)和語(yǔ)音播報(bào)。選擇超聲波模塊作為啟動(dòng)模塊,當(dāng)超聲波檢測(cè)到的距離比閾值小時(shí),啟動(dòng)舵機(jī)并開(kāi)啟攝像頭獲取圖片,然后將圖片上傳至云平臺(tái)進(jìn)行處理并返回結(jié)果,從而完成圖像識(shí)別。然而,由于時(shí)間所限,該系統(tǒng)在穩(wěn)定性和識(shí)別精度上仍然存在一定的缺陷,如語(yǔ)音識(shí)別上需要在絕對(duì)安靜的環(huán)境下才能有較好的識(shí)別準(zhǔn)確度;圖像識(shí)別上對(duì)實(shí)時(shí)拍攝的照片質(zhì)量有較為嚴(yán)格的要求,光線充足地方拍攝的圖片才有更高的識(shí)別準(zhǔn)確度。本系統(tǒng)可以廣泛應(yīng)用于家庭和寫(xiě)字樓辦公場(chǎng)所等地方。
參考文獻(xiàn):
[1] 劉祥臻,王紅梅,戚成功,等.Android環(huán)境下車(chē)載智能音樂(lè)播放APP的開(kāi)發(fā)設(shè)計(jì) [J].林業(yè)機(jī)械與木工設(shè)備,2020,48(3):41-45.
[2] 秦川,劉浩然,韓曉燕,等.基于物聯(lián)網(wǎng)的多功能智能豆?jié){機(jī)設(shè)計(jì) [J].中國(guó)科技信息,2021(20):89-92.
[3] 毛昕蓉,趙嘉豪,史智帥.基于樹(shù)莓派的智能垃圾分類(lèi)系統(tǒng)設(shè)計(jì) [J].電子設(shè)計(jì)工程,2022,30(20)157-160+165.
[4] 龍昭鵬.基于無(wú)線通信技術(shù)的出租車(chē)調(diào)度系統(tǒng)設(shè)計(jì) [D].齊齊哈爾:齊齊哈爾大學(xué),2014.
[5] 陳德勝.實(shí)時(shí)領(lǐng)域圖形化元模型構(gòu)建方法研究 [D]. 昆明:昆明理工大學(xué),2014.
[6] 李妍.基于ResNet算法的垃圾圖像識(shí)別分類(lèi)研究 [J].長(zhǎng)江信息通信,2021,34(5):25-27.
[7] 程時(shí)升.卷積神經(jīng)網(wǎng)絡(luò)在交通圖像識(shí)別中的應(yīng)用 [D].蘭州:西北師范大學(xué),2021.
[8] 張旭娟.基于圖像識(shí)別的垃圾分類(lèi)深度學(xué)習(xí)模型研究 [D]. 蘭州:西北師范大學(xué),2021.
[9] 許華威,喬雪濤,梁發(fā)明,等.智能語(yǔ)音識(shí)別城市生活垃圾分類(lèi)箱的設(shè)計(jì) [J].成組技術(shù)與生產(chǎn)現(xiàn)代化,2020,37(3):45-48.
[10] 馬俊.語(yǔ)音識(shí)別技術(shù)研究 [D].哈爾濱:哈爾濱工程大學(xué),2004.
[11] 雷靜.語(yǔ)音識(shí)別技術(shù)的研究及基本實(shí)現(xiàn) [D].武漢:武漢理工大學(xué),2002.
作者簡(jiǎn)介:李澥(1963—),男,漢族,廣東梅縣人,副教授,本科,主要研究方向:物聯(lián)網(wǎng)應(yīng)用技術(shù)、嵌入式系統(tǒng)原理與應(yīng)用等;范斌年(1997—),男,漢族,廣東茂名人,產(chǎn)品經(jīng)理,本科,主要研究方向:深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺(jué)等人工智能領(lǐng)域;余峻鋒(2000—),男,漢族,廣東汕尾人,本科在讀;主要研究方向:物聯(lián)網(wǎng)應(yīng)用技術(shù)、自動(dòng)化應(yīng)用與研究等;曹志賢(2000—),男,漢族,廣東廉江人,本科在讀,主要研究方向:物聯(lián)網(wǎng)應(yīng)用技術(shù)、嵌入式驅(qū)動(dòng)開(kāi)發(fā)等。
收稿日期:2023-04-14
基金項(xiàng)目:廣東省科技創(chuàng)新戰(zhàn)略專(zhuān)項(xiàng)資金立項(xiàng)項(xiàng)目(“攀登計(jì)劃”專(zhuān)項(xiàng)資金)(pdjh2021a0702)