android人脸识别demo_零门槛解决Windows人脸识别应用开发难题

自人脸识别免费SDK——ArcFace3.0上线以来,凭借对人脸识别、活体检测、年龄检测、性别检测等核心算法模型进行全面升级,大幅提升算法鲁棒性,显著降低接入门槛,同时支持Windows、iOS、Android(包含Android10)、Linux,在性能和开发效率上进行了整体提升,又保持着了免费、离线的初心,成为广大开发者落地AI应用的利器。

在实际使用中,开发者往往会提出一系列细节问题,为帮助开发者快速上手,本节《人脸识别技术公开课—Windows c++专场》将以技术解析和专项答疑等形式帮助开发者解决难题。

虹软技术公开课-Windows c++专场-虹软视觉开放平台​ai.arcsoft.com.cn
95ac842d936b65014e183237b1c72b97.png

要点01【3分钟跑通C++ 人脸识别demo】

SampleCode配置过程

课程基于虹软人脸识别SDK包中提供的示例代码,以实操的形式介绍了如何快速接入使用。接入过程在课程视频中有详细介绍。建议观看视频后自行尝试配置,即可对虹软人脸识别技术有一个初步的了解。

Demo配置过程:

虹软人脸识别SDK包中还包含可视化的Demo工程,根据如下步骤配置完成后,可运行调试,了解调用逻辑以及算法效果。

【1】从ArcFace SDK 包中获取Demo,用VS2015启动项目。

【2】替换ArcFace SDK头文件和库文件。

【3】将从官网获取的APPID/SDKKEY配置到setting.ini文件中。

【4】将OpenCV和ArcFace DLL文件拷贝到执行目录下。

【5】运行提示缺失系统库,根据提示将缺失的系统库拷贝到执行目录下。

要点02【ArcFace重点接口及参数介绍】

重要接口:InitEngine接口

初始化接口可以说是最重要的接口,若初始化失败则其他接口无法正常调用,同时,初始化中的参数设置也与算法能够呈现出的效果息息相关。

初始化失败时,根据错误码查询原因即可。参数设置是开发者最关心的核心问题,也是保障在实际应用场景中最大化发挥算法效果的关键。视频中主要介绍以下几个参数在实际场景下如何应用。

detectMode: 检测模式

detectFaceOrientPriority人脸检测角度优先级

detectFaceScaleVal数值越大,能检测越小的人脸

combinedMask根据功能选择组合方式,功能选择越多,占用的内存越大

重要参数Ⅰ步长

含义:步长可以理解为一个图像通道中一行像素的字节数。

作用:新版本引入步长的概念。老用户都知道之前版本的接口图像传输方式,对宽度有四字节对齐的要求。新版本引入图像ASF_ImageData图像数据结构体,将之前的图像参数封装在一起,并引入步长参数,主要为兼容更高字节对齐的图像。

以下是一张大小为1000x554的图片,以不同步长解析的结果:

96c0efd9bf42e7a496137aae91f32f59.png

重要参数ⅡcompareModel参数

含义:目前支持生活照和证件照两种比对模式。

作用:在ARCFace 3.0产品中新增比对模式的选择,避免用户需要既接入人证模块场景,又要引入人证SDK。

3ead0f405a843fb7e5971f9d01092dea.png

重要参数ⅢcombinedMask参数

Process接口中combinedMask参数,与初始化接口中该参数的含义不一样。Process接口中的参数与初始化接口中该参数存在依赖关系,且有自身的取值范围。如下图所示,结合视频课程可以帮助开发者理解得更深刻。

5fd864cebdf8a963b7fa21d69089cef1.png

要点03【门禁系统业务流程解析】

下图为常见多人脸门禁场景的逻辑流程图,可以从以下角度进行分析:

【线程角度】

主线程:包含人脸追踪以及画面预览功能。

FR线程:开启多个线程对多人脸同时进行特征提取以及比对。

【优化策略】

FaceID:根据FaceID标识一个人,从进入画面到离开画面,对这一人脸只做一次识别即可,大大降低系统资源占用。

尝试次数:同一张人脸,特征提取失败可以做有限次数的尝试,提高交互效果。

2f96132ebfb7c277bbad0b99ba7bbb7e.png

要点04【常见问题答疑】

Ⅰ多线程调用问题

a) 同一个引擎可以使用多线程调用不同算法。

b) 多线程调用同一个算法接口需要启用不同的引擎。

Ⅱ VIDEO和IMAGE模式的区别

VIDEO模式

a) 对视频流中的人脸进行追踪,人脸框平滑过渡,不会出现跳框的现象。

b) 用于预览帧数据的人脸追踪,处理速度快,可避免出现卡顿问题。

c) 在视频模式引入faceId,该值用于标记一张人脸,当一个人脸从进入画面到离开画面,faceId 值不变。可用于业务中优化程序性能。

IMAGE模式

a) 针对单张图片进行人脸检测精度更高。

b) 在注册人脸库时,我们建议使用精度更高的IMAGE模式。

Ⅲ Windows版本在进行IMAGE模式人脸检测时,回传的faceId数组为何为空?

faceId是用来标识一个人从进入画面直到离开画面的这段时间,对人脸追踪的一个标识,所以对单张静态图片来说,faceId在image模式下几乎没有实际意义的。

Ⅳ 如何将人脸识别1:1比对进行开发改为1:N搜索?

人脸库可以在程序启动时进行特征提取或者将人脸特征值保存在数据库,程序启动后读入缓存中,如果人脸库在数据不大的话,比如1000内(这个1000的值也只是举例,具体需要根据设备性能以及业务场景界定这个数据),可以在识别照特征提取后通过循环进行1:N的比对。在人脸库比较大的时候,比如10000左右,并且设备性能也比较好,可以采用多线程进行比对。

本次公开课程视频完整内容,请点击下方链接:

虹软技术公开课-Windows c++专场-虹软视觉开放平台​ai.arcsoft.com.cn
95ac842d936b65014e183237b1c72b97.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio会让嵌入式开发变得更香

在几个月之前,我一直非常喜欢用Source Insight看代码,主要是习惯了原来的风格。从Source Insight 转到vscode 的原因是,在腾讯使用samba连接Source Insight看代码非常非常卡,让我觉得很难受。然后是在同事的建议下更换了vscode,里…

现实世界的Windows Azure:采访InishTech的销售及市场部主管Andrew O’Connor

MSDN: 告诉我们关于你们公司的信息以及您为Windows Azure创建的解决方案。O’Connor: InishTech 有点不寻常。我们的软件许可和保护服务(SLPS)平台是一个传统的多租户Windows Azure应用程序,利用Windows Azure SDK、 Windows Azure Dev Fabri…

珠海半导体公司招聘

受一个朋友所托,帮忙发一个招聘信息公司名字:珠海极海半导体有限公司上班地点:广州岗位名称:FAE工程师岗位要求:薪资:15K左右,会根据实际面试情况做相应调整。一些聊天内容的消息供大家参考&…

Linux同步原语系列-spinlock及其演进优化

1. 引言通常我们的说的同步其实有两个层面的意思:一个是线程间的同步,主要是为了按照编程者指定的特定顺序执行;另外一个是数据的同步,主要是为了保存数据。为了高效解决同步问题,前人抽象出同步原语供开发者使用。不仅…

linux环境部署python3+django

1. 确定Linux安装C/C编译器,在线安装: yum install gcc gcc-c autoconf automake 2. 安装依赖环境: yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel 3. …

hp-socket 文本跟图片同时发送_文本、截图和应用,这样「包装」一秒变美观

社交网络被发明出来的一个重要目的就是分享,无论是所见所闻还是喜怒哀乐,亦或是脑海中突然迸发出的一段妙言,某个转瞬即逝的精彩瞬间,一篇深度好文,一个在少数派看到的绝赞应用……分享内容丰富多彩,相比之…

poj2041

简单题 View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;#define maxn 30char order[maxn];char st[maxn];int l;void work(char ch){char x;int d;switch (ch) …

[转]Angular2 Material2 封装组件 —— confirmDialog确定框

本文转自&#xff1a;https://www.jianshu.com/p/0c566fc1730d 环境&#xff1a; Angular 4.0.0 Angular2 Material2 2.0.0-beta.3 node v7.4.0 npm 4.0.5 使用Dialog封装confirmDialog确定框 源代码 来&#xff0c;首先来看效果图~ 删除例子确定删除框点击确定后返回值1.定义通…

项目实战|100个蓝牙接收器发货了

还记得之前写的这篇文章不&#xff1a;《一个蓝牙实战项目的掏肺总结》&#xff0c;这个项目最近做完了&#xff0c;交了100套出去&#xff0c;这是发货前的大合照&#xff1a;做完此项目&#xff0c;有些许收获&#xff0c;在此分享给大家。东西虽简单&#xff0c;但它依然是一…

深圳的冬天真的来了

天气预报说&#xff0c;明天深圳的天气会很低。热了一整年&#xff0c;这次一定是真的了&#xff0c;大家出门记得穿厚一些。

date js 半年_moment.js 搜索栏获取最近一周,一个月,三个月,半年,一年时间

统计时间label: 统计时间,name: countTime,type: select,data: [{value: 0,text: 最近一周},{value: 1,text: 一个月},{value: 2,text: 三个月},{value: 3,text: 半年},{value: 4,text: 一年}]实现方式searchValue为搜索栏所选所填内容&#xff0c; 以及作为搜索和接口调用条件…

华为eudemon 200E的hrp双心跳热备配置

本文为大家介绍使用两台华为Eudemon200E防火墙实现双机双心跳的HRP热备的配置实例&#xff0c;主要的知识点包括&#xff1a;华为防火墙HRP、VRRP的配置&#xff0c;定义防火墙区域。 一、网络拓扑&#xff1a;二、配置要求&#xff1a; 1、两台防火墙为E200E-A和E200E-B&#…

2021 年 Linux 界的 12 件大事

2021年即将结束了&#xff0c;今天就和大家分享一些来自Linux世界最重要的大事&#xff0c;这些事件大大影响了Linux用户&#xff1a;1、理查德斯托曼回归2019年&#xff0c;自由软件基金会(Free Software Foundation)创始人理查德斯托曼&#xff08;Richard Stallman&#xff…

关于Treap的学习感受

好了我就很愉快的回来补坑了~ Treap也是一种平衡树&#xff0c;它较普通二叉查找树而言&#xff0c;每个节点被赋予了一个新的属性&#xff1a;优先级&#xff08;没错就是类似优先队列的优先&#xff09;&#xff0c;对于Treap中的每个结点&#xff0c;除了它的权值满足二叉查…

2022年考研结束了

为期两天的研究生考试结束了。我没参加研究生考试&#xff0c;所以对研究生考试的压力不从得知&#xff0c;我从一个外人的角度来看&#xff0c;这无非就是一个简单的考试&#xff0c;考上了欢喜雀跃&#xff0c;考不上嘛&#xff0c;我就会说&#xff0c;大不了来年再考一次&a…

挂“洋头”卖奶粉,澳优还要欺骗好久

澳优奶粉近期被质疑非进口产品&#xff0c;公司总部实为湖南一家贴牌商。该奶粉生产商澳优乳业公司回应称其为“国外产品与本国品牌相结合”的国际化企业。但奶粉包装仍被质疑误导消费者&#xff0c;且售价偏高&#xff0c;澳优方称“与其高端品质相比只属于中上水平”&#xf…

mysql通过局域网访问数据库_MySQL数据库之局域网内访问同一个mysql数据库

本文主要向大家介绍了MySQL数据库之局域网内访问同一个mysql数据库 &#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。局域网内访问同一个mysql数据库。一、运行cmd&#xff0c;输入mysql -u root -p。二、输入mysql数据库密码&#xff0c…

约翰·冯·诺依曼:一个向上帝买了挂的男人!!

来源|David 小咸鱼/新智元约翰冯诺依曼是20世纪最有影响力的人物之一。从原子弹&#xff0c;到计算机、再到量子力学、气候变化&#xff0c;你可能很难再找出像这样对我们今天的世界和生活影响更大的科学家了。在20世纪的天才中&#xff0c;有几个杰出的人物&#xff1a;爱因斯…

POJ 2976 Dropping Tests

http://poj.org/problem?id2976 题目大意&#xff1a;给定n个二元组(a,b)&#xff0c;扔掉k个二元组&#xff0c;使得剩下的 最大。 这两天一直在搞分数规划&#xff0c;有了前两道题&#xff08;3621、2728&#xff09;&#xff0c;这道题就是完完全全的大水题了。 设 r100…

回调函数这个是什么鬼?

这是一个同学在微信给我提问的问题。要搞清楚回调函数&#xff0c;我们首先要搞清楚函数&#xff0c;函数其实就是一个地址&#xff0c;这个地址描述了这个函数在内存中的位置。但是函数和变量也是一样的&#xff0c;有类型&#xff0c;对变量来说&#xff0c;变量会分成各种类…