asic

ASIC - AI for Satellite Image Segmentation Final Project for CSCE 625

https://github.com/vmbobato/asic

Science Score: 26.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

ASIC - AI for Satellite Image Segmentation Final Project for CSCE 625

Basic Info
  • Host: GitHub
  • Owner: vmbobato
  • Language: HTML
  • Default Branch: main
  • Size: 437 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Citation

README.md

ASIC - AI for Satellite Image Classification WebApp

This project is a web-based application that allows users to upload satellite images and receive a segmented output using Segformer B2 ADE 20K model. It simulates an Earth observation tool where land cover types can be detected and visualized. Access the blog post for this project here.

This was a team work in collaboration with Andreas Bardram and Theo Lin for our final project in CSCE 625 at Texas A&M University


Features

  • Upload a satellite image
  • Segment regions using SegFormerB2
  • Visualize the output overlaid on the image
  • Classify each region using a pretrained model
  • Calculate each segmented area and represent them in a percentage.

Technologies Used

Backend

  • Flask – lightweight Python web server
  • PyTorch – to load and run the Segformer B2 model
  • Segformer B2 – automatic mask generator for segmentation
  • NumPy, Pillow – image handling

Frontend

  • HTML/CSS/JS – styled with a satellite-dashboard theme
  • Dynamic UI – preview both uploaded and segmented images

ML Models

  • Segformer B2 – from by Nvidia
  • PyTorch & Torchvision - for model implementation

Dataset

The dataset is already divided into train, valid, and test directories where inside each there is a img/ and ann/ directories. The img/ contains the staellite images used and the ann/ contains JSON files for each satellite image. The JSON files contain bitmaps for each masks that need to be converted. The notebook convert_masks.ipynb converts these bitmaps into a mask for each file where each pixel is mapped into a class. It outputs an np.array() of size (H, W) for each iamge. The notebook creates a new folder "DeepGlobeConvertedDataset" and performs a train/valid split.


Application Diagram

The diagram below shows the steps the application takes to segment and output the results.

Diagram


Steps to run ASIC

Clone this repository into your desired location.

git clone https://github.com/ASIC.git

Download b2-ade30epochs.pth from this HuggingFace repository and place it inside classification_folder/model folder.

Go to the repository location.

cd ASIC/

Install requirements.

pip install -r requirements.txt

Run the WebApp.

python3 app.py

To connect to the WebApp open your browser and visit http://127.0.0.1:5000

Owner

  • Name: Vinicius Bobato
  • Login: vmbobato
  • Kind: user
  • Location: College Station, TX
  • Company: Texas A&M Engineering Experiment Station

Full-time tech student, part-time worker.

GitHub Events

Total
  • Push event: 51
  • Create event: 6
Last Year
  • Push event: 51
  • Create event: 6

Dependencies

requirements.txt pypi
  • Pillow >=9.0.0
  • bibtexparser ==1.4.0
  • flask >=3.1.0
  • numpy >=1.23.0
  • safetensors >=0.4.0
  • torch >=1.13.0
  • torchvision >=0.14.0
  • tqdm >=4.64.0
  • transformers >=4.36.0