2021-08-28 (十二)在 iOS 中实现人脸识别 —— 实现人脸比对 (十二)在 iOS 中实现人脸识别 —— 实现人脸比对 概览完成上一节的工作,数据库中已保存一定数量的人脸信息。本节介绍如何计算两个特征向量之间的距离,实现人脸比对功能。总体思路与当前进度要开发的是一个 1:N 的人脸识别应用,实现的人脸识别的总体思路是0、完成基础性工作,引入主要的依赖包1、通过 iOS 内置的摄像头捕获画面2、将每一帧的图像传递给 OpenCV 做缩放和增强处理3、处理后的图像交给 Vision 检测人脸4、使用 Dlib 提取人脸的特征值,获得特征向量5、建立用于保存人脸信息的数据库6、从摄像头获取图像提取特征向量,逐一与数据库中的特征向量计算距离7、若距离足够接近,输出本次识别结果,否则输出未识别本节进度是:6、从摄像头获取图像提取特征向量,逐一与数据库中的特征向量计算距离7、若距离足够接近,输出本次识别结果,否则输出未识别计算特征向量距离在 FaceRecognizer.h 文件中对外增加一个方法,calcDistance 用于计算两个特征向量的距离。传入的两个参数 f1,f2 即特征向量,返回 double 类型的距离结果。FaceRecognizer.h 文件@interface FaceRecogniz... 2021年08月28日 4,381 阅读 0 评论
2021-08-28 (十一)在 iOS 中实现人脸识别 —— 人脸特征向量保存至数据库 (十一)在 iOS 中实现人脸识别 —— 人脸特征向量保存至数据库 概览在注册人脸到数据库前,我们应该验证图片是否包含人脸,保证人脸特征提取可以正常提取,否则拒绝存入数据库。应该设置机制向用户反馈所选人脸图片是否有效。接下来修改新增用户界面,增加一个“计算人脸特征”的按钮。点击此按钮后,若图片有效,显示计算结果并绘制在视图中;若图片无效,提示错误。总体思路与当前进度要开发的是一个 1:N 的人脸识别应用,实现的人脸识别的总体思路是0、完成基础性工作,引入主要的依赖包1、通过 iOS 内置的摄像头捕获画面2、将每一帧的图像传递给 OpenCV 做缩放和增强处理3、处理后的图像交给 Vision 检测人脸4、使用 Dlib 提取人脸的特征值,获得特征向量5、建立用于保存人脸信息的数据库6、从摄像头获取图像提取特征向量,逐一与数据库中的特征向量计算距离7、若距离足够接近,输出本次识别结果,否则输出未识别本节进度是:5、建立用于保存人脸信息的数据库创建检测人脸结果视图将之前用于绘制人脸识别结果(绘制红框和绿点)的视图整合成一个独立视图:DetectResultView。FaceRecognizeView.swift 文件struct FaceRecogn... 2021年08月28日 2,323 阅读 0 评论
2021-08-26 (十)在 iOS 中实现人脸识别 —— 初始化数据库和用户库界面 (十)在 iOS 中实现人脸识别 —— 初始化数据库和用户库界面 概览完成了上一节的工作,我们已经可以从人脸图像中获取人脸特征向量。本节关注的点是,建立数据库,保存人员基本信息和特征向量用于人脸识别。我们使用 Core Data 来持久化数据,关于 Core Data 的知识可以看参考我博客中的相关文章:Core Data 相关文章总体思路与当前进度要开发的是一个 1:N 的人脸识别应用,实现的人脸识别的总体思路是0、完成基础性工作,引入主要的依赖包1、通过 iOS 内置的摄像头捕获画面2、将每一帧的图像传递给 OpenCV 做缩放和增强处理3、处理后的图像交给 Vision 检测人脸4、使用 Dlib 提取人脸的特征值,获得特征向量5、建立用于保存人脸信息的数据库6、从摄像头获取图像提取特征向量,逐一与数据库中的特征向量计算距离7、若距离足够接近,输出本次识别结果,否则输出未识别本节进度是:5、建立用于保存人脸信息的数据库Core Data 初始化设置由于我们在工程创建之初勾选了 Use Core Data,Xcode 自动为我们添加了相关的文件和代码。首先打开 Face_Recognize.xcdatamodeld,把自动生成的 Item ... 2021年08月26日 1,276 阅读 0 评论
2021-08-20 (二)在 iOS 中实现人脸识别 —— 编译和引入 Dlib (二)在 iOS 中实现人脸识别 —— 编译和引入 Dlib 概览Dlib 不能像 OpenCV 那样方便的通过 CocoaPods 引入到项目里,我们需要花点时间手动编译静态库。总体思路与当前进度要开发的是一个 1:N 的人脸识别应用,实现的人脸识别的总体思路是0、完成基础性工作,引入主要的依赖包1、通过 iOS 内置的摄像头捕获画面2、将每一帧的图像传递给 OpenCV 做缩放和增强处理3、处理后的图像交给 Vision 检测人脸4、使用 Dlib 提取人脸的特征值,获得特征向量5、建立用于保存人脸信息的数据库6、从摄像头获取图像提取特征向量,逐一与数据库中的特征向量计算距离7、若距离足够接近,输出本次识别结果,否则输出未识别本节进度是:0、完成基础性工作,引入主要的依赖包下载源代码并编译在你的 Mac 上找个地方存放框架,例如我的路径是:~/project/Framework,我们在这个文件夹把 Dlib 的源代码 clone 下来。mkdir Framework cd Framework git clone https://github.com/davisking/dlib.git切换到 dlib 目录,新建一个 build 目录,... 2021年08月20日 854 阅读 0 评论
2021-08-20 (一)在 iOS 中实现人脸识别 —— 初始化工程 (一)在 iOS 中实现人脸识别 —— 初始化工程 概览本系列文章全程记录在 iOS 中实现基于 Dlib 和 OpenCV 的人脸识别的开发过程。主要功能有录入人脸,实时人脸识别,显示识别结果。总体思路与当前进度要开发的是一个 1:N 的人脸识别应用,实现的人脸识别的总体思路是0、完成基础性工作,引入主要的依赖包1、通过 iOS 内置的摄像头捕获画面2、将每一帧的图像传递给 OpenCV 做缩放和增强处理3、处理后的图像交给 Vision 检测人脸4、使用 Dlib 提取人脸的特征值,获得特征向量5、建立用于保存人脸信息的数据库6、从摄像头获取图像提取特征向量,逐一与数据库中的特征向量计算距离7、若距离足够接近,输出本次识别结果,否则输出未识别本节进度是:0、完成基础性工作,引入主要的依赖包关于 DlibDlib 是一个用于现代的 C++ toolkit,包含了用于解决现实世界问题的机器学习算法和工具。它广泛应用于工业和学术,例如机器人,嵌入式设备,移动设备等。Dlib 是开源的,你可以用于开发任何软件,免费!关于 OpenCVOpenCV(Open Source Computer Vision Library)开源计算机视觉库... 2021年08月20日 1,031 阅读 0 评论