原创 防疲劳驾驶

2012-4-2 13:40 905 7 8 分类: 汽车电子

驾驶员在疲劳时,其对周围环境的感知能力、形势判断能力和对车辆的操控能力都有不同程度的下降,因此非常容易产生交通事故。所以,疲劳驾驶是当今交 通安全的重要隐患之一。为此,很多研究机构与厂家都希望推出能够预防疲劳驾驶的设备,希望能够快速抢占汽车市场,但由于研发难度大,效果不理想,软硬件成 本高,直到如今也只是在极少车型上有相关系统,如丰田和沃尔沃的一些高配车型。

高级驾车辅助系统ADAS是未来汽车电子的发展方向,而防疲劳驾驶系统则是ADAS里面的一项非常重要的子系统。由于公司发展需要,我也有幸能够进入ADAS团队,也希望自己的一点经验能够给后来者一点启示。

目前能够非接触式检测疲劳程度比较权威的方法是PERCLOS,即将眼睑闭合时间占某一特定时间的百分比。因此,要想通过这种方法检测疲劳度,快速 且准确的找到眼睛,并判断眼睛闭合程度是关键。当然,方法很简单,但实现却不容易,至少难倒了对疲劳预警系统感兴趣的很多国内的汽车电子厂家和原厂。

有人想通过亮瞳效应来定位眼睛,方法与设备也非常简单,由于瞳孔对某一波长的光反射明显,使用近红外LED灯以一定频率亮灭,在图像中即可呈现出瞳 孔位置有明显的差别,根据图像差就能找到候选点。但这种方法有很多不足,LED灯功率不足的情况下,效果明显较差,但如果功率过高,则会伤害人眼,虽然使 用者并不能看见近红外光,但伤害且一直存在!即使如此,光照影响、性别、个体差异都将影响这种方法的有效识别率,带眼睛则更不用说了。

有人。。。。。。还是不要一一列举了

还有国内甚至是国外的很多相关论文所描述的方法,大都无参考价值。当然,如果只是想做玩具或者是DEMO,又或是忽悠一下领导,用里边的某些方法还是可行的,要想真正做一个带来商机的产品则完全不行。如果可能,搜索在这方面有突出贡献的厂商的相关专利或许会有更多启发。

如果您需要尽快推出DEMO,增加公司高层的信心,抢占市场先机,又能够有较强的扩展性与提升性,不妨采用一些折中的办法来实现。系统大致的工作流程:搜索人脸、定位眼睛、判断眼睛状态、PERCLOS判断疲劳度。

搜索人脸:

基于Haar特征的Adaboost的算法是这方面的权威,曾经有人说,这种算法与思想实在难以超越,当然前提是使用低成本硬件。这个算法,可以直 接从opencv移植到DSP上面,对于正面人脸检测效果还是相当不错的,但如果您需要更快的速度与实际的适用性,您得优化一下这个算法,缩小图片,适当 的应用DMA、CACHE与硬件加速器,浮点转定点,自己训练减少分类器层数等方法都能够有效的提升该算法的效率。

OPENCV中带的训练好的分类器只能做正面人脸检测,而我们的疲劳预警系统的摄像头一般装在仪表前方的方向盘柱上,从这个角度拍的是仰角,一般不 能获取到较好的效果,所以需要自己训练。如果您还需要检测人脸朝向,可以考虑多角度的Adaboost算法,当然最好在您前面工作已经做的很好的情况下才 去深入。当然,有人喜欢用一步到位的方法。

定位眼睛:

定位眼睛一般要求摄像头加滤光片,只让近红外光通过,只有这样才能在带墨镜的情况也能够检测眼睛。如果人脸定位能够取得比较好的效果,那到了这一层面,只需要排除眉毛、眼袋、镜片反光、镜框、鼻孔的影响。当然,说的容易,做的难。

由于硬件的制约,与成本的控制,眼睛的有效像素值太少,眼睛的特征并不十分明显,极容易与鼻孔、黑色镜框、眉毛混淆。这个时候,模式识别的方法可能 会面临速度慢且效果不佳的尴尬,至少在这一块,得花上不少的时间。这个时候,三庭五眼、几何关系、边缘特征等一系列传统方法能够较快的实现一些差强人意的 效果。

如果您需要更好的效果,那就在成本允许的情况下,视频能够更加清晰,DSP的性能更加卓越,这对于眼睛的精确定位有着非常重要的作用。因为,在这 里,很多人搞不清楚疲劳预警是什么东西,以为疲劳预警就是眼睛睁闭检测器。如果您连这个也不懂,那没必要这么苛刻,毕竟成本低也算是一种优势。

眼睛状态判别:

眼睛状态判别依赖于眼睛定位精确的程度,或许仅仅是用P尾阈值法或者是边缘检测就能够得出睁闭的结果。只对于只想做眼睛睁闭检测器的人来说,到这一步已经够了。至少,我们这个demo的效果应该还是可以的。

如果,您需要卓越,那您考虑的应该是眼睛的睁闭程度。这个最好能够有统计学习算法的支持,计算出驾驶员眼睛的正常大小,这样才能够得到正确的睁闭程度。不过,要使睁闭程度变的有意义,运行速度是至关重要的!

PERCLOS:

非常简单的公式,非常有效的算法,依赖于能够获取实时的眼睛睁闭信息。

 

在这个系统中,准确率与速度是最关键的,而且往往准确率与速度是相互制约的,这需要您的权衡。当然,我们更乐于看到有更高效的系统方案推出。。。

文章评论1条评论)

登录后参与讨论

用户377235 2012-9-18 11:31

介电常数在4.2附近,也就是说,隔空的1mm,等于PCB的4.2mm

敢问这句话的依据是什么?

介电常数和绝缘没有直接的关系。也没听说过介电常数越大,绝缘越差的。

空气介质击穿电压也可近似地用30kv/cm的击穿场强来估计。

玻璃纤维+环氧树脂层压—18k V/mm 割空PCB的原因是增加爬电距离,减少结露和污秽情况下短路的可能。

以上。供楼下参考

用户377235 2012-9-17 15:06

高压需要隔离就是为了人身安全,和符合相关安规有求。

用户1380344 2012-9-13 11:45

学习中,谢谢 !

用户1696769 2012-4-5 09:48

很好的一项辅助功能。 “在这 里,很多人搞不清楚疲劳预警是什么东西,以为疲劳预警就是眼睛睁闭检测器。如果您连这个也不懂,那没必要这么苛刻,毕竟成本低也算是一种优势。”的确有点疑问,不知道博主提出的这种疲劳预警功能,预警的程度在什么范围?
相关推荐阅读
用户959079 2012-04-02 13:41
面对我们的尴尬
今天几个同事在一起聊天,聊到了我们这些开发人员的尴尬。 一个同事说:我家对面的那个人是我们村的首富,一辆宝马,一辆奔驰,还有很多辆叫不出名的车,一栋自己建的别墅,还有很多房产。每当我回家的时候...
用户959079 2012-04-02 13:39
浅谈单片机开发---操作系统
工作中分析了一下现状,项目繁多,需求不一,团队成员单片机开发经验缺乏,编程风格各异,几乎没有可以重复利用的模块,无现成提高开发效率与测试的工具。 为使开发更迅速,流程更标准,同时也让系统模块化...
我要评论
1
7
关闭 站长推荐上一条 /2 下一条