Marr的视觉计算理论
Marr的视觉计算理论立足于计算机科学,系统地概括了心理物理学、神经生理学、临床神经病理学等方面已取得的所有重要成果,是迄今为止最为系统的视觉理论。Marr 的视觉计算理论虽然在细节甚至在主导思想方面尚存在大量不完备的方面,许多方面还存有许多争议,但至今为止仍是广大计算视觉研究人员接受的基本框架。计算机视觉这门学科的形成,应该说与这一理论框架有密切的关系,下面我们从几个方面来描述这一理论框架。
Marr 从信息处理系统的角度出发,认为视觉系统的研究应分为三个层次,即计算理论层次、表达(representation)与算法层次、硬件实现层次。
计算理论层次要回答系统各个部分的计算目的与计算策略,亦即各部分的输入输出是什么,之间的关系是什么变换或者具有何种约束。Marr 对视觉系统的总的输入输出关系规定了一个总的目标,即输入二维图像,输出是由二维图像"重建"(reconstruction)出来的三维物体的位置与形状。Marr 认为,视觉系统的任务是对环境中三维物体进行识别、定位与运动分析,但这仅仅是一种对视觉行为(behavior)目的性定义,而非计算理论层次上的目的性定义。三维物体千差万别,应存在一种计算层次上的一般性"目的"描述,达到了这一"目的",则不管是什么具体的物体,视觉任务均可完成。Marr 认为,这一"目的",就是通过视觉系统,重建三维物体的形状和位置。而且若每个时刻都能做到这一点,那么运动分析也可以做到。对视觉系统的各个层次与模块,Marr 也初步给出了计算理论层次上的目标。
对于表达与算法层次,视觉系统的研究应给出各部分(模块)的输入、输出和内部的信息表达,以及实现计算理论所规定的目标的算法。算法与表达有关,不同的表达方式,完成同一计算的算法会不同,但 Marr 认为,算法与表达是比计算理论低一层次的问题,不同的表达与算法,在计算理论层次是可以相同的。最后一个硬件层次,是要回答"如何用硬件实现以上的算法"。
区分上述三个不同层次,对于深刻理解计算机视觉与生物视觉系统,以及它们之间的关系是大有裨益的,例如,人的视觉系统与目前的计算机视觉系统在"硬件实现"层次上是截然不同的,前者是极为复杂的神经网络,而后者是目前使用的计算机,但它们可能在计算理论层次上具有完全相同的功能。
目前的计算机视觉的研究工作主要集中在前两个层次上,即计算理论,表达于算法层次,对于硬件实现,目前只有比较成熟的部分,如低层次处理中的噪声去除,边缘抽取;对于简单二维物体识别及简单场景下的视觉方法,已有专门芯片或其它并行处理体系结构方面的研究与试验产品;从系统上构造一般的视觉系统,虽有一些尝试,但一般并不成功。
Marr 认为视觉是一个信息处理过程。这个过程根据外部世界的图像产生对观察者有用的描述。这些描述依次由许多不同但固定的、每个都记录了外界的某方面特征的表象(representation)所构成或组合而成。一种新的表象之所以提高了一步是因为新的表象表达了某种信息,而这种信息将便于对信息作进一步解释。按这种逻辑来思考可得到这样的结论:即在对数据作进一步解释以前我们需要关于被观察物体的某些信息,这就是所谓的本征图像。
然而,数据进入我们的眼睛是要以光线为媒介的。灰度图像中至少包含关于照明情况、观察者相对于物体位置的信息。因此,按 Marr 的方法首先要解决的问题是如何把这些因素分解开。他认为低层视觉(即视觉处理的第一阶段)的目的就是要分清哪些变化是由哪些因素引起的。大体上来说这个过程要经过两个步骤来完成:第一步是获得表示图像中变化和结构的表象。这包括检测灰度的变化、表示和分析局部的几何结构、以及检测照明的效应等处理。第一步得到的结果被称为初始简图(primal sketch)的表象;第二步对初始简图进行一系列运算得到能反映可见表面几何特征的表象,这种表象被称为二维半(2.5 Dimension,意味着部分的,不完整的三维信息描述)简图或本征图像。"计算"的语言讲,就是重建三维物体在观察者为中心的坐标系下的三维形状和位置,当人眼或摄像机观察周围环境时,观察者对环境中的三维物体最初是以自身的坐标系来描述的。另外,我们只能观察到周围环境物体的一部分(另一部分是物体的背面或被其它的物体所遮挡的部分)。这样,重建的结果是以观察者坐标系下描述的部分三维物体形状,称为二维半描述。这一阶段包括由立体视觉运算提取深度信息,根据灰度影调、纹理等信息恢复表面方向,由运动视觉运算获取表面形状和空间关系信息等。
这些运算的结果都集成到本征图像这个中间表象层次。因为这个中间表象已经从原始的图像中去除了许多的多义性,是纯粹地表示了物体表面的特征,其中包括光照、反射率、方向、距离等。根据本征图像表示的这些信息可以可靠地把图像分成有明确含义的区域(这称为分割),从而可得到比线条、区域、形状等更为高层的描述。这个层次的处理称为中层视觉处理(intermediate processing)。
二维半描述是不够的,事实上,从各种不同角度去观察物体,观察到的形状都是不完整的。人脑中不可能存有同一物体的从所有可能的观察角度看到的物体形象,以用来与所谓的物体的二维半描述进行匹配与比较。因此,二维半描述必须进一步处理以得到物体的完整的三维描述,而且必须是物体本身某一固定坐标系下的描述,这一阶段称为第三阶段,即三维阶段。Marr 视觉理论中的这一阶段的表象层次是三维模型,它适用于物体的识别。这个层次的处理涉及物体,并且要依靠和应用与领域有关的先验知识来构成对景物的描述,因此被称为高层视觉处理。
Marr的视觉计算理论的更多相关文章
- 计算理论:NFA转DFA的两种方法
本文将以两种方法实现NFA转DFA,并利用C语言实现. 方法二已利用HNU OJ系统验证,方法一迷之WA,但思路应该是对的,自试方案,测试均通过. (主要是思路,AC均浮云,大概又有什么奇怪的Case ...
- 深度学习变革视觉计算总结(CCF-GAIR)
孙剑博士分享的是<深度学习变革视觉计算>,分别从视觉智能.计算机摄影学和AI计算三个方面去介绍. 他首先回顾了深度学习发展历史,深度学习发展到今天并不容易,过程中遇到了两个主要障碍: 第一 ...
- CV/PR:模式识别与图像处理笔试题
汉王高级研究人员(模式识别.图像处理类)招聘试题 原文链接:http://www.cnblogs.com/dongsheng/articles/2793142.html 说明: 可能您的专业并不完 ...
- 【综述】(MIT博士)林达华老师-"概率模型与计算机视觉”
[综述](MIT博士)林达华老师-"概率模型与计算机视觉” 距上一次邀请中国科学院的樊彬老师为我们撰写图像特征描述符方面的综述(http://www.sigvc.org/bbs/thread ...
- 概率图模型(PGM)综述-by MIT 林达华博士
声明:本文转载自http://www.sigvc.org/bbs/thread-728-1-1.html,个人感觉是很好的PGM理论综述,高屋建瓴的总结了PGM的主要分支和发展趋势,特收藏于此. “概 ...
- 深度学习:又一次推动AI梦想(Marr理论、语义鸿沟、视觉神经网络、神经形态学)
几乎每一次神经网络的再流行,都会出现:推进人工智能的梦想之说. 前言: Marr视觉分层理论 Marr视觉分层理论(百度百科):理论框架主要由视觉所建立.保持.并予以解释的三级表象结构组成,这就是: ...
- 自动机理论、语言和计算导论 by John E. Hopcroft
计算理论是计算机应用的基础,理论和应用缺一而不可. ---- 目录 ---- C01 自动机 C02 有穷自动机 C03 正则表达式与正则语言 C04 正则语言的性质 C05 上下文无关文法及上下文无 ...
- 超计算(Hyper computation)模型
超计算(Hyper computation)模型 作者:Xyan Xcllet链接:https://www.zhihu.com/question/21579465/answer/106995708来源 ...
- Linux快速计算MD5和Sha1命令
Linux计算MD5和Sha1的命令 MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法 ...
随机推荐
- JAVA软件配置—环境变量
环境Windows10,JDK,JRE1.8.0_102 鼠标右击左下角Windows图标,选择"系统"项: 点击"高级系统设置"——"环境变量&qu ...
- 读论文系列:Object Detection ICCV2015 Fast RCNN
Fast RCNN是对RCNN的性能优化版本,在VGG16上,Fast R-CNN训练速度是RCNN的9倍, 测试速度是RCNN213倍:训练速度是SPP-net的3倍,测试速度是SPP-net的3倍 ...
- C语言 产生随机数
rand()函数 #include <stdlib.h> int rand(void); rand()是根据某个种子,以特定的算法,计算出一系列数的函数.返回的数在0和RAND_MAX之间 ...
- vue 相邻自定义组件渲染错误正确的打开方式
话不多说看问题: 当封装自定义组件时例如(自定义下拉列表)两个相同的组件在多次v-if变化时偶尔会发生渲染错误,明明赋值正确但是组建中的ajax方法可能返回的数据乱掉,或者其他神逻辑错误. 经过查询发 ...
- dataView 工具栏
option = { tooltip : { trigger: 'axis' }, legend: { data:['最高','最低'] }, toolbox: { show : true, orie ...
- php时间 显示刚刚 几分钟前等
功能示例: $now = time();foreach($sys_res as $k => $v){ $day = intval(floor(($now - $v->system_time ...
- POJ2226(最小顶点覆盖)
Muddy Fields Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10044 Accepted: 3743 Des ...
- android UI之去掉状态栏
Android去掉标题栏和全屏都是件很容易的事情,最常见的有两种方法: 第一:在程序代码中实现 Java代码 this.requestWindowFeature(Window.FEATURE_NO_T ...
- 分布式缓存系统 Memcached 哈希表操作
memcached 中有两张hash 表,一个是“主hash 表”(primary_hashtable),另外一个是“原hash 表”(old_hashtable).一般情况下都在主表中接受操作,在插 ...
- 初识 Julia
Ubuntu 下安装 Julia 环境 sch01ar@ubuntu:~$ sudo apt install julia 安装完成后打开 Julia 的交互式会话 sch01ar@ubuntu:~$ ...