关于CoreImage人脸检测
来源:互联网 发布:照片合成软件 编辑:程序博客网 时间:2024/06/07 02:19
关于系统人脸检测,之前我用opencv,opencv太大了,一个framework就一百到二百M,本来项目的ipa包10来兆,用上opencv倒好一下30多兆了。然后就研究了一下系统的CoreImage。
首先从摄像头获取图像什么的不说了,你获取的图像是视频流,也就是一秒多少帧。我用的是一秒5帧。
self.timer = [NSTimerscheduledTimerWithTimeInterval:0.20ftarget:selfselector:@selector(addfaceFeature)userInfo:nilrepeats:YES];
下面是人脸检测具体的方法,我就直接把我项目里的方法赋值粘贴了。
// 人脸检测
- (void)addfaceFeature {
// 初始化上下文
CIContext *context = [CIContextcontextWithOptions:nil];
// 把UIimage类型的图片转化为CIImage类型
CIImage* ciimage = [CIImageimageWithCGImage:self.getImage.CGImage];
/**
* CIDetectorTypeFace识别的类型 CIDetectorAccuracyLow识别的精度
*/
CIDetector *faceDetector = [CIDetectordetectorOfType:CIDetectorTypeFacecontext:contextoptions:@{CIDetectorTracking:@YES, CIDetectorAccuracy: CIDetectorAccuracyLow}]; //
/**
* options里可以是CIDetectorEyeBlink、CIDetectorSmile
*/
NSArray *features = [faceDetectorfeaturesInImage:ciimage options:@{CIDetectorEyeBlink:@YES,CIDetectorSmile:@YES}];
// 在整个特征的数组里遍历
for (CIFaceFeature *faceFeaturein features){
// 如果有嘴、右眼和左眼
if(faceFeature.hasMouthPosition && faceFeature.hasRightEyePosition && faceFeature.hasLeftEyePosition) {
[self.viewaddSubview:self.eyeBlinkLabel];
#pragma mark - 闭眼三次成功然后popViewControllerAnimated
// 如果右眼和左眼闭着
if (faceFeature.rightEyeClosed && faceFeature.leftEyeClosed) {
// 这里我加了个布尔值因为addfaceFeature方法是几毫秒执行一次的,不加bool会闭眼一次稍微长一点儿就会popViewControllerAnimated了
if (self.isEyeBlink ==NO) {
self.eyeBlinkNumber ++;
self.eyeBlinkLabel.text = [NSStringstringWithFormat:@"请第%ld次眨眼",(long)self.eyeBlinkNumber+1];
if (self.eyeBlinkNumber >2) {
[self.delegatefaceDetectionResult:@"Success"andImage:self.uploadImage];
[self.navigationControllerpopViewControllerAnimated:YES];
}
}
self.isEyeBlink =YES;
} else {
self.isEyeBlink =NO;
self.number ++;
if (self.number ==5) {
self.uploadImage =self.getImage;
self.imgView.image =self.uploadImage;
[self.viewaddSubview:self.imgView];
}
}
}
}
if (features.count <1) { //如果没有特征
[self.eyeBlinkLabelremoveFromSuperview];
}
}
就这样了,这是根据我的工程写的,工程和工程肯定是不一样的,希望可以有你用到的代码。
- 关于CoreImage人脸检测
- iOS CoreImage进行人脸检测
- CoreImage滤镜和人脸检测(含Demo)
- iOS5.1CoreImage 人脸识别 Demo
- 使用CoreImage进行人脸识别
- 使用CoreImage进行人脸识别
- iOS 原生CoreImage人脸识别
- 用CoreImage实现人脸识别_iOS
- IOS CoreImage实现人脸识别
- CoreImage
- CoreImage
- CoreImage
- IOS_使用coreImage实现图片中的人脸识别
- iOS之使用CoreImage进行人脸识别
- iOS黑科技之(CoreImage)静态人脸识别(一)
- 关于ADABOOST人脸检测
- 关于QT+OPENCV 实现人脸检测
- 关于人脸检测方法的比较
- Android studio ,新建项目相关介绍
- 35-001-4 Struts中的表单数据输入的验证问题
- the environment variable java_home does not point to a valid JVM installation.
- acm 3 1006 数塔
- java中克隆研究
- 关于CoreImage人脸检测
- Test
- Android获取内存卡MP3信息
- 2014 amazon 在线 面试题目 爬山问题:打印出从A点到B点的距离
- ViewPager+Animation简单示例
- Cookie
- LeetCode 281. Zigzag Iterator
- 有感
- 《数学是什么》书评