π°οΈ State-of-the-art image segmentation using Meta's SAM 2.1, SAM3, and Ultralytics models with intelligent hardware optimization
- π€ SAM3 Integration: Text prompts, similar object detection, auto-segment
- π Similar from Selection: Use any segmented polygon as exemplar to find matching objects (v1.4)
- πΊοΈ Vector Extent ROI: Restrict entire-raster processing to a polygon area of interest (v1.4, Pro)
- π Pro Licensing: Free tier (extent) + Pro tier (entire raster)
- βοΈ Model Size Selection: Choose from 4-5 sizes for both Meta & Ultralytics models
- πΊοΈ Tiled Processing: Process entire rasters with auto-tiling for large imagery
- π₯ Automatic Downloads: All models download automatically with progress bars
- π Hugging Face Integration: SAM3 downloads via token authentication
- π Exceptional CPU Performance: Sub-second segmentation on high-core CPUs (24+ cores)
- π§ Intelligent Hardware Detection: Automatically selects best models for GPU/CPU
- π°οΈ Multi-spectral Support: Native 5+ band UAV/satellite imagery with NDVI calculation
- π― Multiple Modes: Point-click, bounding box, batch, auto-segment, text prompts, similar objects
- π 12 Pre-defined Classes: Buildings, Roads, Vegetation, Water, Vehicle, Vessels, and more
- πΏ Enhanced Vegetation Detection: Spectral analysis for superior vegetation mapping
- π Online Map Support: Works with ESRI, Google Satellite, and XYZ/WMS/WMTS tile services
- βΆ Undo Support: Mistake correction with polygon-level undo on both Segment and Detect tabs
- π Custom Output: User-selectable output folders
- π¨ Class Management: Custom classes with color coding
- π‘ Smart Workflow: Auto-raster selection, progress tracking
- πΎ Professional Export: Multi-format export (GeoPackage, Shapefile, GeoJSON, FlatGeobuf)
- π§ Adaptive Processing: Optimized based on zoom level and hardware
| Hardware Type | Available Models | User Selection |
|---|---|---|
| GPU (>3GB) | SAM2.1 Tiny/Small/Base+/Large (Meta) + SAM3 | 5 models via dropdown |
| Apple Silicon | SAM2.1 Tiny/Small/Base+/Large (Meta) + SAM3 | 5 models via dropdown |
| CPU / Low GPU | SAM2.1_T/B/L (Ultralytics, CPU-optimized) | 3 models via dropdown |
| Model | Size | Best For | Speed (GPU) | Speed (CPU 24+) |
|---|---|---|---|---|
| SAM2.1 Tiny | 156MB | Fast processing | 0.2-0.4s | 1-2s |
| SAM2.1 Small | 184MB | Balanced | 0.3-0.6s | 1.5-3s |
| SAM2.1 Base+ | 323MB | High accuracy | 0.5-1s | 3-5s |
| SAM2.1 Large | 898MB | Best quality | 0.8-1.5s | 5-8s |
| SAM3 | ~160MB | Auto-segment/Text | 0.3-0.7s | N/A |
| SAM2.1_T (CPU) | ~40MB | Fast CPU | N/A | <1s |
| SAM2.1_B (CPU) | ~80MB | Balanced CPU | N/A | 1-2s |
| SAM2.1_L (CPU) | ~224MB | Quality CPU | N/A | 2-3s |
π― Intelligent Selection:
- GPU Systems (>3GB): Dropdown offers 4 SAM2.1 sizes + SAM3 for flexibility
- CPU Systems: Dropdown offers 3 CPU-optimized SAM2.1 variants (T/B/L)
- Automatic Detection: Plugin detects your hardware on startup
- One-Click Download: Select any model, it downloads automatically with progress bar
- Default Choice: SAM3 for GPU (if available), SAM2.1_B for CPU
Enable in QGIS Plugin Manager or download from GitHub
Supported Data Sources:
- ποΈ Local raster files (GeoTIFF, JP2, etc.)
- π ESRI services
- πΊοΈ Google Satellite, Bing Aerial (XYZ tiles)
- π WMS/WMTS tile services
Select a class (Buildings, Water, etc.) and click on objects in your imagery. Works identically with local rasters and online tile services.
Export segmented polygons in GeoPackage, Shapefile, GeoJSON, or FlatGeobuf format
SAM3 integration with semantic segmentation
Status: CLIP tokenizer bug FIXED
- Fix: Custom CLIP tokenizer monkey-patch applied at runtime
- Functionality: Enter text like "building", "car", "tree" to find matching objects
- Accuracy: High-quality semantic understanding via CLIP
- Tested: β Fully functional with all text prompts
How to use:
- Select SAM3 from model dropdown
- Enter text prompt (e.g., "buildings", "vehicles")
- Choose scope: "Visible Extent (AOI)" or "Entire Raster"*
- Click "Auto-Segment All Objects"
Status: Exemplar mode
- Fix: Same CLIP tokenizer fix enables exemplar-based search
- Functionality: Click one object to find all similar objects
- Technology: Uses SAM3 exemplar mode with CLIP embeddings
- Tested: β Fully functional
How to use:
- Select SAM3 from model dropdown
- Click "Find Similar" mode button
- Choose scope: "Visible Extent (AOI)" or "Entire Raster"*
- Click on a reference object to find all similar ones
*Pro Licensing:
GeoOSAM is free and open-source, but SAM3 Pro features help sustain development:
-
Free Tier (Forever):
- All SAM2/SAM2.1 features - unlimited
- SAM3 point, bbox, text prompts and similar mode on Visible Extent (AOI) - unlimited
- Perfect for most use cases!
-
Pro Tier - Early Access ($15):
- SAM3 text prompts and similar mode on Entire Raster with auto-tiling
- Ideal for production workflows and large-scale mapping
β οΈ Experimental: SAM3 is under active development - bugs expected!- Your support directly funds bug fixes and new features
- One-time payment, lifetime v1.x updates, 1 device per license
- Works offline (30-day cache), best-effort support
- Early supporter pricing - price may increase as features stabilize
-
Get License: Email [email protected]
-
Activation: Click "Manage License" button in plugin
Test Results (v1.3):
- β SAM3 initialization: SUCCESS
- β Auto-segmentation: SUCCESS
- β Text prompts (CLIP): SUCCESS (tokenizer fixed)
- β Exemplar mode (CLIP): SUCCESS (tokenizer fixed)
- β Entire raster processing: SUCCESS (tiled processing with 1024px tiles)
π₯ SAM3 Download:
- Downloads via Hugging Face with access token
- Token prompt appears in QGIS on first use
- Requires Read token from https://huggingface.co/settings/tokens
- GPU >3GB VRAM:
- β NVIDIA GPU (CUDA) - Recommended, best performance
- β Apple Silicon (M1/M2/M3) - Supported, good performance
- β AMD GPU - Not officially supported (ROCm is unreliable in practice)
- β CPU-only - SAM3 not available (use SAM2.1 instead)
- Ultralytics >= 8.3.237
- Hugging Face account with access token
Note: If you have AMD GPU or CPU-only, SAM3 features won't work. Use SAM2.1 with point/bbox/auto segmentation instead.
For current limitations and upcoming fixes, see:
π Known Issues
Batch mode is currently in active development with varying performance across different object classes:
- Vegetation β - Advanced NDVI analysis, excellent results with multi-spectral imagery
- Vessels β - Optimized for water body detection, good performance
- Buildings/Residential π§ - Basic functionality, mixed results
- Other classes π§ - Limited testing, performance may vary
- Point-click mode remains the most reliable for all classes
- Batch mode works best on clear, high-contrast imagery
- Mixed workflow recommended: use batch where it works well, point-click for precision
- QGIS 3.16+
- Python 3.7+
- 8GB RAM
- 2GB disk space
- QGIS 3.28+
- NVIDIA GPU with CUDA or Apple Silicon
- 16GB+ RAM
- SSD storage
python3 -m pytest tests/ -vRequires: pytest, numpy, opencv-python, rasterio, shapely
- Open QGIS
- Go to Plugins > Manage and Install Plugins
- Search "GeoOSAM"
- Click Install Plugin
- Install dependencies (see below)
-
Download ZIP from: https://github.com/espressouk/GeoOSAM
-
Extract the plugin:
# Extract and rename to remove -main suffix unzip GeoOSAM-main.zip mv GeoOSAM-main geoOSAM cd geoOSAM
-
Copy to QGIS plugins directory:
# Linux cp -r . ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/geo_osam # macOS cp -r . ~/Library/Application\ Support/QGIS/QGIS3/profiles/default/python/plugins/geo_osam # Windows xcopy . "C:\Users\%USERNAME%\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\geo_osam" /E /I
-
Install dependencies (see below)
π― Windows: Use OSGeo4W Shell (Recommended)
IMPORTANT: Choose CPU or CUDA version based on your hardware!
# Open OSGeo4W Shell (Start Menu β OSGeo4W β OSGeo4W Shell)
# Check if you have NVIDIA GPU:
nvidia-smi
# If nvidia-smi shows your GPU, install CUDA version:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
pip install "ultralytics>=8.3.237" opencv-python rasterio shapely hydra-core iopath pillow numpy
# If no NVIDIA GPU or nvidia-smi fails, install CPU version:
# pip install torch torchvision "ultralytics>=8.3.237" opencv-python rasterio shapely hydra-core iopath pillow numpyRequired for SAM3 text prompts and similar-object detection
SAM3 concept-prompt modes (text prompts, Find Similar) require the Ultralytics CLIP fork. The standard pip install clip package will not work and will cause a TypeError: 'SimpleTokenizer' object is not callable crash.
pip install git+https://github.com/ultralytics/CLIP.git ftfy wcwidthGeoOSAM includes a runtime compatibility shim (sam3_clip_fix.py) that handles tokenizer differences across CLIP versions, but the Ultralytics fork is still required for SAM3 text features to function.
Hugging Face Access (SAM3 Weights)
To download SAM3 weights from within QGIS, create a Hugging Face Access Token with Token type: Read and paste it into the download dialog.
π macOS: Use Terminal
pip3 install torch torchvision "ultralytics>=8.3.237" opencv-python rasterio shapely hydra-core iopath pillow numpyπ§ Linux: Use Terminal
# For NVIDIA GPU with CUDA:
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu118
pip3 install "ultralytics>=8.3.237" opencv-python rasterio shapely hydra-core iopath pillow numpy
# For CPU-only:
# pip3 install torch torchvision "ultralytics>=8.3.237" opencv-python rasterio shapely hydra-core iopath pillow numpyπ§ Alternative: QGIS Python Console (All Platforms)
# Open QGIS > Plugins > Python Console, paste and run:
import subprocess
import sys
packages = ["torch", "torchvision", "ultralytics>=8.3.237", "opencv-python", "rasterio", "shapely", "hydra-core", "iopath", "pillow", "numpy"]
for pkg in packages: subprocess.check_call([sys.executable, "-m", "pip", "install", pkg]); print(f"β
Installed {pkg}")# After installation, verify CUDA is working (QGIS Python Console):
import torch
print(f"CUDA available: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"GPU: {torch.cuda.get_device_name(0)}")Expected: CUDA available: True + your GPU name
If False: You installed CPU-only PyTorch by mistake! See Installation Guide for fix.
All models download automatically with progress bars on first use.
π How It Works:
- Select Model Size: Choose from dropdown (4 GPU models or 3 CPU models)
- Automatic Download: First-time use triggers download with progress bar
- One-Time Setup: Models cached locally for instant future use
- No Manual Steps: Everything happens automatically!
π₯ Download Details:
| Model Type | How It Downloads | Where Stored |
|---|---|---|
| SAM2.1 (GPU) | Direct download with progress dialog | Plugin checkpoints folder |
| SAM2.1 T/B/L (CPU) | Ultralytics auto-download (notification) | ~/.ultralytics/weights/ |
| SAM3 | Hugging Face with token prompt | Plugin folder or Ultralytics cache |
β‘ Performance Highlights:
- Multiple Size Options: Choose speed vs accuracy tradeoff
- 24+ Core CPUs: Sub-second segmentation with SAM2.1_T
- Intelligent Threading: Automatically uses 75% of available cores
- Memory Optimized: Efficient processing for large imagery
- GPU Acceleration: Full CUDA/Apple Silicon support
π§ Manual Download (if needed):
# SAM2.1 models (GPU) are auto-downloaded on first use
# SAM2.1 T/B/L (CPU) are auto-downloaded by Ultralytics
# SAM3 requires Hugging Face token (prompted in UI)
# Manual fallback for SAM2.1 (rare):
cd ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/geo_osam/sam2/checkpoints/
wget https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_tiny.pt
# Replace 'tiny' with 'small', 'base_plus', or 'large' as needed- ποΈ Urban Planning: Building and infrastructure mapping
- π± Environmental Monitoring: Vegetation and land cover analysis with NDVI
- π°οΈ UAV/Drone Mapping: Multi-spectral imagery analysis and processing
- π Transportation: Vehicle and traffic analysis
- π Coastal Studies: Ship detection and water body mapping
- ποΈ Construction: Site monitoring and progress tracking
- π‘ Remote Sensing: Large-scale multi-spectral imagery analysis
- πΎ Agriculture: Crop monitoring with spectral vegetation indices
GeoOSAM now provides native support for high-resolution multi-spectral imagery:
| Feature | Capability | Benefit |
|---|---|---|
| 5+ Band Support | Automatic NDVI calculation | Superior vegetation detection |
| Reflectance Values | 0-1 range preservation | Accurate spectral analysis |
| High Resolution | UAV imagery (0.08m/pixel) | Fine-scale object detection |
| Batch Processing | Up to 100 objects per selection | Efficient large-area mapping |
| Shape Filtering | Road/track rejection | Clean vegetation results |
- Multi-spectral UAV: 5+ band imagery (Blue, Green, Red, NIR, RedEdge)
- Satellite Imagery: Landsat, Sentinel, Planet, etc.
- Reflectance Data: Automatically handles 0-1 reflectance values
- High-Resolution: Optimized for 0.05-0.1m pixel size UAV imagery
- Standard RGB: Backward compatible with 3-band imagery
πΉ 5+ Bands: Automatic NDVI calculation using NIR/Red bands
πΉ 3-4 Bands: Enhanced green channel processing
πΉ RGB: Standard texture analysis
πΉ Single Band: Grayscale texture detection
For vegetation mapping, GeoOSAM automatically:
- Calculates NDVI from NIR and Red bands
- Filters linear features (roads, tracks) with shape analysis
- Processes up to 100 objects in batch mode
- Validates object geometry (aspect ratio, solidity)
- Preserves spectral fidelity throughout processing
- SAM 2.1 (Meta): Latest from Meta AI with 4 size variants (Tiny/Small/Base+/Large)
- Sept 2024 release with improved accuracy for small objects
- Optimized for GPU inference (CUDA/Apple Silicon)
- Sizes: 156MB - 898MB with speed/accuracy tradeoffs
- SAM2.1 T/B/L (Ultralytics): CPU-optimized variants
- T=Tiny (40MB), B=Base (80MB), L=Large (224MB)
- Enhanced multi-core CPU performance
- Efficient threading for sub-second segmentation
- SAM3 (Ultralytics): Advanced instance segmentation
- β Auto-segmentation - WORKING (tested 2025-12-26, 5 objects detected)
- β Text prompts - WORKING (CLIP tokenizer fixed in v1.3 with runtime patch)
- β Similar objects mode - WORKING (CLIP tokenizer fixed in v1.3)
- Requires Ultralytics >= 8.3.237 and GPU >3GB
- Automatic Selection: Based on hardware detection and user preference
- Intelligent Threading: High-core CPUs (16+) use 75% of cores for optimal performance
- Model Size Selection: User can choose speed vs accuracy tradeoff per task
- Adaptive Crop Sizes: Zoom-level aware processing
- Memory Management: Efficient handling of large imagery
- Device Detection: Automatic CUDA/MPS/CPU optimization with core-count awareness
- Tiled Processing: 1024x1024 tiles with 128px overlap for large rasters
- Threaded Workers: Non-blocking UI during intensive operations
We welcome contributions! Please see our Contributing Guide.
- Issues: GitHub Issues
- Email: [email protected]
- Documentation: Wiki
- Meta AI: For the Segment Anything Model (SAM 2.1)
- Ultralytics: For SAM2.1_B integration and optimization
- QGIS Community: For the excellent GIS platform
- PyTorch Team: For the deep learning framework
If you find this plugin useful, please consider buying me a coffee to support continued development and new features.
This project is licensed under the GPL v2 License - see the LICENSE file for details.
If you use GeoOSAM in your research, please cite:
@software{geoosam2025,
title={GeoOSAM: Advanced Segmentation for QGIS with Intelligent Model Selection},
author={Butbega, Ofer},
year={2025},
url={https://github.com/espressouk/GeoOSAM}
}- β¨ IMPROVED: Vegetation segmentation on multispectral imagery (5+ bands) β less shadow and soil bleed in tree and crop masks (automatic; no effect on RGB or non-vegetation classes)
- π§ FIXED: BBox selections on high-resolution imagery were sometimes rejected β small boxes now register correctly
- π§ FIXED: Batch mode could freeze the request queue after an error β now recovers cleanly
- π NEW: Fill Holes in Filters tab (Pro) β removes interior voids from segmented polygons
- π§ FIXED: SAM3 text prompts now use native concept-prompting β text was previously ignored
- π§ FIXED: Removed debug print statements from production code
- π NEW: Automated test suite (41 tests)
- π NOTE: Pro users must connect online once after updating to v1.4.2
- π§ FIXED: Flake8 E231/E221/E226 whitespace issues in geo_osam_dialog.py and vegetation_helper.py
- π¨ NEW: Redesigned 4-tab flat UI β Segment, Detect, Results, Filters, Settings as gear overlay
- π NEW: Similar from Selection β use any segmented polygon as exemplar
- πΊοΈ NEW: Vector Extent ROI for Entire Raster (Pro) β restrict tiled processing to a polygon
- βΆ NEW: Undo and Cancel buttons on Detect tab
- π NEW: Find Similar toggleable β click again to exit similar mode
- π FIXED: Flake8 code quality issues cleared (unused imports, bare excepts, ambiguous names)
- π FIXED: Status label color styles now correctly applied (broken f-string in stylesheet)
- π FIXED: Removed
evalfrom checkpoint download script (flagged by QGIS plugin repository security scanner) - π FIXED:
torch.loadnow usesweights_only=Truefor safer checkpoint loading - π FIXED: Suppressed Bandit B310 false positives on
urllibcalls using hardcodedhttps://URLs - π FIXED: Removed unused HuggingFace Hub download functions from
build_sam.py(dead code, triggered critical security flag) - π FIXED: Excluded dev-only shell scripts and
.batfiles from plugin package
- ποΈ NEW: Tabbed UI β "Segmentation" and "Settings" tabs for a cleaner, less cluttered layout
- π NEW: GSD / Resolution card β auto-detect from raster metadata or enter manually (cm/px)
- π NEW: Real-world size filtering β filter objects by min/max diameter (cm) or area (mΒ²); live pixel-equivalent hints update as you type
- π· NEW: Shape filters β min circularity, min compactness, max aspect ratio; applied after segmentation across all modes
- π NEW:
area_m2,diameter_cm,circularityattributes exported per feature - π NEW: Per-mask progress bar during text/similar mode processing
- π§ IMPROVED: Font sizes increased across the UI for laptop-screen readability
- π§ IMPROVED: Tooltips use HTML with explicit white background (QGIS compatible)
- π§ IMPROVED: Active filter summary shown inline in the status label
- π― NEW: Multi-point segmentation β Shift+click to add positive points, Ctrl+click for negative, normal click to run prediction
- π― NEW: Visual +/- markers on map showing accumulated points before prediction
- π NEW: Multi-format export support (GeoPackage, Shapefile, GeoJSON, FlatGeobuf)
- π NEW: GeoPackage as default export format
- π§ FIXED: License activation connectivity issue
- π§ FIXED: SAM3 multi-point predictions returning separate objects instead of combined result
- π§ FIXED: "NoneType has no attribute write" crash on Windows when sys.stderr is None during QGIS startup
- π§ FIXED: MD5 hash security flag (added usedforsecurity=False)
- π§ FIXED: Exemplar mask normalization in SAM3 similar object detection
π― Major Features:
- π€ SAM3 Support: Automatic instance segmentation (tested 2025-12-26)
- Auto-segment: β PRODUCTION READY - Automatically find all objects (5 objects detected in test)
- Text prompts: β WORKING - CLIP tokenizer fixed in v1.3 with runtime patch
- Similar objects: β WORKING - CLIP tokenizer fixed in v1.3 with runtime patch
- Free tier (extent) + Pro tier (entire raster) licensing
- βοΈ Model Size Selection: Choose optimal model for your needs
- GPU: 4 SAM2.1 sizes (Tiny/Small/Base+/Large, 156MB-898MB) + SAM3
- CPU: 3 SAM2.1 sizes (T/B/L, 40MB-224MB, Ultralytics optimized)
- User-friendly dropdown with size and performance info
- πΊοΈ Scope Selector: Process visible area (AOI) or entire raster
- AOI mode: Fast processing of visible extent
- Full raster mode: Auto-tiling with 1024px tiles, 128px overlap
- Progress tracking for tiled operations
- π Cancel button: Abort long-running tiled operations at any time
- π₯ Automatic Downloads: All models download on-demand
- SAM2.1 (GPU): Progress bar with percentage complete
- SAM2.1 T/B/L (CPU): Ultralytics auto-download with notification
- SAM3: Hugging Face token prompt for secure download
- Manual download URLs provided if auto-download fails
π§ Improvements:
- β¨ ENHANCED: Automatic hardware detection and model availability checks
- β¨ ENHANCED: UI dynamically shows/hides SAM3 features based on availability
- β FIXED: Similar mode bbox handling and mask result processing
- β FIXED: Threaded tiled processing for responsive UI during large raster operations
- π OPTIMIZED: All SAM2.1 model URLs verified and updated to September 2024 release
- π§ FIXED: PyTorch threading initialization error when other plugins pre-configure threads
- π§ FIXED: "cannot set number of interop threads" RuntimeError on plugin startup
- β‘ ENHANCED: Thread configuration with graceful fallback for pre-initialized environments
- π€ IMPROVED: Compatibility with other PyTorch-based QGIS plugins
- π NEW: Support for online tile services (XYZ, WMS, WMTS)
- πΊοΈ NEW: Works with ESRI, Google Satellite, Bing Aerial
- β‘ NEW: Automatic tile caching with proper georeferencing
- π°οΈ NEW: Native multi-spectral UAV/satellite imagery support (5+ bands)
- πΏ NEW: Automatic NDVI calculation for vegetation detection using NIR/Red bands
- π§ FIXED: High-resolution reflectance value preservation (0-1 range)
- π§ FIXED: Data type truncation issues with multi-spectral imagery
- π NEW: Enhanced batch processing with up to 100 objects for vegetation
- π― NEW: Intelligent shape filtering to reject roads/tracks in vegetation detection
- π§ FIXED: SAM2 tensor mismatch errors with multi-spectral input
- π§ FIXED: Oversized mask validation (rejects masks >10% of image area)
- π§ FIXED: Mathematical warnings in texture calculation
- πΏ ENHANCED: Vegetation detection with aspect ratio and solidity filtering
- π NEW: Comprehensive logging for debugging high-resolution imagery issues
- π°οΈ NEW: Dual processing path - RGB for SAM2, full spectral for vegetation analysis
- FIXED: Multiple raster layer support - segmentation now works with selected raster (same CRS)
- FIXED: Panel focus management - controls properly lose focus after use
- FIXED: Added close/minimize button to control panel header
- FIXED: Font display issues on Hi-DPI screens
- FIXED: Enabled bounding box selection mode for rectangular area prompts
- NEW: Refined GUI with improved user interface design
- NEW: Flexible panel width for better screen adaptation
- Enhanced panel layout and control positioning
- Improved keyboard event filtering and focus handling
- Better multi-raster workflow support
- General stability and usability improvements
- Intelligent Model Selection: Automatic SAM 2.1 vs SAM2.1_B selection
- Enhanced CPU Performance: SAM2.1_B integration for 5-10x CPU speedup
- Ultralytics Integration: Professional computer vision library support
- Improved Device Detection: Better GPU/CPU/Apple Silicon handling
- Updated Dependencies: Modern ML stack with automatic model downloads
To force CPU-only mode, set this environment variable before launching QGIS:
export GEOOSAM_FORCE_CPU=1Please check:
-
Plugin version (latest preferred)
-
QGIS version (3.16+ required)
-
Dependencies installed:
torchtorchvisionultralyticsopencv-pythonrasterioshapelyhydra-coreiopath
Report issues at: GitHub Issues
To be determined based on user feedback and usage patterns.
- Zoom wisely: Try different zoom levels to get the best results for your selected class.
- Force CPU mode: If GPU memory is limited
Last updated: 2026-06-12 Plugin Version: 1.4.3 QGIS Compatibility: 3.16+

