日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个垃圾分类项目带你玩转飞桨(1)

發布時間:2025/3/8 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个垃圾分类项目带你玩转飞桨(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個垃圾分類項目帶你玩轉飛槳(1)

  • 基于PaddleClas實現垃圾分類,導出inference模型并利用PaddleHub Serving進行服務化部署。

更好的體驗記得移步AIStudio喲~
點擊上方Fork即可以運行本項目
Github項目地址
最新數據集地址

大家先看看效果哈

bilibili視頻地址

背景介紹

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

??2019年6月25日,固體廢物污染環境防治法修訂草案初次提請全國人大常委會審議。草案對“生活垃圾污染環境的防治”進行了專章規定。2019年9月,為深入推動全國公共機構做好生活垃圾分類工作,國家機關事務管理局印發通知,公布《公共機構生活垃圾分類工作評價參考標準》,并就進一步推進有關工作提出要求。

??就上海市而言,2019年1月31日《上海市生活垃圾管理條例》[1]獲第十五屆上海市人民代表大會通過,正式成為地方性法規,并于2019年7月1日起強制實施。此條例規定,個人或企業、單位混合投放垃圾將面臨罰款等處罰。同年5月,上海市城市管理行政執法局出臺《上海市生活垃圾分類違法行為查處規定》和《〈上海市生活垃圾管理條例〉行政處罰裁量基準》[2],對垃圾分類違法行為的行政處罰進行詳細闡釋。至此,申城成為全國第一個實行垃圾分類的城市。

??此外,據新聞媒體報道,自2020年11月13日起,東華大學研究生新生入學教育新增一項“垃圾分類考試”。新生需回答垃圾分類相關知識的選擇題,達到90分以上才能過關。而“高校研究生進行垃圾分類考試”再一次將“垃圾分類”推向高潮。

??本項目利用PaddleClas圖像分類套件進行垃圾分類開發,本項目使用 2019華為云AI大賽·垃圾分類數據集進行開發,總體效果具備較好的分類性能。

PaddleClas介紹

??飛槳圖像分類套件PaddleClas是飛槳為工業界和學術界所準備的一個圖像分類任務的工具集,助力使用者訓練出更好的視覺模型和應用落地。PaddleClas 是百度基于PaddlePaddle框架推出的圖像分類開發套件,實現了23個系列豐富的分類模型,多種數據增廣方式,SSLD知識蒸餾高階優化方案,并可以很方便的對訓練出的模型進行工業級部署。

PaddleClas

特性:

  • 豐富的模型庫:基于ImageNet1k分類數據集,PaddleClas提供了29個系列的分類網絡結構和訓練配置,133個預訓練模型和性能評估。

  • SSLD知識蒸餾:基于該方案蒸餾模型的識別準確率普遍提升3%以上。

  • 數據增廣:支持AutoAugment、Cutout、Cutmix等8種數據增廣算法詳細介紹、代碼復現和在統一實驗環境下的效果評估。

  • 10萬類圖像分類預訓練模型:百度自研并開源了基于10萬類數據集訓練的 ResNet50_vd模型,在一些實際場景中,使用該預訓練模型的識別準確率最多可以提升30%。

  • 多種訓練方案,包括多機訓練、混合精度訓練等。

  • 多種預測推理、部署方案,包括TensorRT預測、Paddle-Lite預測、模型服務化部署、模型量化、Paddle Hub等。

  • 可運行于Linux、Windows、MacOS等多種系統。

廢話不多說,下面開始干活 # 解壓數據集 !rar x data/data43905/garbage.rar The-Eye-Konws-the-Garbage ??解壓數據集后,我們可以在The-Eye-knows-the-Garbage文件目錄中找到garbage文件夾,此文件夾中即存放著我們解壓后的數據集。

??我們觀察garbage文件目錄,其中需要特別注意的是:

?? - garbage_classify_rule.json 存放著標簽與具體垃圾的對應關系

?? - labels.txt 存放著所有標簽
?? - train.txt 存放著訓練集內圖片的相對地址與對應標簽(例:./29/img_14678.jpg 29)

?? - validate.txt 存放著驗證集內圖片的相對地址與對應標簽(例:./0/img_18.jpg 0)

??本數據集符合ImageNet格式,故在此基礎上使用PaddleClas極其便利!

模型選取

??數據集準備好后,接下來就是在PaddleClas提供的23個系列的模型中選擇一個較為合適本項目的模型。

??由圖可知,模型主要分為兩類:服務器端模型和移動端模型。移動端模型以輕量化為主要設計目標,通常速度快體積小,因此會犧牲一定的精度。而服務器端模型的精度通常很高,然其體積也相對較大。基于本項目實地應用場景,我們在這個項目中選擇服務器端模型,并最終選擇了ResNet_Vd。ResNet_Vd是PaddleClas框架主推的模型,經過了大量精度和速度上的優化。如果在自己的項目中不是很清楚如何選擇模型,從ResNet_Vd開始嘗試是一個不錯的選擇。而由于本項目的數據集還不是特別大,故結合RandomErasing的數據增廣方式進行訓練可以在原有基礎上進一步提升精度。

模型訓練

??下面就到了關鍵的模型訓練時刻!使用PaddleClas訓練模型基本就是編寫config文件。由于PaddleClas很貼心地為開發者提供了一份demo config文件,故而我們可以在此基礎上進行修改。下面筆者將著重介紹幾個關鍵修改處:
?? - |classes_num |分類數|

?? - |total_images|總圖片數|

?? - | epochs |訓練總epoch數|

?? - | file_list |標注訓練集/驗證集圖片地址及其標簽的txt文件地址|

?? - |data_dir|數據集目錄|

??配置完config文件后即可正式開始模型訓練,一般來說PaddleClas的模型訓練是基于tools.py命令行進行的,命令行啟動代碼如下:

!python3 train.py -c ResNet50_vd_ssld_random_erasing_finetune.yaml

??本項目中訓練了60個epoch,大約在第42個epoch處會得到最佳模型。

%cd /home/aistudio/The-Eye-Konws-the-Garbage/ !python3 train.py -c ResNet50_vd_ssld_random_erasing_finetune.yaml

模型導出

??訓練出滿意的模型后我們會希望用訓練得到的模型進行前向推理,這需要用到訓練過程中保存的權重文件。PaddlePaddle框架保存的權重文件分為兩種:支持前向推理和反向梯度的訓練模型 和 只支持前向推理的推理模型。二者的區別是推理模型針對推理速度和顯存做了優化,裁剪了一些只在訓練過程中才需要的tensor,降低顯存占用,并進行了一些類似層融合,kernel選擇的速度優化。PaddleClas在訓練過程中保存的模型屬于訓練模型,默認保存在 ./output/模型結構 路徑下。
??接下來我們通過PaddleClas中提供的模型轉換腳本將訓練模型轉換為推理模型。

# 將PaddleClas的模型轉換為inference模型 %cd /home/aistudio/The-Eye-Konws-the-Garbage/ !python export_model.py \--model ResNet50_vd \--pretrained_model ./output/ResNet50_vd/best_model/ppcls \--output_path ./inference \--class_dim 40

?&emsp執行完畢后我們可以看到轉換之后在./inference中生成了兩個文件,model是模型結構,params是模型權重。轉換完畢,最后一步是進行推理。推理的輸入圖片可以從 數據集文件夾中任意選擇,填入對應的路徑即可。

# 執行預測 %cd The-Eye-Konws-the-Garbage !python predict.py \--image_file "./garbage/0/img_210.jpg" \--model_file "./inference/inference.pdmodel" \--params_file "./inference/inference.pdiparams" \--use_gpu=False \--use_tensorrt=False

基于PaddleHub Serving的服務部署

??首先需要在params.py中查看和修改推理模型路徑,即如下圖所示:

??然后需要安裝服務模塊,具體代碼如下:
hub install The-Eye-Konws-the-Garbage

# 安裝服務模塊 %cd /home/aistudio/ !hub install The-Eye-Konws-the-Garbage/

??當我們安裝完服務模塊后,我們便可以啟動配置文件,官方提供了兩種啟動方式:

??方式1. 命令行命令啟動(僅支持CPU)
啟動命令:

$ hub serving start --modules Module1==Version1 \--port XXXX \--use_multiprocess \--workers \

參數:

參數用途
–modules/-m[必選] PaddleHub Serving預安裝模型,以多個Module==Version鍵值對的形式列出
當不指定Version時,默認選擇最新版本
–port/-p[可選] 服務端口,默認為8866
–use_multiprocess[可選] 是否啟用并發方式,默認為單進程方式,推薦多核CPU機器使用此方式
Windows操作系統只支持單進程方式
–workers[可選] 在并發方式下指定的并發任務數,默認為2*cpu_count-1,其中cpu_count為CPU核數

如按默認參數啟動服務: hub serving start -m garbage_classification

這樣就完成了一個服務化API的部署,使用默認端口號8866。

?? 方式2. 配置文件啟動(支持CPU、GPU)
啟動命令:
hub serving start -c config.json

其中,config.json格式如下:

{"modules_info": {"garbage_classification": {"init_args": {"version": "1.0.0","use_gpu": true,"enable_mkldnn": false},"predict_args": {}}},"port": 8866,"use_multiprocess": false,"workers": 2 }
  • init_args中的可配參數與module.py中的_initialize函數接口一致。其中,
    • 當use_gpu為true時,表示使用GPU啟動服務。
    • 當enable_mkldnn為true時,表示使用MKL-DNN加速。
  • predict_args中的可配參數與module.py中的predict函數接口一致。

注意:

  • 使用配置文件啟動服務時,其他參數會被忽略。
  • 如果使用GPU預測(即,use_gpu置為true),則需要在啟動服務之前,設置CUDA_VISIBLE_DEVICES環境變量,如:export CUDA_VISIBLE_DEVICES=0,否則不用設置。
  • use_gpu不可與use_multiprocess同時為true
  • use_gpu與enable_mkldnn同時為true時,將忽略enable_mkldnn,而使用GPU

如,使用GPU 3號卡啟動串聯服務:

export CUDA_VISIBLE_DEVICES=3 hub serving start -c config.json # 命令行啟動 %cd /home/aistudio/The-Eye-Konws-the-Garbage/ !hub serving start -m garbage_classification

??配置好服務端后,可使用以下命令發送預測請求,獲取預測結果:

%cd /home/aistudio/The-Eye-Konws-the-Garbage !python test.py

項目部署

??隨后我們進行項目的具體部署,具體細節此處我們不予細講,讀者可在本地跑通后執行如下命令:

python The-Eye-Konws-the-Garbage/garbage_end_side.py

??相關效果如開頭處所示

總結與反思

  • 本項目總體使用PaddleClas實現了垃圾分類,并取得了較好的預測效果。
  • 本項目基于PaddleHub Serving 實現了服務部署。
  • 本項目后緒將結合PaddleHub增加語音播報功能,提高用戶體驗。

個人相關介紹

  • 筆名:左右
  • 華東理工大學自動化專業大二在讀
  • 號稱:冷板凳常客
  • 搞點多智能體的協同控制及路徑規劃
  • 熱衷于利用人工智能技術做點有價值的東西,為社會做點小事情;
  • 偶爾寫點隨筆、拍點東西、看看天…

AiStudio主頁,歡迎互關喲

Github主頁,歡迎互關喲

CSDN主頁,歡迎互關喲

總結

以上是生活随笔為你收集整理的一个垃圾分类项目带你玩转飞桨(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线看国产视频 | 久久只有精品 | 亚洲精品视频久久久 | av2018| 男女猛烈无遮挡免费视频 | 三上悠亚久久精品 | 国产乱子轮xxx农村 岛国久久久 | 亚洲七区 | 中日韩在线观看视频 | av视| 午夜一区二区三区四区 | 在线观看国产一区 | 五月综合色 | 91av在线视频观看 | 884aa四虎影成人精品一区 | 麻豆精品免费 | 潘金莲一级淫片a.aaaaa播放 | 亚洲第一男人天堂 | 第一福利视频 | 91蜜桃视频 | 超级变态重口av番号 | 性xxxx视频 | 国产色视频在线 | 少妇献身老头系列 | 小婕子伦流澡到高潮h | 欧美日韩中文字幕视频 | 国产 日韩 欧美 综合 | www.亚洲欧美 | 天天看黄色| 美女的奶胸大爽爽大片 | 图书馆的女友动漫在线观看 | 精品国产乱码久久久久久郑州公司 | 欧美黄色一级生活片 | 夜夜嗨av禁果av粉嫩av懂色av | 亚洲一级片 | 久久亚洲AV成人无码国产野外 | 激情第一页 | 日批免费观看视频 | 国产成人福利 | 人体内射精一区二区三区 | 国产午夜精品一区二区三区 | 亚洲开心网 | 精品无码一级毛片免费 | 致单身男女免费观看完整版 | 天堂资源在线观看 | 精品成人一区二区三区久久精品 | 国产高清在线 | 国产日韩免费 | 最新黄网 | 婷婷色婷婷开心五月四房播播 | 亚洲熟女乱综合一区二区 | 老鸭窝一区二区 | 久草视频观看 | 99久久久无码国产精品性青椒 | 蜜臀久久99静品久久久久久 | 狠狠躁天天躁夜夜躁婷婷 | 亚洲福利视频一区二区三区 | 男人天堂一区二区 | 污污在线观看视频 | 中国黄色免费网站 | 欧美性大战xxxxx久久久 | 动漫女生光屁股 | 夫妻精品 | 91国偷自产一区二区三区观看 | 玉女心经是什么意思 | 亚洲精品成人电影 | 国产精品久久久久久久久 | 国产女人叫床高潮大片免费 | 超碰网站在线 | 国产精品不卡在线 | 久草新在线 | 亚洲欧洲精品一区二区三区 | 欲求不满在线小早川怜子 | 在线观看免费视频黄 | 人妻体内射精一区二区 | 亚洲无色 | 91九色丨porny丨肉丝 | 天天射天天爽 | 欧美人与禽猛交乱配 | 尹人综合网 | 久久东京 | 最近日韩中文字幕 | 九九久久久 | 精品一性一色一乱农村 | 91久久精品日日躁夜夜躁国产 | 免费看一区二区三区 | 色热热| 一区二区乱码 | 免费观看av的网站 | 伊人久久精品一区二区三区 | 亚洲国产私拍精品国模在线观看 | 欧美在线视频不卡 | 国产黄片毛片 | 日韩激情电影在线 | 午夜操操 | 国产成人97精品免费看片 | 色噜噜噜 | 亚洲毛片在线 | av五十路 |