机器视觉(MV machine vision)与核算机视觉(CV computer vision)尽管中心的算法都是图画辨认算法,大体相同,可是从实践项意图视点是不相同的。
CV项目一般面对的图画收集环境很杂乱,光线的强弱、镜头间隔物体的远近等都会导致收集到的图画质量或许不会很高;所以一般CV更多的是做方针物有无或根本概括匹配判别,一般不会触及高精度丈量和定位的问题。而MV项目一般用于工业范畴,一般是用于高精度丈量物体的概括尺度或许准确定位物体的位姿,所以MV项意图相机、镜头、光源都是针对项目专门选定的,有时为了避免环境光搅扰专门构建一个部分暗室也很正常。其他,受限于条件CV一般的辨认率不会太高,比方人脸辨认到达98%(网上有吹自己算法人脸辨认率到达99.7%以上的,这种只能呵呵,依据规范图库辨认率当然高,实践使用中结合实践杂乱的环境要素是不或许的),可是MV辨认率无限挨近100%很正常。简略说,MV是工业上用的寻求确定性的、特别定制的一套软硬件体系。
机器视觉项目是一个机电一体化的工程,不能只重视视觉算法。机器视觉项目根本流程包含:
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等,以便后续程序的汇总。
机器视觉入门的书本首选引荐《机器视觉算法与使用》,如下图所示,左边为第一版,右侧为第二版。这本书根本算是halcon的官方书本,由于自身作者便是halcon的开发人员,并且最可贵的是这是罕见的从相机、镜头、光源这些硬件开端写起的机器视觉图书。当然这本书限于篇幅理论讲的不是很细,讲理论仍是得经典的冈萨雷斯的《数字图画处理》,可是入门我仍是主张《机器视觉算法与使用》,仍是说先了解全体架构,了解套路,知道怎样干,然后再深化。第一版是双语版(能够顺便学英语专业词汇),第二版增加了新的摄像机和图画收集接口、三维传感器及技能、三维重建、三维物体辨认以及最先进的分类算法等。
机器视觉软件编程我主张最好选用C++,尽管这两年python比较火,可是工业上仍是C++用的更多一些。假如像我是从机械转行机器视觉,零根底开端学,图书主张选《C++ Primer Plus》,如下图。尽管《C++ Primer》更经典,可是就像那句话说的“《C++ Primer》一点都不primer”,《C++ Primer》是能够用来作为C++的字典用的一本书,不适合用于C++入门。并且读《C++ Primer Plus》这本书可知直接照着书操练,示例十分完好具体,不需要合作其他视频教程类的材料学习。