CN116994130A - 一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法 - Google Patents
一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法 Download PDFInfo
- Publication number
- CN116994130A CN116994130A CN202310840281.0A CN202310840281A CN116994130A CN 116994130 A CN116994130 A CN 116994130A CN 202310840281 A CN202310840281 A CN 202310840281A CN 116994130 A CN116994130 A CN 116994130A
- Authority
- CN
- China
- Prior art keywords
- model
- image
- training
- teacher
- student
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013140 knowledge distillation Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012549 training Methods 0.000 claims abstract description 65
- 238000001514 detection method Methods 0.000 claims abstract description 30
- 238000012360 testing method Methods 0.000 claims abstract description 17
- 238000012795 verification Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 30
- 238000009826 distribution Methods 0.000 claims description 26
- 238000001914 filtration Methods 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 14
- 238000004458 analytical method Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 11
- 230000001965 increasing effect Effects 0.000 claims description 10
- 238000011156 evaluation Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 238000004821 distillation Methods 0.000 claims description 7
- 240000007651 Rubus glaucus Species 0.000 claims description 6
- 235000011034 Rubus glaucus Nutrition 0.000 claims description 6
- 235000009122 Rubus idaeus Nutrition 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000013135 deep learning Methods 0.000 claims description 5
- 238000011068 loading method Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 5
- 238000013526 transfer learning Methods 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 4
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 3
- 230000004913 activation Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000011049 filling Methods 0.000 claims description 3
- 230000036541 health Effects 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 3
- 238000003062 neural network model Methods 0.000 claims description 3
- 230000003287 optical effect Effects 0.000 claims description 3
- 238000011897 real-time detection Methods 0.000 claims description 3
- 230000008439 repair process Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 abstract description 2
- 238000002360 preparation method Methods 0.000 abstract description 2
- 238000013527 convolutional neural network Methods 0.000 description 7
- 238000007689 inspection Methods 0.000 description 7
- 239000006185 dispersion Substances 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 239000012636 effector Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000512668 Eunectes Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/176—Urban or other man-made structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/0895—Weakly supervised learning, e.g. semi-supervised or self-supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/096—Transfer learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
- G06V10/7753—Incorporation of unlabelled data, e.g. multiple instance learning [MIL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/17—Terrestrial scenes taken from planes or by drones
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Remote Sensing (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,主要步骤如下:(1)数据集准备。构建带标签自建数据集T和无标签数据集XU。(2)教师网络模型的训练。将步骤1中自建数据集T以6:2:2分为训练集、验证集和测试集以获得准确率最高的教师模型。(3)学生网络模型的训练。采用一种新型的半监督标签知识蒸馏方案BCSLD使用教师模型指导学生模型进行学习,构建高精度轻量化的识别模型。(4)模型的部署。将训练得到的高精度轻量化的识别模型部署至嵌入式设备,连接摄像头并安置在无人机上,实现对桥梁结构裂缝实时智能检测识别的任务,能够显著提升轻量化网络对桥梁结构裂缝识别的准确性。
Description
技术领域
本发明涉及结构监测技术领域,特别是一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法。
背景技术
随着社会快速发展,沟通加剧、各类重载交通工具数量成倍的增加,这对桥梁在服役期内的适用性和耐久性提出了更高的要求。全国现有公路桥梁已超96万座,而其中大量桥梁服役已超过二三十年,这表明我国交通基础设施发展需求正逐渐向养护管理转变,在役桥梁工程结构的诊治和提升将成为行业的重要任务。而现阶段桥梁检测主要依靠桥检车作业和人力作业,桥梁状况的评估主要依赖于技术人员的经验判断。但由于检测过程主要依靠人眼观察为主,且需要多人作业,因此在检测效率和精度上都难以满足现有基础设施的常规检查。对于中大桥梁检测,往往还需要检测人员搭建支架或使用桥检车到桥梁侧面和底部进行检测,其成本往往居高不下且检测人员面临巨大安全风险。因此,利用现有技术和设备实现对以裂缝为代表的结构损伤智能化、自动化识别已成为行业的重要任务。
卷积神经网络(CNN)近年来在结构工程损伤识别领域得到广泛应用,CNN的成功主要伴随着现代并行计算设备(如GPU)的流行和大量标注数据集的可用。前者使CNN的快速推理变得可行,而后者使训练大型CNN模型成为可能。如何在不增加大量额外计算代价的情况下,或者在不进行大量人工数据标注的情况下,进一步提高基础CNN或通用CNN的性能,成为关键的研究课题。大型的分类网络往往需要大量的参数来达到高精度的分类结果。这些参数数量巨大,消耗大量内存和算力,这使得它们难以在资源有限的设备(如嵌入式系统或移动设备)上部署,限制了其在实际应用中的推广。
发明内容
有鉴于此,本发明的目的在于提供一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,可以大大提升轻量化网络对裂缝识别的准确率,采用所发明的基于知识蒸馏的训练策略能够快速准确地识别出桥梁结构表观裂缝并在在移动端设备上进行部署应用,减少了人工检查成本,极大提高了检测效率。
为实现上述目的,本发明采用如下技术方案:一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,包括以下步骤:
步骤1,数据集准备;构建带标签自建数据集T和无标签数据集XU;
步骤2,教师网络模型的训练;将步骤1中自建数据集T以6:2:2分为训练集、验证集和测试集以获得准确率最高的教师模型;
步骤3,学生网络模型的训练;采用半监督标签知识蒸馏方案BCSLD使用教师模型指导学生模型进行学习,构建高精度轻量化的识别模型;
步骤4,模型的部署;将训练得到的高精度轻量化的识别模型部署至嵌入式设备,连接摄像头并安置在无人机上,实现对桥梁结构裂缝实时智能检测识别的任务。
在一较佳的实施例中,步骤2中,教师网络模型选择为ResNeXt101中的32x16d版本,其中32表示分组卷积的组数,16d表示每组的通道数;
教师网络模型采用迁移学习方法的预训练模型采用PyTorch官方在ImageNet上训练得到的ResNeXt101预训练权重;
采用的特定的图像增强策略,对每次训练前所载入的各批次图像进行图像变换增强;使用pytorch中的torchvision库进行图像增强。
在一较佳的实施例中,使用pytorch中的torchvision库进行图像增强包括以下操作:
随机翻转:对图像进行垂直方向的随机翻转,增加图像的多样性;
ColorJitter:对图像的亮度、对比度、饱和度进行随机调整,增加图像的随机性;设置brightness=0.5,contrast=0.5,saturation=0.5作为参数;
随机旋转:对图像进行随机角度的旋转,增加图像的变化性;设置-15°作为旋转范围,并使用白色填充旋转后的空白区域;
拉伸:对图像进行横向或纵向的拉伸,增加图像的形变性;设置横向拉伸50%作为参数;
高斯模糊:对图像进行高斯滤波,增加图像的模糊性;设置核大小为5×5作为参数;
噪音:对图像添加高斯噪音,增加图像的噪声性;设置噪音强度为1.5作为参数;
随机透视变换:对图像进行随机透视变换,增加图像的扭曲性;设置distortion_scale=0.3,p=1.0,fill=255作为参数。
在一较佳的实施例中,
步骤3中,BCSLD方案通过自建数据集T和经由教师模型Q筛选后的数据集U来将教师模型Q学到的知识转移到学生模型P;流程具体为:
(1)通过利用教师模型Q来对未标记数据集XU进行筛选过滤;Filtering主要工作是根据教师模型对每个类别的预测概率或置信度,选择出那些教师模型预测正确且置信度高的类别,作为学生模型的部分训练集U;
(2)使用BCSLD方案将学生模型P与教师模型Q组合成一个新的网络,该网络分别输出P和Q的预测分布;假设教师模型的泛化误差很小,用它来指导学生模型而无需考虑真实标签;固定教师模型整个网络的梯度而学生模型正常进行反向传播;最后将两个模型的全连接层输出经过softmax激活函数转换为软标签,并将二者的软标签进行JSD散度计算,其值作为损失函数,用于蒸馏模型训练;
(3)通过对比学生模型P和教师模型Q在验证集上的表现,评估知识蒸馏方案的有效性;同时,通过对比学生模型P和其他轻量化神经网络模型在同一测试集上的表现,评估轻量化识别模型的优劣。
在一较佳的实施例中,给定两个概率分布P和Q,JSD定义为相对熵KLD的平均值的平方根;JSD如式(1)所示:
其中,M是P和Q的平均分布,KL散度定义为:
JSD是对称的,即JS(P||Q)=JS(Q||P);JS散度的值域在[0,1]之间,当两个概率分布完全相同时,JS散度为0,当两个概率分布完全不同时,JS散度为1;
当用作知识蒸馏任务的损失时,Loss值表示为:
其中,p(y|X)和q(y|X)分别表示teacher model和student model在输入X下的预测分布,m(y|X)=0.5×(p(y|X)+q(y|X))表示它们的平均分布,DKL表示KL散度;通过最小化有标签数据和无标签数据上的JSD loss,即可让student model学习到teacher model的知识,从而提高其预测能力;在使用所提知识蒸馏方案实际训练过程中,由于MobileNetv3包含15个block,故对中间层学习率进行调整,设置每3个block共享一个学习率倍数参数,因此中间层学习率设置为[0.25,0.25,0.5,0.5,0.75],以在采取相同的学习率时减少对中间层特征的破坏;优化器选择Adam,批大小为32,总训练轮次为100个epoch;
其中,Filtering部分可用公式表述如下:
假设教师模型Q对未标记数据集XU中的第i个样本xi输出一个概率向量qi=(q1i,q2i,…,qki),其中k是类别数,qki表示xi属于第k个类别的概率;我们定义一个阈值t,表示教师模型对样本分类的置信度;用以下公式来判断教师模型是否对样本xi分类正确且置信度高:
其中yi是样本xi的真实标签;如果f(qi)=1,表示教师模型对样本xi分类正确且置信度高,那么就将样本xi加入到学生模型的部分训练集U中;如果f(qi)=0,表示教师模型对样本xi分类错误或置信度低,那么就将样本xi过滤掉,不加入到学生模型的部分训练集U中。
在一较佳的实施例中,步骤4中,将得到的高精度轻量化模型部署到无人机设备中以实现对桥梁结构的实时检测;流程具体为:
(1)模型格式转换:在pytorch深度学习框架下,使用torch.onnx.export函数,将模型结构及权重导出为ONNX格式,并保存在树莓派上;通过指定输入和输出的维度、数据类型、设备等参数,以适应不同的场景和需求;
(2)适配和优化设备环境:在树莓派上安装ONNX Runtime,选择不同的后端执行器;使用其内置工具onnxruntime_perf_test和onnxruntime_tools来测试和优化模型的推理速度和内存占用;
(3)加载和运行模型:连接一台支持USB或CSI接口的高清摄像头,并将其安装在无人机上;编写相应的程序代码,使用cv2.VideoCapture函数读取摄像头的视频流,使用onnxruntime.InferenceSession函数加载ONNX模型,使用session.run函数对每一帧图像进行裂缝检测,并将检测结果用cv2.imwrite函数和csv库进行保存;
(4)实时处理与分析:通过定义crack_analysis函数来对相邻帧图像的检测结果和相对位置关系实时分析;函数包含一些图像处理和计算机视觉的方法,如特征点匹配、光流跟踪、单应性变换等,来获取相邻帧图像之间的对应关系和运动信息;同时使用MySQL库的connect和cursor函数来将桥梁结构局部乃至整体的损伤范围存储至MySQL库中,并存储每一帧图像中分析得到的损伤范围;
(5)信息整合及全桥评估:无人机检测结束后,根据现行JTG/T E61-2014《公路路面技术状况自动化检测规程》技术规程,来对检测结果进行汇总、统计、展示和评估,以得到桥梁结构的健康状况和安全风险,并提出相应的维修和保养建议。
与现有技术相比,本发明具有以下有益效果:本发明提出的知识蒸馏方案有效地利用了自建数据集和未标记数据集,将教师模型的知识转移给学生模型,提高了学生模型的分类精度。根据实验结果,本发明提出的知识蒸馏方案使得学生模型MobileNetv3实现了高精度训练,达到了和教师网络ResNeXt101接近的精度(-0.08%)。由于MobileNetv3自身轻量化结构带来的极快的推理速度(8.38ms/pic)以及通过知识蒸馏方案收获的高精度平均识别准确率(超《公路路面技术状况自动化检测规程》识别准确率要求9.35%),达到了工程的可用性。且该模型需要的参数和计算资源远远少于传统的深度学习模型,因此,该模型有可能使裂缝检测系统部署在广泛的移动端设备上以改善桥梁基础设施的安全检测和评估的成本。
附图说明
图1为本发明优选实施例的本发明方法流程示意图;
图2为本发明优选实施例的知识蒸馏总体策略示意图;
图3为本发明优选实施例的无人机检测分析评估流程;
图4为本发明优选实施例的数据集来源及处理流程;
图5为本发明优选实施例的Mobilenetv3网络结构;
图6为本发明优选实施例的MobileNetv3在不同训练策略下表现对比;
图7为本发明优选实施例的网络精度对比图;
图8为本发明优选实施例的图像增强策略对比。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式;如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,参考图1至8,包括以下步骤:
步骤1,数据集准备。构建带标签自建数据集T和无标签(未标记)数据集XU。
步骤2,教师网络模型的训练。将步骤1中自建数据集T以6:2:2分为训练集、验证集和测试集以获得准确率最高的教师模型。
步骤3,学生网络模型的训练。采用一种新型的半监督标签知识蒸馏方案(BCSLD)使用教师模型指导学生模型进行学习,构建高精度轻量化的识别模型。
步骤4,模型的部署。将训练得到的高精度轻量化的识别模型部署至嵌入式设备,连接摄像头并安置在无人机上,实现对桥梁结构裂缝实时智能检测识别的任务。
本发明实例中,所述步骤1中自建数据集T主要是基于桥检图像、无人机图像、公开数据集图像和手持设备拍摄图像的已标注的桥梁裂缝数据集。同时对于剩余未标记的桥检图像、无人机及手持设备拍摄图像,通过脚本对进行批量化裁剪得到无标签数据集XU。批量化裁剪脚本采用python语言编写,可将制定目录下的采集图像批量裁剪为256×256像素大小。数据集来源及处理流程如图4所示;
本发明实例中,所述步骤2中教师网络模型为ResNeXt101中的32x16d版本,其中32表示分组卷积的组数,16d表示每组的通道数。
进一步的,步骤2对数据集T进行划分,将其按6:2:2分为训练集、验证集和测试集,以便于后续的模型训练和评估。教师网络训练过程中采用迁移学习方法及特定图像增强策略,同时在验证集上监控模型的性能,以得到一个高精度分类模型。在测试集上对教师模型进行评估,得到其准确率、召回率、F1值等指标,以及混淆矩阵、ROC曲线等可视化结果,针对结果分析模型的优缺点和改进方向。
其中特定图像增强策略及参数取值如表1所示。通过在每次训练前对神经网络所载入的各批次图像进行图像变换增强,如随机翻转、ColorJitter、随机旋转、拉伸、高斯模糊、噪音、随机透视变换的操作,可以有效地扩充训练数据集,增加数据的多样性和随机性,从而提高模型的泛化能力和鲁棒性。
教师网络模型采用迁移学习方法的预训练模型采用PyTorch官方在ImageNet上训练得到的ResNeXt101预训练权重。
为了提高模型的泛化能力和鲁棒性,本发明采用了特定的图像增强策略,详细处理策略见表1,对每次训练前所载入的各批次图像进行图像变换增强。本发明使用pytorch中的torchvision库进行图像增强,包括以下操作:
随机翻转:对图像进行垂直方向的随机翻转,增加图像的多样性。
ColorJitter:对图像的亮度、对比度、饱和度进行随机调整,增加图像的随机性。设置brightness=0.5,contrast=0.5,saturation=0.5作为参数。
随机旋转:对图像进行随机角度的旋转,增加图像的变化性。设置-15°作为旋转范围,并使用白色填充旋转后的空白区域。
拉伸:对图像进行横向或纵向的拉伸,增加图像的形变性。设置横向拉伸50%作为参数。
高斯模糊:对图像进行高斯滤波,增加图像的模糊性。设置核大小为5×5作为参数。
噪音:对图像添加高斯噪音,增加图像的噪声性。设置噪音强度为1.5作为参数。
随机透视变换:对图像进行随机透视变换,增加图像的扭曲性。设置distortion_scale=0.3,p=1.0,fill=255作为参数。
本发明实例中,步骤3所述特定知识蒸馏方案为桥梁裂缝半监督标签蒸馏方案。BCSLD方案通过自建数据集T和经由教师模型Q筛选后的数据集U来将教师模型Q学到的知识转移到学生模型P。流程图如图2所示。流程具体为:
(1)通过利用教师模型Q来对未标记(无标签)数据集XU进行筛选过滤。进行筛选(Filtering)的主要目的是为了选择更有价值的未标记数据以加速和更好的指导蒸馏过程。它可以用来选择有用的无标注数据来辅助知识蒸馏过程,也可以用来过滤与验证数据相似的图像,从而确保蒸馏模型训练图像不同于验证集,保证模型评估的公正性。本方案Filtering主要工作是根据教师模型对每个类别的预测概率或置信度,选择出那些教师模型预测正确且置信度高的类别,作为学生模型的部分训练集U。这种方式可以减少类别不平衡和类别混淆对学生模型的影响,提高学生模型的分类精度。
(2)使用BCSLD方案将学生模型P与教师模型Q组合成一个新的网络,该网络分别输出P和Q的预测分布。该方案假设教师模型的泛化误差很小,因此可以用它来指导学生模型而无需考虑真实标签(数据集T、U用于知识蒸馏训练学生网络P时可不带标签)。与此同时,固定教师模型整个网络的梯度而学生模型正常进行反向传播。最后将两个模型的全连接层输出(logits)经过softmax激活函数转换为软标签,并将二者的软标签进行JS散度(Jensen–Shannon divergence,JSD)计算,其值作为损失函数,用于蒸馏模型训练。
(3)通过对比学生模型P和教师模型Q在验证集上的表现,评估知识蒸馏方案的有效性。同时,通过对比学生模型P和其他轻量化神经网络模型在同一测试集上的表现,评估轻量化识别模型的优劣。
JSD原本是一种用于测量两概率分布间距离的方法。在知识蒸馏等任务中,其一般用作损失函数,用于衡量两个概率分布之间的差异。JSD是基于信息论中的KL散度(Kullback-Leibler divergence,KLD),KLD可以衡量两个概率分布之间的距离,但是KLD不满足对称性和三角不等式。而JSD是KLD的平方根,它满足对称性和三角不等式,因此在实际中更为常用。
给定两个概率分布P和Q,JSD定义为KLD(相对熵)的平均值的平方根。JSD如式(1)所示:
其中,M是P和Q的平均分布,KL散度定义为:
JSD是对称的,即JS(P||Q)=JS(Q||P)。JS散度的值域在[0,1]之间,当两个概率分布完全相同时,JS散度为0,当两个概率分布完全不同时,JS散度为1。
当用作知识蒸馏任务的损失时,Loss值可表示为:
其中,p(y|X)和q(y|X)分别表示teacher model和student model在输入X下的预测分布,m(y|X)=0.5×(p(y|X)+q(y|X))表示它们的平均分布,DKL表示KL散度。通过最小化有标签数据和无标签数据上的JSD loss,即可让student model学习到teacher model的知识,从而提高其预测能力。
教师模型Q和学生模型P分别为ResNeXt101中的32x16d版本和MobileNetv3的Large版本。选择这两个网络模型主要考虑到它们在模型结构上具有多方面的相似性,如都使用了残差连接(Residual Connection),使得教师网络和学生网络之间的特征对齐(Feature Alignment)更容易实现;都使用了瓶颈结构(Bottleneck Structure)使得两网络之间的特征维度(Feature Dimension)更接近,从而减少知识蒸馏过程中的信息损失;都使用了分组卷积(Grouped Convolution)使得两网络之间的特征分布(FeatureDistribution)更相似,从而增强知识蒸馏过程中的信息传递。这些结构上相似的特征保证了知识在传递过程中的效率和效果。但同时MobileNetv3使用的SE注意力机制(Squeeze-and-Excitation Attention Mechanism)、反向残差结构(Inverted Residual Structure)也使得两者具有一定差异性。此外,ResNeXt网络由于全连接层的使用,导致其输入的图像通常为固定大小,而MobileNetv3网络结构中,使用了两个1×1的卷积层来代替全连接层,这样可以使网络支持可变大小图像输入以在测试阶段更好的处理不同尺度的图像。MobileNetv3网络结构如图5所示。
为验证轻量化网络模型MobileNetv3及所提知识蒸馏方案的优势,分别对比了在20个epoch下,MobileNetv3在基于所提以ResNeXt101为教师模型的知识蒸馏方案和所提图像增强方案、及在迁移学习、从零训练下的表现,并以ResNet18在从零训练下的表现为基础参考,验证了本发明的优越性。MobileNetv3在不同训练策略下表现如图6所示。
在使用所提知识蒸馏方案实际训练过程中,由于MobileNetv3包含15个block,故对中间层学习率进行调整,设置每3个block共享一个学习率倍数参数,因此中间层学习率设置为[0.25,0.25,0.5,0.5,0.75],以在采取相同的学习率时减少对中间层特征的破坏。优化器选择Adam,批大小为32,总训练轮次为100个epoch。训练结果如图7所示。
而Filtering部分可用公式表述如下:假设教师模型Q对未标记数据集XU中的第i个样本xi输出了一个概率向量qi=(q1i,q2i,…,qki),其中k是类别数,qki表示xi属于第k个类别的概率。我们定义一个阈值t,表示教师模型对样本分类的置信度。我们可以用以下公式来判断教师模型是否对样本xi分类正确且置信度高:
其中yi是样本xi的真实标签。如果f(qi)=1,表示教师模型对样本xi分类正确且置信度高,那么就将样本xi加入到学生模型的部分训练集U中;如果f(qi)=0,表示教师模型对样本xi分类错误或置信度低,那么就将样本xi过滤掉,不加入到学生模型的部分训练集U中。
本发明实例中,所述步骤4中所述的将得到的高精度轻量化模型部署到无人机设备中以实现对桥梁结构的实时检测。无人机检测分析评估流程如图3所示。流程具体为:
(1)模型格式转换:在pytorch深度学习框架下,使用torch.onnx.export函数,将模型结构及权重导出为ONNX格式,并保存在树莓派上。通过指定输入和输出的维度、数据类型、设备等参数,以适应不同的场景和需求。
(2)适配和优化设备环境:在树莓派上安装ONNX Runtime,这是一个用于运行ONNX模型的轻量级推理引擎。可以选择不同的后端执行器,如CPU、GPU、NPU等,以提高模型的推理性能和效率。也可以使用其内置工具onnxruntime_perf_test和onnxruntime_tools来测试和优化模型的推理速度和内存占用。
(3)加载和运行模型:连接一台支持USB或CSI接口的高清摄像头,并将其安装在无人机上。编写相应的程序代码,使用cv2.VideoCapture函数读取摄像头的视频流,使用onnxruntime.InferenceSession函数加载ONNX模型,使用session.run函数对每一帧图像进行裂缝检测,并将检测结果用cv2.imwrite函数和csv库进行保存。
(4)实时处理与分析:通过定义crack_analysis函数来对相邻帧图像的检测结果和相对位置关系实时分析。函数包含一些图像处理和计算机视觉的方法,如特征点匹配、光流跟踪、单应性变换等,来获取相邻帧图像之间的对应关系和运动信息。同时使用MySQL库的connect和cursor函数来将桥梁结构局部乃至整体的损伤范围存储至MySQL库中,并存储每一帧图像中分析得到的损伤范围。
(5)信息整合及全桥评估:无人机检测结束后,根据现行JTG/T E61-2014《公路路面技术状况自动化检测规程》等技术规程,来对检测结果进行汇总、统计、展示和评估,以得到桥梁结构的健康状况和安全风险,并提出相应的维修和保养建议。
本实施例的结果与分析如下:
在本实施例中,所使用的是一个基于桥检图像、无人机图像、公开数据集图像、手持设备拍摄图像的桥梁裂缝数据集。数据集图像以“裂缝”、“桥面”、“环境”标签分类,各类别5000张,图像尺寸统一为256×256像素,以jpg格式编码存储。分别按照训练集:验证集:测试集=6:2:2的比例进行划分,然后进行网络的训练与测试。
在本实施例中使用双GPU(2×2080Ti)进行模型训练、性能评估及实验对比任务。并采用CUDA和CUDNN库加速GPU并行计算多张图像数据的速度。计算处理单元CPU采用i9-9820X。软件方面采用Python语言在Windows环境下进行开发编程,并使用Anaconda进行包管理和虚拟环境配置。深度学习框架采用Pytorch。树莓派选用具有1.8GHz的四核心Cortex-A72处理器及2个USB 3.0端口和2个USB 2.0端口的4型号B以支持深度学习框架的运行及摄像头和其他外设的连接。
由图7可知,MobileNetv3、ResNeXt101、MobileNetv3+KD在验证集上的平均准确率分别为97.22%、99.48%(+2.26%)、99.35%(+2.13%)。最高准确率分别为97.87%、99.92%(+2.05%)、99.84%(+1.97%)。同时,在100个epoch后,模型整体精度还保持缓慢增长趋势。MobileNetv3+KD对比于教师网络ResNeXt101,其平均准确率和最高准确率仅分别降低0.13%和0.08%,但模型参数量下降了超35倍(193M:5.48M),模型推理速度提升超13倍(113.02ms/pic:8.38ms/pic)。而对比自身蒸馏前分别增加2.13%和1.97%。由此可见知识蒸馏对轻量化模型精度提升的巨大潜力。同时由于本发明无需使用图像的真值标签,因此可以任意扩展数据集的大小。
Claims (6)
1.一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,其特征在于,包括以下步骤:
步骤1,数据集准备;构建带标签自建数据集T和无标签数据集XU;
步骤2,教师网络模型的训练;将步骤1中自建数据集T以6:2:2分为训练集、验证集和测试集以获得准确率最高的教师模型;
步骤3,学生网络模型的训练;采用半监督标签知识蒸馏方案BCSLD使用教师模型指导学生模型进行学习,构建高精度轻量化的识别模型;
步骤4,模型的部署;将训练得到的高精度轻量化的识别模型部署至嵌入式设备,连接摄像头并安置在无人机上,实现对桥梁结构裂缝实时智能检测识别的任务。
2.根据权利要求1所述的一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,其特征在于,
步骤2中,教师网络模型选择为ResNeXt101中的32x16d版本,其中32表示分组卷积的组数,16d表示每组的通道数;
教师网络模型采用迁移学习方法的预训练模型采用PyTorch官方在ImageNet上训练得到的ResNeXt101预训练权重;
采用的特定的图像增强策略,对每次训练前所载入的各批次图像进行图像变换增强;使用pytorch中的torchvision库进行图像增强。
3.根据权利要求2所述的一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,其特征在于,
使用pytorch中的torchvision库进行图像增强包括以下操作:
随机翻转:对图像进行垂直方向的随机翻转,增加图像的多样性;
ColorJitter:对图像的亮度、对比度、饱和度进行随机调整,增加图像的随机性;设置brightness=0.5,contrast=0.5,saturation=0.5作为参数;
随机旋转:对图像进行随机角度的旋转,增加图像的变化性;设置-15°作为旋转范围,并使用白色填充旋转后的空白区域;
拉伸:对图像进行横向或纵向的拉伸,增加图像的形变性;设置横向拉伸50%作为参数;
高斯模糊:对图像进行高斯滤波,增加图像的模糊性;设置核大小为5×5作为参数;
噪音:对图像添加高斯噪音,增加图像的噪声性;设置噪音强度为1.5作为参数;
随机透视变换:对图像进行随机透视变换,增加图像的扭曲性;设置distortion_scale=0.3,p=1.0,fill=255作为参数。
4.根据权利要求1所述的一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,其特征在于,
步骤3中,BCSLD方案通过自建数据集T和经由教师模型Q筛选后的数据集U来将教师模型Q学到的知识转移到学生模型P;流程具体为:
(1)通过利用教师模型Q来对未标记数据集XU进行筛选过滤;Filtering主要工作是根据教师模型对每个类别的预测概率或置信度,选择出那些教师模型预测正确且置信度高的类别,作为学生模型的部分训练集U;
(2)使用BCSLD方案将学生模型P与教师模型Q组合成一个新的网络,该网络分别输出P和Q的预测分布;假设教师模型的泛化误差很小,用它来指导学生模型而无需考虑真实标签;固定教师模型整个网络的梯度而学生模型正常进行反向传播;最后将两个模型的全连接层输出经过softmax激活函数转换为软标签,并将二者的软标签进行JSD散度计算,其值作为损失函数,用于蒸馏模型训练;
(3)通过对比学生模型P和教师模型Q在验证集上的表现,评估知识蒸馏方案的有效性;同时,通过对比学生模型P和其他轻量化神经网络模型在同一测试集上的表现,评估轻量化识别模型的优劣。
5.根据权利要求4所述的一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,其特征在于,给定两个概率分布P和Q,JSD定义为相对熵KLD的平均值的平方根;JSD如式(1)所示:
其中,M是P和Q的平均分布,KL散度定义为:
JSD是对称的,即JS(P||Q)=JS(Q||P);JS散度的值域在[0,1]之间,当两个概率分布完全相同时,JS散度为0,当两个概率分布完全不同时,JS散度为1;
当用作知识蒸馏任务的损失时,Loss值表示为:
其中,p(y|X)和q(y|X)分别表示teachermodel和studentmodel在输入X下的预测分布,m(y|X)=0.5×(p(y|X)+q(y|X))表示它们的平均分布,DKL表示KL散度;通过最小化有标签数据和无标签数据上的JSDloss,即可让studentmodel学习到teachermodel的知识,从而提高其预测能力;在使用所提知识蒸馏方案实际训练过程中,由于MobileNetv3包含15个block,故对中间层学习率进行调整,设置每3个block共享一个学习率倍数参数,因此中间层学习率设置为[0.25,0.25,0.5,0.5,0.75],以在采取相同的学习率时减少对中间层特征的破坏;优化器选择Adam,批大小为32,总训练轮次为100个epoch;
其中,Filtering部分可用公式表述如下:
假设教师模型Q对未标记数据集XU中的第i个样本xi输出一个概率向量qi=(q1i,q2i,…,qki),其中k是类别数,qki表示xi属于第k个类别的概率;我们定义一个阈值t,表示教师模型对样本分类的置信度;用以下公式来判断教师模型是否对样本xi分类正确且置信度高:
其中yi是样本xi的真实标签;如果f(qi)=1,表示教师模型对样本xi分类正确且置信度高,那么就将样本xi加入到学生模型的部分训练集U中;如果f(qi)=0,表示教师模型对样本xi分类错误或置信度低,那么就将样本xi过滤掉,不加入到学生模型的部分训练集U中。
6.根据权利要求1所述的一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法,其特征在于,步骤4中,将得到的高精度轻量化模型部署到无人机设备中以实现对桥梁结构的实时检测;流程具体为:
(1)模型格式转换:在pytorch深度学习框架下,使用torch.onnx.export函数,将模型结构及权重导出为ONNX格式,并保存在树莓派上;通过指定输入和输出的维度、数据类型、设备等参数,以适应不同的场景和需求;
(2)适配和优化设备环境:在树莓派上安装ONNXRuntime,选择不同的后端执行器;使用其内置工具onnxruntime_perf_test和onnxruntime_tools来测试和优化模型的推理速度和内存占用;
(3)加载和运行模型:连接一台支持USB或CSI接口的高清摄像头,并将其安装在无人机上;编写相应的程序代码,使用cv2.VideoCapture函数读取摄像头的视频流,使用onnxruntime.InferenceSession函数加载ONNX模型,使用session.run函数对每一帧图像进行裂缝检测,并将检测结果用cv2.imwrite函数和csv库进行保存;
(4)实时处理与分析:通过定义crack_analysis函数来对相邻帧图像的检测结果和相对位置关系实时分析;函数包含一些图像处理和计算机视觉的方法,如特征点匹配、光流跟踪、单应性变换等,来获取相邻帧图像之间的对应关系和运动信息;同时使用MySQL库的connect和cursor函数来将桥梁结构局部乃至整体的损伤范围存储至MySQL库中,并存储每一帧图像中分析得到的损伤范围;
(5)信息整合及全桥评估:无人机检测结束后,根据现行JTG/TE61-2014《公路路面技术状况自动化检测规程》技术规程,来对检测结果进行汇总、统计、展示和评估,以得到桥梁结构的健康状况和安全风险,并提出相应的维修和保养建议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310840281.0A CN116994130A (zh) | 2023-07-11 | 2023-07-11 | 一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310840281.0A CN116994130A (zh) | 2023-07-11 | 2023-07-11 | 一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116994130A true CN116994130A (zh) | 2023-11-03 |
Family
ID=88531208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310840281.0A Pending CN116994130A (zh) | 2023-07-11 | 2023-07-11 | 一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116994130A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117268345A (zh) * | 2023-11-20 | 2023-12-22 | 启元实验室 | 一种高实时性单目深度估计测量方法、装置及电子设备 |
CN118097154A (zh) * | 2024-04-22 | 2024-05-28 | 清华大学深圳国际研究生院 | 轻量化裂缝分割方法、装置、终端设备及存储介质 |
CN118365582A (zh) * | 2024-03-14 | 2024-07-19 | 哈尔滨工业大学 | 基于视觉大模型蒸馏的桥梁表观裂缝提取方法 |
-
2023
- 2023-07-11 CN CN202310840281.0A patent/CN116994130A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117268345A (zh) * | 2023-11-20 | 2023-12-22 | 启元实验室 | 一种高实时性单目深度估计测量方法、装置及电子设备 |
CN117268345B (zh) * | 2023-11-20 | 2024-03-29 | 启元实验室 | 一种高实时性单目深度估计测量方法、装置及电子设备 |
CN118365582A (zh) * | 2024-03-14 | 2024-07-19 | 哈尔滨工业大学 | 基于视觉大模型蒸馏的桥梁表观裂缝提取方法 |
CN118097154A (zh) * | 2024-04-22 | 2024-05-28 | 清华大学深圳国际研究生院 | 轻量化裂缝分割方法、装置、终端设备及存储介质 |
CN118097154B (zh) * | 2024-04-22 | 2024-08-02 | 清华大学深圳国际研究生院 | 轻量化裂缝分割方法、装置、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111767882B (zh) | 一种基于改进yolo模型的多模态行人检测方法 | |
CN116994130A (zh) | 一种基于知识蒸馏的高精度轻量化桥梁裂缝识别方法 | |
CN114240878A (zh) | 面向巡检场景的绝缘子缺陷检测神经网络构建与优化方法 | |
CN110378222B (zh) | 一种输电线路防震锤目标检测与缺陷识别方法及装置 | |
CN111257341B (zh) | 基于多尺度特征与堆叠式全卷积网络的水下建筑物裂缝检测方法 | |
CN110569841B (zh) | 基于卷积神经网络的接触网关键部件目标检测方法 | |
CN111127449B (zh) | 一种基于编码器-解码器的自动化裂缝检测方法 | |
CN111507370A (zh) | 获得自动标注图像中检查标签的样本图像的方法和装置 | |
CN114495029B (zh) | 一种基于改进YOLOv4的交通目标检测方法及系统 | |
CN111860106B (zh) | 一种无监督的桥梁裂缝识别方法 | |
CN112232411B (zh) | HarDNet-Lite在嵌入式平台的优化方法 | |
CN114022446A (zh) | 一种基于改进YOLOv3的皮革瑕疵检测方法及系统 | |
CN115830407A (zh) | 一种基于yolov4目标检测模型的电缆管线故障判别算法 | |
CN117540779A (zh) | 一种基于双源知识蒸馏的轻量化金属表面缺陷检测方法 | |
CN115147383A (zh) | 一种基于轻量化YOLOv5模型的绝缘子状态快速检测方法 | |
CN116486231A (zh) | 一种基于改进YOLOv5的混凝土裂缝检测方法 | |
CN117541587B (zh) | 太阳能电池板缺陷检测方法、系统、电子设备及存储介质 | |
CN113763364B (zh) | 一种基于卷积神经网络的图像缺陷检测方法 | |
CN114662605A (zh) | 基于改进的YOLOv5模型的火焰检测方法 | |
CN112837281B (zh) | 基于级联卷积神经网络的销钉缺陷识别方法、装置和设备 | |
CN117058459A (zh) | 基于yolov7算法的路面病害快速检测方法及系统 | |
CN117422990A (zh) | 一种基于机器学习的桥梁结构分类与评估方法 | |
CN110163081A (zh) | 基于ssd的实时区域入侵检测方法、系统及存储介质 | |
CN114782983A (zh) | 基于改进特征金字塔和边界损失的道路场景行人检测方法 | |
CN114140879A (zh) | 基于多头级联注意网络与时间卷积网络的行为识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |