本发明涉及垃圾分类技术领域,尤其涉及一种基于主动学习的垃圾分类方法。
背景技术:
随着经济的快速发展以及城市化进程的加快,人们在生产生活中产生的垃圾也越来越多,对垃圾进行分类已成为迫切需要解决的问题。有效的垃圾分类可以减少对环境的污染以及可利用资源的再回收。
然而要实现准确的垃圾分类,需要大量关于垃圾分类的知识储备。由于人们普遍对这方面的知识比较匮乏,其分类效果并不好。为此已有学者提出了通过计算机视觉的方法实现对垃圾的自动分类,通过对带标签的数据利用分类器进行训练,可以得到一个保存有各种垃圾特征的分类模型,通过将垃圾图片输入到分类模型可以得到自动分类结果。
这种方法在很大程度上可以实现对垃圾的准确分类,但是这种方法所得到的模型的精度往往依靠于训练使用的庞大数据集。由于垃圾种类的繁多,要建立这样带有标签的庞大的数据集需要巨大的工作量。同时,在实际应用场景对于分类错误的情况没有很好的解决方案。
技术实现要素:
有鉴于此,本发明提供一种基于主动学习的垃圾分类方法,在保证模型精度的同时减小数据标注的工作量,且对实际应用场景中分类错误的情况加以考虑,让其进一步对模型进行优化。
本发明的实施例提供一种基于主动学习的垃圾分类方法,包括以下步骤:
s1、数据获取阶段:获取多张未标注的垃圾图片,生成数据集;
s2、模型训练阶段:使用resnext101网络利用bvsb方法对步骤s1获取的数据集进行训练,得到模型model_z;
s3、模型应用阶段:将待分类垃圾图片输入到步骤s2中所得到的模型model_z中,利用softmax函数输出每个类别的概率值,获取最大概率与次大概率的差值,若差值大于阈值p,则将其输出为最大概率对应的类别;若差值小于阈值p,则筛选出该待分类垃圾图片进行人为标注。
进一步地,步骤s1具体包括以下步骤:
s1.1、获取多张垃圾图片作为训练使用数据集;
s1.2、对垃圾图片进行预处理,然后将垃圾图片等比缩放到同一尺寸;
s1.3、将处理后的数据集划分为训练集d、未标记样本集、验证集和测试集。
进一步地,步骤s1.3中的数据集50%用于构建训练集d和未标记样本集,其中每种类别选取十个样本用于构建训练集d,其余样本为未标记样本集;另外50%为验证集和测试集,其中验证集占5%,测试集占95%。
进一步地,步骤s2具体包括以下步骤:
s2.1、将训练集d中的样本进行标注,并对样本进行数据增强操作;
s2.2、将处理后的训练集d输入到resnext101网络中进行训练,得到原始模型;
s2.3、根据原始模型,运用bvsb方法对未标记样本集进行筛选,满足条件的样本放入到训练集d,不满足条件的样本放回未标记样本集;
s2.4、对新放入训练集d的样本进行标注,并进行数据增强操作;
s2.5、将新放入训练集d的样本输入到原始模型对其进行再训练,得到模型model_x,并将其作为初始模型;
s2.6、重复上述s2.3-s2.5,直到达到指定的迭代次数,保存最终得到的模型model_z;
s2.7、保存最后一次迭代由bvsb方法所得最大概率与次大概率差值记为阈值p。
进一步地,步骤s2.4中标注类别包括可回收垃圾、厨余垃圾、有害垃圾、其他垃圾四个一级标签,以及n个二级标签。
进一步地,数据增强操作包括随机噪声、随机擦除、随机裁剪、mixup和cutmix,数据增强操作用于提升标注样本的泛化能力。
进一步地,步骤s2.2中的resnext101网络包括五个bottleneck和两个全连接层,且每个bottleneck后加有cbam注意力机制,用于提升其特征表征能力,在两个全连接层之间加有dropout,随机丢弃一些神经元,防止模型过拟合,将最后一个全连接层连接softmax函数,最后输出各个类别的概率。
进一步地,将待筛选的样本输入模型model_z中,经softmax函数输出各个类别的概率,将最大概率以及次大概率记为pfirst、psecond,则
进一步地,步骤s3具体包括以下步骤:
s3.1、将训练阶段得到的模型model_z布署到边缘设备;
s3.2、获取待分类的垃圾图片,并对垃圾图片进行裁剪,垃圾图片裁剪后的尺寸与模型训练图片的尺寸相同;
s3.3、将垃圾图片输入到模型model_z,输出得到的各种类别的概率;
s3.4、将最大概率与次大概率差与阈值p进行比较,若所得概率差大于阈值p,则输出最大概率所对应的类别标签;若所得概率差小于阈值p,则让投递者对该垃圾进行标注,并将其存入指定数据库s;
s3.5、当数据库s中的数据到达指定数量时,使用数据库s中的垃圾数据对模型model_z进行再训练。
进一步地,步骤s3.4中,先对步骤s3.3所得的各个类别的概率进行排序,获取最大概率与次大概率的差值,然后将该差值与阈值p进行比较,大于阈值p则直接输出分类结果;小于阈值p则对其进行标注,用于进一步优化模型model_z。
本发明的实施例提供的技术方案带来的有益效果是:本发明的一种基于主动学习的垃圾分类方法首先通过获取大量的垃圾图片,经过预处理之后按照一定比例分为训练集、未标注样本集、验证集与测试集;然后将验证集的样本进行标注,并送入resnext101网络进行训练;再使用bvsb方法在未标注样本集中进行样本的选取、标注、再训练;最后将需要分类的垃圾图片输入到训练好的垃圾分类模型,输出各种类别的概率,将最大概率与次大概率之差大于阈值p的直接输出分类结果;筛选出小于阈值p的进行人为标注用于模型的进一步优化;本发明可以使用较小的标注成本就能够达到很高的准确率,并且其准确率还会随着测试样本的增多而提高,可以将其利用在垃圾桶或者其他装置中,可较好减少垃圾分类错误的现象。
附图说明
图1是本发明实施例提供的一种构建主动学习垃圾图像分类方法流程图;
图2是本发明数据获取阶段的流程图;
图3是本发明模型建立阶段的流程图;
图4是本发明实施例中resnext101网络的结构图;
图5是本发明模型应用阶段的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地描述。
请参考图1和图2,本发明的实施例提供了一种基于主动学习的垃圾分类方法,包括以下步骤:
s1、数据获取阶段:获取大量未标注的垃圾图片,生成数据集;
步骤s1具体包括以下步骤:
s1.1、获取大量垃圾图片作为训练使用数据集,本实施例中垃圾图片的获取方式包括但不限于通过摄像头拍照、利用网上公开的数据集、使用网络爬虫爬取垃圾图片、自己拍摄等。
s1.2、对垃圾图片进行清洗、去噪等预处理,然后将垃圾图片等比缩放到同一尺寸,本发明中对垃圾图片进行清洗、去噪等预处理是为了能够减小垃圾图片中的噪声对模型的影响,而统一尺寸可以根据实际情况自行调整,例如可以将垃圾图片的尺寸大小统一设置为(224dpi*224dpi),也可以将尺寸设置为(112dpi*112dpi)等。
s1.3、将处理后的数据集划分为训练集d、未标记样本集、验证集和测试集,本发明中步骤s1.3的数据集50%用于构建训练集d和未标记样本集,其中每种类别选取十个样本用于构建训练集d,其余样本为未标记样本集;另外50%为验证集和测试集,其中验证集占5%,测试集占95%。
s2、模型训练阶段:使用resnext101网络利用bvsb方法对步骤s1获取的数据集进行训练,得到模型model_z;
请参考图1、图3和图4,步骤s2具体包括以下步骤:
s2.1、将训练集中的样本进行标注,并对样本进行数据增强操作,本实施例中数据增强操作包括随机噪声、随机擦除、随机裁剪、mixup和cutmix等,数据增强操作用于提升标注样本的泛化能力。
s2.2、将处理后的训练集d输入到resnext101网络中进行训练,得到原始模型,本发明中的resnext101网络包括五个bottleneck和两个全连接层,且每个bottleneck后加有cbam注意力机制,用于提升其特征表征能力,在两个全连接层之间加有dropout,随机丢弃一些神经元,防止模型过拟合,将最后一个全连接层连接softmax函数,最后输出各个类别的概率,假设全连接层最终输出的是一个一维数组v,vi表示v中的第i个元素,vj表示v中的第j个元素,那么该元素对应的softmax输出为:
本实施例中得到原始模型具体过程包括:将标签与垃圾图片输入resnext101网络,利用交叉熵损失函数以及sgd优化器以0.001的学习率进行模型训练优化,当完成最后一次迭代后保存其参数,获得原始模型,训练过程中的迭代次数根据训练下降的loss以及精度进行调整设定,例如,若经过200次迭代之后,训练的loss已经不再下降且精度达到了99%,则将迭代次数设置为200。
s2.3、根据原始模型,运用bvsb方法对未标记样本集进行筛选,满足条件的样本放入到训练集d,不满足条件的样本放回未标记样本集,本发明所用的bvsb方法是主动学习中一种常用的样本选择方法,其思想是利用最优标号和次优标号进行未标注样本的筛选,具体为将待筛选的样本输入模型model_z中,经softmax函数输出各个类别的概率,将最大概率以及次大概率记为pfirst、psecond,则
s2.4、对新放入训练集d的样本进行标注,并进行数据增强操作;标注类别包括可回收垃圾、厨余垃圾、有害垃圾、其他垃圾四个一级标签,以及n个二级标签,其中二级标签为饮料瓶、易拉罐、干电池等需要分类的垃圾名称,例如,若需要分类的垃圾类别有饮料瓶、易拉罐、干电池、塑料袋、果皮,说明二级标签有5个,那么其对应的标签为:可回收垃圾/饮料瓶、可回收垃圾/易拉罐、有害垃圾/干电池、其他垃圾/塑料袋、厨余垃圾/果皮。
s2.5、将新放入训练集d的样本输入到原始模型对其进行再训练,得到模型model_x,并将其作为初始模型。
s2.6、重复上述s2.3-s2.5,直到达到指定的迭代次数,保存最终得到的模型model_z,本实施例中若初始模型经过数次迭代之后,其精度到达了饱和点,即随着迭代次数的增加其精度不再变化,则停止迭代,例如,若初始模型经迭代500次后,其精度到达了98.8%,而继续增加迭代次数,其精度依然为98.8%,则说明模型精度已达到饱和点,此时停止迭代,并保存此时的模型参数记为model_z。
s2.7、保存最后一次迭代由bvsb方法所得最大概率与次大概率差值记为阈值p,本发明中阈值p值代表了最后一个筛选样本的置信度,将该值作为应用阶段的判断阈值,可以有效的减少分错类别的概率。
s3、模型应用阶段:将待分类垃圾图片输入到步骤s2中所得到的模型model_z中,利用softmax函数输出每个类别的概率值,获取最大概率与次大概率的差值,若差值大于阈值p,则将其输出为最大概率对应的类别;若差值小于阈值p,则筛选出该待分类垃圾图片进行人为标注,以用于模型model_z的再训练。
请参考图1和图5,步骤s3具体包括以下步骤:
s3.1、将训练阶段得到的模型model_z布署到边缘设备,本实施例中边缘设备包括但不限于为手机、智能分类垃圾桶、垃圾回收站的设备等。
s3.2、获取待分类的垃圾图片,并对垃圾图片进行裁剪,垃圾图片裁剪后的尺寸与模型训练图片的尺寸相同。本实施例中获取待分类的垃圾图片根据实际应用场景所定,例如,需要将模型应用于智能分类垃圾桶,则可通过在垃圾桶上方放置一个摄像头,当垃圾被投递到垃圾桶时先对垃圾进行拍照,然后再将图片等比裁剪到预设的图片尺寸。
s3.3、将垃圾图片输入到模型model_z,输出得到的各种类别的概率,本发明中由于全连接连接了softmax函数,所以其输出的是各种类别的概率,且各种类别的概率和为1。
s3.4、将最大概率与次大概率差与阈值p进行比较,若所得概率差大于阈值p,则输出最大概率所对应的类别标签;若所得概率差小于阈值p,则让投递者对该垃圾进行标注,并将其存入指定数据库s。本步骤中,先对步骤s3.3所得的各个类别的概率进行排序,获取最大概率与次大概率的差值,然后将该差值与阈值p进行比较,大于阈值p则代表其置信度很高,直接输出分类结果;小于阈值p则代表置信度很低,对其进行标注,用于进一步优化模型model_z。
例如,假设一共有5种类别标签其分别为:可回收物/饮料瓶、可回收物/玻璃瓶、有害垃圾/干电池、厨余垃圾/果皮、其他垃圾/塑料袋,最后一次迭代所得阈值p为0.5,将待分类图片输入模型后输出5个概率值,若其概率值分别为:0.85、0.11、0.02、0.01、0.01,其最大概率与次大概率差值为0.74,由于0.74>0.5,所以直接输出0.85所对应的类别可回收物/饮料瓶;同理,若其概率值分别为:0.62、0.21、0.15、0.01、0.01,其最大概率于此大概率差值为0.41,由于0.41<0.5,所以需要对该样本进行标注,并放入指定数据库s用于模型进一步优化训练
s3.5、当数据库s中的数据到达指定数量时,使用数据库s中的垃圾数据对模型model_z进行再训练,本发明中数据库s中数据的具体数量可以根据实际情况自行设定。
在本文中,所涉及的前、后、上、下等方位词是以附图中零部件位于图中以及零部件相互之间的位置来定义的,只是为了表达技术方案的清楚及方便。应当理解,所述方位词的使用不应限制本申请请求保护的范围。
在不冲突的情况下,本文中上述实施例及实施例中的特征可以相互结合。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于主动学习的垃圾分类方法,其特征在于,包括以下步骤:
s1、数据获取阶段:获取多张未标注的垃圾图片,生成数据集;
s2、模型训练阶段:使用resnext101网络利用bvsb方法对步骤s1获取的数据集进行训练,得到模型model_z;
s3、模型应用阶段:将待分类垃圾图片输入到步骤s2中所得到的模型model_z中,利用softmax函数输出每个类别的概率值,获取最大概率与次大概率的差值,若差值大于阈值p,则将其输出为最大概率对应的类别;若差值小于阈值p,则筛选出该待分类垃圾图片进行人为标注。
2.如权利要求1所述的一种基于主动学习的垃圾分类方法,其特征在于,步骤s1具体包括以下步骤:
s1.1、获取多张垃圾图片作为训练使用数据集;
s1.2、对垃圾图片进行预处理,然后将垃圾图片等比缩放到同一尺寸;
s1.3、将处理后的数据集划分为训练集d、未标记样本集、验证集和测试集。
3.如权利要求2所述的一种基于主动学习的垃圾分类方法,其特征在于,步骤s1.3中的数据集50%用于构建训练集d和未标记样本集,其中每种类别选取十个样本用于构建训练集d,其余样本为未标记样本集;另外50%为验证集和测试集,其中验证集占5%,测试集占95%。
4.如权利要求3所述的一种基于主动学习的垃圾分类方法,其特征在于,步骤s2具体包括以下步骤:
s2.1、将训练集d中的样本进行标注,并对样本进行数据增强操作;
s2.2、将处理后的训练集d输入到resnext101网络中进行训练,得到原始模型;
s2.3、根据原始模型,运用bvsb方法对未标记样本集进行筛选,满足条件的样本放入到训练集d,不满足条件的样本放回未标记样本集;
s2.4、对新放入训练集d的样本进行标注,并进行数据增强操作;
s2.5、将新放入训练集d的样本输入到原始模型对其进行再训练,得到模型model_x,并将其作为初始模型;
s2.6、重复上述s2.3-s2.5,直到达到指定的迭代次数,保存最终得到的模型model_z;
s2.7、保存最后一次迭代由bvsb方法所得最大概率与次大概率差值记为阈值p。
5.如权利要求4所述的一种基于主动学习的垃圾分类方法,其特征在于:步骤s2.4中标注类别包括可回收垃圾、厨余垃圾、有害垃圾、其他垃圾四个一级标签,以及n个二级标签。
6.如权利要求4所述的一种基于主动学习的垃圾分类方法,其特征在于:数据增强操作包括随机噪声、随机擦除、随机裁剪、mixup和cutmix,数据增强操作用于提升标注样本的泛化能力。
7.如权利要求5所述的一种基于主动学习的垃圾分类方法,其特征在于:步骤s2.2中的resnext101网络包括五个bottleneck和两个全连接层,且每个bottleneck后加有cbam注意力机制,用于提升其特征表征能力,在两个全连接层之间加有dropout,随机丢弃一些神经元,防止模型过拟合,将最后一个全连接层连接softmax函数,最后输出各个类别的概率。
8.如权利要求7所述的一种基于主动学习的垃圾分类方法,其特征在于:将待筛选的样本输入模型model_z中,经softmax函数输出各个类别的概率,将最大概率以及次大概率记为pfirst、psecond,则
9.如权利要求5所述的一种基于主动学习的垃圾分类方法,其特征在于,步骤s3具体包括以下步骤:
s3.1、将训练阶段得到的模型model_z布署到边缘设备;
s3.2、获取待分类的垃圾图片,并对垃圾图片进行裁剪,垃圾图片裁剪后的尺寸与模型训练图片的尺寸相同;
s3.3、将垃圾图片输入到模型model_z,输出得到的各种类别的概率;
s3.4、将最大概率与次大概率差与阈值p进行比较,若所得概率差大于阈值p,则输出最大概率所对应的类别标签;若所得概率差小于阈值p,则让投递者对该垃圾进行标注,并将其存入指定数据库s;
s3.5、当数据库s中的数据到达指定数量时,使用数据库s中的垃圾数据对模型model_z进行再训练。
10.如权利要求9所述的一种基于主动学习的垃圾分类方法,其特征在于:步骤s3.4中,先对步骤s3.3所得的各个类别的概率进行排序,获取最大概率与次大概率的差值,然后将该差值与阈值p进行比较,大于阈值p则直接输出分类结果;小于阈值p则对其进行标注,用于进一步优化模型model_z。
技术总结