【CV现状-1】磨染的初心——计算机视觉的现状:缘起
#磨染的初心——计算机视觉的现状
【这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣。可以随意传播,随意喷。所涉及的内容过多,将按如下内容划分章节。已经完成的会逐渐加上链接。】
- 缘起
- 三维感知
- 目标识别
3.0. 目标是什么
3.1. 图像分割
3.2. 纹理与材质
3.3. 特征提取与分类
3.4. 其它 - 目标(和自身)在三维空间中的位置关系
- 目标的三维形状及其改变、目标的位移
- 符号识别
- 数字图像处理
缘起
有一则广为人知的故事,据称它就是计算机视觉的发端,在1966年,MIT的Marvin Minsky让他的本科生Gerald Jay Sussman“在暑假将摄像机连接到计算机上,让计算机来描述它所看到的东西”。这就是人工智能先驱们对“视觉”问题的态度,雄心勃勃又妄自尊大,认为“视觉感知”不过是“人工智能”实现路线上的一个简单步骤,简单到一个本科生用一个暑假的时间就能完成。半个世纪过去了,步履维艰的事实让大家认识到“视觉感知”也许同“人工智能”一样困难。
在卷积神经网络又一次激起人工智能热潮的当下,回望计算机视觉短短五十来年的发展历程,我们就像在重重困难中迷失了一样企图抓住一根救命的稻草一举获得救赎,然而寄希望于一根稻草来挑战造化的神秀注定是徒劳的。不知道是否是因为经受不住失望的打击,在本次热潮当中有些人已然开始实施“精神胜利大法”了,假装“视觉感知”是一个已经解决的问题,开始挑战“图文互转”之类的高峰,开始参与“机器作画”之类的自娱自乐。与其再一次在“视觉感知”的门外游荡或者“自欺欺人”,有必要将磨染的初心捧出来,拂拭拂拭,将向着初心的工作挑拣出来,将无用的包袱丢掉。
还是从那则故事入手,“让计算机来描述它所看到的东西”蕴含了计算机视觉“初心”的全部,人类是人类自身的仰慕者,我们要做的不过是要让计算机像人一样去“看”——得出场景的完整理解。这个“初心”也是将计算机视觉同数字图像处理区别开来的关键目标。要落实到代码上,这个目标仍然过于笼统,对其进行拆分势在必行。首先应该问一句,当我们观察我们生存的环境时,感知到了什么? 通过直觉可以给出回答——目标、目标(和自身)在三维空间中的位置关系、目标的三维形状及其改变、目标的位移、符号。给出这个回答并非是毫无困难的,人类智能所抽象出来的高层次概念会带来严重的干扰,可以想见,即使是这个回答仍然难以获得广泛的认同。但是我并不想陷入计算机视觉基本任务的辩论,那将会是毫无意义并且浪费篇幅的。
在此笔者将结合这五项人类感知到的要素梳理业已提出的算法和他们所基于的假设,并阐明这些算法在达成相应理解中的地位,更重要的要指出在达成“得出场景的完整理解”这个目标过程中的缺失。这五项感知到的要素中的中间三项是和三维感知直接相关的,时至今日三维感知虽然获得了不少进展,但是关于“视觉感知”的研究并不会等到三维感知成熟才开始。因此目前关于视觉感知的成就都是在二维图像上取得的。
早期的研究者或许尝试主要通过形状和结构特征来识别目标,提出了很多图像分割的方法,进而在纹理描述和分析方面也做了不少探索。但是纹理描述和分析及图像分割方面的进展甚至不足以产生人能够进行识别的图斑形状,另外形状和结构的描述也没有取得有价值的成果。最后目标识别走向了特征提取和监督分类的路线。
与“目标(和自身)在三维空间中的位置关系”密切相关的就是SLAM了。SLAM中的定位任务主要是为了确定自身的位置,也并不是所有的方案都依赖视觉数据实现的定位。而制图任务与其说是制图毋宁说是三维数据采集,因为制图任务的成果只是大片的三维点云,没能识别到其中的目标,也没有将目标标注到三维空间中。要想真正感知到“目标(和自身)在三维空间中的位置关”,似乎依赖于目标识别的解决。
到目前为止“目标的三维形状及其改变”还没有被定义为计算机视觉中的任务,与此相关的内容则是以其子任务的形式出现的,比如表情识别、姿态识别。因为目标没能被识别并分割出来,形状特征也无法描述,表情识别、姿态识别也采用了特征提取和监督分类的方法。
“跟踪”是感知“目标位移”的解决方案,目前还停留在二维的层面,跟踪到的是投影后的二维轨迹。在目前的解决方案中“光流”法运动趋势估计起到了至关重要的作用,其次就是聚类、特征提取、特征匹配。也就是目前的跟踪并不是目标层面的,而是特征层面的和图斑层面的。
“符号识别”是否应该纳入计算机视觉的范畴就笔者个人来说也是有疑问的,符号是人类智力创造的抽象产物,似乎不应纳入计算机视觉的范畴。如果不纳入,那么计算机视觉应该为后续符号识别算法提供什么样的输入呢?另外符号识别和目标识别是割裂的还是逐渐过渡的?平面美术作品、儿童简笔画、象形符号、文字等不同抽象程度的对象识别有什么区别呢?虽然这些问题都还没有答案,印刷字符识别已经达到很好的效果了。当然,采用的也是特征提取和监督分类的方案。
目前数字图像处理与计算机视觉作为两个独立的学科已经被普遍接受了,但是所有的计算机视觉研究者同时也是数字图像处理的研究者,数字图像处理的成果在计算机视觉方面发挥了很大的作用。笔者也许会挑一些与计算机视觉强相关的数字图像处理的算法进行介绍。
【CV现状-1】磨染的初心——计算机视觉的现状:缘起的更多相关文章
- 【CV现状-3.3】特征提取与描述
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- 【CV现状-3.2】纹理与材质
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- 【CV现状-3.1】图像分割
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- 【CV现状-3.0】"目标"是什么
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- 【CV现状-2】三维感知
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- 计算机视觉--CV技术指南文章汇总
前言 本文汇总了过去本公众号原创的.国外博客翻译的.从其它公众号转载的.从知乎转载的等一些比较重要的文章,并按照论文分享.技术总结三个方面进行了一个简单分类.点击每篇文章标题可阅读详细内容 欢迎关注 ...
- 计算机视觉(Computer Version,CV)、模式识别、人工智能
一.计算机视觉 Divid Marr将计算机视觉系统的开发问题归纳为3个要素: (1)数学理论 考虑数学计算层面的目标及可以引入的合理约束条件. (2)描述和算法 重点解决计算机视觉中的输入输出的数据 ...
- 入职9月,旷视孙剑106分钟讲述CV创业科研的5大区别
雷锋网按:本文为旷视科技首席科学家孙剑日前在 CCF-ADL上做的题为<如何在大公司和创业公司做好计算机视觉研究>的分享,主要介绍了近期计算机视觉的发展现状,ResNet基本原理和设计,旷 ...
- 一文分析 Android现状及发展前景
Coding这些年,一直低头"搬砖",好像从未仔细审视过Android的发展现状,亦未好好思考Android的发展前景."低头干活,还要抬头看路",写一篇文章简 ...
随机推荐
- go中的关键字-go(下)
1. goroutine源码分析 1.1 初始化 go程序的启动流程分为四步 call osinit, 这里就是设置了全局变量ncpu = cpu核心数量 call schedinit make &a ...
- 揭秘String类型背后的故事——带你领略汇编语言魅力
字符串或串(String)是由数字.字母.下划线组成的一串字符.一般记为 s=“a1a2···an”(n>=0).它是编程语言中表示文本的数据类型.在程序设计中,字符串(string)为符号或数 ...
- Flow入门初识
Flow是facebook出品的JavaScript静态类型检查工具. 由于JavaScript是动态类型语言,它的灵活性也会造成一些代码隐患,使用Flow可以在编译期尽早发现由类型错误引起的bug, ...
- linux用户资源控制
/etc/security/limits.conf配置文件详解 这个文件主要是用来限制用户对资源的使用.是/lib64/security/pam_limits.so模块对应的/etc/serurity ...
- linux bash编程之函数和循环控制
函数:实现独立功能的代码段 函数只有在调用时才会执行 语法一: function F_NAME{ 函数体 } 语法二: F_NAME() { 函数体 } 函数的返回值: 默认函数返回值:函数执行状态返 ...
- Xftp工具连接 报错: 无法与 “ 目标IP ” 连接
这里是OpenSSH升级导致 查看sshd_config [root@sdw1 glibc]# vim /etc/ssh/sshd_config 查找后进行修改 [root@sdw1 glibc]# ...
- JavaScript---1.计算机的编程基础
学习内容:编程语言.计算机基础 1编程语言 程序员通过编程语言来控制计算机 编程语言:机器语言(计算机只认识机器语言).汇编语言(直接对硬件操作,指令采用英文缩写的标识符,容易记忆).高级语言(C\C ...
- 4.Netty执行IO事件和非IO任务
回顾NioEventLoop的run方法流程 IO事件与非IO任务 处理IO事件 处理非IO任务 聚合定时任务到普通任务队列 从普通队列中获取任务 计算任务执行的超时时间 安全执行 计算是否超时 总结 ...
- Linux的ftp安装及使用
FTP服务器的安装与配置(Ubuntu)1.查询是否安装vsftpd: rpm -qa |grep vsftpd (rpm的安装:apt-get install rpm) 或者查询当前ftp进程:p ...
- C# 中的委托和事件(一)
引言 委 托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真 是太容易了,而没有 ...