Project Guideline: 开源的计算机视觉无障碍技术平台

作者 / Google 研究软件工程师 Dave Hawkey

两年前,我们 宣布推出 Google 研究和 Guiding Eyes for the Blind 合作的 Project Guideline,旨在帮助视觉障碍 (例如失明和弱视) 人士独立出行和跑步。仅需一台 Google Pixel 手机和耳机,Project Guideline 即可通过设备端机器学习 (ML) 功能,引导用户沿着画有标记线的户外路径出行。该技术已在 世界各地进行了测试,甚至在 2020 年东京残奥会开幕式上 进行了展示

自最初发布以来,我们通过嵌入障碍物检测和高级路径规划等新功能来改进 Project Guideline,以便安全可靠地引导用户在更复杂的场景 (例如急转弯和附近有行人的环境) 中通行。早期版本具有简单的逐帧图像分割功能,可以检测路径线相对于图像帧的位置。虽然这足以引导用户根据预设路线行动,但能够提供的有关周围环境的信息十分有限。如果想要改进导航信号,例如对障碍物和前方转弯的提醒,则需要更好地理解和映射用户的周边环境。为了解决这些挑战,我们构建了一个平台,可用于无障碍空间及其他领域的各种空间感知应用场景。

近期,我们正式发布 Project Guideline 的开源版本,任何人都可以使用它来改进和构建新的无障碍体验。该版本包括核心平台的 源代码Android 应用、预训练的 ML 模型3D 模拟框架

系统设计

尽管我们使用 Android 应用作为主要用例,但是我们希望能够以可重复的方式在各种环境中运行、测试和调试核心逻辑。为此我们使用 C++ 设计和构建系统,以便与 MediaPipe 和其他核心库紧密集成,同时仍然能够使用 Android NDK 与 Android 集成。

Project Guideline 的工作原理是采用 ARCore 技术在导航过程中预测用户的位置及方向。基于 DeepLabV3+ 框架构建的分割模型会处理每个相机帧,以生成指引线的二进制掩码 (更多相关的详细信息,您可以查看 之前的文章)。随后,通过应用 ARCore 提供的相机姿态和镜头参数 (内参函数),分段指引线上的点将从图像空间坐标投影到真实环境空间地平面上。由于每个帧都提供不同的线条视图,因此真实环境空间点会在多个帧上聚合,从而构建真实世界指引线的虚拟映射。系统对参考真实环境空间坐标进行分段曲线逼近,以构建时空一致的轨迹。这样,当用户沿着路径行进时,预测的路线将会不断被精细调整。

△ Project Guideline 构建出指引线的 2D 地图,聚合每帧 (红色 ) 中检测到的点,在跑步者沿路径前进过程中构建有状态的表示 (蓝色 )。

根据用户的当前位置、速度和方向,控制系统会在前方一定距离的路线上动态选择目标点,然后向用户提供音频反馈信号,帮助用户调整到与即将到来的路线段一致的方向。通过使用跑步者的速度矢量替代相机方向来计算导航信号,我们消除了跑步过程中常见的因不规则摄像头移动引起的噪声。我们甚至可以在用户的路线偏离相机视野时引导其回归正轨,例如用户超出了转弯范围时。这是因为 ARCore 能持续跟踪相机姿态,并将其与根据之前相机图像推断出的有状态路线图进行比较,从而实现上述功能。

Project Guideline 还具有障碍物检测和规避功能。它有一个 ML 模型,用于对单个图像进行深度估计。为了训练这个单目深度模型,我们使用了 SANPO,这是一个由内部策划的大型户外图像数据集,其数据来自城市、公园和郊区环境。该模型能够检测各种障碍物的深度,包括人、车辆、柱子等。经过与路线分割类似的过程,深度图被转换为 3D 点云,用于检测用户路径上是否存在障碍物,然后通过音频信号提醒用户。

△ Project Guideline 使用单目深度 ML 模型构建环境的 3D 点云,以检测并提醒用户路径上的潜在障碍物。

应用基于 AAudio API 的低延迟音频系统,Project Guideline 可以为用户提供导航声音和提示。Project Guideline 中提供了多个声音包,包括采用 Resonance Audio API 实现的空间音效。这些声音包是 Google 的声音研究人员和工程师团队开发的,他们设计并测试了许多不同的声音模型。声音结合采用平移、音高和空间化等组合技术来沿线路为用户导航。例如,向右侧偏移的用户将在左耳中听到嗡鸣声,以指示该线路在左侧,声音频率会随方向需校正的程度增加而增大。如果用户进一步偏移,则可能听到高音调的警告声,提醒其已经接近路径的边缘。此外,系统一旦发现用户偏离线路太远、检测到异常情况或无法提供导航信号,就会明确发出 “停止” 的提示音。

Project Guideline 是专为配备了 Google Tensor 芯片的 Google Pixel 手机构建的。Google Tensor 芯片使优化的 ML 模型能够以更高的性能和更低的功耗在设备上运行。这对于向用户提供延迟度最低的实时导航指引来说至关重要。在 Pixel 8 上,通过 张量处理单元 (TPU) 运行深度模型的延迟度和采用 CPU 运行相比改善了 28 倍,和采用 GPU 运行相比改善了 9 倍。

测试和模拟

Project Guideline 包括一个模拟器,可以在虚拟环境中对系统进行快速测试和原型设计。从 ML 模型到音频反馈系统的所有内容都在模拟器中原生运行,无需所有硬件和物理环境的设置,即可提供完整的 Project Guideline 体验。

△ Project Guideline 模拟器屏幕截图

未来发展方向

为了进一步推动这项技术的发展,WearWorks 已成为早期体验者。该机构与 Project Guideline 合作,整合自身的专利触觉导航技术,用触觉反馈和声音来共同为跑步者导航。WearWorks 在触觉反馈技术开发领域钻研超过 8 年,此前曾帮助纽约马拉松比赛的首位盲人选手在无领跑员的情况下完成比赛。我们希望这样的合作能够激发新的创造,让世界变得更加无障碍。

Project Guideline 团队还利用 ARCore Scene Semantics API 等最先进的移动 ML 技术,努力使 Project Guideline 摆脱对标记线路的完全依赖。该 API 可以识别室外场景中的人行道、建筑物和其他对象。我们希望无障碍社区在探索其他领域新用例的同时,也进一步发展和改进这项技术。欢迎您持续关注我们,及时获悉更多资讯。

致谢

许多人参与了 Project Guideline 及其背后技术的开发。我们要感谢 Project Guideline 团队成员:Dror Avalon、Phil Bayer、Ryan Burke、Lori Dooley、Song Chun Fan、Matt Hall、Amélie Jean-aimée、Dave Hawkey、Amit Pitaru、Alvin Shi、Mikhail Sirotenko、Sagar Waghmare、John Watkinson、Kimberly Wilber、Matthew Willson、Xuan Yang、Mark Zarich、Steven Clark、Jim Coursey、Josh Ellis、Tom Hoddes、Dick Lyon、Chris Mitchell、Satoru Arao、Yoojin Chung、Joe Fry、Kazuto Furuichi、Ikumi Kobayashi、Kathy Maruyama、Minh Nguyen、Alto Okamura、Yosuke Suzuki 和 Bryan Tanaka。

感谢 ARCore 贡献者:Ryan DuToit、Abhishek Kar 和 Eric Turner。

感谢 Alec Go、Jing Li、Liviu Panait、Stefano Pellegrini、Abdullah Rashwan、Lu Wang、Qifei Wang 和 Fan Yang 提供 ML 平台支持。

我们还要感谢 Hartwig Adam、Tomas Izo、Rahul Sukthankar、Blaise Aguera y Arcas 和 Huisheng Wang 的领导与支持。

特别感谢我们的合作伙伴 Guiding Eyes for the Blind 和 Achilles International。

原文:Open sourcing Project Guideline: A platform for computer vision accessibility technology
中文:TensorFlow 公众号