热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前方车辆检测的常用方法

from:http:blog.csdn.netviewcodearticledetails20358367前方车辆检测,这里指的是基于车辆自身对象,而

from: http://blog.csdn.net/viewcode/article/details/20358367

前方车辆检测,这里指的是基于车辆自身对象,而不是公路交通部分的车辆检测。

前方车辆检测,可以用于防碰撞系统、进而用于自动巡航(ACC)等功能,应用场景广泛,所以,此技术是一项比较基础的技术。而先前的ACC,只是基于正前方车辆的检测,对于侧面的车辆或环境的跟踪能力有限。但随着各种传感器和导航地图的应用,ACC的能力也会大大增强。ACC只用于高速行驶状态,但已有低速跟车系统的研究,某公司已计划未来两年内上市。



1. 传感器

前方车辆检测,常用的传感器有高频雷达(毫米波)、红外激光雷达、摄像头。

每种传感器都有各自的优缺点:

雷达:自己可选用的波段有限,常用24G(厘米波)、79G波段。对雨雾天气的适应能力好,探测距离大150米,但容易受电磁干扰影响。据传,79G雷达技术对国内有限制的。而欧盟和我国的工信部是建议24G作为车载雷达波段。而美国是推荐79G波段作为车载雷达的使用波段。http://www.srrc.org.cn/NewsShow6038.aspx

红外激光:抗干扰能力强,定向性。但对于雨雾天气的穿透能力弱。且成本高。

摄像头:基于视觉的探测。对距离的判断较弱(单目视觉情况下),易受雨雾天气的影响。


所以,想适应各种场景,厂商一般会采用多种传感器收集信息。


这里重点总结下,基于单目视觉的车辆检测技术。

从视觉上来讲,车辆的形状、颜色和大小虽然限定在一定范围,但都是不固定的,而且,其外形会受到自身姿势和外部环境,如光照或旁边物体的影响。


2. 基于先验知识的特征检测

汽车有一些一些典型的特征, 如对称性、颜色、阴影、几何特征(如角点、边缘)、纹理、车灯。

1)对称性

汽车从前方和后方来看,无论是在区域面积还是边缘特征上,具有很好的对称性。

但是,对称性特征易受噪声的干扰,以及角度的影响。

2)颜色

颜色空间一般不直接使用在车辆上,而比较有效的手段是识别路面和车辆阴影。

3)阴影

车辆阴影是与车辆相关的一个重要的特征。因为车辆阴影一般比周围区域都要暗。但具体的参数指标,还与光照,即天气状况有关。

一般做法是采用两个阈值,一高、一低,低阈值用于确定阴影,而高阈值由阴影周围环境来确定,如局部分割算法,均值+方差。

4)角点

先检测出所有角点,然后再根据角点的空间关系,如汽车的四个角点会形成一个矩形,来筛选汽车。

5)垂直或水平边缘

一种方式,直接检测垂直边缘,利用类似直方图计算垂直投影。然后,车辆底盘下方阴影部分也是重要的水平边缘特征。

另外,也有采用多分辨率的方式,在每个层次都

边缘只是作为一种初步的筛选/搜索手段。

6)纹理

熵、共生矩阵都可被作为基于纹理的图像分割的基础。

7)车灯

主要是用于夜间车辆的探测。因为,以上特征在晚上基本都无效了。

8)基于运动的方法

以上其中都是空间特征。而基于运动的方法是对图像连续序列的分析。如光流法。

但光流法会消耗大量的计算资源,时间和空间。



3. 识别

无论是用遍历的方式,还是用特征筛选出的候选区域,对筛选出的子图像需要进一步识别,车辆还是非车辆。

1)基于模板的方法

采用简化过的车辆模板来筛选。

2)基于外观特征的方法

车辆VS非车辆 分类

二类分类问题,一般采用机器学习/模式识别的方法解决。

首先,需要大量的训练图片。

其次,选取合适的特征,如PCA,HOG,harris,haar wavelet feature, SIFT等

再次,选取分类器,如NN,svm等



4. 跟踪

车辆的跟踪的好处:

1)提前预测车辆出现的位置,减少车辆检测的搜索空间,节省计算时间。

2)区分多个车辆,每辆车都有各自的特征,如HOG,边缘,灰度密度等,使用这些特征,就可以区分不同类型的车辆。根据跟踪算法的结果,即使是同款车辆出现在同一场景,也能基本区分。


目前,常用的跟踪算法,有卡曼滤波算法。



5. 近几年热门的车辆检测方法

1)HOG 特征 + haar-like特征;SVM 或 adaboost  分类器; (HOG + SVM ; haar-like + adaboost 速度快)

2)光流法;或增加一个HMM分类器,或SVM分类器


--------------------------------------------


前方车辆检测技术,常见问题:

1. 选取那种分辨率来计算?

mobileye采用的是 640×480 或 752 * 480 彩色CMOS摄像头

2. 如何选取特征?

3. 如何跟踪?

4. 如何计算距离?

5. 如何计算前车速度?

6. 如何区分多个车辆?


--------------------------------------------


基于Haar和HoG特征的前车检测方法,其特征在于,包括以下步骤: 

步骤I)人工选取出大量车辆图片和非车辆图片作为训练集的正、负样本,并将正、负样本规格化到24 X 24像素下; 

步骤2)使用Haar特征和HoG特征分别对规格化后的每一幅正、负样本进行表征,形成特征向量; 

步骤3)针对Haar特征和HoG特征形成的两种特征向量分别构建弱分类器; 

步骤4)利用级联的Adaboost算法对弱分类器进行训练,得到级联车辆强分类器;

步骤5)针对车载摄像头获得的前方道路视频图像,将其中各种尺寸、各种位置的子图像输入级联车辆强分类器中进行判断。

也有利用改进的HOG特征值,和SVM训练,来对车辆进行识别


harr特征、hog特征(大量的正、负样本图片训练),利用adboost算法 进行训练、级联,形成强分类器

http://www.google.com/patents/CN102855500A?cl=zh



-------------------------

HOG特征的计算及一些改进:

HOG:histogram of oriented gradient, 方向梯度直方图,就是描述物体的形状和边缘特征,并且不涉及尺度和旋转。

1. 将子图像灰度化,归一化(为了除去光照和阴影的影响)

2. 划分成小cells,如3*3个像素块或6*6个像素块。

3. 计算每个cell中每个pixel的gradient方向,或者说是边缘的方向。

4. 统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor。

5. 连接所有cell形成一个子图像的特征描述子。

6. 子图像之间是一般是由重叠的区域的,这样一个cell影响的就不是一个子图像了。一个矩形子图像,一般有三个参数:每个子图像有多少方格、每个方格有几个像素、以及每个方格直方图有多少頻道(梯度方向)。

由于人体轮廓在局部HOG归一化特征上有良好的稳定性,最初是用于人体检测。

在Dalal和Triggs的人检测实验中,发现最优的单元块划分是3x3或6x6个像素,同时直方图是9通道。


推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • linux 禁止指定ip访问
    linux中如何禁止指定的ip访问呢?比如被别人暴力破解,被别人使用不同的密码尝试登录:所以我想直接禁用这些ip的访问.怎么办呢?解决方案:修改配置文件etchosts.deny把 ... [详细]
author-avatar
舞动青春的迪斯科舞厅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有