发明内容
本发明要解决的技术问题是提供一种基于图像中目标区域的自动曝光方法,使图像中的目标区域具有合适的亮度,提高曝光后图像中目标区域的信噪比。
为了解决上述问题,本发明提供了一种基于图像中目标区域的自动曝光方法,包括:
对当前检测帧的图像进行目标检测,判断是否存在目标;
根据当前检测帧和/或先前检测帧中的目标区域的亮度值确定当前检测帧的亮度值;
根据当前检测帧的亮度值对后续图像进行自动曝光调整。
进一步地,设置一目标列表,保存当前检测帧和先前检测帧中检测到的目标的区域位置和存在概率;对当前检测帧的图像进行目标检测后,更新目标列表,并根据前一检测帧的状态和所述目标列表确定当前检测帧的状态和亮度值,其中检测帧的状态包括目标状态或非目标状态。
进一步地,在当前检测帧中检测到的目标不是目标列表中的目标时,将此目标加入目标列表,记录此目标的区域位置,并将其存在概率设为1/m,m为不小于1的正整数。
进一步地,在当前检测帧中检测到目标列表中的目标时,将该目标的区域位置更新为当前检测帧中此目标的目标区域位置,同时,其存在概率由下式确定:
其中,Fn为此目标在当前检测帧的存在概率,Fn-1为此目标在前一检测帧的存在概率,m为不小于1的正整数。
进一步地,在当前检测帧中没有检测到目标列表中的目标时,该目标的存在概率由下式确定:
Fn为此目标在当前检测帧的存在概率,Fn-1为此目标在前一检测帧的存在概率,l为不小于1的正整数。
进一步地,更新目标列表后,其中有目标的概率值为0,将该目标从目标列表中清除。
进一步地,判断当前检测帧中是否检测到前一检测帧的目标,采用以下方式中的一种:当前检测帧目标区域的中心是否偏离前一检测帧目标区域的中心的像素数在设定的像素数门限值之内,或者采用目标跟踪的方法进行判断。
进一步地,前一检测帧为目标状态,当前检测帧中检测到前一检测帧的目标时,当前检测帧为目标状态,当前检测帧的亮度为前一检测帧的目标区域的亮度。
进一步地,前一检测帧为目标状态,当前检测帧中没有检测到前一检测帧的目标,且前一检测帧的目标的概率大于0时,当前检测帧为目标状态,当前检测帧的亮度为前一检测帧的亮度。
进一步地,前一检测帧为目标状态,当前检测帧中没有检测到前一检测帧的目标,且前一检测帧的目标的概率为0,且目标列表中存在概率为1的目标时,当前检测帧为目标状态,在目标列表中概率为1的目标中选择区域尺寸最大的目标作为当前检测帧的目标;当前检测帧的亮度为当前检测帧的目标区域的亮度和前一检测帧的亮度值之和的平均值。
进一步地,:
前一检测帧为目标状态,当前检测帧中没有检测到前一检测帧的目标,且前一检测帧的目标的概率为0,且目标列表中不存在概率为1的目标时,当前检测帧为非目标状态,当前检测帧的亮度为当前检测帧的全图亮度值和前一检测帧的亮度值之和的平均值。
进一步地,前一检测帧为非目标状态时,目标列表中存在概率为1的目标,当前检测帧为目标状态,在目标列表中概率为1的目标中选择区域尺寸最大的目标作为当前检测帧的目标,当前检测帧的亮度为此目标区域的亮度。
进一步地,前一检测帧为非目标状态时,目标列表中不存在概率为1的目标,当前检测帧为非目标状态,当前检测帧的亮度为当前检测帧图像全图的亮度值。
进一步地,在所述步骤(a)中,对当前检测帧图像进行目标检测时,设置目标区域最小有效尺寸,检测目标后得到的目标尺寸小于所述目标区域最小有效尺寸时,认为没有检测到目标。
进一步地,得到当前检测帧亮度值后,根据公式Yn+1=(1-α)*Yn+α*Yc进行平滑处理;其中,Yn+1为平滑后当前检测帧的亮度值,Yn为前一检测帧的亮度值,Yc为当前检测帧目标区域亮度值,当前检测帧为非目标状态时Yc为0,α为平滑系数,0≤a≤1。
进一步地,先设置目标亮度标准值和亮度阈值;图像状态为目标状态时,根据目标区域的亮度均值、目标区域的目标亮度标准值和亮度阈值计算曝光参数;图像状态为非目标状态时,根据全图的平均亮度、全图的目标亮度标准值和亮度阈值计算曝光参数。
进一步地,所述自动曝光调节包括以下步骤:计算所需亮度增益值G2,判断是否利用亮度增益值调整可以将当前亮度值调整到目标亮度值范围内;若是,则将当前亮度增益值G1调整为G2的值,再按新的亮度增益值处理图像,否则,计算最优曝光时间T2。
进一步地,所述目标为人脸或车牌,所述目标区域为人脸区域或车牌区域。
进一步地,所述方法适用于以下图像获取设备中:数码相机、摄像头。
采用本发明的方法,可以使图像中的目标区域相对全图背景具有合适的亮度信息,提高目标区域的信噪比,防止目标区域亮度不足或者曝光过度,在目标背光或强光条件下效果尤其明显。
具体实施方式
本发明的核心思想是:设置一目标列表,保存当前检测帧和先前检测帧中检测到的目标的区域位置和存在概率;对当前检测帧的图像进行目标检测后,更新目标列表,并根据前一检测帧的状态和所述目标列表确定当前检测帧的状态和亮度值,根据当前检测帧的亮度值对后续图像进行自动曝光调整。其中检测帧的状态包括目标状态或非目标状态。
在系统进行初始化时,设置曝光控制基本参数,并设置初始状态为非目标状态。
曝光控制基本参数,包括:初始曝光时间T1,目标亮度标准值Ytarget、亮度阈值Ythd、亮度增益值Gtarget、亮度增益值阈值Gthd。
在此步骤中,可以根据需要为目标区域和全图设置不同的目标亮度标准值和亮度阈值,也可共用相同的参数。图像状态为目标状态时,根据目标区域的亮度均值、目标区域的目标亮度标准值和亮度阈值计算曝光参数;图像状态为非目标状态时,根据全图的平均亮度、全图的目标亮度标准值和亮度阈值计算曝光参数。
初始设置的基本参数还包括:目标区域亮度最大值Ymax-target,和最小值Ymin-target。全图的参数包括全图亮度最小值Ymin-all和最大值Ymax-all。上述基本参数的值是通过经验或统计得到的。
如图1所示,基于图像中目标区域的自动曝光方法,包括以下步骤:
步骤101,对当前检测帧的图像进行目标检测;
步骤102,判断是否存在目标,更新目标列表;
系统维护一个目标列表,包含目前检测到的所有目标的区域位置和存在概率。在当前检测帧检测到的目标不是目标列表中的目标时,将此目标加入目标列表,记录此目标的目标区域位置,并将其存在概率设为1/m,m为系统设定的不小于1的正整数。在当前帧中检测到目标列表中的目标时,将该目标的位置更新为新的目标区域位置,同时,其存在概率F由下式确定:
其中,Fn为此目标在第n帧的存在概率,Fn-1为此目标在第n-1帧的存在概率。
在当前检测帧中检测到多个目标时,对检测到的多个目标分别按上述方法进行处理。
如果在当前帧中没有检测到目标列表中的目标;则该目标的存在概率由下式确定。
(l为不小于1的正整数。)
判断在当前帧中是否检测到目标列表中的目标,可以根据当前帧中先前检测帧目标区域与前一检测帧目标区域的位置是否相近的方法,如果当前检测帧目标区域的中心偏离前一检测帧目标区域的中心的像素数在系统设定的像素数门限值之内,则认为是同一目标,否则,认为不是同一目标。上述像素数门限值和当前检测帧目标区域尺寸和图像尺寸有关。
如果目标列表中某个目标的概率为0,则认为该目标已消失,并将该目标从目标列表中清除。
步骤103,确定当前检测帧的状态和当前检测帧的亮度值;
当前检测帧的状态包括两种:目标状态和非目标状态。
确定当前检测帧状态包括以下两种方式:
一、前一检测帧为目标状态时,判断当前检测帧中是否检测到前一检测帧的选择目标,如果是,当前检测帧为目标状态,当前检测帧的选择目标为前一检测帧的选择目标,当前检测帧的亮度为前一检测帧的选择目标区域的亮度;否则,判断前一检测帧的选择目标的概率是否大于0,如果是,当前检测帧为目标状态,当前检测帧的选择目标为前一检测帧的选择目标,当前检测帧的亮度为前一检测帧的亮度;否则,判断目标列表中是否存在概率为1的目标;如果是,当前检测帧为目标状态,在目标列表中概率为1的目标中选择尺寸最大的目标作为当前检测帧的选择目标;当前检测帧的亮度为当前检测帧的选择目标区域的亮度和前一检测帧的亮度值之和的平均值;否则,当前检测帧为非目标状态,当前检测帧的亮度为当前检测帧的全图亮度值和和前一检测帧的亮度值之和的平均值。
二、前一检测帧为非目标状态时,判断人脸列表中是否存在概率为1的人脸,如果是,当前检测帧为人脸状态,在人脸列表中概率为1的人脸中选择尺寸最大的人脸作为当前检测帧的选择人脸,当前检测帧的亮度为此选择人脸区域的亮度;否则,当前检测帧为非人脸状态,当前检测帧的亮度为全图的亮度值。
当存在状态转换时,如非目标状态进入目标状态,或者目标状态变成非目标状态时,为了防止图像亮度的突变,可以加入几帧的过渡。当选择目标的存在概率不为1时,也可以采用由目标亮度和全图亮度共同决定曝光控制的方法。具体的m,l的数值可以根据具体的应用需求和目标类型进行设置。
如果目标检测的虚警率低,可以减小m的值;如果目标检测的漏检率高,可以增加l的值。反之亦然。如果不关心图像的亮度的跳变,只关心目标区域的亮度值,可以将m,l都设为1。总之,m,l的值根据实际的应用需求和目标检测的性能进行设置。
步骤104,进行自动曝光调整。
在具体实施例中,图像中目标为人脸,目标区域为人脸区域,检测帧的状态包括人脸状态(目标状态)和非人脸状态(非目标状态)两种情况。自动曝光方法包括以下步骤:
步骤1,确定当前检测帧的状态和亮度值;
根据前一检测帧的状态(人脸状态或非人脸状态)和人脸列表,确定当前检测帧的状态和亮度值。
如图2所示,前一检测帧的状态为人脸状态时,确定当前帧的亮度值的步骤包括:
步骤201,对当前检测帧的图像进行人脸检测;
本文中的帧均指视频帧。前一检测帧和当前检测帧可以是相隔一帧也可以相隔多帧。
因为当前时间收到的视频帧不一定用来进行人脸检测的帧,所以将待处理的帧称为检测帧。
步骤202,判断是否存在人脸,更新人脸列表;
当人脸区域过小时,人脸矩形框位置的小偏差也会带来人脸区域平均亮度的大的误差,此时用人脸区域的平均亮度进行自动曝光会使得人脸区域和全图的亮度都无法满足要求。此时应采用全图的平均亮度进行自动曝光调节。为此,设置人脸区域最小有效尺寸。检测人脸后得到的人脸尺寸小于人脸区域最小有效尺寸时忽略此人脸的信息,认为没有检测到人脸。只有检测到的人脸区域尺寸大于人脸区域最小有效尺寸时,才判断当前检测帧图像中存在人脸。其中,人脸区域是指包含人脸的矩形区域,其最小有效尺寸与图像的尺寸相关。
更新人脸列表包括:
判断存在人脸时,将该人脸位置与目标列表中的目标区域位置进行比较。将目标列表中是同一人脸的概率按公式(1)进行更新。如果目标列表中不存在与检测到的人脸是同一人脸的目标,则在目标列表中增加此目标,并将其概率设为1/m。
对于目标列表中的目标,在当前帧没有检测到的目标,其概率按公式(2)进行更新;如果某目标列表中某个目标的概率为0,则删除该目标。
步骤203,判断当前检测帧中是否检测到前一检测帧的选择目标,如果是,执行下一步;否则,转到步骤205;
判断先前检测帧人脸区域的人脸与当前检测帧人脸区域的人脸是否为同一人脸,可通过判断先前检测帧人脸区域与前一检测帧人脸区域的位置是否相近的方法。如果当前检测帧人脸区域的中心偏离前一检测帧人脸区域的中心的像素数在系统设定的像素数门限值之内,则认为是同一人脸,否则,认为不是同一人脸。上述像素数门限值和当前检测帧人脸区域尺寸和图像尺寸有关。
在其它实施例中,还可以根据人脸跟踪算法判断当前检测帧人脸区域与先前帧的人脸区域是否为同一人脸。
步骤204,当前检测帧为人脸状态,当前检测帧的选择人脸为前一检测帧的选择人脸,当前检测帧的亮度为前一检测帧的选择人脸区域的亮度;流程结束;
步骤205,判断前一检测帧的选择人脸的概率是否大于0,如果是,执行下一步;否则,转到步骤207;
步骤206,当前检测帧为人脸状态,当前检测帧的选择人脸为前一检测帧的选择人脸,当前检测帧的亮度为前一检测帧的亮度;流程结束;
步骤207,判断人脸列表中是否存在概率为1的人脸;如果是,执行下一步;否则,转到步骤209;
步骤208,当前检测帧为人脸状态,在人脸列表中概率为1的人脸中选择尺寸最大的人脸作为当前检测帧的选择人脸;当前检测帧的亮度为当前检测帧的选择人脸区域的亮度和前一检测帧的亮度值之和的平均值;流程结束;
步骤209,当前检测帧为非人脸状态,当前检测帧的亮度为当前检测帧的全图亮度值和前一检测帧的亮度值之和的平均值;流程结束。
如图3所示,前一检测帧的状态为非人脸状态时,确定当前帧的亮度值的步骤包括:
步骤301,对当前检测帧的图像进行人脸检测;
步骤302,判断是否存在人脸,更新人脸列表;
此步骤与步骤202中的方法相同。
步骤303,判断人脸列表中是否存在概率为1的人脸,如果是,执行下一步;否则,转到步骤305;
步骤304,当前检测帧为人脸状态,在人脸列表中概率为1的人脸中选择尺寸最大的人脸作为当前检测帧的选择人脸,当前检测帧的亮度为此选择人脸区域的亮度;流程结束;
步骤305,当前检测帧为非人脸状态,当前检测帧的亮度为全图的亮度值;流程结束。
步骤1中确定当前检测帧亮度值后,还可用前一检测帧的亮度值对当前检测帧亮度值进行平滑,采用的平滑方式可以为任何低通滤波器或者采用一维卡尔曼滤波。本实施例中,采用的平滑方法为以下公式所示:Yn+1=(1-α)*Yn+α*Yc
其中,Yn+1为当前检测帧亮度值平滑结果,Yn为前一检测帧平滑亮度值结果,Yc为当前检测帧亮度值。α为平滑系数。0≤a≤1,α由系统设定。
为了有效判断当前状态,需要记录连续m个检测帧的人脸检测的结果(即为人脸状态还是非人脸状态、人脸区域位置)和检测帧的亮度值,以及人脸区域亮度值及全图亮度值。
步骤2,进行自动曝光调整。
设亮度最大值为M,M为常数,本实施例中M=255。当前检测帧的曝光时间为T1,亮度增益为G1,亮度为Y1。图像的亮度取决于曝光强度和亮度增益调整,曝光强度则由曝光时间决定,因此,图像亮度由曝光时间和亮度增益值决定。如图4所示,本实施例的自动曝光调节包括以下步骤:
步骤401,在曝光并提取处理图像后,判断当前检测帧的亮度值是否在目标亮度值范围内,即[Ytarget-Ythd,Ytarget+Ythd],如果是,在下一检测帧继续按步骤201中原有参数曝光并处理图像;否则,进行下一步;
步骤402,计算所需亮度增益值G2,判断是否利用亮度增益值调整可以将亮度值调整到目标亮度值范围内,如果是,则将亮度增益值G1调整为G2的值,再按新的亮度增益值处理图像;否则,进行下一步;
利用公式
计算所需亮度增益值,公式中M为亮度最大值,判断是否Gtarget-Gthd.≤G2≤Gtarget+Gthd.,若是,则将亮度增益值G1调整为G2的值。
步骤403,寻求最优曝光时间T2。
利用公式 计算f(Y1);
再利用公式 计算T2。
若计算的目标曝光时间Ttarget为光照强度变化周期时间T整数倍,则取时间Ttarget为T2,若计算的目标曝光时间Ttarget不是光照强度变化周期时间T的整数倍,则取时间最接近Ttarget的T的整数倍数为T2。
在计算最优曝光时间T2后还可以执行以下步骤调整亮度增益值来进行曝光补偿:
使用公式 计算最优亮度增益值G2,并用计算结果调整图像处理模块中的亮度增益值G1。
如果对全图的亮度也有要求,可以综合考虑人脸区域平均亮度和全图平均亮度,保证全图不过亮或过暗的情况下(分别对应一个阈值),采用人脸区域平均亮度来选择自动曝光参数。如果调整的结果会使得全图过亮或过暗,可以在全图得到的亮度增益和人脸区域得到的亮度增益之间进行加权作为新的亮度增益值,进行曝光调节。
需要说明的是,对于本发明来说,在得到亮度值后采用何种自动曝光调整方式并不加以限定。以上仅仅是一个示例。
上述方法中,目标可以为其它需检测目标,目标区域还可以为其它感兴趣区域,即目标为车牌,目标区域为车牌区域。
所述方法适用于数码相机、摄像头等图像获取设备中。
图5、图6分别是采用上述方法进行全图曝光调节前后的对比图例一和对比图例二,采用上述方法处理后,图像中的人脸区域相对全图背景具有较合适的亮度信息。
本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。