C++ implementation that extends the original ByteTrack-cpp from 2D to 3D.
Adapted from ByteTrack-cpp (MIT License)
- The implementation is based on ByteTrack-CPP-ncnn that is the official C++ implementation using ncnn
- Only tracking algorithm are implemented in this repository
- Any object detection algorithm can be easily combined
- Provided as a shared library usable in C++17 or higher
- The output of the implementation has been verified to be equivalent to the output of the ByteTrack-CPP-ncnn
- Verification data are generated by ByteTrack-CPP-ncnn using YOLOX
- This fork extends ByteTrack-cpp from 2D to 3D (see original overview of ByteTrack-cpp above)
- Kalman filter covariances use defaults from AB3DMOT
- Core tracker logic incorporates ideas from ByteTrackV2
- Eigen 3.3
- C++ compiler with C++17 or higher support
- CMake 3.14 or higher
- GoogleTest 1.10 or higher (Only tests)
The shared library (libbytetrack.so) can be build with following commands:
mkdir build && cd build
cmake ..
makeTests have not been fully updated for 3D as the original test data is for 2D tracking.
## Tips
You can use docker container to build the implementation.
```shell
docker build . -t bytetrack-cpp:latest
docker run -ti --rm \
-v ${PWD}:/usr/src/app \
-w /usr/src/app \
bytetrack-cpp:latest
MIT