文章目录

  • 1.1 什么是机器视觉
  • 1.2 机器视觉与计算机视觉的区别
  • 1.3 机器视觉的工作原理
  • 1.4 机器视觉的应用领域

1.1 什么是机器视觉

机器视觉是一种使用计算机来模拟人类视觉,并使用软件算法对相机采集到的图像进行分析和理解,以进行自动识别和判断的过程。

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

计算机视觉关键是计算机,机器视觉关键是机器,两者侧重领域不同。计算机视觉比较侧重于对图像的分析,回答“是什么”的问题;而机器视觉则更关注图像的处理结果,目的是控制接下来的行为,回答“怎么做”的问题。

  1. 计算机视觉一般使用相机设备
  2. 机器视觉更像是一套包括了硬件和软件的设备,它由照明系统、相机、采集卡和图像处理系统等模块组成,涉及光学成像、传感器、视频传输、机械控制、相机控制、图像处理等多种技术。每一个环节都会影响到最终的检测结果。
  3. 本质上来说,二者都属于视觉技术,共用同一套理论系统。但计算机视觉更侧重于对理论算法的研究,如深度学习在计算机视觉领域已经有了许多前沿的算法,虽然理论研究虽然超前,但暂时没有完全用于实际工程中。而机器视觉是落地的技术,它更侧重于实际应用,强调算法的实时性、高效率和高精度。
  4. 机器视觉还广泛的应用于机器人研究,是机器人的“眼睛”,能指引机器人的移动和操作行为。

因此,机器视觉和计算机视觉的发展方向和应用领域是各不相同的。

1.3 机器视觉的工作原理

视觉系统的组成

引用自:https://www.cnblogs.com/yssongest/p/4524472.html

典型的机器视觉系统可以分为:图像采集部分、图像处理部分和运动控制部分。基于PC的视觉系统具体由如图所示的几部分组成:
①工业相机与工业镜头——这部分属于成像器件,通常的视觉系统都是由一套或者多套这样的成像系统组成,如果有多路相机,可能由图像卡切换来获取图像数据,也可能由同步控制同时获取多相机通道的数据。根据应用的需要相机可能是输出标准的单色视频(RS-170/CCIR)、复合信号(Y/C)、RGB信号,也可能是非标准的逐行扫描信号、线扫描信号、高分辨率信号等。
②光源——作为辅助成像器件,对成像质量的好坏往往能起到至关重要的作用,各种形状的LED灯、高频荧光灯、光纤卤素灯等都容易得到。
③传感器——通常以光纤开关、接近开关等的形式出现,用以判断被测对象的位置和状态,告知图像传感器进行正确的采集。
④图像采集卡——通常以插入卡的形式安装在PC中,图像采集卡的主要工作是把相机输出的图像输送给电脑主机。它将来自相机的模拟或数字信号转换成一定格式的图像数据流,同时它可以控制相机的一些参数,比如触发信号,曝光/积分时间,快门速度等。图像采集卡通常有不同的硬件结构以针对不同类型的相机,同时也有不同的总线形式,比如PCI、PCI64、Compact PCI,PC104,ISA等。
⑤PC平台——电脑是一个PC式视觉系统的核心,在这里完成图像数据的处理和绝大部分的控制逻辑,对于检测类型的应用,通常都需要较高频率的CPU,这样可以减少处理的时间。同时,为了减少工业现场电磁、振动、灰尘、温度等的干扰,必须选择工业级的电脑。
⑥视觉处理软件——机器视觉软件用来完成输入的图像数据的处理,然后通过一定的运算得出结果,这个输出的结果可能是PASS/FAIL信号、坐标位置、字符串等。常见的机器视觉软件以C/C++图像库,ActiveX控件,图形式编程环境等形式出现,可以是专用功能的(比如仅仅用于LCD检测,BGA检测,模版对准等),也可以是通用目的的(包括定位、测量、条码/字符识别、斑点检测等)。
⑦控制单元(包含I/O、运动控制、电平转化单元等)——一旦视觉软件完成图像分析(除非仅用于监控),紧接着需要和外部单元进行通信以完成对生产过程的控制。简单的控制可以直接利用部分图像采集卡自带的I/O,相对复杂的逻辑/运动控制则必须依靠附加可编程逻辑控制单元/运动控制卡来实现必要的动作。
  
一个完整的机器视觉系统的主要工作过程如下:
1、工件定位检测器探测到物体已经运动至接近摄像系统的视野中心,向图像采集部分发送触发脉冲。
2、图像采集部分按照事先设定的程序和延时,分别向摄像机和照明系统发出启动脉冲。
3、摄像机停止目前的扫描,重新开始新的一帧扫描,或者摄像机在启动脉冲来到之前处于等待状态,启动脉冲到来后启动一帧扫描。
4、摄像机开始新的一帧扫描之前打开曝光机构,曝光时间可以事先设定。
5、另一个启动脉冲打开灯光照明,灯光的开启时间应该与摄像机的曝光时间匹配。
6、摄像机曝光后,正式开始一帧图像的扫描和输出。
7、图像采集部分接收模拟视频信号通过A/D将其数字化,或者是直接接收摄像机数字化后的数字视频数据。
8、图像采集部分将数字图像存放在处理器或计算机的内存中。
9、处理器对图像进行处理、分析、识别,获得测量结果或逻辑控制值。
10、处理结果控制流水线的动作、进行定位、纠正运动的误差等。
  

1.4 机器视觉的应用领域

智能制造的第一个环节正式机器视觉,国内机器视觉产品仍处于起步阶段,但发展迅速,传统制造业依赖人工进行产品质量检测的方式已不再适用。在以下领域使用较广:
(1)缺陷检测:产品表面的信息的正确性,有无破损划痕等检测。
(2)工业测量:主要检测产品的外观尺寸,实现非接触性测量。
(3)视觉定位:判断检测对象的位置坐标引导与控制机器的抓取等动作。
(4)模式识别:识别不同的目标和对象,如字符、二维码、颜色、形状等。

《HALCON机器视觉与算法原理编程实践》第1章 机器视觉概述-学习笔记相关推荐

  1. 《HALCON机器视觉与算法原理编程实践》第5章 图像预处理-学习笔记

    文章目录 5.1 图像变换与校正 5.1.1 二维图像的平移.旋转和缩放 5.1.2 图像的仿射变换 5.1.3 投影变换 5.1.4 实例:透视性变图像校正 5.2 感兴趣区域(ROI) 5.2.1 ...

  2. 《HALCON机器视觉与算法原理编程实践》第7章 颜色与纹理-学习笔记

    文章目录 7.1 图像的颜色 7.1.1 图像的色彩空间 7.1.2 Bayer图像 7.1.3 颜色空间的转换 7.2 颜色通道的处理 7.2.1 图像的通道 7.2.2 访问通道 7.2.3 通道 ...

  3. Java 3D编程实践_Java 3D编程实践——网络上的三维动画[学习笔记]

    评论 # re: Java 3D编程实践--网络上的三维动画[学习笔记] 2006-08-24 23:41 gy # re: Java 3D编程实践--网络上的三维动画[学习笔记] 2007-03-2 ...

  4. python编程案例教程第四章_Python编程入门-第四章 流程控制 -学习笔记

    第四章 流程控制 一.布尔逻辑 *在Python中,用True和False表示真值.一般使用4个主要的逻辑运算符来组合形成布尔值:not\and\or\==. 如: False==False #Tru ...

  5. kmeans算法原理以及实践操作

    原文:http://www.cnblogs.com/dudumiaomiao/p/5839905.html kmeans算法原理以及实践操作(多种k值确定以及如何选取初始点方法) kmeans一般在数 ...

  6. 【操作系统】进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践

    0 前言 接上一篇文章:进程调度(2a):SJF(短任务优先) 算法 原理与实践 1 前提铺垫 与上一篇同. 2 STCF 原理 STCF(Shortest Time-to-Completion Fi ...

  7. 【操作系统】进程调度(2a):SJF(短任务优先) 算法 原理与实践

    0 前言 接上一篇文章:进程调度(1):FIFO(先进先出)算法 原理与实践 1 前提铺垫 请参考上一篇文章的前提铺垫部分,本文与之完全一致. 2 SJF 原理 SJF(Shortest Job Fi ...

  8. LSA/LSI算法原理和实践

    本篇文章主要转载自LSI/LSA算法原理与实践Demo 目录: 1.使用场景 2.优缺点 3.算法原理 3.1.传统向量空间模型的缺陷 3.2.Latent Semantic Analysis (La ...

  9. 【操作系统】进程调度(3):RR(轮转) 算法 原理与实践

    0 前言 接上一篇文章:进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践 1 前提铺垫 除了与上一篇相同的,这里介绍新的基础知识. 1.1 三种类型的程序 计算密集型(CPU导向) 输 ...

  10. Apollo星火计划学习笔记——Apollo开放空间规划算法原理与实践

    文章目录 前言 1. 开放空间规划算法总体介绍 1.1 Task: OPEN_SPACE_ROI_DECIDER 1.2 Task: OPEN_SPACE_TRAJECTORY_PROVIDER 1. ...

最新文章

  1. linux ssh关闭后台程序不终止
  2. ng-repeat 设定select 选择项
  3. apache2 默认端口修改
  4. Idea中实战Git
  5. 知乎Live上线-学深度学习我们到底在学什么
  6. hashCode()、equals()以及compareTo()方法的理解
  7. java串口监听超时_从串口读取时如何实现read()的超时(C / C)
  8. Oracle PL/SQL块 多表查询(emp员工表、dept部门表、salgrade工资等级表)
  9. outlook可以显示多少行文本_Linux学习从处理文本开始
  10. jetty java 文件下载_Jetty 嵌入式开发之文件浏览和文件下载
  11. sql索引调优_使用内置索引利用率指标SQL Server索引性能调优
  12. 【转】js获取当前日期时间“yyyy-MM-dd HH:MM:SS”
  13. 淘宝潜规折射出的人性
  14. Python解释器配置设置
  15. 文件IO(IO编程)
  16. Shell设置环境变量
  17. 00后小花张子枫亲力推荐 OPPO Reno6系列影像表现着实不俗
  18. 漫谈测试成长之探索——测试排期
  19. 5G网下通过网络编码增强转发策略的NDN物联网内容分发模型
  20. 南京大学用python玩转数据答案_2020中国大学mooc用Python玩转数据章节答案

热门文章

  1. 遗传算法python实例_Python遗传算法框架使用实例(一)使用Geatpy实现句子匹配
  2. 怎么用U盘安装ubuntu系统具体步骤图文详解
  3. django基于大数据的应届生求职系统--python-计算机毕业设计
  4. jsp高校科研项目管理系统
  5. 如何进行在线教育平台开发(源码篇)
  6. 抖音超火的网页表白代码大全(浪漫的html表白源代码)
  7. (C语言)用C语言编写小游戏——扫雷
  8. wps 英文版_为什么现在我会推荐使用wps?
  9. vscode 启用open with live server功能,配置谷歌浏览器chrome
  10. 抓包工具Fiddler的安装与使用