PhysDNet: Physics-Driven Gradient Amplification for Real-Time Image Dehazing

NeurIPS 2026
Rayen Dhahri1 Lei Sun2 Victor Javier Kartsch Morinigo3 Alice Pagnoux3 Luca Benini3,4 Danda Pani Paudel2 Luc Van Gool2
1Independent Researcher 2INSAIT, Sofia University “St. Kliment Ohridski” 3ETH Zurich 4DEI, University of Bologna
Contact: rayendhahri@gmail.com
Overview illustration: a smoke-filled corridor and simulated sparse LiDAR enter PhysDNet; differentiating through the physics inversion amplifies gradients in low-transmission regions during training; the restored image reveals a person and an obstacle for detection
Overview. Hazy imagery and sparse LiDAR are fused by PhysDNet. During training, differentiating through the physics inversion scales gradients by (t̂+ε)−2, focusing learning on low-transmission regions at zero inference cost. Conceptual illustration of a potential emergency-response application; the scene and LiDAR are schematic, not experimental results.

Abstract

Modern dehazing networks are often computationally expensive and overfit to synthetic haze, limiting real-time deployment. This underscores an urgent demand for efficient, high-fidelity restoration methods that can operate on resource-constrained edge devices in practical, dynamic environments. We introduce PhysDNet, a lightweight multimodal architecture that fuses NIR imagery with sparse LiDAR depth and is trained with a physics-constrained dual-head objective. Differentiating through a fixed Koschmieder inversion induces density-adaptive gradient amplification, acting as an implicit resource allocation mechanism that concentrates learning on heavily degraded regions without increasing inference cost. PhysDNet delivers superior restoration with minimal capacity and enhanced training efficiency, facilitating real-time deployment on edge devices without increasing inference overhead. On the Seeing Through Fog benchmark, PhysDNet outperforms competitors by 1.67 dB at 5.2× lower compute and recovering 54.9% of fog-induced detection loss. Ablations and cross-domain evaluations show that physics-guided training improves generalization including under non-homogeneous haze that violates the Koschmieder assumption. PhysDNet further demonstrates compatibility with fixed-function NPUs, running at 29/45/99 FPS at <4 W across L/M/S variants.

Real STF Example

Foggy NIR-gated frame of a snowy street at night The same frame restored by PhysDNet
Hazy NIR inputPhysDNet

Drag across the image to compare a hazy gated-NIR frame from Seeing Through Fog with PhysDNet's restoration. PhysDNet also receives the sparse projected LiDAR depth shown by the toggle.

  • 36.46 dB PSNR on STF, +1.67 dB over FFA-Net at 5.2× lower compute
  • 54.9% of fog-induced YOLOv8 detection loss recovered
  • 29 / 45 / 99 FPS (L / M / S) on a fixed-function NPU at <4 W, INT8
  • Physics head is used only in training: zero inference overhead

Method

PhysDNet architecture diagram
Figure 1. PhysDNet architecture. Dual encoders extract NIR and sparse-depth features, merged by mask-aware gating with Squeeze-and-Excitation at the bottleneck. The shared representation feeds a direct head (deployed at inference) and a physics head (training only). Backpropagating through the Koschmieder inversion scales gradients by (t̂+ε)−2, concentrating optimization on heavily degraded regions at zero inference cost.
Interactive · architecture explorer

Click any block for its role, tensor shape (PhysDNet-M, base width c = 64; S/M/L use c ∈ {32, 64, 96}) and equation.

Density-adaptive gradient amplification

The physics head predicts transmission t̂ ∈ [0.05, 0.95] and a global airlight Â, then inverts the scattering model I = J·t + A(1 − t) in closed form: Ĵphys = (I − Â(1 − t̂)) / (t̂ + ε). This inversion has no learnable parameters. Its derivative, ∂Ĵphys/∂t̂ = (Â − I) / (t̂ + ε)2, scales the gradient reaching the shared encoder by up to ≈400× in dense fog relative to clear air. The result is an implicit hard-example mining along the transmission axis, with no extra hyperparameters and no inference cost.

Bar charts of gradient magnitude versus transmission for PhysDNet-M and NoPhy
Figure 3. Density-adaptive gradient amplification. PhysDNet-M follows the (t+ε)−2 scaling and concentrates gradients on low-transmission regions (up to ~694× the NoPhy baseline), unlike the flat NoPhy profile.
Hazy input, predicted transmission, gradient magnitude map and physics output on a real fog frame
Figure 6. Empirical gradient map on a real STF fog frame. Hazy input, predicted t̂, analytical gradient magnitude |∂Ĵphys/∂t̂|, and physics-restored output. High-gradient regions align spatially with low-transmission regions.
Interactive · Koschmieder model and its inversion
clear scene J
transmission t = e−βd
hazy I = J·t + A(1−t)
inversion with t̂ = t + δ
mean t – inversion error, near field – inversion error, far field – far / near –

A fixed error δ in t̂ produces a restoration error δ(A − J)/(t + δ): harmless where t is high, amplified where fog is dense. This t-dependence is why the gradient through the inversion concentrates on dense haze. β covers the paper's 0.005–0.10 sweep. For illustration, J is PhysDNet's restored frame and d is a dense depth map interpolated from this frame's own sparse LiDAR returns (about 4–72 m). Near field: d < 15 m; far field: d > 40 m.

Results

Restoration quality on Seeing Through Fog

Table 1. STF validation set (1,299 frames), direct head. PhysDNet-M: mean ± SE over 3 seeds. Best in bold, second underlined.
MethodInputRes.Params (M)GMACsPSNR (dB) ↑SSIM ↑
DCPNIR2560—17.620.5992
AOD-NetLiDAR+Gated2560.0020.0620.950.7329
DehazeFormer-TNIR5121.3610.9233.380.9348
FFA-NetNIR5120.7798.5733.900.9474
FFA-NetNIR+LiDAR5120.7798.7334.790.9516
DEA-NetNIR2563.6516.4233.710.9588
DEA-NetLiDAR2563.6516.4433.530.9572
PhysDNet-SNIR+LiDAR2560.722.2432.800.9331
PhysDNet-MNIR+LiDAR2562.958.5635.55±0.070.9566±0.0009
PhysDNet-LNIR+LiDAR2566.5918.9836.460.9606

Best-resolution row per baseline shown; the paper's Table 1 lists every resolution and input combination.

PSNR versus GMACs scatter plot
Figure 2. Accuracy vs. computational cost on STF. PhysDNet establishes a new Pareto front in the edge-deployable region. PhysDNet-L outperforms FFA-Net by +1.67 dB at 5.2× lower compute; PhysDNet-S retains competitive accuracy at ultra-low compute.

Physics head ablation

Table 2. Removing the physics head (NoPhy) from an identical ch64 model.
VariantPhysics headParams (M)PSNR (dB)SSIMmAP (%)ΔmAP
PhysDNet-M✓2.9535.550.956911.70+3.05
PhysDNet-M NoPhy×2.9130.020.926310.70+2.06
Difference−0.04−5.51−0.0306−1.00−0.99
Grid of hazy inputs, direct head, physics head, ground truth, transmission and LiDAR depth for eight scenes
Figure 11. Dual-head outputs on synthetic STF fog. Blue boxes mark dense-haze regions where the physics head shows noise amplification; the direct head suppresses these artifacts by relaxing the rigid physical assumptions.

Downstream object detection

Table 3. YOLOv8-M on 426 STF val frames with synthetic fog (β = 0.06). Recovery = ΔmAP / |fog degradation|.
ConditionAPvehAPpersAPcycmAP (%)ΔmAPRecovery
Clean (upper bound)33.957.971.0514.33——
Foggy (β = 0.06)18.095.422.428.64−5.68—
AOD-Net (NIR)15.144.661.277.02−1.62—
DehazeFormer-T (NIR)16.375.741.657.92−0.72—
FFA-Net (NIR)24.376.301.3210.66+2.0235.6%
DEA-Net (NIR)25.825.821.6611.10+2.4543.1%
PhysDNet-S24.495.941.2210.55+1.9133.6%
PhysDNet-M27.656.450.9911.70+3.0553.7%
PhysDNet-L27.606.700.9911.76+3.1254.9%
Detections on foggy image, FFA-Net output, PhysDNet-M output and clean image
Figure 4. Downstream detection after dehazing (β = 0.06). PhysDNet-M recovers scene contrast and enables more accurate detections than FFA-Net. Dashed white: ground truth; solid coloured: predictions.

Out-of-distribution fog density

PSNR versus scattering coefficient beta for all methods
Figure 12. PSNR vs. fog density β (256×256, A = 0.8; green band is the training range). PhysDNet-M keeps the highest PSNR at every density, with a >6 dB margin over the best baseline at β = 0.06, and degrades gracefully outside the training distribution.

Zero-shot cross-domain generalization

Trained on STF only and evaluated on O-HAZE and I-HAZE with no LiDAR at test time (NIR→RGB, synthetic→real, outdoor→indoor). PhysDNet-M improves PSNR-Y over DEA-Net by +0.53 dB on O-HAZE and +0.62 dB on I-HAZE; on non-homogeneous NH-HAZE, which violates the Koschmieder assumption, it still leads by +0.15 dB, and removing the physics head costs 0.54 dB.

Table 4. Zero-shot results (luminance and RGB metrics).
O-HAZE (outdoor)I-HAZE (indoor)
MethodPSNR-YSSIM-YPSNR-RGBSSIM-RGBPSNR-YSSIM-YPSNR-RGBSSIM-RGB
AOD-Net15.110.500014.880.493114.690.582414.510.5724
FFA-Net19.200.717718.490.696815.820.652115.480.6402
DehazeFormer-T19.480.683918.810.664115.860.614215.560.6050
DEA-Net19.920.704219.200.685416.310.645516.020.6362
PhysDNet-S19.890.719019.210.698916.810.689516.490.6734
PhysDNet-M20.450.746119.650.725316.930.694716.590.6795
PhysDNet-M (NoPhy)18.920.735818.380.717416.330.690716.060.6746
PhysDNet-L20.310.748819.510.727916.570.688716.240.6756
O-HAZE example: hazy input, AOD-Net, FFA-Net, PhysDNet-M, ground truth
Figure 7. Zero-shot O-HAZE restoration. Hazy input, AOD-Net, FFA-Net, PhysDNet-M (ours), ground truth. All models trained on STF only.
Hazy input, raw PhysDNet-M output, transmission-guided colour output, ground truth
Figure 8. Transmission-guided chrominance recovery. Hazy input, raw PhysDNet-M output, after t̂-guided chrominance transfer, ground truth.

Real-world fog

Real STF fog frames have no ground truth, so we measure agreement between the direct and physics heads. Agreement is higher in dense fog, where the gradient amplification concentrates learning.

Table 5. Dual-head consistency on real STF fog.
MetricDense fogLight fog
MSE ↓0.00020.0006
PSNR (dB) ↑37.4833.83
Pearson r ↑0.99470.9912

Extended Analysis

Additional experiments run during the review period, all with the publicly released checkpoints.

Proposition 1 holds on real data

Log-log plot of per-pixel squared error of the physics inversion versus ground-truth transmission, following sigma squared over t squared
Variance correspondence. Per-pixel squared error of Ĵphys binned by ground-truth transmission on STF validation data (known noise σ = 0.01), against the σ²/t² law predicted by Proposition 1.

Proposition 1 predicts that the inversion's noise variance scales as Var[Ĵphys] = σ²/t² + O(δ), the same t−2 structure that drives the gradient amplification. The measured error follows this law across two orders of magnitude, with a log-log correlation of r = 0.981. The small uniform offset above the line matches the O(δ) estimation term.

This also explains the noise visible in the physics head at low transmission (Fig. 11). It is the predicted variance structure, and the deployed direct head does not inherit it.

When does gradient amplification help?

We ran matched no-physics (NoPhy) controls on two further inverse problems and on RGB-only data. The mechanism helps when the inverted physical parameter is anchored by a privileged measurement such as depth. Without an anchor it is neutral, and it never hurts.

Mechanism scope. Physics variant vs. matched NoPhy twin, same architecture and budget.
TaskInverted modelAnchored?Physics vs. NoPhy
Dehazing, STF (NIR + sparse LiDAR)t = e−βdyes, LiDAR+5.51 dB PSNR, +0.99 pp mAP
Underwater restoration (NYU-v2 RGBD synth.)per-channel tc = e−βcdyes, sparse depth+0.38 dB overall, +0.82 dB mid-t bin, +0.60 dB red channel
Low-light, LOL-v2-Real (100 images)Retinex R = I / (L + ε)yes+0.5 to 0.6 dB, SSIM 0.906 vs 0.897
Dehazing, RESIDE-6K (RGB only)t = e−βdnotie, 28.4 vs 28.6 dB
Low-light, LOL-v1 (15 images)Retinexnoinconclusive, noise-dominated test set

Low-light enhancement is the A → 0 special case of Eq. 5.

Robust to missing LiDAR and to RGB-only input

PSNR versus percentage of LiDAR points dropped for PhysDNet S, M, L and NoPhy
Figure 9. PSNR vs. LiDAR dropout. All variants degrade gracefully as LiDAR points are removed. At 0% density (NIR only) PhysDNet-M keeps 29.70 dB, still +4.10 dB above NoPhy. The dotted line marks the training-time density (~3% of pixels).

RGB-only training. PhysDNet-M trained from scratch on RESIDE-6K with zero depth input reaches 28.4 dB / 0.965 SSIM on the full 1,000-image SOTS-mix test set with the same recipe, and was still converging at the 300-epoch budget. It keeps the NPU-compatible operator set.

Depth branch folds away. With zero depth input the LiDAR branch's activations become constants that fold into the network. The outputs are bit-exact and compute drops from 8.56 to 6.33 GMACs (−26%) for RGB-only deployment.

The training regime drives transfer. Zero-shot on O-HAZE, the STF-trained model beats its colour-native RESIDE-trained sibling by about 3 dB PSNR-RGB (19.65 vs 16.58).

All weather conditions, day and night

Dual-head consistency on real STF captures (real camera, real weather-attenuated LiDAR, n = 250 per split, full resolution) across every official split, including rain and snow, which were not in the paper.

Weather robustness. Direct ↔ physics head agreement, PSNR (dB) / Pearson r.
ConditionDayNight
Clear39.2 / 0.99833.4 / 0.993
Light fog40.1 / 0.99934.7 / 0.994
Dense fog40.3 / 0.99934.8 / 0.995
Snow39.5 / 0.99735.4 / 0.994
Rain35.1 / 0.995—

Agreement is highest in dense fog, as the density-adaptive mechanism predicts. Night scenes lose a uniform ~5 dB with r ≥ 0.993, because active light sources locally violate the global-airlight assumption; the direct head absorbs this.

Dense fog, day: input, direct head, physics inversion
Dense fog, day
Light fog, night: input, direct head, physics inversion
Light fog, night
Snow, night: input, direct head, physics inversion
Snow, night
Rain: input, direct head, physics inversion
Rain

Each strip: real input, direct head, physics inversion.

Real-world haze without labels (RTTS)

Trained on monochrome NIR, PhysDNet's raw output on RGB haze is nearly grey. We replace the paper's heuristic colour transfer with label-free self-supervised adaptation on unpaired real haze. The parameter-free physics inversion acts as a colour teacher: it is closed-form algebra on the coloured input, so its output is inherently coloured. The recipe adds Koschmieder re-composition, dual-head consistency, a dark-channel prior and synthetic replay, needs no architecture change, and takes 5 epochs (about 13 minutes on one 16 GB GPU).

Hazy input
Zero-shot (STF)
+ URHI adaptation
+ RTTS adaptation, physics head
RTTS hazy input 1Zero-shot output 1URHI-adapted output 1RTTS-adapted physics output 1 RTTS hazy input 2Zero-shot output 2URHI-adapted output 2RTTS-adapted physics output 2 RTTS hazy input 3Zero-shot output 3URHI-adapted output 3RTTS-adapted physics output 3
RTTS (1,297 real hazy images, full resolution). Detection: YOLOv8-M mAP@0.5 against RTTS boxes.
ConditionColorfulnessNIQE ↓BRISQUE ↓mAP@0.5
Hazy (unprocessed)15.705.3538.348.14
PhysDNet-M, zero-shot STF0.034.9034.746.28
+ URHI adaptation (unpaired, no labels)12.834.7433.444.82
+ RTTS-train adaptation, physics head16.495.1136.548.21
PhysDNet-M, RESIDE-6K-trained19.454.8133.647.71

URHI adaptation restores colour (0.03 → 12.8) and gives the best no-reference quality of all conditions. Adapted on RTTS's own unlabeled train split, the physics head matches or exceeds the raw hazy input on every measured axis. We report the trade-offs too. RTTS haze is mostly light and COCO-pretrained YOLO is already haze-robust, so direct-head outputs lower mAP there. The URHI-adapted model also gives up 5.1 dB on O-HAZE's dense machine haze, so Table 4 keeps the base model. Colour fidelity inherits the airlight estimate, so a mild warm shift can appear under strongly tinted light.

Edge Deployment

PhysDNet uses only NPU-friendly operators (depthwise-separable convolutions, BatchNorm, ReLU6, bilinear upsampling). Under standard ONNX export and vendor INT8 post-training quantization, only PhysDNet and AOD-Net compile for the fixed-function NPU, and AOD-Net's restoration quality (20.95 dB) is insufficient for deployment.

Table 6. 256×256, batch 1. Fixed-function 26 TOPS NPU (<4 W TDP) uses INT8 PTQ; Jetson Orin Nano uses TensorRT FP16. ✗ = compilation failure.
Fixed-function NPUJetson Orin Nano
ModelParams (M)GMACsCompileFPSFPSPower (W)
AOD-Net LiDAR0.0020.06✓1220327.04.94
FFA-Net LiDAR0.7724.68✗—46.98.21
DehazeFormer-T LiDAR1.362.73✗—47.112.38
DEA-Net LiDAR3.6516.44✗—28.510.17
PhysDNet-S0.722.24✓99108.313.45
PhysDNet-M2.958.56✓4558.512.38
PhysDNet-L6.5918.98✓2938.811.80

Recent heavyweight and diffusion methods, measured

The paper excludes 2024–2026 heavyweight and diffusion dehazers as outside the edge budget. We measured them under the same protocol: fvcore at 256², Jetson Orin Nano in MAXN (25 W) mode, TensorRT FP16, 50 warm-up + 300 timed iterations, engine build excluded.

Excluded methods on Jetson Orin Nano. NFE = network evaluations per image.
MethodParamsGMACs / callNFEEffective GMACsJetson, TRT FP16
UVM-Net (official)1004 M250.91250.9fails (out of memory)
DFFNet‡17.8 M61.3161.3no ONNX (2-D FFT); 157 ms eager
Ksformer‡5.5 M109.01109.0360 ms (2.8 FPS)
DehazeDDPM (official)97.8 M90.25045093.1 s / image (0.32 FPS)
RSHazeDiff (official)109.7 M8.016901352317.0 s / image (0.06 FPS)
PhysDNet-L6.59 M18.98118.9825.8 ms (38.8 FPS)

‡Faithful re-implementations calibrated to the published parameter budgets; no official code exists. Even PhysDNet-L needs 3.2× less compute than the lightest excluded method, and those methods' INT8 behaviour, required at NPU power budgets, is uncharacterised.

Hazy input, NPU output at 38.1 dB, ground truth
Figure 5. INT8 NPU inference on a representative STF sample (β = 0.01). Hazy input, PhysDNet-M restored on the fixed-function NPU (38.1 dB), and ground truth.

BibTeX

@inproceedings{dhahri2026physdnet,
  title     = {PhysDNet: Physics-Driven Gradient Amplification for
               Real-Time Image Dehazing},
  author    = {Dhahri, Rayen and Sun, Lei and Kartsch Morinigo, Victor Javier
               and Pagnoux, Alice and Benini, Luca and Paudel, Danda Pani
               and Van Gool, Luc},
  booktitle = {Advances in Neural Information Processing Systems (NeurIPS)},
  year      = {2026}
}