ros-industrial / easy_perception_deployment

A ROS2 package that accelerates the training and deployment of CV models for industries.
Apache License 2.0
53 stars 16 forks source link

0.3.0 - Minor #56

Closed cardboardcode closed 2 years ago

cardboardcode commented 2 years ago

Purpose of Pull Request

This pull request revamps the training and exporting workflows for Precision-Level 3 and 2 Models, namely fasterrcnn and maskrcnn. Rather than using native Anaconda to train and export within isolated python environments, dockers are used instead to minimize environmental conflicts as much as possible for code stability.

Unit testing for GUI_CI GitHub Action has also been improved to rigorously test the train and export workflows for both P2 and P3 Models.

Training for Precision-Level 3 and 2 Models would be more customizable with following configurable parameters:

  1. MAX_ITERATION # Total number of iteration.
  2. TEST_PERIOD # Where you run validation every * steps
  3. CHECKPOINT_PERIOD # Where you save the model every * steps.
  4. STEPS # Where you want your learning rate to decrease

Additionally, the GUI's appearance has also been improved for a better User Experience.

:warning: Feature Deprecation Notice

Precision Level 1 Models features, both training and deployment, will be deprecated in EPD version 0.3.0. This removal is done with the consensus between @cardboardcode and @Sahil-cmd based on the understanding that it would achieve the following:

  1. Reduce unnecessary software bloat by eliminating underused dependencies.
  2. Minimize unnecessary security vulnerabilities.
  3. Accelerate deployment speed.
cardboardcode commented 2 years ago

:warning: Testing Deficiency Notice

GitHub Action do not support GPU-reliant operations. As a result, the following GPU-reliant Precision Level 3 Model Training features in EPD v0.3.0 can only be verified by running local pytests on GPU-equipped workstations for end-users.

Local GPU-specific pytests is projected to only be provided under EPD v0.3.2 - Patch.

This exception and its workaround will be documented and elaborated in further details in EPD documentation, epd_docs.

Link will be provided once documentation has been done.