几何深度学习(Geometry Deep Learning)相关工作汇总
深度学习喜欢 End-to-End 解决问题,中间过程有比较多的黑盒,在很多很难完整描述出数学模型的识别类任务中表现尤为出色。但是在传统的几何里面,很多工作是有比较好的数学基础的(比如摄影几何、李群与李代数、BA等等),如果抛弃这些理论全盘黑盒方式解决,有时未必有很好的效果。
因此对于 Geometry Deep Learning (几何深度学习)方向来说,如果深度学习的方式能够改进传统的几何方法的某些环节,或者利用深度学习强大的特征学习能力再与几何方式结合,或许会是一个可行的方向。
最近几年这类的工作非常之多,各大顶会也都有类似的专题,这篇博客旨在收集一些相关的内容作为备忘(个人没有太多精力收集,欢迎大家留言推荐相关文章)。
1 相关论文
1.1 传统几何算法的改进
传统几何算法使用深度学习改进其中一个方向就是所谓 ”可微分“ (Differentiable),例如 ICP、RANSAC、Bundle Adjustment 等等算法有很多所谓 ”硬决策“ 部分(Hard Decision)。这方面很多大牛做了不少工作例如 Eric Brachmann 的 DSAC 系列等等。
下面是一些收集的相关论文:
标题 | 代码 | 会议 | 备注 | |
---|---|---|---|---|
End-to-End Learnable Geometric Vision by Backpropagating PnP Optimization | Github 笔记 | CVPR 2020 | 通过隐函数和李群实现 PnP 算法可微化 | |
Solving the Blind Perspective-n-Point Problem End-To-End With Robust Dierentiable Geometric Optimization | Github | ECCV2020 | 通过 Sinkhorn 和 DDN 实现 PnP 的网络 | |
gradSLAM - Dense SLAM meets Automatic Differentiation | Github | ICRA 2020 | 通过实现 BA 等多个模块可微化构建的稠密 SLAM 系统 | |
Self-Supervised Learning of Depth and Ego-motion with Differentiable Bundle Adjustment | 在 BA 算法可微化方面的改进 | |||
Deep Closest Point: Learning Representations for Point Cloud Registration | Github | ICCV 2019 | 在 ICP 算法可微化方面的改进(引入 Attention 机制) | |
BA-Net: Dense Bundle Adjustment Network | Github | ICLR 2019 Oral | 在 BA 算法可微化方面的改进(主要改进 LM 算法) | |
Neural-Guided RANSAC: Learning Where to Sample Model Hypotheses | NG-RANSAC NG-DSAC | ICCV 2019 | 在 RANSAC 算法可微化方面的改进(NG-RANSAC) | |
Expert Sample Consensus Applied to Camera Re-Localization | Github | ICCV 2019 | 在 RANSAC 算法可微化方面的改进(ESAC) | |
Learning Less is More - 6D Camera Localization via 3D Surface Regression | Github | CVPR 2018 | 在 RANSAC 算法可微化方面的改进(DSAC++) | |
Learning to Solve Nonlinear Least Squares for Monocular Stereo | PDF 笔记 | ECCV 2018 | 在 BA 算法可微化方面的改进(主要改进 GN 算法) | |
DSAC - Differentiable RANSAC for Camera Localization | DSAC for Camera Localization DSAC for Line Fitting | CVPR 2017 | 在 RANSAC 算法可微化方面的改进(DSAC) | |
gvnn: Geometric Vision with Neural Networks | Github | ECCV 2016 | 在李群上实现相关NN层可微化的工作 |
2 相关代码
2.1 3D Deep Learning 基础库
提到相关基础库,不得不提大名鼎鼎的 Google 官方的 Tensorflow Graphics 以及 Facebook 官方的 PyTorch3D,虽然他们现在提供的功能很有限,主要在可微渲染上面,但是相信加以时日一定会成为这方面的主力。
标题 | 源码 | 网站 | 备注 |
---|---|---|---|
TensorFlow Graphics | Github | https://www.tensorflow.org/graphics/ | TensorFlow Differentiable layers for graphics. |
PyTorch3D | Github | https://pytorch3d.org/ | PyTorch3D is FAIR's library of reusable components for deep learning with 3D data |
Kaolin | Github | A PyTorch Library for Accelerating 3D Deep Learning Research | |
Kornia | Github | http://kornia.org/ | Open Source Differentiable Computer Vision Library for PyTorch |
LieTorch | Github | The LieTorch library generalizes PyTorch to 3D transformation groups. | PDF | |
Geomstats | Github | https://geomstats.github.io | Computations and statistics on manifolds with geometric structures |
LieGroups | Github | Python implementation of SO2, SE2, SO3, and SE3 matrix Lie groups using numpy or pytorch | |
ODE Solvers | Github | PyTorch Implementation of Differentiable ODE Solvers | |
ICP Extension | Github | ICP CUDA PyTorch Extension | |
SE3 Composition Layer | Github | SE3 Composition Layer in C++ for Tensorflow | |
SE3 Composition Layer | Github | PyTorch SE3 composition layer implementation | |
Torch Filter | https://github.com/stanford-iprl-lab/torchfilter | PyTorch implementation of EKF, UKF etc. |
2.2 3D Deep Learning 其他开源代码
标题 | 源码 | 网站 | 备注 |
---|---|---|---|
PySLAM | Github | Non-linear least-squares SLAM in Python using scipy and numpy. Modelled after Google's Ceres solver. | |
GP-Lie | Github | Gaussian process regression for continuous-time trajectory estimation on Lie groups solved through Gauss-Newton optimization |
3 相关作者主页
作者 | 主页 | 备注 |
---|---|---|
Krishna Murthy Jatavallabhula | https://krrish94.github.io/ | gradSLAM 作者、NVIDIA Kaolin 库开发者 |
Eric Brachmann | https://hci.iwr.uni-heidelberg.de/vislearn/people/eric-brachmann/ | DSAC、DSAC++、ESAC 系列论文作者 |
4 相关网页
[1] Geometricdeeplearning 网站:http://geometricdeeplearning.com/
[2] Visual Learning Lab Heidelberg 实验室:https://hci.iwr.uni-heidelberg.de/vislearn/research/scene-understanding/pose-estimation/