Accurate Monocular Object Detection via Color-Embedded 3D Reconstruction for Autonomous Driving
Xinzhu Ma Zhihui Wang Haojie Li Pengbo Zhang Xin Fan Wanli Ouyang






Accurate Monocular Object Detection via Color-Embedded 3D Reconstruction for Autonomous Driving
    Minchae Jung, Member, IEEE, Walid Saad, Fellow, IEEE, 

Youngrok Jang, Gyuyeol Kong,
and Sooyong Choi, Member, IEEE 

M. Jung, Y. Jang, G. Kong, and S. Choi (corresponding author) are with School of Electrical Electronic Engineering, Yonsei University, Seoul 03722, Korea (e-mail: csyong@yonsei.ac.kr).

W. Saad is with Wireless@VT, Department of Electrical and Computer Engineering, Virginia Tech, Blacksburg, VA 24061 USA (e-mail: walids@vt.edu).


This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (NRF-2016R1A6A3A11936259)
and by the U.S. National Science Foundation under Grants CNS-1836802 and OAC-1638283.


    December 30, 2023
==================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================




In this paper, we propose a monocular 3D object detection framework in the domain of autonomous driving. 
Unlike previous image-based methods which focus on RGB feature extracted from 2D images, our method solves this problem in the reconstructed 3D space in order to exploit 3D contexts explicitly. 
To this end, we first leverage a stand-alone module to transform the input data from 2D image plane to 3D point clouds space for a better input representation, then we perform the 3D detection using PointNet backbone net to obtain objects' 3D locations, dimensions and orientations. 
To enhance the discriminative capability of point clouds, we propose a multi-modal features fusion module to embed the complementary RGB cue into the generated point clouds representation. 
We argue that it is more effective to infer the 3D bounding boxes from the generated 3D scene space (i.e., X,Y, Z space) compared to the image plane (i.e., R,G,B image plane).
Evaluation on the challenging KITTI dataset shows that our approach boosts the performance of state-of-the-art monocular approach by a large margin.










§ INTRODUCTION




[* Corresponding author: hjli@dlut.edu.cn]



In recent years, with the development of technologies in computer vision and deep learning <cit.>, numerous impressive methods are proposed for accurate 2D object detection <cit.>.
However, beyond getting 2D bounding boxes or pixel masks, 3D object detection is eagerly in demand in many applications such as autonomous driving and robotic applications because it can describe objects in a more realistic way.
Now, this problem received more and more the concern of scholars.
Because LiDAR provides reliable depth information that can be used to accurately localize objects and characterize their shapes, many approaches <cit.> use LiDAR point clouds as their input, and get impressive detection results in autonomous
driving scenarios. 
In contrast, some other studies <cit.> are devoted to replace the LiDAR with cheaper monocular cameras, which are readily available in daily life.

As LiDAR is much more expensive and inspired by the remarkable progress in image-based depth prediction techniques, this paper focuses on the high performance detection of 3D object utilizing only monocular images.
However, image-based 3D detection is very challenging, and there is a huge gap between the performance of image-based methods and LiDAR-based methods.
We show in this work that we can largely boost the performance of image-based 3D detection by transforming the input data representation.






Typical image-based 3D object detection approaches <cit.> adopted the pipeline similar to 2D detectors and mainly focused on RGB features extracted from 2D images.
However, these features are not suitable for 3D related tasks because of the lack of spatial information.
This is one of the main reasons why early studies failed to get better performance.

An intuitive solution is that we can use a CNN to predict the depth maps <cit.> and then use them as input if we do not have the depth data available.
Although depth information is helpful to 3D scene understanding, simply using it as an additional channel of RGB images such as <cit.> does not compensate for the performance difference between image-based methods and LiDAR-based method.
There is no doubt that LiDAR data is much more accurate than estimated depth, here we argue that the performance gap not only due to the accuracy of the data, but also its representation (see Fig. <ref> for different input representations on monocular 3D detection task).
In order to narrow the gap and and make the estimated depth a bigger role, we need a more explicit representation form such as point cloud which describes a real world 3D coordinates rather than depth with a relative position in images. 
For example, objects with different positions in 3D world may have the same coordinates in image plane, which brings difficulties for the network to estimate the final results.
The benefits for transform depth map into point cloud can be enumerated as follow: 
(1) Point cloud data shows the spatial information explicitly, which make it easier for network to learn the non-linear mapping from input to output.
(2) Richer features can be learnt by the network because some specific spatial structures exist only in 3D space.
(3) The recent significant progress of deep learning on point clouds provides a solid building brick, which we can estimate 3D detection results in a more effective and efficient way.
 
Based on the observations above, a monocular 3D object detection framework is proposed.
The main idea for the design of our method is to find a better input representation.
Specifically, we first learn to use front-end deep CNNs and the input RGB data to produce two intermediate tasks involving 2D detection <cit.> and depth estimation <cit.> (see Fig. <ref>).
Then, we transform depth maps into point clouds with the help of camera calibration files in order to give the 3D information explicitly and used them as input data for subsequent steps.
Besides, another crucial component that ensures the performance of proposed method is multi-modal features fusion module.
After aggregating RGB information which is complementary to 3D point clouds, the discriminative capability of features used to describe 3D object are further enhanced.
Note that, when the optimization of the all networks are finished, the inference phase is only based on the RGB input.


The contributions of this paper can be summarized as:


  * We propose a new framework for monocular 3D object detection which transforms 2D image to 3D point cloud and performs the 3D detection effectively and efficiently.

  * We design an features fusion strategy to fully exploit the advantages of RGB cue and point cloud to boost the detection performance, which can be also applied in other scenarios such as LiDAR-based 3D detection.

  * Evaluation on the challenging KITTI dataset <cit.> shows our method outperform all state-of-the-art monocular methods by around 15% and 11% higher AP on 3D localization and detection tasks, respectively.











§ RELATED WORK



We briefly review existing works on 3D object detection task based on LiDAR and images in autonomous driving scenario.

Image-based 3D Object Detection:
In the early works, monocular-based methods share similar framework with 2D detection <cit.>, but it is much more complicated for estimating the 3D coordinates (x, y, z) of object center, since only image appearance cannot decide the absolute physical location.
Mono3D <cit.> and 3DOP <cit.> focus on 3D object proposals generation using prior knowledge (e.g., object size, ground plane) from monocular and stereo images, respectively.
Deep3DBox <cit.> introduces geometric constraints based on the fact that the 3D bounding box should fit tightly into 2D detection bounding box.
Deep MANTA <cit.> encodes 3D vehicle information using key points, since they are rigid objects with well known geometry.
Then the vehicle recognition in Deep MANTA can be considered as extra key points detection.

Although these methods propose some effective prior knowledge or reasonable constraints, they fail to get promising performance because of the lack of spatial information.
Another recently proposed method <cit.> for monocular 3D object detection introduces a multi-level fusion based scheme utilizes a stand-alone module to estimate the disparity information and fuse it with RGB information in the input data encoding, 2D box estimation and 3D box estimation phase, respectively.
Although it used depth (or disparity) many times, they only regard it as auxiliary information of RGB features, and do not make full use of its potential value.     
In comparison, our method takes the generated depth as the core feature and transform it into 3D space to explicitly make use of its spatial information.
Pseudo-LiDAR <cit.> also find that data presentation plays an important role in 3D detection task.
It pays more attention to verify the universality of point cloud representation and applies the generated points to some different existing 3D detection methods without any modifications.
In contrast, in addition to transforming data representations, we further design a dedicated 3D detection framework for monocular images.

LiDAR-based 3D Object Detection:
Although our approach is for monocular image data, we transform the data representation into point cloud which is same to LiDAR-based methods.
So, we also introduce some typical approach based on LiDAR.
MV3D <cit.> encode 3D point clouds with multi-view feature maps, enabling region-based representation for multimodal fusion.

With the development of deep learning on raw point clouds <cit.>, several detection approaches only based on raw LiDAR data are also proposed.
Qi <cit.> extend PointNet to 3D detection task by extracting the frustum point clouds corresponding to their 2D detections.
VoxelNet <cit.> divides point clouds into equally spaced 3D voxels and transforms a group of points within each voxel into a unified feature representation.
Finally, 2D convolution layers are used on these high-level voxel-wise features to get spatial features and give prediction results.
Despite these two methods get a promising detection results, they do not make a good use of RGB information.
In comparison, we also introduce a RGB features fusion module to enhance the discriminative capability of point clouds.







§ PROPOSED METHOD



In this section, we describe the proposed framework for monocular-based 3D object detection. 
We first present an overview of the proposed method, and then introduce the details of it. 
Finally, we show the optimization and implementation details for the overall network.



 §.§ Approach Overview



As shown in Fig. <ref>, the proposed 3D detection framework consists of two main stages.
In 3D data generation phase, we trained two deep CNNs to do intermediate tasks (2D detection and depth estimation) to get position and depth information.
In particular, we transfer the generated depth into point cloud which is a better representation for 3D detection, and then we use 2D bounding box to get the prior information about the location of the RoI (region of interest).
Finally, we extract the points in each RoI as our input data for subsequent steps.
In 3D box estimation phase, in order to improve the final task, we design two modules for background points segmentation and RGB information aggregation, respectively.
After that, we use PointNet as our backbone net to predict the 3D location, dimension and orientation for each RoI.
Note that the confidence scores of 2D boxes are assigned to their corresponding 3D boxes.



 §.§ 3D Data Generation

Intermediate tasks.
As we all know that 3D detection using only monocular images is a very challenging task because image appearance can not determine the 3D coordinates of the object.
Therefore, we train two deep CNN to generate depth map and 2D bounding box to provide spatial information and position prior.
We adopt some existing algorithms to do these intermediate tasks, and give a detailed analysis of the impact of these algorithms on overall performance in experiment part.


Input representation.
This work focuses more on how to use depth information than on how to get them.
We believe that one of the main reasons why previous images-based 3D detectors fails to get better results is they  don't make good use of depth maps.
Simply using depth map as an additional channel of RGB image such as <cit.>, and then expecting neural network to extract effective features automatically is not the best solution.
In contrast, we transform the estimated depth into point cloud with the help of camera calibration file provided by KITTI (see Fig. <ref> for different input representations) and then use it as our data input form.
Specifically, given a pixel coordinate (u, v) with depth d in the 2D image space, the 3D coordinates (x, y, z) in camera coordinate system can be computed as:

    {[                z = d ,; x = (u-C_x) * z / f  ,; y = (v-C_y) * z / f  ,;                        ].

where f is the focal length of the camera, (C_x, C_y) is the principal point.
The input point cloud S can be generated using depth map and 2D bounding box B as follow:

    S = { p   |  p ←  F(v),  v∈ B} ,

where v is the pixel in depth map and F is the transforming function introduced by Eq. <ref>.
It should be noted that, like most of monocular-based methods, we use camera calibration file in our approach.
Actually, we can also use a point cloud encoder-decoder net to learn a mapping from (u, v, d) to (x, y, z), thus we don't need camera during the testing phase any more.
In our measurements, we observe that there is no visible performance difference between these two methods.
This is because the error introduced in the point cloud generation phase is much less than the noise contained in the depth map itself.




 §.§ 3D Box Estimation


Point segmentation.
After the 3D data generation phase, the input data is encoded as points cloud. 
However, there are many background points in these data and these background points should be discarded in order to estimate the position of target accurately.
Qi  <cit.> propose a 3D instance segmentation PointNet to solve this problem in LiDAR data.
But that strategy requires additional pre-processing to generate segmentation labels from 3D object ground truth.
More importantly, there will be severe noise even if we use the same labelling method because the points we reconstruct are relatively unstable.
For these reasons, we propose a simple but effective segmentation method based on depth prior to segment the points.
Specifically, we first compute the depth mean in each 2D bounding box in order to get the approximate position of RoI, and use it as the threshold.
All points with Z-channel value greater than this threshold are considered as background points.
The processed point set S' can be expressed as:


    S' = { p   |  p_v≤∑_p∈ Sp_v/|S| + r,  p∈ S } ,

where p_v denotes the Z-channel value (which is equal to depth) of the point and r is a bias used to correct the threshold.
Finally, we randomly select a fixed number of points in point set S' as the output of this module in order to ensuring consistency of number of subsequent network's input points.


3D box estimation.
Before we estimate final 3D results, we follow <cit.> to predict the center δ of RoI using a lightweight network and use it to update the point cloud as follow:

    S” = { p   |  p - δ ,  p∈ S' } ,

where S” is the set of points we used to do final task.

Then, we choose PointNet <cit.> as our 3D detection backbone network to estimate the 3D object which is encoded by its center (x, y, z), size (h, w, l) and heading angle θ.
Same as other works, we only consider one orientation because of the assumption that the road surface is flat and the other two angles do not have possible variation.
One other thing to note is that the center C we estimate here is a 'residual' center, which means the real center is C+δ.
Finally, we assign the confidence scores of the 2D bounding boxes to their corresponding 3D detection results.









 §.§ RGB Information Aggregation


In order to further improve the performance and robustness of our method, we propose to aggregate complementary RGB information to point cloud. 
Specifically, we add RGB information to the generated point cloud by replacing Eq. <ref> with:

    S = { p   |  p ← [ F(v),  D(v)],  v∈ B} ,

where D is a function which output the corresponding RGB values of input point.
In this way, the points are encoded as 6D vectors: [x, y, z, r, g, b].
However, simply relying on this simple method (we call it 'plain concat' in experiment part) to add RGB information is not feasible.
So, as shown in Fig. <ref>, we introduce an attention mechanism for the fusion task.
The attention mechanism has been successfully applied in various tasks such as image caption generation and machine translation for selecting useful information.
Specifically, we utilize the attention mechanism for guiding
the message passing between the spatial features and RGB features. 
Since the passed information flow is not always useful, the attention can act as a gate function to control the flow, in other words to make the network automatically learn to focus or to ignore information from other features.
When we pass RGB message to its corresponding point, an attention map G is first produced from the feature maps F generated from XYZ branch as follow:

    G←σ(f([ F_max^xyz,  F_avg^xyz])) ,

where f is the nonlinear function learned from a convolution layer and σ is a sigmoid function for normalizing the attention map.
Then the message is passed with the attention map controlled as follow:

    F^xyz← F^xyz +  G⊙ F^rgb ,

where ⊙ denotes element-wise multiplication.
In addition to point-level features fusion, we also introduce another branch to provide object-level RGB information.
In particular, we first crop the RoI from RGB image and resize it to 128×128. 
Then we use a CNN to extract the object-level feature maps F^obj and the final feature maps set F obtained from the fusion module is:
F← CONCAT( F^xyz,  F^obj), where CONCAT denotes the concatenation operation.



 §.§ Implementation Details.

Optimization.
The whole training process is performed with two phases.
In the first phase, we only optimize the intermediate nets according to the training strategies of original papers.
After that, we simultaneously optimize the two networks for 3D detection jointly with a multi-task loss function:

    L = L_loc + L_det + λ L_corner ,

where L_loc is the loss function for the lightweight location net (center only) and L_loc is for 3D detection net (center, size and heading angle).
We also use the corner loss <cit.> where the output targets are first decoded into oriented 3D boxes and then smooth L1 loss is computed on the (x, y, z) coordinates of eight box corners directly with regard to ground truth.
We train the nets for 200 epochs using Adam optimizer with batch size of 32.
The learning rate is initially set to 0.001 and reduced by half for every 20 epochs.
The whole training process can be completed in one day.

Implementation details.
The proposed method is implemented base on PyTorch and on Nvidia 1080Ti GPUs.
The two intermediate networks of proposed method naturally supports any network structure. 
We implement some different methods as described in their papers exactly, and the relevant analysis can be found in experimental part.
For the 3D detection nets, we use PointNet as our backbone nets and train them from scratch with random initialization.
Moreover, the dropout strategy with keep rate 0.7 is applied into every fully connected layers except the last one.
For the RGB values, we first normalize the range of them to (0, 1) by dividing 255, and then the data distribution
of each color channel is regularized into standard normal
distribution.
For the region branch in RGB features fusion module, we use ResNet-34 with half channels and global pooling to get the 1×1×256 features.






§ EXPERIMENTAL RESULTS



We evaluate our approach on the challenging KITTI dataset <cit.> which provides 7,481 images for training and 7,518 images for testing.
Detection and localization tasks are evaluated in three regimes: easy, moderate and hard, according to the occlusion and truncation levels of objects. 
Since the ground truth for the test set is not available and the access to the test server is limited, we conduct comprehensive evaluation using the protocol described in  <cit.>, and subdivide the training data into a training set and a validation set, which results in 3,712 data samples for training and 3,769 data samples for validation. 
The split avoids samples from the same sequence being included in
both training and validation set<cit.>. 





 §.§ Comparing with other methods


Baselines.
As this work aims at monocular 3D object detection, our approach is mainly compared to other methods with only monocular images as input.
Here five methods are chosen for comparisons: Mono3D <cit.>, Deep3DBox <cit.> and Multi-Fusion <cit.>, ROI-10D <cit.>, MonoGRNet <cit.> and Pseudo-LiDAR <cit.>.

Car.
The evaluation results of 3D localization and detection tasks on KITTI validation set are presented in Table <ref> and <ref>, respectively.
The proposed method consistently outperforms all the competing approaches across all three difficulty levels.
For localization task, the proposed method outperforms Multi-Fusion <cit.> by ∼15 AP_loc in moderate setting.
For 3D detection task, our method achieves ∼12.2 and ∼10.9 AP_3D improvement (moderate) over the recently proposed MonoGRNet <cit.> under IoU thresholds of 0.5 and 0.7.
In the easy setting, our improvement is more prominent.
Specifically, our method achieves ∼21.7 and ∼18.4 improvement over previous state-of-the-art on localization and detection tasks (IoU=0.7).
Note that there is no complicated prior knowledge or constraints such as <cit.>, which strongly confirms the importance of data representation.

Compared with Pseudo-LiDAR <cit.>, which is concurrent to this work, the proposed method has about ∼1.5 AP improvement on each metric. This is because of the modification of the background points segmentation algorithm and the introduction of RGB information. We will discuss this in detail in Sec. <ref>.

Table <ref> shows the results on testing set, and more details, such as Precision-Recall curve, can be found on http://www.cvlibs.net/datasets/kitti/eval_object_detail.php?   result=4de1926d9fa1a857e30cea1c27e6573dc577fc38KITTI official server.
The testing set results also show the superiority of our method in performance compared with others.

 

 
 



 §.§ Detailed analysis of proposed method


In this section we provide analysis and ablation experiments to validate our design choices.


RGB information.
We further evaluate the effect of the proposed RGB fusion module, and the baselines are the proposed method without RGB values and using them as additional channels of generated points.
Table <ref> shows the relevant results for Car category on KITTI.
It can be seen that the proposed module obtains around 2.1 and 1.6 mAP improvement (moderate) on localization and detection task, respectively. The qualitative comparisons can be found in Fig <ref>.
Quantitative and qualitative results both show the effectiveness of proposed RGB fusion module.
Besides, one thing to note is that incorrect use of RGB information such as plain concat will lead to performance degradation.




Points segmentation.
We compare the proposed points segmentation method and the 3D segmentation PointNet which is used in <cit.>. 
The baseline is to estimate 3D boxes directly using point clouds with noise which can be regarded as all points are classified into positive samples.
As shown in Table <ref>, our prior-based method outperforms baseline and segmentation PointNet obviously which proves the effectiveness of the proposed method and 
Table <ref> shows that the proposed method is robust for varying thresholds.
Meanwhile, the experimental results also show that the learning-based method is not applicable to approximate point clouds segmentation task because it's difficult to obtain reliable labels.
Besides, the proposed method is also much faster than segmentation PointNet (about 5ms on CPU v.s. 20ms on GPU for each proposal).








Depth maps.
As described in Sec. <ref>, our approach depends on the point clouds generated from the output of depth generator.
In order to study the impact of quality of depth maps on the overall performance of proposed method, we implemented four different depth generators <cit.>.  
From the results shown in Table <ref>, we find that 3D detection accuracy increases significantly when using more accurate depth (more details about the accuracy of depth maps can be found in the supplement material).
It's worth noting that even if we use the unsupervised monocular depth generator <cit.>, the proposed method still outperforms  <cit.> by a large margin.






Sampling quantity.
Some studies such as <cit.> observe that classification/segmentation accuracy will decrease dramatically as the number of points decreases, and we will show that our approach is not so sensitive to the number of points.
In our approach, we randomly select a fixed number (512 points for default configuration) of point clouds to do 3D detection task.
Table. <ref> shows the performance of proposed method under different sampling quantity.
According to the results, AP_3D will increase as the number of points increases at the beginning.
Then, after reaching a certain level (∼512 points), the performance tends to be stable.
It is worth noting that we still get a relatively good detection performance even if there are few sampling points.















Robustness.
We show that the proposed method is robust to various kinds of input corruptions.
We first set the sampling quantity to 512 in training phase, but use different values in the testing phase.
Fig. <ref> shows that the proposed method has more than 70% AP_3D even when 80% of the points are missed.
Then, we test the robustness of model to point perturbations, and the results are shown in Fig <ref>. 


Network architecture.
We also investigate the impact of different 3D detection network architectures on overall performance (the previously reported results are all based on PointNet), and the experimental result are shown in Table. <ref>.








 §.§ Qualitative Results and Failure Mode


We visualize some detection results of our approach in Fig. <ref> and a typical localization result in Fig. <ref>.
In general, our algorithm can get a good detection result. However, because it's a 2D-driven framework, the proposed method will fail if the 2D box is a false positive sample or missing. Besides, for distant objects, our algorithm is difficult to give accurate results because the depth is not reliable (the leftmost car in Fig. <ref> is 70.35 meters away from the camera).






§ CONCLUSIONS



We proposed a framework for accurate 3D object detection with monocular images in this paper.
Unlike other image-based methods, our method solves this problem in the reconstructed 3D space in order to exploit 3D contexts explicitly.
We argue that the point cloud representation is more suitable for 3D related tasks than depth maps.
Besides, we propose a multi-modal feature fusion module to embed the complementary RGB cue into the generated point clouds representation to enhance the discriminative capability of generated point clouds.
Our approach significantly outperforms existing monocular-based method for 3D localization and detection tasks on KITTI benchmark.
In addition, the extended versions verifies the design strategy can also be applied to stereo-based and LiDAR-based methods.



§ ACKNOWLEDGMENTS

This work was supported in part by the National Natural Science Foundation of China (NSFC) under Grants No. 61772108, 61572096 and No. 61733002.


ieee_fullname






 


§ OVERVIEW

This document provides additional technical details and extra analysis experiments to the main paper.

In Sec. <ref>, we provide the information about the accuracy of mentioned depth maps while Sec. <ref> shows the detection performance using stereo images and LiDAR point clouds. 
Then, Sec. <ref> explains the correlation between 2D detector and resulting 3D detection performance.
Finally, Sec. <ref> presents detection results of pedestrian and cyclist.







§ ACCURACY OF DEPTH MAPS


Tab. <ref> and Tab. <ref> show the accuracy of the monocular and stereo depth prediction methods listed in Tab. <ref>, respectively.
Combined with Tab. <ref>, it is evident that 3D detection accuracy increases significantly when using much more accurate depth (or disparity).
Note that the metrics for these two kinds of methods are different.








§ EXTENSIONS OF STEREO AND LIDAR


To further evaluate the proposed method, we extend it to stereo-based and LiDAR-based versions.
We select some representational methods based on stereo images  (or LiDAR point clouds) and report the comparative results in Table <ref>.
The experimental results show that our method is able to give a competitive performance when using LiDAR point clouds or stereo images as input.

Note that the proposed method with LiDAR point cloud input outperforms F-PointNet <cit.> by 1.8 AP_3D, which proves that our RGB fusion module is equally effective for LiDAR-based methods.





§ 2D DETECTORS


Tab. <ref> shows the correlation between the performance of 2D detectors and resulting 3D detection performance.
We can see that improving the performance of 2D detector is  an effective method to improve the overall detection accuracy.
However, the huge gap between the performance of 2D detector and final 3D estimator reveals there is still a lot of room for improvement without modifying the 2D detector.
The implementation details of the 2D detectors we used can be found in RRC <cit.> and F-PointNet <cit.>.







§ PEDESTRIAN AND CYCLIST


Most of previous image-based 3D detection methods only focus on Car category as KITTI provides enough instances to train their models.
Our model can also get a promising detection performance on Pedestrian and Cyclist categories because it is much easier and effective to do data augmentation for point clouds than depth maps used in previous methods. 
Table <ref> shows their AP_loc and AP_3D on KITTI validation set.






