This repo for course of color computational photography for bachelors in IITP'23
Lec 1. Introduction to color
Lec 2. Introduction to pipeline
Lec 3. Practical introduction to color
Lec 4. Debayering
Lec 5. Denoising + Illumination Estimation + Illumination Compensation + Color space transform
Lec 1. Datasets in Computer Vison: Importance, Theoretical background and Typical Problems in Applications
Lec 2. ML System Design: Bridging the Gap Between a Vanilla Neural Network and Value for User
Since schedule of this course was unstable, score will be calculated accorging to wollowing rules
This year, the reverse engineering of the Canon 600D camera will be a homework assignment. To do this, download the Cube++ dataset and create an algorithm reproducing the pipeline of image processing of the Canon 600D camera. Your solution will be tested on new images from the Canon 600D camera.
To work with code it is recommended to use Python 3.9+.
The required packages are listed in requirements.txt and can be installed by calling:
pip install -r requirements.txtModule raw_prc_pipeline contains the source code of various methods and functions that can be used for processing raw images, including:
- Parsing metadata (see
raw_prc_pipeline/exif_*.pyfiles) - Demosaicing, white_balancing (Gray World, White Patch, Shades of Gray, Improved White Patch), tone mapping and other methods (see
raw_prc_pipeline/pipeline_utils.py) - Implemtations of demo classes of raw image processing pipeline and image processing pipeline executor (see
raw_prc_pipeline/pipeline.py)
Directory data conatins example of challenge data:
- PNG file with raw image data (see
data/IMG_2304.png) and - Corresponding JSON file (see
data/IMG_2304.json) with necessary metadata including:black_level,white_level,cfa_pattern,color_matrix_*and etc. Metadata was extracted usingraw_prc_pipelinemodule.
Directory demo contains demonstration script for processing PNG raw images with JSON metadata using implemented classes and finctions from raw_prc_pipeline.
To process PNG images with corresponding metadata from data directory call the following command:
python -m demo.process_pngs -p data -ie gw -tm FlashTo see other arguments of the script call python -m demo.process_pngs -h from the root directory.
Each student who decided to develop his own pipeline will have to send me a code to render jpegs. An input for your pipeline shoud be .PNG and .JSON files same as in data folder, output should be .JPEG