【问题标题】:Check if user is looking at screen from code检查用户是否正在从代码中查看屏幕
【发布时间】:2018-03-27 19:02:37
【问题描述】:

在较新的 Android 设备中,您可以通过面部解锁手机。 Iphone X 也可以。

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

编辑: 我发现还有一个来自 Google 的 Vision Framework:Vision Framework

【问题讨论】:

  • 您为 Google 视觉框架链接的文档没有提到凝视跟踪/注意力检测是该技术的一项功能。
  • This link 有一个 Apple 官方演示项目,展示了从 iOS 12 开始使用的眼睛的位置和方向。您可以构建自己的逻辑来添加一个模拟大小和位置/方向的虚拟平面设备并查看眼睛光线是否与该平面(您的设备)相交,为此需要相当高级的 AR 使用/知识。

标签: android ios face-recognition iphone-x


【解决方案1】:

是和不是。

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

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


如果您说的是更直接地进行注意力检测或凝视跟踪……Apple 不提供任何 API 来公开 Face ID 的内部工作原理,或者至少是凝视跟踪部分。以下是他们所拥有的:

  • ARKit 提供ARFaceTrackingConfiguration(另请参阅sample code),它实时提供详细的人脸 3D 模型(据说使用一些与人脸 ID 相同的神经引擎东西来获得细节和性能)。

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

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

    但是,由于 Vision 仅以 2D 形式提供此类数据,并且无法获得面部的 3D 姿势,因此如果您想自己构建凝视跟踪,您仍然会遇到严重的计算机视觉问题。 Vision 处理 2D 图像,这意味着它不需要 iPhone X(但也意味着它也无法从 iPhone X 上的原深感摄像头中受益)。

  • AVCapture 提供对 TrueDepth 摄像头的访问权限,因此您可以获得面容 ID 和 ARKit 用来施展魔法的相同颜色 + 深度图像。 (你只是不会为自己获得魔法。)

这并不是说在一般的 iOS 或 iPhone X 上不可能实现注视跟踪——所有的构建块都在那里,所以只要有足够的研发努力,你就可以自己实现它。但 Apple 并未向任何开发者提供对内置注视跟踪机制的访问权限。

【讨论】:

    【解决方案2】:

    是的,在 iOS 11 中,开发者也可以通过 iOS 最新版Vision Framework在他们的第三方应用程序中使用此功能

    【讨论】:

    • 非常好,我一定会看看这个框架。
    【解决方案3】:

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

    提示

    1. 在应用程序变为活动或变为前台时。

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

    3. 确保在以下情况下停止或暂停处理 应用程序未激活。
    4. 您还可以使用陀螺仪和其他传感器来查找设备物理状态。

    【讨论】:

    • 是的,确实需要优化。你知道需要的计算能力吗?
    【解决方案4】:

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

    显然这对于​​简单的眼睛检测来说有点过头了,但您应该能够使用这些模型和框架做更多事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      • 2017-07-13
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多