首先云平台那么大的数据量,2G每秒怎么算?就需要一个分布式的平台,给它做成一个计算,比如深度学习。在百度我们叫Paddle,一个深度学习的平台。 云平台无非由计算和存储组成。计算是用Spark框架,而存储是用内存存储框架。云平台,为什么使用一个叫Alluxio的机制,因为它把存储放在内存里面,而不是放在传统的硬盘里面,便于我们在多个计算的工作里面30到50倍的加速,所以我们融合了一些比较先进的云计算的技术进到这个平台里面。 你存储快了,计算自然就快了。所以为什么我们需要从存储出发。 第四是模拟。假如我今天开发一个新算法,拿到车上去跑,第一成本太高。第二我不知道有多少情况,用车跑多久才能验证这个算法。所以我们就要模拟技术,模拟是一种回放技术,用ROS把你的数据重新回放,让你换一个算法。基本是这么做的。我们只是把游戏的原代码改了,然后在游戏场景里进行模拟。这个模拟是分布式的,我们是SPARK平台用多台机器技术一个模拟的技术。 第二是高精地图。高精地图数据量极大。如果你要使用激光雷达作为主要导航部件,必须不断地去更新高精地图,你就要找地图的车全国到处跑,不断地更新才能维持住这套设备。高精地图产生是个相当复杂的流程,扫描原数据,扫回来的原数据要变成点源,点源不能形成一个连续的图状,这个点源要有一个拼凑的过程。拼凑之后,你要放一些标签,就是我们刚才所说的哪条路径是你的车道,这条路径的限速多少等等。经过这么复杂的流程,最后才产生一个高精地图,所以它需要大量的计算资源在后面支撑,不断地更新你的地图。 这么复杂一个系统,能不能用更低廉的方式去实现?假设我有一台手机,正巧我想做无人驾驶,有没有可能用一个手机级别的芯片做一个简单的无人驾驶系统?手机有GPU、DSP,手机还有四个八核的CPU。无非我们说无人驾驶的智能计算就是两个,Convolution是视觉,另外一个是Feature,前者作用是定位,后者的作用则是识别。 怎样把这个系统跑在手机上,我拿一台三星S7的手机,但激光雷达也没办法安装在手机上。我能做的是识别、定位、规划、避障和控制,这些全部在手机上能够实现。这个时候,我们大概能处理25张图/每秒,定位导航系统。 这是我们公司大概在去年8月份做一个Demo,这是我们硅谷的办公室,左下角是一个双目视觉,我们的产品是这样,机器人看的是左右边的视觉,右下角是一个地图,这基本上就是一个小的机器人底座,再加上一台三星手机,然后在一个空间环境自由行走的过程。这个在进行测试的时候,我让这个机器人穿过一个这么小的门,它能根据地图去穿越那么窄的门,还能顺利地穿越过去,然后导航又回过来。这是一个自主导航的过程。它在这个房间转一圈之后,它会回到客厅去看看客厅的场景。 下一个测试是地障。我们的导航定位作用,地障我简单解释一下,你看这个机器人上有一圈声纳,5元钱一个,你搞一圈在车上。机器人有两种避障方法,这个是被动的避障,突然有一个物体在你面前冲出来,你需要急刹车,我用的是被动的避障。我们还有主动的避障,比如说经过这空间的一个点,深度学习的技术,检测到前面有个人,你可以主动地绕过他。 这是我们硬件的原型,基本上这是我们第一代原型机、两个摄像头,通过一条数据线接到一台三星的手机里面,所有的计算在一台三星的手机四核加一个GPU,再加一个DSP就全完成了。我们刚才做的是什么呢?我们做的导航、建地图、控制、决策、避障,基本这样一个10瓦到15瓦供电的手机里面全部可以做完。 这是刚才数据的回放,这是我建出来的地图,灰色的点代表未探索的区域,黑色的点表示障碍物的区域,白色的点是代表没有障碍物的区域。我们至少证明了在一个很低层面的硬件还是能做出不错的人工智能无人车。 今天我的演讲就到这。谢谢各位! (责任编辑:admin) |