摘要:不過(guò)不要緊,垃圾分類(lèi)雖然要執(zhí)行,但是奶茶也可以照喝。這里我們考慮四個(gè)類(lèi)別干垃圾,濕垃圾,有害垃圾還是可回收垃圾。報(bào)紙可回收垃圾電池有害垃圾一次性餐盒干垃圾我們對(duì)圖片里的物品進(jìn)行分類(lèi),這是圖像處理和識(shí)別的領(lǐng)域。
目錄
0 環(huán)境
1 引言
2 思路
3 圖像分類(lèi)
4 總結(jié)
Python版本:3.6.8
系統(tǒng)版本:macOS Mojave
Python Jupyter Notebook
1 引言七月了,大家最近一定被一項(xiàng)新的政策給折磨的焦頭爛額,那就是垃圾分類(lèi)。《上海市生活垃圾管理?xiàng)l例》已經(jīng)正式實(shí)施了,相信還是有很多的小伙伴和我一樣,還沒(méi)有完全搞清楚哪些應(yīng)該扔在哪個(gè)類(lèi)別里。感覺(jué)每天都在學(xué)習(xí)一遍垃圾分類(lèi),真令人頭大。
聽(tīng)說(shuō)一杯沒(méi)有喝完的珍珠奶茶應(yīng)該這么扔
1、首先,沒(méi)喝完的奶茶水要倒在水池里
2、珍珠,水果肉等殘?jiān)胚M(jìn)濕垃圾
3、把杯子要丟入干垃圾
4、接下來(lái)是蓋子,如果是帶蓋子帶熱飲(比如大部分的熱飲),塑料蓋是可以歸到可回收垃圾的嗷
看到這里,是不是大家突然都不想喝奶茶了呢,哈哈。不過(guò)不要緊,垃圾分類(lèi)雖然要執(zhí)行,但是奶茶也可以照喝。
那么,這里我們想討論一下,人工智能和數(shù)據(jù)科學(xué)的方法能不能幫助我們進(jìn)行更好的垃圾分類(lèi)?這樣我們不用為了不知道要扔哪個(gè)垃圾箱而煩惱。
2 思路這問(wèn)題的解決思路或許不止一條。這里只是拋磚引玉一下,提供一些淺顯的見(jiàn)解。
第一種方案,可以把垃圾的信息制成表格化數(shù)據(jù),然后用傳統(tǒng)的機(jī)器學(xué)習(xí)方法。
第二種方案,把所有的垃圾分類(lèi)信息做成知識(shí)圖譜,每一次的查詢(xún)就好像是在翻字典一樣查閱信息。
第三種方案,可以借助現(xiàn)在的深度學(xué)習(xí)方法,來(lái)對(duì)垃圾進(jìn)行識(shí)別和分類(lèi)。每次我們給一張垃圾的圖片,讓模型識(shí)別出這是屬于哪一種類(lèi)別的:干垃圾,濕垃圾,有害垃圾還是可回收垃圾。
圖像分類(lèi)是深度學(xué)習(xí)的一個(gè)經(jīng)典應(yīng)用。它的輸入是一張圖片, 然后經(jīng)過(guò)一些處理,進(jìn)入一個(gè)深度學(xué)習(xí)的模型,該模型會(huì)返回這個(gè)圖片里垃圾的類(lèi)別。這里我們考慮四個(gè)類(lèi)別:干垃圾,濕垃圾,有害垃圾還是可回收垃圾。
我們對(duì)圖片里的物品進(jìn)行分類(lèi),這是圖像處理和識(shí)別的領(lǐng)域。人工智能里提出了使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)來(lái)解決這一類(lèi)問(wèn)題。
我會(huì)用keras包和Tensorflow后端來(lái)建立模型。 由于訓(xùn)練集的樣本暫時(shí)比較缺乏,所以這里只能先給一套思路和代碼。訓(xùn)練模型的工作之前還得進(jìn)行一波數(shù)據(jù)收集。
我們就先來(lái)看看代碼大致長(zhǎng)什么樣吧
先導(dǎo)入一些必要的包。
再做一下準(zhǔn)備工作。
在上面,我們初始化了一些變量,batch size是128; num_classes = 4,因?yàn)樾枰诸?lèi)的數(shù)量是4,有干垃圾,濕垃圾,有害垃圾和可回收垃圾這四個(gè)種類(lèi)。epochs 是我們要訓(xùn)練的次數(shù)。接下來(lái),img_rows, img_cols = 28, 28 我們給了圖片的緯度大小。
在 .reshape(60000,28,28,1)中 , 60000 是圖片的數(shù)量(可變), 28是圖片的大小(可調(diào)),并且1是channel的意思,channel = 1 是指黑白照片。 .reshape(10000,28,28,1)也是同理,只是圖片數(shù)量是10000。
到了最后兩行,我們是把我們目標(biāo)變量的值轉(zhuǎn)化成一個(gè)二分類(lèi), 是用一個(gè)向量(矩陣)來(lái)表示。比如 [1,0,0,0] 是指干垃圾,[0,1,0,0]是指濕垃圾等等。
接下來(lái)是建模的部分。
我們加了卷積層和池化層進(jìn)入模型。激活函數(shù)是 relu,relu函數(shù)幾乎被廣泛地使用在了卷積神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)。我們?cè)趯优c層之間也加了dropout來(lái)減少過(guò)擬合。Dense layer是用來(lái)做類(lèi)別預(yù)測(cè)的。
建完模型后,我們要進(jìn)行模型的驗(yàn)證,保證準(zhǔn)確性在線。
到這里,我們的建模預(yù)測(cè)已經(jīng)大概完成了。一個(gè)好的模型,要不斷地去優(yōu)化它,提高精確度等指標(biāo)要求,直到達(dá)到可以接受的程度。
這優(yōu)化的過(guò)程,我們?cè)谶@里就先不深入討論了,以后繼續(xù)。
4 總結(jié)值得一提的是,盡管方法上是有實(shí)現(xiàn)的可能,但是實(shí)際操作中肯定要更復(fù)雜的多,尤其是對(duì)精度有著很高的要求。
而且當(dāng)一個(gè)圖片里面包含著好幾種垃圾種類(lèi),這也會(huì)讓我們的分類(lèi)模型開(kāi)發(fā)變得很復(fù)雜,增加了難度。
比如,我們想要對(duì)一杯奶茶進(jìn)行垃圾分類(lèi),照片里面是包含了多個(gè)垃圾的種類(lèi),這就比較頭大了,因?yàn)檫@并不是屬于單一的類(lèi)別。
前路的困難肯定是有的,不過(guò)就當(dāng)這里的分享是個(gè)拋磚引玉的起點(diǎn)吧。
畢竟李白也說(shuō)了,“長(zhǎng)風(fēng)破浪會(huì)有時(shí),直掛云帆濟(jì)滄海”。
關(guān)注公眾號(hào)「Python專(zhuān)欄」,后臺(tái)回復(fù)「垃圾分類(lèi)2」獲取本文全套代碼。更多有意思的python等著你
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/45079.html
摘要:還是老規(guī)矩,從易到難吧傳統(tǒng)的定時(shí)器,異步編程等。分配對(duì)象時(shí),先是在空間中進(jìn)行分配。內(nèi)存泄漏內(nèi)存泄漏是指程序中己動(dòng)態(tài)分配的堆內(nèi)存由于某種原因程序未釋放或無(wú)法釋放,造成系統(tǒng)內(nèi)存的浪費(fèi),導(dǎo)致程序運(yùn)行速度減慢甚至系統(tǒng)崩潰等嚴(yán)重后果。 showImg(https://segmentfault.com/img/bVbwkad?w=1286&h=876); 網(wǎng)上參差不棄的面試題,本文由淺入深,讓你在...
摘要:還是老規(guī)矩,從易到難吧傳統(tǒng)的定時(shí)器,異步編程等。分配對(duì)象時(shí),先是在空間中進(jìn)行分配。內(nèi)存泄漏內(nèi)存泄漏是指程序中己動(dòng)態(tài)分配的堆內(nèi)存由于某種原因程序未釋放或無(wú)法釋放,造成系統(tǒng)內(nèi)存的浪費(fèi),導(dǎo)致程序運(yùn)行速度減慢甚至系統(tǒng)崩潰等嚴(yán)重后果。 showImg(https://segmentfault.com/img/bVbwkad?w=1286&h=876); 網(wǎng)上參差不棄的面試題,本文由淺入深,讓你在...
摘要:安裝后已經(jīng)完成了安裝,并且等待其他的線程被關(guān)閉。激活后在這個(gè)狀態(tài)會(huì)處理事件回調(diào)提供了更新緩存策略的機(jī)會(huì)。并可以處理功能性的事件請(qǐng)求后臺(tái)同步推送。廢棄狀態(tài)這個(gè)狀態(tài)表示一個(gè)的生命周期結(jié)束。 showImg(https://segmentfault.com/img/bVbwWJu?w=2056&h=1536); 不知不覺(jué),已經(jīng)來(lái)到了最后的下篇 其實(shí)我寫(xiě)的東西你如果認(rèn)真去看,跟著去寫(xiě),應(yīng)該能有...
摘要:前端個(gè)靈魂拷問(wèn),徹底搞明白你就是中級(jí)前端工程師上篇感覺(jué)大家比較喜歡看這種類(lèi)型的文章,以后會(huì)多一些。所有依賴(lài)這個(gè)模塊的語(yǔ)句,都定義在一個(gè)回調(diào)函數(shù)中,等到加載完成之后,這個(gè)回調(diào)函數(shù)才會(huì)運(yùn)行。此規(guī)范其實(shí)是在推廣過(guò)程中產(chǎn)生的。 showImg(https://segmentfault.com/img/bVbwAMU?w=700&h=394); 前端20個(gè)靈魂拷問(wèn),徹底搞明白你就是中級(jí)前端工程師...
摘要:前端個(gè)靈魂拷問(wèn),徹底搞明白你就是中級(jí)前端工程師上篇感覺(jué)大家比較喜歡看這種類(lèi)型的文章,以后會(huì)多一些。所有依賴(lài)這個(gè)模塊的語(yǔ)句,都定義在一個(gè)回調(diào)函數(shù)中,等到加載完成之后,這個(gè)回調(diào)函數(shù)才會(huì)運(yùn)行。此規(guī)范其實(shí)是在推廣過(guò)程中產(chǎn)生的。 showImg(https://segmentfault.com/img/bVbwAMU?w=700&h=394); 前端20個(gè)靈魂拷問(wèn),徹底搞明白你就是中級(jí)前端工程師...
閱讀 1228·2021-09-26 09:46
閱讀 1582·2021-09-06 15:00
閱讀 713·2019-08-30 15:52
閱讀 1116·2019-08-29 13:10
閱讀 1277·2019-08-26 13:47
閱讀 1479·2019-08-26 13:35
閱讀 2028·2019-08-23 18:38
閱讀 721·2019-08-23 17:59