iOS 人脸检测因人脸不完整而失败

Posted

技术标签:

【中文标题】iOS 人脸检测因人脸不完整而失败【英文标题】:iOS face detection failed with incompletely face 【发布时间】:2015-03-29 12:25:36 【问题描述】:

我正在使用 Core Image 进行这样的人脸检测:

 CIImage* image = [CIImage imageWithCGImage:aImage.CGImage];

//create Facedetector
NSDictionary  *opts = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh
                                                  forKey:CIDetectorAccuracy];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
                                          context:nil
                                          options:opts];

//Pull out the features of the face and loop through them
NSArray* features = [detector featuresInImage:image];

但我发现当我使用一张完全人脸的图片时,它可以正确检测到人脸,但是当我使用一张不完全人脸时,它就失败了,就像下面的截图:

我的代码有什么问题,是不是 CIDetector 只适用于完整的脸?

[更新] here是我的代码,我只能检测到左边

【问题讨论】:

使用 featuresInImage:options: 而不是 featuresInImage: 与此处建议的方向信息developer.apple.com/library/prerelease/ios/documentation/… 您的意思是使用示例图像无法检测到人脸吗?您使用该图像检测到多少张面孔? @gabbler 其实图片里只有一张脸,快捷方式有两张图片:) 那么,您帖子中的图片包含两张脸,但只检测到一张脸? @gabbler 是的,只检测到左侧图像 【参考方案1】:

有时如果不是全脸就无法检测到,我认为您对此无能为力。

但是你可以给图片加一个白色的边框然后就可以检测到了,看下图,或者你可以深入openCV,看看openCV库能不能检测到。你帖子里的图片有两张脸,如果你下载下来试一试就会发现,主要是因为它的右脸周围有白色边框,颜色与背景颜色相同。

我所做的是将 imageView 添加为容器视图的子视图,该框架比 imageView 的框架略大。然后我做了容器视图的快照。图片反映了快照图像的检测结果。

【讨论】:

也就是说无法直接检测到正确的图片?

以上是关于iOS 人脸检测因人脸不完整而失败的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 人脸检测 ROI 断言失败

Clarifai 人脸检测模型 - 400 错误请求错误

iOS 视角下人脸检测和人脸跟踪有啥区别

人脸识别中活体检测的重要性是啥?

尝试检测人脸时断言失败 215 错误

在实时人脸检测 IOS 中检测弱光条件和人脸旋转角度 [关闭]