记C# 调用虹软人脸识别 那些坑
上一个东家是从事安防行业的,致力于人工智能领域,有自主人脸识别、步态识别的算法。C++同事比较称职有什么问题都可以第一时间反馈,并得到合理的处理,封装的DLL 是基于更高性能的GPU算法,可支持更多线路的运算,接口调用简单,只需要传入图片即可得到特征特征值。对于公司的项目,更多的是与各类接口进行交互。包括建立任务、上传视频、截取片段,抽取特征,学习特征,步态比对等对接接口的复杂业务逻辑。由于长期和C++接口对接,包括Kafka消息队列传输等,对于公司项目支撑的业务流程比较了解。至于底层算法,只是一知半解,知道一点点流程。现在再调用虹软2.2人脸识别的过程中,遇到了各种各样的坑,这里做一个记录,整理一下,也为了其他人遇到类似的问题可以供作参考,以避坑节省时间。
现在负责升级公司的人脸识别系统,毕竟之前也有点相关经验,所以一开始不觉得是个难点。公司使用虹软人脸识别,目前这家公司只有CPU版本的,还没出GPU。一上来便是官网下载2.2版本的SDK、winform版本的Demo,按照文档要求拷贝SDK的dll到bin(x64)下目录,然后填写Key 和 appId ,运行Demo,放几张图片一对比,分数挺高,效果挺好。
正常使用肯定时作为类库调用,在项目中新建一类库,将Demo中需要用到的类文件拷贝,再将初始化引擎和提取特征,比对特征的方法提出来单独建立cs类方便调用,然后拷贝对应版本的SDK,一运行就是报错,初始化失败,错误值90113(官方文档表示 dll文件无访问权限,或当前目录可用空间不足),按照网上解决方案,选中sdk下的三个dll文件,右键属性,添加读写权限(仍然90113),然后所在文件夹添加读写权限(仍然90113),最后项目根目录添加仍然没有改变,这里还是赞扬一下虹软的反馈时效,工作期间提交工单基本半个小时内就有反馈。 其次百度,发现铺天盖地的说的都是缺少dll文件,却没有一个整体情况的说明,而且也没告知运行的版本,环境,也是着实让人抓狂。
初始化引擎失败 (90113)
① VS管理员身份运行
② 程序池-发布项目-高级设置-标识-LoacalSystem
③电脑缺少2013C++运行库,部署不同服务器的时候,保不齐有个服务器缺少环境(2.2对应的是2013版本的C++库,2015无效)
当然初始化引擎成功只是第一步,实际运用中,比如 传图片获取特征值时,基于虹软目前最新发布的2.2 的版本中,在处理图片提取特征前,加入了活体检测的功能,引用了 Emgu.CV.World.dll 这个dll(如果程序用不上活体,可以屏蔽,使用旧版本的图像处理方法ImageUtil.ReadBMP),于是各种问题接踵而至
无法加载 DLL“libarcsoft_fsdk_face_detection.dll”: 找不到指定的模块 ,这个错误很常见,可能的原因也有很多,就目前整理的情况如下
①该dll 缺失,检查bin目录是否存在此文件
②该dll 依赖的其他dll缺失
Emgu.CV.CvInvoke的类型初始值设定项引发异常(无法加载 DLL“cvextern”: 找不到指定的模块),这个错误很坑爹,处理起来比较花费时间
①缺少cvextern.dll,将demo中debug下的x64/x86文件夹拷贝到项目的bin目录下(连同文件夹)
②电脑缺少Opencv依赖的环境(一般是部署在Window Service的服务器),服务器里面添加功能时,勾选墨迹和手写服务、桌面安装两项即可。
③项目根目录是否缺少x64/x86文件夹及其下对应dll
④运行环境缺少指定的补丁包 ,尝试下载并安装 Windows8.1-KB2999226-x64 (Window Service2012服务器)程序包完成更新后,重启计算机
目前针对C# 64位调用虹软2.2 人脸识别中遇到的问题就这些,看起来其实没多少,只是这些解决方案的背后都是无数次的百度,和大量时间成本验证后得到的方案,为此作为记录。
记C# 调用虹软人脸识别 那些坑的更多相关文章
- 虹软人脸识别SDK在网络摄像头中的实际应用
目前在人脸识别领域中,网络摄像头的使用很普遍,但接入网络摄像头和人脸识别SDK有一定门槛,在此篇中介绍过虹软人脸识别SDK的接入流程,本文着重介绍网络摄像头获取视频流并处理的流程(红色框内),以下内容 ...
- 虹软人脸识别 - faceId及IR活体检测的更新介绍
虹软人脸识别 - faceId及IR活体检测的介绍 前几天虹软推出了 Android ArcFace 2.2版本的SDK,相比于2.1版本,2.2版本中的变化如下: VIDEO模式新增faceId(类 ...
- 虹软人脸识别 - faceId及IR活体检测的介绍
虹软人脸识别 - faceId及IR活体检测的介绍 前几天虹软推出了 Android ArcFace 2.2版本的SDK,相比于2.1版本,2.2版本中的变化如下: VIDEO模式新增faceId(类 ...
- 基于虹软人脸识别,实现RTMP直播推流追踪视频中所有人脸信息(C#)
前言 大家应该都知道几个很常见的例子,比如在张学友的演唱会,在安检通道检票时,通过人像识别系统成功识别捉了好多在逃人员,被称为逃犯克星:人行横道不遵守交通规则闯红灯的路人被人脸识别系统抓拍放在大屏上以 ...
- 虹软人脸识别SDK接入Milvus实现海量人脸快速检索
一.背景 人脸识别是近年来最热门的计算机视觉领域的应用之一,而且现在已经出现了非常多的人脸识别算法,如:DeepID.FaceNet.DeepFace等等.人脸识别被广泛应用于景区.客运.酒店.办公室 ...
- 虹软人脸识别 - Android Camera实时人脸追踪画框适配
在使用虹软人脸识别Android SDK的过程中 ,预览时一般都需要绘制人脸框,但是和PC平台相机应用不同,在Android平台相机进行应用开发还需要考虑前后置相机切换.设备横竖屏切换等情况,因此在人 ...
- Android打开相机进行人脸识别,使用虹软人脸识别引擎
上一张效果图,渣画质,能看就好 功能说明: 人脸识别使用的是虹软的FreeSDK,包含人脸追踪,人脸检测,人脸识别,年龄.性别检测功能,其中本demo只使用了FT和FR(人脸追踪和人脸识别),封装了开 ...
- 在nodejs中的集成虹软人脸识别
==虹软官网地址==http://www.arcsoft.com.cn 在官网注册账号,并且申请人脸识别激活码, 选择SDK版本和运行系统(windows/linux/android/ios) ,我们 ...
- 虹软人脸识别——官方 Qt Demo 移植到 Linux
一.前言 最近需要在 Linux 平台下开发一个人脸识别相关的应用,用到了虹软的人脸识别 SDK.之前在 Windows 平台用过,感觉不错,SDK 里面还带了 Demo 可以快速看到效果.打开 Li ...
随机推荐
- POSIX 正则表达式 BRE与ERE的差异
BRE,标准正则表达式,basic regular expressions ERE,扩展正则表达式,Extended Regular Expressions POSIX 正则表达式 传统上,POSIX ...
- UAVStack JVM监控分析工具:图形化展示采集及分析监控数据
摘要:UAVStack推出的JVM监控分析工具提供基于页面的展现方式,以图形化的方式展示采集到的监控数据:同时提供JVM基本参数获取.内存dump.线程分析.内存分配采样和热点方法分析等功能. 引言 ...
- pom文件语法无误却报红叉(Unknown error)的可能原因
本文链接:https://blog.csdn.net/Little_Stars/article/details/94553090可能原因及解决办法: >> 缓存问题,只要 “Maven - ...
- C#中字符串的操作大全
一.C#中字符串的建立过程 例如定义变量 strT="Welcome to "; strT+="www.cuit.edu.cn"; 程序首先创建一个System ...
- PIE SDK加载WMS服务数据
1. 功能简介 WMS服务,WMS是OGC标准中比较简单也是比较重要的标准之一.它全称是“Web Map Service”(网络地图服务):利用具有地理空间位置信息的数据制作地图.其中将地图定义为 ...
- win10安装MySQL5.6.
我分了两种下载安装的方式给大家看,注意数据库这个东西不在乎版本是不是最新,在乎的是够稳定,现在公司中常用的是mysql5.5和mysql5.6的版本,我现在就用mysql5.6的版本给大家来演示一下: ...
- i春秋——“百度杯”CTF比赛 十月场——EXEC(命令执行、带外通道传输数据)
查看源码得知由vim编写,所以查找备份以及交换文件 找到 /.index.php.swp ,下载后用vim -r恢复该文件即可得到源码 1 <html> 2 <head> 3 ...
- .net web mvc 权限验证
这里分享MVC的权限验证,内容中可能存在一些,莫名其妙的方法,那些是以前封装好的,大致可以根据方法名称知道他的意思. using Game.Entity; using Game.Entity.Plat ...
- Linux从入门到放弃、零基础入门Linux(第一篇):计算机操作系统简介、linux介绍
一.计算机操作系统简介 操作系统的定义: 操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间. 操作系统的内核的定义: 操作系统的内核是一个管理和控制程序,负责 ...
- XGBoost 引入 - 提升树
认识提升树 这个boosting 跟 Adaboost 不同. Adaboost 是通过上一轮的误差率来动态给定一下轮样本不同的权重来学习不同的模型. 现在的方式, 更多是基于残差 的方式来训练. 一 ...