海思35XX系列(三)sensor(传感器)

news2024/9/27 15:29:23

刚开始接触这个概念的时候感觉比较模糊,简单记录一下吧

Sensor(传感器)是一种可以感知外部环境并将感知到的信息转化为可用的电信号或其他形式的工具。传感器广泛应用于电子设备、工业自动化、汽车、医疗器械等领域,用于测量、监测和控制各种物理量和环境参数。

作为摄像头模组最重要的一部分,sensor在摄像头模组及相关行业,提到“Sensor”这个词,一般代指图像传感器。目前,除了一些特殊领域,CMOS图像传感器占据绝大部分市场。

一、图像传感器发展历史

  • 1887年,德国物理学家海因里希·赫兹在实验中意外发现光电效应。这一发现为图像传感技术的发展奠定了基础。
  • 20世纪30年代光电倍增管(Photomultiplier Tube,简称PMT)出现;
  • 1965年-1970年:在这一时期,IBM、Fairchild等企业开始积极开发光电以及双极二极管阵列技术。
  • 1971年,美国贝尔实验室的研究员已经能够用简单的线性设备捕捉影像,标志着CCD的诞生。电荷耦合元件(CCD)的崛起(20世纪60年代末至90年代末)
  • 互补金属氧化物半导体(CMOS)的兴起(20世纪末至今)

二、CMOS图像传感器

海思开发中的 sensor  多数时候都是CMOS

CMOS图像传感器是一种基于互补金属氧化物半导体(CMOS)技术的图像传感器。它是一种将光信号转换为电信号的器件,可用于数字相机、摄像机、手机摄像头等设备中。

与传统的CCD(Charge-Coupled Device)图像传感器相比,CMOS图像传感器具有较低的功耗、较低的成本和较高的集成度。它的工艺制造简单,可以与数字逻辑电路在同一芯片上实现集成,从而提供更多的功能和灵活性。

CMOS图像传感器还具有快速响应、高帧率、高动态范围和低噪声等特点。

在图像处理的流程中

光经过lens(镜头)后聚集到Sensor上,sensor进行模拟的光信号转化为模拟的电信号再转化为数字的电信号

像AE(自动曝光)也是通过ISP反馈控制sensor来调节的

那么 sensor 是怎么捕捉彩色图像的呢,其中离不开的一项关键技术就是 拜尔阵列

三、拜尔阵列

bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛运用数字图像。

拜尔阵列(Bayer Array)是一种用于数字摄影相机和图像传感器的颜色滤波阵列(CFA)。它采用了一种特定的颜色排列方式,将红色、绿色和蓝色滤光片以阵列形式分布在像素上。

在很早之前人们使用的都是黑白图像传感器,但是人们不满足于只捕捉光的强度来生成灰度图像。要更进一步实现彩色的捕捉,由于光可以分解为红、绿、蓝三元色,所以只需要分别捕捉这三种色彩就够了,但是如果要采集rgb三个基本色,则需要三块滤镜,这样价格昂贵,且不好制造,因为三块滤镜都必须保证每一个像素点都对齐;于是为了解决这个问题拜尔阵列就出现了。

  • 在图像传感器前面,设置一个滤光层(Color filter array),上面布满了一个个滤光点,与下层的像素一一对应。每个滤光点只能通过红、绿、蓝之中的一种颜色,这意味着在它下层的像素点只可能有三种颜色:红、绿、蓝,或者什么也没有(黑)。
  • 不同颜色的滤光点的排列是有规律的:bayer色彩滤波阵列,由一半的G,1/4的R,1/4的B组成,绿点的数量是其他两种颜色点的两倍。这是因为研究显示人眼对绿色最敏感,所以滤光层的绿点最多。(我们最终还原色彩的目标就是不断的接近人眼看到的色彩)

每个像素对应点都加上捕捉到的颜色后就会这样,因为每个像素点记录的颜色的值都是有大小的,所以还原后色彩看着 还是比较明显的

去马赛克处理

去马赛克处理主要涉及到对马赛克区域像素值的恢复和重建。旨在恢复被模糊或替换的原始图像细节。前面不是说了吗,拜尔阵列在一个像素点的位置只记录了红绿蓝中的一种颜色,去马赛克处理就是通过各种计算去推测这个像素点的另外两种颜色的值。

下面是拜尔阵列色彩的排列

我们可以把这一层拆分成三层,由于我们记录色彩信息只用了一层,拆分开来每个像素点肯定会缺失了两种颜色;去马赛克就是通过后处理将像素点的另外两种颜色补全。

以一个3×3的矩阵为例,最中间的像素的蓝色值和红色值完全可以根据相邻像素点的值去推测,或者是5×5更多,离得近的比重就占的大一点,远的像素点比重就占的少一点。

将三个通道补全叠加就可以还原图像的色彩了。

当然还会有很多其他的后处理技术,最后经过各种处理之后才和眼睛看到的实际色彩相近。

当然,我们眼睛的精度也有限制,不可能个个都是最强大脑;一般来讲图像最后处理完我们眼睛区分不出来了 ,达到我们人眼要求的精度了,我们就认为它还原了原本色彩。实际还会有很多色彩信息的缺失。

 参考文章

(记录的挺详细了)

图像传感器原理介绍(史上最详细的CCD和CMOS介绍)_微视界 (microdemo.com)icon-default.png?t=N7T8https://www.microdemo.com/technical-data/1267/#p1图像bayer格式介绍_拜耳格式-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/bingqingsuimeng/article/details/61917513ISP(图像信号处理)之Bayer Raw 简介_乐正倩彦-开放原子开发者工作坊 (csdn.net)icon-default.png?t=N7T8https://openatomworkshop.csdn.net/6645b45db12a9d168eb6d72f.html

“Sensor”的名词解释与概述_sensor有效区-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_37692302/article/details/125640788ISP(二) Demosiac 去马赛克 (CIP)_demosac 马赛克算法-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_24965393/article/details/101542220

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

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

相关文章

【JVM】常见面试题

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. JVM 中的内存区域划分2. JVM 的类加载机制2.1 加载(Loading)✨双亲委派模型2.2 验证(Verification)2.3 准…

AI1-PaddleOCR2.8在VS2019编译运行基于C++引擎推理CPU版本

1、下载PaddleOCR-release-2.8开源项目 https://github.com/PaddlePaddle/PaddleOCR https://github.com/PaddlePaddle/PaddleOCR/releases https://gitee.com/paddlepaddle/PaddleOCR?_fromgitee_search 2、下载安装Windows预测库 https://paddleinference.paddlepaddle.o…

STL—vector—模拟实现【深度理解vector】【模拟实现vector基本接口】

STL—vector—模拟实现 经过了前面对于vector的初步了解,我们已经具备了使用vector的能力了,现在我们就来深度学习一下vector,并做到能模拟实现vector的基础功能。 1.vector深度解析 要想深度了解vector,我们就要去看它的源代码…

“常温”前端网站框架(四)-- 音乐播放器【附源码】

开篇(请大家看完):此网站写给挚爱,后续页面还会慢慢更新,大家敬请期待~ ~ ~ 此前端框架,主要侧重于前端页面的视觉效果和交互体验。通过运用各种前端技术和创意,精心打造了一系列引人入胜的页面…

高龙海洋增收不增利:毛利率有所下滑,产能利用率下降仍扩产?

《港湾商业观察》廖紫雯 日前,高龙海洋集团有限公司(以下简称:高龙海洋)递表港交所,保荐机构为越秀融资。高龙海洋国内运营主体为福建高龙海洋生物工程有限公司。 自2008年公司成立以来,高龙海洋一直从事…

vue3中 provide/inject用法详解

依赖注入:provide 和 inject 什么情况下推荐provide/inject使用:Prop 多层级数据透传 通常情况下,当我们需要从父组件向子组件传递数据时,会使用 props。想象一下这样的结构:有一些多层级嵌套的组件,形成了…

云HIS综合管理系统源码,云端SaaS服务,与监管系统有序对接,扩展性强

云HIS系统: 本套云HIS系统是一款适用于二级及以下医院、专科医院和社区卫生机构的综合性医院信息系统,它包含门诊预约挂号、收费结算、排班、医护协同、药房、药库、电子病历等10大功能模块,支持门诊、住院、医技、后勤各项核心业务。 采用…

每天五分钟玩转深度学习框架PyTorch:选择函数where和gather

本文重点 如图表所示,这几个方法可以理解为索引函数,有些函数在切片和索引一章进行了简单的介绍,本文将再次进行介绍,温故知新。 index_select 通过特殊的索引来获取数据index_select,这个这样来理解,第一个参数表示a的第几维度,第二个参数表示获取该维度的哪部分。 我…

strimzi operator 部署kafka集群

Strimzi介绍 官方文档:https://strimzi.io/docs/operators/0.42.0/overview#kafka-components_str Strimzi介绍 Strimzi 是一个用于 Apache Kafka 在 Kubernetes 上部署和管理的开源项目。它提供了一组 Kubernetes 自定义资源定义(Custom Resource Definitions,CRDs)、控制…

Oracle11.2.0 安装手册V1.0.doc

文档说明 编写目的 本手册是给系统技术人员人员提供Red Hat Enterprise Linux 5.4环境下得Oracle 11g的安装和配置指导,帮助实施人员或用户能够快速安装配置Oracle 11g。 准备介质 适用于Linux x86-64的Oracle Database 11g第2版 linux.x64_11gR2_database_1of2.…

校园课程助手【4】-使用Elasticsearch实现课程检索

本节将介绍本项目的查询模块,使用Elasticsearch又不是查询接口,具体流程如图所示(如果不了解Elasticsearch可以使用sql语句进行查询): 这里是两种方法的异同点: Mysql:擅长事务类型操作&#…

​EtherCAT、CANopen、RS485在电机控制中的对比

​EtherCAT、CANopen、RS485在电机控制中的对比 EtherCAT 特点: 高速通信:EtherCAT是一种实时以太网技术,数据传输速度快,具有极低的通信延迟和抖动。 高同步性:可精确同步多台设备,适用于高要求的控制任…

Python爬虫技术 第23节 数据清洗和预处理

在使用Python进行网络爬虫项目时,数据清洗和预处理是非常重要的步骤。这些步骤有助于确保从网页上抓取的数据准确、一致,并且适合后续的分析或机器学习任务。下面我将详细介绍如何使用Python来进行数据清洗和预处理。 1. 数据获取 首先,你需…

Java 实现 AVL树

在二叉平衡树中,我们进行插入和删除操作时都需要遍历树,可见树的结构是很影响操作效率的。在最坏的情况下,树成了一个单支树,查找的时间复杂度成了O(N),建树跟没建树一样。那么是不是有什么办法可以建一个树避免这种情…

基于 KubeSphere 的 Kubernetes 生产环境部署架构设计及成本分析

转载&#xff1a;基于 KubeSphere 的 Kubernetes 生产环境部署架构设计及成本分析 前言 导图 1. 简介 1.1 架构概要说明 今天分享一个实际小规模生产环境部署架构设计的案例&#xff0c;该架构设计概要说明如下&#xff1a; 本架构设计适用于中小规模(<50)的 Kubernetes …

本地生活服务商公司有哪些?一文教你搭建本地生活系统!

当前&#xff0c;本地生活领域群雄环伺&#xff0c;日益激烈的竞争推动各家互联网大厂调整布局模式的同时&#xff0c;也让本地生活市场持续迸发新的活力。在此背景下&#xff0c;想要通过本地生活服务商身份入局的创业者数量不断增多&#xff0c;以本地生活服务商公司有哪些等…

前端面试题整理-CSS

两栏布局 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>两栏布局</title><style>…

java计算机毕设课设—基于网络爬虫技术的网络新闻分析系统(附源码、文章、相关截图、部署视频)

这是什么系统&#xff1f; java计算机毕设课设—基于网络爬虫技术的网络新闻分析系统 基于网络爬虫技术的新闻分析系统&#xff0c;它能够实时抓取凤凰网、网易、新浪、搜狐等网站的新闻数据&#xff0c;提取正文和点击量&#xff0c;每日定时抓取。系统还能对抓取的新闻进行…

给echarts图表线条、数据点和区域设置颜色

let myChart echarts.init(document.getElementById("chartmainCop"));// 获取当前干部的各项评分const allIndicators Object.keys(this.dialogEacherTable[0]).filter(key > key ! "CadreID" && key ! "xm").map(key > ({name…

window电脑上使用python将pdf转换为word文档

1、电脑上安装Python运行环境 一、python官网下载链接 二、下载到电脑后&#xff0c;直接运行安装 三、安装完成后按&#xff1a;winR键进入window命令控制窗口&#xff0c;输入 python --version2、设置python依赖包国内镜像源 pip config set global.index-url https://mirr…