Releases: gulis-dev/SatQuant
Releases · gulis-dev/SatQuant
v0.2.3
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 yoloin the CLI to use this format. - Default remains
--format dotafor OBB.
- Use
- Built-in Evaluation: New
satquant.evaluatemodule 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
printstatements with properloggingand addedtqdmprogress 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
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_REPLICATEpadding 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
int16x8quantization 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.pyand__init__.py.