|
4 | 4 |
|
5 | 5 | PicoTree is a C++ header only library with [Python bindings](https://github.com/pybind/pybind11) for nearest neighbor searches and range searches using a KdTree. |
6 | 6 |
|
7 | | -See the table below to get an impression of the performance provided by the [KdTree](https://en.wikipedia.org/wiki/K-d_tree) of this library versus several other implementations: |
8 | | - |
9 | | -| | Build C++ | Build Python | Knn C++ | Knn Python | |
10 | | -| ----------------------------------- | --------- | ------------- | ----------| ----------- | |
11 | | -| [nanoflann][nano] v1.3.2 | 3.6s | ... | 3.9s | ... | |
12 | | -| [SciPy KDTree][sppk] v1.5.0 | ... | 117.9s | ... | +inf | |
13 | | -| [SciPy cKDTree][spck] v1.5.0 | ... | 9.6s | ... | 14.1s | |
14 | | -| [Scikit-learn KDTree][skck] 0.22.2 | ... | 27.1s | ... | 55.4s | |
15 | | -| [OpenCV FLANN][cvfn] 4.5.1 | 4.1s | ... | 7.0s | ... | |
16 | | -| PicoTree KdTree v0.7.1 | 1.8s | 2.0s | 3.1s | 4.1s | |
17 | | - |
18 | | -The comparison was generated using 13729039 3d points from a [LiDAR](./docs/benchmark.md) scan, float64, with k=1 for queries and OMP_NUM_THREADS=1. Note that a different C++ back-end was used for each of the `Knn C++` and `Knn Python` benchmarks. This means that they shouldn't be compared directly. See the [Python comparison](./examples/python/kd_tree.py) for more details. A more detailed [C++ comparison](./docs/benchmark.md) of PicoTree is available with respect to [nanoflann][nano]. |
19 | | - |
20 | 7 | Available under the [MIT](https://en.wikipedia.org/wiki/MIT_License) license. |
21 | 8 |
|
22 | | -[nano]: https://github.com/jlblancoc/nanoflann |
23 | | -[sppk]: https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.KDTree.html |
24 | | -[spck]: https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.cKDTree.html |
25 | | -[skck]: https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KDTree.html |
26 | | -[cvfn]: https://github.com/opencv/opencv |
27 | | - |
28 | 9 | # Capabilities |
29 | 10 |
|
30 | 11 | * KdTree |
@@ -56,7 +37,7 @@ Optional: |
56 | 37 | * [Google Test](https://github.com/google/googletest). Used for running unit tests. |
57 | 38 | * [Eigen](http://eigen.tuxfamily.org). To run the example that shows how Eigen data types can be used in combination with PicoTree. |
58 | 39 | * [OpenCV](https://opencv.org/). To run the OpenCV example that shows how to work with OpenCV data types. |
59 | | -* [nanoflann](https://github.com/jlblancoc/nanoflann), [Google Benchmark](https://github.com/google/benchmark) and a compiler that is compliant with the C++17 standard are needed to run the comparison [benchmark](./docs/benchmark.md) between nanoflann and PicoTree. |
| 40 | +* [nanoflann](https://github.com/jlblancoc/nanoflann), [Google Benchmark](https://github.com/google/benchmark) and a compiler that is compliant with the C++17 standard are needed to run the comparison benchmark between nanoflann and PicoTree. |
60 | 41 |
|
61 | 42 | Python bindings: |
62 | 43 | * [Python](https://www.python.org/). Version 3.5 or higher. |
|
0 commit comments