LIMODENet: Attention-Free Compact Encoders for Information-Preserving Onboard Satellite Image Restoration
Organizations: Texas A&M University - Corpus Christi, TX, USA · University of Luxembourg, Kirchberg, Luxembourg
Abstract
Onboard satellites must restore a channel-degraded image on a few watts, using neuromorphic accelerators (e.g., BrainChip Akida, Intel Loihi-2) that support no softmax or attention. We ask which encoder restores best under that constraint and introduce LIMODENet (LinearMix-ODENet), a 0.69M softmax-/QKV-free backbone whose residual stages read as ODE discretizations and which is empirically information-preserving (probe accuracy rises 79.9% -> 98.4% from stem to head). At iso-parameters it restores 1 dB DVB-S2X-degraded EuroSAT better than a CNN autoencoder (+1.75 dB PSNR) and a skip-connection U-Net (+1.07 dB), three seeds, non-overlapping. Unconstrained modern restorers (NAFNet, Restormer) win on fidelity; we decompose that gap: spiking-legal additive skips recover about half, and the rest traces to attention and channel gating. LIMODENet then converts end-to-end to a spiking network with zero blocked operations, versus 22-24 for the competitors: not the best restorer available, but the best verified deployable within a real power budget.
Figures & tables
| Scale | Params | MACs | ||||
| Width ladder: shape held fixed, only varies | ||||||
| nano | 96 | 1/4/1 | 3.0 | 5 | 0.39M | 149M |
| tiny | 128 | 1/4/1 | 3.0 | 5 | 0.69M | 262M |
| small | 192 | 1/4/1 | 3.0 | 5 | 1.55M | 581M |
| base | 256 | 1/4/1 | 3.0 | 5 | 2.73M | 1027M |
| Off-ladder: four hyper-parameters change at once | ||||||
| Reconstructor | Params | PSNR (dB) | SSIM | Top-1 (%) ∗ | bs1 ms / img/s † |
|---|---|---|---|---|---|
| U-Net (skips) | 0.75M | 36.32 0.33 | 0.9591 0.0027 | 77.17 0.89 | — |
| CNN-AE | 0.75M | 35.64 0.18 | 0.9531 0.0017 | 71.89 0.77 | — |
| LIMODENet-AE | 0.77M | 37.39 0.14 | 0.9672 0.0010 | 78.50 0.83 | 2.54 / 898 |
| LIMODENet-skip | 0.78M | 38.07 0.26 | 0.9716 0.0014 | 80.66 0.54 | 2.74 / 830 |
| LIMODENet-depth4 | 1.02M | 37.18 0.21 | 0.9663 0.0013 | 76.96 0.60 | 3.04 / 882 |
| LIMODENet-skip-depth4 | 1.03M | 37.93 0.05 | 0.9706 0.0003 | 80.34 0.57 | 3.13 / 813 |
| Reconstructor | PSNR (dB) | SSIM | Top-1 (%) | bs1 ms / img/s |
|---|---|---|---|---|
| LIMODENet-skip (ANN) | 38.07 0.26 | 0.9716 0.0014 | 80.66 0.54 | 2.74 / 830 |
| LIMODENet-skip (spiking, ) | 35.95 0.05 | 0.9519 0.0004 | 80.22 0.20 ∗ | 53.44 / 33 † |
| Reconstructor | PSS | CKA | |
|---|---|---|---|
| LIMODENet-AE | 0.796 0.010 | 0.611 0.016 | 0.799 0.011 |
| U-Net (skips) | 0.746 0.010 | 0.685 0.015 | 0.757 0.013 |
| CNN-AE | 0.694 0.014 | 0.756 0.018 | 0.681 0.011 |
| Width ladder (3 seeds) | Off-ladder | ||||||
|---|---|---|---|---|---|---|---|
| Dataset | Nano | Tiny | Small | Base | Big | IN FT † | |
| EuroSAT | 95.65 0.23 | 96.54 0.17 | 96.93 0.16 | 97.26 0.17 | 97.54 0.14 | 98.26 †a | |
| RSICB128 | 96.38 0.05 | 97.18 0.19 | 97.76 0.03 | 97.91 0.09 | 98.23 0.06 | 99.09 † | |
| PatternNet | 94.90 0.17 | 95.82 0.31 | 96.90 0.28 | 97.43 0.10 | 97.69 0.05 | 98.98 † | |
| NWPU45 | 74.82 0.41 | 78.81 0.72 | 81.82 0.14 | 82.94 0.40 | 85.01 0.33 | 90.54 † | |
| UCMerced | 56.24 1.70 | 60.26 0.51 | 68.36 2.01 | 72.70 1.20 | 79.31 1.35 | 95.87 †b | |
| Reconstructor | PSNR (dB) | SSIM | Top-1 (%) | |
|---|---|---|---|---|
| dB | LIMODENet-AE | 46.42 0.01 | 0.9974 0.0000 | 87.60 0.09 |
| U-Net | 46.45 0.05 | 0.9975 0.0001 | 87.66 0.10 | |
| CNN-AE | 46.07 0.06 | 0.9969 0.0001 | 87.54 0.05 | |
| dB | LIMODENet-AE | 39.60 0.00 | 0.9966 0.0000 | 87.31 0.06 |
| U-Net | 39.60 0.00 | 0.9967 0.0001 | 87.50 0.07 | |
| CNN-AE | 39.55 0.00 | 0.9963 0.0001 | 87.45 0.08 |
| failed frames | remaining frames | ||||
|---|---|---|---|---|---|
| Reconstructor | in out | gain | in out | gain | |
| dB | LIMODENet-AE | ||||
| U-Net | |||||
| CNN-AE | |||||
| dB | LIMODENet-AE | ||||
| U-Net | |||||
| Block | Disc. | inverts? | |||
|---|---|---|---|---|---|
| LIMODENet-AE (as trained) | |||||
| stage1 | euler | 0.5 | 58.84 | 29.42 | ✗ |
| stage2.0 | focal | 0.7 | 9.12 | 6.39 | ✗ |
| stage2.1 | focal | 0.7 | 4.94 | 3.46 | ✗ |
| stage2.2 | focal | 0.7 | 5.87 | 4.11 | ✗ |
| stage2.3 | focal | 0.7 | 9.71 | 6.79 | ✗ |
| Reconstructor | PSNR (dB) | SSIM | Top-1 (%) | |
|---|---|---|---|---|
| q | LIMODENet-AE | 37.39 0.14 | 0.9672 0.0010 | 78.50 0.83 |
| U-Net | 36.32 0.33 | 0.9591 0.0027 | 77.17 0.89 | |
| CNN-AE | 35.64 0.18 | 0.9531 0.0017 | 71.89 0.77 | |
| q | LIMODENet-AE | 33.92 0.05 | 0.9426 0.0006 | 67.14 0.18 |
| U-Net | 33.43 0.16 | 0.9358 0.0027 | 66.33 1.15 | |
| CNN-AE | 32.93 0.05 | 0.9301 0.0006 | 62.78 0.22 |
| Reconstructor | PSNR (dB) | SSIM | Top-1 (%) | |
|---|---|---|---|---|
| dB | LIMODENet-AE | 37.39 0.14 | 0.9672 0.0010 | 78.50 0.83 |
| U-Net | 36.32 0.33 | 0.9591 0.0027 | 77.17 0.89 | |
| CNN-AE | 35.64 0.18 | 0.9531 0.0017 | 71.89 0.77 | |
| dB | LIMODENet-AE | 35.61 0.11 | 0.9738 0.0011 | 81.72 0.68 |
| U-Net | 34.89 0.27 | 0.9652 0.0030 | 78.43 1.01 | |
| CNN-AE | 34.08 0.06 | 0.9552 0.0008 | 71.90 0.21 |
| recon clf Top-1 (%), seeds | |||
| Judge | LIMODENet-AE | U-Net | CNN-AE |
| LIMODENet-ANN † | 76.42 1.35 | 71.92 1.91 | 67.98 0.69 |
| Spiking-CNN | 78.50 0.83 | 77.17 0.89 | 71.89 0.77 |
| SEW-ResNet | 81.55 0.60 | 79.71 0.58 | 77.35 0.74 |
| LIMODENet margin (LIMODENet-ANN / Sp.-CNN / SEW) | |||
| vs. U-Net | / / | ||
| Reconstructor | PSS ( ) | ( ) | CKA ( ) | |
|---|---|---|---|---|
| dB/ q | LIMODENet-AE | 0.9967 0.0002 | 0.0675 0.0026 | 0.9931 0.0004 |
| U-Net | 0.9949 0.0007 | 0.0854 0.0054 | 0.9876 0.0016 | |
| CNN-AE | 0.9928 0.0004 | 0.0998 0.0026 | 0.9833 0.0009 | |
| dB/ q | LIMODENet-AE | 0.9892 0.0002 | 0.1234 0.0008 | 0.9707 0.0006 |
| U-Net | 0.9868 0.0009 | 0.1366 0.0047 | 0.9631 0.0025 | |
| CNN-AE | 0.9839 0.0001 | 0.1501 0.0004 | 0.9562 0.0001 |
| Reconstructor | PSS ( ) | ( ) | CKA ( ) |
|---|---|---|---|
| LIMODENet-AE | 0.7960 0.0098 | 0.6108 0.0157 | 0.7991 0.0107 |
| U-Net | 0.7459 0.0103 | 0.6848 0.0151 | 0.7570 0.0125 |
| CNN-AE | 0.6937 0.0143 | 0.7560 0.0180 | 0.6807 0.0113 |
| Nano | PSS | CKA | CSPR (%) | |
|---|---|---|---|---|
| LIMODENet-AE | 0.9955 0.0001 | 0.0802 0.0009 | 0.9902 0.0001 | 7.36 0.32 |
| U-Net | 0.9911 0.0019 | 0.1111 0.0111 | 0.9776 0.0055 | 5.93 0.48 |
| CNN-AE | 0.9920 0.0004 | 0.1052 0.0030 | 0.9812 0.0011 | 6.27 0.20 |
| PSNR (dB) | recon clf (%) ‡ | |||
| ep † | ep | ep † | ep | |
| LIMODENet-AE | 35.49 0.18 | 37.39 0.14 | 67.08 0.63 | 76.42 1.35 |
| U-Net | 34.85 0.33 | 36.32 0.33 | 64.61 1.00 | 71.92 1.91 |
| CNN-AE | 34.05 0.17 | 35.64 0.18 | 61.03 0.73 | 67.98 0.69 |
| margin vs. U-Net | ||||
| margin vs. CNN-AE | ||||
| Method | EuroSAT top-1 | Input | Params | Protocol note |
| LIMODENet (tiny, scratch) | 0.17 | M | 3 seeds, val-selected | |
| LIMODENet (IN FT) † | M | single seed, best ckpt | ||
| SceneMixer [ 1 ] | low | native res., same DW+PW family | ||
| KCN / KonvNeXt [ 8 ] | M | ConvNeXt+KAN head, upsampled | ||
| STConvNeXt [ 36 ] | – ∗ | M | reports NWPU/AID/UCM, not EuroSAT | |
| FocalNet-T [ 53 ] | – ∗ | M | ImageNet backbone, no EuroSAT eval |
| Scale | Params | Tiny-ImageNet top-1 (%) | GPU-h |
|---|---|---|---|
| nano | 0.41M | 46.64 | 0.9 |
| tiny | 0.72M | 47.29 | 1.1 |
| small | 1.58M | 50.85 | 1.3 |
| base | 2.78M | 51.61 | 1.7 |
| big ∗ | 5.85M | 51.06 | 3.5 |
| EuroSAT | NWPU | PatternNet | RSICB | UCMerced | |
|---|---|---|---|---|---|
| nano | |||||
| tiny | |||||
| small | |||||
| base | |||||
| big |
| Benchmark | Base | Big | disjoint? |
|---|---|---|---|
| EuroSAT (saturated) | 97.26 0.17 | 97.54 0.14 | no |
| NWPU (headroom) | 82.94 0.40 | 85.01 0.33 | yes, |
| System | Metric | q | q | q |
|---|---|---|---|---|
| Recon. clf. | PSNR (dB) | 30.63 | 33.98 | 38.25 |
| SSIM | 0.8585 | 0.9340 | 0.9681 | |
| Top-1 (%) | 47.44 | 66.87 | 85.96 | |
| Degraded- trained clf. | PSNR (dB) | n/a — emits no image | ||
| SSIM | n/a — emits no image | |||
| Top-1 (%) | 81.81 0.22 | 87.89 0.11 | 88.31 0.23 | |
| Evaluated at ( q) | dB ∗ | dB | dB | dB |
|---|---|---|---|---|
| Degraded-trained classifier | 88.31 | 78.52 | 47.88 | 47.77 |
| ( over seeds) | 0.23 | 0.48 | 2.05 | 2.05 |
| change vs. own point | — | |||
| Frozen restorer classify | 76.42 | 74.29 | 71.54 | 71.41 |
| ( over seeds) | 1.35 | 2.34 | 1.01 | 1.01 |
| change vs. own point | — |
| Spiking model | Top-1 (%) | Energy ( J) | AC-share |
|---|---|---|---|
| Spiking-CNN | 92.57 0.56 | 43.9 0.1 | 64.1% |
| SEW-ResNet | 92.59 0.42 | 152.5 2.7 | 92.9% |
| LIMODENet (scratch) | 91.86 0.28 | 482.7 12.1 | 62.8% |
| LIMODENet (ANN init) | 93.55 0.54 | 477.7 3.1 | 61.9% |
| Spiking-MLP | 50.62 0.71 | 25.3 0.0 | 0.3% |
| Model | Top-1 (%) | Energy (mJ) | Eff. vs ANN | |
|---|---|---|---|---|
| ANN | – | 98.47 | 1.203 | |
| SNN | 4 | 82.03 | 0.239 | |
| SNN | 6 | 92.18 | 0.366 | |
| SNN | 8 | 94.18 | 0.493 | |
| SNN | 10 | 93.89 | 0.619 | |
| SNN | 12 | 92.99 | 0.745 |
| Spiking classifier | q10 | q50 | q100 |
|---|---|---|---|
| SEW-ResNet | 55.30 3.84 | 71.43 3.68 | 82.10 1.17 |
| Spiking-CNN | 48.63 1.07 | 66.94 2.23 | 79.44 1.47 |
| LIMODENet (scratch) | 39.44 1.95 | 59.97 1.40 | 74.80 0.58 |
| LIMODENet ( ANN init) | 39.84 1.35 | 59.37 1.26 | 75.68 2.37 |
| Spiking-MLP | 50.39 0.69 | 50.12 1.65 | 50.96 0.70 |
| Method | Params | ANN | SNN | Loihi (mJ) |
|---|---|---|---|---|
| VGG-16 [ 31 ] | M | 95.07 | 85.11 | 4.44 |
| LIMODENet ( ) | 0.69M | 98.47 | 92.18 | 4.70 |
| LIMODENet ( ) | 0.69M | 98.47 | 93.55 | 6.27 |
| Encoder variant | Params | GMac | PSNR | Top-1 ‡ | |
| LIMODENet (ours) | 0.77M | 1.21 | 37.39 0.14 | — | 78.50 0.83 |
| ODE-specific choices | |||||
| (all stages) | 0.77M | 1.21 | 37.23 0.11 | 77.92 0.32 | |
| learned per block | 0.77M | 1.21 | 37.43 0.15 | 78.54 1.08 | |
| Euler at Stage 3 | 0.77M | 1.11 | 37.30 0.21 | 78.40 0.90 | |
| Architectural choices | |||||
| Test | Condition | variant | reference | sep.? | |
| Is the global branch necessary? (remove it from LIMODENet) | |||||
| necessity | dB/ | 36.97 0.13 | 37.39 0.14 | yes | |
| necessity | dB/ | 30.43 0.06 | 30.56 0.03 | yes | |
| necessity | dB/ | 35.53 0.20 | 35.61 0.11 | no | |
| Is it sufficient? (add it to the CNN-AE encoder) | |||||
| sufficiency | dB/ | 35.66 0.18 | 35.64 0.18 | no | |
| Reconstructor | Params | PSNR (dB) | SSIM | Top-1 ‡ |
|---|---|---|---|---|
| LIMODENet-AE | 0.44M | 36.65 0.08 | 0.9619 0.0003 | 75.96 0.31 |
| CNN-AE | 0.43M | 35.34 0.12 | 0.9506 0.0016 | 70.85 0.89 |
| U-Net (skips) | 0.43M | 34.96 0.48 | 0.9464 0.0053 | 71.85 1.40 |
| Reconstructor | Params | PSNR (dB) | % of gain | |
| additive noise : ImageNet-C gaussian_noise , input dB | ||||
| LIMODENet-AE | 0.77M | 29.112 0.003 | — | — |
| U-Net (skips) | 0.75M | 29.107 0.005 | ||
| CNN-AE | 0.75M | 28.901 0.005 | ||
| information-destroying : pixelate , input dB | ||||
| LIMODENet-AE | 0.77M | 26.288 0.005 | — | — |
| Model | In. | Params | MACs | Lat. | Top-1 |
|---|---|---|---|---|---|
| LIMODENet family (ours) | |||||
| nano | 0.39M | 149M | 2.23 | 95.65 | |
| tiny | 0.69M | 262M | 2.41 | 96.54 | |
| small | 1.55M | 581M | 2.23 | 96.93 | |
| base | 2.73M | 1027M | 2.37 | 97.26 | |
| big | 5.80M | 2466M | 3.58 | 97.54 | |