FPGA转行ISP的探索之一:行业概览

在这里插入图片描述

ISP的行业位置

最近看到一个分析,说FPGA的从业者将来转向ISP(Image Signal Process图像信号处理)是个不错的选择,可以适应智能汽车、AI等领域。故而我查了一下ISP,对它大致有个概念。

传统的ISP对应的是相机公司,它是相机里的一个核心环节,可以称作成像引擎,就像汽车里的发动机一样重要
ISP在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为整个相机拍照、录像的第一步处理流程,用于处理图像信号传感器输出的图像信号。它在相机系统中占有核心主导的地位,是构成相机的重要设备。

ISP是对前端图像传感器输出的信号做后期处理,依赖于ISP才能在不同的光学条件下都能较好的还原现场细节,ISP技术在很大程度上决定了相机的成像质量,是拍照过程中的运算处理单元,其地位相当于相机的“大脑”。

ISP的竞争壁垒

ISP是苦活累活,人才会被吸引到更加多金、就业面更广的AI上去;作为历史较悠久的ISP技术,员工要做好需花费大量时间和心思,而就业去向只有较大的几家芯片公司、手机公司、相机公司等,这些公司可能已经不怎么招新人了。但现在可能要加上汽车公司,自动驾驶的技术推进,可能会让ISP迸发新的需求。所以,一家公司要建立自己的ISP团队,考验的是公司的技术积累、公司对ISP的政策倾斜。

ISP的原理不复杂,但成为图像处理芯片的最大竞争壁垒之一的原因有如下几点:
第一, ISP的功能,原理虽然简单,但是里面有太多需要估计的策略,其实就是猜,要猜准确,有大量的经验,反复的调校工作在里面。
第二,ISP各个模块是相互影响的,这也增加了工作量。调试时,可能按下葫芦浮起瓢,大量时间消耗。比如,我们常说的3A算法(Auto Exposure、Auto Focus和Auto white balance),之所以叫3A,就是因为他们是相互作用相互成全的
主要的内容和功能可以由以下关键词概括:内部结构 /控制方式 / ISP 架构方案 / ISP工作流程 / 图像接入ISP的方式 / 黑电平校正 / 镜头阴影校正 / 坏点校正 / 绿平衡 / 降噪 / 颜色插值 / 色温 / 自动白平衡 / 颜色校正 / 伽马校正 / 颜色空间变换 / 宽动态范围 / 锐化 / 自动曝光 / 自动对焦 / 串扰 / 去假彩 / 耀斑补偿 / 自动光圈 / 图像格式 / 关键性能指标 / 精度 / 精确度 / 吞吐量 / 实时成像 / 拜耳阵列Bayer 等等。

Bayer 拜耳格式的概述

其中Bayer格式我找到一个讲的很好的,原来虽然用过但对定义不是特别清楚,下面这段的概述很精彩很好理解。
Cmos的Sensor采用了Bayer色彩滤波阵列(Bayer Color Filter Array,CFA)。
按道理sensor输出的是RGB的raw data,每个像素点都感知RGB 3个分量的数字这样最准确。但是这样需要3套感光板,而且RGB的3套数据还需要时间同步和对齐,这样成本高,难度大。
所以,我们通常采用一个叫Bayer色彩滤波阵列(Bayer Color Filter Array,CFA)的滤光板,放在一个感光板上。
如下图是一个8x8的分辨率的感光面板,图(a)中彩色部分是Bayer色彩滤波阵列,RGB三种颜色间隔排列。这样一次拍照就产生图(b)的RGB三幅图片,图片中彩色的是有感光数值的,白色空白是没有感光数值的点。我们需要通过Demosaic(颜色插值)的方法,把白色的像素点的值给补上
图(b)绿色的像素点数目是红色或蓝色的2倍,是因为人类对绿色更敏感。
在这里插入图片描述

Bayer色彩滤波阵列的结构:(a)在Sensor表面的CFA; (b)颜色分量的光分离和导致的传感器的不同像素点
注:Bayer色彩滤波阵列并不是唯一选择,它只是方案之一,由柯达公司科学家Bryce Bayer(1929 –2012)发明。华为P30pro夜间拍摄厉害,用到了RYYB的滤镜阵列设计,RYYB就是将两个绿色像素(G)换成黄色像素(Y)替代, Y(红色和绿色组合)。
自动驾驶技术中,有个比Bayer阵列更近一步的技术:红绿蓝-红外线(RGB-IR) 4x4 重构像。它的结构与Bayer类似,多了一个专用的Ir像素。RGB-IR CFA以4x4集群组织,如下所示:

在这里插入图片描述

大多数已有的ISP都是为处理2x2 Bayer模式而设计的。如果需要彩色成像,ISP可能需要一个专门的RGB-IR4x4转RGGB2x2转换模块。该过程应包括从彩色像素中减去Ir内容,以及插值红色和蓝色颜色通道以匹配 Bayer2x2 CFA模式。

ISP相关标准

为了适应汽车的自动驾驶需求,有一些标准正在讨论和制定中:
ISO TC42工作组18包括:
ISO 17957:均匀性/阴影测量
ISO 18844:眩光
ISO 19084:色偏
ISO 19567:纹理复制–部分支持
ISO TC 22公路车辆SC 35:照明和可见性
ISO 16505:汽车侧视镜替代系统标准(部分支持)
ISO 12233用于摄影和电子静止图像成像的分辨率和空间频率
ISO 12232用于ISO速度评级、标准输出灵敏度和推荐曝光指数
ISO 15739:噪声和动态范围
ISO 14524:色调曲线OECF标准
ISO 17850:几何畸变
另一个工作组是IEEE-SA P1858工作组 - 相机手机图像质量(CPIQ)。该小组致力于行业内的图像质量指标和实践的标准,以将客观测量与人类感知相关联,从而对系统进行排名。
EMVA1288 机器视觉传感器和摄像头的测量和规格表征标准是另一个关注标准化图像质量的团体。EMVA1288一直关注图像传感器而不是完整的摄像系统。
认为IEEE Std 1858、EMVA1288或ISO在汽车成像质量用例方面存在缺陷。由于其多样化和独特的成像条件景观,汽车成像带来了独特的挑战,上述标准没有很好地解决这些条件。
这一事实促使IEEE-SA创建了汽车系统质量标准 - IEEE-SA P2020工作组。P2020的目标是塑造相关的指标和关键性能指标(KPI),用于汽车图像质量,使客户和供应商能够有效地定义、测量和传达其成像系统的图像质量。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】【Pycharm】Python Script头文件设置

1、步骤:File->settings->Editor->File and CodeTemplates->Python Script 2、复制粘贴以下代码,应用即可: #!/usr/bin/env python # -*- coding: utf-8 -*-# Time :${DATE} ${TIME} # Author : admin # Site :${SITE} …

【C++】中类的6个默认成员函数 取地址及const成员函数 学习运算符重载 【实现一个日期类】

文章目录 一、【C】赋值运算符重载1.1 运算符重载【引入】1.2 运算符重载1.3 赋值运算符重载1.4 赋值 二、日期类的实现2.1 判断小于2.2 判断等于2.3 判断小于等于2.4 判断大于2.5 判断大于等于2.6 判断不等于2.7 日期加等天数2.8 获取月份天数2.9 日期加天数2.9.1 日期减等天数…

原生微信小程序开发记录

1. 拿到项目 先构建 2.小程序与普通网页开发的区别 网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中。网页开发者可以使用到各种浏览…

Redis系列学习文章分享---第一篇(Redis快速入门之初始Redis--NoSql+安装redis+客户端+常用命令)

目录 今天开始进入Redis系列学习分享1.初识Redis1.1.认识NoSQL1.1.1.结构化与非结构化1.1.2.关联和非关联1.1.3.查询方式1.1.4.事务1.1.5.总结 1.2.认识Redis1.3.安装Redis1.3.1.依赖库1.3.2.上传安装包并解压1.3.3.启动1.3.4.默认启动1.3.5.指定配置启动1.3.6.开机自启 1.4.Re…

【知识点】CNN中concat与add的区别

cat操作经常用于将特征联合,多个卷积特征提取框架提取的特征融合或者是将输出层的信息进行融合;而add层更像是信息之间的叠加。 add是在一个特征上增加其语义信息,对最终的图像的分类是有益;cat导致的结果改进可能是由于cat操作通…

机器学习---HMM前向、后向和维特比算法的计算

1. HMM import numpy as np# In[15]:class HiddenMarkov:def forward(self, Q, V, A, B, O, PI): # 使用前向算法N len(Q) # 状态序列的大小M len(O) # 观测序列的大小alphas np.zeros((N, M)) # alpha值T M # 有几个时刻,有几个观测序列,就有…

2024 前端面试题(GPT回答 + 示例代码 + 解释)No.114 - No.121

本文题目来源于全网收集,答案来源于 ChatGPT 和 博主(的小部分……) 格式:题目 h3 回答 text 参考大佬博客补充 text 示例代码 code 解释 quote 补充 quote 上一篇链接:2024 前端面试题(GPT回答 示例…

用HTML和CSS打造跨年烟花秀视觉盛宴

目录 一、程序代码 二、代码原理 三、运行效果 一、程序代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>跨年烟花秀</title><meta name"viewport" content"widthdevi…

Zotero不小心把分类删除怎么办?

如果不小心把Zotero中的条目删除了&#xff0c;是可以在回收站中找到的&#xff0c;但是如果把一个大分类删除了&#xff0c;那么就很难找回来了。 如果删除了也不必担心&#xff0c;可以查看Zotero官网给出的解决办法zotero_data [Zotero 文档] 我们需要定位到\Zotero\zotero…

MySQL(1/3)

基本命令行操作 命令行连接 mysql -uroot -p 回车&#xff0c;然后在下一行输入密码&#xff0c;或者直接在p后写密码 修改密码 updata mysql.user set authentication_stringpassword(原密码) where userroot and Host localhost; 刷新权限 flush privileges; 查看所有数据库…

深入理解 Vue3 中的 setup 函数

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

rocketMQ-Dashboard安装与部署

1、下载最新版本rocketMQ-Dashboard 下载地址&#xff1a;https://github.com/apache/rocketmq-dashboard 2、下载后解压&#xff0c;并用idea打开 3、修改配置 ①、修改端口及rocketmq服务的ip&#xff1a;port ②、修改访问账号、密码 3、然后启动访问&#xff1a; 4、mav…

Unity ScreenPointToRay 获取到的坐标不准确

&#x1f47e;奇奇怪怪的 &#x1f959;问题描述&#x1f96a;解决方案&#x1f37f;验证代码 &#x1f959;问题描述 使用&#xff1a;Camera.main.ScreenPointToRay 将鼠标坐标转换成射线&#xff0c;然后通过&#xff1a;Physics.Raycast 获取到射线碰撞到的坐标&#xff0…

Windows11(非WSL)安装Installing llama-cpp-python with GPU Support

直接安装&#xff0c;只支持CPU。想支持GPU&#xff0c;麻烦一些。 1. 安装CUDA Toolkit (NVIDIA CUDA Toolkit (available at https://developer.nvidia.com/cuda-downloads) 2. 安装如下物件&#xff1a; gitpythoncmakeVisual Studio Community (make sure you install t…

LeetCode 0589.N 叉树的前序遍历:深度优先搜索(DFS)

【LetMeFly】589.N 叉树的前序遍历&#xff1a;深度优先搜索(DFS) 力扣题目链接&#xff1a;https://leetcode.cn/problems/n-ary-tree-preorder-traversal/ 给定一个 n 叉树的根节点 root &#xff0c;返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表…

【开源】新生报到网站 JAVA+Vue.js+SpringBoot+MySQL

本文项目编号&#xff1a; T 002 。 \color{red}{本文项目编号&#xff1a;T002。} 本文项目编号&#xff1a;T002。 目录 1 功能模块1.1 在线交流模块1.2宿舍分配模块1.3 校园概况模块1.4 专业管理模块 2 系统展示3 核心代码3.1 图表展示3.2 查询评论3.3 新增报道 4 免责声明 …

数据结构1.0(基础)

近java的介绍&#xff0c; 文章目录 第一章、数据结构1、数据结构 &#xff1f;2、常用的数据结构数据结构&#xff1f; 逻辑结构and物理结构 第二章、数据结构基本介绍2.1、数组&#xff08;Array&#xff09;2.2、堆栈&#xff08;Stack&#xff09;2.3、队列&#xff08;Que…

云原生之容器编排实践-在K8S集群中使用Registry2搭建私有镜像仓库

背景 基于前面搭建的3节点 Kubernetes 集群&#xff0c;今天我们使用 Registry2 搭建私有镜像仓库&#xff0c;这在镜像安全性以及离线环境下运维等方面具有重要意义。 Note: 由于是测试环境&#xff0c;以下创建了一个 local-storage 的 StorageClass &#xff0c;并使用本地…

【自然语言处理】:实验4布置,预训练语言模型实现与应用

清华大学驭风计划 因为篇幅原因实验答案分开上传&#xff0c;自然语言处理专栏持续更新中&#xff0c;期待的小伙伴敬请关注 有任何疑问或者问题&#xff0c;也欢迎私信博主&#xff0c;大家可以相互讨论交流哟~~ 案例简介 2018年&#xff0c;Google提出了预训练语言模型BE…

vue+springboot登录与注册功能的实现

①首先写一个登录页面 <template> <div style"background-color: #42b983;display: flex;align-items: center;justify-content: center;height: 100vh"><div style"background-color: white;display: flex;width: 50%;height: 50%;overflow: h…