场景化AI图像垃圾分类体验【玩转华为云】

y-wolfandy 发表于 2022/01/22 16:43:06 2022/01/22
【摘要】 垃圾分类是个比较古老的行业,需要利用大量人力来完成,一些城市甚至号召志愿者参与垃圾分类工作的监督工作。而利用AI分类技术,则可以快速分拣垃圾,减轻志愿者的工作,降低人力成本。智能化分拣可用在居民投递的垃圾箱终端设备上,利用训练垃圾的检测模型,识别厨余垃圾里是否有其他垃圾,如塑料袋、纸张等。如果有,这款产品可以把信息上报给用户,加以提醒:「你这次投递错了,下不为例」;同时也会提醒运营人员进行手动分拣


1、   项目简介

垃圾分类是个比较古老的行业,需要利用大量人力来完成,一些城市甚至号召志愿者参与垃圾分类工作的监督工作。而利用AI分类技术,则可以快速分拣垃圾,减轻志愿者的工作,降低人力成本。智能化分拣可用在居民投递的垃圾箱终端设备上,利用训练垃圾的检测模型,识别厨余垃圾里是否有其他垃圾,如塑料袋、纸张等。如果有,这款产品可以把信息上报给用户,加以提醒:「你这次投递错了,下不为例」;同时也会提醒运营人员进行手动分拣。

本次测试项目是图像分类下任务子类,使用efficientnet-b4骨干网络进行垃圾分类。数据集为华为云AI Gallery上提供的数据集。详情可参见本案例的关联资产。

该数据集包含8类生活垃圾图片,分别为:厨余垃圾蛋壳、厨余垃圾水果果皮、可回收物塑料玩具、可回收物纸板箱、其他垃圾烟蒂、其他垃圾一次性餐盒、有害垃圾干电池、有害垃圾过期药物。

1.1、    案例特点

  • efficientnet、垃圾分类

1.2、    推荐复用场景

  • 样本均衡的简单图像分类任务。

2、   操作指导

2.1、    准备环境


运行时依赖环境

  • moxing>=2.0
  • torch>=1.4
  • mmcv-full>=1.2.5,<1.3.0 (如果环境中没有mmcv-full,安装可能会消耗10几分钟)
  • tensorboard
  • 将环境中的pycocotools替换成mmpycocotools

 

!pip uninstall -y pycocotools

!pip uninstall -y moxing

!pip install "mmcv-full>=1.2.5,<1.3.0" -I

!wget https://modelarts-cnnorth4-market.obs.cn-north-4.myhuaweicloud.com/moxing-apps/notebooks/release/210705/1_1_ImageClassification_Primary/requirements.txt -O requirements.txt

!pip install -r requirements.txt

 


如果能看到上面的提示,就说明已经安装成功了。

2.2、    准备相应数据

2.2.1、 下载数据集

将8类垃圾数据下载到/tmp/dataset_garbages8下,并解压缩

!mkdir -p /tmp/dataset_garbages8

!wget --no-check-certificate https://modelarts-cnnorth4-market.obs.cn-north-4.myhuaweicloud.com/dataset-apps/image_classification/8-garbages/8-garbage.zip -O 8-garbage.zip

!unzip -o 8-garbage.zip -d /tmp/dataset_garbages8


2.2.2、 数据集查看

通过以上正确操作,经此步操作可看到需筛选的所有垃圾图片,本次操作主要针对所显示的图片进行垃圾分类。


2.2.3、 针对数据集进行切分

将数据集按照9:1切分为训练集和验证集,并分别保存至如下目录。

/tmp/dataset_garbages8/train//tmp/dataset_garbages8/eval/

 

2.2.4、 准备预训练模型

下载预训练模型,执行以下命令

!mkdir -p /tmp/pretrained_model/efficientnet/

!wget --no-check-certificate https://modelarts-cnnorth1-market-dataset.obs.cn-north-1.myhuaweicloud.com/moxing_pretrained/efficientnet-b4/adv-efficientnet-b4-44fb3a87.pth -O /tmp/pretrained_model/efficientnet/efficientnet-b4.pth

 

2.2.5、 训练

数据集和预训练模型已经准备完毕,开始编写训练脚本,首先引入必要的包。

初始化参数

  • lr_config表示学习率为阶段函数,初始学习率为002,并且在第15/25/30epoch下降到原来的十分之一
  • launcher填入nonegpu_ids填入[0],表示单机单卡训练
  • load_from用于加载预训练模型

work_dir为模型保存路径

 

2.2.6、 创建数据预处理和增强方法

2.2.7、 创建算法

使用mox.api的方式构建efficientnet_b4,并开始训练。

2.2.8、 测试

使用刚才训练好的模型,在测试集上做一次精度测试。首先初始化配置

 

2.2.9、 离线推理

通过上面的操作后,本步骤使用刚才训练好的模型,在验证集上尝试做一次推理,首先初始化配置。 这里演示如何推理一张图片,如果想要推理多个图片,可以将img_path修改为一个路径,那么就会推理这个路径下的所有图片了。

 


2.2.10、     在线推理

使用TorchServing

启动服务

  • 配置jdk环境变量
  • 配置nvidia环境变量,与终端环境变量不一致

2.2.11、     预测结果,并关闭服务


3、   结束语

通过此场景化AI,利用MoXing框架通过图片自动识别技术。此自动智能分拣技术,可应用于日常生活垃圾分类场景中,当大家垃圾分类错误时,智能分拣垃圾箱会提醒大家分类错误了,从而可提升分类效率。

4、其它

活动链接:https://bbs.huaweicloud.com/blogs/321022

场景化AI图像垃圾分类体验链接:https://developer.huaweicloud.com/develop/aigallery/notebook/detail?id=ea0e2608-80d7-4476-92d7-cd6da94f5f5a


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。