arcface和Dlib人脸识别算法对比
我司最近要做和人脸识别相关的产品,原来使用的是其他的在线平台,识别率和识别速度很满意,但是随着量起来的话,成本也是越来越不能接受(目前该功能我们是免费给用户使用的),而且一旦我们的设备掉线了就无法使用人脸识别功能。基于这些考虑,我司需要寻找其他的方案。
通过搜索,目前发现,开源或免费支持离线的方案也有不少。目前初步考虑虹软 ArcFace和Dlib。
通过官方的demo 和 网上的资料,写了个工程,也可以在这里看。
这里说一下要注意的摄像头是使用了 OpenCV 来处理的,这里可能会涉及到预览图和屏幕方向不一致的情况,我主要是通过一下代码处理
Dlib 和虹软 ArcFace要做人脸识别前都需要先检测人脸,要不然后续提取不到人脸特征人脸特征比对时,建议将需要识别的人脸特征库预先加载到内存,这样可以加快速度(当然也占用比较大的内存)在使用 Dlib 做人脸检测时要注意,人脸方向和屏幕方向不一致时检测不到人脸(虹软 ArcFace 不存在这个问题),如果不一致,需要将图片的人脸方向转为和屏幕方向一致时再来做人脸检测虹软 ArcFace 做人脸识别时,要注意你下载的凭条 SDK 与 APP_Id、SDK_key 要一致(这个是没懂要搞这么多验证数据)。库的引用直接安装文档操作即可。虹软 ArcFace 做人脸识别时,要使用人脸检测时的人脸角度,要不然提取不到人脸特征,可以参考一下代码说明
Dlib测试结果机型 一次人脸检测耗时 一次一个人脸特征提取耗时 一次人脸特征比对耗时
坚果 U1 280毫秒左右 6800毫秒左右 0.03毫秒左右
坚果 pro 293毫秒左右 1060毫秒左右 0.002毫秒左右
虹软测试结果机型一次 人脸检测耗时 一次一个人脸特征提取耗时 一次人脸特征比对耗时坚果 U1 43毫秒左右 943毫秒左右 0.883毫秒左右坚果 pro 220毫秒左右 314毫秒左右 0.308毫秒左右
从该测试可以看出 Dlib 和 虹软 ArcFace 的优缺点,两个的性能瓶颈都在人脸特征提取,Dlib尤为突出。相对比Dlib,虹软 ArcFace更适合于手机端平台。
arcface和Dlib人脸识别算法对比的更多相关文章
- ArcFace虹软与Dlib人脸识别对比
我司最近要做和人脸识别相关的产品,原来使用的是其他的在线平台,识别率和识别速度很满意,但是随着量起来的话,成本也是越来越不能接受(目前该功能我们是免费给用户使用的),而且一旦我们的设备掉线了就无法使用 ...
- OpenCV 和 Dlib 人脸识别基础
00 环境配置 Anaconda 安装 1 下载 https://repo.anaconda.com/archive/ 考虑到兼容性问题,推荐下载Anaconda3-5.2.0版本. 2 安装 3 测 ...
- [深度应用]·实战掌握Dlib人脸识别开发教程
[深度应用]·实战掌握Dlib人脸识别开发教程 个人网站--> http://www.yansongsong.cn/ 项目GitHub地址--> https://github.com/xi ...
- opencv学习之路(40)、人脸识别算法——EigenFace、FisherFace、LBPH
一.人脸识别算法之特征脸方法(Eigenface) 1.原理介绍及数据收集 特征脸方法主要是基于PCA降维实现. 详细介绍和主要思想可以参考 http://blog.csdn.net/u0100066 ...
- [深度学习工具]·极简安装Dlib人脸识别库
[深度学习工具]·极简安装Dlib人脸识别库 Dlib介绍 Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具.它广泛应用于工业界和学术界,包 ...
- Eigenface与PCA人脸识别算法实验
简单的特征脸识别实验 实现特征脸的过程其实就是主成分分析(Principal Component Analysis,PCA)的一个过程.关于PCA的原理问题,它是一种数学降维的方法.是为了简化问题.在 ...
- 总结几个简单好用的Python人脸识别算法
原文连接:https://mp.weixin.qq.com/s/3BgDld9hILPLCIlyysZs6Q 哈喽,大家好. 今天给大家总结几个简单.好用的人脸识别算法. 人脸识别是计算机视觉中比较常 ...
- DeepID人脸识别算法之三代(转)
DeepID人脸识别算法之三代 转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/42091205 DeepID,目前最强人脸识别算法,已经三 ...
- 基于MATLAB的人脸识别算法的研究
基于MATLAB的人脸识别算法的研究 作者:lee神 现如今机器视觉越来越盛行,从智能交通系统的车辆识别,车牌识别到交通标牌的识别:从智能手机的人脸识别的性别识别:如今无人驾驶汽车更是应用了大量的机器 ...
随机推荐
- MyBatis框架入门之(二)
在本篇文章中,没有对细节进行处理的很好,有很多晓得细节的遗漏,本文只是一个简单的快速的入门 MyBatis的快速入门 导入MyBatis框架jar包 配置文件 SqlSessionFactoryBui ...
- chrome platform
folder_extension: ---menifest.json ---navigator_change.js manifest.json { "manifest_version&quo ...
- 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂) v阅读目录
1楼留头头大神:http://www.cnblogs.com/toutou/p/4899388.html v阅读目录 v写在前面 v简单工厂模式 v工厂方法模式 v抽象工厂模式 v博客总结 v博客 ...
- 解决在ubuntu中安装或升级时出现“11:资源暂时不可用”错误
解决在ubuntu中安装或升级时出现“11:资源暂时不可用”错误 解决在ubuntu中安装或升级时出现“11:资源暂时不可用”错误. 下图为具体情况: 出现问题: termial下在执行sudo ap ...
- nginx 下 php 无法执行,虚拟主机 无法使用
检查目录下的.ini文件 有可能是因为多了个user.ini文件.这个文件在linux下可用,在window下不可用. windows下删掉这个文件后记得重启一下nginx.不然不会生效. 参考:ht ...
- linux下 GCC编译链接静态库&动态库
静态库 有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库, 我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后 ...
- Codeforces 839A Arya and Bran
Bran and his older sister Arya are from the same house. Bran like candies so much, so Arya is going ...
- 对象new和不new的理解
1.现象 在一个线程类[QObject]中声明一个对象QTimer,[不new,直接声明],在槽函数中timer.start() 报警告:不能跨线程调用对象 2.分析 不使用new的方式,直接A a; ...
- topcoder srm 520 div1
problem1 link 设$f[i][j][k]$表示考虑了前$i$道题,剩下时间为$j$,剩下技能为$k$的最大得分. 从小到大计算二元组$(j,k)$的话,在存储上可以省略掉$i$这一维. p ...
- Python3 tkinter基础 Entry validate isdigit 只能输入数字的输入框
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...