如何利用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 总结

值得一提的是,尽管方法上是有实现的可能,但是实际操作中肯定要更复杂的多,尤其是对精度有着很高的要求。

而且当一个图片里面包含着好几种垃圾种类,这也会让我们的分类模型开发变得很复杂,增加了难度。

比如,我们想要对一杯奶茶进行垃圾分类,照片里面是包含了多个垃圾的种类,这就比较头大了,因为这并不是属于单一的类别。

前路的困难肯定是有的,不过就当这里的分享是个抛砖引玉的起点吧。

毕竟李白也说了,“长风破浪会有时,直挂云帆济沧海”。



  • 濡備綍鍒╃敤Python杩涜鍨冨溇鍒嗙被
    绛旓細绗竴绉嶆柟妗堬紝鍙互鎶婂瀮鍦剧殑淇℃伅鍒舵垚琛ㄦ牸鍖栨暟鎹紝鐒跺悗鐢ㄤ紶缁熺殑鏈哄櫒瀛︿範鏂规硶銆傜浜岀鏂规锛鎶婃墍鏈夌殑鍨冨溇鍒嗙被淇℃伅鍋氭垚鐭ヨ瘑鍥捐氨锛屾瘡涓娆$殑鏌ヨ灏卞ソ鍍忔槸鍦ㄧ炕瀛楀吀涓鏍锋煡闃呬俊鎭傜涓夌鏂规锛屽彲浠ュ熷姪鐜板湪鐨勬繁搴﹀涔犳柟娉曪紝鏉ュ鍨冨溇杩涜璇嗗埆鍜屽垎绫汇傛瘡娆℃垜浠粰涓寮犲瀮鍦剧殑鍥剧墖锛岃妯″瀷璇嗗埆鍑鸿繖鏄睘浜庡摢涓绉 绫诲埆鐨勶細...
  • python鎬庝箞杩涜鍐呭瓨绠$悊鐨?
    绛旓細寮曠敤璁℃暟鏄Python涓渶绠鍗曘佹渶鍩烘湰鐨勫唴瀛樼鐞嗘満鍒躲傚畠鐨勫師鐞嗘槸閫氳繃璁℃暟鏉ョ鐞嗗唴瀛樸傚綋瀵硅薄琚垱寤烘椂锛孭ython浼氫负璇ュ璞″垱寤轰竴涓紩鐢ㄨ鏁般傛瘡褰撴湁涓涓彉閲忓紩鐢ㄨ瀵硅薄鏃讹紝鍏跺紩鐢ㄨ鏁板氨浼氬姞1銆傚綋璇ュ彉閲忎笉鍐嶅紩鐢ㄨ瀵硅薄鏃讹紝鍏跺紩鐢ㄨ鏁板氨浼氬噺1銆傚綋寮曠敤璁℃暟涓0鏃讹紝璇ュ璞″氨琚涓烘槸鍨冨溇锛孭ython浼氳嚜鍔ㄥ洖鏀惰瀵硅薄鐨...
  • python鍐呭瓨绠$悊鏈哄埗
    绛旓細鍏蜂綋鏉ヨ锛python涓鐨勫瀮鍦惧垎涓1锛2锛3浠o紝鍦1浠i噷鐨勫璞℃瘡娆″洖鏀堕兘浼氬幓娓呯悊锛屽綋娓呯悊鍚庢湁寮曠敤鐨勫璞′緷鐒跺瓨鍦紝姝ゆ椂浠栦細杩涘叆2浠i泦鍚堬紝鍚岀悊2浠i泦鍚堟竻鐞嗙殑鏃跺欏瓨鍦ㄧ殑瀵硅薄浼氳繘鍏3浠i泦鍚堛傛瘡涓泦鍚堢殑娓呯悊鏃堕棿濡備綍鍒嗛厤锛氫細鍏堟竻鐞1浠e瀮鍦撅紝褰撴竻鐞10娆′竴浠e瀮鍦惧悗浼氭竻鐞嗕竴娆2浠e瀮鍦撅紝褰撴竻鐞10娆2浠e瀮鍦惧悗浼氭竻...
  • Python濡備綍杩涜鍐呭瓨绠$悊
    绛旓細1)瀵硅薄鐨寮曠敤璁℃暟鏈哄埗(鍥涘浜斿噺)2)鍨冨溇鍥炴敹鏈哄埗(鎵嬪姩鑷姩锛屽垎浠e洖鏀)3)鍐呭瓨姹犳満鍒(澶灏弍)1)瀵硅薄鐨勫紩鐢ㄨ鏁版満鍒 瑕佷繚鎸佽拷韪唴瀛樹腑鐨勫璞★紝Python浣跨敤浜嗗紩鐢ㄨ鏁拌繖涓绠鍗曠殑鎶鏈俿ys.getrefcount(a)鍙互鏌ョ湅a瀵硅薄鐨勫紩鐢ㄨ鏁帮紝浣嗘槸姣旀甯歌鏁板ぇ1锛屽洜涓鸿皟鐢ㄥ嚱鏁扮殑鏃跺欎紶鍏锛岃繖浼氳a鐨勫紩鐢ㄨ鏁+1 2)...
  • 涓轰粈涔堣Python閲囩敤鐨勬槸鍩轰簬鍊肩殑鍐呭瓨绠$悊妯″紡
    绛旓細锛1锛鍨冨溇鍥炴敹 锛2锛夊紩鐢ㄨ鏁 锛3锛夊唴瀛樻睜鏈哄埗 涓銆佸瀮鍦惧洖鏀讹細python涓嶅儚C++锛孞ava绛夎瑷涓鏍凤紝浠栦滑鍙互涓鐢浜嬪厛澹版槑鍙橀噺绫诲瀷鑰岀洿鎺ュ鍙橀噺杩涜璧嬪笺傚Python璇█鏉ヨ锛屽璞$殑绫诲瀷鍜屽唴瀛橀兘鏄 鍦ㄨ繍琛屾椂纭畾鐨勩傝繖涔熸槸涓轰粈涔堟垜浠ОPython璇█涓哄姩鎬佺被鍨嬬殑鍘熷洜锛堣繖閲屾垜浠妸鍔ㄦ佺被鍨嬪彲浠ョ畝鍗曠殑褰掔粨涓哄鍙橀噺鍐呭瓨...
  • Python 鍐呭瓨瀛樺偍鏈哄埗鏄鎬庢牱鐨?
    绛旓細Python鐨鍐呭瓨瀛樺偍鏈哄埗涓昏鍖呮嫭浠ヤ笅鍑犱釜鏂归潰锛1. 瀵硅薄寮曠敤锛氬湪Python涓紝鎵鏈夌殑鏁版嵁閮芥槸浠ュ璞$殑褰㈠紡瀛樺湪鐨勩傚璞$殑寮曠敤鏄瓨鍌ㄥ湪鍫嗭紙heap锛変腑鐨勶紝鑰屽璞℃湰韬垯瀛樺偍鍦ㄦ爤锛坰tack锛変腑銆2. 鍨冨溇鍥炴敹锛歅ython鏈変竴涓唴缃鐨勫瀮鍦鍥炴敹鏈哄埗锛岀敤浜庤嚜鍔ㄥ洖鏀朵笉鍐浣跨敤鐨勫唴瀛樸傚綋涓涓璞℃病鏈変换浣曞紩鐢ㄦ寚鍚戝畠鏃讹紝Python灏变細...
  • 濡備綍浣跨敤Python鍔ㄦ佹帶鍒禠inux绯荤粺鐨勫唴瀛樺崰鐢ㄧ櫨鍒嗘瘮
    绛旓細浣跨敤浠g爜濡備笅:>>>mem=create_string_buffer(104857600)鐢宠鍚庡涓嬪浘鎵绀:浠庝笂杩颁袱骞呭浘涓彲浠ョ湅鍑,鐢宠鍐呭瓨鍓嶅唴瀛樺崰鐢295MB,鐢宠鍚庡唴瀛樺崰鐢397MB,澧炲姞浜嗙害100MB鍐呭瓨鍗犵敤銆3 鍐呭瓨鍔ㄦ侀噴鏀 鐢变簬Python瀵瑰唴瀛樻槸鏈鍨冨溇鍥炴敹鏈哄埗鐨,閲囩敤瀵硅薄寮曠敤璁℃暟鏂瑰紡銆傚綋瀵硅薄鐨勫紩鐢ㄨ鏁颁负0鏃,鍚姩鍨冨溇鍥炴敹GC銆傛澶勫唴瀛樺姩鎬侀噴鏀惧氨鏄娇鐢ㄨ...
  • micpython娓呯悊鍐呭瓨鍗犵敤?
    绛旓細MicroPython 鏄竴绉嶇簿绠鐗堢殑 Python锛屽畠鐨勫祵鍏ュ紡鐜鐩稿杈冨皬锛屽洜姝ゅ湪澶勭悊鍐呭瓨鏃堕渶瑕佹洿鍔犲皬蹇冦傚湪 MicroPython 涓紝鍙互閫氳繃璋冪敤 gc 妯″潡杩涜鑷姩鎴栨墜鍔鍨冨溇鍥炴敹锛屼互娓呯悊鍐呭瓨鍗犵敤銆備互涓嬫槸鍑犱釜甯哥敤鐨 MicroPython 鍐呭瓨娓呯悊鏂规硶锛氳嚜鍔ㄥ瀮鍦惧洖鏀 MicroPython 涓粯璁ゅ惎鐢ㄤ簡鑷姩鍨冨溇鍥炴敹鏈哄埗锛屽彲浠ラ氳繃 gc.enable() ...
  • python濡備綍杩涜鍐呭瓨绠$悊
    绛旓細1.Python鎻愪緵浜嗗鍐呭瓨鐨勫瀮鍦鏀堕泦鏈哄埗锛屼絾鏄畠灏嗕笉鐢ㄧ殑鍐呭瓨鏀惧埌鍐呭瓨姹犺屼笉鏄繑鍥炵粰鎿嶄綔绯荤粺銆2.Pymalloc鏈哄埗銆備负浜嗗姞閫Python鐨鎵ц鏁堢巼锛孭ython寮曞叆浜嗕竴涓唴瀛樻睜鏈哄埗锛岀敤浜庣鐞嗗灏忓潡鍐呭瓨鐨勭敵璇峰拰閲婃斁銆3.Python涓墍鏈夊皬浜256涓瓧鑺傜殑瀵硅薄閮浣跨敤pymalloc瀹炵幇鐨勫垎閰嶅櫒锛岃屽ぇ鐨勫璞″垯浣跨敤绯荤粺鐨 malloc銆4.瀵逛簬...
  • 扩展阅读:少儿编程一共有几级 ... java垃圾回收 ... 少儿python编程自学 ... python入门自学100例 ... python爬虫接单网app ... 学python后到底能干什么 ... python初学编程必背 ... 学python最佳年龄 ... 学了python再学c++好学吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网