Poisson reconstruction for medical imaging
Estimating nine Poisson intensities with expectation maximization, with Fisher-information analysis and a reproducible, seeded simulation study.
Yong-Hwan Lee · Tony Storey
Published · Updated
Overview
Photon-counting measurements connect a physical forward model to a statistical estimator. This project studies a deliberately small version of that problem: recover nine nonnegative intensities on a grid from 16 independent Poisson counts. The report derives the likelihood, the Fisher information, and a nonnegative expectation-maximization (EM) update, then checks them in a seeded synthetic study.
The model is educational and emission-style: each count's mean is an additive sum of pixel intensities. It is not the exponential attenuation model of transmission X-ray CT. One lesson runs through the results: raising the likelihood of the observed counts and recovering the true field accurately are different goals.
Measurement model
Linear Poisson counts
With observations and unknown intensities ,
The known matrix has binary entries that mark which pixels contribute to each count. It is an idealized sensing design, not a calibrated scanner geometry. Identifiability depends on full column rank, and the fixed matrix used here has rank 9.
For comparison, an ideal transmission CT measurement has mean , where is an attenuation coefficient [3]. Taking a logarithm linearizes the background-free noiseless relation but does not preserve the Poisson distribution. So here is an intensity, not an attenuation coefficient, and the conclusions apply to the additive model only.
From pixels to a measurement
Each voxel (, numbered row by row) holds an unknown intensity . The diagram below shows six of the 16 rows of the fixed matrix : the three horizontal paths to and the three vertical paths to . Every crossed pixel contributes a hidden count with mean , and pixels off the path have . The remaining rows cover diagonal and single-pixel paths. Select a row or column to trace its three contributing voxels.
- Expected count
- Observed count
- A random Poisson draw whose mean is E[Y2].
Row 2 selected. Observation Y2 combines voxels p4, p5 and p6. Expected count: E of Y 2 equals a 2,4 times x 4 plus a 2,5 times x 5 plus a 2,6 times x 6.
Only the total Yi is observed, never the hidden per-voxel counts Nij. The E-step splits Yi among the crossed voxels in proportion to aijxj at the current estimate; the M-step uses those estimated shares to update each intensity xj.
Likelihood and information
Log-likelihood and I-divergence
Independence gives the likelihood of an observed count vector :
The estimate maximizes over , with the convention for zero counts. The generalized Kullback–Leibler divergence (I-divergence),
differs from only by terms that do not depend on . Minimizing it is therefore equivalent to maximizing the Poisson likelihood. Neither vector needs to sum to one.
Fisher information and the Cramér–Rao reference
At positive means, the expected negative Hessian of is
The covariance bound holds for unbiased estimators under the usual regularity conditions, and the study evaluates at the true . A nonnegative, finite-iteration EM estimator may be biased. For it, the CRLB is a reference point, not a guaranteed lower bound on MSE.
For with gain and fixed base field , . Errors are compared on the base scale, , so the reference is normalized by the actual :
This normalized information reference falls as .
Expectation maximization
Latent counts and the E step
Introduce independent latent counts with . Given the total , the contributions are multinomial with probabilities , so
M step and the multiplicative update
The expected complete-data log-likelihood separates by pixel. Entries with have zero latent counts and contribute zero:
Setting gives the classical Poisson reconstruction update [2]:
with elementwise division and denoting elementwise multiplication. From a valid start, each update leaves the observed likelihood nondecreasing [1]. Every coordinate must start strictly positive, since a zero coordinate stays at zero.
Seeded simulation study
Setup
| Setting | Value |
|---|---|
| Sensing matrix | Fixed predefined binary matrix, rank 9 (no random model) |
| Base field | |
| Gains | , true intensity , |
| Monte Carlo size | 10,000 trials per gain, 40,000 total |
| Random generator | NumPy PCG64, seed 20260929 |
| Initialization | elementwise |
| Iterations | 1,000 EM updates, checkpoints at 0, 20, 200, and 1,000 |
| CRLB | evaluated at the true intensity |
For trial , the error is . The reported MSE is the mean over trials, with approximate 95% Monte Carlo intervals . These intervals describe uncertainty in the Monte Carlo average, not confidence in any individual reconstructed pixel.
Error across gain
After 1,000 updates, with MSE and CRLB divided by :
| Gain | MSE / | 95% MC interval | CRLB / | MSE / CRLB |
|---|---|---|---|---|
| 0.1 | 2,106.72 | [2,084.11, 2,129.34] | 2,110.20 | 0.9984 |
| 1 | 210.66 | [208.43, 212.89] | 211.02 | 0.9983 |
| 5 | 42.49 | [42.05, 42.94] | 42.20 | 1.0069 |
| 10 | 21.16 | [20.94, 21.39] | 21.10 | 1.0029 |
The normalized MSE follows the predicted scale. At every gain, EM lowers the average error by about 17% relative to its clipped least-squares start, for example from 254.30 to 210.66 at . Each interval covers the CRLB, so the results sit near the reference within Monte Carlo uncertainty. That agreement does not prove efficiency: unbiasedness has not been shown for this constrained estimator. The comparison also holds one matrix and one field fixed.
Likelihood is not reconstruction error
The first trial at separates optimization from estimation. Its log-likelihood rises monotonically from to . Its MSE, however, first increases from 36.07 to about 37.9 over the first three updates, then falls to 33.17 by update 1,000. Better data fit does not guarantee a closer estimate of the truth.
Stopping diagnostics
With the relative iterate change , at most 0.42% of trials meet at any gain. At 200 updates, all do. The average MSE, however, is already near its final value after 20 updates (210.66 at both checkpoints for ). At , 2.57% of least-squares starts had a negative coordinate, which the positivity floor corrects. Across 40 million trial-level updates, the largest floating-point likelihood decrease was , within the stated numerical tolerance.
Reproducing the results
The study script and its outputs are available here: reproduce.py, results.json, summary.csv, and trace.csv. If you download them, keep the report/scripts/ and report/data/ folder arrangement: the script writes its outputs to the data folder beside scripts. From the folder that contains report/ (the repository root), run with Python 3 and NumPy (the recorded run used NumPy 2.3.5):
python3 report/scripts/reproduce.py --trials 10000 --iterations 1000 --seed 20260929
These flags equal the script's defaults, so python3 report/scripts/reproduce.py alone reproduces the recorded run. The script also checks likelihood monotonicity, a noise-free fixed point, and scalar-versus-vectorized updates. A different NumPy version may change the last displayed digits.
The original MATLAB code in the Code repository is unchanged and does not produce these numbers. It overwrites the fixed matrix with an unseeded random one, divides MSE by the squared gain index rather than , evaluates the Fisher information at the current estimate, and starts EM without a positivity floor. It uses the same 10,000 trials per gain and four gain values, but only 20 EM updates. The historical PDF describes yet another setup: 200 trials and a gain sweep from 0.1 to 100.
Scope
All evidence on this page comes from synthetic data under the model above. It verifies a small statistical inverse problem. It does not establish diagnostic performance, dose reduction, or image quality at clinical resolution. Extending the analysis to transmission CT would require the exponential forward model, calibrated scanner geometry, and background and electronic noise. At low counts, this can call for mixed Poisson–Gaussian modeling [4].
References
- A. P. Dempster, N. M. Laird, and D. B. Rubin, "Maximum likelihood from incomplete data via the EM algorithm," Journal of the Royal Statistical Society, Series B, 39(1), 1–22, 1977. doi:10.1111/j.2517-6161.1977.tb01600.x
- L. A. Shepp and Y. Vardi, "Maximum likelihood reconstruction for emission tomography," IEEE Transactions on Medical Imaging, 1(2), 113–122, 1982. doi:10.1109/TMI.1982.4307558
- E. A. Rashed and H. Kudo, "Towards high-resolution synchrotron radiation imaging with statistical iterative reconstruction," Journal of Synchrotron Radiation, 20(1), 116–124, 2013. doi:10.1107/S0909049512041301
- Q. Ding, Y. Long, X. Zhang, and J. A. Fessler, "Statistical image reconstruction using mixed Poisson–Gaussian noise model for X-ray CT," arXiv:1801.09533, 2018. arxiv.org/abs/1801.09533