基于边缘计算的织物缺陷检测EfficientDet

引言

纺织品广泛应用于我们的生活中,如服装、毛巾、滤布,以及航空航天、医疗卫生等特定领域。然而,在纺织品生产过程中,不可避免地会产生有缺陷的织物。大多数缺陷是由机械故障、劣质纱线以及缝纫设备上的油污引起的。这些不合格的纺织品不仅会损害企业声誉,甚至可能对某些产品的安全性造成严重影响。根据市场研究,二等纺织品的价格比一等纺织品降低45%–65%。因此,为了提高利润和产品竞争力,织物缺陷检测已成为必不可少的步骤。根据纺织工厂的反馈,人工检测方法的准确率仅为70%,且高昂的劳动力成本给企业带来了沉重负担。因此,纺织工业的质量控制迫切需要自动化织物缺陷检测系统。

基于计算机视觉(CV)的自动化织物检测系统主要分为两类:传统的图像识别方法和基于深度学习的方法。从图像分析的角度来看,传统的图像识别检测分为三类:统计分析、频域分析和模型分析,这些方法利用Gabor滤波器带和格子分割来提取图像块特征,并将其用于缺陷检测。Jing等人提出了一种基于CIE L*a*b颜色空间并使用二维Gabor滤波器的织物缺陷检测方法。Xiaobo等人应用高斯‐马尔可夫随机场(GMRF)模型来提取织物特征并进行检测。这些方法都需要人工设计的特征提取方案。然而,由于当今纺织品种类繁多,这些方法的通用性受到了极大限制。近年来,随着图形处理单元(GPU)计算能力的大幅提升,深度学习方法取得了显著进展。与传统图像处理算法不同,深度学习方法采用卷积神经网络(CNN)自动提取图像特征,将特征学习融入整个模型构建过程,从而显著提高了模型的通用性。

Cha等人将卷积神经网络应用于墙体裂缝检测,所提出的CNN方法相比传统的著名边缘检测算法(如Canny和Sobel)表现出非常强的鲁棒性。Jing等人提出了一种基于YOLO‐V3的织物缺陷检测方法,通过聚类数据集和增加网络检测层来提升检测效果,并最终将其应用于灰布和格子织物。

在纺织工业场景中,自动织物缺陷检测系统需要满足三个要求。首先,高速运行的生产线要求检测系统满足实时和低响应延迟的要求。其次,生产线的功耗应尽可能低。最后,为了方便升级生产线,检测系统必须具有良好扩展性。针对上述要求,本文提出了一种基于边缘计算的织物缺陷检测方法。总结来说,本工作的主要贡献如下:

  1. 本文提出了一种结合EfficientDet与边缘计算的自动织物缺陷检测系统,并将边缘设备应用于织物缺陷检测。在边缘设备NVIDIA Jetson TX2上部署轻量级网络,降低了系统的整体响应时间,并利用模型特征使生产线更易于升级。
  2. 为了提高模型的鲁棒性,我们对训练数据集进行了增强,并在五个不同的织物数据集上将EfficientDet与主流单阶段检测网络进行了比较。
  3. 为了适应边缘设备有限的计算资源,我们使用TensorRT对模型进行优化,使其满足工业检测速度的要求。此外,还比较了云端计算和边缘计算相应的延迟。

本文的其余部分组织如下:第2节介绍了本文的相关工作,包括传统的缺陷检测方法、基于深度学习的检测方法以及边缘计算的研究现状。第3节详细描述了我们提出的方法。第4节简要介绍了五个不同的织物数据集,随后讨论了实验结果,包括模型的测试结果、模型移植后的TensorRT优化,以及云计算与边缘计算之间的比较。第5节对本文进行总结。

相关工作

传统缺陷检测方法

根据图像分析方向的不同,检测模型可分为三类:基于统计的方法、基于频谱的方法和基于模型的方法。Latif‐Amet等人提出了子带共生矩阵(SBCM)来检测纺织图像中遇到的缺陷。该方法结合小波理论和共生矩阵,将灰度图像分解为多个子带,然后将图像划分为非重叠窗口以提取共生特征。然而,该方法的可靠性及其在其他织物上的适用性尚不明确。Tsai和Molina提出了用于加工表面检测的弧形结构元素的形态学方法。这种形态学方法能够有效去除刀具痕迹并突出局部缺陷,但其局限性较大,仅适用于具有圆形刀具痕迹的表面。鉴于某些织物图像具有较强的纹理特征,一些学者考虑采用频谱分析方法来检测织物缺陷。Anandan和Sabeenian利用相邻尺度上curvelet变换信息的即时复制,从噪声中识别出关键边缘,并结合Curvelet变换(CT)和灰度共生矩阵(GLCM)来发现潜在的纹理缺陷。然而,该算法的实时性能并未提及。Jing等人将遗传算法与Gabor滤波器相结合,以匹配织物无缺陷图像纹理信息。然后使用调整后的Gabor滤波器来检测织物上的缺陷。但Gabor滤波器中参数的选择在缺陷检测问题中是一项具有挑战性的任务。在处理具有复杂纹理的织物时,基于模型的方法更为合适。复杂纹理可以被建模为一个随机过程,并将缺陷检测问题视为基于模型导出的统计量的统计假设检验问题。Xiaobo和Allili等人分别应用高斯‐马尔可夫随机场(GMRF)模型和高斯混合模型来提取织物特征并进行缺陷检测。然而,这些方法计算成本较高,且对小缺陷的准确率较低。

用于缺陷检测的深度学习方法

由于传统方法的局限性,近年来越来越多的学者开始研究基于深度学习的检测方法。例如,Quyang等人提出了一种基于深度学习的在机织造缺陷检测方法,该方法结合了预处理、织物图案识别、候选缺陷图生成和卷积神经网络(CNN)技术。李E等人提出了一种紧凑型CNN架构,并将其应用于一些常见织物缺陷。刘等人提出了一种多阶段生成对抗网络,通过训练多阶段生成对抗网络生成缺陷样本,并利用语义分割网络进行检测,在多种织物数据集的准确率指标上表现良好。然而,该论文未提及模型在实际应用中的效果,例如检测速度是否满足要求。Zhao等人提出了一种多缺陷检测流程,并将其应用于复兴号动车组。该方法改进了区域建议网络(RPN)的锚框和特征融合机制,并将超分辨率策略与在分类阶段使用CNN以提高分类性能。尽管深度学习方法在通用性方面优于传统方法,但其系统的部署通常需要大量的计算资源。当计算资源不足时,系统的检测性能将显著下降。

边缘计算及其应用

目前大多数深度学习方法都与云计算相结合。为了满足过高的计算需求,云计算采用了强大的数据中心进行集中式处理。然而,在这种以云端为中心的方法中,由于海量数据(如图像和视频)的传输所引起的数据阻塞会严重影响生产效率。为缓解这一问题,边缘计算与深度学习的结合应运而生。边缘计算是一种开放式平台,将计算能力和存储设施下沉到更接近用户或数据源的一侧,集成了网络、计算、存储和应用的核心功能。边缘计算的部署图如图1所示。边缘计算利用分布式部署和更接近数据源的优势,能够有效解决高宽带成本、传输延迟和数据拥塞等问题。这种新型模式支持计算密集型和延迟敏感型应用。随着5G的加速应用,边缘计算的应用将持续扩展,例如工业互联网、智慧城市和智能交通等。Lin等人将边缘计算框架与深度Q网络(DQN)相结合,用于解决复杂作业车间调度问题(JSP),其性能优于仅使用单一调度规则的其他方法。刘等人提出了一种视频识别系统基于边缘设备的饮食评估。刘等人提出了将边缘计算应用于公共智能监控和跟踪。

示意图0

提出的方法

为了满足工业自动化织物缺陷检测系统的需求,我们提出了一种基于边缘计算的自动化织物缺陷检测方法。我们的方法的整体框架如图2所示。在3.1节中,我们首先从工业缺陷检测的三个需求出发,详细阐述了提出的方法的可行性。然后在3.2节中介绍了本文所使用的检测算法。为了使模型具备实时工业缺陷检测的能力,我们在3.3节中使用NVIDIA TensorRT对训练好的模型进行优化。

设计依据

在工业场景中,自动织物缺陷检测需要具备三个必要属性。首先,自动织物缺陷检测系统需要与高速生产线相匹配,并及时响应有缺陷的织物。这不仅要求检测算法速度快,还要求系统响应迅速。其次,生产线应具有低功耗特性,以降低生产成本。第三,为了便于未来对生产线进行升级,检测系统必须具备可扩展性。针对上述为了满足需求,我们采用基于边缘计算并使用EfficientDet‐D0算法的检测系统。如前所述,边缘计算可将计算任务从云端卸载到边缘设备,不仅提高了检测速度,还保护了企业生产过程中的数据隐私。同时,网络带宽的减少也降低了企业的生产成本。EfficientDet采用了轻量级可扩展主干网络和特征提取网络,其中EfficientDet‐D0的参数量(params)和浮点运算次数(FLOPs)分别仅为3.9 M和2.54 B,这使其在检测速度上具有绝对优势。增加边缘设备能有效降低生产线的功耗和系统响应时间,以及企业的生产投资。同时,EfficientDet模型的多尺度特性符合工业生产线对时间和便捷升级的需求。

为了增强模型在真实工业场景中的鲁棒性,我们对训练数据集进行了增强,包括随机裁剪、翻转、模糊、亮度增益和噪声。我们将这些方法应用于五个不同的织物数据集以验证检测效果。随机裁剪策略用于模拟从不同摄像头视角采集的样本。随机翻转用于扩展数据,从而提高训练模型的质量。随机亮度增益可以模拟不同的光照条件。噪声和模糊能够增强模型的鲁棒性。

在本地工作站完成模型训练后,我们将其移植到边缘设备NVIDIA Jetson TX2上。为了进一步提高检测速度,我们使用TensorRT来优化并加速模型。比较了云计算和边缘计算中检测系统的响应延迟,以验证所提出方法的可行性。

示意图1

EfficientDet架构

EfficientDet是一种轻量级、可扩展的检测网络,共包含八个模型D0–D7。从D0到D7,模型的准确率和时间复杂度随着模型大小的增加而增加。这八个模型能够满足广泛多样的资源限制。EfficientDet的骨干网络采用EfficientNet,其使用大量深度可分离卷积以使模型更加轻量。此外,网络的颈部结构采用了双向加权特征金字塔网络(BiFPN)。BiFPN从路径聚合网络(PANet)出发,移除了仅有一个输入边的节点,并在输入节点与输出节点处于相同层级时添加一条捷径。其目的是在不增加计算成本的情况下融合更多特征。由于不同输入特征的分辨率不同,在特征融合过程中为每个输入特征添加了额外权重。这种加权融合使得网络能够学习不同特征的重要性。

我们以第5层的特征为例具体描述该融合机制:

$$
F_{mid}^5 = \delta_1 \cdot Conv(\delta_2 \cdot F_{in}^5) + \delta_3 \cdot F_{mid}^6 + \theta
$$

$$
F_{out}^5 = \delta’ 1 \cdot F {in}^5 + \delta’ 2 \cdot Conv(F {mid}^5) + \delta’ 3 \cdot F {out}^4 + \theta’
$$

其中$F_i^{in}$是$L_i$处的输入特征,$L_i$是特征层级。$F_i^{mid}$表示自上而下路径上$L_i$处的中间特征。而$F_i^{out}$是自下而上路径上$L_i$处的输出特征。$\theta$用于避免数值不稳定问题。$\delta$是特征融合的权重。在BiFPN之后,所有融合后的特征将被分类与框预测网络处理,以预测和定位缺陷。图3展示了该网络的结构。BiFPN、边界框预测网络和分类预测网络将根据不同的模型尺寸重复若干次。不同尺寸的骨干网络、BiFPN和预测网络共同构成了八种EfficientDet模型,可适应不同的计算资源。

示意图2

TensorRT优化

TensorRT是NVIDIA专门为神经网络推理阶段提供的优化器。它主要从两个方面进行优化:层与张量融合以及权重与激活精度校准。当神经网络执行推理计算时,每一层的计算都必须通过GPU中的统一计算设备架构(CUDA)完成,这导致大量时间浪费在CUDA的启动以及各层之间的读写操作上。TensorRT通过在层之间进行水平或垂直合并,大幅减少了层数量(合并后的结构称为CBR,代表卷积、偏置和ReLU,这些操作被合并为一层)。垂直合并可以将卷积、偏置、ReLU合并为一个CBR结构,并仅占用一个CUDA核心。水平合并则可以将结构相同但权重不同的CBR合并为更宽的层,同样占用一个CUDA核心。由于合并,计算图的层级减少,使用的CUDA核心也减少,从而使整体模型结构更小、更快且更高效。

实验与讨论

在本节中,我们将通过一系列实验评估提出的方法的性能。所有本地实验均在配置了Intel i7‐5930K处理器(3500 MHz)、64GB内存和NVIDIA GeForce GTX TITAN X GPU的本地工作站上进行。软件部分使用Windows 10操作系统和Tensorflow 2.1深度学习框架。所有在边缘端的实验均在NVIDIA Jetson TX2边缘设备上进行。NVIDIA Jetson TX2是一种高效且快速的嵌入式人工智能(AI)计算设备。其 GPU采用NVIDIA Pascal架构,配备256个CUDA核心和8GB内存。处理器集群由双核Denver2处理器和四核ARM架构cortex‐A57组成,功耗仅为7.5瓦。它适用于边缘计算场景。 示意图3

数据集与增强

在本实验中,我们使用了五个不同的织物数据集,其中所有图像均来自实际织物生产线并经过人工标注。此外,用于采集纺织品图像数据的相机为Basler acA2500‐14gm,配备GigE接口。镜头采用Basler镜头C125‐0618‐5M‐P,分辨率为500万像素,固定焦距为6毫米。同时,根据纺织品的特点,我们选用Opt白色环形LED光源,具体型号为OPI‐RI5000‐W。在采集图像时,织物与镜头之间的距离为320毫米,光源与织物之间的距离为270毫米。这五个数据集的织物类型分别为深红色织物(DRF)、格子织物(GF)、迷彩织物(CF)、数码印花织物(DPF)和浅蓝色织物(LBF),如图5所示。

在织物缺陷检测中,数据集的数量并不像我们想象的那样充足,样本不足对基于深度学习的检测方法构成了挑战。因此,我们对五个数据集进行了增强,以提高模型的训练效果和工业鲁棒性。以DRF数据集为例,在深红色织物数据集的情况下,我们对每张原始图像采用了随机裁剪、模糊、亮度增益、翻转和噪声处理,如图6所示。

我们将所有图像分为两部分:90%作为训练集,10%作为测试集。五个织物数据集中训练集和测试集的样本数量如表1所示。这五个数据集包含不同纹理类型的织物,包括规则纹理织物和随机图案织物,缺陷类型涵盖广泛(如DRF中的大面积缺陷和CF中的微小缺陷),可用于验证所提出方法在不同类型织物和缺陷上的性能。请注意,在训练前,我们将所有图像尺寸归一化至256 × 256。

示意图4 DRF,(b) GF,(c) CF,(d) DPF,和 (e) LBF)

示意图5 原始图像,(b) 裁剪,(c) 模糊,(d) 亮度调整,(e) 翻转,和 (f) 噪声)

表1. 增强数据集的分布

数据集 训练集 测试集 总计 图像大小
DRF 523 59 582 256 × 256
GF 461 52 513 256 × 192
CF 540 60 600 256 × 256
DPF 463 51 514 1024 × 1024
LBP 625 69 694 256 × 256

表2. 五个数据集的锚框比例

数据集 锚框1 锚框2 锚框3
DRF 60:53 30:200 255:25
GF 17:30 22:15 28:38
CF 15:14 21:21 21:36
DPF 52:1002 91:1022 1021:53
LBP 34:95 52:45 88:77

评估指标

本实验的评估指标包括两部分:检测速度和检测精度。我们采用每秒帧数(FPS)来评估检测速度,采用平均精度(mAP)来评估提出的方法的检测精度。评估指标FPS和mAP定义如下:

$$
\text{mAP} = \frac{\sum \text{AP}_C}{N}
$$

其中 $\text{AP}_C$ 表示每种缺陷的平均准确率,$C$ 表示缺陷类型;$N$ 是类别总数。

$$
\text{FPS} = \frac{F_{\text{TotalFrame}}}{T_{\text{TotalTime}}}
$$

其中 $F_{\text{TotalFrame}}$、$T_{\text{TotalTime}}$ 分别为检测帧总数和检测所用总时间。

在工作站上进行实验

鉴于边缘设备的计算能力有限,我们在本地工作站上训练模型,然后将训练好的模型移植到边缘设备上以减少模型的训练周期。EfficientDet的边界框预测网络基于锚框,因此我们参考了YOLO‐V2的锚框聚类方法以获得更好的训练效果。根据网络设置,我们对训练数据进行了k‐均值聚类,最终的锚框比例见表2。同时,我们还对比了当前主流的单阶段目标检测方法,包括YOLO‐V3、SSD、RetinaNet。

定性分析

所有模型都在表1列出的五个织物数据集上进行比较。不同模型的测试结果如图7所示,其中图7(a)和(b)、(c)和(d)、(e)和(f)、(g)和(h)、(i)和(j)分别为LBP、CF、DRF、GF、DPF数据集的测试结果。对于LBF数据集,这四个模型均能有效检测缺陷,但定位精度有所不同。从(a)列的检测结果可以看出,除了EfficientDet‐D0外,所有模型的检测结果中均存在更多的非目标区域。对于CF数据集中微小缺陷,RetinaNet和YOLO‐V3分别出现了漏检和误检,如图7(c)和(d)列所示。对于贯穿整个样本的缺陷,所有模型的检测结果均不理想。以DRF和DPF数据集中的直观显示为例,在这两个数据集中均存在贯穿整个样本的缺陷,但RetinaNet和SSD均未能检测出此类缺陷;尽管YOLO‐V3检测到了缺陷,但其检测出的缺陷‐free区域过多。在DRF数据集的e列中,RetinaNet仅包围了缺陷区域的一半。在GF数据集中,缺陷形状较小,且单个样本中包含多个缺陷。除RetinaNet外,其他模型均检测出了多个缺陷,但模型预测的包围框与真实标注相差较大。从整体视觉对比来看,EfficientDet‐D0模型在五个不同的织物数据集中均实现了更好的检测效果,能够准确检测样本缺陷,且预测的包围框相对准确。

定量分析

FPS和mAP分别用于对模型的准确率和速度进行定量分析。五个数据集的检测精度如图8和表3所示。通过对比,EfficientDet‐D0模型在全部五个数据集中均表现出更优的性能。在纵向对比中,在GF数据集中,样本背景多变且存在大量小尺寸缺陷,EfficientDet‐D0的检测精度达到98%,高于其他三个模型,表明其在微小缺陷检测方面具有较强能力。在DPF数据集中,缺陷的长宽比较大,且大多数缺陷贯穿整个样本。在检测此类缺陷时,EfficientDet‐D0优于其他模型。在横向对比中,EfficientDet‐D0在全部五个数据集上均能获得较高的mAP,显示出其高鲁棒性。同时,我们对比了模型在五个数据集上的平均精度和标准差。EfficientDet‐D0具有最高的平均精度和较低的标准差,表明其出色的泛化能力。

图9和表4分别显示了各对比模型在同一硬件平台上的检测速度。最快的模型是EfficientDet‐D0,其检测速度为42 FPS,单次检测时间为23.8 ms。YOLO‐V3的检测速度接近SSD,分别达到23 FPS和24 FPS,且单次检测时间约为41毫秒。RetinaNet的检测速度最慢,仅为12.8 FPS。

示意图6

示意图7

表3. 检测精度(mAP)对比 (%)

模型 DRF GF CF DPF LBP 平均精度 标准差
EfficientDet‐D0 91.30 98.11 92.40 98.22 98.20 95.65 3.12
YOLO‐V3 90.90 89.97 90.23 91.53 93.23 91.17 1.16
SSD 90.36 96.27 92.06 92.11 95.41 93.24 2.23
RetinaNet 92.50 90.30 93.90 70.32 91.70 87.74 8.79

示意图8

表4. 工作站上的推理时间

模型 FPS 推理时间(毫秒)
EfficientDet‐D0 42.00 23.81
EfficientDet‐D1 27.00 37.03
YOLO‐V3 24.00 41.67
RetinaNet 12.80 78.13
SSD 23.00 43.48

在边缘设备上的实验

考虑到工业缺陷检测对实时性和低功耗的要求,我们将本地工作站上训练的模型部署到我们的边缘计算设备Jetson TX2上。我们在边缘设备上对比了上述模型的推理时间,如表5所示。请注意,我们发送到网络进行推理的图像大小为256 × 256,最终输出大小为512 × 512。如图10和表5所示,由于边缘设备有限的计算资源,所有移植到Jetson TX2的模型检测速度均有所下降。为了提升模型速度,我们对EfficientDet‐D0采用了TensorRT优化。优化后的模型推理时间更短,更符合工业检测速度的要求。在本实验中,我们采用了单精度优化策略。

对于该模型,加速前后的模型对比显示在图11中。在使用TensorRT对模型进行优化后,模型的推理时间从72.8毫秒缩短至43.9毫秒,FPS从13.7提升至22.7。模型的检测时间减少近一半,速度提升了近两倍,具备了工业实时检测的能力。

我们使用优化后的模型对五个数据集进行了测试,检测结果如图12所示。加速后的模型在五个数据集的检测中表现良好。

为了验证边缘计算在工业缺陷检测中的优势,我们对比了边缘计算与云计算的相应延迟。在本实验中,我们测试了从云服务器到本地的数据传输延迟。尽管云计算在计算时间上更短,但数据传输消耗了大量时间,从而降低了整体检测速度。而在边缘计算中,边缘设备可以直接处理接收到的图像,无需将数据上传至云端以及下载检测结果,减少了大部分时间开销,提高了整体响应速度。我们使用阿里云服务器作为测试平台来测量通过HTTP协议从本地到云服务器的传输延迟。云端到本地的数据传输延迟如表6所示。

本实验中使用的本地带宽为300兆,阿里云服务器为1兆。从本地到云端共有七个跳转。在表6中,原始图像上传和结果返回的延迟包括资源调度、连接建立以及完成数据传输所需的全部时间。除去资源调度和连接建立的延迟,上传数据的精确延迟为48.39毫秒,从云端返回结果的数据传输延迟为35.70毫秒。如果我们去除连接建立的时间(首次连接建立后),从原始图像上传到结果返回,与云计算相比,边缘计算所消耗的时间减少了2.5倍。经过比较可以看出,边缘计算在检测速度上具有显著优势,这是一种适用于需要高检测速度的工业应用的可行检测解决方案。

示意图9

示意图10

示意图11 DRF,(b) GF,(c) CF,(d) DPF,和 (e) LBF)

表5. Jetson TX2上的推理时间

模型 FPS 推理时间(ms)
EfficientDet‐D0 13.74 72.80
EfficientDet‐D1 4.18 239
YOLO‐V3 3.30 300
RetinaNet 2.56 390
SSD 2.00 500

表6. 延迟比较

步骤 云端计算 (毫秒) 边缘计算 (毫秒)
原始图像上传 99.80 /
推理 23.80 43.90
结果返回 85.30 /

结论

本文提出了一种基于边缘计算的织物缺陷检测方法,满足工业缺陷检测生产线对低响应、低功耗和便捷升级的需求。将轻量级且可扩展的EfficientDet算法与NVIDIA Jetson TX2相结合,能更好地解决延迟和功耗问题。同时,采用数据增强技术以提升模型的检测性能。此外,利用TensorRT优化来加速模型的检测速度,实现快速缺陷检测。对比实验表明,该方法的响应时间比基于云计算的检测方法快2.5倍。因此,所提出的基于边缘计算的检测方法在实时工业缺陷检测中展现出显著的潜力和优势。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐