zoukankan      html  css  js  c++  java
  • 嘴角定位

    人脸五官中,关于嘴角定位的文献相对眼睛定位来讲要少很多,定位的方法也很不相同。作者结合工作中遇到的问题,在此按照定位过程,简要阐述如下:

    嘴角定位一般分为,胡子区域去除,嘴巴区域获取,嘴角定位

    1. 胡子区域去除

      胡子的干扰,是嘴角定位最大的难题,特别是中东一些国家,留胡子人极多。而目前很多文献中,并没有提出此问题的解决方法。王罡的《基于单张正面人脸照片的三维人脸自动建模方法研究》中提到用BR加权G色对比法,来去掉胡须部分。具体来讲,是根据“B分量(蓝色)和G分量(绿色)在唇色中的分布比较相近,但在肤色中,G分量的分布则明显大于B分量;在肤色和唇色中,R分量(红色)和B分量分布相对稳定,G分量是造成色度分布差异的主要元素”。

                    

    Fig1 原始图像            Fig2 胡子去除后

          实际定位中,我们只需要对人脸图像的下半部分进行检测即可。

    2.嘴巴区域获取

     (1)嘴巴特征增强

           想通过嘴巴的灰度和肤色的差异,来获取嘴巴的区域还是比较困难的。因为实际情况下,受光照和个体的差异,并不是每个人的唇色和肤色都有明显差异。因此需要突出嘴巴区域的特征,增加对比度。作者采用的是Fisher变换的方法,分别采集两组样本(肤色和嘴唇),相当于求类间距离最大的原理,来寻找肤色和纯色的最有分类矩阵。

                                       

              Fig3 Fisher增强                                           Fig4 Fisher增强

           上排图像是原始图像,下排是嘴巴增强的效果。       

    (2)消除光照影响

           由于光照条件不固定,会给嘴巴区域的获取,以及后续嘴角精确定位带来很大的影响。作者采用Gabor的方法来处理,效果良好。

     Fig5 Gabor变换

    (3)嘴巴区域二值化

           作者尝试采用过一些图像二值化方法来对嘴巴区域提取,包括OTSU以及基于边缘特征信息的二值化方法,但是经过测试都不稳定。最终采用的是类似于“眼睛定位”文章中提到的方法,效果稳定而且效果很好。

                          Fig 6 OTSU二值化结果

    Fig 7 基于边缘信息保留的图像二值化

           图7中的效果明显优于OTSU算法,但是它容易受嘴巴姿态等的影响,造成二值化区域较大,这给后续角点的筛选带来不便。

    Fig8 基于Gabor的嘴巴区域二值化

    3.嘴角定位

           获得一个尽量“好”的嘴巴区域,会给嘴角定位准确性带来很大方便。作者在嘴巴区域内,采用角点检测和嘴巴模板相结合的方法,来精确定位嘴角位置。

           角点检测有很多现成的方法,比如Susan和Harris角点检测。作者选择的后者,但是检点检测后有很多候选点,如何准确筛选呢?我们可以嘴巴的形状,加入边缘信息进来判断。因为从真正的嘴角位置出发,同事沿着边缘往右或往左,得到的边缘点数应该最多。

    4.定位结果

  • 相关阅读:
    用JS实现气泡效果
    如何判断浏览器JS代码
    你是怎么看完《JavaScript权威指南》《JavaScript高级程序设计》等这类厚书的?
    CSS3技巧:fit-content水平居中
    捋一捋JavaScript对象的理解
    js 判断数据类型的几种方法
    给想转行学习web前端的朋友提些学习建议及学习路线
    sentry 9.1.1docker版onepremise过程记录
    python内置函数all使用的坑
    centos7.2自带的php5.4升级为5.6
  • 原文地址:https://www.cnblogs.com/ImageVision/p/2408506.html
Copyright © 2011-2022 走看看