机器视觉与计算机视觉的区别2022-12-29 10:03
1 机器视觉与计算机视觉的区别 机器视觉(MV machine vision)与计算机视觉(CV computer vision)虽然核心的算法都是图像识别算法,大体一样,但是从实际项目的角度是不一样的。 CV项目一般面临的图像采集环境很复杂,光线的强弱、镜头距离物体的远近等都会导致采集到的图像质量可能不会很高;所以一般CV更多的是做目标物有无或基本轮廓匹配判断,一般不会涉及高精度测量和定位的问题。而MV项目一般用于工业领域,一般是用于高精度测量物体的轮廓尺寸或者精确定位物体的位姿,所以MV项目的相机、镜头、光源都是针对项目专门选定的,有时为了防止环境光干扰专门构建一个局部暗室也很正常。另外,受限于条件CV通常的识别率不会太高,比如人脸识别达到98%(网上有吹自己算法人脸识别率达到99.7%以上的,这种只能呵呵,基于标准图库识别率当然高,实际应用中结合实际复杂的环境因素是不可能的),但是MV识别率无限接近100%很正常。简单说,MV是工业上用的追求确定性的、特殊定制的一套软硬件系统。 机器视觉项目是一个机电一体化的工程,不能只注重视觉算法。机器视觉项目基本流程包括: a、从最初的根据项目需求对相机、镜头、光源的理论计算选型开始; b、之后针对被识别物体搭建简易的初步试验,确认选的硬件可以采集到满意的图像(这一步采集到的图像质量的好坏人眼就可以基本判断,可以不用借助算法); c、然后开始采购相应硬件搭建本项目的开发平台,并开始结合实际工况和被测物开始编写识别算法,并且编写好与整体项目其他环节的通信接口; d、最后机器视觉识别效果最终用的如何还需要进行现场调试和改进。这一步非常关键,上一步在实验室理想环境开发好的硬件与软件系统在这一步很可能会出各种问题。比如设备整体运行时的震动引起相机震动导致图像模糊、工厂的其他设备的光源投射到本项目中产生了异常的光线阴影等。 识别效果的好坏不仅仅取决于算法的好坏,视觉硬件选型和现场调试很重要。特别是在一些要求高识别精度的项目,视觉硬件取得的图像质量如果不够好,后期算法虽然可以修正,但是这样就相当于让计算机在“猜”尺寸边界,这是不靠谱的。 2 机器视觉入门学习 就像前面说的,机器视觉项目很强调软硬件结合。 机器视觉硬件部分可以参考我的百度文库上的《机器视觉选型计算概述》(这篇文章主要参考了基恩士官网的学习资料,不得不说日本人做事就是仔细,就像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等,以便后续程序的汇总。 机器视觉入门的书籍首选推荐《机器视觉算法与应用》,如下图所示,左侧为第一版,右侧为第二版。这本书基本算是halcon的官方书籍,因为本身作者就是halcon的开发人员,而且最难得的是这是少有的从相机、镜头、光源这些硬件开始写起的机器视觉图书。当然这本书限于篇幅理论讲的不是很细,讲理论还是得经典的冈萨雷斯的《数字图像处理》,但是入门我还是建议《机器视觉算法与应用》,还是说先了解整体架构,了解套路,知道怎么干,然后再深入。第一版是双语版(可以顺便学英语专业词汇),第二版增加了新的摄像机和图像采集接口、三维传感器及技术、三维重建、三维物体识别以及最先进的分类算法等。 机器视觉软件编程我建议最好采用C++,虽然这两年python比较火,但是工业上还是C++用的更多一些。如果像我是从机械转行机器视觉,零基础开始学,图书建议选《C++ Primer Plus》,如下图。虽然《C++ Primer》更经典,但是就像那句话说的“《C++ Primer》一点都不primer”,《C++ Primer》是可以用来当做C++的字典用的一本书,不适合用于C++入门。而且读《C++ Primer Plus》这本书可知直接照着书练习,示例非常完整详细,不需要配合别的视频教程类的资料学习。 上一篇: 浅谈国内机器视觉
下一篇: 视觉外观检测系统检测原理
|