IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 三维点云语义分割 — 结果可视化(三) -> 正文阅读

[人工智能]三维点云语义分割 — 结果可视化(三)

作者:margin-left:.0001pt;text-align:justify;

????????三维点云语义分割结果可视化的目的是更加直观地看到语义分割的效果。上一节详细介绍了PontNet++点云分割,具体内容请参考三维点云语义分割 — PointNet++详解(二)_Coding的叶子的博客-CSDN博客。本节仍然以上一篇PointNet++源码为例。

1 数据介绍

????????测试程序仍然使用S3DIS数据集,测试数据处理流程与上一节的训练数据处理流程基本一致,请参考三维点云语义分割 — PointNet++详解(二)_Coding的叶子的博客-CSDN博客

????????不同之处在于:训练阶段会随机选取点云中心,然后在xy方圆1m的点云内随机采样4096个点作为训练样本。这里涉及到两个随机取样,而在测试阶段这两个阶段需要变成固定的。首先,将样本全部点云空间在xy平面划分成边长为1的网格,然后在每个网格中进行采样,而不是随机选择样本中心。网格中点数量不满足4096的整数倍时,对网格点进行重复补充,使得点的数量达到要求。这样做是为了确保测试时能够对所有的点都能够采样到,而不是随机的。

????????每个网格中的点会被完全分成一个个4096的点云。在此之前,程序会对网格中点的顺序进行一次打乱,这样会导致每次取样的4096个点会有所不同,但是总体仍然覆盖网格中的全部点云。

????????测试程序会对每个网格中全部的4096个样本数据进行语义分割,最后拼接到全体点云中,从而实现了整个场景的语义分割。可以,看到这种做法某种成度上来说仍然是一种局部语义分割或者是分块语义分割。更加形象地说,这有点像盲人摸象。后续将陆续介绍其他改进类的三维点云分割算法。

2 可视化程序

????????通过运行Github上的测试程序,可以为每个场景的语义分割结果生成对应的txt文件,文件存储了每个点语义分割后的类别标签,如Area_5_office_33.txt。点云坐标和真实标签存储在上一节所述的npy文件中,如Area_5_office_33.npy。npy文件的前三维为xyz坐标,中间三维为法向量,最后一维为真实的类别标签。处理后数据也可直接下载,地址点云语义分割可视化样例数据-深度学习文档类资源-CSDN下载

????????这里将采用Open3d对语义分割结果进行可视化。

# -*- coding: utf-8 -*-
"""
乐乐感知学堂公众号
@author: https://blog.csdn.net/suiyingy
"""

import open3d as o3d
import numpy as np
from copy import deepcopy


if __name__ == '__main__':
    preds = np.loadtxt('Area_5_office_33.txt')
    points = np.load('Area_5_office_33.npy')
    print(preds.shape, points.shape)
    print(set(preds))
    
    #随机生成13个类别的颜色
    colors_0 = np.random.randint(255, size=(13, 3))/255.

    pcd = o3d.geometry.PointCloud()
    pcd.points = o3d.utility.Vector3dVector(points[:, :3])
   
    #为各个真实标签指定颜色
    colors = colors_0[points[:, -1].astype(np.uint8)]
    pcd.colors = o3d.utility.Vector3dVector(colors[:, :3])
    
    #显示预测结果
    pcd1 = deepcopy(pcd)
    pcd1.translate((0, 5, 0)) #整体进行y轴方向平移5
    #为各个预测标签指定颜色
    colors = colors_0[preds.astype(np.uint8)]
    pcd1.colors = o3d.utility.Vector3dVector(colors[:, :3])


    #显示预测结果和真实结果对比
    pcd2 = deepcopy(pcd)
    pcd2.translate((0, -5, 0)) #整体进行y轴方向平移-5
    preds = preds.astype(np.uint8) == points[:, -1].astype(np.uint8)
    #为各个预测标签指定颜色
    colors = colors_0[preds.astype(np.uint8)]
    pcd2.colors = o3d.utility.Vector3dVector(colors[:, :3])


    # 点云显示
    o3d.visualization.draw_geometries([pcd, pcd1, pcd2], window_name="PointNet++语义分割结果",
                                      point_show_normal=False,
                                      width=800,  # 窗口宽度
                                      height=600)  # 窗口高度

3 点云语义分割效果

????????中间图片为点云真实分割效果,上方图片为点云预测效果。下方为真实值和预测值之间的差异,预测正确的地方为灰黄色,错误的为绿色。

4 室内效果

????????通过滚轮可以拉近显示点云,并进入到房间内部,效果如下图所示。

python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_3d点云 python从三维基础知识到深度学习,将按照以下目录持续进行更新。更新完成的部分可以在三维点云专栏中查看。https://blog.csdn.net/suiyingy/category_11740467.htmlhttps://blog.csdn.net/suiyingy/category_11740467.html1、点云格式介绍(已完成)常见点云存储方式有pcd、ply、bin、txt文件。open3d读写pcd和plhttps://blog.csdn.net/suiyingy/article/details/124017716

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:27:02  更:2022-05-11 16:28:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:23:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码