Image Segment Anything Model (SAM)¶
This service uses PyTorch and OpenCV to segment everything in an image.
You can read more about the SAM model here.
The API documentation is automatically generated by FastAPI using the OpenAPI standard. A user friendly interface provided by Swagger is available under the /docs
route, where the endpoints of the service are described.
This simple service only has one route /compute
that takes an image as input, which will be used to guess the number.
Environment variables¶
All environment variables are described in the .env
file.
The environment variables can be overwritten during the CI/CD pipeline described in the image-sam.yml
GitHub workflow file.
Start the service locally with Python¶
In the services/image-sam
directory, start the service with the following commands.
Start the application.
Access the service documentation on http://localhost:9191/docs.
Run the tests with Python¶
For each module a test file is available to check the correct behavior of the code. The tests are run using the pytest
library with code coverage check. To run the tests, use the following command inside the src
folder:
Start the service locally with minikube and the Docker image hosted on GitHub¶
Start the service with the following commands. This will start the service with the official Docker images that are hosted on GitHub.
In the image-sam
directory, start the service with the following commands.
Create a tunnel to access the Kubernetes cluster from the local machine. The terminal in which the tunnel is created must stay open.
Access the image-sam
documentation on http://localhost:9494/docs.
Access the Core Engine documentation on http://localhost:8080/docs to validate the backend has been successfully registered to the Core Engine.
Start the service locally with minikube and a local Docker image¶
Note: The service StatefulSet (image-sam.stateful.yml
file) must be deleted and recreated every time a new Docker image is created.
Start the service with the following commands. This will start the service with the a local Docker image for the service.
In the image-sam
directory, build the Docker image with the following commands.
In the image-sam
directory, start the service with the following commands.
Create a tunnel to access the Kubernetes cluster from the local machine. The terminal in which the tunnel is created must stay open.
Access the image-sam
documentation on http://localhost:9494/docs.
Access the Core Engine documentation on http://localhost:8080/docs to validate the backend has been successfully registered to the Core Engine.