开源|HDR-ISP开源项目介绍

引言

拖更很久了,本着出品必精的原则,我们更新就来点干货。想起刚入行时,网上并没有很多以及系统的ISP的学习资料,都是边工作、边搜集资料然后边学习,一路坎坎坷坷走到今天算是刚入了ISP的大门。

为了解决新人入门的问题,给广大入门的新人一个参考的demo,我参考了各个开源的ISP,使用C++肝了一个用于HDR相机的开源ISP,用于给入门的新人参考。开源链接放在文末,有需要的自取。

1. 项目描述

1.1 项目特点

一个使用C++编写的、用于HDR相机的ISP Pipeline

  • ISP模块使用C风格编写
  • 除仓库文件外,无其它第三方库依赖
  • 可以在任意支持C++的嵌入式平台上部署
  • 可以通过json配置自定义你的pipeline

1.2 默认Pipeline

默认Json配置pipeline:

开源|HDR-ISP开源项目介绍_第1张图片

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运行结果

开源|HDR-ISP开源项目介绍_第2张图片

3.2 与fastOpenIsp细节对比

开源|HDR-ISP开源项目介绍_第3张图片

3.3 后续工作

支持Lsc、Dpc、Rns、Cns等ISP模块;
GUI ISP调试工具编写,支持Gui调参。

3.4 项目支持

感谢您的支持,希望我的项目对您有帮助
项目初期,希望各位多多点赞以及随手点亮小星星
为了使本项目更快地扩展开发,我们需要您的充电

开源|HDR-ISP开源项目介绍_第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

你可能感兴趣的:(ADAS,Sensor+Isp,车载CMOS,isp,相机,计算机视觉,图像处理)