检查用户是否正在从代码中查看屏幕
Check if user is looking at screen from code
在较新的 Android 设备中,可以使用面部解锁 phone。 Iphone X.
也可以实现
有没有办法使用这些 sensors/camera 检查用户是否在看屏幕?
编辑:
我发现还有一个来自 Google 的愿景框架:Vision Framework
是的,在 iOS 11 中,开发人员也可以通过 iOS 最新的 Vision Framework
在他们的第三方应用程序中使用此功能
此功能背后的整个想法是使用具有面部识别功能的前置摄像头。
但是您必须针对何时捕获图像进行处理进行优化
提示
在应用程序上变为活动状态或变为前台。
此外,当用户与任何 UI 控件或小部件(如按钮、
table ,触摸事件等)。
- 确保在以下情况下停止或暂停处理
应用程序未激活。
- 您还可以使用陀螺仪和其他传感器来查找设备物理状态。
是也不是。
iPhone X 内置的 Face ID 功能可以解锁设备并授权其他内置功能(Apple Pay、iTunes/App 商店支付等)。您还可以将其用作应用程序中的授权方法——您在其他设备上用于支持 Touch ID 的相同 LocalAuthentication 框架调用会自动在 iPhone X 上使用 Face ID。
面容 ID 默认要求用户注视屏幕。因此,如果您的注意力检测用例与授权或解锁有关,您可以使用 LocalAuthentication 来完成。 (但是,用户可以在辅助功能设置中禁用注意力检测,降低安全性但增加 Face ID 的可用性。第三方应用无法控制甚至读取此设置。)
如果您是在谈论更直接地进行注意力检测或注视跟踪...Apple 不提供任何 API 来公开 Face ID 的内部工作原理,或者至少是注视跟踪部分。这是他们所拥有的:
ARKit 提供 ARFaceTrackingConfiguration
(see also sample code),它实时提供面部的详细 3D 模型(据称使用了一些与 Face ID 相同的神经引擎来获得细节和性能)。
但就 ARKit 而言,眼睛只是脸上的两个洞 — 没有注视跟踪。
Apple 的Vision framework 提供人脸检测和人脸标志识别(即定位眼睛、鼻子、嘴巴等)。视觉确实可以识别眼睛轮廓和瞳孔,理论上您可以将其用作注视跟踪的基础。
但是,由于 Vision 仅以 2D 形式提供此类数据,无法获得面部的 3D 姿势,因此如果您想自己构建注视跟踪,您仍然会遇到严重的计算机视觉问题。 Vision 处理 2D 图像,这意味着它不需要 iPhone X(但也意味着它也不会从 iPhone X 上的 TrueDepth 相机中获益)。
AVCapture 提供对 TrueDepth 相机的访问,因此您可以获得与 Face ID 和 ARKit 用来施展魔法的相同颜色 + 深度图像。 (你只是不知道自己有魔法。)
None 这就是说一般来说,在 iOS 或 iPhone X 上不可能进行注视跟踪——所有的构建块都在那里,所以只要有足够的研发努力你可以自己实施。但是 Apple 不向任何开发人员提供对内置注视跟踪机制的访问权限。
如果您愿意使用 ML 模型来扩展您的应用,Google 的 media pipe 是另一种选择。您甚至可以通过这种方式跟踪用户的虹膜:
https://google.github.io/mediapipe/solutions/iris
显然,这对于简单的眼睛检测来说有点矫枉过正,但您应该能够使用这些模型和框架做更多的事情。
在较新的 Android 设备中,可以使用面部解锁 phone。 Iphone X.
也可以实现有没有办法使用这些 sensors/camera 检查用户是否在看屏幕?
编辑: 我发现还有一个来自 Google 的愿景框架:Vision Framework
是的,在 iOS 11 中,开发人员也可以通过 iOS 最新的 Vision Framework
在他们的第三方应用程序中使用此功能此功能背后的整个想法是使用具有面部识别功能的前置摄像头。 但是您必须针对何时捕获图像进行处理进行优化
提示
在应用程序上变为活动状态或变为前台。
此外,当用户与任何 UI 控件或小部件(如按钮、 table ,触摸事件等)。
- 确保在以下情况下停止或暂停处理 应用程序未激活。
- 您还可以使用陀螺仪和其他传感器来查找设备物理状态。
是也不是。
iPhone X 内置的 Face ID 功能可以解锁设备并授权其他内置功能(Apple Pay、iTunes/App 商店支付等)。您还可以将其用作应用程序中的授权方法——您在其他设备上用于支持 Touch ID 的相同 LocalAuthentication 框架调用会自动在 iPhone X 上使用 Face ID。
面容 ID 默认要求用户注视屏幕。因此,如果您的注意力检测用例与授权或解锁有关,您可以使用 LocalAuthentication 来完成。 (但是,用户可以在辅助功能设置中禁用注意力检测,降低安全性但增加 Face ID 的可用性。第三方应用无法控制甚至读取此设置。)
如果您是在谈论更直接地进行注意力检测或注视跟踪...Apple 不提供任何 API 来公开 Face ID 的内部工作原理,或者至少是注视跟踪部分。这是他们所拥有的:
ARKit 提供
ARFaceTrackingConfiguration
(see also sample code),它实时提供面部的详细 3D 模型(据称使用了一些与 Face ID 相同的神经引擎来获得细节和性能)。但就 ARKit 而言,眼睛只是脸上的两个洞 — 没有注视跟踪。
Apple 的Vision framework 提供人脸检测和人脸标志识别(即定位眼睛、鼻子、嘴巴等)。视觉确实可以识别眼睛轮廓和瞳孔,理论上您可以将其用作注视跟踪的基础。
但是,由于 Vision 仅以 2D 形式提供此类数据,无法获得面部的 3D 姿势,因此如果您想自己构建注视跟踪,您仍然会遇到严重的计算机视觉问题。 Vision 处理 2D 图像,这意味着它不需要 iPhone X(但也意味着它也不会从 iPhone X 上的 TrueDepth 相机中获益)。
AVCapture 提供对 TrueDepth 相机的访问,因此您可以获得与 Face ID 和 ARKit 用来施展魔法的相同颜色 + 深度图像。 (你只是不知道自己有魔法。)
None 这就是说一般来说,在 iOS 或 iPhone X 上不可能进行注视跟踪——所有的构建块都在那里,所以只要有足够的研发努力你可以自己实施。但是 Apple 不向任何开发人员提供对内置注视跟踪机制的访问权限。
如果您愿意使用 ML 模型来扩展您的应用,Google 的 media pipe 是另一种选择。您甚至可以通过这种方式跟踪用户的虹膜: https://google.github.io/mediapipe/solutions/iris
显然,这对于简单的眼睛检测来说有点矫枉过正,但您应该能够使用这些模型和框架做更多的事情。