陈芳
摘 要:近年来,恶性交通事故时有发生,在加强汽车被动安全防御技术的同时,也应该加强汽车的主动安全技术,以避免更多事故的发生,通过建立汽车安全行为分析,可以减少交通事故的发生,将交通事故的危险扼杀在摇篮之中,这样也可以提高交通事故的安全率。本文基于OOP技术对汽车行车安全行为进行了分析,希望本文的相关研究可以降低我国行车事故率。
关键词:OOP技术 车辆行为 安全分析
中图分类号:TP391;U461 文献标识码:A 文章编号:1672-3791(2012)10(c)-0172-02
随着我国汽车保有量的不断增加,我国交通事故的发生率也不断提高,这个我国国民经济带来了巨大的损失,仅仅2011年上半年,我国共发生107193起道路交通事故,造成29866人死亡、128336人受伤,直接财产损失4.1亿元。因此,在加强汽车被动安全防御技术的同时,也应该加强汽车的主动安全技术。本文基于OOP技术对汽车行车安全行为进行了分析,希望本文的相关研究可以降低我国行车事故率。
1 OOP技术概述
一般来说,OOP技术主要包含以下的组件和概念。
1.1 组件
将软件的功能和数据集成在一起形成的单位,这是OOP模块化和结构化的基础和条件。
1.2 抽象性
即程序对正在处理的某些信息进行忽略,以提高其信息处理能力。
1.3 封装
通过封装技术可以确保系统组建不能以不可预期的方式对其内部的组件状态进行改变。
1.4 多态性
组件的类集和引用会涉及到其它各种类型的不同组件,而且引用组件所产生的结果得对实际调用的类型有所依据。
1.5 继承性
这是指组件之间有相关的继承性,可以在组件的基础上创建各类的子组件,增加了系统的扩展性和通用性。
2 汽车安全行为概述
为了分析和标定汽车的安全行为,笔者对沈阳市的300多名的公交车司机和长途汽车司机的驾驶操作调查,总结出了以下8种典型的驾驶行为和操作行为。
2.1 压车道线行驶
这是一种比较常见也很危险的驾驶行为,即汽车压着超车道进行行驶,应该对这种行为进行检测,同时分析汽车行驶的安全程度。
2.2 疲劳驾驶
疲劳驾驶也是造成交通事故的另外一个重要的原因,是指驾驶员是否在疲劳的状态下进行行驶,对于如何判断驾驶员是否处于疲劳的状态。本文是通过观察驾驶员转动方向盘的频率来判断其是否处于疲劳的状态,如果驾驶员长时间的没有转动方向盘,应该是驾驶员处于疲劳驾驶的状态。
2.3 超车并道
这是指在驾车过程中驾驶员可能在某些时候采用超车并道驾驶,这种驾驶行为也是导致交通事故的一个重要原因。本文通过判断驾驶员的操作状态来判断驾驶员是否存在超车并道的行为,这种操作方式往往有以下特征:打开转向灯、加速、方向盘向左转动。
2.4 车辆掉头转弯
这种行为主要是指在驾驶过程之中,驾驶员突然驱动车辆进行掉头,这种行为也容易导致发生交通事故。发生这种事故时,往往存在以下几种操作特点:驾驶员有方向盘大幅度的转动、转向灯点亮。
2.5 加速行驶状态
这是驾驶员一种非常常见的行为,这是指驾驶员处在一种加速行驶的状态之中,对于这种驾驶行为的判断,主要是采用通过判断驾驶员操作油门的开启度来判断,汽车是否处于加速状态,因为加速状态也往往是驾驶员另外一个危险动作的前兆。
2.6 减速行驶状态
这种行为也是另外一种非常危险的驾驶行为,因为减速状态也往往是驾驶员另外一个危险动作的前兆。本文对于驾驶员减速行为的判断主要是通过判断驾驶员操作油门的开启度来进行进一步的判断,主要是驾驶员开启油门的度慢慢减小。
2.7 匀速行驶状态
车辆的匀速行驶状态是绝大部分时间状态下的行驶状态,这种状态应该是驾驶员下一个行为的预测基础,本文对这种行驶状态的判断,主要是通过判断驾驶员的油门位置是否稳定来判断。
跟踪这个状态为下一个时刻的驾驶行为预测奠定基础。主要特征为车速稳定、方向盘保持连续地小角度转动、油门位置稳定。
2.8 启动状态
这也是驾驶员另外一种常见的状态,这种状态的特征是油门加大、档位挂在低速档、离合器缓慢抬起、车速逐步加快以及刹车信号渐渐消除。
3 基于OOP技术的车辆行为安全分析系统
本文以视频技术为基础,通过采用道路摄像系统为硬件系统,全面获取驾驶员的各个行为,然后通过分析采集到的驾驶员的各类行为,以判断车辆的行为是否处于安全的状态,这个系统也叫车辆行为安全分析系统,本文开发的系统是以OOP技术为核心的,然后依据相关算法对车辆异常行为实现了检测。
3.1 視频采集模块
这个模块的动能,主要是通过交通摄像头,获取全方位的图像,以判断驾驶员的各种行为,这是整个系统的基础。一般来说,这个模块主要由视频获取类和透视展开类构成。
(1)类CameraFrameCollector IClass]:从道路摄像系统获取相关的图像视频,一般来说,这个类包括以下一些函数。
①public boolean open():这个函数的功能主要是对道路摄像系统进行进入,如果进入成功则返回ture,否则返回false。
②public boolean open(String captureDevice):这个函数的功能主要是对连接串的摄像设备进行打开。
③public boolean open(String captureDevice,String videoSize):这类函数的功能是对连接串的摄像设备进行打开,并对摄像机的视频大小进行指定。
④public void close(),这个函数的功能是对摄像设备进行关闭。
⑤public Bufferedlmage getCur rentFrame(),这个函数的功能是对当前视频帧进行采集。
(2)类PerspectiveUnwrap[Class]:是进行透视展开全景图像,主要包括以下函数。
①public PerspectiveUnwrap(Buffere dlmage imageOD):这个函数是一个构造函数,其功能是对透视展开参数进行初始化,并对需要展开的全景图像进行传入。
②public void createTable(int myFv,int X,int Y):这个函数是根据需要透视展开的坐标和焦距对透视映射表进行建立。
③public Bufferedlmage unwrap(int start,boolean insert):这个函数是进行透视展开全景图像,并对透视展开图进行返回
3.2 运动对象检测模块
这个模块的主要功能是对驾驶员的前景区域进行捕捉,同时进行相关的对象跟踪,这个模块采用前景提取算法是基于混合高斯模型的背景差分算法。
(1)MGBackgroundModel[Class]:这是一种自适应背景模型,这种模型是基于混合高斯分布模型的。
(2)public MGBackgroundModel0:这是一种构造函数,这个函数是用来对混合高斯模型进行初始化。
(3)public void learn(int[][]image):这是一个背景学习函数,主要用来对背景模型进行建立。
(4)public void segment(int[][]image,boolean[][]mask),这是一个前景检测模块,主要用来对采集到的图像的背景和前景进行分割。
3.3 对象跟踪模块
这个模块主要对车辆对象进行跟踪和检测,以对车辆对象的轨迹和运动状态进行获取。
(1)TeackObjectlClassl:这是对象跟踪类,这种类的功能主要是对跟踪对象的基本信息进行存放。
(2)Public TrackObject(int ID,Color_color,Rectangle rect):这个类是对追踪对象的颜色,ID和位置进行初始化。
(3)Public void changeTrackTargetRect(Rectangle):这个类是对对象矩形框位置进行更新。
(4)Public Rectangle getCurRecO:这个类是对对象当前位置进行返回。
(5)Public Rectangle getLastRec0:这个类的功能是对对象上一帧位置进行返回。
(6)Public List getTrace():这个类的功能是对对象的轨迹信息进行返回。
(7)Public int getLiveTime():这个类是对对象的生存时间进行返回。
(8)TrackObjectGrouplClassl:这个类是跟踪对象队列类,功能主要是对每一帧的对象队列进行存放。
(9)Public TrackObjectGroup(Buffere dlmage image):这个类的功能是是初始化跟踪对象队列,然后将输入参数设为当前帧图像作为用以跟踪。
(10)Public void addTrackTarget(List
(11)Public List
3.4 行为识别模块
这个模块主要是对车辆的非正常行为继续拧识别,主要包括本文第三章包括的各类行为,同时根据行为状态对其安全性进行判断。
(1)ViolationDetect[clms]:主要是对车辆的各种行为进行检测,主要包括本文第三章包括的各类行为。
(2)Public vjolmionDetect(Listtraek ObjectGroup):这个函数是一个构造函数,主要是对其对象队列的帧进行检测。
(3)PublicTraekObject[]redLightRunner():这个类是对闯红灯行为的车辆队列进行返回。
(4)PublicTrackObject[]speeding():这个类返回的数据是具有超速行为的车辆队列。
(5)PublicTrackObjeet[]wrongWay Drivers0这个类返回的数据是逆向行驶车辆队列。
参考文献
[1] 李亚光,曾学军.上海电子警察系统的建设和应用[J].中国交通信息产,2011(6):82-84.