社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

自动驾驶制图中的深度学习

小白学视觉 • 4 年前 • 360 次点击  

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

深度学习在整个自动驾驶技术的各个部分中进行了应用,例如在感知,预测和计划中都有应用。同时,深度学习也可以用于制图,这是高级自动驾驶的关键组成部分。

 

拥有准确的地图对于自动驾驶至关重要,可自动进行路线选择,本地化以及简化感知。但是,在没有地图的地区,自动驾驶汽车需要依靠自己的地图构建能力来确保自动驾驶的功能性和安全性。

 

离线映射与在线映射


在离线映射方案中,传感器数据被聚集在一个集中的位置。数据可以是卫星图像,也可以是机载传感器(例如相机或激光雷达)收集的数据。它可能来自同一辆车经过同一地点的多次通行,也可能来自众多车辆。地图的渲染是离线构建的,并且需要人工注释者来注释地图上的语义结构并查看最终结果。传统的地图服务以这种离线方式工作,然后将带注释和精选的地图提供给道路上的车辆。


在线地图是在车上进行的,典型示例是用于同时定位和映射的SLAM系统。最近,重点研究道路上表面标记的几何形状和语义含义的语义SLAM作为一种轻量级的制图解决方案。另外,单语义在线映射(monoSOM)是一个研究趋势,其中使用神经网络将来自多台摄像机的单目图像的时间序列融合到语义鸟瞰图中。


SD Maps与HD Maps


根据输入分辨率,大约有两种类型的深度学习在地图中的应用。一种类型工作重点是地图拓扑的发现,例如道路网络,通常不包含车道级别信息。他们只需要一个相对低分辨率的图像,并具有大约米级的精度。另一种类型的应用程序侧重于提取车道级别信息,例如车道线,路面箭头和其他语义标记。这需要具有厘米级精度的高分辨率图像。相应地,在本文的其余部分中,这两类地图将被简称为SD映射和HD映射。


SD映射(道路拓扑发现)


深度学习在地图上的早期应用着重于从相对低分辨率的航空图像中提取道路拓扑。深度学习创建了一个合适的解决方案,涵盖了SD映射的大量内容。SD地图中生成的道路拓扑主要用于在自动驾驶(用于路线选择和导航)的环境中相对受限的情况下。然而,其中一些研究提出的方法与高清地图的后续工作高度相关,因此在此进行了综述。

 

DeepRoadMapper(ICCV2017)吸收从卫星获得的航拍图像并创建结构化的道路网络。它首先执行语义分割,然后对生成的路线图运行细化和修剪算法。由于语义分割的不准确(树木,建筑物等遮挡),许多道路都保持断开状态。为了解决这个问题,DeepRoadMapper使用A *搜索算法来生成连接假设以弥合差距。

 

RoadTracer(CVPR2018)也注意到了不可靠的语义分割结果,并将其作为中间表示消除了。它使用迭代图构造直接获取道路拓扑。该算法需要做出决定,朝特定方向迈进一定距离,类似于增强学习设置中的主体。



PolyMapper(ICCV2019)可能受到RoadTracer的启发,并且也消除了中间表示形式。它明确统一了不同类型的对象(包括道路和建筑物的街区)的特定形状,并将其表示为封闭的多边形。遵循迷宫墙追随者算法,算法极其巧妙和简洁。

PolyMapper使用MaskRCNN架构提取建筑物和道路的边界蒙版。基于蒙版,它提取顶点,找到起始顶点,然后使用RNN对所有顶点进行自回归迭代以形成封闭的多边形。


高清映射(车道信息提取)


SD地图缺少自动驾驶汽车的安全定位和运动计划所需的精细细节和准确性。带有车道等级信息的高清地图对于自动驾驶是必不可少的。

HD地图的生成通常采用高分辨率的鸟瞰图(BEV)图像,该图像是通过拼接车载摄像机图像和/或激光雷达扫描生成的。

 

HRAN (用于结构化在线地图的分层递归注意网络,CVPR 2018)接受道路的稀疏点云扫描,并输出包含车道边界实例的道路网络的结构化表示。它首先迭代找到每条车道线的起点,然后针对每条车道线,迭代地绘制沿该线的下一个顶点。这两个RNN以分层方式进行组织,因此名称为HRAN-分层递归注意网络。



它提出了折线损失的想法,以帮助神经网络输出结构化折线。折线损失测量的是地面真线折线边缘及其预测的偏差。这比在顶点上的距离更合适,因为存在许多绘制等效折线的方法。

HRAN每像素使用5 cm的分辨率,在20 cm的精度范围内可实现0.91的召回率。主要的故障模式来自错过或多余的车道线。请注意,100%的准确性并不一定是最终目标,因为注释者仍然需要手动查看并修复这些图像。这些故障案例可以相对容易地解决。在以后的工作“深边界提取器”中使用的高度梯度图可能能够修复FP护栏被误认为车道线的情况。


深度结构人行横道 (用于绘制人行横道的端到端深度结构模型,ECCV 2018)从激光雷达点产生的BEV图像和相机图像(激光雷达+ RGB = 4通道)中提取结构化人行横道。该网络生成三个独特的特征图-语义分割,轮廓检测以及从直接监督定义人行横道方向的角度。


深边界提取器 (CVPR 2019,CVPR2019,用于道路边界提取的卷积循环网络)使用折线提取道路边界。它受深度结构人行横道的启发,并使用卷积RNN(卷积Snake或cSnake)以自回归方式进行预测。输入通过添加一个额外的激光雷达高度梯度通道扩展了“深层结构人行横道”的输入范围,该通道是通过获取Sobel滤波的激光雷达BEV图的大小而生成的。

 

cSnake网络迭代处理旋转的ROI,并输出对应于道路边界的折线的顶点。它首先预测端点。基于每个端点,它会裁剪并旋转以端点为中心的特征图的面片,并找到下一个点的位置。上面的过程是自动回归的。



DAGMapper (通过发现车道拓扑学习地图,ICCV 2019)将HRAN的结构化车道线提取工作进一步向前迈进了一步,专注于诸如分叉和合并之类的较难案例。它接受激光雷达强度图并输出DAG(有向无环图),而不是HRAN中的简单折线。

DAGMapper的核心也是一个循环卷积头,它迭代地关注以最后一个预测点为中心的裁剪特征图补丁,并预测下一个点的位置。所做的更改是,它还预测了点的状态为合并,派生或继续。


注意


1. 深度学习的结果需要构造成易于由自动驾驶堆栈使用,并易于人工注释者修改。

2. 当前的高清制图应用程序专注于道路边界,车道线(包括合并和岔路拓扑)和人行横道边界的提取。

3. 所有高清制图研究的核心组成部分是循环卷积网络,该网络以迭代方式获取以当前注释点为中心的裁剪特征图,并预测下一个注释点。


下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/110796
 
360 次点击