机器视觉概述-程序员宅基地

技术标签: matlab  算法  矩阵  计算机视觉  图像处理  人工智能  视觉检测  机器视觉与图像处理  

人类的视觉可以感知可见光波段的电磁光谱,视觉让人类得以观察和理解世界。而计算机视觉的范围则是全电磁光谱,旨在通过电子感知和理解图像来复制人类视觉。机器视觉则是计算机视觉在媒体、医疗保健以及制造业等行业的应用,是一个包括机械工程、光学、计算机科学和自动化的一个子领域。  


目录

一、机器视觉概述

(1)机器视觉通用组件

(2)众多的应用场景

(3)实现机器视觉的困难

(4)算力要求

二、MATLAB图像处理概述

三、图像采样和量化

(1)图像数字化

(2)像素

(3)采样

(4)量化

(5)颜色深度


一、机器视觉概述

人类的视觉可以感知可见光波段的电磁光谱,视觉让人类得以观察和理解世界。而计算机视觉的范围则是全电磁光谱,旨在通过电子感知和理解图像来复制人类视觉。机器视觉则是计算机视觉在媒体、医疗保健以及制造业等行业的应用,是一个包括机械工程、光学、计算机科学和自动化的一个子领域。

(1)机器视觉通用组件

工业视觉中,使用数码相机或者智能相机和图像处理软件来检查制造物体是否合格。智能相机是由图像采集电路和从图像中提取和处理信息的微处理器组成的集成机器视觉系统。智能相机通常有一个接口设备,使结果可用于其他设备。检查对象可以是半导体芯片、汽车零部件、食品和药品等,常见的应用场景有质量控制、安全和监控、环境监控、娱乐产业、医疗保健等。

(2)众多的应用场景

① 在制造业中,机器视觉能够检测缺陷、校准和控制制造过程,并优化资源的使用;使得人们可以获得可重复性、产品可靠性、100%高速检测、消费者信心和满意度。

② 在保安及监察场景中,机器视觉能够在3D维度中跟踪对象和人、识别和注册特定和通用对象、建模和识别手势、动作和行为,并执行生物特征测量,我们可以获得更安全的环境、更高效的非阻塞性监控,以降低犯罪率。

③ 在环境监测领域,机器视觉可以用于监测飓风的传播、监测垃圾场的污染、绘制和监测天然气管道和铁路的状况、监督海洋的污染,帮助我们更好的规划和利用资源。

④ 在日常生活场景中,机器视觉允许用户通过内容搜索图像数据库和视频库,可以进行高效的图像压缩、多视图场景创建,或者依据对象生成的现实模型。人们能够获得更大的真实感、更低的成本、更广泛的可访问性。前段时间Facebook大火的元宇宙概念就是最典型的例子。

⑤ 在医疗领域,机器视觉为临床医生提供了3D/4D可视化、3D纹理分析、3D和2D图像配准等技术,借助机器视觉医疗人员可以进行虚拟对象操作。

(3)实现机器视觉的困难

① 3D到2D的信息丢失:例如在针孔模型和单一可用视图中,射影变换以相同的方式看到一个靠近摄像机的小物体和一个远离摄像机的大物体,此时成像几何的针孔模型并不能区分物体的大小。

② 解读困难:人们使用之前的知识和经验来理解当前正在观察的图像,可能出现偏差。

③ 噪声:存在于现实世界的每一个测量中。

④ 数据量大:仅一张A4纸的大小,以每英寸300点(dpi)扫描,每像素8位(灰度),总的数据量为8.5 MB。庞大的数据量对算力提出了高要求。

⑤ 亮度测量:亮度取决于辐照度(光源类型、位置和强度)、观察者的位置、表面局部几何形状和表面反射率属性等,影响因素众多。

⑥ 本地窗口vs.全局视图:如果一个图像是全局的,那么就相对容易理解;但是如果图像只提供了一个非常局部的信息,要识别出图像中描绘的是什么物体可能非常困难。

(4)算力要求

以典型的医学图像为例,图像分辨率为512x512、16位像素,这将需要0.5Mb的存储空间。对于一帧,将会有512 x 512 = 262,144个像素操作。对于100MHz或者每秒100 x 106次操作的计算机,将花费:262144 / 100 x 106 = 0.00262144 s = 2.62144 ms 来执行图像操作。

实时系统的速率为每秒60-80帧,每个帧需要在12- 16ms内处理。而对于复杂的图像处理操作,每个像素需要多个操作,将需要硬件加速和/或并行处理。

二、MATLAB图像处理概述

MATLAB是一种很好的数字图像处理实现语言,具有很多的优势,如:

(1)允许快速的原型计算
(2)许多图像分析算法的可用实现
(3)可以很容易地在C, C++或Java中重写
(4)包含广泛流行的图像处理工具箱,涵盖了基本的图像处理功能
(5)MATLAB的公共领域/开源克隆广泛可用,例如Octava和SciLab。

所有MATLAB变量都是多维数组。矩阵是线性代数中常用的二维(2D)数组,向量是一维(1D)数组。MATLAB中的操作基本都是基于矩阵来进行。

三、图像采样和量化

无论是人视网膜上的图像,或是电视摄像机、传感器所捕捉到的图像,都是将3D场景投影到2D维度。

数字图像处理是利用计算机算法对数字图像进行图像处理,它是数字信号处理的一个分支领域。图像采样和图像量化就是数字图像处理的例子。

(1)图像数字化

计算机所处理的图像必须用离散的数据结构表示,如矩阵或二维数组。图像数字化是通过采样和量化将图像转换为数字表示的过程,量化给每个连续的样本赋一个整数值,采样使得连续函数变为M行N列的矩阵。

数字图像(光栅图像或位图图像)是连续图像的通过离散抽样矩阵的表示,每个离散样本上的函数值被量化为由有限位数表示。样本矩阵中的每个元素称为像素(表示图元)。下图中,(a)表示投影到传感器阵列上的连续图像,(b)则是图像采样和量化结果。

(2)像素

像素是原始图像的一个点样本。

1、它是图像中最小的信息。
2、它有一个相对于图像中其他像素的位置。
3、它具有以bits为单位的颜色表示能力。

在MATLAB编码中,像素编号从1开始。像素的各种组合可以形成单色图像、彩色图像、视频单色图像流等,进而在显示媒介中显示图像。

(3)采样

采样可以看作是将xy平面采集成网格,采样使连续函数变为M行N列的矩阵。图像采样是空间的自由裁量,故采样图像不等于原始形状。像素越少,空间分辨率就越低。例如,我们可以将640 x 480图像的大小减小到160 x 120。但是当160 x 120的图像插值回640 x 480时,我们将观察到非常模糊的结果。

图像分辨率是测量采样密度的一种方法,提供了像素尺寸和物理尺寸之间的关系。常用单位如每英寸像素(ppi),例如:

如果图像的尺寸为1英寸× 1英寸,M = N = 8,则每英寸有8/1 = 8个像素。像素大小 = 1/8 = 0.125英寸。

像素大小决定了分辨率。另一个重要的值是光栅尺寸,又称为栅格或图像维度(=宽x高)。它是像素网格中水平和垂直样本的数量。

一些常见的图像中的像素数(光栅维数):

  • 视频图形阵列(VGA)显示:640 * 480显示;4:3宽高比;M = 640像素,N = 480像素。640 x 480 = 307,200像素或30万像素。
  • SVGA(Super VGA):800 x 600 ≈ 40万像素。
  • XGA(Extended Graphics Array): 1024 x 768 ≈ 80万像素。
  • 1080i HDTV 高清电视:1920 x 1080 ≈ 210万像素,是高分辨率数字电视格式。
  • 2K:2048 x 1536 ≈ 310万像素;4:3长宽比;常用于故事片的数字效果实现。
  • 普通CCD相机:至少512 × 256像素 = 131,072像素。
  • 数码单反相机:至少400万像素。

在光栅尺寸中,缩放(或重新采样)指的是创建与源图像具有不同维度的图像的过程,缩小图像(或抽取)指的是降低栅格维数的过程,最终平均每个输出像素的源像素值。缩放图像是在源栅格中的原始样本样本之间增加图像大小以创建样本点的过程。插值指的是使用样本网格中的值来猜测未知像素的值。

(4)量化

量化过程是指将亮度或强度的连续范围量化到固定灰度级别。由于数字存储和量化硬件限制,固定灰度级别 K = 2^n,其中n是整数,称为颜色能力或颜色深度或位深度。

如果n=1,则k=0或1,图像为二进制图像

如果n=8,则k = 0,1,…,255,图像为灰度图像

图像量化的裁量权则在光强。其中:亮度等级=单色图像中的灰度等级。

量化误差:定义为实际模拟值和量化数字值之间的差值。产生原因是由于舍入或截断。

人类视觉感知最多能识别60个灰度级,数字图像则通常被量化到256个灰度级。

(5)颜色深度

颜色深度定义为一个像素可以存储的最大数据数。例如:

单色图像:(,)=0,1,2,…,−1

二进制图像:(,)=0,1;颜色区分为1位数据

灰度图像:(,)=0,1,…,255;0为黑色,1到254为灰色,255为白色。颜色区分为8位数据。

人眼看到的颜色是所谓原色的可变组合:红(R)、绿(G)、蓝(B),也就是常说的RGB。RGB颜色模型是图像颜色生成的理想模型,每个颜色通道使用8位数据。

除了RGB外,比较常用的还有如CMY和CMYK的彩色打印模型。CMY和RGB其实是互补的颜色类型,应用在大多数在纸上沉积彩色颜料的设备,如打印机或复印机。

除此之外还有HSI颜色模型。HSI颜色模型对人类来说是自然和直观的,其中色相用来描述纯色(如纯黄色、纯橙色或纯红色)的颜色属性,饱和度用来表示纯色被白光稀释的程度,强度表示灰度级别。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2301_76660661/article/details/130027562

智能推荐

jQuery的常用API_jq api-程序员宅基地

文章浏览阅读380次。jQuery 是一个 JavaScript 库。jQuery 极大地简化了 JavaScript 编程。jquery插件里面提供一个全局的对象$和jQuery对象,本质是一个函数,$(document).ready(function(){ //预加载函数;//method})$(function(){ //预加载语法糖;//method})$("#p1") //获取jQuery对象(选择器字符串);$("#p1")[0] //转化为DOM对象;$(DOMObj) //转化为j_jq api

ADC学习(2)——频谱性能指标_奈奎斯特区间-程序员宅基地

文章浏览阅读7.8k次,点赞17次,收藏140次。第二章 频谱性能指标_奈奎斯特区间

接口测试-必须掌握的网络基础_b/s 接口测试-程序员宅基地

文章浏览阅读4.6k次,点赞395次,收藏347次。一、网络概述网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。在计算机领域中,网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。网络是人类发展史来最重要的发明,提高了科技和人类社会的发展。二、网络基础概念客户端:应用 C/S(客户端/服务器) B/S(浏览器/服务器)服务器:为客户端提供服务、数据、资源的机器请求:客户端向服务器索取数据点击免费下载海量工程资料响应:服务器对客户端请求作出反应,一般是返回给客户端数据URL._b/s 接口测试

《Interactive graph cuts for optimal boundary & region segmentation of objects in N-D images》读后感及问题_[1]interactive graph cuts for optimal boundary & r-程序员宅基地

文章浏览阅读4.9k次,点赞3次,收藏10次。N维图像基于最优边界和区域分割的交互式图割用户通过交互式选择图像的某部分作为“目标”和“背景”,然后分割方法基于用户定义的“目标”和“背景”硬性约束,定义一个包含区域和边界信息的能量函数,该能量函数的定义是根据文献[9]MAP-MRF(最大后验概率准则-马尔可夫随机场)定义的,使用能量函数求解达到图像的全局最优的自动分割。而计算机需要达到最优的分割就必须求解该能量函数的最小值,根据[9]可_[1]interactive graph cuts for optimal boundary & region segmentation of obje

vue移动端监听滚动事件实现导航栏上滑隐藏下滑显示功能_vue向下滚动隐藏,向上滚动显示-程序员宅基地

文章浏览阅读2.5k次。场景描述:手机端的顶部导航栏 向上滑动隐藏 向下滑动显示。<script> export default { data(){ return{ i = 0 } }, mounted () { window.addEventListener('scroll', this.handleScroll, true); _vue向下滚动隐藏,向上滚动显示

tensorflow 1.12 安装_安装tensorflow1.12.2-程序员宅基地

文章浏览阅读7.1k次,点赞3次,收藏7次。0,conda create -n tf12 python=3.6 安装python=3.6版本低版本较好1,安装cuda9.0,cudnn7.1.4.18 可以兼容许多版本2,pip install tensorflow-gpu==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install tensorf..._安装tensorflow1.12.2

随便推点

TCP粘包与UDP数据报边界_udp数据边界-程序员宅基地

文章浏览阅读995次。转载:http://blog.csdn.net/lizhifeng2009/article/details/8990844 UDP丢包是因为数据包在传送过程中丢失了 而TCP是基于流式的发送 并且存在丢包重发机制 TCP是可靠连接而UDP是不可靠的这个我就不多说了关于TCP的粘包 正是由于TCP是流式传送的 也就是连接建立后可以一直不停的发送 并没有明确的边界定义 而你用UDP发送的时_udp数据边界

为什么我搭建好的 airtest ios 自动化测试那么慢?_ipad自动化测试慢-程序员宅基地

文章浏览阅读2.6k次。因为 我调通的是ipad ipad 截图 3.1 Miphone 截图 1.6 M之间的差距阻碍实时传图 _ipad自动化测试慢

当摄像头拍摄到识别图时模型显示在识别图上,当摄像头离开识别图时,模型居中显示在屏幕上。...-程序员宅基地

文章浏览阅读250次。using UnityEngine;using System.Collections;using Vuforia;/// <summary>/// 自己重新默认的DefaultTrackableEventHandler脚本(当然你不重写也行,/// 脚本的现实的效果:当摄像头拍摄到识别图时模型显示在识别图上,当摄像头离开识别图时,模型居中显示在屏幕上。/// /// 注意:需..._vuforia物体识别后后上次识别模型居中显示

vue插件 环形进度条动画效果_vue circle-progressbar的用法-程序员宅基地

文章浏览阅读1.4k次。1:首先安装插件 cnpm install vue-circleprogressbar<template> <div class="wrap-progress"> <circle-progressbar :id="1" barColor="#0000ff" backgroundColor="rgba(0,0,0,0.4)" :width="100" _vue circle-progressbar的用法

html+css实现多种动态相册_css动态照片墙-程序员宅基地

文章浏览阅读3.2w次,点赞63次,收藏352次。电子相册全屏背景切换照片墙百叶窗3d照片墙立方体相册代码_css动态照片墙

Sentinel 介绍与使用_sentinel entry exit-程序员宅基地

文章浏览阅读286次。简介Sentinel可以简单的分为Sentinel核心库和Dashboard。核心库不依赖Dashboard,但是结合Dashboard可以取得最好的效果。 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对Dubbo / Spring Cloud等框架也有较好的支持。 控制台(Dashboard)基于Spring Boot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器。 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。S_sentinel entry exit

推荐文章

热门文章

相关标签