1. 主要思想
通过什么方式,解决了什么问题
1. 问题
针对SqueezeSegv1的一些不足,提出的改进,不足如下:
- 由于drop noise (噪点)带来的性能不高问题; 而noise的原因是硬件设备有limiting Sensing range, mirror diffusion of the sensing laser, jitter in incident angles. 这个noise 会导致网络早些层的输出被破坏。 后面会有实验进行验证
- 训练模型需要大量的数据,而数据的采集是一个很大的问题,所以本文利用GTA的模拟器,进行场景模拟构造。
2. 基本思想
- 本文针对drop noise 问题设计了一个CAM(Context Aggregation Module)模块
- 为了使得GTA模拟器获取的数据能更好地符合真实数据,则采用domain adaption training; 并且针对domain adaption的问题进行了一些改进
- 为了解决样本不平衡问题,使用了focal loss
- 采用了无监督方式进行优化
2. 具体方法
说明怎么解决的,具体设计是什么, 有什么启发性思考(作者的创新点)
2.1 网络架构
CAM (context aggregation module)
由于squeezeSeg v1版本的网络卷积核很小,这样的话,如果点云有任何丢失都会极大地破坏fmap, 作者为了测试这个猜想做了一个模拟实验:
首先随机生成一个输入tensor, 然后喂给3x3 kernel的卷积层,然后从输入tensor中随机drop 一些pixels,然后对比drop前后的输出tensor的差距,如下图所示,随着drop pixels的概率越大, 输出tensor对比的error就越大,而使用作者提出的CAM模块,就能有效减小这种影响:
所以作者提出了CAM结构,扩展感受野并且能避免dropnoise:
注意点:
- 这个模块主要在前面几层使用
- 这个设计值得参考,因为pooling就有对小视野局部变化不太敏感的特性,所以使用该层能避免dropnoise
focal loss
F L ( p t ) = − ( 1 − p t ) γ l o g ( p t ) , γ = 2 FL(p_t) = -(1 - p_t)^\gamma log(p_t), \gamma=2 FL(pt)=−(1−pt)γlog(pt),γ=2
其他改进
- 添加mask 通道, 表示该像素位置有没有点对应; 这个通道还是比较有作用的
- 在每个conv后添加BN层
2.2 Domain Adaptation方面的改进
learning intensity rendering
原因: 因为模拟的数据点云没有反射强度instensity这一个信息, 所以作者就用数据集训练一个网络,去预测给定输入,预测反射强度的值; 具体过程如下, 利用真实数据预测一个intensity rendering模型:
一些特殊设计:
- 由于可能存在同样的x,y,z的反射强度不同,存在multi-model distribution; 而使用L2损失计算的话,不能捕捉这样的多分布特性,所以采用hybrid loss, 也就是采用分类+回归, 将反射强度分成10份,作为分类region,然后在分类基础上再采用回归进行详细的预测。
可以发现,这种Hybrid方式更加接近真实情况
Geodesic Correlation Alignment
然后又由于合成数据和真实数据存在分布差异,通常合成数据训练的模型在真实数据下不具有一般性,所以作者提出了Geodesic Correlation Alignment(大地线相关对齐), 如下图所示结构,进行联合训练,每次喂给网络两个batch,一个合成数据的,一个真实数据的;这个训练会有两个loss考虑:
- 合成数据的正常训练,用focal loss; 学习点云分割任务
- 合成数据与真实数据之间的geodesic distance loss, 也就是两个batch之间分布的geodesic 距离。学习惩罚两种数据之间的分布差异
最后的损失:
F
L
(
X
s
i
m
,
Y
s
i
m
)
+
λ
×
G
L
(
X
s
i
m
,
X
r
e
a
l
)
FL(X_{sim}, Y_{sim}) + \lambda\times{GL(X_{sim}, X_{real})}
FL(Xsim,Ysim)+λ×GL(Xsim,Xreal)
Progressive Domain Calibration (存在疑问)
具体算法过程如下图所示, 这个方法用于解决网络在真实数据上产生的分布逐层偏移的问题, 作者说Meanwhile, we update the batch normalization parameters (mean and variance) of the layer with the new statistics. 怎么更新?仅需要unlabeled 数据, 所以不是个训练过程。
也就是: 通过带标签的合成数据训练,然后用真实数据unlabeled的数据 统计BN;
3. 实验支撑
记录一些关键实验的结论分析,具有启发性的实验和结论
4. 总结启示
针对中心思想和实验结论的总结和扩展思考
扩展思考 : 也就是用自己已有的知识或者自己的“土话”,重新理解paper(费曼学习法的精髓-便于记忆和举一反三的应用)
- 本文的CAM设计很有启发性(通道注意力)
- 本文的GCA设计和PDC设计值得学习 – 不同分布的迁移思想
- geodisic loss 值得学习
- 对于PDC如何更新BN参数,还存在疑问 (暂时理解: 可能BN层的均值和方差都是用来将fmap进行归一化到标准正态分布的,只是 γ , β \gamma, \beta γ,β不同,所以我们只需要将新的真实数据,模拟BN操作,重新累计一下BN的均值方差的期望,可以将合成数据的模型向真实数据迁移一下。)
5. 相关文献
主要的比较贴近的文献,关键性文献