# Team: **play1play** for 'Night Photography Rendering Challenge' This repo contains the source code of [Night Photography Rendering Challenge 2024](https://nightimaging.org/). ## How to run ### Run without Docker - Install python >= 3.9 - Install the required packages: `pip install -r requirements.txt` - Put the test images in the `data` folder or specify the input image path with `-p` option. - Run the script: ``` python run.py -p -o ``` - The output images will be saved in the `output` folder or specifiy the output path with `-o` option. ### Run with Docker - Build the docker image from beginning (optional): ``` docker build -t play1play . ``` - Run the docker container with gpu on linux: ``` docker run -it --rm --gpus=all -v $(pwd)/data:/data play1play ./run.sh ``` `Do not forget to to --gpus flag, our model requires GPU to run.` ## Update *2024.3.21:* Final version v3.0 is released for 3rd validation! Key features: - Utilize the patch-based and calibration-based white-balance algorithm to improve the image quality. - Modify the resizing strategy to improve the image quality. *2024.3.16:* Release v2.0 for 3rd validation! Key features: - Increase the overall saturation and brightness of the image. - Add more contrast to the image. - Add more dynamic range to the image. Algorithm changes: - Add luma shading correction (LSC) module - Add auto-contrast module (dynamic gamma) - LSC, LTM, auto-contrast module can dynamiclly adjust the parameters based on the camera gain from the metadata. - Add another white-balance process at the end of the pipeline to further improve the image quality. Key algorithm parameter explanation: - k_th: defines the threshold for the noise level, higher means tolerant to noise, lower means more sensitive to noise. For this sensor, default is 2.5e-3. `Note that this paramerts are shared by all the modules, and hence defined as the member varibale in RawProcessingPipelineDemo class.` - s of local_tone_mapping: defines how to apply the gain map to different image channels. Higher means more saturated, lower means less saturated. Default is 0.7. `Currently, s is automatically adjusted based on the camera gain from the metadata.` *2024.3.7:* release v1.0 for 3rd validation! ---- ## Version-1 - TMO-ratio50 ----- ## Version-2 - TMO: ratio50 - Gamma: 1.5 - Contrast:[low=2,high=0.2] - Post-AWB: GI