14 个版本
0.3.2 | 2023年10月2日 |
---|---|
0.3.1 | 2023年8月31日 |
0.3.0 |
|
0.2.3 | 2022年11月10日 |
0.1.1 | 2020年5月29日 |
#124 in 图像
每月 59 次下载
用于 dlib-face-recognition-cv
47KB
933 代码行
dlib-face-recognition
受类似 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
)
- Apple Silicon (
- Windows { x86_64 }
- Windows 10
为了更好的维护,请告诉我们其他平台是否支持它。此外,您可以通过 Issues
告诉我们是否应该支持特定的平台。
依赖项
- cmake
- Blas
- Openblas(可选;启用
openblas
功能时,覆盖 blas 以获得更好的性能) - dlib(可选;通过启用
build-native
功能可以跳过) - lapack
对于Windows系统,可以使用 vcpkg
来构建Blas
和lapack
。对于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