Paper -- 建筑高度估计 -- 基于街景图像和深度学习的城区建筑高度计算
基本信息
论文题目: Building height calculation for an urban area based on street view images and deep learning
中文题目: 基于街景图像和深度学习的城区建筑高度计算
作者及单位:
– Zhen Xu Furong Zhang Yingying Wu Yajun Yang Yuan Wu
– 北京科技大学城市与安全研究所
,土木与资源工程学院,北京,中国
录用时间: 2023年
期刊: Computer-Aided Civil and Infrastructure Engineering
中国科学院SCI分区 1区
摘要
这篇文章提出了一种利用街景图像
和深度学习技术
计算城市建筑高度
的新方法。
- 通过
优化观察点位置
的遗传算法和基于Mask R-CNN
的深度学习模型 - 该方法能够高效地
检测建筑
并精确计算其高度
- 实验表明,平均高度误差为0.78米,证明了该方法的高精度和可行性
背景
城市建筑高度数据 在土地利用
、城市规划
、人口估算
、能源消耗分析
等多个领域具有重要价值
- 传统的
高度测量方法
包括土地测量、遥感图像处理等,但这些方法在高密度低层建筑
或特殊建筑形状
的地区往往失效
难点
- 观察点选择困难:
观察点过多
会浪费资源,而过少会导致建筑信息不完整。 - 全景图像检测难度高:
全景图像
中建筑形状复杂且失真严重
,传统算法难以有效检测。 - 高度计算复杂:需要精确建立
建筑的边界
和实际位置
之间的 映射关系
希望提出一种能够结合街景图像
和深度学习
的自动化方法,解决观察点选择、建筑检测和高度计算的难题
数据集和评价指标
数据集
- 来源:
百度
街景图像,包含校园
、新北川镇
和如皋市
的建筑数据。 - 标注方式:使用
LabelMe
手动标注建筑的边界曲线
。
5.2
评价指标
- mAP@.50 IOU:评估
Mask R-CNN
检测结果的精度。 - 误差分析:通过
实际测量值
验证计算高度的误差,平均误差为0.78米,平均相对误差为4.43%
方法
这张图展示了该论文提出的用于计算建筑高度
的整个方法框架,清晰地描述了从数据输入
到案例研究
的完整流程
图中5个部分的详细解释
- 数据输入(Data Input)
- 使用街景地图(如
百度街景
)获取建筑立面图像
。 - 从GIS平台获取
建筑足迹
和道路线
信息。 - 数据输入为整个框架提供了必要的初始信息,结合街景图像和空间数据
为后续步骤打下基础
- 使用街景地图(如
- 图像采集(Image Acquisition)
- 流程:
确定备选观察点
:通过遗传算法(GA)
优化选择观察点,以覆盖所有建筑
并减少下载数量。
街景爬虫
:从街景地图中自动获取
360°全景图像。 - 作用:
提高了
图像采集的效率,确保了数据的覆盖性
和完整性
。
- 流程:
- 建筑检测(Building Detection)
- 步骤:
创建样本集并对图像进行标注
。
训练Mask R-CNN模型
检测建筑。
使用mAP@.50 IOU
评价检测结果。 - 关键技术: Mask R-CNN可以
精确分割建筑边
界,为高度计算
提供了准确的输入数据。
- 步骤:
- 高度计算(Height Calculation)
- 流程:
将检测到的建筑
与实际建筑
进行映射。
采用边界搜索算法
定位建筑顶部。
构建数学模型
,基于图像中的边界点
计算建筑高度。 - 意义: 这一阶段是核心部分,结合检测结果和数学模型实现了
精确的高度计算
。
- 流程:
- 案例研究(Case Study)
- 验证场景:
北京科技大学校园
:用于验证方法的基本准确性
。
新北川镇
:证明方法在中型城市
的适用性。
如皋市
:展示方法在大规模城市环境中
的扩展能力。 - 图例解读: 图中用不同颜色表示建筑高度范围,例如:
黄色
:建筑高度小于24米。
绿色
:高度在24米至50米之间。
蓝色
:高度超过50米。
- 验证场景:
确定建筑观察点
(a):定义建筑与观察点的关系,判断建筑是否在观察范围内
(表示为
s
i
j
s_{ij}
sij)
(b):连接观察点与建筑转角点
,分析可视性。
(c ):基于视线和建筑轮廓的交互关系,确定建筑是否被完整观察到
(表示为
q
i
j
q_{ij}
qij)
Buildings(棕色):建筑的轮廓区域。
Observation locations(黄色圆点):观察点的位置
。
Observation range(绿色圆圈):观察点的覆盖范围
。
Turning points of buildings(绿色菱形):建筑的转角点
,用于判断可视性
确定建筑观察点是否能够有效观察到建筑立面
的流程如下:
- 判断建筑是否在观察范围内((a)部分)
- 步骤:
- 以
观察点
为圆心,半径为
有效观察距离 R R R,绘制圆形观察范围
。 - 如果建筑与观察范围
有重叠
,设 s i j = 1 s_{ij}=1 sij=1,否则 s i j = 0 s_{ij}=0 sij=0
- 以
- 目的: 这一部分用于筛选哪些建筑在某个观察点的有效范围内,从而减少后续的计算工作量。
- 步骤:
- 分析可视性((b)部分)
- 步骤:
- 连接
观察点
与建筑转角点
,生成多条视线
。 - 判断视线
是否穿过其他建筑
或被遮挡
。 - 如果视线与建筑轮廓
无交点
,则认为该转角点是可见的
。
- 连接
- 作用: 通过视线分析,进一步确认建筑的哪些部分可以被观察到。
- 步骤:
- 确定是否完整观察到建筑((c )部分)
- 步骤:
如果一个建筑的所有转角点
都在观察范围内且可见
,则设定 q i j = 1 q_{ij}=1 qij=1,表示该建筑被完整观察到
。否则 q i j = 0 q_{ij}=0 qij=0 - 意义: 这一部分的判断结果直接影响后续建筑检测和高度计算的准确性
- 步骤:
示例 -- 北京市科技大学西校区的观察点分布图
绿色区域代表建筑物的分布
。
黄色圆点标记了街景数据的观察点位置
。
橙色线条表示街道网络
,即街景数据的采集范围。
证明了:
- 数据采集优化
通过优化观察点分布
,减少冗余采集
,降低数据获取成本。 - 提升覆盖效果
确保建筑区域被完整观察
,保证街景图像采集的全面性。 - 应用于复杂场景
优化方法适用于更大范围
或更复杂建筑布局
的场景
比较了均匀分布方法和文章提出的优化方法在不同场景中的所需的观察点数量
均匀分布方法:
– 校园场景
需要25个观察点。
– 新北川镇场景
需要596个观察点。
提出的方法:
– 校园场景
仅需9个观察点。
– 新北川镇场景
仅需245个观察点。
对比结果:
– 在两个场景中,提出的方法显著减少了
所需的观察点数量
街景全景图及其分割网格示例
图像来源:
– 图像为典型的街景全景图
,来源于数据采集阶段,通过街景爬虫工具
获取。
– 其主要特点是通过球面投影
显示所有方向的信息
。
网格划分:
– 全景图被划分为多个均匀的矩形网格
,每个网格代表街景图像的一部分。
– 每个网格的划分是为了方便后续的区域化处理
,如检测目标建筑物
和分析建筑边界
网格化的目的
- 区域分块处理:
由于街景图像为全景形式,图像分辨率较高
且信息量大
。
将图像分割为多个子区域
后,可以针对每个区域
单独进行检测和分析。 - 定位精确性:
网格划分有助于快速定位建筑物
的具体位置,同时减少冗余计算
。
网格编号与处理流程
- 编号含义:
每个编号
对应一个矩形子区域
,用于标记建筑物所在的具体位置。 - 处理步骤:
- 输入全景图像:以
球面形式
展开街景数据,形成水平和垂直视野完整的图像。 - 划分网格:将图像
分割为16个相等
的矩形区域。 - 区域处理:针对
每个网格
运行建筑检测算法
,如Mask R-CNN。 - 结果合并:将各个网格中的检测结果
整合
,形成全局建筑物检测结果
。
- 输入全景图像:以
街景爬虫的实现流程
该图是一个流程图,详细描述了利用百度地图API
抓取街景全景图像
的实现步骤,包括初始化请求、抓取图像以及拼接存储的全过程:
初始化与请求
- 流程:
根据观察点的坐标
和全景图的水平及俯仰角度
初始化参数。
创建HTTP请求
,将所有请求放入队列
中。 - 作用:
将街景爬取任务转化为API调用
的可操作形式。
利用队列机制
为后续批量处理打下基础。
爬取图像
- 流程:
判断队列是否为空
:
–如果为空
,则结束爬取任务。
–如果不为空
,取出一个HTTP请求。
利用百度地图API发送请求并尝试爬取图像。
检查图像是否成功爬取
:
–如果成功
,删除队列中对应的请求。
–如果失败
,保留该请求以便重试。 - 作用:
通过循环机制确保每个请求都得到处理。
提高数据爬取的成功率,避免由于网络问题
导致的任务丢失。
拼接与存储
- 流程:
将成功爬取的子图像按照全景图的拼接规则
组合成完整的街景全景图
。
将拼接完成的全景图存储至本地
或数据库
中。 - 作用:
生成高质量的全景图,为后续建筑检测和高度计算提供输入数据
手动标注建筑物轮廓
该图展示了标注建筑物轮廓
的过程,图中不同建筑
被标注为不同的颜色区域
,轮廓线明确地勾勒出每个建筑物的边界
标注工具:使用了一种支持全景图像操作的标注软件(例如LabelMe)
标注内容的用途
- Mask R-CNN 模型训练:
– 标注的图像作为训练样本
,用于指导模型
学习如何分割建筑物
。 - 提升检测精度:
– 通过高质量标注
,提高模型对复杂背景下
建筑物边界的识别能力
检测到的建筑与实际建筑之间的映射关系
(a)部分:展示了建筑在实际地理空间
中的位置与观察点的几何关系
,基于球面坐标系统描述
。
(b)部分:展示了检测到的建筑在图像坐标系
中的表示以及从图像像素坐标
到地理位置
的映射过程。
(a) 地理空间中的建筑位置与观察点关系
- 元素解释:
黄色圆点
O ′ O' O′ : 观察点的位置。
绿色菱形
:建筑的转角点
。
红色边界线
:建筑物在当前视角下
的可观察部分。
ρ 1 , ρ 2 \rho_1,\rho_2 ρ1,ρ2:建筑与观察点之间的距离范围
。
D ( ρ ) D(\rho) D(ρ):建筑物边界的测量距离。 - 几何关系:建筑在地理空间中通过球面坐标系统描述,其位置和轮廓与观察点的位置密切相关。
(b) 图像空间中的建筑表示
- 元素解释:
W i m g W_{img} Wimg和 H i m g H_{img} Himg:图像的宽度
和高度
(像素单位)
( x j , y j ) (x_j, y_j) (xj,yj):建筑顶点
在图像中的像素坐标
映射关系:将图像中的像素点
( x j , y j ) (x_j, y_j) (xj,yj)转换为地理空间坐标
( ρ j , ϕ j ) (\rho_j,\phi_j) (ρj,ϕj)
ρ j = 2 π ⋅ ( x j W i m g − 1 2 ) φ j = π ⋅ ( 1 2 − y j H i m g ) \rho_j=2\pi\cdot\left(\frac{x_j}{W_\mathrm{img}}-\frac12\right)\text{}\\\varphi_j=\pi\cdot\left(\frac12-\frac{y_j}{H_\mathrm{img}}\right)\text{} ρj=2π⋅(Wimgxj−21)φj=π⋅(21−Himgyj)
此公式表示: 如何将街景图像中的矩形坐标(像素坐标)
映射到球面坐标系下的方位角和仰角
- 图像像素坐标系:
横坐标 x x x:图像宽度方向(从左至右)
纵坐标 y y y:图像高度方向(从上至下)
建筑检测与预处理
(a) 检测前的图像
内容:
– 使用Mask R-CNN
模型对街景图像进行建筑检测
,标注了建筑的边界框
(Bounding Box)。
– 检测结果显示在绿色框内
的建筑区域,框外的背景区域未被标注。
– 边界框内显示了置信度(“blg: 100%”)
,表明模型对建筑检测结果的高度信任
。
作用:
– 提供建筑的初步检测结果,为后续的预处理奠定基础。
(b) 预处理后的图像
内容:
– 经过预处理,仅保留建筑的二值化掩码
,建筑区域为白色
,其他背景区域为黑色。
– 去除了图像中的背景信息
,确保输入数据更为简洁。
作用:
– 为高度计算
和边界检测
提供更干净的数据
– 减少冗余信息对后续分析的干扰
边界搜索
该图展示了建筑顶部边界点
的搜索
与确定
过程
(a) 预处理图像
内容:
– 预处理后的二值化图像
,背景为黑色,建筑区域为白色
。
– 中间的绿色虚线
表示图像的参考中心线
(通常是观察点的视线)。
作用:
– 提供建筑的轮廓信息,作为边界搜索的输入。
(b) 搜索可能的观察角度
内容:
– 从不同的角度投射视线
,搜索建筑顶部
可能的边界点
。
– 蓝色锥形区域
表示视线范围
。
– 黑色箭头
指示视线的搜索方向
。
作用:
– 通过多视角分析,避免单一视角可能导致的边界误差。
(c ) 确定上边界点
内容:
– 根据视线和建筑轮廓的交点
,计算出建筑的顶部边界
。
– 紫色直线表示最终确定的边界点连接
。
作用:
– 精确定位建筑顶部,为高度计算
提供可靠的数据支持。
固定相机高度下建筑高度计算的测量模型
该图展示了如何通过几何关系推导建筑物高度的计算公式
观测结构:
右侧的相机
表示观察点,固定安装在某一高度
H
c
a
m
H_{cam}
Hcam。
蓝色虚线
表示观察点与建筑的视线
。
黄色虚线
表示建筑的中心轴线
,用于表示高度的测量路径
符号说明1:
H
(
ρ
)
H(\rho)
H(ρ):建筑物的总高度
。
H
1
(
ρ
)
H_1(\rho)
H1(ρ):建筑顶部到相机
的高度。
H
2
(
ρ
)
=
H
c
a
m
H_2(\rho) = H_{cam}
H2(ρ)=Hcam:建筑底部到相机
的高度,等于相机安装的固定高度
。
关系:
建筑物总高度为顶部高度和底部相机高度之和:
H
(
ρ
)
=
H
1
(
ρ
)
+
H
2
(
ρ
)
H(\rho) = H_1(\rho) + H_2(\rho)
H(ρ)=H1(ρ)+H2(ρ)
符号说明2:
D
(
ρ
)
D(\rho)
D(ρ): 观察点到建筑的水平距离
φ
1
\varphi_1
φ1: 从观察点到建筑顶部
的仰角
φ
2
\varphi_2
φ2: 从观察点到建筑底部
的仰角
关系:
根据三角函数,顶部和底部的高度可以通过仰角和水平距离
计算
H
1
(
ρ
)
=
D
(
ρ
)
⋅
tan
(
φ
1
)
H
2
(
ρ
)
=
D
(
ρ
)
⋅
tan
(
φ
2
)
H_1(\rho)=D(\rho)\cdot\tan(\varphi_1)\\H_2(\rho)=D(\rho)\cdot\tan(\varphi_2)
H1(ρ)=D(ρ)⋅tan(φ1)H2(ρ)=D(ρ)⋅tan(φ2)
计算建筑高度与实际测量建筑高度之间的对比
第一列:建筑编号(Building no.),标记19栋建筑
的序号
第二列:通过提出的方法计算出的建筑高度
H
a
H^a
Ha(单位:米)
第三列:实际测量的建筑高度
H
m
H^m
Hm(单位:米)
第四列:计算高度与测量高度之间的绝对误差(Error)
,单位为米。
表格底部 显示了整体的平均相对误差(Mean relative error)
,为4.43%。
较大误差现象:
– 编号9的误差为2.35米,这是表格中最大的误差
。
– 表明在部分较高
或复杂建筑
的高度计算中仍存在改进空间
尽管建筑高度和结构复杂性不同,该方法在所有19栋建筑上均表现出较好的精度
北京科技大学西校区建筑高度分布的三维可视化结果
该图展示了校园内所有建筑的三维结构
及其对应的高度分类
。
建筑的高度被划分为三个范围,并以不同颜色表示:
– 黄色:高度小于15米。
– 绿色:高度在15米至30米之间。
– 蓝色:高度大于30米。
蓝色圆点 标记了街景数据的观察点分布
新北川镇的建筑高度计算结果
该图展示了新北川镇
的建筑高度
计算结果,以三维形式
显示了不同建筑的高度分布情况
高度低于5米 的建筑:灰色。
高度在5米到24米之间 的建筑:绿色。
高度在24米到50米之间 的建筑:黄色。
高度高于50米 的建筑:红色。
通过真实场景的三维可视化,验证了文章提出的方法在建筑高度计算中
的适用性和精确性
原文地址:https://blog.csdn.net/qq_33366130/article/details/144065569
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!