|
--- |
|
title: 'livermask: Automatic Liver Parenchyma and vessel segmentation in CT' |
|
colorFrom: indigo |
|
colorTo: indigo |
|
sdk: docker |
|
app_port: 7860 |
|
emoji: 🚀 |
|
pinned: false |
|
license: mit |
|
app_file: demo/app.py |
|
--- |
|
|
|
![Screenshot 2023-05-24 at 19 14 15](https://github.com/andreped/livermask/assets/29090665/6083a28a-9250-4f86-a9b2-8d4e9823c836) |
|
|
|
# livermask Hugging Face demo - through docker SDK |
|
|
|
Deploying simple models in a gradio-based web interface in Hugging Face spaces is easy. |
|
For any other custom pipeline, with various dependencies and challenging behaviour, it |
|
might be necessary to use Docker containers instead. |
|
|
|
Deployment through a custom Docker image over the existing Gradio image was |
|
necessary in this case due to `tensorflow` and `gradio` having colliding |
|
versions. As `livermask` depends on `tf`, the only way to get around it was |
|
fixing the broken dependency, which was handled by reinstalling and changing |
|
the `typing_extensions` with a version that `gradio` required for the widgets |
|
we used. Luckily, this did not break anything in `tf`, even though `tf` has a |
|
very strict versioning criteria for this dependency. |
|
|
|
Anyways, everything works as intended now. For every new push to the main branch, |
|
continuous deployment to the Hugging Face `livermask` space is performed through |
|
GitHub Actions. |
|
|
|
When the space is updated, the Docker image is rebuilt/updated (caching if possible). |
|
Then when finished, the end users can test the app as they please. |
|
|
|
Right now, the functionality of the app is extremely limited, only offering a widget |
|
for uploading a NIfTI file (`.nii` or `.nii.gz`) and visualizing the produced surface |
|
of the predicted liver parenchyma 3D volume when finished processing. |
|
|
|
Analysis process can be monitored from the `Logs` tab next to the `Running` button |
|
in the Hugging Face `livermask` space. |
|
|
|
It is also possible to build the app as a docker image and deploy it. To do so follow these steps: |
|
|
|
``` |
|
docker build -t livermask .. |
|
docker run -it -p 7860:7860 livermask |
|
``` |
|
|
|
Then open `http://127.0.0.1:7860` in your favourite internet browser to view the demo. |
|
|
|
Natural future TODOs include: |
|
- [ ] Add gallery widget to enable scrolling through 2D slices |
|
- [ ] Render segmentation for individual 2D slices as overlays |
|
|