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 人脸检测因人脸不完整而失败的主要内容,如果未能解决你的问题,请参考以下文章