如何使用张量流从图像存储库中删除重复的面孔[已关闭]

问题描述 投票:0回答:1

我有网络摄像头,可以检测面部并将其存储在图像存储库中。在存储库中,仅存储面孔(图像),其中我有多个重复的面孔。有什么选项可以检测重复的面孔吗?

我尝试通过计算图像的哈希值,但它只能检测重复的图像而不是面部。请提出最佳解决方案。

我尝试使用链接https://www.tensorflow.org/api_docs/python/tf/contrib/learn/KMeansClustering但我无法输入图像并执行。

谢谢 阿维纳什

python webcam face-recognition face-detection image-recognition
1个回答
2
投票

人脸 检测 = 识别人脸出现在图像中的事实,并定位它在图像中的位置。

人脸识别=将人脸与已知人的身份进行匹配,或者基于多个人脸图像是同一个人的图像来相互匹配。

您说您的网络摄像头(至少)可以进行面部检测。你的问题说明你也想做认可。

这两个过程都需要提取图像中的高级不变量。这些不变特征表示的计算几乎处于现代计算机视觉的最前沿。简单地对像素值进行哈希处理与此相差甚远:只要一个像素的强度在一个通道中发生哪怕一个级别的变化,图像的哈希值就会出现任意程度的差异。当然,像这样的微小变化不会改变图像中脸部的“身份”。即使像素级别发生很大很大的变化也不一定会改变身份 - 它们可能是由于头部的旋转、不同的照明条件、胡须/太阳镜/发型的变化等造成的。 如果您说您的网络摄像头“检测人脸”,这是由于网络摄像头制造商提供的人脸检测技术吗?如果是这样,请从他们的 API 文档开始。也许他们也支持面部

识别

?检查一下,然后谷歌“人脸识别库”来比较解决这个复杂问题的其他软件方法。 您可能决定进一步探索的一个选项是 OpenCV,它具有 Python 绑定,并且包含用于检测(使用

CascadeClassifier

对象)和识别(使用

FaceRecognizer
)的工具。这是一个教程:
http://docs.opencv.org/2.4/modules/contrib/doc/facerec/tutorial/facerec_video_recognition.html
大多数“识别”方法都是“监督”的,因为它们需要提前指定“训练集”。也许您的应用程序允许这样做:也许您提前知道谁将出现在照片中,并且已经拥有他们的照片,每张照片都与一个身份相关联。 (例如,Facebook 的面部识别能够利用人们之前在照片中标记面部的事实,从而为与特定身份相关的图像提供多个训练点。)如果没有,那么您将不得不想出即时构建训练集并连续或定期更新训练的某种方案。人脸识别问题的这种特殊子类型可以被描述为“无监督人脸聚类”——即将人脸图像分组在一起,而无需先验地知道其中任何人脸的身份。 Facebook 在某种程度上也这样做了。这甚至更接近最前沿的技术,您可能需要深入研究计算机科学文献才能弄清楚它是如何完成的。例如,请参见此处:

http://bitsearch.blogspot.com/2013/02/unsupervised-face-clustering-with-opencv.html

© www.soinside.com 2019 - 2024. All rights reserved.