您的位置:首页 > 移动开发 > IOS开发

ios 人脸识别有关资源

2014-01-15 10:26 411 查看
在网上看到这篇文章,感觉以后可能会用到,弄到自己博客里以备不时之需。

原文地址:http://blog.csdn.net/ch_soft/article/details/8204758

看了一段视频:TAT Augmented ID,结合了人脸识别、追踪以及Augmented Reality,Amazing!相关介绍点击这里。遗憾的是这还只是一个概念,并没有具体实现,不过是时间问题吧我想。

所以也想来凑个热闹,当然不用搞得这么复杂,基本的需求是在iOS设备上实时的识别人脸,最好能显示名字等信息什么的,注意不是检测。

本人刚接触iOS ,下面就踏上了我漫长的探索之路。

1)效果差不多像这样, 然而在SkyBiometry的官网上只能看见这些效果图,点击查看API就出错了,不知为何。

2)网上一搜全是关于iOS5提供人脸监测API的文章,还有通过人脸来实现锁屏什么的,兴奋激动啊。马上先研究sample:squareCam。研究了半天发现并不是那么一回事。iOS5加入了coreImage,在squareCam中主要运用了两个类:CIDetector,CIFaceFeature。可以用来检测人脸,左右眼以及嘴巴的位置。Quartz和UIKit的坐标系时不同的,Quartz是以左下角为坐标原点的,而UIKit的原点在左上角,所以要坐标系统要经过变换。检测的效果很不错哦,然而detect并不是recognize,看来还得结合OpenCV等开源库来用。

3)openCV对于我这种菜鸟就太有难度了。home page在此

      在摄像头上实现人脸识别,最简单的方法就是运用PCA(Eigenfaces or Principal Component Analysis)method,这里提供了参考。

      关于使用PCA的优缺点这里给出了介绍。

4)呵呵,个人比较懒,先不急着做,再看看有没有更省力、高效的方法。下面就看到了大牛做的东西了,猛击这里Facel,不过有点旧,09年的,开源哦亲。作者David
S. Bolme 和J.Ross Beveridge来自Colorado State University. Facel是一个基于OpenCV pathon接口实现的视频捕捉、人脸标注、训练和识别一条龙的软件。

关于face recognition的一些其他参考:face recognition page:包含很多关于人脸识别的期刊、论文以及资源。

又发现一篇人脸识别核心代码

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 = (feature.leftEyePosition.y +
feature.rightEyePosition.y+feature.mouthPosition.y)/(3*image.size.height);

                

                double dist = sqrt(pow((feature.leftEyePosition.x -
feature.rightEyePosition.x),2)+pow((feature.leftEyePosition.y -
feature.rightEyePosition.y),2))/image.size.width;

                

                yPosition += dist;

                CGSize size = [[CCDirector sharedDirector] winSize];

                pumpkin.opacity = 255;

                pumpkin.scale = 5*(size.width*dist)/256.0;

                

                //int randomPumpkin = ((arc4random() % 10) + 5);

                [pumpkin setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache]spriteFrameByName:[NSString stringWithFormat:@"pumpkin%d.png", pumpkin_count + 4]]];

                CCMoveTo *moveAction = [CCMoveTo actionWithDuration:0 position:ccp((size.width *
(xPosition)), (size.height * ((yPosition))))];

                [pumpkin runAction:moveAction];

            }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: