日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

【三维视觉】【深度学习】ubuntu18.04下PointNet官方代码Pytorch实现

發(fā)布時(shí)間:2024/1/1 Ubuntu 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【三维视觉】【深度学习】ubuntu18.04下PointNet官方代码Pytorch实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【三維視覺】【深度學(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

# 安裝git,用于從Github上克隆項(xiàng)目到本地 sudo apt-get install git # 安裝cmake,用于程序的編譯 sudo apt-get install cmake # 解決camke時(shí)出現(xiàn)Failed to find "GL/gl.h"的問題,缺少libGl庫 sudo apt-get install libgl1-mesa-dev sudo apt-get install build-essential qt5-default qtscript5-dev libssl-dev qttools5-dev qttools5-dev-tools qtmultimedia5-dev libqt5svg5-dev libqt5webkit5-dev libsdl2-dev libasound2 libxmu-dev libxi-dev freeglut3-dev libasound2-dev libjack-jackd2-dev libxrandr-dev libqt5xmlpatterns5-dev libqt5xmlpatterns5

源碼編譯安裝【強(qiáng)烈推薦官方教程】
或者可以在軟件商店和用snap來安裝(docker的ubuntu18.04容器安裝存在不少問題)

# git下載CloudCompare源碼(需要科學(xué)上網(wǎng)) git clone --recursive https://github.com/cloudcompare/CloudCompare.git cd CloudCompare&& mkdir build && cd build cmake .. make -j16 # cmake --build . # cmake --install .

cmake過程中可能出現(xiàn)的錯誤

根據(jù)提示到"/root/CloudCompare/libs/qCC_db/extern/CCCoreLib/"發(fā)現(xiàn)內(nèi)部是空的。

解決方法
在githup上找到CCCoreLib目錄下,點(diǎn)擊進(jìn)入CCCoreLib官方地址

同樣通過git下載。

# 到CCCoreLib所在目錄下 cd /root/CloudCompare/libs/qCC_db/extern # 刪除CCCoreLib空文件夾 rm -rf CCCoreLib/ # git下載CCCoreLib源碼(需要科學(xué)上網(wǎng)) git clone --recursive https://github.com/CloudCompare/CCCoreLib.git

cmake編譯成功

2.點(diǎn)云數(shù)據(jù)

點(diǎn)云中每個點(diǎn)都包含了空間坐標(biāo)信息,這些信息之間構(gòu)成一定的集合空間特性:

  • 點(diǎn)云數(shù)據(jù)是無序的,排列順序并不改變其指代的信息 ;
  • 掃描與視角不同導(dǎo)致點(diǎn)云數(shù)據(jù)近密遠(yuǎn)疏;
  • 點(diǎn)云是非結(jié)構(gòu)化數(shù)據(jù),不同于圖像像素的結(jié)構(gòu)化,因此不利于CNN進(jìn)行卷積操作。
  • 如何對點(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-教程】

    # 創(chuàng)建虛擬環(huán)境 conda create -n PointNet-Pytorch python==3.7.4 # 查看新環(huán)境是否安裝成功 conda env list # 激活環(huán)境 source activate PointNet-Pytorch # 下載githup源代碼到合適文件夾,并cd到代碼文件夾內(nèi) git clone https://github.com/fxia22/pointnet.pytorch cd pointnet.pytorch # 通過清華源,下載所需的第三方包 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e . # 查看所有安裝的包 pip list conda list

    提示(我也是第一次接觸,感覺挺有用,分享大佬博客供大家參考)
    pip install -e . 解析
    setup.py 解析

    最終的安裝的所有包。

    檢查torch版,已經(jīng)安裝torch-gpu版本

    # 查看pytorch版本 import torch print(torch.__version__) # 查看cuda版本 print(torch.version.cuda) # 查看cuda是否可用 print(torch.cuda.is_available()) # 查看可用cuda數(shù)量 print(torch.cuda.device_count())


    測試過程需要安裝的包

    # 安裝opencv pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python # 安裝matplotlib pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib

    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)烈建議】:

    parser.add_argument('--dataset', type=str, default='', help='dataset path') root=opt.dataset,


    同時(shí)測試命令增加dataset路徑

    python show_cls.py --model cls/cls_model_3.pth --dataset=/root/pointnet.pytorch/shapenetcore_partanno_segmentation_benchmark_v0/

    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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。