本周推荐 | 电商3D购物新体验:AR量脚和AR试戴背后的算法技术

简介: 推荐语:本文结合了工业实际应用,介绍了工程上精心设计量脚交互流程,算法上融合2d检测、3d重建来实现较为精准的量脚流程,并在一系列算法流程计算上,充分考虑到了算法效率,保证了用户体验,具有很实用的价值。——大淘宝技术算法工程师 尘漠


引言

随着智能手机算力的提升,AR/VR应用的不断涌现,普通消费者对好玩有趣的AR应用接受度和期待越来越高,而3D沉浸式购物,包括各类AR试戴、AR量脚、AR试鞋等,因其广阔的应用前景而获得巨大关注。
例如,基于图像算法的AR量脚可以解决用户网购鞋子时尺码不合脚的问题。用户可以直接通过手机的摄像头、Lidar等传感器拍摄自己的脚并立刻获知脚长,再选购合适尺码的鞋子。该算法可以大大减少退换货的问题出现,提升了用户网购体验。
另一方面,手部商品的AR试戴作为3D沉浸式购物重要的组成部分,有着广阔的应用前景,例如,手表、手机作为重要的电商品类,具有客单价高、销量高的特点,如果能提高这些品类的AR试戴体验,必然能够提高用户的购买意愿。
为了解决AR量脚和AR试戴的实际问题,我们在PixelAI移动端视觉算法库中实现了对应的AR算法,结合2022年双十一,在淘宝App和天猫App中进行了算法到实际产品的落地。具体来说,在AR量脚算法中,我们将目标检测、直线检测、图像分割、三维点云重建等多种算法进行融合,并精心设计了量脚界面和教程,保证用户良好体验的同时,让脚长测量误差处于3mm以内。而基于AR手部算法,我们在天猫App 3D空间中上线了AR手表试戴,AR手机体验和数字戒指商品的AR试戴。本文将着重介绍来自PixelAI移动端视觉算法库的AR试戴、AR量脚两项技术。

AR量脚

 算法线上效果


  • AR量脚手淘入口
  • image.png

 手部3D重建算法


手部3D重建算法是从单张手部图像恢复手部3D几何信息的深度学习算法。也就是说,输入是一张手部照片或者视频,输出是手部的3D几何信息(输出手部纹理信息的方法不在本文讨论范围内)。


几何信息通常以3D Mesh(网格)顶点坐标的形式表示,以学术界使用最多的手部3D模型MANO[12]为例,输入一组模型的系数,就可以得到768个3D顶点的坐标。基于3D顶点和固定的三角面顶点索引,就能重建整个3D手模型;同样地,基于3D顶点和固定的蒙皮权重,就能得到手部21个关节点的3D坐标。

image.png

  • 技术选型


考虑到MANO模型包含768个稠密的手部顶点,满足大部分手部AR试戴场景的需求,因此我们也采用了MANO模型来进行手部3D重建。实际中,基于神经网络的手部3D重建主要分成两大类方法。
第一类是网络只学习MANO的参数。具体来说,包括表征姿态的pose系数和表针手部形状的shape系数,然后通过后处理中的MANO前向过程,得到手部3D 顶点坐标。第一类方法可以看作是间接学习的方法,优势是得到的3D 顶点坐标包含MANO模型训练数据集中的大量真实手的先验知识,符合手的结构,不会出现怪异的姿势,但缺点是3D顶点坐标投影到图像坐标系后与原始图像中的手不够贴合。
第二类方法是网络直接输出手部3D Mesh顶点,即网络直接回归得到768个顶点的3D坐标(768x3个浮点数)。这种方案的优点是省去了后处理中的MANO前向过程,简化流程,同时这种方案能更精准地建模手的动作。
基于实际的应用场景,我们认为,手部模型更多的是存在比较多的自遮挡,而不容易出现某些顶点偏离很多造成的鬼畜问题。因此我们采用第二类方法,即显式地学习手部3D Mesh的方案。

  • 网络设计


现有SOTA模型(Mesh Graphormer[17], METRO[18])大多采用ResNet50或者HRNet系列的Backbone,因而计算量太大,无法应用到移动端。小模型中精度较高的是快手在CVPR2022上发表的MobRecon[10],这篇论文通过采用2D Keypoints Prediction + 2D-to-3D Lifting的方案,先用真实数据和大量的合成数据预训练Backbone和2D关键点分支,再一起训练网络的全部参数,其中3D部分采用了螺旋卷积模块,用于提高3D部分网络对手部图形结构的感知能力,提高3D重建的精度。
在测试中我们发现,MobRecon存在两方面的问题:1)虽然论文中提出MobRecon的模型在iPhone 12 Pro机型上可以达到83FPS,但实际上,MobRecon转换后的MNN模型在中端Android机型vivo Y50上耗时59.6ms,未能达到实时。核心原因是MobRecon的螺旋卷积模块使用了scatter_add 算子,运行比较慢。另一个问题是MobRecon没有学习相机参数的分支,无法将3D顶点准确地投影到图像坐标系。
结合上述的调研分析,我们根据已有方案,从下面三个方面来设计网络:

  1. 设计轻量型Backbone+3D Head,采用成熟的残差网络结构,以便能在移动设备上达到实时
  2. 借鉴MobRecon网络,增加2D手部关节点坐标预测分支,用于在预训练阶段提高网络对手部特征的提取能力
  3. 借鉴SMPL[8]中的弱透视相机学习思路,新增相机参数预测分支,用于将3D手部Mesh顶点投影回2D图像上


基于这些改进思路,我们的算法框架如下:

image.png

实验结果


这里是我们的方案与一些SOTA方案的对比:

算法名称

FLOPs

PA-MPJPE(mm) ↓

预测相机内参

预测2D关节点

是否移动端实时

Mesh Graphormer[17]

4G

5.9

METRO[18]

4G

6.7

I2L-MeshNet[14]

4G

7.3

MobRecon[10]

480M

6.9

Ours

680M

6.7

可以看到,我们的方案在误差上小于一些服务器端大模型,在精度和速度上达到比较好的折衷。


 AR层算法设计


手部3D重建完成后,我们可以实时重建手部的3D模型,并且将手投影回2D图像上。但这距离手部AR试戴还差一步,我们还需要设计利用3D重建结果来调整3D商品位姿的AR层算法,例如常见的PnP[15]算法,PA[19]算法等。这些算法的核心目的是得到一个用来变换3D商品的Transform矩阵,再利用渲染引擎的接口来实时改变3D商品的位置和姿态。实际中对于不同的试戴商品,我们进行了不同的上层AR算法设计。

  • 手表试戴


手表试戴中我们采用了手腕关键点估计算法和PnP算法。概括来说,根据手腕关键点和虚拟手腕模型的对应关系,计算手腕的旋转矩阵R和平移矩阵t,再将R和t作用到手表上,就能得到正确的试戴结果。

  • 手机上手


考虑手机上手到应用场景,我们评估基于PnP的方案是满足业务需求的。借鉴手表试戴的思路,我们将PnP算法迁移迁移到手掌区域上来。由于在试玩手机的过程中,手指是可以变动的,而手掌区域可以近似看作刚体,因此我们利用手掌区域的关键点进行PnP算法。具体来说,选择MANO手模的手掌区域顶点,与当前图像重建的3D顶点的2D投影点进行PnP计算,得到旋转矩阵R和平移向量t,再作用到与标准手模匹配好的手机模型上,就能得到正确的手机位姿。

  • 戒指试戴


戒指试戴的功能是将虚拟的戒指商品放置到用户对应的手指上,达到真实的试戴效果。
相比手机上手中的手掌区域,戒指试戴采用的手指指节区域更小,采用2D投影点误差会更大。同时与手机上手只需要支持手掌不同,戒指试戴需要支持前置和后置摄像头,手掌和手背,以及360度旋转下的效果。在这种设置下,不可避免地会出现许多指节被遮挡的情景,采用PnP的方案效果会比较差。
因此我们进一步提出了利用3D指节坐标来进行试戴的新方案,具体来说:

  1. 戒指与手指关节的绑定在重建好的3D手部模型基础上,我们选择需要试戴的指节的顶点编号,并设置好与戒指正反面的对应关系。
  2. 根据手指关节构建forward和up向量forward和up向量是构建一个局部坐标系的两个参数。我们采用指节的轴向方向为foward,指节的径向方向为forward,构建局部坐标系。
  3. 根据局部坐标系旋转戒指利用LookRotation函数,就可以根据forward和up向量,得到戒指对应的旋转矩阵。



总结


作为提升用户体验的重要技术之一,AR技术在未来的电商、教育、医疗等领域拥有巨大的潜力。随着技术朝着3D化的发展,以及业务上AR和3D需求的增加,PixelAI算法团队正在不断深耕AR相关算法,加速研发各类AR试、AR量、AR扫等算法,充实优化移动端算法库,以更好地支持3D和AR算法在淘宝天猫等各项业务中的落地。


参考论文


[1] RangiLyu K. NanoDet-Plus: Super fast and high accuracy lightweight anchor-free object detection model[J]. 2021.

[2] Glenn J , Ayush C , Alex S , et al. Ultralytics/yolov5: v7.0 - YOLOv5 SOTA Realtime Instance Segmentation[J]. 2022.

[3] Ge Z, Liu S, Wang F, et al. Yolox: Exceeding yolo series in 2021[J]. arXiv preprint arXiv:2107.08430, 2021.

[4] Gu G , Ko B , Go S H , et al. Towards Light-weight and Real-time Line Segment Detection[J]. 2021.

[5] Huang S , Qin F , Xiong P , et al. TP-LSD: Tri-Points Based Line Segment Detector[C]// European Conference on Computer Vision. Springer, Cham, 2020.

[6] Fréchet M M. Sur quelques points du calcul fonctionnel[J]. Rendiconti del Circolo Matematico di Palermo (1884-1940), 1906, 22(1): 1-72.

[7] Hao S, Zhou Y, Guo Y. A brief survey on semantic segmentation with deep learning[J]. Neurocomputing, 2020, 406: 302-321.

[8] Qin X , Zhang Z , Huang C , et al. U2-Net: Going deeper with nested U-structure for salient object detection[J]. Pattern Recognition, 2020, 106:107404.

[9] Chen X, Liu Y, Ma C, et al. Camera-space hand mesh recovery via semantic aggregation and adaptive 2d-1d registration[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 13274-13283.

[10] Chen X, Liu Y, Dong Y, et al. MobRecon: Mobile-Friendly Hand Mesh Reconstruction from Monocular Image[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022: 20544-20554.

[11] Zimmermann C, Ceylan D, Yang J, et al. Freihand: A dataset for markerless capture of hand pose and shape from single rgb images[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 813-822.

[12] Romero J, Tzionas D, Black M J. Embodied hands: Modeling and capturing hands and bodies together[J]. arXiv preprint arXiv:2201.02610, 2022.

[13] Tang X, Wang T, Fu C W. Towards accurate alignment in real-time 3d hand-mesh reconstruction[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 11698-11707.

[14] Moon G, Lee K M. I2l-meshnet: Image-to-lixel prediction network for accurate 3d human pose and mesh estimation from a single rgb image[C]//European Conference on Computer Vision. Springer, Cham, 2020: 752-768.

[15] https://en.wikipedia.org/wiki/Perspective-n-Point

[16] Loper M, Mahmood N, Romero J, et al. SMPL: A skinned multi-person linear model[J]. ACM transactions on graphics (TOG), 2015, 34(6): 1-16.

[17] Lin K, Wang L, Liu Z. Mesh graphormer[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 12939-12948.

[18] Lin K, Wang L, Liu Z. End-to-end human pose and mesh reconstruction with transformers[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 1954-1963.

[19] https://en.wikipedia.org/wiki/Procrustes_analysis


团队介绍

大淘宝技术Meta团队,目前负责面向消费场景的3D/XR基础技术建设和创新应用探索,创造以手机及XR 新设备为载体的消费购物新体验。团队在端智、端云协同、商品三维重建、3D引擎、XR引擎等方面有着深厚的技术积累,先后发布深度学习引擎MNN、端侧实时视觉算法库PixelAI、商品三维重建工具Object Drawer、端云协同系统Walle等。团队在OSDI、MLSys、CVPR、ICCV、NeurIPS、TPAMI等顶级学术会议和期刊上发表多篇论文。欢迎视觉算法、3D/XR引擎、深度学习引擎研发、终端研发等领域的优秀人才加入,共同走进3D数字新时代。感兴趣的同学可以发送邮件至zhiwen.czw@alibaba-inc.com进行交流。

相关文章
|
1月前
|
Go vr&ar 图形学
重塑体验:AR/VR技术在游戏与娱乐行业的创新应用
【10月更文挑战第29天】本文探讨了AR/VR技术如何改变游戏与娱乐行业,介绍了AR和VR的基本概念及其在游戏和娱乐中的应用实例,包括《精灵宝可梦GO》的AR开发和VR视频播放器的实现代码,并展望了未来的发展趋势。
114 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-19
61 3
|
2月前
|
存储 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(上)
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(上)
44 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-16
42 1
|
2月前
|
机器学习/深度学习 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-15
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-15
59 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-14
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-14
51 1
|
2月前
|
机器学习/深度学习 数据采集 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-11
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-11
44 1
|
2月前
|
存储 人工智能 算法
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
49 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-17
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-17
70 0
|
2月前
|
存储 机器学习/深度学习 人工智能
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(下)
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13(下)
58 0