iOS人脸识别(CoreImage)

1、从初始UIImage获取一个CIImage对象。

2、创建一个用于分析对象的CIContext。

3、通过type和options参数创建一个CIDetector实例。

type参数指定了要识别的特征类型。options参数可以设置识别特征的精确度,低精确度速度快,高精确度更准确。

4、创建一个图像数组,里面放对象的实例。

5、通过imageByCroppingToRect:方法结合原始图像以及在图像中找到的最后一个实例对象中指定的边界创建一个CIImage。这些边界表示人脸所在的CGRect。

6、通过CIImage创建一个UIImage,并在ImageView中显示。

//self.mainImageView.image选取的图片
- (IBAction)findFace:(id)sender
{
    UIImage * image = self.mainImageView.image;
    CIImage * coreImage = [[CIImage alloc] initWithImage:image];
    CIContext * context = [CIContext contextWithOptions:nil];
    CIDetector * detector = [CIDetector detectorOfType:@"CIDetectorTypeFace"context:context options:[NSDictionary dictionaryWithObjectsAndKeys:@"CIDetectorAccuracyHigh", @"CIDetectorAccuracy", nil]];
    NSArray * features = [detector featuresInImage:coreImage];

    if ([features count] >0)
    {
        CIImage * faceImage = [coreImage imageByCroppingToRect:[[features lastObject] bounds]];
        UIImage * face = [UIImage imageWithCGImage:[context createCGImage:faceImage fromRect:faceImage.extent]];
        self.faceImageView.image = face;

        [self.findFaceButton setTitle:[NSString stringWithFormat:@"%lu Face(s) Found", (unsigned long)[features count]] forState:UIControlStateNormal];
        self.findFaceButton.enabled = NO;
        self.findFaceButton.alpha = 0.6;
    }
    else
    {
        [self.findFaceButton setTitle:@"No Faces Found"forState:UIControlStateNormal];
        self.findFaceButton.enabled = NO;
        self.findFaceButton.alpha = 0.6;
    }
}

时间: 2024-08-29 15:10:48

iOS人脸识别(CoreImage)的相关文章

iOS人脸识别(检测)

iOS的CoreImage已经内建了人脸检测的接口,检测准确率一般,尤其是侧脸,基本上就检测不到.不过跟其他同类产品比较,也还算是不相上下吧.用起来很简单: CIImage* image = [CIImage imageWithCGImage:aImage.CGImage]; NSDictionary *opts = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]; CIDe

iOS人脸识别核心代码(备用)

for (int i = 0; i < 1; i++) { //< [arr count]; i++) { CIFaceFeature *feature = [arr objectAtIndex:i]; double xPosition = (feature.leftEyePosition.x + feature.rightEyePosition.x+feature.mouthPosition.x)/(3*image.size.width) ; double yPosition = (feat

人脸识别调研总结

1.系统的人脸识别 CoreImage里面的CIFaceFeature 可以实现图片的人脸检测,以及人脸的眼睛,嘴巴的位置定位. 可以检测眨眼和微笑 实现起来比较简单. 精度还算比较好 实时视频预览,拍照 1)AVCapture + CIFaceFeature 在 AVCaptureVideoDataOutputSampleBufferDelegate 协议的 - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSamp

利用CoreImage进行人脸识别--iOS

来源:http://code4app.com/codesample/5195a56f6803fa4273000000 Licence:Zlib 作者:Chili小灰灰 http://code4app.com/member/4ffd0cec6803fa407a000000 介绍: 利用CoreImage进行人脸识别,可以判断人脸整体位置,以及两只眼睛和嘴巴的大概位置.并根据人脸范围,对图片进行剪切. 小编注:感谢作者@Chili小灰灰 分享代码于Code4App. 效果图: <ignore_js_

利用CoreImage进行人脸识别

地址: http://code4app.com/ios/%E5%88%A9%E7%94%A8CoreImage%E8%BF%9B%E8%A1%8C%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB/5195a56f6803fa4273000000 介绍: 利用CoreImage进行人脸识别,可以判断人脸整体位置,以及两只眼睛和嘴巴的大概位置.并根据人脸范围,对图片进行剪切. 小编注:感谢作者@Chili小灰灰 分享代码于Code4App. 测试环境: [Code4App]编

结合活体检测,人脸识别在Android、IOS、服务器中的应用

随着深度学习方法的应用,人工智能的发展,人脸识别技术的识别率已经得到质的提升,通过反复开发试验,目前我司的人脸识别技术率已经达到99%.人脸识别技术与其他生物特征识别技术相吃比,在实际应用中具有天然独到的优势:通过摄像头直接获取,在非接触的方式完成识别过程.通过人脸识别与证件识别的比对,目前我司的人脸识别技术已应用在金融.教育.景区.旅运.社保等领域. 人脸识别技术简介 人脸识别技术主要分为两部分: 第一部为前端人脸活体检测技术,主要支持android.ios平台,在前端通过眨眼.张嘴.摇头.点

IOS 通过摄像头读取每一帧的图片,并且做识别做人脸识别(swift)

最近帮别人做一个项目,主要是使用摄像头做人脸识别 github地址:https://github.com/qugang/AVCaptureVideoTemplate 要使用IOS的摄像头,需要使用AVFoundation 库,库里面的东西我就不介绍. 启动摄像头需要使用AVCaptureSession 类. 然后得到摄像头传输的每一帧数据,需要使用AVCaptureVideoDataOutputSampleBufferDelegate 委托. 首先在viewDidLoad 里添加找摄像头设备的代

支持Android、iOS系统的人脸识别技术

随着深度学习方法的应用,支持Android.iOS系统的人脸识别技术的识别率已经得到质的提升,目前我司的支持Android.iOS系统的人脸识别技术率已经达到99%.支持Android.iOS系统的人脸识别技术与其他生物特征识别技术相比,在实际应用中具有天然独到的优势:通过摄像头直接获取,可以非接触的方式完成识别过程,方便快捷.目前我司的支持Android.iOS系统的人脸识别技术已应用在金融.教育.景区.旅运.社保等领域. 支持Android.iOS系统的人脸识别技术主要分为两部分: 第一部为

uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件

插件亮点 1 支持安卓平板(横竖屏均可),苹果的iPad.2 颜色图片均可更换. 特别提醒 此插件包含 android 端和 iOS 端,考虑到有些同学只做其中一个端的 app,特意分为 2 个插件,减小安装包体积.android 端请点击这里.iOS 端请点击这里. 1.前言 最近在使用 uniapp 开发项目,有刷脸实名认证的需求,最终使用百度人脸识别实现了需求.自己做了个 APP 原生插件,给大家介绍下用法.本插件主要功能是通过动作检测活体,采集人脸返回.其他功能需要自主实现,如刷脸登录,