大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。
1. 什么是 Web Neural Network API对机器学习 ML (Machine Learning) 来说,虽然很多场景确实可以使用现有的 Web API,例如: WebNN API polyfill 、 JS ML 框架等以受限的方式实现,但缺乏对有利于 ML 的平台功能的访问,例如:专用的 ML 硬件加速器限制了体验,并导致现代硬件上的运行效率低下。 与本机平台相比,Web 平台处于劣势。
W3C 起草的 Web Neural Network API 定义了一个 Web 友好、与硬件无关的抽象层,其利用操作系统和底层硬件平台的机器学习功能而不依赖于特定于平台功能。整体架构如下:
Web Neural Network API 抽象层满足了关键机器学习 JavaScript 框架的要求,允许熟悉 ML 领域的 Web 开发人员无需库的帮助即可编写自定义代码。
不过现阶段,WebNN 还处于通过主流浏览器厂商、关键 ML JS 框架、硬件供应商和 Web 开发人员等提供的关键用例参与 API 设计。
2.Web Neural Network API 使用场景2.1 人物检测 (Person Detection)比如用户打开基于 Web 的视频会议应用程序,但可以暂时离开房间。
应用可以通过使用对象检测(例如,使用单个 DNN 的 [SSD] 或 [YOLO] 等对象检测方法)来检测相机输入帧中包含人物的区域,从而观察其是否位于 PC 前面 。
当用户回来时,应用会自动检测到并通知其他在线用户其现在处于活动状态。
2.2 语义分割假如办公室没有可用的会议室,用户通过其办公桌上基于网络的视频会议应用程序加入电话会议。
在电话会议期间,用户可能不希望看到房间和背景中的人。 为了保护其他人和周围环境的隐私,可以运行 [DeepLabv3+]、[MaskR-CNN] 或 [SegAny] 等机器学习模型,以语义方式将图像分割成多个片段,并替换代表其他人和背景的片段与另一张图片。
2.3 骨骼检测假如,基于 Web 的视频会议应用程序通过运行机器学习模型来跟踪用户骨骼的姿势。
该模型支持实时人体姿势探测,例如 [PoseNet] 来识别手势和肢体语言。 当用户举手时,麦克风会自动取消静音,从而可以开始在电话会议上发言。
2.4 人脸识别假如会议室中有多人,使用基于网络的视频会议应用程序加入在线会议。
应用可以通过使用对象检测来获取参会者面部,并通过运行 [FaceNet] 等机器学习模型来检查每张面部是否出现在之前的会议上,从而验证两个面孔是否相同。
2.5 面部标志检测比如,用户想要在在线眼镜商店找到适合的新眼镜。
该在线商店提供基于 Web 的试戴模拟器,该模拟器运行机器学习模型,例如:面部对齐网络 [FAN],以检测眼睛、鼻子、嘴巴等面部标志。当选择一副眼镜时,模拟器会正确渲染,根据检测到的眼睛在面部图像上的位置来选择所选择的眼镜。
2.6 风格转移假如一位用户正在网上寻找化妆品,想知道哪种颜色适合她的脸。
此时,在线商店展示化妆品的面部化妆图像样本,并提供化妆模拟器,该模拟器运行 [ContextualLoss] 或 [PairedCycleGAN] 等机器学习模型,将样本化妆图像的化妆风格转移到她的面部图像上,从而可以通过模拟器检查所选妆容在她脸上的效果。
2.9 其他场景Web Neural Network API 还能用于以下诸多场景,比如:
超分辨率:当网络较差视频分辨率较低时,运行超分辨率机器学习模型 [SRGAN]来生成更高分辨率的视频帧图像字幕:通过 [im2txt] 提供自动图像字幕预测、自动提供解释性文字文本转图像:网络应用程序可以使用网页上的自然语言描述或用户在文本提示内提供的描述作为输入,以产生与文本描述匹配的图像。机器翻译:使用 [GNMT] 或 [OpenNMT] 等机器学习模型来翻译跨国界、跨用户对话情绪分析:在无法看到对方表情时,使用 [DeepMoji] 等机器学习模型来分析情绪,从而显示代表情绪的表情符号。实时视频处理集成:增强基于 WebRTC 的视频会议的用户体验参考资料https://www.w3.org/TR/webnn/
https://github.com/webmachinelearning/webnn/blob/main/explainer.md