本文介绍多视角三维重建ReconstructThreeDMultiView的语法及示例。

功能描述

多视角三维重建可以基于多张拍摄同一场景的彩色图像,以及每张图像对应的摄像机机位,重建出主体场景的三维模型,输出三维点云。

应用场景

  • 快速3D建模:利用围绕物体连续角度拍摄的照片,即可快速形成目标物体的三维点云。
  • VR店铺:利用围绕商品连续角度拍摄的照片,形成商品的三维点云,通过远程VR即可身临其境的访问店铺。
  • VR展厅:使用多目立体视觉三维重建算法,对VR展厅建立三维模型,通过远程VR参观了解展会展厅内容。

特色优势

  • 简便快速建立三维模型:传统3D建模需要用户手工对客观物体建模,而多视角三维重建通过一组按要求拍摄的照片,即可重建三维模型,极大减低了工作量。
  • 对实物建模的准确率高。

前提条件

请确保您已开通3D视觉服务,若未开通服务请立即开通

输入限制

  • 压缩包格式:ZIP。
  • 图像格式:JPEG、JPG、PNG、BMP。
  • 图像分辨率:建议大于64×64像素,小于1024×1024像素。如果输入图像分辨率不满足上述条件系统会按长边比进行缩放。
  • 图像大小:不超过5M。
  • 图像数量:压缩包中至少包含5张图像。
  • URL地址中不能包含中文字符。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String ReconstructThreeDMultiView

系统规定参数。取值:ReconstructThreeDMultiView

ZipFileUrl String https://viapi-test.oss-cn-shanghai.aliyuncs.com/test-team/zhangchaorun/tiyan/mvs_input.zip

压缩包URL地址。当前仅支持上海地域的OSS链接,如何生成URL请参见生成URL

Mode String 1

解析模式。

  • 1:需要准备相机参数。
  • 2:不需要准备相机参数。当前系统还不支持该功能,为预留功能。

对于模式1,需要准备相机参数。输入的压缩包内需要包含images文件夹和sparse文件夹。images文件夹需要包含所有图像,sparse文件夹需要包含cameras.bin, images.bin, points3D.bin三个文件。

  • cameras.bin包含所有重建相机的内参。每个相机类型按照如下格式指定:
CAMERA_ID,MODEL,WIDTH,HEIGHT,PARAMS[]

常用的相机模型(MODEL)有:SIMPLE_PINHOLE和PINHOLESIMPLE_RADIAL。文件内容参考举例如下:


# Camera list with one line of data per camera:
#   CAMERA_ID, MODEL, WIDTH, HEIGHT, PARAMS[]
# Number of cameras: 3
1 SIMPLE_PINHOLE 3072 2304 2559.81 1536 1152
2 PINHOLE 3072 2304 2560.56 2560.56 1536 1152
3 SIMPLE_RADIAL 3072 2304 2559.69 1536 1152 -0.0218531
  • images.bin包含每张图像的姿态和2D关键点。每张图像的姿态和2D关键点按照如下格式指定:

IMAGE_ID, QW, QX, QY, QZ, TX, TY, TZ, CAMERA_ID, NAME
POINTS2D[] as (X, Y, POINT3D_ID)

其中QW,QX,QY,QZ是四元素,表示相机的旋转;TX,TY,TZ是相机的平移参数;POINT3D_ID为2D关键点所对应的3D点。文件内容参考举例如下:


# Image list with two lines of data per image:
#   IMAGE_ID, QW, QX, QY, QZ, TX, TY, TZ, CAMERA_ID, NAME
#   POINTS2D[] as (X, Y, POINT3D_ID)
# Number of images: 2, mean observations per image: 2
1 0.851773 0.0165051 0.503764 -0.142941 -0.737434 1.02973 3.74354 1 P1180141.JPG
2362.39 248.498 58396 1784.7 268.254 59027 1784.7 268.254 -1
2 0.851773 0.0165051 0.503764 -0.142941 -0.737434 1.02973 3.74354 1 P1180142.JPG
1190.83 663.957 23056 1258.77 640.354 59070
  • points3D.bin包含每张图像稀疏3D点的信息。每张图像稀疏3D点的信息按照如下格式指定:POINT3D_ID, X, Y, Z, R, G, B, ERROR, TRACK[] as (IMAGE_ID, POINT2D_IDX)

    其中TRACK为3D点所关联的图像中2D关键点,一个3D点会被多个图像2D点关联。文件内容参考举例如下:


# 3D point list with one line of data per point:
#   POINT3D_ID, X, Y, Z, R, G, B, ERROR, TRACK[] as (IMAGE_ID, POINT2D_IDX)
# Number of points: 3, mean track length: 3.3334
63390 1.67241 0.292931 0.609726 115 121 122 1.33927 16 6542 15 7345 6 6714 14 7227
63376 2.01848 0.108877 -0.0260841 102 209 250 1.73449 16 6519 15 7322 14 7212 8 3991
63371 1.71102 0.28566 0.53475 245 251 249 0.612829 118 4140 117 4473

返回数据

名称 类型 示例值 描述
RequestId String E335106F-9F96-491D-AEB3-1610F8545968

请求ID。

Data Object

返回的结果数据内容。

PointCloudURL String http://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/MultiviewStereo/83e2fcec-02e1-4522-8680-92f532956e2c/cas_input.ply

返回重建好的点云文件。

说明 .ply文件可以用MeshLab工具打开。

示例

请求示例

http(s)://[Endpoint]/?ZipFileUrl=https://viapi-test.oss-cn-shanghai.aliyuncs.com/test-team/zhangchaorun/tiyan/mvs_input.zip
&Mode=1
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<RequestId>E335106F-9F96-491D-AEB3-1610F8545968</RequestId>
<Data>
    <PointCloudURL>http://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/MultiviewStereo/83e2fcec-02e1-4522-8680-92f532956e2c/cas_input.ply</PointCloudURL>
</Data>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "E335106F-9F96-491D-AEB3-1610F8545968",
  "Data" : {
    "PointCloudURL" : "http://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/MultiviewStereo/83e2fcec-02e1-4522-8680-92f532956e2c/cas_input.ply"
  }
}

查询任务结果

该接口为异步接口,当前并未返回真实的请求结果,您需要通过返回的RequestId调用GetAsyncJobResult接口来获取该接口的真实请求结果。详情请参见GetAsyncJobResult

错误码

关于多视角三维重建的错误码,详情请参见常见错误码

SDK参考

阿里云视觉AI能力支持使用SDK调用,具体可参见SDK总览下载安装。

安全声明

  • 请确保上传的图片或文件来源符合相应的法律法规。
  • 通过体验调试上传的临时文件有效期为1小时,在24小时后会被系统自动清理删除。