• Nikhila Ravi's avatar
    Ball Query · 103da633
    Nikhila Ravi authored
    Summary:
    Implementation of ball query from PointNet++.  This function is similar to KNN (find the neighbors in p2 for all points in p1). These are the key differences:
    -  It will return the **first** K neighbors within a specified radius as opposed to the **closest** K neighbors.
    - As all the points in p2 do not need to be considered to find the closest K, the algorithm is much faster than KNN when p2 has a large number of points.
    - The neighbors are not sorted
    - Due to the radius threshold it is not guaranteed that there will be K neighbors even if there are more than K points in p2.
    - The padding value for `idx` is -1 instead of 0.
    
    # Note:
    - Some of the code is very similar to KNN so it could be possible to modify the KNN forward kernels to support ball query.
    - Some users might want to use kNN with ball query - for this we could provide a wrapper function around the current `knn_points` which enables applying the radius threshold afterwards as an alternative. This could be called `ball_query_knn`.
    
    Reviewed By: jcjohnson
    
    Differential Revision: D30261362
    
    fbshipit-source-id: 66b6a7e0114beff7164daf7eba21546ff41ec450
    103da633
bm_ball_query.py 1.02 KB