基于HOBS异常检测的食品外包装缺陷检测研究
2020-11-12杨亚宁
王 鑫,张 涛,杨亚宁
(大连民族大学 a.机电工程学院;b.信息与通信工程学院,辽宁 大连 116605 )
食品包装是食用商品的重要组成部分,是食品加工工艺过程的主要工程之一。在食品生产行业,食品包装主要分为内包装、二级包装、三级包装、外包装等[1]。随着人们生活水平的提高,消费者和企业对于食品外包装的要求也越来越高,不仅要满足自身的性能,达到保护内部食品的作用,还要求产品外观尽量没有缺陷,吸引消费者。但在实际生产过程中,食品包装机会因原辅材料、机械振动等非正常因素导致包装材料褶皱、破损等质量缺陷[2]。目前,传统的缺陷检测主要依靠人工,人工检测存在着检测效率低、误检率和漏检率高、检测速度慢、生产成本高等缺点和局限性[3-4]。
近年来,随着研究的深入,异常检测作为机器学习的一个研究方向得到迅速发展[5]。异常检测就是检测出数据中的离群点,不一致、不符合行为的异常数据,异常检测在网络入侵检测、故障诊断、欺诈检测等领域都得到应用。伴随着异常检测技术的不断完善,异常检测涉及领域更加广泛,在疾病检测、身份识别、产品表面质量检测等方面都得到应用,而且具有不错的应用效果。基于异常检测的表面缺陷检测方法相较于人工检测方法,产品的检测效率显著提高,劳动成本和生产成本降低,漏检率降低,生产效率提高[4]。
异常检测算法的基本思想是:用正常数据训练模型得到阈值,然后再去判断新的数据是否异常[6]。常见的几种异常检测算法有:基于概率统计[7]、基于聚类[8]、基于最近邻[9]等。但对于几种常见的异常检测算法都存在相应的弊端,如基于概率统计对分布模型的依赖程度高,模型选择不当,则会造成检测效果不明显,准确率低;基于最近邻不适用于高维数据,需要人工调节参数,计算量大,不适用于在线使用;基于聚类检测效果对聚类效果的依赖程度大,开销成本大。本文所提基于HOBS异常检测算法属于基于概率统计异常检测算法中的一种,HOBS异常检测算法属于无监督模式检测算法,该方法具有数据集不需要标注;硬件环境要求较低,在普通CPU下就可训练;检测速度快,准确率高;无需大量样本,少量正常样本即可进行训练等优点。
1 基于HOBS异常检测算法
1.1 算法原理
HOBS异常检测算法的原理简单,该算法通过对每一个数据进行评分,评分越高则越可能表现为异常。HOBS算法首先绘制数据直方图,常见的作图方式有两种:
(1)静态跨度的柱状图。将值域分成K个柱并且每个柱的宽度相等,进入每一个柱的值的频数作为柱的高度;
(2)动态宽度柱状图。柱个数相同,但柱宽度是变化的。该方法先将值域排序,然后将连续的M/N个值装进柱里,其中M代表样例总数,N代表所分柱的个数,是一个超参数;柱的宽度由进入柱第一个值和最后一个值决定。
每一维度的数据都会有一个柱状图,而柱状图的高度则可以代表该维度数据的密度,通过使用归一化操作保证每个柱状图的高度是1,则可以保证每个特征的权重相同。每个特征的HOBS值计算如下。
假设数据x={x1,x2,x3,…,xn},且样本中每个维度相对独立,则样本x的概率密度计算公式为
P(x)=P(x1)P(x2)P(x3)…P(xn) ;
(1)
两边取对数,
log[P(x)]=log[P(x1)P(x2)P(x3)…P(xn)]
(2)
概率密度越大,异常评分越小,则两边乘“-1”:
(3)
然后将其应用到评分模型:
(4)
则样本x中的HOBS(x)的计算结果:
(5)
为防止某柱状区间内的频数过小,可以通过增加容忍度ε,其异常得分可表示为:
(6)
1.2 HOBS异常检测算法工作流程
HOBS异常检测算法工作流程包括:数据准备、模型训练、模型评估、模型推理。数据准备阶段读取训练样本,并按照一定比例将样本分割成训练集、验证集、测试集,设置模型的初始化参数;模型训练通过设置训练参数进行模型的训练,并将训练模型进行保存;模型评估利用测试集的数据对训练后的模型进行评估,根据评估结果得到异常分数直方图,然后根据异常分数直方图设置阈值分类标准,最后进行评估结果显示;模型推理阶段主要是将数据集应用到模型,计算得到异常分数,将其与设置的阈值分类标准进行比较,得到最终结果并显示。具体过程及每个过程涉及到的重要算子如图1。
2 实验过程
2.1 实验数据集
以实验室采集的桶装方便面图像作为数据集,经滤波处理消除图像采集过程中的干扰,去除噪声,使图像更加清晰,质量更高。滤波处理后,利用图像增强技术中的直方图均衡化增加对比度,图像锐化改善边缘模糊情况,使图像的边缘及轮廓信息更加明显,便于识别。预处理后,数据集中包含正常图片117张,异常图片61张,正常和异常图片样例如图2。
2.2 实验环境及参数设置
环境配置见表1。实验程序的编写主要由HALCON软件完成。
表1 环境配置
数据集训练时,需要选择预训练网络模型,然后对预训练网络模型的参数进行设置,异常检测预训练网络模型参数设置见表2。
表2 模型初始化参数设置
模型训练过程中,还需要对模型的超参数进行设置,异常检测训练模型超参数设置见表3。
表3 训练超参数设置
2.3 实验结果分析
通过对训练集进行训练,最终计算得到异常分数,异常分数为0.16,0.12,0.14。使用测试集对训练后的模型进行评估,得到异常分数直方图如图3,其中从左往右第一条垂直虚线代表“nok”测试样本获得的最小异常分数,使用此阈值将“ok”和“nok”样本分开,可确保测试集中没有错误分类为“ok”的“nok”样本;第二条垂直虚线代表“正常”测试样本获得的最大异常分数。使用此阈值将“ok”和“nok”样本分开,可确保测试集中没有被错误分类为“nok”的“ok”样本。黑色垂直实线代表折中的中间阈值。异常分数线的左侧为正常,右侧则视为异常。
得到异常分数后,对整体数据集进行推断,抽取10张图像,分别采用0.16,0.14,0.12作为分类标准判断图像是否异常。不同分类标准下检测测试结果见表4。
表4 不同分类标准下检测测试结果
从各个分类标准的检测结果可以看出,当选择异常分数0.16或0.12作为标准时,往往经过推断图像计算出的异常分数与选择的标准异常分类很接近,这就使得推断发生错误,造成误判。将异常分数为0.14作为分类标准时,得到的检测结果相对准确性较高,因此综合考虑,会选择异常分数直方图中黑色线代表的异常分数作为标准,能得较好效果。对数据集进行推断结果如图4。
3 结 论
本文基于halcon图像处理软件,研究基于HOBS异常检测的食品外包装缺陷检测方法,首先对基于HOBS异常检测算法的原理及工作流程进行描述,然后对数据集进行构建与实验环境搭建,随后对实验中的参数进行设置,最后通过实验得到实验结果,并对实验结果加以分析。实验结果表明基于HOBS异常检测的食品外包装缺陷检测方法可以解决传统缺陷检测检测效率低、准确率低、误检率高等问题,能满足工业生产实时的检测要求,具有较强的实用性。