脸部辨识系统

求闻百科,共笔求闻

脸部辨识系统(英语:Facial recognition system),又称人脸识别。特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。

脸部辨识摄影机

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集人脸定位、人脸识别预处理身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。

人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。生物特征识别技术所研究的生物特征包括指纹手掌纹虹膜视网膜、声音(语音)、体形、个人习惯(例如敲击键盘的力度和频率、签字)等,相应的识别技术就有人脸识别、指纹识别掌纹识别虹膜识别视网膜识别语音识别(用语音识别可以进行身份识别,也可以进行语音内容的识别,只有前者属于生物特征识别技术)、体形识别键盘敲击识别签字识别等。

技术细节

一般来说,人脸识别系统包括图像摄取人脸定位图像预处理、以及人脸识别(身份确认或者身份查找)。系统输入一般是一张或者一系列含有未确定身份的人脸图像,以及人脸数据库中的若干已知身份的人脸图象或者相应的编码,而其输出则是一系列相似度得分,表明待识别的人脸的身份。

目前人脸识别的算法可以分类为:

  • 基于人脸特征点的识别算法(feature-based recognition algorithms)。
  • 基于整幅人脸图像的识别算法(appearance-based recognition algorithms)。
  • 基于模板的识别算法(template-based recognition algorithms)。
  • 利用神经网络进行识别的算法(recognition algorithms using neural network)。
  • 利用支持向量机进行识别的算法(recognition algorithms using SVM)。

发展历史

人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年代后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化。[1]

2019年11月,全球首个人脸识别导航智能停车场于中国广州K11启用,当车主接受人脸注册后,停车场可以提供车位实景导航服务,方便车主取车。有关技术正研究于香港K11采用[2]

应用

无锡交通警察的人脸识别提醒牌

人脸识别的应用主要有:

  • 门禁系统:受安全保护的地区可以通过人脸识别辨识试图进入者的身份,比如监狱、看守所、小区、学校等。
  • 摄像监视系统:在例如银行机场体育场商场超级市场等公共场所对人群进行监视,以达到身份识别的目的。例如在机场安装监视系统以防止恐怖分子登机。
  • 网络应用:利用人脸识别辅助信用卡网络支付,以防止非信用卡的拥有者使用信用卡,社保支付防止冒领等。
  • 学生考勤系统:香港及澳门的中、小学已开始将智能卡配合人脸识别来为学生进行每天的出席点名记录。
  • 相机:新型的数码相机已内建人脸识别功能以辅助拍摄人物时对焦
  • 智能手机:解锁手机、识别使用者,如Android 4.0以上,iPhone X。
  • 人证核验一体机:核验持证人和证件照是不是同一个人,主要用在酒店前台、税务局、医院等。

争议

脸部辨识系统虽然有其方便之外,但也衍生了许多资讯安全及隐私问题,加上现时脸部辨识系统并非十分精确,系统的算法技术准确性相对较低,较容易出错、缺乏相关法律和道德标准、具有侵犯隐形权的讨论、以及政府很容易滥用这项技术,若应用在人权的犯罪防治工作上,则会引发歧视问题[3]

相关计算机语言

  • MatLab:Matlab[4]是一种独立的编程语言,它有自己的框架和集成开发环境(IDE),具有更强大的工作空间。该编程语言提供了广泛的工具,你可以使用它们轻松处理更多技术编程任务。图像识别和面部处理是Matlab可以处理的一些任务。Matlab提供了一系列用于矩阵计算的内置工具。必须注意的是,图像识别和矩阵计算是齐头并进的。Matlab中可用的一些工具以执行复杂的图像处理任务,例如裁剪、旋转、掩蔽等。
  • Python:目前,Python被认为一种目前最流行的编程语言。其简单性和多功能性是许多程序员喜欢使用它的一些原因。尽管很简单,但Python是一种可以依赖于执行复杂任务的语言。它可用于创建图像处理和识别功能。
  • C / C ++ / C#:它们功能强大,可以做任何事情,包括创建图像处理和识别功能。C系列编程语言提供了两种创建图像处理功能的选项。使用者可以选择从头开始对所有代码进行编码,从而手动编写代码。第二种选择是使用专为这些编程语言设计的现有库。这些库包括OpenGL、EmguCV、OpenCV等等。它们具有用于图像识别的智能图像处理功能。
  • JAVA:像C和C ++一样,永远不要低估Java编程语言的强大功能[5]。这种语言足以执行复杂的功能。它可用于创建图像处理和图像识别的应用程序。
  • OpenCV:开源计算机视觉(OpenCV)[6]是一种用于实时处理的高级工具。它也是一种跨平台工具,因此可以集成到任何编程语言中,以执行图像处理和识别功能。它可以与C、C ++、Java、Python和Android编程语言集成。

相关领域

参考资料

  1. StanZ.Li.Handbook of face recognition:LibraryofCongressCataloging-in-PublicationData,2004052453
  2. 【智慧商场】广州K11率先采用全球首个人脸识别导航停车场
  3. 【智创脉动】各出奇招! 隐私权“斗”人脸辨识|中國報. 中国报 China Press. [2019-11-18] (美国英语). 
  4. MATLAB-计算机技术语言. MATLAB. [2019-04-25]. 
  5. Java Powers Our Digital World. go java. [2019-04-25]. 
  6. Introduction to OpenCV. OpenCV. [2019-04-25].