海思35XX系列(三)sensor(传感器)
刚开始接触这个概念的时候感觉比较模糊,简单记录一下吧
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)
https://www.microdemo.com/technical-data/1267/#p1图像bayer格式介绍_拜耳格式-CSDN博客
https://blog.csdn.net/bingqingsuimeng/article/details/61917513ISP(图像信号处理)之Bayer Raw 简介_乐正倩彦-开放原子开发者工作坊 (csdn.net)
https://openatomworkshop.csdn.net/6645b45db12a9d168eb6d72f.html
“Sensor”的名词解释与概述_sensor有效区-CSDN博客
https://blog.csdn.net/qq_37692302/article/details/125640788ISP(二) Demosiac 去马赛克 (CIP)_demosac 马赛克算法-CSDN博客
https://blog.csdn.net/qq_24965393/article/details/101542220
相关文章:
海思35XX系列(三)sensor(传感器)
刚开始接触这个概念的时候感觉比较模糊,简单记录一下吧 Sensor(传感器)是一种可以感知外部环境并将感知到的信息转化为可用的电信号或其他形式的工具。传感器广泛应用于电子设备、工业自动化、汽车、医疗器械等领域,用于测量、监…...
dfs(续做)
1.混境之地5 #include<bits/stdc.h> using namespace std; typedef long long ll; const int dx[4] {0,1,0,-1}; const int dy[4] {1,0,-1,0}; int n,m,k,a,b,c,d,sign0; int h[1010][1010],visit[1010][1010]; void dfs(int x,int y,bool used) {if(xc&&yd){si…...
OpenStack;异构算力网络架构;算力服务与交易技术;服务编排与调度技术
目录 OpenStack 一、OpenStack概述 二、OpenStack的主要组件及功能 三、OpenStack的架构 四、OpenStack的应用场景 异构算力网络架构 算力服务与交易技术 服务编排与调度技术 OpenStack 是一个开源的云计算管理平台项目,由NASA(美国国家航空航天局)和Rackspace合作…...
PLC-Recorder对于数据采集时间戳偏差的修正功能
目录 一、修正原理 二、使用步骤 1、初始状态,计算修正系数 2、启动和使用 3、修正系数的手动修改 三、修正前后的效果对比 1、修正前的时间偏差曲线 2、修正后的效果曲线 四、注意事项 1、控制器可能的时钟波动 2、平移参数评估 3、参数保存 五、关于…...
自定义监控
代码说明: 导入必要的库 import time import psutil import GPUtil from prometheus_client import start_http_server, Summary, Counter, Gaugepsutil:用于获取系统的CPU、内存、磁盘和网络信息。GPUtil:用于获取GPU信息。prometheus_cli…...
关于使用php的mpdf插件遇到的一些问题
一.插件版本 "mpdf/mpdf": "^8.0", 二.报错:Undefined index: list_style_type 这个是插件无法识别 li 标签导致,生成pdf是加入下面代码 <style> li { list-style-type: none; list-style-image: none; list-style-positi…...
电脑截图,颜色变淡的问题解决
解决 Windows 11 在 HDR 模式下截图 Edge 浏览器界面时画面过曝的问题-腾讯云开发者社区-腾讯云 (tencent.com) 主要是浏览器用错了东西,调一下就好,详情看链接 联想拯救者y9000p为例,选择sRGB,就好啦,拜拜喽&#x…...
uniApp跳转外链
创建一个新的页面,在该页面中使用web-view组件加载外部URL:pages/web-view/web-view <template><view><uni-list><uni-list-itemtitle"打开外部链接"click"openExternalLink"></uni-list-item></…...
科技云报道:大模型引领技术浪潮,AI安全治理面临“大考”
科技云报道原创。 从文生文到文生图,再到文生视频,近年来,以ChatGPT、Sora等为代表的大模型引领了全球人工智能技术与产业的新一轮浪潮。2024年更是被业内称为大模型应用爆发元年。 年初,Sora横空出世验证了Scalling Law在视频生…...
SpringSecurity+Mysql数据库实现用户安全登录认证
Spring Security 是一个提供身份认证、授权和防范常见攻击的安全权限框架。无论是对命令式,还是响应式web应用程序都完美支持,现在主要用作保护基于 Spring 框架的应用程序的事实标准。相对于shiro来说,SpringSecurity功能更加复杂而且更加强…...
虚拟网卡添加ip
1.虚拟机网卡添加 1.进入虚拟机设置添加网卡即网络适配器 2.配置文件修改 1.查看网卡是否添加成功 ip ad ifconfig 其中ens161就是我们新添加的设备同时这个ens161也是我们硬件名字 2.进入系统配置文件 cd /etc/sysconfig/network-scripts/#配置文件目录[rootlocalhost ne…...
Unity向量线性插值Lerp
inline glm::vec3 Lerp(glm::vec3 start, glm::vec3 end, float t){t glm::clamp(t, 0.0f, 1.0f);return (start*(1-t)end*t); }...
fatal: Could not read from remote repository. 解决方法
问题描述: Git : fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists。 解决方法: 当在网上尝试大量方法仍然失败的时候,不妨试试这个方法。 在 github 上&…...
postman查询单条数据Get方法,无任何输出,idea后端也没有任何数据和提示的解决方法
问题描述: 正常使用postman测试,输入内容没有错误,但是却没有任何消息 后端也是,没有任何消息: 解决方法: 问题的原因主要是因为postman: 我们只需要新建一个页面,把刚才的查询语…...
query怎么改写,才能实现高质量的知识问答系统
为了实现高质量的知识问答系统,query改写需要综合利用多种技术,确保改写后的查询更具语义性、准确性和完整性。以下是具体的步骤和方法: 1. 同义词和短语替换 步骤: 建立同义词库:使用现有的同义词词典或根据特定领…...
Python实战——轻松实现动态网页爬虫(附详细源码)
大家好,我是东眠的鱼,专注原创,致力于用浅显易懂的语言分享爬虫、数据分析及可视化等干货,希望人人都能学到新知识。<文末附带精品籽料哦,也可以和博主一起学Python呀!> 项目背景 有同学自学爬虫时…...
Python应用—利用opencv实现图像匹配
1.创作需求 我们通常需要从一幅图中找到自己想要的信息,例如从一堆表情中找到,自己需要的表情。 2.创作思路 1.使用模板图片作为卷积核与原图进行卷积运算,得出匹配度超过某一阈值的范围。 2.对该部分进行框选 3.工具 主要使用opencv库实现,通过 cv2.matchTemplate(…...
Excel函数基础(二)
1、单元格名称 框选单元格(不含标题),公式选项卡->定义名称, 或者框选单元格后,在左上角的栏位直接输入要定义的名字,按下enter键即可 这样在使用函数时,数据范围参数可以用定义的名称来替…...
学习大数据DAY30 python基础语法3
目录 上机练习 5 File(文件) 读写 文本文件写 文本文件读 csv 文件写 csv 文件读 异常 自定义异常 上机练习 6 上机练习 5 上机练习5的作业我昨天就写完了,但是因为它是今天的作业,我就今天发咯。 # atm 机模拟器:使用 main 入口&…...
一文弄清Java的四大引用及其两大传递
开场白 Hello大家好呀,我是CodeCodeBond✊最近在复习很多很多的基础知识,有了很多新的感悟~ 话不多说,直接发车✈ 四大引用 问题切入点 在学习 Thread线程利用ThreadLocalMap实现线程的本地内存(变量副本)的时候&…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
