【计算机视觉】图像的获取和表示——图像传感器技术|主要参数解析、成像原理剖析、传感器处理

news2024/11/18 21:40:33

在这里插入图片描述

  • 博主简介:努力学习的22级计算机科学与技术本科生🌸
  • 博主主页: @是瑶瑶子啦
  • 每日一言🌼: 每一个不曾起舞的日子,都是对生命的辜负。——尼采

前言

文章目录

  • 前言
  • 一、图像传感器技术
    • 1.0:前言
    • 1.1:两种典型图像传感器
    • 1.2:图像传感器主要参数解析
      • 1.2.1:传感器材料⭐
      • 1.2.2:传感器的光电二极管元件⭐
      • 1.2.3:传感器分辨率⭐
      • 1.2.4:图像传感器的两种基本结构⭐
      • 1.2.5:灵敏度
      • 1.2.6:动态范围:
    • 1.3:传感器成像原理
      • 1.3.1:光腔阵列和光腔
      • 1.3.2:如何获得彩色图像
      • 1.3.3:马赛克变换(DEMOSAICING)
    • 1.4:传感器中的数据流程
    • 1.5:传感器的处理
      • 1.5.1:去马赛克(De-Mosaicking)
      • 1.5.2:坏像素矫正((Defective Pixel Correction)
      • 1.5.3:色彩和光照矫正(Color and Lighting Corrections)
      • 1.5.4:几何校正(Geometric Corrections)

一、图像传感器技术

  • 本节目的:
    • 了解图像的获取和形成
    • 了解为优化计算机视觉的图像质量而进行有效处理 (developing effecticve strategies for image sensor processing to optimize the image quality for computer vision)

1.0:前言

首先,图像本身就是信号(图像由像素信息构成,每个像素信息又包含了灰度值:光照强度或者RGB:颜色等信息),获取图像的过程就是获取信号的过程。

如何获取图像信息呢?——图像传感器(Image Sensor)

下面从各个方面对图像传感器技术进行讲解,来达到本节的两个目的

1.1:两种典型图像传感器

🌸典型图像传感器:

  • CCD单元(charge-coupled device ,电耦合器件)

    在这里插入图片描述

    • 工作原理:通过镜头的光线使得每一个光电二极管的电容积累一定的电荷,而电荷的数量则正比于该处的入射光强。
      结束曝光后,周边的控制电路会将 CCD 每一列中的每个电容把自己的电荷传给相邻的下一个像素的电容,最后经过传感器末端的一个电荷放大器,转化为电压信号。(这种采用电荷传递的方式进行数据传送,可以想象为电流的串联,当一个像素异常,会导致一整排的像素异常,所以良品率较低。)
  • 标准CMOS单元(complementary meta-oxide semiconductor,互补金属氧化物半导体)
    每个像素的光电二极管都会连接一个放大器和 ADC 电路,读出该像素的值

    需要补充的是,这里的“像素”和一般口头的“像素”还不太一样,这里的一个像素就会对应一个光电二极管,可以理解为一个接受光信号的最小单元(个人这样理解,如有错误,还请指出)
    1、ADC:analog digital converter,AD转换,模数转换(也就是模拟转数字) 2、模拟信号只有通过A/D转化为数字信号后才能用软件进行处理,这一切都是通过A/D转换器(ADC)来实现的。

    在这里插入图片描述

1.2:图像传感器主要参数解析

1.2.1:传感器材料⭐

传感器材料影响图像的噪声水平和动态范围,通常采用基于硅材料的CCD、CMOS、BSI和Foveon方式制造普通图像传感器。

特性:

  • 具有非线性的光谱响应曲线,并且能很好的感知光盘的近红外部分,但对近紫外线部分(蓝色、紫色)感知欠佳
    在这里插入图片描述

应用上需注意:

  • 如果直接读取原始数据(连续的模拟信号),并离散成数字像素时,要关注硅的光谱响应曲线。虽然传感器制造商在设计上可能做了补偿,但根据标定照相机设计传感器的处理方法使,需要考虑颜色响应问题

其他材料的传感器?

  • Ga(稼):常用在工业和军事应用中,它能覆盖相较于硅来说更长的红外波长

1.2.2:传感器的光电二极管元件⭐

光电二极管元件的作用感受光信号并且将光信号转换成电信号,是传感器技术的关键。

它对成像的影响:

  • 光电二极管的面积大小(photo-diode size)/元件尺寸(cell size)
    • 面积过小:捕获的光子数量小,缺乏累计光子(反映到电信号上就是缺乏累计电荷),导致对噪声敏感
    • 元件尺寸小于所捕获的可见光波长:那么需要为了校正颜色,在传感器设计时解决更多问题
    • 元件尺寸和面积过大:划不来,所需更多硅材料成本,没有优势可言。

所以传感器厂商必须花费大量精力来设计优化元器件的面积大小,确保所有颜色都能同等成像,且成本最佳
在这里插入图片描述

1.2.3:传感器分辨率⭐

指的是CCD或者CMOS上每一行和每一列的光敏像元的个数

PS:这和我们常说的图像分辨率的概念不能混为一谈:图像长边和宽边所包含的像素个数
传感器里所讲的像素,也是指的光敏像元的个数,当然和图像概念的那个像素也不同

不同类型的照相机使用的传感器分辨率有所不同,比如单像素的光电晶体管照相机、一维线扫描相机、二维矩形阵列和高分辨率球形阵列。

  • 像素尺寸: 像元尺寸指芯片像元阵列上每个像元的实际物理尺寸,像元尺寸从某种程度上反映了芯片的对光的响应能力,像元尺寸越大,能够接收到的光子数量越多,在同样的光照条件和曝光时间内产生的电荷数量越多。对于弱光成像而言,像元尺寸是芯片灵敏度的一种表征。

  • 坏点数: 由于受到制造工艺的限制,对于有几百万像素点的传感器而言,所有的像元都是好的情况几乎不太可能,坏点数是指芯片中坏点(不能有效成像的像元或相应不一致性大于参数允许范围的像元)的数量,坏点数是衡量芯片质量的重要参数。

所以在传感器的范畴谈论分辨率高低,分辨率高就是坏点数少,和我们图像范畴的那个分辨率高低也不能混为一谈!

  • 位分辨率、位深:指的是一个像素中,每个颜色分量(RGB)通道的比特数,至少是八位(0~255)

1.2.4:图像传感器的两种基本结构⭐

  • 层叠结构:
    不同波长的光深度渗透到半导体材料的不同深度,每个像素可以获取全色信息。这种结构的典型例子是Foveon传感器。

  • 马赛克(mosaic) 结构:
    每个像素覆盖不同的颜色滤光片(通常是RGB),获得对应颜色的信息。

    ps:为什么要叫马赛克呢?其实是翻译问题,这里的马赛克不是我们平时里的那个马赛克,马赛克的英文是mosaic,英文翻译:
    a pattern or picture made by placing together small pieces, stone, etc. of different colors.这样看,马赛克这个描述确实挺形象!

    在这里插入图片描述🌻马赛克结构的工作原理如下
    sensor中四个像素点对应rgb一个像素点
    在这里插入图片描述
    在这里插入图片描述

下面是元件颜色的几个不同的马赛克配置,包括白色、基本RGB和次要CYM元件。每种配置为传感器处理过程中优化颜色或空间分辨率提供了不同的方法。(关于马赛克变换后面还会详细讲解)
在这里插入图片描述

1.2.5:灵敏度

灵敏度表示当sensor被光均匀的照射时,当照度是1LUX(勒克斯:照度单位)时,在1s内,光电转换器所能达到的电压幅值的最大值。单位一般是LUX/s

1.2.6:动态范围:

动态范围指的是传感器指图像中包含的亮度信息从最暗到最亮的对比度范围

当前最先进的图像传感器,每个颜色通道能提供8-14位的动态范围

越高的动态范围意味着相机越能同时适应暗光以及亮光的场景。例如在车载的应用上,汽车从阴暗的隧道中驶出时,如果动态范围太小,就会看不清隧道外的场景,容易发生安全隐患。如图所示,左边是低动态范围的CMOS,无法看清隧道外的场景,右图是高动态范围的CMOS,可清楚地看到外部的场景。
在这里插入图片描述

1.3:传感器成像原理

首先:相机或摄像头使用数百万个微小的光腔(感光元件,就是前面说的光电二极管)来记录图像。

  • 成像时,sensor将镜头投射来的光信号转换为模拟电信号(连续的)
  • 曝光完成后,相机关闭这些光腔(发光二极管感光元件),将测量的模拟电信号转化为数字电信号,电信号的数值由上面提到的位深(bit depth决定

1.3.1:光腔阵列和光腔

👇🏻光腔阵列
在这里插入图片描述
👇🏻光腔(没有层叠或者马赛克配置,无法分辨每种颜色的多少,只能构建灰度图像)
在这里插入图片描述

1.3.2:如何获得彩色图像

上面提到,单纯只有光腔,只能构建灰度图像,要想构建彩色图像,还得在感光元件之上加上一层颜色滤镜,如下图的RGB filter
在这里插入图片描述
👇🏻带颜色滤镜的光腔
在这里插入图片描述
但是这样带来的问题也是:每个光腔将会舍去2/3的光,数据一旦被丢弃就再也没人知道它们到底是多少——但是人们还可以猜,图像信号一般都会存在大量的冗余,相邻像素间的差异一般不大,所以很多时候人们都能猜个八九不离十.

为了解决这个问题,需要用到上面讲道德传感器两种基本结构的mosaic结构,即构建颜色滤镜阵列,也就是mosaic,以达到图像中的一个组合邻近像素的信息(其实就是根据原始数据进行猜,也叫做插值)来优化颜色再现或提高空间分辨率

对RAW数据进行插值(就是根据已知的数据去推测未知的数据)的过程叫做Bayer demosaicking(也就是下面讲到的马赛克变换),其原理如下图所示。
在这里插入图片描述
可以看到马赛克变换的核心是有一个RGB阵列,表示感光元件的排布,上面用到的RGB阵列就是最常见的拜尔阵列。

👇🏻最常见的“拜尔阵列”

注意拜耳阵列中包含的绿色传感器是红色或蓝色传感器的两倍。由于人眼对绿光比红光和蓝光更敏感,因此每种原色不会获得总面积的同等比例。
在这里插入图片描述

1.3.3:马赛克变换(DEMOSAICING)

👇🏻下面讲的是基于拜尔阵列的马赛克变换
马赛克变换(DEMOSAICING):原色阵列转换为包含每个像素全彩色信息的最终图像的过程。
在这里插入图片描述
这样裁出来只有9个像素点,比sensor光腔数量实际的要少7个。原因可能和sensor设计相关,sensor的光腔数量和实际像素不对应,实际光腔数量要大得多,出来的图像是裁剪过的。
这也和sensor的安装有关,sensor不可能严丝合缝,一定存在误差,于是足够大的sensor就可以避免由于安装的偏移导致的图像显示不完全的问题

存在其他马赛克变换(DEMOSAICING)算法,可以提取略多的分辨率,生成噪音较小的图像,或适应每个位置的图像的最佳近似值。总之本质都是: 采用不同的像素处理算法,可以组合邻近传感器像素(光腔)的信息来优化颜色再现或提高空间分辨率

1.4:传感器中的数据流程

在这里插入图片描述
在这里插入图片描述

  • 光电转换
    image sensor将镜头投射来的环境光转化为模拟电信号的过程

  • 模数转换
    即把模拟电信号转换为数字电信号的过程,也称ADC,AD(Analog-to-digital ),次过程也是产生具体RGB的数值是多少,即产生RGB-Byte,这时RGB_BYRE的位深度根据sensor的ADC转换器决定,如上两张图都是10bit

  • ISP
    即:image sensor processor,传感器处理器(下面会详细讲解),接收来自数模转后后的具体原始数据。关于传感器处理这里不赘述,只需要知道它是对传感器成像后的图像数据进行一定的处理即可,即调优作用

  • image output
    ISP处理完生成YUV数据流,而后通过接口发送给CPU
    这个接口有很多,如DVP、LVDS、MIPI,常用MIPI
    还有传输控制信号的接口,常用I2C

1.5:传感器的处理

通常每个成像系统都会提供一个专有的传感器处理器,即上面所提到的ISP.通常,传感器处理过程透明,且自动化,并且由成像系统的生产商设置,来自传感器的图像数据均由同样的方式经过ISP进行处理。

下面讨论基本的传感器处理方法

1.5.1:去马赛克(De-Mosaicking)

其实这部分在1.3.21.3.3中关于原理已经大致讲解,这里不再赘述。

《Computer Vision Metrics》原书中对去马赛克这个描述是这样的:"Sensor processing is required to de-mosaic and assemble the pixels from sensor array, and also to correct sensing defects. "

通俗来说,就是马赛克模式的图像传感器,每个传感器只能获取一种颜色,有一些问题:

  • 空间分辨率受限,细节不够丰富
  • 需要颜色插值(马赛克变换)生成全色像素,会引入颜色混叠和假影
  • 不同颜色之间存在排布格局,容易产生莫尔纹等视觉伪影
  • 单色像素对光谱响应有限,色彩再现不够广泛准确
  • 不同颜色像素面积比例不均匀,导致色彩平衡失真

去马赛克可以充分利用传感器的原始数据(也就是每个传感器的数据),将这些数据进行算法重建(assemble the pixels),提高空间和色彩细节,减少混叠和伪影,改善色彩平衡,获得更逼真的图像质量。关键在于设计对各色通道信息的合理融合与优化处理

所以去马赛克是提升感光质量、还原真实场景色彩的重要手段。它与超分辨率技术存在相通之处,是图像处理中的热点难点。

1.5.2:坏像素矫正((Defective Pixel Correction)

图像传感器在制造和使用过程中,都有可能出现像素异常,表现为:亮点、暗点、无响应等,这些都是坏像素

主要原因如下:

  • 制程缺陷,使该像素无法正常响应光照。

  • 使用损坏,如射线辐射、过热等造成像素失效。

坏像素矫正能够有效提高图像质量,是数字图像处理中的标准流程之一,主要手段如下:

  • 工厂标定已知坏像素,提供映射表进行处理。

  • 相机系统自适应检测比邻像素异常的坏像素,并进行修补。

  • 利用周围正常像素的冗余信息,通过插值算法修复坏像素点。

1.5.3:色彩和光照矫正(Color and Lighting Corrections)

  • 色彩校正
    进行色彩校正的目的是:平衡总的色彩精确度和色彩平衡。

    通过色彩校正,可以大大提升图像的色彩美观性、真实性和一致性,获得色彩高保真的视觉效果。它是数字图像处理中必不可少的步骤。
    矫正方法:比如硅材料传感器对红色和绿色这两种颜色比较敏感,而对蓝色不敏感。所以,需要考虑光学系统、传感器特性等,通过标定获得最佳参数

  • 光照校正
    目的:消除光照不均匀现象,改善图像的整体亮度和对比度
    适当的光照校正可以提亮阴暗区域,增强图像的层次感和细节,使整体视觉效果更好。

1.5.4:几何校正(Geometric Corrections)

镜头可能因为几何相差或者朝边缘发生扭曲,产生径向失真或光学几何畸变。

校正方法主要有:补偿镜头的光学畸变、调整传感器取景偏差、修正透视形变、标准化图像方位。

几何校正可以有效消除条形变形、枕形变形等光学畸变引起的图像形变,调整视角失真,实现图像的标准化处理,是确保图像几何标准化以及后续算法效果的重要预处理过程


💐写在最后:文章内容主要来自以下参考以及个人理解、实验室学长讲解和讨论,因为个人专业能力和知识还在提高中,若文章内容有错误或有失偏颇的地方,还请大家多多指出🍊
后续还会围绕《计算机视觉度量从特征描述到深度学习》这本书的学习持续更新相关内容🌺

参考:

  • 《Computer Vision Metrics》/《计算机视觉度量从特征描述到深度学习》
  • 详解相机的sensor工作原理

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

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

相关文章

自定义类型详解(上)

结构体 1 结构体的声明 1.1 结构的基础知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.2 结构的声明 struct tag//struct是结构体的标志,tag是标签;名字。 {member-list;//成员变量 }variable-list;//变量列…

Nginx 关闭/屏蔽 PUT、DELETE、OPTIONS 请求

1、修改 nginx 配置 在 nginx 配置文件中,增加如下配置内容: if ($request_method !~* GET|POST|HEAD) {return 403; }修改效果如下: 2、重启 nginx 服务 systemctl restart nginx或者 service nginx restart3、功能验证 使用如下方式…

【计算机网络】互联网公司的网络架构和业务场景

互联网公司的网络架构和业务场景 1. 互联网公司网络的组成1.1 网络的物理组成1.2 骨干网组成1.3 数据中心网络组成 2.互联网公司网络服务场景2.1 通用服务场景2.1.1 客户端到服务端请求真实网络过程2.1.2 客户端到服务端请求抽象网络过程2.1.3 负载均衡网络模型 2.2 边缘服务场…

Xilinx FPGA 程序固化重新上电程序不运行的问题

问题描述 FPGA直接下载bit文件,功能正常。 FPGA擦除FLASH,烧写FLASH,正常。 电源断电,重新上电,FALSH里面的程序没有启动,FPGA程序没有跑起来。–FLASH启动不正常。 解决办法 在XDC约束文件里边增加约束: ## Configuration options, can be used for all designs se…

京东获得JD商品详情 API 返回值说明

京东商品详情API接口可以获得JD商品详情原数据。 这个API接口有两种参数,公共参数和请求参数。 公共参数有以下几个: apikey:这是您自己的API密钥,可以在京东开发者中心获取。 请求参数有以下几个: num_iid&#…

11 FPGA_简易电压表设计与验证(附代码)

1. 模数转换理论 模数转换器又称(A/D转换器),通常是指一个将模拟信号转变为数字信号的电子元件或电路。常见的转换方式使将模拟量与基准量比对得到便于传输的二进制信号。生活中常见的模拟量有温湿度、图像、声音等。模拟信号与数字信号的转换…

Spring学习笔记4 Bean的作用域

Spring学习笔记3 Spring对IOC的实现_biubiubiu0706的博客-CSDN博客 新建模块 spring-004 引入依赖 <dependencies><!--Spring依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId>&…

企业申报“专精特新”,对知识产权有哪些要求?

深科信从深圳市中小企业服务局发布的公开数据中了解到&#xff0c;2022年深圳市专精特新中小企业申报8000余家&#xff0c;通过4800余家。2023年深圳市专精特新企业认定火热申报中&#xff0c;10月15日截止。 成为“专精特新”企业有什么好处? 1.国家级资质强力背书&#xff…

WordPress主题DUX v8.2源码下载

新增产品分类左侧多级分类折叠显示 新增网站默认字体对 MiSans 和 HarmonyOS Sans 的支持 新增顶部左上角显示登录注册的模块开关&#xff0c;且支持原生登录方式 新增手机端导航菜单的关闭按钮 新增文章内容中标题二的强化展示 新增全站禁止复制、右键和选择的操作 新增文章内…

fastjson反序列化漏洞(CVE-2017-18349)

文章目录 fastjson序列化FastJson 序列化操作反序列化漏洞原理漏洞复现&#xff08;CVE-2017-18349&#xff09; fastjson fastjson 是阿里巴巴开发的 java语言编写的高性能 JSON 库,用于将数据在 Json 和 Java Object之间相互转换。它没有用java的序列化机制,而是自定义了一套…

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测(SE注意力机制)

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测&#xff08;SE注意力机制&#xff09; 目录 分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测&#xff08;SE注意力机制&#xff09;分类效果基本描述模型描述程序设计参考资料 分类效果 基本描述 1.MATLA…

Quartus出租车计费器verilog计价器

名称&#xff1a;出租车计费器verilog计价器 软件&#xff1a;Quartus 语言&#xff1a;Verilog 要求&#xff1a; 出租车计费器&#xff0c;起步价10元&#xff0c;3公里内起步价&#xff0c;可以切换白天和夜晚计费&#xff0c;白天时超过3公里后2.4元每公里&#xff0c;停…

RabbitMQ实现秒杀场景示例

本文章通过MQ队列来实现秒杀场景 整体的设计如下图&#xff0c;整个流程中对于发送发MQ失败和发送到死信队列的数据未做后续处理 1、首先先创建MQ的配置文件 Configuration public class RabbitConfig {public static final String DEAD_LETTER_EXCHANGE "deadLetterE…

springcloud3 分布式事务-seata的四种模式总结以及异地容灾

一 seata四种模式比较 1.1 seata的4种模式比较 二 seata的高可用 2.1架构 1.建TC服务集群非常简单&#xff0c;启动多个TC服务&#xff0c;注册到nacos即可。 2.做异地多机房容灾&#xff0c;比如一个TC集群在上海&#xff0c;另一个TC集群在杭州&#xff0c; 3.微服务基…

趣解设计模式之《小王的糖果售卖机》

〇、小故事 小王最近一直在寻找商机&#xff0c;他发现商场儿童乐园或者中小学校周围&#xff0c;会有很多小朋友喜欢吃糖果&#xff0c;那么他想设计一款糖果售卖机&#xff0c;让后将这些糖果售卖机布置到商场和学校旁边&#xff0c;这样就能获得源源不断的收益了。 想到这里…

20 个实例玩转 Java 8 Stream

20 个实例玩转 Java 8 Stream 1、Stream概述 Java 8 是一个非常成功的版本&#xff0c;这个版本新增的 Stream&#xff0c;配合同版本出现的 Lambda&#xff0c;给我们操作集合 Collection 提供了极大的便利。 那么什么是 Stream&#xff1f; Stream 将要处理的元素集合看作…

Docker部署MySQL8数据库

1、准备工作 docker pull mysql:8.0.27 Pwd"/data/software/mysql" mkdir ${Pwd}/{data,logs} -p chmod 777 ${Pwd}/logs2、添加配置文件 cat > ${Pwd}/my.cnf << EOF [mysqld] usermysql pid-file/var/run/mysqld/mysqld.pid socket/var/run/mysqld/mysq…

SQL和Python,哪个更容易自学?哪个更适合数据工作的编程新手?

如果你想从事数据工作&#xff0c;比如数据分析、数据开发、数据科学等&#xff0c;你可能会遇到这样的问题&#xff1a;SQL和Python哪个更容易自学&#xff1f;哪个更有用&#xff1f;哪个更有前途&#xff1f;其实这两种语言都是数据工作的重要技能&#xff0c;但它们的特点和…

react实现数据进度条展示组件

1.需求 在项目开发时&#xff0c;要展示一个操作的进度条&#xff0c;比如&#xff1a;要实现一个文件的上传下载进度条&#xff0c;或者实现类似拼夕夕砍一刀进度条&#xff0c;怎么实现呢&#xff1f;效果图如下&#xff1a; 对上面效果图说明&#xff1a; 进度条底色为棕黑色…

559. N 叉树的最大深度

给定一个 N 叉树&#xff0c;找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历序列化表示&#xff0c;每组子节点由空值分隔&#xff08;请参见示例&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [1,null,3,2…