2

我有一个使用 AVFoundation 并跟踪面部、眼睛和嘴巴位置的应用程序。我使用 CIFaceFeature 来检测这些并在屏幕上标记它们。

有没有一种使用框架检测眨眼的简单方法?

4

1 回答 1

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 早就将它们包含在框架中了。

于 2013-06-10T00:22:40.960 回答