面部识别+识别标签使用opencv 3.2 + python 3.4.3 + Raspberry pi3

时间:2017-09-28 11:34:45

标签: python opencv raspberry-pi3 face-detection

1。我正在做一个关于面部检测的项目,我只想知道如何显示这样的

enter image description here

我能够获得那个矩形但不能在框内显示字符串。

2。我已经使用haar进行了检测,它只检测我们何时直接查看它。当我们向左/向右/向上转弯时,我想让它更准确 - 帮帮我

我的代码看起来像这样。

std::chrono::seconds(2)

1 个答案:

答案 0 :(得分:0)

您需要:构成和投射面孔

人类可以很容易地认出这两张照片都是威尔·法瑞尔,但计算机会将这些照片视为两个完全不同的人:

Humans can easily recognize that both images are of Will Ferrell, but computers would see these pictures as two completely different people.

为了解释这一点,我们将尝试扭曲每张照片,使眼睛和嘴唇始终位于图像的样本位置。这将使我们在接下来的步骤中比较面部变得更加容易。 为此,我们将使用一种称为面部地标估计的算法。有很多方法可以做到这一点,但我们将使用方法invented in 2014 by Vahid Kazemi and Josephine Sullivan

The 68 landmarks we will locate on every face. This image was created by Brandon Amos of CMU who works on OpenFace.

我们将在每张脸上找到68个地标。此图片由Brandon Amos的CMU OpenFace创建。

以下是在我们的测试图像上找到68个面部标志的结果:

**PROTIP**: You can also use this same technique to implement your own version of Snapchat’s real-time 3d face filters!

PROTIP 您也可以使用相同的技术来实现自己版本的Snapchat的实时3D面部滤镜!

现在我们知道的是眼睛和嘴巴,我们只需旋转,缩放和shear图像,以便眼睛和嘴巴尽可能地居中。我们不会做任何花哨的3D扭曲,因为这会在图像中引入扭曲。我们只会使用基本的图像变换,如旋转和缩放,以保留平行线(称为affine transformations):

enter image description here

现在无论面部如何转动,我们都可以将眼睛和嘴巴对准图像中大致相同的位置。这将使我们的下一步更准确。

如果您想使用Python和dlib自己尝试这一步,请使用code for finding face landmarks,这里是使用这些地标的code for transforming the image

此解释来自this medium post

源代码可在GitHub上找到。