Python binding for M3T: A Multi-body Multi-modality Multi-camera 3D Tracker.
The original M3T
framework considers multi-body multi-modality multi-camera tracking.
Currently, pym3t
only focuses on multi-rigid-object multi-modality tracking with one camera.
- Special Camera
The original modules for
Azure Kinect
camera andRealSense
camera are removed. You will need to provide RGB image (and depth image) manually inOpenCV::Mat
format. - Publisher and Subscriber The two modules are not important to the core tracking pipeline.
- Detector
The original
StaticDetector
andManualDetector
are removed, as there are ways to do it better. TheRefiner
is not used as well (reserved). - Image Viewer
The original
ColorImageViewer
andDepthImageViewer
are removed. As the input images are provided manually, the visualization of them can be easily implemented throughopencv-python
.
The normal viewers are detached from the original tracker. You can manually create one if needed.
Make sure that you have installed the following packages:
- GLEW
- glfw3
- Eigen3
- OpenCV 4 with Contrib Modules
- OpenMP (may have already installed on your system)
Your compilation environment should support C++ 17
.
-
[method 1] Through system path
# build tools $ sudo apt install build-essential cmake # libraries $ sudo apt install libglew-dev libglfw3-dev libeigen3-dev # BUILD opencv with extra contrib modules from source code: - https://github.com/opencv/opencv - https://github.com/opencv/opencv_contrib # python modules for example/demo.py $ pip install numpy==1.26.0 $ pip install opencv-python
-
[method 2] Under conda env
$ conda create -n ${your_env_name} python=3.9 $ conda activate ${your_env_name} $ conda install cmake eigen glfw glew libopencv
cd ${repo_root}
pip install .
The demo data is from SMu1
sequence of HO3D_v3
cd ${repo_root}/example
python demo.py
Follow source/pym3t/pym3t.cpp
.
This algorithm is for object tracking only, without global pose estimation. In consequence, an initial pose (4 by 4 matrix under opencv coordinate) must be provided before you start tracking.