- Notifications
You must be signed in to change notification settings - Fork72
QiuJueqin/fast-openISP
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
As told by its name, fast-openISP is afaster (and bugs-fixed) re-implementation oftheopenISP project.
Compared to C-style code in the official openISP repo, fast-openISP uses pure matrix implementations based on Numpy, andincreases processing speedover 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.29s |
BLC | 11.75s | 0.02s |
AAF | 16.87s | 0.08s |
AWB | 7.54s | 0.02s |
CNF | 73.99s | 0.25s |
CFA | 40.71s | 0.20s |
CCM | 56.85s | 0.06s |
GAC | 25.71s | 0.07s |
CSC | 60.32s | 0.06s |
NLM | 1600.95s | 5.37s |
BNF | 801.24s | 0.75s |
CEH* | - | 0.14s |
EEH | 68.60s | 0.24s |
FCS | 25.07s | 0.08s |
HSC | 56.34s | 0.07s |
BBC | 27.92s | 0.03s |
End-to-end pipeline | 2894.41s | 7.82s |
* CEH module is not included in the official openISP pipeline.
Clone this repo and run
python demo.py
The ISP outputs will be saved to./output
directory.
The only required package for pipeline execution isnumpy
.opencv-python
andscikit-image
are required only fordata IO.
All modules in fast-openISPreproduceprocessing algorithmsin openISP, except for EEH and BCC modules. In addition, a CEH (contrast enhancement) module withCLAHE isadded into the fast-openISP pipeline.
The official openISP usesanasymmetric kernelto extract edge map. In fast-openISP, however, we use the subtraction between the original and the gaussian filteredY-channel as the edge estimation, which reduces the artifact when the enhancement gain is large.
The official openISP enhances the image contrast by pixel-wise enlarging the difference between pixel values and aconstant integer (128). In fast-openISP, we use the median value of the whole frame instead of a constant.
Tunable 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 yamlin./configs
, one file per camera.
Bayer Input |
---|
![]() |
CFA Interpolation |
---|
![]() |
Color Correction |
---|
![]() |
Gamma Correction |
---|
![]() |
Non-local Means & Bilateral Filter |
---|
![]() |
Contrast Enhancement |
---|
![]() |
Edge Enhancement |
---|
![]() |
Hue & Saturation Control |
---|
![]() |
Brightness & Contrast Control |
---|
![]() |
Copyright 2021 Qiu Jueqin.
Licensed underMIT.