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

1. 传统机器视觉

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

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

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

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

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

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

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

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

2.  深度学习

       基于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的预训练权重来提高整体的性能。

自动驾驶(三十四)---------可行驶区域检测相关推荐

  1. 自动驾驶(十四)---------车道线检测

    目前车道线检测主要有两种方法:传统方法,深度学习,本文主要从传统方法出发来介绍车道线检测,毕竟Mobileye也没有用到太多的深度学习(以前和Moblieye有交流). 再者,一直以来我们传统汽车行业 ...

  2. 自动驾驶采标系列七:复杂场景语义理解-可行驶区域检测

        标注猿的第58篇原创        一个用数据视角看AI世界的标注猿   本篇文章我们继续学习自动驾驶采标系列的算法基础理论,关于复杂场景语义理解中的可行驶区域检测部分. 车辆可行驶区域包括结 ...

  3. 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8223965 作者:毛星云(浅墨 ...

  4. 【正点原子FPGA连载】第三十四章RGB-LCD触摸屏实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  5. 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8223965 作者:毛星云(浅墨 ...

  6. FreeSql (三十四)CodeFirst 迁移说明

    FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能. 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也 ...

  7. Android 天气APP(三十四)语音搜索

    上一篇:Android 天气APP(三十三)语音播报 语音搜索 前言 正文 一.权限配置 二.用户体验优化 三.配置语音识别听写 四.语音搜索 五.地图天气添加语音搜索功能 六.城市搜索添加语音搜索功 ...

  8. 第三十四章 SQL函数 CURDATE

    文章目录 第三十四章 SQL函数 CURDATE 大纲 描述 示例 第三十四章 SQL函数 CURDATE 返回当前本地日期的标量日期/时间函数. 大纲 {fn CURDATE()} {fn CURD ...

  9. 【正点原子FPGA连载】 第三十四章双目OV5640摄像头RGB-LCD显示实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  10. 【camera】自动驾驶感知系统实现(车道线检测和拟合、目标检测与跟踪、道路可行驶区域分割、深度估计、图像视野到BEV空间映射、像平面到地平面映射)

    自动驾驶感知系统实现(车道线检测和拟合.目标检测与跟踪.道路可行驶区域分割.深度估计.图像视野到BEV空间映射.像平面到地平面映射) 项目下载地址:项目下载地址 推理引擎下载地址:推理引擎下载地址 支 ...

最新文章

  1. JVM---虚拟机栈(局部变量表)
  2. 《科学》盘点2018可能被聚焦的研究领域
  3. 约瑟夫问题(优化优化再优化)
  4. eclipse没有server选项解决方法
  5. python可以自学吗-大家觉得自学python多久能学会?
  6. 110. Balanced Binary Tree
  7. H.264边缘块进行帧内预测时,上边缘和左边缘块的预测情况。
  8. cocos2d-x 旅程開始--(实现单击与长按)
  9. 夏季学期软工综合实践小记(二)
  10. Redmi K50 Pro核心配置曝光:搭载天玑9000旗舰4nm芯片
  11. java继承类长方形面积_java_java用接口、多态、继承、类计算三角形和矩形周长及面积的方法,本文实例讲述了java用接口、多 - phpStudy...
  12. python函数装饰器详解_Python语言函数装饰器用法实例详解
  13. 售前十年,两种人生,多重感悟!
  14. zookeeper保证单一视图
  15. Involution: Inverting the Inherence of Convolution for Visual Recognition(CVPR2021)
  16. 利用Openyxl为Excel批量插入表头行(Excel读写基础操作)——下
  17. 面试问到UDP,这样回答offer拿到手软
  18. 输入一个十进制整数,分别输出其二进制、八进制、十六进制字符串
  19. 塔夫斯大学计算机教授,史上第一次生物创造,全球首个活体机器人诞生!
  20. 2022-2028全球与中国智能家居监控摄像头市场现状及未来发展趋势

热门文章

  1. 利用python库moviepy,快速剪辑视频
  2. seosem是什么意思
  3. Oracle11G数据库重演测试
  4. 卸载oracle apex,oracle关闭apex的jobs
  5. DSP TMS320F2803x CLA 指令
  6. 电力电子转战数字IC——我的IC笔试(2022.10.14更新)
  7. 六、数据(分组)计算
  8. 关于AsyncHttpClient的cz.msebera.android.httpclient.Header
  9. android百度地图定位跳转中心点,百度地图,拖动地图,定位marker固定在屏幕中心位置...
  10. python批量下载bilibili视频_关于bilibili视频下载的一些小思路