  Two-stage detectors have gained much popularity in 3D object detection. Most
two-stage 3D detectors utilize grid points, voxel grids, or sampled keypoints
for RoI feature extraction in the second stage. Such methods, however, are
inefficient in handling unevenly distributed and sparse outdoor points. This
paper solves this problem in three aspects. 1) Dynamic Point Aggregation. We
propose the patch search to quickly search points in a local region for each 3D
proposal. The dynamic farthest voxel sampling is then applied to evenly sample
the points. Especially, the voxel size varies along the distance to accommodate
the uneven distribution of points. 2) RoI-graph Pooling. We build local graphs
on the sampled points to better model contextual information and mine point
relations through iterative message passing. 3) Visual Features Augmentation.
We introduce a simple yet effective fusion strategy to compensate for sparse
LiDAR points with limited semantic cues. Based on these modules, we construct
our Graph R-CNN as the second stage, which can be applied to existing one-stage
detectors to consistently improve the detection performance. Extensive
experiments show that Graph R-CNN outperforms the state-of-the-art 3D detection
models by a large margin on both the KITTI and Waymo Open Dataset. And we rank
first place on the KITTI BEV car detection leaderboard. Code will be available
at \url{https://github.com/Nightmare-n/GraphRCNN}.
