背景技术
人脸检测是指利用自适应增强(AdaBoost)等算法,在拍摄到的图像中检测出人脸区域。
图像拍摄环境的光线强度变化,会不同程度地降低图像中各区域的明暗程度,对人脸区域尤为明显,因而可能使得人脸区域由于过暗而难以识别。因此,现有技术通常会利用一条预设的伽玛(Gamma)曲线,对包含人脸区域的图像进行亮度调节。
现有亮度调节的具体实现方式为:在预设的Gamma曲线中,依次查找横坐标值与图像中每一个像素点的原始亮度值相等的坐标点,然后将查找到的各坐标点的纵坐标值作为对应像素点的调节后的亮度值。
其中,Gamma曲线以坐标原点为起始点,并以坐标点(m、m)为终点,其中,m为表示最大亮度值的正整数,且将Gamma曲线中的各坐标点的横坐标归一化在区间[0,1]之内后,可得到如下的函数表达式:
x为大于等于0且小于等于1的任意实数。
在参数γ大于1时,Gamma曲线中各坐标点的纵坐标值均会大于横坐标值,从而经上述调节方式处理后,图像中的各像素点调节后的亮度值均会提高,避免人脸区域由于过暗而难以识别。
而且,在参数γ大于1时,其取值越大,Gamma曲线自坐标原点的初始斜率就越大,即该条Gamma曲线的斜率变化率越大,调节后的亮度值提高的幅度通常也就越大;其取值越小,Gamma曲线自坐标原点的初始斜率就越小,即该条Gamma曲线的斜率变化率越小,调节后的亮度值提高的幅度通常也就越小。
由此,在进行人脸检测之前,可以针对当前图像拍摄环境的光线状况先确定亮度调节需要的调节幅度,然后设定将Gamma曲线的参数γ设定为对应的取值,以保证在后续的人脸检测过程中检测到的人脸区域经亮度调节后,其明暗程度能够符合需求。
现有某些亮度调节方式能够实现对图像的亮度调节,但其仅预设一条Gamma曲线,且该Gamma曲线的参数γ在人脸检测过程中是固定不变的。因此,如果当前图像拍摄环境的光线发生变化,则无法随之调整Gamma曲线,从而无法有效针对当前图像拍摄环境的光线状况动态调整亮度调节的幅度,进而无法有效提高图像质量。
现有的其他一些亮度调节方式预设了多条Gamma曲线,并可以随当前图像拍摄环境的光线变化而更换Gamma曲线,但其更换的Gamma曲线是根据整幅图像的平均亮度来选择的。这样,在例如背光场景等一些特殊场景下,背景区域的亮度非常大、且背景区域在整幅图像中占大部分面积,即便人脸区域非常暗,整幅图像的平均亮度也较高,因此,根据较高的平均亮度仍不会选择参数γ取值较大的Gamma曲线进行亮度调节,使得人脸区域仍然会很暗,因而仍然无法有效提高图像质量。
发明内容
有鉴于此,本发明提供了一种用于人脸检测的图像亮度调节控制方法、以及一种用于人脸检测的图像亮度调节控制装置,能够提高人脸图像的质量。
本发明提供的一种用于人脸检测的图像亮度调节控制方法,设置多条参数γ取值不同的伽玛Gamma曲线,初始化时从中任选一条Gamma曲线用作当前亮度调节,该方法包括:
在每次检测到图像中有人脸区域后,计算经亮度调节的图像中人脸区域的平均亮度;
如果该平均亮度大于预设的亮度区间上限值,则选择参数γ取值更低的另一条Gamma曲线用作当前亮度调节;
如果该平均亮度小于预设的亮度区间下限值,则选择参数γ取值更高的另一条Gamma曲线用作当前亮度调节。
在每次检测到图像中未包含人脸区域之后,该方法进一步包括:
读取感光元器件的当前曝光时间;
如果读取的感光元器件的当前曝光时间已达到预设的最大时间阈值,则执行所述选择参数γ取值更高的另一条Gamma曲线用作当前亮度调节;
如果读取的感光元器件的当前曝光时间未达到预设的最大时间阈值,则执行所述选择参数γ取值更低的另一条Gamma曲线用作当前亮度调节。
在每次检测到图像中未包含人脸区域之后,该方法进一步包括:
读取感光元器件的当前曝光时间;
如果读取的感光元器件的当前曝光时间大于上一次读取的曝光时间,则执行所述选择参数γ取值更高的另一条Gamma曲线用作当前亮度调节;
如果读取的感光期间的当前曝光时间小于上一次读取的曝光时间,则执行所述选择参数γ取值更低的另一条Gamma曲线用作当前亮度调节。
在所述初始化时,根据预先设置的曝光时间与参数γ取值的对应关系,选择参数γ取值与感光元器件的当前曝光时间对应的一条Gamma曲线用作当前亮度调节。
参数γ取值更低的另一条Gamma曲线为:参数γ取值低于用作当前亮度调节的Gamma曲线、且与用作当前亮度调节的Gamma曲线的参数γ取值相邻的另一条Gamma曲线;
参数γ取值更高的另一条Gamma曲线为:参数γ取值高于用作当前亮度调节的Gamma曲线、且与用作当前亮度调节的Gamma曲线的参数γ取值相邻的另一条Gamma曲线。
本发明提供的一种用于人脸检测的图像亮度调节控制装置,该装置包括:
曲线存储单元,用于存储预先设置的多条参数γ取值不同的伽玛Gamma曲线;
初始化单元,用于在初始化时从所述曲线存储单元中,任选一条Gamma曲线输出给外部的亮度调节装置用作当前亮度调节;
区域检测单元,与外部的感光元器件相连,用于检测所述感光元器件拍摄的图像中是否包含人脸区域;
亮度计算单元,与外部的亮度调节装置相连,用于在所述区域检测单元检测到图像中包含人脸区域后,计算所述亮度调节装置输出的经亮度调节的图像中人脸区域的平均亮度;
曲线调整单元,用于在所述亮度计算单元计算得到的平均亮度大于预设的亮度区间上限值时,从所述曲线存储单元中选择参数γ取值更低的另一条Gamma曲线输出给所述亮度调节装置用作当前亮度调节;在所述亮度计算单元计算得到的平均亮度小于预设的亮度区间下限值时,从所述曲线存储单元中选择参数γ取值更高的另一条Gamma曲线输出给所述亮度调节装置用作当前亮度调节。
所述曲线调整单元在所述区域检测单元每次检测到图像中未包含人脸区域后,进一步读取所述感光元器件的当前曝光时间;
如果读取的感光元器件的当前曝光时间已达到预设的最大时间阈值,则执行所述选择参数γ取值更高的另一条Gamma曲线;
如果读取的感光元器件的当前曝光时间未达到预设的最大时间阈值,则执行所述选择参数γ取值更低的另一条Gamma曲线。
所述曲线调整单元在所述区域检测单元每次检测到图像中未包含人脸区域后,进一步读取所述感光元器件的当前曝光时间;
如果读取的感光元器件的当前曝光时间大于上一次读取的曝光时间,则执行所述选择参数γ取值更高的另一条Gamma曲线;
如果读取的感光期间的当前曝光时间小于上一次读取的曝光时间,则执行所述选择参数γ取值更低的另一条Gamma曲线。
所述初始化单元包括:
对应关系子单元,用于存储预先设置的曝光时间与参数γ取值的对应关系;
初始化选择子单元,用于根据所述对应关系子单元中的所述对应关系,选择参数γ取值与感光元器件的当前曝光时间对应的一条Gamma曲线,输出给外部的亮度调节装置用作当前亮度调节。
所述曲线存储单元中存储的多条Gamma曲线,按照参数γ取值大小顺序排列;
所述参数γ取值更低的另一条Gamma曲线为:参数γ取值低于用作当前亮度调节的Gamma曲线、且与用作当前亮度调节的Gamma曲线相邻的另一条Gamma曲线;
所述参数γ取值更高的另一条Gamma曲线为:参数γ取值高于用作当前亮度调节的Gamma曲线、且与用作当前亮度调节的Gamma曲线相邻的另一条Gamma曲线。
由此可见,本发明预先设置多条参数γ取值不同的Gamma曲线,并实时计算亮度调节后的图像中人脸区域的平均亮度作为选择Gamma曲线的依据,而非采用整幅图像的平均亮度作为选择Gamma曲线的依据;在人脸区域的平均亮度随图像拍摄环境的光线变化而超出预设的亮度区间时,改由其他Gamma曲线用作当前亮度调节,从而能够有效针对当前图像拍摄环境的光线状况动态调整亮度调节的幅度,进而能够有效提高图像质量。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
在本发明中,预先设置多条参数γ取值不同的Gamma曲线,并根据人脸区域的平均亮度选择合适的Gamma曲线用于当前的亮度调节。
图1为本发明中多条Gamma曲线的示意图。如图1所示,以参数γ大于1的5条Gamma曲线、亮度最大值为255为例,这5条曲线均起始于坐标原点(0,0)、并最终汇聚至坐标点(255、255),且除坐标原点(0,0)和坐标点(255、255)之外的其他坐标点的纵坐标值均大于横坐标值。
在如图1所示的5条Gamma曲线中,最上方一条的参数γ取值最大,因而最上方一条Gamma曲线自坐标原点的初始斜率最大,即该条Gamma曲线的斜率变化率最大。
在如图1所示的5条Gamma曲线中,最下方一条的参数γ取值最小,因而最下方一条Gamma曲线自坐标原点的初始斜率最小,即该条Gamma曲线的斜率变化率最小。
斜率变化率大的Gamma曲线中,对于横坐标值较小的坐标点来说,其纵坐标值与横坐标值的差值,相比于横坐标值较大的坐标点更大。
斜率变化率小的Gamma曲线中,对于横坐标值较小的坐标点来说,其纵坐标值与横坐标值的差值,与横坐标值较大的坐标点基本持平。
也就是说,参数γ大于1时,其取值越大,亮度值较低的像素点经Gamma曲线亮度调节后,亮度值提升的幅度越显著。
参见图1,假设人脸区域的各像素点的原始亮度值较低,均为50;背景区域的各像素点的原始亮度值较高,均为150。
如果利用图1中最上方一条Gamma曲线进行亮度调节,则人脸区域的各像素点调节后的亮度值可达到140左右,提升幅度达到90左右;背景区域的各像素点可达到200左右,提升幅度只有50左右。
而如果利用图1中最下方一条Gamma曲线进行亮度调节,则人脸区域的各像素点调节后的亮度值可达到65左右,提升幅度只有15左右;背景区域的各像素点可达到160左右,提升幅度只有10左右。
由此,本发明利用上述特性,在图像中人脸区域的各像素点的亮度值过低时,无论人脸区域之外的背景区域的各像素点的亮度高低,均选择斜率变化率较大(即参数γ的取值较大)的Gamma曲线进行亮度调节,以避免人脸区域由于过暗而无法识别;而在图像中人脸区域的各像素点的亮度值过高时,无论背景区域的各像素点的亮度高低,均选择斜率变化率小(即参数γ的取值较小)的Gamma曲线进行亮度调节,以避免人脸区域由于过亮而无法识别。
此外,在参数γ小于1时,Gamma曲线中各坐标点的纵坐标值均会小于横坐标值,从而利用参数γ小于1的Gamma曲线进行亮度调节后,图像中的各像素点调节后的亮度值均会降低。
而且,在参数γ小1时,其取值越大,Gamma曲线自坐标原点的初始斜率就越小,即该条Gamma曲线的斜率变化率越小,调节后的亮度值提高的幅度通常也就越小;其取值越小,Gamma曲线自坐标原点的初始斜率就越大,即该条Gamma曲线的斜率变化率越大,调节后的亮度值降低的幅度通常也就越大。
这样,如果选择斜率变化率趋近于0(即参数γ的取值趋近于1)的Gamma曲线的进行亮度调节后,图像中人脸区域的各像素点的亮度值仍过高,则可以再选择参数γ小于1的Gamma曲线进行亮度调节,继续降低人脸区域的各像素点的亮度值。
图2为本发明实施例中图像亮度调节控制方法的流程示意图。如图2所示,该方法包括:
步骤200,设置多条参数γ取值不同的Gamma曲线,并在初始化时从多条Gamma曲线中任选一条用作当前对图像进行亮度调节的Gamma曲线。
其中,本步骤中选择的Gamma曲线,根据预先设置的曝光时间与参数γ取值的对应关系,选择与感光元器件当前的曝光时间对应的一条Gamma曲线,也可以是参数γ取值最小的一条Gamma曲线,还可以是预先设置的缺省Gamma曲线,再或者是随机选取的一条Gamma曲线。
此后,用于实现亮度调节的装置即可利用步骤200选择的Gamma曲线进行亮度调节。
步骤201,在检测到图像中有人脸区域后,计算经亮度调节的图像中人脸区域的平均亮度,并判断计算得到的平均亮度是否超出预设的亮度区间,经亮度调节的图像可以由用于实现亮度调节的装置反馈。
如果该平均亮度大于预设的亮度区间上限值,则表示人脸区域的亮度受环境影响而过高,并执行步骤202;
如果该平均亮度小于预设的亮度区间下限值,则表示人脸区域的亮度受环境影响而过低,并执行步骤203;
如果该平均亮度处于预设的亮度区间内,则表示人脸区域的亮度值正常、无需调整,用于实现亮度调节的装置仍利用步骤200选择的Gamma曲线进行亮度调节,并继续执行本步骤。
步骤202,将参数γ取值低于当前对图像进行亮度调节的Gamma曲线的另一条Gamma曲线,替换当前对图像进行亮度调节的Gamma曲线,并返回步骤201。
其中,步骤200所设置多条参数γ取值不同的Gamma曲线,可以按照参数γ取值,由高至低对应多个档位,本步骤所选择的另一条Gamma曲线,其可以是低于当前对图像进行亮度调节的Gamma曲线一档的一条Gamma曲线,即所选择的另一条Gamma曲线的参数γ取值低于当前对图像进行亮度调节的Gamma曲线、并与当前对图像进行亮度调节的Gamma曲线的参数γ取值相邻;或者,本步骤所选择的另一条Gamma曲线,可以是从档位低于当前对图像进行亮度调节的Gamma曲线的所有Gamma曲线中,随机选取的一条Gamma曲线。
此后,用于实现亮度调节的装置则利用步骤202选择的Gamma曲线进行亮度调节,从而减少亮度提高幅度或增加亮度降低幅度。
步骤203,将参数γ取值高于当前对图像进行亮度调节的Gamma曲线的另一条Gamma曲线,替换当前对图像进行亮度调节的Gamma曲线,并返回步骤201。
其中,步骤200所设置多条参数γ取值不同的Gamma曲线,可以按照参数γ取值,由高至低对应多个档位,本步骤所选择的另一条Gamma曲线,其可以是高于当前对图像进行亮度调节的Gamma曲线一档的一条Gamma曲线,即所选择的另一条Gamma曲线的参数γ取值高于当前对图像进行亮度调节的Gamma曲线、并与当前对图像进行亮度调节的Gamma曲线的参数γ取值相邻;或者,本步骤所选择的另一条Gamma曲线,可以是从档位高于当前对图像进行亮度调节的Gamma曲线的所有Gamma曲线中,随机选取的一条Gamma曲线
此后,用于实现亮度调节的装置则利用步骤203选择的Gamma曲线进行亮度调节,从而增加亮度提高幅度或减少亮度降低幅度。
至此,本流程结束。
由上述流程可见,本实施例预先设置多条参数γ取值不同的Gamma曲线,并实时计算亮度调节后的图像中人脸区域的平均亮度作为选择Gamma曲线的依据,而非采用整幅图像的平均亮度作为选择Gamma曲线的依据;在人脸区域的平均亮度随图像拍摄环境的光线变化而超出预设的亮度区间时,改由其他Gamma曲线用作当前亮度调节,从而能够有效针对当前图像拍摄环境的光线状况动态调整亮度调节的幅度,进而能够有效提高图像质量。
需要说明的是,在执行上述步骤202和步骤203之前,可以分别先判断当前对图像进行亮度调节的Gamma曲线的参数γ取值是否为最低或最高,如果是,属于一种无法调节的极限情况,而所述的极限情况在本实施例中不予考虑。
实际应用中,如果在步骤201之前,在图像中未检测到人脸区域,即图像中只有背景区域,则可以根据拍摄图像的感光元器件的曝光时间来调整Gamma曲线,从而减少在检测到人脸区域后对亮度调节幅度的调整。
具体来说,当图像拍摄环境的光线变强或变弱时,感光元器件的曝光时间可通过手工设置减小或增大。这样,在每次检测到图像中未包含人脸区域后,读取感光元器件的当前曝光时间。
如果此次读取的感光元器件的当前曝光时间相比于上一次读取的曝光时间增大了,或者此次读取的感光元器件的当前曝光时间已达到预设的最大时间阈值,则将参数γ取值高于当前对图像进行亮度调节的Gamma曲线的另一条Gamma曲线,替换当前对图像进行亮度调节的Gamma曲线;
如果此次读取的感光期间的当前曝光时间相比于上一次读取的曝光时间减小了,或者此次读取的感光元器件的当前曝光时间未达到预设的最大时间阈值,则将参数γ取值低于当前对图像进行亮度调节的Gamma曲线的另一条Gamma曲线,替换当前对图像进行亮度调节的Gamma曲线。
图3为本发明实施例中图像亮度调节控制装置的结构示意图。如图3所示,本实施例中的控制装置包括:
曲线存储单元301,用于存储预先设置的多条参数γ取值不同的伽玛Gamma曲线。其中,Gamma曲线可以是以坐标数据的方式存储于曲线存储单元301中。
初始化单元302,与曲线存储单元301和外部的亮度调节装置400相连,用于在初始化时从曲线存储单元301中,任选一条Gamma曲线输出给亮度调节装置400用作当前亮度调节。
其中,初始化单元302中还可以包括:对应关系子单元302a和初始化选择子单元302b。对应关系子单元302a,用于存储预先设置的曝光时间与参数γ取值的对应关系;而初始化选择子单元302b,则用于根据对应关系子单元中的对应关系,选择参数γ取值与感光元器件500的当前曝光时间对应的一条Gamma曲线,输出给外部的亮度调节装置400用作当前亮度调节。
区域检测单元303,与外部拍摄图像的感光元器件500相连,用于检测感光元器件500拍摄的图像中是否包含人脸区域。
亮度计算单元304,与区域检测单元303、以及亮度调节装置400相连,用于接收亮度调节装置400反馈输出的经亮度调节后的图像,并在区域检测单元303检测到图像中包含人脸区域后,计算经亮度调节装置500亮度调节的图像中人脸区域的平均亮度。
曲线调整单元305,与曲线存储单元301、亮度计算单元304、以及亮度调节装置400相连,用于在平均亮度大于预设的亮度区间上限值时,从曲线存储单元301中选择参数γ取值更低的另一条Gamma曲线输出给亮度调节装置400用作当前亮度调节;在平均亮度小于预设的亮度区间下限值时,从曲线存储单元301中选择参数γ取值更高的另一条Gamma曲线输出给亮度调节装置400用作当前亮度调节。
由上述结构可见,本实施例的控制装置中预先设置多条参数γ取值不同的Gamma曲线,并实时计算亮度调节后的图像中人脸区域的平均亮度作为选择Gamma曲线的依据,而非采用整幅图像的平均亮度作为选择Gamma曲线的依据;在人脸区域的平均亮度随图像拍摄环境的光线变化而超出预设的亮度区间时,改由其他Gamma曲线用作当前亮度调节,从而能够有效针对当前图像拍摄环境的光线状况动态调整亮度调节的幅度,进而能够有效提高图像质量
此外,曲线调整单元305还可以与感光元器件500相连,并在区域检测单元每次检测到图像中未包含人脸区域后,进一步读取感光元器件500的当前曝光时间,并根据读取的当前曝光时间调整亮度调节装置400用作当前亮度调节的Gamma曲线。
例如,如果此次读取的感光元器件的当前曝光时间已达到预设的最大时间阈值,则选择参数γ取值更高的另一条Gamma曲线;如果此次读取的感光元器件的当前曝光时间未达到预设的最大时间阈值,则选择参数γ取值更低的另一条Gamma曲线。
再例如,如果此次读取的感光元器件的当前曝光时间大于上一次读取的曝光时间,则选择参数γ取值更高的另一条Gamma曲线;如果此次读取的感光期间的当前曝光时间小于上一次读取的曝光时间,则选择参数γ取值更低的另一条Gamma曲线。
这样,即便图像中未检测到人脸区域,即图像中只有背景区域,仍可以根据拍摄图像的感光元器件的曝光时间来调整Gamma曲线,从而减少在检测到人脸区域后对亮度调节幅度的调整。
在本实施例中,曲线存储单元301中存储的多条Gamma曲线,可按照参数γ取值大小顺序排列。
曲线调整单元305即可从曲线存储单元301中,选择参数γ取值低于用作当前亮度调节的Gamma曲线、且与用作当前亮度调节的Gamma曲线相邻的另一条Gamma曲线,作为参数γ取值更低的另一条Gamma曲线;从曲线存储单元301中,选择参数γ取值高于用作当前亮度调节的Gamma曲线、且与用作当前亮度调节的Gamma曲线相邻的另一条Gamma,作为曲线参数γ取值更高的另一条Gamma曲线。
这样,可以循序渐进地实现对亮度调节幅度的调整。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。