将人脸识别与人体姿势估计相结合

时间:2020-05-20 21:46:08

标签: machine-learning deep-learning face-recognition

我想创建一个能够估计人的姿势并识别他们的脸的应用程序。问题是,据我所知,每个任务都必须由不同类型的网络执行,因为我没有合适的数据集或编写此类网络的能力。 在最坏的情况下,我将不得不用4个用于不同的网络: 1)估算人的位置的网络,例如:https://github.com/michalfaber/keras_Realtime_Multi-Person_Pose_Estimation。例如,这种网络的输出是每个检测到的人19点。

2)用于人脸检测的网络可以预测图像上的人脸。我知道我可以使用人体姿势估计中先前描述的点做出有根据的猜测,但是我认为这将是非常不精确的。示例网络:https://github.com/kpzhang93/MTCNN_face_detection_alignment

3)从点2)检测到的人脸将被馈送到预测人脸着陆标记的网络中,以获取人脸的详细位置。示例网络:https://www.learnopencv.com/facemark-facial-landmark-detection-using-opencv/

4)最后,从点2)中检测到的脸部将像这样被馈送到脸部识别网络中:https://machinelearningmastery.com/how-to-perform-face-recognition-with-vggface2-convolutional-neural-network-in-keras/

使用这四个网络,我可以想象它像这样工作:

1)估计人体姿势并获得头部坐标

2)检测人脸的边界框

3)这些边界框用于获取人脸界标的详细坐标。使用这些地标坐标,我可以找到此脸属于哪些人体姿势估计。

4)最后,将人脸和人的姿势估计值匹配,我可以识别出该人脸并获得其名称。

我的问题是,这是4个不同的网络!假设我很幸运,并且每个人只需要1秒钟就可以进行预测,那么可能需要3-4秒钟来进行完整的分析。 除了编写我自己的网络(祝你好运)并在新的数据集上进行训练之外,还有没有更好,更快的方法?

1 个答案:

答案 0 :(得分:0)

我认为您的想法很好,有可能在一个包含多个类的网络中恢复所有这些操作,但是就像您说的那样,这是不精确的,因为您将任务分隔得尽可能精确,所以我认为这样更好