一、应用背景
当检测对象整体一致性较好时,传统方案通常先通过定位纠偏、图像预处理和图像差分等方法,来找出图像中的异常点,这个方法极易受到成像干扰(OK品出现灰度变化),需要对每个目标区域以及每种产品做有针对性的调参,调试成本极高;用有监督的深度学习算法来检出缺陷时,又苦于缺陷数据收集问题,尤其在标准设备的检测场景中,用户难以获取足够多的样本来迭代优化模型,此外人工标注还需制定统一的标注规范,并且迭代过程可能无法相应有快速部署的场景需求。可见,以上两种方式都有各自的短板。
无监督算法适用于一致性较好的应用场景,什么是一致性?
一致性指:目标载体不需要严格对齐、视野内各个特征相差不大(色差差异小/轮廓特征相相近、背景区域干扰较小。
有简至难的举个例子:
1.成像易受干扰(光源或相机采集图像时出现畸变)的印刷品表面字符或图案异常:
字体印刷不均匀 图案缺失 各类印刷质量异常
2.规正物体表面的轻微或重度缺陷:
某电器表面异常 轻微色差 极小脏污
3.各种板材上的元件缺失、安装倾斜、表面异物等,如pcb:
电容安装倾斜 电路短路
二、算法原理
海康的VM算法开发平台拥有一种无监督分割的深度学习算法,可以有效解决以上痛点问题。无监督分割算法利用无缺陷的图像数据进行训练,对图像进行编码得到一组特征向量,并基于这组特征向量重建,在相似度计算后,重建图像质量会于缺陷位置存在较大差异,从而达到缺陷检测的目的。
三、算法优势
三大深度学习问题:
无监督分割算法优势:
四、训练及使用方法
登录海康的云端训练平台,创建无监督样本数据(离线版本用海康的VisionTrain就行,但性能对比下来感觉没对齐,期待他们更新下个版本):
导入几张OK图标注后,训练参数用默认就够用了:
推理方面跟图像分割一样,无监督分割模块会输出类似于概率图的结果,其中亮点部分为可能的缺陷位置,因此在无监督分割模块后面接个blob分析就行,建议blob分析的阈值调低些:
最后是优化手段,训练参数上其实没有什么可以改的了,标注也只有OK图,因此得从图像上入手。即便无监督分割不要求目标完全严格的对齐,为了提高整体的检出精度(偏差过大可能会导致边缘被检出),降低误检率,最好能把相机提前开窗,去除多余背景,或者在方案层中通过匹配和位置修正的方法进行裁图,以聚焦检测物体。
小结:
无监督分割算法发布已久,解决的问题也正是有监督类算法的难题,行业内适配该算法的需求早已层出不穷,无非为丝网印刷类的字符和图案异常和标准板材上的各类异常检,再把视线放远,纺织行业的布匹缺陷检测也同样适合,但提高检出性能还是需要依靠底层算法的努力,可以看到海康一直在投入这部分的研发,从刚推出无监督分割算法到现在,明显感受到技术的发展与成熟,相信越来越多的相关应用可以靠它来完成快速落地。
无监督分割我将一张OK图片复制100遍去训练(在此之前多张图片检测一种缺陷更不行),然后去检测同一张图片(此图片通过画图制造了其他缺陷),他能检测,但是检测出来的效果缺陷面积太大了,图片有些差异,质量又不好了。然后用异常检测去训练,ok图灌输的多点图片,我产品直接断了一边也完全无法识别出来进行,怎么办