【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的发展前景."低头干活,还要抬头看路",写一篇文章简 ...
随机推荐
- 树莓派SSH篇
开启好树莓派后发现一个问题,怎么才可以输入进树莓派里面呢? 一.你需要和我一样准备一个无线(有线)键盘
- JavaScript笔记十
1.正则表达式 - 语法: - 量词 {n} 正好n次 {m,n} m-n次 {m,} 至少m次 + 至少1次 {1,} ? 0次或1次 {0,1} * 0次或多次 {0,} - 转义字符 \ 在正则 ...
- 几行代码轻松搞定python的sqlite3的存取
很简单: 存数据: 1.加载sqlite3驱动(只需一行代码) 2.用驱动执行查询语句(只需一行代码) 取数据: 1.加载sqlite3驱动(只需一行代码) 2.用驱动执行查询语句(只需一行代码) 乍 ...
- selenium常用命令之页面元素定位
WebDriver driver= new ChromeDriver(); <input type="text" id="phone" name=&q ...
- .Net Core 3.0 使用 Serilog 把日志记录到 SqlServer
Serilog简介 Serilog是.net中的诊断日志库,可以在所有的.net平台上面运行.Serilog支持结构化日志记录,对复杂.分布式.异步应用程序的支持非常出色.Serilog可以通过插件的 ...
- 从零开始入门 K8s | 深入剖析 Linux 容器
作者 | 唐华敏(华敏) 阿里云容器平台技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 15 讲. 关注"阿里巴巴云原生"公众号,回复关键词 ...
- Java快速教程步伐
Java基础在Java基础系列文章中,我将说明Java的基础内容,特别是面向对象的相关概念. Java基础01 从HelloWorld到面向对象 Java基础02 方法与数据成员 Java基础03 构 ...
- PHP开发中session无法获取和保存问题解决方法
今天在程序设计中无法在session中获得内容,使用编辑器打开php.ini配置文件,在其中搜索"session.save_path", 把行中前面注释用的";" ...
- unicode和utf-8编码区别
以前使用Python2,一直为中文烦恼,也不知道为什么开头就要声明#coding=utf-8,后来用了Python3,发现就不用这样了,还是想彻底弄懂下这是为什么. 先讲asc码 每个 ASC码占一 ...
- MQTT版本升级过程及源码解析
MQTT版本升级过程及源码解析 首先说一下为什么要写这篇文章呢,在我发现网上对MQTT的文章介绍实在太少了,可能也是使用这个的频率比较低吧!还有对问题的定位以及解决的方式和办法也太少了,所以特意写这篇 ...