iOS平台下人脸识别的实现

电子科技大学 格拉斯哥学院 林浩阳 2017200605028

1.背景介绍

2.Ada Boost人脸检测算法

3.改进的人脸识别算法

4.系统设计与实现

5.前景展望

1.背景介绍
在上学期的新生研讨课上,我听到曾兵院长向我们介绍了并讲述了图像与视频处理的相关应用,让我对“图像处理”这一概念有了更深入的理解。21世纪是一个充满信息的时代,图像作为人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段。首先数字图像处理技术可以帮助人们更客观、准确地认识世界,人的视觉系统可以帮助人类从外界获取大多数的信息,而图像、图形又是所有视觉信息的载体,尽管人眼的鉴别力很高,可以识别上千种颜色,但很多情况下,图像对于人眼来说是模糊的甚至是不可见的,通过图象增强技术,可以使模糊甚至不可见的图像变得清晰明亮。因此,随着科技的发展,出现了一些前沿的图像处理技术,按照颜色和灰度的多少可以将图像分为二值图像、灰度图像、索引图像和真彩色RGB图像四种基本类型。

就我本身而言,我是一位忠诚的果粉,十分敬仰乔布斯,并一直视他为偶像。所以,我想借苹果去年以及今年给我们带来的IPhone X和IPhone Xs谈一下人脸识别技术的应用以及其在未来的一些发展与我的一些展望。

2.Ada Boost人脸检测算法
AdaBoost 算法的基本思想是将多个弱分类器集成成为一个强分类器。最后的强分类器的判决结果是所有弱分类器的判决结果的加权和。
级联分类器是由多层强分类器级联构成的。其每一层都是由AdaBoost 算法训练得到的强分类器。从第一层开始,若分类得到正确结果则触发第二层分类器的分类,以此类推,则疑似人脸的窗口依次通过各层分类器,就确认为人脸。反之,如果被检测的窗口在某一层被判断为非人脸,就停止对该窗口的检测,进行下一个窗口的检测。级联结构的分类器在设计上通常采用逐级复杂的原则实现的。最初的几层分类器比较简单,一层由一个到几个分类器组成。这样设计是为了快速排除明显不是人脸的子窗口,减少后续的检测目标,从而提高检测速度。为了实现对于大小不同的目标区域的搜索,将分类器设计为可以进行尺寸改变。这就能够避免直接对图像进行缩放,减小了计算工作量,提高了检测速度。

3.改进的人脸识别算法
隐马尔科夫模型(Hidden Markov Model,HMM)是从语音识别技术中发展出的一种统计技术。它提供了一种基于训练数据提供的概率而自动构造的识别系统技术,包含两个相关过程:隐含不可见的有限状态马尔科夫链,具有初始状态概率分布和状态转移概率矩阵;一组与概率有关的状态概率密度函数。设π 为初始状态概率矢量,A为状态转移概率矩阵,B 观察值概率矩阵,HMM解决的三个基本问题包括:
(1)给定观察序列O 和模型λ,计算P(O|λ) 。
(2)给定观察序列O 和模型λ 。如何选择一个对应状态序列X ,使得X 能够合理地解释观察序列O 。
(3)如何调整模型参数λ = (π,A,B),使得P(O|λ) 的值。
在选择正面人脸特征时可将脸部分为五个区域:前额、眼睛、鼻子、嘴巴、下巴并给每个区域分配一个HMM状态。如下图所示:

4.系统设计与实现
4.1 iOS 程序运行原理
进行iOS编程主要采用两种重要的范例:面向对象编程和模型—视图—控制器(MVC)设计模式。iOS 编程主要采用Objective-c 作为编程语言。Objective-c 是一种面向对象编程语言,伪多重继承(通过调用转发协议)是Objective-c的一个重要特性,这可以使得子类能从多个父类继承行为和数据类型。MVC 模型将屏幕对象的外观和行为分开。屏幕上的视图没有内在含义。视图控制器充当媒介,将用户交互(如按钮单击)与应用程序中的目标方法(模型)连接在一起。应用程序提供和保存有意义的数据,并通过生成某种有用的结果来相应交互。
4.2 系统结构设计
系统设计主要包括四个部分。分别是人脸图像采集,人脸图像管理,参数设置,帮助四个部分。
人脸图像采集:主要是通过摄像头进行实时人脸检测,并能对检测到的人脸进行识别或将其保存到指定的人脸库中。
人脸图像管理:主要对采集到的人脸图像进行管理。包括添加、删除人脸库,删除人脸库的图像,对人脸库中的图像进行训练等功能。
参数设置:对HMM中涉及到的一些初始参数进行设定。
帮助:提供帮助信息,指导用户如何使用本系统。
4.3 样本展示

5. 背景展望
人脸识别技术应用十分广泛,将其与便携的智能移动设备相结合,可以将其作为一种简洁方便的认证方式,方便用户使用。而我也坚信,其准确性与实用性也会随着算法与技术的提高而不断加强,在不久的将来让脸真正成为一张万能的通行证。

附:参考资料
1.https://wenku.baidu.com/view/1885bf945ff7ba0d4a7302768e9951e79b8969c0.html
2.https://baike.baidu.com/item/图像处理/294902?fr=aladdin
3.https://www.apple.com/cn/iphone-xs/face-id/
4.李闯,丁晓青,吴佑寿.一种改建的AdaBoost 算法—AD Ada-Boost[J].计算机学报,2007,30(1):103-109.
5.刘小军,王东峰,张丽飞,等.一种基于奇异值分解和隐马可夫模型的人脸识别方法[J].计算机学报,2003,26(3):340-344.

iOS平台下人脸识别的实现相关推荐

  1. 基于百度AI开放平台的人脸识别

    文章目录 前言 人脸识别流程图 一.注册账号 二.创建应用 三.下载SDK文件 四.创建工具类 五.创建用于人脸识别的网页 1.引入css文件 2.创建注册按钮 3.创建模态框,用于捕捉人脸 4.引入 ...

  2. 基于翔云OCR云平台的人脸识别(1)

    基于翔云OCR云平台的人脸识别 本节通过翔云OCR云平台来实现人脸识别.调用人脸对比API,通过https post方式向云服务器提交两张需要对比的图片Base64流以及其他信息,云服务器处理后返回判 ...

  3. C语言实现基于翔云平台的人脸识别demo1(linux)

    C语言实现基于翔云平台的人脸识别demo1(linux) 实现的目标 安装openssl第三方的库 安装libcurl第三方的库 购买使用翔云平台人脸识别的次数 libcurl的使用 **参考以下博文 ...

  4. C语言实现基于翔云平台的人脸识别demo2(树莓派)

    C语言实现基于翔云平台的人脸识别demo2(树莓派3B) 实现目标 树莓派安装mjpg-streamer 在树莓派下依次执行以下指令 修改start.sh文件(用来开启摄像头进行监控) A:树莓派摄像 ...

  5. 国标GB28181(EasyGBS)/RTSP/HIKSDK/EHOME协议视频智能分析平台EasyCVR人脸识别智能分析功能拓展

    计算机视觉技术作为人工智能(AI)技术发展的重要应用之一已经在我们的日常生活中屡见不鲜,AI人脸识别智能分析是基于人的脸部特征信息进行身份识别的一种生物识别技术,通常采用摄像机或摄像头采集含有人脸的图 ...

  6. GB28181/RTSP/Onvif/HikSDK/Ehome协议视频共享平台EasyCVR人脸识别系统助力打造智慧安检系统

    一.项目需求 随着经济及交通的发展,海关和陆路边境口岸之间每天都有大量的人和货物在此周转,随之而来的安检工作也越来越重要,检查藏匿的违禁品和危险品一直是相关安全部门的重要工作.一套人行.物检等全方位的 ...

  7. 2020最新版Android一步一步教轻松通过ArcSoft虹软平台实现人脸识别功能,保姆级别教程?

    Android实现人脸识别功能 第一步:注册并认证成为开发者. 第二步:创建应用 1.认证成功后,我们就可以开始创建应用. 2,填写信息 3.点击添加SDK 4.选择人脸识别 5.选择情况,如图所示. ...

  8. 基于翔云OCR云平台的人脸识别(2)

    基于翔云OCR云平台的人脸识别(2) 项目思路 raspistill命令的相关参数说明 -v:调试信息查看 -w:图像宽度 -h:图像高度 -rot:图像旋转角度,只支持 0.90.180.270 度 ...

  9. 百度AI开放平台集成人脸识别,离线采集有动作活体版本sdk

    前言 Android项目Android studio环境: 1.工程build.gradle版本号:3.2.1 2.app目录下的build.gradle配置:compileSdkVersion 28 ...

最新文章

  1. AngularJS 学习笔记 - $http.post 跟后台交互
  2. redis安装,主从集群
  3. [日常] DNS的迭代查询过程
  4. 欢乐纪中A组赛【2019.8.10】
  5. Django module学习之模板
  6. 12种求职方式成功率排行榜
  7. 关于中部城市人才外流问题的思考
  8. 自供电面包板----面包板伴侣项目介绍
  9. MFC Tab控件的使用方法
  10. P2690 [USACO04NOV]Apple Catching G 题解
  11. 面向对象以及三大特性
  12. 什么是期货/股票分仓软件?
  13. 如何redis关闭保护模式,取消密码登录
  14. php kingcms 模型调用,KingCMS PHP版安装使用教程(多图)
  15. 第 1-1 课:为什么要掌握 Flutter?
  16. C语言易错点汇总(二)
  17. activiti审批历史查询
  18. 迈德威视工业相机SDK取图问题
  19. java-net-php-python-jspm学生评奖评优管理系计算机毕业设计程序
  20. Linux下dota2启动失败解决办法

热门文章

  1. Dijkstra求单源最短路
  2. html中sprite标签,网页切图 CSS Sprites(CSS精灵)介绍和图文使用教程
  3. Coresight - Devicetree/ACPI简介
  4. 手把手带你学python自动化测试(六)——多层窗口定位
  5. 可持续化集成(九)之Jenkins项目构建细节
  6. 无需露脸不要才艺,方法分享给大家,剪辑郭德纲相声挣了436
  7. Qt5.9以上 for Android开发环境搭建
  8. 多功能语音播报器使用手册!
  9. CentOS 7 装载本地yum
  10. Java 线程池原理及四种常用的线程池使用