Skip to content

Releases: gulis-dev/SatQuant

v0.2.3

01 Dec 11:28

Choose a tag to compare

v0.2.3 Pre-release
Pre-release

SatQuant v0.2.3: CLI, YOLO Support & Evaluation Tools

This release brings major usability improvements to SatQuant, introducing a Command Line Interface (CLI), support for standard YOLO datasets, and built-in model evaluation tools.

🚀 New Features

  • Command Line Interface (CLI): You can now use SatQuant directly from the terminal!
    • satquant convert: Quantize your models with Focus Calibration.
    • satquant evaluate: Quickly benchmark your quantized models.
  • YOLO Dataset Support: Added native support for standard YOLO format datasets (.txt files with class x_center y_center w h).
    • Use --format yolo in the CLI to use this format.
    • Default remains --format dota for OBB.
  • Built-in Evaluation: New satquant.evaluate module to measure inference speed, average confidence, and detection counts on TFLite models.

🛠️ Improvements

  • Refactored Data Loading: DotaDataset and YoloDataset now share a common BaseDataset for better maintainability.
  • Enhanced Logging: Replaced print statements with proper logging and added tqdm progress bars for long-running tasks.
  • Notebook Update: The official Colab notebook has been updated to showcase the new CLI and YOLO workflow.

🐛 Bug Fixes

  • Fixed missing imports in satquant/data.py.
  • Fixed syntax errors in test suites.

📦 Installation

pip install --upgrade git+[https://github.com/gulis-dev/SatQuant.git](https://github.com/gulis-dev/SatQuant.git)

v0.2.2

28 Nov 12:26

Choose a tag to compare

v0.2.2 Pre-release
Pre-release

SatQuant v0.2.2 Release Notes

Date: 2025-11-28
First Public Release

SatQuant is a specialized Post-Training Quantization (PTQ) library designed to solve the "small object disappearance" problem in satellite and aerial imagery. By using Focus Calibration, it adapts the quantization dynamic range to the objects of interest rather than the background.

🚀 Key Features

1. Focus Calibration Strategy

  • Context-Aware Cropping: Automatically generates calibration data by cropping objects with context padding.
  • Artifact-Free Processing: Implements a Square Crop Strategy that preserves the aspect ratio of objects.
    • Prevents distortion (stretching) of small, rectangular objects (e.g., ships, vehicles).
    • Uses BORDER_REPLICATE padding to handle image boundaries without introducing artificial outliers (black borders).

2. Hardware-Aware Quantization Modes

  • int16x8 (Recommended for YOLO): Uses INT16 for activations and INT8 for weights. This high-precision mode prevents the "0 mAP" issue common in regression-heavy models like YOLOv8 when quantized.
  • full_int8 (Edge TPU): Enforces strict INT8 input/output and operations for compatibility with Google Coral Edge TPU and other NPUs.
  • mixed: Hybrid FP32/INT8 execution for CPU-bound devices.

3. Robust Data Handling

  • DOTA Format Support: Native parsing of DOTA oriented bounding boxes (OBB) to axis-aligned boxes (AABB).
  • Flexible Image Discovery: Now supports .jpg, .jpeg, .png (case-insensitive) to handle diverse datasets.

🛠 Installation

pip install git+https://github.com/gulis-dev/satquant.git

📋 Changelog (v0.2.2)

  • Feature: Implemented int16x8 quantization mode for high-precision regression.
  • Improvement: Replaced standard resize with Square Crop & Pad logic to eliminate distortion artifacts during calibration.
  • Fix: Fixed image file discovery to support uppercase extensions (e.g., .JPG).
  • Fix: Unified version numbering across setup.py and __init__.py.