本文主要从如下几个方面介绍face AE。
- face AE的基本概念和原理
- face AE的处理流程
- face AE相关参数调试
- 经典问题
适用于高通aec7
1 基本概念和原理
1.1 基本概念
Face AE是为了保证在同一场景有人脸和无人脸情况下场景亮度不会发生AE巨变或跳变。通常用来平衡受人脸曝光影响较大的场景,如:大背光场景、纯色背景场景等。开启face AE使能,调整face AE相关参数。
1.2 工作原理
拍摄带人场景时,设备检测到场景中人脸启用人脸框采集人脸信息,face AE根据统计到的人脸信息进行计算得到人脸的最终亮度,最后和非人脸的亮度统计结果进行混合得到最终的场景亮度。
2 Face AE 调试
2.1 Face ROI
Face ROI(Region of Interest)是指人脸检测区域的大小,该值不宜设置太大,太大会导致场景中非人脸的统计点被误判为人脸统计;也不宜设置太小,太小会导致人脸检测的统计值不够。
2.2 Face Luma
2.2.1 face roi 的size和weight
Face roi的weight(如weight1),由face roi的size来决定,size越大的roi所占的weight也就越大。注意:当statsROIProcessEnable为1的时候,face roi的weight的计算方式有所改变。此时由face roi的size和face roi中心点距画面中心店的距离共同决定。

2.2.2 luam计算
Face luma是基于人脸亮度统计而计算face最终亮度。
Face luma的计算公式(其中N为face的个数):
Face_luma = (face1_luma * weight1 + face2_luma * weight2 + ... + faceN_luma * weightN)/(weight1 + weight2 + ... + weightN).
单个face亮度(如face_luma)的计算主要受到centerWeightStrenght的控制,影响单个face roi里面不同region的weight。
2.3 face target调整
2.3.1 face target
Face target是指人亮亮度的设定目标值,根据环境lux区分在不同region下设定合理的face target值。
luxFaceLumaTarget和AE模块的Luma Target一样。 只不过luxFaceLumaTarget是设定人脸亮度的目标值。Target的差值方式:
当lux index位于某个region的start和end之间时,使用当前region的参数;当lux index小于当前region的start并大于上一个region的end时,使用当前region和前一个region的参数做线性差值。

C7工具界面(8150平台为例):
工具栏AEC--àTree view--àface--àface Mtr

使能Enable Face ROI是开启人脸AE检测的使能,需要开启。
WeightTemporalFilter参数目前没有使用。
EnableLuxFaceTarget是开启人脸目标值的使能。
2.3.2 face CenterWeightStrength
CenterWeightStrength:当center weight为1时,face roi最外面的region的weight就为0;当center weight为2时,距离roi中心0.5距离的region的weight就为0。Center weight越大,face luma计算时候中心region的weight越大,为0的时候整个face roi里面的region的weight是一样的。

2.4 face size和weight的调整
Face size是指人脸的大小,face weight是指人脸在整张画面中所占的比重。Face size和face weight主要是用来平衡不同的dominant face size下人脸或者背景亮度程度。比如在拍风景照的时候,画面中较远的地方有人脸被检测到了,默认该情况下人脸的权重比较大,此时就会将画面整体拉亮或者压暗,这样就导致风景的整体曝光变差,这种情况下就需要将小size人脸的weight调低。
参数所在工具位置:AEC-àFace-àFace Mtr 内,如下图所示:

FaceLumaWeightLuxIndexTrigger:根据不同的lux index可以使用不同的face size来trigger不同的weight参数。这里定义的是基于lux index的face weight。
LuxFaceWeightZone:根据lux index指定不同的face weight的zone。
FaceSizeWeightLuxIndexTrigger:根据不同的lux index可以使用不同的face size来trigger不同weight的参数。这里定义的是基于lux index的face size。
LuxFaceWeightZone:根据lux index指定不同的face size的zone
Face size和face weight的关系:
在face AE中face size和face weight是相互结合起来使用的,根据不同的face size使用不同的face weight值。
2.5 face backlit调整及对faceweight的影响
Face backlit参数主要是用来平衡不同逆光情况下的背景和人脸之间的亮度。比如在背景很亮的情况下,由于face weight值比较大,在提亮人脸的同时也会将背景的亮度一起提亮,此时客户需要在保证人脸亮度的前提下同时也要保证背景的内容也能看到,此时就可以通过调整backlit来实现。参数如下图所示:

Backlit下face weight的调整: 设定frame_luma/face_luma=ratio
- 当ratio < 1时,此时backlit不作用。
- 当ratio > 1时,
- Ratio > Thres Back Luma Ratio.start时, Backlit Weight用Backlit Weight Adj Setting.start进行weight计算,此时的backlit作用最大。
- Thres Back Luma Ratio.end< Ratio < Thres Back Luma Ratio.start时,此时backlit weight用Backlit Weight Adj Setting.end和Backlit Weight Adj Setting.start进行差值计算。
- Ratio < Thres Back Luma Ratio.end时,此时backlit weight用Backlit Weight Adj Setting.end和1进行差值计算。
得到最终的backlit weight主要是为了改变最终的face weight的值。最终face weight计算:
Faceweight=faceWeightByMaxSize*faceWeightAdjByBacklit
2.6 Face AE convergence及进入和退出
Face AE convergence参数主要影响检测到face之后的收敛速度调整。值越大收敛速度越快,值越小收敛速度越慢。参数如下:
AEC---àTreeView--àFace---àFaceConv:

Speed Adj Delay Time Enter:检测到人脸后,当face ROI的active时间超过该值时,才开始使用face convSpeedAdjRatio值。
Speed Adj Delay Time Exit:检测到人脸后,当face ROI的active时间超过该值时,才开始停止使用face convSpeedAdjRatio值。
2.7 Face extreme color及和AE中extreme color 关系
Face extreme color是针对有人脸的纯色场景的亮度问题调试。
在face中extreme color只有一个使能开关,如果开启使能,在有人脸的情况下,启用extreme color,如果关闭使能,则不启用extreme color模块。如果启用face extreme color并触发到,则在AE模块中的extreme color内进行参数修改即可。

2.8 Face AE与其他模块中的影响
2.8.1 Face AE对histogram的影响
Enable Hist Luma Target Suppression使能是根据face size来trigger对AEC histogram里面的maxTargetAdjRatio和minTargetAdjRatio的调整。这个需要结合faceSize一起使用。
① 当face size ≥ faceSize.end时,maxTargetAdjRatio=minTargetAdjRatio=1.0f
② 当face size ≤ faceSize.start时,使用原本AEC histogram里面的maxTargetAdjRatio和minTargetAdjRatio。
③ 当faceSize.start < face size < faceSize.end时,maxTargetAdjRatio和minTargetAdjRatio将和1.0f做差值调整。
2.8.2 Face AE对fina AE的影响
Final luma计算:
Final_Luma=Frame_Luma*(1-faceWeight)+Face_Luma*faceWeight
3 经典案例分析
3.1 车库背光场景人脸偏暗
从下图可以看到车库背光场景调试机的人脸亮度比对比机稍暗,同时可以看到调试机的背景高光压制的比对比机好,这种情况下有两种方法优化:1.通过调整ADRC达到人脸亮度的提亮。2. 可以通过调整人脸的权重来提高人脸亮度。

- 通过调整ADRC达到人脸亮度的提亮
分析调试机的3A信息:

从AEC Info中可以知道,该场景safe gain=long gain=48,short gain=25.80238,说明该场景触发了ADRC gain。

在Data-àAEC-àAEC-àAEC Metering-àHistory-based-Target中,42/17.5=2.4=ADRC,从下图可知,该场景的ADRC作用力度达到最大。这种情况下,可以将ADRC值写小,使ADRC的作用力度减小

2 调整face参数

从3A信息中可知,该场景的face luma值很小,可以加大face weight权重、调整backlit参数或者调整face target值。