男女在床上做暖暖插孔视频网站,想找搜索引擎优化,网站开发销售提成,做一款网站注意啥砖生产环节一般经过原材料混合研磨、脱水、压胚、喷墨印花、淋釉、烧制、抛光#xff0c;最后进行质量检测和包装。得益于产业自动化的发展#xff0c;目前生产环节已基本实现无人化。而质量检测环节仍大量依赖人工完成。一般来说#xff0c;一条产线需要配数名质检工#…砖生产环节一般经过原材料混合研磨、脱水、压胚、喷墨印花、淋釉、烧制、抛光最后进行质量检测和包装。得益于产业自动化的发展目前生产环节已基本实现无人化。而质量检测环节仍大量依赖人工完成。一般来说一条产线需要配数名质检工人工成本是相当高昂的且需要有经验的工人师傅才能够胜任长时间在高光下观察瓷砖表面寻找瑕疵。这样导致质检效率低下、质检质量层次不齐且成本居高不下。瓷砖表检是瓷砖行业生产和质量管理的重要环节也是困扰行业多年的技术瓶颈。考虑到当下AI产业化融合的快速发展趋势将AI技术应用于实际的工业生产制造流程中事实证明能够有效提升瓷砖表面瑕疵质检的效果和效率降低对大量人工的依赖。本文也是基于这样的深度思考想要从实验的角度来开发构建瓷砖生产制造场景下的智能化自动化瑕疵缺陷检测识别系统助力实际生产制造。
在我们前面的系列博文中其实已经有过很多相关的开发实践了感兴趣的话可以自行移步阅读即可
《AI助力产品质量检验基于YOLO实现瓷砖缺陷问题检测识别》
《AI助力生产制造质检基于最新目标检测YOLOv9模型开发构建工业生产制造场景下的瓷砖瑕疵检测识别分析系统》 《AI助力生产制造质检基于轻量级YOLOv8n模型开发构建工业生产制造场景下的瓷砖瑕疵检测识别分析系统》
《AI助力生产制造质检基于轻量级YOLOv5s融合CBAM注意力机制开发构建工业生产制造场景下的瓷砖瑕疵检测识别分析系统》
《AI助力生产制造质检基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建工业生产制造场景下的瓷砖瑕疵检测识别分析系统》
本文主要是受到下文的启发
《轻量级检测模型效果一定差基于轻量级目标检测模型构建布匹瑕疵检测模型对比分析不同分辨率图像尺度对模型效果的影响》
对于瓷砖瑕疵检测场景来说瑕疵本身可能类别很不均衡且目标尺寸很小直接采用原始的图像尺寸来进行模型的开发可能难以取得好的效果在上文中我们也分析对比了不同分辨率尺寸对于相同模型的性能差异本文依旧是基于YOLOv5这个系列的模型来开发构建模型但是这里参与模型实验的图像数据尺寸则由原图变为了1280的尺寸后续有时间我也会继续完成640尺寸的全系列参数模型的对比实验。
首先看下实例效果 本文是选择的是YOLOv5算法模型来完成本文项目的开发构建。相较于前两代的算法模型YOLOv5可谓是集大成者达到了SOTA的水平下面简单对v3-v5系列模型的演变进行简单介绍总结方便对比分析学习: 【YOLOv3】 YOLOv3You Only Look Once version 3是一种基于深度学习的快速目标检测算法由Joseph Redmon等人于2018年提出。它的核心技术原理和亮点如下 技术原理 YOLOv3采用单个神经网络模型来完成目标检测任务。与传统的目标检测方法不同YOLOv3将目标检测问题转化为一个回归问题通过卷积神经网络输出图像中存在的目标的边界框坐标和类别概率。 YOLOv3使用Darknet-53作为骨干网络用来提取图像特征。检测头detection head负责将提取的特征映射到目标边界框和类别预测。 亮点 YOLOv3在保持较高的检测精度的同时能够实现非常快的检测速度。相较于一些基于候选区域的目标检测算法如Faster R-CNN、SSD等YOLOv3具有更高的实时性能。 YOLOv3对小目标和密集目标的检测效果较好同时在大目标的检测精度上也有不错的表现。 YOLOv3具有较好的通用性和适应性适用于各种目标检测任务包括车辆检测、行人检测等。 【YOLOv4】 YOLOv4是一种实时目标检测模型它在速度和准确度上都有显著的提高。相比于其前一代模型YOLOv3YOLOv4在保持较高的检测精度的同时还提高了检测速度。这主要得益于其采用的CSPDarknet53网络结构主要有三个方面的优点增强CNN的学习能力使得在轻量化的同时保持准确性降低计算瓶颈降低内存成本。YOLOv4的目标检测策略采用的是“分而治之”的策略将一张图片平均分成7×7个网格每个网格分别负责预测中心点落在该网格内的目标。这种方法不需要额外再设计一个区域提议网络RPN从而减少了训练的负担。然而尽管YOLOv4在许多方面都表现出色但它仍然存在一些不足。例如小目标检测效果较差。此外当需要在资源受限的设备上部署像YOLOv4这样的大模型时模型压缩是研究人员重新调整较大模型所需资源消耗的有用工具。 优点 速度YOLOv4 保持了 YOLO 算法一贯的实时性能够在检测速度和精度之间实现良好的平衡。 精度YOLOv4 采用了 CSPDarknet 和 PANet 两种先进的技术提高了检测精度特别是在检测小型物体方面有显著提升。 通用性YOLOv4 适用于多种任务如行人检测、车辆检测、人脸检测等具有较高的通用性。 模块化设计YOLOv4 中的组件可以方便地更换和扩展便于进一步优化和适应不同场景。 缺点 内存占用YOLOv4 模型参数较多因此需要较大的内存来存储和运行模型这对于部分硬件设备来说可能是一个限制因素。 训练成本YOLOv4 模型需要大量的训练数据和计算资源才能达到理想的性能这可能导致训练成本较高。 精确度与速度的权衡虽然 YOLOv4 在速度和精度之间取得了较好的平衡但在极端情况下例如检测高速移动的物体或复杂背景下的物体时性能可能会受到影响。 误检和漏检由于 YOLOv4 采用单一网络对整个图像进行预测可能会导致一些误检和漏检现象。
【YOLOv5】 YOLOv5是一种快速、准确的目标检测模型由Glen Darby于2020年提出。相较于前两代模型YOLOv5集成了众多的tricks达到了性能的SOTA 技术原理 YOLOv5同样采用单个神经网络模型来完成目标检测任务但采用了新的神经网络架构融合了领先的轻量级模型设计理念。YOLOv5使用较小的骨干网络和新的检测头设计以实现更快的推断速度并在不降低精度的前提下提高目标检测的准确性。 亮点 YOLOv5在模型结构上进行了改进引入了更先进的轻量级网络架构因此在速度和精度上都有所提升。 YOLOv5支持更灵活的模型大小和预训练选项可以根据任务需求选择不同大小的模型同时提供丰富的数据增强扩展、模型集成等方法来提高检测精度。YOLOv5通过使用更简洁的代码实现提高了模型的易用性和可扩展性。
简单看下实例数据 训练数据配置文件如下
# Dataset
path: ./dataset
train:- images/train
val:- images/test
test:- images/test# Classes
names:0: GQXC1: QSKXC2: SSDXC3: BSDXC4: JYC5: BYC 实验截止目前本文将YOLOv5系列五款不同参数量级的模型均进行了开发评测接下来看下模型详情
# Ultralytics YOLO , AGPL-3.0 license
# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5# Parameters
nc: 6 # number of classes
scales: # model compound scaling constants, i.e. modelyolov5n.yaml will call yolov5.yaml with scale n# [depth, width, max_channels]n: [0.33, 0.25, 1024]s: [0.33, 0.50, 1024]m: [0.67, 0.75, 1024]l: [1.00, 1.00, 1024]x: [1.33, 1.25, 1024]# YOLOv5 v6.0 backbone
backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2[-1, 1, Conv, [128, 3, 2]], # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]], # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]], # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]], # 9]# YOLOv5 v6.0 head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 6], 1, Concat, [1]], # cat backbone P4[-1, 3, C3, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 4], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [256, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]], # cat head P4[-1, 3, C3, [512, False]], # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]], # cat head P5[-1, 3, C3, [1024, False]], # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5)]
在实验训练开发阶段所有的模型均保持完全相同的参数设置等待漫长的训练完成后来整体进行评测对比分析。训练极度耗费资源基本上单个epoch就要耗费1个小时的时间所以这个实验整体做下来周期还是比较长的。 【F1值曲线】 F1值曲线是一种用于评估二分类模型在不同阈值下的性能的可视化工具。它通过绘制不同阈值下的精确率Precision、召回率Recall和F1分数的关系图来帮助我们理解模型的整体性能.F1分数是精确率和召回率的调和平均值它综合考虑了两者的性能指标。F1值曲线可以帮助我们确定在不同精确率和召回率之间找到一个平衡点以选择最佳的阈值。 【loss曲线】 【Precision曲线】 精确率曲线Precision-Recall Curve是一种用于评估二分类模型在不同阈值下的精确率性能的可视化工具。它通过绘制不同阈值下的精确率和召回率之间的关系图来帮助我们了解模型在不同阈值下的表现。精确率Precision是指被正确预测为正例的样本数占所有预测为正例的样本数的比例。召回率Recall是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。 【Recall曲线】 召回率曲线Recall Curve是一种用于评估二分类模型在不同阈值下的召回率性能的可视化工具。它通过绘制不同阈值下的召回率和对应的精确率之间的关系图来帮助我们了解模型在不同阈值下的表现。召回率Recall是指被正确预测为正例的样本数占所有实际为正例的样本数的比例。召回率也被称为灵敏度Sensitivity或真正例率True Positive Rate。 【mAP0.5】 mAP0.5也被称为mAP0.5或AP50指的是当Intersection over UnionIoU阈值为0.5时的平均精度mean Average Precision。IoU是一个用于衡量预测边界框与真实边界框之间重叠程度的指标其值范围在0到1之间。当IoU值为0.5时意味着预测框与真实框至少有50%的重叠部分。 在计算mAP0.5时首先会为每个类别计算所有图片的APAverage Precision然后将所有类别的AP值求平均得到mAP0.5。AP是Precision-Recall Curve曲线下面的面积这个面积越大说明AP的值越大类别的检测精度就越高。 mAP0.5主要关注模型在IoU阈值为0.5时的性能当mAP0.5的值很高时说明算法能够准确检测到物体的位置并且将其与真实标注框的IoU值超过了阈值0.5。 【mAP0.5:0.95】 mAP0.5:0.95也被称为mAP[0.5:0.95]或AP[0.5:0.95]表示在IoU阈值从0.5到0.95变化时取各个阈值对应的mAP的平均值。具体来说它会在IoU阈值从0.5开始以0.05为步长逐步增加到0.95并在每个阈值下计算mAP然后将这些mAP值求平均。 这个指标考虑了多个IoU阈值下的平均精度从而更全面、更准确地评估模型性能。当mAP0.5:0.95的值很高时说明算法在不同阈值下的检测结果均非常准确覆盖面广可以适应不同的场景和应用需求。 对于一些需求比较高的场合比如安全监控等领域需要保证高的准确率和召回率这时mAP0.5:0.95可能更适合作为模型的评价标准。 综上所述mAP0.5和mAP0.5:0.95都是用于评估目标检测模型性能的重要指标但它们的关注点有所不同。mAP0.5主要关注模型在IoU阈值为0.5时的性能而mAP0.5:0.95则考虑了多个IoU阈值下的平均精度从而更全面、更准确地评估模型性能。 从整体实验对比结果来看n系列的模型效果最差s系列的模型效果次之m系列模型效果居中l系列模型次于x系列的模型x系列模型效果最优综合考虑这里我们最终选择使用来系列的模型来作为最终的推理模型接下来看下l系列模型的内容详情。
【离线推理实例】 【Batch实例】 【数据分布可视化】 可以看到工业生产制造产生的不同瑕疵缺陷是很不均衡的。
【训练可视化】 【PR曲线】 感兴趣的话都可以自行动手尝试下