文摘

目前,人脸识别技术是一个非常先进的科学和技术,它已经成为一个非常热门的研究分支。在这个研究中,首先,论文首先总结了人脸识别技术的研究现状和相关技术基于视觉传达,然后使用OpenCV开源视觉库基于系统架构的设计和安装的系统硬件条件。人脸检测程序和图像匹配的程序实现,以及基于OpenCV实现完整的人脸识别系统。实验结果表明,硬件系统由软件可以实现图像采集和在线识别。应用对象是测试人员。一般来说,OpenCV-based人脸识别系统测试人员可以可靠,稳定,很快意识到在这种情况下人脸检测和识别。人脸识别是有效的。

1。前言

在技术不断发展的背景下,传统识别方法继续承受越来越多的挑战,和识别的准确性不能满足需求。如今,生物信息的识别逐渐吸引注意力。

作为一种生物特征识别技术,人脸识别技术在身份识别中占据着举足轻重的地位。(1面部识别,作为一个多学科cross-integration技术,主要包括技术,如计算机、信息处理、图像特征识别。面部识别技术近年来取得了很大的进步。自然包含了各种各样的信息,比如声音信息,电场信息,视觉信息,磁场信息,和温度场信息。其中,视觉信息包含大量的数据(2]。如何从这些数据中提取有用的信息?和实际应用这些数据来改变我们的生活和工作将具有重要意义。“如何区分人类身份”的命题是体现在图像处理领域的技术,它是利用图像处理的方法来深入使用特定的算法来提取特征信息与个人和使用获得的特征信息来区分其他获得特征信息(3]。因此,根据特征信息的唯一性标识,识别和确认不同的人可以意识到,以便进一步利用这个作为凭据意识到技术监督、管理和控制的人。

根据面部识别技术的发展过程,它可以分为以下三种识别方法。(1)基于几何特征的人脸识别方法。方法简单,但识别精度较低,和识别效果并不理想,但它提供了一种新的人脸识别研究的想法4]。(2)基于模板匹配的人脸识别方法是基于实现的全局特征识别。它实现基于全局特征的识别。首先,面部图像归一化和规范化。形态学处理如规模标准化后,直方图均衡化,和腐蚀膨胀 模板是用于从它使用方法提取特征类似于LBP算法获得一个64位的哈希代码。有n图像训练集,我们将处理所有这些n图片由上述方法得到的哈希码n训练集。同样的,我们将处理人脸图像识别以同样的方式。最后,我们将等待。认识到面临的散列码图像的散列码与训练集的每个人。主要目的是比较它们之间的汉明距离。脸的散列码图像识别与每个图像的散列码散列码比较后的训练集。n汉明距离产生,这些的最小值n汉明距离计算,确定人脸图像识别是最类似于图片的训练集产生的距离(5]。(3)基于模型的人脸识别方法,通过抽样分析的方法,获取模板中使用的模型;常见的模型,如人脸识别方法是基于隐马尔科夫模型(6];面部形象被认为是各种器官的不同表情的脸脸器官被认为是一个抽象的状态;国家和相关表达式的形式通过两个随机过程;大量的脸照片作为实际的训练集,模型训练,这是由一定的算法。模型的最优参数,这样每个人在训练集的最优模型相匹配。在人脸识别中,计算模型的匹配程度最高的人脸特征识别;然后,相对应的人被识别和训练集的模型分为一类,就是找出哪些模型是最有可能产生的表达式(7]。

面部识别的过程比较收集的图像的相机面部图像数据库中,使用相关计算机算法分析和提取有效识别特征信息(8- - - - - -10]。它结合了多个研究领域,如图像处理、计算机图形学、可视化技术、人体生理学和模式识别。面部识别的基本过程如图1,其工艺过程分为以下主要部分。

针对目前常用的面部识别技术的缺陷,这一主题依赖于Linux作为开发平台,采用Qt5开发环境,并使用相关的图像处理算法的计算机图像处理软件OpenCV设计一个基于图像处理的面部识别系统(11]。其核心技术是面部图像采集、图像预处理、图像特征值提取、图像匹配和识别。人脸识别技术是一种使用最广泛的图像处理和分析技术,大大促进了人们的工作和生活。

2。面部识别系统设计

2.1。设计系统架构

基于视觉传达的效果,面部识别技术利用图像采集设备收集人类的面部信息输入到计算机程序计算,并使用计算机算法技术处理收集到的面部信息和分析和提取功能,以便进行身份识别。一种技术方式,具体的面部识别系统设计结构如图2

体系结构包括使用层,中央层和数据库层。使用层提供一个环境与视觉传达效果,和用户使用该层操作系统满足预期的需求(12]。面部识别系统的控制中心,中心层是整个系统最重要的部分。它是由资源管理和面部系统设计中心。面部系统设计中心负责维护任务活动的过程。硬件工具通信模块,电源模块,无线路由器模块和软件工具结合视觉传达元素,面部识别程序,和图像匹配项目形成一个面部识别系统设计中心(13- - - - - -15]。资源管理负责任务活动的起始和终止。数据库层收集面部图像信息通过图像数据库数据中心,为系统提供了面部识别所需相关数据。用户层提供了一个视觉传达效应环境并发送指令到系统根据用户的需求。中央层识别面部图像接收到指令后(16]。识别完成后,图像信息反馈到用户层,和用户获得他们所需要的东西。面部识别的图像发送到数据库层存储,当中央层需要相关数据,它是通过检索数据库层。

2.2。系统硬件结构

最初的任务是接收到客户机,然后分配给服务器。客户端处理面部图像并将任务提交给处理器。面部图像自动识别后的结果图像序列检索和使用的处理器自动面部识别在自动识别。监控服务器进行面部识别解决问题的更少的网络节点。任务调度和面部识别完成的处理器和服务器(17]。因此,最重要的部分自动人脸识别系统的硬件是考虑硬件的内存大小。因为智能设备缺乏一个网络端口在图像识别过程中,需要使用无线路由器建立一个局域网(图3)。

2.3。面部的结构设计系统

面部识别程序是基于OpenCV实现图书馆的Linux平台。这个系统的面部识别程序集成开发环境下完成Qt的创造者。程序中使用多个函数OpenCV [18]。因此,OpenCV库必须被移植到嵌入式系统和程序可以顺利执行。有一个财富OpenCV库中可用的功能。它可以运行在操作系统,如Linux /窗/ Mac。它提供了各种各样的算法与图像处理和机器视觉,它支持多种计算机编程语言。本系统主要使用功能函数在两个头文件OpenCV图书馆。简历。h:这头文件包含函数,可以实现图像处理和计算机视觉等相关功能,如图像处理,模式识别,相机标定。highgui。h包含用户交互的功能功能,如图像编码和解码、视频捕捉和GUI界面。 The realization of the node function is mainly divided into two parts: face detection and image matching. The following content will describe the program realization of these two parts in detail.

2.3.1。人脸检测程序

人脸检测是人脸识别程序的第一步,也就是说,检测和确定的位置的过程从摄像头的图像采集和分离的脸图像。

这个函数将在项目执行后打开相机和周期性拦截一架相机的图像。捕获的图像存储在pCapture CvCapture类型的指针。

cvLoad()函数将“haarcascade_frontalface_alt2加载文件。xm1”作为一个字符串。这个文件是一个演算法级联人脸检测分类器基于哈雾功能。训练,从大量的人脸图像中提取特征信息和获得信息。函数加载分类器后,它将把CvHaarClassifierCascade类型和分配到的指针cascadeo CvHaarClassifierCascade类型。

创建一个单通道图像,其返回值类型为IplImage类型,检测预处理的图像信息,传递给检测功能cvHaarDetectObjects()作为参数。

参数pgray图像信息预处理后,发现和级联加载cvLoad(),这是用于比较图像的特征与哈雾被探测到的级联分类器,通过cvHaarDetectObjects()函数传递的相关参数实现的功能检测和定位的脸的图像(19]。使用上面的函数来实现人脸检测的功能程序的一部分,然后,拯救面临区域图像后续使用的函数。人脸检测功能的实现过程如图4

2.3.2。图像匹配程序

图像匹配的程序的另一个重要部分的实现系统识别节点的功能。识别结果的准确性直接决定了成功的功能。该系统的图像匹配程序实现基于筛选算法(20.]。旋转不变性和尺度不变性的筛选算法可以解决各种系统的实际使用中遇到的问题。主要有以下函数调用过程中程序实现。未读(常量字符串文件名,int标志= 1)

你可以使用这个函数来读取图像并保存图像的信息在一个垫子变量。类SiftFeatureDetector

这个程序使用的功能detectoxdetect ()。SiftFeatureDetecto:探测器是一个对象的类。成员函数的功能检测()它包含计算图像中的特征点。extractor.compute()函数用于程序,提取器SiftDescriptorExtractor类的一个对象,以及它的成员函数计算()用来为每个关键点指定方向参数并生成关键描述符。后生成的两个图像的特征向量,特征向量的各自的要点两张图片可以作为图像相似性判断的标准。实现图像匹配的过程函数调用函数图所示5

2.3.3。数据传输程序设计

主节点与通信模块将完成图像传输函数的脸21]。当人脸识别节点检测到当前的脸,当前面临的面部图像信息将传送到指定的主节点通过面部识别系统的目录,当程序检测到来自公共汽车有一个文件,程序将启动通信传输模块将图像数据发送到面部识别系统。其中,当图像信息通过套接字程序传播,传播周期在64字节的字符数组。为了使程序正常运行,一个通信模块驱动程序必须添加到内核。中兴通讯模块驱动程序支持文件在Linux内核中(22]。你只需要在内核编译选项选择相关选项。在这个时候,. config文件中的内容需要更改如下。

usb_hcd结构包括在Linux内核中,描述的USB驱动程序。内部信息、硬件资源和he_ USB控制器的驱动程序功能都在这个结构。成员函数usb_ hed he_驱动器是一个函数用来操作主机控制器,所以它是非常重要的。在Linux内核中,我们使用以下功能来创建HCD。

Linux内核的Kconfig文件中,我们选择“为GSM和CDMA调制解调器USB驱动程序。“这个文件包含USB驱动程序选项配置介绍。文件的位置是内核文件\ \ \串行驱动程序目录。在这一点上,司机通信模块的添加。程序运行的流程如图6

通过以上程序,当前面部图像信息被收集和识别的准确性与实现。如果不是人脸识别系统,图像信息将被保存和传播到套接字程序在主节点通信模块通过网络,和图像将传播到人脸识别系统。

3所示。实验分析

3.1。面部识别程序的调试

初始化过程完成后,面部识别系统将由主节点开始。人脸识别节点将分配逻辑地址0×101,然后,识别程序将开始收集和识别图像。程序需要编译和调试之前被移植到嵌入式系统。嵌入式系统在执行程序时,只会返回识别结果,图像采集和识别过程将不会显示。在调试过程中,显示图片集合将被添加为方便调试和代码的识别过程;只是评论当程序移植到嵌入式系统。首先,系统程序开始后,都会调用相机不断收集图像信息,并收集结果如图7:

第二,人脸检测程序将确定图像中是否有一张脸。如果有一个脸,人脸检测程序将定位和拦截脸图像。拦截结果如图8

人脸识别算法有两个重要指标:废品率和虚假的识别率。的概率是废品率识别错误地拒绝;,一份属于面临一个图像数据库是错误地认为它不属于数据库中识别。的错误识别率识别错误的概率是被接受;即图像的副本不属于面对数据库错误地认为属于脸在识别数据库。本文实验验证,样品收集的数量是20人,和每个人收集10面部图像。由于外部自然环境相对复杂,这个系统的识别阈值设置为0.8一个多人抽样实验,和验证结果如表所示1

时收集的样本总数为20人,每个人都有收集20面部图像,多人抽样测试后,系统的识别阈值设置为0.7,和验证结果如表所示2

最后,这个项目比较捕获的脸图像与用户的面部图像(假定当前测试器是用户)。匹配的结果显示在图9

3.2。数据传输测试

当用户的面部识别节点想通过异步通道传输图像数据,系统建立了一个连接异步传输数据。如下的代码。

10显示了异步数据发送用户的面部识别节点的状态显示在串口调试工具执行03命令后在异步数据发送测试。

11是人脸识别节点的串口显示在主节点发送命令04。当主节点发送命令04,面部识别节点将收集的照片相机到主节点。这个系统的图像数据通过异步数据传输通道,需要分成多个部分由于系统分配40字节的异步数据字段为每个子系统框架。通过这种方式,图像信息发送到主节点在段。每当一个异步主节点接收到数据包,主节点将返回一个通知消息的奴隶节点通知奴隶节点接收异步数据的状态。

4所示。结论

本文构建了一个基于视觉传达效果的面部识别系统。从视觉传达的角度的影响,确定了系统的总体设计方案,和面部识别技术和通信传输技术相结合设计的面部识别节点和面部识别节点实现系统的主要功能。主要控制节点通信传输函数分析了现有人脸检测和人脸识别方法通过人脸检测和人脸识别技术,使用OpenCV库设计面部识别程序,并结合系统的开发和实际应用环境中,嵌入式程序运行所需的环境和系统测试平台构建,每个节点的程序调试和验证。实验结果表明,该算法的识别成功率88.2%,作品点出率只有0.7%。与传统的面部识别技术相比,显著提高成功率。此外,通过阈值调整实验,结果表明,算法的最优阈值是0.8,识别成功率和错误识别率比其他低阈值的结果。通过实验验证了系统的可行性。

数据可用性

获得的数据集可以从相应的作者。

的利益冲突

作者宣称没有利益冲突。