ISP图像处理pipeline简介1

ISP 是什么?

ISP (Image Signal Processor),图像信号处理器,是用于摄影和视频处理的一种专用芯片。它是用来干什么的呢?简单说就是用来将图像传感器(CCD, CMOS)信号转化成可视的信号的功能,这里可视的是指人眼可见的意思;在其它的应用场景,比如车载自动驾驶和机器人领域,“可视的”就要改成“可识别的“,可识别是指机器可识别,计算机可识别,或者算法可识别,这就是computer vision机器视觉(总之不是给人看的)。总之,就是将传感器信号进行处理,让人或者机器人能够看得见。要达到这个目的,我们对isp提了一些基本的要求。
人类视角看到的花:

机器视角看到的花:
在这里插入图片描述

ISP通常会作为一个模块集成到SoC上,也可以在设备的CPU或GPU上执行在ISP上的操作

ISP要求三原则

  1. 看得见 (动态范围, 明暗的分布范围,在科学研究中用lux来衡量亮度的大小。在日常生活和应用场景中,我们在晴天的日光下,照度可以达到10万lux,在树荫下照度下降到了1万lux,在日光灯下,只有300lux,白炽灯下又下降了一半只有150lux,在夜晚的路灯下只有10lux烛光下是1lux,在有月亮并且是满月的情况下照度只有0.1lux;星光下是0.001lux,在没有月亮也没有星星的漆黑的夜晚,照度达到了最低,仅仅1/10000 lux(万分之一);看得见的要求是在一个比较暗的环境下,依然能看得见。比如包括安防、无人机、自动驾驶等等对“看得见”的基本要求是在10lux,也即是在路灯下能够看得见。军工级别的要求是在0.001lux也就是有星星的夜晚能够可视(看得见)。)
  2. 看得清 (清晰度,噪音,这个就比较好理解,你看各手机厂,相机厂都在拼分辨率,就是为了能让照片拍得更加清晰)
  3. 看的好 (色彩或风格,比如什么哈苏色彩,徕卡色彩)
    在这里插入图片描述

ISP应用领域

应用领域只能说很广泛,比如你现在玩的手机,出去玩带的各种相机,家里装的监控,以及汽车,机器人,特别是自动驾驶汽车,摄像头可能有十几个,车内车外都可能有。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ISP的工作流程PIPELINE

下图展示的是相机isp的典型pipeline, 这个例子中传感器数据最终会被输出为一个JPEG图片:
在这里插入图片描述
不同的ISP可能会以不同的顺序或方式应用这些步骤并且往往更加复杂,但一般包含这些步骤:3A(auto focus, auto exposure, auto white balance, 自动对焦, 自动曝光,自动白平衡),ISO增益,raw图片的各种处理,Demoasicing解马赛克,降噪,色彩空间转换,镜头和sensor校正,色彩校正,对比度和动态范围的调整,锐化,编码压缩等等。

下图是另一个使用场景的isp pipeline,这个例子中,传感器输出的raw data会被转化为yuv格式,然后进行视频编码。上一个例子是拍照的场景,这个是录视频的场景。
在这里插入图片描述
在这里插入图片描述
上一个图中按照图片在不同阶段的格式将pipeline划分为三个不同的阶段:raw domain, rgb domain,yuv domian。raw就是sensor 直出的,未经过处理的格式;在经过解马赛克这个工序之后就变成了rgb格式;但是在视频处理领域用得比较多的的是yuv格式,所以pipeline中需要将rgb格式转化成yuv进行后续的处理。

ISP 算法分类

从算法层面来讲,我们可以把ISP的常用算法分为几大类:2A(3A),镜头和sensor校正,对比度与动态范围,色彩,清晰度和降噪。

3A

3A就是指3auto focus自动对焦, auto exposure自动曝光, auto white balance自动白平衡。2A就是不包括自动对焦。
自动曝光曝光就是通过分析统计信息对sensor的曝光强度进行控制,确保视频(图片)亮度的稳定性。
自动白平衡同样也是通过分析统计信息对sensor输出的信号进行白平衡进行校正,确保色彩感知的稳定性,或者说叫让白色呈现为白色,解决环境光不同色温导致整幅图片偏色的情况。
同理,自动对焦也是通过分析统计信息对镜头的焦距进行调整保证兴趣区域的清晰度。

镜头和sensor校正

镜头是由透镜组成,由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真(包括形状,亮度,色彩)。镜头的畸变分为径向畸变和切向畸变两类。同时sensor模组本身也会导致一些信号的退化(亮度变化,串色等)。为了解决这些问题,ISP有各种算法来对这些畸变进行校正。
LSC:lens shading correction.镜头阴影校正,用来校正由于镜头模组导致的成像时的亮度和色彩不平衡。
CAC:color aberration correction, 用来校正由于镜头模组导致的色散现象。
DPC:defected pixel corrtction, 传感器像素坏点校正,用来处理传感器制作过程中出现的坏点。
BLC: black level correction, 黑电平校正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/550709.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回归损失函数

目录 1 MAE 2 MSE 3 MAPE 4 Quantile Loss分位数损失 回归损失函数也可以做为评价指标使用,但是有没有想过数据分布与损失函数之间的关系呢! 使用特定损失函数的前提是我们对标签的分布进行了某种假设,在这种假设的前提下通过极大似然法推…

社交媒体数据恢复:YY语音

YY语音数据恢复指南 在我们的日常生活中,数据丢失是一种常见的现象。有时候,我们可能会不小心删除了重要的文件,或者因为硬件故障而导致数据丢失。在这种情况下,数据恢复软件可以帮助我们找回丢失的数据。本文将重点介绍如何使用Y…

一招将vscode自动补全的双引号改为单引号

打开设置,搜索quote,在结果的HTML选项下找到自动完成,设置默认引号类型即可。 vscode版本:1.88.1, vscode更新日期:2024-4-10

STM32-ADC(独立模式、双重模式)

ADC简介 18个通道:外部信号源就是16个GPIO回。在引脚上直接接模拟信号就行了,不需要侄何额外的电路。引脚就直接能测电压。2个内部信号源是内部温度传感器和内部参考电压。 逐次逼近型ADC: 它是一个独立的8位逐次逼近型ADC芯片,这个ADC0809是…

net core 程序运行报错,需要kb2533623补丁

报错大概如下: Failed to load the dll from xxxx 0x80070057 The library hostfxr.dll was found, but loading it from .xxxx\hostfxr.dll failed 目前微软官方已经停止这个补丁下载了,找个了多个网址不是带病毒就是带推广了,下面这个目前…

I2C通信的详细讲解

物理接口: SCL SDA (1)SCL(serial clock):时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道。 (2)SDA(serial data):数据…

【从零开始手搓12306项目】第一阶段遇到的问题及解决方案

IDEA中datebase连接mysql失败 读取外包函数报错 注意区分private和public 找不到数据库? 一定要注意数据库的url链接,在datebase的url复制过来 xml和java对应不上? 最好复制一遍到xml文件 git忽略条件文件目录 定义Git全局的 .gitigno…

还有同学开题报告没写吗?

引言 作为一名在软件技术领域深耕多年的专业人士,我不仅在软件开发和项目部署方面积累了丰富的实践经验,更以卓越的技术实力获得了🏅30项软件著作权证书的殊荣。这些成就不仅是对我的技术专长的肯定,也是对我的创新精神和专业承诺…

Golang面试题四(GMP)

目录 1.Goroutine 定义 2.GMP 指的是什么 3.GMP模型的简介 全局队列(Global Queue) P的本地队列 P列表 M列表 4.有关P和M的个数问题 P的数量问题 M的数量问题 P和M何时会被创建 5.调度器P的设计策略 复⽤线程 work stealing机制 hand off…

Adobe将Sora、Runway、Pika,集成在PR中

4月15日晚,全球多媒体巨头Adobe在官网宣布,将OpenAI的Sora、Pika 、Runway等著名第三方文生视频模型,集成在视频剪辑软件Premiere Pro中(简称“PR”)。 同时,Adob也会将自身研发的Firefly系列模型包括视频…

Java工程师常见面试题:Java基础(一)

1、JDK 和 JRE 有什么区别? JDK是Java开发工具包,它包含了JRE和开发工具(如javac编译器和java程序运行工具等),主要用于Java程序的开发。而JRE是Java运行环境,它只包含了运行Java程序所必须的环境&#xf…

社交媒体数据恢复:钉钉

在数字化办公日益普及的今天,钉钉作为一款综合性的企业级通讯工具,已经深入到众多企业和个人的工作与生活中。然而,在日常使用过程中,我们难免会遇到一些意外情况导致数据丢失的问题。本文将针对钉钉数据恢复这一主题,…

Cisco ACI使用Postman配置交换机-未完待续

先看下不使用脚本的情况下是怎么配置交换机端口的? 例: 有10个交换机接口要开trunk,透传50个vlan, 使用GUI的操作方式为 1 进入EPG -->Static port 2 右键,绑定接口 3 选中node -->指定接口—>指定vlan —>…

意大利侍酒师Galvan Maurizia分享意大利葡萄酒与美食文化魅力

在酒水行业日益繁荣的今天,消费者对酒类产品的品质、文化和品味的追求不断提升。为了满足这一市场需求,云仓酒庄近日宣布开启首届《综合品酒师》培训,旨在培养更多具备专业素养和品鉴能力的品酒师,为酒水行业的专业化和形象提升注…

【行为型模式】观察者模式

一、观察者模式概述​ 软件系统其实有点类似观察者模式,目的:一个对象的状态或行为的变化将导致其他对象的状态或行为也发生改变,他们之间将产生联动。 观察者模式属于对象行为型: 1.定义了对象之间一种一对多的依赖关系&#xff…

翱途O2OA新手上路-服务器下载及私有云部署

本篇主要简要描述从官网下载服务器,进行部署,启动的过程,并且描述在部署过程中常见的问题与报错以及云服务器安全策略配置和O2OA服务器端口修改的方式。 O2OA部署的服务器要求不高,一般使用4C8G以上的服务器均可正常运行。 一、检…

锂电池充放电管理-单片机通用

锂电池充放电管理-单片机通用 一、锂电池充放电检测的原理二、power.c的实现三、power.h的实现四、锂电池检测和充电电路 一、锂电池充放电检测的原理 ①两节锂电池通过电阻分压检测ADC,再根据电压划分电量等级;②充电使用的是锂电池充电IC方案&#xf…

2024年4月最新版GPT

2024年4月最新版ChatGPT/GPT4, 附上最新的使用教程。 随着人工智能技术的不断发展,ChatGPT和GPT4已经成为了人们日常生活中不可或缺的助手。2024年4月,OpenAI公司推出了最新版本的GPT4,带来了更加强大的功能和更加友好的用户体验。本文将为大家带来最新版GPT4的实用…

每日一题(PTAL2-006):树的遍历--树的构建,队列

因为要层序遍历&#xff0c;所以我们可以考虑构建一颗二叉树。构建完只有利用队列就可以就行层序遍历。 #include <bits/stdc.h> using namespace std; int p1[35]; int p2[35]; typedef struct Tree {int val;struct Tree* left;struct Tree* right; }TT; typedef TT* …

鸿蒙入门02-首次安装和配置

注&#xff1a;还没有安装编辑器&#xff08; deveco studio &#xff09;的小伙伴请看鸿蒙入门01-下载和安装-CSDN博客 首次安装配置 编辑器&#xff08; deveco studio &#xff09;安装完毕以后需要进入配置界面进行相关配置配置完毕以后才可以正常使用 环境配置&#xf…