當前位置:成語大全網 - 新華字典 - 如何利用Python進行垃圾分類

如何利用Python進行垃圾分類

1 引言

七月了,大家最近壹定被壹項新的政策給折磨的焦頭爛額,那就是垃圾分類。《上海市生活垃圾管理條例》已經正式實施了,相信還

是有很多的小夥伴和我壹樣,還沒有完全搞清楚哪些應該扔在哪個類別裏。感覺每天都在學習壹遍垃圾分類,真令人頭大。

聽說壹杯沒有喝完的珍珠奶茶應該這麽扔

1、首先,沒喝完的奶茶水要倒在水池裏

2、珍珠,水果肉等殘渣放進濕垃圾

3、把杯子要丟入幹垃圾

4、接下來是蓋子,如果是帶蓋子帶熱飲(比如大部分的熱飲),塑料蓋是可以歸到可回收垃圾的嗷

看到這裏,是不是大家突然都不想喝奶茶了呢,哈哈。不過不要緊,垃圾分類雖然要執行,但是奶茶也可以照喝。

那麽,這裏我們想討論壹下,人工智能和數據科學的方法能不能幫助我們進行更好的垃圾分類?這樣我們不用為了不知道要扔哪個垃

圾箱而煩惱。

2 思路

這問題的解決思路或許不止壹條。這裏只是拋磚引玉壹下,提供壹些淺顯的見解。

第壹種方案,可以把垃圾的信息制成表格化數據,然後用傳統的機器學習方法。

第二種方案,把所有的垃圾分類信息做成知識圖譜,每壹次的查詢就好像是在翻字典壹樣查閱信息。

第三種方案,可以借助現在的深度學習方法,來對垃圾進行識別和分類。每次我們給壹張垃圾的圖片,讓模型識別出這是屬於哪壹種

類別的:幹垃圾,濕垃圾,有害垃圾還是可回收垃圾。

3 圖像分類

圖像分類是深度學習的壹個經典應用。它的輸入是壹張圖片, 然後經過壹些處理,進入壹個深度學習的模型,該模型會返回這個圖片

裏垃圾的類別。這裏我們考慮四個類別:幹垃圾,濕垃圾,有害垃圾還是可回收垃圾。

(報紙 :可回收垃圾 )

(電池 :有害垃圾 )

(壹次性餐盒 :幹垃圾 )

我們對圖片裏的物品進行分類,這是圖像處理和識別的領域。人工智能裏提出了使用卷積神經網絡(Convolutional Neural Network, CNN)來解決這壹類問題。

我會用keras包和Tensorflow後端來建立模型。 由於訓練集的樣本暫時比較缺乏,所以這裏只能先給壹套思路和代碼。訓練模型的工

作之前還得進行壹波數據收集。

相關推薦:《Python視頻教程》

我們就先來看看代碼大致長什麽樣吧

先導入壹些必要的包。

再做壹下準備工作。

在上面,我們初始化了壹些變量,batch size是128; num_classes = 4,因為需要分類的數量是4,有幹垃圾,濕垃圾,有害垃圾

和可

回收垃圾這四個種類。epochs 是我們要訓練的次數。接下來,img_rows, img_cols = 28, 28 我們給了圖片的緯度大小。

在 .reshape(60000,28,28,1)中 , 60000 是圖片的數量(可變), 28是圖片的大小(可調),並且1是channel的意思,channel = 1?

是指黑白照片。 .reshape(10000,28,28,1)也是同理,只是圖片數量是10000。

到了最後兩行,我們是把我們目標變量的值轉化成壹個二分類, 是用壹個向量(矩陣)來表示。比如 [1,0,0,0] 是指幹垃圾,[0,1,0,0]

是指濕垃圾等等。

接下來是建模的部分。

我們加了卷積層和池化層進入模型。激活函數是 relu,relu函數幾乎被廣泛地使用在了卷積神經網絡和深度學習。我們在層與層之間

也加了dropout來減少過擬合。Dense layer是用來做類別預測的。

建完模型後,我們要進行模型的驗證,保證準確性在線。

到這裏,我們的建模預測已經大概完成了。壹個好的模型,要不斷地去優化它,提高精確度等指標要求,直到達到可以接受的程度。

這優化的過程,我們在這裏就先不深入討論了,以後繼續。

4 總結

值得壹提的是,盡管方法上是有實現的可能,但是實際操作中肯定要更復雜的多,尤其是對精度有著很高的要求。

而且當壹個圖片裏面包含著好幾種垃圾種類,這也會讓我們的分類模型開發變得很復雜,增加了難度。

比如,我們想要對壹杯奶茶進行垃圾分類,照片裏面是包含了多個垃圾的種類,這就比較頭大了,因為這並不是屬於單壹的類別。

前路的困難肯定是有的,不過就當這裏的分享是個拋磚引玉的起點吧。

畢竟李白也說了,“長風破浪會有時,直掛雲帆濟滄海”。