Draco点云压缩测试

ref:
https://github.com/google/draco
https://codelabs.developers.google.com/codelabs/draco-3d/index.html#6

Draco

Draco 是一个用于编码压缩和解压缩 3D 几何网格和点云的库,从而改进 3D 图形的存储和传输
该代码支持压
缩点、连接信息、纹理坐标、颜色信息、法线以及与几何相关的任何其他通用属性

数据压缩/编码工具安装
使用 Draco 的编码工具进行压缩编码:因为是基于 C++的,需要使用 cmake 编译,直接在 Linux 中方便些

git clone https://github.com/google/draco.git
cd draco-master
mkdir build
cd build
cmake ../
make

数据编码命令:

./draco_encoder -point_cloud -i /opt/point_cloud_data/test2.ply -o /opt/point_cloud_data/test2.drc -qp 12 -cl 8

编码器参数说明(影像压缩文件的大小和模型加载视觉质量):

-qp:默认值 11,这 是一种减小3D模型数据大小的主要策略之一,是指将模型顶点位置的精确浮点数值转换为较为粗略的离散整数值。这个转换过程被称为"量化",在这里使用的 12位量化,意味着每个坐标值都会被映射到0到4095(2的12次方减1)之间的整数,这相当于在一个均匀的3D网格中对顶点位置进行取样。原始的顶点位置信息通常是用32位浮点数表示的,而量化为12位整数后,存储需求减少了大约2/3,能显著减少模型数据的大小。
然而,这并不是毫无代价的。量化过程由于金字塔般的信息损失会导致模型的逼真程度降低,可能出现顶点位置不精确,模型表面粗糙等问题。因此,在选择合适的量化比特数时,需要在减小文件大小和保持模型质量之间找到一个平衡。默认的11位量化提供了一个权衡点,而12位量化则提供了更高精度的位置数据,但牺牲了一些压缩效率(越小压缩效果越明显)
-cl:模型的压缩率(压缩级别),设置 10 的压缩程度最高,但解压速度最差,吗,默认值为 7,范围 0-10
-point_cloud:因为与3D模型(通常以网格的形式存在)不同,点云数据不包含任何关于这些点如何相连或组合成物体表面的信息,所以和压缩其他三维数据还有点区别,需要使用这个参数,指定了-point_cloud参数,那么无论你的输入文件是否包含连接信息(即网格),draco_encoder都会忽略这些连接信息,只编码文件中的点的位置信息

遇到的问题:(参数位置。。被官方文档坑了。还有网上下的一个数据的问题)
image.png
压缩前后比对:
700M->30M
image.png
200M->20M
image.png

three 加载:
这里遇到一个奇怪的问题:THREE.DRACOLoader: Unexpected geometry type
draco 解码器版本与 three 版本没对应。。。得去当前包下去考 draco 文件
简单的加载和顶点着色不难,根据打印的信息 buffergeomtry构建点模型即可
这里加载测试两份数据一份大(700M->30M) 的一份小(200M->20M)的
(200M->20M)70 帧左右,卡几秒解压
image.png
image.png
image.png

这个 700 多 M 的加载时解码会卡半分钟左右,帧数 20 多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/527265.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle VM VirtualBox安装Ubuntu桌面版

背景:学习Docker操作 虚拟机软件:Oracle VM VirtualBox 7.0 系统镜像:ubuntu-20.04.6-desktop-amd64.iso 在Oracle VM VirtualBox新建一个虚拟电脑 选择好安装的目录和选择系统环境镜像 设置好自定义的用户名、密码、主机名 选择一下运行内…

51单片机基础篇系列-人人都能学会单片机

🌈个人主页: 会编程的果子君 💫个人格言:“成为自己未来的主人~” 什么是单片机 在一片集成电路芯片上集成计算机所有基 本部分(中央处理器CPU、存储器RAM、ROM、 定时计数器T/C,输入输出接口IO、中断系 统)都集成…

Linux系统架构----LNMP平台部署中部署wordpress

Linux系统架构----LNMP平台部署中部署wordpress 一、LNMP的概述 LNMP为Linux平台,Nginx web服务软件,mysql数据库软件,PHP编辑语言LNMP系统架构相对于LAMP的优点是LNMP比较节省内存,主要支持静态请求,但在访问量大的…

基于神经网络的偏微分方程求解器再度取得突破,北大字节的研究成果入选Nature子刊

目录 一.引言:神经网络与偏微分方程 二.如何基于神经网络求解偏微分方程 1.简要概述 2.基于神经网络求解偏微分方程的三大方向 2.1数据驱动 基于CNN 基于其他网络 2.2物理约束 PINN 基于 PINN 可测量标签数据 2.3物理驱动(纯物理约束) 全连接神经网路(FC-NN) CN…

计算机网络-数据链路层

一、认识以太网 "以太网" 不是⼀种具体的网络,而是一种技术标准; 既包含了数据链路层的内容, 也包含了⼀些物理 层的内容。 例如:规定了网络拓扑结构,访问控制方式,传输速率等; 例如:以太网中的网线必须使用…

Day23:安全开发-PHP应用后台模块SessionCookieToken身份验证唯一性

目录 具体安全知识点 身份验证-Cookie使用 身份验证-Session使用 唯一性判断-Token使用 总结 源码 思维导图 PHP知识点: 功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用&…

PaddlePaddle----基于paddlehub的OCR识别

Paddlehub介绍 PaddleHub是一个基于PaddlePaddle深度学习框架开发的预训练模型库和工具集,提供了丰富的功能和模型,包括但不限于以下几种: 1.文本相关功能:包括文本分类、情感分析、文本生成、文本相似度计算等预训练模型和工具。…

【C++】二叉树进阶之二叉搜索树

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握二叉搜索树,能自己模拟实现二…

股票价格预测项目

项目介绍 背景 股票价格预测一直是金融领域的热点问题。准确的预测可以帮助投资者作出更明智的决策。本项目旨在使用机器学习技术,特别是长短期记忆网络(LSTM),来预测股票价格。 目标 开发一个基于LSTM的股票价格预测模型。使…

巨型犰狳优化算法(Giant Armadillo Optimization,GAO)的无人机三维路径规划(MATLAB)

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行时间和节省能量消耗。 二、算法介…

寒假作业Day 10

寒假作业Day 10 一、选择题 1、下列数据结构中,不属于线性表的是( ) A.队列 B.顺序表 C.二叉树 D.链表 A. 队列:队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端&#xff08…

软件测试相关内容第三弹--软件测试基础

写在前:在前篇的两篇博客介绍中我们主要学习软件测试的相关概念,对软件测试进行了初步的了解,本篇博客将进一步进行学习。重点内容包括:软件测试的生命周期、如何描述一个bug、如何定义bug的级别、bug的生命周期以及在实际工作中如…