Modern approaches to self-driving divide the problem into four steps: detection, object tracking, motion forecasting and motion planning. A cascade approach is typically used where the output of the detector is used as input to the tracker, and its output is fed to a motion forecasting algorithm that estimates where traffic participants are going to move in the next few seconds. This is in turn fed to the motion planner that estimates the final trajectory of the ego-car. These modules are usually learned independently, and uncertainty is usually rarely propagated. This can result in catastrophic failures as downstream processes cannot recover from errors that appear at the beginning of the pipeline.
In contrast, in this paper we propose an end-to-end fully convolutional approach that performs simultaneous 3D detection, tracking and motion forecasting by exploiting spatio-temporal information captured by a 3D sensor. We argue that this is important as tracking and prediction can help object detection. For example, leveraging tracking and prediction information can reduce detection false negatives when dealing with occluded or far away objects. False positives can also be reduced by accumulating evidence over time. Furthermore, our approach is very efficient as it shares computations between all these tasks. This is extremely important for autonomous driving where latency can be fatal.
We take advantage of 3D sensors and design a network that operates on a bird-eye-view (BEV) of the 3D world. This representation respects the 3D nature of the sensor data, making the learning process easier as the network can exploit priors about the typical sizes of objects.
Our approach is a one-stage detector that takes a 4D tensor created from multiple consecutive temporal frames as input and performs 3D convolutions over space and time to extract accurate 3D bounding boxes. Our model produces bounding boxes not only at the current frame but also multiple timestamps into the future. We decode the tracklets from these predictions by a simple pooling operation that combine the evidence from past and current predictions.
We demonstrate the effectiveness of our model on a very large scale dataset captured from multiple vehicles driving in North-america and show that our approach significantly outperforms the state-of-the-art. Furthermore, all tasks take as little as 30ms.
2 Related Work
2D Object Detection:
Over the last few years many methods that exploit convolutional neural networks to produce accurate 2D object detections, typically from a single image, have been developed. These approaches typically fell into two categories depending on whether they exploit a first step dedicated to create object proposals. Moderntwo-stage detectors [24, 8, 4, 11], utilize region proposal networks (RPN) to learn the region of interest (RoI) where potential objects are located. In a second stage the final bounding box locations are predicted from features that are average-pooled over the proposal RoI. Mask-RCNN  also took this approach, but used RoI aligned features addressing theboundary and quantization effect of RoI pooling. Furthermore, they added an additional segmentation branch to take advantage of dense pixel-wise supervision, achieving state-of-the-art results on both 2D image detection and instance segmentation. On the other hand one-stage detectors skip the proposal generation step, and instead learn a network that directly produces object bounding boxes. Notable examples are YOLO , SSD  and RetinaNet . One-stage detectors are computationally very appealing and are typically real-time, especially with the help of recently proposed architectures, e.g. MobineNet , SqueezeNet . One-stage detectors were outperformed significantly by two stage-approaches until Lin et al.  shown state-of-the-art results by exploiting a focal loss and dense predictions.
3D Object Detection:
In robotics applications such as autonomous driving we are interested in detecting objects in 3D space. The ideas behind modern 2D image detectors can be transferred to 3D object detection. Chen et al.  used stereo images to perform 3D detection. Li  used 3D point cloud data and proposed to use 3D convolutions on a voxelized representation of point clouds. Chen et al.  combined image and 3D point clouds with a fusion network. They exploited 2D convolutions in BEV, however, they used hand-crafted height features as input. They achieved promising results on KITTI  but only ran at 360ms per frame due to heavy feature computation on both 3D point clouds and images. This is very slow, particularly if we are interested in extending these techniques to handle temporal data.
Over the past few decades many approaches have been develop for object tracking. In this section we briefly review the use of deep learning in tracking. Pretrained CNNs were used to extract features and perform tracking with correlation or regression [29, 9]. Wang and Yeung 
used an autoencoder to learn a good feature representation that helps tracking. Taoet al.  used siamese matching networks to perform tracking. Nam and Han  finetuned a CNN at inference time to track object within the same video.
This is the problem of predicting where each object will be in the future given multiple past frames. Lee et al.  proposed to use recurrent networks for long term prediction. Alahi et al.  used LSTMs to model the interaction between pedestrian and perform prediction accordingly. Ma et al. 
proposed to utilize concepts from game theory to model the interaction between pedestrian while predicting future trajectories. Some work has also focussed on short term prediction of dynamic objects[7, 22].  performed prediction for dense pixel-wise short-term trajectories using variational autoencoders. [26, 20] focused on predicting the next future frames given a video, without explicitly reasoning about per pixel motion.
Feichtenhofer et al.  proposed to do detection and tracking jointly from video. They model the displacement of corresponding objects between two input images during training and decode them into object tubes during inference time.
Different from all the above work, in this paper we propose a single network that takes advantage of temporal information and tackles the problem of 3D detection, short term motion forecasting and tracking in the scenario of autonomous driving. While temporal information provides us with important cues for motion forecasting, holistic reasoning allows us to better propagate the uncertainty throughout the network, improving our estimates. Importantly, our model is super efficient and runs real-time at 33 FPS.
3 Joint 3D Detection, Tracking and Motion Forecasting
In this work, we focus on detecting objects by exploiting a sensor which produces 3D point clouds. Towards this goal, we develop a one-stage detector which takes as input multiple frames and produces detections, tracking and short term motion forecasting of the objects’ trajectories into the future. Our input representation is a 4D tensor encoding an occupancy grid of the 3D space over several time frames. We exploit 3D convolutions over space and time to produce fast and accurate predictions. As point cloud data is inherently sparse in 3D space, our approach saves lots of computation as compared to doing 4D convolutions over 3D space and time. We name our approach Fast and Furious (FaF), as it is able to create very accurate estimates in as little as 30 ms.
In the following, we first describe our data parameterization in Sec. 3.1 including voxelization and how we incorporate temporal information. In Sec. 3.2, we present our model’s architecture, follow by the objective we use for training the network (Sec. 3.3).
3.1 Data Parameterization
In this section, we first describe our single frame representation of the world. We then extend our representation to exploit multiple frames.
In contrast to image detection where the input is a dense RGB image, point cloud data is inherently sparse and provides geometric information about the 3D scene. In order to get a representation where convolutions can be easily applied, we quantize the 3D world to form a 3D voxel grid. We then assign a binary indicator for each voxel encoding whether the voxel is occupied. We say a voxel is occupied if there exists at least one point in the voxel’s 3D space. As the grid is a regular lattice, convolutions can be directly used. We do not utilize 3D convolutions on our single frame representation as this operation will waste most computation since the grid is very sparse, i.e., most of the voxels are not occupied. Instead, we performed 2D convolutions and treat the height dimension as the channel dimension. This allows the network to learn to extract information in the height dimension. This contrast approaches such as MV3D , which perform quantization on the x-y plane and generate a representation of the z-dimension by computing hand-crafted height statistics. Note that if our grid’s resolution is high, our approach is equivalent to applying convolution on every single point without loosing any information. We refer the reader to Fig. 2 for an illustration of how we construct the 3D tensor from 3D point cloud data.
Adding Temporal Information:
In order to perform motion forecasting, it is crucial to consider temporal information. Towards this goal, we take all the 3D points from the past frames and perform a change of coordinates to represent then in the current vehicle coordinate system. This is important in order to undo the ego-motion of the vehicle where the sensor is mounted.
After performing this transformation, we compute the voxel representation for each frame. Now that each frame is represented as a 3D tensor, we can append multiple frames’ along a new temporal dimension to create a 4D tensor. This not only provides more 3D points as a whole, but also gives cues about vehicle’s heading and velocity enabling us to do motion forecasting. As shown in Fig. 3, where for visualization purposes we overlay multiple frames, static objects are well aligned while dynamic objects have ‘shadows’ which represents their motion.
3.2 Model Formulation
Our single-stage detector takes a 4D input tensor and regresses directly to object bounding boxes at different timestamps without using region proposals. We investigate two different ways to exploit the temporal dimension on our 4D tensor: early fusion and late fusion. They represent a tradeoff between accuracy and efficiency, and they differ on at which level the temporal dimension is aggregated.
Our first approach aggregates temporal information at the very first layer. As a consequence it runs as fast as using the single frame detector. However, it might lack the ability to capture complex temporal features as this is equivalent to producing a single point cloud from all frames, but weighting the contribution of the different timestamps differently. In particular, as shown in Fig. 4, given a 4D input tensor, we first use a 1D convolution with kernel size on temporal dimension to reduce the temporal dimension from to 1. We share the weights among all feature maps, i.e
., also known as group convolution. We then perform convolution and max-pooling following VGG16 with each layer number of feature maps reduced by half. Note that we remove the last convolution group in VGG16, resulting in only 10 convolution layers.
In this case, we gradually merge the temporal information. This allows the model to capture high level motion features. We use the same number of convolution layers and feature maps as in the early fusion model, but instead perform 3D convolution with kernel size
for 2 layers without padding on temporal dimension, which reduces the temporal dimension fromto 1, and then perform 2D spatial convolution with kernel size for other layers. We refer the reader to Fig. 4 for an illustration of our architecture.
We then add two branches of convolution layers as shown in Fig. 5
. The first one performs binary classification to predict the probability of being a vehicle. The second one predicts the bounding box over the current frame as well asframes into the future. Motion forecasting is possible as our approach exploits multiple frames as input, and thus can learn to estimate useful features such as velocity and acceleration.
Following SSD , we use multiple predefined boxes for each feature map location. As we utilize a BEV representation which is metric, our network can exploit priors about physical sizes of objects. Here we use boxes corresponding to 5 meters in the real world with aspect ratio of and 8 meters with aspect ratio of . In total there are 6 predefined boxes per feature map location denoted as where is the location in the feature map and
ranges over the predefined boxes (i.e., size and aspect ratio). Using multiple predefined boxes allows us to reduce the variance of regression target, thus makes the network easy to train. Notice that we do not use predefined heading angles. Furthermore we use bothand values to avoid the degrees ambiguity.
In particular, for each predefined box , our network predicts the corresponding normalized location offset , log-normalized sizes and heading parameters .
At each timestamp, our model outputs the detection bounding boxes for timestamps. Reversely, each timestamp will have current detections as well as past predictions. Thus we can aggregate the information for the past to produce accurate tracklets without solving any trajectory based optimization problem. Note that if detection and motion forecasting are perfect, we can decode perfect tracklets. In practice, we use average as aggregation function. When there is overlap between detections from current and past’s future predictions, they are considered to be the same object and their bounding boxes will simply be averaged. Intuitively, the aggregation process helps particularly when we have strong past predictions but no current evidence, e.g., if the object is currently occluded or a false negative from detection. This allow us to track through occlusions over multiple frames. On the other hand, when we have strong current evidence but not prediction from the past, then there is evidence for a new object.
3.3 Loss Function and Training
We train the network to minimize a combination of classification and regression loss. In the case of regression we include both the current frame as well as our frames forecasting into the future. That is
where is the current frame and represents the model parameters.
We employ as classification loss binary cross-entropy computed over all locations and predefined boxes:
Here are the indices on feature map locations and predefined box identity, is the class label (i.e. =1 for vehicle and 0 for background) and is the predicted probability for vehicle.
In order to define the regression loss for our detections and future predictions, we first need to find their associated ground truth. We defined their correspondence by matching each predefined box against all ground truth boxes. In particular, for each predicted box, we first find the ground truth box with biggest overlap in terms of intersection over union (IoU). If the IoU is bigger than a fixed threshold ( in practice), we assign this ground truth box as and assign 1 to its corresponding label . Following SSD , if there exist a ground truth box not assigned to any predefined box, we will assign it to its highest overlapping predefined box ignoring the fixed threshold. Note that multiple predefined boxes can be associated to the same ground truth, and some predefined boxes might not have any correspondent ground truth box, meaning their .
Thus we define the regression targets as
We use a weighted smooth L1 loss over all regression targets where smooth L1 is defined as:
Hard Data Mining
Due to the imbalance of positive and negative samples, we use hard negative mining during training. We define positive samples as those predefined boxes having corresponding ground truth box, i.e., . For negative samples, we rank all candidates by their predicted score from the classification branch and take the top negative samples with a ration of 3 in practice.
4 Experimental Evaluation
Unfortunately there is no publicly available dataset which evaluates 3D detection, tracking and motion forecasting. We thus collected a very large scale dataset in order to benchmark our approach. It is 2 orders of magnitude bigger than datasets such as KITTI .
Our dataset is collected by a roof-mounted LiDAR on top of a vehicle driving around several North-American cities. It consists of 546,658 frames collected from 2762 different scenes. Each scene consists of a continuous sequence. Our validation set consists of 5,000 samples collected from 100 scenes, i.e., 50 continuous frames are taken from each sequence. There is no overlap between the geographic area where the training and validation are collected, in order to showcase strong generalization. Our labels might contain vehicles with no 3D point on them as the labelers have access to the full sequence in order to provide accurate annotations. Our labels contain 3D rotated bounding box as well as track id for each vehicle.
At training time, we use a spatial X-Y region of size meters, where each grid cell is meters. On the height dimension, we take the range from -2 to 3.5 meters with a 0.2 meter interval, leading to 29 bins. For temporal information, we take all the 3D points from the past 5 timestamps. Thus our input is a 4 dimensional tensor consisting of time, height, X and Y.
For both our early-fusion and late-fusion models, we train from scratch using Adam optimizer  with a learning rate of 1e-4. The model is trained on a 4 Titan XP GPU server with batch size of 12. We train the model for 100K iteration with learning rate halved at 60K and 80K iterations respectively.
We compare our model against state-of-the-art real-time detectors including SSD , MobileNet  and SqueezeNet . Note that these detectors are all developed to work on 2D detection from images. To make them competitive, we also build our predefined boxes into their system, which further easy the task for those detectors. The region of interest is centered at ego-car during inference time. We keeps the same voxelization for all models and evaluate detections against ground truth vehicle bounding boxes with at minimum of three 3D points. Vehicles with less than three points are considered don’t care regions. We consider a detection correct if it has an IoU against any ground truth vehicle booundign box larger than 0.7. Note that for a vehicle with typical size of meters, 0.7 IoU means we can at most miss 0.35 meters along width and 0.6 meters along length. Fig. 6 shows the precision recall curve for all approaches, where clearly our model is able to achieve higher recall, which is crucial for autonomous driving. Furthermore, Tab. 1 shows mAP using different IoU thresholds. We can see that our method is able to outperform all other methods. Particularly at IoU 0.7, we achieve 4.7% higher mAP than MobileNet  while being twice faster, and 5.2% better than SSD  with similar running time.
We also report performance as a function of the minimum number of 3D points, which is used to filter ground truth bounding boxes during test time. Note that high level of sparsity is due to occlusion or long distance vehicles. As shown in Fig. 7, our method is able to outperform other methods at all levels. We evaluate with a minimum of 0 point is, to show the importance of exploiting temporal information.
We are also interested in knowing how the model perform as a function of vehicle distance. Towards this goal, we extend the predictions to be as far as 100 meters away. Fig. 8 shows the mAP with IoU 0.7 on vehicles within different distance ranges. We can see that all methods are doing well on nearby vehicles, while our method is significantly better at long range. Note that all methods perform poorly at 100 meters due to lack of 3D points at that distance.
|Single||5 Frames||Early||Laster||w/ F||w/ T||IoU 0.5||IoU 0.6||IoU 0.7||IoU 0.8||IoU 0.9||Time [ms]|
We conducted ablation experiments within our framework to show how important each of the component is. We fixed the training setup for all experiments. As shown in Tab. 2, using temporal information with early fusion gives 3.7% improvement on mAP at IoU 0.7. While later fusion uses the same information as early fusion, it is able to get 1.4% extra improvement as it can model more complex temporal features. In addition, adding prediction loss gives similar detection results on current frame alone, however it enables us to decode tracklets and provides evidence to output smoother detections, thus giving the best performance, i.e. 6% points better on mAP at IoU 0.7 than single frame detector.
Our model is able to output detections with track ids directly. We evaluate the raw tracking output without adding any sophisticated tracking pipeline on top. Tab. 3 shows the comparison between our model’s output and a Hungarian method on top of our detection results. We follow the KITTI protocol  and compute MOTA, MOTP, Mostly-Tracked (MT) and Mostly-Lost (ML) across all 100 validation sequences. The evaluation script uses IoU 0.5 for association and 0.9 score for thresholding both methods. We can see that our final output achieves in MOTA, better than Hungarian, as well as better on MT, lower on ML, while still having similar MOTP.
We evaluate the forecasting ability of the model by computing the average L1 and L2 distances of the vehicles’ center location. As shown in Fig. 9, we are able to predict 10 frames into the future with L2 distance only less than 0.33 meter. Note that due to the nature of the problem, we can only evaluate on true positives, which in our case has a corresponding recall of .
Fig. 10 shows our results on a meters region. We provide 4 sequences, where the top 3 rows show that our model is able to perform well at complex scenes, giving accurate rotated bounding boxes on both small vehicles as well big trucks. Note that our model also gives accurate motion forecasting for both fast moving vehicles and static vehicles (where all future center locations overlay at the current location). The last row shows one failure case, where our detector fails on the center right blue vehicle. This is due to the sparsity of the 3D points.
We have proposed a holistic model that reasons jointly about detection, prediction and tracking in the scenario of autonomous driving. We show that it runs real-time and achieves very good accuracy on all tasks. In the future, we plan to incorporate RoI align in order to have better feature representations. We also plan to test other categories such as pedestrians and produce longer term predictions.
-  A. Alahi, K. Goel, V. Ramanathan, A. Robicquet, L. Fei-Fei, and S. Savarese. Social lstm: Human trajectory prediction in crowded spaces. In , pages 961–971, 2016.
-  X. Chen, K. Kundu, Y. Zhu, H. Ma, S. Fidler, and R. Urtasun. 3d object proposals using stereo imagery for accurate object class detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017.
-  X. Chen, H. Ma, J. Wan, B. Li, and T. Xia. Multi-view 3d object detection network for autonomous driving. arXiv preprint arXiv:1611.07759, 2016.
-  J. Dai, Y. Li, K. He, and J. Sun. R-fcn: Object detection via region-based fully convolutional networks. In Advances in neural information processing systems, pages 379–387, 2016.
-  C. Feichtenhofer, A. Pinz, and A. Zisserman. Detect to track and track to detect. arXiv preprint arXiv:1710.03958, 2017.
-  A. Geiger, P. Lenz, and R. Urtasun. Are we ready for autonomous driving? the kitti vision benchmark suite. In Conference on Computer Vision and Pattern Recognition (CVPR), 2012.
-  H. Gong, J. Sim, M. Likhachev, and J. Shi. Multi-hypothesis motion planning for visual object tracking. In Computer Vision (ICCV), 2011 IEEE International Conference on, pages 619–626. IEEE, 2011.
-  K. He, G. Gkioxari, P. Dollár, and R. Girshick. Mask R-CNN. arXiv preprint arXiv:1703.06870, 2017.
-  D. Held, S. Thrun, and S. Savarese. Learning to track at 100 fps with deep regression networks. In European Conference on Computer Vision, pages 749–765. Springer, 2016.
-  A. G. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, and H. Adam. Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861, 2017.
-  J. Huang, V. Rathod, C. Sun, M. Zhu, A. Korattikara, A. Fathi, I. Fischer, Z. Wojna, Y. Song, S. Guadarrama, et al. Speed/accuracy trade-offs for modern convolutional object detectors. arXiv preprint arXiv:1611.10012, 2016.
-  F. N. Iandola, S. Han, M. W. Moskewicz, K. Ashraf, W. J. Dally, and K. Keutzer. Squeezenet: Alexnet-level accuracy with 50x fewer parameters and¡ 0.5 mb model size. arXiv preprint arXiv:1602.07360, 2016.
-  D. Kingma and J. Ba. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014.
-  N. Lee, W. Choi, P. Vernaza, C. B. Choy, P. H. Torr, and M. Chandraker. Desire: Distant future prediction in dynamic scenes with interacting agents. arXiv preprint arXiv:1704.04394, 2017.
-  B. Li. 3d fully convolutional network for vehicle detection in point cloud. arXiv preprint arXiv:1611.08069, 2016.
-  T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollár. Focal loss for dense object detection. arXiv preprint arXiv:1708.02002, 2017.
-  W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu, and A. C. Berg. SSD: Single shot multibox detector. In ECCV, 2016.
-  C. Ma, J.-B. Huang, X. Yang, and M.-H. Yang. Hierarchical convolutional features for visual tracking. In Proceedings of the IEEE International Conference on Computer Vision, pages 3074–3082, 2015.
-  W.-C. Ma, D.-A. Huang, N. Lee, and K. M. Kitani. Forecasting interactive dynamics of pedestrians with fictitious play. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 774–782, 2017.
-  M. Mathieu, C. Couprie, and Y. LeCun. Deep multi-scale video prediction beyond mean square error. arXiv preprint arXiv:1511.05440, 2015.
-  H. Nam and B. Han. Learning multi-domain convolutional neural networks for visual tracking. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 4293–4302, 2016.
-  S. Pellegrini, A. Ess, K. Schindler, and L. Van Gool. You’ll never walk alone: Modeling social behavior for multi-target tracking. In Computer Vision, 2009 IEEE 12th International Conference on, pages 261–268. IEEE, 2009.
-  J. Redmon and A. Farhadi. Yolo9000: better, faster, stronger. arXiv preprint arXiv:1612.08242, 2016.
-  S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In Neural Information Processing Systems (NIPS), 2015.
-  K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.
N. Srivastava, E. Mansimov, and R. Salakhudinov.
Unsupervised learning of video representations using lstms.
International Conference on Machine Learning, pages 843–852, 2015.
-  R. Tao, E. Gavves, and A. W. Smeulders. Siamese instance search for tracking. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1420–1429, 2016.
-  J. Walker, C. Doersch, A. Gupta, and M. Hebert. An uncertain future: Forecasting from static images using variational autoencoders. In European Conference on Computer Vision, pages 835–851. Springer, 2016.
-  L. Wang, W. Ouyang, X. Wang, and H. Lu. Visual tracking with fully convolutional networks. In Proceedings of the IEEE International Conference on Computer Vision, pages 3119–3127, 2015.
-  N. Wang and D.-Y. Yeung. Learning a deep compact image representation for visual tracking. In Advances in neural information processing systems, pages 809–817, 2013.
-  B. Wu, F. Iandola, P. H. Jin, and K. Keutzer. Squeezedet: Unified, small, low power fully convolutional neural networks for real-time object detection for autonomous driving. arXiv preprint arXiv:1612.01051, 2016.