摘要
裂痕是一种常见的道路病害,道路表面的裂痕往往能够预见其内部受力不均、变形等潜在危险。因而如何检测出裂痕并维护修复是关乎道路安全的重要问题。传统的道路表面裂痕检测多以人工观测为主,受人为因素影响大。在过去的二十年里,传感器和摄像机技术的进步导致了路面破损检测自动化的重大进展。图像处理技术和机器学习方法的最新进展促使研究人员利用这些方法开发预测模型,并用于适时的维修和维护活动。其中基于视觉的以深度学习为核心的机器学习模型更是在相关领域大展身手。尽管操纵机器学习方法用于自动路面破损检测不再是一项新技术,但是深度学习方法的应用仍然是一个活跃的研究领域。使用道路图像的深度学习自动路面破损检测仍然是具有挑战性的课题。
本课题利用Python编程语言和Pytorch深度学习框架,基于YOLOv3算法模型对道路裂缝检测进行检测,进行正确的识别。并从模型剪枝和模型量化以及数据增强技术,对YOLOv3模型进行改进,联合部分训练超参数配置的筛选优化,在提升模型精度的同时减少了模型参数量和计算量。最后使用Python编程语言和PyQt5库进行了简要的可视化前端搭建。
最终,本课题基于40%的模型剪枝和in8模型量化技术,使得模型参数量从原来的242.195M下降至34.605M,推理时延每10张从820ms提升至255ms,而精度在公开数据集上从69.67%提升至71.78%,在自研数据集上精度从51.33%上升至51.88%。
关键词:道路裂缝检测;YOLOv3;模型轻量化;模型泛化性
Abstract
Crack is a common road disease. The crack on the road surface can show the potential danger such as uneven stress and deformation. Therefore, how to detect cracks and repair them is an important issue concerning road safety. The traditional road surface crack detection mainly relies on manual observation, which is greatly affected by human factors. Over the past two decades, advances in sensor and camera technology have led to significant advances in the automation of pavement damage detection. Recent advances in image processing techniques and machine learning methods have led researchers to use these methods to develop predictive models for timely repair and maintenance activities. The visual machine learning model is playing a great role in related fields. Although manipulating machine learning methods for automatic pavement damage detection is no longer a new technology, the application of deep learning methods is still an active research area. Deep learning automatic pavement damage detection using road images is still a challenging subject.
This project uses Python programming language and Pytorch deep learning framework to implement road crack detection based on YOLOv3. Furthermore, the YOLOv3 model was improved by (1) model lightweight, including pruning and quantization, and (2) model generalization enhancement, including data enhancement, combined with the optimization of partial training hyperparameters, which improved the model accuracy and reduced the number of model parameters and the amount of calculation. Finally, a brief visual front-end construction is done using Python programming language and PyQt5 library.
Eventually, based on 40% model pruning and int-8 model quantization technology at runtime, the number of model parameters decreased from 242.195.01M to 34.605M, inference latency improved from 820ms to 255ms, while the accuracy increased from 69.67% to 71.78%. In the self-collected data set, the accuracy increased from 51.33% to 51.88%.
Keywords:Roadcrackdetection;YOLOv3;Modellightweight;Modelgeneralization
目录
1 绪论
1.1 研究背景
1.2 基于深度学习的道路裂缝检测
1.3 本文研究内容
2 相关技术综述
2.1 深度学习模型轻量化
2.1.1 模型剪枝
2.1.2 模型量化
2.2 深度学习模型泛化性增强
2.2.1 分布偏移基础理论
2.2.2 深度学习泛化技术
3 YOLOv3轻量化与泛化性增强技术
3.1 设计概要
3.2 基于模型剪枝和模型量化的YOLOv3轻量化
3.2.1 模型剪枝
3.2.2 模型量化
3.3 YOLOv3泛化性增强
3.4 模型训练超参数筛选
4 YOLOv3改进效果验证
4.1 实验引言
4.2 数据集介绍及其处理
4.2.1 公开数据集
4.2.2 自研数据集
4.2.3 数据预处理
4.3 目标检测框架搭建
4.3.1 代码主要流程
4.3.2 前端展示设计
4.4 YOLOv3轻量化验证
4.4.1 模型剪枝
4.4.2 模型量化
4.5 YOLOv3泛化性增强验证
4.6 YOLOv3训练超参数筛选验证
4.7 算法改进结论
5 总结与展望
参考文献
致 谢