引言
拖更很久了,本着出品必精的原则,我们更新就来点干货。想起刚入行时,网上并没有很多以及系统的ISP的学习资料,都是边工作、边搜集资料然后边学习,一路坎坎坷坷走到今天算是刚入了ISP的大门。
为了解决新人入门的问题,给广大入门的新人一个参考的demo,我参考了各个开源的ISP,使用C++肝了一个用于HDR相机的开源ISP,用于给入门的新人参考。开源链接放在文末,有需要的自取。
1. 项目描述
1.1 项目特点
一个使用C++编写的、用于HDR相机的ISP Pipeline
- ISP模块使用C风格编写
- 除仓库文件外,无其它第三方库依赖
- 可以在任意支持C++的嵌入式平台上部署
- 可以通过json配置自定义你的pipeline
1.2 默认Pipeline
默认Json配置pipeline:
1.3 当前支持的模块
支持&准备支持的ISP模块列表:
- Raw Domain
- MipiUnPack: Mipi原始数据转RAW16
- DePwl: 解压缩数据
- Dpc: 动态坏点校准(TBD)
- Lsc: 镜头阴影校准(TBD)
- Blc: 黑电平校准
- Rns: Raw域降噪
- WbGain: 白平衡增益
- Demoasic: 解马赛克
- RGB Domain
- Ltm: 局部色调映射
- RgbGamma: rgb伽马曲线
- Ccm: 色彩校准矩阵
- Rgb2Yuv: rgb域转yuv域
- YUV Domain
- YGamma: 灰度伽马曲线
- Contrast: 对比度提升
- Sharpen: 锐化边缘增强
- Cns: 颜色滤波(TBD)
- Saturation: 色度提升
- Yuv2Rgb: yuv域转rgb域
2. 如何编译与运行
2.1 Linux系统
开发环境:
#dependencies install(cmake and opencv)
sudo apt update
sudo apt install cmake
编译:
git clone https://github.com/JokerEyeAdas/HDR-ISP
cd HDR-ISP/
mkdir build
cmake ..
make -j12
2.2 Windows系统
开发环境(x64):
- vs code
- cmake
- msvc c++ gen tool
编译:
git clone https://github.com/JokerEyeAdas/HDR-ISP
code HDR-ISP
#cmake 选择 Debug or Release
#compiler 选择 xxx-amd64
#build all
2.3 运行
cd build
#cp cfgs and data
cp -r ../data/ ./
cp -r ../cfgs/ ./
#run isp
./HDR_ISP ./cfgs/isp_config_cannon.json
2.4 参数调试
通过修改json配置来配置ISP模块的基本参数
如,修改sensor基本参数:
"raw_file": "./data/connan_raw14.raw",
"out_file_path": "./",
"info": {"sensor_name": "cannon","cfa": "RGGB","data_type": "RAW16","bpp": 16,"max_bit": 14,"width": 6080,"height": 4044,"mipi_packed": 0
},
修改rgb gamma参数如下:
"rgbgamma": {"enable": true,"in_bit": 10,"out_bit": 8,"gammalut_nums": 11,"gammalut": [0,0.3504950718773984,0.48243595264750255,0.57750428843709,0.6596458942714417,0.731034378464739,0.7925580792857235,0.8509817015104557,0.9029435754464383,0.9534255851019492,1.0]}
3. 运行结果&其他ISP对比
3.1 Pipeline运行结果
3.2 与fastOpenIsp细节对比
3.3 后续工作
支持Lsc、Dpc、Rns、Cns等ISP模块;
GUI ISP调试工具编写,支持Gui调参。
3.4 项目支持
感谢您的支持,希望我的项目对您有帮助
项目初期,希望各位多多点赞以及随手点亮小星星
为了使本项目更快地扩展开发,我们需要您的充电
4. 结束语
今天我们给大家介绍了开源HDR-ISP,希望对于入门的新人有一定的借鉴作用,同时希望我们的开源对于处于行业里面的你们有所帮助!
如果您对自动驾驶感兴趣,可以关注本公众号,当然有想了解的话题,也可以私信我,我们将对各位看官感兴趣的话题进行技术分享。
项目地址:https://github.com/JokerEyeAdas/HDR-ISP
项目GitHub快速传送门:HDR-ISP
如果您对ADAS感兴趣,欢迎关注我的公众号“ADAS之眼”,知乎、CSDN等平台同步更新,同时发表文章中使用源码会在我的GitHub进行开源(网页About Me中有公众号、Github等信息)
5. 参考仓库
感谢下述仓库以及仓库作者!!
序号 | 仓库 | 开发语言 | 备注 |
---|---|---|---|
0 | OpenISP | Python | image signal process in C style |
1 | fast-openIsp | Python | open isp 快速版本 |
2 | ISP Lab | C++ | C++版本开源ISP |
3 | xk-ISP | C++ | 复旦大学开源HLS ISP |