ST-BEMD is a 2-D empirical mode decomposition I built this summer. It bends its envelopes along the local ridge direction, so on fingerprints it should keep each ridge’s orientation intact better than the standard, direction-blind version. On 30 real prints, orientation error dropped from 13.71° to 8.25°, and every single print improved. This note is about why that number does not mean what it looks like it means.
Two changes, one name
Compared with the 2003 baseline, ST-BEMD changes two things at once. The envelope goes from a global RBF interpolation to a local weighted average, and the averaging kernel goes from a circle to an ellipse stretched along the ridges. The method is named after the second change, so I ran a version with only the first one: the same local averaging, but with a circular kernel.
| Version | Orientation error (30 prints) | Step |
|---|---|---|
| Baseline: global RBF, circular | 13.71° | |
| Local average, circular kernel | 9.43° | −4.29° from the envelope |
| ST-BEMD: local average, elliptical kernel | 8.25° | −1.18° from the anisotropy |
About 78% of the improvement comes from the local envelope, which is an existing idea, not from the anisotropy the method is named after. The anisotropy’s own effect is real (better on 70% of prints, p = 0.001), but small. Worse, it shrinks as ridges curve: +1.42°, +1.13° and +0.20° from low to high curvature. The whole premise of the method predicts the opposite.
Then I tested the metric
The orientation error compares the orientation field of the extracted layer with the orientation field of the input. That made me wonder how estimators that know nothing about orientation would score.
| Estimator | Orientation error |
|---|---|
| Return the input unchanged | 0.00° |
| Subtract a Gaussian blur (σ = 4) | 4.23° |
| Subtract a Gaussian blur (σ = 1) | 7.26° |
| ST-BEMD | 8.25° |
| Local average, circular kernel | 9.43° |
| Baseline | 13.71° |
Doing nothing scores a perfect zero. Subtracting a blurred copy of the image scores about twice as well as my method. The metric’s best possible answer is to leave the input alone.
What the metric was really measuring
To check this properly, I picked the blur width on half the prints and scored on the other half, so the control couldn’t be tuned to the test set. I also added a second measure, IMF validity: how close the extracted layer is to having zero local mean, which is the thing sifting is supposed to achieve. Lower is better.
| Held out, 15 prints | Orientation error | IMF validity |
|---|---|---|
| Baseline | 15.91° | 0.131 |
| Local average, circular kernel | 10.08° | 0.210 |
| ST-BEMD | 9.34° | 0.185 |
| Gaussian blur control | 4.86° | 0.383 |
Across all ten estimators the two measures are anti-correlated at r = −0.94. Scoring well on orientation means having sifted less.

The orientation metric was largely measuring how little each estimator sifted.
So the 13.71° to 8.25° result supports a narrower claim: ST-BEMD’s envelope disturbs the orientation field less than a global interpolant does. It does not show that it recovers orientation better. One small point does survive cleanly: against the circular local version, ST-BEMD is better on both measures (9.34° vs 10.08°, and 0.185 vs 0.210). Same machinery, only the kernel shape differs.
A test that doing nothing can’t win as easily
To break the circularity, I took the reference orientation from the clean print and gave every method a noisy copy, so preserving the input is no longer enough. I also measured orientation with two unrelated instruments, a bank of Gabor filters and the structure tensor, so the method couldn’t be graded by the same tool it steers by.
| Noise level | Baseline | ST-BEMD | ST-BEMD ahead by |
|---|---|---|---|
| 20 dB (light) | 10.04° | 10.97° | −0.93° |
| 10 dB | 12.87° | 12.57° | +0.30° |
| 5 dB (heavy) | 18.33° | 15.06° | +3.27° |

With light noise ST-BEMD is slightly worse. With heavy noise it is ahead by 3.3° (3.6° with the second instrument), and both instruments agree on the ranking. That is the claim I can defend: direction-adaptive local envelopes are more robust to noise than global RBF interpolation.
It is still not a clean win. Doing nothing remains the lowest-error entry, and the blur still beats every EMD method on orientation. This protocol is necessary, not sufficient.
What I’d tell myself in May
Build the control before the method. If a metric gives its best score to an estimator that does nothing, it cannot reward an estimator for doing something. I only found this because I tried to beat my own number with something deliberately dumb, and it won.