windows下运行pointnet(全)

2023-11-08

放假闲着在家没事,本人突然想跑一下3d深度学习的开山之作——pointnet玩一玩,可是目前网上大部分pointnet的运行教程都是在Ubuntu系统下的。(其实本人也曾装过双系统,但是因为我太菜了,在Ubuntu下装完显卡驱动和cuda后切换win10开机一直黑屏。。。只好含痛放弃装回win10-_-本狗还是先在虚拟机好好学习Linux吧)ps:如果哪位好心的大佬知道怎么解决的话,不妨告诉我怎么解决。 (两年后的LZ建议windows系统下可以采取WSL+docker配置) 最后成功在win10下跑通pointnet的分类、分割和语义分割三个部分,并记录下步骤。

后续文章:
pointnet语义分割_训练并预测自己的数据
pointnet C++推理部署–libtorch框架
pointnet C++推理部署–OpenVINO框架
pointnet C++推理部署–onnxruntime框架
pointnet C++推理部署–tensorrt框架

环境

在下面环境中测试成功,gpu是RTX2060。
环境1: win10+cuda10.1+cudnn7.5+python3.7.2+tensorflow-gpu1.13
环境2: win10+cuda9.2+cudnn7.1+python3.6.5+tensorflow-gpu1.9

资源

pointnet代码GitHub链接
cuda10.1
cudnn7.5.0
tensorflow-gpu1.13
软件的安装在此不赘述了,网上都可以找到详细教程。注意tensorflow-gpu1.13应在上面给出的链接下载处理之后的版本,否则后续会出现问题(本人亲自尝试过,不知道为什么)。

运行

1) Classification
1.下载ModelNet40模型(约415MB)并解压,目录结构为pointnet-master/data/modelnet40_ply_hdf5_2048。
modelnet40_ply_hdf5_2048.zip
2.运行pointnet-master/train.py。

python train.py

训练250个epoch,本人gpu情况训练5小时结束。
3.使用TensorBoard查看网络架构并监视培训进度。

tensorboard --logdir log

4.评估模型并输出一些错误案例的可视化图像。

python evaluate.py --visu

可以评估模型并输出错误情况的一些可视化,错误分类的点云保存在文件夹pointnet-master/dump中。我们通过将点云渲染为三视图来可视化点云。
0_label_vase_pred_cup.jpg
2)Part Segmentation
1.运行脚本下载ShapeNetPart数据集(约1.08GB)和HDF5文件(约346MB)。

cd part_seg
sh download_data.sh

下载不下来的话可以在下面网站找到。
ShapeNetPart数据集
shapenetcore_partanno_v0.zip
HDF5文件
ShapeNetPart数据集解压后格式为pointnet-master/part_seg/PartAnnotation,HDF5文件解压放在pointnet-master/part_seg/hdf5_data。
2.训练代码在pointnet-master/part_seg下。

python train.py

batch改为4(否则我的gpu报out of memory,当然你显存够大当我没说),训练200个epoch,本人gpu情况训练约22个小时结束。
3.测试代码也在pointnet-master/part_seg下。

python test.py

在这里会生成许多.obj文件,这是对应分割的每一部分,可以用cloudcompare/meshlab可视化软件查看结果(cloudcompare可能对obj文件支持不好显示不出点云的rgb信息)。测试结果在pointnet-master/part_seg/test_result文件夹下。
在这里插入图片描述

3)Semantic Segmentation
1.运行脚本下载训练集(约1.56GB)

cd sem_seg
sh download_data.sh

或者可以从下面链接下载:
indoor3d_sem_seg_hdf5_data.zip
解压后格式为pointnet-master/sem_seg/indoor3d_sem_seg_hdf5_data。
2.训练

python train.py --log_dir log6 --test_area 6

训练50个epoch,本人gpu情况需花费约5小时。训练好以后,在pointnet-master/sem_seg⽂件夹下⾯会有⼀个log6的⽂件夹,⾥⾯是训练好的模型。
3.预测
下载S3DIS 点云数据集(约4.1GB),下载地址:
S3DIS 数据集
下载好后,将⽂件放到pointnet-master/data⽬录下,解压,并将⽂件名改为stanford_indoor3d。
修改indoor3d_util.py第13⾏:
修改前

DATA_PATH = os.path.join(ROOT_DIR, 'data','Stanford3dDataset_v1.2_Aligned_Version')

修改后

DATA_PATH = os.path.join(ROOT_DIR, 'data', 'stanford_indoor3d')

运⾏collect_indoor3d_data.py

python collect_indoor3d_data.py

运行batch_inference.py

python batch_inference.py --model_path log6/model.ckpt --dump_dir log6/dump --output_filelist log6/output_filelist.txt --room_data_filelist meta/area6_data_label.txt --visu

在pointnet-master/sem_seg/log6⽂件夹下会⽣成dump⽂件夹,⾥⾯有.obj⽂件,可以用cloudcompare/meshlab等可视化软件查看结果。
在这里插入图片描述
4.IOU评价
将pointnet-master/sem_seg/log6/output_filelist.txt复制到上一级文件夹下并改名为all_pred_data_label_filelist.txt。
运行程序eval_iou_accuracy.py,结果如下图。
在这里插入图片描述

参考

PointNet-环境搭建:win10、cuda10.1、cudnn7、python3.7、tensorflow-gpu1.13 (详细)
PointNet分类和分割代码复现(跑程序)

所有数据集网盘链接:链接:https://pan.baidu.com/s/15X-Q8ygoLn4GCNMnN51v9w
提取码:dcf6
复制这段内容后打开百度网盘手机App,操作更方便哦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows下运行pointnet(全) 的相关文章

  • (详细图解)通过VMware安装centOS系统并进行开机配置(小白版)

    一 VMware的版本及选择 VMware ESX Server ESX本身为一操作系统 不需要宿主操作系统 它本身就是一个操作系统 用来管理硬件资源 所有的系统都安装在它的上面 带有远程web管理和客户端管理功能 VMware GSX S
  • 最近用了一个免费的服务器

    最近看到一个免费的服务器阿贝云 声称是永久免费使用的 有免费虚拟主机 也有免费的云服务器 带宽也不错 下载基本峰值能达到10M s
  • Android学习之完整的注册登录Demo(APP端+服务器端)

    因比赛或者项目需要 写了几个小打小闹的APP 有的处于 单机 状态 有的处于 半联网 状态 觉得学习有点操之过急 所以先缓一缓 梳理一下之前所学的知识 将之前做的一些小玩意儿 整理出来写成博客 第一篇便是大部分APP都具有的注册登录系统 代
  • 15款最好用的思维导图(心智图 )工具

    原文地址 http www linuxidc com Linux 2015 01 111807 htm 思维导图也叫心智图 是一项流行的全脑式学习方法 用来表示词 思路 任务或其他与围绕着一个中央关键词或想法项目的示意图 通过径向 图形和非

随机推荐

  • 【控制】基于PID实现水箱控制系统matlab代码

    1 内容介绍 计算机控制技术 课程是电气信息类专业的主干课程之一 实验教学是该课程教学的重要组成部分 本实验项目以水箱液位为控制参量 设计了包括系统硬件 基于Matlab的控制界面 PID控制程序等内容的 计算机控制技术 实验方案 通过教学
  • 二叉树:总结篇(需要掌握的二叉树技能都在这里了)

    二叉树 总结篇 需要掌握的二叉树技能都在这里了 二叉树的理论基础 二叉树的遍历方式 1 深度优先遍历 2 广度优先遍历 求二叉树的属性 1 是否对称 2 求最大深度 3 求最小深度 4 求有多少个节点 5 是否平衡 6 找所有路径 7 递归
  • 剑指offer_第20题_包含min函数的栈_Python

    题目描述 定义栈的数据结构 并在该类型中实现一个能够得到栈中所含最小元素的min函数 时间复杂度应为O 1 理解 什么是栈 算法复杂度 解题思路 思路1 class Solution def init self self stack sel
  • ant.design的input框同时绑定onBlur和onPressEnter事件且方法为同一个方法后的结果

    ant design的input框同时绑定onBlur和onPressEnter事件且方法为同一个方法后的结果 前几天在做项目时碰到了这么一件事 就是在input上面同时绑定onBlur事件和onPressEnter 而且这两个事件还同时使
  • Python爬虫实战案例——第二例

    某某美剧剧集下载 从搜索片名开始 本篇文章主要是为大家提供某些电影网站的较常规的下载电影的分析思路与代码思路 通过爬虫下载电影 我们会从搜索某部影片的关键字开始直到成功下载某一部电影 地址 aHR0cHM6Ly93d3cuOTltZWlqd
  • esp32 SPIFFS的使用

    读取方法 include FS h include SPIFFS h include AutoFile h void File Init SPIFFS begin true 挂载 时间较长 void contentWrite String
  • 目标检测 - 主流算法介绍 - 从RCNN到DETR

    目标检测是计算机视觉的一个非常重要的核心方向 它的主要任务目标定位和目标分类 在深度学习介入该领域之前 传统的目标检测思路包括区域选择 手动特征提取 分类器分类 由于手动提取特征的方法往往很难满足目标的多样化特征 传统方法始终没能很好的解决
  • Inno Setup 添加管理员权限

    1 在 Setup 节点添加 PrivilegesRequired admin 2 在Inno Setup的安装目录下有个SetupLdr e32文件 用exescope打开 然后在十六进制区域编辑 在右边ASCII显示区域无法编辑 修改到
  • 关于新版vscode的ul>li*3等,不提示快捷方式解决方法

    到文件首选项的设置里搜索emmet 然后找到Emmet Use Inline Completions 勾选上就可以了 快捷方式 如ul gt li 3 加上tab键 注意按enter键无效
  • MKL——常用函数说明

    Intel MKL 全称 Intel Math Kernel Library 提供经过高度优化和大量线程化处理的数学例程 面向性能要求极高的科学 工程及金融等领域的应用 MKL是一款商用函数库 提供C Fortran 和 Fortran 9
  • 以太坊的企业系统集成

    最流行的开源Java集成库 Apache Camel现在支持以太坊的JSON RPC API 以太坊生态系统 以太坊是一个开源 公共 区块链平台 用于运行智能合约 它提供了一个去中心化的图灵完备虚拟机 可以执行脚本和加密货币 用于补偿参与者
  • Android 根目录下和应用目录下的build.gradle的详解,以及groovy语法的讲解

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 Gradle的作用 打apk包 打插件包 自动化构建 多渠道打包 自动化签名 后台java打包 生成文件 使用的是groovy语法
  • 数据中台-数据安全管理-11

    文章目录 数据安全管理 11 1 数据安全面临的调整 11 1 1 数据安全问题带来的4大损害 11 1 2 法律和政策背景 11 1 3 数据安全的4大技术挑战 1 平台安全 2 服务安全 3 数据本身的安全 4 APT攻击防御 11 1
  • 华为OD机试 - 阿里巴巴找黄金宝箱(I)(Java)

    题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上 无意中发现了强盗集团的藏宝地 藏宝地有编号从0 N的箱子 每个箱子上面贴有一个数字 箱子中可能有一个黄金宝箱 黄金宝箱满足排在它之前的所有箱子数字和等于排在它之后的所有箱子数字之和 第一个箱子
  • Verilog实现呼吸灯效果

    呼吸灯的效果采用PWM调波的形式 即快速的改变每个周期的占空比 一个周期内高电平时间占一个周期时间的比值 来实现点亮到熄灭的效果 示意如下图 而关于整个波形图 用50MHz的晶振 从0开始计数到49则为1us 而1ms是1us的1000倍
  • elasticsearch update 无结果

    这个一直不能用 for id in data front res es update index index doc type doc type id id body doc flag 0 print id res break total
  • Android 块设备驱动之二

    将块设备添到系统 添加磁盘和分区到系统中 add diskgendisk函数 register disk add partition 块设备操作 读写操作 请求操作 提交读写请求 将块设备添到系统 调用void blk register r
  • 【Linux】网络编程二:socket简介、字节序、socket地址及地址转换API

    参考连接 https www nowcoder com study live 504 2 16 Linux 网络编程一 网络结构模式 MAC IP 端口 网络模型 协议及网络通信过程简单介绍 Linux 网络编程二 socket简介 字节序
  • JS 终止执行的方法

    一 在function里面 1 return 2 return false 二 非function方法里面 alert before error throw SyntaxError alert after error 三 非function
  • windows下运行pointnet(全)

    放假闲着在家没事 本人突然想跑一下3d深度学习的开山之作 pointnet玩一玩 可是目前网上大部分pointnet的运行教程都是在Ubuntu系统下的 其实本人也曾装过双系统 但是因为我太菜了 在Ubuntu下装完显卡驱动和cuda后切换