FindFaces

FindFaces[image]

尝试在 image 中找到人脸,并且返回边界框列表.

FindFaces[image,prop]

返回每个检测到的人脸的指定属性 prop.

FindFaces[image,crit,prop]

返回满足标准 crit 的人脸.

更多信息和选项

  • FindFaces 也被称为面部检测.
  • 面部检测是一种常见的计算机视觉技术,它将检测到的面部作为边界框列表返回,每个边界框都以 Rectangle 对象的形式给出.
  • 坐标 {x,y} 被认为是位于标准图像坐标系统内.
  • 属性 prop 可为以下任意形式:
  • "BoundingBox"Rectangle 对象形式返回的边界框
    "BoundingBoxArea"每个人脸所占的像素面积
    "Confidence"检测脸部的强度
    "Image"含有每个人脸的子图像
    "Position"{x,y} 给出每个人脸的位置
    featureFacialFeatures 中可用的任意特征
    {prop1,prop2,}属性列表
  • 标准 crit 可为以下任意形式:
  • {min,max}大小从 minmax 的人脸,其中单位为像素
    {Scaled[amin],Scaled[amax]}相对大小从 aminamax 的人脸
    f满足 f 的人脸
  • 使用纯函数 f 的情况下,可用 #Age#Gender 获取脸部特征,如年龄和性别. 如果 f 返回 True,则返回人脸.
  • 如果想了解完整的面部特征列表,请到参考页面查看 FacialFeatures.
  • 可以给出以下选项:
  • AcceptanceThreshold Automatic检测接受阈值
    MaxFeatures All返回的脸数
    MaxOverlapFraction Automatic最大允许的重叠比例
    Method Automatic使用的方法
    Padding "Fixed"在图像边界处使用的填充方案
    PaddingSize 0每个检测到的脸部周围的填充量
    PerformanceGoal $PerformanceGoal检测中使用何种优化
    SortedBy Automatic排序结果使用的函数
  • 采用 PaddingSize->x 时,在每个检测到的脸部的每侧均填充 x 个像素. 如果使用 PaddingSize->Scaled[s],则用边界框的 s 对每个面部进行填充.
  • 如果可用,将用 image 内容填充面部. 在边界处,使用 Padding 设置.
  • 默认的情况下,脸部是基于强度排序的. 使用 SortedBy->f 指定不同的排序函数. 函数 f 可以访问使用模式 #prop 的可用属性.
  • Method 的可能设置包括:
  • "Haar"基于 Haar 特征的级联检测器
    "LocalBinaryPatterns"基于 LBP 特征的级联检测器
    "SingleShotDetector"基于 SSD 架构的神经网络检测器
    {method1,method2,}汇总所有 methodi 的结果
  • 对于多通道图像,"Haar""LocalBinaryPatterns" 方法对灰度强度进行计算.
  • FindFaces 使用机器学习. 在不同版本的 Wolfram 语言中,其方法、训练集和偏差可能会更改并产生不同的结果.
  • FindFaces 可能会下载资源,这些资源将被保存在 $LocalBase 的本地对象存储库中,可以使用 LocalObjects[] 列出,用 ResourceRemove 可将其删除.

范例

打开所有单元关闭所有单元

基本范例  (2)

求图像中脸的坐标:

提取包括脸的子图像:

检测和突出显示图像中的人脸:

范围  (7)

属性  (4)

计算面部边界框:

提取对应于边界框的部分图像:

提取多个属性:

提取 FacialFeatures 中可用的属性:

标准  (3)

用可计算属性作为测试参数:

可利用一些测试结果快捷地完成整个测试:

找出所有尺寸的面孔:

指定最大的人脸尺寸:

指定最小的人脸尺寸:

Scaled 来指定与图像尺寸相关的人脸尺寸:

选项  (10)

AcceptanceThreshold  (1)

默认情况下,将返回所有检测到的面部:

AcceptanceThresholdt 仅返回强度大于 t 的检测结果:

AcceptanceThreshold0 返回所有检测到的人脸:

MaxFeatures  (1)

默认情况下,将返回所有检测到的面部:

MaxFeaturesn 仅返回 n 个最强的检测结果:

MaxOverlapFraction  (1)

默认情况下,返回所有检测到的人脸,不管是否重叠:

只查找不重叠的脸:

允许 2% 的重叠:

Method  (2)

FindFaces 自动选择检测的方法:

指定使用的方法:

组合使用多种方法所得的结果:

"LocalBinaryPatterns" 方法是一个级联分类器,用于处理梯度直方图 (HoG) 特征描述符. 这是一种非常快捷、轻便的多尺度方法:

"Haar" 方法是一个级联分类器,用于处理 Haar 特征描述符. 它比 "LocalBinaryPatterns" 更稳健,但是速度更慢:

"SingleShotDetector" 方法以单个神经网络运算为基础,在姿势、照明、遮挡和物体发生变化时的检测非常稳定. 与其他两种方法相比则速度更慢:

Padding  (1)

可以将检测结果的边界框填充到超过图像的边界:

自定义填充规范:

PaddingSize  (2)

默认情况下,在 FindFaces 返回的结果中每张脸的裁​​剪效果都非常紧凑:

指定要在每个面部周围添加的填充的大小:

指定负填充以裁去更多内容:

指定按比例进行填充:

比较使用不同的填充检测到的面部:

PerformanceGoal  (1)

PerformanceGoal"Quality" 强调结果的质量:

PerformanceGoal"Speed" 强调计算速度:

SortedBy  (1)

默认情况下,检测按 "Confidence" 排序:

指定不同的属性:

应用  (3)

找到并突出显示检测到的人脸:

找到并模糊所有检测到的人脸:

人脸的动态检测:

计算每个视频帧中的面部的数量:

绘制结果:

属性和关系  (2)

尽管在图像平面中旋转,仍可以检测到人脸:

尽管亮度改变,仍可以检测到人脸:

可能存在的问题  (3)

向上的人脸更容易检测:

其它人脸可能通过旋转图像检测到:

可能无法检测到转离相机的脸部:

可能无法检测到很小或分辨率较低的面孔:

对图像重新采样可能会改善检测效果:

Wolfram Research (2012),FindFaces,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FindFaces.html (更新于 2024 年).

文本

Wolfram Research (2012),FindFaces,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FindFaces.html (更新于 2024 年).

CMS

Wolfram 语言. 2012. "FindFaces." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/FindFaces.html.

APA

Wolfram 语言. (2012). FindFaces. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/FindFaces.html 年

BibTeX

@misc{reference.wolfram_2024_findfaces, author="Wolfram Research", title="{FindFaces}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/FindFaces.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_findfaces, organization={Wolfram Research}, title={FindFaces}, year={2024}, url={https://reference.wolfram.com/language/ref/FindFaces.html}, note=[Accessed: 21-November-2024 ]}