一旦机器人眼超越人眼,机器人物种会发生大爆炸
人的大脑的外部信息,有83%是来自视觉的。
作者介绍了眼睛进化的丰富知识,生物视觉的各种类型、还有鹰眼、兔眼等各种生物眼,介绍了生物视觉的各种应用:机器视觉的路线分析。仿生眼的制作思路。前庭动眼反射就是人的耳朵里的半规管来控制眼睛;颈眼反射,就是脖子的肌肉也能控制眼睛;跳跃型眼球运动等;视觉里程计,是用周边视来做的。也就是说知道自己运动和运动的速度;还有三维重建,眼球运动的重要性,不同脑类型控制视觉的区别特点。
张晓林,中科院上海微系统所研究员,1995年从机器人视觉专业博士毕业后开始研究人眼,目前在开发基于人类眼睛功能的机器人仿生眼。
我估计在一二十年内,机器人会有大量的东西出来,人的生活可能会有非常大的变化,远远超过互联网或手机对生活的影响。
大家下午好,今天我主要讲讲我自己的专业。像我这么一个学理工的人能够被一席邀请讲,我猜是我现在搞的这个专业关注度非常高,并不是因为我做得怎么好。
大约在五亿多年前,在寒武纪的时候产生了一个生物大爆炸时代。也就是说,在一二百万年间,突然间爆发出各种各样的生物。这是什么原因呢?最近有这么个解释,说那个时候动物的脑细胞上长出了一个感光细胞,这个感光细胞慢慢变成了眼睛。一旦有了眼睛以后,生物物种就大量地爆炸。
这个是现代的海洋蠕虫。你看它脑袋上就长了那么一个小细胞,它就对光有感觉。比如一亮的时候它就沉到海底,暗的时候又上来。就这么样的动作,它就比其他的动物有更高的适应能力。
这种海洋蠕虫叫奇虾,因为有了复眼,它马上就成为海洋的霸主。
现在我把眼睛大概分成四类,一类是复眼。复眼是地球上使用最广的,因为所有的昆虫用的都是复眼。蜻蜓的最多,有25000多个小复眼。为什么昆虫用得多呢?因为复眼这种结构,它不太需要处理就能够得到立体的信息。对昆虫来讲,因为它大脑没有那么发达,所以它用复眼来作为眼睛效果非常好。
蜻蜓的眼睛
但是这种复眼的分辨率不够高,所以如果要让它达到人眼这么高精度高水平的视觉,要做一米多的球那么大才能够实现。
还有一种眼睛是比较少见的,只有节肢动物才有。它有八只,前面四个、后面四个,我们称之为单眼。前面这两个是固定的眼睛,视角比较窄,看得比较清楚;后面的两个是视角比较宽的,看得稍微模糊一点。
蜘蛛的眼睛
其实我们人眼也是一样的。人的眼珠上有一个中心凹——看的是清楚的,周边视——看的是模糊的。
还有一种眼睛是章鱼的眼睛。其实章鱼的眼睛和我们人的眼睛已经差不多了,但是它的起源和人完全不一样,所以我们这里专门把它分出来。
章鱼的眼睛
为什么起源不一样呢?所有的脊椎动物都是一样的:它的眼睛反了。也就说最开始做错了,在进化的时候出问题了。它的视觉细胞朝内了,外面的神经在外面出来。没办法,神经又要弯出去,所以这儿出了一个盲点,因为神经要这么走。
可是你看章鱼,它的那个视觉细胞是朝外的,所以它的神经就可以从后面走。人,或者是其他脊椎动物,它不仅神经从上面走,而且血管也是从上面走,所以非常不方便。这其实是不对的,出错了,但是它也进化出来了。
有的时候我在想,进化的时候常常不是强者胜,或者适者生存。比如说你强了,那你在海洋就待下了,就不会进化了。反倒是这些弱者,它被赶走,不得不适应新的环境,不得不变化。
像人也是这样:最开始在海底打不过那种凶猛的鱼类,结果跑到海边、浅滩,然后又跑到湿地,最后又跑到陆地。跑到陆地上又打不过人家,只好爬到树上。就是反反复复地一直这么进化,最后从树上下来之后进化到人。
在寒武纪的时候,其实有很多动物浑身都是眼睛,或者说是三只眼睛、一只眼睛的都有,最后全部进化成两只眼睛,而且这个眼睛是可动的,也就是几乎所有动物的眼睛都是动的。
脊椎动物里面又有四种眼睛。第一种叫食草性动物的眼睛,就像兔子。它的视觉范围非常广, 360度,从前到后都能看得见。它也不需要立体,也不需要看多清楚,只要有谁来抓它它跑就是了,也就是说兔子的眼睛是没有中心凹的。稍微高等点的动物,像狗、猪,其实都有中心凹。所以说兔子你是养不熟的:你养了它以后,它不见得认识你,因为它识别的能力比较差。
到了食肉性动物,它的眼睛就逐渐进化得非常好了。像老虎,它为了捕捉食物要奔跑,它的两只眼睛就逐渐逐渐对到前面来,而且有立体感,随时知道它的距离。这时候它其实不需要视觉太广,因为它没有天敌,不担心别人再来找它的麻烦。
鹰眼在动物里是比较特殊的,它可以在一两千米的高空看到地面的小蛇、小老鼠。人眼有一个中心凹,鹰是两个:一个是深的中心凹,一个是浅的中心凹。它在天空盘旋的时候,用一只眼睛看下面,是用深的中心凹看,会看得非常清楚。这跟我们用望远镜看远处是一样的,范围很窄但看得清楚。看到猎物的时候它开始俯冲,而且是旋着俯冲,因为它是一只眼睛看。快到底下的时候,它选择用两只眼睛了,而且是用的浅的中心凹在看,走直线,一下就抓到下面的猎物。
所以鹰眼的构造和我们人不一样。有些人说鹰的眼睛是最好的,实际上它只不过是看得远而已。但是由于为了看得远,所以它的眼睛非常大,它的眼球有时候比大脑骨都大。所以说它的眼睛就呈锥状形,可动范围非常小,大概只有一两度左右。
正因为可动范围小,所以说像鸟类,主要是鹰或者是鸡,主要是靠头来做控制的。比如说鸡的头非常稳定,你在下面怎么晃它都是稳定的。人的眼睛也是这样,你头往左转,眼睛肯定是往右转的。
我做机器人做了八年,在横滨国立大学做机器人的视觉反馈,当时是工业机器人。后来一个偶然的机会,到了东京医科齿科大学,在那里接触到了人的眼睛,就发现人的眼睛太神奇了。工学上根本想象不到的一些能力,在人的眼睛上都表现出来了。
原来我是做眼睛的,为什么现在中科院脑科学与人工智能卓越中心让我来做人工智能方面的核心顾问呢?其实原因也比较简单,就是因为人的大脑的外部信息,有83%是来自视觉的——这是哈佛大学的一项研究。所以说其实知道了眼睛的功能也就知道大脑了,或者说是大脑越聪明眼睛水平就越高,眼睛越好脑子就可能越聪明。
这个是波斯顿动力的一个机器人,你看它的眼睛是一个激光雷达,现在它还没用,只是为了证明它的控制好,所以深一脚浅一脚只是不倒而已。但是实际上如果你眼睛好的话,走路就会更稳。
现在的机器人或者无人驾驶都是我发出一束光或者是一个红外线、超音波,它能接收反射,然后算出距离。这种视觉有个很大的缺陷,一是它的分辨率不够高,因为它是靠这么转着一秒一秒扫出来的。再一个,它没有纹理、颜色这些信息,所以说它只是知道这种深度感。
这种传感器虽然原理很简单,很容易做,但是将来肯定是会被慢慢淘汰掉的。也就是说,比如我要用激光雷达去看月亮,它是肯定看不到的,肯定反射不回来的。
主动性视觉传感器:激光雷达
现在,慢慢有一些无人驾驶车,或者说是一些主动安全的汽车开始用摄像机了。比如说这是斯巴鲁的两只摄像机,或者说是刚才那个波斯顿动力的机器人,它也用双目。但是大家可以看得到,这些双目还都是固定的,它还没动。为什么没动?因为它们不敢动,一动起来整个视觉就变得非常复杂,所以说现在用摄像机做的这种视觉还不是很稳定,大家还不太敢用。
斯巴鲁Eyesight
其实原因很简单,它要求两台摄像机绝对平行,这个在出厂的时候我们可以校准,一旦出来以后就不敢保证了。因为你磕磕碰碰,或者温度一变它就偏了,那后面的处理效果就完全变了。
我在医科大学做神经研究的时候,当时就把跟人眼神经相关的东西,通过一千多篇论文全部抽出来,然后再根据工学上的这些智能控制、数学的基础,来把它变成数学的模型。这一块大概花了七八年时间。
其实说难也不难,这个东西做完以后是什么样的结果?我把当时一个觉得很吃惊的地方告诉大家,这是控制上的算法,大家不用太在意。这是眼球的旋转角度,这是视网膜的误差,那么这就是一个反馈控制。工学上把这个叫PID控制。
但是和我们工学不一样的地方就是,它有交叉,这是我们当时在工学上不可理解的。也就是说,我们在做机器手臂的时候,一只手臂的动作绝对不能影响另一只手臂的动作。因为一旦影响了,这边动,另一边也跟着动,那是不行的。但是人的眼睛它就这么交叉。
其实后来发现不仅是人的眼睛,人的手也是这样。也就是说我这个手拿一本书来写字,两个手配合得非常好。我这么写、这么动,都能写得很好。但是要是用工学上的机器控制来做是非常困难的。
那么什么原因使得人的两只手、两个眼睛的配合这么协调呢?就是这个交叉。这个交叉产生了什么结果呢?就是我上下相加、相减,它就变成了一个互相不干涉的控制系统。也就是说,我的两只眼球一起动的部分和相对动的部分,是互相独立的,一起动不影响相对动。
左右眼信息交汇(视交叉)
因为这个神经的解析非常有意思,后来我们就开始考虑人的眼球的结构。这是一个朝上看的眼球,一个是叫作中心凹,还有一个是周边视。周边视面积非常广,而且它主要是视杆细胞,有一亿五千多个。而中心视——我们认为看得很清楚很重要的这个地方,它的细胞数只有700多个。
生物学上有一个词叫废用性,就是你不总用的东西它会越来越少,总是用的东西它会越来越多。可见周边视比中心视重要。那这是什么原因?
我后来发现兔子其实没有中心视,只有周边视,这说明周边视比中心视重要是正常的。那么什么地方不一样呢?周边视是把你的图像有意模糊掉,而中心视是把图像更清晰化、尖锐化。模糊掉有什么好处呢?我们后来再做图像处理就会发现,在测量自己的位置、运动、速度,或者测量危险物质突然过来的时候,这种运算速度非常快、效果非常好。
有些得病的人,他的中心视坏了的时候,这些人的反应速度突然变快了,周围东西掉了,他“啪”就能抓住,也就说明余光瞬间的反应速度非常快。但是它可能有的时候不进入大脑,直接进入你的反射系统,所以说这部分在眼球里非常重要。
我们慢慢已经发现到了这一点,所以在做仿生眼的时候,肯定是有两台摄像机:一个是广角,一个是望远。
我们把仿生眼分成三大部分。第一部分叫眼球的结构。也就是说仿生眼的结构一定要和人眼一样,比如说中心视、周边视。同时我们还有眼球运动控制的系统。全世界真正在做这种眼球运动控制,特别是双眼控制的人极少。
人类有大脑和小脑。像有些低等动物,它没有大脑小脑但也是满地跑。原因在哪里,就是没有大脑小脑的时候,它有中脑。这一块叫上丘,它有反射功能。所以说低等动物就用中脑和脑干来控制眼睛,人类用大脑和小脑。
这有什么区别呢?比如说蜥蜴用舌头来打苍蝇的时候,打苍蝇这个动作,它在脑后面是有一个控制信号,在做别的动作的时候,又是另外一个控制信号。就像我们以前让机器人做学习的时候,你让机器人画圆,画的精度可以非常非常高。但是让它画方的时候,它又得重新再学一遍。
但是人不一样,你只要画好圆,方也就会画了。这就是小脑的控制和上丘控制的区别。就是说我在做一件事情的时候,我是把整个系统的反系统做出来。像低等动物,比如说鱼抓起来,它就会摆尾巴,它不会摆别的。但是你要抓一个猫试试看,它什么动作都有。这一点是有小脑和大脑的不一样。
这个是我做的第一个仿生眼,是17年前了,在医科大学做的这个数学模型,觉得这个东西挺有用。当时是用这个模型来做疾病检测的,后来发现这个好用,就花了三年时间做。
因为在医科大学也没有其他的工科人,只好自己做。我就买了一个小机床,又把电路板、软件什么的折腾了半天,把它做出来了。这个看着是很小,但实际上旁边有一个比我人还高的一个装置在控制它。
当时我们觉得很吃惊的就是,给它两个白球,它分不开,要不就看这个,要不就看那个。不像我们工学里面,如果是单独控制它就分开了,这个没有。所以后来我就拿着这个视频到处去宣传。
2003年我就拿着这个回国,想在中国成立一个公司什么的。后来发现我设计的东西没有人帮我做。2003年的时候中国各方面的基础还比较差,现在你到深圳去,就会发现中国发展得非常快,已经超过日本了,你想做什么深圳都有人帮你做。
我们在做了几代机器人以后,现在就打算做一做新的,就是逐渐把那些软件变成这种芯片,做成这种小型的机器人。这台机器就是我们给新松的机器人配的这么一双眼睛,逐渐就越做越小。
由于我搞的研究主要是眼球运动,所以我给大家介绍一下眼球运动有什么特点。人的眼睛和变色龙不一样。人只能盯一样东西,也就是说我的左眼要看这只手指头的话,右眼也肯定看它,不能同时看另一个手指头,这是做不到的。
但人的眼睛又可以对眼,可以反方向走。也就是它既可以反方向走,却又不能分开。当时我到医科大学看到人的眼睛这个特性以后,觉得很不可思议,怎么会做到这个程度。后来用数学模型我就实现了这个功能。
如果说我左右眼看的东西不一样的话,人的大脑就会出现混乱。它每次看的肯定是要相同的,才能有个立体视觉。所以作为立体视觉的话,两只眼睛必须是一起走,而且一定是要调节好的。
这是我们做的一个实验。比如说如果是单独控制的话,你看我遮一只眼,它就停了,再回来找就很不容易。或者是给它两个球的话,它就乱掉了,因为球是完全相同的。
这也是当时机器人为什么不能够把眼睛动起来的主要原因。当时日本本田的机器人叫Asimo,最开始他们做设计的时候两只眼睛是动的,后来又固定住了。
你看我们做了这个模型以后,我随便遮一只眼睛它都能动,而且是一起动。就像咱们人一样,做一个眼睛的手术的时候,另一只眼睛一定要蒙上,否则它就一起动了。
你给它两个球它也不乱。
这也是我们做仿生眼的一个重要的特点。也就是说,桌子上有很多乒乓球在跳,人眼看根本就没有问题。但是你要用机器人,如果是单独控制的话,它就肯定出问题。
这个就是两眼协调运动。这个功能就是相对运动和共同运动是分离的。用这一个目标的话,它就可以对眼。有了这个功能以后,我的眼睛就动了,也能知道距离,走路就不会晃了。因为它通过三角算法就知道距离,我走近它就退,我退它就过来。
还有一个叫前庭动眼反射。前庭动眼反射就是人的耳朵里的半规管来控制眼睛,也就是说,头往左转眼睛自然会往右转。这个功能非常强大,所以我们人跑步、开飞机、开汽车,眼睛都非常稳定。
这种功能是耳朵里的半规管控制的。耳朵里左右两边各有三个环,还有两个耳石。两个耳石是测平移前后上下的,三个环是测三个角度的,就是三维的旋转。有了这个以后,机器人或者人活动就会非常方便、非常稳定。
比如说最开始不用前庭动眼反射的话,我慢慢走可以,一快走它就跑掉了。这是摄像机拍出来的图。
刚才那是单眼的,双眼的稳拍跟单眼的还不太一样。单眼的话,你这么平移它就没办法了,但是双眼就不一样。我知道对方的距离,所以距离不同我的转角不一样。比如说用了我们这个功能,加了陀螺和传感器以后,它就跑不掉了,我怎么走它都不会跑。
还有一个功能叫颈眼反射,就是脖子的肌肉也能控制眼睛。头不动,身体扭的话眼睛也是动的。最容易做实验的就是把兔子头固定,然后拧它的身子,它的眼睛就动。其实芭蕾舞演员或者有些武术运动员,他的动作就用了这个原理。他转身的时候先是身体转,然后头再转。身体转了以后,脖子的信号控制眼睛,让眼睛这么走,然后头再一转,眼睛又回来了,这时候眼睛就固定不动了。要不然你要是身体这么转的话,耳朵里的半规管控制眼睛,眼睛会晃。——我猜测是这样,我们也不好说一定是这样。
这个就是一个机器人,下面是一个鞍马,相当于人骑在马上。那么我的眼睛一定是稳的,这个人就会很稳定,而且这两个图像是在3D电视上看的话就是立体的。就是说不管下面怎么动,我上面仍然能够跟踪,仍然能够切换。
还有一个叫跳跃型眼球运动,这个也是很重要的。我们的眼睛既然要盯某个东西,那么就必须要跳过来看别的东西,因为不能总看一个,可能要跳过来看。这个时候人的眼睛一秒钟可以转800度,速度非常快,一瞬间就跳过去了,而且能力非常强。你看我们开车也好,开飞机也好,我想看哪就看哪。
跳跃型眼球运动是人眼一个非常原始但是非常强大的功能,我们也是最后才实现的,七八年前才做到的。就是说两个球是动的,我的双眼看这儿,一会儿看下面,一会儿看上面,我自己也动,但我仍然能够想切换就切换。这个同时需要对对方速度的预测和对自己速度的预测。
这些功能一个一个都实现以后,机器人的视觉基本上就算完善了。但还有一个功能,我们现在机器上还没有去做,这个叫作固视眼振。青蛙的眼睛是不动的,为了看清楚,它的眼睛做得特别大,结果就不能动了。这样有一个什么问题呢,就是它只能看到动的东西,不动的东西它看不到。
人的眼睛非常好。你固定看某一点,眼一直在震颤,这个震颤速度非常快,90赫兹,我们自己都想象不到眼睛震颤得这么快。比如说下面这个图,大家一直盯着不动的话,周围这个圈会消失。其实人眼和青蛙是一样的,只不过是我们自己动了,所以说不动的东西你也能看得见。这部分我们可能将来也会在机器人上实现。
有些应用,比如说这叫视觉里程计,是用周边视来做的。也就是说知道自己运动和运动的速度,比如这个地方是一个三角形,代表摄像机的位置。我走多少我的摄像机知道,所以我转一圈,摄像机就可以算出走了多少。把这个跟地图一配,其实就是无人驾驶或机器人制作导航的一个最基本的功能。
这个功能大家常常没太注意,其实这是视觉的最基础的东西。有些低等动物,它有这个功能但是没有识别功能。所以说它可以知道自己走了多少,转了多少,但是不见得能够认识,也就是找不到自己的窝。再高等一点以后,它有了识别功能才能做到。
再比如说这个叫稠密三维重建。这个时候通过双目就知道深度了,冷色是远,暖色是近。深度图出来以后,再把颜色和纹理配上就叫三维重建。知道这个深度以后,地平面我就能检测出来,障碍物我就能发现,无人驾驶车或者是机器人的行走就基本上有保障了。
我们技术的第一个应用是在做3D摄影。当时我在日本,第一个碰到的就是《阿凡达》出来了。
《阿凡达》听说拍了四年,非常难拍。因为它有六个自由度:旋转三个,平移三个。这两台摄像机,你调好一个地方,别的地方又歪了。矫正这个,最开始据说要两个小时,现在好像是快了一点。
我们就说这部分我们可以做,因为机器人的双眼协调我们做过,所以做了一个全自动3D摄影系统,这也是到现在为止全世界唯一的一套全自动3D摄影系统。我们用它来拍野生动物,效果非常好。
弼智3D电影摄像系统 BinoQ-P4M
11月的工博会上,我们替新松的机器人装配了这么两只眼睛,其实就是现在这里的这一台。这些眼球的功能逐渐逐渐变小了,开始进入了实用。比如说可以识别人脸,先把人脸找到,然后对准他,知道这个人是谁等等。
以前我说“只接天,不接地”。就是从生物模仿过来的,但是它怎么样去应用,始终有很大一个断层。最近因为技术的进步,逐渐开始进入到这种实用阶段了。一旦仿生眼能够达到人的功能以后,下一步就超越人眼,而且是肯定会超越人眼。
首先是摄像机构。人的眼睛只有对焦功能,没有变焦功能,所以说人想看远处的时候要用望远镜。你要用机器人的眼睛的话,变焦是肯定没问题的。
同时,看远距离的时候,精度跟两只摄像机的距离有非常大的关系:两只摄像机的距离越远,看得精度越高;越近,精度越低。但是你又不能一直太远,所以这里有一个调节关系。人的眼睛是固定的,所以在五米左右的效果最好,再远了就不行,精度就差了。这个功能在机器人眼上是能够实现的。
还有就是除了两只眼睛,你可以四只眼睛、八只眼睛,眼睛可以大量地做。
再一个是控制系统。我们机器人的精度非常高,现在最好的转角传感器可以达到800万点,转一圈有800万点。人的肌肉远远没有这个精度高,所以说这个精度也是人类无法达到的。
还有就是信息处理。最近这种云计算、大数据等等很多,很多信息不需要自己跑去看。我们人的话,你没去过的地方就是不知道。但机器人就是通过这种信息全部告诉你,所以这也是它超过人眼的一个主要的地方。
机器人的物种会有一个大爆炸,各式各样的机器人都会出来。而且人工智能会越来越强,逐渐逐渐,人感觉到自己的生存受到威胁了。
实际上确实也是这样,当机器人有了眼睛以后,它的信息就不再受人控制了。现在像AlphaGo什么,都是人给它棋谱,或者人给它图像它才做。但是它一旦有了眼睛,能够自己到外面去的时候,它会自己去寻找感兴趣的东西,那这时候就逐渐接近于人类了。
当然你说特别危险?倒也不是。因为机器人想要活下去,它要有个活下去的理由。也就是说,机器人再聪明也没有用,它自己不想活,它自杀了你也没有办法。这个最基本的欲望是什么?
其实还是有很多事情要做的。而且像我们的眼睛,我这个眼睛已经用了50多年了,还很好用。但是你要做个机器,我们刚做出来就总坏,要让它用50年不坏,那其实是非常困难的事情。所以说机器人要超越生物其实还有一段时间。
但是它有一个好处就是,机器人可以做大。人的话,你就这么大,再大了扛不住自己的头了。但是机器人可以放得非常大,然后通过无线什么的,它有些功能可能会很快超过人。
但是人也要进步。现在DNA的解析进步也很快,以后人和机器就是一个竞争关系,或者说是互为融合关系,很多芯片什么的可能被植到大脑里了。
现在我们在做眼睛的时候就有这样的。有些盲人就在眼镜上加两个摄像机,然后把图像直接植到大脑,大脑就能感知。其实我们大脑水平非常厉害,你给它一个图像信号,就贴在脑的表面上,它慢慢应对各种刺激,慢慢就能看到。
所以说,我想把芯片植入大脑并不是一件非常未来的事情,就在近几年。微软的总裁原来讲人类的长生不老的时代很快就会到。现在技术的进化是非常厉害的,我们总是有这种指数型的增长,人一直站在指数的墙上,往前面稍微走一点就变化特别大,你都没办法预料。
我估计在一二十年内,机器人会有大量的东西出来,人的生活可能会有非常大的变化,远远超过互联网或者手机这种功能对生活的影响。
谢谢大家。
欢迎加入本站公开兴趣群
高性能计算群
兴趣范围包括:并行计算,GPU计算,CUDA,MPI,OpenMP等各种流行计算框架,超级计算机,超级计算在气象,军事,航空,汽车设计,科学探索,生物,医药等各个领域里的应用
QQ群:326600878