CN117916773A - 用于在移动设备中同时重建姿态和参数化3d人体模型的方法和*** - Google Patents
用于在移动设备中同时重建姿态和参数化3d人体模型的方法和*** Download PDFInfo
- Publication number
- CN117916773A CN117916773A CN202180101541.1A CN202180101541A CN117916773A CN 117916773 A CN117916773 A CN 117916773A CN 202180101541 A CN202180101541 A CN 202180101541A CN 117916773 A CN117916773 A CN 117916773A
- Authority
- CN
- China
- Prior art keywords
- image
- neural network
- mannequin
- person
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 80
- 238000013528 artificial neural network Methods 0.000 claims abstract description 95
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 64
- 238000009877 rendering Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 117
- 238000012549 training Methods 0.000 claims description 85
- 238000012360 testing method Methods 0.000 claims description 51
- 230000000306 recurrent effect Effects 0.000 claims description 47
- 230000015654 memory Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 25
- 230000033001 locomotion Effects 0.000 claims description 13
- 230000036541 health Effects 0.000 claims description 9
- 230000003190 augmentative effect Effects 0.000 claims description 8
- 230000006399 behavior Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 4
- 239000000284 extract Substances 0.000 abstract description 3
- 239000010410 layer Substances 0.000 description 57
- 230000008569 process Effects 0.000 description 33
- 239000011521 glass Substances 0.000 description 24
- 238000001514 detection method Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 17
- 238000007781 pre-processing Methods 0.000 description 10
- 210000000746 body region Anatomy 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 210000001503 joint Anatomy 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 101000872559 Hediste diversicolor Hemerythrin Proteins 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 239000003086 colorant Substances 0.000 description 4
- 101000742346 Crotalus durissus collilineatus Zinc metalloproteinase/disintegrin Proteins 0.000 description 3
- 210000004394 hip joint Anatomy 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 241000207875 Antirrhinum Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 101001018292 Protopolybia exigua Mastoparan-2 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000003484 anatomy Anatomy 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000037237 body shape Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本申请旨在根据人物的图像数据生成虚拟角色。计算机***获取由摄像头捕捉的图像。该图像包括人物。计算机***使用卷积神经网络从图像中提取多个特征,并使用回归神经网络从多个特征构建人物的3D人体模型。3D人体模型至少包括描述人物的人体的姿态和形状的第一组人体模型参数以及涉及人体的多个顶点的第二组人体模型参数。根据人物的3D人体模型渲染虚拟角色。
Description
技术领域
本申请总体上涉及图像数据处理技术,包括但不限于用于基于图像中捕捉的人物的信息实时渲染虚拟角色的方法、***和非暂存性计算机可读介质。
背景技术
人体姿态估计用于提供应用于电影、游戏和健康应用的人体运动信息。目前的实践通常需要工业级成像设备,其制造成本昂贵,需要专业培训才能操作,并且通常与附着在跟踪物体表面的物理标记一起使用。物理标记使用起来不方便,会造成数据污染,甚至在某些情况下会干扰物体的运动。为了克服这些问题,研究人员使用具有多个视角的多个光学或深度摄像头来提供图像输入,并开发一些无标记算法来捕捉人体运动。这些光学摄像头不适合户外环境,特别是在阳光下,光学或深度摄像头的分辨率和采集距离受到限制。无标记算法能在具有强大计算能力的个人计算机上离线运行。如何让手持设备实时捕捉人体动作成为一个问题。在移动设备上拥有比当前实践更便利的人体姿态估计机制将是有益的。
发明内容
因此,需要一种便利的人体姿态估计机制,用于识别图像中的人体关节并实时确定相关的人体运动,特别是传统摄像头(例如,移动电话的摄像头或增强眼镜)拍摄的图像。本申请的各种实施例涉及一种端到端管线,其在移动平台上以实时方式从一幅或多幅图像中同时恢复人体姿态、形状、几何形状和颜色参数。在一些实施例中,从图像中检测并裁剪人体区域。人体区域作为姿态估计网络的输入以推断三维(three-dimensional,3D)人体模型(例如,多人物蒙皮线性(skinned multi-person linear,SMPL)模型),其包括描述人物的人体的至少一个姿态和形状的第一组人体模型参数以及和涉及人体的多个顶点的第二组人体模型参数(例如,顶点偏移、顶点颜色)。应用这样的人体模型参数来构建与输入图像中的人体相关联的3D人体模型的参数化彩色人体网格。姿态估计网络可以选择使用公共数据集(例如MP II、COCO和Human3.6M)进行训练,以构建第一组人体模型参数。在一个示例中,姿态估计网络被训练以半督导方式构建顶点偏移和颜色,例如,使用Thu深度数据集进行督导训练并使用可微渲染进行无督导训练。这样的姿态估计网络可以在消费者级移动设备上实时可靠地执行。
一方面,一种用于生成虚拟角色的方法由计算机***实现。该方法包括获取摄像头拍摄的图像。该图像中含有人物。该方法进一步包括使用卷积神经网络从图像中提取多个特征;以及使用回归神经网络根据多个特征构建人物的3D人体模型。该3D人体模型包括描述人物的人体的姿态和形状的第一组人体模型参数以及涉及人体的多个顶点的第二组人体模型参数。该方法还包括根据人物的3D人体模型渲染虚拟角色。在一些实施例中,第一组人体模型参数通过图像中的人体的多个关键点的位置信息描述人体的姿态。关键点包括原点,每个关键点的位置信息包括相对于原点进行测量的各个关键点的3D旋转位置。在一些实施例中,3D人体模型被网格化至所述多个顶点,第二组人体模型参数至少包括每个顶点的3D顶点偏移和顶点颜色值。3D顶点偏移表示3D人体模型的各个顶点的位置与人体的对应点的位置之间的位置偏差。
第二方面,一些实施方式中包括一种计算机***。该计算机***包括一个或多个处理器以及存储器。存储器中存储有指令,当一个或多个处理器执行指令时,处理器执行如上所述的方法。
第三方面,一些实施方式中包括一种非暂存计算机可读介质。非暂存计算机可读介质中存储有指令,当由一个或多个处理器执行指令时,处理器执行如上所述的方法。
附图说明
为了更好地理解所描述的各种实施方式,应当结合附图并参考下文的具体实施方式,其中所有附图中相同的附图标记指代相对应的部分。
图1A是根据一些实施例示出的耦合到一个或多个客户端设备的一个或多个服务器的示例性数据处理环境;图1B是根据一些实施例示出的可以在数据处理环境中进行通信耦合的AR眼镜。
图2是根据一些实施例示出的数据处理***框图。
图3是根据一些实施例示出的用于训练和应用基于神经网络的数据处理模型来处理视觉和/或音频数据的示例性数据处理环境。
图4A是根据一些实施例示出的应用于基于NN的数据处理模型中处理内容数据的示例性神经网络;图4B是根据一些实施例示出的神经网络中的示例性节点。
图5是根据一些实施例示出的被应用于基于图像数据渲染虚拟角色的数据处理模型的框图。
图6A是根据一些实施例示出的基于图像数据渲染虚拟角色的数据推断过程的流程图。
图6B是根据一些实施例示出的姿态估计模型被训练以基于图像数据渲染虚拟角色的训练过程的流程图。
图7是根据一些实施例示出的用于基于由摄像头捕捉的图像渲染和生成虚拟角色的方法流程图。
在附图的多个视图中,相同的附图标记指代相对应的部分。
具体实施方式
现在将详细参考具体实施例,其示例在附图中示出。在下面的详细描述中,阐述了许多非限制性的具体细节以便帮助理解本文提出的主题。但对于本领域普通技术人员来说显而易见的是,在不脱离权利要求的范围的情况下,可以使用各种替代方案,并且可以在没有这些具体细节的情况下实践本主题。例如,对于本领域普通技术人员来说显而易见的是,本文提出的主题可以在具有数字视频能力的多种类型的电子设备上实现。
人体三维(three-dimensional,3D)重建广泛应用于电影特效、游戏和健康应用。在电影中,它可以用来创建逼真的虚拟角色,在游戏中可以用来创建游戏角色,在健康应用中可以使用3D人体建模来评估人体健康参数和行为。本申请的各种实施例涉及参数化模型构建和真实感人体重建。人体参数模型具有姿态参数和beta参数。姿态参数控制人体姿态和相关运动,β参数控制根据真实输入图像中的外观重建人体形状。该应用提出了一种便携式、客户端、实时3D人体形状和参数重建解决方案。图像数据被应用于以端到端的方式同时重建人体和姿态,同时要求移动设备能够提供合理水平的计算能力。具体地,采用端到端方法来实时重建人体的几何形状。可微分渲染器与以半督导方式训练的神经网络一起使用,以同时返回摄像头参数以及人体的形状、几何和颜色信息。
图1A是根据一些实施例示出的示例数据处理环境100,其具有可通信地耦合到一个或多个客户端设备104的一个或多个服务器102。一个或多个客户端设备104可以是,例如,台式计算机104A、平板计算机104B、移动电话104C、头戴式显示器(head-mounteddisplay,HMD)(也称为增强现实(augmented reality,AR)眼镜)104D、或者智能多重感应网络连接的家庭设备(例如,监控摄像头104E)。每个客户端设备104可以收集数据或用户输入、执行用户应用并且在其用户界面上输出。所收集的数据或用户输入可以由客户端设备104本地处理和/或由服务器102远程处理。一个或多个服务器102向客户端设备104提供***数据(例如,引导文件、操作***映像和用户应用)。在一些实施例中,当用户应用在客户端设备104上被执行时,处理从客户端设备104接收的数据和用户输入。在一些实施例中,数据处理环境100还包括用于存储与服务器102、客户端设备104和在客户端设备104上执行的应用相关的数据的存储器106。
一个或多个服务器102可以实现与彼此远离或远离一个或多个服务器102的客户端设备104的实时数据通信。此外,在一些实施例中,一个或多个服务器102可以实现不能由客户端设备104或优选地不由客户端设备104本地完成的数据处理任务。例如,客户端设备104包括执行交互式在线游戏应用的游戏控制台(例如,HMD 104D)。游戏控制台接收用户指令并将其与用户数据一起发送到游戏服务器102。游戏服务器102基于用户指令和用户数据构建视频数据流,并且提供视频数据流,以在游戏控制台和参与游戏控制台的同一游戏会话的其他客户端设备上显示。在另一示例中,客户端设备104包括联网监控摄像机和移动电话104C。联网监控摄像头采集视频数据并将视频数据实时流式传输至监控摄像头服务器102。虽然在监控摄像机上对视频数据进行可选的预处理,但是监控摄像机服务器102处理视频数据以识别视频数据中的运动或音频事件并与移动电话104C共享这些事件的信息,从而允许使用移动电话104的用户实时远程监控联网监控摄像头附近发生的事件。
一个或多个服务器102、一个或多个客户端设备104以及存储器106经由一个或多个通信网络108彼此可通信地耦合,通信网络108是用于在数据处理环境100内连接在一起的这些设备和计算机之间提供通信链路的介质。一个或多个通信网络108可包括连接,例如有线、无线通信链路或光纤电缆。一个或多个通信网络108的示例包括局域网(local areanetwork,LAN)、诸如互联网的广域网(wide area network,WAN)或其组合。可选地,使用任何已知的网络协议来实现一个或多个通信网络108,包括各种有线或无线协议,例如以太网、通用串行总线(Universal Serial Bus,USB)、FIREWIRE、长期演进(long termevolution,LTE)、全球移动通信***(global system for mobile communication,GSM)、增强型数据GSM环境(enhanced data GSM environment,EDGE)、码分多址(code divisionmultiple access,CDMA)、时分多址(time division multiple access,TDMA)、蓝牙、Wi-Fi、互联网协议语音(voice over Internet Protocol,VoIP)、Wi-MAX或任何其他合适的通信协议。到一个或多个通信网络108的连接可以直接建立(例如,使用到无线运营商的3G/4G连接),或者通过网络接口110(例如,路由器、交换机、网关、集线器或智能网关)建立,或者通过其任意组合。因此,一个或更多通信网络108可以代表使用传输控制协议/互联网协议(transmission control Protocol/Internet protocol,TCP/IP)协议套件来彼此通信的全球网络和网关集合的互联网。互联网的核心是主要节点或主机之间的高速数据通信线路的主干,其由数千个路由数据和消息的商业、政府、教育和其他计算机***组成。
在一些实施例中,在数据处理环境100中应用深度学习技术来处理由由客户端设备104所执行的应用获得的内容数据(例如,视频数据、视觉数据、音频数据),以识别内容数据中包含的信息,将内容数据与其他数据进行匹配、对内容数据进行分类、或者合成相关的内容数据。内容数据可以广泛地包括由客户端设备104的惯性传感器捕捉的惯性传感器数据。在这些深度学习技术中,数据处理模型是基于一个或多个神经网络创建的,以处理内容数据。这些数据处理模型在应用于处理内容数据之前先用训练数据进行训练。在模型训练之后,移动电话104C或HMD 104D获取内容数据(例如,通过内部摄像头捕捉视频数据)并且使用本地数据处理模型来处理内容数据。
在一些实施例中,模型训练和数据处理均在每个单独的客户端设备104(例如,移动电话104C和HMD 104D)本地实现。客户端设备104从一个或多个服务器102或存储器106获得训练数据并且应用训练数据来训练数据处理模型。或者,在一些实施例中,模型训练和数据处理两者都在与客户端设备104(例如,客户端设备104A和HMD 104D)相关联的服务器102(例如,服务器102A)处远程实现。服务器102A从其自身、另一服务器102或存储器106获得训练数据,并且应用训练数据来训练数据处理模型。客户端设备104获得内容数据,将内容数据发送到服务器102A(例如,在应用中)以使用训练的数据处理模型进行数据处理,从服务器接收数据处理结果(例如,识别的或预测的设备姿态),在用户界面(例如,与应用相关联)上渲染结果,基于姿态在视野中渲染虚拟对象,或者基于结果实现一些其他功能。在将内容数据发送到服务器102A之前,客户端设备104本身对内容数据不执行数据处理或执行很少的数据处理。另外,在一些实施例中,数据处理在客户端设备104(例如,客户端设备104B和HMD 104D)本地执行。而模型训练由与客户端设备104相关联的服务器102(例如,服务器102B)远程实施。服务器102B从其自身、另一服务器102或存储器106获得训练数据,并且应用训练数据来训练数据处理模型。训练的数据处理模型可选地存储在服务器102B或存储器106中。客户端设备104从服务器102B或存储器106导入经过训练的数据处理模型,使用数据处理模型处理内容数据,并构建要渲染在用户界面上或用于启动一些功能(例如,渲染基于设备姿态的虚拟对象)。
图1B示出了根据一些实施例示出的可通信地耦合到数据处理环境100的AR眼镜104D(也称为HMD)。AR眼镜104D可以包括摄像头、麦克风、扬声器、一个或多个惯性传感器(例如,陀螺仪、加速计)和显示器。摄像头和麦克风被配置为从AR眼镜104D的场景捕捉视频和音频数据,而一个或多个惯性传感器被配置为捕捉惯性传感器数据。在一些情况下,摄像头捕捉佩戴AR眼镜104D的用户的手势。在一些情况下,麦克风会记录环境声音,包括用户的语音命令。在一些情况下,由摄像头捕捉的视频或静态视觉数据以及由一个或多个惯性传感器测量的惯性传感器数据两者均被应用于确定和预测设备姿态。由AR眼镜104D捕捉的视频、静态图像、音频或惯性传感器数据由AR眼镜104D、服务器102或由两者一起处理,以识别设备姿态。可选地,服务器102和AR眼镜104D联合应用深度学习技术来识别和预测设备姿态。设备姿态用于控制AR眼镜104D本身或与AR眼镜104D执行的应用(例如,游戏应用)交互。在一些实施例中,AR眼镜104D的显示器显示用户界面,并且识别或预测的设备姿态用于在用户界面上渲染用户可选择的显示项目(例如,虚拟角色)或与用户可选择的显示项目交互。
如上所述,在一些实施例中,在数据处理环境100中应用深度学习技术处理由AR眼镜104D捕捉的视频数据、静态图像数据或惯性传感器数据。使用第一数据处理模型基于上述的视频、静态图像和/或惯性传感器数据来识别和预测2D或3D设备姿态。可视内容可选地通过使用第二数据处理模型来构建。第一和第二数据处理模型的训练可选地由服务器102或AR眼镜104D来实现。设备姿态和视觉内容的推断是由服务器102和AR眼镜104D中的每一个独立地实现或者由服务器102和AR眼镜104D两者联合地实现。
图2是根据一些实施例示出的数据处理***200的框图。数据处理***200包括服务器102、客户端设备104(例如,图1B中的AR眼镜104D)、存储装置106或其组合。数据处理***200通常包括一个或多个中央处理单元(central processing unit,CPU)202、一个或多个网络接口204、存储器206以及用于互连这些组件的一个或多个通信总线208(有时称为芯片组)。数据处理***200包括一个或多个便于用户输入的输入设备210,例如键盘、鼠标、语音命令输入单元或麦克风、触摸屏显示器、触敏输入板、手势捕捉摄像头、或其他输入按钮或控件。此外,在一些实施例中,数据处理***200的客户端设备104使用麦克风和语音识别或者摄像头和手势识别来补充或替代键盘。在一些实施例中,客户端设备104包括一个或多个摄像头、扫描仪或光传感器单元,用于捕捉例如印刷在电子设备上的图形串行代码的图像。数据处理***200还包括能够渲染用户界面和显示内容的一个或多个输出设备212,包括一个或多个扬声器和/或一个或多个视觉显示器。可选地,客户端设备104包括位置检测设备,例如全球定位卫星(global positioning satellite,GPS)或其他地理位置接收器,用于确定客户端设备104的位置。
存储器206包括高速随机存取存储器,例如DRAM、SRAM、DDR RAM或其他随机存取固态存储器装置;可选地,包括非易失性存储器,例如一个或多个磁盘存储设备、一个或多个光盘存储设备、一个或多个闪存设备、或者一个或多个其他非易失性固态存储设备。可选地,存储器206包括远离一个或多个处理单元202的一个或多个存储设备。存储器206,或者说非易失性存储器206,包括非暂存性计算机可读存储介质。在一些实施例中,存储器206或存储器206的非暂存性计算机可读存储介质存储以下程序、模块和数据结构或其子集或超集:
·操作***214包括用于处理各种基本***服务和用于执行硬件相关任务的程序;
·网络通信模块216用于通过一个或多个网络接口204(有线或无线)和一个或多个通信网络108,如互联网、其他广域网、局域网、城域网等,将每个服务器102或客户端设备104连接到其他设备(例如,服务器102、客户端设备104或存储器106);
·用户界面模块218用于使得能够通过一个或多个输出设备212(例如,显示器、扬声器等)在每个客户端设备104处渲染信息(例如,应用224、窗口小部件、网站及其网页、和/或游戏、音频和/或视频内容、文本等的图形用户接口);
·输入处理模块220用于检测来自一个或多个输入设备210之一的一个或多个用户输入或交互,并解释检测到的输入或交互;
·网络浏览器模块222用于导航、请求(例如,经由HTTP)和显示网站及其网页,其包括用于登录到与客户端设备104或另一电子设备相关联的用户账户,如果与用户帐户关联,则控制客户端或电子设备的网络界面,以及编辑和查看与用户帐户关联的设置和数据;
·一个或多个用户应用224用于由数据处理***200(例如,游戏、社交网络应用、智能家居应用、和/或用于控制另一电子设备并查看由该电子设备捕捉的数据的其他基于网络或非网络的应用)执行;
·模型训练模块226用于接收训练数据并建立数据处理模型,用于处理要由客户端设备104收集或获得的内容数据(例如,视频、图像、音频或文本数据);
·数据处理模块228(例如,图5中的数据处理模块500),用于使用数据处理模型240(例如,图5中的姿态估计模型550)来处理内容数据,从而识别包含在内容数据中的信息,将内容数据与其他数据进行比较、对内容数据进行分类、或合成相关内容数据。其中,在一些实施例中,数据处理模块228与用户应用224之一相关联,以响应于从用户应用224接收到的用户指令来处理内容数据;
·一个或多个数据库230用于存储至少包括以下一项或多项的数据:
ο设备设置232,包括一个或多个服务器102或客户端设备104的公共设备设置(例如,服务层、设备模型、存储容量、处理能力、通信能力等);
ο用户账户信息234,用于一个或多个用户应用224,例如用户名、安全问题、账户历史数据、用户偏好和预定义账户设置;
ο网络参数236,用于一个或多个通信网络108,例如IP地址、子网掩码、默认网关、DNS服务器和主机名;
ο训练数据238,用于训练一个或多个数据处理模型240;
ο数据处理模型240,用于使用深度学习技术处理内容数据(例如,视频、图像、音频或文本数据),其中数据处理模型240包括姿态估计模型550,姿态估计模型550还具有卷积神经网络和回归神经网络;
ο内容数据和结果242,分别由数据处理***200的客户端设备104获得并输出,其中内容数据由数据处理模型240在客户端设备104本地处理或在服务器102远程处理以提供要在客户端设备104上渲染的关联结果242。
可选地,一个或多个数据库230存储在数据处理***200的服务器102、客户端设备104和存储器106之一之中。可选地,一个或多个数据库230分布在数据处理***200的服务器102、客户端设备104和存储器106的多于一者之中。在一些实施例中,多于一份副本的以上数据存储在不同的设备之中,例如,数据处理模型240的两份副本分别存储在服务器102和存储器106之中。
每个上面标识的元素可以存储在一个或多个先前提到的存储器设备中,并且对应于用于执行上述功能的一组指令。上述识别的模块或程序(即,指令集)不需要被实现为单独的软件程序、过程、模块或数据结构,并且因此这些模块的各种子集可以在各种实施例中组合或以其他方式重新布置。在一些实施例中,存储器206可选地存储有上面标识的模块和数据结构的子集。此外,存储器206可选地存储有上面未描述的附加模块和数据结构。
图3是根据一些实施例示出的用于训练和应用基于神经网络(neural networkbased,NN-based)的数据处理模型240来处理内容数据(例如,视频、图像、音频或文本数据)的另一个示例性数据处理***300。数据处理***300包括用于建立数据处理模型240的模型训练模块226和用于使用数据处理模型240来处理内容数据的数据处理模块228。在一些实施例中,模型训练模块226和数据处理模块228两者都位于数据处理***300的客户端设备104,而与客户端设备104不同的训练数据源304向客户端设备104提供训练数据306。训练数据源304可选地是服务器102或存储器106。或者,在一些实施例中,模型训练模块226和数据处理模块228两者都位于数据处理***300的服务器102。提供训练数据306的训练数据源304可选地是服务器102本身、另一服务器102或存储器106。另外,在一些实施例中,模型训练模块226和数据处理模块228分别位于服务器102和客户端设备104,并且服务器102向客户端设备104提供训练后的数据处理模型240。
模型训练模块226包括一个或多个数据预处理模块308、模型训练引擎310和损失控制模块312。根据待处理的内容数据的类型来训练数据处理模型240。训练数据306与内容数据的类型一致,因此数据预处理模块308用于处理与内容数据的类型一致的训练数据306。例如,图像预处理模块308A被配置为将图像训练数据306处理为预定图像格式,例如提取每个训练图像中的感兴趣区域(region of interest,ROI),并将每个训练图像裁剪为预定图像尺寸。或者,音频预处理模块308B被配置为将音频训练数据306处理为预定音频格式,例如,使用傅里叶变换将每个训练序列转换为频域。模型训练引擎310接收由数据预处理模块308提供的预处理训练数据,使用现有数据处理模型240进一步处理预处理训练数据,并且从每个训练数据项构建输出。在此过程期间,损失控制模块312可以监控损失函数,比较与相应训练数据项相关联的输出和相应训练数据项的基本事实。模型训练引擎310修改数据处理模型240以减小损失函数,直到损失函数满足损失标准(例如,损失函数的比较结果被最小化或减小到损失阈值以下)。修改的数据处理模型240被提供给数据处理模块228,以处理内容数据。
在一些实施例中,模型训练模块226提供督导学习,其中训练数据被完全标记并且包括每个训练数据项的期望输出(在一些情况下也称为基本事实)。相反,在一些实施例中,模型训练模块226提供训练数据未被标记的无督导学习。模型训练模块226被配置为在没有预先存在的标签并且没有或很少有人物督导的情况下识别训练数据中先前未检测到的模式。另外,在一些实施例中,模型训练模块226提供部分督导学习,其中训练数据被部分标记。
数据处理模块228包括数据预处理模块314、基于模型的处理模块316和数据后处理模块318。数据预处理模块314基于内容数据的类型来预处理内容数据。数据预处理模块314的功能与预处理模块308的功能一致,并且将内容数据转换为基于模型的处理模块316的输入可接受的预定义内容格式。内容数据的示例包括视频、图像、音频、文本和其他类型的数据中的一种或多种。例如,每个图像都经过预处理以提取ROI或裁剪为预定图像大小,并且音频剪辑经过预处理以使用傅立叶变换转换为频域。在一些情况下,内容数据包括两种或更多种类型,例如视频数据和文本数据。基于模型的处理模块316应用由模型训练模块226提供的训练数据处理模型240来处理预处理的内容数据。基于模型的处理模块316还可以监视错误指示符以确定内容数据是否已经在数据处理模型240中被正确处理。在一些实施例中,处理后的内容数据由数据后处理模块318进一步处理,进而以优选格式渲染处理后的内容数据或提供可以从处理后的内容数据导出的其他相关信息。
图4A是根据一些实施例示出的应用于在基于NN的数据处理模型240中处理内容数据的示例性神经网络(neural network,NN)400;图4B是根据一些实施例示出的神经网络(neural network,NN)400中的示例节点420。数据处理模型240是基于神经网络400建立的。相应的基于模型的处理模块316应用包括神经网络400的数据处理模型240,以处理已经被转换为预定义内容格式的内容数据。神经网络400包括节点420的集合,这些节点通过链接412连接。每个节点420接收一个或多个节点输入并应用传播函数以从该一个或多个节点输入构建节点输出。当经由一个或多个链路412向一个或多个其他节点420提供节点输出时,与每个链路412相关联的权重w被应用于节点输出。同样,一个或多个节点输入根据传播函数基于相应的权重w1、w2、w3和w4进行组合。在一示例中,传播函数是非线性激活函数与一个或多个节点输入的线性加权组合的乘积。
节点420的集合被组织成神经网络400中的一层或多层。可选地,该一层或多层包括充当输入层和输出层的单个层。可选地,该一层或多层包括用于接收输入的输入层402、用于提供输出的输出层406、以及在输入层402和输出层406之间的零个或多个隐藏层404(例如,404A和404B)。深度神经网络在输入层402和输出层406之间具有多个隐藏层404。在神经网络400中,每一层仅与其紧接的前一层和/或紧接的后一层连接。在一些实施例中,层402或404B是全连接层,因为层402或404B中的每个节点420连接到其紧接着的层中的每个节点420。在一些实施例中,一个或多个隐藏层404之一包括两个或更多个节点,这些节点连接到其紧接的下一层中的同一节点,用于对这两层之间的节点420进行下采样或池化。具体地,最大池化使用层404B中的两个或更多个节点的最大值来构建连接到两个或更多个节点的紧接的层406的节点。
在一些实施例中,在数据处理模型240中应用卷积神经网络(convolutionalneural network,CNN)来处理内容数据(具体地,视频和图像数据)。CNN采用卷积运算并且属于一类深度神经网络400,即,仅将数据从输入层402通过隐藏层向前移动到输出层406的前馈神经网络。CNN的一个或多个隐藏层是与乘法或点积进行卷积的卷积层。卷积层中的每个节点从与前一层(例如,五个节点)相关联的感受区域接收输入,并且感受区域小于整个前一层,并且可以根据卷积神经网络中卷积层的位置而变化。视频或图像数据被预处理为与CNN输入相对应的预定义视频/图像格式。预处理后的视频或图像数据由CNN的各层进行抽象至相应的特征图。通过这些方式,视频和图像数据可以由CNN进行处理,以进行视频和图像识别、分类、分析、印记或合成。
可选地且附加地,在一些实施例中,在数据处理模型240中应用循环神经网络(recurrent neural network,RNN)来处理内容数据(具体地,文本和音频数据)。RNN连续层中的节点遵循时间序列,使得RNN表现出时间动态行为。在一个示例中,RNN的每个节点420具有时变实值激活。RNN的示例包括但不限于长短期记忆(long short-term memory,LSTM)网络、完全循环网络、Elman网络、Jordan网络、Hopfield网络、双向联想记忆(bidirectional associative memory,BAM)网络、回声状态网络、独立RNN(IndRNN)、递归神经网络和神经历史压缩器。在一些实施例中,RNN可以用于手写或语音识别。应注意,在一些实施例中,数据处理模块228处理两种或更多种类型的内容数据,并且应用两种或更多种类型的神经网络(例如,CNN和RNN)来联合处理内容数据。
训练过程是使用输入层402中提供的训练数据集来校准学习模型的每一层的所有权重wi的过程。训练过程通常包括前向传播和反向传播两个步骤,这两个步骤会重复多次,直到满足预定收敛条件。在前向传播中,不同层的权重集被应用于前一层的输入数据和中间结果。在反向传播中,测量输出的误差幅度(例如损失函数),并相应地调整权重以减小误差。激活函数可选地是线性的、修正的线性单位、S形函数(sigmoid)、双曲正切函数或其他类型。在一些实施例中,在应用激活函数之前将网络偏差项b添加到来自前一层的加权输出的总和。网络偏差b提供扰动,帮助NN400避免过度拟合训练数据。训练的结果包括每层的网络偏差参数b。
图5是根据一些实施例示出的基于图像数据渲染虚拟角色504的数据处理模块500的框图。图像数据包括由摄像头(例如,其包括在移动电话104C或AR眼镜104D中)捕捉的一个或多个图像502。数据处理模块500获取图像502,基于图像502渲染虚拟角色504,并使虚拟角色504显示在移动电话或AR眼镜104D的屏幕上。在一些实施例中,客户端设备104包括数据处理模块500并且被配置为基于由客户端设备104本身捕捉的图像502渲染和生成虚拟角色504。或者,在一些实施例中,第一客户端设备104包括数据处理模块500并且被配置为基于由不同的第二客户端设备104捕捉的图像502渲染和生成虚拟角色504。
数据处理模块500包括人体检测模块506、CNN编码器508、回归神经网络510、3D人体姿态估计模块512、全局位置定位模块514和虚拟角色渲染模块516的子集或全部。这些模块506-516使得数据处理模块500从图像502中提取多个特征518,构建图像中的人物的3D人体模型520,并且渲染虚拟角色504。3D人体模型520包括至少描述人物的人体的姿态和形状的第一组人体模型参数522以及涉及人体的多个顶点的第二组人体模型参数524。在一些实施例中,3D人体模型520还包括摄像头姿态526的信息(例如,摄像头位置或方向)。
人体检测模块506获取图像502(例如,RGB图像),从图像502中检测人物的人体,并构建包围人体的人体区域528。在一个示例中,人体区域528具有紧密包围人体的矩形边界框。在一些实施例中,人体检测模型被训练并应用于检测人体并构建人体区域528。人体检测模型可选地包括反转残差块。在一个示例中,人体检测模型包括紧凑且轻量级的全卷积神经网络(convolutional neural network,CNN)编码器,并使用基于锚的一次性检测框架(例如,单阶段实时对象检测模型,YoloV2),该框架被配置为构建与人体区域528相关联的回归结果。在一些实施例中,COCO数据集被应用于训练在人体检测模块506中应用的神经网络。在一些情况下,人体区域528的边界框具有适用于与在图像502内检测到的人体相关联的任何边界框的预定义长宽比。基于预定长宽比,边界框的宽度或长度被扩展以完全包围不同的人体,而不扭曲图像502的图像长宽比。在一些实施例中,边界框528'包括224×224像素。在未示出的一些实施例中,图像502被裁剪和/或缩放至224×224像素,并且边界框528’小于224×224像素并且被包围在裁剪后的图像502内。
CNN编码器508耦合到人体检测模块506,并且被配置为从图像502(具体地,从图像502的人体区域528)提取多个特征。回归神经网络510耦合到CNN编码器508,并被配置为构建包括姿态参数522A和形状参数522B的第一组人体模型参数522以及涉及人体的多个顶点的第二组人体模型参数524。姿态参数522A和形状参数522B分别描述人物的人体的姿态和形状。第二组人体模型参数的示例是人体每个顶点的3D顶点偏移524A和顶点颜色524B。在一些实施例中,回归神经网络510还检测相对于拍摄图像502的摄像头所处的场景的摄像头姿态526(例如,摄像头位置和摄像头方向)。在一些实施例中,回归神经网络510包括输出神经网络层,并且从输出神经网络层输出第一组人体模型参数522和第二组人物类模型参数524。
在一些实施例中,摄像头固有矩阵(例如,摄像头姿态526)将3D摄像头坐标变换为2D齐次图像坐标,其对于每个输入图像502来说是已知的和固定的。姿态估计模型550包括人体检测模块506的神经网络、CNN编码器508和回归神经网络510,并且被配置为预测人体模型参数522和524以及摄像头姿态526。在姿态估计模型550中,特征提取层(即,CNN编码器508)由具有跳跃连接的倒置瓶颈模块来实现。回归神经网络510包括用于产生摄像头外在参数(即,摄像头姿态526)的至少两个全连接层,用于人体的24个关节的SMPL姿态参数522A,以及形状参数522B(例如,由10元素向量控制)。回归神经网络510还在SMPL模板中提供顶点位移524A和每顶点颜色信息524B。
3D人体姿态估计模块512耦合到回归神经网络510并且基于第一组人体模型参数522、第二组人体模型参数524和摄像头姿态526形成3D人体模型520(例如,蒙皮多人物线性(SMPL)模型)。第一组人体模型参数522和第二组人体模型参数524描述SMPL模型的人体。虚拟角色渲染模块516耦合到3D人体姿态估计模块512,并且被配置为渲染虚拟角色504。
在一些实施例中,模块506-510的姿态估计模型550以自督导方式被训练。基于姿态参数522A、形状参数522B、3D顶点偏移524A和顶点颜色524B的网格重建人体模型。虚拟角色渲染模块516包括可微渲染模块530,其被配置为接收包括虚拟角色504的输出图像和包括人体区域528的图像502,并且比较图像502和输出图像。相应的损失函数被定义为图像502的人体区域528与所渲染的虚拟角色504之间的差异,以训练姿态估计模型550进而准确地获得至少顶点偏移524A和顶点颜色524B。
在一些实施例中,以督导方式训练模块506-510的姿态估计模型550,特别是为了获得人体或摄像头姿态526的准确姿态参数522A和形状参数522B。为督导训练提供的训练数据包括多个测试图像和与测试图像相关联的人体或摄像头姿态526的姿态参数522A和形状参数522B的地面实况的2D标签。在一些情况下,模块506-610的姿态估计模型550将人体的关节投影在测试图像中。调整姿态估计模型550被调节以优化(例如,最小化、抑制到关节阈值以下)投影关节和地面实况之间的损失L2。在一些实施例中,训练数据包括测试图像中人体的3D姿态信息。模块506-610的姿态估计模型550对测试图像中人体关节的3D位置进行回归以获得3D人体模型520。调整姿态估计模型550被调节以优化(例如,最小化、抑制到低于3D偏移阈值)关节的3D位置与地面实况之间的3D损失。此外,在一些实施例中,训练数据具有地面实况几何形状。在与顶点偏移524A相关联的人体的几何形状和地面实况几何形状之间确定3D表面损失,从而指导几何位移524A和顶点颜色524B的确定。调整姿态估计模型550被调节以优化(例如,最小化、抑制在表面损失阈值以下)3D表面损失。或者,虚拟角色渲染模块516中的可微分渲染模块530用于确定所渲染的虚拟角色504并将其与图像502的人体区域528进行比较。
在一些实施例中,在公共数据集(例如,MPII、COCO、Human3.6m)之一上训练数据处理模块500中的姿态估计模型550,以获得人体的准确姿态参数522A和形状参数522B。另外,在一些实施例中,公共数据集ThuHuman包含2000个人物类扫描,并且被应用于回归几何和颜色信息524A和524B。在一些实施例中,合成人物类数据集是根据公共数据源上的高保真人物类模型构建的。在一个示例中,在训练之后,数据处理模块500中的姿态估计模型550花费大约每秒0.45G浮点运算(floating point operations per second,FLOPS)的计算成本来基于图像502渲染虚拟角色504。如此,数据处理模块500可以在移动设备中实时实现。
在一些实施例中,全球位置定位模块514耦合到3D人体姿态估计模块512,并且接收包括在图像502中捕捉的人体关节的3D关节位置的3D人体模型520中。此类3D关节位置被转换为3D空间中的人体运动。全球位置定位模块512启用AR实时人体运动捕捉***,该***解算人体对象(即,虚拟角色504)的全球位置T,以估计虚拟角色相对于现实世界的运动。当根据捕捉图像502的摄像头的姿态渲染虚拟角色504时,虚拟角色的虚拟骨架的关键点与图像502中捕捉的人体的2D关节位置相匹配。在一些实施例中,摄像头固有投影矩阵为P,从图像502确定的3D关节位置为X。人物类实时全局位置运动为Δx,使得图像502中的2D关节位置A2表示为:
X2d=P(X+Δx) (1)
将方程(1)导出为线性***,并使用奇异值分解(singular valuedecomposition,SVD)进行求解。在一个示例中,使用高级精简指令集计算(reducedinstruction set computing,RISC)架构(ARM)处理器的移动设备104C,这样的全球位置求解花费大约1毫秒。
虚拟角色渲染模块516被配置为在客户端设备104的显示器上渲染3D虚拟角色模型(即,虚拟角色504)。在一些实施例中,客户端设备104具有被配置为捕捉场景的视场的图像的摄像头,并且虚拟角色504覆盖在显示器上的视场的顶部。此外,在一些实施例中,应用相同的摄像头来捕捉人体,以提取用于生成和渲染虚拟角色504的3D人体模型520,并且将虚拟角色504实时显示在摄像头的视野的人体上方。虚拟角色504基本上与摄像头捕捉到的人体重叠。相反,在一些实施例中,应用第一摄像头来捕捉人体,以提取用于生成和渲染虚拟角色504的3D人体模型520,并且将虚拟角色504实时显示在不同的第二摄像头的视野中。渲染虚拟角色504和捕捉渲染虚拟角色504的图像502之间的延迟基本上很小(例如,小于阈值等待时间(例如,5毫秒)),使得虚拟角色504被认为是基本上实时渲染的。
数据处理模块500在移动设备(例如,移动设备104C)上实时实现,并且对应于姿态估计模型550,姿态估计模型550还至少包括人体检测模块506的CNN、CNN编码器508、以及回归神经网络510。可以在数据处理模块500中优化后处理和线性计算。例如,人体检测模块506的CNN、CNN编码器508和回归神经网络510被量化。人体检测模块506和回归神经网络510的每个CNN均包括多层,并且每一层具有相应数量的滤波器。每个滤波器与多个权重相关联。对于姿态估计模型550的每个网络,在训练相应网络的同时,为每个滤波器的多个权重维持float32格式。在构建各自的网络之后,将每个滤波器的多个权重量化为int8,uint8,int16或者uint16格式。在一些实施例中,服务器以float32格式训练人体检测模块506、CNN编码器508和回归神经网络510的CNN,并将它们量化为int8,uint8,int16或者uint16格式。量化CNN和回归神经网络510被提供给移动设备以用于虚拟角色504的推理。在一些实施例中,人体检测模块506、CNN编码器508和回归神经网络510的CNN由数字信号处理(digitalsignal processing,DSP)单元或图形处理单元(graphics processing unit,GPU)的神经网络推理引擎执行,例如,高通Snapdragon神经处理引擎(qualcomm snapdragon neuralprocessing engine,SNPE)。在一个示例中,计算功耗约为0.8G FLOPS,可以在市场上的许多芯片上方便地执行。
图6A是根据一些实施例示出的基于图像数据渲染虚拟角色504的数据推断过程600的流程图。图像数据由电子设备104的摄像头捕捉,并且包括一个或多个图像502。在一些实施例中,每个图像502包括一个人物。在相应图像502中识别(602)人物之后,裁剪相应图像502以保留包含该人物的图像区域528。在一些实施例中,图像区域528’具有预定长宽比。图像区域528'的长度或宽度与图像502中的人物的长度或宽度匹配,并且图像区域528'对应的宽度或长度大于图像502中的人物的宽度或长度,使得该人物完全包含在图像区域528内。使用CNN编码器508来处理图像区域528或图像502的528以提取多个特征。回归神经网络510构建(604)人物的人体姿态和形状的参数522,以及人体的多个顶点的顶点偏移524A和顶点颜色524B。
从人物的人体的姿态参数522A和形状参数522B以及人体的多个顶点的顶点偏移524A和顶点颜色524B形成(606)3D人体模型520。人物的人体姿态参数522A属于第一组人体模型参数,并且包括在每个图像502中的人体的多个关键点的位置信息。关键点包括原点,每个关键点的位置信息包括相对于原点进行测量的各个关键点的3D旋转位置。每个关键点对应一个关节。在一个示例中,3D人体模型520包括由24个关键点表示的24个关节。在一些实施例中,原点对应于髋关节,并且在以髋关节为中心的球坐标中相对于髋关节测量每个关键点的位置。另外,3D人体模型520具有与多个顶点网格化的表面,并且每个顶点由相应的顶点偏移524A和顶点颜色524B描述。对于每个顶点,相应的顶点偏移524A指示每个图像502中的3D人体模型的相应顶点的位置与人体的相应点的标称或静态位置之间的位置偏差。在一些实施例中,多个顶点具有预定数量的顶点,并且该预定数量是固定的且不能由回归神经网络510在训练期间自适应地调整。
回归神经网络510基于摄像头捕捉的一幅或多幅图像502构建(608)摄像头姿态526(例如,摄像头位置和方向)。具体地,在一些实施例中,电子设备104包括AR眼镜104D。AR眼镜104扫描AR眼镜104D所在的场景,并创建和更新该场景的3D地图(即,虚拟3D摄像头空间)。将每个图像502与3D地图进行比较,以识别摄像头相对于3D地图的姿态526。例如,3D地图包括多个特征点,并且每个图像502包括特征点的子集。将特征点子集与多个特征点进行比较以确定AR眼镜104D的摄像头在场景内的位置和定向。多个特征点也可选地根据每个图像502的特征点子集来更新。
虚拟角色504是基于3D人体模型520构建的并且在电子设备104-1所执行的用户应用中被渲染(610)。操作602-608在电子设备104-2上实现。捕捉图像502的摄像头集成在电子设备104-3上。可选地,所有三个电子设备104-1、104-2和104-3彼此不同。可选地,所有三个电子设备104-1、104-2和104-3是同一设备。可选地,电子设备104-1和104-2是不同设备,并且电子设备104-2和104-3是相同设备。虚拟角色504是基于3D人体模型520构建的,并且被提供给不同的电子设备以在不实现操作602-608的由不同电子设备所执行的用户应用中渲染。可选地,电子设备104-1和104-2是同一设备,并且电子设备104-2和104-3是相同或不同设备。虚拟角色504是基于3D人体模型520构建的并且在实现操作602-608的电子设备所本地执行的用户应用中渲染。
电子设备104-1、104-2和104-3中的任一个可选地是便携式设备,例如移动电话、平板计算机和笔记本电脑。在一个示例中,用户应用是被配置为在虚拟角色504上渲染一种或多种增强现实(augmented reality,AR)效果的图像处理应用、被配置为将虚拟角色504放置在游戏场景中的游戏应用、以及根据人体3D人体模型评估人体健康状况和行为的健康应用。在一些实施例中,被配置为实现操作602-608的电子设备104-2包括GPU和DSP之一。GPU和DSP其中之一具有精度设置。卷积神经网络508和回归神经网络510中的每一个包括一个或多层,并且每一层具有与相应层中的每个滤波器相关联的多个权重。训练卷积神经网络508和回归神经网络510后,根据精度设置对每层的多个权重进行量化。
在一些实施例中,一个或多个图像502包括第一图像502A,人物的3D人体模型520包括第一3D人体模型。被配置为实现操作602-608的电子设备获得包括人物的第二图像502B,且使用CNN编码器508和回归神经网络510从第二图像502B构建人物的第二3D人体模型。第二图像502B是在第一图像502A之后由摄像头捕捉的。电子设备基于人物的第二3D人体模型重新渲染虚拟角色504,从而使虚拟角色跟踪人物的运动。
图6B是根据一些实施例示出的训练过程650的流程图,其中姿态估计模型550被训练以基于图像数据渲染虚拟角色。数据处理模块500对应综合姿态估计模型550,该综合姿态估计模型550至少包括人体检测模块506的CNN、CNN编码器508和回归神经网络510。以端到端的方式训练综合姿态估计模型550。或者,人体检测模块506、CNN编码器508和回归神经网络510的每个CNN被单独训练。模型训练可选地由服务器102或客户端设备104所实现,同时数据处理模块500由客户端设备104所执行以在新图像612中渲染虚拟角色504。
在一些实施例中,卷积神经网络508和回归神经网络510,例如,使用一个或多个公共数据库集(例如MPII、COCO、Human3.6M等),以督导方式用于人体模型参数522进行端到端的训练。训练数据包括测试图像502和测试图像502的第一组人体模型参数522的地面实况614。将描述人物的人体姿态和形状的第一组人体模型参数522与地面实况614进行比较。调整与姿态估计模型550中的神经网络的滤波器相关联的权重,以优化组合第一组人体模型参数522和地面实况614的损失函数。
此外,在一些实施例中,卷积神经网络508和回归神经网络510还对摄像头姿态526以督导方式进行端到端训练。在一些实施例中,训练数据包括用面向Z轴的摄像头捕捉的测试图像502。在基于测试图像502确定的摄像头姿态526和地面实况摄像头姿态之间确定摄像头姿态损失。调整姿态估计模型550中的神经网络的滤波器的权重以优化摄像头姿态损失(例如,最小化、抑制到低于摄像头姿态损失阈值)。
在一些实施例中,姿态估计模型550中的神经网络的滤波器至少部分地以无督导方式进行端到端训练。每个测试图像502包括单独的人物。使用卷积神经网络从各自的测试图像502(具体地,相应的人体区域528)中提取多个测试特征。使用回归神经网络根据测试特征构建各自人物的相应3D测试模型520。相应3D测试模型520至少包括描述人物的相应人体的姿态和形状的第一组测试参数522以及涉及相应人体的多个顶点的第二组测试参数524。根据各自人物的相应3D测试模型渲染新图像612。在一些实施例中,涉及多个顶点的第二组测试参数至少包括相应人体的每个顶点的颜色值,并且新图像基于包括摄像头的位置和方向的摄像头姿态渲染。例如,基于L1或L2范数来确定损失函数616,其指示所渲染的新图像612与相应测试图像502之间的整体差异。姿态估计模型550中的神经网络的滤波器被调整以最小化损失函数616。或者,在一些实施例中,姿态估计网络被训练,进而以半督导方式构建第二组测试参数524(例如,顶点偏移和颜色),例如,使用Thu深度数据集用于督导训练,并使用可微渲染用于无督导训练。
换言之,在一些实施例中,对每个测试图像502实施督导训练和无督导训练,以使得姿态估计模型550中的神经网络的滤波器的权重被训练,进而获得第一组人体模型参数522和第二组人体模型参数524。
图7是根据一些实施例示出的用于基于由摄像头捕捉的图像502渲染和生成虚拟角色504的方法700的流程图。为了方便起见,方法700被描述为由计算机***(例如,客户端设备104、服务器102或其组合)来实现。示例性地,客户端设备104可以是移动电话104C或AR眼镜104D。方法700,可选地,由存储在非暂存性计算机可读存储介质中的并且由计算机***的一个或多个处理器执行的指令来管理。图7所示的每个操作可以对应于存储在计算机存储器或非暂存性计算机可读存储介质(例如,图2中的计算机***200的存储器206)中的指令。计算机可读存储介质可以包括磁盘或光盘存储设备、诸如闪存的固态存储设备、或其他非易失性存储设备。存储在计算机可读存储介质上的指令可以包括以下一项或多项:源代码、汇编语言代码、目标代码、或由一个或多个处理器诠释的其他指令格式。方法700中的一些操作可以组合和/或一些操作的顺序可以改变。
计算机***获取(702)由摄像头捕捉的图像,并使用卷积神经网络从图像中提取(704)多个特征。该图像包括人物。在一些实施例中,在图像中识别人物,裁剪图像,保留包含人物的图像区域。多个特征从图像区域提取。在一些实施例中,计算机***延伸图像区域的宽度和长度中的至少一个以达到预定长宽比,并将图像区域的大小调整为预定图像分辨率,同时保持图像区域的预定义长宽比。从调整大小的图像区域中提取多个特征。
计算机***使用回归神经网络根据多个特征构建(706)人物的3D人体模型。3D人体模型包括(708)至少描述人物的人体的姿态和形状的第一组人体模型参数以及涉及人体的多个顶点的第二组人体模型参数。在一些实施例中,回归神经网络包括输出神经网络层,3D人体模型的第一组人体模型参数和第二组人体模型参数从输出神经网络层输出。然后,计算机***基于人物的3D人体模型渲染(710)虚拟角色。在一些实施例中,该虚拟角色在捕捉图像的同时基本上实时地被渲染。换言之,虚拟角色渲染和图像捕捉之间的延迟小于阈值持续时间(例如,10毫秒)。
在一些实施例中,第一组人体模型参数通过图像中人体的多个关键点的位置信息描述(712)人体的姿态。多个关键点包括原点,每个关键点的位置信息包括相对于原点进行测量的各个关键点的3D旋转位置。在一些实施例中,每个关键点是在以原点为中心的球坐标下测量的。可选的,每个关键点对应一个关节,所述多个关键点有24个关键点,对应人体的24个关节。在一些实施例中,第一组人体模型参数还包括描述人体的形状的多个形状特征。在一些实施例中,第一组人体模型参数还包括摄像头的位置信息。通过确定摄像头在虚拟3D空间中的位置信息,虚拟3D空间与摄像头捕捉的图像的场景相关联,根据多个特征构建人物的3D人体模型。摄像头位置直接从回归神经网络回归。假设摄像头的方向沿Z轴。
在一些实施例中,将3D人体模型网格化(714)至多个顶点,第二组人体模型参数至少包括每个顶点的3D顶点偏移和顶点颜色值,该3D顶点偏移表示3D人体模型的各个顶点的位置与人体的对应点的位置之间的位置偏差。此外,在一些实施例中,多个顶点具有预定数量的顶点,并且该预定数量是固定的,并且回归神经网络在训练时不会自适应调整。
在一些实施例中,在被配置为实现该方法的电子设备所执行的用户应用中渲染虚拟角色。捕捉图像的摄像头可选地集成在该电子设备或不同的远程电子设备上。在一些实施例中,卷积神经网络和回归神经网络在服务器中被远程训练,并且被提供给电子设备。或者,在一些实施例中,卷积神经网络和回归神经网络均被训练并应用于电子设备中。电子设备为便携式设备,例如手机、平板电脑、笔记本电脑等。或者,电子设备向不同的电子设备提供3D人体模型,并且基于电子设备提供的3D人体模型在不同的电子设备上渲染虚拟角色。
此外,在一些实施例中,用户应用为图像处理应用、游戏应用或健康应用之一。图像处理应用被配置为在虚拟角色上渲染一种或多种增强现实(augmented reality,AR)效果的图像处理、游戏应用被配置为将虚拟角色应用在游戏场景中的游戏、以及健康应用被配置为根据人物的3D人体模型评估人体健康状况和行为的健康。
另外,在一些实施例中,电子设备包括GPU和DSP之一,GPU和DSP之一具有精度设置并且被配置为实现该方法。卷积神经网络和回归神经网络中的每一个都包括一层或多层,且每一层具有与相应层中的每个滤波器相关联的多个权重。卷积神经网络和回归神经网络被训练后,各层的多个权值根据精度设置进行量化。例如,多个权重在训练时保持float32格式。卷积神经网络和回归神经网络的多个权重均被量化为int8、uint8、int16或uint16格式。
在一些实施例中,对第一组人体模型参数以督导方式端到端地训练卷积神经网络和回归神经网络。可选地,公共数据库集,例如MPII、COCO、Human3.6M,用于训练第一组人体模型参数。卷积神经网络和回归神经网络由服务器训练并提供给电子设备以推断3D人体模型并渲染虚拟角色。
在一些实施例中,卷积神经网络和回归神经网络至少部分地以无督导方式进行端到端训练。在训练中,计算机***获取一张或多张测试图像。每个测试图像都包含一个相应的人物。对于一个或多个测试图像中的每一个,计算机***使用卷积神经网络从相应测试图像提取多个测试特征,并使用回归神经网络从多个测试特征构建相应人物的相应3D测试模型。相应的3D测试模型至少包括描述相应人物的相应人体的姿态和形状的第一组测试参数以及涉及相应人体的多个顶点的第二组测试参数(例如,每个顶点的颜色值)。计算机***根据相应人物的相应3D测试模型渲染新图像。计算机***例如基于L1或L2范数建立指示所渲染的新图像和相应测试图像之间的整体差异的损失函数。计算机***调整卷积神经网络和回归神经网络以最小化损失函数。在一些实施例中,涉及多个顶点的第二组测试参数至少包括相应人体的每个顶点的颜色值,并且基于包括摄像头的位置和方向的摄像头姿态渲染新图像。
换言之,当构建3D人体模型的参数时,将第一组参数与地面实况进行比较,并且所有参数还用于渲染与输入测试图像进行比较的新图像。与地面实况和输入测试图像的比较都用于优化卷积神经网络和回归神经网络的权重。在一些实施例中,网格渲染是可微分的。计算机***使用网格模型(例如人物的3D人体模型)的2D投影来督导神经网络,并渲染推断图像和输入测试图像之间的差异,从而允许3D人体模型以无督导方式优化。
在一些实施例中,图像包括第一图像,且人物的3D人体模型包括第一3D人体模型。计算机***获得包括该人物的第二图像。第二图像是在第一图像之后由摄像头捕捉的。计算机***利用卷积神经网络和回归神经网络根据第二图像构建人物的第二3D人体模型,并基于人物的第二3D人体模型重新渲染虚拟角色,从而使虚拟角色跟踪人物的运动。
应当理解,描述图7中的操作的特定顺序仅仅是示例性的并且并不旨在表明所描述的顺序是执行操作的唯一顺序。本领域普通技术人员将认识到如本文所描述的对图像中的关键点进行注释的各种方式。另外,应当注意,上面关于图5和图6描述的其他过程的细节也可以以类似的方式应用于上面关于图7描述的方法700。为了简洁起见,这里不再重复这些细节。
本文描述的各种实施方式的描述中使用的术语仅是为了描述特定实施方式的目的,而不旨在进行限制。如在各种描述的实施方式和所附权利要求的描述中所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文清楚地另有指示。还应当理解,本文所使用的术语“和/或”是指并涵盖一个或多个相关列出项目的任何和所有可能的组合。还应当理解,术语“包括”和/或“包含”当用于本说明书中时,指定所陈述的特征、整数、步骤、操作、元件和/或的存在。或组件,但不排除一个或多个其他特征、整体、步骤、操作、元件和/或组件的存在或添加。另外,应当理解,虽然术语“第一”、“第二”等可以在本文中用于描述各种元件,但是这些元件不应受到这些术语的限制。这些术语仅用于区分一个元素与另一个元素。
如本文所使用的,术语“如果”可选地被解释为意指“当”或“基于”或“响应于确定”或“响应于检测”或“根据确定”,具体取决于语境。类似地,短语“如果确定”或“如果检测到[所述条件或事件]”可选地被解释为意指“在确定时”或“响应于确定”或“在检测到[所述条件或事件]时”,或“响应于检测到[所述条件或事件]”或“根据检测到[所述条件或事件]的确定”,具体取决于上下文。
为了解释的目的,以上描述已经参考具体实施例进行了描述。然而,上面的说明性讨论并不旨在是穷举的或将权利要求限制于所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择和描述实施例是为了最好地解释操作原理和实际应用,从而使本领域的其他技术人员能够理解。
尽管各种附图以特定顺序示出了多个逻辑阶段,但是不依赖于顺序的阶段可以被重新排序,并且其他阶段可以被重新合并或分解。虽然具体提及了一些重新排序或其他分组,但是其他的重新排序或其他分组对于本领域普通技术人员来说将是显而易见的,因此本文中渲染的排序和分组不是替代方案的详尽列表。此外,应当认识到,这些阶段可以以硬件、固件、软件或其任意组合来实现。
Claims (18)
1.一种构建虚拟角色的方法,包括:
获取摄像头拍摄的图像,所述图像中含有人物;
使用卷积神经网络从所述图像中提取多个特征;
使用回归神经网络根据所述多个特征构建所述人物的3D人体模型,其中所述3D人体模型包括描述所述人物的人体的姿态和形状的第一组人体模型参数以及涉及所述人体的多个顶点的第二组人体模型参数;以及
根据所述人物的所述3D人体模型渲染虚拟角色。
2.如权利要求1所述的方法,进一步包括:
识别所述图像中的所述人物;以及
裁剪所述图像,保留包含所述人物的图像区域,其中,所述特征从所述图像区域中提取。
3.如权利要求2所述的方法,进一步包括:
扩展所述图像区域的宽度和长度中的至少一个以达到预定长宽比;以及
在保持所述图像区域的预定长宽比的同时,将所述图像区域的尺寸调整至预定图像分辨率,其中,所述特征从被尺寸调整后的所述图像区域中提取。
4.如前述任一项权利要求所述的方法,其中,所述第一组人体模型参数通过所述图像中的所述人体的多个关键点的位置信息描述所述人体的姿态,所述关键点包括原点,每个关键点的位置信息包括相对于所述原点进行测量的各个关键点的3D旋转位置。
5.如前述任一项权利要求所述的方法,其中,所述第一组人体模型参数还包括描述所述人体的形状的多个形状特征。
6.如前述任一项权利要求所述的方法,其中,所述第一组人体模型参数还包括所述摄像头的位置信息,所述根据所述多个特征构建所述人物的3D人体模型还包括:
确定所述摄像头在虚拟3D空间中的位置信息,所述虚拟3D空间与所述摄像头捕捉的所述图像的场景相关联。
7.如前述任一项权利要求所述的方法,其中,所述3D人体模型被网格化至所述多个顶点,所述第二组人体模型参数至少包括每个所述顶点的3D顶点偏移和顶点颜色值,所述3D顶点偏移表示所述3D人体模型的各个顶点的位置与所述人体的对应点的位置之间的位置偏差。
8.如权利要求7所述的方法,其中,所述多个顶点为预定数量的顶点,所述预定数量是固定的且不能由所述回归神经网络在训练期间自适应地调整。
9.如前述任一项权利要求所述的方法,其中所述虚拟角色在被配置为实现所述方法的电子设备所执行的用户应用中渲染。
10.如权利要求9所述的方法,其中,所述用户应用为图像处理应用、游戏应用或健康应用之一,所述图像处理应用被配置为在所述虚拟角色上渲染一种或多种增强现实(augmented reality,AR)效果、所述游戏应用被配置为将所述虚拟角色应用在游戏场景中、以及所述健康应用被配置为根据所述人物的所述3D人体模型评估人物类健康状况和行为。
11.如权利要求9所述的方法,其中,
所述电子设备包括GPU和DSP之一,其具有精度设置并被配置为实现所述方法;
所述卷积神经网络和所述回归神经网络均包括一层或多层,且每一层具有与相应层中的每个滤波器相关联的多个权重;以及
所述卷积神经网络和所述回归神经网络被训练后,各层的所述多个权值根据精度设置进行量化。
12.如前述任一项权利要求所述的方法,还包括:
从服务器接收所述卷积神经网络和所述回归神经网络,其中,所述卷积神经网络和回归神经网络对所述第一组人体模型参数以督导方式进行端到端训练。
13.如前述任一项权利要求所述的方法,其中所述卷积神经网络和回归神经网络以无督导方式进行至少部分的端到端训练,所述方法还包括:
获得一个或多个测试图像,每个所述测试图像包括单独的人物;对于一个或多个所述测试图像中的每一个:
使用所述卷积神经网络从各自的所述测试图像中提取多个测试特征;
使用所述回归神经网络根据所述测试特征构建各自人物的相应3D测试模型,其中,所述相应3D测试模型至少包括描述所述人物的相应人体的姿态和形状的第一组测试参数以及关于所述相应人体的多个顶点的第二组测试参数;
根据各自所述人物的所述相应3D测试模型渲染新图像;
建立损失函数,以指示所渲染的所述新图像与所述相应测试图像之间的整体差异;以及
调整所述卷积神经网络和所述回归神经网络,以最小化所述损失函数。
14.如权利要求13所述的方法,其中,关于所述多个顶点的所述第二组测试参数至少包括各自所述人体的每个顶点的颜色值,所述新图像基于包括所述摄像头的位置和方向的摄像头姿态来进行渲染。
15.如前述任一项权利要求所述的方法,其中,所述图像包括第一图像,所述人物的3D人体模型包括第一3D人体模型,所述方法还包括:
获取包括所述人物的第二图像,其中,所述第二图像在所述第一图像之后由所述摄像头获取;
使用所述卷积神经网络和所述回归神经网络根据所述第二图像构建所述人物的第二3D人体模型;以及
基于所述人物的所述第二3D人体模型重新渲染角色,从而进行所述人物的角色跟踪运动。
16.如前述任一项权利要求所述的方法,其中,所述回归神经网络包括输出神经网络层,并且所述3D人体模型的所述第一组人体模型参数和第二组人体模型参数从所述输出神经网络层输出。
17.一种计算机***,包括:
一个或多个处理器;以及
存储器,存储有指令,当所述一个或多个处理器执行所述指令时,所述处理器执行如权利要求1-16中任一项所述的方法。
18.一种非暂存计算机可读介质,其上存储有指令,当由一个或多个处理器执行所述指令时,所述处理器执行如权利要求1-16中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/047793 WO2023027712A1 (en) | 2021-08-26 | 2021-08-26 | Methods and systems for simultaneously reconstructing pose and parametric 3d human models in mobile devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117916773A true CN117916773A (zh) | 2024-04-19 |
Family
ID=85323111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180101541.1A Pending CN117916773A (zh) | 2021-08-26 | 2021-08-26 | 用于在移动设备中同时重建姿态和参数化3d人体模型的方法和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117916773A (zh) |
WO (1) | WO2023027712A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116758124A (zh) * | 2023-06-16 | 2023-09-15 | 北京代码空间科技有限公司 | 一种3d模型修正方法及终端设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9070182B1 (en) * | 2010-07-13 | 2015-06-30 | Google Inc. | Method and system for automatically cropping images |
US9177410B2 (en) * | 2013-08-09 | 2015-11-03 | Ayla Mandel | System and method for creating avatars or animated sequences using human body features extracted from a still image |
WO2015139231A1 (en) * | 2014-03-19 | 2015-09-24 | Intel Corporation | Facial expression and/or interaction driven avatar apparatus and method |
US10796480B2 (en) * | 2015-08-14 | 2020-10-06 | Metail Limited | Methods of generating personalized 3D head models or 3D body models |
-
2021
- 2021-08-26 CN CN202180101541.1A patent/CN117916773A/zh active Pending
- 2021-08-26 WO PCT/US2021/047793 patent/WO2023027712A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023027712A1 (en) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11644890B2 (en) | Image capturing in extended reality environments | |
US11132845B2 (en) | Real-world object recognition for computing device | |
CN111046734B (zh) | 基于膨胀卷积的多模态融合视线估计方法 | |
CN112639846A (zh) | 一种训练深度学习模型的方法和装置 | |
CN114120432A (zh) | 基于视线估计的在线学习注意力跟踪方法及其应用 | |
CN116391209A (zh) | 现实的音频驱动的3d化身生成 | |
WO2023101679A1 (en) | Text-image cross-modal retrieval based on virtual word expansion | |
WO2022052782A1 (zh) | 图像的处理方法及相关设备 | |
WO2021035071A1 (en) | Systems and methods for simulating sense data and creating perceptions | |
CN115346262A (zh) | 一种表情驱动参数的确定方法、装置、设备及存储介质 | |
US11734888B2 (en) | Real-time 3D facial animation from binocular video | |
CN115008454A (zh) | 一种基于多帧伪标签数据增强的机器人在线手眼标定方法 | |
CN117916773A (zh) | 用于在移动设备中同时重建姿态和参数化3d人体模型的方法和*** | |
WO2023086398A1 (en) | 3d rendering networks based on refractive neural radiance fields | |
US20230093827A1 (en) | Image processing framework for performing object depth estimation | |
WO2023250223A1 (en) | View dependent three-dimensional morphable models | |
CN116977506A (zh) | 模型动作重定向的方法、装置、电子设备及存储介质 | |
WO2023277877A1 (en) | 3d semantic plane detection and reconstruction | |
CN115482481A (zh) | 单视角三维人体骨骼关键点检测方法、装置、设备及介质 | |
CN111360819B (zh) | 机器人的控制方法及装置、计算机设备、存储介质 | |
WO2023091131A1 (en) | Methods and systems for retrieving images based on semantic plane features | |
WO2023069086A1 (en) | System and method for dynamic portrait relighting | |
US20240153184A1 (en) | Real-time hand-held markerless human motion recording and avatar rendering in a mobile platform | |
CN117813626A (zh) | 从多视图立体(mvs)图像重建深度信息 | |
CN116185182B (zh) | 一种融合眼动注意力的可控图像描述生成***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |