{"name": "GeoOSAM", "package_name": "GeoOSAM", "version": "1.4.3", "experimental": false, "qgis_min": "3.16.0", "qgis_max": "3.99.0", "downloads": 968, "uploaded_by": "oferb", "upload_datetime": "2026-06-12T15:48:49.965516", "changelog": "1.4.3 - Vegetation & Bbox Improvements (2026-06-12)\n- IMPROVED: Vegetation segmentation on multispectral imagery (5+ bands) \u2014 less shadow and soil bleed in tree and crop masks. Automatic; no effect on RGB or non-vegetation classes\n- FIXED: BBox selections on high-resolution imagery were sometimes rejected \u2014 small boxes now register correctly\n- FIXED: Batch mode could freeze the request queue after an error \u2014 now recovers cleanly\n\n1.4.2 - Pro Features & Fixes (2026-06-04)\n- NEW: Fill Holes in Filters tab (Pro) \u2014 removes interior voids from segmented polygons with configurable size threshold\n- FIXED: SAM3 text prompts now use native concept-prompting \u2014 text was previously ignored\n- FIXED: Removed debug print statements from production code\n- NEW: Automated test suite added (41 tests covering helpers and mask pipeline)\n- NOTE: Pro users \u2014 please connect online once after updating to v1.4.2\n\n1.4.1 - Code Quality Fix (2026-05-09)\n- FIXED: Flake8 E231/E221/E226 whitespace issues in geo_osam_dialog.py and vegetation_helper.py\n\n1.4.0 - UI Redesign & Workflow Improvements (2026-05-09)\n- NEW: 4-tab flat UI (Segment, Detect, Results, Filters) with Settings as gear overlay\n- NEW: Similar from Selection \u2014 use any segmented feature as exemplar\n- NEW: Vector extent ROI for Entire Raster \u2014 restrict Pro tiled processing to a polygon area\n- NEW: Cancel and Undo buttons on Detect tab\n- NEW: Find Similar toggleable \u2014 click again to exit\n\n1.3.6 - Code Quality & Security Fixes (2026-04-22)\n- FIXED: Flake8 code quality issues cleared (unused imports, bare excepts, ambiguous names, f-strings)\n- FIXED: Status label color styles now correctly applied (broken f-string in stylesheet)\n\n1.3.5 - Security Fix (2026-04-22)\n- FIXED: Removed eval from checkpoint download script (flagged by QGIS plugin repository security scanner)\n- FIXED: torch.load now uses weights_only=True (safer checkpoint loading)\n- FIXED: Bandit B310 false positives suppressed on urllib calls using hardcoded https:// URLs\n- FIXED: Removed unused HuggingFace Hub download functions from build_sam.py (dead code in plugin context)\n- FIXED: Excluded dev-only shell scripts and .bat files from plugin package (pb_tool.cfg)\n- FIXED: Removed unused imports flagged by QGIS code quality scanner (F401, F811)\n- FIXED: Ambiguous variable name 'l' renamed (E741)\n\n1.3.4 - Settings Tab, Size & Shape Filters, GSD Support (2026-04-06)\n- NEW: Tabbed UI \u2014 Segmentation and Settings tabs for cleaner layout\n- NEW: GSD / Resolution card with auto-detect from raster metadata and manual entry\n- NEW: Real-world size filtering \u2014 min/max diameter (cm) and area (m\u00b2) with live pixel hints\n- NEW: Shape filters \u2014 min circularity, min compactness, max aspect ratio\n- NEW: Class-level max_size defaults (Vessels: 2000px, Vehicle: 500px)\n- NEW: area_m2, diameter_cm, circularity attributes exported per feature\n- NEW: Per-mask progress bar during text/similar mode processing\n- IMPROVED: Font sizes increased for laptop-screen readability\n- IMPROVED: HTML tooltips with explicit white background (QGIS compatible)\n- IMPROVED: Active filter summary shown inline in status label\n\n1.3.3 - Multi-Point, Export Formats & Fixes (2026-02-07)\n- NEW: Multi-point segmentation with Shift+click (add) and Ctrl+click (subtract) point accumulation\n- NEW: Visual +/- markers on map showing accumulated positive/negative points\n- NEW: Multi-format export support (GeoPackage, Shapefile, GeoJSON, FlatGeobuf)\n- NEW: GeoPackage as default export format\n- FIXED: License activation connectivity issue\n- FIXED: SAM3 multi-point predictions returning separate objects instead of combined result\n- FIXED: \"NoneType has no attribute write\" crash on Windows when sys.stderr is None during QGIS startup\n\n1.3.2 - Bug Fix (2026-02-06)\n- FIXED: MD5 hash security flag (added usedforsecurity=False)\n\n1.3.1 - Bug Fix (2026-02-06)\n- FIXED: Exemplar mask normalization in SAM3 similar object detection (float masks now correctly scaled to uint8)\n\n1.3.0 - SAM3 Integration & Pro Licensing (2025-12-28)\n- NEW: SAM3 auto-segmentation \u2705 WORKING (tested 2025-12-26)\n- NEW: SAM3 text prompts \u2705 WORKING (CLIP tokenizer fixed with runtime patch!)\n- NEW: SAM3 similar object detection \u2705 WORKING (CLIP tokenizer fixed!)\n- NEW: SAM3 Pro licensing system with device limits and offline validation\n- NEW: Free tier (extent/AOI) + Pro tier (entire raster) for SAM3 text/similar modes\n- NEW: Cancel button for tiled operations - abort long-running processes anytime\n- NEW: Scope selector (AOI vs full raster) with tiled processing for large rasters\n- NEW: Model selection dropdown with size variants per hardware (GPU/CPU)\n- NEW: SAM3 download flow with Hugging Face token prompt\n- FIXED: CLIP tokenizer bug preventing SAM3 text/exemplar modes (runtime patch applied)\n- FIXED: Similar mode bbox handling and mask result processing\n- FIXED: Threaded tiled processing stability and progress reporting\n- ENHANCED: Automatic model detection and availability checks\n- ENHANCED: Improved UI state updates for model changes\n\n1.2.2 - Threading Configuration Fix\n- FIXED: PyTorch threading initialization error when other plugins pre-configure threads\n- FIXED: \"cannot set number of interop threads\" RuntimeError on plugin startup\n- Enhanced thread configuration with graceful fallback for pre-initialized environments\n- Improved compatibility with other PyTorch-based QGIS plugins\n\n1.2.1 - Online Tile Layer Support\n- NEW: Support for online tile services (XYZ, WMS, WMTS)\n- NEW: Automatic tile caching with proper georeferencing\n\n1.2.0 - Multi-spectral UAV Support with Comprehensive Object Detection\n- NEW: Native multi-spectral UAV/satellite imagery support (5+ bands)\n- NEW: Automatic NDVI calculation for vegetation detection using NIR/Red bands\n- NEW: Dual processing path - RGB for SAM2, full spectral for vegetation analysis\n\n1.2.2 - Threading Configuration Fix\n- FIXED: PyTorch threading initialization error when other plugins pre-configure threads\n- FIXED: \"cannot set number of interop threads\" RuntimeError on plugin startup\n- Enhanced thread configuration with graceful fallback for pre-initialized environments\n- Improved compatibility with other PyTorch-based QGIS plugins\n\n1.2.1 - Online Tile Layer Support\n- NEW: Support for online tile services (XYZ, WMS, WMTS)\n- NEW: Works with ESRI, Google Satellite, Bing Aerial\n- NEW: Automatic tile caching with proper georeferencing\n\n1.2.0 - Multi-spectral UAV Support with Comprehensive Object Detection\n- NEW: Native multi-spectral UAV/satellite imagery support (5+ bands)\n- NEW: Automatic NDVI calculation for vegetation detection using NIR/Red bands\n- NEW: Enhanced batch processing with up to 100 objects for vegetation\n- NEW: Intelligent shape filtering to reject roads/tracks in vegetation detection\n- NEW: Dual processing path - RGB for SAM2, full spectral for vegetation analysis\n- NEW: Specialized detection helpers for Agriculture, Road, Vehicle, Water, Vessels, and General classes\n- NEW: Non-blocking queue system - submit multiple requests without waiting\n- NEW: Class-specific validation and detection algorithms optimized for each object type\n- FIXED: High-resolution reflectance value preservation (0-1 range) and data type truncation\n- FIXED: SAM2 tensor mismatch errors with multi-spectral input\n- FIXED: Vessels detection shoreline noise with strict size validation (>5000px rejection)\n- FIXED: Oversized mask validation (rejects masks >10% of image area)\n- FIXED: Crash prevention with robust processing state management\n- FIXED: Shape attribute renamed from 'class_name' to 'class' for consistency\n- FIXED: Mathematical warnings in texture calculation\n- ENHANCED: Vegetation detection with aspect ratio and solidity filtering\n- ENHANCED: Sequential processing with queue status feedback and position tracking\n- ENHANCED: Point and batch mode validation consistency\n- IMPROVED: Comprehensive logging for debugging high-resolution imagery issues\n- IMPROVED: User experience with rapid clicking support and clear status messages\n\n1.1.0 - Major Bug Fixes and GUI Improvements\n- FIXED: Multiple raster layer support - segmentation now works with selected raster layer\n- FIXED: Resolved \"point is out of raster bounds\" exception with multiple rasters loaded (must be same CRS)\n- FIXED: Panel focus management - controls properly lose focus after use\n- FIXED: Space key no longer re-triggers last clicked button\n- FIXED: Added close/minimize button to control panel header\n- FIXED: Font display issues on Hi-DPI screens\n- FIXED: Enabled bounding box selection mode for rectangular area prompts\n- NEW: Refined GUI with improved user interface design\n- NEW: Flexible panel width for better screen adaptation\n- Enhanced panel layout and control positioning\n- Improved keyboard event filtering and focus handling\n- Better multi-raster workflow support\n- Enhanced user experience with cleaner interface elements\n- Improved cross-platform UI compatibility\n- General stability and usability improvements\n\n1.0.0 - Major Update with Intelligent Model Selection\n- Intelligent model selection: SAM 2.1 for GPU, Ultralytics SAM2.1_B for CPU\n- Exceptional CPU performance: Sub-second segmentation on high-core systems (24+ cores)\n- Enhanced CPU performance with Ultralytics SAM2.1_B integration (5-30x speedup)\n- Automatic device detection (CUDA/Apple Silicon/CPU) with optimal model selection\n- SAM 2.1 support with improved accuracy for small objects and occlusion handling\n- Intelligent threading optimization: High-core CPUs (16+) use 75% of cores for maximum throughput\n- Multi-threaded processing for responsive UI during inference\n- Point and BBox segmentation modes with adaptive processing\n- 12 pre-defined classes + custom class creation with color coding\n- Vehicle and Ship classes for transportation and maritime analysis\n- Undo functionality for mistake correction with polygon-level tracking\n- Custom output folder selection with user-configurable paths\n- Optional debug mask saving (disabled by default for performance)\n- Automatic raster layer re-selection for streamlined workflow\n- Professional shapefile export with detailed attributes and metadata\n- Performance optimization based on zoom level and hardware capabilities\n- Comprehensive error handling and user feedback system\n- Professional workflow features optimized for GIS analysis\n- Updated dependencies: torch, torchvision, ultralytics, opencv-python, rasterio, shapely, hydra-core\n- Automatic model downloading: Ultralytics handles SAM2.1_B, plugin manages SAM 2.1.\n- Enhanced memory management and processing efficiency\n- Cross-platform compatibility with Windows, macOS, and Linux", "external_deps": null, "download_url": "https://plugins.qgis.org/plugins/GeoOSAM/version/1.4.3/download/"}