9月12日上午,由中国工程院信息与电子工程学部主办,浪潮集团承办的AICC 2018人工智能计算大会在北京举行。会上,中国工程院院士、北京大学教授高文做了《类脑视觉处理》的演讲。
高文教授分析了生物视觉系统进化历史。他说,生物视觉系统进化了几亿年,但人工视觉系统才进化了几十年,我们需要一场革命把现在的摄像头颠覆掉,按照类脑的方式做一个新的智能视觉系统。未来怎么把数字视网膜和类脑数字视网膜这两种技术变成芯片做到系统里面装到摄像头后面,这是给我们社会和企业界的挑战,我希望这天早点到来。
中国工程院院士、北京大学教授 高文
以下为高文院士演讲实录:
今天我讲讲和人工视觉有关的问题,我们现在需要一场革命,把现在的摄像头颠覆掉,按照类脑的方式做一个新的摄像头,做一个新的视觉系统,这个就是我想跟大家分享的。
为什么我们要考虑类脑?因为生物的视觉系统经过几亿年的进化现在做得比较合理,而我们现在人工的视觉系统才进化了几十年,和人类和生物比起来确实非常小儿科,如果我们想要快速赶上人的视觉系统的功能就要向生物学习。我们回顾一下生物进化系统整个进化的简单历史,看看计算怎么通过学习生物系统进化的优点达到我们希望达到的境地,我们把这个镜子叫做数字视网膜。
如何做一个类脑系统?
现在很多场合讲数字大脑、城市大脑、企业大脑,各种各样的脑都有,把很多数据从传感器收集上来以后送到云端,云再通过计算进行决策,这就是一个大脑。看起来有点像人的大脑,比如现在视频监控在城市里安了各种各样的摄像头,马路上的、停车口的、公共场所里的,这些摄像头抓到数据以后都存到不同的地方,最后汇总到云端,希望云端能进行计算,这样一个系统就是我们今天所谓的城市大脑的感知与计算系统,这个系统里各种各样不同的摄像头,摄像头有的做视频编码,抓到视频编码以后送回去,有的做一些车牌号识别、人的识别,不管怎么样都把这个通过一个网络送到云端,云端要么就是做存储,前面是做存储放存储器,要么是当你需要的时候把存的东西解开,在里面进行分析和识别。
我们希望将来能通过一个类似于人类大脑的功能体把它替代掉,使得系统更智能一点。当然这个系统要考虑到任何一个城市都不是几个摄像头,既不是两个摄像头也不是二十个摄像头,可能是几万个几十万个,这么大规模的摄像头网络系统对于脑应该怎么布置,怎么做的智能化,这是非常有挑战性的事情。要想做好这件事,眼睛和脑要协调工作,而不是现在眼睛是眼睛脑是脑。
人脑做得好,为什么人脑做得好?因为人脑有非常严密的分工,在长期进化过程中不同的部分干不同的事,最后形成决策又统一形成决策,看起来非常复杂但是又非常协调,很多科学家都在想法做出一些计划来仿真模拟人的大脑,比如前几年欧洲专门有一个人脑计划,最近我们国内也有相应的各种各样的计划,都是希望云系统将来能像大脑一样工作。要想把眼睛和脑统合起来工作,现有的系统有摄像头,摄像头负责图像的采集,有的摄像头可以做一点识别,大多数摄像头不能做识别,识别的任务就是要到云端进行特征的提取进行模拟识别进行场景识别,主要工作都是在无处不在的云里。
如果做成一个类脑,是不是这样做就行?很显然不行,如果真的做成一个类脑的系统,有很多感知、建模的工作要先做,不是什么东西都扔到云上让云去算就行了,而是整个过程要考虑哪些工作应该由摄像头来做,哪些工作应该由摄像头到云之间的网络由哪些部件来做,哪些东西可以在云里面做,云里又进行特征提取特征汇总,有些做模式识别,有些进行上下文理解,所有这些林林总总我们都可以用今天的深度学习。现在的人工智能确实给我们做类脑这个工程提供了非常好的工具。
刚才我就在说现在的人工视觉系统进化的级别非常低,其最主要的视觉传感器是摄像头,摄像头的工作机理对一个自然场景通过均匀采样的方式获得数据,它要一帧一帧的把图像数据采集下来,采集数据的时候这一帧所有数据是等步长的完全平均的,每一个像素和像素之间的距离是相等的,每一个像素所用的比特数是相等的,这是完全均匀的采样。如果你要是视频1秒钟要采20帧、25帧,采多少帧是均匀的,采20帧是1/20秒采一次,这种方式从工程上来讲是最简单最好实现的方式,但是这种方式给我们带来大量的问题,有很多数据都是冗余的。
我们今天为什么要进行视频压缩?就是因为我们这种采样方式使得你必须要对没有用的数据进行压缩,能压缩多少,现在一般的技术能压缩到1/300,最好的技术能压缩到1/600,现在做视频压缩的希望下一个目标能达到1/1000,空间上的均匀采样和时间上的均匀采样带来了大量的数据冗余,这些冗余是没有用的可以压缩掉的,但是目前即使压缩了这个数据被推到云端以后云端拿到的还是没有任何需要注意的一堆数据,现在的云在做非常低级无效的工作,大概有90%几的工作都是没有效的,只有百分之几的工作是有效的,我们有没有办法让云端做的工作绝大多数有效?这是我们的目标。
生物视觉的进化历程
看一下整个生命进化的历史,寒武纪之前是一个混沌时间,从寒武纪开始,进入古生代以后生命慢慢的像今天我们看到的正在进行演化。从寒武纪开始生物界开始分流了,开始有了鱼,慢慢从鱼到了中生代,到侏罗纪时代,那个时代地球非常温暖,植物非常高大,各种各样的生物非常多,这个分化慢慢造成了我们今天通过优胜劣汰留下的很多生命。但是整个哺乳动物的生命形成中,侏罗纪是最关键的时代,那个时代形成的东西,今天如果那个物种留下了,那么它的系统就留下了。所以我们说哺乳动物的演进形成实际是侏罗纪时代的产物。侏罗纪时代是没有人的,那时候有龙,天上飞的恐龙,陆地上跑的恐龙,水里游的恐龙,一直到新生代第四级,这时候大概在300万年前左右,鱼类慢慢有了鱼类的分支,最后变成了陆上的爬行动物,从陆上的爬行动物又开始分化,最后有一个分支变成了猴子,它再进行分化,最后有一个分支变成了人。
其实人类的视觉系统大概在300万年前形成,我们今天的眼睛和脑的分工形成都是300万年前形成的。整个脊椎动物演进进化的历史都是从最早先的根本没有眼的古生物慢慢到对光有感光蛋白的生物,到形成了眼睑,最后慢慢形成了两层的眼睛的神经原,到形成了视网膜的三层神经原,一直到真正高级的脊椎动物。从最早先的眼睛其实只是一个点,眼睛的出现是非常神奇的事情,在蛋白构成的生物里突然有一个点能够感光是很神奇的,慢慢的,眼睛最后进化成了三角涡虫,本身头部就带着眼睛,这是进化的产物。
眼睛的进化从最早先的感光细胞到后来简单的眼睛、稍微复杂的眼睛,稍微复杂的眼睛里面是充水的,充水的洞被密封起来灌上了细胞液,细胞液又造上了晶状体有角膜一直到了今天的眼睛,演化的进化历史是非常长久的历史。有的生命体眼睛是另外的样子,有的是我们这个样子,有两个目的驱动了眼睛的出现,一个是觅食,生物体要觅食,要用眼睛去看食物在哪里。第二是逃生,要看天敌在哪里,天敌来了要跑掉才能存活下来。为了觅食和逃生,眼睛开始进化。从最早先感光的眼睛只是一个蛋白体,慢慢有多个蛋白体,不同的生命体采用了不同的进化路径,有的从最早先的单个慢慢越来越复杂,复杂的时候,有的用多个简单的眼,有的用单个复杂的眼。我们知道昆虫里蜜蜂和苍蝇的眼睛,还有其他很多昆虫是复眼,每个眼睛非常简单,但是所有眼睛组合在一起就能够非常容易看得见运动的物体,越接近的时候刺激越强烈。比如你要弄一个东西去晃苍蝇蜜蜂它立刻就飞了,就是因为它的眼睛是这样的结构。因为它每个眼睛很简单,所以它在发现天敌方面是有优势的,但是它在发现食物方面没有优势,所以很多昆虫最后对食物的发现变成了使用嗅觉而不是用眼睛完成。
鱼是另外一条路线,我们都是从鱼进化来的,鱼的眼睛早期的时候也是为了觅食和躲避天敌,鱼的眼睛根据鱼的形状有的是在两侧有的是在头上,都是为了这两个目的。鱼眼睛在进化过程中神经系统比我们人的神经系统来得更简单一点,但是控制比我们稍微复杂一点,鱼眼睛有的时候会突然翻白,那是它要看东西的时候有的动作。
鸟的眼睛也是根据不同的进化路径,进化的路径不一样,因为鸟本身个子比较小,所以需要节省最多的能量。鸟的眼皮一样和我们一样有保护,但是眼睛更多的动作是靠脖子在动,鸟和我们的路径是比较接近的,因为它在进化过程中由于个体等方面的约束,鸟的眼睛的功能看远视是非常厉害的,看近的不见得有人那么厉害,对于细节的分辨不如其他高级的脊椎动物。高级的脊椎动物整个生物系统的眼睛就是这样的,有两只眼睛,一个负责信息传导的,然后是脑子,负责把前面的信息到后面进行处理以及对以往的知识进行存储,这是整个生物的视觉系统。眼睛视觉通路和大脑视力是三个最主要的部分。
人类比其他动物更高级的地方是它对于感知对于高级的行为要比其他动物更丰富一点,所以整个脑区的分工也更详细,关于视觉在脑区当中很多部分都有不同的视觉眼,有V1眼、V2眼一直到V8眼,不同的部分负责不同的行为。这些眼合作起来完成今天所有对视觉的分析、理解,从视网膜开始到大脑相应的地方。有人会问,这个人的人脸到底放在大脑的什么部位?这个复杂的体系从视网膜接到光刺激形成一个图像以后,整个图像的形成只有50毫秒就形成了,但是它会花不同的时间送到不同的部位,最后产生了不同的效果。
这是整个生物的视觉系统进化,生物系统比较关键的是视网膜、信息通道和脑区,这是三个非常关键的。我们能从生物系统里学到如果想构造一个比较理想的人工视觉系统或类脑视觉系统,需要有眼睛,我们现在有摄像头,没有问题,但是生物体的眼睛有很多感知功能,这是今天的摄像头没有的。生物里面有信息传输通道,它在信息传输通道中是进行信息处理的,但是摄像机网络的传输通道不负责任何信息的处理,就是单纯的把东西送过去,我们的大脑视野做图象识别的时候有自顶向下和自底向上的过程,我们今天的云平台基本就是一个方向,也是我们想学生物系统需要改进的地方。
人工视觉系统的革新之路
今天的摄像头网络或监控系统因为是等步长采样带来了大量的时间和空间的冗余,为了传输省事把它压缩了送到了云端,但是云端接收的所有信息都是没有进行处理的,都是原始数据,把所有任务都丢给云是非常错误的做法。这就是问题的根源,人看一个东西之所以这么高效,我们会快速发现目标一直跟着它看,我们并不是把所有的像素都送到大脑里去处理,而是从视网膜到传输通道到脑一起联合工作,盯死一个目标。这个性能怎么搬到今天的摄像机系统里,这是我们面临的问题。
打个比喻现有的摄像头加上人工视频系统相当于生命进化过程中哪个阶段,我可以告诉你它相当于是5.4亿年前的阶段,非常古老的系统。这个阶段显然是我们所不能忍受的,今天有这么强的计算能力,我们希望整个眼睛视频系统也能跟得上这个进度,做出一个理想的视觉系统,为了这个,我们必须找到革命的方式把现在的摄像头系统颠覆掉。
怎么颠覆呢?我提出了两个可能的技术路径。第一是数字视网膜技术路线,除了常规的视频编码以外还要做特征编码、组块编码、时空编码,时空编码是常规的。这是基于现有系统,摄像头不需要换,摄像头后面的芯片换掉,芯片上做很多事最后就能达到这个功能。最理想的是连摄像头前面采集的功能模式都换掉,加上一个助力采样我们叫做脉冲工作方式,如果那个做到了就和人眼对于目标发现非常接近了,这是两个系统。和这个相对应的,人类从婴儿开始发育的过程中一个正常人可以看东西、发现目标、和别人进行交流,但是在整个进化当中会有一些人发育得不完全,会得一些病,有的小孩得了自闭症,有的小孩得了癫痫病,有的小孩得了弱视症,这是一些什么毛病?相当于今天系统的什么样子?因为婴儿的神经系统发育一共有10的11次方这么多个神经原,但是所有和神经原联系的有10的14次方,神经原是计算节点,10的14次方个网络连接到10的11次方这么多的计算单元,这里头缩减哪里去了?我们叫剪切剪辑修剪。这个修剪是小孩在发育过程中通过学习不断完成的,0到2岁这段时间婴儿的视觉网络、听觉网络慢慢形成了,眼睛视网膜后面和耳蜗后面的神经生出来的时候是全连接,慢慢随着不断学习进化,有一些被剪掉了,只留下那些有用的增强变粗了,这就开始正常工作了,这是正常的。
1到6岁婴儿完成的是语言网络的形成,语言网络形成以后就可以讲话可以使用不同的语言,这段时间如果发生了疾病或者环境和整个进化不匹配的话就会生病。自闭症是什么毛病呢?刚才在神经网络修剪的时候自闭症是剪得不够、连接太多,他可以对每个细节看得很细但是没有注意,所以他没有和正常人进行沟通。癫痫症是剪过分了,稍微有点刺激马上就发放,点火发放然后就疯掉了。弱视是两个眼睛看东西的时候,我们平时在发育的时候两个眼睛是竞争的,互相配合着做,弱视是老用一个眼睛看东西,那条通道就非常通畅。正常人的视觉,当你给他左右眼两个不同的条文刺激的时候,他通过视网膜皮层的单眼细胞双眼细胞进入到意识里是一个竞争关系,左右眼虽然看着是不一样的,但是最后在脑子里形成意识的你可能看的是两个之一或者两个都模糊重叠,这是正常的视觉通道。弱视是有一条视觉通道的发育不完整,有一条是正常的有一条变成虚线了,不完整这条当你给它刺激之后以后那条主导眼会把东西送过去,非主导眼看不见,这个是有问题的,这个毛病使得这个小孩长大以后深度感觉比较弱。
我们今天的视觉系统有两个毛病,第一个毛病是自闭症,今天的视觉系统送出去的信息是完完整整的推回去了,没有进行网络的修剪,今天的网络就是自闭症的城市大脑网络。第二个毛病是弱视,做边缘计算摄像头上识别出来这个车牌号是多少,是张三还是李四,某些摄像头功能特别强的时候,弱视会丢一些东西,所以今天的网络两大特点,自闭症弱视,要想改变这个问题怎么办呢?就是刚才我说的我们要把它颠覆掉。怎么颠覆呢?首先我们设计一个新的体系,数字视网膜,要进行编码、特征编码、合优化,达到软件可定义,软件可定义完成什么功能呢?是视觉通道的功能,视觉通道通过软件定义的方式修改修剪的东西,这样就使得前面特征进来了以后通过视觉通道把不那么重要的信息修剪掉最后再送到云端进行识别,这是一个基本的数字视网膜的概念。这个概念要想实现,最关键的两块东西,一个是特征编码,一个是软件可定义,这是最关键的,视频编码原来就在。软件可定义就是要做视觉通道上的修剪。
这是一个弱视的网络,为了做这件事,这些年国内国外很多行当内的专家都在单向基础上做这些工作。高效数字编码我们提出了场景建模的方式,使得编码效率最高,已经变成了国家标准。特征编码,视网膜上抓的东西把有用的东西识别性的东西,不是识别结果,把它封装起来送到云端,准备做识别,我们把这个叫特征编码,有一套编码方式。有了视频编码和特征编码,这两个编码要协调,我们叫做联合优化,所以要做一个联合优化技术对它进行优化。今天,王恩东院士对硬件怎么实现有兴趣,刚才是新的数字视网膜体系有很多实现方式,最简单的就是现有的SOC加上FPGA实现,中期的可以用GPU实现,远期的我们希望做一些专用的ISP实现,这都需要团队投入来做,现在已经有一个团队在做,这是用英伟达的GPU做了数字视网膜的方案,现在已经在做小批量的实验,这个实验是在济南浪潮园区做。
第一阶段慢慢一段时间以后就是一个革命性的第一步工作,第二步工作是类脑数字视网膜,这是北京大学王教授的团队在采用脉冲的方式做的数字视网膜的实现,为什么是脉冲的方式?脉冲阵列编码可以使送进去的信息不是等长的采样而是只有有效的信息才被往后送,这样就可以进行比较高效的处理,传统的东西都是有用的,这个方法已经做了很简单的最初期的实验,用一颗400×200分辨率的芯片做工作,这是用这个芯片做的演示系统,转得非常快,一分钟转7200转的光盘顶上有个字母A,左边是用摄像头拍的东西,人的肉眼根本分辨不出来字母A,但是用他这套系统能看得清楚数字A在转。这是要想做一个对现有的视频系统进行改造改革的话通过数字视网膜是一个方式,我比较理想化,中间的演进过程是不是一定这样,要看工业界花多大成本多大气力做这个事。
现在视觉计算要做到类脑视觉计算可以通过数字视网膜或类脑数字视网膜这两种技术路线去实现。在数字视网膜方面现在有很多技术已经可以做了,未来怎么把刚才说的这两种数字视网膜变成芯片做到系统里面装到摄像头后面,这是给我们社会和企业界的挑战,我希望这天早点到来,谢谢大家。