1 引言
21世纪以来,汽车产业扮演了一个龙头的角色,与此同时,电子设备在整车制造成本所占比例,由16%增至30%以上,2010 年汽车搭载汽车电子的比例亦将达40%,未来的汽车电子产品中,围绕安全、节能、环保、舒适和娱乐等方面的元器件及其周边产品将发展更快。在此背景下,本文设计开发了一个基于图像处理技术的智能车载安全系统。
2 系统介绍
2.1 开发平台
本系统以EC5-1719CLDNA 开发板为平台,EC5-1719CLDNA 支持Intel CoreDuo/Celeron M 低功耗处理器,由Intel945GM 芯片组集成图形处理核心,支持VGA、LVDS,DVI,TV-OUT 多种显示及双屏幕显示, 有 1 个PCI-104、1 个PCIE×4扩展总线、4个USB2.0接口、2个SATA接口。
开发板扩展了丰富的外围硬件设备,使用图像处理开源代码opencv 中强大的算法技术,结合信号处理技术,充分发挥了此开发板高速的CPU 性能。
2.2 系统框架
此系统功能划分为三大方面:安全、通讯、多媒体。安全包括车牌测距、激光测距、疲劳驾驶检测、全景环视系统(AVM)、酒精浓度检测和温度检测,通讯包括GPRS上网、GSM 通话、GPS 导航,多媒体,媒体播放器、包括车载娱乐系统、视频采集。
系统框图如图1。
2.3 基本功能
系统实现功能有激光测距、疲劳检测、酒精浓度检测、GPS 定位、全景环视功能。
激光测距为测量汽车与其左右两侧可能存在的汽车之间的距离,确定是否安全,不安全则发出警报提醒。疲劳检测为监视人眼闭合时间,超过一定时间认为驾驶员已疲劳,发出报警音。酒精浓度检测为测试空气中的酒精浓度,在酒精浓度超标的情况下,发出警报。GPS 定位将GPS系统嵌入本系统内,从而实现GPS 定位。
全景环视系统在车辆四周安装4 个摄像头,通过四个摄像头实时取景,将四个摄像头所采集的图像组合在一起显示在驾驶室的显示屏上,司机可以一眼了解到本车周围的全部情况,提高汽车的综合安全系数。
3 功能实现
3.1 激光测距的功能实现
原理图如图2,假设激光束与摄像头的光轴完全平行,激光束的中心落点在摄像头视域中为最亮点。当激光束照射到摄像头视域中的跟踪目标上时,摄像头就可以捕捉到这个点。
易推导得距离D:
其中:Num是从图像中心到落点的像素个数,Rop 是每个像素的弧度值,Offet 是弧度误差。
算法流程为:首先,启动摄像头,通过摄像头采集视频图像,截取图像;通过亮点检测程序寻找激光所示的亮点,如果存在,测量其距图像中心的像素个数Num ;最后,通过公式计算间距,通过与设定的安全距离的比较,确定是否安全,不安全则发出警报提醒。
3.2 疲劳驾驶检测功能实现
研究表明,人在发生困倦的时候,眨眼速度变慢,眨眼持续时间变长,本系统通过提取司机的闭眼持续时间的长短来判断是否有疲劳发生。
通过检测人脸范围,判断人脸是否存在,如果不存在,定时器清零,返回;如果检测到人脸,定时器启动,开始计数;同时,通过面部特征识别,来定位两眼;认为如果能在一定的时隙内定位到两眼,证明驾驶员并非出于疲劳驾驶状态;此时定时器清零,返回;如果在5S 内无法定位到眼睛,则认为处于疲劳驾驶,此时发出警报提醒。
算法流图见图3。
3.3 酒精浓度检测功能的实现
本系统利用酒精传感器NAP-66E 来实现酒精浓度的测量。NAP-66E 具有良好的线性度,工作温度范围广,可在各种恶劣的环境下正常工作,其输出的最大电压为10mV,因此为了获取酒精度,必须先把酒精传感器的输出模拟量通过两级放大器放大到和A/D转换器TLC2543 匹配的电压值,经过A/D 转换后,得到的数值在MCU 中进行适当的处理,最后通过串口线和PC 机进行通信,把测得的数据实时传输给PC 机,利用PC 机实现显示、报警等功能。应用酒精检测芯片,通过与单片机、A/D 芯片、运算放大器的硬件连接,构成了酒精检测模块。设计电路如图4 所示。
3.4 GPS 定位功能的实现
本系统使用GARMIN 公司的GPS 接收机OEM 板— GPS 15H,采用RS-232输出,接口协议采用NMEA0183 版本2.00或3.00(可选)的ASCII 码语句,数据更新率为每秒一次,串行传输参数为:波特律= 9600,数据位= 8 位,停止位= 1位,无奇偶校验。
在实现GPS数据的读入时系统使用串口来接收数据,软件实现原理如下:
采用先初始化,设置使用的串口,相应的波特律为9600,数据位为8 位,停止位为1 位。在用户点击接收按钮后,采用查询方式,从读入1 0 2 4 个字节寻找GPRMC( Global Position RecomendedMinimum Specific ) 之后的一些字符串,在GPRMC 中包括了程序中最关心的数据有效位,纬度和经度,数据格式如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>
<1> 当前位置的格林尼治时间,格式为hhmmss
<2> 状态, A 为有效位置, V 为非有效接收警告,即当前天线视野上方的卫星个数少于3 颗。
<3> 纬度, 格式为 ddmm.mmmm
<4> 标明南北半球, N 为北半球、S为南半球
<5> 径度,格式为dddmm.mmmm
<6> 标明东西半球,E 为东半球、W为西半球
<7> 地面上的速度,范围为0.0 到999.9
<8> 以后的数据不使用。
为了接收数据方便,用相应的软件屏蔽掉不需要的语句,只剩下GPRMC 语句。由于GPS 模块上电后在露天的场合下大约90 秒左右得到有效数据,所以在找到GPRMC 中的G 后的第13 位为数据有效位。
当判断到‘A’时,从数据段中的第17位起读取后续9位作为纬度显示,再从第29位起读取后续10 位作为经度显示。然后将接收到的GPS 经纬度通过适当的转换自动调用库里的地图,并在地图上用红色点表示当前所在的位置。
3.5 全景环视功能实现
全景环视系统在车辆的车头前格栅、左右侧面外后视镜及尾门安装了4 个摄像头。摄像头带有广角镜头,可进行实时广角摄影。软件上采用DirectShow 开发包进行开发,用Di rectShow 开发应用程序,可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。