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.mzph.cn/news/732527.shtml

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

相关文章

NTFS安全权限

NTFS是新技术文件系统(New Technology File System)的缩写,是一种用于Windows操作系统的文件系统。NTFS提供了高级的功能和性能,包括文件和目录的权限控制、加密、压缩以及日志等。它被广泛应用于Windows NT、Windows 2000、Windo…

ubuntu 运行opencv_sample遇到的问题

首先我遇到的问题就是摄像头连接不上 勾选最后一个 然后是 usb接口问题 点击虚拟机设置 我的是改为 3 就可以啦

谷歌seo外链和内链区别?

什么是外链?外链就是其他网站链接到你的网站,别人的网站提到了你的网站,并愿意放你网站的链接在上面,这就是外链,外链的重点,就在于这是外部网站给你网站的推荐,意味着别人认可你的内容或服务&a…

JL15-80/11电流继电器 过电流瞬时动作 电磁式结构 80A 一开一闭

JL15电流继电器 系列型号 JL15-1.5/11电流继电器JL15-2.5/11电流继电器 JL15-5/11电流继电器JL15-10/11电流继电器 JL15-15/11电流继电器JL15-20/11电流继电器 JL15-30/11电流继电器JL15-40/11电流继电器 JL15-60/11电流继电器JL15-80/11电流继电器 JL15-100/11电流继电器JL15…

关于2024/3/4号的学习总结

今天没有早八,八点之钱起床了,上午背了半小时的单词,然后就在写top100,目前中等和简单写了30题,基本上都没有看题解。我自己也整理下,每一题的思路,这样子,也会让我至少拥有做模板题…

JavaScript代码混淆与防格式化功能详解

在前端开发中,为了增加代码的安全性,防止恶意分析和逆向工程,有时候会采用一些防格式化的技术。这些技术主要通过混淆和难以阅读的方式来防止代码的易读性,提高代码的复杂度,增加攻击者分析的难度。 1. 代码压缩与混淆…

机器学习--循环神经网路(RNN)2

在这篇文章中,我们介绍一下其他的RNN。 一.深层RNN 循环神经网络的架构是可以任意设计的,之前提到的 RNN 只有一个隐藏层,但 RNN 也可以是深层的。比如把 xt 丢进去之后,它可以通过一个隐藏层,再通过第二个隐藏层&am…

JavaEE企业开发新技术

目录 2.1 Class对象基本概念 1、概念 2.2 Class对象的获取方式 2.3基本数据类型的Class对象 1、概念 2.4 反射的基本概念 概念 2.5 Class对象的基本使用-1 2.6 Class对象的基本使用-2 newInstance()和new()区别: 2.1 Class对象基本概念 1、概念 反射的…

[LeetCode][102]二叉树的层序遍历——遍历结果中每一层明显区分

题目 102. 二叉树的层序遍历 给定二叉树的根节点 root,返回节点值的层序遍历结果。即逐层地,从左到右访问所有节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入…

Java设计模式:建造者模式之经典与流式的三种实现(四)

本文将深入探讨Java中建造者模式的两种实现方式:经典建造者与流式建造者。建造者模式是一种创建型设计模式,它允许你构建复杂对象的步骤分解,使得对象的创建过程更加清晰和灵活。我们将通过示例代码详细解释这两种实现方式,并分析…

Redux 与 Vuex:探索它们的设计思想及应用差异

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

图像压缩神器:使用wxPython和Pillow快速压缩JPEG文件

导语: 在数字时代,我们经常处理大量的图像文件,无论是个人照片、网络图片还是工作中的设计素材。然而,随着图像数量的增多,存储和传输这些文件可能会成为一个挑战。幸运的是,我们可以利用Python编程和两个强…

【Git】项目源码迁移到另一个gitlab(保留原来提交历史记录)

目录 前情提要迁移方案IDEA远程仓库管理团队其他成员切换gitgit命令操作界面 前情提要 公司原来是自己私有部署的gitlab。有了研发云后就希望将代码推送到研发云的代码仓库上。这时候需要迁移并保留原来提交的历史记录。 迁移方案 登录新的gitlab(代码仓库)新建空白项目获取…

如何搭建selenium自动化测试框架?selenium自动化测试环境搭建(webdriver+Python框架)

一、安装Python 选择Python版本后,进入Python官方网站下载适配机型版本:http://www.python.org/ 二、安装setuptools和pip setuptools下载地址:https://pypi.python.org/pypi/setuptools pip下载地址:https://pypi.python.org/py…

BUUCTF----[极客大挑战 2019]HardSQL

输入1’ 单引号闭合 进行永真式判断 竟然说我是臭弟弟----八嘎(肯定是进行了过滤) 经过手法判断,过滤了,空格,and等报错注入updatexml() 报错注入顾名思义就是,通过特殊函数错误使用并使其输出错误结果来获…

性能测试能力提升 —— 线程、并发、吞吐量、TPS、QPS、响应时间

一、背景 接着上一篇的知识:性能测试能力提升-关于性能测试,本篇文章,我们将主要介绍以下几方面的知识: 线程数&并发用户数相对并发&绝对并发吞吐量TPS&QPS响应时间 二、线程数、并发用户数 线程数: 主流的性能测…

Android Studio轮播图使用失败怎么办【已解决】

Android Studio轮播图使用失败怎么办 1.在gethub上面搜索轮播图 2.选择要使用的轮播图 3.查看该轮播图的配置方法 4.复制该依赖放入build.gradle中 5.重新构建 6.使用banner 发现没有报错了 7.参考网址 https://github.com/youth5201314/banner

解读BOT攻击,探索灵活高效的防护之道

回顾早期的互联网应用,由于业务流量比较小,往往单台服务器就能满足负载需求。随着互联网的流量越来越大,单服务器已经不能满足业务需求,无论它优化得再好,都较难承受大量的访问压力。支持负载均衡的技术很多&#xff0…

微信加好友频繁会被封号吗?

微信加好友频繁会被封号吗? 微信规定,每个人每天最多可以加20个好友,但一天之内如果频繁加好友,微信可能会出现异常提示,需要暂停好友添加操作。 面对微信上突如其来的大量好友申请,一定要谨慎处理,以免被…

【开源】SpringBoot框架开发教学资源共享平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…