《Monocular Outdoor Semantic Mapping with a Multi-task Network》论文复盘及思考
论文弄完了来个复盘~的系列
-
一句话概括论文: 用单目视频流作为输入,用多任务神经网络来构建语义三维地图
-
contribution:
-
- 使用多任务学习来对单目和语义对两个任务进行效果提升
- 使用超像素来使得深度估计更加平滑
-
如何运用多任务学习来对深度和语义进行效果提升的?
-
- 使用了 Resnet-50 作为 backbone 进行特征提取(使用 Resnet-50 是因为显存妥协)
- 将 feature 分别送入 semg_decoder 和 depth_decoder。
- 分别在两个 decoder 中了使用了 ASPP 来处理多尺度问题,,
- 将各自的 feature (3348)送到另一个 decoder,并拉伸到 4x。
- decoder 中进行两次 3*3 的卷积,然后语义 decoder 卷积到类别数量的 channel, 深度卷积到1.
-
如何使用超像素来进行深度估计平滑的?
-
- 将根据中心点和周围点的 距离,颜色,语义信息 来划分超像素。
- 将一个超像素内的深度取平均值。
-
实验部分
-
- 对单任务同样架构(即 Resnet-50 + ASPP + 2个 33256 conv + 33 num_classes or 1 )两个进行了实验。对于语义和深度各有提升。
- 对 ASPP 放在一起还是分开放。分开放对于语义和深度各有提升,但是牺牲了速度.
- 对于 ASPP 处理后的两个 branch 送到另一个 decoder. 对于语义和深度各有提升.
-
我是在 deeplab v3+ 的基础上添加了深度估计分支,遇到了一些问题,想和大家分享下:
-
-
遇到的问题:深度效果差,
-
- 猜测原因:数据增强的原因。对于单目估计这种 ill-posed 的问题,物体大小是很强的线索。但是在数据增强的时候,和语义的数据增强一块做了scale (语义的物体大小并不会语义),导致神经网络无法 get 到 物体大小的线索,直接导致效果很差。
- solution:就是把scale变成了rotate
-
遇到的问题:数据训飞掉了
-
- 猜测原因:数据分布不平均
- solution:把所有的数据值都打印出来,大概数据在0-100之间, 而且小值偏多。就用了个映射函数将它相对均匀的映射到了(-1,1)之间。(用的圆的左上部分映射到(0,1),然后再*2-1分布到(-1,1))
-