虹软人脸识别ArcSoft3.0NodeJs 版本实现

本文介绍了如何使用Node.js结合ArcSoft3.0 SDK实现人脸识别。项目支持Windows和Linux,基于electron-vue创建,通过ffi库调用C++库,并在主线程中与SDK交互。在Windows环境下,推荐使用opencv4nodejs进行图像处理,但在Linux下则需调整为.so文件。文章详细讲述了项目设置、环境安装、代码结构和常见问题。
摘要由CSDN通过智能技术生成

ArcSoft3.0_Nodejs

一、项目说明

虹软官网传送门 ,有不同平台和不同版本的sdk,有需要的根据业务下载。
此次项目支持windows和linux系统,mac 由于 禁用electron打包的应用。

  1. 项目由electron-vue脚手架创建。
  2. 在主线程中实现与虹软SDK交互,如果还需要和render层交互,还需使用app.on来接收render层传过来的业务。
  3. vue打包时,需要在package.json中配置包含路径。
  4. 采用ffi库调用C++库,ref资料1
    ref资料2
    ref资料3
    其它的请自行百度,此处就不细细阐述了。
  5. 图片处理有两种,一种是opencv4nodejs(node版本大于10.x,我用的是10的最后一版本,最新版本的用的python3.3,编译问题太多),一种是jimp,都有方法实现,我推荐opencv,处理速度快,但是配置环境略复杂。
    资料看官方的npm即可,其余资料参考python调用opencv的方法类似。
  6. 此次主要针对window版本的dll,linux调用方法一样,将路径换位自己的路径即可,文件名为.so

二、ffi安装及环境安装

1、安装 Visual Studio 15 生成工具 2017 
利用 微软自带的安装exe  【vs_BuildTools.exe】
目录:C:\Users\Administrator\.windows-build-tools,脚本安装时,会因为安装包过大和网络问题,导致安装失败。

2、指定编译MSBuild.exe位置,因为2019和上述装的2017都有这个exe,最好使用2017的,2019我安装失败了。
npm config set msbuild_path "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe"

3、指定python版本,还是建议2.7,其他高版本问题太多,我的3.8.5(不推荐)
npm config set python C:/Python27
npm config set python C:/python3.8.5

3、安装gyp
npm install node-gyp -g
或者
npm install --global node-gyp@latest

4、安装ffi ref
npm install ffi -g
npm install ref -g
成功编译

三、opencv4nodejs的安装

手动安装opencv的环境,设置环境变量
OPENCV_BIN_DIR=E:\commonsoft\opencv\build\x64\vc14\bin
OPENCV_INCLUDE_DIR=E:\commonsoft\opencv\build\include
OPENCV_LIB_DIR=E:\commonsoft\opencv\build\x64\vc14\lib

此处这么安装,成功率90%
set OPENCV4NODEJS_DISABLE_AUTOBUILD=1
npm i -g opencv4nodejs

四、代码结构

├─.electron-vue
├─.idea
├─build
│  └─icons
├─dist
│  ├─electron
│  └─web
├─images
├─src
│  ├─main
│  │  ├─inc
│  │  ├─lib
│  │  │  ├─X64
│  │  │  └─X86
│  │  └─modual
│  │      ├─img
│  │      │  ├─faces
│  │      │  └─test
│  │      └─log
│  └─renderer
│      ├─assets
│      ├─components
│      │  └─LandingPage
│      ├─router
│      └─store
│          └─modules
├─static
└─test
    ├─e2e
    │  └─specs
    └─unit

modual文件夹为人脸识别工作目录
lib文件夹为放置dll文件路径的地方,x86 x64 为对应的版本
img 图片路径(faces 为 drawFace 的操作路径 test 是 cvImages 的操作路径)

五、代码调用实例及说明


const arc_face = require('./face_engine');
const path = require('path');
const config = require('./config');
const m = require('./logger');
const client = require('./clients');
const imageHelper = require('./face_cv_image');
const fsUtil = require('./fileUtils');


// 设置dll路径
let dllPath = "";
if (process.env.NODE_ENV !== 'development') {
   
    dllPath = require('path').join(__dirname, '../../main/lib/X64').replace(/\\/g, '\\\\')
}else{
   
    dllPath = require('path').join(__dirname, '../lib/X64').replace(/\\/g, '\\\\')
}
// 添加DLL所在目录到环境变量
process.env['PATH'] = `${
    process.env.PATH};${
    dllPath}`;

// 初始化接口
const arc = new arc_face(config.lib_win64);

Object
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值