TTC测距算法
TTC测距算法
输入输出接口
Input:(1)人与车(或车与车)的距离
(2)人与车(或车与车)的相对速度
Output:TTC collision time
算法介绍和设计方案
TTC是Time-To-Collision的缩写,直译为碰撞时间。海沃德(1972)将TTC定义为:“如果两个车辆以现在的速度和相同的路径继续碰撞,则需要碰撞的时间”。在交通冲突技术的研究中,TTC已被证明是衡量交通冲突严重程度和区分关键行为与正常行为的有效手段。一些研究的结果指出直接使用TTC作为交通决策的线索。车辆之间未来相互作用的预测涉及为受试车辆以及所有可能发生相互作用的车辆创建预测轨迹,以查看是否可能发生碰撞。

图1. 轨迹管理中的TTC算法
在TTC算法中,车辆被视为二维平面。每一辆都由位于平面中特定位置的矩形表示。每辆车都有速度和加速度,速度与加速度都是矢量。
每辆“主体”车辆与附近的车辆会发生相互作用,不存在先导车辆或跟随车辆。主体车辆的动作遵循三条规则:
1) 跟随前方的车辆
2) 避免碰撞
3) 基于TTC的数值来调整所采取的动作的强度。
TTC是针对每两辆相互足够接近车辆来计算相互时间步长。根据其老位置、新速度矢量和新加速度矢量计算车辆的新坐标。它的新速度矢量同样是从它的旧速度和新加速度矢量计算出来的。通过对期望轨迹、道路几何形状、交通控制(例如,停止标志、交通信号和速度限制)以及邻近车辆的接近来确定加速度矢量。如果不引起任何碰撞,加速度被认为是可接受的。
TTC 碰撞时间(TTC是专门针对CIPV,本车会撞上前车的时间)
Mobileye的后装产品里面,FCW的时间设的是2.7秒
o 根据科学的统计,当提前2.5秒给予一个车辆警告的话
o 人的反应时间和刹车的距离,基本上可以做到车子刹停下来
Mobileye的后装产品(客户以商用车为主)会把这个预值再放大一点,保证司机有足够长的时间把车辆刹停下来

图2. 车辆防撞预警处理流程图
设A为自车,B为它车,d为两车中心连线的距离,K为两车的横向距离,s1,s2分别为自车与它车到碰撞点的距离。

图3. 各种碰撞算法模型示意图
逻辑上
o
处理算法获取图像,根据图在视野里面的变化的快慢,可计算出这辆车会碰撞的时间
o
做距离的检测,包括之前更多的是用雷达的手段来做FCW,或者AEB的时候,其实也都是先做了距离的检测,然后再来算出碰撞的时间
单目的摄像头的计算方式就是直接计算TTC
o
跟车辆的车速线是直接对接的(知道本车的速度),可反算出来这个距离是多少。
o
输出TTC这个值,因为这个值才是最终用来做预警或者控制的最有用的一个参数

表1. 危险特征参数统计结果
o
在TTC 2秒~2.5秒的范围内,视觉算法检测出TTC和真实的TTC之间是非常的精准的,只有当距离远了之后TTC才会产生一定的偏差。
o
AEB一般起作用都是在1秒上下的区间里面起作用,在这个时候我们的TTC已经可以做到非常精准。
o
当把TTC设在1.4、1.0和0.6的时候,我们AEB的TTC和实际要求的预值之间的精准度是非常非常高的。
在整个过程里面从FCW到AEB是一个过程,在不同的速度区间下,都有个最低的时间,我们根据这个画一根线,对司机来说,到时候就有两个决策。
o 通过制动解决问题
o 通过拐出去:经过很多次的货车侧翻和教训,相信现在大量的司机都是不打方向,宁可往前撞的。
o FCW的开始时间
o 驾驶员意识到的时间
o 驾驶员意识到没动作(刹车)的时间
o AEB的启动时间
- 感知计算传递
- 刹车执行器(由刹车类型决定)
§ 后面一体化的比较有趣了
- 开始减速
- 减速过程

图4. FCW实例
这个上面所说的2.7秒,看来就是所得出来正常驾驶员所能接受的
o TTC设计过长,可能会让开车有侵略性的受不了
o TTC设计过短,则让司机觉得FCW无用
这里就需要运用大量数据和统计的事来了,我相信这个2.7秒是个抽象的值,实际上是个函数。
根据Toyota在《Study on TTC
Distribution when Approaching a Lead Vehicle》一文里面多样的数据,感觉确实乘用车和商用车差异较大,具体在实施过程中,可能具有很大的差距,是需要考虑驾驶员的行为和接受度的。细节还需要对比更多的数据来对实际的设置有相应的考虑,可能以后自己还能调节这个Profile呢,或者进行更深度的学习。
小结:
1)主动安全,比我们想象的单个ECU和感知系统的事要复杂得多,因为牵涉了很多驾驶行为(人)和道路&环境(路),变量是比较多的。
2)以后这块的数据,是比较值钱的。
开发方案:
第一,统计连续10帧图像中每两帧图像车辆的图像像素偏移数,行人的图像像素偏移数,再依据帧率分别计算车辆和行人平均像素便宜和图像像素偏移速度。
第二,将图像坐标系转换成世界坐标系,在世界坐标系下,分别计算行人和车辆的矢量合成速度v12,计算TTC碰撞时间T=s/v12。
第三,分别计算行人行走的距离s1=v1*T, 车辆行驶的距离s2=v2*T。依据s1,S1,s2,S2的关系,判断行人和车辆是否相撞。
第四,同样道理,可以判断车辆与车辆的碰撞TTC问题。

图5.
行人与车辆速度距离及TTC
数据集上达到(详细指标在开发过程中逐步修正)
|
行人(pedestrain) |
车辆(vehicle) |
TTC |
备注 |
|
|
准确度 |
80%(70米) |
80%(120米) |
90%(70米) |
|
|
召回率 |
50%(70米) |
60%(120米) |
50%(70米) |
|
|
帧率 |
30fps |
30fps |
30fps |
表2. 性能指标
集成
算法开发完成后,将算法集成到嵌入式硬件平台用于路测。
TTC测距算法的更多相关文章
- [自娱自乐] 3、超声波测距模块DIY笔记(三)
前言 上一节我们已经研究了超声波接收模块并自己设计了一个超声波接收模块,在此基础上又尝试用单片机加反相器构成生成40KHz的超声波发射电路,可是发现采用这种设计的发射电路存在严重的发射功率太低问题,对 ...
- [自娱自乐] 4、超声波测距模块DIY笔记(四)——终结篇·基于C#上位机软件开发
前言 上一节我们已经基本上把超声波硬件的发射和接收模块全部做好了,接下来我们着手开发一个软硬结合的基于C#的平面定位软件! 目录 一.整体思路 二.效果提前展示 2-1.软件部分展示 2-2.硬件部分 ...
- ICP算法使用遇到的问题
这几天在学习数据关联的方法,本来想使用ICP算法进行距离测距数据的配准,但是用的过程中出现问题,配的不准,而且偏差更大了. 红色的和黄色的2维激光点进行ICP配准,但将变换矩阵和黄色进行乘之后偏差更大 ...
- k-近邻(KNN)算法改进约会网站的配对效果[Python]
使用Python实现k-近邻算法的一般流程为: 1.收集数据:提供文本文件 2.准备数据:使用Python解析文本文件,预处理 3.分析数据:可视化处理 4.训练算法:此步骤不适用与k——近邻算法 5 ...
- 海伦去约会——kNN算法
下午于屋中闲居,于是翻开<机器学习实战>一书看了看“k-邻近算法”的内容,并学习了一位很厉害的博主Jack Cui的代码,自己照着码了一遍.在此感谢博主Jack Cui的知识分享. 一.k ...
- BP神经网络算法推导及代码实现笔记zz
一. 前言: 作为AI入门小白,参考了一些文章,想记点笔记加深印象,发出来是给有需求的童鞋学习共勉,大神轻拍! [毒鸡汤]:算法这东西,读完之后的状态多半是 --> “我是谁,我在哪?” 没事的 ...
- 机器学习实战笔记-k-近邻算法
机器学习实战笔记-k-近邻算法 目录 1. k-近邻算法概述 2. 示例:使用k-近邻算法改进约会网站的配对效果 3. 示例:手写识别系统 4. 小结 本章介绍了<机器学习实战>这本书中的 ...
- 一步步教你轻松学KNN模型算法
一步步教你轻松学KNN模型算法( 白宁超 2018年7月24日08:52:16 ) 导读:机器学习算法中KNN属于比较简单的典型算法,既可以做聚类又可以做分类使用.本文通过一个模拟的实际案例进行讲解. ...
- [转]Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)
转自http://blog.csdn.net/c406495762/article/details/75172850 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 一 简 ...
随机推荐
- Mybatis的简单增删改查
刚开始学习Mybatis可以先看下官方文档,MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集.MyBat ...
- 02- TCP/IP 协议族
TCP/IP概述 TCP/IP协议之间的关系 常用的协议 ping命令 tracert命令 常用协议
- Fastjson反序列化漏洞复现
Fastjson反序列化漏洞复现 0x00 前言 对Fastjson反序列化漏洞进行复现. 0x01 漏洞环境 靶机环境:vulhub-fastjson-1.2.24 ip:172.16.10.18 ...
- 发现个利器--FastAPI(Py3.6+版本)
from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"H ...
- 手动脱PeCompact 2.20壳实战
作者:Fly2015 PeCompact壳又是一个没有听说过的壳,需要脱壳的程序是吾爱破解培训的第一课的选修作业四.最近对脱壳有点上瘾了,当然也遭受了脱壳受挫的无奈,但是比较幸运还是把这个壳给搞了. ...
- dex文件格式学习
一.dex文件的生成 我们可以通过java文件来生成一个简单的dex文件 编译过程: 首先编写java代码如下: (1) 编译成 java class 文件 执行命令 : javac Hello.ja ...
- hdu3987 最小割边数
题意: 是让你求最小割之后问最小割的最少边数是多少,因为最小割不是唯一的,所以存在最小边数的问法.思路: 两个方法,一个是先一遍最大流,然后把割边全都改成流量1,其他的全都改成流量 ...
- wordpress如何隐藏后台位置?
2017-02-08 20:43:20 言曌 阅读数 3585更多 分类专栏: WordPress 转载 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本 ...
- <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- 【python】【补】Leetcode每日一题-合并两个有序数组
[python]Leetcode每日一题-合并两个有序数组 [题目描述] 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组 ...