<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于Tensorflow的智能垃圾分類系統(tǒng)的研究與設(shè)計

          基于Tensorflow的智能垃圾分類系統(tǒng)的研究與設(shè)計

          作者:祝朝坤,魏倫勝 時間:2020-05-27 來源:電子產(chǎn)品世界 收藏

            祝朝坤,魏倫勝(鄭州工商學(xué)院,河南?鄭州?451400)

          本文引用地址:http://www.ex-cimer.com/article/202005/413611.htm

            摘?要:本研究旨在開發(fā)一種基于的深度學(xué)習(xí)應(yīng)用程序,該應(yīng)用程序通過圖像處理檢測垃圾中的垃圾類型。為了提供最有效的方法,本研究對眾所周知的深度卷積神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)進(jìn)行了實驗。經(jīng)測試的準(zhǔn)確率要優(yōu)于其他同類模型。本研究的模型是經(jīng)過精心優(yōu)化的深度卷積神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),用于對選定的可回收對象類別進(jìn)行分類,其數(shù)據(jù)將通過硬件端進(jìn)行分析進(jìn)而控制整個系統(tǒng)。

            關(guān)鍵詞:;;;;

            0 引言

            使用傳統(tǒng)的工藝對垃圾進(jìn)行分類,需要增加人力和物力以及時間。在當(dāng)前人工智能越來越普及的大時代背景之下,利用圖像處理對垃圾進(jìn)行分類是一種非常有效的方法。本研究的主要目的是設(shè)計一種基于深度學(xué)習(xí)算法的全自動系統(tǒng)來對常見垃圾進(jìn)行分類。深度學(xué)習(xí)的方法已經(jīng)成功應(yīng)用到了各個領(lǐng)域,例如自動駕駛、醫(yī)學(xué)成像和多種工業(yè)環(huán)境,在對象檢測問題上取得了顯著成果。

            1 系統(tǒng)結(jié)構(gòu)流程圖

            由框圖可以知道本系統(tǒng)主要是由軟件和硬件的組合,其中算法處理部分在PC端進(jìn)行,將垃圾置于擋板上,由PC端進(jìn)行圖像處理分割以及數(shù)據(jù)集的訓(xùn)練和識別,繼而通過藍(lán)牙將數(shù)據(jù)發(fā)送到MCU核心端控制垃圾桶旋轉(zhuǎn),與此同時,擋板打開,垃圾落入指定的格子內(nèi),從而完成垃圾自動分類。舵機(jī)用于控制擋板的開啟以及關(guān)閉,步進(jìn)電機(jī)控制垃圾桶精確角度的旋轉(zhuǎn),TTS串口語音播報模塊實時播報當(dāng)前的垃圾種類,進(jìn)而由OLED顯示出來,以方便使用者查看信息。

          微信截圖_20200608161539.jpg

            2 硬件設(shè)計

            硬件端以F1為核心,控制OLED模塊、藍(lán)牙模塊、TTS語音模塊以及步進(jìn)電機(jī),通過各種硬件實現(xiàn)了各種功能,硬件系統(tǒng)總體結(jié)構(gòu)如圖2。

          1591604532463157.jpg

            3 算法設(shè)計

            本研究的核心是TensorFlow,其用于數(shù)據(jù)集模型的訓(xùn)練,從而提升圖像識別的準(zhǔn)確率以及實現(xiàn)精準(zhǔn)分類。

            3.1 數(shù)據(jù)集的訓(xùn)練

            本研究的重點(diǎn)是對可回收材料進(jìn)行分類,該研究目的是識別一些最常見的可回收材料,例如玻璃,紙張,紙板,塑料,金屬和垃圾。由于沒有公開的垃圾數(shù)據(jù)集,故在該研究中需要手工收集自己的圖像數(shù)據(jù)集,由于每一類的規(guī)模較小,所以對每一幅垃圾圖像都進(jìn)行了圖像處理。包括圖像的隨機(jī)旋轉(zhuǎn)、圖像的隨機(jī)亮度控制、圖像的隨機(jī)平移、圖像的隨機(jī)縮放和圖像的隨機(jī)剪切,此外還執(zhí)行了均值減法和歸一化。數(shù)據(jù)集包含六類可回收對象,數(shù)據(jù)集的圖像具有白色背景,每張照片都會選擇不同的方向和曝光度。圖3顯示了來自數(shù)據(jù)集的部分樣本圖像。

          1591604600730712.jpg

            3.2 CNN 卷積神經(jīng)網(wǎng)絡(luò)

            CNN旨在明確用于圖像分類,該算法首先從數(shù)據(jù)集中輸入圖像,它將輸入作為激活量,也將輸出作為激活量。因此,在CNN中,中間層不像普通的人工神經(jīng)網(wǎng)絡(luò)那樣是法向量,而是具有高度,寬度和深度的空間維度。該算法主要分為三層:卷積層、最大池化層和全連接層。

            卷積層:該層接收一些輸入量,在這種情況下,圖像將具有特定的高度,寬度和深度。它存在一些過濾器,它們基本上是由隨機(jī)數(shù)初始化的矩陣。濾鏡在空間上較小,但深度與輸入圖像的通道相同,對于RGB,濾鏡的深度為3,對于灰度,濾鏡的深度為1,依此類推,過濾器在輸入量上進(jìn)行卷積。它在圖像中進(jìn)行空間滑動,并在整個圖像中計算點(diǎn)積,過濾器最終為輸入圖像生成激活圖。點(diǎn)積的計算方式如下:

          微信截圖_20200608161253.png

            其中 W = 濾波器、 x = 輸入圖像 b = 偏差,在每個卷積層的末端,CNN最終會獲取濾波器的激活圖。激活函數(shù)為ReLu:

          微信截圖_20200608161258.png

            此激活函數(shù)最終會舍棄零以下的值,即將最小值閾值設(shè)為零。

            最大池化層:最大池化基本上只是激活映射的下采樣層,通常使用 2 2 × 過濾器和步長為2的最大池化層,最終將輸入激活圖縮小為一半的空間圖。池化的另一種方法是平均池化,在這種方法中,子矩陣的最大值保留為下一層的平均值而不是最大值。

            完全連接層:完全連接層在最后將體積作為輸入,它像正常的神經(jīng)網(wǎng)絡(luò)一樣完全連接到整個輸入量,該層執(zhí)行最后一個矩陣乘法器以計算輸出。

            在傳統(tǒng)的多層神經(jīng)網(wǎng)絡(luò)中,神經(jīng)元第一層與下一層中的所有神經(jīng)元相連;卷積層在上一層的輸出上建立本地連接,全連接層執(zhí)行矩陣乘法,卷積層使用卷積過程,如等式(1)所示的線性數(shù)學(xué)過程:

          微信截圖_20200608161332.png

            當(dāng)?shù)仁?被用于連續(xù)域時,可以得到等式2的情況:

          微信截圖_20200608161356.png

            x [k] 在等式2中可以寫成 x [k?j] , 同 樣 ,x [k?j]可以在等式中轉(zhuǎn)換為 x [k+j]。如等式3,它并不影響結(jié)果。

          微信截圖_20200608161412.png

            在進(jìn)行卷積過程中,w是卷積層的濾波器,x是這一層的輸入, f ( . ) 是激活函數(shù)sigmoid,是將輸入向量與卷積層上神經(jīng)元的權(quán)重向量 ( w ) 執(zhí)行點(diǎn)積的一個數(shù)學(xué)過程。步幅 ( ζ ) 是一個參數(shù),可以定義為卷積過程中過濾器窗口輸入窗口上的偏移量,也可在等式4中被計算出來:

          微信截圖_20200608161437.png

            采用正整數(shù) ζ 參數(shù)的原因是在卷積過程中加入樣本稀疏函數(shù)來減小卷積過程中輸入的大小。

            該研究對CNN的多種模型進(jìn)行了實驗,最終發(fā)現(xiàn)inception-v4提供了更穩(wěn)定的訓(xùn)練和更高的準(zhǔn)確性。

            3.3 試驗結(jié)果以及數(shù)據(jù)

            CNN算法工作在兩階段循環(huán)中,即正向傳播和反向傳播,在前向通過過程中,圖像將傳遞到上述每個層,并計算輸出。將預(yù)期輸出與實際輸出進(jìn)行比較,并計算誤差,在計算出誤差之后,該算法隨后調(diào)整權(quán)重。濾波器的權(quán)重的調(diào)整是反向傳播階段,此階段與優(yōu)化技術(shù)(例如梯度下降)結(jié)合使用,以盡可能降低誤差,隨后將數(shù)據(jù)集中的所有圖像調(diào)整為256x256,然后再作為輸入(input)輸入到網(wǎng)絡(luò)。

            損失是使用二進(jìn)制交叉輸入法計算的,優(yōu)化器使用的是RMSprop。CNN在GTX 750Ti上接受了大約3–3.5小時的訓(xùn)練。由于使用擴(kuò)展樣本進(jìn)行輸入,所以即使增加了數(shù)據(jù)集的大小,它們也具有高度相關(guān)性,但這可能導(dǎo)致數(shù)據(jù)過擬合,通過調(diào)節(jié)網(wǎng)絡(luò)的熵容量(模型中存儲的信息量)解決了過擬合問題。本研究使用了非常小的CNN,幾乎沒有圖層,每層只有很少的過濾器,同時數(shù)據(jù)增加和丟失(loss)為0.5,從而有助于減少過度擬合的情況。而為了判斷模型是否過擬合,是否需要停止訓(xùn)練,則需要依靠驗證集,即一邊訓(xùn)練一邊驗證,從圖4的實驗結(jié)果可知,訓(xùn)練值一直低于驗證值,未處于過擬合狀態(tài),最終實驗數(shù)據(jù)如表1。

            4 OpenCV圖像處理

            本研究中,OpenCV用于對圖像的采集以及預(yù)處理,此外,OpenCV也用于對輸出結(jié)果進(jìn)行處理。

            4.1 形態(tài)學(xué)處理以及圖像不變矩

            圖像處理包括將RGB圖像轉(zhuǎn)換為灰度圖像,然后將其二值化。此階段從圖像中刪除了不必要的特征。圖像由Microsoft Webcam VX-6000采集并轉(zhuǎn)換為灰度,獲得灰度圖像后,為了使灰度圖像僅具有兩種顏色(分別為0和255),應(yīng)用了二值化處理,圖5為相關(guān)算法流程圖。

          微信截圖_20200608161629.jpg

            本研究用力矩描述圖像而不是使用其他更常用的圖像特征(例如寬度和高度),這意味著使用圖像的全局屬性而不是局部屬性。該方法對于選擇從目標(biāo)垃圾中提取的一組數(shù)字屬性很有用,以便于進(jìn)行分類。

            4.2 圖像分割

            處理步驟(分割)涉及將對象與背景和其他對象區(qū)分開,在此步驟中,使用了非常通用的圖像處理方法,即:

            a)邊界檢測(Canny算法)。

            b)閾值以與背景隔離并消除噪聲。

            c)高斯模糊以柔化細(xì)節(jié)并過濾噪聲。

            d)從彩色到黑白和二值圖像的轉(zhuǎn)換,使用飽和通道來幫助尋找邊界。

            e)二值圖像中的輪廓檢測以單獨(dú)分析對象。

            閾值化采用Otsu算法,使用一個閾值將像素劃分為兩個類,其定義為每個群集的方差的加權(quán)和:

          微信截圖_20200608161454.png

            其中 n B 與 n o 是閾值以下和之上的像素數(shù),而 δ B 與δ o 分別是它們的方差。 T 是選擇的閾值。該研究使用Ostu算法的意義是僅考慮邊界附近的像素,因此這樣應(yīng)用的閾值傾向于保持邊界上的分離,圖像分割實際效果如圖6。

          微信截圖_20200608161637.jpg

            5 結(jié)論

            隨著處理大數(shù)據(jù)的深度網(wǎng)絡(luò)架構(gòu)的出現(xiàn),在不執(zhí)行其他任何功能的情況下,就準(zhǔn)確性,可擴(kuò)展性,適應(yīng)性而言,深度學(xué)習(xí)提供了同類最佳的性能。本文提出了使用深度學(xué)習(xí)實現(xiàn)全自動垃圾分類的想法,而無需進(jìn)行人工操作。要實現(xiàn)它,系統(tǒng)將使用龐大的數(shù)據(jù)集,用于對象檢測的模式預(yù)測和訓(xùn)練算法。后期進(jìn)一步的工作包括實時優(yōu)化各種離散輸入的結(jié)果和預(yù)測精度。這種方法有助于降低污染水平,從長遠(yuǎn)來看,其重點(diǎn)是發(fā)展通用垃圾分類框架,可以將輸入圖像的數(shù)據(jù)集更改為更多的特定場景,用于應(yīng)用程序的執(zhí)行。例如,該系統(tǒng)可用于對快餐店以及其他各個公共場合的垃圾進(jìn)行分類。

            參考文獻(xiàn):

            [1] Mohammadi M, Al-Fuqaha A, Sorour S, et al. Deeplearning for IoT big data and streaming analytics: Asurvey[J]. IEEE Communications Surveys & Tutorials, 2018,20(4): 2923-2960.

            [2] Chu Y, Huang C, Xie X, et al. Multilayer hybrid deep-learning method for waste classification and recycling[J].Computational Intelligence and Neuroscience, 2018, 2018.

            [3] Liu Y, Ge Z, Lv G, et al. Research on AutomaticGarbage Detection System Based on Deep Learning andNarrowband Internet of Things[C]//Journal of Physics:Conference Series. IOP Publishing, 2018, 1069(1): 012032.

            [4] Y. Taigman, M. Yang, M. Ranzato, and L. Wolf,“DeepFace: closing the gap to human-level performancein face verification,” in Proceedings of Computer Visionand Pattern Recognition (CVPR), 2014 IEEE Conference,Columbus, OH, USA, 2014.

            [5] Chen G, Wang H, Zheng J. Application of ImageRecognition Technology in Garbage ClassificationEducation Platform[C]//2019 5th International Conferenceon Control, Automation and Robotics (ICCAR). IEEE, 2019:290-294.

            [6] Sudha S, Vidhyalakshmi M, Pavithra K, et al. Anautomatic classification method for environment: Friendlywaste segregation using deep learning[C]//2016 IEEETechnological Innovations in ICT for Agriculture and RuralDevelopment (TIAR). IEEE, 2016: 65-70.

            [7] Lee S H, Yeh C H, Hou T W, et al. A LightweightNeural Network Based on AlexNet-SSD Model forGarbage Detection[C]//Proceedings of the 2019 3rdHigh Performance Computing and Cluster TechnologiesConference. 2019: 274-278.

           ?。ㄗⅲ罕疚膩碓从诳萍计诳峨娮赢a(chǎn)品世界》2020年第06期第71頁,歡迎您寫論文時引用,并注明出處。)



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();