




收稿日期:2023-08-22
DOI:10.19850/j.cnki.2096-4706.2024.05.025
摘" 要:研究如何利用TensorFlow對垃圾圖像進行分類。采用卷積神經網絡(CNN)作為主要方法,通過在大型數據集上進行訓練和微調,實現了對不同類型垃圾圖像的準確分類。研究結果表明,提出的模型在測試集上表現卓越,整體分類準確率超過90%。此外,通過對模型進行可視化分析,揭示了其對圖像特征的學習方式,進一步深化了對分類過程的理解??偠灾?,基于TensorFlow的深度學習方法在垃圾圖像分類領域具有廣泛的應用前景。
關鍵詞:TensorFlow;垃圾分類;Python;卷積神經網絡;注意力機制
中圖分類號:TP391.4" 文獻標識碼:A" 文章編號:2096-4706(2024)05-0115-05
Research on Garbage Image Classification Based on TensorFlow
QU Mingyang, ZHANG Yue
(Shandong Youth University of Political Science, Ji'nan" 250103, China)
Abstract: This paper explores how to use TensorFlow to classify garbage images. Using Convolutional Neural Networks (CNN) as the main method, accurate classification of different types of garbage images is achieved through training and fine-tuning on large datasets. The research results indicate that the proposed model performs excellently on the test set, with an overall classification accuracy of over 90%. In addition, through visual analysis of the model, its learning method for image features is revealed, further deepening the understanding of the classification process. In summary, deep learning methods based on TensorFlow have broad application prospects in the field of garbage image classification.
Keywords: TensorFlow; garbage classification; Python; Convolutional Neural Networks; Attention Mechanism
0" 引" 言
為促進中國各級公共機構更為有效地履行生活垃圾分類職責,并在該領域發揮其先導示范作用,2019年國管局發布《公共機構生活垃圾分類工作評價參考標準》,目的在于進一步強化生活垃圾分類相關工作。垃圾分類在我國眾多城市已經積極推行并將持續深化,其潛在效益在于提升垃圾資源與經濟的價值,追求資源最大程度的利用,減少垃圾處理量以及處理設施的負荷,從而削減處理成本,減緩土地資源的枯竭,兼具社會、經濟和生態等多方面的收益。然而,隨著中國人民的生活水準的不斷加強,各個城市垃圾的總量也在逐年增加。智慧城市建設的重點領域之一是垃圾的智能分類和回收利用。目前,垃圾分類主要依靠物理分選技術,但這種方法存在幾個問題,包括使用大量土地資源和二次污染的潛在風險。這些挑戰限制了對自動化、無害和智能垃圾分類的關鍵要求。因此,本研究的主要目標是構建基于TensorFlow算法的廢物分類系統,該系統依靠圖像識別和人工智能分析等先進技術來實現全自動工作流程,從而有效減少人工干預的依賴,進一步顯著提升廢物回收效率。
1" 基本概況
盡管我國到目前為止在垃圾分類領域已經進行了廣泛的實踐,然而從參與率、正確投放度以及資源化程度等方面來看,與國外先進城市仍存在較大差距。此外,我國在垃圾分類工作的推進方面進展緩慢,收效不顯著。有研究者指出,我國各大城市在實施垃圾分類方面普遍面臨著一系列挑戰。因此,開發一款智能垃圾識別系統的緊迫性備受關注,其旨在借助圖像識別和智能分析技術,實現對各類廢物的自動分類辨識,并進一步實現垃圾自動分揀的控制,以滿足日常廢物處理的要求,這已成為刻不容緩的課題。
在此背景下,探索智能垃圾識別處理系統的研發勢在必行。該系統將借助圖像通過利用識別和智能分析技術,迅速辨識多類廢物并自動實現分揀,以應對日常廢物處理的需求,還有助于提高參與度和正確投放度,促進垃圾資源化的進程??傊?,智能垃圾識別處理系統的研發將在我國垃圾分類工作的推進中發揮關鍵作用[1]。
2" TensorFlow算法設計的相關知識
本研究的核心關注點集中在TensorFlow平臺的應用,該平臺被用于數據集模型的訓練,以提升圖像識別的準確性和細粒度分類。TensorFlow是一款高性能的開源計算框架,具備在各種服務器、個人計算機終端和網絡應用中部署的能力,同時支持GPU和TPU等高性能數值計算設備。該框架廣泛應用于谷歌內部產品開發和多領域科學研究[2]。
TensorFlow的核心概念基于Data Flow Graphs計算模型,其中圖中的節點代表數學操作,邊代表節點之間的多維數據數組關系,即張量(Tensor)。這種圖計算結構賦予了TensorFlow出色的靈活性,使其能夠適用于各種平臺,包括臺式計算機、服務器和移動設備等。卷積神經網絡(CNN)是深度學習中主要用于圖像分類的算法,其卷積過程如圖1所示。CNN將輸入圖像視為激活量,并將其輸出作為相應的激活量。與傳統的人工神經網絡不同,CNN的中間層具有空間維度,包括高度、寬度和深度。該算法通常由卷積層、最大池化層和全連接層組成[3]。
因此,本研究集中于TensorFlow平臺的運用,以支持數據集模型的訓練,從而提高圖像識別準確性,并借助卷積神經網絡作為核心方法,實現對圖像的分類。這一方法有望顯著提升分類效果并在各個領域產生積極影響[4,5]。
卷積層在深度學習網絡和學習中起著至關重要的作用。這個圖層用于接收輸入數據,然后將具有特定的圖像高度、寬度和深度,一系列濾波器被引入卷積層,通常以隨機初始化矩陣的形式。卷積操作通過使用過濾器Filter(也稱作卷積核),將當前層神經網絡上的子節點矩陣轉化為下一層神經網絡上的一個節點矩陣,得到的矩陣稱之為特征圖(Feature Map)。依此類推。這些過濾器通過卷積操作處理輸入數據,這些操作在輸入圖像上空間滾動,并對整個圖像執行準時乘積計算,獲得激活卡。點積計算如下:
其中W表示過濾器、x表示輸入圖像,b表示偏差,在每個卷積層的末端,CNN卷積最終會獲得濾波器的激活圖示。激活函數為ReLU:
此激活功能的一個特征是,通過將最小閾值設置為零,它最終將值減少到零以下。最大池級別用作激活卡的下采樣級別,通常使用篩選器將輸入激活卡的空間大小減少一半。另一種池化方法是中等池化。完全連接的最后一層將輸入作為體積作為輸入,并與整個輸入總和建立完全耦合的關系,并通過執行數組乘法運算來計算輸出。ReLU具有非線性:ReLU是一種非線性激活函數,能夠引入非線性特性到神經網絡中。這使得神經網絡能夠更好地擬合復雜的數據和學習復雜的函數。稀疏激活性:在訓練過程中,ReLU激活函數會使一部分神經元處于非激活狀態(輸出為零),而只有部分神經元會被激活。這種稀疏激活性有助于網絡的泛化能力,減少過擬合風險。
卷積操作是通過卷積核對每個通道的矩陣從左到右、從上至下進行互相關運算,就像一個小的窗口一樣,從左上角一步步滑動到右下角,滑動的步長是個超參數,互相關運算的意思就是對應位置相乘再相加,最后把三個通道的值也對應加起來得到一個值卷積層采用卷積過程,其中包括線性數學過程,如式(1)所示[6]:
(1)
當式(1)被用于連續域時,可以得到式(2)的情況:
(2)
相比而言,x[k - j]在這種方程里面也可以換作x[k + j],例如下面這個方程:
(3)
在卷積過程中,濾波器w表示卷積層的權重參數,輸入x表示該層的輸入數據,激活函數f (·)用于對輸出結果進行非線性處理。卷積操作指的是對輸入的變量x與卷積層內的神經元的權重向量(w)進行的點積運算的數學過程。步幅(ζ)是其中的一個小參數,可以表示為在卷積過程中過濾器輸入窗口上的偏移量,也可在下面方程中計算出來:
(4)
卷積神經網絡算法包含正向傳播和反向傳播這兩個最為關鍵階段。在正向傳播中,圖像逐層經過網絡,生成輸出并與期望輸出進行比較,從而計算誤差。接著,在反向傳播中,通過優化技術(如梯度下降)來調整濾波器的權重,從而調整出最小化的誤差。所有的垃圾數據集中的圖像都被調整為256×360像素的尺寸,作為網絡圖片的輸入。誤差計算采用了二進制交叉熵方法,并采用RMSprop作為優化器。在GTX 750Ti圖形處理器上,CNN的訓練過程約耗時3~3.5小時[7]。
盡管數據集經過擴充,但由于樣本之間高度相關,存在過擬合的潛在風險。為應對這個問題,研究通過調整模型的熵容量,采用較小的CNN架構,減少網絡層數以及每層濾波器的數量。此外,數據增強和0.5的丟失率有助于減輕過擬合問題[8]。
為了評估本研究所用模型是否會出現過擬合的現象,我們設置了驗證集來檢測模型訓練的準確性。通過在訓練過程中周期性地驗證模型性能,以決定是否繼續訓練。最終的實驗結果如圖2所示。這一深入研究在CNN模型設計和訓練過程中充分考慮了數據特性、過擬合問題以及模型性能評估等關鍵因素,為垃圾分類問題的解決提供了有益參考。
圖2" 通過訓練的模型預測準確度
3" 數據的收集和數據的相關處理
本文主要研究不同類垃圾回收分類的問題,該研究的主要方向是準確無誤地識別居民生活中最常見的不同種類的垃圾類型,在這其中包括碎玻璃、廢紙、破紙板、白色塑料、廢物金屬,等等。然而,由于目前城市居民的垃圾回收數據集的限制,研究領域普遍存在數據不足的挑戰。為解決這一問題,本研究采用了自主構建圖像數據集的方法。
我們構建的數據集遵循的是傳統的正向圖像數據集構建方法。然而,鑒于各種可回收材料的樣品數量相對較少,在數據處理過程中使用了必要的圖像增強方法,包括進行不規則旋轉、調整圖片的亮度、改變垃圾圖片的位置、對垃圾圖片進行不同比例改變和裁剪。不僅如此,本研究還對圖片數據進行了預處理,例如圖片歸一化處理。
本研究所用的數據集包含6種不同的城市常見垃圾樣本,拍取的時候每張照片的角度和曝光設置不同。圖3顯示了從自建數據集中選擇的一些示例圖像,以說明數據集內容的特征[9]。
圖3" 數據集部分樣本
4" 實驗方法
兩個模型訓練的代碼分別對應CNN模型和Mobilenet模型,CNN模型訓練部分通過TensorFlow構建了一個簡單的卷積神經網絡,這個神經網絡由兩層卷積和兩層池化所構成,之后將特征拉直之后送入到兩個全連接層進行分類,Mobilenet模型采用了深度可分離卷積的技術,提高了網絡的層次,提升了準確率,而且模型非常輕量,訓練好的Mobilenet模型不到20M,在CPU的條件下或者是在手機的條件下都有不錯的性能,這里的訓練方式我們采用的是遷移學習,即只使用Mobilenet的特征提取層,特征提取層的參數已經在大型數據集Imagenet上訓練好,不需要再進行訓練,我們只需要添加全連接層,對應到具體的分類數據即可。其次就是通道注意力,在卷積處理的多個層次之后,圖像經過轉換生成了一個特征矩陣,其通道數等于卷積層所使用的卷積核的數量。然而,一般情況下,卷積核的數量可能高達1 024或2 048,但并非每個通道都攜帶著關鍵信息。因此,為了提高計算效率,需要對這些通道進行篩選或過濾,以減少不必要的冗余信息,也就是注意力通道,來得到優化后的特征,如圖4所示。主要思路就是:增大有效通道權重,減少無效通道的權重,算式表示如下[10]:
(5)
其中,Fmax和Favg表示對Feature Map在這個空間維度上使用的最大池化和平均池化。WO ∈ RC / rxc,W1 ∈ RCC / r,Wo后使用了ReLU作為激活函數,O表示Sigmoid函數[11]。
5" 實驗結果
通過進一步的統計分析,第一次測試的結果表明存在很大的誤差,但通過對模型的深入研究,準確性得到了提高。該系統在紙制品識別方面實現了75%的準確率,在識別金屬廢料方面的準確率達到90%,在塑料廢料的識別中實現了87%的準確率,在玻璃廢料的識別中達到了97%的準確率。這些結果表明,該系統在滿足實際應用需求的同時,具有優異的檢測性能。廢紙檢測性能仍有改進的余地,需要額外的培訓來提高準確性。
經過無數次的測驗和分析數據集,我們最終得到了該模型的結果。這樣的模型成果使得垃圾分類得以簡便實現,從而為環境保護和資源回收做出積極貢獻,相關結果如圖5所示。這一研究不僅有望為垃圾分類領域提供有力支持,還可為智能系統在其他領域的應用提供借鑒與啟發。關鍵代碼如下:
test_x, test_y = validation_generator.__getitem__(1)
preds = model.predict(test_x)
plt.figure(figsize=(16, 16))
for i in range(16):
plt.subplot(4, 4, i+1)
plt.title('pred:%s / truth:%s' % (labels[np.argmax(preds[i])], labels[np.argmax(test_y[i])]))
plt.imshow(test_x[i])
圖5" 垃圾分類結果展示
6" 缺點及改進
從圖中的數據分析可得,測試集的分類準確率表現并不令人滿意。這可能是因為訓練模型的不夠完善以及訓練集數據量較為有限。為了進一步提升垃圾分類模型的準確性和有效性,本研究將通過以下兩個方向來改進神經網絡模型:
1)在訓練集方面,計劃通過增加各類垃圾的圖片數據來彌補數據不足的問題。通過豐富訓練數據,模型將能夠更好地理解和區分各個類別,從而提升分類準確率。
2)對于已建立的神經網絡模型,本研究將進一步引入通道注意力機制,以進一步提升模型的分類準確性。通過優化卷積神經網絡中的通道權重分布,有效減少無益通道的影響,從而使模型能夠更加集中地關注有益的特征信息,進一步提高分類性能。
綜上所述,本文將通過增加訓練數據量以及引入通道注意力機制兩個方面,著手改進現有的神經網絡模型。這一努力有望在垃圾圖像分類問題中取得更加令人滿意的結果,同時也能夠為類似的圖像分類任務提供一定的指導與啟示。
7" 結" 論
當前城市的迅速發展導致垃圾產生量的不容忽視,因此,基于TensorFlow的生活垃圾分類與回收處理系統的應用顯得尤為重要。該系統能夠以高效迅速的方式進行垃圾分類,從而有效減輕城市垃圾處理所面臨的壓力。本研究所提出的軟件的解決方案是建立在TensorFlow基礎框架之上的,通過本研究模型的不斷訓練和循序漸進的推理過程,成功實現了對垃圾種類的高效識別。這一系統的應用可提高可回收垃圾的有效回收率,從而在促進資源再利用的同時,也為社會創造更多就業機會,減少資源的浪費,達到了環保的綠色目標。此外,這一系統的推廣還能加快我國生態文明建設的進程,為垃圾回收領域的智能化發展提供新的思考方向,降低垃圾分類工作的難度,為實現可持續發展貢獻一份力量。綜合而言,該系統在垃圾分類與資源回收領域擁有良好的市場應用前景,將為城市的可持續發展提供有益支持。
參考文獻:
[1] 王子彥,丁旭,周丹.中國城市生活垃圾分類回收問題研究——對日本城市垃圾分類經驗的借鑒 [J].東北大學學報:社會科學版,2008(6):501-504.
[2] 陳春煌.基于TensorFlow的新型智能垃圾分類系統研發 [J].現代工業經濟和信息化,2021,11(12):45-46+49.
[3] 韓山杰,談世哲.基于TensorFlow進行股票預測的深度學習模型的設計與實現 [J].計算機應用與軟件,2018,35(6):267-271+291.
[4] 應毅,劉亞軍,任凱.基于容器云的分布式深度學習實驗平臺構建 [J].實驗技術與管理,2022,39(3):147-152.
[5] 王馬成,黎海濤.基于深度卷積神經網絡的停車位檢測 [J].電子測量技術,2019,42(21):105-108.
[6] 祝朝坤,魏倫勝.基于TensorFlow的智能垃圾分類系統的研究與設計 [J].電子產品世界,2020,27(6):71-75.
[7] 劉俊奇,涂文軒,祝恩.圖卷積神經網絡綜述 [J].計算機工程與科學,2023,45(8):1472-1481.
[8] 李波燕,張勇,袁德榮,等.基于注意力機制的手寫體數字識別 [J].計算機科學,2022,49(S2):626-630.
[9] 劉昱.基于深度生成模型的圖像修復研究 [D].徐州:中國礦業大學,2019.
[10] 李麗雙,郭元凱.基于CNN-BLSTM-CRF模型的生物醫學命名實體識別 [J].中文信息學報,2018,32(1):116-122.
[11] 李繼洲,林欣.基于遞歸結構的神經網絡架構搜索算法 [J].華東師范大學學報:自然科學版,2022(4):31-42.
作者簡介:曲明陽(2001—),男,漢族,山東青島人,本科在讀,研究方向:大數據、數據挖掘。