Git Product home page Git Product logo

hdr-isp's Introduction

Image Signal Process For HDR CMOS Image Sensor

中文README

Project Description

An ISP pipeline written in C++ for HDR cameras

  • The ISP modules are written in C style
  • Without other library dependencies
  • Can be deployed various embedded platforms
  • Customize your pipeline through json configuration

Default Pipeline

Pipeline

Support ISP Module Lists

  • Raw Domain
    • MipiUnPack: mipi raw data unpack to raw16
    • DePwl: decode the pwl curve
    • Dpc: dynamic pixel correct
    • Lsc: lens shding correct
    • Blc: black level correct
    • Rns: raw noise filter
    • WbGain: white balance gain
    • Demoasic: change raw to rgb
  • RGB Domain
    • Ltm: local tone mapping
    • RgbGamma: rgb gamma curve
    • Ccm: color correct matrix
    • Rgb2Yuv: rgb domain to yuv domain
  • YUV Domain
    • YGamma: gray gamma curve
    • Contrast: gray contrast adjust
    • Sharpen: gray usm sharpen
    • Cns: chrome noise filter
    • Saturation: chrome saturation
    • Yuv2Rgb: yuv domain to rgb domain

How To Build and Run

Linux

Develop Env :

#dependencies install(cmake and opencv)
sudo apt update
sudo apt install cmake

Build

git clone https://github.com/JokerEyeAdas/HDRImageSignalProcess
cd HDRImageSignalProcess/
mkdir build
cmake ..
make -j12

Windows

Develop Env (x64):

  • vs code
  • cmake
  • vs2019 c++ gen tool

build tool

Build

git clone https://github.com/JokerEyeAdas/HDRImageSignalProcess
code HDRImageSignalProcess
#cmake choose Debug or Release
#compiler choose xxx-amd64
#build all

How To Run

cd build
#cp cfgs and data
cp -r ../data/ ./
cp -r ../cfgs/ ./
#run isp
./HDR_ISP ./cfgs/isp_config_cannon.json

How To Tunning Params

By changing Json Config

example1, change sensor params:

    "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
    },

example2, change rgb gamma params:

"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
        ]
    }

Result

ISP Result

Notes Image
Raw raw
ISP Result(Ours) ISP
FastOpenISP Result Fast ISP

Detail Compare

ISP Image1 Image2 Notes
Ours Our Detail Our Detail Detail and boundaries is clear
Fast Open Isp Open Isp Open Isp Color banding and detail lost

Follow-Up

  • Support Dpc, Rns, Cns and other ISP modules;
  • Write ISP tunning GUI tools.

Project Support

  • Thanks for your support, we hope that my project can help your work

Appreciation Code

Reference Repo

Thanks for the following code repository!

Index Repo Language Notes
0 OpenISP Python image signal process in C style
1 fast-openIsp Python open isp speed up verison in python
2 ISP Lab C++ Isp realized by c++
3 xk-ISP C++ C++ ISP For HLS on FPGA

Follow Me

Zhihu:EYES OF ADAS | Blog:EYES OF ADAS | WeChat:

WeChat

Eyes of Adas Copyright Reserved @2023, No commercial use without permission


hdr-isp's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.