Halcon深度学习介绍
#1、软件版本说明
Halcon自从18版本以后,便支持深度学习,其中18、19版本训练时候要求电脑必须有GPU,并且是英伟达独立显卡才可以,检测有无GPU都可以,而20、21版本等不仅可以GPU训练,更支持CPU训练,对于配置低的使用者或者小白是非常友好的。安装的时候需要先安装halcon、再安装deep-learning数据库,并且要配套使用才可以。比如halcon-18.11.0.1-windows、halcon-18.11.0.1-windows-deep-learning是一起的,cuda_10.0.130_411.31_win10驱动,对于没有独立英伟达显卡的,建议就直接安装halcon20以上版本。当然,无论检测还是训练,有显卡的话训练效率会高,特别要注意的事情是显卡出现的年份要比halcon对应版本低,不然大概率不支持。
#2、软件版本主要区别
Halcon18、19是有分类、目标检测、语义分割,halcon20、21有分类、目标检测、语义分割、差异值检测,特别牛的是halcon21有DeepOCR,不用训练,而且可以直接进行字符识别检测。
#3、什么是深度学习
深度学习分为训练及检测两个主要部分,验证就忽略了。通俗讲,就是首先我们收集大量的图片,然后将图片中的检测区域框出来,然后送入程序进行学习,这就是训练;训练完成后会输出一个hdl文件,里边存储的就是学习到的内容,也叫权重。检测,就是拿到新的图片,用刚才学习到的hdl权重,去进行检测,从图片中直接检测出目标。整个过程就是检测+训练,称为深度学习,至于训练的效果如何,可以直接用多张图进行验证评估。一般至少20多张图片就会训练有效果,当然越多越好,理论上图片越多,训练越好,检测效果越佳。
#4、深度学习分类
##(1)分类
分类是对整张图进行处理,也就是输入一张图,告诉你是ok还是ng,或者更多的种类,当然训练的时候也需要进行分文件夹,命名不同的类别进行训练。分类的优势就是,不需要标注,非常方便进行训练以及检测,缺点就是只能整图判断是哪个类别,没法具体到某个目标区域或者像素,适合整体分类、整体缺陷判断。当然,如果把图像裁剪下来,也可以进行局部分类深度学习。
##(2)目标检测
目标检测是通过矩形框标注后进行训练,然后识别时可以直接输入图片,输出检测结果框,并且包含类别名称,识别需要检测具体位置,但是又不精确到具体轮廓的检测项目,比如划痕、油污等检测。优点是可以检测出具体位置,并且可以区分类别,缺点是标注工作相对麻烦,并不能完全精确到像素。
##(3)语义分割
语义分割是进行像素级的训练以及检测,可以将缺陷的整个区域进行描述出,对于一些需要完整轮廓的检测是必须的。优点是可以精确到像素,缺点是标注工作很大,因为要每个区域去画。
##(4)差异值检测
差异值检测比较有趣,直接输入ok与ng图片,便可以检测出两部分的差异区域,再有新图输入时候,是可以检测出ng,并且将ng的区域画出来,但是论单独效果,检测效果不如目标检测,比较尴尬。
以上纯属个人理解,如有理解不到位地方,欢迎留言交流。顺便初篇试试水,反馈好的话,再继续更新。