Complex-YOLO: Real-time 3D Object Detection on Point Clouds

Martin Simon, Stefan Milz, Karl Amende, Horst-Michael Gross

Introduction

Point cloud processing is becoming more and more important for autonomous driving due to the strong improvement of automotive Lidar sensors in the recent years. The sensors of suppliers are capable to deliver 3D points of the surrounding environment in real-time. The advantage is a direct measurement of the distance of encompassing objects . This allows us to develop object detection algorithms for autonomous driving that estimate the position and the heading of different objects accurately in 3D . Compared to images, Lidar point clouds are sparse with a varying density distributed all over the measurement area. Those points are unordered, they interact locally and could mainly be not analyzed isolated. Point cloud processing should always be invariant to basic transformations .

In general, object detection and classification based on deep learning is a well known task and widely established for 2D bounding box regression on images . Research focus was mainly a trade-off between accuracy and efficiency. In regard to automated driving, efficiency is much more important. Therefore, the best object detectors are using region proposal networks (RPN) or a similar grid based RPN-approach . Those networks are extremely efficient, accurate and even capable of running on a dedicated hardware or embedded devices. Object detections on point clouds are still rarely, but more and more important. Those applications need to be capable of predicting 3D bounding boxes. Currently, there exist mainly three different approaches using deep learning :

Direct point cloud processing using Multi-Layer-Perceptrons

Translation of Point-Clouds into voxels or image stacks by using Convolutional Neural Networks (CNN)

Recently, Frustum-based Networks have shown high performance on the KITTI Benchmark suite. The model is rankedThe ranking refers to the time of submission: 14th of march in 2018 on the second place either for 3D object detections, as for birds-eye-view detection based on cars, pedestrians and cyclists. This is the only approach, which directly deals with the point cloud using Point-Net without using CNNs on Lidar data and voxel creation. However, it needs a pre-processing and therefore it has to use the camera sensor as well. Based on another CNN dealing with the calibrated camera image, it uses those detections to minimize the global point cloud to frustum-based reduced point cloud. This approach has two drawbacks: i). The models accuracy strongly depends on the camera image and its associated CNN. Hence, it is not possible to apply the approach to Lidar data only; ii). The overall pipeline has to run two deep learning approaches consecutive, which ends up in higher inference time with lower efficiency. The referenced model runs with a too low frame-rate at approximately 7fps on a NVIDIA GTX 1080i GPU .

In contrast, Zhou et al. proposed a model that operates only on Lidar data. In regard to that, it is the best ranked model on KITTI for 3D and birds-eye-view detections using Lidar data only. The basic idea is an end-to-end learning that operates on grid cells without using hand crafted features. Grid cell inside features are learned during training using a Pointnet approach . On top builds up a CNN that predicts the 3D bounding boxes. Despite the high accuracy, the model ends up in a low inference time of 4fps on a TitanX GPU .

Another highly ranked approach is reported by Chen et al. . The basic idea is the projection of Lidar point clouds into voxel based RGB-maps using handcrafted features, like points density, maximum height and a representative point intensity . To achieve highly accurate results, they use a multi-view approach based on a Lidar birds-eye-view map, a Lidar based front-view map and a camera based front-view image. This fusion ends up in a high processing time resulting in only 4fps on a NVIDIA GTX 1080i GPU. Another drawback is the need of the secondary sensor input (camera).

2 Contribution

To our surprise, no one is achieving real-time efficiency in terms of autonomous driving so far. Hence, we introduce the first slim and accurate model that is capable of running faster than 50fps on a NVIDIA TitanX GPU. We use the multi-view idea (MV3D) for point cloud pre-processing and feature extraction. However, we neglect the multi-view fusion and generate one single birds-eye-view RGB-map (see Fig. 1) that is based on Lidar only, to ensure efficiency. On top, we present Complex-YOLO, a 3D version of YOLOv2, which is one of the fastest state-of-the-art image object detectors . Complex-YOLO is supported by our specific E-RPN that estimates the orientation of objects coded by an imaginary and real part for each box. The idea is to have a closed mathematical space without singularities for accurate angle generalization. Our model is capable to predict exact 3D boxes with localization and an exact heading of the objects in real-time, even if the object is based on a few points (e.g. pedestrians). Therefore, we designed special anchor-boxes. Further, it is capable to predict all eight KITTI classes by using only Lidar input data. We evaluated our model on the KITTI benchmark suite. In terms of accuracy, we achieved on par results for cars, pedestrians and cyclists, in terms of efficiency we outperform current leaders by minimum factor of 5. The main contributions of this paper are:

This work introduces Complex-YOLO by using a new E-RPN for reliable angle regression for 3D box estimation.

We present real-time performance with high accuracy evaluated on the KITTI benchmark suite by being more than five times faster than the current leading models.

We estimate an exact heading of each 3D box supported by the E-RPN that enables the prediction of the trajectory of surrounding objects.

Compared to other Lidar based methods (e.g. ) our model efficiently estimates all classes simultaneously in one forward path.

Complex-YOLO

This section describes the grid based pre-processing of the point clouds, the specific network architecture, the derived loss function for training and our efficiency design to ensure real-time performance.

Hence, we can calculate the channel of each pixel, considering the Velodyne intensity as I(PΩ)I(\mathcal{P}_{\Omega}):

Here, NN describes the number of points mapped from PΩi\mathcal{P}_{\Omega i} to Sj\mathcal{S}_{j}, and gg is the parameter for the grid cell size. Hence, zgz_{g} encodes the maximum height, zbz_{b} the maximum intensity and zrz_{r} the normalized density of all points mapped into Sj\mathcal{S}_{j} (see Fig. 2).

2 Architecture

The Complex-YOLO network takes a birds-eye-view RGB-map (see section 2.1) as input. It uses a simplified YOLOv2 CNN architecture (see Tab. 1), extended by a complex angle regression and E-RPN, to detect accurate multi-class oriented 3D objects while still operating in real-time.

Our E-RPN parses the 3D position bx,yb_{x,y}, object dimensions (width bwb_{w} and length blb_{l}) as well as a probability p0p_{0}, class scores p1...pnp_{1}...p_{n} and finally its orientation bϕb_{\phi} from the incoming feature map. In order to get proper orientation, we have modified the commonly used Grid-RPN approach, by adding a complex angle arg(∣z∣eibϕ)arg(|z|e^{ib_{\phi}}) to it:

With the help of this extension the E-RPN estimates accurate object orientations based on an imaginary and real fraction directly embedded into the network. For each grid cell (32x16 see Tab. 1) we predict five objects including a probability score and class scores resulting in 75 features each, visualized in Fig. 2.

2.2 Anchor Box Design.

The YOLOv2 object detector predicts five boxes per grid cell. All were initialized with beneficial priors, i.e. anchor boxes, for better convergence during training. Due to the angle regression, the degrees of freedom, i.e. the number of possible priors increased, but we did not enlarge the number of predictions for efficiency reasons. Hence, we defined only three different sizes and two angle directions as priors, based on the distribution of boxes within the KITTI dataset: i) vehicle size (heading up); ii) vehicle size (heading down); iii) cyclist size (heading up); iv) cyclist size (heading down); v) pedestrian size (heading left).

2.3 Complex Angle Regression.

The orientation angle for each object bϕb_{\phi} can be computed from the responsible regression parameters timt_{im} and tret_{re}, which correspond to the phase of a complex number, similar to . The angle is given simply by using arctan⁡2(tim,tre)\arctan_{2}(t_{im},t_{re}). On one hand, this avoids singularities, on the other hand this results in a closed mathematical space, which consequently has an advantageous impact on generalization of the model. We can link our regression parameters directly into the loss function (7).

3 Loss Function

Our network optimization loss function L\mathcal{L} is based on the the concepts from YOLO and YOLOv2 , who defined LYolo\mathcal{L}_{\text{Yolo}} as the sum of squared errors using the introduced multi-part loss. We extend this approach by an Euler regression part LEuler\mathcal{L}_{\text{Euler}} to get use of the complex numbers, which have a closed mathematical space for angle comparisons. This neglect singularities, which are common for single angle estimations:

Where λcoord\lambda_{coord} is a scaling factor to ensure stable convergence in early phases and \mathds1ijobj\mathds{1}_{ij}^{obj} denotes that the jjth bounding box predictor in cell ii has highest intersection over union (IoU) compared to ground truth for that prediction. Furthermore the comparison between the predicted box PjP_{j} and ground truth GG with IoU Pj∩GPj∪G\frac{P_{j}\cap G}{P_{j}\cup G}, where Pj∩G={x:x∈Pj∧x∈G}{P_{j}\cap G=\{x:x\in P_{j}\land x\in G\}}, Pj∪G{x:x∈Pj∨x∈G}{P_{j}\cup G\{x:x\in P_{j}\lor x\in G\}} is adjusted to handle rotated boxes as well. This is realized by the theory of intersection of two 2D polygon geometries and union respectively, generated from the corresponding box parameters bxb_{x}, byb_{y}, bwb_{w}, blb_{l} and bϕb_{\phi}.

4 Efficiency Design

The main advantage of the used network design is the prediction of all bounding boxes in one inference pass. The E-RPN is part of the network and uses the output of the last convolutional layer to predict all bounding boxes. Hence, we only have one network, which can be trained in an end-to-end manner without specific training approaches. Due to this, our model has a lower runtime than other models that generate region proposals in a sliding window manner with prediction of offsets and the class for every proposal (e.g. Faster R-CNN ). In Fig. 5 we compare our architecture with some of the leading models on the KITTI benchmark. Our approach achieves a way higher frame rate while still keeping a comparable mAP (mean Average Precision). The frame rates were directly taken from the respective papers and all were tested on a Titan X or Titan Xp. We tested our model on a Titan X and an NVIDIA TX2 board to emphasize the real-time capability (see Fig. 5).

Training & Experiments

We evaluated Complex-YOLO on the challenging KITTI object detection benchmark , which is divided into three subcategories 2D, 3D and birds-eye-view object detection for Cars, Pedestrians and Cyclists. Each class is evaluated based on three difficulty levels easy, moderate and hard considering the object size, distance, occlusion and truncation. This public dataset provides 7,481 samples for training including annotated ground truth and 7,518 test samples with point clouds taken from a Velodyne laser scanner, where annotation data is private. Note that we focused on birds-eye-view and do not ran the 2D object detection benchmark, since our input is Lidar based only.

We trained our model from scratch via stochastic gradient descent with a weight decay of 0.0005 and momentum 0.9. Our implementation is based on modified version of the Darknet neural network framework . First, we applied our pre-processing (see Section 2.1) to generate the birds-eye-view RGB-maps from Velodyne samples. Following the principles from , we subdivided the training set with public available ground truth, but used ratios of 85% for training and 15% for validation, because we trained from scratch and aimed for a model that is capable of multi-class predictions. In contrast, e.g. VoxelNet modified and optimized the model for different classes. We suffered from the available ground truth data, because it was intended for camera detections first. The class distribution with more than 75% Car, less than 4% Cyclist and less than 15% Pedestrian is disadvantageous. Also, more than 90% of all the annotated objects are facing the car direction, facing towards the recording car or having similar orientations. On top, Fig. 4 shows a 2D histogram for spatial object locations from birds-eye-view perspective, where dense points indicate more objects at exactly this position. This inherits two blind spot for birds-eye-view map. Nevertheless we saw surprising good results for the validation set and other recorded unlabeled KITTI sequences covering several use case scenarios, like urban, highway or inner city.

For the first epochs, we started with a small learning rate to ensure convergence. After some epochs, we scaled the learning rate up and continued to gradually decrease it for up to 1,000 epochs. Due to the fine grained requirements, when using a birds-eye-view approach, slight changes in predicted features will have a strong impact on resulting box predictions. We used batch normalization for regularization and a linear activation f(x)=xf(x)=x for the last layer of our CNN, apart from that the leaky rectified linear activation:

2 Evaluation on KITTI

We have adapted our experimental setup and follow the official KITTI evaluation protocol, where the IoU thresholds are 0.7 for class Car and 0.5 for class Pedestrian and Cyclist. Detections that are not visible on the image plane are filtered, because the ground truth is only available for objects that also appear on the image plane of the camera recording (see Fig. 4. We used the average precision (AP) metric to compare the results. Note, that we ignore a small number of objects that are outside our birds-eye-view map boundaries with more than 40m to the front, to keep the input dimensions as small as possible for efficiency reasons.

Our evaluation results for the birds-eye-view detection are presented in Tab. 2. This benchmark uses bounding box overlap for comparison. For a better overview and to rank the results, similar current leading methods are listed as well, but performing on the official KITTI test set. Complex-YOLO consistently outperforms all competitors in terms of runtime and efficiency, while still manages to achieve comparable accuracy. With about 0.02s runtime on a Titan X GPU, we are 5 times faster than AVOD , considering their usage of a more powerful GPU (Titan Xp). Compared to VoxelNet , which is also Lidar based only, we are more than 10 times faster and MV3D , the slowest competitor, takes 18 times as long.

2.2 3D Object Detection.

Tab. 3 shows our achieved results for the 3D bounding box overlap. Since we do not estimate the height information directly with regression, we ran this benchmark with a fixed spatial height location extracted from ground truth similar to MV3D . Additionally as mentioned, we simply injected a predefined height for every object based on its class, calculated from the mean over all ground truth objects per class. This reduces the precision for all classes, but it confirms the good results measured on the birds-eye-view benchmark.

Conclusion

In this paper we present the first real-time efficient deep learning model for 3D object detection on Lidar based point clouds. We highlight our state of the art results in terms of accuracy (see Fig. 5) on the KITTI benchmark suite with an outstanding efficiency of more than 50 fps (NVIDIA Titan X). We do not need additional sensors, e.g. camera, like most of the leading approaches. This breakthrough is achieved by the introduction of the new E-RPN, an Euler regression approach for estimating orientations with the aid of the complex numbers. The closed mathematical space without singularities allows robust angle prediction.

Our approach is able to detect objects of multiple classes (e.g. cars, vans, pedestrians, cyclists, trucks, tram, sitting pedestrians, misc) simultaneously in one forward path. This novelty enables deployment for real usage in self driving cars and clearly differentiates to other models. We show the real-time capability even on dedicated embedded platform NVIDIA TX2 (4 fps). In future work, it is planned to add height information to the regression, enabling a real independent 3D object detection in space, and to use tempo-spatial dependencies within point cloud pre-processing for a better class distinction and improved accuracy.

Acknowledgement

First, we would like to thank our main employer Valeo, especially Jörg Schrepfer and Johannes Petzold, for giving us the possibility to do fundamental research. Additionally, we would like to thank our colleague Maximillian Jaritz for his important contribution on voxel generation. Last but not least, we would like to thank our academic partner the TU-Ilmenau for having a fruitful partnership.

References