版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
基于深度學(xué)習(xí)的垃圾分類系統(tǒng)設(shè)計摘要目前,隨著我國生產(chǎn)力水平的日益增強,人們的消費水平也在不斷提高,高質(zhì)量的生活同時也帶來了大量的生活垃圾。生活垃圾的堆放不僅擠占人們的生存空間,同時對環(huán)境造成了極大的污染。近年來我國出臺了許多有關(guān)垃圾分類管理的政策,但由于人們普遍缺乏垃圾分類相關(guān)知識,對于常見垃圾的分類標(biāo)準(zhǔn)比較模糊,往往會造成錯誤投放,造成大量可回收資源的浪費。受限于傳統(tǒng)圖像分類算法,垃圾處理流水線仍在使用人工分揀方式,工作強度大、效率低。因此,將目前發(fā)展迅速的深度學(xué)習(xí)技術(shù)應(yīng)用于垃圾分類領(lǐng)域,對于降低人工成本、提高分類效率具有重要意義。本文通過深度學(xué)習(xí)的方法設(shè)計了一個垃圾分類系統(tǒng),采用卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)架構(gòu),以Iception-ResNet網(wǎng)絡(luò)模型為基礎(chǔ),使用自己搜集到的含有8926張廚余垃圾圖片的數(shù)據(jù)集進行訓(xùn)練,并對模型進行參數(shù)優(yōu)化,不斷提升識別準(zhǔn)確率。最終模型識別準(zhǔn)確率達到92.2%,實現(xiàn)了對生活中常見廚余垃圾的分類。關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);深度學(xué)習(xí);垃圾分類目錄引言 [5],可以在更深的網(wǎng)絡(luò)中取得很好的學(xué)習(xí)效果。ResNet網(wǎng)絡(luò)在VGG網(wǎng)絡(luò)的基礎(chǔ)上通過短路機制加入了殘差單元,使輸入可通過跨層的數(shù)據(jù)線路更快地向前傳播,進而使神經(jīng)網(wǎng)絡(luò)所需要的參數(shù)更容易被擬合優(yōu)化。通過殘差學(xué)習(xí)機制,ResNet網(wǎng)絡(luò)擁有了更深的網(wǎng)絡(luò)層次,但速度得到了提升,準(zhǔn)確率得到了增長。ResNet34層網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖2-10所示:圖2-10ResNet網(wǎng)絡(luò)結(jié)構(gòu)圖殘差學(xué)習(xí)單元示意圖如圖2-11所示:圖2-11殘差學(xué)習(xí)單元2.2.4Iception-ResNet模型Iception-ResNet模型結(jié)合了Iception的局部稀疏結(jié)構(gòu)與ResNet模型中的殘差網(wǎng)絡(luò),融合了Iception特征提取精度高與ResNet收斂速度快的優(yōu)點,使得網(wǎng)絡(luò)的運行速度更快、識別準(zhǔn)確度更高。其在結(jié)構(gòu)上沿用了Iception系列模型的結(jié)構(gòu),并在此基礎(chǔ)上加入了殘差連接,其與Iception模型的區(qū)別為:僅在Inception里面加入BN層,而在相加層不加BN層。Iception-ResNet模塊結(jié)構(gòu)示意圖如圖2-12所示:圖2-12Iception-ResNet模塊結(jié)構(gòu)3搭建深度學(xué)習(xí)開發(fā)環(huán)境深度學(xué)習(xí)在圖像識別、語音輸入及目標(biāo)檢測等領(lǐng)域均有卓越的性能,但其開發(fā)環(huán)境復(fù)雜且缺乏完整全面的安裝教程,現(xiàn)有教程眾說紛紜甚至相互矛盾,配置過程中往往會出現(xiàn)各種各樣的錯誤,且很難找到解決方法,是初學(xué)者入門的一大難題。本章節(jié)結(jié)合了網(wǎng)絡(luò)上現(xiàn)有的教程,總結(jié)大量的失敗經(jīng)驗,詳細(xì)闡述了在Windows10系統(tǒng)中搭建深度學(xué)習(xí)開發(fā)環(huán)境的過程。3.1Anaconda目前人工智能領(lǐng)域的框架基本都是用Python來開發(fā)的,在開發(fā)的過程中需要用到大量的資源包及其依賴項,每次下載新的資源包時都需要手動查詢新資源包與已安裝的軟件之間的版本依賴關(guān)系,為管理帶來了極大的不便。Anaconda可以完美的解決Python庫的管理問題,只需輸入指令搜索需要的資源包,就能自動匹配安裝,不需要考慮版本之間的依賴問題,且能夠在不同的運行環(huán)境中自由切換。3.1.1安裝Anaconda通過查詢資料,了解到從官網(wǎng)下載Anaconda速度慢且容易出錯,因此選擇從清華大學(xué)鏡像網(wǎng)站上下載安裝Anaconda3。注意安裝時不能勾選“將Anaconda的安裝路徑加入系統(tǒng)環(huán)境變量”的選項,否則運行時容易出現(xiàn)“無法定位到動態(tài)鏈接庫”的錯誤。由于安裝時會默認(rèn)下載Python3.x作為腳本和程序使用的默認(rèn)運行環(huán)境,不需要再單獨安裝Python。在Windows開始菜單啟動AnacondaNavigator,打開默認(rèn)虛擬環(huán)境的命令行窗口進行測試,出現(xiàn)“Hello,Anaconda!”即為安裝成功,如圖3-1所示:圖3-1Anaconda安裝驗證圖3.1.2配置環(huán)境變量Anaconda安裝完成后需要進行系統(tǒng)環(huán)境變量的配置,用于尋找可執(zhí)行文件的位置。其操作步驟為:打開電腦的屬性,找到高級系統(tǒng)設(shè)置中的環(huán)境變量,選擇系統(tǒng)變量,雙擊PATH添加新路徑。配置好的環(huán)境變量如圖3-2所示,其中:“D:\Anaconda”為Anaconda的安裝路徑,也是Python解釋器的所在位置,添加此條路徑使Python能夠正常運行。“D:\Anaconda\Scripts”為conda自帶的腳本及Python資源包的所在位置,添加此條路徑使Anaconda能夠正常運行?!癉:\Anaconda\Library\bin“為conda安裝的二進制包的所在位置,添加此條路徑才能正常使用工具包“D:\Anaconda\Library\mingw-w64\bin”是使用C語言和Python混合編程時工具包的安裝路徑。圖3-2配置Anaconda環(huán)境變量配置好環(huán)境變量后,在系統(tǒng)命令提示符中進行驗證,輸入指令“condainfo”,出現(xiàn)conda和python的版本號即說明配置成功,如圖3-3所示:圖3-3環(huán)境變量配置成功示意圖3.1.3配置軟件包下載服務(wù)器Anaconda軟件包下載服務(wù)器的默認(rèn)地址在國外,下載軟件包的速度較慢,經(jīng)常因為超時導(dǎo)致安裝失敗,因此使用清華大學(xué)開源軟件鏡像站來代替原有下載地址。在AnacondaPrompt中輸入圖3-4所示的三條命令即可完成換源:圖3-4清華鏡像站換源命令3.2TensorflowTensorflow是一個功能強大的學(xué)習(xí)框架,也是當(dāng)前深度學(xué)習(xí)領(lǐng)域較為流行的框架,可用于語音識別或圖像識別等多項深度學(xué)習(xí)領(lǐng)域。本設(shè)計中使用Tensorflow來處理圖片數(shù)據(jù),搭建卷積神經(jīng)網(wǎng)絡(luò)模型,進行迭代訓(xùn)練與優(yōu)化。3.2.1選擇安裝版本Tensorflow分為GPU版本與CPU版本,主要區(qū)別在于訓(xùn)練速度不同。在訓(xùn)練小數(shù)據(jù)集時,兩個版本之間的差距不明顯;但訓(xùn)練大型數(shù)據(jù)集時,使用GPU版本的Tensorflow耗時將遠小于CPU版本,更適合圖片類卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí),因此首選安裝GPU版本。(1)根據(jù)Tensorflow官網(wǎng)的要求,安裝GPU版本需要CUDA計算能力為3.5或更高的NVIDIA顯卡,顯卡內(nèi)存最好大于4G。經(jīng)查看后發(fā)現(xiàn),本機的顯卡驅(qū)動版本為GeForce940MX,其對應(yīng)的CUDA計算能力為5.0,顯卡內(nèi)存為2G。由于顯卡內(nèi)存較小,安裝GPU版本后未能正常運行,最終選擇安裝CPU版本。(2)Tensorflow1.x版本與2.x版本,2.x版本在1.x的基礎(chǔ)上刪除了很多舊庫,并對其中的一些庫做了合并,因此兩大版本代碼不互通。若要在2.x版本上運行1.x的代碼,需要對代碼進行修改,使用代碼升級語句可以解決大部分版本問題,但仍可能存在一些無法解決的報錯??紤]到目前的開源框架幾乎都由1.x版本編寫,為避免因版本問題導(dǎo)致的運行錯誤,選擇安裝1.x版本。最終版本選擇:安裝Tensorflowcpu1.15.0版本3.2.2配置虛擬環(huán)境由于Anaconda的默認(rèn)虛擬環(huán)境中已安裝的軟件包很多,所以需要新建一個專門用于深度學(xué)習(xí)的虛擬環(huán)境。能夠安裝的Tensorflowgpu版本受限于顯卡、對Python、CUDA和cuDNN的版本均有要求,CPU版本僅對Python做出要求,表3-1中列出了幾種常用的版本對應(yīng)關(guān)系表3-1版本對應(yīng)關(guān)系Tensorflow版本Python版本cuDNNCUDAtensorflow-gpu1.13.02.7、3.3-3.67.410tensorflow-gpu2.1.02.7、3.5-3.77.610.1tensorflow-cpu1.15.02.7、3.3-3.7無tensorflow-cpu2.3.03.5-3.8在Anaconda中創(chuàng)建一個新的虛擬環(huán)境,根據(jù)Tensorflow和Python版本對應(yīng)關(guān)系,選擇3.7版本的Python,完成虛擬環(huán)境的配置,如圖3-5所示:圖3-5配置虛擬環(huán)境3.2.3安裝Tensorflow打開Tensorflow虛擬環(huán)境下的命令行終端,通過命令:condainstalltensorflow-cpu=1.15進行安裝。Anaconda會自動收集此版本Tesorflow的信息,列出需要安裝的軟件包,自動安裝好常用包及依賴庫,不需要考慮庫與軟件之間的版本對應(yīng)關(guān)系。安裝完成后通過如圖3-6所示的指令進行驗證,出現(xiàn)'hello,tensorf'代表安裝成功。圖3-6驗證Tensorflow是否安裝成功3.2.4出現(xiàn)的錯誤(1)首次安裝時安裝了tensorflow-gpu1.13版本,出現(xiàn)如下錯誤,經(jīng)檢查后發(fā)現(xiàn)顯卡版本較老,與CUDA版本不匹配,只能安裝1.3版本。由于1.3版本已經(jīng)不再更新,未能找到下載資源。錯誤描述:RuntimeError:cudaruntimeerror(35):CUDAdriverversionisinsufficientforCUDAruntimeversionat…原因:CUDA驅(qū)動版本不滿足CUDA運行版本。(2)將顯卡更新至最新版本后,重新下載了tensorflow-gpu2.3版本,安裝成功,但代碼無法正常運行。運行代碼時,所有文件都已經(jīng)加載成功后,出現(xiàn)如下錯誤:Non-OK-status:Gpulaunch(FillPhiloxRandomKernelLaunch,num_blocks,block_size,0,d.stream(),gen,data,size,dist)nokernelimageisavailableforexecutiononthedevice原因:此時返回值是一串地址,說明程序非正常退出。經(jīng)查詢資料后發(fā)現(xiàn),此錯誤是顯卡內(nèi)存不夠?qū)е碌膬?nèi)存泄漏,需要重新安裝CPU版本的Tensorflow。3.3Pycharm安裝PyCharm2020.3.5版本并激活插件,由于軟件安裝簡單,此處不再贅述。新建一個項目文件,將在Anaconda中配置好的python環(huán)境嵌入到編輯器中,如圖3-7所示,即完成了環(huán)境導(dǎo)入。圖3-7將Anaconda環(huán)境導(dǎo)入Pycharm4數(shù)據(jù)集的收集及擴充4.1數(shù)據(jù)集獲取根據(jù)垃圾分類標(biāo)準(zhǔn),廚余垃圾分為菜葉、剩菜剩飯、果皮、蛋殼、茶渣、骨頭等幾個大類別。經(jīng)過搜索,共在網(wǎng)絡(luò)上找到有關(guān)垃圾分類的開源數(shù)據(jù)集4個,分別包含垃圾圖片14802張、29604張、80282張與12566張,圖片基數(shù)巨大。但經(jīng)過篩選后發(fā)現(xiàn),其中兩個數(shù)據(jù)集均未對圖片種類進行具體分類,幾萬張圖片只存放于一個文件夾內(nèi),需要手動分類,工作量巨大。而圖片最多的數(shù)據(jù)集對廚余垃圾的分類過于詳細(xì),將每種食物單獨分為一個類別,如八寶粥、糖葫蘆、蛋撻等,沒有按照大類進行區(qū)分。因此最終選擇使用CIFAR10數(shù)據(jù)集,其中包含廚余垃圾圖片3389張,分為骨頭、茶葉、蛋殼、剩飯剩菜、水果、蔬菜、魚骨頭七個類別,基本符合廚余垃圾分類標(biāo)準(zhǔn)。由于此數(shù)據(jù)集基數(shù)較小,還需要增加圖片數(shù)量并細(xì)化分類,從而減少因缺乏數(shù)據(jù)而使模型過擬合的可能性,并提高測試結(jié)果的準(zhǔn)確性。4.2數(shù)據(jù)集擴充由于手動收集數(shù)據(jù)集是一項高重復(fù)低效率的任務(wù),工作量較大且耗時較長,因此為了避免在收集數(shù)據(jù)時浪費時間下載和保存,選擇使用網(wǎng)絡(luò)爬蟲來收集數(shù)據(jù)集。其原理是通過百度等搜索引擎發(fā)出搜索請求,然后解析和存儲獲得的內(nèi)容。流程圖如下圖4-1所示:圖4-1網(wǎng)絡(luò)爬蟲流程圖本設(shè)計采用Python語言編程的現(xiàn)有爬蟲程序,輸入所需圖片的關(guān)鍵詞和需要爬取的張數(shù),程序就能夠自主通過瀏覽器檢索關(guān)鍵詞,從百度圖庫上下載需要的垃圾圖片,并將其儲存至相應(yīng)文件夾。爬蟲過程如圖4-2所示:圖4-2實際爬蟲過程爬蟲完成后需要手動對爬取下來的圖片進行篩選。受限于網(wǎng)絡(luò)上現(xiàn)有的廚余垃圾圖片數(shù)量,往往下載的1000張圖片中,僅有200至300張圖片可用于垃圾分類,且手動篩選圖片工作量比較大。在增加圖片數(shù)量的同時,對分類標(biāo)準(zhǔn)也進行了細(xì)化,將一些特征鮮明的蔬菜、水果單獨分類,以防止模型不能從同類圖片中提取出足夠的特征,影響模型的分類準(zhǔn)確性。經(jīng)篩選后,數(shù)據(jù)集擴充至8926張,共包含19個分類,其中圖片的背景較為復(fù)雜,像素、尺寸、光線也各不相同,比較符合現(xiàn)實生活中的實際場景,如下圖4-3所示:圖4-3部分垃圾圖片展示各類廚余垃圾的圖片數(shù)量如表4-1所示,其中綠葉菜的圖片最多共有1328張,梨的圖片最少共有108張,其他類別大多分布在300-600之間。表4-1垃圾圖片分類及數(shù)量標(biāo)簽序號垃圾類別圖片數(shù)量1骨頭3872茶葉渣7053蛋殼5294剩飯8165綠葉菜13286腐爛水果12527魚骨頭4118番茄4069堅果78610蘿卜26811辣椒31812菠蘿11913草莓21514橙子33415火龍果26216梨10817蘋果24518西瓜28619蒜1514.3數(shù)據(jù)預(yù)處理本設(shè)計中按照8:1:1的比例將數(shù)據(jù)集劃分為訓(xùn)練集、驗證集與測試集。其中訓(xùn)練集是用于模型提取特征,驗證集用于調(diào)整參數(shù)、降低模型過擬合的可能性,而測試集則用于測試模型最終識別效果。模型通過訓(xùn)練集來進行訓(xùn)練,通過多次調(diào)用驗證集來提高泛化能力,最終將訓(xùn)練好的模型在測試集上進行一次測試,評估得到模型最終的泛化能力。數(shù)據(jù)集劃分情況如圖4-4所示:圖4-4數(shù)據(jù)集劃分示意圖4.3.1數(shù)據(jù)集標(biāo)注數(shù)據(jù)集收集完畢后,需要對圖片進行標(biāo)注,每個分類下的圖片名稱不能重復(fù)、不能出現(xiàn)漢字,否則程序不能正常運行。因此,選擇利用ACDsee圖像處理軟件為擴充好的數(shù)據(jù)集進行批量重命名,保證每個分類下圖片從1開始排序,便于訓(xùn)練和統(tǒng)計。批量標(biāo)注過程如下圖4-5所示:圖4-5數(shù)據(jù)集批量標(biāo)注4.3.2數(shù)據(jù)增強深度學(xué)習(xí)模型的訓(xùn)練需要大量數(shù)據(jù)集的支撐,如果數(shù)據(jù)集的樣本數(shù)量過少,將發(fā)生過擬合問題,影響模型的訓(xùn)練效果。本設(shè)計中絕大多數(shù)圖片來源于網(wǎng)絡(luò)爬蟲,由于能力和時間的限制,未能獲取到大量圖片,因此需要通過數(shù)據(jù)增強技術(shù),對圖片數(shù)據(jù)進行裁剪、翻轉(zhuǎn)、縮放等操作,達到擴充數(shù)據(jù)集的目的。本設(shè)計中采用代碼來實現(xiàn)圖片增強技術(shù),主要包括以下幾個方面:隨機向左/向右翻轉(zhuǎn)一半的訓(xùn)練圖像隨機裁剪圖片的邊距,需手動給定裁剪圖像的距離百分比隨機確定圖片縮放的百分比隨機改變圖像的亮度及飽和度
參考文獻張楷偉.基于深度學(xué)習(xí)的Mosaic圖像復(fù)原和識別方法研究[D].西安電子科技大學(xué),2019.賴敏.基于深度學(xué)習(xí)的室內(nèi)日常行為識別算法研究[D].中國地質(zhì)大學(xué)(北京),2018.郭思琦.基于神經(jīng)網(wǎng)絡(luò)和3D視覺的果園蘋果識別與定位的研究[D].北京交通大學(xué),2019.李華清.基于SSD的航拍圖像小目標(biāo)快速檢測算法研究[D].西安電子科技大學(xué),2018.葉繼華,祝錦泰,江愛文,等.人臉表情識別綜述[J].數(shù)據(jù)采集與處理,2020,35(1):21-34.董子源,韓衛(wèi)光.基于卷積神經(jīng)網(wǎng)絡(luò)的垃圾圖像分類算法[J].計算機系統(tǒng)應(yīng)用,2020,29(08):199-204.劉恩乾.基于深度學(xué)習(xí)的生活垃圾分類和檢測[D].山西大學(xué),2020.武凌,王浩,張曉春,周健,段愛華.基于深度遷移學(xué)習(xí)的垃圾分類系統(tǒng)設(shè)計與實現(xiàn)[J].沈陽大學(xué)學(xué)報(自然科學(xué)版),2020,32(06):496-502.呂程熙.基于深度學(xué)習(xí)實現(xiàn)自動垃圾分類[J].電子制作,2019(24):36-38.S.Li,M.YanandJ.Xu,"Garbageobjectrecognitionandclassificationbasedo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南省衡陽市常寧市2025-2026學(xué)年七年級上學(xué)期期末質(zhì)量監(jiān)測道德與法治試卷(含答案)
- 安徽省蚌埠市固鎮(zhèn)縣部分學(xué)校2025-2026學(xué)年九年級上學(xué)期1月期末數(shù)學(xué)試題答案
- 2025-2026學(xué)年山東煙臺長島第二實驗學(xué)校 九年級(上下冊)期末道德與法治試卷(無答案)
- 五年級數(shù)學(xué)期末考試卷及答案
- 為民服務(wù)題庫及答案
- 網(wǎng)絡(luò)的題目及答案
- 初中數(shù)學(xué)培訓(xùn)
- 北京警察學(xué)院《Photoshop 圖像處理》2024 - 2025 學(xué)年第一學(xué)期期末試卷
- 2022~2023安全員考試題庫及答案第254期
- 部編人教版二年級語文(下冊)期末試卷及答案(匯編)
- 特種工安全崗前培訓(xùn)課件
- 新疆維吾爾自治區(qū)普通高中2026屆高二上數(shù)學(xué)期末監(jiān)測試題含解析
- 2026屆福建省三明市第一中學(xué)高三上學(xué)期12月月考?xì)v史試題(含答案)
- 2026年遼寧金融職業(yè)學(xué)院單招職業(yè)技能測試題庫附答案解析
- (正式版)DB51∕T 3342-2025 《爐灶用合成液體燃料經(jīng)營管理規(guī)范》
- 2026北京海淀初三上學(xué)期期末語文試卷和答案
- 2024-2025學(xué)年北京市東城區(qū)五年級(上)期末語文試題(含答案)
- 人工智能在醫(yī)療領(lǐng)域的應(yīng)用
- 2025學(xué)年度人教PEP五年級英語上冊期末模擬考試試卷(含答案含聽力原文)
- 【10篇】新部編五年級上冊語文課內(nèi)外閱讀理解專項練習(xí)題及答案
- 南京市雨花臺區(qū)醫(yī)療保險管理中心等單位2025年公開招聘編外工作人員備考題庫有完整答案詳解
評論
0/150
提交評論