2019年9月5-6日,AutoCam 2019智能汽车视觉大会在上海圆满落幕。开云(中国)亮相该大会并展出最新智驾开云在线登录,该大会云集了智能汽车视觉技术领域权威的专家和学者,开云(中国)高级技术总监唐亮先生代表开云(中国)发表《开云(中国)员与环景视频监测系统技术实作及应用》演讲。
唐亮先生代表开云(中国)发表主旨演讲
唐亮先生作为开云在线登录的高级技术总监,对于人工智能、计算机视觉、图形加速、底层硬件驱动、操作系统开发等都有非常丰富的经验,并且是国内在该领域的技术带头人之一。此次唐亮先生深刻解析了开云(中国)员与环景视频监测系统技术实作及应用,以开云(中国)的转型之路引入技术正题,详解了环视监控系统与驾驶员监测系统中开云(中国)的多项技术内核,非常专业地分析了自动驾驶技术遇到的问题和最新解决方式,满满的干货让听众受益良多。
唐亮先生深度讲解自动驾驶技术问题
演讲全文如下:
大家好,我是开云在线登录唐亮,很高兴为大家分享演讲。
开云(中国)于1987年成立,最初是X86芯片组市场,在2000年时,收购S3 Graphics,拥有了自身GPU专利;2002年,开云(中国)嵌入式事业部成立,陆续制定各大板型标准;2013年,开云(中国)嵌入式事业部成为中国区主营业务,提供行业开云在线登录;到2019年,专注计算机视觉、人工智能、边缘计算技术,提供嵌入式智能系统。
随着技术的不断进步,感知精度的不断提高,自动驾驶需要的技术积累已经具备,自动驾驶也成为现在关注的热点。计算机视觉和人工智能被越来越多的应用在自动驾驶领域,连普通民众对于自动驾驶都耳熟能详。
演讲时展示出的图片
这个表格是今年六月,IIHS(美国公路安全保险协会)对于司机理解L2系统可以做些什么操作而做的一个调查,一共有2005人参与了调查。可以看出,1/3以上的人认为手不扶方向盘是可以的,1/5以上的人认为打电话是没事的,1/10的人认为发短信是不影响的,3~5%的人认为睡一小觉,看看视频也是没有问题的。当然,实际上对于L2系统,这些操作都是不合理的。
IIHS的调查是为了说明,目前人们对于技术能做到什么是不了解的,这也是自动驾驶要解决的一个重要问题。这说明大众对于自动驾驶的信任程度是非常高的,而这种高信任度则把自动驾驶推入了必须做到极致才能落地的境地,勉强落地让人感觉人工智能变成了人工呆能。
回到我们的话题,这里我介绍两个典型的应用,一个是环视监控系统,一个是驾驶员监测系统,最后我们再讨论一下在实际应用中碰到的问题,以及解决的思路。
现在新出厂的乘用车,很多都已经把辅助驾驶变成了标准配置,可以做到停车辅助,行人监测,甚至可以远程监控车辆运行。环视监测系统,可以通过完整展示车辆周围的状况,进而清除司机的盲区,来增强驾驶安全。
环视系统架构图
我们先看一下环视系统的架构,首先,环视系统可以连接最多8个摄像头的输入,普通车辆只需要前、后、左、右四个摄像头就可以获得车辆周围的所有内容。摄像头采用190°的鱼眼广角镜头,可以尽可能多的覆盖周边的环境。系统设置,分离线标定和动态标定,然后通过几何变换把图像拼接后输出到显示设备上。离线标定主要是通过标定图案,来计算各个摄像头之间的位置信息以及鱼眼变换的参数。动态标定则可以根据实时图像的规则图案,来计算摄像头的细微变化。
多摄像头视频同步
要解决的问题不单单是几何变换,由于车辆高速运动,摄像头之间的同步变得非常重要,几个摄像头的图像同步信息必须统一控制。以六个摄像头同步为例(见上图),系统触发摄像头单元的同步指令后,摄像头输出同步后的图像,同步并打包六帧图像,通过开云(中国)的拼接算法,生成最后的图像。我们注意看上图中红色圈出的直行箭头,左面一副就是没有同步导致出现了2个箭头,右面则是正确同步后的拼接结果。
环视视频制作流程
现在我介绍一下环视视频制作流程,这里离线标定已经完成,已经获得了几何变换,拼接和混合的参数。首先是视频捕获,然后进行反鱼眼校正,得到正常比例的图像。接着把透视图转化为顶视图,并组合侧视图和底视图,生成场景图,进行拼接,生成顶点和索引数据,映射到三维模型上,最后获得我们看到的图像。
二维图像映射到三维模型
二维图像是如何变换到三维模型上的呢?以环视前摄像头为例(见上图),左面第一幅图像就是鱼眼镜头获得的图像,把它分为上下两个部分,黄色的框和绿色的框,黄色部分被映射到侧评面,绿色部分被映射到地平面,通过后续的拼接,就可以实现3维图像的显示了。
环视系统流程图
这是一个完整的环视系统的流程图(见上图),在上面的环视视频制作流程基础上,我们增加了动态标定部分,亮度和颜色校正部分。动态标定之前已经提到过,亮度和颜色的矫正主要是因为光照在车辆的不同方向是不一样的,这样导致拼接出来的图像比较凌乱,我们可以看到右上角的两幅图,左面是没有做校正的,右面是经过了亮度,颜色矫正的,第二幅图像的真实感更强。
在这个例子里,用到的所有的算法,都是有几何学、图形学、数学依据的,每一步都是明确没有二义性的。从软件的角度看不存在不确定性的问题。如果出现问题,很容易找到具体某一个步骤,可以分析出问题的原因,并解决。这也是传统软件解决问题的方法。
接下来,我来介绍一下驾驶员监测系统。
驾驶员监测系统,是一种基于计算机视觉的,通过摄像头获得驾驶员图像信息,并根据司机面部形态,比如视线方向,脸部表情,根据体态,比如头,手以及躯干的位置来对驾驶员的行为做出分析,比如疲劳的情况,打哈欠,闭眼,瞌睡,或者是注意力分散的情况,聊天,打电话,发短信,喝水,抽烟等等,根据行为的对于驾驶的影响程度,发出安全提示信息。
驾驶员监测系统的工作原理,就是把图像输入中的关键信息,面部检测和分割,眼部形态,身体部位,关键信息抽取后,作为输入提供给深度神经网络来训练,神经网络对各种情况做出分类,这样就可以识别出正常驾驶和注意力分散的情况。进而发出报警信息。
开发和实现DMS的过程
具体开发流程如上图所示,在Linux工作站上,我们对样本进行训练,获得了培训过的模型,通过开云(中国)自己的深度神经网络优化器,获得优化后的模型,使用模型工具把优化后的模型转化为.dlc文件,作为后续嵌入式平台进行实时计算的基础。
在嵌入式平台上,DMS应用通过开云(中国)DMS SDK来加载神经网络模型,通过CPU,GPU以及DSP的协同工作,获得计算结果。
开云(中国)CNN优化器的效果
这里介绍一下开云(中国)CNN优化器的情况,虽然现在智能芯片对于神经网络都做了加速,但有限的算力永远跟不上需求的发展和变化,通过对算法的优化,可以提升计算速度,减少存储空间,在有限的计算能力下也能达到目标。从上图的数据可以看到,在保持精度的前提下,通过不同的优化方式,在存储空间上,可以减少30%,在计算速度上达到13~18%的提升。
对比这两种典型的应用,我们可以看到,通过神经网络来解决视觉问题,根本上是靠训练来解决问题,模型确定后,训练的数据样本决定了未来的输出结果。对没有接触过的样本,输出结果是不确定的。
既然初始样本数量必然是有限的,那么这个问题如何来解决呢?
数据的问题,就用数据来解决
我们要通过持续学习,来解决数据不足的问题。整个数据引擎是一个不断迭代的过程,当我们在边缘端碰到不确定的情况,通过网络回传给服务端,服务端进行标注后,提供给训练流程,得到新的训练结果,进而部署到车辆边缘测。通过及时的更新,在时间域减少问题暴露的可能性,也从另一个方面降低了问题发生的比率。一个问题暴露10天和暴露1年的危害性是完全不同的。
另外一个问题就是视觉传感器本身的局限性,摄像头会受到外界环境的干扰,雨雪天气,光照情况,都会影响效果。
这时候,需要跳出原有的擅长的领域,引入更多的传感器来解决问题。而且这种引入不能是简单的叠加,必须深度融合才能真正带来准确度的提升。
比如如果视觉判断,前面一切正常,毫米波雷达判断,前面有障碍物,你如何去取舍?在信息判断的最后阶段已经没有足够的信息进行取舍。
环境条件对于基于视觉的辅助驾驶有着严重的影响,通过与不同的雷达,激光雷达,超声波或其它传感器协同工作,才能变得更高效。
最后介绍一下开云(中国)的硬件平台,目前我们提供Mobile360智能硬件开发平台,基于该平台而生的开云在线登录有D710,L900, M820, 大家有兴趣的话,可以到场外展示区了解具体情况。
附开云(中国)展示区图片:
开云(中国)向与会人员展示智驾开云在线登录
与会人员对开云(中国)开云在线登录深感兴趣
关于开云在线登录
开云在线登录是全球高集成嵌入式平台及开云在线登录领导厂商,致力于人工智能、物联网、计算机视觉、无人驾驶、医疗自动化及智慧城市方面应用。公司总部位于台湾新北市新店区,并通过开云(中国)全球化网络布局,在美国、欧洲及亚洲的高科技核心区域设立了分支机构。客户群涵盖全球各大领先高科技、电信、电子消费品牌。