• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

商品3D展示来啦HMS-Core3D建模服务助力电商发展

android 搞代码 3年前 (2022-05-09) 62次浏览 已收录 0个评论

传统电商商品展现采纳图文联合的模式,文案介绍产品的相干参数,搭配精美图片去吸引客户眼球。但图文商品展现因为色差、尺寸不符等起因,会让消费者产生图片和实物不统一的疑虑,且消费者须要耗费大量精力浏览和比拟后能力做出购买决定。

随着互联网电商平台的不断完善,短视频逐步成为商品展现的支流模式。通过拍短视频的模式能够多方位展现产品,让消费者在短时间内能够理解产品的参数和劣势,极大进步了消费者的购物速度。但短视频展现的劣势在于,展现工夫短且很难和消费者进行互动。

3D技术的倒退赋予了电商行业最新的商品展现形式,3D模型能够360°全方位细节展现商品,让消费者更直观理解商品,加强他们对产品的信念。消费者还能隔着屏幕与商品产生互动,通过单指拖动来实现360度查看商品、自在放大查看高清细节,从而进步下单机率。

然而,目前成果佳的3D建模技术因其较高的老本而使得让宽广开发者望而生畏。

1.技术门槛高:业余人员加上深度相机等业余设施。

2.工夫老本高:业余人员手动实现模型的制作渲染和调整。实现一个简略物体的低精度模型,工作量以小时起步,而高精度模型耗时更长。

3.消耗高:单个商品的业余建模老本高,平均价格达到上千元,简单模型则更贵。

HMS Core的3D建模服务,助力轻松建模。用户只需应用一般的RGB相机,通过拍摄物体的不同角度图像,便可实现物体的3D几何模型和纹理的自动化生成,如在电商实物展现的场景,您能够通过此能力主动生成想展现商品模型,用于3D展现,用户可360°随心放大或放大商品,查看商品细节,为用户提供差异化的购买体验。

3D物体建模能力由端云协同实现,端侧负责采集RGB图像,通过盘绕物体拍摄多张图像,从而获取物体的不同角度图像,拍摄结束后上传至云端实现3D物体建模。云端建模的流程及关键技术包含指标检测宰割、特色检测与匹配、稠密点云计算、浓密点云计算以及纹理重建等模块。

成果展现

以面包为例,只需盘绕面包拍摄多张图像,即可失去一个真切的面包3D模型。那这个性能是如何实现的呢?以下是具体的开发步骤。

开发前筹备

  1. 配置集成的SDK包

在利用的build.gradle文件中,dependencies内增加3D建模服务的SDK依赖

// 3D Modeling Kit SDK
implementation 'com.huawei.hms:modeling3d-object-reconstruct:1.0.0.300'
  1. 配置AndroidManifest.xml

关上main文件夹中的AndroidManifest.xml文件,能够依据场景和应用须要,配置读取和写入手机存储以及相机权限,在<application>前增加

<!-- 往sdcard中写入数据的权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 应用相机的权限 -->
<uses-permission android:name="android.permission.CAMERA" />

开发步骤

  1. 应用云侧服务的能力,须要应用“agconnect-services.json”里的api_key值,在利用初始化时通过api_key或者AccessToken来设置利用鉴权信息,AccessToken的优先级较高。两种形式均在利用启动时初始化设置一次即可,无需屡次设置。

(1)通过setAccessToken办法设置AccessToken。

ReconstructApplication.getInstance().setAccessToken("your AccessToken");

(2)通过setApiKey办法设置api_key。当您在AppGallery Connect上注册利用时,会给您的利用调配api_key。

ReconstructApplication.getInstance().setApiKey("your api_key");
  1. 新建3D物体建模引擎并初始化,新建3D物体建模配置器。
// 新建3D物体建模引擎。
Modeling3dReconstructEngine modeling3dReconstructEngine = Modeling3dReconstructEngine.getInstance(context);
// 新建3D物体建模配置器。
Modeling3dReconstructSetting setting = new Modeling3dReconstructSetting.Factory()
    // 设置工作模式为图片模式。
    .setReconstructMode(Modeling3dReconstructConstants.ReconstructMode.PICTURE)
    // 设置贴图模式为一般模式或PBR模式。
    .setTextureMode(Modeling3dReconstructConstants.TextureMode.PBR)
    .create();
        
  1. 新建上传监听器回调,用于解决拍摄的物体图片上传后果。
private Modeling3dReconstructUploadListener uploadListener = new Modeling3dReconstructUploadListener() {
    @Override
    public void onUploadProgress(String taskId, double progress, Object ext) {
         // 上传进度。
    }
    @Override
    public void onResult(String taskId, Modeling3dReconstructUploadResult result, Object ext) {
         // 上传胜利解决。
    }
    @Override
    public void onError(String taskId, int errorCode, String message) {
        // 上传失败解决。
    }
};
  1. 应用3D物体建模配置器初始化工作,并且给新建的3D物体建模引擎设置上传监听器,上传采集的图片数据。
// 应用3D物体建模配置器初始化工作(该接口须要在子线程中调用)。
Modeling3dReconstructInitResult modeling3dReconstructInitResult = modeling3dReconstructEngine.initTask(setting);
String taskId = modeling3dReconstructInitResult.getTaskId();
// 设置上传监听器。
modeling3dReconstructEngine.setReconstructUploadListener(uploadListener);
// 调用3D建模引擎的上传接口,上传采集的图片数据。
modeling3dReconstructEngine.uploadFile(taskId, filePath);
  1. 查问3D物体建模工作状态。
// 查问3D物体建模工作状态须要初始化工作解决类。
Modeling3dReconstructTaskUtils modeling3dReconstructTaskUtils = Modeling3dReconstructTaskUtils.getInstance(context);
// 调用查问接口获取3D物体建模工作状态(该接口须要在子线程中调用)。
Modeling3dReconstructQueryResult queryResult = modeling3dReconstructTaskUtils.queryTask(taskId);
// 获取建模工作状态。
int status = queryResult.getStatus();
  1. 新建侦听器回调,调用预览函数,预览3D模型
Modeling3dReconstructPreviewListener previewListener = new Modeling3dReconstructPreviewListener() {
    @Override
    public void onResult(String taskId, Object ext) {
        // 3D物体建模预览后果。
    }
    @Override
    public void onError(String taskId, int errorCode, String message) {
        // 预览谬误回调函数。
    }
};
// 预览模型配置。
Modeling3dReconstructPreviewConfig config = new Modeling3dReconstructPreviewConfig.Factory().setTextureMode(Modeling3dReconstructConstants.TextureMode.PBR).create();
// 预览模型。
modeling3dReconstructEngine.previewModelWithConfig(taskId, context,config, previewListener);
  1. 新建下载监听器回调,用于解决3D物体建模模型文件的下载后果。
private Modeling3dReconstructDownloadListener modeling3dReconstructDownloadListener = new Modeling3dReconstructDownloadListener() {
    @Override
    public void onDownloadProgress(String taskId, double progress, Object ext) {
        // 下载进度。
    }    
    @Override
    public void onResult(String taskId, Modeling3dReconstructDownloadResult result, Object ext) {
        // 下载胜利解决。
    }
    @Override
    public void onError(String taskId, int errorCode, String message) {
        // 下载失败解决。
    }
};
  1. 新建的下载配置项并将新建的下载监听器传入新建的3D物体建模引擎,下载重建胜利的模型文件。
// 设置下载配置项。
Modeling3dReconstructDownloadConfig downloadConfig = new Modeling3dReconstructDownloadConfig.Factory()
    // 配置OBJ或glTF格局。
    .setModelFormat(Modeling3dReconstructConstants.ModelFormat.OBJ)
    // 配置一般或PBR模式。
    .setTextureMode(Modeling3dReconstructConstants.TextureMode.PBR)
    .create();
// 设置下载监听器。
modeling3dReconstructEngine.setReconstructDownloadListener(modeling3dReconstructDownloadListener);
// 调用3D物体建模引擎的下载接口,传入工作id,下载地址和下载配置项,下载模型文件。
modeling3dReconstructEngine.downloadModelWithConfig(taskId, savePath, downloadConfig);

实现以上步骤就能够在电商利用中实现3D建模能力,用手机就能疾速给商品建设3D模型,感兴趣的开发者们能够马上入手体验!

除了商品3D建模和展现,HMS Core电商解决方案还提供了AR交互式购物能力,可实现商品试穿性能,为消费者发明虚构与事实交融的购物体验,相干内容会在下一期进行具体解说,敬请期待。

理解更多详情>>

拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee

关注咱们,第一工夫理解 HMS Core 最新技术资讯~


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:商品3D展示来啦HMS-Core3D建模服务助力电商发展

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址