首页 > 其他分享 >Mesh-gpt(点处理、保存脚本,Transformer)

Mesh-gpt(点处理、保存脚本,Transformer)

时间:2024-09-01 18:14:22浏览次数:11  
标签:shp ... Transformer 置信度 vertices 旋转 Mesh gpt 90

小结:

1、配置了学长的环境,并编写点处理(旋转、镜像)和保存(由内存numpy数组到shp文件)脚本。

2、初步阅读mesh-gpt论文,思考Transformer网络架构(翻译模型和补全模型的训练区别)

环境配置

pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
image-20240830135620846
pip install git+https://github.com/peng0817-3dv/floorplan-reconsturtion-based-plane-triangle.git
image-20240830140108251
pip list
image-20240830140537015

安装缺少的库

pip install pytest
pip install matplotlib

1、尝试运行test/load_shp_test.py ,报错

image-20240830141430457

多种办法完美解决AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘_matplotlib.use('tkagg')-CSDN博客

添加

image-20240830141845964

成功运行test/load_shp_test.py ,并生成load_shp_test目录结果

image-20240830141932244

数据增强

faces和edges存的是vertices的索引(face是三个点+置信度信息;edge是两个点+置信度信息),也就是说face和edge本身并不包含任何位置信息,有位置的是vertices的坐标。

数据结构

vertices = [(x1, y1), (x2, y2), ...]
vertices_confidence = [pv1, pv2, ...]

edges = [(1, 0), (15, 1), ...] #边的两端点序号
edges_confidence = [ev1, ev2, ...]
point_id_to_edges_id = { point1_id : [edge1_id,edge2_id,...], point2_id:[...] }

faces = [(15, 1, 0), (39, 60, 38), ...] # 边的三端点序号
faces_confidences = [ef1, ef2, ...]
faces_label = [-1, -1, ...]

image-20240831114117795

所以生成旋转/翻转的数据(数据增强)实际上是对点集vertices的处理

原始点集

image-20240830193251325

在加载点的函数get_vertices_data中对点进行90度旋转

在二维空间中,绕原点逆时针旋转一个角度θ的变换可以用以下公式表示:

新的x' = x * cos(θ) - y * sin(θ)
新的y' = x * sin(θ) + y * cos(θ)

对于90度的旋转(θ = 90° 或 π/2 弧度),cos(π/2) = 0 且 sin(π/2) = 1,所以变换公式简化为:

新的x' = -y
新的y' = x

image-20240830202655128

结果(左侧为原始的,右侧为旋转90度)

image-20240830203613806

image-20240830203349162

image-20240830203400637

image-20240830203414315

image-20240830203426694

封装函数

定义rotate_vertices对点进行旋转,旋转角度(90 / 180 / 270)

定义mirror_vertices对点进行镜像,镜像轴(x / y)

def rotate_vertices(vertices, angle):
    """
    对点进行旋转
    :param vertices:
    :param angle: 旋转角度(90 / 180 / 270)
    :return:
    """
    if angle == 90:
        rotated_vertices = [(-y, x) for x, y in vertices]
    elif angle == 180:
        rotated_vertices = [(-x, -y) for x, y in vertices]
    elif angle == 270:
        rotated_vertices = [(y, -x) for x, y in vertices]

    return rotated_vertices

def mirror_vertices(vertices, axis):
    """
    对点进行镜像
    :param vertices:
    :param axis: 镜像轴(x / y)
    :return:
    """
    if axis == 'x':
        mirrored_vertices = [(x, -y) for x, y in vertices]
    elif axis == 'y':
        mirrored_vertices = [(-x, y) for x, y in vertices]
    return mirrored_vertices

只需要加载点后备份并进行vertices变换便可得到增强的数据

image-20240830210737717

疑问:点的置信度、边的置信度和面的置信度是什么意思,后者是否可以由前者得到

比如一条边有两个点,一个面有三个边(三个点),边/面的置信度是怎么算的?和点的置信度有什么关联?

image-20240830212023852

数据保存

编写保存脚本save_shp.py,实现从gpu中的数据obj_datas保存回shp文件

  • 运行save_shp.py/的test,实现加载数据到obj_datas并保存成shp文件

  • 运行load_shp.py, 将保存后的shp再次可视化

结果相同

image-20240831185212390

论文

mesh-gpt论文

Transformer的翻译模型和补全模型

对于补全模型

微信(GPT和Bert的预训练)

mesh—gpt、cad(generate)

编码器:他是谁

Transformer:整个场景表达了怎样的语义,(他是否满足这个语义,他在这个语义场景中扮演什么)

long long ago, .....

Next

Transformer-GPT原理

Mesh-GPT demo

标签:shp,...,Transformer,置信度,vertices,旋转,Mesh,gpt,90
From: https://www.cnblogs.com/sherioc/p/18391565

相关文章

  • Transformer网络架构
    只有理解了,才能在超越经验的情况下,生成出合理的内容编解码encoder-decoder结构什么是“码”?剥离形式的表示(各种语言的不同),剩下的语义关系(上下文语义)“码”的要求:1、数字化2、语义关系的距离分词器和one-hot编码在2不足需要找到一个纬度高,但是又没那么高的空间(潜......
  • 国内可以免费使用的gpt网站【九月持续更新】
    GPTHub是我最近使用的一款智能文本生成工具平台,它支持多种AI模型,包括最新的GPT-4模型,并且可以在国内网络环境中直接访问。以下是我在使用过程中发现的一些特点:多功能支持:不仅支持代码生成,还涵盖了文档编写、内容生成等多种功能,适合开发者的日常使用需求。隐私保护:提供强制对......
  • 分享几个可以使用免费GPT的网站
    在AI技术日益发展的今天,智能文本生成工具已经成为我们工作和学习中的得力助手。以下是几款优秀的AI工具推荐和评测,帮助你选择最适合自己的平台。GPTHub链接:点击直达简介:GPTHub是一款高效实用的AI工具,支持GPT-3.5和GPT-4.0模型,并且提供免费试用。其响应速度快,用户体验优秀......
  • Open3D mesh Taubin滤波
    目录一、概述1.1原理1.2实现步骤1.3应用场景二、代码实现2.1关键函数参数详解返回值2.2完整代码三、实现效果3.1加入噪声的mesh3.2Taubin迭代10次3.3Taubin迭代100次Open3D点云算法汇总及实战案例汇总的目录地址:Open3D点云算法与点云深度学习案例汇总(长期更新)-......
  • Nautilus-NRP入门教程-ChatGPT翻译版
    原文链接快速开始指南这个快速开始指南将:指导你获取与NRP(NautilusResearchPlatform)进行交互所需的工具。配置你的Kubernetes客户端与NRP集群进行通信。显示查询NRP集群以查看正在运行的进程的命令。提供进一步提交作业和学习Kubernetes的资源。请注意容器......
  • Dify 与 FastGPT 流程编排能力对比分析
    Dify与FastGPT流程编排能力对比分析一、引言在人工智能快速发展的今天,大语言模型(LLM)应用平台正在重塑各行各业的工作流程。其中,Dify和FastGPT作为两款具有重要影响力的工具,凭借各自独特的流程编排能力,为开发者和使用者提供了强大的支持。流程编排的优劣直接影响着......
  • Linux Debian12安装flameshot火焰截图工具
    一、LinuxDebian12安装flameshot打开终端,运行:sudoaptinstallflameshot安装成功后,使用下面命令查看帮助信息:flameshot-h其中flameshotlauncher命令可以打开启动器。二、使用flameshot截图方法打开终端,输入下面命令:flameshotlauncher打开启动器可以进行新的截......
  • Linux Debian12使用flameshot或gnome-screenshot和ImageMagick垂直合并多张图片后组成
    在发布博客,有时需要滚动截长图,虽然在windows系统有滚动截长图的工具,例如:FastStoneCapture等,但是LinuxDebian系统,这种滚动截长图的工具没有找到合适的。经过自己筛选验证,发现LinuxDebian12使用flameshot或gnome-screenshot截取多张图片,再使用和ImageMagick图像处理工具进行垂直合......
  • YOLOv9独家改进:一种高效移动应用的卷积加性自注意Vision Transformer
    ......
  • ChatGPT学习之旅 (10) 系统全球化小助手
    LOTO****示波器统计曲线和故障分析pass/fail测试虚拟示波器可以应用在工业自动化检测中,除了常规的检测波形和测量值参数以外,由多个行业客户定制和验证的统计曲线和故障分析(pass/fail)功能也为工业自动化检测带来极大的便利。(一)故障分析(pass/fail)的基础:统计曲线功能在信号检测的......