pb 调用虹软_记C# 调用虹软人脸识别 那些坑

上一个东家是从事安防行业的,致力于人工智能领域,有自主人脸识别、步态识别的算法。C++同事比较称职有什么问题都可以第一时间反馈,并得到合理的处理,封装的DLL 是基于更高性能的GPU算法,可支持更多线路的运算,接口调用简单,只需要传入图片即可得到特征值。对于公司的项目,更多的是与各类接口进行交互。包括建立任务、上传视频、截取片段,抽取特征,学习特征,步态比对等对接接口的复杂业务逻辑。由于长期和C++接口对接,包括Kafka消息队列传输等,对于公司项目支撑的业务流程比较了解。至于底层算法,只是一知半解,知道些许流程。现在负责升级公司的人脸识别系统,毕竟之前也有点相关经验,所以一开始不觉得是个难点。公司使用虹软人脸识别,目前这家公司只有CPU版本的,还没出GPU。一上来便是官网下载当前最新 2.2版本的SDK、winform版本的Demo,按照文档要求拷贝SDK的dll到bin(x64)下目录,然后填写Key 和 appId ,运行Demo,放几张图片一对比,分数, 效果都不错。

正式第一次调用虹软2.2人脸识别时,遇到了各种各样的坑,这里做一个记录,整理一下,也为了其他人遇到类似的问题可以供作参考,以避坑节省时间。

开发环境 win7,server2008,server2012,VS2017  未下载各种相关关图片的程序包,百度一大堆需要安装软件包的,一番操作下来 , 浪费时间不说 , 到最后只是徒劳

实际使用人脸识别时,肯定是作为类库去调用,项目中新建一类库,将Demo中需要用到的类文件拷贝,再将初始化引擎和提取特征,比对特征的方法提出来单独建立cs类方便调用,然后拷贝对应版本的SDK,一运行就是报错,初始化失败,错误值90113(官方文档表示 dll文件无访问权限,或当前目录可用空间不足),按照网上解决方案,选中sdk下的三个dll文件,右键属性,添加读写权限(仍然90113),然后所在文件夹添加读写权限(仍然90113),最后项目根目录添加仍然没有改变,这里还是赞扬一下虹软的反馈时效,工作期间提交工单基本半个小时内就有反馈。 其次百度,发现铺天盖地的说的都是缺少dll文件,却没有一个整体情况的说明,而且也没告知运行的版本,环境,很难对症下药,各种操作一番很耽误功夫,也没效果,着实让人抓狂。

初始化引擎失败 (90113)

① VS管理员身份运行

② 程序池-发布项目-高级设置-标识-LoacalSystem

③电脑缺少2013C++运行库,部署不同服务器的时候,保不齐有个服务器缺少环境(2.2,3.0 对应的是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依赖的环境(一般是部署在Windows Server的服务器),服务器里面添加功能时,勾选墨迹和手写服务、桌面安装两项即可。

③项目根目录是否缺少x64/x86文件夹及其下对应dll

④运行环境缺少指定的补丁包 ,尝试下载并安装 Windows8.1-KB2999226-x64 (Windows Server 2012服务器)程序包完成更新后,重启计算机

⑤若程序不需要IR活体检测,可以参照2.0的版本来读取图片消息(ReadBMP)

视图加载格式不正确的程序 这个错误有坑(虹软3.0增值版 32位)

①IIS 程序池-启用32位应用程序--选择 true

②检查当前电脑是否有

目前针对C# 64位调用虹软2.2 人脸识别中遇到的问题就这些, C# 32位调用虹软3.0 人脸识别(增加口罩功能),再处理完以上问题之后,暂时未发现新的环境问题。看起来其实没多少,只是这些解决方案的背后都是无数次的百度,和花费大量时间成本验证后得到的方案,为此作为记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值