Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a pipeline to train yolov5 object-detection model on custom data #307

Open
mnrozhkov opened this issue Nov 15, 2022 · 1 comment
Open
Labels
feature New feature or request

Comments

@mnrozhkov
Copy link

Is your feature request related to a problem? Please describe.
Sometimes users may want to train a custom object-detection model with YoloV5 and use it in the OpenBot.
To make it simple, we may provide a pipeline to collect/annotate/train/deploy model to the robot.
This request is focusing of the model training pipeline.

Describe the solution you'd like
Proposed solution utilizes DVC to run end-to-end YoloV5 model training in Docker

  • DVC pipeline (`dvc.yaml) has three stages: download_model, train, val and exports
    • download_model: download pre-train model
    • train: train a model
    • val: run validation checks
    • exports: export models into required formats
  • the pipeline configuration is in params.yaml file

DVC allows to automate model training & validation. With DVC remote storage setup, user may store models in local or cloud storages. Using DVC users may switch between different experiments and model versions

Prototype: https://github.com/mnrozhkov/OpenBot/tree/dev-object-detection (in progress)

Describe alternatives you've considered

  1. There are two alternatives on YoloV5 dev environment setup: using virtual environment or Docker.
    Docker looks more appealing because it make environment setup simple and reproducible. Also, it's easier to control location of output artefacts (models, plots...)

  2. The pipeline can be moved into a separate repository. It may be easier to experiment and share models.

Additional context

Next steps/ideas:

  • add a pipeline to prepare/link custom dataset (share dataset?)
  • add CI configuration to run model training in Cloud
  • add Model Registry (to make it easy to plug and play with different models)
@mnrozhkov mnrozhkov added the feature New feature or request label Nov 15, 2022
@thias15
Copy link
Collaborator

thias15 commented Nov 16, 2022

This looks great @mnrozhkov. Looking forward to a PR in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants