Azure / Azure-Orbital-Analytics-Samples

Sample solution that demonstrates how to deploy and analyze spaceborne data using Azure Synapse Analytics
https://aka.ms/synapse-geospatial-analytics
MIT License
30 stars 24 forks source link

PoolModel Codebase, Easy Integration with CustomVision, Github Packages CICD #5

Closed tushardhadiwal closed 2 years ago

tushardhadiwal commented 2 years ago

Currently deploy/ReadMe.md Refers to a custom_vision_offline.tar.gz file which includes the codebase for pool detection model and model itself. When the tar file was published in blob storage, this codebase was included in that.

This PR aims to publish the codebase for Custom Vision Model officially.

Some Background: Currently users can train their models using custom vision portal and export them as a zip file of docker container. As it expects API based communication which is not best for Synapse based pipeline (inference container is alive for short duration and processes all files in one go) this container can not be used directly with the synapse pipeline.

To ease this process we built a new container, which acts as a wrapper for any custom vision exported docker container, for direct use with synapse pipeline. As indicated in ReadMe, users can simply copy files from the app folder of zip file downloaded from custom vision into src folder and run build.sh script. This will provide them with a docker container that works directly with the Synapse pipeline but uses the model they just exported from custom vision. This approach allows us to quickly swap out and test custom vision models without having to go through code changes. Disclaimer : Users may need to modify the transforms based on input specs of the new model.

  1. This PR Includes Pool Detection Model, its relevant codebase. Following files are copied as it is from exported zip of model from Custom vision portal and are essentially pre-reviewed. If there are any suggestions on these files, we will consider them as feedback for CustomVision team and report on it.

-app.py -object_detection.py -predict.py -labels.txt -model.pb (this includes model weights) -metadata_properties.json

  1. This PR adds a CICD Github Actions based pipeline that Run tests for Building Docker container and Also publishes the latest container on GitHub packages registry.

  2. Adjusts the fieldNames used in transform [src/transforms/spark-jobs/pool_geolocation/src/main.py] to match with standard fieldNames as returned by custom vision code. This is needed in order to enable users to utilize their own custom vision exported models without needing code changes.

Next Steps: Once this PR is merged in relevant branch, follow up PR will update deploy/Readme.md to point to docker image published on GitHub registry instead of .tar file on blob storage.

tushardhadiwal commented 2 years ago

Lets call out - source of test images.

  • Code coming out of cognitive service cv model
  • the wrapper which users can consider modifying Lets ensure (may be in a separate PR) to update README to use this model from gcr and remove references to tar

Requested feedback addresses in following commit : https://github.com/Azure/Azure-Orbital-Analytics-Samples/pull/5/commits/af34aca64d57eb61f490de902b93a85db5108821