文 / Google Research 研究工程师 Andrey Vakunov 和 Dmitry Lagun
包括计算摄影(如人像模式和闪光反射)和增强现实效果(如虚拟头像)在内的大量实际应用都依赖于通过跟踪虹膜来估计眼睛位置。我们通过研究发现,一旦可以精确地跟踪虹膜,我们无需使用专用的深度传感器,便能确定从相机到用户的度量距离。这反过来又可以改善各种用户场景,如计算摄影、虚拟试戴眼镜和帽子,以及根据使用者距离采用不同字体大小的可用性增强功能。
由于计算资源有限、光照条件不定以及存在头发或斜视等因素造成的遮挡,在移动设备上实现虹膜跟踪仍然是一个艰巨的挑战。这项技术通常会采用复杂的专用硬件,从而限制了应用相关解决方案的设备范围。
FaceMesh 可用于打造虚拟头像(中间),但通过额外利用虹膜跟踪(右侧),头像真实感显著增强
FaceMesh
https://google.github.io/mediapipe/solutions/face_mesh.html
利用 MediaPipe Iris 实现的眼球重新着色的示例
今天,我们宣布推出 MediaPipe Iris,一种用于虹膜精确估计的全新机器学习模型。在我们对 MediaPipe FaceMesh 的研究基础上,能够使用单个 RGB 摄像头实时跟踪涉及虹膜、瞳孔和眼部轮廓的关键点 (Landmark),而无需借助专用硬件。利用虹膜关键点,在不使用深度传感器的情况下还可确定拍摄对象与相机之间的度量距离,并将相对误差控制在 10% 以内。请注意,虹膜跟踪不会推断人们正在注视的位置,也不会提供任何形式的身份识别。这一系统已在 MediaPipe(http://mediapipe.dev,一个供研究人员和开发者构建一流机器学习 (ML) 解决方案和应用的开源跨平台框架)中实现,得益于此,它可以在大多数现代手机、桌面设备、笔记本电脑乃至网页上运行。
MediaPipe Iris
https://solutions.mediapipe.dev/iris
MediaPipe FaceMesh
https://solutions.mediapipe.dev/face_mesh
网页
https://viz.mediapipe.dev/demo/iris_tracking
适于远视用户的可用性原型:字号随设备与用户的距离变化而变化,用户看到的字体大小都保持不变
用于虹膜跟踪的 ML 流水线
流水线的第一步利用了我们先前 3D FaceMesh 研究,即通过高保真面部关键点生成近似面部几何形状的网格。我们从该网格中分离出原始图像中的眼部区域,用于虹膜跟踪模型。然后将问题分为两个部分:眼部轮廓估计 和 虹膜位置。我们设计了一个由统一编码器组成的多任务模型,且每个单独组件均对应一个任务,如此一来,我们就能使用特定于任务的训练数据。
虹膜(蓝色)和眼睑(红色)跟踪示例
为了将裁剪后的眼部区域用于模型训练,我们手动标注了约 5 万张图像。这些图像包含了来自不同地理位置及各种照明条件的头部姿势,如下图所示:
标注了眼睑(红色)和虹膜(蓝色)轮廓的眼部区域
裁剪后的眼部区域构成了模型的输入数据,模型则通过单独的组件预测关键点
虹膜深度:使用单个图像估计深度
我们的虹膜跟踪模型能够在不使用专用硬件的情况下确定对象与相机之间的距离,并将误差控制在 10% 以内。
对大部分人来说,人眼的水平虹膜直径基本保持在 11.7±0.5 毫米范围内,我们只需借助一些简单的几何参数,即可实现上述目标。为便于说明,您可想象将针孔摄像头模型投影到正方形像素传感器上。面部关键点与物体之间的距离可以通过相机的焦距估计得出。焦距则可以使用相机的相关拍摄 API 或直接从拍摄图像的 EXIF 元数据中获取,也可以通过其他相机内参数获取。确定焦距后,用户与相机的距离与用户虹膜的实际大小成正比,如下图所示:
使用类似的三角形,相机与对象的距离 (d) 可以根据焦距 (f) 和虹膜的大小计算得出
左侧:MediaPipe Iris 仅通过虹膜跟踪在 Pixel 2 上预测度量距离(以厘米为单位),而无需使用深度传感器;右侧:真实深度
为量化该方法的准确性,我们收集了 200 多位参与者的前置同步视频和深度图像,然后将其与 iPhone 11 上的深度传感器进行了比较。我们使用激光测距设备,通过实验确认了 iPhone 11 深度传感器在 2 米以内的误差小于 2%。我们的评估结果显示,对于使用虹膜大小进行深度估计方法,其平均相对误差为 4.3%,标准差为 2.4%。我们针对戴和不戴眼镜的参与者(戴隐形眼镜的参与者不计入考量范围)测试了这一方法,发现眼镜会使平均相对误差略有增加到 4.8%(标准差为 3.1%)。我们尚未对患有任何眼疾(如老年环或血管翳)的参与者测试此方法。鉴于 MediaPipe Iris 不需要使用任何专用硬件,这些结果表明该模型可以支持成本各异的设备通过单张图像获取度量深度。
估计误差直方图(左侧),以及实际距离与估计距离(通过虹膜)的比较图(右侧)
发布 MediaPipe Iris
我们将以跨平台 MediaPipe 流水线形式发布虹膜和深度估计模型,可以在桌面设备、手机和网页上运行。正如我们最近发布的关于 “Web 上的 MediaPipe” 文中所述,我们会利用 WebAssembly 和 XNNPACK 在浏览器中本地运行虹膜 ML 流水线,而无需将任何数据发送到云端。
使用 MediaPipe 的 WASM 堆栈,您可以在浏览器中本地运行模型!左侧:虹膜跟踪;右侧:直接通过包含 EXIF 数据的照片计算得出的虹膜深度
XNNPACK
https://github.com/google/XNNPACK
试用虹膜跟踪
https://viz.mediapipe.dev/demo/iris_tracking
试用虹膜深度测量
https://viz.mediapipe.dev/demo/iris_depth
未来发展方向
我们打算进一步扩展 MediaPipe Iris 模型,实现更稳定的追踪性能以降低误差,并部署该模型以用于无障碍用例。我们坚信,分享代码可以实现研究重现、快速实验,并能在不同方面开发新创意。在我们的文档和随附的模型卡中,我们详述了预期用途、限制和模型公平性,以确保使用这些模型时能遵守 Google 的 AI 原则。请注意,任何形式的监视或识别应用显然都超出了此技术的涵盖范围,因此不予支持。我们希望向更广泛的研究计划和开发社区提供此虹膜感知功能,从而促成创意用例的出现,激发更可靠的新应用和新研究途径。
文档
https://solutions.mediapipe.dev/iris
模型卡
https://mediapipe.page.link/iris-mc
Google 的 AI 原则
https://www.blog.google/technology/ai/ai-principles/
提供此虹膜感知功能
https://solutions.mediapipe.dev/iris
如要了解 MediaPipe 中的更多 ML 解决方案,请参阅我们的解决方案页面;如要了解最新更新,请参阅此页面。
解决方案页面
https://solutions.mediapipe.dev/
致谢
我们要感谢 Artsiom Ablavatski、Andrei Tkachenka、Buck Bourdon、Ivan Grishchenko 和 Gregory Karpiak 在模型评估和数据收集方面提供的支持;感谢 Yury Kartynnik、Valentin Bazarevsky、Artsiom Ablavatski 开发了网格技术;感谢 Aliaksandr Shyrokau 和注解团队辛勤准备数据;感谢 Vidhya Navalpakkam、Tomer Shekel、Kai Kohlhoff 提供的领域专业知识;感谢 Fan Zhang、Esha Uboweja、Tyler Mullen、Michael Hays 和 Chuo-Ling Chang 在将模型集成到 MediaPipe 时提供的帮助;感谢 Matthias Grundmann、Florian Schroff 和 Ming Guang Yong 一直以来为构建此技术提供的帮助。
— 推荐阅读 —