【问题标题】:iOS face detection failed with incompletely faceiOS 人脸检测因人脸不完整而失败
【发布时间】: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 是的,只检测到左侧图像

标签: ios objective-c face-detection core-image face-recognition


【解决方案1】:

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

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

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

【讨论】:

  • 也就是说无法直接检测到正确的图片?
猜你喜欢
  • 2022-01-13
  • 2019-11-18
  • 2013-07-16
  • 2019-02-27
  • 1970-01-01
  • 2013-09-24
  • 2016-06-02
  • 2013-04-14
  • 2012-02-25
相关资源
最近更新 更多