DAWN / README.md
Arsenicc's picture
Remove broken docs/results.md link
2bc5e7d verified
|
Raw History Blame Contribute Delete
2.63 kB
---
license: mit
library_name: pytorch
pipeline_tag: image-to-image
tags:
- thermal
- colorization
- flow-matching
- drone
- dinov3
---
# Dawn: day thermal to RGB for drone imagery
Checkpoints for [Dawn](https://github.com/rzx01/dawn). A daytime thermal frame (640x512, one channel) goes in, and the matching daytime RGB image comes out with brightness and color uncertainty maps. Brightness is a per-region curve of thermal intensity, color is generated by flow matching conditioned on a LoRA-tuned DINOv3 ViT-S+, and the output is assembled in CIELAB. Invented detail is accepted: thermal cannot see paint, text or lane markings.
## Files
| File | What it is |
|---|---|
| `stage1/flow_best.pt` | Stage 1, step 18,000 (EMA), selected on CIEDE2000 over box-aligned validation pairs. Holds the LoRA adapters, velocity transformer, color head, EMA and optimizer state. |
| `stage1/run_config.json` | The merged config the run trained with. |
| `stage2/refiner_best.pt` | Optional stage 2 local refiner (2,545 parameters, refines L only). |
The checkpoints contain **no DINOv3 base weights**, only the LoRA adapters. The base model is the gated [facebook/dinov3-vits16plus-pretrain-lvd1689m](https://huggingface.co/facebook/dinov3-vits16plus-pretrain-lvd1689m); accept its license and set `HF_TOKEN` to use these.
## Results
Test split, 781 box-aligned pairs, NFE 2, K = 8 samples: **20.05 dB L\* PSNR and 8.31 CIEDE2000**, against a ceiling of 25.13 dB / 3.25. About 40 FPS at K = 8 on an RTX 5090. The refiner adds +0.070 dB on the fitted brightness grid (box-aligned validation); it has not been evaluated on the generated grid and is not in the headline numbers. Full numbers are in the [project README](https://github.com/rzx01/dawn#5-results).
## Usage
```bash
git clone https://github.com/rzx01/dawn && cd dawn && pip install -e .
hf download Arsenicc/DAWN --local-dir checkpoints
python scripts/infer.py --checkpoint checkpoints/stage1/flow_best.pt --input frames/ --device cuda
python scripts/infer.py --checkpoint checkpoints/stage1/flow_best.pt \
--refiner checkpoints/stage2/refiner_best.pt --input frame.jpg --device cuda
```
Checkpoints are tied to the training resolution (512x640 encoder input) and the token layout; loading checks both.
## Training data and license
Trained on day pairs from [DroneVehicle](https://huggingface.co/datasets/McCheng/DroneVehicle) that survive a strict box-matched alignment filter (3,662 train pairs). No DroneVehicle images or labels are included here, and the dataset's terms are its own. The code and these checkpoints are MIT; DINOv3 has its own license.