SAMBA

SAMBA: A Trainable Segmentation Web-App with Smart Labelling - Published in JOSS (2024)

https://github.com/tldr-group/samba-web

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

materials-science segment-anything-model segmentation webapp
Last synced: 6 months ago · JSON representation ·

Repository

Local version of samba-web, a trainable segmentation web app with deep learning powered labelling

Basic Info
Statistics
  • Stars: 10
  • Watchers: 1
  • Forks: 0
  • Open Issues: 16
  • Releases: 1
Topics
materials-science segment-anything-model segmentation webapp
Created almost 3 years ago · Last pushed 9 months ago
Metadata Files
Readme Contributing License Citation

README.md


Tests

SAMBA (Segment Anything Model Based App) is a trainable segmentation tool for materials science that uses deep learning for fast, high-quality labels and random forests for robust, generalizable segmentations. It is accessible in the browser (https://www.sambasegment.com), without the need to download any external dependencies. This repo is a local version of the website which contains the frontend for the website (React + TSX) and the backend (Python + Flask). The frontend handles labelling and the backend sends back SAM embeddings (if requested) and segmentations.

Check out the tutorial/user manual if help is needed!

Local Installation Instructions

These instructions are for installing and running the model locally. They assume a UNIX enviroment (mac or linux), but adapting for Windows is straightforward. Note you will need 2 terminals, one for the frontend local server and one for the backend local server.

Preliminaries

Download one of the ViT checkpoints for the SAM model - I chose the smallest, vit_b: ViT-B SAM model. Copy this into the backend/ directory.

Install & run the backend

  1. Setup a virtual environment in Python and activate it (not necessary but recommended)
  2. Install libraries from backend/requirements.txt:

pip install -r backend/requirements.txt

  1. With your virtual environment activated and inside the backend/ directory, run

python -m flask --app server run

The server is now setup and listening for requests from our frontend!

Install & run the frontend

  1. Install the JS libraries needed to build and run the frontend. Install Yarn (and npm first if needed)

npm install --g yarn

  1. Build and run:

yarn && yarn start

  1. Navigate to http://localhost:8081/ or http://localhost:8080/ depending on the port (it should do this automatically).

Testing Instructions

  1. Run (with your virtual enviroment activated!)

python backend/tests.py $FIJI_PATH

where $FIJI_PATH is the absolute path to your FIJI installation.

Citing

If you use SAMBA in one your works, please cite its JOSS publication via CITATION.cff or clicking the 'cite this repository' button at the top of the page: Docherty et al., (2024). SAMBA: A Trainable Segmentation Web-App with Smart Labelling. Journal of Open Source Software, 9(98), 6159, https://doi.org/10.21105/joss.06159

Owner

  • Name: tldr group
  • Login: tldr-group
  • Kind: organization
  • Location: United Kingdom

The Tools for Learning, Design and Research (tldr) group is a multidisciplinary team based in the Dyson school of Design engineering at Imperial College London.

JOSS Publication

SAMBA: A Trainable Segmentation Web-App with Smart Labelling
Published
June 05, 2024
Volume 9, Issue 98, Page 6159
Authors
Ronan Docherty ORCID
Department of Materials, Imperial College London, London SW7 2AZ, United Kingdom, Dyson School of Design Engineering, Imperial College London, London SW7 2DB, United Kingdom
Isaac Squires ORCID
Dyson School of Design Engineering, Imperial College London, London SW7 2DB, United Kingdom
Antonis Vamvakeros ORCID
Dyson School of Design Engineering, Imperial College London, London SW7 2DB, United Kingdom
Samuel J. Cooper ORCID
Dyson School of Design Engineering, Imperial College London, London SW7 2DB, United Kingdom
Editor
Kevin M. Moerman ORCID
Tags
Javascript materials segmentation machine learning

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - name: Ronan Docherty
    orcid: 0000-0002-7332-0924
  - name: Isaac Squires
    orcid: 0000-0003-1919-061X
  - name: Antonis Vamvakeros
    orcid: 0000-0002-4745-0602
  - name: Samuel J. Cooper
    orcid: 0000-0003-4055-6903
title: "SAMBA: A Trainable Segmentation Web-App with Smart Labelling"
doi: 10.21105/joss.06159
url: "https://github.com/tldr-group/samba-web"
preferred-citation:
  type: article
  authors:
  - name: Ronan Docherty
    orcid: 0000-0002-7332-0924
  - name: Isaac Squires
    orcid: 0000-0003-1919-061X
  - name: Antonis Vamvakeros
    orcid: 0000-0002-4745-0602
  - name: Samuel J. Cooper
    orcid: 0000-0003-4055-6903
  doi: "10.21105/joss.06159"
  journal: "Journal of Open Source Software"
  month: 6
  title: "SAMBA: A Trainable Segmentation Web-App with Smart Labelling"
  issue: 98
  volume: 9
  year: 2024

GitHub Events

Total
  • Issues event: 2
  • Watch event: 2
  • Push event: 4
  • Pull request event: 6
  • Create event: 1
Last Year
  • Issues event: 2
  • Watch event: 2
  • Push event: 4
  • Pull request event: 6
  • Create event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 235
  • Total Committers: 3
  • Avg Commits per committer: 78.333
  • Development Distribution Score (DDS): 0.098
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
rmdocherty r****2@g****m 212
isaacsquires i****s@m****m 15
rmdocherty r****y 8
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 86
  • Total pull requests: 30
  • Average time to close issues: 23 days
  • Average time to close pull requests: 26 minutes
  • Total issue authors: 4
  • Total pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.03
  • Merged pull requests: 30
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: less than a minute
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • rmdocherty (71)
  • amirDahari1 (7)
  • camsooper (3)
  • isaacsquires (1)
Pull Request Authors
  • rmdocherty (30)
  • isaacsquires (2)
Top Labels
Issue Labels
frontend (41) enhancement (25) backend (22) bug (11) classifier (10) help wanted (9) cloud (7) investigation (6) GUI (6) documentation (4) code-quality (3) gallery (3) wontfix (2) tests (2)
Pull Request Labels