As told by its name, fast-openISP is a faster (and bugs-fixed) re-implementation of the openISP project.
Compared to C-style code in the official openISP repo, fast-openISP uses pure matrix implementations based on Numpy, and increases processing speed over 300 times.
Here is the running time in my Ryzen 7 1700 8-core 3.00GHz machine with the 1920x1080 input Bayer array:
| Module | openISP | fast-openISP |
|---|---|---|
| DPC | 20.57s | 0.30s |
| BLC | 11.75s | 0.02s |
| AAF | 16.87s | 0.08s |
| AWB | 7.54s | 0.02s |
| CNF | 73.99s | 0.26s |
| CFA | 40.71s | 0.21s |
| CCM | 56.85s | 0.07s |
| GAC | 25.71s | 0.07s |
| CSC | 60.32s | 0.06s |
| NLM | 1600.95s | 5.52s |
| BNF | 801.24s | 0.77s |
| EEH | 68.60s | 0.83s |
| FCS | 25.07s | 0.08s |
| HSC | 56.34s | 0.07s |
| BBC | 27.92s | 0.03s |
| End-to-end pipeline | 2894.41s | 8.48s |
Clone this repo and run
python demo.py
The ISP outputs will be saved to ./output directory.
The only required package for pipeline execution is numpy.
opencv-python and scikit-image are required for data IO.
All modules in fast-openISP reproduce processing algorithms in openISP, except for EEH and BCC modules.
The official openISP uses the subtraction between the original and the gaussian-filtered Y-channel arrays as the edge map approximation. In fast-openISP, however, we replace gaussian with the bilateral filter, which gets better estimation to the edges, and consequently reduces the artifact when the enhancement gain is large. Besides, the processing to pixels in the non-edge region has been slightly improved.
The official openISP enhances the image contrast by pixel-wise enlarge the difference between pixel values and a constant integer (128). In fast-openISP, we use the median value of the whole frame instead of a constant.
Tunable module parameters in fast-openISP are differently named from those in openISP, but they are all self-explained, and no doubt you can easily tell the counterparts in two repos. All parameters are managed in a yaml configuration file, and one yaml for one camera.
# todo
Copyright 2021 Qiu Jueqin.
Licensed under MIT.