基于FPGA的自动曝光算法实现

1 概述

       在机器视觉中,自动曝光(Auto Exposure)是很多成像设备的必备功能。所谓自动曝光,就是根据环境或拍摄物体照明强度自动调节图像传感器的曝光时间,使输出图像的平均灰度(亮度)保持在一个合理范围,不产生过曝或欠曝现象。

       有一些CMOS图像传感器带有自动曝光功能,可直接使用。对于没有自动曝光功能的CMOS传感器,就需要在接收端设计开发相应的自动曝光算法,来动态控制CMOS的曝光时间。目前,很多CMOS传感器使用FPGA芯片作为图像接收端。

      本文介绍一种在FPGA中实现的自动曝光算法,具有原理简单、实时性高、响应快、收敛快的特点。

2 自动曝光算法

2.1 自动曝光原理

       自动曝光的算法有很多种,为了便于FPGA实现,从资源消耗和实时性的角度,可以选用2种原理相对简单的方法:灰度均值法和加权灰度均值法。

       首先,2种方法都需要设置一个图像的目标灰度均值Yt。

       灰度均值法是计算整幅图像的灰度(亮度)均值Y,即

Y = 整幅图像的像素灰度累加和÷像素数

       加权灰度均值法是将图像等分为N个区域,每个区域单独计算灰度均值Yi,并为每个区域的灰度均值赋予不同的权重系数Fi,最后加权得到整幅图像的灰度均值Y。其中

       显然,加权灰度均值法考虑了场景亮度的不均匀性,当较亮的像素点集中位于图像某些区域时,该种方法更具有优势。

       然后,将Y与Yt相比较,得出Yt-Y=∆Y ,然后计算出下一帧图像的曝光时间。

2.2 曝光时间调节步长

       自动曝光的曝光时间调节需要具备2个基本要求:快读响应和快速收敛。

       快速响应是指,曝光时间的调节使图像亮度的变化速度能尽可能跟上光照变化的速度。也就是图像亮度达到稳定的延迟时间短。

       快速收敛是指,当自动曝光接近结束时,图像亮度趋于稳定或在很小范围内波动时,曝光时间调节应迅速收敛,最终维持在1个稳定值。

       为了满足上述2个条件,设置一个最小灰度均值差∆Ymin,当|∆Y|≤∆Ymin 时,表示自动曝光收敛,无需进行曝光时间调节。

       默认CMOS输出图像的亮度与光照近似为线性关系。当|∆Y|>∆Ymin 时,已知当前帧图像的曝光时间为T,则曝光时间调节步长∆T采用了如下公式计算:

       当满足

       当满足

       下一帧图像的曝光时间即为Tn=T+∆T

3 FPGA实现

        经过比较,最终选择了加权灰度均值法在FPGA中予以实现,将图像等分为16个子块分别计算均值。为了降低资源消耗,将求灰度均值Y过程中的除法转换为乘法运算,求∆T 改为查找表方式实现。

       根据上述原理,所设计的FPGA模块支持自动曝光时间范围为1μs~1s,图像分辨率可调,并且可支持单时钟周期多像素点输入。

        针对4096*4096,8bit图像的自动曝光模块资源消耗如下:


http://www.niftyadmin.cn/n/351697.html

相关文章

如何利用SpringCloud和Kubernetes实现高可用和弹性伸缩

随着云计算技术的快速发展,弹性伸缩已成为应用高可用性的重要手段。在SpringCloud中,弹性伸缩也是实现高可用性的关键策略之一。本文将介绍SpringCloud应用在Kubernetes上的最佳实践,重点探讨高可用性设计及弹性伸缩实践。 一、引言 随着微服…

day 5

1.总结变量的类型及含义? 变量类型: 1,自定义变量: 在当前的shell命令行界面设置的变量是局部变量 例: num1 namezhangsan 含义:仅在当前shell生效. 2,环境变量: 全局变量,通过export 导出后的局部变量是全局变量 例: …

基于IMX8 实时ethercat的手机机器人方案设计

结构: 1、下述结构为操控手柄,用于采集人手运动信号,传递至上位机,对其他设备进行遥操控 2、手柄内含4个电机旋转副的手柄机械臂,内置16位分辨率旋转编码器记录角位移; 3、上位机连接手柄电机、器械电机…

python包之matplotlib基础概念和代码详解

1 基础概念 Figure: 可以理解为 canvas(画布),在画布上可以展示一个或多个Axes Axes:中文翻译为轴,但与数学中的概念不同,Axes可以理解为子画布,它属于Figure。也可以理解为它就是一个图形或绘制图形的区…

PMP-项目整合管理(一)

项目整合管理包括对隶属于项目管理过程的各种过程和项目管理活动进行识别、定义、组合、统一和协调的各个过程。 一、项目整合管理过程 制定项目章程:该过程的主要任务是编写一份正式批准项目并授权项目经理在项目活动中使用组织资源的文件,关键点是正…

深度学习神经网络学习笔记-多模态方向-12-DBpedia: A Nucleus for a Web of Open Data

摘要 DBpedia是一个社区努力从维基百科中提取结构化信息,并使这些信息在网络上可用。DBpedia允许您对来自维基百科的数据集提出复杂的查询,并将网络上的其他数据集链接到维基百科数据。我们描述了DBpedia数据集的提取,以及产生的信息如何在网…

Leetcode452. 用最少数量的箭引爆气球

Every day a Leetcode 题目来源:452. 用最少数量的箭引爆气球 解法1:排序 贪心 题解:用最少数量的箭引爆气球 我们首先随机地射出一支箭,再看一看是否能够调整这支箭地射出位置,使得我们可以引爆更多数目的气球。…

【产品成长】产品专业化提升路径

产品专业化 产品专业化就是上山寻路。梳理一套作为产品经理的工作方法。 以图为例,做一个归纳。 第一:梳理自己的设计方法。就是拿到一个需求点之后,如何进行需求分析,如何还原业务情况,最终进行产品设计&#xff0c…