内容来源:华为开发者大会2021 HMS Core 6 Graphics技术论坛,主题演讲《3D建模服务使能3D内容高效生产》。
演讲嘉宾:华为消费者云服务 AI算法专家
3D建模服务(3D Modeling Kit)是华为今年7月初刚发布的新Kit,我们对3D建模产品的定位就是要做快速、简洁、低成本的3D制作能力,并开放给有3D模型、动画制作等能力诉求的开发者。
针对3D建模服务,我们已经开放了物体建模的能力,还有平面的材质生成和动作捕捉能力,接下来我们还会对人体的建模以及面部捕捉做进一步的能力开放。3D建模的应用场景也比较多,可以应用于电商模型、3D打印、教学模型、游戏开发和动画制作。
3D物体建模能力
3D物体建模能力介绍
首先看一下3D物体建模的能力,不同于传统的建模师用3D软件制作模型的方式,或是通过扫描仪进行建模的方式,我们的定位是要做移动端快速的、低成本UDC的生产,不需要图片的深度信息,只需普通RGB相机,通过拍摄物体不同角度的多张图像,上传到云端,即可实现物体3D几何模型和纹理的自动化生成。
硬件要求上,当前我们支持安卓和iOS,接下来可能会开放WEB APR,这样就会形成全终端的支持形态。
对于支持的类别,因为这是通过拍照摄影的方法,所以就要求这个物体的纹理需要尽量丰富、不反光、尺寸中等、刚体,典型物体包括:商品类的毛绒玩具、包、鞋子等, 家具类的比如沙发、抱枕,文物类可以是青铜器、石器、木器等。
支持物体尺寸大概是在10立方厘米和2立方米之间,当然物理尺寸更大也是能建模的,只是建模的时间会更长一点。如果建模的图片在1080P的分辨率,整个建模时长大概在5分钟以内,最后输出的格式也是标准的3D模型的格式,包括obj和gltf的格式。最后比较重要的一点,就是支撑这个能力的SDK包只有83K的大小,对APP是非常友好的。
3D物体建模采集方法建议
如果想建一个比较完整的模型,对采集条件还是有一定要求的。
第一,环境。建议将单一的采集物体静置于纯色的平面上。
第二,光照。光照需柔和,避免灯光过暗,或某一面有强烈的阴影。
第三,拍摄。要对焦,覆盖均匀而足够的多视角,含仰视、平视、俯视角度共20张以上(建议50张以上),相机移动尽可能缓慢。
第四,采集过程中,相邻照片至少有70%-80%的重叠,展示尽量大且完整,要求尽量保证拍摄无虚焦、运动模糊、抖动模糊。
最后一点,物体的底部可以通过翻转续拍去建立,实现物体完整模型的呈现。
应用场景
对于物体建模,比较典型就是电商的场景。下图是我们做的关于鞋子的建模和文物的建模,我们买了一个小型的转盘,放了一个小型的灯箱,然后按照以上方式就可以实现建模。相较2D的商品展示,3D的展示可以给用户带来更好的体验,在电商行业,3D商品展示可以提供差异化体验,通过“看、试、穿、戴”等模拟方式提升用户转化,在文博行业,文物经三维数字化建模后,可应用于文物数字保存及多媒体展示。
平面材质的生成
三维材质定义
第二个能力是平面材质的生成。图形学中的表观(Appearance)又称材质,是描述光线如何在物体表面和内部进行交互的一种性质,由材质模型和一组控制参数来定义表面外观。从下组图可以看出,左边的图,如果不仔细看,对整个场景的感受非常弱,但如果把墙面、地面、油桶、桌面,这些材料加上去以后,真实感立刻显示出来了。
在材质制作过程中,开发者和用户有哪些痛点呢?
第一,从现实世界采集的纹理通常需要经过美术用专业软件处理,才能用于渲染中取得真实感效果。比如去除光照影响、调整凸凹、尺度等处理,过程耗时、费力且难以标准化;第二,传统纹理贴图处理效果严重依赖美术经验和特定渲染器,纹理素材在不同项目和渲染器间复用困难,项目积累少、制作成本居高不下。
为了解决这些痛点,我们提供两种思路:
第一种,利用深度学习推理网络,一键生成符合PBR标准的纹理要素,提升纹理制作效率和质量;第二,将技术美术的经验和制作规范固化为遵循PBR标准的数据,通过数据在不同项目和渲染器间复用素材,传承美术制作经验。
材质生成能力介绍
材质生成能力提供将RGB图像转换为PBR材质的能力,仅需要拍摄一张或多张RGB图片,便可一键生成四种材质贴图。
使用该能力只需要普通RGB手机,不要求ToF或LiDAR,支持安卓所有机型;支持的材质类型,主要包括混凝土、大理石、岩石、碎石、砖、石膏、黏土、金属、木材、树皮、皮革、织物、漆面、塑料、合成材料等材质;支持diffuse map, normal map, specular map, roughness map等贴图类型;对于输入图像的分辨率,当前已经能支持1k~4k贴图的输出,输入图像中需无接缝、无亮斑、阴影、倒影;对于最终制作效果,通过SSIM的评价指标评价,约大于0.9,效果是非常好的。
通过下面的演示可以看出怎么实现房子的快速创建,首先要通过材质生成能力快速地生成材质贴图,然后把材质贴图拖到球上去,在用的时候,把材质球复制到白膜上就可以实现了,复制完以后再经过离线或者在线的渲染,就可以得到最终的真实效果,这是材质生成的能力。
动作捕捉能力
最后来说我们刚刚发布的动作捕捉能力,动作捕捉是通过普通单目摄像头输入连续视频帧或RGB图像,精准快速估计24个人体骨骼关键点的三维信息。
动作捕捉能力也只需要用到普通的手机,输入视频流或图像,就可以估计出人体骨骼,可以支持常见的站立、行走、奔跑等大概7到8个动作。
视频流、RGB图像的输入格式,建议分辨率320~1080P,如果分辨率更大,可能会带来时间增加,但效果并没有很显著的提升,所以你可以先做一个图像的缩放,产生一个比较好的效果。
输出的格式也比较重要,我们的动作捕捉能力可以同时输出24个人体骨骼关键点的四元数和3D坐标,在一些引擎里面,直接可以驱动匹配。
关于时延,我们的CPU大概可以达到30祯FPS,而NPU可以达到80祯FPS。
我们提供了两种集成方式,一种是基础包的方式,如果你是华为手机,只需要集成基础包200k。在实际应用的时候可以通过下载算法包的方式,比如说在小米手机或其他的手机上,就可以集成FullSDK的模式。
上面这个集成物体建模能力的APP,叫3D Live Scanner。
在没有接入3D建模服务之前,这个APP只能依赖带深度信息的设备,导致部分用户无法使用,并且没有单独物体建模的能力。而在集成了3D建模服务之后,不仅支持RGB的手机,还可以支持背景剔除,模型效果准确率大幅提升。据CP反馈的数据来看,在集成这个能力以后,在欧洲这个区域,今年一个月内,它的下载量大概增加了190%,整个营收也是有很大幅的增加。并且,该APP的客户使用后反映,用华为3D建模的能力产生的建模效果,已经超过了大家经常用的PC版专业建模能力。
以上就是我的分享,谢谢!
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~