Metadata-Version: 2.4
Name: SatVision
Version: 0.0.1
Summary: Opinionated Inference Framework for Remote Sensing Deep Learning Applications.
Author: Oblt Lionel Peer, Swiss Armed Forces
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: jaxtyping>=0.3.3
Requires-Dist: beartype>=0.22.2
Requires-Dist: torch>=2.2.0
Requires-Dist: lightning-utilities>=0.15.2
Requires-Dist: pydantic>=2.12.4
Requires-Dist: torchvision>=0.24.1
Requires-Dist: einops>=0.8.1
Requires-Dist: polars>=1.37.0
Requires-Dist: pyarrow>=22.0.0
Requires-Dist: scipy>=1.15.3
Requires-Dist: tqdm>=4.67.1
Provides-Extra: notebook
Requires-Dist: jupyter>=1.1.1; extra == "notebook"
Provides-Extra: onnx
Requires-Dist: onnx>=1.19.1; extra == "onnx"
Requires-Dist: onnxscript>=0.5.3; extra == "onnx"
Provides-Extra: tensorrt-cu12
Requires-Dist: tensorrt-cu12==10.9.0.34; extra == "tensorrt-cu12"
Provides-Extra: transformers
Requires-Dist: transformers>=4.57.1; extra == "transformers"
Provides-Extra: triton-client
Requires-Dist: tritonclient[all]<=2.60.0; extra == "triton-client"
Dynamic: license-file

<!--
SPDX-License-Identifier: MIT
Copyright (c) 2025–2026 Oblt Lionel Peer, Swiss Armed Forces
-->
# SatVision
[![docs-build](https://github.com/liopeer/SatVis/actions/workflows/docs-build.yml/badge.svg)](https://github.com/liopeer/SatVis/actions/workflows/docs-build.yml)
[![docs-deploy](https://github.com/liopeer/SatVis/actions/workflows/docs-deploy.yml/badge.svg)](https://github.com/liopeer/SatVis/actions/workflows/docs-deploy.yml)
[![docs-deploy-main](https://github.com/liopeer/SatVis/actions/workflows/docs-deploy-main.yml/badge.svg)](https://github.com/liopeer/SatVis/actions/workflows/docs-deploy-main.yml)
[![pypi-publish](https://github.com/liopeer/SatVis/actions/workflows/pypi-publish.yml/badge.svg)](https://github.com/liopeer/SatVis/actions/workflows/pypi-publish.yml)
[![static-checks](https://github.com/liopeer/SatVis/actions/workflows/static-checks.yml/badge.svg)](https://github.com/liopeer/SatVis/actions/workflows/static-checks.yml)

An opinionated framework for deploying computer vison models on remote sensing imagery.

## Getting Started
### Install `uv`
```bash
just install-uv
```

### Install Core Dependencies
```bash
just install
```

### Install Development Dependencies
```bash
just install-all
```

## Triton Server
Requirements:
- NVIDIA Driver >= 570
- Docker CUDA Toolkit

Installation:
```bash
just install
```
which will install `tensorrt==10.9.0.34`. [This is the version that is compatible](https://docs.nvidia.com/deeplearning/frameworks/support-matrix/index.html#framework-matrix-2025) with
Nvidia Triton Server `nvcr.io/nvidia/tritonserver:25.03-py3` and driver>=570.

Creating the models for Triton Inference Server (to be executed on the actual server with GPU access):
```bash
python server/generate_models.py
```

Running the server:
```bash
docker compose -f server/docker-compose.yml up -d
```

## Sending Inference Requests with ResNet
```bash
python scripts/predict.py
```

## RoadMap
### Q4 2025
- [ ] Core PyTorch Framework with Inference and ONNX Export:
    - [x] Classification
    - [ ] Image Embeddings
    - [ ] Language Embeddings
- [ ] TensorRT Export
    - [x] FP32/FP16 export
    - [ ] verification
- [ ] Model Serving
    - [x] Nvidia Triton server with kserver API
    - [ ] Model Zoo for classification and embeddings
- [ ] Documentation of REST API
- [ ] Basic CI/CD
    - [ ] Inference server to container registry
    - [ ] Unit tests with pytest and coverage

### Q1 2026
- [ ] Model Training
    - [ ] Panoptic Segmentation
    - [ ] CLIP-style training for image and language embeddings
- [ ] Multi-Spectral / Hyperspectral support
    - [ ] I/O for various formats (GeoTIFF, HDF5, NetCDF)
    - [ ] Data Augmentation for multi-spectral data
    - [ ] Models
- [ ] Documentation for Python API

### Q2 2026
- [ ] Model Quantization
    - [ ] Int8 PTQ (Post Training Quantization) with calibration

### Small Projects
- PostGIS sampler for PyTorch DataLoader

## Maintainers
- Oblt Lionel Peer (lionel.peer@gmail.com)
