- CUDA 10.X
- Python 3.7+
- Pip
- virtualenv
- Recommended OS: Linux (tested)
Before installation, please install the following apt packages.
sudo apt-get install libglfw3-dev libglfw3
If you have not already done so, activate the virtual environment that you want to install this package to. If you haven't created a virtual environment yet, please do so now.
virtualenv venv
source venv/bin/activate
After your virtual environment is activated, you can install this package.
git clone https://github.com/cm107/clean-pvnet.git
cd clean-pvnet
pip install -e .
Training-related code has not been refactored yet, and thus is highly dependent on relative paths, softlinks, and settings that are hard-coded in the original config. For now, please refer to clean-pvnet's original README.md. This document will be updated once the training portion of this repository is refactored.
As of right now, the inference code has been completely refactored and re-organized into the clean_pvnet package.
The important inference-related classes and methods are listed below:
- PnpDrawSettings - Drawing settings for PVNet model inference
- PnpPrediction - Contains Pnp prediction data for a single detection (i.e. a single bbox)
- PnpPredictionList - A list of Pnp prediction data
- PVNetFrameResult - A collection of all pnp data and metadata in a single frame
- draw - Draws pvnet prediction on input image given settings defined in PnpDrawSettings
- PVNetFrameResultList - All pnp predictions and metadata in all frames
- save_to_path - Saves all prediction data to a dump file
- load_from_path - Loads all prediction data from a dump file
- PVNetInferer - Worker class that handles all pvnet inference
- predict - Gets PVNetFrameResult from an input image
- infer_coco_dataset - Runs inference systematically on a COCO dataset
For details on what parameters can be used in the above classes and methods, refer to clean_pvnet/infer/pvnet_inferer.py. For a simple example of how to use all of these classes together in an inference script, refer to test/example_inference.py