Paper -- 3D建筑模型生成 -- GABLE: 基于高分辨率卫星影像的全国尺度精细3D建筑模型

在这里插入图片描述


基本信息

论文题目: GABLE: A first fine-grained 3D building model of China on a national scale from very high resolution satellite imagery
中文题目: GABLE: 基于高分辨率卫星影像的全国尺度精细3D建筑模型
作者及单位:
– 多数作者来自中国科学院空间信息研究所,北京,中国
– Xiaoliang Ma 和 Deke Tang 来自合肥的GEOVIS地球科技有限公司北京的Geovis科技有限公司
投稿时间:2023年9月13日
修改时间:2024年2月10日
接受时间:2024年2月14日
期刊: Remote Sensing of Environment 中国科学院SCI分区 1区


摘要

本文提出了一种全国尺度的精细3D建筑模型 (GABLE),利用高分辨率卫星影像数据(北京三号)开发,涵盖全国所有城市和乡村地区
模型的创新点在于提供了 12种屋顶分类 ,以及 建筑的精确高度空间多边形表示

  • 首次在全国范围内提供了 建筑的语义精细分类
  • 引入 深度学习方法 对屋顶分类和建筑高度进行统一优化。
  • 对城市建筑的高度分布、密度和多样性进行了分析

背景

  • 传统的3D建筑模型大多基于粗分辨率影像分类和高度信息有限
  • 城市化进程快速推进,需要精确的建筑模型来支持 能源规划可持续发展分析

问题

  • 现有产品通常局限于建筑轮廓提取或粗略高度估计,难以支持精细化分析。
  • 数据的时效性较低,无法反映快速发展的城市和乡村建筑变化

本文提出一个基于深度学习的新框架,通过 高分辨率影像 实现建筑语义分类精细高度估计


方法

  • 总体框架
    – 包含两大网络:屋顶提取高度估计,并通过后处理统一结果。
  • 屋顶提取网络
    – 通过级联多任务网络实现建筑轮廓提取分类优化
    – 引入边界框和矢量化技术,提高复杂场景的提取准确性。
  • 高度估计网络
    – 使用深度学习框架将高度连续值离散化为分类问题提高模型稳定性
    – 融合局部和全局特征,解决遮挡和高密度区域的预测误差。

数据集和评价指标

  • 数据集
    • 北京三号影像数据:分辨率为0.5-0.8米,总计覆盖40TB
    • 自定义屋顶数据集:包括113,739个建筑实例,涵盖中国50个城市
    • 高度数据集:基于立体匹配生成,结合楼层数据标注高度
  • 评价指标
    • 屋顶提取:整体准确率(OA),平均精度(AP50)
    • 高度估计:平均绝对误差(MAE)、均方根误差(RMSE)、精度阈值(δ)

北京三号卫星数据满足对建筑物精细特征提取的需求

在这里插入图片描述

  • Product(产品):建筑模型或地理信息产品的名称
  • Product type(产品类型):具体包含的建筑信息类型,例如足迹(Footprint)高度(Height)屋顶信息(Rooftop)
  • Extent(覆盖范围):模型的地理覆盖范围(例如全球中国等)
  • Resolution(分辨率):模型的空间分辨率
  • Data Source(数据来源):模型所依赖的数据来源(例如卫星数据雷达影像
  • Year(年份):数据的时间范围

此表解释了GABLE的创新和优势

  • GABLE是首个覆盖全中国的个体级建筑模型,结合了12种屋顶分类建筑高度矢量化的轮廓信息
  • 数据来源最新(2023年),分辨率达到个体级别超越了现有大多数产品

12种预定义屋顶类型的示例

在这里插入图片描述
该图表示作者将分类的12种屋顶类型有哪些

图像中分为12个子图,每个子图代表一种屋顶类型,包括:

  • Flat roof(平屋顶):建筑顶部为平面设计的屋顶
  • Gable roof(双坡屋顶):典型的三角形斜面屋顶
  • Gambrel roof(折坡屋顶):带有两段不同坡度的斜屋顶
  • Row roof(排式屋顶):由连续多段平行屋顶构成的建筑
  • Multiple eave roof(多檐屋顶):具有多个层次檐口的复杂屋顶结构
  • Hipped roof v1/v2(单坡/多坡屋顶):具有单一或多面坡度的屋顶
  • Mansard roof(曼萨尔屋顶)顶部平坦且四面倾斜的屋顶
  • Pyramid roof(金字塔屋顶)四面向上汇聚呈金字塔形的屋顶
  • Arched roof(拱形屋顶):顶部呈弧形设计
  • Revolved roof(旋转屋顶):具有旋转或不规则曲面的屋顶
  • Other(其他):不属于上述类别的其他复杂形状

自定义屋顶数据集的样本分布情况

在这里插入图片描述

  • 黄色填充区域

    • 表示北京三号卫星影像覆盖的区域,涵盖了中国大陆的大部分区域,包括东部、中部和部分西部地区
    • 表明北京三号影像 具有全国性的覆盖能力,是本文GABLE模型的主要数据来源。
  • 棕色实心圆:

    • 表示定制屋顶数据集中各个样本点的地理分布
    • 圆的半径大小与该区域的样本数量成正比,样本密集的区域圆形更大。
    • 样本主要分布在中国东部和中部经济发达地区(如京津冀、长三角、珠三角),反映了这些地区建筑类型和屋顶样本的多样性。

其他数据展示

在这里插入图片描述
北京三号影像 能够清晰展示屋顶结构、建筑阴影和周围环境,便于进行更精确的建筑分类和建模

在这里插入图片描述
建筑风格和城市规划对比
中国:注重高密度的城市住宅区开发,以充分利用土地资源
德国:强调街区式布局和紧凑的城市设计,有助于提高步行可达性
美国:典型的低密度郊区住宅,适应汽车为主的出行模式

在这里插入图片描述
↑ 通过这四个城市的样本,直观地呈现了中国不同地理环境下建筑分布屋顶形态差异:
上海(沿海城市)
合肥(内陆城市)
武汉(河流城市)
重庆(山区城市)

在这里插入图片描述
↑ 这些样本反映了不同功能区域建筑形态分布特征,为模型在多功能场景下的适用性提供了支持
住宅区: 建筑密集且布局较为整齐, 屋顶类型以平屋顶和坡屋顶为主
工业区: 工业区的建筑物体量较大, 显示了明显的厂房结构以及用于存储的宽大屋顶
商业区: 建筑密集且多为高层建筑,屋顶结构复杂
农村地区: 农村地区的建筑较为分散,屋顶类型多样化,周围有大量的植被覆盖

其他数据集样本的优势展示就略掉了…


方法框架

在这里插入图片描述

  • 输入数据:
    左侧显示了数据来源

    • WSF 2019(世界建筑足迹数据集):提供建筑分布的基本信息。
    • Beijing-3 data(北京三号影像数据):提供高分辨率影像,支持精细化建筑提取。
    • Areas of Interest (AOI):从中国50个城市中选择感兴趣区域,进行手动标注和样本选择。
  • 处理模块:
    中间部分包括两个主要的功能模块

    • 屋顶提取与分类(Rooftop Extraction and Classification)
      – 使用UBCv2数据集进行模型预训练
      – 微调模型以生成细分类别的屋顶数据
    • 建筑高度估计(Building Height Estimation)
      – 基于DFC 2023数据集预训练模型
      – 微调后生成建筑高度信息
  • 输出数据:
    右侧展示了输出结果

    • 细分类别的屋顶信息 + 建筑高度数据
    • 两者结合经过后处理生成精细化的三维建筑模型

屋顶提取与分类

在这里插入图片描述
输入图像:

  • 输入是一张包含屋顶的高分辨率卫星影像

主要模块:

  • 特征提取:从影像中提取特征,作为后续任务的输入。
  • 边界框生成(bounding boxes):生成候选框,用于标识潜在的屋顶实例
  • 轮廓处理
    包括轮廓初始化多轮的轮廓优化(Contour Initialization & Refinement)。
  • 实例分类:对提取的屋顶实例进行分类,分配类别标签(如平屋顶、坡屋顶等)

输出结果:

  • 最终的输出包括精确的屋顶轮廓分类结果
  • 轮廓以矢量化形式表示,用 黄色线条 标注最终优化后的屋顶边界

SFFDE(Spatial Feature Fusion and Depth Estimation)网络框架 - 用于建筑高度估计

在这里插入图片描述
输入(Input):
输入为高分辨率卫星影像,包含建筑物的影像特征
图像经过特征提取和处理,输出为高度预测的结果

核心模块:

  • Backbone
    负责提取影像的低级和高级特征
    通过多层网络逐步提取不同尺度的空间特征
  • Transformer(T)
    用于捕捉长距离依赖关系,整合全局特征
    结合影像中建筑物的全局和局部特性
  • Decoder
    从Backbone和Transformer中获取的特征进一步解码,生成建筑高度估计
  • Registration(R)
    特征对齐模块,用于在不同网络层之间融合特征

输出(Output):
输出为建筑物高度的预测图,用颜色梯度显示建筑高度分布

框架的创新性:
– SFFDE框架结合了Transformer多尺度特征融合策略,使得模型能够处理复杂建筑分布和不同影像特性
– 特征对齐模块(R)的设计有效避免了特征丢失,提高了模型的精度


效果

在这里插入图片描述

展示了GABLE模型在四个典型城市(北京西城区上海静安区重庆渝中区和** 广东龙华区**)的建筑屋顶提取与分类结果

  • 每个区域都以影像地图为基础,叠加了建筑屋顶的分类结果
  • 屋顶类别以不同颜色表示,详细说明了建筑屋顶的形态与分布特征

在这里插入图片描述
展示了GABLE模型在三个典型城市(合肥、哈尔滨和苏州)的LoD1(Level of Detail 1)建筑可视化结果
生成的 LoD1建筑 结果以颜色编码呈现,直观展示了每种屋顶类别的分布和空间布局

  • 合肥(Hefei):建筑分布均匀,主要以平屋顶和双坡屋顶为主,显示了较多的工业建筑
  • 哈尔滨(Harbin):建筑分布密集,显示了更多多坡和多檐屋顶,可能与东北地区建筑形式相关
  • 苏州(Suzhou):建筑分布中规中矩,平屋顶和双坡屋顶占比高,显示了较多的城市住宅建筑

其他效果即实验结果展示 略…

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

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

相关文章

高级java每日一道面试题-2024年11月21日-数据结构篇-红黑树有哪几个特征?

如果有遗漏,评论区告诉我进行补充 面试官: 红黑树有哪几个特征? 我回答: 红黑树(Red-Black Tree)是一种自平衡二叉查找树(Self-Balancing Binary Search Tree),它在插入和删除操作后能够自动保持树的高度平衡。红黑…

蓝桥杯嵌入式再学习(2)基础框架的构建

1:打开工程以后我们需要进行一些配置如图: 第一步:将core里面的对勾取消掉 勾选Microlib 优化等级选择level 0 将我们自己的文件夹添加到路径里面去 这个样子我们就基本将框架搭建好了我们然后需要编写各个底层的驱动了

矩阵/矩阵乘法/特征征/特征向量的讲解

线性代数里有很多的概念,很多概念是有几何意义的,了解了几何意义可能会更好的理解各种概念及其相互之间的关系。 矩阵: 矩阵是一个变换,一个坐标系到另一个坐标第的变换。矩阵里的各个参数,代表了如何进行变换。 矩阵…

Flink Transformation - 转换算子全面解析

Flink Transformation - 转换算子全面解析 一、引言 在Flink的数据流处理中,转换算子(Transformation Operators)扮演着极为关键的角色。它们能够对输入的数据流进行各种处理和转换操作,以满足不同的业务需求。本文将详细介绍Fl…

Easyexcel(5-自定义列宽)

相关文章链接 Easyexcel(1-注解使用)Easyexcel(2-文件读取)Easyexcel(3-文件导出)Easyexcel(4-模板文件)Easyexcel(5-自定义列宽) 注解 ColumnWidth Data…

C++ 中的模板特化和偏特化

C中的模板特化和偏特化是C模板编程中的两种重要技术,用于在特定情况下提供更优化的代码实现。‌ 模板特化 模板特化是指在模板参数为特定类型时,提供一种特定的实现方式。模板特化分为‌函数模板特化‌和‌类模板特化‌。 函数模板特化‌: …

短信发送业务

Override public void sendCode(String phone) {// 通过正则判断手机号的合法性if (!phone.matches("^1[3-9]\\d{9}$")) {throw new RuntimeException("请输入合法的手机号");}// 判断3次// String.format("code:%s", phone)String numKey Stri…

1+X应急响应(网络)文件包含漏洞:

常见网络攻击-文件包含漏洞&命令执行漏洞: 文件包含漏洞简介: 分析漏洞产生的原因: 四个函数: 产生漏洞的原因: 漏洞利用条件: 文件包含: 漏洞分类: 本地文件包含: …

深入实践 Shell 脚本编程:高效自动化操作指南

一、什么是 Shell 脚本? Shell 脚本是一种用 Shell 编写的脚本程序,用于执行一系列的命令。它是 Linux/Unix 系统中自动化管理任务的利器,能够显著提升工作效率,特别适合批量处理文件、监控系统状态、自动部署等任务。 二、Shell…

HTML5 SVG

HTML5 SVG SVG(Scalable Vector Graphics)是一种基于XML的图像格式,用于在网页上创建矢量图形。与传统的位图图像(如PNG和JPEG)不同,SVG图像可以无限放大而不失真,因为它们是由直线和曲线定义的数学路径,而不是像素点。HTML5支持直接在网页中嵌入SVG,使得网页设计更加…

Flutter:SlideTransition位移动画,Interval动画延迟

配置vsync&#xff0c;需要实现一下with SingleTickerProviderStateMixinclass _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin{// 定义 AnimationControllerlate AnimationController _controller;overridevoid initState() {super.…

gitlab:使用脚本批量下载项目,实现全项目检索

目的 当需要知道gitlab中所有项目是否存在某段代码时&#xff0c;gitlab免费版只提供了当个项目内的检索&#xff0c;当项目过多时一个个查太过繁琐。下面通过 GitLab API 将指定 Group 下的所有项目克隆到本地。此脚本会自动获取项目列表并逐一克隆它们&#xff0c;再在本地进…

【Android】android compat理解

1&#xff0c;前提 即便是在同一手机上安装的不同apk&#xff0c;其编译的apk不同&#xff0c;也会导致行为上的差异。如SDK34有限制后台启动&#xff0c;但如果安装的apk所依赖的sdk是33&#xff0c;则不会表现出此差异。这是如何实现的呢&#xff1f;其实&#xff0c;本质是…

使用php和Xunsearch提升音乐网站的歌曲搜索效果

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…

电脑自动关机时间如何定?Wise Auto Shutdown 设置关机教程

在日常使用电脑的过程中&#xff0c;有时我们需要让电脑在特定的时间自动关机&#xff0c;比如在下载大文件完成后、执行长时间的任务结束时&#xff0c;或者只是单纯想在某个预定时间让电脑自动关闭以节省能源。这时候&#xff0c;Wise Auto Shutdown 这款软件就能派上大用场了…

微信小程序被攻击怎么选择高防产品

家人们&#xff0c;微信小程序被攻击了&#xff01;这事儿可不小。你想想&#xff0c;咱们平时用小程序点外卖、购物、玩游戏&#xff0c;现在却可能面临信息泄露风险。卡顿、闪退都算轻的&#xff0c;关键是咱的账号安全、个人数据&#xff0c;就像在“裸奔”。小程序本是方便…

k8s上面的Redis集群链接不上master的解决办法

问题描述 之前在k8s上面部署了一台node&#xff0c;然后创建了6个redis的pod&#xff0c;构建了一个redis的集群&#xff0c;正常运行。 最近添加了一台slave node&#xff0c;然后把其中的几个redis的pod调度到了slave node上面&#xff0c;结果集群就起不来了&#xff0c;…

什么是 C++ 中的智能指针?有哪些类型的智能指针?

智能指针的定义 在 C 中&#xff0c;智能指针是一种类模板&#xff0c;用于管理动态分配的内存。它的主要目的是自动管理内存的生命周期&#xff0c;避免手动释放内存时可能出现的错误&#xff0c;如内存泄漏&#xff08;忘记释放内存&#xff09;和悬空指针&#xff08;访问已…

Oracle热备过程中对数据库崩溃的处理方法

引言 在热备过程中如果发生数据库崩溃、断电等情况该如何处理? 如果正在备份 users 表空间的数据文件过程中,此时的数据文件表头 SCN 会被锁定,此时正在复制数据文件时数据库崩溃,系统断电。 从而导致数据文件表头与控制文件中的不一致,导致数据库无法打开,会要求介质恢…

Python操作neo4j库py2neo使用之创建和查询(二)

Python操作neo4j库py2neo使用之创建和查询&#xff08;二&#xff09; py2neo 创建操作 1、连接数据库 from py2neo import Graph graph Graph("bolt://100.100.20.55:7687", auth(user, pwd), nameneo4j)2、创建Node from py2neo import Node, Subgraph # 创建…