【论文详解】Sparsity Invariant CNNs

本文提出了一种针对稀疏输入的卷积神经网络(CNN)解决方案,特别关注于处理如激光雷达扫描等数据。传统CNN在处理稀疏数据时表现不佳,而新方法通过引入稀疏卷积层,考虑输入像素的有效性,增强了模型对输入稀疏性的不变性。实验表明,即使训练和测试数据的稀疏度不同,该网络仍能保持稳定性能。此外,该方法还探讨了如何将2.5D特征表示用于处理不规则和稀疏的激光扫描数据,改善了处理效果。

Abstract

       本文主要研究了稀疏输入下的卷积神经网络,并用稀疏的激光雷达扫描数据进行实验。传统的CNN在输入稀疏数据时性能很差,即使提供了丢失数据的位置,效果也不理想。为了解决这个问题,本文提出了一个简单有效的稀疏卷积层,在卷积运算中明确考虑了丢失数据的位置。 

1.Introduction

       卷积神经网络CNN几乎影响了计算机视觉的所有领域。通常情况下,CNN的输入是一个图像或者视频,用稠密的矩阵或者张量表示。通过将卷积层与非线性层、池化层结合,CNN能够在第一层提取低层次特征,然后再后续层中依次学习更高层次的特征。然而,当网络的输入是稀疏或者不规则的(例如只有10%的像素携带有用信息),对于每个滤波器的位置该怎样定义不十分明确,输入的数量和位置会发生变化。

       为了解决这个问题,一个简单的方法是给所有无信息的位置分配一个默认值,但是这种方法只能得到次优的结果,因为过滤器必须对所有可能的激活模式保持不变,其数量随着过滤器的尺寸呈指数增长。

       本文提出了一个简单有效的解决方案:引入了一个稀疏的卷积层,它根据输入像素的有效性对卷积核的元素进行加权。此外,第二个stream将关于像素有效性的信息传送给网络的后续层。

       重要的是,实验证明,该网络对不同稀疏程度的输入数据都有很好的效果,训练数据和

给定参考引用未提及在KITTI数据集上进行Sparsity - Invariant CNNs误差计算的方法。不过在深度补全任务中,KITTI数据集常用的误差评估指标可用于该误差计算,以下列举一些常见指标: #### 绝对相对误差(Absolute Relative Error, AbsRel) 该指标衡量预测值与真实值之间的绝对相对误差,计算公式如下: \[ \text{AbsRel} = \frac{1}{n} \sum_{i=1}^{n} \frac{\left| \hat{d}_i - d_i \right|}{d_i} \] 其中,$n$ 是有效像素的数量,$\hat{d}_i$ 是第 $i$ 个像素的预测深度值,$d_i$ 是第 $i$ 个像素的真实深度值。 #### 平方相对误差(Squared Relative Error, SqRel) 平方相对误差衡量预测值与真实值之间的平方相对误差,计算公式如下: \[ \text{SqRel} = \frac{1}{n} \sum_{i=1}^{n} \frac{\left( \hat{d}_i - d_i \right)^2}{d_i} \] #### 均方根误差(Root Mean Squared Error, RMSE) 均方根误差衡量预测值与真实值之间的均方根误差,计算公式如下: \[ \text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} \left( \hat{d}_i - d_i \right)^2} \] #### 对数均方根误差(Root Mean Squared Logarithmic Error, RMSE(log)) 对数均方根误差衡量预测值与真实值之间对数的均方根误差,计算公式如下: \[ \text{RMSE(log)} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} \left( \log \hat{d}_i - \log d_i \right)^2} \] #### 阈值准确率(Threshold Accuracy) 该指标衡量预测值与真实值之间的符合程度,通常设置不同的阈值 $\delta$,计算公式如下: \[ \text{Accuracy}(\delta) = \text{percentage of } i \text{ such that } \max \left( \frac{\hat{d}_i}{d_i}, \frac{d_i}{\hat{d}_i} \right) < \delta \] 常见的 $\delta$ 值有 1.25、$1.25^2$ 和 $1.25^3$。 以下是使用Python和NumPy计算这些指标的示例代码: ```python import numpy as np def compute_errors(gt, pred): thresh = np.maximum((gt / pred), (pred / gt)) a1 = (thresh < 1.25).mean() a2 = (thresh < 1.25 ** 2).mean() a3 = (thresh < 1.25 ** 3).mean() rmse = (gt - pred) ** 2 rmse = np.sqrt(rmse.mean()) rmse_log = (np.log(gt) - np.log(pred)) ** 2 rmse_log = np.sqrt(rmse_log.mean()) abs_rel = np.mean(np.abs(gt - pred) / gt) sq_rel = np.mean(((gt - pred) ** 2) / gt) return abs_rel, sq_rel, rmse, rmse_log, a1, a2, a3 # 示例使用 # gt 是真实深度图 # pred 是预测深度图 gt = np.random.rand(100, 100) pred = np.random.rand(100, 100) abs_rel, sq_rel, rmse, rmse_log, a1, a2, a3 = compute_errors(gt, pred) print(f'AbsRel: {abs_rel}, SqRel: {sq_rel}, RMSE: {rmse}, RMSE(log): {rmse_log}, a1: {a1}, a2: {a2}, a3: {a3}') ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值