大型网站怎样做优化PHP,河南县wap网站建设公司,婚庆公司一般收费标准,做牙厂的网站因为项目涉及到3D点云项目#xff0c;故学习下PointNet这个用来处理点云的神经网络 论文的话#xff0c;大致都看了下#xff0c;网络结构有了一定的了解#xff0c;本博文主要为了下载调试PointNet网络源码#xff0c;训练和测试调通而已。
我是在Anaconda下创建一个新的…因为项目涉及到3D点云项目故学习下PointNet这个用来处理点云的神经网络 论文的话大致都看了下网络结构有了一定的了解本博文主要为了下载调试PointNet网络源码训练和测试调通而已。
我是在Anaconda下创建一个新的虚拟环境空间部署项目测试 大概用到的就这些了后面调试项目时候缺少安装啥就行了
torch 2.0.0cu117
torchvision 0.15.0cu117
python 3.8.19
numpy 1.24.3
matplotlib 3.7.5
opencv-python 4.10.0.84一、下载源码和数据集
论文《PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation》 GitHub源码pointnet.pytorch 数据集下载shapenetcore_partanno_segmentation_benchmark_v0.zip
大致的源码结构如下
二、PyCharm打开项目
拿到项目第一件事是要看下README.md 没啥高级词汇大概能看出来啥意思就行
三、下载数据集
.sh文件是Linux下的脚本文件夹我这是Windows操作系统先打开看看这里面都写了啥 可视化工具在build.sh文件中数据集在download.sh中我这边就只用到必须的数据集
看下download.sh 知道了数据集下载的链接 数据集下载https://shapenet.cs.stanford.edu/ericyi/shapenetcore_partanno_segmentation_benchmark_v0.zip 也就是第一部分中提到的数据集下载链接
四、分类任务
训练的话通过README.md可以看出有两种一种是分类任务一种是分割任务
cd utils
python train_classification.py --dataset dataset path --nepochnumber epochs --dataset_type modelnet40 | shapenet4.1 分类模型训练train_classification.py
1文件在utils文件夹下 2README.md也说明了要配置的参数
python train_classification.py --dataset dataset path --nepochnumber epochs --dataset_type modelnet40 | shapenet
我把要配置的参数给整理到一块了方便进行修改测试其他的参数根据情况去修改即可
3右击运行Ctrl Shift F10报错 修改进程数为0parser.add_argument(--workers, typeint, helpnumber of data loading workers, default0)
4再次右击运行Ctrl Shift F10报错
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OKTRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.按要求加入os.environ[KMP_DUPLICATE_LIB_OK]TRUE 允许程序在存在多个 libiomp5md.dll 副本的情况下继续执行但这可能会导致不稳定的行为包括程序崩溃或产生不正确的结果所以它只是一个临时的解决方案
import os
os.environ[KMP_DUPLICATE_LIB_OK]TRUE 5再次右击运行Ctrl Shift F10开始训练 让它跑着吧先~~也就5个epoch
6因为这里训练的epoch为5每个epoch都会存下来一个模型
可以看到在utils下的cls文件下有五个模型
4.2 分类模型测试show_cls.py
1utils文件夹下的show_cls.py文件用于分类模型测试 2指定两个参数即可
模型路径parser.add_argument(--model, typestr, default ./cls/cls_model_4.pth, helpmodel path) 数据集的路径root../dataset/shapenetcore_partanno_segmentation_benchmark_v0
3右击运行Ctrl Shift F10测试成功
可以看到测试的损失和准确率目前作者没有提供可视化结果展示
五、分割任务
能把分类任务跑通分割任务都是类似的
5.1 分割模型训练train_segmentation.py
python train_segmentation.py --dataset dataset path --nepochnumber epochs
1文件在utils文件夹下 2看README.md指定配置参数
python train_segmentation.py --dataset dataset path --nepochnumber epochs
3右击运行Ctrl Shift F10开始训练
开始训练 epoch为25
4epoch为25会保存25个模型
可以看到在utils下的seg文件下有二十五个模型
5.2 分割任务测试show_seg.py
1utils文件夹下的show_seg.py文件用于分割模型测试 2右击运行Ctrl Shift F10报错 找了一下原因show_seg.py用到了show3d_balls.py里面的showpoints函数 show3d_balls.py又用到了一个dll文件dll np.ctypeslib.load_library(render_balls_so, .)而这个是.so不是.dll原文是在Linux下跑的 故需要转换一下通过Visual Studio创建一个动态链接库(DLL)项目生成render_balls_so.dll放到utils文件下即可 我这边就不搞了抓紧时间学习下PointNet 参考博客https://blog.csdn.net/qq_45369294/article/details/121041403
3直接拿来用
render_balls_so.dll免费下载 下载是一个压缩包里面是一个完整的Visual Studio项目但是用不到咱们就用到了里面的一个dll文件
4再次右击运行Ctrl Shift F10报错 还是之前遇到的问题导入
import os
os.environ[KMP_DUPLICATE_LIB_OK]TRUE和分类任务一样进行简单配置即可
5再次右击运行Ctrl Shift F10测试成功
对Airplane进行分割效果展示
六、完结
目前只是实现了代码的跑通后续还得认真学习原理以及去修改模型架构适配自己的工作任务。