启用 LED 闪光灯后相机图像曝光过度

Camera image overexposed after LED flash enabling

我正在 Android 上做一些计算机视觉方面的工作。我制作了一个应用程序,可以在使用曝光锁校准后保持低曝光,并且效果很好。曝光是我想要的,几乎所有视频帧都打开和关闭 LED。

然而,当我打开相机的 LED 闪光灯后,图像很快就会曝光过度。

由于曝光被锁定,所以我不明白为什么会这样。

我正在使用 Moto G2nd 和 Nexus 5X 进行测试。只有 Nexus 5X 似乎显示了这个问题。从我读到的内容来看,设置曝光补偿有一些困难(Nexus 5X 没有),但曝光锁定肯定会起作用,尽管我开始怀疑它有缺陷。 Moto G2nd 将曝光补偿设置为最小值(此处有效)。

乞求问题;短暂曝光过度的帧是 Nexus 驱动程序、缺少曝光补偿的结果,还是自然发生的问题?

如果是后者,我可以抵消吗?我考虑过跟踪帧的整体亮度,并将其与几帧前未曝光过度的亮度进行比较。这似乎很棘手而且行不通。

旁注:也许值得一提的是,Nexus 在设置相机参数(打开或关闭闪光灯)后不久似乎会卡顿视频输出。是否可以想象,在此卡顿期间,CMOS 充电时间过长?

我对此进行了更多调查。 Nexus 支持没有任何帮助,所以我基本上不得不解决这个问题。我最终通过观察画面的亮度来为闪光灯计时(在 Nexus 5x 的情况下会有延迟)。我不只是从低闪光到高闪光计时,而是在最后添加另一帧以解决一个曝光过度的帧。

我不确定关闭闪光灯时是否会出现同样的问题。我猜是这样,因为关闭闪光灯时会出现明显的帧丢失,就像打开电源时一样。无论哪种方式,这对我来说似乎都不是问题(目前)。

我猜这是相机驱动程序的问题,CMOS 确实充电时间过长,因为 enabling/disabling 闪光灯延迟导致帧未及时获取。