叶舒婷 游思晴 郝 灿 程 智 王 颖
(1.北京物资学院,北京, 101149;2.中国科学院微电子研究所,北京, 100029;3.中国科学院大学,北京, 100049)
纺织行业作为基础消费产业,在国民经济中占据着重要的地位。在织物生产过程中,织物疵点控制与检测是极为关键的环节,其质量直接影响面料的市场售价[1]。
传统的织物疵点检测主要依靠人工目检,主观性强、检测准确率低且难以满足实时检测需求。随着机器视觉检测技术的发展,其已被应用于织物疵点自动检测。传统的织物疵点视觉检测方法需要根据不同类型疵点的特征人工设计图像特征提取器,当织物纹理和疵点种类变化时,需重新设计特征提取器,适应性差。基于卷积神经网络织物疵点检测算法可以通过自主学习图像多层级特征信息,有效解决特征提取器设计问题,越来越多地被用于多种类疵点的自动检测。已有文献研究卷积神经网络用于织物疵点检测的可行性。晏琳等人[2]采用Faster RCNN 融合ResNet101 对织物疵点进行检测,检测准确率达到99.6%,但对于细长型的疵点检测效果不理想。史甜甜[3]将深度卷积神经网络结合Fisher 准则约束对彩色格子织物疵点识别准确率达到98.55%。张丽瑶等人[4]在SSD 的基础上,引入双边滤波方法减少织物图像的背景干扰,对油污的识别率可达到92%,但对于织物纹理相近的疵点检测效果不佳。
目前,基于卷积神经网络的目标检测方法主要分成:Two⁃stage 算法,如RCNN[5]、SPP⁃Net[6]、Fast RCNN[7]、 Faster RCNN[8]、 Cascade RCNN[9];One⁃stage 算 法,如RetinaNet[10]、YO⁃LO[11]、SSD[12]。Two⁃stage 算法首先采用预定义框训练区域候选网络(Region Proposal Network,RPN)生成感兴趣区域(Region of Interest,ROI),然后再利用卷积神经网络(CNN)对ROI 进行分类和定位,相较One⁃stage 算法直接提取特征检测目标,Two⁃stage 算法检测准确率更高。但Two⁃stage 算法默认预定义框的尺寸适于常规形状目标,对小尺寸或长宽比极端的目标检测效果不佳。
本研究针对疵点小且长宽比悬殊的织物疵点采用传统预定义框检测效果不佳问题,引入深度残差网络(ResNet101)[13]和金字塔网络(Feature Pyramid Networks,FPN)[14]进行特征 融 合,充分保留疵点的特征信息;采用二步聚类算法确定织物疵点检测的最佳预定义框尺寸,以提高疵点检测准确率和定位精度。
目前统计的织物疵点有水渍、油污、双经等几十种[15]。图1 为部分织物疵点,可知大部分织物疵点长宽差距明显。本研究对天池大赛提供的织物疵点数据集进行分析。表1 列出了织物疵点数据集包含的疵点,共计34 类,疵点种类多。图2(a)为不同种类疵点的数量分布,其中,结头1 996 个,约占疵点样本总数的21%,“三丝”约占疵点样本总数的11%,而双经、云织疵点分别只占疵点样本总数的0.1%,不同种类疵点数量分布极不均衡。 图2(b)为不同种类疵点在图像中所占面积及长宽比分布。可以看出,超过70%的疵点面积在图像中占比小于10%,小疵点较多。破洞等约41% 疵点的长宽比值在0.04~0.50,而约30%疵点的长宽比值在2~20,如双纬的平均长宽比值高达19。只有少量疵点的长宽比值在0.5~2.0。而作为Cascade RCNN 结构一部分的区域候选网络RPN 的默认预定义框的尺寸通常用于检测汽车正面、行人等长宽比值在0.5~2.0的常见目标检测。相较常见目标,大部分织物疵点形状狭长,长宽比范围比较极端,因此RPN 默认预定义框尺寸对于织物疵点检测适用性不佳。
图1 织物不同种类疵点图
图2 牛仔织物疵点数据集分析
表1 织物疵点种类列表
本研究针对疵点种类数量不均衡、疵点长宽比极端、微小疵点数量多等问题,对卷积神经网络目标检测算法进行改进,以提高织物疵点检测的准确率。
本 研 究 采 用Two ⁃ stage 算 法 中Cascade RCNN 网络构架进行织物疵点检测和定位。Cas⁃cade RCNN 算法网络框架如图3 所示。织物疵点图像首先经卷积层(CNN)获取不同尺度的特征图(Feature Maps),特征图经RPN 网络中预定义框(Anchors)得到疵点的感兴趣候选区域(ROIs),然后将候选区域和特征图进行级联回归,通过逐级提高候选框的IoU 值,使得前一级采样过的候选框能够适应下一级更高IoU 值的阶段,进而实现高精度的目标检测。针对织物疵点种类间相似、微小疵点数量多的问题,选取深度残差网络提取更多疵点细节特征,采用金字塔网络(FPN)对不同卷积层的疵点特征进行融合。针对大部分疵点长宽比极端的情况,采用二步聚类算法确定适用于织物疵点检测的预定义候选框尺寸。
图3 Cascade RCNN 卷积网络框架结构图
由于织物疵点较小,且疵点特征在图像中不显著,同时为提高疵点特征提取的精度,选用ResNet101 作为基础疵点特征提取网络。ResNet101 对网络权重及数据的波动敏感,能够捕捉到微小的特征信息,且可有效缓解反向传播时深层卷积导致的退化问题。特征金字塔网络可以融合高低层特征信息,尤其适用于小尺寸目标特征提取。ResNet101 特征提取和特征金字塔网络融合的结构如图4 所示。ResNet101 网络包含1 个低层卷积操作(C1)和4 个残差块(C2~C5),C1 只对输入的织物疵点图像降采样,C2~C5 残差块的尾部采用1×1 的卷积层控制特征图输出深度,最终生成4 个不同层的织物疵点特征图Mi(i=2,…,5),自M5起每个卷积层进行二倍上采样计算(upsample),M5上采样的结果和特征图M4大小相同,M5上采样结果和M4相加实现特征融合,对不同层特征图依次重复上述步骤进行特征融合。为消除上采样的混叠效应,采用3×3 的卷积核对每个融合特征图进行卷积,最终得到融合特征图Pi(i=2,…,5)。
图4 ResNet101+FPN 特征融合网络结构
2.3.1预定义框确定候选区域原理
Cascade RCNN 网络中的RPN 网络根据预定义框生成感兴趣候选区域,其默认框为3 种长宽比(1∶1,1∶2,2∶1)对应3 种尺度(8,16,32)共9 个预定义框,如图5 所示。RPN 对大小为M×M的特征图采用3×3 滑动窗口遍历特征图中每个像素,产生低维特征图(256×M×M),同时滑动窗口的中心位置生成9 个预定义框,低维特征图进行二次1×1 的卷积操作,分别得到18 个疵点判别的概率值和36 个候选框坐标偏移值,对概率值进行非极大值抑制得到ROIs[16]。
图5 候选区域生成网络(RPN)
Cascade RCNN 采用默认预定义框的织物疵点检测结果如图6 所示。图6(a)只检测出疵点的一部分,对应绿框中的疵点,红框为未检测到的部分疵点;图6(b)红框中疵点漏检。由于织物中双纬、双经等大部分疵点长宽比都超出常规目标的长宽比,按照默认预定义框对形状极端的织物疵点检测部分存在错检、漏检的情况,且不能准确定位疵点边界。为此,利用二步聚类算法确定预定义框的大小,以提高对织物疵点的检出率和定位准确率。
图6 默认预定义框的疵点检测结果
2.3.2二步聚类法织物疵点聚类原理
二步聚类算法[17]可同时处理数值型变量和分类型变量,自动确定聚类数目和诊断样本中离群点及噪声数据,避免k⁃means 法需要预先指定聚类数目、主观性强的问题。本研究利用二步聚类算法对织物疵点的长宽比进行聚类,根据聚类结果确定预定义框的长宽比;同时对织物疵点数据集的疵点种类重新聚类,避免样本不均衡导致识别准确率低的问题。
二步聚类算法的实现过程如下:
第1 步,预聚类。样本数据逐条读入构造聚类特征CF 树(Clustering Feature Tree),计算每个样本与子树中所有叶节点的亲疏程度,亲疏程度小于设定阈值的合并为一类,反之增加新叶节点为新的子类,反复迭代该过程,直到所有样本数据均分配到某个子类为止,最终形成J个子类。织物疵点数据库聚类的输入变量为原始各类疵点的数量、各类疵点的平均长宽比和平均面积。由于数据集同时含有数值型变量和分类型变量,采用对数似然函数判断亲疏程度,判别式如式(1)所示。
式中:假设生成J个子类,p为似然函数,Ij为第j类样本的集合,θj为第j类样本的参数向量,Xi为第i个聚类变量。
第2 步,聚类。将第1 步预聚类生成的J个子类进行层次聚类,J个子类需进行J-1 次迭代聚类,每次聚类都需计算任意两子类之间的对数似然距离,将距离最近的两个子类合并。利用贝叶斯信息准则最终得到粗略估计的L大类,利用式(2)对聚类数目L进行修正。
式中:R2(L)为类间差异性最小值变化的相对指标,dmin(CL)为聚类数目为L类,两两类间对数似然距离的最小值。 依次计算R2(L-1),R2(L-2),…,R2(2),直到所有类间差异性变化的最大值大于次大值的1.15 倍终止合并,最大值所对应的类为最终聚类数。
2.3.3二步聚类法疵点确定预定义框
天池织物疵点数据集共有5 912 张图像,由于每张图像可能存在多个疵点,数据集共有34 类9 619 个疵点,图像大小均为2 446 pixel×1 000 pixel。采用二步聚类算法将所有疵点种类重新聚类。34 类疵点重聚类成5 大类。A 类包含破洞、水渍、油渍、污渍、毛粒、粗经、松经、断经、吊经、星跳、跳花、磨痕、轧痕、修痕、烧毛痕、死皱、双经、跳纱、筘路、纬纱不良,共3 064 个样本;B 类包含花板跳、百脚、稀密档、浪纹档、双纬,共630 个样本;C 类包含“三丝”、粗纬、纬缩、整经结、断氨纶,共3 537 个样本,D 类为结头,共1 996 个样本,E 类包含浆斑、色差档、云织,共392 个样本。重聚类各类别疵点数量较均衡,避免了个别类疵点数量较少导致的网络模型训练不充分的问题。
二步聚类法得到的5 类疵点中各类疵点的长宽比聚类中心统计结果如下。A 类疵点长宽比值0.34、1.26、1.50、2.18、11.46、17.32,B 类疵点长宽 比 值0.10、0.11,C 类 疵 点 长 宽 比 值0.15、1.21,D 类疵点长宽比值1.79、2.37,E 类疵点长宽比值0.21、0.37、1.17。为计算方便,本研究选取和长宽比聚类中心近似的比例作为预定义框尺寸,A 类 疵 点 近 似 长 宽 比 值0.20、1.00、2.00、10.00、20.00,B 类疵点近似长宽比值0.10,C 类疵点近似长宽比值0.10、1.00,D 类近似长宽比值2.00,E 类近似长宽比值0.20、0.50、1.00。同时为更好地涵盖极端形状疵点,增加了长宽比值为0.05 和5.00 的预定义框,最终确定检测织物疵点的预定义框的长宽比值共9 种,分别为0.05、0.10、0.20、0.50、1.00、2.00、5.00、10.00、20.00。
本试验采用笔记本电脑,配置为Intel(R)Core(TM)i5⁃9300H CPU、2.40 GHz 处 理 器,NVIDIA GeForce GTX1650 显卡及windows10操作系统,基于Pytorch 的深度学习目标检测框架MMDetection 进行模型搭建,采用Python 程序语言编程实现织物疵点检测。
采用疵点识别准确率(Accuracy,ACC)评价本研究改进算法的织物疵点检测结果。ACC计算如式(3)所示。其中TP为实际疵点检测为疵点的样本数,TN为无疵点检测为无疵点的样本数,FP为无疵点误检测为疵点的样本数,FN为实际疵点误检测为无疵点的样本数。
按照二步聚类法得到的重聚类疵点种类将织物疵点数据库按8∶2 的比例随机划分成训练集和测试集,利用本研究改进[18]的特征提取和融合网络以及设定的预定义框,对改进前后模型检测结果进行比较。
改进前后模型的疵点检测结果如图7 所示。相较于原始模型,改进后模型对疵点的定位精度高,且没有漏检。
图7 基于Cascade RCNN 织物疵点图像识别结果
图8为模型改进前后Cascade RCNN 网络对5 类疵点的识别准确率。A 类、D 类疵点主要为微小疵点,改进后Cascade RCNN 模型的ACC分别提高4.1 个百分点、3.1 个百分点;B 类、C 类、E 类疵点大部分是长宽比极端疵点,相较于改进前模型,改进后Cascade RCNN 模型ACC分别提升9.7 个百分点、20.8 个百分点、14.9 个百分点。
图8 Cascade RCNN 改进前后各类别ACC 对比结果
本研究围绕织物疵点类间相似、类间数量不均衡、大部分疵点长宽比极端、小尺寸疵点数量多等问题,对Cascade RCNN 目标检测算法进行改进,使用二步聚类算法优化预定义框,引入深度残差网络(ResNet101)优化网络结构进行特征提取并采用特征金字塔网络(FPN)进行特征融合以提高织物疵点的识别准确率。试验结果表明,采用二步聚类算法确定的预定义框,适用于极端形状织物疵点检测,同时引入深层网络及多尺度融合特征提取网络可进一步提高模型的疵点识别准确率。