项目简介
FaceAPI 是一个基于人工智能的工具,专注于面部检测和旋转跟踪、面部描述和识别,并可利用 TensorFlow/JS 在浏览器和 NodeJS 环境下进行年龄、性别及情感预测。项目由 Vlad Mandic 开发,旨在提供一个现代化且高效的面部分析工具。
功能特点
FaceAPI 提供了以下主要功能:
- 面部检测和旋转跟踪:可以识别图像或视屏中的面部,并检测面部的旋转角度。
- 面部描述和辨识:分析面部特征并进行识别。
- 年龄、性别和情感预测:通过分析面部特征,预测个体的年龄、性别和情感状态。
项目示例
浏览器端示例
- 静态图像处理:FaceAPI 提供了对静态图像分析的支持。用户可以在浏览器中使用包含的示例
/demo/index.html
进行测试。 - 实时摄像头处理:支持使用实时摄像头进行面部检测,示例可以在
/demo/webcam.html
中查看。
NodeJS 示例
- 简单演示:在不到 30 行代码中快速实现面部分析。
- 图像加载与处理:使用
TFJS
或第三方模块如canvas
进行图像加载、绘制和保存。 - 面部相似度比较:比较多张图片中的面部相似度。
- 多进程示例:展示了如何使用 worker 进程池进行多线程处理,以提高效率。
快速入门
FaceAPI 可以通过 CDN 快速集成到网页中,只需将最新版本的 face-api.js
文件引入 HTML 即可。选择 jsdelivr
或 unpkg
任意一个进行集成。
安装说明
FaceAPI 提供了多种预编译版本,可根据需求选择合适的版本:
- 浏览器端:提供 IIFE 和 ESM 格式,支持预编译或不带 TFJS 的版本。
- 服务端(NodeJS):提供 CommonJS 格式,支持直接使用或 CUDA GPU 加速的版本。
使用前需要确保安装了相应的 TensorFlow JS 版本,以便正常运行。
构建和测试
对于开发者,可以在 GitHub 上获取源码后,进行完整构建和本地测试。内置的测试与开发服务器提供 HTTP 和 HTTPS 支持,可用于本地开发环境的快速测试。
特性与更新
FaceAPI 支持最新的 TensorFlow/JS 版本,与 WebGL、CPU 和 WASM 的 TFJS 浏览器后端兼容。同时支持 tfjs-node
和 tfjs-node-gpu
的 NodeJS 后端,提供了灵活的集成与部署方案。
在原始项目的基础上,FaceAPI 更新和增强了多个功能模块,并支持最新的 web 标准,可用于各种复杂面部分析场景。
面部网格模型
FaceAPI 提供的 68 点面部网格模型,可以用于细致的面部解析与特征点检测。
项目贡献者及版本差异
FaceAPI 基于开源项目 face-api.js,并已适配最新的 TensorFlow/JS 版本,增加了诸如版本检测、内置测试服务器等功能,持续维护和更新。最新版本的 FaceAPI 被 superseded by 我的另一个库 Human
,后者提供更丰富的功能与检测细节。
在使用过程中,开发者可以根据实际应用场景选择合适的版本及安装方式,也可以根据开源许可证进行项目贡献和代码修改。