1 概述
人脸识别技术是随着技术发展而产生的生物识别技术,目前已广泛应用于安防领域,主要用于身份验证和身份识别。视频监控是安防系统常见的一种表现形式,需要部署各种摄像头,包括网络摄像头IPC,可以通过流媒体如RTSP视频流的方式供第三方系统集成。
虹软是计算机视觉行业领先的算法服务提供商及解决方案供应商,提供免费、离线的人脸识别SDK,主要包含人脸检测、性别检测、年龄检测、人脸识别、图像质量检测、RGB活体检测、IR活体检测等能力。支持主流Windows、Linux、Android、iOS等平台及Java、C++等开发语言。
本文基于虹软免费人脸识别SDK,从IPC提供的RTSP视频流抓帧进行人脸识别。主要技术方案是通过JavaCV定时抓取视频帧保存为图像,然后针对图像通过虹软SDK提取特征,同特征库里面的人脸进行比较,超过设定的阈值就认为识别到。
2 项目环境
介绍项目中主要使用到的开发库及开发工具。
虹软人脸识别SDK。提供人脸识别相关开发接口。本文使用Windows X64 Java版本,ArcSoft_ArcFace_Java_Windows_x64_V3.0。
下载地址:虹软官网开发者中心
https://ai.arcsoft.com.cn
(https://ai.arcsoft.com.cn)。
JavaCV。是一款基于JavaCPP调用方式(JNI的一层封装),提供了在计算机视觉领域的封装库,封装了包含FFmpeg、OpenCV、tensorflow、caffe、tesseract、libdc1394、OpenKinect、videoInput和ARToolKitPlus等在内的计算机视觉领域的常用库和实用程序类。本文使用javacv-platform-1.5.1-bin版本。
下载地址:github
https://github.com/bytedeco/javacv
也可以通过Maven的方式下载必要的jar包。
Eclipse。一个开放源代码的、基于Java的可扩展开发平台。用于Java项目的工程化组织。本文使用Oxygen Release (4.7.0)。
下载地址:Eclipse官网
https://www.eclipse.org/downloads/
4) JDK。提供Java开发环境。本文使用jdk-8u181-windows-x64版本。
下载地址:Oracle官网
https://www.oracle.com/java/
3 整体流程
整体流程包括各种初始化,启动RTSP视频流监测线程,启动人脸识别任务,如下图所示:
4 工程概况
创建一个常规的Java项目,引入必要的第三方jar包。
引入虹软人脸识别jar包。
arcsoft-sdk-face-3.0.0.0.jar
引入JavaCV必要的jar包。
artoolkitplus.jar
ffmpeg.jar
ffmpeg-windows-x86_64.jar
flandmark.jar
flycapture.jar
javacpp.jar
javacv.jar
leptonica.jar
libdc1394.jar
libfreenect.jar
libfreenect2.jar
librealsense.jar
openblas.jar
opencv.jar
tesseract.jar
videoinput.jar
引入log4j相关jar包。
slf4j-api-1.7.25.jar
slf4j-log4j12-1.7.25.jar
log4j-1.2.17.jar
Java工程结构如下图所示:
运行的时候,需要将虹软SDK核心DLL拷到jar包所在目录。
5 效果展示
工程以常规java项目运行,通过日志观察识别效果。打印识比对分值和人脸库的文件名。如下图所示:
6 核心代码说明
6.1 配置文件
#人脸识别相关参数
config.FaceAppId = 3D9hF3f4uNxgDGRkRr9PD6P7CbuSC1GrPe5dBnxxxxx
config.FaceSdkKey = 2aSheKNE4aMokrkRmn5qJ7kvPirhZM7YpDLx
config.FaceThreshold = 0.75
#人脸库图片所在路径
config.FaceLibPath = d:/facelib/
#rtsp视频流地址
config.RtspUrl = rtsp://192.168.0.100:554/live/camera
#执行任务的线程数量
config.ThreadNum = 16
AppId和SdkKey根据虹软开发者中心实际应用情况配置。配置项通过ConfigMgr类加载。
6.2 虹软人脸识别接口封装类
主要对核心方法进行封装,包括初始化、特征提取、特征比对,是对虹软SDK提供的接口进行封装。
初始化引擎代码:
public static boolean init(String _sAppID, String _sSdkKey)
m_oFaceEngine = new FaceEngine();
int iFaceActiveCode = m_oFaceEngine.activeOnline(_sAppID, _sSdkKey);
if (iFaceActiveCode != ErrorInfo.MOK.getValue() &&
iFaceActiveCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue())
logger.error("人脸识别引擎在线激活失败!({})", iFaceActiveCode);
return false;
EngineConfiguration oEngineConfiguration = new EngineConfiguration();
oEngineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE);
oEngineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_0_ONLY);
FunctionConfiguration oFunctionConfiguration = new FunctionConfiguration();
oFunctionConfiguration.setSupportFaceDetect(true);
oFunctionConfiguration.setSupportFaceRecognition(true);
oFunctionConfiguration.setSupportAge(false);
oFunctionConfiguration.setSupportGender(false);
oEngineConfiguration.setFunctionConfiguration(oFunctionConfiguration);
int iFaceInitCode = m_oFaceEngine.init(oEngineConfiguration);
if (iFaceInitCode != ErrorInfo.MOK.getValue
1 概述 人脸识别技术是随着技术发展而产生的生物识别技术,目前已广泛应用于安防领域,主要用于身份验证和身份识别。视频监控是安防系统常见的一种表现形式,需要部署各种摄像头,包括网络摄像头IPC,可以通过流媒体如RTSP视频流的方式供第三方系统集成。 虹软是计算机视觉行业领先的算法服务提供商及解决方案供应商,提供免费、离线的人脸识别SDK,主要包含人脸检测、性别检测、年龄检测、人脸识别、图像质量检测、RGB
## 开发环境准备:
###开发
使用
到的软件和工具:
* Jdk8、mysql5.7、libarcsoft_face.dll(so)、libarcsoft_face_engine.dll(so)、libarcsoft_face_engine_jni.dll(so)、idea
* 注:libarcsoft_face.dll(so)、libarcsoft_face_engine.dll(so)、libarcsoft_face_engine_jni.dll(so)、app-id、sdk-key可以到
虹软
官网 http://ai.arcsoft.com.cn/ 免费申请下载
* 本地配置:
date: 2022-05-15 21:05:52.974
updated: 2023-05-16 00:00:11.594
url: https://www.yby6.com/archives/face
categories:
-
Java
分类
- 从零玩转系列
-
人脸识别
tags:
-
java
-
人脸识别
在线demo
(前往享受
人脸识别
...
目前在
人脸识别
领域中,网络摄像头的
使用
很普遍,但接入网络摄像头和
人脸识别
SDK有一定门槛,在此篇中介绍过
虹软
人脸识别
SDK的接入
流
程,本文着重介绍网络摄像头获取
视频流
并处理的
流
程(红色框内),以下内容仅供参考。
市面上目前有很多款网络摄像头,以海康摄像头为例。海康SDK包含很多接口,接入有一定难度,这里只介绍获取视频帧相关的接口。1.海康SDK接入基本
流
...
生物识别服务操作说明
版本号:v1.03.01
文章目录生物识别服务操作说明1服务核心功能1.1人脸私有化服务1.2智能抓拍功能一、2基础管理2.1用户管理2.2角色管理3人脸管理3.1识别记录3.2人脸列表3.3分组管理4应用接口4.1应用管理4.2接口说明总结
1服务核心功能
人脸识别
私有化部署(也称为
人脸识别
本地化部署)提供人脸检测、人脸比对、人脸检索、活体检测等
人脸识别
基础能力,基于OAuth2.0对外提供接口服务,可以让
使用
者快速集成
人脸识别
能力,扩展自己
1.1人脸私有化服务
人脸识别
私有化部署
虹软
人脸识别
JAVA
服务端
开发主要
使用
了
虹软
提供的
人脸识别
SDK,该SDK包含了人脸检测、性别检测、年龄检测、
人脸识别
、图像质量检测、RGB活体检测、IR活体检测等能力。
在项目环境中,
使用
了Windows X64
Java
版本的ArcSoft_ArcFace_
Java
_Windows_x64_V3.0作为开发库,并通过ConfigMgr类加载配置项,包括AppId和SdkKey,根据实际应用情况进行配置。
针对
虹软
提供的SDK,开发者可以通过
Java
CV定时抓取视频帧保存为图像,然后
使用
虹软
SDK提取图像的特征,再与特征库中的人脸进行比较,通过设定的阈值来判断是否识别到人脸。这个技术方案适用于从IPC提供的
RTSP
视频流
进行
人脸识别
。
总结起来,
虹软
人脸识别
JAVA
服务端
开发主要是利用
虹软
提供的
人脸识别
SDK,通过
Java
CV抓取视频帧并提取特征,来实现
人脸识别
功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [基于
RTSP
视频流
的
Java
后台
服务端
虹软
人脸识别
](https://blog.csdn.net/qq_40110356/article/details/110820564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]