检查用户是否从代码中查看屏幕

时间:2017-10-16 09:41:47

标签: android ios face-recognition iphone-x

在较新的Android设备中,您可以用脸解锁手机。它也可以用于Iphone X.

有没有办法使用这些传感器/相机来检查用户是否在看屏幕?

修改 我发现Google还有一个Vision Framework:Vision Framework

4 个答案:

答案 0 :(得分:3)

是和否。

iPhone X上的内置Face ID功能可以解锁设备并授权其他内置功能(Apple Pay,iTunes / App Store支付等)。您还可以将其用作应用程序中的授权方法 - 用于支持其他设备上的Touch ID的LocalAuthentication框架调用会自动在iPhone X上使用Face ID。

默认情况下,面部ID要求用户查看屏幕。因此,如果您的注意力检测用例与授权或解锁有关,则可以使用LocalAuthentication来执行此操作。 (但是,用户可以在辅助功能设置中禁用注意力检测,从而降低安全性,但会增加Face ID的可用性。第三方应用无法控制甚至读取此设置。)

如果您正在谈论更直接地进行注意力检测或注视跟踪...... Apple并未提供任何暴露Face ID内部工作原理的API,或者至少是凝视跟踪部分。这是他们所拥有的:

  • ARKit提供ARFaceTrackingConfiguration(另请参阅sample code),它实时提供面部的详细3D模型(假设使用与面部ID相同的神经引擎内容)和表现)。

    但就ARKit而言,眼睛只是脸上的两个洞 - 没有凝视跟踪。

  • Apple的Vision framework提供面部检测和面部识别(即,它定位眼睛,鼻子,嘴巴等)。视觉确实识别眼睛轮廓和瞳孔,理论上可以将其用作凝视跟踪的基础。

    然而,由于Vision仅以2D提供此类数据,并且没有为脸部提供3D姿势,如果您想自己构建凝视跟踪,您仍然会留下严重的计算机视觉问题。 Vision处理2D图像,这意味着它不需要iPhone X(但也意味着它不会受益于iPhone X上的TrueDepth相机)。

  • AVCapture可以访问TrueDepth相机,因此您可以获得与Face ID和ARKit相同的颜色+深度图像来实现他们的魔力。 (你只是不为自己说魔法。)

这一切都不是说在一般的iOS或iPhone X上都不可能进行凝视跟踪 - 所有构建模块都在那里,因此如果有足够的R& D努力,您可以自己实施。但Apple并没有为任何开发人员提供内置的凝视跟踪机制。

答案 1 :(得分:0)

是的,在iOS 11中,开发人员也可以通过iOS最新Vision Framework

在第三方应用程序中使用此功能

答案 2 :(得分:0)

此功能背后的全部理念是使用具有面部识别功能的前置摄像头。 但是你必须优化它以何时捕获图像进行处理

提示

  1. 应用程序变为活动状态或变为前台。

  2. 当用户与任何UI控件或小部件交互时(按钮, 表,触摸事件等)。

  3. 确保停止或暂停处理时间 申请不活跃。
  4. 您还可以使用陀螺仪和其他传感器来查找设备物理状态。

答案 3 :(得分:0)

如果您愿意使用ML模型扩展应用程序,则可以选择Google的media pipe。您甚至可以通过以下方式跟踪用户的虹膜: https://google.github.io/mediapipe/solutions/iris

显然,这对于简单的眼睛检测来说是一个矫kill过正,但是您应该能够使用这些模型和框架做更多的事情。