Monocular Fisheye Camera Depth Estimation Using Sparse LiDAR Supervision

2023-05-16

Paper name

Monocular Fisheye Camera Depth Estimation Using Sparse LiDAR Supervision

Paper Reading Note

URL: https://arxiv.org/pdf/1803.06192.pdf

TL;DR

2018 年 ITSC 文章,出自于德国 Valeo 自动驾驶公司,提出了单目鱼眼深度估计的有监督训练方案,并针对雷达与鱼眼相机安装位置不一样造成的遮挡问题提出了一种基于形态学滤波的过滤方法


Introduction

  • 自动驾驶汽车周围的近景深度估计是十分重要的功能,一般是通过四个鱼眼相机(FOV>=180°)来做汽车周围的图片采集
  • 有监督训练的难度:
    • 基于雷达获取稠密深度数据较为困难
    • 合成场景的深度数据被广泛应用, 但是存在着在真实场景中遇到泛化性较差的问题,需要处理 domain shift
  • 本文提出一种基于稀疏雷达数据(64线)训练单目鱼眼深度估计模型的方法,主要贡献有:
    • 展示了基于稀疏雷达的训练犯法
    • 展示了在鱼眼相机使用 CNN 做深度估计
    • 根据摄像机和V激光雷达视点的差异调整训练数据以处理遮挡
    • 修改损失函数和训练算法以处理稀疏深度数据

Dataset/Algorithm/Model/Experiment Detail

实现方式

网络结构

  • 使用 AlexNet 作为以下网络结构的 Scale1,参考 2014Nips(Eigen) 文章的网络结构设计,能够在 Nvidia TX2 上实时运行
    在这里插入图片描述

稀疏雷达深度图

  • 使用 HDL-64ES2 雷达,64线,垂直可见的视场角为 26.8°;另外因为雷达的传感器旋转和汽车的运动,较远的点的反射率较差,所以雷达采集的图相对来说比较稀疏

训练损失(Scale-Invariant Error)

  • l2 的 scale-invarian 损失,与 2014Nips(Eigen) 一样,这里网络直出的是深度,与 gt 深度计算损失
    在这里插入图片描述
  • 对于没有深度的区域就是简单的不计算损失而已

模型训练

  • AlexNet 的模型 load pretrain 参数;使用 Adam 优化器,Relu 替换为 Swish(原因是替换了 SELU、ELU、leaky ReLU 的效果都没有 Swish 好)
  • 数据集
    • 作者公司的内部数据集(类似于后来开源的 woodscape),60000 图片的数据集,其中 5000 图片作为测试集
    • 主要在法国巴黎和德国巴伐利亚,场景主要是城市、住宅和郊区
    • 基于 tstamp 将 10Hz 的激光雷达数据和 30 Hz 的鱼眼图像数据进行对齐,对于每个 RGB 采集图像选取最近的 depth 采集图
  • 输入尺寸: w:576 px,h:172 px

遮挡校正

  • 部分雷达可以观察到的点鱼眼相机不一定能看到

  • 使用分割和形态学滤波方法,根据深度进行分层,雷达点被映射到对应的层上,并经过膨胀形态学滤波,如果某个点被前一层的点膨胀后的 mask 遮挡则移除该点
    在这里插入图片描述

  • 去除遮挡的激光雷达真值可视化对比
    在这里插入图片描述

实验结果

  • KITTI 和 Valeo 鱼眼数据集上的定量对比实验结果

在这里插入图片描述

  • 定性分析,gt 深度及预测深度可视化,天空区域因为没有足够的雷达监督信息基本都挂了
    在这里插入图片描述

Thoughts

  • 这篇工作创新性和参考性一般,主要是参考了 2014Nips(Eigen) 的网络设计和训练 loss,对比实验也不是很充分(对比不同方法在不同数据集上的精度)
  • 由于雷达和鱼眼相机安装高度和位置不同产生的遮挡导致雷达采集的 gt 深度部分无法映射到鱼眼图像平面上的情况,提出了一种基于深度分层过滤的方案,值得参考,但文章中对于这部分工作连消融实验都没有
  • 数据集和代码均没有开源,无法复现
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Monocular Fisheye Camera Depth Estimation Using Sparse LiDAR Supervision 的相关文章

  • AVLayerVideoGravityResize 在新设备、iOS 10 上不匹配?

    具有全屏实时预览功能的相机 previewLayer videoGravity AVLayerVideoGravityResize 制作图像 stillImageOutput captureStillImageAsynchronously
  • 如何在SceneKit中实现逼真的景深效果?

    我正在尝试渲染具有真实景深效果的帧 我已经尝试过景深属性camera节点 但它不会产生可用的结果 是否可以切换到景深效果的最大渲染质量 性能不是一个因素 我只需要渲染一帧 用户可以等待它 SceneKit 中逼真的景深效果 在SceneKi
  • 在 OpenGL 中移动相机时出现故障

    我正在为 iPhone 编写一个基于图块的游戏引擎 除了以下故障之外 它基本上可以正常工作 基本上 相机将始终将玩家保持在屏幕中央 并且它会移动以正确跟随玩家并在静止时正确绘制所有内容 然而 当玩家移动时 玩家行走的表面瓷砖会出现故障 如下
  • 如何使用 UIImagePickerController CropRect

    我刚刚找到了一种方法来更改裁剪框的矩形 该裁剪框在捕获图像后出现UIImagePickerViewController 这可以在以下帮助下完成UIImagePickerControllerCropRect 但我不知道如何使用它 最初的裁剪框
  • Actionscript 3主类是根,但不允许动画虚拟相机

    我最近开始使用 Actionscript 3 学习 Animate CC 我正在尝试使用 Animate 的 虚拟相机 功能 为我提供一个可以平移 旋转和缩放游戏的相机 当根没有子类时 很容易实现 Camera 例如 您可以在屏幕上放置一个
  • cameraOverlayView 防止使用 allowedEditing 进行编辑

    在我的应用程序中 使用以下行在拍摄照片后对其进行编辑 移动和缩放 效果很好 imagePicker setAllowsEditing YES 但如果我还使用cameraOverlayView 则编辑模式将不再起作用 屏幕出现 但平移和捏合手
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • 在 Matlab 中保存 Kinect 深度图像?

    通过使用 Kinect 我可以获得深度图像 其中每个深度图像像素存储相机和物体之间的距离 以毫米为单位 现在我想保存它们以便以后使用 最好的推荐是什么 我正在考虑将深度图像保存为图像 jpg png等 然而 该值通常是从50毫米到10000
  • 有没有办法在 iOS 上获取相机流的亮度级别?

    我正在使用 iPhone iPad 摄像头获取视频流并在视频流上进行识别 但随着光照的变化 它会对鲁棒性产生负面影响 我已经在不同的光线下测试了不同的设置 并且可以让它工作 但尝试在运行时调整设置是我所需要的 我可以对每一帧进行简单的亮度检
  • Xamarin.Forms 用相机拍照显示方向错误并且后退按钮崩溃

    我正在使用此处的 Xamarin Forms Camera 示例 https github com XForms Xamarin Forms Labs Samples tree master XF Labs CameraSample htt
  • 从相机、SurfaceView 或 SurfaceHolder 连续获取图像数据

    所以我设置了这个相机预览Camera SurfaceView and SurfaceHolder 我也有一个ImageView我将在其中放置相机图像的修改版本 并且我希望它更新 假设每秒更新一次 当我从 res 加载图像时 所有代码都已准备
  • Android 中拍摄的照片方向发生变化

    我通过单击按钮打开相机应用程序 并在下一个活动中显示捕获的照片 但拍摄的照片旋转了90度 当我捕获图像后在视图中显示图像时 它的方向始终是横向的 为什么在纵向模式下拍摄照片时 照片显示的不是纵向 onClick 按钮 Intent i ne
  • Android:将图像裁剪为特定尺寸

    我的目的是让用户从图库中选择一张图像 然后进行裁剪活动 但是 我需要将定义裁剪蒙版的矩形锁定到某个尺寸 然后用户只需重新定位它即可显示图像的一部分 关于如何做到这一点有什么想法吗 Thanks T Intent intent new Int
  • 从基本矩阵确定相机旋转和平移矩阵

    我正在尝试从基本矩阵中提取旋转矩阵和平移矩阵 我把这些答案作为参考 通过 SVD 从基本矩阵中提取翻译的正确方法 https stackoverflow com questions 15940663 correct way to extra
  • 设置使用 iPhone 相机拍摄的图像的类型

    如果我们使用 iPhone 相机拍摄照片 图像将默认以 JPEG 格式保存 我想以其他格式 例如 PNG 保存捕获的图像 是否可以 当我们从应用程序调用 iPhone 相机时 是否可以通过代码执行此操作 我们可以设置捕获图片后必须保存的图像
  • Java:列出已插入的相机

    我的程序当前获取插入计算机的驱动器列表File listRoots 但是 当我将相机或 MP3 播放器直接插入计算机 而不是插入存储卡 时 它不会列出 Windows 资源管理器中也没有驱动器号 例如 这是我的相机的位置 Computer
  • 具有自定义视图的相机

    我的应用程序使用相机 我想在相机预览上添加叠加层 例如 我想在使用相机时使用相框 还想添加一个用于相机操作的自定义栏 请帮助我做同样的事情 您可能正在尝试使用 UIImagePickerController 但我知道这个可以解决你的问题 您
  • 如何在 unity3d C# 中让相机跟随物体?

    我有一个名为 Ball 的对象 我向它添加了键盘交互性 WASD 来移动球 我需要摄像机留在后面并跟随球 但我遇到了错误 using UnityEngine using System Collections public class bal
  • Android:取消注册相机按钮

    我尝试将一些操作绑定到相机按钮 videoPreview setOnKeyListener new OnKeyListener public boolean onKey View v int keyCode KeyEvent event i
  • Camera.Parameters.FLASH_MODE_ON 在 Moto X 上不起作用

    我正在 moto x 上测试我的应用程序 即使打开闪光灯模式后 闪光灯也无法工作 应用程序在其他设备上运行良好 但在 Moto X 上运行不佳 这是一个代码片段 cameraInstance getCameraInstance camera

随机推荐