Camera sensor 基本原理

2023-11-09

1 Camera 工作原理介绍


1.1 结构 .

一般来说,camera 主要是由 lens 和 sensor IC 两部分组成,其中有的 sensor IC 集成 了 DSP,有的没有集成,但也需要外部 DSP 处理。细分的来讲,camera 设备由下边几部 分构成:

 1) lens(镜头) 一般 camera 的镜头结构是有几片透镜组成,分有塑胶透镜(Plastic)和玻璃透 镜(Glass) ,通常镜头结构有:1P,2P,1G1P,1G3P,2G2P,4G 等。

 2) sensor(图像传感器) Senor 是一种半导体芯片,有两种类型:CCD 和 CMOS。Sensor 将从 lens 上传导过来的光线转换为电信号, 再通过内部的 AD 转换为数字信号。 由于 Sensor 的每个 pixel 只能感光 R 光或者 B 光或者 G 光, 因此每个像素此时存贮的是单色的, 我们称之为 RAW DATA 数据。 要想将每个像素的 RAW DATA 数据还原成三基色,就需要 ISP 来处理。 

3)ISP(图像信号处理) 主要完成数字图像的处理工作,把 sensor 采集到的原始数据转换为显示支持 的格式。 

4)CAMIF(camera 控制器) 芯片上的 camera 接口电路,对设备进行控制,接收 sensor 采集的数据交给 CPU,并送入 LCD 进行显示。

1.2 工作原理


外部光线穿过 lens 后, 经过 color filter 滤波后照射到 Sensor 面上,Sensor 将从 lens 上传导过来的光线转换为电信号,再通过内部的 AD 转换为数字信号。如果 Sensor 没有集 成 DSP,则通过 DVP 的方式传输到 baseband,此时的数据格式是 RAW DATA。如果集成 了 DSP, RAW DATA 数据经过 AWB、 则 color matrix、 lens shading、 gamma、 sharpness、 AE 和 de-noise 处理,后输出 YUV 或者 RGB 格式的数据。
最后会由 CPU 送到 framebuffer 中进行显示,这样我们就看到 camera 拍摄到的景象 了。

CM 包含四大件:镜头(lens)、传感器(sensor)、软板(FPC)、图像处理芯片(DSP)。决定一个摄像头好坏的重要部件是:镜头(lens)、图像处理芯片(DSP)、传感器(sensor)。CCM的关键技术为:光学设计技术、非球面镜制作技术、光学镀膜技术。

镜头(lens)是相机的灵魂,镜头(lens)对成像的效果有很重要的作用,是利用透镜的折射原理,景物光线通过镜头,在聚焦平面上形成清晰的影像,通过感光材料CMOS或CCD感光器记录景物的影像。镜头厂家主要集中在台湾、日本和韩国,镜头这种光学技术含量高的产业有比较高的门槛,业内比较知名的企业如富士精机、柯尼卡美能达、大立光、Enplas等

传感器(sensor)是CCM的核心模块,目前广泛使用的有两种:一种是广泛使用的CCD(电荷藕合)元件;另一种是CMOS(互补金属氧化物导体)器件。

电荷藕合器件图像传感器CCD(ChargeCoupledDevice),它使用一种高感光度的半导体材料制成,能把光线转变成电荷,通过模数转换器芯片转换成数字信号。CCD由许多感光单位组成,通常以百万像素为单位。当CCD表面受到光线照射时,每个感光单位会将电荷反映在组件上,所有的感光单位所产生的信号加在一起,就构成了一幅完整的画面。CCD传感器模块以日本厂商为主导,全球规模市场有90%以上被日本厂商垄断,以索尼、松下、夏普为龙头。

互补性氧化金属半导体CMOS(ComplementaryMetal-OxideSemiconductor)主要是利用硅和锗这两种元素所做成的半导体,使其在CMOS上共存着带N(带–电)和P(带+电)级的半导体,这两个互补效应所产生的电流即可被处理芯片纪录和解读成影像。CMOS传感器主要美国、台湾和韩国为主导,主要生产厂家有美国OmniVision、Agilent、Micron,台湾的锐像、原相、泰视等,韩国的三星、现代。

 图像处理芯片(DSP)是CCM的重要组成部分,它的作用是将感光芯片获得的数据及时快速地传递中央处理器并刷新感光芯片,因此DSP芯片的好坏,直接影响画面品质(比如色彩饱和度,清晰度等)。

FPC柔性电路板(柔性PCB): 简称"软板",又称"柔性线路板",连接芯片和手机。起到电信号传输作用。


1.3 YUV 与 YCbCr .

YUV 和 RGB 一样,是色彩空间中常用的色彩模型之一,两者可以相互转换。

YUV 中 得 Y 表示亮度,U 和 V 表示色度。与 RGB 相比,它的优点在于占用更少的空间。

YCbCr 则是在世界数字视频标准组织研制过程中作为 ITU - R BT601 建议的一部分, 其实是 YUV 经过缩放和偏移的翻版。 其中 Y 与 YUV 中的 Y 含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。

在 YUV 家族中, YCbCr 是在计算机系统中应用最多的成 员, 其应用领域很泛,JPEG、 MPEG 均采用此格式。

一般人们所讲的 YUV 大多是指 YCbCr。 YCbCr 有许多取样格式, 如 4∶4∶4 ,  4∶2∶2 ,  4∶1∶1 和 4∶2∶0。

1.4 Sensor图像处理原理

camera sensor效果的调整,涉及到众多的参数,如果对基本的光学原理及sensor 软/硬件对图像处理的原理能有深入的理解和把握的话,对我们的工作将会起到事半功倍的效果。否则,缺乏了理论的指导,只能是凭感觉和经验去碰,往往无法准确的把握问题的关键。

        所以,这里通过分析一些与Sensor图像处理相关的因素,和大家分享一下自己的一些理解,共同探讨,共同学习进步。

2 色彩感应及校正

2.1 原理

        人眼对色彩的识别,是基于人眼对光线存在三种不同的感应单元,不同的感应单元对不同波段的光有不同的响应曲线的原理,通过大脑的合成得到色彩的感知。 一般来说,我们可以通俗的用RGB三基色的概念来理解颜色的分解和合成。

        理论上,如果人眼和sensor对光谱的色光的响应,在光谱上的体现如下的话,基本上对三色光的响应,相互之间不会发生影响,没有所谓的交叉效应。

        但是,实际情况并没有如此理想,下图表示了人眼的三色感应系统对光谱的响应情况。可见RGB的响应并不是完全独立的。

下图则表示了某Kodak相机光谱的响应。可见其与人眼的响应曲线有较大的区别。




2.2 对sensor的色彩感应的校正

        既然我们已经看到sensor对光谱的响应,在RGB各分量上与人眼对光谱的响应通常是有偏差的,当然就需要对其进行校正。不光是在交叉效应上,同样对色彩各分量的响应强度也需要校正。通常的做法是通过一个色彩校正矩阵对颜色进行一次校正。

        该色彩校正的运算通常是由sensor模块集成或后端的ISP完成,软件通过修改相关寄存器得到正确的校正结果。值得注意的一点是,由于RGB -> YUV的转换也是通过一个3*3的变换矩阵来实现的,所以有时候这两个矩阵在ISP处理的过程中会合并在一起,通过一次矩阵运算操作完成色彩的校正和颜色空间的转换。

3 颜色空间

3.1 分类

        实际上颜色的描述是非常复杂的,比如RGB三基色加光系统就不能涵盖所有可能的颜色,出于各种色彩表达,以及色彩变换和软硬件应用的需求,存在各种各样的颜色模型及色彩空间的表达方式。这些颜色模型,根据不同的划分标准,可以按不同的原则划分为不同的类别。

匹配任意可见光所需的三原色光比例曲线

        对于sensor来说,我们经常接触到的色彩空间的概念,主要是RGB , YUV这两种(实际上,这两种体系包含了许多种不同的颜色表达方式和模型,如sRGB, Adobe RGB, YUV422, YUV420 …), RGB如前所述就是按三基色加光系统的原理来描述颜色,而YUV则是按照 亮度,色差的原理来描述颜色。




3.1.1 RGB <-> YUV的转换

        不比其它颜色空间的转换有一个标准的转换公式,因为YUV在很大程度上是与硬件相关的,所以RGB与YUV的转换公式通常会多个版本,略有不同。

        常见的公式如下:
Y=0.30R+0.59G+0.11B
U=0.493(B-Y) = -0.15R-0.29G+0.44B
V=0.877(R-Y) = 0.62R-0.52G-0.10B

        但是这样获得的YUV值存在着负值以及取值范围上下限之差不为255等等问题,不利于计算机处理,所以根据不同的理解和需求,通常在软件处理中会用到各种不同的变形的公式,比如实际上我们可能采用YCrCb模型,这里就不列举了。
        体现在Sensor上,我们也会发现有些Sensor可以设置YUV的输出取值范围。原因就在于此。
        从公式中,我们关键要理解的一点是,UV 信号实际上就是蓝色差信号和红色差信号,进而言之,实际上一定程度上间接的代表了蓝色和红色的强度,理解这一点对于我们理解各种颜色变换处理的过程会有很大的帮助。




4 白平衡

4.1 色温

        色温的定义:将黑体从绝对零度开始加温,温度每升高一度称为1开氏度(用字母K来表示),当温度升高到一定程度时候,黑体便辐射出可见光,其光谱成份以及给人的感觉也会着温度的不断升高发生相应的变化。于是,就把黑体辐射一定色光的温度定为发射相同色光光源的色温。

        常见光源色温:
        光源                                              色温(K)
        钨丝灯(白炽灯)                    2500-3200k
        碳棒灯                                          4000-5500k
        荧光灯(日光灯,节能灯)   4500-6500k
        氙灯                                               5600 k
        炭精灯                                          5500~6500k
        日光平均                                      5400k
        有云天气下的日光                     6500-7000k
        阴天日光                                      12000-18000k

        随着色温的升高,光源的颜色由暖色向冷色过渡,光源中的能量分布也由红光端向蓝光端偏移。

        值得注意的是,实际光源的光谱分布各不相同,而色温只是代表了能量的偏重程度,并不反映具体的光谱分布,所以即使相同色温的光源,也可能引起不同的色彩反应。

        人眼及大脑对色温有一定的生理和心理的自适应性,所以看到的颜色受色温偏移的影响较小,而camera的sersor没有这种能力,所以拍出来的照片不经过白平衡处理的话,和人眼看到的颜色会有较大的偏差(虽然在这种情况下人眼看到色彩的和白光下真实的色彩也有偏差)。

        太阳光色温随天气和时间变化的原因,与不同频率光的折射率有关:

        波长长的光线,折射率小,透射能力强,波长短的光线,折射率大,容易被散射,折射率低,这也就是为什么交通灯用红色,防雾灯通常是黄色,天空为什么是蓝色的等等现象的原因。

        知道了这一点,太阳光色温变化的规律和原因也就可以理解和分析了,留给大家自己思考。




4.2 色温变化时的色彩校正

        所以从理论上可以看出,随着色温的升高,要对色温进行较正,否则,物体在这样的光线条件下所表现出来的颜色就会偏离其正常的颜色,因此需要降低sensor对红色的增益,增加sersor对蓝光的增益。同时在调整参数时一定程度上要考虑到整体亮度的要保持大致的不变,即以YUV来衡量时,Y值要基本保持不变,理论上认为可以参考RGB->YUV变换公式中,RGB三分量对Y值的贡献,从而确定RGAIN和BGAIN的变化的比例关系。但实际情况比这还要复杂一些,要考虑到不同sensor对R,B的感光的交叉影响和非线性,所以最佳值可能和理论值会有一些偏差。




4.3 自动白平衡原理

4.3.1 原理

        自动白平衡是基于假设场景的色彩的平均值落在一个特定的范围内,如果测量得到结果偏离该范围,则调整对应参数,校正直到其均值落入指定范围。该处理过程可能基于YUV空间,也可能基于RGB空间来进行。对于Sensor来说,通常的处理方式是通过校正R/B增益,使得UV值落在一个指定的范围内。从而实现自动白平衡。


4.3.2 特殊情况的处理

        在自动白平衡中,容易遇到的问题是,如果拍摄的场景,排除光线色温的影响,其本身颜色就是偏离平均颜色值的,比如大面积的偏向某种颜色的图案如:草地,红旗,蓝天等等,这时候,强制白平衡将其平均颜色调整到灰色附近,图像颜色就会严重失真。

        因此,通常的做法是:在处理自动白平衡时,除了做为目标结果的预期颜色范围外,另外再设置一对源图像的颜色范围阙值,如果未经处理的图像其颜色均值超出了该阙值的话,根本就不对其做自动白平衡处理。由此保证了上述特殊情况的正确处理。

        可见,这两对阙值的确定对于自动白平衡的效果起着关键性的作用。




4.4 一个实际应用的例子

                色温                  RGAIN         GGAIN         BGAIN
        阴天  7500k          0XCD              0x85            0x80
        日光  6500k           0xA3             0x80            0x88
        荧光灯 5000k       0xA5              0x80           0x88
        钨丝灯  2800k      0x80               0x81            0xA4

        可以看到随着色温的升高,其变化规律基本符合上节中的理论分析。




4.5 调试和验证

        具体参数的调整,应该在灯箱环境下,使用各种已知色温的标准光源对标准色卡拍摄,在Pc机上由取色工具测量得到其与标准色板的RGB分量上的色彩偏差,相应的调整各分量增益的比例关系。为了更精确的得到结果,曝光量增益的设置在此之前应该相对准确的校正过。

5 颜色相关特效处理

5.1 grayscale (灰阶)

        灰阶图的效果就是将彩色图片转换为黑白图片。

        理论上,在YUV空间,将UV分量丢弃,只保留Y分量,这样就可以得到黑白图像,这也是彩色电式机信号能兼容黑白电视机的原理。如下图理论上Y值一样的颜色(右边是用acdsee转成灰度图的效果),在grayscale模式下看应该是一样的颜色。

        算法上的操作,理论上应该把UV值改成灰色对应数值(128)就可以了。不过根据软件算法和硬件结构的不同,具体代码也会有不同。




5.2 sepia / sepiagreen / sepiablue

        所谓的复古(绿,蓝)就是在灰阶的基础上,对UV值额外再做了一个offset,将灰度图转换成某种颜色的梯度图。理论上为了获得蓝色效果,应该增加蓝色差信号,减小红色差信号。即增大U,减小V。




5.3 negative

        所谓负片效果,就是将图像的颜色反转,看起来就像是在看胶片底片时的效果。这从理论上也很容易理解和处理,就是在RGB空间,取其补色,具体的操作就是用255分别减去RGB得到新的RGB值。通常会在ISP中实现该功能。




5.4 小结

        理解了原理,要做出其它颜色变换方面的效果就很容易了。
        基本上,在颜色校正和处理方面,需要考虑的相关参数大致包括:
        自动WB上下限,自动白平衡时的目标范围,RGB gain, UV gain, UV offset, color correction.有些还会有saturation 和 hue相关的设置。
        从sensor或ISP硬件处理的流程上说,通常方向是先做RGB gain,再做color correction,最后做YUV空间的处理。所以调整效果的时候,为了减少参数之间的相互影响,基本上也可以按这个顺序来调整参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Camera sensor 基本原理 的相关文章

随机推荐

  • 偷懒的一天-------Day83

    今天实在是学不进去 从公司里工作着也是浑浑噩噩的 虽然不是我媳妇生孩子 但这也是我们这个大家庭里的第一个孩子 我的亲大侄子啊 当然还可能是侄女 还在想名字 都想了好多了 还是有些激动有些紧张啊 偷懒一天 来码上几个字 草草写上至少我也知道我
  • Opencv的基础操作

    一 图像填充 首先定义图像显示函数 def cv show name img cv2 imshow name img cv2 waitKey 0 cv2 destroyAllWindows 图像读取 img cat cv2 imread c
  • 一定能让你理解的素数筛法——埃氏筛法和欧式筛法

    先上代码 埃氏筛法 include
  • 卸载Docker方法

    卸载步骤 在安装Autoware库的时候安装了Docker 发现电脑硬盘容量被占用不少 现在想卸载一下docker 查找了很多资料 最终使用以下方法完整卸载 1 在配置autoware的时候其实安装的docker ce 所以需要执行 sud
  • Nginx基本使用

    一 Nginx作用 1 HTTP服务器 2 反向代理 3 负载均衡 4 正向代理 5 虚拟主机 等 二 Nginx安装 1 下载nginx最新稳定版 windows nginx 1 14 0 2 解压 备注 如上图 配置关键配置文件后 双击
  • 基于tensorflow实现手写数字识别

    实验目的 了解机器学习的相关知识 实现基于tensorflow的手写数字识别 实验环境 ubuntu16 04 或 windows python 3 默认安装版本 tensorflow 2 0 版本以上 或其他深度学习框架 实验内容 实现基
  • 内网穿透-Natapp实现免费远程桌面

    很多人都在使用Teamviewer访问远程桌面 但收费很贵 而且经常有一些安全漏洞 下面教大家一个免费安全的远程桌面方法 打开Natapp主页 https natapp cn 点击 立即下载 按钮 下载操作系统匹配的客户端 下载之后 解压至
  • 可能是史上最全的Kubernetes证书解析

    为了避免广告法 题目还是加个可能吧 想要安全就必须复杂起来 证书是少不了的 在Kubernetes中提供了非常丰富的证书类型 满足各种不同场景的需求 今天我们就来看一看Kubernetes中的证书 k8s证书分类 在说证书之前 先想想作为集
  • Shiro简单配置Springboot版(1)

    1 权限的管理 1 1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理 权限管理属于系统安全的范畴 权限管理实现对用户访问系统的控制 按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源 权限管理包括用户身份认证
  • 【论文速递】CCDC2021 - 轻量级网络的结构化注意知识蒸馏

    论文速递 CCDC2021 轻量级网络的结构化注意知识蒸馏 论文原文 Structured Attention Knowledge Distillation for Lightweight Networks 获取地址 https ieeex
  • 【文献调研】再入院预测(1)

    1 基于MIMIC 3数据库的心衰患者诊断与再入院模型研究 1 1 文献来源 太原理工大学 2022年6月 1 2 摘要 背景 利用深度学习去大规模的分析电子健康记录数据仍具有极大的挑战 基于大量医学文本 及时识别心力衰竭患者并建立再入院预
  • 高斯混合模型(GMM)和EM算法详解

    小白一枚 接触到GMM和EM 现将学习到的整理出来 如有错误 欢迎指正 文中涉及到公式的推导比较繁琐 故先在纸上推导出来再拍照发出来 希望大家多多交流 共同进步 接下来将按照思路一步一步进行介绍 1 单高斯模型GSM 一维 单高斯模型很简单
  • 车联网环境下自动驾驶的协同感知技术综述

    论文标题 Cooperative Perception Technology of Autonomous Driving in the Internet of Vehicles Environment A Review 发表期刊 会议 Se
  • SQLServer的基本语句(增,删,改)_02

    SQLserver语句不区分大小写 1 创建数据库 create database hhh hhh为数据库名称 创建一个名为hhh的数据库 2 删除数据库 drop database hhh 删除名为hhh的数据库 两者一般写为 if ex
  • 5、Nginx 配置实例-负载均衡

    文章目录 5 Nginx 配置实例 负载均衡 5 1 实现效果 5 2 准备工作 5 3 实验代码 5 3 1 轮询 默认 5 3 2 weight 5 3 3 ip hash 5 3 4 fair 第三方 尚硅谷 尚硅谷Nginx教程由浅
  • mesh和wifi中继的区别_科普:路由器的无线中继和Mesh的区别是什么?

    大户型和越层户型等改善型性房型越来越普及了 但是这些用户却也面临WiFi网络越来越差的窘境 如何改善WiFi网络就成为了迫在眉睫需要解决的问题 在无线路由的早期 不少人都习惯于使用无线中继的方式来解决这个问题 无线中继组网就是利用AP的无线
  • Web之html、css

    目录 前言 一 HTML 1 定义 2 标签 基本标签 表格标签 表单标签 其他标签及符号 3 属性 二 CSS 1 定义 2 标签选择器 3 基本样式设置 总结 前言 本文主要讲述后端开发者需要的基本web知识点 讲述了html css的
  • element ul中el-calendar日历组件自定义快捷选择年月

    需求 以日历形式展现当前页面 其中 年月可进行下拉选择 默认选中任意月份 用户可以自由点选日期 实现效果 时间筛选
  • linux 指令 间隔,Linux基础命令(五)

    Linux信息显示和搜索文件命令 1 uname 显示系统信息 参数 a显示所有信息 v显示内核版本 n显示主机名称 p显示处理器类型 r显示内核发行版本号 i显示硬件平台 m显示计算机硬件架构 root localhost dir una
  • Camera sensor 基本原理

    1 Camera 工作原理介绍 1 1 结构 一般来说 camera 主要是由 lens 和 sensor IC 两部分组成 其中有的 sensor IC 集成 了 DSP 有的没有集成 但也需要外部 DSP 处理 细分的来讲 camera