Image classification, hyperspectral & target detection

The classifier suite, air-gapped, on the analyst’s desk.

The classic Semi-Automatic Classification Plugin algorithm set and ENVI-class hyperspectral exploitation, implemented in pure C# and rendered as a raster function on the same ImageServer as everything else. Train from ROI polygons, GPS points or SAM2 segments; assess accuracy with a confusion matrix and Kappa; run change detection and object-based classification; and add Random Forest, SVM and XGBoost through an optional sidecar whose trained trees score in-process.

SAM · MinDist · MaxLik · Parallelepiped · K-meansRF · SVM · XGBoostPPI · N-FINDR · VCACEM · ACE · MF · MTMF · RXDPCA · MNFTOA + DOS1OBIA + GLCM

At a glance

  • Per-pixel (pure C#)Spectral Angle Mapper, Minimum Distance, Maximum Likelihood (Mahalanobis via Cholesky with ridge guard), Parallelepiped, K-means (k-means++ seeding)
  • EnsemblesRandom Forest, SVM, XGBoost trained in a scikit-learn sidecar, exported as portable tree JSON and scored by a C# tree-walker — no Python at inference
  • HyperspectralEndmembers PPI / N-FINDR / VCA; targets CEM, ACE, Matched Filter, MTMF; anomaly RXD (global + local); PCA and MNF transforms
  • CalibrationTier-0 TOA and Tier-1 DOS1 reflectance from Landsat MTL and Sentinel-2 MTD sidecars
  • WorkflowROI + GPS + SAM2 training, accuracy assessment (OA, producer’s / user’s, Cohen’s Kappa), two-date change map with from→to tally, OBIA with GLCM texture and shape, majority filter
  • RenderrenderingRule {rasterFunction:"Classify", signatureSetId, smoothRadius, calibrate:"dos1"} on any ImageryTileLayer
SCP parityENVI-class HSI target detectionGPKG-backed signature storeBand-stack scenes on the headless server

Capabilities

Supervised, unsupervised, spectral and object-based

Per-pixel classifiers

SAM (θ = acos(p·m / ‖p‖‖m‖)), Minimum Distance, Maximum Likelihood with Mahalanobis distance via Cholesky, Parallelepiped and unsupervised K-means — Welford mean and covariance training from your ROIs.

  • Inline K-means preview: KMeans {k:5}
  • Signature sets persist in a GeoPackage store
  • Majority filter and smoothing radius on render

Machine-learning ensembles

Random Forest, SVM and XGBoost train in an optional scikit-learn sidecar; the trained ensemble exports to a portable tree JSON that the in-process C# walker scores — no Python at runtime, no round trips.

  • Capability-gated: /capabilities reports what is installed
  • Same signature sets and ROIs as the per-pixel classifiers

Hyperspectral exploitation

Endmember extraction (PPI, N-FINDR, VCA), target detection (CEM, ACE, Matched Filter, MTMF), anomaly detection (RXD global and local) and PCA / MNF dimensionality reduction — pure C#.

  • Band-stack fusion builds the N-band cube from single-band rasters
  • Results render as ImageServer raster functions

Accuracy and change

Seeded stratified sampling, confusion matrix with overall, producer’s and user’s accuracy and Cohen’s Kappa on a Plotly heatmap; post-classification change detection with a from→to transition tally.

  • Radiometric calibration TOA + DOS1 from Landsat MTL / Sentinel-2 MTD
  • TemporalFunction Difference for dNBR-style two-date maps

Object-based (OBIA)

Segment-level classification with GLCM texture and shape features on SAM2 or algorithmic segments; click-to-mask SAM2 segmentation returns GeoJSON polygons.

  • SAM2 sidecar (local weights, no cloud)
  • OBIA results share the signature store

Automation on the headless server

A scene groups related collects — a multispectral band stack, a mosaic, a stereo pair — into one VRT and analyzes it as one image: fuse → classify → class-map GeoTIFF registered as a COG, with the class breakdown on the job.

  • POST /api/scenes {collectIds, fusion:"BandStack", analysis:{autoClassify, signatureSetId}}
  • Auto-index and optional auto-detect on every arriving collect

Analyst workflow

Train, classify, assess, detect change

The workflow mirrors SCP so analysts trained on QGIS carry their habits across; the outputs are ImageServer layers any client can consume.

  1. CalibrateConvert DN to TOA or DOS1 reflectance from the sensor metadata so signatures transfer between dates.
  2. TrainDraw ROI polygons, drop GPS points or click SAM2 segments; the signature store accumulates class statistics.
  3. ClassifyPick SAM, MaxLik, MinDist, Parallelepiped, K-means or a trained RF / SVM / XGBoost ensemble; render it as a Classify raster function.
  4. AssessRun the seeded accuracy assessment; read OA, per-class accuracies and Kappa from the confusion matrix.
  5. Detect changeClassify the second date and produce the from→to change map — or run CEM / ACE / RXD for a specific target or anomaly instead.

Specifications

Algorithms and routes

Classifiers

  • Pure C#SAM · Minimum Distance · Maximum Likelihood · Parallelepiped · K-means
  • Sidecar-trainedRandom Forest · SVM · XGBoost (port 8006), scored in C#
  • TrainingROI polygons · GPS points · SAM2 segments; Welford statistics
  • AssessmentSeeded Fisher-Yates (default seed 7), OA, producer’s / user’s, Cohen’s Kappa

Hyperspectral

  • EndmembersPPI · N-FINDR · VCA
  • TargetsCEM · ACE · MF · MTMF
  • AnomalyRXD global + local
  • TransformsPCA · MNF
  • CubesBand-stack VRT fusion of single-band rasters

Render & automate

  • Raster functionClassify with signatureSetId, smoothRadius, calibrate
  • ChangePost-classification from→to; TemporalFunction Difference
  • OBIAGLCM texture + shape per segment
  • ScenesPOST /api/scenes BandStack / Mosaic → autoClassify → COG

Honest scope

What ships, what is optional, what is next

Defense buyers get burned by overclaims. This is the plain-language scope for this capability, drawn from the product’s own documentation.

  • Shipped Per-pixel, HSI, calibration, assessment, change, OBIA — Pure C# in the engine core; runs on the workstation and the headless Linux server alike.
  • Optional sidecar / gated RF / SVM / XGBoost training — Needs the scikit-learn sidecar on port 8006 for training; inference is in-process C#.
  • Optional sidecar / gated SAM2 and YOLO-E — Local model weights and a Python sidecar; GPU strongly recommended. No cloud calls.
  • Roadmap Vector search / RAG — The AI assistant’s RAG and vector-search routes are stubs today and are not marketed on this site.

GeoTactical Insights · powered by 3D Map Explorer

See it on a disconnected machine.

A 30-minute guided demo on your own data: ingest, exploit, fuse, share to TAK and export — with the network cable out. We will also tell you exactly what is a sidecar, what is gated and what is still roadmap.

GeoTactical Insights

GEOINT and defense workflows powered by 3D Map Explorer, the air-gapped geospatial intelligence platform from Tech Maven Geospatial.

info@techmavengeospatial.com
3dmapexplorer.techmaven.net