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

news/2024/7/21 4:14:14 标签: isp, 相机, 计算机视觉, 图像处理
isplay: none;">

引言

拖更很久了,本着出品必精的原则,我们更新就来点干货。想起刚入行时,网上并没有很多以及系统的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运行结果

HDR-ISP结果

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. 参考仓库

感谢下述仓库以及仓库作者!!

序号仓库开发语言备注
0OpenISPPythonimage signal process in C style
1fast-openIspPythonopen isp 快速版本
2ISP LabC++C++版本开源ISP
3xk-ISPC++复旦大学开源HLS ISP

http://www.niftyadmin.cn/n/5012136.html

相关文章

[html]当网站搭建、维护的时候,你会放个什么界面?

效果图&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网站建设中</title><style>/* 基础样式 */body, html {margin: 0;padding: 0;height: 100%;font-family: Arial, sa…

C++11新特性③ | 可变参数模板介绍

目录 1、引言 2、可变参数模板函数 2.1、可变参数模板函数的定义 2.2、参数包的展开 3、可变参数模板类 3.1、继承方式展开参数包 3.2、模板递归和特化方式展开参数包 VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&#xff…

【时空融合:改进MRA】

Multiresolution Analysis Pansharpening Based on Variation Factor for Multispectral and Panchromatic Images From Different Times &#xff08;基于变化因子的多光谱和全色图像多分辨率分析&#xff09; 大多数泛锐化方法是将同一区域上同时获取的原始低分辨率多光谱(M…

AAOS音频路由 问题分析

文章目录 问题描述问题分析流程梳理问题原因 问题描述 多屏设备&#xff0c;没有按照配置car_audio_configuration.xml配置输出。也即是每个屏幕播放的音频没有对应输出到想对应的bus设备。 问题分析 首先根据hal层的log&#xff0c;确认框架层配置的bus&#xff0c;确认框架…

【Rust日报】2023-09-07 Tauri 2.0 路线图

rustic - 快速,加密,去重备份工具 rustic 是一个用 Rust 实现的快速,加密,去重的备份工具, 它可以读写 restic 的 repo 格式,在大多数情况下可以替代 restic。它支持主要操作系统(Linux, MacOs, BSD)。 rustic 当前还在测试阶段, 一些功能还在开发中。 Github 主页: https://gi…

Vue 报错error:0308010C:digital envelope routines::unsupported 解决方案(三种)

新换的电脑&#xff0c;系统装的win11&#xff0c;node也是18的版本。 跑了一下老项目&#xff0c;我用的是HbuilderX&#xff0c;点击运行和发行时&#xff0c;都会报错&#xff1a; Error: error:0308010C:digital envelope routines::unsupported 出现这个错误是因为 node.j…

如何在SOLIDWORKS中更改单位-硕迪科技

SOLIDWORKS中的单位系统 SOLIDWORKS中的单位系统可以针对单个文件修改、一次修改多个文件以及在默认模板中进行修改。每个SOLIDWORKS文件都有一个单位系统&#xff0c;该单位系统由该文件的文档属性控制。默认情况下&#xff0c;SOLIDWORKS零件、装配体和工程图模板各自规定了…

使用Spring Gateway为对象存储系统MinIo和kkFileView文档预览增加登录验证

文章目录 1、kkfileview下载部署1.1、安装包部署运行1.1.1、物理机或虚拟机上运行1.1.2、Docker容器环境环境运行 1.2、接入说明 2、使用Spring Gateway增加登录认证2.1、网关实现代码2.2、文件服务实现代码2.3、Demo运行效果 官网介绍&#xff1a;kkFileView为文件文档在线预览…