isp流程介绍(yuv格式阶段)

news2025/5/10 12:35:58

一、前言介绍

        前面两章里面,已经分别讲解了在Raw和Rgb域里面,ISP的相关算法流程,从前面文章里面可以看到,在Raw和Rgb域里面,很多ISP算法操作,更像是属于sensor矫正或者说sensor标定操作。本质上来说,设计的目的上很多是为了改善sensor本身的硬件缺陷。

        而在Yuv域中,更多一些的是对图像画质的增强或者说风格化处理,在设计意义上,与前面Raw和Rgb阶段稍微存在一点区别。如前文描述,Rgb图像经过CSC格式转换得到YUV图像,将人眼敏感的亮度信息和不太敏感的颜色信息分离。因此,在Yuv阶段整个流程中,可以看作是能够并行的对亮度通道Y处理,和对颜色通道UV处理。

二、Y通道处理

1、Luma NR

        Luma NR也就是对亮度通道去噪,其实前面Raw格式阶段,已经有去噪模块,并且有提到,在Raw图像上去噪,去噪难度上能明显好于在后端去噪。但是这块存在历史问题,以前的ISP设计或者说低端硬件设备上,通常无法集成太强大的复杂去噪算法,这就导致Raw图像去噪时候,为了保留更多细节,通常并不会做太多或者太强的去噪,导致后面这边YUV处理时候,需要做进一步的去噪处理。

        就目前来说,比较好的ISP上,比如最近比较火的AI ISP,通常都集成的相对强大的Raw去噪算法,可以做到在保住尽可能多细节情况,把图像噪声基本处理到期望水平。这种情况下Yuv这里,就可以直接把去噪模块省掉了。

常见的luma NR算法有很多,这里就不详解列举了,后面要研究去噪算法时候再慢慢折腾。

如下图所示:左边为待去噪图像,右边为Luma去噪后图像,可以看到去噪后图像上亮噪基本没了,但是由于没有UV去噪,导致残留有大量的色斑。

 

 2、Edge Enhance

        Edge Enhance某种程度上可以理解成抗噪声的图像锐化,期望是在不明显放大噪声情况下,对图像做一些锐度调整,让图像清晰度看起来更加符合人眼感觉。需要注意的是:该模块通常可以明显提升图像清晰度,让图像纹理更清晰,但是并不能无中生有,生成出图像上原本没有的纹理细节。

        常见的作法有选择性锐化或者说多尺度锐化,简单理解就是将输入图像分解到不同频段,在不同频段做纹理细节或者说边缘检测,然后做不同强度的锐化增强,进而得到期望的清晰度增强结果图像。

        但是边缘增强,并不是越强越好,如下图可以看到,右边锐化后结果图像,红框位置出现了明显黑白边异常,因此调整边缘增强时候,需要主要各个频段增强系数,避免图像异常。

        根据个人经验来说,这类算法在实现上,最大的难点在于如何抗噪声干扰,也就是如何保证确实只对连续的边缘进行了增强,这就需要比较准确的,从噪声中分离出边缘细节。但是换句话说,既然都能把噪声和边缘细节分离出来,那基本上也就做了和去噪类似的事情。换个角度来说,如果去噪算法足够好,那么细节增强时候,不用考虑噪声干扰的话,该算法在设计和实现上,将会变得非常简单。

 

3、Contrast & Brightness

亮度的定义上:Y图像上像素值越接近255表示图像越亮,越接近0表示图像越暗;

对比度的定义上:假定图像亮度范围为[a, b],那么b-a越接近255则表示图像对比度越强,反之越接近于0,则表示图像对比度越差。

数字图像处理上,定义了最常见的亮度/对比度调整公式:g(x)=αf(x)+β, 其中α和β分别表示图像的对比度和亮度调整强度。

常用的对比度调整算法还有直方图均衡化,CLAHE等,主要用来控制结果图像的用户风格喜好。

简单效果对比,可以参考如下截图(左图为亮度/对比度调整前,右图为调整后)。

 

三、UV通道处理

1、Chroma NR

        Chroma NR也就是彩色噪声去除,它的实现和Luma NR有比较大的区别,最明显的差异在于人眼对颜色的敏感程度远小于亮度变化,因此设计UV通道去噪时候,可以不用考虑微弱纹理,只需要保住强边就好,简单暴力来说,可以直接使用多尺度的强保边滤波器进行去噪处理, 另外在不考虑微弱纹理情况下,多帧堆叠对去uv色噪非常友好。当然了,如果是因为awb异常导致的整体色斑偏色或者暗电流整片底噪的话,那当我没说过。。。

        需要特别小心2个地方:1、边缘颜色扩散。2、滤波去噪后uv出现颜色偏差。一般来说,会考虑将y通道信息加入滤波,使用y通道信息作为引导,来改善滤波可能引起的颜色扩散和偏色等问题。

        具体算法实现的话,等后面有兴趣整理这块时候,在单独慢慢折腾了。对细节感兴趣的话,小伙伴们可以先参考这个:刘斯宁:Understanding ISP Pipeline - Noise Reduction

        去噪前和去噪后效果对比大致如下,可以看到输入图像上色斑基本处理干净。

 

 2、Hue & Saturation

        Hue & Saturation主要是在做颜色和饱和度调整,简单来说就是根据需求,针对性的对图像不同区域的UV通道信息进行调整。YUV格式之类科普我这里就不做了,需要了解的话,可以参考:YUV格式到底是什么?-腾讯云开发者社区-腾讯云 等资料。

        具体来说,这里设计的功能,最初主要用来对不同应用场景和不同客户喜好的风格调整,比如希望颜色更鲜艳一些之类需求。随着发展逐渐加入了肤色调整(让肤色还原度更高),天空调整(比如让天空更蓝)等操作,近些年很多还加入了场景适配,简单理解就是对预览输入画面进行场景识别,比如风景/人像/宠物/美食等,对不同场景适配不同参数,让对应的场景颜色等维度,分别能都更加符合人眼感官。

        具体颜色转换相关细节,这里也不深入讲了,后面研究这块时候慢慢刷再。目前的话,小伙伴们,可以参考:刘斯宁:Understanding Hue and Saturation 等资料

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数巅智能携手北京昇腾创新中心深耕行业大模型应用

当前,AI技术正在加速向各行业深度渗透,成为驱动产业转型和社会经济发展的重要引擎。构建开放协作的AI应用生态体系、推动技术和应用深度融合,已成为行业发展的重要趋势。 近日,数巅智能与北京昇腾人工智能计算中心(北京昇腾创新中…

【LangChain高级系列】LangGraph第一课

前言 我们今天直接通过一个langgraph的基础案例,来深入探索langgraph的核心概念和工作原理。 基本认识 LangGraph是一个用于构建具有LLMs的有状态、多角色应用程序的库,用于创建代理和多代理工作流。与其他LLM框架相比,它提供了以下核心优…

常见降维算法分析

一、常见的降维算法 LDA线性判别PCA主成分分析t-sne降维 二、降维算法原理 2.1 LDA 线性判别 原理 :LDA(Linear Discriminant Analysis)线性判别分析是一种有监督的降维方法。它的目标是找到一个投影方向,使得不同类别的数据在…

计算机二级(C语言)已过

非线性结构:树、图 链表和队列的结构特性不一样,链表可以在任何位置插入、删除,而队列只能在队尾入队、队头出队 对长度为n的线性表排序、在最坏情况下时间复杂度,二分查找为O(log2n),顺序查找为O(n),哈希查…

2025年3月,​韩先超对国网宁夏进行Python线下培训

大家好,我是韩先超!在2025年3月3号和4号,为 宁夏国网 的运维团队进行了一场两天的 Python培训 ,培训目标不仅是让大家学会Python编程,更是希望大家能够通过这门技术解决实际工作中的问题,提升工作效率。 对…

[计算机网络]物理层

文章目录 物理层的概述与功能传输介质双绞线:分类:应用领域: 同轴电缆:分类: 光纤:分类: 无线传输介质:无线电波微波:红外线:激光: 物理层设备中继器(Repeater):放大器:集线器(Hub)&…

幂等操作及处理措施

利用token模式去避免幂等操作 按以上图所示,除了token,应该也可以把传入的参数用MD5加密,当成key放入redis里面,业务执行完后再删除这个key.如还没有执行完,则请不要重复操作。纯属个人理解

Matlab 数控车床进给系统的建模与仿真

1、内容简介 Matlab217-数控车床进给系统的建模与仿真 可以交流、咨询、答疑 2、内容说明 略 摘 要:为提高数控车床的加工精度,对数控 车床进给系统中影响加工精度的主要因素进行了仿真分析研 动系统的数学模型,利用MATLAB软件中的动态仿真工具 究:依据机械动力学原理建立了…

低成本自动化改造的18个技术锚点深度解析

执行摘要 本文旨在深入剖析四项关键的低成本自动化技术,这些技术为工业转型提供了显著的运营和经济效益。文章将提供实用且深入的指导,涵盖老旧设备联网、AGV车队优化、空压机系统智能能耗管控以及此类项目投资回报率(ROI)的严谨…

我国脑机接口市场规模将破38亿元,医疗领域成关键突破口

当人类仅凭"意念"就能操控无人机编队飞行,当瘫痪患者通过"脑控"重新站立行走,这些曾只存在于科幻电影的场景,如今正通过脑机接口技术变为现实。作为"十四五"规划中重点发展的前沿科技,我国脑机接口…

Edu教育邮箱申请成功下号

这里是第2部分 如你所见,我根本就没有考虑流量的问题, 如果你有幸看到前面的内容,相信你能自己找到这个后续。

【Linux进程控制一】进程的终止和等待

【Linux进程控制一】进程的终止和等待 一、进程终止1.main函数的return2.strerror函数3.库函数exit4.系统调用_exit和库函数exit的区别5.异常信号6.变量errno 二、进程等待1.什么是进程等待?2.wait接口3.status4.waitpid接口 一、进程终止 1.main函数的return 写C…

今日行情明日机会——20250509

上证指数今天缩量,整体跌多涨少,走势处于日线短期的高位~ 深证指数今天缩量小级别震荡,大盘股表现更好~ 2025年5月9日涨停股主要行业方向分析 一、核心主线方向 服装家纺(消费复苏出口链驱动) • 涨停家数&#xf…

单片机-STM32部分:10、串口UART

飞书文档https://x509p6c8to.feishu.cn/wiki/W7ZGwKJCeiGjqmkvTpJcjT2HnNf 串口说明 电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种: TTL电平:3.3V或5V表示1&am…

RabittMQ-高级特性2-应用问题

文章目录 前言延迟队列介绍ttl死信队列存在问题延迟队列插件安装延迟插件使用事务消息分发概念介绍限流非公平分发(负载均衡) 限流负载均衡RabbitMQ应用问题-幂等性保障顺序性保障介绍1顺序性保障介绍2消息积压总结 前言 延迟队列介绍 延迟队列(Delaye…

React 播客专栏 Vol.5|从“显示”到“消失”:打造你的第一个交互式 Alert 组件!

👋 欢迎回到《前端达人 播客书单》第 5 期(正文内容为学习笔记摘要,音频内容是详细的解读,方便你理解),请点击下方收听 📌 今天我们不再停留在看代码,而是动手实现一个真正的 React…

解密火星文:LeetCode 269 题详解与 Swift 实现

文章目录 摘要描述题解答案题解代码分析构建图(Graph)拓扑排序(Topological Sort) 示例测试及结果时间复杂度空间复杂度实际场景类比总结 摘要 这篇文章我们来聊聊 LeetCode 269 题:火星词典(Alien Dictio…

动态规划-62.不同路径-力扣(LeetCode)

一、题目解析 机器人只能向下或向左,要从Start位置到Finish位置。 二、算法原理 1.状态表示 我们要求到Finish位置一共有多少种方法,记Finish为[i,j],此时dp[i,j]表示:到[i,j]位置时,一共有多少种方法,满…

5月9号.

v-for: v-bind: v-if&v-show: v-model: v-on: Ajax: Axios: async&await: Vue生命周期: Maven: Maven坐标:

从 Git 到 GitHub - 使用 Git 进行版本控制 - Git 常用命令

希望本贴能从零开始带您一起学习如何使用 Git 进行版本控制,并结合远程仓库 GitHub。这会是一个循序渐进的指南,我们开始吧! 学习 Git 和 GitHub 的路线图: 理解核心概念:什么是版本控制?Git 是什么&…