IOS中的人脸检测

过去两天生病使我无法上班。 因此,我决定在iOS上使用OpenCV,最终完成了这个项目,我想与大家分享🙂

这个想法是使用基于Haar特征的级联分类器,该分类器在OpenCV中实现并用于人脸检测。 没什么新鲜的,我已经将各个部分放在一起并获得了以下结果。

在本文中,您可以找到使此工作正常进行的所有步骤。 我还提供了指向每个步骤使用的源的链接。


该项目的主要步骤:

  1. 导入OpenCV库并将其配置为xcode项目。
  2. 建立一个相机帧提取器,以获取每次可用的帧。
  3. 应用detectMultiScale来检测面部并显示结果。

  1. 下载最新版本的OpenCV。 你可以在这里找到它, 然后解压缩。
  2. 创建一个新的xcode项目。
  3. 拖放opencv2.framework文件 在项目内部(您可以创建libs文件夹并将文件拖放到内部)。

4.转到链接的框架和库 ,并确保已链接OpenCV。 如果没有,请按(+)->添加其他…->添加。 您还需要添加如下所示的库。

5.转到构建设置->框架搜索路径 ,并确保opencv2.framework的路径正确。 例如$(PROJECT_DIR)/ face_detection / libs

6.创建新的组文件夹 )并将其命名为class

7.内部课程 文件夹执行: 文件 -> 新建 -> 文件 …-> 可口可乐类
-> 名称OpencvWrapper子类NSObject语言Objective-C
-> 下一步

8.将OpencvWrapper.m重命名为OpencvWrapper.mm

9.按“ Create Bridging Header ”,将自动创建Opencvproject-Bridging-Header.h

10.添加到Opencvproject-Bridging-Header.h


现在,我们将在O penCV中使用基于Haar特征的级联分类 来检测人脸。 (多么激动人心!)

  1. 创建新的组(文件夹)并将其称为res
  2. 将以下文件拖放到res中:
    一种。 Haarcascade_eye.xml。
    b。 Haarcascade_frontalface_default.xml。

现在,项目结构应与此类似:

让我们添加缺少的部分并运行项目:

  1. OpencvWrapper.h:

您可以在此存储库中找到整个代码。 本文的目的是一种算法的快速实现,而不是对其进行详细说明。

基于Haar特征的级联分类器不是最新的算法,但可以使用
无论如何,请继续关注,因为还有更多高级主题在进行。