Paper -- 洪水深度估计 -- 基于计算机视觉, 根据被淹车辆图像进行洪水深度估计
基本信息
论文题目: Computer Vision–Based Estimation of Flood Depth in Flooded-Vehicle Images
中文题目: 基于计算机视觉在洪水-车辆图像上进行洪水深度估计
作者及单位: Somin Park, Francis Baek, Jiu Sohn, Hyoungkwan Kim (延世大学, 汉城(首尔), 韩国)
提交日期: 2020年4月13日
审批日期: 2020年10月12日
在线发表日期: 2020年12月29日
期刊: Journal of Computing in Civil Engineering
中国科学院SCI分区 2区
摘要
本文提出了一种基于图像处理的洪水深度估计方法
,使用淹水车辆的地面视角图像
。方法包括以下三个主要步骤:
- 车辆对象分割:利用
Mask R-CNN
对淹水图像中的车辆进行检测。 - 跨领域图像检索:基于
VGGNet
的特征图,采用余弦距离
筛选与淹水车辆最相似的3D渲染车辆图像。 - 水深估算:通过
对比淹水车辆与3D渲染图像
,计算水深。研究验证了该方法在 500张淹水图像 上的有效性,误差约为轮胎高度的9.40%
背景
- 城市地区因其高人口密度和不透水表面比例增加,
更容易受到洪水影响
。 车辆相关事故
在洪水灾害中占很大比例,如美国1959至2005年洪灾死亡人数中有63%与车辆相关。- 当前洪水警报系统主要依赖传感器或人工操作,
无法覆盖所有道路
。 社交媒体图像
提供了即时、广泛的洪水信息,但其 非结构化数据需要手动分析, 效率低下。- 本文提出利用深度学习技术
自动从图像中估算水深
,为洪水管理提供新方法。
方法
-
步骤1:分割与过滤
使用Mask R-CNN
对车辆进行分割,并 过滤遮挡、边缘或形状异常 的车辆图像。 -
步骤2:图像检索
使用VGGNet
从3D渲染图像中匹配最相似的车辆图像。 -
步骤3:水深估算
通过 对比淹水车辆与3D模型的高度差,计算洪水深度。
数据集
- 洪水图像:
988张
地面视角的淹水车辆图像,分为训练集(488张)
和验证集(500张)
- 3D渲染图像:
44张
由3D模型生成的车辆图像,用于图像匹配
方法框架
这是该文章的框架图(Framework)
,展示了作者提出的洪水深度估算方法的整体工作流程
分为三个主要模块:分割(Segmentation)、图像检索(Image retrieval) 和 深度估算(Depth estimation)
粉色车辆: 表示输入的 实际淹水车辆图像
右侧黄色车辆表示: 用于匹配的3D渲染车辆图像
蓝色虚线: 高度差(Flood depth)是最终估算的洪水深度
结果
- 输入:地面视角的
淹水车辆图像
(Photograph)被输入系统,作为整个方法的起点 - 处理流程:
- 通过Mask R-CNN模型对车辆对象进行
检测和分割
,生成 候选车辆(Candidate cars) - 使用VGGNet
从预先构建的3D车辆图像数据库中检索
与候选车辆最匹配的图像。 - 通过
对分割图像和检索图像的比较
,计算车辆被水淹没的高度,从而估算洪水深度(Flood depth)。
- 通过Mask R-CNN模型对车辆对象进行
- 输出:最终估算出的洪水深度值
车辆边界框位置及其在图像中的坐标关系 - 用于过滤数据
该图展示了车辆对象在图像中的空间分布
和相关参数
,用于帮助过滤掉不符合条件或不完整的车辆对象
,从而提升后续深度估算的精度和可靠性
- 输入图像:包含车辆的淹水图像,用黑色背景矩形表示整个输入图像
– 图像的宽度
为 I W I_W IW,高度
为 I H I_H IH - 边界框:用黄色矩形标注车辆对象在图像中的位置及尺寸信息,边界框的四个顶点分别用坐标表示
– ( x u , y u x _u, y_u xu,yu)为左上角
,( x b , y b x_b, y_b xb,yb)为右下角
–边界框的宽度和高度
可以通过 x b − x u x_b -x_u xb−xu 和 y b − y u y_b-y_u yb−yu 计算 - 车辆分割区域:用红色矩形标注分割出的车辆实际部分
–宽度和高度
分别为 A W A_W AW和 A H A_H AH - 其他标注:
l
,
r
,
u
,
d
l,r,u,d
l,r,u,d分别表示边界框
距离图像左、右、上、下边界的距离
如何通过实际淹水车辆图像与3D渲染图像的对比,估算洪水深度
( a ) 淹水车辆图像:显示一辆被洪水部分淹没的车辆,图片蓝色虚线
中标注了车辆被淹没的部分。
( b ) 3D渲染图像:基于3D建模生成的车辆图像,目的是与实际车辆的朝向和形状匹配
。
( c ) 合成图像:结合(a)和(b),通过调整两者的比例对齐宽度
,估算车辆的淹水高度,并以此推断洪水深度。蓝色虚线框表示洪水淹没的部分
- 输入处理:
– 从洪水图像中分割出淹水车辆
(如图(a))。
– 从3D渲染数据库中检索与车辆形状和朝向最接近的图像
(如图(b))。 - 图像对齐:
– 调整两张图像的宽度相同
,以确保两者比例一致。
–对比两张图像的高度差异
,淹水车辆图像的高度较小部分被认为是被洪水淹没的区域。 - 深度估算:
– 通过对比两张图像在蓝色虚线标记部分的高度差
,推算出洪水深度
实际车辆图像与3D模型车辆图像-两者在形状和视角上的一致性
该图展示了 即使车辆形状不同,通过对齐朝向和尺寸,3D模型仍能用于替代实际车辆进行洪水深度的估算, 为洪水深度的估算提供了关键支持
- (a) 与 ( c):
– (a) 是一辆实际拍摄
的淹水车辆图像,正面
朝向摄像机。
– (c ) 是通过3D渲染生成的
,与 (a)在视角和朝向上匹配
,但车辆形状不同
。 - (b) 与 (d):
– (b) 是另一辆实际拍摄的淹水车辆图像,车辆背面
朝向摄像机。
– (d) 是通过3D渲染生成的,与 (b)在视角和朝向上匹配
,但车辆形状不同
在DFSS(动态特征空间选择)方法中使用的特征图提取过程
上图中展示输入图像, VGGnet的池化层3和池化层4的特征可视化结果
- VGGNet 等模型的标准输入宽度要求为
224x224
– 因此输入的车辆分割图的的宽度缩放至224像素
,高度等比例缩放
, 这时的分割图尺度的高度记为 n n n
– 接下来如果缩放图的高度不满224的地方在下方用空白填充
输入图像:淹水车辆的分割图像,分辨率为
224
×
224
224\times 224
224×224 像素, 其中
n
n
n 是车辆的高度加上顶部的空间高度。
特征提取:图像经过VGGNet模型的卷积(Conv)
和池化(Pool)
层处理,生成两个特征图:
(a)第3个池化层(Pooling layer 3)的输出,分辨率为 28×28×256
。
(b)第4个池化层(Pooling layer 4)的输出,分辨率为 14×14×512
。
用途:这些特征图用于图像检索和相似性计算,帮助匹配3D渲染车辆图像与实际车辆图像。
池化层输出的特征图高度:
– 第 3 层池化 (Pooling layer 3):只取特征图上方高度为 int(n/8)的部分用于特征相似性计算
( 因为空白信息属于无用信息)。
– 第 4 层池化 (Pooling layer 4):只取特征图上方高度变为 int(n/16)的部分用于特征相似性计算
对分割图和3D渲染图的特征进行余弦相似性计算
公式:
Similarity
=
A
⋅
B
∥
A
∥
∥
B
∥
\text{Similarity}=\frac{\mathbf{A}\cdot\mathbf{B}}{\|\mathbf{A}\|\|\mathbf{B}\|}
Similarity=∥A∥∥B∥A⋅B
- A \mathbf{A} A : 被淹车辆分割图的特征向量
- B \mathbf{B} B : 3D渲染车辆图像的特征向量
通过计算两者的余弦值,判断它们在特征空间中的相似性
操作:
将特征图展平成一维向量
,计算余弦相似性。相似性值范围为 [−1,1],值越接近1
表示两张图像越相似
。
– 对所有3D渲染图像
计算相似性得分
– 根据相似性得分排序,选择最相似的几张3D渲染图像
进行进一步处理
– 通过这一步筛选,确定与被淹车辆分割图最匹配的3D渲染图像
处理洪水极为严重的情况
问题:
– 当洪水严重
时,仅能看到被淹车辆的顶部
,导致车辆的整体轮廓信息缺失。
– 如果直接使用分割图的宽度和高度估算洪水深度,可能会因为车辆实际宽度的不确定性
引入较大的误差
解决方法:
- 以分割图高度为基准:
- 使用被淹车辆的
分割图高度
(即车辆被淹部分的实际高度)作为一个固定参数
。 - 通过
对分割图的高度与3D渲染图像的高度
进行对齐,找到3D模型中与之高度相同
的部分。
- 使用被淹车辆的
- 在3D渲染图中确定宽度
w
l
o
n
g
w_{long}
wlong
- 在3D渲染车辆图中,找到与被淹车辆分割图相同高度的部分,提取
该高度对应的水平宽度
w l o n g w_{long} wlong - w l o n g w_{long} wlong 是由3D渲染车辆模型的几何信息确定的,代表车辆在该高度的真实宽度。
- 在3D渲染车辆图中,找到与被淹车辆分割图相同高度的部分,提取
- 分割图宽度缩放:
- 将被淹车辆分割图的
宽度缩放到与3D渲染图
的 w l o n g w_{long} wlong 一致。 - 这样可以消除视角、洪水遮挡等因素导致的车辆宽度比例失真,确保两者在尺寸上的一致性
- 将被淹车辆分割图的
不同视角图像的宽高比r -- 用于过滤分割图
该图展示了用于3D渲染车辆图像
生成的过程和示例图像, 具体包括:
- (a) 车辆的
3D模型视图
, - (b) 不同
侧视角度
的图像, - (c ) 不同
正面和背面
角度的图像 - 以及车辆在这些视角下的
宽高比
r r r (表示宽度与高度的比值)
3D渲染图的宽高比的意义:
– 宽高比可以反映车辆在不同视角下的几何特征,例如侧视图(宽度更大)和正面视图(宽度较小)
– 通过对比宽高比,可以快速筛选出与被淹车辆视角相似的3D渲染图像
过滤掉没用的车辆
该图展示了洪水深度估算方法中,利用 Mask R-CNN 对车辆进行分割后,对目标车辆进行过滤的三个条件:
- 遮挡检测(a)
如果车辆被部分遮挡(如树木、其他车辆或建筑物挡住),则认为该对象不完整,直接过滤掉 - 边缘位置检测(b)
如果车辆位于图像边缘
,分割的边界框没有完整覆盖整个车辆
,则过滤掉。这避免了图像裁剪造成的 不完整数据 - 宽高比过滤(c)
计算分割对象的宽高比(width-to-height ratio),并与车辆的典型宽高比
进行对比
– 如果宽高比过大
(可能是较长的物体,如 卡车)或过小
(可能是较高的物体,如 树木),则认为不是目标车辆,过滤掉
判断干扰数据或无效数据
- (a) 模糊和低质量图像:
图中显示了分辨率非常低
或受到严重模糊
影响的对象。
这些问题会导致 Mask R-CNN 的分割结果不准确
,从而影响后续的洪水深度估算。 - (b) 遮挡和不完整的对象:
图示了一些被部分遮挡
或只有部分可见
的车辆对象。
遮挡可能由其他物体(如建筑、树木、车辆)引起,导致分割的车辆边界不完整
。 - (c ) 异常宽高比的对象:
显示了宽高比异常的车辆对象(例如,超长的车辆
或被异常拉伸
的图像)。
这些对象的几何比例与典型车辆不符,可能是由于图像拉伸或极端视角导致的
导致洪水估计误差的三种原因
- (a) 分割不准确(Incorrect segmentation):
图中显示了分割算法未能准确提取车辆轮廓的情况
,部分轮廓(例如轮胎或底盘)被错误地分割
,导致错误的洪水深度估算。 - (b) 特征图简化(Simplified feature maps):
使用深度学习模型时,特征图的空间分辨率较低
(如图中所示, 此时后期比较的特征图只有4个像素高度
),可能无法保留车辆的精细特征。 - (c ) 车辆位置变化(Varied locations):
不同车辆在图像中的位置变化(例如轮胎部分与背景重叠或被部分遮挡)可能导致深度估算的误差。
质疑
方法局限
- 依赖单一的3D车辆模型,可能导致对非标准车辆(如
卡车或SUV
)估算误差较大。 - 无法有效处理
严重遮挡
或复杂环境下
的车辆分割问题。 - 单张图像 可能不足以完整描述洪水的
动态特征
,未来可利用视频帧
改善估算精度。
数据集局限
洪水图像来源单一
,可能缺乏足够的多样性和复杂性,限制模型在实际场景中的表现