导读
目前基于深度学习的目标检测算法很多,应用在目标检测的效果也很突出,但是现有算法在缺陷检测中并不能很好地体现出来,尤其是在瓷砖缺陷检测中,现有目标检测算法受限于瓷砖特征的多样性以及纹理特性。为此,本文提出了一种基于Yolov5网络的瓷砖缺陷检测方法,可以准确的检测瓷砖上的各种缺陷~
佛山作为国内最大的瓷砖生产制造基地之一,拥有众多瓷砖厂家和品牌。经前期调研,瓷砖生产环节一般(不同类型砖工艺不一样,这里以抛釉砖为例)经过原材料混合研磨、脱水、压胚、喷墨印花、淋釉、烧制、抛光,最后进行质量检测和包装。得益于产业自动化的发展,目前生产环节已基本实现无人化。而质量检测环节仍大量依赖人工完成。一般来说,一条产线需要配2~6名质检工,长时间在高光下观察瓷砖表面寻找瑕疵。这样导致质检效率低下、质检质量层次不齐且成本居高不下。瓷砖表检是瓷砖行业生产和质量管理的重要环节,也是困扰行业多年的技术瓶颈。
在产线上架设专业拍摄设备,实地采集生产过程真实数据,解决企业真实的痛点需求。数据覆盖到了瓷砖产线所有常见瑕疵,包括粉团、角裂、滴釉、断墨、滴墨、B孔、落脏、边裂、缺角、砖渣、白边等。实拍图示例如下:
针对某些缺陷在特定视角下的才能拍摄到,每块砖拍摄了三张图,包括低角度光照黑白图、高角度光照黑白图、彩色图,示例如下:
数据主要分为两种:
白板瓷砖。花色简单,数量总共约12000张,包含训练集和测试集.
复杂瓷砖。花色相对复杂,并提供相应的模板图片(同花色且无瑕疵图片),数量总共约12000张,包含训练集和测试集。
复杂瓷砖包含有瑕疵图片带模板、无瑕疵图片和标注数据。标注数据标注模板图片、瑕疵位置和类别信息。示例如下:
生成voc格式的数据集
自动绘制瑕疵点
绘制瑕疵点之后的图像如下图所示
可以看出瑕疵点较小,因此对瓷砖图片进行切图处理。
对瓷砖进行切图处理
为了提高识别的精度,对瓷砖图片进行切图处理,参照这篇文章的代码对图片进行切图处理。
https://blog.csdn.net/weixin_45734379/article/details/112908630
将voc格式的数据集转换为yolo(.txt)格式的数据集
yolov5模型进行目标检测,必须使用yolo格式的数据因此利用下面的程序创建yolo格式的数据
生成的yolo格式数据如下图所示,最前面的数字 4 为瑕疵点类别编号,后面的数据为瑕疵点的位置
将Yolo格式数据自动划分成训练集(train2017),测试集(val2017)
程序生成的数据集存放方式如下图所示
Yolov5模型的训练
模型环境的建立和模型训练流程
https://blog.csdn.net/weixin_45652435/article/details/113095444
模型训练之前需要更改coco128.yaml 和 yolov5s.yaml中的nc(识别对象的类别数目)和 names
进入Yolov5的环境,切换到相应的目录,对模型进行训练