我有一个使用AVFoundation并跟踪脸部,眼睛和嘴巴位置的应用程序。我使用CIFaceFeature检测这些并在屏幕上标记它们。
是否有一种使用框架检测眨眼的简单方法?
答案 0 :(得分:1)
对于iOS 7,是的,现在你可以使用CoreImage。
以下是iOS 7 Beta 2中的API差异:
CoreImage
CIDetector.h
Added CIDetectorEyeBlink
Added CIDetectorSmile
在iOS 7之前:
不,暂时没有办法使用iOS框架(AVFoundation或CoreImage)。
你可以看一下OpenCV ......但它更像是一个研究性话题,不能保证在不同情况下都能很好地运作:
首先,您需要构建一个闭眼/开放分类器,afaik,OpenCV中没有内置眼睛眨眼分类器,因此您需要收集足够的“近距离”和“打开”样本,并训练二进制分类器。 (我建议使用主成分分析+支持向量机。两者都可以在OpenCV中使用)
然后在iOS中,使用CoreImage检测双眼的位置。并在眼睛中心周围切出方形斑块图像。应根据检测到的面边界矩形对贴片的大小进行标准化。
然后你需要将UIImage / CIImage转换为OpenCV IplImage或CvMat格式,并将它们输入OpenCV分类器以确定眼睛是打开还是关闭。
最后,根据眼睛睁开和关闭的顺序确定是否有眨眼。
(你还需要检查处理帧速率是否能够选择一个眨眼动作:假设眨眼发生在0.5帧之内......那么你永远不会发现它......)
这是一个难题......否则Apple会把它们包含在框架中。