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

一、前言介绍

        前面两章里面,已经分别讲解了在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.mzph.cn/pingmian/80869.shtml

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

相关文章

虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框

虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框 code review! 文章目录 虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框1. 退出编辑器时弹出的“Save Content”窗口2. File 菜单中的保存选项3. 区别总结 1. 退出编辑器时弹出的“Save Content”窗口 退出时…

如何判断IP是否被平台标记

一、基础检测:连通性与黑名单筛查 网络连通性测试 Ping与Traceroute:通过命令测试延迟和路由路径,若延迟>50ms或存在异常节点(如某跳延迟>200ms),可能影响可用性。示例命令: bash ping 8.…

零Gas授权实战:用线下签名玩转智能合约 Permit 机制

目录 链下签名背景什么是 Permit ?链下签名应用场景Permit 原理简述实战:从合约到前端完整实现安全注意事项总结链下签名背景 在以太坊智能合约开发中,很多初学者经常面临这样一个问题:ERC20 代币授权必须先调用链上合约的 approve(),再调用链上合约的 transferFrom(),每…

React 简介:核心概念、组件化架构与声明式编程

本文为《React Agent:从零开始构建 AI 智能体》专栏系列文章。 专栏地址:https://blog.csdn.net/suiyingy/category_12933485.html。项目地址:https://gitee.com/fgai/react-agent(含完整代码示​例与实战源)。完整介绍…

LeetCode100.7 接雨水

对于这题&#xff0c;有一个非常直观简洁的思路&#xff1a;水量等于柱子围成的体积减去柱子的体积。 首先计算每一个高度的体积&#xff0c;相加即为总体积&#xff0c;减去sum(height)即为水的体积。 class Solution { public:int trap(vector<int>& height) {in…

NineData 社区版 V4.1.0 正式发布,新增 4 条迁移链路,本地化数据管理能力再升级

NineData 社区版 V4.1.0 正式更新发布。本次通过新增 4 条迁移链路扩展、国产数据库深度适配、敏感数据保护增强‌等升级&#xff0c;进一步巩固了其作为高效、安全、易用的数据管理工具的定位。无论是开发测试、数据迁移&#xff0c;还是多环境的数据管理&#xff0c;NineData…

Go 语言 sqlx 库使用:对 MySQL 增删改查

MySQL 作为目前最流行的开源关系型数据库&#xff0c;其 SQL 语法体系已形成行业标准&#xff0c;相关知识体系庞大且成熟&#xff0c;本文不再对 SQL 基础进行详细展开&#xff0c;建议尚未掌握的读者先行系统学习。本文聚焦于如何使用 Go 语言进行 MySQL 数据库操作&#xff…

单片机-STM32部分:13、PWM

飞书文档https://x509p6c8to.feishu.cn/wiki/NjhuwbVP7iaEOikVK95cmJNLnWf PWM&#xff08;Pulse Width Modulation&#xff09;脉冲宽度调制&#xff0c;是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。它是把每一脉冲宽度均相等的脉冲列作为PWM波形&am…

抽奖系统-奖品-活动

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言获取奖品列表前端页面活动创建需求分析活动创建后端实现1-控制层实现及校验活动活动创建后端实现2-保存信息活动插入活动奖品插入 整合活动信息存入redis测试活…

Dense 与 MoE 系列模型架构的全面对比与应用策略

0. 简介 人工智能领域正经历着一场架构革命&#xff0c;从传统的密集连接模型&#xff08;Dense&#xff09;向混合专家模型&#xff08;Mixture of Experts, MoE&#xff09;的转变。本文将全面剖析这两种模型架构的本质差异、各自优势与挑战&#xff0c;并提供战略性的选择框…

代码随想录算法训练营第四十天

LeetCode题目: 647. 回文子串516. 最长回文子序列 其他: 今日总结 往期打卡 647. 回文子串 跳转: 647. 回文子串 学习: 代码随想录公开讲解 问题: 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。…

Supabase 的入门详细介绍

Supabase 是什么&#xff1f; 简单来说&#xff0c;Supabase 是一个开源的 Firebase 替代品。它提供了一整套后端即服务 (BaaS - Backend as a Service) 的工具&#xff0c;让你能够快速构建应用程序的后端&#xff0c;而无需自己从头搭建和管理服务器、数据库等基础设施。 S…

【MySQL】mysql/bin目录下程序介绍

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【MySQL】探秘&#xff1a;数据库世界的瑞士军刀 MySQL在安装完成后&#xff0c;通常会包含以下程序&#xff0c;以Ubuntu上的mysql为例&#xff0c;我们可以查看到 以下是常用的mysql程序 程序名作用…

IDEA+git将分支合并到主分支、IDEA合并分支

文章目录 一、合并分支二、可能遇到的问题2.1、代码冲突 开发过程中我们可能在开发分支(dev)中进行开发&#xff0c;等上线后将代码合并到主分支(master)中&#xff0c;本文讲解如何在IDEA中将dev分支的代码合并到master分支中。 一、合并分支 功能说明&#xff1a;将dev分支的…

通过Ollama读取模型

通过Ollama读取模型 前言一、查看本地Ollama上有哪些模型二、调用bge-m3模型1、调用模型2、使用bge-m3进行相似度比较 三、调用大模型 前言 手动下载和加载大模型通常需要复杂的环境配置&#xff0c;而使用Ollama可以避免这一问题。本文将介绍如何调用Ollama上的模型。 一、查…

JS 中 Object.keys() 和 Object.values() 的深度解析与应用

文章目录 前言一、Object.keys() 和 Object.values() 基础1. Object.keys()2. Object.values() 二、与 Object.entries() 的对比三、实际应用场景1. 遍历对象属性2. 判断对象是否为空3. 对象与数组的转换4. 动态属性操作5. 过滤对象属性 总结 前言 在 JavaScript 开发中&#…

HCIP(BFD)

一、前言 随着网络应用的广泛部署,网络发生故障极大可能导致业务异常。为了减小链路、设备故障对业 务的影响,提高网络的可靠性,网络设备需要尽快检测到与相邻设备间的通信故障,以便及时采取措施,保证业务正常进行。BFD(Bidirectional Forwarding Detection,双向转发检测)提供…

Webpack其他插件

安装html打包插件 const path require(path); const HtmlWebpackPlugin require(html-webpack-plugin) module.exports {entry: path.resolve(__dirname,src/login/index.js),output: {path: path.resolve(__dirname, dist),filename: ./login/index.js,clean:true},Plugin:…

【Linux网络】网络层

网络层 在复杂的网络环境中确定一个合适的路径 IP 协议 IPV4 点分十进制[0,255].[0,255].[0,255].[0,255]IPV6 IP地址目标网格目标主机 基本概念 主机:配有IP地址,但是不进行路由控制的设备;路由器:即配有IP地址,又能进行路由控制;节点:主机和路由器的统称。 两个问题 路…

跨域的几种方案

因为浏览器出于安全考虑&#xff0c;有同源策略。也就是说&#xff0c;如果协议、域名、端口有一个不同就是跨域&#xff0c;Ajax 请求会失败。 我们可以通过以下几种常用方法解决跨域的问题 JSONP JSONP 的原理很简单&#xff0c;就是利用 <script> 标签没有跨域限制…