双目色彩一致性问题定位回顾

news2025/2/26 13:45:53

双目色彩一致性问题定位回顾

一、事情起因:

      客户想要用一个主控搭载两颗相同的sensor,使用相同的镜头进行双目拼接以扩大视场角,达到类似广角镜头的效果:

双目采集的原始图像:图片来源:宇视全彩双目广角筒机如何实现画面无缝拼接

双目拼接后的图像:

       为了消除双目输出的两路图像亮度和色彩中的差异,我们在ISP内部做了白平衡和自动曝光的融合处理,确保图像色彩和图像亮度达到一致。在实际使用过程中,客户发现对着同样的场景,左边sensor输出的图像和右边sensor输出的图像比较起来始终存在一定色差。客户认为使用相同的sensor,相同的镜头对着相同的场景(两路图像并不完全一样),两路图像看起来不应该存在色差才对呀!

      客户就纳闷了:究竟是主控的ISP对两路图像做了不同的处理呢?还是两路sensor自身的一致性或者镜头的一致性不一样,导致采集到的图像输出就有略微差异,经过ISP的某些模块把这些差异放大呢?

      究竟会是哪一个原因呢?是ISP的问题还是sensor的问题呢?如果客户有这些疑问,我们又该如何拿出有力的证据证明不是ISP的问题呢?

二、验证方法:

      一个方法是在灯箱中,把两路sensor分别设置固定白平衡固定曝光的情况下,

      抓取两路sensor拍摄18%灰卡RAW数据进行分析。分析数据要耗费大量时间,而且似乎也不够直观。如果能够直接通过图像的形式阐述这个问题的原因,那就太好了。

      要是需要用图像,如何保证输入到ISP端的图像数据是一样的呢?因为虽然双目拍摄同样的场景,但是由于两个sensor之间还是存在一定角度,两路sensor输出的图像数据并不是完全一致。

      ISP端的TestPattern模式以及sensor端的TestPattern模式下都能输出完全相同的图像数据,这就完美的解决了输入图像数据不一致的问题,余下的只需要查看相同的图像数据输入到ISP后,ISP吐出来的图像数据是否一致就能够证明:相同的输入经过相同ISP配置之后,输出来的图像数据是一样的。

三、验证实施:

  1. 首先设置ISP端的TestPattern模式进行验证。

   2.打开PotPlayer查看两路sensor的视频流,分别截图保存,然后用画图工具对齐一起比较,查看是否有色差。

What?竟然两路图像数据竟然有色差。为什么会有这种情况发生!!

难道真的是ISP处理之后,两路sensor的图像不一样吗?

两颗sensor搭载一个主控的情况下,一般都是通过sensor的轮流采集实现双目的功能。对于主控的ISP来说,只是输入数据轮流进入到ISP,都是用同样参数配置的的ISP Pipeline处理同样的TestPattern数据,没道理会有差异呀?!

OK!那我们继续定位问题。

如果怀疑是ISP处理的问题,那么肯定在处理两路sensor的时候,ISP所配置的参数可能存在不一样的地方。打印两路sensor处理时,ISP模块所配置的ISP参数寄存器看看究竟是否是一致的。

不出所料,打印出来的ISP寄存器都是一样的,除了一些buffer地址配置的寄存器之前,ISP图像处理相关的寄存器都是一样的。为什么ISP图像处理相关的寄存器都是一样的输出来的图像却是不一样的呢?

此时,我们应该考虑获取两路sensor输出到编码前的yuv数据。相当于在调试程序时做的一个断点操作。如果输出到编码器之前的YUV数据中两路sensor不存在色彩的话,说明相同数据经过ISP的Pipeline之后,输出是相同的处理后数据;也说明是ISP处理之后才引入的色差问题或者是后续的PP模块或者编码器引入的色差问题。

继续定位问题!

那我们直接录制编码器编码的裸码流看看两路sensor在裸码流中的色彩表现是否一致。两路sensor在裸码流中的色彩表现是一致的!

OK!我们现在排除了ISP模块、PP模块以及编码器模块的影响。也就是说从数据输入到主控,然后主控输出编码后的数据。TestPattern在这一长串的旅途中,并没有出现色差问题。

那这个色差问题就肯定是后续视频解码播出的时候才被引入的!!

如何确认这一点呢?

这里还有一个小插曲。在我测试验证的电脑上用PotPlayer播放,很容易就复现这种色差问题。但是,一拿到其他同事的电脑上,进行同样的操作使用PotPlay播放却是怎么也不能复现出这种色差问题。那是不是PotPlayer在两台电脑上的设置不一样或者是根本就是用的两个不同的版本看的视频!

继续定位问题!

查看我验证的PotPlayer版本信息和同事的PotPlayer版本信息。有重大发现:

同事的版本信息:

 我所使用的版本信息:

 一个旧版本一个新版本。照理来说,新版本应该兼容就旧版本才是。为什么不能兼容呢?

OK!那我们就看看这两个版本的视频相关设置情况怎样!

 重大发现!!两个版本的视频播放相关设置存在差异。也就是说可能是这种设置上的差异导致了这种色差的产生。

OK!那我们就把其中一个播放器的设置改成和另外一个版本的播放器设置一样就可以验证是否是视频相关设置导致的色差问题!是否可以认为,用了一个不太正确的解码器解码编码器输出的视频流信息,或者是不合适的输出格式导致解析图像数据的时候出现的错误。

............................................................,一个小时以后,PotPlayer上还是没能找到可以设置相同配置的地方。如果各位知道在哪里设置的话,请告诉我一声,后续在抽空继续验证确认。

后续,我在不同电脑上分别使用了不同版本(比较低的版本,没有有验证所使用的版本新)的PotPlayer查看两路sensor的图像,均未发现色差问题。这也从侧面验证:只要输入到ISP Pipeline的数据是一致的,那么ISP输出来的图像肯定是一致的。

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

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

相关文章

Python“牵手”速卖通商品列表数据,关键词搜索速卖通API接口数据,速卖通API接口申请指南

速卖通平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范,速卖通API接口是指通过编程的方式,让开发者能够通过HTTP协议直接访问速卖通平台的数据,包括商品信息、店铺信息、物流信息等,从而实现速…

基于NXP i.MX 6ULL核心板的物联网模块开发案例(2)

目录 2 NB-IoT模块测试 2.1 获取IMEI和IMSI 2.2 创建云端NB-IoT设备 2.3 创建通信套件实例 2.3.1 生成配置参数 2.3.2 创建实例 前言 本文主要介绍基于创龙科技TLIMX6U-EVM评估板的物联网模块开发案例,适用开发环境: Windows开发环境:…

Docker 安装rabbitmq:3.12-management

拉取镜像: docker pull rabbitmq:3.12-management mkdir -p /usr/local/rabbitmq chmod 777 /usr/local/rabbitmq docker run -id --restartalways --namerabbitmq -v /usr/local/rabbitmq:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_U…

助力品牌形象建设,FairGuard支持企业深度定制化

2022年,中国游戏市场实际销售收入与游戏用户规模出现近年来的首次下降,标志着游戏产业发展正式迈入存量时代。 存量市场时代,意味着游戏产品获取用户的难度逐渐加大,对于游戏的内容品质、技术实力和价值拓展等有了更高的要求。如…

恒运资本:什么是股票分红和基金分红?两者有什么区别?

出资者在进行股票出资和基金出资的时分,能够参与股票分红或许基金分红,可是许多新手对分红不是很了解。那么什么是股票分红和基金分红?两者有什么区别?下面就由恒运资本为大家分析: 什么是股票分红和基金分红&#xff…

C语言实例_实现malloc与free函数完成内存管理

一、malloc和free函数介绍 在C语言中,malloc和free是用于动态内存管理的函数。 (1)malloc函数 malloc函数用于在堆(heap)中分配指定大小的内存空间,并返回一个指向该内存块的指针。 原型如下&#xff1a…

718. 最长重复子数组

718. 最长重复子数组 原题链接:完成情况:题解:方法一:动态规划方法二:滑动窗口方法三:二分查找 哈希 原题链接: 718. 最长重复子数组 https://leetcode.cn/problems/maximum-length-of-repe…

XSS盲打练习(简单认识反射型、存储型XSS和cookie欺骗)

文章目录 挖掘cms网站XSS漏洞利用XSS平台盲打CMS,获取后台管理cookiecookie欺骗登录管理员账户 挖掘cms网站XSS漏洞 来到cms网站主页,发现有一个搜索框,输入任意内容后搜索,发现内容会回显,这里可能存在反射型XSS漏洞…

python爬虫11:实战3

python爬虫11:实战3 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产生不好…

springboot整合modbus4J(一)

springboot整合modbus4J 1. 介绍 (1) modbus poll:modbus主机仿真器,用于测试和调试modbus从设备。该软件支持modbus rtu、ASCII、TCP/IP。用来帮助开发人员测试modbus从设备,或者其它modbus协议的测试和仿真。它支持多文档接口&#xff0c…

阿里云服务器和腾讯云服务器折扣对比_哪家折扣低?

阿里云服务器和腾讯云服务器根据购买时长可以享受一定的优惠折扣,综合对比下来腾讯云折扣更低,阿腾云来对比下阿里云和腾讯云的云服务器根据购买时长可以享受的常规折扣对比: 目录 阿里云和腾讯云折扣对比 阿里云服务器常规折扣 腾讯云服…

逃出Verifier 无限蓝屏

逃出Verifier 无限蓝屏 前情提要:今天由于在处理 终止代码:WDF_VIOLATION 的蓝屏时,看到网上有用Verifier 来处理这个问题,但是按照方法处理后导致了Verifier无限蓝屏,重启就蓝屏,最后是进入安全模式操作&a…

软件测试及数据分析处理实训室建设方案

一 、系统概述 软件测试及数据分析处理是软件开发过程中的一项重要测试活动,旨在验证不同软件模块或组件之间的集成与交互是否正常。综合测试确保各个模块按照设计要求正确地协同工作,以实现整个软件系统的功能和性能。以下是软件测试及数据分析处理的一…

数据通信——TCP(三次握手及基础特性)

引言 TCP(传输控制协议),不像之前的UDP那样,因为这个协议要将很多复杂的东西,所以这次的特性是简单的特性,后续会讲一些复杂难懂的知识,这次先说一些TCP明显的特性 面向连接 TCP提供了对连接的管…

[论文分享]TSPTM-survey:时间序列预训练模型研究综述

目录 1 概要 1.1 贡献点 2 背景 2.1 时序挖掘(TSM)任务 2.2 时间序列的深度学习模型 2.3 预训练模型优势 3 TS-PTMS 概述 3.1 监督预训练 3.1.1 基于分类的预训练 3.1.1.1 通用编码器 3.1.1.2 对齐编码器 3.1.1.3 模型重编程 3.1.1.4 总结 3.1.2 基于预测的预训练…

线性代数(五) 线性空间

前言 《线性代数(三) 线性方程组&向量空间》我通过解线性方程组的方式去理解线性空间。此章从另一个角度去理解 空间是什么 大家较熟悉的:平面直角坐标系是最常见的二维空间 空间由无穷多个坐标点组成 每个坐标点就是一个向量 反过来,也可说&…

泡泡玛特回应头部IP营收增速放缓:IP上市时间不固定

8月23日,针对今年上半年头部IP营收增速放缓问题,泡泡玛特(09992.HK)管理层在业绩会上解释称,每个IP上市时间并不固定,单从上半年看同比增长会有偏差,而随着下半年两个新系列的推出,全…

Sql Server 数据库事务与锁,同一事务更新查询锁的变化

我有一个People表,有三行数据: 如果我们没详细了解数据库事务执行加锁的过程中,会不会有这样一个疑问:如下的这段 SQL 开启了事务,并且在事务中进行了更新和查询操作。 BEGIN TRAN update People set Name张三 where …

AI绘画工具MJ新功能有点东西,小白也能轻松一键换装

先看最终做出来的效果 直接来干货吧。Midjourney,下面简称MJ 1.局部重绘功能来袭 就在前两天,MJ悄咪咪上线了这个被众人期待的新功能:局部重绘。 对于那些追求创新和个性化的设计师来说,局部绘制不仅是一个实用的功能&#xff…

Smartbi电子表格软件版本更新,首次推出Excel轻应用和语音播放

Smartbi电子表格软件又又又更新啦! 此次更新,首次推出了新特性——Excel轻应用和语音播报。另外,还对产品功能、Demo示例、配套文档进行了完善和迭代。 低代码开发Excel轻应用 可实现迅速发布web应用 业务用户的需求往往都处于“解决问题”…