zoukankan      html  css  js  c++  java
  • 眼睛定位

    根据眼睛定位的流程,一般分为以下几步:眼睛区域初定位,噪声去除,眼睛的精确定位。

    1 眼睛区域初定位,对正面人脸还是比较好确定的,但是当人脸发生姿态变化时,如何较准确获取,是个难题。当然有人用二值化眼睛区域的方法,但是不同光照,不同人脸的阈值不太好定。而且图像处理领域,凡是涉及到阈值的,都是比较头疼的问题(除非那种阈值很明显的问题)。所以,这里尽量避免直接求阈值,来确定眼睛位置。大概分为以下几步:

    (1)3*3算子腐蚀图像,并对其进行Gabor变化;

     

    (2)对Gabor变化后的人脸上半部分做投影,可以大概获取两只眼睛的横坐标。

    (3)找出两只眼睛区域的最大灰度;

    (4)以最低灰度的0.92倍作为阈值,讲眼睛区域进行二值化:

    (5)检测二值化区域:

    2 噪声去除

    其实在初定位中就已经用到Gabor了,用它对人脸处理后,不仅可以帮助去除噪声的影响,其实还可以减少光照阴影的影响。

                       

        图一 定位结果        图二 Gabor处理效果一    图三 Gabor处理效果二

    以右眼为例,分别对图二和图三进行投影,获取眼睛的纵坐标和横坐标,投影曲线如下:

    经过Gabor处理后的曲线更加的平滑,更容易判断波谷的位置。

    3 精确定位

    第二步中用到的积分投影,就是改进的投影方式,在初定为区域内投影的效果。本人采用的是最小邻域均值投影,大家可以从网上查到具体实现方法。

    当然,如果想定位准确,还需要做些细致的工作:比如我们可以先预判人脸的倾斜角度,这样就可以把Gabor变换的方向性用起来,这样变换后的人脸,投影曲线更加平滑,容易判断眼睛位置。具体细节太多,在此不一一赘述。

    4 定位效果

    在此,感谢那些在工作中给我提过意见,开会时给我提过更高要求的同事们,让我不断去改进和完善,不积跬步,无以至千里!

  • 相关阅读:
    C++学习之:括号匹配与栈的使用
    mooc网站以及学习资料收集
    android 获取字符串的方法
    androidStudio中如何加载字体资源?
    BluetoothGatt API
    Android 反编译工具简介
    BluetoothAdapter.LeScanCallback 参考文档
    openCV1
    Android客户端向服务器端发送数据的流程(1)
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/ImageVision/p/2396534.html
Copyright © 2011-2022 走看看