如何使用tensorflow对象检测API进行人脸检测

时间:2018-09-29 18:06:30

标签: tensorflow machine-learning deep-learning face-detection

Open CV提供了一个简单的API,可以检测和提取给定图像中的人脸。 (尽管我认为它会从与人脸图像无关的输入图片中剪裁帧,但我认为它的效果并不理想。)

我想知道tensorflow API是否可以用于面部检测。我没有找到相关的信息,但希望有经验的人可以指导我解决这个问题。 tensorflow的对象检测API是否可以像Open CV一样用于面部检测? (我的意思是,您只需调用API函数,它就会根据给定的输入图像为您提供面部图像。)

2 个答案:

答案 0 :(得分:1)

可以,但是需要一些工作。 首先,看一下对象检测README。您应该遵循一些有用的文章。具体来说:(1)配置对象检测管道,(3)准备输入,(3)在本地运行。您应该从具有预训练模型的现有体系结构开始。可以在Model Zoo中找到经过预训练的模型,并且可以在here中找到其相应的配置文件。 Model Zoo中最常见的预训练模型位于COCO数据集上。不幸的是,该数据集不包含面孔作为类(但包含人)。 取而代之的是,您可以从Open Images上的预训练模型开始,例如fast_rcnn_inception_resnet_v2_atrous_oid,该模型的确包含面孔。 请注意,该模型比在COCO数据集上使用的通用体系结构(例如MobileNetV1 / V2上的SSDLite)更大,更慢。这是因为Open Images比COCO具有更多的类,因此,一个运行良好的模型需要更具表现力,以便能够区分大量的类并正确定位它们。 由于只需要面部检测,因此可以尝试以下两个选项:

  1. 如果您对较慢的模型没问题,这可能会带来更好的性能,请从faster_rcnn_inception_resnet_v2_atrous_oid开始,您只能在单张面孔上稍微微调模型。
  2. 如果您想要更快的模型,则可能应该从在COCO上经过预先训练的SSDLite-MobileNetV2之类的东西开始,然后在来自不同数据集(例如您自己或脸部子集)的脸部类上进行微调打开图像。 请注意,未在面部上训练过预训练模型的事实并不意味着您无法对其进行微调,而是比在训练前进行预训练的模型可能需要更多的微调。训练在脸上。

答案 1 :(得分:0)

我尝试过增加输入的形状,效果会更好