天天看點

垃圾分類:慧眼識垃圾系統

垃圾分類:慧眼識垃圾系統

人工智能大資料與深度學習  公衆号:datayx

背景介紹

  垃圾分類是對垃圾收集處置傳統方式的改革,是對垃圾進行有效處置的一種科學管理方法。人們面對日益增長的垃圾産量和環境狀況惡化的局面,如何通過垃圾分類管理,最大限度地實作垃圾資源利用,減少垃圾處置的數量,改善生存環境狀态,是目前世界各國共同關注的迫切問題。

《公共機構生活垃圾分類工作評價參考标準》

《上海市生活垃圾分類違法行為查處規定》 和 《〈上海市生活垃圾管理條例〉行政處罰裁量基準》

“垃圾分類考試”

設計構思與創意

  “慧眼識垃圾”作品基于目前垃圾分類政策的指引、依據相關的社會調查結果,進行合理有效的方案設定和軟體開發,旨在助力垃圾分類政策的落地施行、普及垃圾分類知識、幫助公衆培養垃圾分類意識,進而建構“和諧、美麗”的社會環境。

  本作品提出與時俱進的創新功能:在每隻垃圾桶端部署帶有攝像裝置的硬體系統,用以将個人垃圾分類結果同個人獎懲記錄相聯系、微信小程式同垃圾桶相聯系、局部垃圾分類資訊同垃圾分類監管部門相聯系,進而建構“個人→垃圾桶→監管”三者互相聯系的垃圾分類系統的方案。此方案能夠有效提高公衆自覺學習垃圾分類知識、自覺進行日常垃圾分類的意識,同時實作“機器監督”代替“人工監督”,極大地降低了垃圾分類監管部門進行相關監管活動的人力成本。

  本作品以微信小程式為“個人”平台,使用者可在微信小程式中錄入必要的人臉等個人資訊,并且能夠以微信小程式為視窗查詢自己的垃圾分類詳情。為保證微信小程式的豐富性和人性化,使用者可在小程式中通過拍照、語音、搜尋等查詢日常生活中常遇的生活垃圾,積累自己垃圾分類知識。在垃圾桶端,系統在使用者授權情況下通過拍攝使用者人臉資訊比對使用者個人資料庫,并記錄其垃圾分類資訊。此外,垃圾桶在本作品中充當“引導者”角色,用以引導使用者将垃圾投擲到正确的垃圾桶中。在管理端,相關部門一方面可在此總覽某地區總體的垃圾分類情況,另一方面也可以通過查詢接口查詢到具體的某個人的垃圾分類詳情。相關部門基于此能夠更加有效地制定出行之有效、因地制宜的垃圾分類政策和相關政策的高效實施。

  • 代碼 擷取方式:
  • 分享本文到朋友圈
  • 關注微信公衆号 datayx  然後回複 垃圾分類  即可擷取。

技術運用與特色

PaddlePaddle

軟體架構

垃圾分類:慧眼識垃圾系統

微信小程式端:微信小程式端有“搜尋、分類、使用者”三大菜單,而在初始登陸時使用者需完成“授權”、“人臉資訊錄入”,“姓名錄入”等操作,用以建立使用者自己的資料連接配接。在“搜尋”菜單内提供了“垃圾拍照”和“語音搜尋”兩大功能。使用者可以在不同場景下選擇最适合的功能選項得到物品對應的垃圾分類結果,進而積累自己的垃圾分類知識;在分類菜單,提供了涵蓋面非常廣泛的垃圾菜單,使用者可以在裡面搜尋到絕大多數自己想要了解的物品分類結果;在使用者菜單,使用者除了可以看到自己的個人登入資訊外,還可以看見自己在垃圾桶端進行垃圾分類的曆史記錄以及自己所積攢的個人積分。

垃圾桶:垃圾桶端用以引導使用者進行正确的垃圾分類。垃圾桶端部署了兩大功能:人臉比對和垃圾識别。使用者通過人臉比對自己在微信小程式端錄入的人臉,進而與屬于自己的資料庫進行連接配接,便于存儲自己接下來的分類資訊。而垃圾識别則是整個作品系統的核心。使用者通過垃圾識别功能預測自己将要丢棄的物品分類結果,并将其存入資料庫中友善使用者及政府查詢。考慮到在現實生活中有老年人等特殊人群的使用,故而在垃圾桶端部署了語音播報功能,進而形成視覺聽覺互補進行的人性化設計。

管理端:管理端用于政府部門查詢、分析某個垃圾投放點的具體情況。在管理端中,政府部門可以查詢在特定的垃圾投放點群衆的投放物品、預測結果、個人資訊等資料庫中的存儲資訊,友善對于某些未按要求進行垃圾分類的群衆進行查處,也便于對積分較高的群衆進行獎勵。除此以外,政府部分通過分析某個垃圾桶放點的垃圾分類情況,可以更加合理高效地制定更具有針對性的垃圾分類政策。

開源代碼或調用實作

深度學習架構:PaddlePaddle;

https://www.paddlepaddle.org.cn/      

人臉檢測:運用其中提到的“利用PaddleHub實作Siamese Network”思想訓練人臉比對模型

https://aistudio.baidu.com/aistudio/projectdetail/560890      

語音合成:百度智能雲線上語音合成

https://cloud.baidu.com/product/speech/tts_online      

關鍵技術

基于PaddleX的垃圾分類

  Paddle X作為飛槳(PaddlePaddle)全流程開發套件,以低代碼形式支援開發者快速實作項目落地。Paddle X內建飛槳智能視覺領域圖像分類、目标檢測、語義分割、執行個體分割任務能力,将深度學習開發全流程從資料準備、模型訓練與多端部署端到端打通,并提供統一任務API接口,幫助開發者實踐落地。

ResNet系列

  ResNet 系列模型由何恺明等在 2015 年于《Deep Residual Learning for Image Recognition》[3]一文中提出。從經驗來看,網絡的深度對模型的性能至關重要,當增加網絡層數後,網絡可以進行更征模式的提取,故而從理論上講更深的網絡可以取得更好的結果。但實驗表明:當網絡深度增加時,網絡準确度出現飽和,甚至出現下降。此即為深度網絡的退化問題。而此篇論文的突出貢獻就在于其創新性地提出了殘差網絡,有效地解決退化問題和網絡優化難得問題。其基本思路在于提出 residual 層,明确地讓這些層拟合殘差映射,而不是希望每幾個堆疊的層直接拟合期望的基礎映射。形式上,将期望的基礎映射表示為 H(x),将堆疊的非線性層拟合另一個映射 F(x)=H(x)−x。原始的映射重寫為 F(x)+x。假設殘差映射比原始的、未參考的映射更容易優化。在極端情況下,如果一個恒等映射是最優的,那麼将殘差置為零比通過一堆非線性層來拟合恒等映射更容快捷連接配接簡單地執行恒等映射,并将其輸出添加到堆疊層的輸出。恒等快捷連接配接既不增加額外的參數也不增加計算複雜度。整個網絡仍然可以由帶有反向傳播的 SGD 進行端到端的訓練。

  而 ResNet50 系列模型包括 ResNet50_vd,ResNet50_vd_ssld 等,在訓練層面用了訓練 ImageNet 的标準訓練流程,而其餘改進版模型采用了更多的訓練政策,如 learning rate 的下降方式采用了 cosine decay,引入了 label smoothing 的标簽正則方式,在資料預處理加入了 mixup 的操作,疊代總輪數從 120 個 epoch 增加到 200 個 epoch。其中,ResNet50_vd_ssld 采用了SSLD知識蒸餾方案,保證模型結構不變的情況下,進一步提升了模型的精度。

簡單的半監督标簽知識蒸餾政策

  近年來,深度神經網絡在計算機視覺、自然語言處理等領域被驗證是一種極其有效的解決問題的方法。在資料量足夠大的情況下,通過合理建構網絡模型的方式增加其參數兩,能夠顯著改善模型性能,但在此情況下模型複雜度也會急劇提升。而深度神經網絡一般有較多的參數備援。PaddleClas團隊融合已有的蒸餾方法,提供了一種簡單的半監督标簽知識蒸餾方案(SSLD,Simple Semi-supervised Label Distillation),基于ImageNet1k分類資料集,在MobileNet系列上的精度均有超過3%的絕對精度提升。

  PaddleClas團隊将學生模型與教師模型組合成一個新網絡,該網絡分别輸出學生模型和教師模型的預測分布,與此同時,固定教師模型整個網絡梯度,而學生模型可以做正常的反向傳播。最後将兩個模型的logits經過softmax激活函數轉換為soft label,并将二者的soft label做JS散度作為損失函數,用于模型蒸餾訓練。

  而PaddleClas的具體實驗政策為:選取合适的教師模型,首先在挑選得到的以ImageNet22k資料集與ImageNet1k資料集為基礎的500萬資料集上進行訓練,而後在Image Net1k訓練集上進行finetune,最終得到蒸餾後的學生模型。

  基于前文所述,PaddleClas在訓練過程中加入自動增廣(AutoAugment) ,同時進一步減小l2_decay,最終ResNet50_vd經過SSLD蒸餾政策,在ImageNet1k上的精度可以達到82.99%,相比之前不加入資料增廣的政策再次增加了0.6%。

訓練調優

  本作品資料集[14]共分為四個大類,分别為可回收物、廚餘垃圾、其他垃圾以及有害垃圾,每大類分類中又有細分,共分四十小類,基本覆寫日常生活中的絕大多數垃圾種類。資料集數量龐大,品質較高,能夠基本滿足深度學習的訓練要求。

  為了提高模型的泛化性和魯棒性,本作品在訓練過程中分别加入了 RandomCrop、RandomVerticalFlip、RandomHorizontalFlip 、RandomDistort和Normalize等多種資料增強方式,分别對資料集中的圖像進行随機剪裁、以一定的機率對圖像進行随機垂直和水準翻轉以及以一定的機率對圖像進行随機像素内容變換和對圖像進行标準化等操作。

  從模型在驗證集中的結果來看,其精度可達90%以上,具有較好的識别能力,故模型具備作品的可行性和有效性。

基于PaddleSlim敏感度分析的剪枝政策

  PaddleSlim是一個模型壓縮工具庫,包括模型裁剪、定點量化、隻是蒸餾、超參數搜尋和模型結構搜尋等一系列模型壓縮政策。

  由于本作品訓練得到的模型體積較大,預測速度較為緩慢,不足以滿足端測、移動端部署場景下的性能需求,故采用 PaddleSlim 的基于敏感度的通道裁剪算法[7]對模型進行裁剪,即通過不同層對剪枝的敏感度來決定裁剪比例,每層敏感度的計算方法是使用不同裁剪比例對該層進行剪枝,評估剪枝後模型在驗證集上的精度損失大小,對于剪枝比例越大,但精度損失越小的層,認為其敏感度越低,可以進行較大比例的裁剪。

  經模型裁剪後,在不影響模型在本作品中的實際預測精度的前提下,模型體積得到有效降低,裁剪約 46.60%,預測速度較之前有顯著提升。

基于PaddleHub的人臉識别檢測

  PaddleHub[16]能夠幫助開發者便捷地擷取PaddlePaddle生态下的預訓練模型,完成模型的管理和預測。配合使用Fine-tune API,可以基于大規模預訓練模型快速完成遷移學習,讓預訓練模型能更好地服務于使用者特定場景的應用。

PyramidBox-Lite

  PyramidBox-Lite基于2018年百度發表于計算機視覺頂級會議ECCV 2018的論文《PyramidBox: A Context-assisted Single Shot Face Detector》而研發的輕量級模型。

  PyramidBox主要提出了一種基于語境輔助的單次人臉檢測新方法——Pyramid Box。基于語境的重要性,文章從以下三個方面改進語境資訊的利用。首先,文章作者設計了一種全新的語境anchor,通過半監督的方法來監督高層級語境特征學習,即PyramidAnchors。其次,文章提出了一種低層次級特征金字塔網絡,将充分的高層級語境語義特征和低層級面部特征結合在一起,使PyramidBox能夠一次性預測所有尺寸的人臉。再次,我們引入了語境敏感結構,擴大預測網絡的容量,以提高最終的輸出準确率。此外,文章還采用“資料—anchor—采樣”的方法來對不同尺寸的訓練樣本進行擴充,增加了較小人臉訓練資料的多樣性。PyramidBox充分利用語境的價值,在兩個常用人臉檢測基準——FDDB和WIDER FACE上表現非凡。

  PyramidBox-Lite在基于主幹網絡FaceBoxes,對于光照、口罩遮擋、表情變化、尺度變化等常見問題具有很強的魯棒性,符合垃圾分類存在極大的不确定環境情況下的使用。此外,該模型是針對于移動端優化過的模型,适合部署于移動端或者邊緣檢測的裝置上,對于本系統具有較大的适應性。

人臉驗證

  人臉驗證任務,即驗證目前圖檔中的人臉是否為資料庫中已存在的某個人的人臉。此任務一般存在兩種實作方式:  1、直接分類,即分辨是準确的哪個人,繼而輸出标簽;

  2、轉換為二分類問題,即分辨兩張人臉照片組成的圖檔對中是否來自同一個人,繼而輸出置信度。

  由于第一種方式存在諸多缺點,例如:當模型訓練完成後,無法随時加入新的人,較為死闆,動态性較差;資料庫中需要采集較為寬泛的人臉儲備,實作難度大。故本作品采取第二種方式來實作人臉驗證。

  将人臉驗證轉換為二分類問題,使用孿生網絡(Siamese Network)實作。首先,通過同一個CNN網絡将人臉圖檔進行相同的編碼,嵌入一個高維的向量空間。然後,使用softmax loss作為損失函數直接對兩個樣本嵌入向量的拼接做二分類訓練,使模型能夠直接輸出兩個相同樣本之間的相似度,當相似度達到一定的門檻值後即判斷是否為同一個人。

  受NLP句對分類,即将兩個句子進行拼接直接進行分類的方式的啟發,在計算機視覺中采取同樣的方式,将上述方法轉換為一個更為簡單的圖像分類方法實作,直接相容Paddle Hub中的各種預訓練模型,即将兩張對比的人臉圖檔進行拼接直接二分類。以此方式,能夠将Siamese Network轉換成一個普遍的圖像分類任務,能夠利用PaddleHub實作。經實驗驗證,本方法在測試集上的準确率能夠達到96.4%,基本符合本作品的實際應用要求。

基于Tyadmin的管理端開發

  Tyadmin是Django基于Models的管理背景前後端生成工具,其主要由Django Restful Framework和Ant Design Pro V4驅動。

  Tyadmin在Model設計完備的基礎上,能夠自動生成前後端管理背景,實作頁面接口全自動對接,包括登入驗證、修改密碼、Dashboard資料統計等多項功能。其支援包括賬号、郵箱登入的多種登入方式;内嵌自動dashboard,能夠自動注冊現有的model count資料;實作全自動的清單展示、增删改查、篩選搜尋和導出Excel,友善管理端管理和查詢相關資料。

  基于此,本作品使用Tyadmin實作供政府端監管、查詢的管理背景,通過連通資料庫,将資料庫中的資料清晰明了地展現給政府監管部門,友善有關部門統計相關地區的垃圾分類資料、監管某地區的垃圾分類具體情況,繼而指定切實合理的垃圾分類政策。

作品特色

  本作品充分調研了目前有關垃圾分類的政策及市場環境,分析了目前垃圾分類落地實作的一些阻力,基于此,本作品提出“個人——垃圾桶——政府”三者互聯的垃圾分類方案。此方案的創新點在于其将原本的政府人員監督替代為機器監督、個人行為與政府監管相聯系,從根本上解決了“政府監管困難”的問題,降低政府監管成本。除此以外,本作品也充分考慮垃圾分類知識的普及:在小程式端設定了“拍照識别”、“語音識别”、“分類搜尋”等子產品,友善使用者在日常生活中借助小程式積累垃圾分類知識。從整體來看,本作品內建了個人行為與政府監管雙落地,實作了知識普及與分類監管互相統一的總體目标。

  此外,本作品采取人臉識别檢測作為使用者憑證,以此連通個人專屬資料庫,進而個人可以在自己的小程式端查詢自己的個人積分與曆史記錄,政府既可以在管理背景概覽某地區的垃圾分類情況,也可以對某些不遵循垃圾分類的使用者進行查處,有助于垃圾分類的總體實作。

  本作品充分考慮日常生活中的使用人群及使用場景,對于一些聽覺或視覺能力下降的老年人,本系統使用視覺呈現與語音播報二者相結合的方式輸出系統的識别結果,輔助老人們在使用本系統時不會因為個人原因而受到阻礙。此外,本作品的界面及功能設計充分考慮當代人的使用習慣和使用邏輯,界面簡潔美觀、功能齊全高效,并且對積分總量設定了相應的“段位”,符合當下年輕人的使用體驗,并且能夠達到“鼓勵群衆積極參與垃圾分類”的目的。

  由于本作品的人臉識别檢測與個人專屬資料庫挂鈎、垃圾分類結果與個人積分挂鈎,整體系統與政府監管相聯系,故在本作品中,確定人臉識别檢測及垃圾分類模型的精度,是本作品諸多待需解決問題中的“重中之重”!而本作品采用2.3.1和2.3.2中所提及的關鍵技術,攻克了這兩個難題,垃圾分類模型精度達到99.46%,人臉識别檢測模型達到96.4%,基本滿足本作品在實際應用場景下的精度需求。

安裝教程

  1. 下載下傳本系統源代碼檔案夾放置在Windows系統C槽目錄下;
  2. 安裝python依賴庫:pip install -r requestment.txt;
  3. 将garbage_model.zip解壓到代碼檔案夾;
  4. 打開Cmd進入本作品檔案夾下,執行python manage.py runserver即可運作後端;
  5. 打開開發者工具,導入系統檔案夾下wx_mini_app檔案夾并運作,即可運作小程式端;
  6. 打開浏覽器,輸入http://127.0.0.1:8000/xadmin/ 輸入賬号:tyadmin,密碼:tyadmin,即可進入背景管理端。

效果代表圖及B站展示視訊

垃圾分類:慧眼識垃圾系統
垃圾分類:慧眼識垃圾系統
垃圾分類:慧眼識垃圾系統
垃圾分類:慧眼識垃圾系統
垃圾分類:慧眼識垃圾系統

機器學習算法AI大資料技術

 搜尋公衆号添加: datanlp

長按圖檔,識别二維碼

不斷更新資源

繼續閱讀