文章目录
AI垃圾分类
产品描述
如何进行垃圾分类已经成为居民生活的灵魂拷问,然而AI在垃圾分类的应用可以成为居民的得力助手。
针对目前业务需求,我们设计一款APP,来支撑我们的业务需求,主要提供文本,语音,图片分类功能。AI智能垃圾分类主要通过构建基于深度学习技术的图像分类模型,实现垃圾图片类别的精准识别重点处理图片分类问题。
采用深圳市垃圾分类标准,输出该物品属于可回收物、厨余垃圾、有害垃圾和其他垃圾分类。
垃圾分类-数据分析和预处理
- 整体数据探测
- 分析数据不同类别分布
- 分析图片长宽比例分布
- 切分数据集和验证集
- 数据可视化展示(可视化工具 pyecharts,seaborn,matplotlib)
代码结构
├── data
│ ├── garbage-classify-for-pytorch
│ │ ├── train
│ │ ├── train.txt
│ │ ├── val
│ │ └── val.txt
│ └── garbage_label.txt
├── analyzer
│ ├── 01 垃圾分类_一级分类 数据分布.ipynb
│ ├── 02 垃圾分类_二级分类 数据分析.ipynb
│ ├── 03 数据加载以及可视化.ipynb
│ ├── 03 数据预处理-缩放&裁剪&标准化.ipynb
│ ├── garbage_label_40 标签生成.ipynb
├── models
│ ├── alexnet.py
│ ├── densenet.py
│ ├── inception.py
│ ├── resnet.py
│ ├── squeezenet.py
│ └── vgg.py
├── facebook
│ ├── app_resnext101_WSL.py
│ ├── facebookresearch_WSL-Images_resnext.ipynb
│ ├── ResNeXt101_pre_trained_model.ipynb
├── checkpoint
│ ├── checkpoint.pth.tar
│ ├── garbage_resnext101_model_9_9547_9588.pth
├── utils
│ ├── eval.py
│ ├── json_utils.py
│ ├── logger.py
│ ├── misc.py
│ └── utils.py
├── args.py
├── model.py
├── transform.py
├── garbage-classification-using-pytorch.py
├── app_garbage.py
- data: 训练数据和验证数据、标签数据
- checkpoint: 日志数据、模型文件、训练过程checkpoint中间数据
- app_garbage.py:在线预测服务
- garbage-classification-using-pytorch.py:训练模型
- models:提供各种pre_trained_model ,例如:alexlet、densenet、resnet,resnext等
- utils:提供各种工具类,例如;重新flask json 格式,日志工具类、效果评估
- facebook: 提供facebook 分类器神奇的分类预测和数据预处理
- analyzer: 数据分析和数据预处理模块
- transform.py:通过pytorch 进行数据预处理
- model.py: resnext101 模型集成以及调整、模型训练和验证函数封装
resnext101网络架构
- pre_trained_model resnext101 网络架构原理
- 基于pytorch 数据处理、resnext101 模型分类预测
- 在线服务API 接口
垃圾分类-训练
python garbage-classification-using-pytorch.py \
--model_name resnext101_32x16d \
--lr 0.001 \
--optimizer adam \
--start_epoch 1 \
--epochs 10 \
--num_classes 40
- model_name 模型名称
- lr 学习率
- optimizer 优化器
- start_epoch 训练过程断点重新训练
- num_classes 分类个数
垃圾分类-评估
python garbage-classification-using-pytorch.py \
--model_name resnext101_32x16d \
--evaluate \
--resume checkpoint/checkpoint.pth.tar \
--num_classes 40
- model_name 模型名称
- evaluate 模型评估
- resume 指定checkpoint 文件路径,保存模型以及训练过程参数
垃圾分类-在线预测
python app_garbage.py \
--model_name resnext101_32x16d \
--resume checkpoint/garbage_resnext101_model_2_1111_4211.pth
- model_name 模型名称
- resume 训练模型文件路径
- 模型预测
命令行验证和postman 方式验证
举例说明:命令行模式下预测
curl -X POST -F file=@cat.jpg http://ip:port/predict
最后,我们从0到1教大家掌握如何进行垃圾分类。通过本学习,让你彻底掌握AI图像分类技术在我们实际工作中的应用。