二、深度学习的基本概念
要了解深度学习,首先要了解什么是机器学习,在人工智能领域中,深度学习就是机器学习的一个分支,但讲理论的话比较枯燥无味,可以通过下方例子来理解:
机器学习:我们拉着机器人,对着公园里的几个猫、狗、兔子,告诉他这几个动物对应的名字,机器人就能立马在新的动物照片上猜出它是谁。【核心在于学习规律和模式,适用于浅层的分类和识别】
深度学习:我们拉着机器人到大数据中心,给他看猫、狗、兔子的照片而不告诉他名字,久而久之,机器人会根据这些特征来识别和区分不同的动物。【核心在于学习主题和特征,整个过程更像在模仿人的学习模式,泛化能力预期很强】
1)深度学习的简单流程
在每一层中不断的学习特征,并通过一定计算方法对之前所标注的真值进行损失计算,持续的迭代优化“特征提取器”的精度,最终达到预期效果。
2)传统算法和深度学习的对比
传统算法的优缺点:【优点】对低级别的缺陷边缘信息做描述和表征,且对成像质量与稳定度有较高要求;【缺点】对高级别的缺陷形态(如背景纹理复杂,缺陷异变,相似特征边缘交叉等情况),仅用传统算法难以做到准确的检出和分类,随着数据量的增加,人工维护成本逐渐提升。
深度学习的优缺点:【优点】能同时兼容不同场景下的各类缺陷形态,有很强的泛化能力和抗干扰能力。【缺点】小样本下的性能及过拟合问题。
3)深度学习的常用框架
4)深度学习产品
目前我在用的海康的产品,在训练和推理都有独立的软件
离线训练软件VisionTrain
通用视觉软件VM
三、算法模块介绍
目前海康机器人共有以下几种深度学习算法模块,可全面适用于各行业的深度学习检测需求:
下面开始介绍不同算法模块的功能特性和使用场景,对于不同算法的训练指导方法可以参考本FAQ内的文档资料:
1)图像分割
图像分割又称之为语义分割,通过提取图像上各类语义信息,抓取目标的特征,输出目标的轮廓点和类别信息,以达到识别和定位相似缺陷的功能,评估图像分割的检出精度时,建议控制在3*3个像素以上。从描述中可知,图像分割可实现目标的分类,若标注时未创建2个以上的标签进行标注,则输出的是二分类模型(也可称之为单类别模型,只检测有无),反之则为多分类模型,两者输出的结果有区别,如下图:
【图像分割适用场景】
2)目标检测
目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,位置信息通常采用目标最小矩形框来表示,目标检测由于不需要对各像素点预测,一般推理速度会快速图像分割。
【目标检测适用场景】:
3)实例分割
实例分割算法可以近似看成“目标检测+图像分割”,旨在将图像中的每个物体实例标记出来,并为每个实例生成一个像素级的分割掩码。实例分割不仅仅能识别图像中的物体轮廓,还能将每个物体实例精确的标记出来。但由于分割前还需要先目标检测,同样受到目标检测算法图像占比要求的限制。实例分割最大的特点在于,能将相同类别的个体进行有效区分,如下图中,同类的物体各自的轮廓被分割的非常完整。
【实例分割适用场景】:
在2D成像上出现物体重叠的情况,且需要配合机械臂进行叠物判断的各类应用场景,如食品、3C、芯片等。
4)无监督分割
无监督分割算法将输入的图片通过神经网络生成一张重建图,将输入图与重建图做差值得到残差图,训练只需要加入OK图片即可,会根据正常样本去推理出图像中存在的异常对象(缺陷),属于图像分割的无监督模式。
【无监督分割适用场景】:
要求背景简单、产品一致性高、缺陷较为明显的场景,建议图像分辨率小于2500*2500,如分辨率过大会导致性能不佳,建议裁剪图像后分多个模型预测。面对产品一致性高但背景复杂场景,无监督可作为前期项目的NG筛选器,待NG样本够多后转用图像分割。
5)字符识别
字符识别会提取学习字符的特征,再通过字符分类器输出识别结果,字符识别在VM4.3版本后已支持中文识别,且目前在大部分场景下,可直接使用通用模型完成识别任务。
【字符识别适用场景】:
6)图像分类
图像分类基于全图进行特征提取,并直接通过分类器判定类别,建议目标类别差异足够明显,如差异不明显,比如汽车轮毂分类的场景,建议用图像检索类的算法。
【图像分类适用场景】:
四、展望
深度学习的能力固然强大,但也存在一些挑战,比如对大量标注数据的依赖、模型的可解释性差以及计算成本高等问题 ,在实际应用中,深度学习模型也需要针对特定的工业场景进行训练和调整,以确保其性能和泛化能力。现在的深度学习往往需要长周期的样本收集以及数据清晰,才能达到预期的精度标准,随着工业视觉领域的需求节奏加速,AI大模型、生成式AI、无监督AI等技术将会逐步实现技术落地。