Halcon深度学习分类之工业缺陷检测

Halcon深度学习分类之⼯业缺陷检测
前⾔
上⼏篇⽂章分别对⽐了Halcon深度学习分类模型的框架,例⼦的详细分析,以及在Mnist上的应⽤等。想必⼤家已经对Halcon深度学习的分类原理基本掌握,是不是有点兴奋?是不是想要在⼯业缺陷检测上⼩试⽜⼑?作为⼀名视觉⼯程师,当然按捺不住内⼼的激动,想要应⽤在平时传统算法检测需要费九⽜⼆虎之⼒的产品检测上。那么接下来将会详细介绍Halcon 深度学习分类之⼯业缺陷检测流程。
说明:产品原图不⽅便展⽰,敬请谅解。
折刀制作⾃⼰的样本
电池盖帽要想训练⽹络,⾸先得制作⾃⼰的数据集。⽔果分类中⼀共5个类别,Mnist分类中,⼀共10个类别。本例⼦我只想检测缺陷有⽆,所以只需2类即可(0代表OK,1代表NG)。
双端面机械密封
到这⾥,有的童鞋肯定会有这样的顾虑,深度学习需要⼤量的训练样本,但缺陷样品很难搜集,样本集不丰富。所以要想办法丰富训练样本,我根据同⼀个缺陷位置上下左右间隔固定位置抠图(64 x 64)保证每个负样本不重复,且抠的图均包含缺陷信息,这样样本数就会⼤⼤增加。正样本(背景)我间隔旋转⾓度随机获取(我的产品是圆环状),保证样本的丰富性。选择的正、负样本⽐例为5:1(正样本12
000张,负样本2400张)。(这部分需要⾃⼰写脚本实现,要不然⼿动抠图,那估计要疯)
ctsb
正样本部分截图
光伏组件检测负样本部分截图
下图展⽰的是两种缺陷类型。为了丰富图像库,根据上述的描述⽅式,分别获取两种不同缺陷的负样本。从图中可以看出,每个样本都包含缺陷特征,但不重复。
图像预处理
这部分和Mnist应⽤⼀样,没有进⾏额外的处理。
训练⽹络
⽹络参数均和Mnist⼀样,由于数据量⽐较⼤,训练速度慢的有点感⼈。
缺陷检测
这部分依然需要⾃⼰写脚本,将要测试的图像进⾏切块处理(和训练样本⼤⼩⼀致64 x 64)。由于是检测缺陷有⽆,所以切块样本集只要涵盖整张测试图像即可,这样可以节约检测时间。当然如果对节拍要求不严格,完全可以⽤分类⽹络将缺陷边界分割出来,只不过切块⽅式是逐像素的。
下图代码部分是检测缺陷脚本,输⼊⼀张相机采集图,输出NGOK,如果NG则输出缺陷区域。
检测结果
部分结果截图展⽰
塑钢拉链
误检漏检是避免不了的,⽐如脏污误检成缺陷,部分漏检。这时候我们可以将误检区域抠出来丢到正样本中去,漏检区域丢到负样本中,重新训练。通过逐渐优化⽹络,最终会得到⼀个满意的Model。
代码
这个例⼦代码和上⼀篇的Mnist应⽤代码⼤同⼩异,除了样本制作以及测试脚本不同外,其他部分⼀样。
上⼀篇:Halcon 深度学习分类之Mnist应⽤

本文发布于:2024-09-22 22:25:01,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/165530.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:缺陷   样本   检测   分类   部分   学习   深度
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议