【三维视觉】【深度学习】ubuntu18.04下PointNet官方代码Pytorch实现
【三維視覺】【深度學(xué)習(xí)】ubuntu18.04下PointNet官方代碼Pytorch實(shí)現(xiàn)
提示:最近開始在三維深度學(xué)習(xí)方面進(jìn)行研究,記錄相關(guān)知識點(diǎn),分享學(xué)習(xí)中遇到的問題已經(jīng)解決的方法。
文章目錄
- 【三維視覺】【深度學(xué)習(xí)】ubuntu18.04下PointNet官方代碼Pytorch實(shí)現(xiàn)
- 前言
- 一、數(shù)據(jù)集說明
- 1.CloudCompare
- 2.點(diǎn)云數(shù)據(jù)
- 3.ModelNet10/40【點(diǎn)云分類】
- 4.ShapeNet 【部件分割】
- 二、PointNet模型運(yùn)行
- 1.下載源碼并安裝環(huán)境
- 2.下載并編譯可視化工具
- 3.Classification【分類】
- 訓(xùn)練
- 測試
- 4.Segmentation【分割】
- 訓(xùn)練
- 測試
- 總結(jié)
前言
PointNet是由斯坦福大學(xué)的Charles R. Qi等人在《PointNet:Deep Learning on Point Sets for 3D Classification and Segmentation》【論文地址】一文中提出的模型,是點(diǎn)云神經(jīng)網(wǎng)絡(luò)的鼻祖,它提出了一種網(wǎng)絡(luò)結(jié)構(gòu),可以直接從點(diǎn)云中學(xué)習(xí)特征。
在詳細(xì)解析PointNet網(wǎng)絡(luò)之前,首要任務(wù)是搭建PointNet【Pytorch-demo地址】所需的運(yùn)行環(huán)境,并模型完成訓(xùn)練和測試工作,展開后續(xù)工作才有意義。
一、數(shù)據(jù)集說明
1.CloudCompare
CloudCompare是一個三維點(diǎn)云(網(wǎng)格)編輯和處理軟件。
安裝前的準(zhǔn)備配置:git、和cmake
源碼編譯安裝【強(qiáng)烈推薦官方教程】
或者可以在軟件商店和用snap來安裝(docker的ubuntu18.04容器安裝存在不少問題)
cmake過程中可能出現(xiàn)的錯誤
根據(jù)提示到"/root/CloudCompare/libs/qCC_db/extern/CCCoreLib/"發(fā)現(xiàn)內(nèi)部是空的。
解決方法
在githup上找到CCCoreLib目錄下,點(diǎn)擊進(jìn)入CCCoreLib官方地址
同樣通過git下載。
cmake編譯成功
2.點(diǎn)云數(shù)據(jù)
點(diǎn)云中每個點(diǎn)都包含了空間坐標(biāo)信息,這些信息之間構(gòu)成一定的集合空間特性:
如何對點(diǎn)云數(shù)據(jù)進(jìn)行特征提取是需要解決的任務(wù)
3.ModelNet10/40【點(diǎn)云分類】
ModelNet10/40是一個基礎(chǔ)的3d點(diǎn)云圖像分類的數(shù)據(jù)集,它里面全部都是CAD手工繪制的點(diǎn)云數(shù)據(jù),在pointnet和pointnet++都有使用這個數(shù)據(jù)集進(jìn)行分類。官網(wǎng)下載(部分可直接下載,其它需要郵件作者):
百度云鏈接【提取碼:ca89】:
4.ShapeNet 【部件分割】
ShpaeNet是一個大規(guī)模的3d點(diǎn)云部件分割的形狀數(shù)據(jù)集,在pointnet和pointnet++都有使用這個數(shù)據(jù)集進(jìn)行部件分割。官網(wǎng)下載需注冊審核才能下載,審核較慢):
百度云鏈接【提取碼:evqi 】
二、PointNet模型運(yùn)行
1.下載源碼并安裝環(huán)境
在ubuntu18環(huán)境下,建議安裝安裝anaconda環(huán)境,方便搭建專用于PointNet模型的虛擬環(huán)境。
【Pytorch-教程】
提示(我也是第一次接觸,感覺挺有用,分享大佬博客供大家參考)
pip install -e . 解析
setup.py 解析
最終的安裝的所有包。
檢查torch版,已經(jīng)安裝torch-gpu版本
測試過程需要安裝的包
2.下載并編譯可視化工具
# 打開gitbash進(jìn)入到pointnet的script文件夾內(nèi) cd scripts #編譯可視化工具 bash build.sh # 下載數(shù)據(jù)集 bash download.sh正確編譯后在"pointnet.pytorch/utils/"目錄下產(chǎn)生render_balls_so.so文件。
用命令在"pointnet.pytorch/shapenetcore_partanno_segmentation_benchmark_v0/"下載完成的數(shù)據(jù)集,或者通過博主提供的百度云進(jìn)行下載解壓。
3.Classification【分類】
訓(xùn)練
# pointnet.pytorch-master/utils文件夾下 cd utils # 訓(xùn)練 python train_classification.py --dataset=/root/pointnet.pytorch/shapenetcore_partanno_segmentation_benchmark_v0/ --nepoch=4 --dataset_type=shapenet測試
# pointnet.pytorch-master/utils文件夾下 cd utils # 測試 cls_model_3.pth是訓(xùn)練好的模型 python show_cls.py --model cls/cls_model_3.pth
解決出現(xiàn)的“FileNotFoundError: [Errno 2] No such file or directory: 'shapenetcore_partanno_segmentation_…synsetoffset2category.txt’”問題:
1.修改show_cls.py中root中的路徑:
2.修改和添加部分代碼【強(qiáng)烈建議】:
同時(shí)測試命令增加dataset路徑
4.Segmentation【分割】
訓(xùn)練
# pointnet.pytorch-master/utils文件夾下 cd utils # 訓(xùn)練 python train_segmentation.py --dataset=/root/pointnet.pytorch/shapenetcore_partanno_segmentation_benchmark_v0/ --nepoch=5 --class_choice=Motorbike測試
# pointnet.pytorch-master/utils文件夾下 cd utils # 測試 cls_model_3.pth是訓(xùn)練好的模型 python show_seg.py --model seg/seg_model_Motorbike_4.pth --dataset=/root/pointnet.pytorch/shapenetcore_partanno_segmentation_benchmark_v0/ --class_choice Rocket
| q | 程序是死循環(huán)的, 退出程序 |
| t+q | 變換顏色 |
| q | 放大 |
| m | 縮小 |
| r | 恢復(fù)原狀 |
| s | 保存圖片 |
總結(jié)
盡可能簡單、詳細(xì)的介紹PointNet的安裝流程以及解決了安裝過程中可能存在的問題。后續(xù)會根據(jù)自己學(xué)到的知識結(jié)合個人理解講解PointNet的原理和代碼。
總結(jié)
以上是生活随笔為你收集整理的【三维视觉】【深度学习】ubuntu18.04下PointNet官方代码Pytorch实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse设置jsp的编码格式最简单
- 下一篇: ubuntu下 vim工具的安装与使用教