RoadTracer:航片自动生成路网

泡泡图灵智库,带你精读机器人顶级会议文章
标题:RoadTracer: Automatic Extraction of Road Networks from Aerial Images
作者:Favyen Bastani, Songtao He, Sofiane Abbar, Mohammad Alizadeh, Hari Balakrishnan,
Sanjay Chawla, Sam Madden, David DeWitt
来源:CVPR2018
编译:博主
欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权


摘要

大家好,今天带来的文章是:RoadTracer:航片自动生成路网,该文章发表于CVPR2018。

地图中路网的制作一直以来都是劳动密集型工作,花费也是相当昂贵。但是高分辨率航空影像给人们带来了福音,人们期望能够使用人工智能的方式自动的从这些影像上生成路网,从而把他们从枯燥的工作中解放。目前,已经有一些学者利用CNN通过分割的方式来检测出属于路的像素,然后利用复杂的后处理来将这些像素转化成路网。然而不幸的是,由于CNN会输出非常多难以消除的噪声像素,这类方法的精度并不高。
本文的作者发挥他们的聪明才智,提出了一个名为RoadTracer的新方法。RoadTracer的核心在于使用一个基于CNN决策函数的迭代搜索处理方法,能够直接从航空影像中获取出路网信息,即不需要复杂的后处理过程。
最后作者在15个城市的航空影像上进行了测试,并且和分割方法进行了比较。在容错率5%的情况下,RoadTracer能够比分割方法多检测到45%的路口。因此,RoadTracer是一位好员工!


主要贡献

1)提出了RoadTracer方法,利用迭代图构造方式检测影像中的路网,每次迭代时都使用CNN决策网络判断是否将一部分路网加入到已经创建的路网中。这种方法能够避免复杂的后处理过程,从而提高路网检测的精度;
2)提出了一种综合强化学习的CNN决策网络,使用动态标签的方式训练该CNN网络,即同时生成训练数据和训练网络,进而提高CNN决策函数的精度。


算法流程

这里写图片描述
图1:RoadTracer的核心算法流程。首先给定一个路网的起点v0和包围盒(需要提取路网的区域),然后RoadTracer会维护一个顶点栈和一个路网。每次从栈顶取一个顶点,并在其基础上寻找下一个与其相连的顶点。如果找到下一个顶点,则将其加入栈顶,同时更新路网;反之就将该顶点从栈顶弹出。当栈为空时,则表明该图像上的所有路网信息已经完全获取。

不难发现,RoadTracer的核心算法在于CNN决策网络,从而迭代逐步从当前局部路网信息获取完整的路网信息。

迭代搜索算法

在图1中已经完整了展现了本文所使用的算法流程,其核心思路在于每次都通过当前栈顶的顶点取寻找路网中下一个潜在的顶点,逐步的完善路网信息。当最终栈为空后,就表示路网的搜索已经完成。

为更好解释该算法,下图展示了RoadTracer在路口的运行方式。首先从顶点1开始逐步往前到顶点6,此时栈也逐步增加;在路口先向上(默认设定)寻找新的顶点,并最终到顶点9;由于顶点9后再无新的顶点,因此栈又逐步减少,最后又回到顶点7;然后再向下寻找到顶点11;最终由于顶点11后无新的顶点,栈又回到了顶点7。最后如果没有新的顶点,栈会逐步被清空,从而完成路网的检测。
这里写图片描述

CNN决策网络

CNN决策网络是本文算法的核心算法。 CNN决策网络输入层是一个在顶点上d×d大小的窗口,该窗口总共有4层,前3层是图像信息,最后一层是矢量化后的路网信息;因此能够保证决策网络能够获取当前顶点所在区域足够的的信息。 CNN决策网络的输出层包括两部分,分别是行动信息和角度信息。行动信息包括停止和运动,角度信息是运行的方法。

CNN决策网络训练

在本文作者的研究中发现,如果使用静态标签的方式来训练CNN决策网络会在结果中产生较大的误差。如下图所示,前期训练中存在的误差会扩散到后期,并对网络的训练造成较大的干扰。
这里写图片描述
因此作者提出使用动态标签的方式来训练检测网络,即根据当前的情况同时生成训数据和训练决策网络。同时作者为了避免陷入局部错误解,使用图匹配的方式来限制顶点的搜索结果,从而尽可能的提高训练的精度。


主要结果

为评价本文算法的结果,本文使用了6个国家总共40个城市的航空影像数据,每个城市都覆盖了城中心大概24平方公里;其中影像数据来源于Google,路网信息来源于OSM。
本文的算法与DeepRoadMapper和图像分割的方法进行了比较,衡量的标准主要有TOPO、SP和Junction 。其中TOPO是比较真实路网和计算路网上起点和终点的距离差异,SP是比较起点和终点之间最短路径的相似度。Junction是本文提出的新标准,主要是衡量路口间的误差程度。

定量实验结果

定量实验总共使用了15个城市的数据进行测试,其中RoadTracer使用分割法中的峰值点进行初始化。

这里写图片描述
图2:Recall和TOPO的散点图。由于DeepRoadMapper使用了LoU损失,因此TOPO与Recall无关,但是分割法和RoadTracer都与Recall相关,并随Recall增大而增大。其中当Recall<0.43时,RoadTracer的精度最高。

这里写图片描述
表1:三种算法的SP评价结果。针对每种算法都用的是其最优的阈值。Long、Short和NoPath则是SP评价中三种错误的情况的百分比。通过比较可以发现RoadTracer得到了更多的正确结果。

这里写图片描述
图3:展示了Junction中正确比例的路口Fcorrect和错误路口的百分比Ferror之间的关系。可以发现,在给定Fcorrect的情况下,RoadTracer的Ferror更低。

定性实验结果

这里写图片描述
图4:上图展示了三种算法在Chicage、Boston、Salt Lake City和Toronto上(从上到下)的实验结果。其中黄色是算法得到的结果,蓝色是真实结果。RoadTracer的Ferror是5%,分割法和DeepRoadMapper的Ferror都是19%。不难发现本文的算法的结果是最优的。


结论

本文提出了一种基于CNN的迭代图生产算法,得到了比传统CNN图像分割效果更好的结果,克服了后处理对路网精度的影响。作者相信本文的工作在航空影像地图全自动制作中迈出了巨大的一步!

欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。
有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!
泡泡网站:www.paopaorobot.org
泡泡论坛:http://paopaorobot.org/forums/
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u012348774/article/details/80471872