基于深度学习的街景图像建筑高度估算:iBHEDC算法详解
基于深度学习的街景图像建筑高度估算:iBHEDC算法详解
随着城市化进程的加快,建筑高度数据在城市规划、灾害评估等领域变得越来越重要。传统的建筑高度测量方法往往成本高昂且效率低下,而基于街景图像的建筑高度估算提供了一种新的解决方案。本文将介绍一种基于深度学习和图像处理的建筑高度估算方法,该方法能够从街景图像中自动估算建筑高度,具有较高的精度和鲁棒性。
论文题目: Building height estimation from street-view imagery using deep learning, image processing and automated geospatial analysis
中文题目: 基于深度学习、图像处理和自动地理空间分析的街景图像建筑高度估算
作者: Ala’a Al-Habashna, Ryan Murdoch
作者单位: 加拿大统计局特别业务项目中心数据探索和集成实验室,加拿大渥太华
投稿时间:2023年5月16日
修改时间:2023年8月24日
接受时间:2023年9月28日
在线发表时间:2023年11月11日
期刊: Multimedia Tools and Applications(中国科学院SCI期刊分区的四区)
摘要
近年来,许多研究致力于从街景图像中提取有关建筑和基础设施、交通与移动性、步行性以及健康与福祉的有价值数据。本文提出了两种算法及其实现方法,用于利用深度学习(DL)和高级图像与地理空间数据处理算法,从街景图像中自动估算建筑高度。具体包括:
- BHEDC算法:基础算法,用于估算建筑高度。
- iBHEDC算法:改进版算法,增加了新的组件和优化步骤。
本文旨在通过改进现有算法 (BHEDC),提出一种新的方法(iBHEDC),以提高建筑高度估算的精度和效率。
背景
建筑高度是城市建模与规划、城市与经济分析等领域的重要数据。传统方法依赖于昂贵的测量设备或高分辨率遥感图像,而街景图像提供了一种低成本、高可用性的替代方案。尽管街景图像在地理空间数据提取中具有潜力,但如何从中准确估算建筑高度仍然是一个挑战,尤其是在复杂的城市环境中。
相关研究
- 步行性分析:Smith等人提出了一种方法,通过街景图像提取人行道的存在及质量数据,用于设计步行友好型城市。
- 道路表面分类:Marianingsih和Utaminingrum使用街景图像训练分类器,将道路表面分类为多种类型(如沥青、砾石)。
- 视觉定位:通过与地理标记图像的比较,预测图像的地理位置。
- 建筑高度估算:Zhao等人提出了一种基于语义分割和边缘检测的建筑高度估算方法。Al-Habashna提出了BHEDC算法,利用街景图像和建筑轮廓数据进行高度估算。
方法
iBHEDC算法概述
- 预处理与语义分割:对输入图像进行预处理,使用CNN生成语义分割图像,提取建筑物区域。
- 建筑维度提取:通过颜色变换和单应性变换,提取建筑物在图像中的高度。
- 轮廓与顶部点提取:使用Ramer-Douglas-Peucker算法提取建筑轮廓,并确定建筑顶部点。
- 高度估算:结合相机投影模型和校正因子,估算实际建筑高度。
相关处理技术概览
- 颜色变换:对图像像素进行颜色变换,以避免语义分割输出中的问题。
- 单应性变换:将图像归一化为零俯仰角图像。
- 语义分割:使用训练好的CNN生成语义分割图像。
- 阈值处理:提取建筑物像素区域,并通过提取最大连通区域消除无关子区域。
- 轮廓提取:使用Ramer-Douglas-Peucker算法对轮廓进行近似,提取建筑物的顶部点。
- 相机投影模型:结合图像中的建筑维度和相机元数据,估算实际建筑高度。
数据集和评价指标
数据集
数据集包含400个建筑物的街景图像及其对应的建筑轮廓数据。数据来源包括多个平台(如Open Street Map和其他地理空间数据平台)。
评价指标
- 高度估算精度:通过与真实建筑高度的对比,评估算法的准确性。
- 算法鲁棒性:在复杂场景(如遮挡、光照变化)下测试算法的表现。
实验结果与分析
iBHEDC算法的工作流程
整个工作流程从获取街景图像开始,通过数据预处理、深度学习相关处理、地理空间数据分析和图像处理一步步实现建筑高度的估算。
预处理步骤对输入图像的影响
左图(a):原始街景图像,体现了捕获数据的初始状态,但可能包含一些不利影响,比如色彩不均、光照问题、视角偏差等。
右图(b):经过强度变换(Intensity Transformation)和图像校正(Plane-to-Plane Homography)后的图像,处理后建筑物呈现更好的可见性,同时减小了因拍摄角度引起的倾斜和失真问题。
- 强度变换(Intensity Transformation):增强图像的对比度,为后续任务提供更清晰的边缘与物体分界线。
- 单应性变换(Plane-to-Plane Homography):校正因相机拍摄角度引起的图像倾斜和投影变形问题。
预处理步骤对语义分割的影响
左图(a):未经处理的原始街景图像(来自 Google Street View)。
右图(b):未经预处理情况下语义分割的结果,展示了算法在分割建筑物区域时的失败案例。
定义感兴趣的区域
图6中的分割是令人满意的;然而,相邻的建筑被组合成一个单一的连接组件(都是同一个连接子区域的一部分)。高度估计的下一步是识别建筑物子区域中的最高点。然而,当相邻的建筑组合成一个连接的组件时,最高点可能属于错误的建筑。为了帮助避免选择属于不正确建筑物的点,开发了以下水平搜索区域识别算法。
建筑物轮廓提取和顶点检测
建筑高度估算的两步关键流程
平面单应性变换和校正
使用校正模型对建筑物实际高度估算结果的影响
自动选择相机仰视角度 (pitch)
从OpenStreetMap (OSM) 数据中提取建筑的边界轮廓以及节点信息
相机到建筑物水平距离的几何模型
高度计算
公式:
h ^ b = h u ⋅ d ′ / f + h c \hat{h}_b=h_u\cdot d^{\prime}/f+h_ch^b =hu ⋅d′/f+hc
- h ^ b \hat{h}_bh^b : 估算的建筑高度 (Estimated Building Height)。
- h u h_uhu : 建筑最高点相对于图像的中线(水平中线)所占的像素高度,表示为像素单位的垂直距离
- d ′ d'd′: 相机到建筑的水平距离 (Projected Distance to the Building)
- f ff: 相机的焦距 (Focal Length)
- h c h_chc : 相机距地面的高度, 表示相机安装点到地面的固定高度,即相机本身的基础高度,通常由相机持有者(如人或车辆)的高度决定,为一个常量
效果
展示了针对不同类型住宅建筑的高度估算结果示例
- 高层公寓建筑 (apartment buildings):在每张图片顶部显示了估算出的建筑高度值,分别为 44.451 米和 35.401 米。
- 低层住宅 (houses):图片展示了独立式住宅的高度估算值,分别为 9.152 米和 9.154 米。
针对不同类型的 非住宅建筑(Non-residential Buildings) 的高度估算结果可视化示例
- 办公楼 (Office Building):估算高度为 21.683 米,属于较高类型的建筑。
- 小型办公建筑 (Small Office Building):估算高度为 8.714 米,是一种相对较低的办公场所建筑。
- 零售店 (Retail Store):估算高度为 12.069 米,为常见的中型商业建筑高度。
- 餐厅 (Restaurant):估算高度为 6.315 米,为低矮的单层小型商业建筑
两种算法(BHEDC 和 iBHEDC)在建筑高度估算任务中的绝对误差分析结果:
- iBHEDC 显著优于 BHEDC
iBHEDC(改进后的建筑高度估算算法) 中各项改进对估算性能提升的贡献
- Image preprocessing(图像预处理):对误差减少的贡献为 0.13 米。
- Search region identification(搜索区域识别):对误差减少的贡献为 1.27 米。
- Post-homography height correction(单应性后高度校正):对误差减少的贡献为 0.81 米。
- Projected camera-building distance(投影相机-建筑距离校正):对误差减少的贡献为 0.34 米。
挑战
该图说明由于相机到建筑物的距离测量错误,可能导致建筑高度估算出现偏差的问题
- 两条测量线:
- 红色线:错误的距离测量线
- 绿色线:正确的距离测量线
质疑
- 数据集是否足够多样化以涵盖不同类型的建筑和城市环境?
- 数据集中是否包含足够多的复杂场景(如遮挡、光照变化)以验证算法的鲁棒性?
- 在实际应用中,街景图像的质量和分辨率可能会影响算法的表现,这一点是否被充分考虑?
- 系统在实时应用中的表现如何,例如在动态城市环境中的部署?