Skip to content

Commit 3fb0ff4

Browse files
committed
update README.md and add demo images
1 parent 89d89ee commit 3fb0ff4

9 files changed

Lines changed: 48 additions & 12 deletions

File tree

README.md

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# Fast Open Image Signal Processor (fast-openISP)
22

3-
As told by its name, fast-openISP is a **faster** (and bugs-fixed) re-implementation of the [openISP](https://github.com/cruxopen/openISP) project.
3+
As told by its name, fast-openISP is a **faster** (and bugs-fixed) re-implementation of
4+
the [openISP](https://github.com/cruxopen/openISP) project.
45

5-
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**.
6+
Compared to C-style code in the official openISP repo, fast-openISP uses pure matrix implementations based on Numpy, and
7+
increases processing speed **over 300 times**.
68

79
Here is the running time in my Ryzen 7 1700 8-core 3.00GHz machine with the 1920x1080 input Bayer array:
810

@@ -25,7 +27,6 @@ Here is the running time in my Ryzen 7 1700 8-core 3.00GHz machine with the 1920
2527
|BBC |27.92s |0.03s |
2628
|End-to-end pipeline|2894.41s|8.48s |
2729

28-
2930
# Usage
3031

3132
Clone this repo and run
@@ -36,32 +37,67 @@ python demo.py
3637

3738
The ISP outputs will be saved to `./output` directory.
3839

39-
The only required package for pipeline execution is `numpy`.
40-
41-
`opencv-python` and `scikit-image` are required for data IO.
40+
The only required package for pipeline execution is `numpy`.
4241

42+
`opencv-python` and `scikit-image` are required for data IO.
4343

4444
# Algorithms
4545

46-
All modules in fast-openISP reproduce [processing algorithms](https://github.com/cruxopen/openISP/blob/master/docs/Image%20Signal%20Processor.pdf) in openISP, except for EEH and BCC modules.
46+
All modules in fast-openISP
47+
reproduce [processing algorithms](https://github.com/cruxopen/openISP/blob/master/docs/Image%20Signal%20Processor.pdf)
48+
in openISP, except for EEH and BCC modules.
4749

4850
### EEH (edge enhancement)
4951

50-
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.
52+
The official openISP uses
53+
an [asymmetric kernel](https://github.com/cruxopen/openISP/blob/49de48282e66bdb283779394a23c9c0d6ba238ff/isp_pipeline.py#L150)
54+
to extract edge map. In fast-openISP, however, we use the subtraction between the original and the gaussian filtered
55+
Y-channels as the edge estimation, and consequently reduces the artifact when the enhancement gain is large.
5156

5257
### BCC (brightness & contrast control)
5358

54-
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.
55-
59+
The official openISP enhances the image contrast by pixel-wise enlarge the difference between pixel values and a
60+
constant integer (128). In fast-openISP, we use the median value of the whole frame instead of a constant.
5661

5762
# Parameters
5863

59-
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.
64+
Tunable module parameters in fast-openISP are differently named from those in openISP, but they are all self-explained,
65+
and no doubt you can easily tell the counterparts in two repos. All parameters are managed in a yaml configuration file,
66+
and one yaml for one camera.
6067

6168
# Demo
6269

63-
`# todo`
70+
<p align="center"><a href="assets/dpc.jpg"><img src="assets/dpc.jpg" alt="img" align="right" width="720px"></a></p>
71+
72+
<p align="center">Bayer Input</p>
73+
74+
<p align="center"><a href="assets/cfa.jpg"><img src="assets/cfa.jpg" alt="img" align="right" width="720px"></a></p>
75+
76+
<p align="center">CFA Interpolation</p>
77+
78+
<p align="center"><a href="assets/ccm.jpg"><img src="assets/ccm.jpg" alt="img" align="right" width="720px"></a></p>
79+
80+
<p align="center">Color Correction</p>
81+
82+
<p align="center"><a href="assets/gca.jpg"><img src="assets/gca.jpg" alt="img" align="right" width="720px"></a></p>
83+
84+
<p align="center">Gamma Correction</p>
85+
86+
<p align="center"><a href="assets/bnf.jpg"><img src="assets/bnf.jpg" alt="img" align="right" width="720px"></a></p>
87+
88+
<p align="center">Non-local Means & Bilateral Filter</p>
89+
90+
<p align="center"><a href="assets/eeh.jpg"><img src="assets/eeh.jpg" alt="img" align="right" width="720px"></a></p>
91+
92+
<p align="center">Edge Enhancement</p>
93+
94+
<p align="center"><a href="assets/hsc.jpg"><img src="assets/hsc.jpg" alt="img" align="right" width="720px"></a></p>
95+
96+
<p align="center">Hue & Saturation Control</p>
97+
98+
<p align="center"><a href="assets/bcc.jpg"><img src="assets/bcc.jpg" alt="img" align="right" width="720px"></a></p>
6499

100+
<p align="center">Brightness & Contrast Control</p>
65101

66102
# License
67103

assets/bcc.jpg

1.81 MB
Loading

assets/bnf.jpg

1.61 MB
Loading

assets/ccm.jpg

1.72 MB
Loading

assets/cfa.jpg

1.58 MB
Loading

assets/dpc.jpg

7.62 MB
Loading

assets/eeh.jpg

1.66 MB
Loading

assets/gac.jpg

2.21 MB
Loading

assets/hsc.jpg

1.72 MB
Loading

0 commit comments

Comments
 (0)