零基础学习机器视觉

零基础学习机器视觉

注:这篇文章是转载知乎博主的;
https://zhuanlan.zhihu.com/p/78441643

机器视觉与计算机视觉的区别

机器视觉(MV machine vision)与计算机视觉(CV computer vision)虽然核心的算法都是图像识别算法,大体一样,但是从实际项目的角度是不一样的。

CV项目一般面临的图像采集环境很复杂,光线的强弱、镜头距离物体的远近等都会导致采集到的图像质量可能不会很高;所以一般CV更多的是做目标物有无或基本轮廓匹配判断,一般不会涉及高精度测量和定位的问题。而MV项目一般用于工业领域,一般是用于高精度测量物体的轮廓尺寸或者精确定位物体的位姿,所以MV项目的相机、镜头、光源都是针对项目专门选定的,有时为了防止环境光干扰专门构建一个局部暗室也很正常。另外,受限于条件CV通常的识别率不会太高,比如人脸识别达到98%(网上有吹自己算法人脸识别率达到99.7%以上的,这种只能呵呵,基于标准图库识别率当然高,实际应用中结合实际复杂的环境因素是不可能的),但是MV识别率无限接近100%很正常。简单说,MV是工业上用的追求确定性的、特殊定制的一套软硬件系统。

机器视觉项目是一个机电一体化的工程,不能只注重视觉算法。机器视觉项目基本流程包括:
a、从最初的根据项目需求对相机、镜头、光源的理论计算选型开始;

b、之后针对被识别物体搭建简易的初步试验,确认选的硬件可以采集到满意的图像(这一步采集到的图像质量的好坏人眼就可以基本判断,可以不用借助算法);

c、然后开始采购相应硬件搭建本项目的开发平台,并开始结合实际工况和被测物开始编写识别算法,并且编写好与整体项目其他环节的通信接口;

d、最后机器视觉识别效果最终用的如何还需要进行现场调试和改进。这一步非常关键,上一步在实验室理想环境开发好的硬件与软件系统在这一步很可能会出各种问题。比如设备整体运行时的震动引起相机震动导致图像模糊、工厂的其他设备的光源投射到本项目中产生了异常的光线阴影等。

识别效果的好坏不仅仅取决于算法的好坏,视觉硬件选型和现场调试很重要。特别是在一些要求高识别精度的项目,视觉硬件取得的图像质量如果不够好,后期算法虽然可以修正,但是这样就相当于让计算机在“猜”尺寸边界,这是不靠谱的。

机器视觉入门学习

就像前面说的,机器视觉项目很强调软硬件结合。

机器视觉硬件部分可以参考我的百度文库上的《机器视觉选型计算概述》(这篇文章主要参考了基恩士官网的学习资料,不得不说日本人做事就是仔细,就像MISUMI样本都可以当简单的机械设计手册用了)。当然这篇文章主要是一些纲目性的资料,具体的每一个部分的原理可以根据条目进一步查资料学习。

机器视觉软件一般用编程语言调用算法库的形式,机器视觉算法库有很多包括:halcon、vision pro、opencv、matlab等。halcon是德国MVtec公司的算法库,也是目前市面上用的最多的算法库。vision pro是美国康耐视结合自己的视觉硬件产品推出的,当然也兼容其他硬件产品。OpenCV是开源算法库,本身很大很全,应该算计算机视觉的库,现在也有很多用这个,因为免费开源。Matlab是学校科班教学教图像识别一般都是按照这个教的,但是我看到的实际工业用的并不多。

机器视觉入门我很建议从HALCON开始。主要是我认为机器视觉软件入门第一步最重要的是理解图像采集、blob分析、形态学等一些基本的图像处理手段的作用和机器视觉项目软件整体怎么编写重要的是理解整体框架。在halcon、vision pro、opencv、matlab等不同算法库里面blob分析、形态学分析的具体算子内部编写可能会不一样,但是基本原理和实现的功能是一样的。通过halcon熟悉机器视觉项目的套路和方法,其他的学起来就简单了。halcon比较成熟,网上的破解软件也很多,教程资料也和很多(又从vision pro开始学的,但是这个目前学习资料确实不多)。之所以推荐从halcon入门,还一个重要原因是HDevelop(halcon算法的开发软件,两者关系有点类似微软的office和word的关系)提供了大量辅助工具帮助进行图像分析和软件调试,调试完毕后可以直接点击“插入代码”按钮自动生成程序语句,如下图所示,这样可以帮助我们快速完成程序编写并了解具体该用什么算子。程序编制完成后,HDevelop还可以直接导出C、C++、C#、VB等,以便后续程序的汇总。

  • 0
    点赞
  • 0
    评论
  • 4
    收藏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:我行我“速” 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值