Skip to content

Commit f17631f

Browse files
committed
Add SDF label
1 parent 8c400d1 commit f17631f

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

README.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ The list of resource in this [link](https://autonomous-driving.org/front/resourc
5151

5252
## CVPR 2020
5353
- [Online Depth Learning against Forgetting in Monocular Videos](http://openaccess.thecvf.com/content_CVPR_2020/papers/Zhang_Online_Depth_Learning_Against_Forgetting_in_Monocular_Videos_CVPR_2020_paper.pdf) <kbd>CVPR 2020</kbd>
54+
- [Leveraging Pre-Trained 3D Object Detection Models For Fast Ground Truth Generation](https://arxiv.org/abs/1807.06072) <kbd>ITSC 2018</kbd>
55+
- [DensePose: Dense Human Pose Estimation In The Wild](https://arxiv.org/abs/1802.00434) <kbd>CVPR 2018</kbd>
56+
- [Canonical Surface Mapping via Geometric Cycle Consistency](https://arxiv.org/abs/1907.10043) <kbd>ICCV 2019</kbd>
5457
- [Self-supervised Monocular Trained Depth Estimation using Self-attention and Discrete Disparity Volume](http://openaccess.thecvf.com/content_CVPR_2020/papers/Johnston_Self-Supervised_Monocular_Trained_Depth_Estimation_Using_Self-Attention_and_Discrete_Disparity_CVPR_2020_paper.pdf) <kbd>CVPR 2020</kbd>
5558
- [Visual SLAM for Automated Driving: Exploring the Applications of Deep Learning](http://openaccess.thecvf.com/content_cvpr_2018_workshops/papers/w9/Milz_Visual_SLAM_for_CVPR_2018_paper.pdf)
5659
- [Just Go with the Flow: Self-Supervised Scene Flow Estimation](https://arxiv.org/abs/1912.00497) <kbd>CVPR 2020 oral</kbd> [Scene flow]
@@ -448,7 +451,7 @@ Crosswalk Behavior](http://openaccess.thecvf.com/content_ICCV_2017_workshops/pap
448451
- [BEV-IPM: Deep Learning based Vehicle Position and Orientation Estimation via Inverse Perspective Mapping Image](https://ieeexplore.ieee.org/abstract/document/8814050) [[Notes](paper_notes/bev_od_ipm.md)] <kbd>IV 2019</kbd>
449452
- [ForeSeE: Task-Aware Monocular Depth Estimation for 3D Object Detection](https://arxiv.org/abs/1909.07701) [[Notes](paper_notes/foresee_mono3dod.md)] <kbd>AAAI 2020 oral</kbd> [successor to pseudo-lidar, mono 3DOD SOTA]
450453
- [Obj-dist: Learning Object-specific Distance from a Monocular Image](https://arxiv.org/abs/1909.04182) [[Notes](paper_notes/obj_dist_iccv2019.md)] <kbd>ICCV 2019</kbd> (xmotors.ai + NYU) [monocular distance]
451-
- [DisNet: A novel method for distance estimation from monocular camera](https://project.inria.fr/ppniv18/files/2018/10/paper22.pdf) [[Notes](paper_notes/disnet.md)] <kbd>IROS 2018</kbd> [monocular distance]
454+
- [DisNet: A novel method for distance estimation from monocular camera](https://project.inria.fr/ppniv18/files/2018/10/paper22.pdf) [[Notes]`(paper_notes/disnet.md)] <kbd>IROS 2018</kbd> [monocular distance]
452455
- [BirdGAN: Learning 2D to 3D Lifting for Object Detection in 3D for Autonomous Vehicles](https://arxiv.org/abs/1904.08494) [[Notes](paper_notes/birdgan.md)] <kbd>IROS 2019</kbd>
453456
- [Shift R-CNN: Deep Monocular 3D Object Detection with Closed-Form Geometric Constraints](https://arxiv.org/abs/1905.09970) [[Notes](paper_notes/shift_rcnn.md)] <kbd>ICIP 2019</kbd>
454457
- [3D-RCNN: Instance-level 3D Object Reconstruction via Render-and-Compare](http://openaccess.thecvf.com/content_cvpr_2018/papers/Kundu_3D-RCNN_Instance-Level_3D_CVPR_2018_paper.pdf) [[Notes](paper_notes/3d_rcnn.md)] <kbd>CVPR 2018</kbd>

paper_notes/sdflabel.md

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# [SDFLabel: Autolabeling 3D Objects With Differentiable Rendering of SDF Shape Priors](https://arxiv.org/abs/1911.11288)
2+
3+
_September 2020_
4+
5+
tl;dr: Using differentiable rendering for automatic labeling.
6+
7+
#### Overall impression
8+
Use 2D regression to predict NOCS map and a shape vector. The NOCS map can be used with lidar to extract a sparse 3D model, and the shape vector can be used with DeepSDF to decode a 3D model. The compute approximate pose with 3D matching. Then calculate 2D and 3D loss for back-propagation for refinement.
9+
10+
Previous work such as [3D RCNN](3d_rcnn.md) and [RoI10D](roi10d.md) uses PCA or CAE (conv auto-encoder) to predict the shape of cars. This is not end-to-end differentiable. DeepSDF enables backpropagation onto a smooth shape manifold and is more powerful.
11+
12+
Autolabel is still not as good as lidar labels, but very close. Closer in performance in BEV rather than 3D, but only BEV should be good enough for autonomous driving. But the 3D drop may not be real as the autolabels are **tight** 3D bbox as compared to KITTI3D lidar labels.
13+
14+
#### Key ideas
15+
- CSS (coordinate shape space): combination of NOCS and DeepSDF
16+
- NOCS (normalized object coordinate system). It encodes the pose and shape information, i.e., surface coordinates. With **dense** depth information, 3D pose can be recovered from NOCS.
17+
- NOCS is a correspondence map
18+
- NOCS encodes surface iniformation (normal)
19+
![](https://cdn-images-1.medium.com/max/1600/1*ZbN913AmRDsblCMJhtzC3g.png)
20+
- DeepSDF to embed watertight models into a joint and compact shape space representation.
21+
- 11 CAD models are embedded into 3D space (3-dim latent code) with DeepSDF.
22+
- DeepSDF is combined with differentiable rendering so that the surface point is differentiable wrt scale, pose, or latent code.
23+
- Overall workflow
24+
- predicted z is decoded, and NOCS coordinate is calculated.
25+
- Lidar is projected onto the predicted NOCS map.
26+
- Estimate initial pose and scale by 3D matching.
27+
- Loss
28+
- 2D Loss: SDF renderer and decoded map to have a rendered NOCS map, and compare with predicted NOCS map.
29+
- 3D Loss: correspondence with lidar points --> drastic drop in 3D metric when optimizing only in 2D
30+
- Verification: similar to 2D and 3D losses, they can be used for verification.
31+
- projective: Mask IoU > 0.7
32+
- geometric: lidar points within 0.2 m band of surface > 60%
33+
34+
#### Technical details
35+
- **KITTI3D cuboids have a varying amount of spatial padding** and are not tight. Deep learning models trained on these data will learn the padding too.
36+
- Ways to scale up annotation pipeline include better tooling, active learning or a combination thereof.
37+
- Curriculum learning pipeline: to bridge the synthetic-to-real gap. Iteratively add real samples passing sanity check.
38+
- Rather fast **diffusion** into target domain.
39+
- Parallel domain (acquired by Toyota). But we should be able to use CARLA or vKITTI as well.
40+
- Level of difficulty of a label is measured by pixel size, amount of intersection with other 2D labels, or whether the label is cropped.
41+
- Easy: h > 40 pix
42+
- Moderate: h > 25 pix, and not having IoU > 0.3 with others
43+
- CSS is trained on about 8k patches.
44+
- 6sec to autolabel one instance.
45+
46+
47+
#### Notes
48+
- [Code on github](https://github.com/TRI-ML/sdflabel)
49+
- The idea seems to be closely related to [DensePose](densepose.md). It densely map canonical 2D coordinates (coorespondence map) to human bodies. But it allow for projective scene analysis up to scale. --> we can fix that with IPM!?
50+
- [NOCS](nocs.md) extended dense coordinates to 3D space.
51+

0 commit comments

Comments
 (0)