主要内容

Android设备人脸检测与跟踪

这个例子展示了如何使用Simulink®Android设备支持包检测Android™摄像头捕获的人脸。金宝app金宝app本例中的模型即使在人倾斜头部,或靠近或远离摄像机时也能跟踪面部。

简介

目标检测和跟踪在许多计算机视觉应用中都很重要,包括活动识别、汽车安全和监控。在本例中,您将使用Simulink模型来检测视频帧中的人脸,识别金宝app面部特征,并跟踪这些特征。输出的视频帧包含检测到的人脸和被跟踪的特征在一个包围框中。如果人脸不可见或失焦,模型会尝试重新获取人脸,然后执行跟踪。本例中的模型被设计为一次只检测和跟踪一个人脸。

示例模型

open_system (“androidFaceDetectionAndTracking”

本例使用相机block从Android设备的后置摄像头捕获视频帧。检测与跟踪子系统接收视频帧,为检测到的人脸创建边界框和特征点。然后,绘制注释子系统在边界框的角点周围插入一个矩形,并在框内插入特征点的标记。绘制注释子系统的输出然后被发送到视频显示块,在设备屏幕上输出检测到的人脸。

检测与跟踪

在本例中,愿景。CascadeObjectDetector(计算机视觉工具箱)系统对象™检测人脸在捕获的视频帧中的位置。级联目标检测器使用Viola-Jones检测算法和训练好的分类模型进行检测。人脸检测完成后,再使用图像进行人脸特征点的识别值得追踪的优秀功能Shi和Tomasi提出的方法。

愿景。PointTracker(计算机视觉工具箱)系统对象™通过使用Kanade-Lucas-Tomasi (KLT)特征跟踪算法跟踪已识别的特征点。对于前一帧中的每个点,点跟踪器尝试在当前帧中找到相应的点。的estimateGeometricTransform2D(计算机视觉工具箱)函数然后估计旧点和新点之间的平移、旋转和缩放。此转换应用于面部周围的包围框。

尽管可以在每一帧上使用级联对象检测器,但这样做的计算成本很高。这种技术有时也无法检测到面部,例如当受试者转动或倾斜头部时。这种限制是用于检测的训练分类模型类型的结果。在本例中,只检测一次人脸,然后KLT算法在视频帧中跟踪人脸。只有当面部不再可见或跟踪器无法找到足够多的特征点时,才会再次执行检测。

执行能力动态内存分配的MATLAB函数使您能够使用MATLAB®函数块中的系统对象和函数。

open_system (“androidFaceDetectionAndTracking/检测和跟踪”

画的注释

画出形状(计算机视觉工具箱)块绘制边界框角点和画标记(计算机视觉工具箱)块绘制特征点。

open_system (“androidFaceDetectionAndTracking /画注释”

步骤1:配置人脸检测模型

1.打开androidFaceDetectionAndTracking模型。

2.建模在工具条的选项卡上,选择模型设置

3.在“配置参数”对话框中,选择硬件实现.验证硬件板参数设置为Android设备

4.列表下目标硬件资源中,选择设备的选择

5.设备列表,选择你的Android设备。如果您的设备不在列表中,请单击刷新

请注意:如果单击后设备仍未列出刷新,确保已启用USB调试您的设备上的选项。要启用USB调试,输入androidhwsetup在MATLAB命令窗口,并按照屏幕上的指示。

步骤2:在Android设备上部署人脸检测模型

1.硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击构建、部署和启动.该操作在Android设备上构建、下载并运行模型。即使设备与计算机断开连接,模型也会继续运行。

2.使用设备的后置摄像头捕捉面部。应用程序检测面部的特征点,如图所示。

当使用者倾斜头部,或靠近或远离摄像机时,应用程序会跟踪面部,如图所示。

参考文献

维奥拉,保罗·A和迈克尔·j·琼斯。“使用增强的简单特征级联快速目标检测”,IEEE CVPR, 2001年。

卢卡斯,布鲁斯·D,和金德武夫。一种迭代图像配准技术及其在立体视觉中的应用人工智能国际联合会议, 1981年。

卢卡斯,布鲁斯·D,和金德武夫。点特征的检测与跟踪卡内基梅隆大学技术报告cmu - cs - 91 - 132, 1991。

Shi, Jianbo和Carlo Tomasi。“值得追踪的优秀功能。”IEEE计算机视觉与模式识别会议, 1994年。

兹卡拉尔,兹德内克,克里斯蒂安·米科拉奇克,还有吉里·马塔斯。“前后向错误:跟踪故障的自动检测。”模式识别国际会议, 2010年

另请参阅

在Android设备上使用MNIST数据集识别手写数字