【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的发展前景."低头干活,还要抬头看路",写一篇文章简 ...
随机推荐
- Java基础语法(二)
目录 一.强类型语言 二.数据类型分类 1.基本数据类型 整数类型 字符类型 浮点类型 布尔类型 2.引用数据类型 三.基本类型转换 自动类型转换 强制类型转换 四.表达式类型的自动提升 承接上篇,谈 ...
- 2019-11-28:ssrf基础学习,笔记
ssrf服务端请求伪造ssrf是一种由恶意访问者构造形成由服务端发起请求的一个安全漏洞,一般情况下,ssrf访问的目标是从外网无法访问的内部系统,正式因为它是由服务端发起的,所以它能请求到它相连而外网 ...
- Selenium WebDriver 中鼠标事件
鼠标点击操作 鼠标点击事件有以下几种类型: 清单 1. 鼠标左键点击 Actions action = new Actions(driver);action.click();// 鼠标左键在当 ...
- 使用FastReport报表工具生成图片格式文档
之前我在随笔<使用FastReport报表工具生成报表PDF文档>介绍过使用FastReport.Net来根据报表模板进行生成PDF,以及随笔<使用FastReport报表工具生成标 ...
- Haproxy安装部署文档及多配置文件管理方案
一.部署安装 二.软件配置 三.系统服务 四.日志配置 五.小结 文章目录 最近我在负责一个统一接入层的建设项目,涉及到 Haproxy 和 ospf 的运维部署,本文分享一下我在部署 Haproxy ...
- 2019-2020-1 20199304《Linux内核原理与分析》第八周作业
第七章 Linux内核如何装载和启动一个可执行程序 一.知识点 1.ELF(Executable and Linkable Format)概述: "目标文件"指编译器生成的文件,& ...
- 使用 SecureRandom 产生随机数采坑记录
公众号「码海」欢迎关注 背景 我们的项目工程里经常在每个函数需要用到 Random 的地方定义一下 Random 变量(如下) public void doSomethingCommon() { Ra ...
- python中68个内置函数的总结
内置函数 内置函数就是python给你提供的, 拿来直接用的函数, 比如print., input等. 截止到python版本3.6.2 python一共提供了68个内置函数. #68个内置函数 # ...
- DateTime格式转换部分介绍
DateTime与字符串转换: DateTime()与转换为字符串主要依靠DateTime().ToString(string format) 函数,以我的理解,参数format大体分为单个字母和多个 ...
- volatile在外设寄存器基地址定义时的作用
volatile,作用就是告诉编译器不要因优化而省略此指令,必须每次都直接读写其值,这样就能确保每次读或者写寄存器都真正执行到位.——野火