#face #dlib #recognition #wrapper #detector #rectangle #improve

dlib-face-recognition

对 C++ 库 dlib 的非官方 Rust 封装,人脸识别工具

14 个版本

0.3.2 2023年10月2日
0.3.1 2023年8月31日
0.3.0 2023年4月19日
0.2.3 2022年11月10日
0.1.1 2020年5月29日

#124 in 图像

Download history 14/week @ 2024-04-06 6/week @ 2024-04-13 25/week @ 2024-04-20 15/week @ 2024-04-27 7/week @ 2024-05-04 16/week @ 2024-05-11 16/week @ 2024-05-18 6/week @ 2024-05-25 30/week @ 2024-06-01 18/week @ 2024-06-08 8/week @ 2024-06-15 11/week @ 2024-06-22 4/week @ 2024-06-29 10/week @ 2024-07-06 5/week @ 2024-07-13 38/week @ 2024-07-20

每月 59 次下载
用于 dlib-face-recognition-cv

BSD-3-Clause 许可协议

47KB
933 代码行

dlib-face-recognition

Current Crates.io Version

受类似 Python 库 a similar python library 的启发,dlib-face-recognition 是一个 Rust 库,用于绑定到 dlib C++ 库 的某些特定功能。

本仓库将致力于改进库的内容。

包括以下内容:

  • 一个基于 FHOG 的人脸检测器。
  • 一个基于 CNN 的人脸检测器(较慢,但更强大)。
  • 一个用于从人脸矩形中识别特定地标(眼睛、鼻子等)的人脸关键点预测器。
  • 一个用于生成 128 维人脸编码的人脸编码神经网络,这些编码可以通过其欧几里得距离进行比较。

原始工作

原始工作在这里 here (unmaintaned; since Aug 2021)

构建

支持的平台

  • Linux { aarch64, x86_64 }
    • Ubuntu 20.04
  • MacOS { aarch64, x86_64 }
    • Apple Silicon (Apple M1)
  • Windows { x86_64 }
    • Windows 10

为了更好的维护,请告诉我们其他平台是否支持它。此外,您可以通过 Issues 告诉我们是否应该支持特定的平台。

依赖项

  • cmake
  • Blas
  • Openblas(可选;启用 openblas 功能时,覆盖 blas 以获得更好的性能)
  • dlib(可选;通过启用 build-native 功能可以跳过)
  • lapack

对于Windows系统,可以使用 vcpkg 来构建Blaslapack。对于Linux等其他平台,包管理器应支持安装它们。

构建本地库

dlib-face-recognition需要安装dlib。您可以选择提供现有的系统级安装,或者使用此库进行构建。

  • 在编译时构建
    • cargo build --features build-native
      
  • 使用系统级依赖项
    • cargo build
      

当启用build-native功能标志时,C++库dlib将通过dlib-face-recognition-sys进行安装。

为此库的构建,使用cmake,请确保已安装 cmake

build-native标志默认禁用,以提供更长的构建时间。

构建Rust包

dlib-face-recognition包含一个embed-all功能标志,可以与cargo build --features embed-all一起使用。

embed-all将启用匹配结构的Default::default实现。这些将在运行时搜索/files文件夹,如果文件不存在,它将被下载。

  • CNN人脸检测器:[链接](http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2)
  • 地标预测器:[链接](http://dlib.net/files/mmod_human_face_detector.dat.bz2)
  • 人脸识别网络:[链接](http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2)

建议在编译/运行前获取这些文件,并将它们放置在受保护的位置。默认禁用embed-all标志,以提供更长的构建时间。

测试

包含一个测试用例用于识别和绘制人脸的点

  • cargo run --features embed-all --example draw -> 运行示例。

包含两个用于基准测试代码和测试一些函数的文件

  • cargo test --features embed-all --test benchmarks -> 运行基准测试。
  • cargo test --features embed-all --test utilities_tests -> 运行实用程序测试器。

示例

有关示例的更多信息:[链接](https://github.com/ulagbulag/dlib-face-recognition/tree/master/examples/README.md)

依赖项

~2–15MB
~191K SLoC