机器视觉理论入门

文章目录

  • 前言
  • 一、马尔视觉理论
  • 二、图形与图像
  • 三、图像基础名词
  • 总结


前言

Marr的视觉计算理论立足于计算机科学,系统地概括了心理物理学、神经生理学、临床神经病理学等方面已取得的所有重要成果,是迄今为止最为系统的视觉理论。Marr 的视觉计算理论虽然在细节甚至在主导思想方面尚存在大量不完备的方面,许多方面还存有许多争议,但至今为止仍是广大计算视觉研究人员接受的基本框架。计算机视觉这门学科的形成,应该说与这一理论框架有密切的关系,下面我们从几个方面来描述这一理论框架。

  Marr 从信息处理系统的角度出发,认为视觉系统的研究应分为三个层次,即计算理论层次、表达(representation)与算法层次、硬件实现层次。

  计算理论层次要回答系统各个部分的计算目的与计算策略,亦即各部分的输入输出是什么,之间的关系是什么变换或者具有何种约束。Marr 对视觉系统的总的输入输出关系规定了一个总的目标,即输入二维图像,输出是由二维图像“重建”(reconstruction)出来的三维物体的位置与形状。Marr 认为,视觉系统的任务是对环境中三维物体进行识别、定位与运动分析,但这仅仅是一种对视觉行为(behavior)目的性定义,而非计算理论层次上的目的性定义。三维物体千差万别,应存在一种计算层次上的一般性“目的”描述,达到了这一“目的”,则不管是什么具体的物体,视觉任务均可完成。Marr 认为,这一“目的”,就是通过视觉系统,重建三维物体的形状和位置。而且若每个时刻都能做到这一点,那么运动分析也可以做到。对视觉系统的各个层次与模块,Marr 也初步给出了计算理论层次上的目标。

  对于表达与算法层次,视觉系统的研究应给出各部分(模块)的输入、输出和内部的信息表达,以及实现计算理论所规定的目标的算法。算法与表达有关,不同的表达方式,完成同一计算的算法会不同,但 Marr 认为,算法与表达是比计算理论低一层次的问题,不同的表达与算法,在计算理论层次是可以相同的。最后一个硬件层次,是要回答“如何用硬件实现以上的算法”。

  区分上述三个不同层次,对于深刻理解计算机视觉与生物视觉系统,以及它们之间的关系是大有裨益的,例如,人的视觉系统与目前的计算机视觉系统在“硬件实现”层次上是截然不同的,前者是极为复杂的神经网络,而后者是目前使用的计算机,但它们可能在计算理论层次上具有完全相同的功能。

  目前的计算机视觉的研究工作主要集中在前两个层次上,即计算理论,表达于算法层次,对于硬件实现,目前只有比较成熟的部分,如低层次处理中的噪声去除,边缘抽取;对于简单二维物体识别及简单场景下的视觉方法,已有专门芯片或其它并行处理体系结构方面的研究与试验产品;从系统上构造一般的视觉系统,虽有一些尝试,但一般并不成功。

  Marr 认为视觉是一个信息处理过程。这个过程根据外部世界的图像产生对观察者有用的描述。这些描述依次由许多不同但固定的、每个都记录了外界的某方面特征的表象(representation)所构成或组合而成。一种新的表象之所以提高了一步是因为新的表象表达了某种信息,而这种信息将便于对信息作进一步解释。按这种逻辑来思考可得到这样的结论:即在对数据作进一步解释以前我们需要关于被观察物体的某些信息,这就是所谓的本征图像。

  然而,数据进入我们的眼睛是要以光线为媒介的。灰度图像中至少包含关于照明情况、观察者相对于物体位置的信息。因此,按 Marr 的方法首先要解决的问题是如何把这些因素分解开。他认为低层视觉(即视觉处理的第一阶段)的目的就是要分清哪些变化是由哪些因素引起的。大体上来说这个过程要经过两个步骤来完成:第一步是获得表示图像中变化和结构的表象。这包括检测灰度的变化、表示和分析局部的几何结构、以及检测照明的效应等处理。第一步得到的结果被称为初始简图(primal sketch)的表象;第二步对初始简图进行一系列运算得到能反映可见表面几何特征的表象,这种表象被称为二维半(2.5 Dimension,意味着部分的,不完整的三维信息描述)简图或本征图像。“计算”的语言讲,就是重建三维物体在观察者为中心的坐标系下的三维形状和位置,当人眼或摄像机观察周围环境时,观察者对环境中的三维物体最初是以自身的坐标系来描述的。另外,我们只能观察到周围环境物体的一部分(另一部分是物体的背面或被其它的物体所遮挡的部分)。这样,重建的结果是以观察者坐标系下描述的部分三维物体形状,称为二维半描述。这一阶段包括由立体视觉运算提取深度信息,根据灰度影调、纹理等信息恢复表面方向,由运动视觉运算获取表面形状和空间关系信息等。

  这些运算的结果都集成到本征图像这个中间表象层次。因为这个中间表象已经从原始的图像中去除了许多的多义性,是纯粹地表示了物体表面的特征,其中包括光照、反射率、方向、距离等。根据本征图像表示的这些信息可以可靠地把图像分成有明确含义的区域(这称为分割),从而可得到比线条、区域、形状等更为高层的描述。这个层次的处理称为中层视觉处理(intermediate processing)。

  二维半描述是不够的,事实上,从各种不同角度去观察物体,观察到的形状都是不完整的。人脑中不可能存有同一物体的从所有可能的观察角度看到的物体形象,以用来与所谓的物体的二维半描述进行匹配与比较。因此,二维半描述必须进一步处理以得到物体的完整的三维描述,而且必须是物体本身某一固定坐标系下的描述,这一阶段称为第三阶段,即三维阶段。Marr 视觉理论中的这一阶段的表象层次是三维模型,它适用于物体的识别。这个层次的处理涉及物体,并且要依靠和应用与领域有关的先验知识来构成对景物的描述,因此被称为高层视觉处理。


一、马尔视觉理 

1.视觉系统研究的三个层次

1.1 计算理论层次

计算理论层次要回答系统各个部分的计算目的与计算策略。

视觉系统的总的输入输出关系的总目标:输入是二维图像,输出是由二维图像重建出来的三维物体的位置和形状。

1.2 表达与算法层次

各部分(模块)的输入输出和内部的信息表达,以及实现计算理论所规定的目标的算法。不同的表达与算法,在计算理论层次上可以相同。

1.3 硬件实现层次

如何使用硬件来完成 以上的算法

2.视觉系统处理的三个阶段

2.1  第一阶段:构成基元图

构成基元图

基元图(Primitive Graph)是指由一组基本形状(也称为基元)组成的图形表示方法。基元是指一些简单的几何形状,如点、线、矩形、圆等,它们是构成复杂图形的基础单元。

在基元图中,通过将这些基元按照特定的方式组合在一起,可以绘制出各种复杂的图形。基元图常用于计算机图形学和图像处理领域,用于表示和生成二维图形。

基元图的优势在于它能够用较少的基本元素来描述复杂的图形,从而节省存储空间和计算资源。此外,基元图还具有易于编辑和修改的特点,因为可以通过调整、移动、旋转或缩放基元来改变整个图形。

基元图在计算机图形学中有广泛的应用,例如图形用户界面(GUI)、计算机游戏、可视化效果和数据可视化等方面。通过使用基元图,可以快速生成各种图形,并且可以根据需要对其进行进一步的操作和处理。

2.2 第二阶段:对环境的2.5维描述

对环境的2.5维描述。

2.5维描述是指在三维空间中,使用特定的技术或方法将物体的外观以二维形式进行呈现。这种描述方式在某种程度上介于二维描述和三维描述之间。

传统的二维描述只能提供物体的长度和宽度信息,无法准确表达物体的厚度或者深度。而三维描述则可以完整地呈现物体在空间中的立体形态,包括长度、宽度和高度。

而2.5维描述则采用一些特殊的技术,如绘画、渲染或图像处理等,将物体通过一些投影或转换手段,将其在二维平面上进行展示,同时还能够表达一定的立体感。这样的描述方式通常会忽略一些细节,但能够给人一种立体的感觉。

2.5维描述可以被广泛应用于多个领域,例如建筑设计、工程制图、动画制作以及虚拟现实等。在这些领域中,人们可以通过2.5维描述来更好地理解和展示物体的形状、结构和比例关系,从而帮助人们更好地进行设计、创作和沟通。

2.3 第三阶段

进一步处理以得到物体的完整三维描述,而且必须是物体本身某一固定坐标系下的描述。

二、图形与图像

1、图形、图像的基础知识

图形:由称为矢量的数学对象所定义的直线和曲线等组成。

图像:也称为栅格图像,由点阵图或位图图像、用像素来代表图像。每一个像素都被分配一个特点的位置和颜色值。

图形和图像之间在一定条件下可以互相转换,比如采用光栅化技术可以将图形转换为图像;采用图形跟踪技术可以将图像转换为图形。

2、图形、图像的颜色知识

颜色是创建图像的基础,颜色是通过光而被人感知,不同的物体受到光线照射后,一部分被光线吸收,其余被反射到人的眼中并被人的大脑感知,称为人们所见颜色的表达。

 2.1颜色的三要素

色调:色调主要指颜色的类别,比如红色绿色等。

饱和度饱和度指某一颜色的深浅程度。对于统一色调的颜色,饱和度越高颜色越深,

亮度是描述光作用于人眼时引起的明暗程度感觉,主要是彩色明暗的深浅程度。彩色辐射频率越大亮度越高。

2.2 三基色原理

理论上说任何一种颜色都可以由三种基本的颜色根据不同的比例混合而成。常见的三基色:红、绿、蓝

红绿蓝三基色进行混合的情况如下:

红色+绿色=黄色

红绿+蓝色=品红

绿色+蓝色=青色

红色+绿色+蓝色=白色

若两种色光混合形成白光,则这两种颜色互为补色。

2.3 颜色模型

颜色模型是用来精确标定和生成各种颜色的一套规则和定义。常见的颜色模型有:RGB颜色模型、CMY颜色模型、YUV颜色模型

3. 图像获取

将现实世界的景物或物理介质上的图文输入计算机的过程称为图像的获取。

图像获取的方式:直接利用数字图像库的图像、利用绘图软件创建图像、数字转换设备采集图像。

数字转换设备获取图像的过程:采样、量化、编码

4. 图像属性

图像的属性主要包括:分辨率、像素深度、真/伪彩色、图像的表示法、种类。

4.1 分辨率 

图像分辨率:组成一幅图像的像素数目。采用图像的水平方向和垂直方向的像素数来表示。

显示分辨率:显示设备能够显示图像的区域大小。一般用于 显示显示设备水平方向和垂直方向的最大像素的数目。比如1024*768 。

4.2 像素深度

像素深度指存储每个像素所用的二进制位数,用来度量图像的色彩分辨率的。像素的位数越多,它表达的颜色数组越多,深度就越深。

4.3 真/伪彩色

真彩色:组成一幅彩色图像的每个像素值中有R、G、B这个三个基色分量,每个基色分量直接决定显示设备的基色强度。反映原图像真实色彩称为真彩色。

伪彩色:图像中的每个像素的颜色不是由3个基色分量的数值直接表达的,而是把像素值作为地址索引在色彩表中查找这个像素的实际R、G、B分量,这种图像颜色的表达方式称为伪彩色。

5 .图像的压缩编码知识

5.1 图像数据量计算

计算公示:图像的数据量=图像的总像素数*像素深度/8(Byte)

例如:一幅540*480的256色图像,数据量为:

640*480*8/8=300KB 。

数据量越大占用的存储空间就越大,减少图像的数据量是提供图像网络传输速度的重要手段。

5.2 数据压缩

1、无损压缩:压缩前和压缩后数据完全一致。主要有:熵编码技术(香农-范诺编码、霍夫曼编码、算术编码)、行编码技术、无损预测编码技术(无损DPCM技术)、词典编码技术(LZ97、LSZS、LZW)等。

2、有损压缩:压缩前和压缩后数据并非完全一致。压缩过程中有不可恢复的信息丢失,有一定的失真量,但在能接受范围之内。最常见的有损压缩编码标准是JPEG。

6、图像的文件格式

6.1、BMP文件(.bmp)

windows操作系统采用的一种图像文件格式。一般不采用其他任何压缩,占用存储空间比较大。图像深度可选1位、4位、8位、24位。黑白、16色、256色和真彩色。

6.2、GIF文件(.gif)

可以实现简单动画效果的图像文件格式。图像深度为1~8位,最多支持256中色彩图像。常用于HTML文档当中。

6.3、TIFF文件(.tif)

针对扫描仪和桌面系统开发的通用图像文件格式。

6.4、PCX文件(.pcx)

PC画笔的图文件格式。

6.5、PNG文件格式(.png)

PNG文件支持无损 数据压缩。为了替代gif。

6.6、JPEG文件(.jpg)

采用JPEG压缩算法、文件的压缩比例很高,非常适合处理大量图像的场合。

6.7、WMF文件(.wmf)

只用在windows系统中保存的不是点阵信息,而是函数调用的信息。

三、图像基础名词

1.像素的理解

在日常生活中,我们大多时候对图像进行处理都是在计算机或者其他的电子设备上进行。那么图像在计算机中是怎么表示呢。首先我们先来说一下像素。相信大家对像素已经听过很多次了,对于像素,我们可以理解为组成图像的最基本元素。再具体一点,我们可以把像素看成是具有各自图像属性(比如颜色,亮度等)的小方块,当他们按照一定的顺序进行排列时,就形成了我们所看到的图像。

2.灰度图

上面说到像素是图片组成的最基本元素,具有图像的属性,比如其自身的亮度,色彩等。在计算机中,这些属性都用数字来表示。下面以一张灰度图作为例子。灰度图是单通道图,像素只有一个值:灰度值。灰度值越高,则图像越亮。

现在我们已经知道我们看到一张灰度图是由许多不同灰度值的像素点构成,而每个像素就是一个越亮的像素,灰度值越高,最高值是255(白色),越暗的像素,灰度值越低,最低值是0(黑色)。灰度值在0~255之间的像素呈现不同程度的灰色。这样,通过不同的灰度层次,图像也就展现出来了。

我们已经知道我们看到一张灰度图是由许多不同灰度值的像素点构成,而每个像素就是一个代表灰度值的数字,那么我们想想许多数字按照图像的形状成矩形排列,会变成什么呢?没错,学过线性代数的小伙伴一下子就猜出来了,就是——矩阵。

这是将上面的图像变成18*18大小的图像,灰度值为1的部分是图中黑色的部分,根据灰度值就可以大概勾勒出头部的轮廓。

3.直方图

一幅图像由不同灰度值的像素组成,图像中灰度的分布情况是该图像的一个重要特征。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的频率。知道图像的直方图有什么作用呢,下面以一张图片的不同的直方图的情况来说明。

   

由图1直方图可知,图1的灰度值比较聚集,所以图片的细节与层次感不够丰富,图2是将图1的灰度值分布重新调整,是各个灰度值上都有一定的像素点,这样就能增强图像的信息,为后续图像的处理提供更清晰的信息。

4.色彩空间

色彩空间也称为彩色模型,彩色空间,也就是用模型来描述彩色图像的构成规则。常见的色彩空间模型有RGB,HSV,HUE等。本文只讲述RGB和HSV空间,因为在这两个色彩空间在计算机视觉中应用比较多。

4.1 RGB空间

在RGB空间中,R代表红色(red),G代表绿色(green),B代表蓝色(blue)。其空间模型如图

以图中虚线,即红(R),绿(G),蓝(B)为x,y,z轴建立笛卡尔坐标系。不同的坐标代表不同的颜色。如品红色为(1,0,1),白色为(1,1,1)等等。其中,在(0,0,0)与(1,1,1)的对角线上的颜色是不同层次的灰度级,也就是不同颜色的灰度。 

所以对于一张RGB图像,它是一张三通道的图像。分别为R通道,G通道,B通道。我们通常用通道这个词汇来表示向量中的某个分量。在前面我们已经讲过灰度图是单通道的图像,意味着像素是一个标量,因为灰度图的像素只有一个代表灰度级的值。而在RGB中,因为每个像素有三个通道的值,所以RGB图像的每个像素是一个三维向量。因此对于每张RGB图像,我们可以把它分离成3个单通道的图像,其分别代表R,G,B三种颜色的灰度图。

   

RGB模型是面向硬件的模型。因为在电子设备内部,通过显像管对三种颜色的电敏荧光粉不同强度的激发,就能产生各种颜色。

4.2 HSV空间

前面说到RGB模型是面向硬件的,那么HSV空间是面向我们人的。因为我们更习惯去这样描述一种色彩,它是什么颜色的,它是色深的还是色浅的,是明亮的还是暗淡的。HSV空间就是符合人直观认识色彩的一个模型。H为色调(hue),S是饱和度(saturation),V是明度(value)。

HSV模型

色调H,用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。

饱和度S,由圆心里到外颜色逐渐变鲜艳。

明度V,表示颜色明亮的程度,V越大,S能取的值也越大。


总结

机器视觉是指计算机科学领域中的一项技术,旨在使机器能够“看到”和理解视觉输入。通过使用摄像头或其他传感器,机器视觉系统可以获取图像或视频,并使用图像处理和模式识别算法来提取有用的信息。这些系统可以用于各种应用,例如自动驾驶汽车、人脸识别、物体检测和识别、医学影像分析等。机器视觉是人工智能领域中的重要研究方向之一,它将计算机视觉、机器学习和深度学习等技术相结合,以实现更准确和智能的视觉分析和决策能力。

相关推荐

  1. 机器视觉企业实战

    2024-07-10 10:42:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 10:42:02       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 10:42:02       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 10:42:02       4 阅读
  4. Python语言-面向对象

    2024-07-10 10:42:02       4 阅读

热门阅读

  1. LeetCode每日一题 分发糖果

    2024-07-10 10:42:02       8 阅读
  2. 刷算法Leetcode---9(二叉树篇Ⅲ)

    2024-07-10 10:42:02       8 阅读
  3. 【GC 死亡对象判断】

    2024-07-10 10:42:02       9 阅读
  4. [ABC275A] Find Takahashi 题解

    2024-07-10 10:42:02       6 阅读
  5. 洛谷 P2141 [NOIP2014 普及组] 珠心算测验

    2024-07-10 10:42:02       10 阅读
  6. 微软edge浏览器全解析

    2024-07-10 10:42:02       9 阅读
  7. react根据后端返回数据动态添加路由

    2024-07-10 10:42:02       8 阅读
  8. RedHat运维-Ansible自动化运维基础22-rhel-system-roles

    2024-07-10 10:42:02       7 阅读
  9. 深入浅出:Scikit-Learn基础教程

    2024-07-10 10:42:02       10 阅读
  10. python class

    2024-07-10 10:42:02       10 阅读