遥感论文 | ISPRS | 图神经网络也能做城市街道功能感知?纯视觉方案,效果可观!

  • 论文题目:Knowledge and topology: A two layer spatially dependent graph neural networks to identify urban functions with time-series street view image
  • 论文网址:https://www.sciencedirect.com/science/article/pii/S0924271623000680
  • 论文代码:https://github.com/yemanzhongting/Knowledge-and-Topology

摘要

提出一种用于街景尺度城市功能识别的纯视觉、强大而可靠的方法。

引入了一种基于两层空间相关图神经网络结构的方法,该方法将连续的街景图像作为输入(通常在Google Street View、百度地图和Mapillary等服务中可用),充分考虑了道路网络之间的空间依赖关系。以武汉市为例,使用OpenStreetMap数据构建了一个城市拓扑地图网络,并使用大规模预训练模型计算了在街景尺度上整个场景的语义表示。基于由75,628个街景图像和5,458条街道构建的28,693个映射关系,以街道为节点构建了图网络。在研究区域的所有节点中,只需要对5.3%的节点标签进行10个功能类别的获取。

结果表明,通过使用适当的空间权重、街道编码器和图结构,我们的新方法实现了P@1 46.2%、P@3 73.0%、P@5 82.4%和P@10 89.9%的高准确率,充分展示了引入方法的有效性。我们还使用模型通过计算时间序列街景图像来感知城市的时空更新。该模型还适用于其他属性的预测,在这些预测中只需要少量标签就可以获得有效和可靠的场景感知结果。

背景

如图1所示,对街景图像进行的语义分割和目标检测的结果都缺乏全面的语义信息。即使两个图像在语义分割后具有相似的各种元素的比例,或者在目标检测后存在相同的客观特征,由于元素或特征之间的不同空间关系,这两个图像描述的实际情况可能存在相当大的地理差异。更具体地说,图1中的街景图像都包含了建筑物、窗户、树木、路灯、摩托车和汽车等实体。此外,这些实体在两幅图像中所占的像素比例是相似的。例如,图1左图中建筑的像素比例为23%,绿植的比例为20%,天空像素比例为28%,而图1右图中建筑的像素比例为26%,绿色视图指数为28%,天空视图因子也为28%。通过以上信息,仅仅通过实体的类型、实体的数量或视野像素比例来找到两个位置的街景图像之间的差异是困难的。

如图2所示,为了捕捉街景之间的空间关系,将道路数据作为网络结构,选择具有多个街景的街道作为最小的空间单元。设计了捕捉两层空间关系的方法,第一层是捕捉不同视图中的重叠实体,第二层是捕捉街道之间的空间拓扑关系。数据来源于OpenStreetMap(OSM)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方法

模型框架

  • 模型分为5部分Step1Step2是模型EncoderStep3,Step4,Step5是模型Decoder

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Step 1: Cross-modal extraction scenario description (Street View Captioning)

下图显示了跨模态计算的详细步骤,其中我们输入一张街景图像并输出相应的文本描述,“一辆红色汽车停在路边”。描述包含了城市的重要物体、物体的性质以及物体之间的空间位置关系。因此,我们可以提取类似于(“一辆红色汽车” ->s“,停在‘‘->r’’路边的‘‘->o’’路”)的三元组。我们对每张图像执行类似的计算,将其聚合形成每个街道的语义描述。

序列生成单元由两个LSTM层和一个Attention层组成。如图4所示,该模型使用目标检测网络提取图像特征,并将图像分成𝑘个区域,这些区域与包含𝑁个单词(标记)的文本描述一起馈送到循环神经网络中。

Step 2: Aggregate the images and calculate the scene embedding of the street

基于Step1生成的场景描述,我们将街道视为包含多个“句子”(街景)的“文档”。通过街景与道路网络之间的映射,我们可以获取街景邻域信息,然后计算整个街道的特征码。使用BERT模型对“文档”进行编码,生成一个 𝐷(768) 维的场景嵌入作为模型初始化的输入。实验部分还将比较不同嵌入方法的计算效果。表1表示使用Bert作为语义编码器进行街道嵌入计算的结果(5458个街道,768个维度)

Step 3: Labeling and spatial weights (road network topology)

本文评估利用街景识别城市街道功能的能力。我们使用EULUC-China数据集为街道贴标签,构建了一个包含表2中十种标签的街道功能数据集,为了标注,我们为采样位置设置了25米宽的缓冲区(50米可以覆盖大多数城市道路宽度),该缓冲区在空间上与功能区域相连接,以标记街景图像。如Step1中所述,我们已经建立了街景与街道之间的关系,因此在这里,我们简单地计算包含最多类别的街景标签,作为街道的主要功能。一些街道包含多个贴了标签的街景。对于这些街道,我们选择具有更突出功能的街道作为训练数据。如表2所示,我们标记了190条街道,总体标注率为5.3%。(原来贴标签也是可以写到论文里的)

Step 4: Build semi-supervised graph neural network for training

模型训练过程定义如下:(简而言之两层GCN)

  1. 通过𝑓函数对模型进行前向传播。
  2. 计算已知节点标签上的交叉熵损失。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Step 5: Model prediction and accuracy evaluation

基于Step4中训练的模型,我们对研究区内未标记的街道进行功能预测。由于我们采用半监督机器学习方法,我们只包括数据的一小部分标签。我们借用推荐系统的准确性标准,通过 𝑃@𝐾 分数来衡量模型的准确性,该分数计算了最近的 𝐾 个区域中包含正确预测标签的比例。因此,𝑃@𝐾 表示在测试数据中预测的街道标签是否出现在最近 𝑛𝑒𝑎𝑟𝑒𝑠𝑡 − 𝑘 个真实区域标签列表中(第3步中的EULUC-China数据集被视为实际值)。𝑁𝑢𝑚 表示测试数据的数量,𝑛𝑜𝑐 表示这种况发生的次数,如下所示:

实验

研究总览

如图5所示,这项研究分为三个主要部分。

  • 第一部分是街景图像的跨模态解码器,用于获得城市场景的高度语义压缩描述;
  • 第二部分是解码器结果的语义编码器,与OSM网络拓扑关系一起输入到图网络进行半监督学习;
  • 最后,从图像中提取知识三元组,生成街道语义知识图谱和每个城市功能下的文本摘要,使城市不仅可以被“观察”还可以被“阅读”。

实验配置

研究区域位于中国武汉市的第三环内,收集了75,628张腾讯街景图像,这些图像采样时间与EULUC-China产品发布时间相近,而使用了在研究区域感知最近城市建设的64,750张新的(于2022年7月采集)百度街景图像。通过计算不同时间的图像,我们探讨了城市功能的转移以及来自不同数据源的方法的有效性。研究区域包含许多多样的城市场景和实体,包括5,458条OSM道路和18,907个街景采样位置。基于图4中第1步提到的预训练视觉语言模型,我们对研究区域的75,628张街景图像进行了跨模态解码,并为每个图像生成了最相关的五个场景描述。因此,在Tesla P100 GPU上进行了约72小时的计算后,我们总共获得了378,140个句子。

精度对比

对比不同模型

我们进行了12组对照实验,使用了不同的模型,如表3所示。这些模型之间的主要区别在于不同的语义编码器空间权重矩阵图特征提取网络,每个模型都被赋予一个唯一的名称(Model1,Model2等)。我们对所有12个模型进行了200轮的训练周期,以测试它们的预测准确性,训练损失的变化如图6所示

跟其他传统模型对比

我们还通过传统的机器学习方法多层感知机(MLP)进行了结果比较,而不考虑空间拓扑关系。如图7所示,图7(a)显示了模型9的预测特征向量降维结果,图7(b)、©显示了MLP特征向量降维结果,其中神经元个数分别为32和128,并且Bert也用作语义编码器。图7(d)显示了使用两层神经网络的情况。我们可以看到,传统方法远不如我们的方法有效,预测结果中缺少一些类别(仅有四个类别)。我们方法相对于传统方法的优势在于,我们的预测不仅考虑了当前街道环境,还考虑了相邻街道的环境。

预测结果展示

最高准确率的模型9的预测结果如图8所示。可以看到,预测结果在细粒度上生成,标签0到9分别是住宅、商务办公、商业服务、工业、交通站点、行政、教育、医疗、体育文化、公园绿地。如图8子图所示,街道是城市的“末梢”,我们的模型可以在两条街道之间的短距离内识别实际且不同的功能。与使用建筑物足迹或TAZ作为空间单元相比,我们可以定位更丰富的结果,也擅长探索同一区域的多种功能。

基于步骤2中不同数据生成的街道嵌入,我们基于等式计算街道更新率如公式8所示,用于分析近年来城市功能的演变趋势。

在图11中,大部分地区,特别是城市的主要道路,变化较小。同时,一些地区发生了显著变化(更新率> 0.8)。此外,我们在表5中绘制了总体城市函数转移矩阵。

转移矩阵如表5所示

街道语义知识图谱构建

我们对所有场景执行类似的计算,得到了75,628个城市知识三元组。基于这些知识三元组,我们生成了武汉所有街道的语义知识图,如图12所示。它包括707个城市环境实体和4,371个空间位置关系。较大的节点表示实体的出现频率较高,边的粗细表示相关关系的强度。之后,我们的基于图的社区检测方法(Louvain方法)将这些实体和关系划分为多个社区,社区内的实体与社区外的实体相比,更频繁地共现,我们在这里不进行深入解释。

几个特定城市功能知识图谱的对比

讨论和小结

在本文中,我们提出了一种纯视觉方案,用于感知城市街道的功能,它整合了城市知识和道路网络拓扑,能够融合多源图像以生成空间单元的整体表示。我们还融入了时间信息,并整合历史街道图像,计算城市时空变化、更新率和城市功能转变矩阵。优势如下:

  1. 只要图片能够显示地方的实际状况,就可以在计算中包含街景和其他近感图像,并生成语义表示(城市说明)。
  2. 研究单元不仅仅局限于街道尺度,还可以推广到其他尺度,即使是一个小的采样点或一个区域。不同尺度之间仅在语义描述文本的长度和空间拓扑关系的长度上有所不同。
  3. 由于城市中充满了人类活动的足迹,近感图像可以深入城市,实时反馈 “人”、“车”和“物”的原始形状和颜色信息。相比之下,城市空间中的遥感图像很难具有如此高的空间和时间分辨率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【lesson16】进程控制之进程替换(1)

文章目录 进程替换是什么?进程替换怎么用?不创建子进程时使用 进程替换是什么? 我们知道fork()之后,父子进程各自执行父进程的一部分代码,如果子进程就想执行一个全新的程序呢? 以前:父子代码…

K8S(二)—介绍

K8S的整体结构图 k8s对象 在 Kubernetes 系统中,Kubernetes 对象是持久化的实体。 Kubernetes 使用这些实体去表示整个集群的状态。 具体而言,它们描述了如下信息: 哪些容器化应用正在运行(以及在哪些节点上运行)可…

微服务实战系列之ZooKeeper(中)

前言 昨日博主的第一篇ZooKeeper,对它自身具备的能力做了初步介绍。书接上文,马不停蹄,我们继续挖掘它内在的美,充分把握它的核心与脉络。 揭秘ZooKeeper Q:集群一致性协同是如何进行的 我们讲到分布式,…

Renyi散度:Renyi divergence

有关Renyi散度的基本介绍挺多博客已经写了。本文章主要介绍最基础的概念,以及近些年论文中为啥老喜欢引用这个概念。 一.基础概念 Renyi散度主要是描述两个分布之间的关系。对一个离散的概率分布X,其定义域记作,其实就是概率不为零的点的集…

React脚手架搭建

React脚手架 脚手架:可以快速构建项目的基本架构。 脚手架安装命令 可全局安装脚手架 创建项目 来到当前目录下 create-react-app 项目名(不要大写字母) 运行项目 进到项目里,在项目目录下,执行 npm start &#xff…

C语言-Makefile

Makefile 什么是make? make 是个命令,是个可执行程序,用来解析 Makefile 文件的命令这个命令存放在 /usr/bin/ 什么是 makefile? makefile 是个文件,这个文件中描述了我们程序的编译规则咱们执行 make 命令的时候, m…

华为数通——路由冗余和备份

注:当一条路由的出接口down时,该路由会自动失效。 要求:数据优先走千兆链路。 R1 [ ]ip route-static 172.16.1.0 24 12.1.1.2 目的地址 掩码 下一条 [ ]ip route-static 172.16.1.0 24 21.1.1.2 preference 50 目的地址 …

OxLint 发布了,Eslint 何去何从?

由于最近的rust在前端领域的崛起,基于rust的前端生态链遭到rust底层重构,最近又爆出OxLint,是一款基于Rust的linter工具Oxlint在国外前端圈引起热烈讨论,很多大佬给出了高度评价;你或许不知道OxLint,相比ES…

MySQL 8.x temp空间不足问题

目录 一、系统环境 二、问题报错 三、问题回顾 四、解决问题 一、系统环境 系统Ubuntu20.04 数据库版本MySQL 8.0.21 二、问题报错 在MySQL上执行一个大的SQL查询报错Error writing file /tmp/MYfd142 (OS errno 28 - No space left on device) Exception in thread …

【深度学习】强化学习(六)基于值函数的学习方法

文章目录 一、强化学习问题1、交互的对象2、强化学习的基本要素3、策略(Policy)4、马尔可夫决策过程5、强化学习的目标函数6、值函数7、深度强化学习 二、基于值函数的学习方法 一、强化学习问题 强化学习的基本任务是通过智能体与环境的交互学习一个策略…

el-date-picker 选择一个或多个日期

el-date-picker可选择多个日期 type“dates” 加个s即可 <div><span>el-date-picker选择多个日期</span><el-date-pickertype"dates"v-model"dateList"placeholder"选择一个或多个日期"></el-date-picker></di…

MyBatis环境的搭建

1.创建 Maven 工程 打开idea新建一个项目File → Project Structure → Project&#xff0c;build system中选择maven &#xff08;1&#xff09;由于 IDEA 中集成了 Maven&#xff0c;所以我们就不需要下载了&#xff0c;直接使用 IDEA 默认的 Maven 进行项目构建。 &#…

【NSX-T】10. 搭建NSX-T环境 —— 使用 BGP 配置 Tier-0 网关

目录 10.1 创建上行链路网段10.2 创建 Tier-0 网关&#xff08;1&#xff09;设置 Interface 信息&#xff08;2&#xff09;设置 BGP添加 BGP 邻居 &#xff08;3&#xff09;设置 BGP 路由重分发设置路由重新分发 10.3 连接 Tier-0 和 Tier-1 网关10.4 使用网络拓扑验证 Tier…

VLAN间的通讯---三层交换

一.三层交换 1.概念 使用三层交换技术实现VLAN间通信 三层交换二层交换 三层转发 2.基于CEF的MLS CEF是一种基于拓补转发的模型 转发信息库&#xff08;FIB&#xff09;临接关系表 转发信息库&#xff08;FIB&#xff09;可以理解为路由表 邻接关系表可以理解为MAC地址表…

Facebook广告系统结构

Facebook广告系统是一个复杂的大型系统&#xff0c;由多个组件和子系统相互配合工作&#xff0c;实现了广告的投放、拍卖、个性化推荐和效果评估等功能。下面小编讲讲Facebook广告系统的结构。 1、广告管理界面 广告管理界面是广告主与Facebook进行交互的入口&#xff0c;广告…

猿人学19题(原比赛平台)

这道题给我搞得有点懵了&#xff0c;我现在还没发现他到底要考察什么&#xff0c;这边我直接协商我的sessionid请求是直接就成功的。&#x1f602; 依旧是分析请求方式&#xff0c;抓包到返回数据的位置 现在可以知道这些数据是ajax返回的&#xff0c;请求的参数是page&#x…

Spark RDD、DataFrame、DataSet比较

在Spark的学习当中&#xff0c;RDD、DataFrame、DataSet可以说都是需要着重理解的专业名词概念。尤其是在涉及到数据结构的部分&#xff0c;理解清楚这三者的共性与区别&#xff0c;非常有必要。 RDD&#xff0c;作为Spark的核心数据抽象&#xff0c;是Spark当中不可或缺的存在…

C语言写的 mini版的 http 服务器 , 很详细

文章目录 效果展示整体架构流程技术细节完整代码 效果展示 例如&#xff1a;htpp://192.168.23.140/home.html -> 正确的请求格式 home.html 这个资源是放在我们服务器里面的 , 并不是随便访问的资源,当然我们可以放很多的资源进去. 整体架构流程 整个实现的流…

无心剑英译朱自清《匆匆》

匆匆 Vanished in Haste 朱自清 By Zhu Ziqing 燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢:现在又到了哪里呢? Sw…

如何使用Docker进行容器的备份和恢复

一 简介&#xff1a; 在使用Docker进行应用程序的容器化部署时&#xff0c;我们经常需要对容器进行备份和恢复操作。备份容器可以保证数据的安全性&#xff0c;而恢复操作可以帮助我们快速恢复出现问题的容器。本文将介绍如何使用Docker进行容器的备份和恢复&#xff0c;同时提…