FragmentIQ — Post-Blast Muckpile Fragmentation Analysis Workbench
A post-blast fragmentation workbench that delineates muckpile fragments by watershed in the browser and derives a mass-weighted particle-size distribution with a Rosin-Rammler fit and P10/P50/P80. It is scored against generator truth on synthetic muckpiles, with a real-photo lane of 5 CC BY images from an Iranian iron-ore mine where every number is explicitly RELATIVE, because no sieve ground truth exists, the scale is unknown, and n is small. Honest by design: the over-segmentation bias is shown directly in the artifact (116 recovered vs 70 true fragments), and the learned refinement gain is reported as indicative, not significant, on n=8.
Business Context
A fragmentation curve is only actionable if its bias and its uncertainty are known. FragmentIQ's value is that it surfaces both: the over-segmentation bias is visible directly in the artifact (116 recovered fragments against 70 true on one case), and the real-photo lane refuses to attach any accuracy or millimetre size to a photo that has no sieve truth and no known scale, calling every real number relative in the app in both languages. The learned refinement is reported honestly, a P50-error improvement that is indicative not significant at n=8, with hyperparameters selected on a disjoint tune bank and reported on a disjoint test bank. That discipline is what separates a fragmentation aid from a plausible-looking curve.
Strategic Value
FragmentIQ's honesty asset is that it shows its own bias and refuses accuracy claims where truth does not exist. The over-segmentation bias is quantified in the artifact (116 recovered vs 70 true fragments), not hidden; the 5 real Gole-Gohar photos are shipped as an explicitly RELATIVE lane with scale unset and no sieve ground truth, so no millimetre P80 is ever printed for a real photo; and the learned frag-edge CNN gain (P50 error 27.2% -> 23.8%) is stated as indicative not significant at n=8, with clean tune/test bank separation. The card also names what is cited but not built: no Kuz-Ram, no Swebrec, and no Segment Anything, the last being the highest overclaim risk because the source images come from a mirror named for SAM while FragmentIQ borrows only the images. It is a reusable pattern for image-based fragmentation analysis that states its bias, its scale limits and its sample size.
The Challenge
Post-blast fragmentation drives loader productivity, crusher throughput and downstream grinding energy, so measuring the muckpile particle-size distribution is worth a lot. Image-based delineation is the practical way to do it, and it has a known bias: watershed methods over-segment, cutting single blocks into several fragments and skewing the size curve fine. Two further traps make it easy to overclaim: benchmarks on a handful of samples read a few points of gain as real when it is noise, and real muckpile photos rarely have a sieve-measured ground truth or a known scale, so any millimetre number attached to a real photo is unfounded.
Our Approach
FragmentIQ runs a full classical computer-vision chain live in the browser over 7 synthetic muckpile cases: grayscale foreground and Otsu thresholding, a distance transform, marker non-maximum suppression (one marker per fragment), a descending distance-transform flood to labelled fragments (the WipFrag / Split-style watershed method), connected-component labelling and morphological granulometry. Areas become equivalent diameters, a mass-weighted percent-passing curve is built proportional to diameter cubed, and a Rosin-Rammler fit by linearised least squares yields P10/P50/P80 with xc, n and r-squared. A learned frag-edge CNN (ONNX) refines the foreground to reduce over-segmentation and is the one learned model that runs live; a separate fines-bias regressor is committed but evaluated offline only. A real-photo lane loads 5 CC BY images from the Gole-Gohar iron-ore mine, marked RELATIVE with scale unset. Kuz-Ram, Swebrec and Segment Anything are cited in the literature but not implemented. Static on GitHub Pages, offline bake importing the same TypeScript engine the browser runs.
Key Performance Indicators
| KPI | Baseline | Result | Impact |
|---|---|---|---|
| What the result gives you | A single size number | A mass-weighted particle-size distribution with a Rosin-Rammler fit and P10/P50/P80, live in the browser | The whole size curve, not one point |
| Over-segmentation, shown not hidden | Report the fragment count as truth | 116 recovered vs 70 true fragments on R-COARSE - the bias is in the artifact | A known property of image-based delineation, quantified |
| Learned gain, honestly scoped | Present a benchmark delta as significant | frag-edge CNN cuts P50 error 27.2% -> 23.8%, indicative not significant at n=8, tune/test banks disjoint | A 3.4-point delta on 8 samples is called what it is |
| Real photos are relative-only | Print a millimetre P80 for a field photo | 5 real Gole-Gohar photos marked RELATIVE: scale unset, no sieve truth, stated in EN + ES | No accuracy claim where no ground truth exists |
Architecture
fragmentiq pipeline
The size curve, its bias, and what a real photo cannot tell you
FragmentIQ is a post-blast fragmentation workbench. It delineates muckpile fragments by watershed in the browser and derives a mass-weighted particle-size distribution with a Rosin-Rammler fit and P10/P50/P80. Live at fragmentiq.fasl-work.com, part of the Faena mining-analytics hub.
The full classical chain, run live
Grayscale foreground and Otsu thresholding, a distance transform, marker non-maximum suppression (one marker per fragment), a descending-flood watershed to labelled fragments (the WipFrag / Split-style method), connected components and morphological granulometry. Areas become equivalent diameters, percent-passing is built proportional to diameter cubed, and a Rosin-Rammler least-squares fit gives P10/P50/P80 with xc, n and r-squared. A learned frag-edge CNN (ONNX) refines the foreground to reduce over-segmentation and is the one learned model that runs live; a separate fines-bias regressor is committed but evaluated offline only.
What is cited, and what is not built
To be exact: Kuz-Ram, Swebrec and Segment Anything (SAM) are cited but not implemented. FragmentIQ fits Rosin-Rammler (which underlies Kuz-Ram) and delineates by watershed; there is no SAM, no SAM weights, no SAM inference. The real images come from a public mirror that happens to be named for SAM, and FragmentIQ borrows only the images.
Honest about bias, sample size and scale
The over-segmentation bias is shown directly in the artifact: on one coarse case the method recovers 116 fragments against 70 true, skewing the curve fine, which is a known property of image-based delineation. The learned refinement cuts P50 error 27.2% -> 23.8% with boundary F1 0.9974, but this is stated as indicative not significant at n=8, with hyperparameters selected on a disjoint tune bank and reported on a disjoint test bank. And the 5 real Gole-Gohar photos (CC BY 4.0, DOI 10.17632/z78ghz96bn.1) ship as an explicitly RELATIVE lane: the scale is unset, no sieve ground truth exists, and the app says so in English and Spanish, so no millimetre P80 is ever printed for a real photo.
Technology Stack
In action
A short tour of the live app — the real interface, recorded from the deployed site.

Application Screenshots

