龙源期刊网
http://www.qikan.com.cn
基于
JavaCV
的人脸识别程序
作者:汤文俊
彭立
席博文
来源:《科技视界》
2019
年第
01
期
【摘
要】
OpenCV
是一个用
C++
语言编写的计算机视觉库,在
Java
程序中可以通过
JavaCV
来访问
OpenCV
。本文介绍了一个基于
JavaCV
的人脸识别程序,该程序事先要对人脸
识别器进行训练,之后就可以根据输入的人脸照片识别出相应的身份。
【关键词】
JavaCV;OpenCV;
人脸识别
中图分类号:
TP391.41
文献标识码:
A
文章编号:
2095-2457
(
2019
)
01-0003-002
DOI
:
10.19694/j.cnki.issn2095-2457.2019.01.002
0
引言
人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术,目前已被广泛应用
于各类具有身份识别功能的系统中,如考勤系统
[1]
。
OpenCV
是一个用
C++
语言编写的跨平台
计算机视觉开源库,它实现了计算机视觉和图像处理方面很多较为完善的算法,并提供了几百
个函数供用户使用,
OpenCV
已成为计算机视觉领域的首选开发库
[2]
。在
Java
程序中可以通
过
JavaCV
来访问
OpenCV
。
JavaCV
是一组
Jar
包,它封装了各种常用计算机视觉库的接口,
其中就有
openCV[3]
。本文介绍了一个基于
JavaCV
的人脸识别程序,该程序已被用于笔者开
发的课堂移动考勤系统中。
1
程序介绍
该程序用
Java
语言编写,它借助
JavaCV
实现了人脸识别功能。程序用到了三个
JavaCV
提供的
Jar
包,分别是:
javacpp.jar
、
javacv-windows-x86.jar
、
javacv.jar
。
为了确保人脸识别的准确性,程序事先要用大量的人脸照片对人脸识别器进行训练,该项
工作分为两步进行。首先,程序对
origin_photo
目录中存放的原始照片进行人脸检测,并将检
测出的人脸以照片的形式存放于
train_photo
目录
;
之后,程序用
train_photo
目录中的照片对人
脸识别器进行训练。在这两个目录中,照片名的格式为:分类号
_
编号。其中,分类号用来代
表一个人的身份,同一个人的分类号相同
;
编号用来区分同一个人的不同照片,同一个人的不
同照片有不同的编号。训练完人脸识别器之后,程序就可以根据输入的人脸照片识别出相应的
分类号,即照片中人的身份。
2
方法说明