我想构建一个程序,在该程序中我想识别视频中的人脸选择特定的人脸并将蒙版应用于选定的人脸

Posted

技术标签:

【中文标题】我想构建一个程序,在该程序中我想识别视频中的人脸选择特定的人脸并将蒙版应用于选定的人脸【英文标题】:I want to build a program in which i want to recognize the faces in video select the particular face and apply mask to selected face 【发布时间】:2020-03-26 21:24:10 【问题描述】:

此应用程序应执行以下操作。 第 1 步:- 检测视频帧中的所有人脸。 第 2 步:- 现在用户将在此处选择要应用蒙版的面孔(有趣的动画或表情)。 第 3 步:- 将蒙版(有趣的动画或表情)应用于选定的面部,视频帧中的其他面部将保持原样。 例如:- snapchat 是如何做的,但这里将只对选定的脸应用蒙版。 需要用到的技术有(python、opencv、tensorflow或keras) 请帮忙。谢谢你。

【问题讨论】:

【参考方案1】:

要从视频中检测人脸,最简单的方法是使用Haar cascades in OpenCV and Python 实现人脸检测。这种方法可以在in here找到。

在这种情况下,您可以在给定视频的情况下返回所有检测到的人脸(这是一种效果很好的标准方法,尽管它远非最先进的方法)。您的第二步是创建一个界面,您将在其中显示所有检测到的面孔。 Here 您可以在 Python 中找到一些标准的 GUI Frameworks,它们可以帮助您完成任务。

【讨论】:

是的,正如你所说,我已经编写了一个脚本来使用“OpenCV 中的 Haar 级联”检测人脸,现在我的问题是我想从所有检测到的人脸中选择任何特定的人脸,假设已经有 5 个人脸检测到(F1、F2、F3、F4 和 F5),我只想选择面部 F3 以在其上应用蒙版。它应该发生在视频中,而不仅仅是在单个图像中,所以如何实现这一点,据我所知,我们需要 CNN 来识别选定的人脸并将蒙版应用于仅选择的人脸,避免出现在给定视频帧中的其他人脸。 你的问题的定义不是很清楚。用户如何从检测到的人脸中挑选出他想要的人脸?您应该清楚地说明该过程需要如何完成。 假设所有检测到的人脸都分配了标签,我提供了一个下拉菜单,列出了所有标签,用户可以从那里选择所需的标签(代表目标人脸) 所以你想用检测到的人脸替换检测到的daces?【参考方案2】:

这是一个很好的例子,说明如何从人脸检测开始,您基本上可以使用教程中的代码并在此应用程序之上构建蒙版:https://www.pyimagesearch.com/2018/02/26/face-detection-with-opencv-and-deep-learning/

【讨论】:

以上是关于我想构建一个程序,在该程序中我想识别视频中的人脸选择特定的人脸并将蒙版应用于选定的人脸的主要内容,如果未能解决你的问题,请参考以下文章

opencv联合dlib视频人脸识别例子

opencv联合dlib视频人脸识别例子

深度学习项目演练:如何使用Python和OpenCV进行人脸识别

MediaPipe实现手指关键点检测及追踪,人脸识别及追踪

Qt音视频开发42-人脸识别客户端

人脸识别完整项目实战(14):实时人脸特征点标定程序设计