A version of the YOLO architecture (versions 1 through 3), optimized for inference speed on simple object detection problems. Designed for the remoscope project by the bioengineering team at the Chan-Zuckerberg Biohub SF.
Our yogo manuscript is currently in preparation - stay tuned!
With Python versions >= 3.9 and < 3.11, you can install yogo with pip
python3 -m pip install -e yogo
For developing YOGO, clone the repo and then run
python3 -m pip install -e ".[dev]"
$ yogo train path/to/dataset-definition-file.yml # train your model!
$ yogo infer path/to/model.pth # use your model!
$ yogo export path/to/model.pth # use your model somewhere else!
$ yogo test path/to/model.pth path/to/dataset-definition-file. # test your model!
$ yogo --help # all the other details are here :)
We're using Weights and Biases for run tracking. But, note that you do not need a W&B account to run anything! Runs that are started without an account are logged to an anonymous page. If you do decide to start with W&B, look here. Anonymous runs can be claimed later.
Further, we currently only support GPU training, since we use Torch's Distributed Data Parallel.
Note
Installing Openvino on Apple Silicon is a little involved. Here is Openvino's guide to installation. You can also use a Linux VM or Docker.
Documentation for YOGO. If you want documentation in a specific area, let us know!
- recipes.md has the basics of using YOGO in your own code
- cli.md is a short guide on how to use YOGO from the command line (via
yogo
) - yogo-high-level.md is a high level guide of the YOGO architecture
- dataset-definition.md defines the dataset description files, the files YOGO uses to define datasets for training
Please run ./prepush.sh
before pushing. It runs mypy
, ruff
, black
and pytest
.
When creating issues or pull requests, please be detailed. What exact commands were you running on what computer to get your issue? What exactly does your PR contribute and why is it necessary?