deepCR
Removes the cosmic rays that pair logic cannot see, with a partner-flux veto per clump so undersampled star cores are not eaten.
The telescope that denoises itself. A Noise2Noise U-Net trained on pairs of dithered Hubble exposures of the same field: the two frames share the signal but not the noise, so the signal is the only thing the network can learn. No clean reference image exists anywhere in the training, and inference takes seconds, not hours.
Drag across the image to compare. Two 390 s F606W snapshot exposures, the full production chain (cosmic rays, destriping, denoise, drizzle, final 0.75 blend). Both sides share the same absolute display stretch, computed on the input. The whole field runs in about four minutes on a Mac Studio.
Classic
AstroSURE
Hubble shoots every field at least twice, dithered, so the archive is full of image pairs that show the same sky with different noise. Noise2Noise (Lehtinen et al. 2018) says that is all you need: train a network to predict one exposure from the other, and the best it can do is output what the two frames have in common. The noise model is not a guess and not somebody else's prior: it is learned from the actual detector.
Independent normalization drew rings around every star. A perfect validation loss shipped a catastrophic model, twice: checkpoints are now selected by photometric QC, never by the loss curve. And the run that "erased 99.7 % of bright stars" was a broken metric, not a broken model: on raw Hubble frames, 97 % of bright point-like peaks are cosmic rays. Gaia DR3 settled it, the real stars survive at 100 %. The full lab notebook, failures included, is in the repository.
Two dithered exposures of Arp 70, and their difference: the galaxy cancels out, and what remains (noise, plus each frame's cosmic rays in white and black) is exactly what the network learns to remove. The final training set is 2 140 such pairs across 19 galaxy fields and five filters from the MAST archive.
A network trained on exposure pairs has a precise blind spot: anything the two exposures agree on. So each defect is handled in the domain where it lives, on the raw detector frames, before any resampling.
Removes the cosmic rays that pair logic cannot see, with a partner-flux veto per clump so undersampled star cores are not eaten.
Removes the ACS row bias in detector coordinates, where the stripes are exactly horizontal, before denoising collapses the background.
The 2-channel U-Net denoises each exposure using its partner as the second input. A few seconds per 4096×2048 chip.
The STScI drizzle engine resamples onto the official grid, and the final image is
0.75*denoised + 0.25*original: natural grain, photometry safe.
A 700 px crop at native HST resolution, raw drizzle against the pure network output. Spiral arms, dust lanes and star-forming knots stay exactly where they are; the grain between them goes. Measured on this field: fine-detail correlation 0.890, star photometry 100.4 % on 21 Gaia DR3 stars.
Nothing here was sharpened or enhanced: the output is the raw linear result of the network, displayed with the same stretch as the input.
Classic
AstroSURE
An empty patch of the same field. These snapshot exposures carry about 14 000 cosmic-ray hits per chip; the chain removes 99.9 % of them without drizzle rejection, along with the detector striping, while the faint background galaxies stay put. Background noise on the pure output drops by a factor of 30 and more.
The model was trained on raw frames, cosmic rays included: a median-style loss learns to ignore what only one exposure sees. Rejection comes free.
Classic
AstroSURE
| Metric (Arp 70) | run 5 | run 8 | run 9 e20 |
|---|---|---|---|
| Fine-detail correlation | 0.793 | 0.856 | 0.890 |
| HF amplitude preserved | 82 % | 84 % | 86 % |
| Gaia photometry (median) | 103.6 % | 98.2 % | 100.4 % |
| Background noise | ÷40 | ÷36 | ÷32 |
The production model is run 9, epoch 20, selected by this QC battery, not by validation loss. Thirteen Arp fields ran through the batch with zero per-field tuning.
The MAST DRC of the same visit, on the same pixel grid, at the same absolute stretch, sky level matched. Same objects, same levels, same inter-chip step. Only the noise differs: the chain does not invent a different image, it produces the archive image, cleaner.
Every pair below shares one stretch: drizzle without, then with AstroSURE. All from HST snapshot program 15446, two 390 s exposures each. The finished versions are on my Astrobin.