眼睛定位

转自:http://www.cnblogs.com/ImageVision/archive/2012/03/14/2396534.html

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

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

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

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

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

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

(5)检测二值化区域:

2 噪声去除

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

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

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

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

3 精确定位

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

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

4 定位效果

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

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab提供了多种用于人脸和眼睛检测的函数和工具包,其中比较常用的是: 1. 使用matlab自带的vision.CascadeObjectDetector对象进行人脸和眼睛检测,示例代码如下: ```matlab % 读入图像 I = imread('image.jpg'); % 创建人脸和眼睛检测器对象 faceDetector = vision.CascadeObjectDetector(); eyeDetector = vision.CascadeObjectDetector('EyePairSmall'); % 进行人脸和眼睛检测 bbox_face = step(faceDetector, I); bbox_eye = step(eyeDetector, I); % 在图像中标记人脸和眼睛位置 IFaces = insertObjectAnnotation(I, 'rectangle', bbox_face, 'Face'); IEyes = insertObjectAnnotation(I, 'rectangle', bbox_eye, 'Eyes'); % 显示标记后的图像 figure, imshow(IFaces), title('Detected faces'); figure, imshow(IEyes), title('Detected eyes'); ``` 2. 使用OpenCV库中的人脸和眼睛检测算法,通过mex文件将其集成到Matlab中,示例代码如下: ```matlab % 读入图像 I = imread('image.jpg'); % 转换为灰度图像 Igray = rgb2gray(I); % 调用mex文件进行人脸和眼睛检测 [bbox_face, bbox_eye] = detect_face_eye(Igray); % 在图像中标记人脸和眼睛位置 IFaces = insertObjectAnnotation(I, 'rectangle', bbox_face, 'Face'); IEyes = insertObjectAnnotation(I, 'rectangle', bbox_eye, 'Eyes'); % 显示标记后的图像 figure, imshow(IFaces), title('Detected faces'); figure, imshow(IEyes), title('Detected eyes'); ``` 需要注意的是,第二种方法需要先安装OpenCV库,并将对应的mex文件编译生成。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值