【问题标题】:Error doing face recognition with CIDetectorTypeFace使用 CIDetectorTypeFace 进行人脸识别时出错
【发布时间】:2015-12-02 18:36:48
【问题描述】:

我设置了一个 CIDetector,它在我尝试过的示例应用程序中运行良好。但在我当前的项目中,功能数组始终为空。

我使用 AVFoundation 创建了一个自定义相机。拍摄静止图像后,我需要检测人脸。

我错过了什么?您在第一次使用人脸检测时遇到的任何常见问题?

代码如下:

var ciImage = CIImage(CGImage: capturedImage!.CGImage)

var ciDetector = CIDetector(ofType: CIDetectorTypeFace, context: nil,

    options: [CIDetectorAccuracy: CIDetectorAccuracyHigh])

var feautures = ciDetector.featuresInImage(ciImage)

for feautures: CIFaceFeature in (feautures as! [CIFaceFeature]) {

    self.faceCount++
    print("face detected")

}

谢谢

【问题讨论】:

  • 问题在于方向。
  • 你能告诉我如何比较 2 Faces 吗?

标签: ios swift face-detection core-image


【解决方案1】:

错误是您对集合和迭代项(“功能”)使用相同的变量名称。此外,无需将类型转换括在括号中,也无需指定类型两次。

这是一个工作版本:

let ciImage = CIImage(CGImage: capturedImage!.CGImage)

let ciDetector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: [CIDetectorAccuracy: CIDetectorAccuracyHigh])

let features = ciDetector.featuresInImage(ciImage)

for face in features as! [CIFaceFeature] {

    self.faceCount++
    print("face detected")

}

【讨论】:

  • 感谢您的回答,但我仍然得到相同的结果。该代码在我下载的另一个示例应用程序中运行良好,但在我当前的应用程序中运行良好。所以代码很好,但我无法指出问题出在哪里。图像看起来很好,检测器应该可以工作,但没有。
  • 不客气。这确实很奇怪,因为代码有效(在 Playground 中测试)。不知道为什么它在您的项目中不起作用。如果我发现了什么,我会更新。
  • 是的,这真的让我陷入了困境。我似乎找不到问题,尤其是因为这是我第一次使用人脸检测。谢谢大佬。
猜你喜欢
  • 1970-01-01
  • 2016-07-14
  • 2021-07-27
  • 2014-04-15
  • 2021-03-12
  • 2014-01-20
  • 2014-05-04
  • 2012-11-01
  • 2012-12-10
相关资源
最近更新 更多