人脸识别的开源算法库首推OpenCV,但要说开源软件的话,我比较推荐虹软视觉开放平台的ArcFaceGo人脸识别应用套件。

虹软视觉开放平台​ai.arcsoft.com.cn

简单来说,这款应用套件研发之初是为了方便基础薄弱用户,功能完整,可以快速甚至零代码搭建人脸识别闸机通行、刷脸考勤以及近来大火的人脸识别测温等应用。随着这款软件开源之后,开发者也完全能够在此基础上开发成一款符合自身业务需求的产品,并投入商用。

普通环境下识别准确率接近100%,而且识别速度快,稳定性好,容易集成,好用。

PS:有别的答主回答了虹软的人脸识别引擎,和我这个不是一个东西,ArcFaceGo内置了人脸识别引擎,功能更加完整,所以不算重复回答。

【简单易用——ArcFaceGo应用套件构成】

在应用套件中,已经内置了虹软视觉开放平台的离线人脸识别SDK。涵盖人脸检测、人脸比对、活体检测、人脸属性分析等一系列核心算法,即使无网络状态下也可以运行。在虹软视觉开放平台完成下载后,可以看到该应用套件由人脸识别软件APK、中心管理端两部分构成。

中心管理端:拥有人员注册、考勤统计、出入查询等功能,也可以云端进一步对接已有的业务平台。

人脸识别设备端应用APK:负责采集人脸信息、进行身份比对,并向中心管理端报备识别结果以及通知相关联通控制器。在该部分其代码中,已经针对人脸检测、人脸比对、活体检测等算法,模块化的集成了相应算法运转逻辑。开发者无需考虑各算法之间复杂运转流程,只需传入camera数据流,便可以回调识别结果。

同时,针对人脸图像传输、处理中需要用到的多媒体图像技术,在代码中也同样模块化的封装好了NV21、RGBA、BGR等不同颜色格式自动转化及图像的四字节对齐等功能。

在运行性能方面,该开源应用套件在底层算法逻辑中维护“人脸底库”,可以充分提升人脸识别速度,以RK3288 -10000人为例,相比在上层逻辑中进行人脸比对需要100ms ,而目前仅需10ms。

【适配灵活——可应用于各类实际场景】

基于开源代码,开发者可以自行定义交互界面及交互逻辑,并开发应用于各类场景的人脸识别应用。比如智慧办公的人脸识别考勤机、智慧社区的人脸识别出入闸机、智慧商业的VIP迎宾系统、智慧医院的人脸识别挂号机、智慧酒店的人脸识别入住等等产品。

1.针对具体场景,可视化适配硬件

不同场景的不同应用,也意味着需要适配不同的分辨率设备,适配单摄、双摄、宽动态等各类摄像头。ArcFaceGo人脸识别应用套件提供了可视化的硬件适配页面,方便预览显示及识别设置。

用户也能自行改写该部分代码,譬如不希望用户自行调节相关参数,以至于影响识别效果,甚至可以将该部分功能进行封装,以免用户误触。

2.可供对接硬件的多种广播形式。

Action描述

com.arcsoft.arcfacesingle.ACTION_IDENTIFY_SUCCESSFUL人员识别成功

com.arcsoft.arcfacesingle.ACTION_IDENTIFY_SUCCESS_PERSON_SERIAL人员识别成功后,会向外发送“personSerial”唯一标识号”

com.arcsoft.arcfacesingle.ACTION_OPEN_DOOR开门(在人员识别成功后会发送该广播)

com.arcsoft.arcfacesingle.ACTION_CLOSE_DOOR关门(发送开门广播后,延迟一段时间会发送该广播)

com.arcsoft.arcfacesingle.ACTION_FACE_DETECT_HAS_FACE检测到人脸框

com.arcsoft.arcfacesingle.ACTION_FACE_DETECT_NO_FACE人脸框丢失

典型场景1

在室内走廊或楼梯过道等光线不佳的地方,可以对接ACTION_FACE_DETECT_HAS_FACE和ACTION_FACE_DETECT_NO_FACE广播,在检测到人脸时打开补光灯,这样可以提高识别率。

典型场景2

在一些单次授权通过的场景比如取药房,可对接ACTION_IDENTIFY_SUCCESS_PERSON_SERIAL广播,在授权并且识别通过之后可以删除该人授权以达到目的。

【人脸识别测温机开发实例】

疫情期间,很多智慧门禁设备都会增加测温模组,在通过人脸识别实现身份权限管理的同时,一并测量体温。

目前这类产品的市场反响非常火热,无论是要实现抗疫常态化的国内,还是感染人数持续暴增的国外,都对该产品有迫切需求。

这款应用套件可以与测温模块快速集成,以实现测温结果与识别身份绑定的效果。具体如何实现,以下是代码示例。

以下是具体实现的代码示例,以主流的HTPA32x32d为例。

private ConcurrentMap temperatureMap = new ConcurrentHashMap<>();

private byte[] rawData = new byte[2048];

private ReadThread.ReadListener readListener = (data, size) -> {

synchronized (temperatureLocker) {

System.arraycopy(data, 1, rawData, 0, 2048);

}

};

public void start() {

ReadThread readThread = new ReadThread();

readThread.setListener(readListener);

readThread.start();

FaceEngine faceEngine = new FaceEngine();

Config config = new Config();

faceEngine.setRecognizeCallback(this);

faceEngine.init(this, config);

}

@Override

public void onRecognizeComplete(RecognitionResult recognitionResult) {

FaceInfo faceInfo = recognitionResult.faceInfo;

if (recognitionResult.result == ErrorInfo.MOK) {

if(temperatureMap.get(faceInfo.faceId)<=37.3) {

//温度低于预警值并且识别成功,进行后续操作

}

}

}

@Override

public void onCameraPreview(byte[] bytes, ICamera iCamera) {

FaceInfo faceInfo = new FaceInfo();

faceEngine.faceRecognize(rgbData, irData, width, height, true, faceInfo);

if (faceInfo.faceId != -1 && temperatureMap.get(faceInfo.faceId) != null) {

//把额头区域映射至32x32温度矩阵中,取出对应的温度

float temperature = getTemperature(faceInfo.forehead, rawData);

temperatureMap.put(faceInfo.faceId, temperature);

}

}

public class ReadThread extends Thread {

private static final String HEIMANN_PATH = "/dev/ttyS2";

private static final int BAUDRATE = 115200;

private static final byte[] command = {(byte) 0XEE, (byte) 0xE1, (byte) 0x01, (byte) 0x55, (byte) 0xFF, (byte) 0xFC, (byte) 0xFD, (byte) 0xFF};

private FileOutputStream outputStream;

private FileInputStream inputStream;

private Object locker = new Object();

public ReadThread() {

try {

mSerialPort = SerialPort

.newBuilder(HEIMANN_PATH, BAUDRATE)

.parity(0)

.dataBits(8)

.stopBits(1)

.build();

mInputStream = (FileInputStream) mSerialPort.getInputStream();

mOutputStream = (FileOutputStream) mSerialPort.getOutputStream();

} catch (IOException e) {

e.printStackTrace();

}

}

public void sendCommand(byte[] data) {

if (mOutputStream != null) {

try {

synchronized (locker) {

mOutputStream.write(data);

offset = 0;

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

@Override

public void run() {

super.run();

while (!isInterrupted()) {

int size;

try {

synchronized (locker) {

if (mInputStream == null) {

return;

}

size = mInputStream.available();

if (size > 0) {

mInputStream.read(rawData, offset, size);

offset += size;

}

}

if (offset == rawData.length) {

if (getListener() != null) {

getListener().onDataReceived(rawData, offset);

}

offset = 0;

}

if (offset == 0) {

SystemClock.sleep(50);

sendCommand(command);

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

}虹软视觉开放平台​ai.arcsoft.com.cn

delphi 人脸比对_比较好的开源人脸识别软件有哪些?相关推荐

  1. 人脸检测算法_目前最强!开源人脸检测算法:RetinaFace

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  2. python开源的人脸识别库_什么是 SeetaFace 开源人脸识别引擎

    区分不同的人是很多智能系统的必备能力.为实现此目的,一种可能的技术手段是通过对人脸的光学成像来感知人.识别人,即所谓的人脸识别技术.经过几十年的研发积累,特别是近年来深度学习技术的涌现,人脸识别取得了 ...

  3. python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表...

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  4. 人脸检测算法_腾讯已开源高精度人脸检测算法DSFD

    腾讯提出一种高精度双分支人脸检测器DSFD并开源.该算法曾在全球两大权威人脸检测数据集WIDERFACE和FDDB上均取得了第一. 任务介绍 人脸检测算法是在图像上检测出人脸的位置(通常以矩形框形式输 ...

  5. java人脸识别_自从加了PC人脸识别登录功能,网站立马显得高大上

    之前不是做了个开源项目嘛,在做完GitHub登录后,想着再显得有逼格一点,说要再加个人脸识别登录,就我这佛系的开发进度,过了一周总算是抽时间安排上了. 源码在文末 其实最近对写文章有点小抵触,写的东西 ...

  6. 人脸脸部识别技术_面部识别技术的道德安全问题

    人脸脸部识别技术 Terminator and similar movies depict a world that is controlled by AI and robots. For the m ...

  7. 人脸脸部识别技术_面部识别技术的危险后果

    人脸脸部识别技术 揭露 (Disclosure) The following introduction references existing technology and future advanc ...

  8. 离线人脸属性分析_最新开源 | 人脸识别应用套件:毫秒级离线识别 适用多类场景...

    随着人脸识别技术的不断发展,尤其是在部分算法平台对外开放算法之后,人脸识别的应用门槛得到了极大降低.但是从算法到一款真正可落地的人脸识别产品,在完整的应用开发中,不仅需要考虑底层算法的运行逻辑,也需要 ...

  9. 风格化图像_【技术综述】人脸风格化核心技术与数据集总结

    我的新书<深度学习之人脸图像算法>市了,欢迎大家关注! 言有三新书来袭,业界首次深入全面讲解深度学习人脸图像算法​mp.weixin.qq.com 人脸图像是计算机视觉领域中研究历史最久, ...

  10. caffe 人脸关键点检测_全套 | 人脸检测 人脸关键点检测 人脸卡通化

    点击上方"AI算法与图像处理",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:CVPy 人脸检测历险记 可能跟我一样,人脸检测是很 ...

最新文章

  1. MindSpore图像分类模型支持(Lite)
  2. 我成功攻击了Tomcat服务器,大佬们的反应亮了
  3. 网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(一)...
  4. 牛牛牛!干翻Sci-hub!
  5. NAT应用于HSRP环境
  6. 一个撕心裂肺的爱情故事
  7. 对java类中注释的认识
  8. qt如何在label中显示汉字_工控机中如何实现多屏显示
  9. 6.2神经网络算法应用上学习笔记
  10. 组内连续三个或三个以上Repeated Measures ANOVA
  11. Windows操作系统管理进程和线程:内核模式和用户模式
  12. java面试题(分布式篇)
  13. Barcode for Mac(条形码生成器)
  14. vue导入txt文本
  15. python中unicode编码表_python中的unicode编码
  16. 姓名评分程序PHP,姓名测试打分,免费姓名评分测试,免费姓名测试评分 - 姓名算命最准的网站...
  17. 开发者应该了解的移动互联网行业内幕
  18. 关于iphone5和iphone4兼容的尺寸问题
  19. Android蓝牙开发(一)之打开蓝牙和设备搜索
  20. 利用 matplotlib 制作条形图

热门文章

  1. android 条形码 两边空白,几个条形码的问题
  2. python做大数据可视化软件_四款最受欢迎的大数据可视化工具
  3. 基于SSH的客户关系管理系统
  4. java 切图 软件_Java 切图
  5. linux开发板推荐
  6. edem颗粒替换_Altair EDEM Professional 2020.2安装教程(附替换补丁)
  7. android5.0电话录音,用Xpose完美实现电话录音,支持android 8.1.0
  8. 计算机模拟仿真技术是什么,仿真与模拟
  9. python统计字符个数然后变成字典_Python之String字符串练习一(统计字符串中单词出现个数并生成字典、打印下一秒钟时间、简单购物车功能)...
  10. Unity修改编辑器