Hyperspectral AI systems

Building a Ground-Up Hyperspectral AI System for Mineral Exploration

From raw sensor data and mixed labels to inspectable mineral outputs.

Raw sensor data and the labels that come with real fieldwork rarely line up cleanly. We had to build the full path from collection through modeling and into outputs that could be reviewed and challenged.

Sensors capture detailed curves across many narrow bands. Minerals leave distinct signatures in those curves that standard imaging misses. Conditions in the field shift constantly, and labels often come from different methods that don't always agree. Small classes matter most, yet they are easy to miss in the overall picture.

The sensor gives you spectra

Hyperspectral sensors just dump reflectance numbers across hundreds of narrow bands. Visible through shortwave infrared. One pixel is basically a full curve. Different minerals create absorption dips that RGB cameras completely miss. The physics is not the mystery. Getting from the raw dump to something you can trust is where everything breaks or works.

Hyperspectral sensor spectral curve concept

On site the conditions never stay still. Labels came from physical samples or direct observation. Annotators disagreed on the same pixel all the time. Mask conventions drifted between people. The actual target pixels were often a tiny fraction of the whole scene. You could hit high overall accuracy and still be completely wrong on the classes that mattered.

The labels fought back

Careful checking of every training mask against the actual values caught mismatches that would have silently corrupted training. Class imbalance was extreme, so sampling and augmentation came first — rotations, noise, stretching the curves — before architecture choices could be compared fairly.

Label auditing and conflicting annotations on rock samples

Per-class precision, recall, and F1 made the problem obvious fast. The sparse classes were getting crushed. Other measures cut through the imbalance that plain accuracy hides.

Adding space to the spectrum

Looking at one pixel in isolation throws away the geology. A zone next to a different feature carries different meaning than the same signature sitting alone. We ran one stream on the reflectance curve itself and another on the local patch. Patch size became something we tuned to the actual scale of the features we cared about.

Spectral and spatial data fusion concept

A reference comparison gave a sanity check we could discuss in the same terms as the sensor. When the model and the reference disagreed on a pixel that looked right spatially, that told us where to dig.

The maps hide the hard parts until you look close

The pictures told us more than the numbers. Overlays and confidence maps made the fuzzy boundaries visible. Most of the bad errors happened at contact zones where the sensor was seeing mixed materials and the labels were already fuzzy. Confusion patterns showed which classes overlapped most.

Confidence maps and mineral segmentation at contact zones

Letting people see the wobble

If someone is actually going to use this, they need to see the raw data and the doubt. Raw curves, the steps we took, per-pixel confidence. If you hide the uncertainty, people eventually stop trusting the output.

Scientific interface showing raw spectra, preprocessing, and per-pixel confidence

The label work and those boundary cases are what decide whether any of this ever gets used. Once we had some handle on those, the modeling part felt almost secondary.

We are still early on this kind of work. The interesting problems are rarely the ones that look clean in a slide.

Back to portfolioDiscuss similar work