当前位置:首页 > 技术分析 > 正文内容

自动驾驶——可行驶区域检测

ruisui884周前 (05-23)技术分析12



可行驶区域的检测主要是为自动驾驶提供路径规划辅助,可以实现整个的路面检测,也可以只提取出部分的道路信息。

本文来源:每日自动驾驶


可行驶区域的检测主要是为自动驾驶提供路径规划辅助,可以实现整个的路面检测,也可以只提取出部分的道路信息,比如前方一定区域内的道路走向或者道路中点等,只要能结合高精度地图实现道路路径规划和障碍物躲避,不一定要完全的提取出完整的路面可行驶区域。


01. 传统机器视觉


颜色, 通过手动标注的路面颜色数据集,实现非路面和路面颜色分割区域,手动标注时给路面和非路面区域贴上标签,通过学习得到路面的分割结果。


纹理,纹理提取的最基本的方法就是使用Gabor滤波器,Gabor特征对于边缘比较敏感,可提取出边缘的方向,受光照影响较小,同时具有尺度不变性。


边缘,有明显的道路边缘分界,提取这些道路的边缘分界,可以分割出道路路面,常用的边缘检测算子有sobel、prewitt等算子,使用算子来进行提取边缘的核心思想就是将一个待检测的像素与周围的像素关联起来,通过设定算子的水平、竖直方向的权重,计算待检测像素的左右、上下的像素差值的和,判断待检检测像素的水平与竖直的像素差异性,判断该像素点是否是边缘点。


灭点,灭点又叫消失点,是平行透视变换的一个交点,通俗的理解就是在透视变换中,视场中的平行线都会相交与一点,这个点就是灭点。标准的马路道路边缘存在平行直线,平行直线在图像中的交点在灭点附近,通过提取取多对平行直线(道路边缘线、车道线)的交点,求取这些交点的中心位置,可以近似的估计出灭点。对于非结构化的路面,提取到灭点后可以使用灭点来找大概的道路边缘,快速的提取一个三角形的路面可行驶区域。


道路模型,道路模型的分割方法出发点是,沿着车辆前进方向,道路的方向和区域在变换中存在着一些不变的大轮廓特征,这些大轮廓特征概括为道路的走向,主要为直行、拐弯。根据拐弯的程度可以分为急拐弯和缓拐弯。利用这个基本的思想,我们可以提前设定一些基本的道路模型,在提取一定的道路特征基础上,拿已有的道路模型去“匹配”,也可以变换基本道路模型适应更多的路面场景。在提取基本特征的基础上获得准确度道路路面区域。


SVM:支持向量积在路面分割的学习中非常有效,也是使用的非常多的方法之一,主要策略是标注一幅图中的路面区域和非路面区域,通过SVM的学习,得到路面区域的检测分类器,加载分类器检测出可行驶区域的路面。


俯视图,在路面检测的方法中,图像的变换对于路面的提取非常有利,前视图变换到鸟瞰图,再提取道路路面区域,比较直观,方便进行路面提取的准确率评估。从前视图变换到俯视图中间存在一个透视变换,对每一个摄像头参数不同、摄像头的安装高度角度不同,都需要通过标定实验求出一组特定的变换矩阵,使用变换矩阵变换得到鸟瞰图。


混合多个特征进行检测,结果比使用单个特征检测方法要好。


02. 深度学习


基于DeepLab V3+做了一部分改进,得到了不错的效果。整体来说是encoder-decoder结构,以resnet101和ASPP模块为encoder,并加入了一个简单有效的decoder模块来改善物体边缘的分割结果。用1*1的卷积核提取low-level特征信息,并融合encoder得到的high-level语义信息通过concatenate进行信息融合,最后再上采样4倍,得到原始图像大小的预测结果。


这里想着重展示下deeplab中的ASPP模块,这也是我们选择deeplab为基础架构的主要原因。前面提到,要想较好的识别出可行驶区域和选择性行驶区域,必须要结合上下文整个语义信息。而空洞卷积允许我们有效地扩大滤波器的视野以并入较大的上下文,而不增加参数的数量或计算量,空洞卷积在语义分割中得到了积极的探索。在ASPP中,通过使用不同rate的空洞卷积,引入了多尺度的上下文信息,得到更强健的分割结果。更近一步的,为了将全局上下文信息纳入模型,。融合了整个图像级特征,将特征采用全局平均池化,然后双线性插值将特征提升到所需的空间维度。最后通过concat的方式将不同尺度的上下文信息融合在一起。


在deeplabv3中的backbone resnet101中,每个block的卷积步长都为2,整个模型的outstride是32。这样做的好处是使得模型有更广的感受野,更容易捕获长距离的信息,整个图像的特征都可以汇聚在最后一个小分辨率的特征图中。但是连续的stride下降,虽然获得了较大的感受野,但是极大的损失了空间信息,会造成细节信息的丢失,对语义分割是有害的。因此将resnet101中最后的两个block卷积步长更改为1,将普通CNN分别以rate为2,4的空洞卷积代替,这样改进之后,模型的感受也没有改变,增大模型的分辨率为原来的四倍。同时,由于resnet101模型的感受也没有改变,我们还可以直接使用imagenet的预训练权重来提高整体的性能。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4258.html

标签: gabor特征
分享给朋友:

“自动驾驶——可行驶区域检测” 的相关文章

如何在 Linux 发行版中安装微信和 QQ?

很多人因为工作沟通的原因需要用到微信和 QQ,那么如何在 Linux 发行版中安装微信和 QQ 呢?以下是一些尝试的解决方法。QQ上一个版本的 QQ Linux 版还是在2009年,而在现在,基于 NT 架构的全新 QQ Linux版已经被正式推出,为所有用户提供下载。新版本提供了deb、rpm、A...

前后端分离自动化运维平台开发

运维平台采用前后端分离:前端vue,框架vue-element-admin;后端python,框架django-rest-framework.目前运维平台模块如下:1、 CMDB管理应用管理、环境管理、开发语言管理、产品项目管理、资产管理2、 构建发布持续构建、持续部署、Jar工程依赖构建3、 容器...

身体越柔软越好?刻苦拉伸可能反而不健康 | 果断练

坐下伸直膝盖,双手用力向前伸,再用力……比昨天前进了一厘米,又进步了! 这么努力地拉伸,每个人都有自己的目标,也许是身体健康、线条柔美、放松肌肉、体测满分,也可能为了随时劈个叉,享受一片惊呼。 不过,身体柔软,可以享受到灵活的福利,也可能付出不稳定的代价,并不是越刻苦拉伸越好。太硬或者太软,都不安全...

关于Vue页面跳转传参,参数不同, 但页面只获取参数一次的问题

#头条创作挑战赛#1.问题描述问题描述: element 展示表格(页面A),点击表格的每一行的查看详情按钮,可以携带此行的信息参数跳转到另一个页面(页面B),但是从A页面到B页面,只有第一次跳转的时候B页面可以获取到A页面的参数,返回再次A->B ,B页面无法获取到参数。2.解决办法:方法一...

从 Vue2.0 到 React17——React 开发入门

作者:佚名来源:前端大全前言找工作时发现有一些公司是以React作为技术栈的,而且薪资待遇都不错,为了增加生存的筹码,所以还是得去学一下React,增加一项求生技能。因为我用Vue2.0开发项目已经四年了,故用Vue2.0开发项目的思路来学习React。前端项目是由一个个页面组成的,对于Vue来说,...

Alpine.js 如何火起来的!比 React/Vue 如何?

大家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!前言前端 JavaScript 框架的创新是这个时代最伟大的技术文化现象之一。Alpine 发音为 /??lpa?n/,中文为阿尔卑斯山、...