A Python toolkit of the BOP benchmark for 6D object pose estimation (http://bop.felk.cvut.cz).
- bop_toolkit_lib - The core Python library for i/o operations, calculation of pose errors, Python based rendering etc.
- docs - Documentation and conventions.
- scripts - Scripts for evaluation, rendering of training images, visualization of 6D object poses etc.
To install the required python libraries, run:
pip install -r requirements.txt
In the case of problems, try to first run: pip install --upgrade pip setuptools
The Python based renderer is implemented using Glumpy which depends on freetype and GLFW. Glumpy is installed using the pip command above. On Linux, freetype and GLFW can be installed by:
apt-get install freetype
apt-get install libglfw3
To install freetype and GLFW on Windows, follow these instructions.
GLFW serves as a backend of Glumpy. Another backend can be used but were not tested with our code.
For fast CPU-based rendering on a headless server, we recommend installing bop_renderer, an off-screen C++ renderer with Python bindings.
Download the BOP datasets and make sure they are in the expected folder structure.
Estimate poses and save them in one .csv file per dataset (format description).
In bop_toolkit_lib/config.py, set paths to the BOP datasets, to a folder with results to be evaluated, and to a folder for the evaluation output. The other parameters are necessary only if you want to visualize results or run the C++ Renderer.
python scripts/eval_bop19.py --renderer_type=python --result_filenames=NAME_OF_CSV_WITH_RESULTS
--renderer_type: Either "python" or "cpp" (you need to install the C++ Renderer for the latter). --result_filenames: Comma-separated filenames with pose estimates in .csv (examples).