检测是否为移动应用中拍摄的照片

Detect if picture of picture taken in mobile app

我正在开发一个面部识别应用程序,该应用程序会拍摄照片并将其发送到服务器进行识别。

我必须添加一个验证,即用户应该拍摄真人照片和另一张照片。我已经尝试了眨眼功能,其中相机等待眨眼并在眨眼时立即捕捉,但这没有用,因为如果在捕捉过程中手机晃动,它会检测到眨眼。

想在这里寻求帮助,有什么方法可以检测用户是否正在拍摄另一张照片。任何想法都会有所帮助。

我正在使用 React Native 构建 Android 和 iOS 应用程序。

提前致谢。

在某些 iPhone 上(iOS 11.1 向上),有一个所谓的 trueDepthCamera 用于 Face ID。使用它(或背面双摄像头系统),您可以捕捉图像和深度图。您可以利用该功能来查看面部是否平坦(从图像中捕获)或是否具有正常的面部轮廓。 See here...

人们必须想出一个 3d 面部模型来愚弄它。

它仅限于几个 iPhone 模型,但我不知道 Android。

感谢支持。

我毕竟是用眨眼法解决的。这是我使用的一个小算法:

打开相机,点击拍摄按钮:

摄像头检测视野中是否有人脸并等待眨眼。 如果双眼眨眼概率为 90%,则等待 200 毫秒。以睁眼概率 > 90% 再次检测人​​脸,以验证人脸是否仍然存在,并在最后捕获图片。

这是一个廉价的把戏,但到目前为止效果很好。

此致