android 使用手机摄像头测量距离面积SDK 安卓摄像头测距软件_操作系统

作者 | 马超

最近接连不断的大事件发布,智能汽车行业处于前所未有的大变局之中,种种迹象表明汽车 OS 正在处在爆发的前夜。先是有消息称华为表示消费者 BG 正在与智能汽车解决方案 BU 进行整合,总负责人是华为消费者业务CEO余承东。前天小鹏汽车 CEO 何小鹏发布朋友圈声称“看来昨天我们发布的包含激光雷达的小鹏下一代自动驾驶架构,让西边的某人很不爽。我想说的是,造谣早就被证明是无法打败任何竞争对手的,明年开始,在中国的自动驾驶,你要有思想准备被我们打的找不着东,至于国际,我们会相遇的。”小鹏汽车这次用激光雷达回应特斯拉的 CEO 马斯克可谓切中要害,当然接下来笔者还会针对这个问题重点解读,而令人玩味的是 RT-Thread 也推出了其基于 MMU 高端芯片的微内核版本 RT-Thread Smart。

 我们知道IT界每十年就会产生一种新的生态,比如二十年前的 Wintel(Windows+Intel) 的 PC 生态,再比如十年前安卓、iOS+ARM 形成的移动终端生态,接下来的一两年很可能会有新生态的诞生,不过虽然 Linux 各方面指标都很强,但是在硬实时性要求极高的智能汽车领域却没有那么香,因为在行车过程中驾驶员总会遇到很多突发事件,快速响应、处理这些意外事件就成了车载OS 的必备技能,因此在航空、航天、车载及军用领域实时性操作系统(RTOS)才是真正的C位,而目前名扬天下的 Linux 本质上并不是RTOS中的一员,也正是因为 Linux 给了机会,才让汽车 OS 领域风云再起。

智能驾驶初探

自助驾驶这个概念最早是由马斯克以及他旗下的 Tesla 带给大众的概念,而钢铁侠马斯克向来都是自带话题的人物,Tesla旗下轿车均标配 Autopilot 自动驾驶系统,该系统由 8 个摄像头提供数据支持,对周围环境的监测距离最远可达 250 米,而增强版 Autopilot 前置雷达通过发射冗余波长的雷达波,能够穿越雨、雾、灰尘,甚至前车的下方空间进行探测。

android 使用手机摄像头测量距离面积SDK 安卓摄像头测距软件_腾讯_02

不过虽然特斯拉的话题性强,但他的自动驾驶等级并不高,在自动驾驶能力分级中,共有 L1-L5 五个等级,级别越高,自动化程度越高,虽然特斯拉的自动驾驶技术能力评级仅处于 L2-L3 之间,也就是可以帮助人类提升驾驶体验,但不能替代驾驶员的主导地位。究其原因这并不是因为 Tesla 的 AI 技术不强,而是由于是 Autopilot 缺少来自于底层硬件的支撑,即车身上没有布置激光雷达。因此笔者也在《钢铁侠的野望》一文中指出这种级别的自动驾驶系统即使开源,也不会对业界产生有太大影响,因此小鹏以激光雷达技术发布回应特斯拉的质疑,是非常有水平的。下面我们来共同认识一下什么是激光雷达。

激光雷达 LIDAR(Light Detection and Ranging):用激光照射目标物体,并用检测器来分析反射光,来测量距离的技术手段。目前在障碍物检测、动态物体追踪等方面使用很多,也最为稳定。

不过激光雷达成本非常高昂,也许正是由于成本原因,Tesla 的相关车型在设计期并没有考虑布署这一设备,不过从目前的情况看,Tesla 未来也不会考虑添加激光雷达了,马斯克还明确放话:视觉方案已经足够安全,用激光雷达的自动驾驶方案都是大傻X。不过钢铁侠这种怼法,并没有事实依据,不使用激光雷达就是不够安全。

摄像头定位:Tesla 心心念念的摄像头定位技术与通过分析反射光线来精确测距的激光测距不同,摄像头测距是一种通过提取影像,并依靠图像处理技术来追踪确认距离的手段,而图像处理技术的距离识别,是可能存在一定误判率,甚至在某些特殊情况下,这样的方案在异常情况下可能会有所缺陷,比如目标物体是白色的,那么图像处理技术也可能会对此产生盲点,没有将其视为障碍物边界,再比如在车辆行驶时突然出现的障碍物,等等这些都会使图像处理延时较长的缺点暴露无疑。由于推理算法本身就比较耗时,因此我们也看到 Tesla操作系统干脆就没用 RTOS 而直接使用 Linux了,因为相对 Tesla 来讲操作系统那几毫秒的延迟不是什么大问题。 

RT-Thread Smart发布,剑指车载操作系统

早期的汽车OS一般是基于51单片机编写程序的,没有OS的概念。但随着软件越来越复杂,汽车 OS 也必须实现多任务执行,并引入中断,这时以 QNX 为代表的 RTOS 开始在汽车市场崭露头角。

而随着智能汽车概念的不断深入普及,简单的RTOS又无法适应市场需求了,一款既要支持高算力又要做到硬实时,而且还要非常稳定的操作系统就逐渐成为汽车电子市场竞争的必备武器了。而上周末正式上线开源的(https://github.com/RT-Thread/rt-thread/tree/rt-smart、https://gitee.com/rtthread/rt-thread/tree/rt-smart)RT-Thread Smart真是䢔逢其时。

之前 Vxworks、QNX 为代表的外国操作系统几乎垄断了所有带 MMU 的实时应用场景,国产操作系统几乎没有能在此类高级芯片上运行的。而 RT-Thread Smart 填补了这项空白。

RT-Thread Smart 的定位成为一个专业的面向实时应用场合的高性能混合微内核操作系统,填补传统 RTOS 和大型操作系统之间的留白。而正如我们之前所谈到的,根据智能汽车的发展趋势,车载 OS 要在实时性、成本、安全性、启动速度等方面取得平衡,而 RT-Thread Smart 的混合微内核恰恰是这方面的平衡典范。

其实有关宏内核与微内核的比较笔者在去年的文章《鸿蒙OS的微内核技术究竟是什么》已经介绍的比较详细了,宏内核将内核的功能都组合在一个内核态进程中完成,而微内核将许多在宏内核中的模块移出内核,使之运行于用户模式。宏内核的好处是各功能模块处于同一个地址空间,相互调用效率很高,弊端是体积太大,不利于在移动设备上进行部署。微内核的好处是功能模块各自独立,体积较少,方便进行移植也方便对其它体系的兼容。弊端是功能模块之间变进程间通信,CPU 上下文切换代价很大,执行效率较低。简单来说就是微内核可以做得很小,但是性能不佳,宏内核性能不错,但是往往体积太大。

而 RT-Thread Smart 上,使用了共享内存的方式,把交换的数据内存块,分别投到不同的进程地址空间上,从而不需要做额外的数据拷贝。RT-Thread Smart 在硬件平台的基础上通过 MMU、系统调用的方式把整个系统分成了内核态及用户态,并具备独立的地址空间(32位系统上是4G的独立地址空间)。

android 使用手机摄像头测量距离面积SDK 安卓摄像头测距软件_操作系统_03

而且 RT-Thread Smart 具备快速启动、兼容 POSIX 接口、开发调试便利、应用与内核分离、高安全性等特性,最为关键的因素是与 QNX 这个最大的竞争对手相比,RT-Thread Smart 是完全开源免费的,相信未来市场前景可期。

Car OS大盘点

目前从国际市场上看最主流的 CAR OS 就是 QNX 了,这是一款微内核、嵌入式、非开源、安全实时的操作系统。其内核可剪裁至几十 KB,非常小巧,运行速度极快,具有独特的微内核架构,安全和稳定性高,不易受病毒破坏系统, 是全球首款通过 ISO26262 ASIL-D 安全认证的实时操作系统。而除了 QNX以外目前市场上主流的 CAR OS 基本都是由汽车厂商或者IT巨头所提供的。

特斯拉 Version:特斯拉的车载操作系统在芯片方面采用了Intel Atom E3950,操作系统基于 Linux 4.4内核;安装 PyTorch 的深度学习编程框架。特斯拉选择 Linux一方面是由于 Linux 开源自由的优点,另一方面其OS对于实时性要求不高,这点我们上文也提到了。另外值得介绍的一点是对于信息安全问题,特斯拉启用Linux系统中的内核模块,安全增强型 Linux(SELinux),通过“访问权限控制” 来增强操作系统的安全性。

大众VW.OS:大众的 VW.OS 整个架构上和鸿蒙有些类似,都可以支持多个符合POSIX标准的底层内核(如 Linux、QNX、VxWorks),其上层服务由 AutoSAR 实现 API 标准化,可以看出来大众也是在为车载生态体系而展开布局的。

android 使用手机摄像头测量距离面积SDK 安卓摄像头测距软件_操作系统_04

谷歌 Android Automotive:2014年开始谷歌先后以车机互联 APP AndroidAuto 和 Android Automotive OS 入局汽车 OS 领域。Android Automotive OS,是一款可直接运行在汽车上的安卓操作系统,用户可以通过 Google Play 下载 Google 助手、Google Map 等应用。Android Automotive 与手机 Android 类似,应用移植方便。

其实安卓系统在稳定性和实时性比较拖后腿,因此 Android Automotive一般只能用于汽车座舱使用的OS,而整体汽车控制与驾驶方面一般不会采用安卓的解决方案。

华为鸿蒙OS:最近华为自动驾驶操作系统获得业界 Safety 领域最高等级功能安全认证(ISO 26262 ASILD),这也使鸿蒙成为我国首个获得 ASIL-D 认证的操作系统;同时华为已经2019年9月获得 Security 领域高等级信息安全认证(CC EAL 5+),这标志着鸿蒙已成为业界首个拥有 Security&Safety 双高认证的商用OS。根据华为规划,其 E/E 架构方案由智能座舱、智能驾驶、整车控制三个域组成。具体说明如下:

CDC 智能座舱平台:实现了汽车和手机在软硬件、应用生态等实现产业链共享,而且是基于麒麟芯片构建模组,实现产业协同降低硬件成本,并且智能座舱是基于鸿蒙OS的,也是实现华为“1+8”生态的重要战略组成部分。

MDC 智能驾驶平台:MDC平台致力于建立建立标准和协议,并开放传感器生态,支持合作 伙伴定制化的个性方案算法,充分发挥华为云八爪鱼服务+AI 优势,打造车云协同的平台。

VDC 智能电动平台:VDC平台是面向不同的用户偏好,创造差异化用户体验,引进网络能源产业链和技术优势,打造 mPower 多形态电驱、高效车载充电产品。

百度 Apollo:百度 Apollo 是一款基于QNX 内核的自动驾驶平台,其主要客户为汽车制造厂商,帮助他们结合车辆和硬件系统,快速搭建一套属于自己完整的自动驾驶系统。百度将开发环境感知算法、路径规划算法、车辆控制算法、车载操作系统的源代码,并提供完整的开发测试工具,与百度合作的车企中,有奇瑞星途、长城以及福特。

针对智能车联平台方面,百度推出了小度车载 OS,为车机、导航仪、后视镜等座舱设备打造定制化智能语音解决方案。自动驾驶平台方面,与小度车载 OS合作的车企业则有起亚、吉利、奇瑞、威马、红旗等。

android 使用手机摄像头测量距离面积SDK 安卓摄像头测距软件_内核_05

阿里 AliOS:不同于百度 Apollo,阿里巴巴将 AliOS 定位于物联网操作系统,并不局限于汽车市场;而在智能网联汽车领域,AliOS 是专注车载信息娱乐系统这一细分领域的。

AliOS 充分发挥阿里云的技术优势,提供与安卓 Dalvik 虚拟机兼容的运行环境。升级后的 AliOS 秉持开源自由的技术路线, 同时其AliOS也凭借其强大的端云结合特性,通过将车载、云平台、生态三个方面进行有机结合。其中车载场景是和支付宝小程序进行紧密结合;云平台涵盖了阿里云的技术支持;生态即淘宝、饿了么、支付宝等等阿里生态,相信未来将为更多车企提供支持,详 见 前文《阿里马涛:重新定义云时代的开源操作系统 | 人物志》

android 使用手机摄像头测量距离面积SDK 安卓摄像头测距软件_内核_06

腾讯TAI :与之前的车载OS相比,腾讯入局较晚,但依靠其社交生态,腾讯的后发优势明显。今年 6 月, 腾讯智慧出行发布了 TAI 3.0和全新一代自动驾驶虚拟仿真平台 TAD Sim 2.0,腾讯车联“AI in Car”系统是腾讯专门为下一代智联网汽车打 造的车联网解决方案,通过整合腾讯的安全、内容、大数据、云计算和人工智能等平台 能力。AI in Car 的升级方案腾讯车联 TAI汽车智能系统通过 提供轻量化、生态化、跨平台、跨终端的工具链构建生态车联网。目前,腾讯车联已先后与宝马、奥迪、奔驰、 广汽、长安、一汽、吉利、东风等车企达成深度战略合作,并落地广汽 GS4、东风柳汽 T5 等多款量产车型。

对于操作行业的发展趋势与巨头的竞争格局,我们要做到了然于胸,同时也必须清醒的看到与特斯拉、谷歌等巨头的竞争只会加速汽车操作系统的发展速度。因此我们必须要躬身入局,不能只看个热闹,放慢自身追赶的脚步。

作者简介:马超,从事金融IT行业超十年,阿里云MVP、华为云MVP、华为2020年技术社区开发者之星。

android 使用手机摄像头测量距离面积SDK 安卓摄像头测距软件_人工智能_07