ADAS可行驶区域道路积水反光区域的识别算法

Water logging area reflecting recognition algorithm for ADAS

1. 工程概要

1.1  概述:

随着社会的发展和技术的进步,传统上远、近光灯机械、定向转变的前照灯,已经无法满足人们日益增长的形式安全需要,于是更为智能高效车灯应运而生。未来的车灯能根据周边环境和环境的光源变化调整自身的配光方式,提供更大的照明范围和照明距离,同时也能改善传统前照灯的照明死角,因此可以显著提高行车安全性和驾驶舒适性。

尤其在下雨天,路面交通情况要比晴天情况复杂很多。如果车前方有积水,且本车灯光的照射会使对向来车产生炫目的积水区域,会给驾驶员带来一定的风险。因此,智能化车灯需要检测积水的反光区域,并采取措施。

2. 研究目标

在汽车行驶过程中,道路上不仅仅远光会对驾驶员的眼睛形成炫目,雨天积水受到其他光源的照射形成强烈的反射光也会对驾驶员的形成强烈的炫目。不仅如此由于路面上通常会有多种光源,分别有主动光源和被动光源,并且积水的区域主要出于地面,因此我们需要处理图像识别出哪些是道路哪些是非道路区域,在道路的区域中再识别主动光源和被动光源。

因此本文旨在实时检测前方路面信息,通过特征检测,确定积水区域的中心位置信息,并检测积水区域的面积区域。视觉感知模块通过积水区域的位置信息,由大灯实现对积水区域的实时的自适应反光弱化控制,防止积水区域强烈的反光对来车驾驶员造成眩目。

3. 研究范围定义

- 各种路面上积水反射光的检测。

- 路面上的主动光源和被动光源的检测。

- 反射光的强度和反射光区域的检测。

- 对下雨天、天阴以及各种复杂路况下,路面上积水反射光的多场景识别。

4. 产品要求

4.1综述

运用图像模式识别技术进行湿滑路判别已经成为不利天气下道路交通安全保障技术研究的热点。通过图像的处理和深度学习,我们能够获得路面轮廓,亮度和像素来判断复杂路面上的路况,并进行识别和判断。

开发基于Gauss滤波、canny边缘检测,识别路面区域,识别主动和被动光源。通过反射光的强度确定反射源的位置和坐标以及积水区域的长宽高。开发目标能够在多场景下能够识别路面的积水的反射光情况,并能保证程序的实时性和鲁棒性。

4.2 技术开发方案

1)图像裁剪:通过设定图像ROI区域,拷贝图像获得裁剪图像。

2)图像二值化:就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。

3)形态学滤波:数字图像处理中的形态学处理是指将数字形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量,比如边界、骨架以及凸壳,还包括用于预处理或后处理的形态学过滤、细化和修剪等。图像形态学处理中我们感兴趣的主要是二值图像。

4)Canny边缘检测:Canny边缘检测算子是John F. Canny于1986年开发出来的一个多级边缘检测算法。Canny的目标是找到一个最优的边缘检测算法,最优边缘检测的含义,如下所示:

(A)最优检测:算法能够尽可能多地标识出图像中的实际边缘,漏检真实边缘的概率和误检非边缘的概率都尽可能小;

(B)最优定位准则:检测到的边缘点的位置距离实际边缘点的位置最近,或者是由于噪声影响引起检测出的边缘偏离物体的真实边缘的程度最小;

(C)检测点与边缘点一一对应:算子检测的边缘点与实际边缘点应该是一一对应。

道路交通场景光源来源复杂,积水的反射区域主要来自于路面,因此,我们需要定反射光源路面的反射区域。通过路面的识别,我们可以通过路面色彩和表面的纹理来识别路面的,并进行边缘区域的提取。

5)道路颜色特征的提取

公路路面的材质主要是柏油路面,因此可以根据观察路面的颜色,提取各种路面状态下的颜色特征值进行路面种类的识别。在机器视觉中,常用的颜色模型可以分为RGB模型,HIS模型以及HSV模型。由于每个模型都有大量的数据,我们可以用主成分分析来将数据降维,从而来减少计算量。

6)道路纹理特征提取

由于路面状态受地面层的温度和湿度以及大气等多方面的影响,单单通过色彩可能无法准确获得路面区域。因此,我们可以通过获取路面图像的纹理来进行路面的识别。目前对路面纹理提取的方法主要有:灰度共生矩阵,Gabor小波变换灯方法。

灰度共生矩阵:

灰度共生矩阵,指的是一种通过研究灰度的空间相关特性来描述纹理的常用方法。 1973年Haralick等人提出了用灰度共生矩阵来描述纹理特征。由于纹理是由灰度分布在空间位置上反复出现而形成的,因而在图像空间中相隔某距离的两像素之间会存在一定的灰度关系,即图像中灰度的空间相关特性。

直觉上来说,如果图像的是由具有相似灰度值的像素块构成,则灰度共生矩阵的对角元素会有比较大的值;如果图像像素灰度值在局部有变化,那么偏离对角线的元素会有比较大的值。通常可以用一些标量来表征灰度共生矩阵的特征,例如,对比度,能量,相关性,熵等参数。

Gabor小波变换灯方法:

Gabor滤波方法的主要思想是:不同纹理一般具有不同的中心频率及带宽,根据这些频率和带宽可以设计一组Gabor滤波器对纹理图像进行滤波,每个Gabor滤波器只允许与其频率相对应的纹理顺利通过,而使其他纹理的能量受到抑制,从各滤波器的输出结果中分析和提取纹理特征,用于之后的分类或分割任务。Gabor滤波器提取纹理特征主要包括两个过程:①设计滤波器(例如函数、数目、方向和间隔);②从滤波器的输出结果中提取有效纹理特征集。

7)被动光源和主动光源检测

在路面上会有主动光源和被动光源,因此,我们需要判别主动光源和被动光源的差异来进行分类。

夜间路面的反光主要来源于车灯。车灯往往是高色温高亮度的光源,反射光源和主动光源的光照特性不同,因此我们需要找到光源不同的特点并进行筛选主动光源和被动光源的。

8)自适应的灰度调整

由于路面上会有不同的亮度情况,因此我们需要实现自适应的图片二值化算法。在不同的亮度工况下,我们可以通过获得不同亮度区域。

5. 性能指标

1)识别路面积水区域,并能够给出积水区域的中心点物理坐标(x,y,z)

2)积水区域的等效矩形长、宽(或等效不规则图形的各个边长参数)

3)最小识别距离(积水区域下边缘距离本车的最小纵向距离):45m(即本车以80km/h行驶,至少能提前2秒识别到积水区域)

4)能够给出识别最大积水区域识别面积的大小(即摄像头能识别的最大的积水区域面积)。

ADAS可行驶区域道路积水反光区域的识别算法的更多相关文章

  1. 2017年研究生数学建模竞赛-E题 MATLAB 作战区域道路示意图

    MATLAB 画区域作战图 clear load('output_path1.mat') k = 1:130; gplot(edge(k,k),loc(k,:),'c-') title('作战区域道路 ...

  2. Java内存区域和判断对象“死”“活”算法

    转载自: http://www.cnblogs.com/aigongsi/archive/2012/04/06/2434771.html java与C,c++有很大的不同就是java语言开发者不需要关 ...

  3. 洛谷P3639 [APIO2013] 道路费用 [生成树的特殊算法]

    题目传送门 道路费用 格式难调,题面就不放了. 分析: 这是一道要细(yan)心(jing)的生成树的好(gui)题. 首先我们看到$k$的范围非常小,那么我们就可以直接$2^k$枚举每一条加边是否选 ...

  4. 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN

    参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...

  5. 使用Python基于VGG/CTPN/CRNN的自然场景文字方向检测/区域检测/不定长OCR识别

    GitHub:https://github.com/pengcao/chinese_ocr https://github.com/xiaofengShi/CHINESE-OCR |-angle 基于V ...

  6. ADAS芯片解决方案汇总

    ADAS(高级辅助驾驶系统),是指利用安装于车上各式各样的传感器,在第一时间收集车内的环境数据,进行静.动态物体的辨识.侦测与追踪等技术上的处理,从而能够让驾驶者在最快的时间察觉可能发生的危险. 在过 ...

  7. mser 最大稳定极值区域(文字区域定位)算法 附完整C代码

    mser 的全称:Maximally Stable Extremal Regions 第一次听说这个算法时,是来自当时部门的一个同事, 提及到他的项目用它来做文字区域的定位,对这个算法做了一些优化. ...

  8. 【Unity游戏开发】UGUI不规则区域点击的实现

    一.简介 马三从上一家公司离职了,最近一直在出去面试,忙得很,所以这一篇博客拖到现在才写出来.马三在上家公司工作的时候,曾处理了一个UGUI不规则区域点击的问题,制作过程中也有一些收获和需要注意坑,因 ...

  9. 《深入java虚拟机》读书笔记之Java内存区域

    前言 该读书笔记用于记录在学习<深入理解Java虚拟机--JVM高级特性与最佳实践>一书中的一些重要知识点,对其中的部分内容进行归纳,主要是方便之后进行复习. 运行时数据区域 Java虚拟 ...

随机推荐

  1. 1149 Dangerous Goods Packaging

    When shipping goods with containers, we have to be careful not to pack some incompatible goods into ...

  2. ECMAScript 2019(ES10)新特性简介

    简介 ES10是ECMA协会在2019年6月发行的一个版本,因为是ECMAScript的第十个版本,所以也称为ES10. 今天我们讲解一下ES10的新特性. ES10引入了2大特性和4个小的特性,我们 ...

  3. 【MySQL】实现线上千万数据表添加字段操作以及缓存刷新

    需求背景: 由于业务需求,需要在线上用户表添加渠道字段,用于区分不同渠道注册的用户,目前该表有20+个字段,8个索引 线上用户数据大概1500W左右,需要不停机增加数据库字段,同时需要刷新Redis缓 ...

  4. git基于master创建本地新分支

    应用场景:开发过程中经常用到从master分支copy一个本地分支作为开发分支 步骤: 1.切换到被copy的分支(master),并且从远端拉取最新版本 $git checkout master $ ...

  5. 反病毒攻防研究第004篇:利用WinRAR与AutoRun.inf实现自启动

    一.前言 由之前的一系列研究可以发现,为了使得"病毒"能够实现自启动,我也是煞费苦心,采取了各种方式,往往需要编写冗长的代码并且还需要掌握系统底层或注册表的很多知识才可以.而这次我 ...

  6. android CVE

    本文收集网上android cve的一些分析供后续学习: Android uncovers master-key:android1.6-4.0 由于ZIP格式允许存在两个或以上完全相同的路径,而安卓系 ...

  7. 利用 Windows 线程池定制的 4 种方式完成任务(Windows 核心编程)

    Windows 线程池 说起底层的线程操作一般都不会陌生,Windows 提供了 CreateThread 函数来创建线程,为了同步线程的操作,Windows 提供了事件内核对象.互斥量内核对象.关键 ...

  8. (邹博ML)凸优化

    目录 凸集的基本概念 凸函数的基本概念 凸优化的一般提法 凸集基本概念 思考两个不能式 两个正数的算术平均数大于等于几何平均数 给定可逆对称阵Q,对于任意向量x,y,有: 思考凸集和凸函数 在机器学习 ...

  9. React 代码共享最佳实践方式

    任何一个项目发展到一定复杂性的时候,必然会面临逻辑复用的问题.在React中实现逻辑复用通常有以下几种方式:Mixin.高阶组件(HOC).修饰器(decorator).Render Props.Ho ...

  10. 测试的V模型和W模型

    V模型 :后测试 优点: 1.每一阶段都清晰明了,便于把控开发的每一个过程. 2.既包含了单元测试又包含了系统测试 缺点: 1.测试介入的比较晚,所以开发前期的缺陷无从修改. 2.开发和测试串行. W ...