点云是海量点的集合,存储点云不仅会消耗大量的存储空间,而且传输不经过压缩的点云文件需要消耗大量的带宽,传输成本很高,因此需要对点云进行压缩。
使用场景
自动驾驶:压缩自动驾驶场景中雷达扫描产生的点云数据。
数字文博:为文物数字化场景中产生的文物点云信息提供压缩方案。
智慧城市:对城市三维重建产生的点云信息进行有效的数据压缩,实现数据流畅的渲染展示。
混合现实:为混合现实场景中的点云数据提供实时编码解码能力。
注意事项
点云压缩仅支持同步处理(x-oss-process处理方式)。
使用点云压缩前,需要先绑定IMM Project。关于控制台和API如何绑定,请参见快速入门和AttachOSSBucket。
不支持匿名访问。
必须拥有IMM处理所需的相关权限。更多信息,请参见权限。
参数说明
操作名称:pointcloud/compress
具体参数如下表所示。
参数 | 类型 | 是否必须 | 描述 |
f | string | 否 | pcd文件的格式,当前仅支持pcd格式。 |
m | string | 是 | 点云文件压缩方式。取值:
|
fs | string | 否 | 参与压缩的PCD属性字段以及压缩顺序,压缩完成后以此顺序进行解压数据,当前仅支持xyz属性。 说明 该参数需要使用URL Safe编码,请求时使用eHI6。 |
Octree压缩方式参数,拼接在/octree
参数后。
具体参数如下表所示:
参数 | 类型 | 是否必须 | 描述 |
lib | string | 否 | 压缩库名称,当前仅支持pcl。 |
pr | float | 否 | 点云分辨率,该变量决定了点的坐标在编码时可以精确的程度,默认值为0.01,取值范围是[0, 1]。 |
or | float | 否 | 划分八叉树时最小块, 即voxel的边长,默认值为0.01,取值范围是[0, 1]。 |
d | int | 否 | 是否使用下采样。传1时表示使用下采样,默认使用。 |
Kdtree压缩方式参数,拼接在/kdtree
参数后。
具体参数如下表所示:
参数 | 类型 | 是否必须 | 描述 |
lib | string | 否 | 压缩库名称,当前仅支持draco。 |
cl | int | 是 | 压缩率,压缩率越大细节效果越好。取值范围为[0,10]。 |
qb | int | 是 | 量化位数,数值越大细节保留越多。取值范围为[1,31]。 |
使用REST API
使用Octree压缩方式压缩点云文件
处理方式
压缩文件:example.pcd
压缩方式:Octree
压缩库:pcl
点云分辨率:0.01
划分八叉树最小块:0.01
是否使用下采样:1
压缩PCD字段:xyz
处理示例
GET /example.pcd?x-oss-process=pointcloud/compress,m_octree,fs_eHl6/octree,or_0.001,pr_0.001,d_1,lib_pcl HTTP/1.1
Host: file-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q**************:77Dv****************
返回示例
HTTP/1.1 200 OK
Server: AliyunOSS
Date: Wed, 25 May 2022 12:15:44 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive
x-oss-request-id: 628E1DEF184E20BB21000004
x-oss-transfer-acc-type: acc-none
x-oss-data-location: oss-cn-hangzhou-a
ETag: "E168EDBFAB5130BCA80EDF84E4E10B59"
Last-Modified: Sat, 02 Apr 2022 11:53:20 GMT
x-oss-object-type: Normal
x-oss-hash-crc64ecma: 5454933848876226229
x-oss-storage-class: Standard
x-oss-server-time: 865
{{压缩后的二进制数据}}
使用Kdtree压缩方式压缩点云文件
处理方式
压缩文件:example.pcd
压缩方式:Kdtree
压缩库:draco
压缩率:1
量化位数:1
压缩PCD字段:xyz
处理示例
GET /example.pcd?x-oss-process=pointcloud/compress,m_kdtree,fs_eHl6/kdtree,cl_0,qb_0,lib_draco HTTP/1.1
Host: file-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q**************:77Dv****************
返回示例
HTTP/1.1 200 OK
Server: AliyunOSS
Date: Wed, 25 May 2022 12:15:44 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive
x-oss-request-id: 628E1DEF184E20BB21000004
x-oss-transfer-acc-type: acc-none
x-oss-data-location: oss-cn-hangzhou-a
ETag: "E168EDBFAB5130BCA80EDF84E4E10B59"
Last-Modified: Sat, 02 Apr 2022 11:53:20 GMT
x-oss-object-type: Normal
x-oss-hash-crc64ecma: 5454933848876226229
x-oss-storage-class: Standard
x-oss-server-time: 865
{{压缩后的二进制数据}}
使用SDK
点云压缩仅支持同步处理,SDK使用方法请参见使用SDK。