Title: PSEUDO-LIDAR++: ACCURATE DEPTH FOR 3D OBJECT DETECTION IN AUTONOMOUS DRIVING

Abstract: Detecting objects such as cars and pedestrians in 3D plays an indispensable role in autonomous driving. Existing approaches largely rely on expensive LiDAR sensors for accurate depth information. While recently pseudo-LiDAR has been introduced as a promising alternative, at a much lower cost based solely on stereo images, there is still a notable performance gap. In this paper we provide substantial advances to the pseudo-LiDAR framework through improvements in stereo depth estimation. Concretely, we adapt the stereo network architecture and loss function to be more aligned with accurate depth estimation of faraway objects -currently the primary weakness of pseudo-LiDAR. Further, we explore the idea to leverage cheaper but extremely sparse LiDAR sensors, which alone provide insufficient information for 3D detection, to de-bias our depth estimation. We propose a depthpropagation algorithm, guided by the initial depth estimates, to diffuse these few exact measurements across the entire depth map. We show on the KITTI object detection benchmark that our combined approach yields substantial improvements in depth estimation and stereo-based 3D object detection -outperforming the previous state-of-the-art detection accuracy for faraway objects by 40%.

1. INTRODUCTION:

Figure 1 : An illustration of our proposed depth estimation and correction method. The green box is the ground truth location of the car in the KITTI dataset. The red points are obtained with a stereo disparity network. Purple points, obtained with our stereo depth network (SDN), are much closer to the truth. After depth propagation (blue points) with a few (yellow) LiDAR measurements the car is squarely inside the green box. (One floor square is 1m×1m.) Safe driving in autonomous cars requires accurate 3D detection and localization of cars, pedestrians and other objects. This in turn requires accurate depth information, which can be obtained from LiDAR (Light Detection And Ranging) sensors. Although highly precise and reliable, LiDAR sensors are notoriously expensive: a 64-beam model can cost around $75,000 (USD) 1 . The alternative is to measure depth through inexpensive commodity cameras. However, in spite of recent dramatic progress in stereo-based 3D object detection brought by pseudo-LiDAR (Wang et al., 2019a) , a significant performance gap remains especially for faraway objects (which we want to detect early to allow time for reaction). The trade-off between affordability and safety creates an ethical dilemma.

In this paper we propose a possible solution to this remaining challenge that combines insights from both perspectives. We observe that the higher 3D object localization error of stereo-based systems, compared to LiDAR-based ones, stems entirely from the higher error in depth estimation (after the 3D point cloud is obtained the two approaches are identical (Wang et al., 2019a) ). Importantly, this error is not random but systematic: we observe that stereo methods do indeed detect objects with high reliability, yet they estimate the depth of the entire object as either too far or too close. See Figure 1 for an illustration: the red stereo points capture the car but are shifted by about 2m completely outside the ground-truth location (green box). If we can de-bias these depth estimates it should be possible to obtain accurate 3D localization even for distant objects without exorbitant costs.

We start by revisiting the depth estimation routine embedded at the heart of state-of-the-art stereobased 3D detection approach (Wang et al., 2019a) . A major contributor to the systematic depth bias comes from the fact that depth is typically not computed directly. Instead, one first estimates the disparity -the horizontal shift of a pixel between the left and right images -and then inverts it to obtain pixel-wise depth. While the use of deep neural networks has largely improved disparity estimation (Chang & Chen, 2018; Cheng et al., 2018; Mayer et al., 2016; Wang et al., 2019b) , designing and learning the networks to optimize the accuracy of disparity estimation simply overemphasizes nearby objects due to the reciprocal transformation. For instance, a unit disparity error (in pixels) for a 5-meter-away object means a 10cm error in depth: the length of a side mirror. The same disparity error for a 50-meter-away object, however, becomes a 5.8m error in depth: the length of an entire car. Penalizing both errors equally means that the network spends more time correcting subtle errors on nearby objects than gross errors on faraway objects, resulting in degraded depth estimates and ultimately poor detection and localization for faraway objects. We thus propose to adapt the stereo network architecture and loss function for direct depth estimation. Concretely, the cost volume that fuses the left-right images and the subsequent 3D convolutions are the key components in stereo networks. Taking the central assumption of convolutions -all neighborhoods can be operated in an identical manner -we propose to construct the cost volume on the grid of depth rather than disparity, enabling 3D convolutions and the loss function to perform exactly on the right scale for depth estimation. We refer to our network as stereo depth network (SDN). See Figure 1 for a comparison of 3D points obtained with SDN (purple) and disparity estimation (red).

Although our SDN improves the depth estimates significantly, stereo images are still inherently 2D and it is unclear if they can ever match the accuracy and reliability of a true 3D LiDAR sensor. Although LiDAR sensors with 32 or 64 beams are expensive, LiDAR sensors with only 4 beams are two orders of magnitude cheaper2 and thus easily affordable. The 4 laser beams are very sparse and ill-suited to capture 3D object shapes by themselves, but if paired with stereo images they become the ideal tool to de-bias our dense stereo depth estimates: a single high-precision laser beam may inform us how to correct the depth of an entire car or pedestrian in its path. To this end, we present a novel depth-propagation algorithm, inspired by graph-based manifold learning (Weinberger et al., 2005; Roweis & Saul, 2000; Xiaojin & Zoubin, 2002) . In a nutshell, we connect our estimated 3D stereo point cloud locally by a nearest neighbor graph, such that points corresponding to the same object will share many local paths with each other. We match the few but exact LiDAR measurements first with pixels (irrespective of depth) and then with their corresponding 3D points to obtain accurate depth estimates for several nodes in the graph. Finally, we propagate this exact depth information along the graph using a label diffusion mechanism -resulting in a dense and accurate depth map at negligible cost. In Figure 1 we see that the few (yellow) LiDAR measurements are sufficient to position almost all final (blue) points of the entire car within the green ground truth box.

We conduct extensive empirical studies of our approaches on the KITTI object detection benchmark (Geiger et al., 2012; 2013) and achieve remarkable results. With solely stereo images, we outperform the previous state of the art (Wang et al., 2019a) by 10%. Further adding a cheap 4-beam LiDAR brings another 27% relative improvement -on some metrics, our approach is nearly on par with those based on a 64-beam LiDAR but can potentially save 95% in cost.

2. BACKGROUND:

3D object detection. Most work on 3D object detection operates on 3D point clouds from LiDAR as input (Li, 2017; Li et al., 2016; Meyer et al., 2019b; Yang et al., 2018a; Du et al., 2018; Shi et al., 2019; Engelcke et al., 2017; Yan et al., 2018; Lang et al., 2019 ). Frustum PointNet (Qi et al., 2018) applies PointNet (Qi et al., 2017a; b) to the points directly, while Voxelnet (Zhou & Tuzel, 2018) quantizes them into 3D grids. For street scenes, several work finds that processing points from the bird's-eye view can already capture object contours and locations (Chen et al., 2017; Yang et al., 2018b; Ku et al., 2018) . Images have also been used, but mainly to supplement LiDAR (Meyer et al., 2019a; Xu et al., 2018; Liang et al., 2018; Chen et al., 2017; Ku et al., 2018) . Early work based solely on images -mostly built on the 2D frontal-view detection pipeline (Ren et al., 2015; He et al., 2017; Lin et al., 2017) -fell far behind in localizing objects in 3D (Li et al., 2019a; Xiang et al., 2015; 2017; Chabot et al., 2017; Mousavian et al., 2017; Chen et al., 2015; Xu & Chen, 2018; Chen et al., 2016; Pham & Jeon, 2017; Chen et al., 2018) 3 .

Pseudo-LiDAR. This gap has been reduced significantly recently with the introduction of the pseudo-LiDAR framework proposed in (Wang et al., 2019a) . This framework applies a drastically different approach from previous image-based 3D object detectors. Instead of directly detecting the 3D bounding boxes from the frontal view of a scene, pseudo-LiDAR begins with image-based depth estimation, predicting the depth Z(u, v) of each image pixel (u, v). The resulting depth map Z is then back-projected into a 3D point cloud: a pixel (u, v) will be transformed to (x, y, z) in 3D by

EQUATION

where (c U , c V ) is the camera center and f U and f V are the horizontal and vertical focal length. The 3D point cloud is then treated exactly as LiDAR signal -any LiDAR-based 3D detector can be applied seamlessly. By taking the state-of-the-art algorithms from both ends (Chang & Chen, 2018; Ku et al., 2018; Qi et al., 2018) , pseudo-LiDAR obtains the highest image-based performance on the KITTI object detection benchmark (Geiger et al., 2012; 2013) . Our work builds upon this framework.

Stereo disparity estimation. Pseudo-LiDAR relies heavily on the quality of depth estimation. Essentially, if the estimated pixel depths match those provided by LiDAR, pseudo-LiDAR with any LiDAR-based detector should be able to achieve the same performance as that obtained by applying the same detector to the LiDAR signal. According to (Wang et al., 2019a) , depth estimation from stereo pairs of images (Mayer et al., 2016; Yamaguchi et al., 2014; Chang & Chen, 2018 ) are more accurate than that from monocular (i.e., single) images (Fu et al., 2018; Godard et al., 2017) for 3D object detection. We therefore focus on stereo depth estimation, which is routinely obtained from estimating disparity between images.

A disparity estimation algorithm takes a pair of left-right images I l and I r as input, captured from a pair of cameras with a horizontal offset (i.e., baseline) b. Without loss of generality, we assume that the algorithm treats the left image, I l , as reference and outputs a disparity map D recording the horizontal disparity to I r for each pixel (u, v). Ideally, I l (u, v) and I r (u, v + D(u, v)) will picture the same 3D location. We can therefore derive the depth map Z via the following transform,

EQUATION

A common pipeline of disparity estimation is to first construct a 4D disparity cost volume C disp , in which C disp (u, v, d, :) is a feature vector that captures the pixel difference between I l (u, v) and I r (u, v + d). It then estimates the disparity D(u, v) for each pixel (u, v) according to the cost volume C disp . One basic algorithm is to build a 3D cost volume with C disp (u, v, d) = I l (u, v)-I r (u, v+d) 2 and determine D(u, v) as arg min d C disp (u, v, d) . Advanced algorithms exploit more robust features in constructing C disp and perform structured prediction for D. In what follows, we give an introduction of PSMNet (Chang & Chen, 2018) , a state-of-the-art algorithm used in (Wang et al., 2019a) .

PSMNet begins with extracting deep feature maps h l and h r from I l and I r , respectively. It then constructs C disp (u, v, d, : ) by concatenating features of h l (u, v) and h r (u, v + d), followed by layers We separate pixels according to their true depths (z).

See the text and appendix for details.

of 3D convolutions. The resulting 3D tensor S disp , with the feature channel size ending up being one, is then used to derive the pixel disparity via the following weighted combination,

EQUATION

where softmax is performed along the 3 rd dimension of S disp . PSMNet can be learned end-to-end, including the image feature extractor and 3D convolution kernels, to minimize the disparity error

EQUATION

where is the smooth L1 loss, D is the ground truth map, and A contains pixels with ground truths. A stereo network designed and learned to minimize the disparity error (cf. Equation 4) may over-emphasize nearby objects with smaller depths and therefore perform poorly in estimating depths for faraway objects. To see this, note that Equation 2 implies that for a given error in disparity δD, the error in depth δZ increases quadratically with depth:

EQUATION

The middle term is obtained by differentiating Z(D) w.r.t. D. In particular, using the settings on the KITTI dataset (Geiger et al., 2012; 2013) , a single pixel error in disparity implies only a 0.1m error in depth at a depth of 5 meters, but a 5.8m error at a depth of 50 meters. See Figure 2 for a mapping from disparity to depth.

Depth Loss. We propose two changes to adapt stereo networks for direct depth estimation. First, we learn stereo networks to directly optimize the depth loss

EQUATION

Z and Z can be obtained from D and D using Equation 2. The change from the disparity loss to the depth loss corrects the disproportionally strong emphasis on tiny depth errors of nearby objectsa necessary but still insufficient change to overcome the problems of disparity estimation.

Depth Cost Volume. To facilitate accurate depth learning (rather than disparity) we need to further address the internals of the depth estimation pipeline. A crucial source of error is the 3D convolutions within the 4D disparity cost volume, where the same kernels are applied for the entire cost volume. This is highly problematic as it implicitly assumes that the effect of a convolution is homogeneous 

Left Image Il:

< l a t e x i t s h a 1 _ b a s e 6 4 = " a c 3 5 s 3 p 7 g p i z r R x 3 W 8 n s 7 G 5 t b 2 T 3 c 3 l 9 / throughout -which is clearly violated by the reciprocal depth to disparity relation (Figure 2 ). For example, it may be completely appropriate to locally smooth two neighboring pixels with disparity and 86 (changing the depth by a few cm to smooth out a surface), whereas applying the same kernel for two pixels with disparity 5 and 6 could easily move the 3D points by 10m or more.

P p n o b X h L F I 3 v I X t M m + 1 I n U = " > A A A B 6 n i c b V D L S g N B E O z x G R M f M R 6 9 D E Y h p 7 A b D 3 q S g B e 9 R T Q P S J Y w O 5 l N h s z O L j O z Q l j i F + j F g x K 8 + k X e / B s n j 4 M m F j Q U V d 1 0 d / m x 4 N o 4 z j d a W 9 / Y 3 N r O 7 G R z u 3 v 7 B / n D Q k N H i a K s T i M R q Z Z P N B N c s r r h R r B W r B g J f c G a / v B 6 6 j c f m d I 8 k g 9 m F D M v J H 3 J A 0 6 J s d L 9 b V d 0 8 0 W n 7 M y A V 4 m 7 I M V q Y f L 8 V D r N 1 b r 5 r 0 4 v o k n I p K G C a N 1 2 n d h 4 K V G G U 8 H G 2 U 6 i W U z o k P R Z 2 1 J J Q q a 9 d H b q G J 9 Z p Y e D S N m S B s / U 3 x M p C b U e h b 7 t D I k Z 6 G V v K v 7 n t R M T X H o p l 3 F i m K T z R U E i s I n w 9 G / c 4 4 p R I 0 a W E K q 4 v R X T A V G E G p t O 1 o b g L r + 8 S h q V s n t e r t z Z N K 5 g j g w c w w m U w I U L q M I N 1 K A O F P r w A m / w j g R 6 R R P 0 M W 9 d Q 4 u Z I / g D 9 P k D N Q y P 9 A = = < / l a t e x i t > Right Image Ir < l a t e x i t s h a 1 _ b a s e 6 4 = " e m B O e 2 6 k l E 0 Z w / k Q R c z F L d / / s R U = " > A A A B 6 n i c b V D L S g N B E O z x G R M f M R 6 9 D E Y h p 7 A b D 3 q S g B e 9 R T Q P S J Y w O 5 l N h s z O L j O z Q l j i F + j F g x K 8 + k X e / B s n j 4 M m F j Q U V d 1 0 d / m x 4 N o 4 z j d a W 9 / Y 3 N r O 7 G R z u 3 v 7 B / n D Q k N H i a K s T i M R q Z Z P N B N c s r r h R r B W r B g J f c G a / v B 6 6 j c f m d I 8 k g 9 m F D M v J H 3 J A 0 6 J s d L 9 b V d 1 8 0 W n 7 M y A V 4 m 7 I M V q Y f L 8 V D r N 1 b r 5 r 0 4 v o k n I p K G C a N 1 2 n d h 4 K V G G U 8 H G 2 U 6 i W U z o k P R Z 2 1 J J Q q a 9 d H b q G J 9 Z p Y e D S N m S B s / U 3 x M p C b U e h b 7 t D I k Z 6 G V v K v 7 n t R M T X H o p l 3 F i m K T z R U E i s I n w 9 G / c 4 4 p R I 0 a W E K q 4 v R X T A V G E G p t O 1 o b g L r + 8 S h q V s n t e r t z Z N K 5 g j g w c w w m U w I U L q M I N 1 K A O F P r w A m / w j g R 6 R R P 0 M W 9 d Q 4 u Z I / g D 9 P k D P i S P + g = = < / l a t e x i t > hl < l a t e x i t s h a 1 _ b a s e 6 4 = " N d 9 w G q A n y D k p E B h 0 V A a 7 g M / R 0 V Q = " > A A A B 6 n i c b V D L T g J B E O z F F 4 I P x K O X i W j C i e z i Q U + G x I t H j P J I Y E N m h 1 m Y M D u z m Z k 1 I R v 8 A r 1 4 0 B C v f p E 3 / 8 b h c V C w k k 4 q V d 3 p 7 g p i z r R x 3 W 8 n s 7 G 5 t b 2 T 3 c 3 l 9 / Y P D g t H x a a W i S K 0 Q S S X q h 1 g T T k T t G G Y 4 b Q d K 4 q j g N N W M L q Z + a 1 H q j S T 4 s G M Y + p H e C B Y y A g 2 V r o f 9 n i v U H I r 7 h x o n X h L U q o V p 8 9 P 5 b N 8 v V f 4 6 v Y l S S I q D O F Y 6 4 7 n x s Z P s T K M c D r J d R N N Y 0 x G e E A 7 l g o c U e 2 n 8 1 M n 6 N w q f R R K Z U s Y N F d / T 6 Q 4 0 n o c B b Y z w m a o V 7 2 Z + J / X S U x 4 5 a d M x I m h g i w W h Q l H R q L Z 3 6 j P F C W G j y 3 B R D F 7 K y J D r D A x N p 2 c D c F b f X m d N K s V 7 6 J S v b N p X M M C W T i B U y i D B 5 d Q g 1 u o Q w M I D O A F 3 u D d 4 c 6 r M 3 U + F q 0 Z Z z l z D H / g f P 4 A Z E a Q E w = = < / l a t e x i t > hr < l a t e x i t s h a 1 _ b a s e 6 4 = " + h 3 H G U o m t K m M B q c b N G j X 0 u z F + H k = " > A A A B 6 n i c b V D L T g J B E O z F F 4 I P x K O X i W j C i e z i Q U + G x I t H j P J I Y E N m h 1 m Y M D u z m Z k 1 I R v 8 A r 1 4 0 B C v f p E 3 / 8 b h c V C w k k 4 q V d

Y P D g t H x a a W i S K 0 Q S S X q h 1 g T T k T t G G Y 4 b Q d K 4 q j g N N W M L q Z + a 1 H q j S T 4 s G M Y + p H e C B Y y A g 2 V r o f 9 l S v U H I r 7 h x o n X h L U q o V p 8 9 P 5 b N 8 v V f 4 6 v Y l S S I q D O F Y 6 4 7 n x s Z P s T K M c D r J d R N N Y 0 x G e E A 7 l g o c U e 2 n 8 1 M n 6 N w q f R R K Z U s Y N F d / T 6 Q 4 0 n o c B b Y z w m a o V 7 2 Z + J / X S U x 4 5 a d M x I m h g i w W h Q l H R q L Z 3 6 j P F C W G j y 3 B R D F 7 K y J D r D A x N p 2 c D c F b f X m d N K s V 7 6 J S v b N p X M M C W T i B U y i D B 5 d Q g 1 u o Q w M I D O A F 3 u D d 4 c 6 r M 3 U + F q 0 Z Z z l z D H / g f P 4 A b V 6 Q G Q = = < / l a t e x i t > Cdisp < l a t e x i t s h a 1 _ b a s e 6 4 = " 0 U T O j v A X M E J k s x / h V A k O 9 / W j h J o = " > A A A B 9 H i c b V A 7 S w N B E N 7 z G e M r a m m z G g S r c B c L r S S Q x j K C e U B y h L 2 9 S b J k 7 + H u X D Q c K a y t x c Z C E V t / j J 3 / x s 2 j 0 M Q P B j 6 + b 4 a Z + b x Y C o 2 2 / W 0 t L a + s r q 1 n N r K b W 9 s 7 u 7 m 9 / Z q O E s W h y i M Z q Y b H N E g R Q h U F S m j E C l j g S a h 7 / f L Y r w 9 A a R G F N z i M w Q 1 Y N x Q d w R k a y S 2 3 W w j 3 m P p C x 6 N 2 L m 8 X 7 A n o I n F m J F 8 6 u p O P 5 a e H S j v 3 1 f I j n g Q Q I p d M 6 6 Z j x + i m T K H g E k b Z V q I h Z r z P u t A 0 N G Q B a D e d H D 2 i J 0 b x a S d S p k K k E / X 3 R M o C r Y e B Z z o D h j 0 9 7 4 3 F / 7 x m g p 0 L N x V h n C C E f L q o k 0 i K E R 0 n Q H 2 h g K M c G s K 4 E u Z W y n t M M Y 4 m p 6 w J w Z l / e Z H U i g X n r F C 8 N m l c k i k y 5 J A c k 1 P i k H N S I l e k Q q q E k 1 v y T F 7 J m z W w X q x 3 6 2 P a u m T N Z g 7 I H 1 i f P 3 2 H l Y s = < / l a t e x i t > Cdepth < l a t e x i t s h a 1 _ b a s e 6 4 = " G k K r 4 l O i s y H R n K H 9 2 X r P a m M 9 3 W k = " > A A A B 9 X i c b V A 9 S w N B E N 3 z M 8 a v q K X N a R C s w l 0 s t J J A G s s I 5 g O S M + z t T Z I l e 3 v H 7 p w x H C m s r Q U b C 0 V s / S 9 2 / h s 3 H 4 U m P h h 4 v D f D z D w / F l y j 4 3 x b S 8 s r q 2 v r m Y 3 s 5 t b 2 z m 5 u b 7 + m o 0 Q x q L J I R K r h U w 2 C S 6 g i R w G N W A E N f Q F 1 v 1 8 e + / U 7 U J p H 8 g a H M X g h 7 U r e 4 Y y i k W 7 L 7 R b C P a Y B x N g b t X N 5 p + B M Y C 8 S d 0 b y p a O B e C w / P V T a u a 9 W E L E k B I l M U K 2 b r h O j l 1 K F n A k Y Z V u J h p i y P u 1 C 0 1 B J Q 9 B e O r l 6 Z J 8 Y J b A 7 k T I l 0 Z 6 o v y d S G m o 9 D H 3 T G V L s 6 X l v L P 7 n N R P s X H g p l 3 G C I N l 0 U S c R N k b 2 O A I 7 4 A o Y i q E h l C l u b r V Z j y r K 0 A S V N S G 4 8 y 8 v k l q x 4 J 4 V i t c m j U s y R Y Y c k m N y S l x y T k r k i l R I l T C i y D N 5 J W / W w H q x 3 q 2 P a e u S N Z s 5 I H 9 g f f 4 A Q O u V + g = = < / l a t e x i t > Z < l a t e x i t s h a 1 _ b a s e 6 4 = " O s 4 s B q y R M Z j o l 0 W Z Q q J O U R H 2 0 t 0 = " > A A A B 6 H i c d V D L S g N B E J y N r x h f U Y 9 e B o P g a d m N h y Q n A 3 r w m I B 5 Y L K E 2 U k n G T M 7 u 8 z M C m H J F 3 j x o E g 8 + j d e v f k 3 z i Y K P g s a i q p u u r r 9 i D O l H e f N y i w t r 6 y u Z d d z G 5 t b 2 z v 5 3 b 2 m C m N J o U F D H s q 2 T x R w J q C h m e b Q j i S Q w O f Q 8 s d n q d + 6 A a l Y K C 7 1 J A I v I E P B B o w S b a T 6 V S 9 f c O z K S c U t l / B v 4 t r O H I X T l 1 m K p 1 o v / 9 r t h z Q O Q G j K i V I d 1 4 m 0 l x C p G e U w z X V j B R G h Y z K E j q G C B K C 8 Z B 5 0 i o + M 0 s e D U J o S G s / V r x M J C Z S a B L 7 p D I g e q Z 9 e K v 7 l d W I 9 K H s J E 1 G s Q d D F o k H M s Q 5 x e j X u M w l U 8 4 k h h E p m s m I 6 I p J Q b X 6 T M 0 / 4 v B T / T 5 p F 2 z 2 x i 3 W n U D 1 H C 2 T R A T p E x 8 h F J V R F F 6 i G G o g i Q L f o H j 1 Y 1 9 a d 9 W j N F q 0 Z 6 2 N m H 3 2 D 9 f w O k a 2 R 7 g = = < / l a t e x i t >

Taking this insight and the central assumption of convolutions -all neighborhoods can be operated upon in an identical manner -into account, we propose to instead construct the depth cost volume C depth , in which C depth (u, v, z, :) will encode features describing how likely the depth Z(u, v) of pixel (u, v) is z. The subsequent 3D convolutions will then operate on the grid of depth, rather than disparity, affecting neighboring depths identically, independent of their location. The resulting 3D tensor S depth is then used to predict the pixel depth similar to Equation 3

Z(u, v) = z softmax(-S depth (u, v, z)) × z.

We construct the new depth volume, C depth , based on the intuition that C depth (u, v, z, :) and

C disp u, v, f U × b z , :

should lead to equivalent "cost". To this end, we apply a bilinear interpolation to construct C depth from C disp using the depth-to-disparity transform in Equation 2. Specifically, we consider disparity in the range of [0, 191] following PSMNet (Chang & Chen, 2018) , and consider depth in the range of [1m, 80m] and set the grid of depth in C depth to be 1m. Figure 5 (top) depicts our stereo depth network (SDN) pipeline. Crucially, all convolution operations are operated on C depth exclusively. Figure 4 compares the median values of absolute depth estimation errors using the disparity cost volume (i.e., PSMNet) and the depth cost volume (SDN) (see subsection D.5 for detailed numbers). As expected, for faraway depth, SDN leads to drastically smaller errors with only marginal increases in the very near range (which disparity based methods over-optimize). See the appendix for the detailed setup and more discussions.

DEPTH CORRECTION:

Our SDN significantly improves depth estimation and more precisely renders the object contours (see Figure 3 ). However, there is a fundamental limitation in stereo because of the discrete nature of pixels: the disparity, being the difference in the horizontal coordinate between corresponding pixels, has to be quantized at the level of individual pixels while the depth is continuous. Although the quantization error can be alleviated with higher resolution images, the computational depth prediction cost scales cubically with resolution-pushing the limits of GPUs in autonomous vehicles.

We therefore explore a hybrid approach by leveraging a cheap LiDAR with extremely sparse (e.g., beams) but accurate depth measurements to correct this bias. We note that such sensors are too sparse to capture object shapes and cannot be used alone for detection. However, by projecting the LiDAR points into the image plane we obtain exact depths on a small portion of "landmark" pixels.

We present a graph-based depth correction (GDC) algorithm that effectively combines the dense stereo depth that has rendered object shapes and the sparse accurate LiDAR measurements. Conceptually, we expect the corrected depth map to have the following properties: globally, landmark pixels associated with LiDAR points should possess the exact depths; locally, object shapes captured by neighboring 3D points, back-projected from the input depth map (cf. Equation 1), should be preserved.

Figure 5 (bottom) illustrates the algorithm.

Input Matching. We take as input the two point clouds from LiDAR (L) and Pseudo-LiDAR (PL) by stereo depth estimation. The latter is obtained by converting pixels (u, v) with depth z to 3D points (x u , y v , z). First, we characterize the local shapes by the directed K-nearest-neighbor (KNN) graph in the PL point cloud (using accelerated KD-Trees (Shevtsov et al., 2007) ) that connects each 3D point to its KNNs with appropriate weights. Similarly, we can project the 3D LiDAR points onto pixel locations (u, v) and match them to corresponding 3D stereo points. Without loss of generality, we assume that we are given "ground truth" LiDAR depth for the first n points and no ground truth for the remaining m points. We refer to the 3D stereo depth estimates as Z ∈ R n+m and the LiDAR depth ground-truth as G ∈ R n .

Edge weights. To construct the KNN graph in 3D we ignore the LiDAR information on the first n points and only use their predicted stereo depth in Z. Let N i denote the set of k neighbors of the i th point. Further, let W ∈ R (n+m)×(n+m) denote the weight matrix, where W ij denotes the edge-weight between points i and j. Inspired by prior work in manifold learning (Roweis & Saul, 2000; Weinberger et al., 2005) we choose the weights to be the coefficients that reconstruct the depth of any point from the depths of its neighbors in N i . We can solve for these weights with the following constrained quadratic optimization problem:

EQUATION

Here 1 ∈ R n+m denotes the all-ones vector. As long as we pick k > 3 and the points are in general position there are infinitely many solutions that satisfy Z = W Z, and we pick the solution with the minimum L 2 norm (obtained with slight L 2 regularization).

Depth Correction. Let us denote the corrected depth values as Z ∈ R n+m , with Z = [Z L ; Z P L ] and Z L ∈ R n and Z P L ∈ R m , where Z L are the depth values of points with LiDAR ground-truth and Z P L otherwise. For the n points with LiDAR measurements we update the depth to the (ground truth) values Z L = G. We then solve for Z P L given G and the weighted KNN graph encoded in W . Concretely, we update the remaining depths Z P L such that the depth of any point i can still be be reconstructed with high fidelity as a weighted sum of its KNNs' depths using the learned weights W ; i.e. if point i : 1 ≤ i ≤ n is moved to its new depth G i , then its neighbors in N i must also be corrected such that G i ≈ j∈Ni W ij Z j . Further, the neighbors' neighbors must be corrected and the depth of the few n points propagates across the entire graph. We can solve for the final Z directly with another quadratic optimization:

EQUATION

To illustrate the correction process, imagine the simplest case where the depth of only a single point (n = 1) is updated to G 1 = Z 1 + δ. A new optimal depth for Equation 8 is to move all the remaining points similarly, i.e. Z = Z + 1δ: as Z = W Z and W 1 = 1 we must have W (Z + 1δ) = Z + 1δ.

In the setting with n > 1, the least-squares loss ensures a soft diffusion between the different LiDAR depth estimates. Both optimization problems in Equation 7and Equation 8 can be solved exactly and efficiently with sparse matrix solvers. We summarize the procedure as an algorithm in the appendix.

From the view of graph-based manifold learning, our GDC algorithm is reminiscent of locally linear embeddings (Roweis & Saul, 2000) with landmarks to guide the final solution (Weinberger et al., 2005) . Figure 1 illustrates vividly how the initial 3D point cloud from SDN (purple) of a car in the KITTI dataset is corrected with a few sparse LiDAR measurements (yellow). The resulting points (blue) are right inside the ground-truth box and clearly show the contour of the car. Figure 4 shows the additional improvement from the GDC (blue) over the pure SDN depth estimates (see subsection D.5 for detailed numbers). The error (calculated only on non-landmark pixels) is corrected over the entire image where many regions have no LiDAR measurements. This is because that the pseudo-LiDAR point cloud is sufficiently dense and we choose k to be large enough (in practice, we use k = 10) such that the KNN graph is typically connected (or consists of few large connected components). See subsection D.6 for more analysis. For objects such as cars the improvements through GDC are far more pronounced, as these typically are touched by the four LiDAR beams and can be corrected effectively.

5. EXPERIMENTS:



5.1. SETUP:

We refer to our combined method (SDN and GDC) for 3D object detection as PSEUDO-LIDAR++ (PL++ in short). To analyze the contribution of each component, we evaluate SDN and GDC independently and jointly across several settings. For GDC we set k = 10 and consider adding signal from a (simulated) 4-beam LiDAR, unless stated otherwise.

Dataset, Metrics, and Baselines. We evaluate on the KITTI dataset (Geiger et al., 2013; 2012) , which contains 7,481 and 7,518 images for training and testing. We follow (Chen et al., 2015) to separate the 7,481 images into 3,712 for training and 3,769 validation. For each (left) image, KITTI provides the corresponding right image, the 64-beam Velodyne LiDAR point cloud, the camera calibration matrices, and the bounding boxes. We focus on 3D object detection and bird's-eye-view (BEV) localization and report results on the validation set. Specifically, we focus on the "car" category, following Chen et al. ( 2017) and Xu et al. (2018) . We report average precision (AP) with IoU (Intersection over Union) thresholds at 0.5 and 0.7. We denote AP for the 3D and BEV tasks by AP 3D and AP BEV . KITTI defines the easy, moderate, and hard settings, in which objects with 2D box heights smaller than or occlusion/truncation levels larger than certain thresholds are disregarded. We compare to four stereo-based detectors: PSEUDO-LIDAR (PL in short) (Wang et al., 2019a) , 3DOP (Chen et al., 2015) , S-RCNN (Li et al., 2019b) , and MLF-STEREO (Xu & Chen, 2018) .

Stereo depth network (SDN). We use PSMNET (Chang & Chen, 2018) as the backbone for our stereo depth estimation network (SDN). We follow Wang et al. (2019a) to pre-train SDN on the synthetic Scene Flow dataset (Mayer et al., 2016) and fine-tune it on the 3,712 training images of KITTI. We obtain the depth ground truth by projecting the corresponding LiDAR points onto images. We also train a PSMNET in the same way for comparison, which minimizes disparity error.

3D object detection. We apply three algorithms: AVOD (Ku et al., 2018) , PIXOR (Yang et al., 2018b) , and P-RCNN (Shi et al., 2019) . All utilize information from LiDAR and/or monocular images. We use the released implementations of AVOD (specifically, AVOD-FPN) and P-RCNN. We implement PIXOR ourselves with a slight modification to include visual information (denoted as PIXOR ). We train all models on the 3,712 training data from scratch by replacing the LiDAR points with pseudo-LiDAR data generated from stereo depth estimation. See the appendix for details.

Sparser LiDAR. We simulate sparser LiDAR signal with fewer beams by first projecting the 64-beam LiDAR points onto a 2D plane of horizontal and vertical angles. We quantize the vertical angles into 64 levels with an interval of 0.4 • , which is close to the SPEC of the 64-beam LiDAR. We keep points fallen into a subset of beams to mimic the sparser signal. See the appendix for details.

5.2. EXPERIMENTAL RESULTS:

Results on the KITTI val set. We summarize the main results on KITTI object detection in Table 1 . Several important trends can be observed: 1) Our PL++ with enhanced depth estimations by SDN and GDC yields consistent improvement over PL across all settings; 2) PL++ with GDC refinement of 4-beam LiDAR (Input: L# + S) performs significantly better than PL++ with only stereo inputs (Input: S); 3) PL experiences a substantial drop in accuracy from IoU at 0.5 to 0.7 for the hard setting. This suggests that while PL detects faraway objects, it mislocalizes them, likely placing them at the wrong depth. This causes the object to be considered a missed detection at higher overlap thresholds. Interestingly, here is where we experience the largest gain -from PL: P-RCNN (AP BEV = 52.7) to PL++: P-RCNN (AP BEV = 73.4) with input as L# + S. Note that the majority of the gain comes from GDC, as PL++ with the stereo-only version only improving the score to 57.3 AP BEV . 4) The gap between PL++ and LiDAR is at most 13% AP BEV , even at the hard setting under IoU at 0.7. 5) For IoU at 0.5, with the aid of only 4 LiDAR beams, PL++ (SDN + GDC) achieves results comparable to models with 64-beam LiDAR signals.

Results on the KITTI test set. Table 2 summarizes results on the car category on the KITTI test set. We see a similar gap between our methods and LiDAR as on the validation set, suggesting that our improvement is not particular to the validation data. Our approach without LiDAR refinement (pure SDN) is placed at the top position among all the image-based algorithms on the KITTI leaderboard.

In the following, we conduct a series of experiments to analyze the performance gain by our approaches and discuss several key observations. We mainly experiment with P-RCNN: we find that the results with AVOD and PIXOR follow similar trends and thus include them in the appendix.

Depth loss and depth cost volume. To turn a disparity network (e.g., PSMNET) into SDN, there are two changes: 1) change the disparity loss into the depth loss; 2) change the disparity cost volume into the depth cost volume. In Table 3 , we uncover the effect of these two changes separately. On the AP BEV /AP 3D (moderate) metric, the depth loss gives us a 6%/2% improvement and the depth cost volume brings another 2 ∼ 3% gain 4 . Impact of sparse LiDAR beams. We leverage 4-beam LiDAR to correct stereo depth using GDC. However, it is possible that gains in 3D object detection come entirely from the new LiDAR sensor and that the stereo estimates are immaterial. In Table 4 , we study this question by comparing the detection results against those of models using 1) sole 4-beam LiDAR point clouds and 2) pseudo-LiDAR point clouds with depths of landmark pixels replaced by 4-beam LiDAR: i.e., in depth correction, we only correct depths of the landmark pixels without propagation. It can be seen that 4-beam LiDAR itself performs fairly well on locating faraway objects but cannot capture nearby objects precisely, while simply replacing pseudo-LiDAR with LiDAR at the landmark pixels prevents the model from detecting faraway object accurately. In contrast, our proposed GDC method effectively combines the merits of the two signals, achieving superior performance than using them alone.

Pedestrian and cyclist detection. For a fair comparison to (Wang et al., 2019a) , we apply F-POINTNET (Qi et al., 2018) for detecting pedestrians and cyclists. Table 5 shows the results: our methods significantly boosts the performance.

LiDAR:

Pseudo-LiDAR Pseudo-LiDAR++ (SDN) Pseudo-LiDAR++ (SDN + GDC) Qualitative visualization. In Figure 6 , we show an qualitative comparison of detection results on a randomly chosen scene in the KITTI object validation set, using P-RCNN (with confidence > 0.95) with different input signals. Specifically, we show the results from the frontal-view images and the bird's-eye view (BEV) point clouds. In the BEV map, the observer is on the left-hand side looking to than the depth loss (for PIXOR and AVOD). Nevertheless, Table 3 and Table 6 both suggest the compatibility of the two approaches: combining them leads to the best performance.

the right. It can be seen that the point clouds generated by PSEUDO-LIDAR ++ (SDN alone or SDN +GDC) align better with LiDAR than that generated by PSEUDO-LIDAR (PSMNET). For nearby objects (i.e., bounding boxes close to the left in the BEV map), we see that P-RCNN with any point cloud performs fairly well in localization. However, for faraway objects (i.e., bounding boxes close to the right), PSEUDO-LIDAR with depth estimated from PSMNET predicts objects (red boxes) that are deviated from the ground truths (green boxes). Moreover, the noisy PSMNET points also leads to false negatives. In contrast, the detected boxes by our PSEUDO-LIDAR ++, either with SDN alone or with SDN +GDC, align pretty well with the ground truth boxes, justifying our targeted improvement in estimating faraway depths.

Additional results, analyses, qualitative visualization and discussions. We provide results of PSEUDO-LIDAR ++ with fewer LiDAR beams, comparisons to depth completion methods, analysis on depth quality and detection accuracy, run time, failure cases, and more qualitative results in the appendix. With simple optimizations, GDC runs in 90 ms/frame using a single GPU (7.7 ms for KD-tree construction and search).

6. CONCLUSION:

In this paper we made two contributions to improve the 3D object detection in autonomous vehicles without expensive LiDAR. First, we identify the disparity estimation as a main source of error for stereo-based systems and propose a novel approach to learn depth directly end-to-end instead of through disparity estimates. Second, we advocate that one should not use expensive LiDAR sensors to learn the local structure and depth of objects. Instead one can use commodity stereo cameras for the former and a cheap sparse LiDAR to correct the systematic bias in the resulting depth estimates. We provide a novel graph propagation algorithm that integrates the two data modalities and propagates the sparse yet accurate depth estimates using two sparse matrix solvers. The resulting system, PSEUDO-LIDAR ++ (SDN + GDC), performs almost on par with 64-beam LiDAR systems for $75,000 but only requires 4 beams and two commodity cameras, which could be obtained with a total cost of less than $1,000.

scene (in LiDAR coordinate system (x: front, y: left, z: up, and (0, 0, 0) is the location of the LiDAR sensor)), we compute the elevation angle θ i to the LiDAR sensor as

θ i = arg cos x 2 i + y 2 i x 2 i + y 2 i + z 2 i .

We order the points by their elevation angles and slice them into separate lines by step 0.4 • , starting from -23.6 • (close to the Velodyne 64-beam LiDAR SPEC). We select LiDAR points whose elevation angles fall within [-2.4 • , -2.0 • ) ∪ [-0.8 • , -0.4 • ) to be the 2-beam LiDAR signal, and similarly

[-2.4 • , -2.0 • ) ∪ [-1.6 • , -1.2 • ) ∪ [-0.8 • , -0.4 • ) ∪ [0.0 • , 0.4 • )

to be the 4-beam LiDAR signal. We choose them in such a way that consecutive lines has a 0.8 • interval, following the SPEC of the "cheap" 4-beam LiDAR ScaLa. We visualize these sparsified LiDAR point clouds from the bird's-eye view on one example scene in Figure 7 . In this section, we provide more details about the way we train 3D object detection models on pseudo-LiDAR point clouds. For AVOD, we use the same model as in (Wang et al., 2019a) . For P-RCNN, we use the implementation provided by the authors. Since the P-RCNN model exploits the sparse nature of LiDAR point clouds, when training it with pseudo-LiDAR input, we will first sparsify the point clouds into 64 beams using the method described in subsection C.1. For PIXOR , we implement the same base model structure and data augmentation specified by Yang et al. (2018b) , but without the "decode fine-tune" step and focal loss. Inspired by the trick in (Liang et al., 2018) , we add another image feature (ResNet-18 by He et al. (2016) ) branch along the LiDAR branch, and concatenate the corresponding image features onto the LiDAR branch at each stage. We train PIXOR using RMSProp with momentum 0.9, learning rate 10 -5 (decay by 10 after 50 and 80 epochs) for 90 epochs. The BEV evaluation results are similar to the reported results (see Table 1 ).

D ADDITIONAL RESULTS, ANALYSES, AND DISCUSSIONS D.1 ABLATION STUDY:

In Table 6 and Table 7 we provide more experimental results aligned with experiments in subsection 5.2 of the main paper. We conduct the same experiments on two other models, AVOD and PIXOR , and observe similar trends of improvements brought by learning with the depth loss (from PSMNET to PSMNET +DL), constructing the depth cost volume (from PSMNET +DL to SDN), and applying GDC to correct the bias in stereo depth estimation (comparing SDN +GDC with SDN).

We note that, in Table 7 , results of AVOD (or PIXOR ) with SDN + L# are worse than those with L# at the moderate and hard settings. This observation is different from that in Table 4 , where P-RCNN with SDN + L# outperforms P-RCNN with L# in 5 out of 6 comparisons. We hypothesize that this is because P-RCNN takes sparsified inputs (see subsection C.2) while AVOD and PIXOR take dense inputs. In the later case, the four replaced LiDAR beams in SDN + L# will be dominated by the dense stereo depths so that SDN + L# is worse than L#. Here we empirically compare to PNP (Wang et al., 2018) , a recently proposed depth completion algorithm compatible with any (even stereo) depth estimation network, similar to GDC. We use SDN for initial depth estimation, and evaluate GDC and PNP by randomly selecting a fraction of LiDAR points as provided ground truths and calculating the median absolute depth errors on the remaining LiDAR points. As shown in Figure 8 , GDC outperforms PNP by a large margin. Table 9 shows a further comparison to PNP on 3D object detection. We apply PNP and GDC respectively to correct the depth estimates obtained from SDN, train a P-RCNN or PIXOR using the resulting pseudo-LiDAR points on the KITTI training set, and compare the detection results on the KITTI validation set. In either case, SDN + GDC outperforms SDN + PNP by a notable margin. GDC runs in 90 ms/frame using a single GPU (7.7ms for KD-tree construction and search, 46.5ms for solving W , and 26.9ms for solving Z P L ) with negligible performance difference (see Table 10 ).

For consistency, all results reported in the main paper are based on the naive implementation. Further speedups can be achieved by CUDA programming for GPUs.

D.5 STEREO DEPTH VS. DETECTION:

We quantitatively evaluate the stereo depths by median errors in Figure 4 of the main text (numerical values are listed in Table 11 ). In Table 12 we further show mean errors with standard deviation (the large standard deviation likely results from outliers such as occluded pixels around object boundaries). For both tables, we divide pixels into beams according to their truth depths, and evaluate on pixels not on the 4-beam LiDAR. The improvement of SDN (+ GDC) over PSMNET becomes larger as we consider pixels farther away. Table 13 further demonstrates the relationship between depth quality and detection accuracy: SDN (+ GDC) significantly outperforms PSMNET for detecting faraway cars. We note that, for very faraway cars (i.e., 50-70 m), the number of training object instances are extremely small, which suggests that the very poor performance might partially cause by over-fitting.

Further, we apply the same evaluation procedure but group the errors by the shortest distance between each PSEUDO-LIDAR point and the 4-beam LiDAR points in Figure 9 . We can see that the closer the PSEUDO-LIDAR points are to the 4-beam LiDAR points, the bigger improvement GDC can bring.

D.6 CONNECTED COMPONENTS IN KNN GRAPHS OF PSEUDO-LIDAR POINTS BY SDN:

Here, we provide empirical analysis on the relationship between the k we choose in building the Knearest-neighbor graph of PSEUDO-LIDAR points by SDN and the number of connected components of that graph. We show the results on KITTI validation set in Figure 11 . It can be seen that with k ≥ 9, the average number of connected components in the graph is smaller than 2.

D.7 FAILURE CASES AND WEAKNESS:

There is still a gap between our approach and LiDAR for faraway objects (see Table 13 ). We further analyze AP BEV at different IoU in Figure 10 . For low IoU (0.2-0.5), SDN (+GDC) is on par with LiDAR, but the gap increases significantly at high IoU thresholds. This suggests that the predominant gap between our approach and LiDAR is because of mislocalization, perhaps due to residual inaccuracies in depth. Table 13 : 3D object detection at various depth ranges. We compare different input signals. We report APBEV / AP3D (in %) of the car category at IoU= 0.7 on the KITTI validation set, using P-RCNN for detection. In the last two rows we show the number of car objects in KITTI object train and validation sets within different ranges. In Figure 6 ,12,13 and Figure 14 , we show detection results using P-RCNN (with confidence > 0.95) with different input signals on four randomly chosen scenes in the KITTI object validation set. Specifically, we show the results from the frontal-view images and the bird's-eye view (BEV) point clouds. In the BEV map, the observer is on the left-hand side looking to the right. It can be seen that the point clouds generated by PSEUDO-LIDAR ++ (SDN alone or SDN +GDC) align better with LiDAR than those generated by PSEUDO-LIDAR (PSMNET). For nearby objects (i.e., bounding boxes close to the left in the BEV map), we see that P-RCNN with any point cloud performs fairly well in localization. However, for faraway objects (i.e., bounding boxes close to the right), PSEUDO-LIDAR with depth estimated from PSMNET predicts objects (red boxes) deviated from the ground truths (green boxes). Moreover, the noisy PSMNET points also leads to several false positives or negatives. In contrast, the detected boxes by our PSEUDO-LIDAR ++, either with SDN alone or with SDN +GDC, align pretty well with the ground truth boxes, justifying our targeted improvement in estimating faraway depths. In Figure 12 , we see one failure case for both PSEUDO-LIDAR and PSEUDO-LIDAR ++: the most faraway car is missed, while LiDAR signal can still detect it, suggesting that for very faraway objects stereo-based methods may still have limitation.

:

The Ibeo Wide Angle Scanning (ScaLa) sensor with 4 beams costs $600 (USD). In this paper we simulate the 4-beam LiDAR signal on KITTI benchmark(Geiger et al., 2012) by sparsifying the original 64-beam signal.

Recently, Srivastava et al. (2019) proposed to lift 2D monocular images to 3D representations (e.g., bird's-eye view (BEV) images) and achieved promising monocular-based 3D object detection results.

We note that, the degree of improvement brought by the depth loss and depth cost volume depends on the 3D detector in use. Table3suggests that the depth loss provides more gain than the depth cost volume (for P-RCNN). In Table6, we, however, see that the depth cost volume provides comparable or even bigger gain

These two problems yield identical solutions but we found the second one is easier to solve in practice. We note that, Equation 7 is an under-constrained problem, with infinitely many solutions. To identify a single solution, we add a small L2 regularization term to the objective (as mentioned in the main text).

Torres-Mendez & Dudek (2004) use MRFs and may thus require less (or even no) training data compared to deep learning algorithms: a property shared by GDC.

Figures and Tables:

Figure 3: Disparity cost volume (left) vs. depth cost volume (right). The figure shows the 3D points obtained from LiDAR (yellow) and stereo (purple) corresponding to a car in KITTI, seen from the bird'seye view (BEV). Points from the disparity cost volume are stretched out and noisy; while points from the depth cost volume capture the car contour faithfully.

Figure 4: Depth estimation errors. We compare depth estimation error on 3,769 KITTI validation images, taking 64-beam LiDAR depths as ground truths.We separate pixels according to their true depths (z).See the text and appendix for details.

Figure 2: The disparity-todepth transform. We set fU = 721 (in pixels) and b = 0.54 (in meters) in Equation 2, which are the typical values used in the KITTI dataset.

Figure 5: The whole pipeline of improved stereo depth estimation: (top) the stereo depth network (SDN) constructs a depth cost volume from left-right images and is optimized for direct depth estimation; (bottom) the graph-based depth correction algorithm (GDC) refines the depth map by leveraging sparser LiDAR signal. The gray arrows indicates the observer's view point. We superimpose the (green) ground-truth 3D box of a car, the same one in Figure 1. The corrected points (blue; bottom right) are perfectly located inside the ground truth box.

Figure 6: Qualitative Comparison. We show the detection results on a KITTI validation scene by P-RCNN with different input point clouds. We visualize them from both frontal-view images and bird's-eye view (BEV) point maps. Ground-truth boxes are in green and predicted bounding boxes are in red. The observer is at the left-hand side of the BEV map looking to the right. In other words, ground truth boxes on the right are more faraway (i.e., deeper) from the observer, and hence hard to localize. Best viewed in color.

Figure 7: Bird's-eye views of sparsified LiDAR on an example scene. The observer is on the bottom side looking up. We filter out points invisible from the left image. (One floor square is 10m × 10m.)

Figure 8: Comparison of GDC and PNP for depth correction. We report the median of absolute errors on the KITTI validation set. See text for details.

Figure 9: Median depth estimation errors w.r.t. the shortest distances to 4-beam LiDAR points on KITTI validation set.

RUN TIME With the following optimizations for implementation, 1. Sub-sampling pseudo-LiDAR points: keeping at most one point within a cubic of size 0.1m 3 2. Limiting the pseudo-LiDAR points for depth correction: keeping only those whose elevation angles are within [-3.0 • , 0.4 • ) (the range of 4-beam LiDAR plus 0.6 • ; see subsection C.1 for details) 3. After performing GDC for depth correction, combining the corrected pseudo-LiDAR points with those outsides the elevation angles of [-3.0 • , 0.4 • )

Figure 10: IoU vs. AP BEV on KITTI validation set on the car category (moderate).

Figure 11: k vs. average number of connected components in KNN graphs of PSEUDO-LIDAR points by SDN.

3D object detection results on KITTI validation. We report APBEV / AP3D (in %) of the car category, corresponding to average precision of the bird's-eye view and 3D object detection. We arrange methods according to the input signals: M for monocular images, S for stereo images, L for 64-beam LiDAR, and L# for sparse 4-beam LiDAR. PL stands for PSEUDO-LIDAR. Our PSEUDO-LIDAR ++ (PL++) with enhanced depth estimation -SDN and GDC-are in blue. Methods with 64-beam LiDAR are in gray. Best viewed in color.

Table content: <table><tr><td/><td/><td/><td>IoU = 0.5</td><td/><td/><td>IoU = 0.7</td><td/></tr><tr><td colspan="2">Detection algo Input</td><td>Easy</td><td>Moderate</td><td>Hard</td><td>Easy</td><td>Moderate</td><td>Hard</td></tr><tr><td>3DOP</td><td>S</td><td colspan="4">55.0 / 46.0 41.3 / 34.6 34.6 / 30.1 12.6 / 6.6</td><td>9.5 / 5.1</td><td>7.6 / 4.1</td></tr><tr><td>MLF-STEREO</td><td>S</td><td>-</td><td>53.7 / 47.4</td><td>-</td><td>-</td><td>19.5 / 9.8</td><td>-</td></tr><tr><td>S-RCNN</td><td>S</td><td colspan="6">87.1 / 85.8 74.1 / 66.3 58.9 / 57.2 68.5 / 54.1 48.3 / 36.7 41.5 / 31.1</td></tr><tr><td>PL: AVOD</td><td>S</td><td colspan="6">89.0 / 88.5 77.5 / 76.4 68.7 / 61.2 74.9 / 61.9 56.8 / 45.3 49.0 / 39.0</td></tr><tr><td>PL: PIXOR</td><td>S</td><td>89.0 / -</td><td>75.2 / -</td><td>67.3 / -</td><td>73.9 / -</td><td>54.0 / -</td><td>46.9 / -</td></tr><tr><td>PL: P-RCNN</td><td>S</td><td colspan="6">88.4 / 88.0 76.6 / 73.7 69.0 / 67.8 73.4 / 62.3 56.0 / 44.9 52.7 / 41.6</td></tr><tr><td>PL++: AVOD</td><td>S</td><td colspan="6">89.4 / 89.0 79.0 / 77.8 70.1 / 69.1 77.0 / 63.2 63.7 / 46.8 56.0 / 39.8</td></tr><tr><td>PL++: PIXOR</td><td>S</td><td>89.9 / -</td><td>78.4 / -</td><td>74.7 / -</td><td>79.7 / -</td><td>61.1 / -</td><td>54.5 / -</td></tr><tr><td>PL++: P-RCNN</td><td>S</td><td colspan="6">89.8 / 89.7 83.8 / 78.6 77.5 / 75.1 82.0 / 67.9 64.0 / 50.1 57.3 / 45.3</td></tr><tr><td>PL++: AVOD</td><td colspan="7">L# + S 90.2 / 90.1 87.7 / 86.9 79.8 / 79.2 86.8 / 70.7 76.6 / 56.2 68.7 / 53.4</td></tr><tr><td colspan="3">PL++: PIXOR L# + S 95.1 / -</td><td>85.1 / -</td><td>78.3 / -</td><td>84.0 / -</td><td>71.0 / -</td><td>65.2 / -</td></tr><tr><td colspan="8">PL++: P-RCNN L# + S 90.3 / 90.3 87.7 / 86.9 84.6 / 84.2 88.2 / 75.1 76.9 / 63.8 73.4 / 57.4</td></tr><tr><td>AVOD</td><td colspan="7">L + M 90.5 / 90.5 89.4 / 89.2 88.5 / 88.2 89.4 / 82.8 86.5 / 73.5 79.3 / 67.1</td></tr><tr><td>PIXOR</td><td colspan="2">L + M 94.2 / -</td><td>86.7 / -</td><td>86.1 / -</td><td>85.2 / -</td><td>81.2 / -</td><td>76.1 / -</td></tr><tr><td>P-RCNN</td><td>L</td><td colspan="6">97.3 / 97.3 89.9 / 89.8 89.4 / 89.3 90.2 / 89.2 87.9 / 78.9 85.5 / 77.9</td></tr></table>

Results on the car category on the test set. We compare PL++ (blue) and 64-beam LiDAR (gray), using P-RCNN, and report APBEV / AP3D at IoU=0.7.

Table content: <table><tr><td>Input signal</td><td>Easy</td><td>Moderate</td><td>Hard</td></tr><tr><td>PL++ (SDN)</td><td colspan="3">75.5 / 60.4 57.2 / 44.6 53.4 / 38.5</td></tr><tr><td colspan="4">PL++ (SDN + GDC) 83.8 / 68.5 73.5 / 54.7 66.5 / 51.2</td></tr><tr><td>LiDAR</td><td colspan="3">89.5 / 85.9 85.7 / 75.8 79.1 / 68.3</td></tr></table>

Ablation study on depth estimation. We report APBEV / AP3D (in %) of the car category at IoU= 0.7 on KITTI validation. DL: depth loss.

Table content: <table><tr><td>Stereo depth</td><td>Easy</td><td>Moderate</td><td>Hard</td></tr><tr><td>PSMNET</td><td colspan="3">73.4 / 62.3 56.0 / 44.9 52.7 / 41.6</td></tr><tr><td colspan="4">PSMNET + DL 80.1 / 65.5 61.9 / 46.8 56.0 / 43.0</td></tr><tr><td>SDN</td><td colspan="3">82.0 / 67.9 64.0 / 50.1 57.3 / 45.3</td></tr></table>

Ablation study on leveraging sparse Li-DAR. We report APBEV / AP3D (in %) of the car category at IoU= 0.7 on KITTI validation. L#: 4-beam LiDAR signal alone. SDN + L#: pseudo-LiDAR with depths of landmark pixels replaced by 4-beam LiDAR. The best result of each column is in bold font.

Table content: <table><tr><td>Stereo depth</td><td>Easy</td><td>Moderate</td><td>Hard</td></tr><tr><td>SDN</td><td colspan="3">82.0 / 67.9 64.0 / 50.1 57.3 / 45.3</td></tr><tr><td>L#</td><td colspan="3">73.2 / 56.1 71.3 / 53.1 70.5 / 51.5</td></tr><tr><td>SDN + L#</td><td colspan="3">86.3 / 72.0 73.0 / 56.1 67.4 / 54.1</td></tr><tr><td colspan="4">SDN + GDC 88.2 / 75.1 76.9 / 63.8 73.4 / 57.4</td></tr></table>

Results of pedestrians (top)  and cyclists (bottom) on KITTI validation. We apply F-POINTNET Qi et al. (2018) and report APBEV / AP3D (in %) at IoU= 0.5, followingWang et al. (2019a).

Table content: <table><tr><td>Stereo depth</td><td>Easy</td><td>Moderate</td><td>Hard</td></tr><tr><td>PSMNET</td><td colspan="3">41.3 / 33.8 34.9 / 27.4 30.1 / 24.0</td></tr><tr><td>SDN</td><td colspan="3">48.7 / 40.9 40.4 / 32.9 34.9 / 28.8</td></tr><tr><td colspan="4">SDN + GDC 63.7 / 53.6 53.8 / 44.4 46.8 / 38.1</td></tr><tr><td>PSMNET</td><td colspan="3">47.6 / 41.3 29.9 / 25.2 27.0 / 24.9</td></tr><tr><td>SDN</td><td colspan="3">49.3 / 44.6 30.4 / 28.7 28.6 / 26.4</td></tr><tr><td colspan="4">SDN + GDC 65.7 / 60.8 45.8 / 40.8 42.8 / 38.0</td></tr></table>

Comparison of 3D object detection using the naive and optimized implementation of GDC. We report APBEV / AP3D (in %) of the car category at IoU= 0.7 on the KITTI validation set, using P-RCNN for detection. Optimized 87.6 / 75.0 76.3 / 63.4 73.1 / 57.0 commensurate. Also, our GDC algorithm is a general, simple, inference-time approach that requires no training, unlike prior learning-based approaches to depth completion.

Table content: <table><tr><td/><td>Easy</td><td>Moderate</td><td>Hard</td></tr><tr><td>Naive</td><td colspan="3">88.2 / 75.1 76.9 / 63.8 73.4 / 57.4</td></tr></table>

Median depth estimation errors over various depth ranges (numerical values of Figure4).

Table content: <table><tr><td>Signal</td><td colspan="7">range (m) 0-10 10-20 20-30 30-40 40-50 50-60 60-70</td></tr><tr><td>PSMNet</td><td>0.04</td><td>0.11</td><td>0.36</td><td>0.83</td><td>1.24</td><td>1.98</td><td>2.43</td></tr><tr><td>SDN</td><td>0.07</td><td>0.12</td><td>0.30</td><td>0.60</td><td>0.89</td><td>1.31</td><td>1.73</td></tr><tr><td colspan="2">SDN + GDC 0.07</td><td>0.12</td><td>0.27</td><td>0.51</td><td>0.74</td><td>1.03</td><td>1.53</td></tr></table>

Mean depth estimation errors (with standard deviation) over various depth ranges. 21±0.89 0.35±1.16 0.87±2.31 1.80±4.22 2.67±6.00 4.27±8.78 5.82±11.23 SDN + GDC 0.21±0.90 0.35±1.17 0.84±2.34 1.74±4.27 2.59±6.06 4.14±8.85 5.72±11.29

Table content: <table><tr><td>Signal</td><td>0-10</td><td>10-20</td><td>20-30</td><td>range (m) 30-40</td><td>40-50</td><td>50-60</td><td>60-70</td></tr><tr><td>PSMNet</td><td colspan="7">0.18±0.93 0.36±1.20 0.97±2.32 2.02±4.05 2.94±5.64 4.61±8.03 6.03±10.32</td></tr><tr><td>SDN</td><td>0.</td><td/><td/><td/><td/><td/><td/></tr></table>

Peer review (iclr2020):
The paper proposes two extensions to the recent work of (Wang et al., 2019) on 3D object detection with pseudo LiDAR data. Wang et al. showed that 3D object detection using stereo images as inputs can be significantly improved if the depth map is projected to 3D and treated like a LiDAR point cloud (i.e., using methods that utilize the LiDAR point cloud). This paper shows that one shortcoming of this approach is given by the fact that the depth uncertainty increases the farther the objects are away. To remedy this, the authors propose to train the stereo estimation network (based on Chang & Chen, 2018) directly with depth outputs, instead of disparity values (inverse depth), by rewriting the loss and converting the cost volume. This already boosts the performance for far away objects. The authors demonstrate that the usage of a (simulated) low-cost 4-beam LiDAR can further facilitate the detection. For this purpose a graph diffusion algorithm is listed that aligns the pseudo LiDAR point cloud from the stereo set-up with the depth estimates from the low-cost LiDAR. Simulating the low-cost LiDAR on the Kitti benchmarks shows that this approach further increases the performance of the object detection methods. In general, I am in favour of accepting the paper as it shows two orthogonal and interesting additions to the pseudo LiDAR paper of Wang et al. that improve its performance. However, I would like to see some clarifications in the rebuttal. The proposed stereo network converts a disparity cost volume to a depth cost volume using bilinear interpolation. I agree, that the 3D convolutions are more meaningful (given the spacing of the grid cells) on the latter, but why the detour over the disparity cost volume? It should be possible to build the depth cost volume directly, which would lead to decreased memory consumption and speed up the method without any loss in accuracy? One assumption of the second contribution (GDC) is that at least one beam of the LiDAR will hit the k-connected local point cloud. Can you give some bounds on the likelihood that this happens, especially for far away objects it could be unlikely, although it is most beneficial for those objects. Further, I am missing a details on the optimization of (7) and (8). What is meant with slight L2 regularization? In the appendix it is also stated that a slightly different objective is optimized? Finally, the notation could also be improved. The authors are using L and G for the LiDAR point cloud and PL and Z for the pseudo LiDAR point cloud and then in the Z* is used for both. Fig. 4 shows the median error in meters for the different variants of the stereo network. Why has the median been used? Are there severe outliers? If yes, it would also be interesting to quantify those and compare them (e.g., box plots). In the abstract and in the discussion the authors oversell their results a bit. At the one hand they state that PL++ with GDC performs significantly better than PL++ w/o GDC, on the other hand they also claim that PL++ achieves comparable results to models that have access to the full 64-beam LiDAR data. However, if you compare the differences, then the gaps are for several cases almost as big, or bigger as in the former claim. Things to improve the paper that did not impact the score: - In equation (2) you could replace the x with a . (cdot), or completely remove it - On page 5: KNN neighbors -> k-nearest neighbors - Also on page 5: write out W.l.o.g. - In Tab. 1 it would help to highlight (bold) the best entries per column