关于深度学习软件在工业缺陷检测中若干点拾遗
**1、**关于检测的产品表面的清洁度
①产品取图是啥样就是啥样,不做任何处理。----此点存疑
②让验证阶段的产品处理检测流程与最终设备设计的处理流程一致
③让产品的表面洁净度达到最高,即想方设法将产品弄干净,达到理想状态。----此点存疑
比如对于一般塑料件外观而言:
注:对于②中所述,即在验证阶段就应该将设备设计人员邀至现场共同探讨,对这一种产品在设计设备时能实现哪些处理手段
①气枪吹气
②粘性薄膜粘
③用无尘布蘸酒精之后擦拭
(在合适的成本与较容易实现的前提下)然后在验证阶段采取相同的处理手段对产品进行处理
注:对于③中所述的理想状态,应该是这样一种情况:OK产品表面干净无暇,一丝干扰也没有;NG产品表面只有人眼所看到的那种瑕疵,其他的啥也没有。即OK产品与NG产品对比十分明显(此处的OK与NG与为工厂检测员所判断的OK与NG)
同时需要注意到的是:选择产品训练的是软件而不是人,所以在选产品时应时刻铭记,我们是在训练软件而不是在训练人。
这就要求在选产品时量一定要大。
各种类型的OK产品,各种类型的NG产品,先由人工挑选收集,在后续盲检中也应同时收集。
**2、**关于传统图像处理软件与深度学习软件
对于大部分缺陷检测项目,在要求不高(良率不高,产品不甚复杂,检测逻辑不甚复杂,CT要求不高)的情况下,以传统的图像处理软件(VisionPro,Halcon、OpenCV)来实现完全是绰绰有余,特别是如果能将两者(传统图像处理软件、深度学习软件)结合起来,更是无往不利。
**3、**关于多个检测结果的组合逻辑判断
当多个检测工具并行分析:(以一般白色塑料产品的表面缺陷检测为例)
检测1(非监督)
检测2(缺陷1–脏污)
Input— 检测3(缺陷2–划伤)
检测4(缺陷3–飞丝)
检测1:用于将非常干净的OK产品标记
检测2:只将NG产品中属于脏污的NG产品的图片上的脏污全部标记出来,一定要全部标记,无论是人眼能看到的,还是在相机镜头下能够看到的,都要全部标记出来
检测3、标记划伤
检测4、标记飞丝
在运行模式中将输入的每张图片依次用:检测1、检测2、检测3、检测4,,,,,,,进行处理。
若4个工具全部OK,则产品的最终检测结果为OK,否则为NG。
以上为一种理论上的设想方案,实际效果未知。存在以下几种干扰情况
①可能实际检测或训练模型时的产品表面缺陷所属类别并没有那么明晰的界限,例如黑点与脏污
②可能有这样一类产品,其上存在3种缺陷:脏污、划伤、黑点。此产品为NG产品,但在检测2、3、4中分别检测时,对应所属的工具(检测对应的缺陷)皆不足以将其判定为NG,而导致最终将其误判为OK
4、 整体流程
工作流程:
①相机、镜头、光源选型
②安装设备,支架、载具等硬件
③打光、调焦、取像
④视觉软件配置
⑤挑选各种OK、NG产品进行取图
⑥利用深度学习软件训练模型
⑦利用常规视觉软件进行取图,写出相关视觉程序
⑧将⑥、⑦中的程序嵌入VS,完善程序
⑨利用⑧中的程序进行盲检,判断OK、NG
⑩让工厂检测员从OK中找NG,在NG中找OK
11、优化程序,降低误判率,再重复⑨⑩11。
注:
关于产品选取:利用气枪吹掉产品表面的毛疵,尽可能降低从来料到目检中间环节的影响
关于检测员:指定一名经验丰富的工人,一直让其检测,不要多次找多人。最好是机器在那儿检测,检测员在一旁协助。当出现机器判定OK,检测员判定NG;机器判定NG,检测员判定OK时,找出其中的差异,进而进行软件参数、模型的修改。