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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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*40968bit图像的自动曝光模块资源消耗如下

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6