#磨染的初心——计算机视觉的现状

【这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣。可以随意传播,随意喷。所涉及的内容过多,将按如下内容划分章节。已经完成的会逐渐加上链接。】

  1. 缘起
  2. 三维感知
  3. 目标识别
    3.0. 目标是什么
    3.1. 图像分割
    3.2. 纹理与材质
    3.3. 特征提取与分类
    3.4. 其它
  4. 目标(和自身)在三维空间中的位置关系
  5. 目标的三维形状及其改变、目标的位移
  6. 符号识别
  7. 数字图像处理

缘起

有一则广为人知的故事,据称它就是计算机视觉的发端,在1966年,MIT的Marvin Minsky让他的本科生Gerald Jay Sussman“在暑假将摄像机连接到计算机上,让计算机来描述它所看到的东西”。这就是人工智能先驱们对“视觉”问题的态度,雄心勃勃又妄自尊大,认为“视觉感知”不过是“人工智能”实现路线上的一个简单步骤,简单到一个本科生用一个暑假的时间就能完成。半个世纪过去了,步履维艰的事实让大家认识到“视觉感知”也许同“人工智能”一样困难。

在卷积神经网络又一次激起人工智能热潮的当下,回望计算机视觉短短五十来年的发展历程,我们就像在重重困难中迷失了一样企图抓住一根救命的稻草一举获得救赎,然而寄希望于一根稻草来挑战造化的神秀注定是徒劳的。不知道是否是因为经受不住失望的打击,在本次热潮当中有些人已然开始实施“精神胜利大法”了,假装“视觉感知”是一个已经解决的问题,开始挑战“图文互转”之类的高峰,开始参与“机器作画”之类的自娱自乐。与其再一次在“视觉感知”的门外游荡或者“自欺欺人”,有必要将磨染的初心捧出来,拂拭拂拭,将向着初心的工作挑拣出来,将无用的包袱丢掉。

还是从那则故事入手,“让计算机来描述它所看到的东西”蕴含了计算机视觉“初心”的全部,人类是人类自身的仰慕者,我们要做的不过是要让计算机像人一样去“看”——得出场景的完整理解。这个“初心”也是将计算机视觉同数字图像处理区别开来的关键目标。要落实到代码上,这个目标仍然过于笼统,对其进行拆分势在必行。首先应该问一句,当我们观察我们生存的环境时,感知到了什么? 通过直觉可以给出回答——目标、目标(和自身)在三维空间中的位置关系、目标的三维形状及其改变、目标的位移、符号。给出这个回答并非是毫无困难的,人类智能所抽象出来的高层次概念会带来严重的干扰,可以想见,即使是这个回答仍然难以获得广泛的认同。但是我并不想陷入计算机视觉基本任务的辩论,那将会是毫无意义并且浪费篇幅的。

在此笔者将结合这五项人类感知到的要素梳理业已提出的算法和他们所基于的假设,并阐明这些算法在达成相应理解中的地位,更重要的要指出在达成“得出场景的完整理解”这个目标过程中的缺失。这五项感知到的要素中的中间三项是和三维感知直接相关的,时至今日三维感知虽然获得了不少进展,但是关于“视觉感知”的研究并不会等到三维感知成熟才开始。因此目前关于视觉感知的成就都是在二维图像上取得的。

早期的研究者或许尝试主要通过形状和结构特征来识别目标,提出了很多图像分割的方法,进而在纹理描述和分析方面也做了不少探索。但是纹理描述和分析及图像分割方面的进展甚至不足以产生人能够进行识别的图斑形状,另外形状和结构的描述也没有取得有价值的成果。最后目标识别走向了特征提取和监督分类的路线。

与“目标(和自身)在三维空间中的位置关系”密切相关的就是SLAM了。SLAM中的定位任务主要是为了确定自身的位置,也并不是所有的方案都依赖视觉数据实现的定位。而制图任务与其说是制图毋宁说是三维数据采集,因为制图任务的成果只是大片的三维点云,没能识别到其中的目标,也没有将目标标注到三维空间中。要想真正感知到“目标(和自身)在三维空间中的位置关”,似乎依赖于目标识别的解决。

到目前为止“目标的三维形状及其改变”还没有被定义为计算机视觉中的任务,与此相关的内容则是以其子任务的形式出现的,比如表情识别、姿态识别。因为目标没能被识别并分割出来,形状特征也无法描述,表情识别、姿态识别也采用了特征提取和监督分类的方法。

“跟踪”是感知“目标位移”的解决方案,目前还停留在二维的层面,跟踪到的是投影后的二维轨迹。在目前的解决方案中“光流”法运动趋势估计起到了至关重要的作用,其次就是聚类、特征提取、特征匹配。也就是目前的跟踪并不是目标层面的,而是特征层面的和图斑层面的。

“符号识别”是否应该纳入计算机视觉的范畴就笔者个人来说也是有疑问的,符号是人类智力创造的抽象产物,似乎不应纳入计算机视觉的范畴。如果不纳入,那么计算机视觉应该为后续符号识别算法提供什么样的输入呢?另外符号识别和目标识别是割裂的还是逐渐过渡的?平面美术作品、儿童简笔画、象形符号、文字等不同抽象程度的对象识别有什么区别呢?虽然这些问题都还没有答案,印刷字符识别已经达到很好的效果了。当然,采用的也是特征提取和监督分类的方案。

目前数字图像处理与计算机视觉作为两个独立的学科已经被普遍接受了,但是所有的计算机视觉研究者同时也是数字图像处理的研究者,数字图像处理的成果在计算机视觉方面发挥了很大的作用。笔者也许会挑一些与计算机视觉强相关的数字图像处理的算法进行介绍。

【CV现状-1】磨染的初心——计算机视觉的现状:缘起的更多相关文章

  1. 【CV现状-3.3】特征提取与描述

    #磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...

  2. 【CV现状-3.2】纹理与材质

    #磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...

  3. 【CV现状-3.1】图像分割

    #磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...

  4. 【CV现状-3.0】"目标"是什么

    #磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...

  5. 【CV现状-2】三维感知

    #磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...

  6. 计算机视觉--CV技术指南文章汇总

    前言  本文汇总了过去本公众号原创的.国外博客翻译的.从其它公众号转载的.从知乎转载的等一些比较重要的文章,并按照论文分享.技术总结三个方面进行了一个简单分类.点击每篇文章标题可阅读详细内容 欢迎关注 ...

  7. 计算机视觉(Computer Version,CV)、模式识别、人工智能

    一.计算机视觉 Divid Marr将计算机视觉系统的开发问题归纳为3个要素: (1)数学理论 考虑数学计算层面的目标及可以引入的合理约束条件. (2)描述和算法 重点解决计算机视觉中的输入输出的数据 ...

  8. 入职9月,旷视孙剑106分钟讲述CV创业科研的5大区别

    雷锋网按:本文为旷视科技首席科学家孙剑日前在 CCF-ADL上做的题为<如何在大公司和创业公司做好计算机视觉研究>的分享,主要介绍了近期计算机视觉的发展现状,ResNet基本原理和设计,旷 ...

  9. 一文分析 Android现状及发展前景

    Coding这些年,一直低头"搬砖",好像从未仔细审视过Android的发展现状,亦未好好思考Android的发展前景."低头干活,还要抬头看路",写一篇文章简 ...

随机推荐

  1. 【论文阅读】Binary Multi-View Clustering

    文章地址:https://ieeexplore.ieee.org/document/8387526 出自:IEEE Trans. on Pattern Analysis and Machine Int ...

  2. Dart Learn Notes 02

    Functions Dart是一门面向对象的语言,所以即便是方法也是一个对象,它的类型是Function. 这就意味着方法可以指向变量,也可以作为方法中的参数供其他方法使用.甚至可以让 一个类作为一个 ...

  3. day 42 JavaScript 基础知识部分

    一. JavaScript存放位置 <script type="text/javascript" src="JavaScript文件路径">< ...

  4. 个人收藏--未整理—C# 上传下载文件

    Winform下载文件 /// <summary> /// 下载文件 /// </summary> /// <param name="URL"> ...

  5. Scrapy持久化存储-爬取数据转义

    Scrapy持久化存储 爬虫爬取数据转义问题 使用这种格式,会自动帮我们转义 'insert into wen values(%s,%s)',(item['title'],item['content' ...

  6. builtins内建模块

    builtins模块 为啥我们没有导入任何模块就能使用len(),str(),print()...等这么多的函数? 其实在我们运行python解释器的时候,他会自动导入一些模块,这些函数就是从这些地方 ...

  7. exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp

    6月22日任务 14.4 exportfs命令14.5 NFS客户端问题15.1 FTP介绍15.2/15.3 使用vsftpd搭建ftp 14.4 exportfs命令 当我们修改nfs的配置文件e ...

  8. centOS7 可以ping通主机不能访问外网

    前言: 突然打开自己前不久在虚拟机安装的centOS7系统,发现以前可以来联网突然不能访问外网,在网上看了很多方法,终于解决 问题描述: 连上网,但是ping 不同外网,如ping www.baodu ...

  9. 图的存储结构与操作--C语言实现

    图(graph)是一种比树结构还要复杂的数据结构,它的术语,存储方式,遍历方式,用途都比较广,所以如果想要一次性完成所有的代码,那代码会非常长.所以,我将分两次来完成图的代码.这一次,我会完成图的五种 ...

  10. 静态链表-C语言实现

    1.静态链表是在没有指针的编程语言里对链表的一种实现2.主要是用数组模拟指针3.在这里,使用结构体使数组的每一个空间可以存储一个数据元素(date)和一个游标(cur),游标的作用相当于链表的指针域, ...