Sign inSign up

colinchang/arcface5

By colinchang

•Updated over 2 years ago

Image
0

131

colinchang/arcface5 repository overview

⁠ArcFace.Net

虹软人脸识别.NET工具库(.Net 6)。基于ArcFace 3.x C++ SDK, 支持Windows x86/x64和Linux x64. 支持人脸库属性检测、人脸特征提取、人脸库维护、人脸搜索、活体检测等功能。

⁠Nuget

https://www.nuget.org/packages/ArcFace.Net/⁠

⁠版本差异

  • 4.x 图像处理基于System.Drawing开发,微软在 .Net 6 及之后版本已不再维护
  • 5.x 图像处理基于ImageSharp⁠开发,仅支持.Net 6+

⁠平台支持

  1. Windows x86/x64

  2. Linux x64

    • 该程序基于ArcFace 3.x C++ SDK开发,DllImport引入C++动态库时依赖于Linux系统库(libdl.so.2),因此低配Linux环境(如alpine等)可能存在兼容性问题。 经测试以下可以正常运行。
      • Debian 10 +
      • Ubuntu20.04 +
      • CentOS 8 +
  3. Docker

    我们为本程序库的运行环境打包了Docker镜像,有需要的读者可以点此获取⁠,也可以使用 Dockerfiles⁠ 中的不同版本的 Dockerfile 文件自行编译。

docker build -f Dockerfiles/aspnet-6.0/Dockerfile -t colinchang/arcface5:aspnet-6.0 .
docker build -f Dockerfiles/runtime-6.0/Dockerfile -t colinchang/arcface5:runtime-6.0 .

⁠SDK

从 虹软开发者中心⁠或此处⁠下载需要的SDK 3.x文件并放置同特定目录。

  • Windows 需要将SDK dll文件拷贝到执行程序所在目录,或环境变量配置的目录
  • Linux 需要将SDK so文件拷贝到 /lib 系统程序目录,或环境变量配置的目录

从 虹软开发者中心⁠ 获取授权信息(AppId/SdkKey),通过ArcFaceOptions传入配置。具体用法参见 示例程序⁠。

⁠资源回收

  • 工具中自动维护引擎池进行资源回收利用,无需手动管理。
  • 工具支持多并发操作。
  • 推荐使用单例方式使用。
  • ArcFace 实现 IDisposable,使用完毕后需要 Dispose() 以销毁引擎回收其它相关内存。

⁠图像质量要求

  • 图片尺寸大于2K且小于10MB
  • 图片格式支持 .jpg, .png, .bmp
  • 图片中人脸尺寸不小于50 x 50像素
  • 建议待检测的图像人脸角度上、下、左、右转向小于30度

⁠人脸3D角度

俯仰角(pitch), 横滚角(roll), 偏航角(yaw)

人脸3D角度

⁠错误码

错误码名十六进制十进制描述
MOK0x00成功
MERR_UNKNOWN0x11错误原因不明
MERR_INVALID_PARAM0x22无效的参数
MERR_UNSUPPORTED0x33引擎不支持
MERR_NO_MEMORY0x44内存不足
MERR_BAD_STATE0x55状态错误
MERR_USER_CANCEL0x66用户取消相关操作
MERR_EXPIRED0x77操作时间过期
MERR_USER_PAUSE0x88用户暂停操作
MERR_BUFFER_OVERFLOW0x99缓冲上溢
MERR_BUFFER_UNDERFLOW0xA10缓冲下溢
MERR_NO_DISKSPACE0xB11存贮空间不足
MERR_COMPONENT_NOT_EXIST0xC12组件不存在
MERR_GLOBAL_DATA_NOT_EXIST0xD13全局数据不存在
MERR_FSDK_INVALID_APP_ID0x700128673无效的 AppId
MERR_FSDK_INVALID_SDK_ID0x700228674无效的 SDKkey
MERR_FSDK_INVALID_ID_PAIR0x700328675AppId 和 SDKKey 不匹配
MERR_FSDK_MISMATCH_ID_AND_SDK0x700428676SDKKey 和使用的 SDK 不匹配,请检查入参
MERR_FSDK_SYSTEM_VERSION_UNSUPPORTED0x700528677系统版本不被当前 SDK 所支持
MERR_FSDK_LICENCE_EXPIRED0x700628678SDK 有效期过期,需要重新下载更新
MERR_FSDK_FR_INVALID_MEMORY_INFO0x1200173729无效的输入内存
MERR_FSDK_FR_INVALID_IMAGE_INFO0x1200273730无效的输入图像参数
MERR_FSDK_FR_INVALID_FACE_INFO0x1200373731无效的脸部信息
MERR_FSDK_FR_NO_GPU_AVAILABLE0x1200473732当前设备无 GPU 可用
MERR_FSDK_FR_MISMATCHED_FEATURE_LEVEL0x1200573733待比较的两个人脸特征的版本不一致
MERR_FSDK_FACEFEATURE_UNKNOWN0x1400181921人脸特征检测错误未知
MERR_FSDK_FACEFEATURE_MEMORY0x1400281922人脸特征检测内存错误
MERR_FSDK_FACEFEATURE_INVALID_FORMAT0x1400381923人脸特征检测格式错误
MERR_FSDK_FACEFEATURE_INVALID_PARAM0x1400481924人脸特征检测参数错误
MERR_FSDK_FACEFEATURE_LOW_CONFIDENCE_LEVEL0x1400581925人脸特征检测结果置信度低
MERR_ASF_EX_FEATURE_UNSUPPORTED_ON_INIT0x1500186017Engine 不支持的检测属性
MERR_ASF_EX_FEATURE_UNINITED0x1500286018需要检测的属性未初始化
MERR_ASF_EX_FEATURE_UNPROCESSED0x1500386019待获取的属性未在 process 中处理过
MERR_ASF_EX_FEATURE_UNSUPPORTED_ON_PROCESS0x1500486020PROCESS 不支持的检测属性,例如 FR,有自己独立的 处理函数
MERR_ASF_EX_INVALID_IMAGE_INFO0x1500586021无效的输入图像
MERR_ASF_EX_INVALID_FACE_INFO0x1500686022无效的脸部信息
MERR_ASF_ACTIVATION_FAIL0x1600190113SDK 激活失败,请打开读写权限
MERR_ASF_ALREADY_ACTIVATED0x1600290114SDK 已激活
MERR_ASF_NOT_ACTIVATED0x1600390115SDK 未激活
MERR_ASF_SCALE_NOT_SUPPORT0x1600490116detectFaceScaleVal 不支持
MERR_ASF_ACTIVEFILE_SDKTYPE_MISMATCH0x1600590117激活文件与 SDK 类型不匹配,请确认使用的 sdk
MERR_ASF_DEVICE_MISMATCH0x1600690118设备不匹配
MERR_ASF_UNIQUE_IDENTIFIER_ILLEGAL0x1600790119唯一标识不合法

⁠问题

  • 人脸检测和特性提取目前进识别到的人脸角度不准确,目前识别到的角度均为0度。
  • 视频模式人脸追踪未开发
  • 活体检测未开发

⁠参考文档

https://github.com/colin-chang/ArcFace.Net/blob/main/sdk_3.0.pdf⁠

Tag summary

Content type

Image

Digest

sha256:5df70b33d…

Size

110.5 MB

Last updated

over 2 years ago

docker pull colinchang/arcface5:runtime-6.0