ADAS在车载导航设备上的应用

简介: ADAS在车载导航设备上的应用            首先我们来了解一下ADAS的基本概念,ADAS全称是Advanced DriverAssistance Systems,中文翻译是高级驾驶辅助系统。

ADAS在车载导航设备上的应用

 

           首先我们来了解一下ADAS的基本概念,ADAS全称是Advanced DriverAssistance Systems,中文翻译是高级驾驶辅助系统。随着城市化的进一步发展,居民生活水平的提高,路上的车越来越多了,一个可悲的事就是交通事故越来越多了,这里面有很多原因驾驶人员的安全意识、违法驾驶、路况、疲劳驾驶等等原因很复杂,因此有一个ADAS来帮助驾驶员的需求变得越来越强烈了。很多时候,我们都知道副驾驶有个称职的乘客可以帮驾驶员注意前面车辆行驶动态,能偶尔提醒一下驾驶员安全驾驶,注意保持车距,相比来说,有副驾驶的正常情况下出交通事故的比例比没有的要少一些。但是副驾驶毕竟有时确实是没有啊,只有司机一个人,那么就把ADAS当着一个全天候的安全卫士,你的副驾驶吧!说了这么多,我们就来看看ADAS在android系统上是怎么实现的吧!

/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/edsam49原创,转载请注明出处,谢谢!
/*****************************************************************************************************/

        ADAS目前的方案多数都是基于图像分析的,也就是用摄像头捕捉车辆前方行驶动态,然后数字化,通过算法里的模型计算分析,来分辨出前面车辆的位置、大小,车道线的位置。这个算法不是我们讨论的重点,这个有专业人员做深入研究,我们主要是把它应用起来,用于生产实践。

       从前面我们了解到,摄像头相当的关键,它出来的原始图像的清晰度,亮度、饱和度、对比度这些都会影响车辆检测的效果,直接影响分析的结果。因此,我们在选摄像头的时候需要分辨率相当要是比较高一点的,另外它的视角大小,水平角度、垂直角度,镜头的质量至关重要,sensor大小,FOCALLENGTH以及BACK FOCALLENGTH,另外摄像头的曝光窗口位置、大小都直接决定了图像采集的质量。理论上,采集的图像质量越好,算法分析的结果就越准确。

         前面探讨了图像源的一些影响参数,下面就讨论一下算法处理相关的一些东西。目前ADAS在使用上大多需要做标定,也就是量身定制,有点私人定制的味道,说通俗点就是按你的车的实际情况来调节设置算法使用的参数。比如你的车宽、车头长度、车高等,另外需要的一个车辆行驶的速度,可以直接用GPS的速度,有条件的最好还是通过OBD直接取原车的速度,这样准确,因为GPS在高架桥下、隧道等特殊地方有可能收不到星,会影响效果。通常只能做惯导处理,这也是一个不得已的补救方案。

       在android系统上,摄像头的处理已经有现成的处理模块了,一般车载方案都做了行车记录仪的功能,所以ADAS不会增加硬件成本,因此可以共用行车记录的图像。那么就需要在camera HAL层来做文章了,熟悉camera处理的也都知道,里面肯定有一个采集线程,我们可以把ADAS的处理放在那个线程里面去,但是由于ADAS一般都是比较耗CPU的,处理速度没那么快,一般的行车记录仪都能达到25fps,但是ADAS一般都处理不了那么多数据,因此我们可以建立一个工作buffer队列,这队列不同于摄像头原始的队列,是基于原始队列建立的二级队列,也就是说ADAS没消耗一个buffer,就允许添加一个最新的buffer到这个二级队列里面去,这样就能保持处理的流畅性,不至于会导致行车记录丢帧。这样建立一个线程去跑ADAS算法处理这个二级buffer队列,然后把算法处理结果传递出来,一般都会埋一个回调函数了。在这个回调函数里面再想办法把结果数据传递给上层应用,传递的过程还是挺复杂的,不过当你搞懂系统camera自带的数据上报处理流程后,类似添加也就不难了。具体实现我们在下一篇文章中再仔细探讨一下。下面我们就看一下我们的几张实际路测的截图吧!






 


目录
相关文章
|
Kubernetes 安全 网络协议
基于 Traefik 的激进 TLS 安全配置实践
基于 Traefik 的激进 TLS 安全配置实践
|
存储 弹性计算 移动开发
玩机教程:阿里云电脑无影怎么样?怎么使用?
玩机教程:阿里云电脑无影怎么样?怎么使用?
1079 0
|
3月前
|
缓存 移动开发 网络协议
纯血鸿蒙NEXT即时通讯/IM系统:RinbowTalk正式发布,全源码、纯ArkTS编写
RainbowTalk是一套基于MobileIMSDK的产品级鸿蒙NEXT端IM系统,目前已正式发布。纯ArkTS、从零编写,无套壳、没走捷径,每一行代码都够“纯”(详见:《RainbowTalk详细介绍》)。 MobileIMSDK是一整套开源IM即时通讯框架,历经10年,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp、鸿蒙NEXT,服务端基于Netty编写。
214 1
|
弹性计算 小程序 Android开发
使用无影云电脑玩《黑神话·悟空》游戏教程,无需下载,开机即玩!
本教程详细介绍如何利用阿里云无影云电脑轻松畅玩《黑神话·悟空》游戏,无需下载游戏客户端,开机即可体验。首先需下载无影客户端并购买个人铂金款云电脑(14.9元首月)。购买后,通过输入WeGame版或Steam版镜像分享码并选择电竞模式来配置云电脑。最后,在云电脑中启动WeGame客户端并登录账户,手动添加游戏路径后即可游玩。注意游戏需单独购买,并记得游玩后关闭云电脑以避免额外计费。更多详情与步骤请参阅阿里云官方指南。
|
11月前
|
XML 前端开发 Android开发
Kotlin教程笔记(80) - MVVM架构设计
Kotlin教程笔记(80) - MVVM架构设计
|
运维 监控 应用服务中间件
LNMP详解(十四)——Nginx日志详解
LNMP详解(十四)——Nginx日志详解
356 2
|
12月前
|
安全 应用服务中间件 Shell
nginx配置https的ssl证书和域名
nginx配置https的ssl证书和域名
|
Web App开发 存储
常见抓包工具配置抓取HTTPS
常见抓包工具配置抓取HTTPS
1386 1
|
消息中间件 中间件 Kafka
中间件发布/订阅模型
【7月更文挑战第9天】
264 1
中间件发布/订阅模型
|
存储 算法
HanLP — Aho-Corasick DoubleArrayTire 算法 ACDAT - 基于双数组字典树的AC自动机
HanLP — Aho-Corasick DoubleArrayTire 算法 ACDAT - 基于双数组字典树的AC自动机
270 0