@capacitor-mlkit/face-detection

中文文档
8.2.2发布于 2026/10/31Apache-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 6309

在Android和iOS上为ML Kit Face检测所安装的电容插件.

中文使用文档
文档目录25 节
  1. 使用大小写
  2. 兼容性
  3. 安装
  4. 机器人
  5. iOS系统
  6. 配置
  7. 演示
  8. 使用量
  9. 在图像中检测面相
  10. API 密码
  11. 进程图像(...)
  12. 接口
  13. 数字
  14. 财务问题
  15. 此插件支持哪些平台 ?
  16. 插件是否识别图片中是谁 ?
  17. 地标和轮廓有什么区别?
  18. 我怎么才能发现一个人是笑着还是睁开眼睛?
  19. 此插件与 Face Mesh 检测插件有何不同 ?
  20. 我能用这个插件吗? 有Ionic、React、Vue或Angular?
  21. 相关插件
  22. 术语和隐私
  23. 通讯
  24. 更改日志
  25. 许可证

电容 ML Kit 面部检测插件

非官方电容插件 ML Kit 面部检测[^1]

使用大小写

通常在应用程序需要定位图像中面相时使用面相检测插件,例如:

  • 图片组织: 检测哪些相片包含面相并位于何处, 例如可以剪切周围的缩略图 .
  • 自我效应:使用被检测到的面部地标和轮廓来将贴纸或其他虚拟元素放在面上.
  • 微笑检测:利用分类结果确定一个人微笑或睁开眼睛的概率.
  • 脸部跟踪: 使用跟踪选项对相接相框的每个面相保持一致的ID.

兼容性

插件版本电容版本状态
8.x.x (英语)>=8.x.x积极支持
7.x.x (中文(简体) )7.x.x (中文(简体) )折旧
6.x.x (中文(简体) )6.x.x (中文(简体) )折旧

安装

你可以用我们的 AI 辅助设置 以安装插件. 添加数据 超级技能 至您的 AI 工具,使用以下命令:

npx skills add capawesome-team/skills --skill capacitor-plugins

然后使用下列提示:

Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capacitor-mlkit/face-detection` plugin in my project.

如果你喜欢 手动设置,通过运行以下命令来安装插件,并遵循下面的平台特定指令:

npm install @capacitor-mlkit/face-detection
npx cap sync

请注意: 此插件 只支持可口可乐Pods iOS的依赖性管理。 Swift 软件包管理器( SPM) 不支持 ML Kit SDK, 参见 本评论。 。 。 .

机器人

依赖关系

您需要添加以下元数据 内 页:1 application 在您的标签 AndroidManifest.xml数字 :

<meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="face"/>
<!-- To use multiple models: android:value="face,model2,model3" -->

变量

如果需要, 您可以在您的应用程序中定义以下工程变量 variables.gradle 要更改依赖的默认版本的文件 :

  • $mlkitFaceDetectionVersion 版本 com.google.mlkit:face-detection (默认 : 16.1.7(中文(简体) )
  • $playServicesMlkitFaceDetectionVersion 版本 com.google.android.gms:play-services-mlkit-face-detection (默认 : 17.1.0(中文(简体) )

如果您在工程中遇到其它插件的依赖性冲突, 这会有所帮助 .

iOS系统

最低部署目标

确定部署目标 ios/App/Podfile 至少改为 15.5数字 :

platform :ios, '15.5'

配置

此插件不需要配置 .

演示

这里有一个实例: robingenz/电容-mlkit-plugin-demo

使用量

以下例子说明如何在图像中检测面相.

在图像中检测面相

在局部路径上用图像检测人类相貌. 可以配置精度/速率取舍,并实现地标,轮廓,分类(微笑和眼睛打开概率),并实现面相跟踪. 仅在Android和iOS上提供:

import {
  FaceDetection,
  PerformanceMode,
  LandmarkMode,
  ContourMode,
  ClassificationMode,
} from '@capacitor-mlkit/face-detection';

const processImage = async () => {
  const { faces } = await FaceDetection.processImage({
    path: 'path/to/image.jpg',
    performanceMode: PerformanceMode.Fast,
    landmarkMode: LandmarkMode.All,
    contourMode: ContourMode.All,
    classificationMode: ClassificationMode.All,
    minFaceSize: 0.1,
    enableTracking: false,
  });
  return faces;
};

API 密码

进程图像(...)

processImage(options: ProcessImageOptions) => Promise<ProcessImageResult>

从提供的图像中检测出人相.

仅在Android和iOS上提供.

参数类型
optionsProcessImageOptions

回返情况: Promise<ProcessImageResult>

自: 5.1.0 国家


接口

进程图像结果

Prop类型说明自兹
facesFace[]被检测出的脸.5.1.0 国家

脸

代表被检测到的面相 FaceDetector。 。 。 .

Prop类型说明自兹
boundsRect返回检测到的面相的轴对齐矩形.5.1.0 国家
landmarksFaceLandmark[]返回一张面部地标列表.5.1.0 国家
contoursFaceContour[]返回面相轮廓列表 .5.1.0 国家
trackingIdnumber如果启动跟踪, 返回跟踪ID .5.1.0 国家
headEulerAngleXnumber返回关于图像水平轴的面相旋转。 阳性发作X是脸朝上看.5.1.0 国家
headEulerAngleYnumber返回图像垂直轴上的面相旋转。 阳性 euler y 是当面朝正在处理的图像的右侧转去时.5.1.0 国家
headEulerAngleZnumber返回图像中指向轴的相向旋转。 正euler z是图像平面内逆时针旋转.5.1.0 国家
smilingProbabilitynumber返回 0.0 至 1.0 之间的值,使面部有微笑的概率.5.1.0 国家
leftEyeOpenProbabilitynumber返回 0.0 至 1.0 之间的值,使面部左眼有可能被打开.5.1.0 国家
rightEyeOpenProbabilitynumber返回 0.0 至 1.0 之间的值,使面部右眼有可能被打开.5.1.0 国家

矩形

矩形 为矩形持有四个整数坐标.

Prop类型说明自兹
leftnumber矩形左侧的X坐标.5.1.0 国家
topnumber矩形顶部的Y坐标.5.1.0 国家
rightnumber矩形右侧的X坐标.5.1.0 国家
bottomnumber矩形下方的Y坐标.5.1.0 国家

正面标记

代表一个脸部地标. 地标指被检测到的相貌上的一个点,如眼睛,鼻子,或口.

Prop类型说明自兹
typeLandmarkType获得 正面标记。 。 。 .地标类型 类型.5.1.0 国家
positionPoint获得地标位置的2D分,其中(0,0)为图像左上角.5.1.0 国家

点

点 持有两个坐标

Prop类型
xnumber
ynumber

相貌轮廓

代表面相轮廓. 轮廓是检测到的面相上点的列表,如口.

Prop类型说明自兹
typeContourType获得 相貌轮廓。 。 。 .轮廓 类型.5.1.0 国家
pointsPoint[]获取此面相轮廓的 2D 点列表, 其中 (0, 0) 是图像的左上角 .5.1.0 国家

进程图像选项

Prop类型说明默认自兹
pathstring图像文件的本地路径 .5.1.0 国家
performanceModePerformanceMode定义在进行面孔检测时控制精度/速度权衡的选项.PerformanceMode.Fast5.1.0 国家
landmarkModeLandmarkMode定义是否启用面额地标的选项 .LandmarkMode.None5.1.0 国家
contourModeContourMode定义是否启用外观轮廓的选项.ContourMode.None5.1.0 国家
classificationModeClassificationMode定义诸如"微笑"*和"开眼"等属性的特征化选项.ClassificationMode.None5.1.0 国家
minFaceSizenumber设置最小的想要的面相大小,以头宽与图像宽度的比例表示.0.15.1.0 国家
enableTrackingboolean启用面部跟踪,在连续处理帧时,每个面部将保持一致的ID. 跟踪应被禁用,用于处理一系列非连续的静态图像.false5.1.0 国家

数字

地标类型

成员数值说明自兹
MouthBottom0主体下唇形中央.5.1.0 国家
LeftCheek1主体左口角与被主体左眼外角的中点. 对于完整剖面来说,这成为了鼻基,鼻尖,左耳叶和左耳尖的中间体.5.1.0 国家
LeftEar3被试者左耳尖和左耳叶的中点.5.1.0 国家
LeftEye4主体中心为左眼腔.5.1.0 国家
MouthLeft5主体是唇相会的左口角.5.1.0 国家
NoseBase6被试者鼻孔相接面部的中点.5.1.0 国家
RightCheek7被试者右口角与被试者右眼外角的中点. 对于完整的剖面,这成为了鼻基,鼻尖,右耳叶和右耳尖的中间体.5.1.0 国家
RightEar9受试者右耳尖和右耳叶的中点.5.1.0 国家
RightEye10受试者右眼腔中心.5.1.0 国家
MouthRight11主体是唇相会的右口角.5.1.0 国家

轮廓

成员数值说明自兹
Face1主体相貌的轮廓.5.1.0 国家
LeftEyebrowTop2题材上方出自"左眉".5.1.0 国家
LeftEyebrowBottom3主体左眉的下部轮廓.5.1.0 国家
RightEyebrowTop4受试者右眉毛上起相轮.5.1.0 国家
RightEyebrowBottom5主体右眉的下部轮廓.5.1.0 国家
LeftEye6受试者左眼腔的轮廓.5.1.0 国家
RightEye7受试者右眼腔的外观轮廓.5.1.0 国家
UpperLipTop8受试者上唇形顶部轮廓.5.1.0 国家
UpperLipBottom9主体上唇下方轮廓.5.1.0 国家
LowerLipTop10受试对象下唇上方轮廓.5.1.0 国家
LowerLipBottom11受试对象下唇下方轮廓.5.1.0 国家
NoseBridge12学科鼻桥分解纲要.5.1.0 国家
NoseBottom13学科鼻桥分解纲要.5.1.0 国家
LeftCheek14左颊之中.5.1.0 国家
RightCheek15右颊中央.5.1.0 国家

绩效模式

成员数值说明自兹
Fast1在选项中表示对速度的偏好,以作出准确性与速度取舍。 这往往会发现面相较少,在确定位置等值时可能不太精确,但运行会更快.5.1.0 国家
Accurate2表示在选项中偏好准确性,以准确性与速度权衡。 这将倾向于检测出更多的面相,在以速度为代价确定位置等值时可能更为精确.5.1.0 国家

地标模式

成员数值说明自兹
None1不进行标志性检测.5.1.0 国家
All2探测器 正面标记 为了一个特定的脸.5.1.0 国家

轮廓模式

成员数值说明自兹
None1不进行轮廓检测 .5.1.0 国家
All2探测器 相貌轮廓 为了一个特定的脸。 注意它会返回轮廓 最多5个面孔5.1.0 国家

分类模式

成员数值说明自兹
None1不进行分类.5.1.0 国家
All2进行"眼开"和"笑"分类.5.1.0 国家

财务问题

此插件支持哪些平台 ?

这个 processImage(...) 方法只在Android和iOS上可用. 网络平台不支持基础的ML Kit Face SDK.

插件是否识别图片中是谁 ?

不,插件执行面部检测,而不是面部识别. 它在图像中检测出面相的位置以及地标,轮廓,头旋转等属性,并笑出概率,但并不识别个体. 与 enableTracking 选项中,您只能在连续的相框中为同一面相保持一致的ID.

地标和轮廓有什么区别?

地标是被检测出的脸上的一个单点,如眼,鼻,口等. 轮廓(英語:A Contour)是一列可以勾勒出面部特征的分数,如面部椭圆形,眉毛,眼睛或唇. 通过 landmarkMode 通过 contourMode 选项。 注意: 轮廓只返回最多5个面相 .

我怎么才能发现一个人是笑着还是睁开眼睛?

设定 classificationMode 选项到 All。然后检测到的面孔中包含 smilingProbability, (中文(简体) ), leftEyeOpenProbability,以及 rightEyeOpenProbability 属性,每个值在 0.0至 1.0 之间.

此插件与 Face Mesh 检测插件有何不同 ?

这个插件检测面相,有边框,地标,轮廓,以及Android和iOS的分类. 这个 ML Kit 面膜检测 插件返回一个由468个3D点和三角形信息组成的稠密网格,用于检测到的面相,但只在Android上可用.

我能用这个插件吗? 有Ionic、React、Vue或Angular?

是的,插件是框架不可知的。 它在任意网络框架的Capacitor app中工作,包括有Angular,React,或Vue的Ionic,以及平版JavaScript等项目.

术语和隐私

此插件使用 Google ML Kit (Google ML Kit) 页面存档备份,存于互联网档案馆数字 :

通讯

随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 《卡帕索克通讯》。 。 。 .

更改日志

见 变动情况。 。 。 .

许可证

见 自由主义。 。 。 .

[^1]: 这个项目不附属于Google LLC或其任何子公司或子公司,也不获得其认可、支持、赞助或批准.

版本与发布记录

@capacitor-mlkit/face-detection 共发布 26 个版本,首次发布于 2023/07/21;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.2.2latest2026/10/319 天前
8.2.12026/09/101 个月前
8.1.12026/08/312 个月前
8.1.02026/05/076 个月前
8.0.12026/02/198 个月前
8.0.02025/12/1710 个月前

其他发布通道:next → 7.0.0-next.4,dev → 7.0.0-dev.1765885034。

关于 @capacitor-mlkit/face-detection 的常见问题

@capacitor-mlkit/face-detection 是什么?

在Android和iOS上为ML Kit Face检测所安装的电容插件.

如何安装 @capacitor-mlkit/face-detection?

在项目目录运行 npm install @capacitor-mlkit/face-detection,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capacitor-mlkit/face-detection 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capacitor-mlkit/face-detection 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capacitor-mlkit/face-detection 可以商用吗?

@capacitor-mlkit/face-detection 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@capacitor-mlkit/face-detection 的下载量有多少?

根据 npm 官方下载统计,@capacitor-mlkit/face-detection 在 2026/10/09 – 2026/11/07 这 30 天内被下载 6,309 次,日均约 210 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capacitor-mlkit/face-detection 还在维护吗?

最新版本 8.2.2 发布于 2026/10/31(9 天前);至今共发布 26 个版本,其中过去 12 个月发布了 9 个;首次发布于 2023/07/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。