下载
中文
注册

开发AE无光敏快速收敛功能

AE无光敏快速收敛是什么?

无光敏快速收敛是在没有光敏传感器反馈当前亮度的情况下,AE算法在启动后以最快速收敛到目标亮度范围的功能。

此功能目前在大部分场景下可以在10帧内收敛到目标亮度范围。其中目标亮度范围为[目标亮度-目标亮度*10%,目标亮度+目标亮度*10%]。例如,当目标量亮度为50,则目标亮度范围为[45,55]。

开发流程

  1. 适配Sensor的写寄存器方式。

    无光敏快速收敛要求对配置给Sensor的曝光参数的延迟生效要求为3帧,即AE算法在第1帧对Sensor配置曝光参数,在第4帧时能够获取到相应曝光参数生效的亮度统计信息(即 Raw)。如果Sensor的延迟生效帧数不符合3帧,则需要对Sensor的驱动进行修改适配。

    一般来说,目前大部分的Sensor在昇腾平台上,总体的延迟生效帧数为4帧。可将Sensor驱动适配为调用I2C接口直接写Sensor寄存器的方式设定曝光参数(包括曝光行数、Sensor 模拟增益、Sensor 数字增益)。这样的方式可以使Sensor提前1帧生效曝光参数。

    需要注意将Sensor改为用I2C接口直接写寄存器的方式后,相应的曝光行数、Sensor 模拟增益、Sensor数字增益和ISP数字增益的生效延迟帧数也要同保证同步,以确保曝光的同步。

  2. 配置pfn_cmos_ae_quick_start_status_set回调函数。

    无光敏快速收敛后,会调用此回调函数同时设定quick_start_status为HI_TRUE。此时通过此参数状态,将1中的直接调用I2C接口方式配置寄存器的方式更改回普通方式。

  3. 设定无光敏快速收敛相关参数。
    1. ae_sns_dft->quick_start.quick_start_enable设置为HI_TRUE打开无光敏快速收敛功能。
    2. ae_sns_dft->quick_start.black_frame_num设定初始坏帧数。因部分Sensor 在启动时,会输出若干坏帧,为了确保AE算法能够及时获取到有效的统计数据。需要填入正确的坏帧数,没有坏帧则填入0。
    3. ae_sns_dft->quick_start.ir_mode_en 设置无光敏快速收敛下是否支持红外模式。如果是需要支持带有 IR CUT 和 IR LED 无光敏快速收敛,则需要打开此模式。
    4. ae_sns_dft->quick_start.init_exposure_ir设置无光敏快速收敛红外模式下的初始曝光量。
    5. ae_sns_dft->quick_start.iso_thr_ir设置无光敏快速收敛普通模式切换到红外模式的ISO阈值。

      上层根据获取到的ISO值是否大于iso_thr_ir判定是否要打开IR CUT和IR LED进入红外模式。同时,AE快速收敛算法内部也会根据此参数判定是否要切换到快速收敛的红外模式进行继续收敛。

    6. ae_sns_dft->quick_start.ir_cut_delay_time设置无光敏快速收敛IR CUT打开需要的物理时间。单位为 ms。

      以上变量值均可通过Sensor驱动中的pfn_set_init()函数由外部传入进行灵活设定。

  4. 标定初始曝光量。在相同的曝光参数下,由于不同Sensor具有不同的光电敏感度。同时不同大小的光圈和不同的滤光片的选择都会对 Sensor的最终曝光亮度有不同影响。

    当前的无光敏快速收敛的初始曝光量需要进行标定。标定步骤和方法如下:

    1. 将辉度箱设定为EV8亮度。
    2. 将max_hist_offset设置为0,同时将AE算法设定为手动模式。
    3. 将相机镜头对着辉度箱,调节曝光量,当OriAve值为80时,此时对应的曝光量作为初始曝光量。
  5. 初始曝光量微调。对于不同的产品形态有不同的亮度使用范围,可以对4的初始曝光量进行微调,加快无光敏快速收敛AE算法收敛的速度,以适应不同产品需求。

注意事项

  • 2,将Sensor配置为用I2C接口直接写Sensor寄存器的方式来设定曝光量。在无光敏快速收敛完成后,需要进行相应的配置将Sensor的配置方式设定回普通方式。
  • 初始亮度80为推荐值,用户可以根据产品形态和适应的亮度范围在此基础上进行上下调节以达到最佳收敛速度。如果没有辉度箱标定环境。可以使用与曝光时间24ms、ISO100、光圈1.6相应的同等曝光量曝光参数组合作为初始曝光量的进行调试。