人脸红图提取(基于opencv提取人脸热图)

一、红色图获得原理

观察例图我们可以发现,红色图本质上是提取了原图的红色部分,即温度较高的部分,猜测图2应该是由原始图片经过红外温度扫描成像的,因此要从图1转变为图2应该首先提取红色部分,如何再进行图像增强,提升对比度等操作。

1

1.1红色部分提取

由于脸颊、粉刺和嘴唇的红色略有不同,为了使得提取更加精确我采用了分段式提取。

并确定了最终的色彩范围

H

S

V

mask1

10-14

0-255

188-196

mask2

8-10

0-255

0-255

mask3

1-8

0-255

0-255

之所以选择在HSV色域中进行红色部分的提取,是因为RGB通道并不能很好地反映出物体具体的颜色信息,而相对于RGB空间,HSV空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的对比。(附上HSV色域空间图如下所示)

1.2颜色关系映射

1.2.1 映射关系试算一

在提取红色部分后,我们得到了三个掩膜mask1、mask2、mask3,但仅据此还无法将t1.png转换为t2.png,他们之间存在一个颜色关系映射,但这个映射关系我们无法准确获得,仅能通过概率统计的方式获取一个近似值。分别打印出原始图片t1三个通道的值origin_H、origin_S、origin_V、和红色例图t2的HSV值red_H,red_S,red_V。

我们期望获得从origin(H,S.V)到red(H,S,V)之间的颜色关系映射,这个映射并不直观,但是通过观察我们不难发现t2的H值基本在176附近,因此可近似任务红色图中的H值为定值,而观察red_S我们发现它个origin_H的变化相似只不过符号相反,因此可以尝试用origin_H线性映射到red_S。又发现red_V和red_S之间也有类似的关系,取red_S=red_V,当然不能直接取值,还需要根据值域对公式进行调整,上式只是简单的说明了他们之间的关系,下面是通过上述映射关系得到的成像,可以看到图像失真很严重,这是因为我们仅仅利用了origin_H这一个原始特征进行拟合,信息丢失严重!

1.2.2 映射关系试算二

再次观察数据分布我们发现origin_S的变化也影响着red_S,因此我们可以合理对origin_H和origin_S做线性组合来近似拟合red_S的变化。

经过权重调整,我们最终选定了用这一映射关系来近似拟合red_H。

 

同样的,对red_V进行拟合得到

于是根据这个映射关系,我们可以将原图映射到红图,得到如下结果,相比来说,精度已经提升了很多但是对于一些细节未能得到凸显,处理的效果仍然不好。

1.2.3 映射关系试算三

观察映射关系二中拟合的结果,我们不难发现有很多散点特别分散,根本无法用线性函数进行拟合,而且不同补位,如图像从脸部到嘴唇,色彩鲜艳度应该是剧烈上升,亮度极具下降,而脸部不同皮肤之间的过渡应该缓慢改变S、V值,因此我们考虑用分段函数进行拟合,正如我们对原图进行mask的时候一样,这里我们在原始拟合函数的基础上,根据自变量的不同进行函数参数的调整(这一步很麻烦,需要不停的根据效果图,结合S表示饱和度即鲜艳程度、V表示亮度,反复修改拟合函数的参数),以达到良好的分段效果。

使用调整后的映射关系可得到如下图像,已经能明显识别各个红区了,但图像对比度仍然有所不足。

最后使用图像增强技术,利用gamma变换增加图像的对比度,Gamma变换的本质就是用来图像增强,其提升了暗部细节,简单来说就是通过非线性变换,让图像从暴光强度的线性响应变得更接近人眼感受的响应,即将漂白(相机曝光)或过暗(曝光不足)的图片,进行矫正,得到HSV色域下处理的最终图像。

经过Gamma变换后的输入和输出图像灰度值关系如图所示:横坐标是输入灰度值,纵坐标是输出灰度值,蓝色曲线是gamma值小于1时的输入输出关系,红色曲线是gamma值大于1时的输入输出关系。可以观察到,当gamma值小于1时(蓝色曲线),图像的整体亮度值得到提升,同时低灰度处的对比度得到增加,更利于分辩低灰度值时的图像细节。

1.3 转HSV色域下处理的最终结果 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值