pytorch3d 上手測試

2021-10-03 21:45:51 字數 2429 閱讀 7490

測試完所有4個目前的tutorial之後,可以簡單總結如下。pytorch3d提供了一組batch模式下處理3d資料的package。針對以mesh形式描述的3d資料,pytorch3d提供了mesh的表達,點sample,io,loss計算,render,和transform等功能。這些功能不單方便了處理3d mesh,同時由於引入了torch,運算可以直接在gpu上執行。pytorch3d不單可用於tutorial中所列舉的用途(多數是對少量引數進行優化),在針對3d的深度學習上,應該也會有現實用途,之後再慢慢探索。

關於點雲,並沒有特別的提及,可能是目前主要的目標是mesh,後期再探索點雲相關的使用場景。

測試的計算機執行ubuntu 18.04 lts,nvidia driver 440.64, cuda sdk 10.2 with cudnn7。python 3.6.9 (native python)

pytorch3d採用的是20200313 commit 4d3c886。目前官方要求cuda 10.1,但是本機已然是10.2了,先這麼著。

目前參考的pytroch documentation在這裡。

首先整了乙個virtualenv,稱為p3pt3d

virtualenv -p /usr/bin/python3 p3pt3d
activate這個virtualenv然後開始安裝我平時需要的package

pip install numpy scipy matplotlib==3.0.0 ipython numba pandas visdom plyfile scikit-image opencv-python opencv-contrib-python
接下來是jupyter,由於在執行pytorch3d的官方教程時出現了一些錯誤,google了一下採用了如下措施

pip install jupyterlab ipywidgets

jupyter nbextension enable --py widgetsnbextension --sys-prefix

注意最後那個--sys-prefix是由於我正在使用virtualenv。上述的處理方案出自

和之後是torch

pip install torch torchvision
我選擇以在本地編譯原始碼的方式安裝pytorch3d,原因是這個專案目前還在發展階段,肯定會有各種bug和快速迭代更新,可以通過自己pull原始碼來快速獲得更新。從pytorch3d的github頁面複製repo的位址在本地clone。之後根據官方的install說明嘗試安裝。

pip install fvcore
然後在pytorch3d原始碼資料夾內 (此時virtualenv是activate狀態)

pip install -e .
等了一段時間,安裝成功。

目前在pytorch3d的官方github頁面上,有4個tutorial。

這個tutorial的官方原始notebook檔案在這裡。在本機上測試是可以智行的。由於jupyter會報一些錯誤,於是都是手工複製了cell到本地的notebook去挨個執行的,本來也是要學習,所以乙個個手工搞也沒有啥不好。

這是deform之前和之後的mesh,用meshlab讀入然後將目標mesh渲染為grid(紅色),將deform過的mesh渲染為su***ce(灰色)。

官方的notebook在這裡。

在本機上執行的結果和官網上的結果一模一樣,話說平行計算時結果很多時候不都會有一點細微差異麼,這個貌似沒有。

這個tutorial中展示了pytorch3d提供的一些package,例如

目前的官方notebook裡,出現的幾個牛的是重複的,實際上的執行效果是下圖所示的樣子。

值得注意的是render也是可以以batch方式執行的。

這個tutorial展示了從nn.module派生出優化物件,利用pytorch提供的優化方法直接進行優化。tutorial給出的初始值挺magical的,我測了幾個別的初始值,都沒有成功收斂到官方的結果。但是計算流程是順利的。以後再琢磨了。

下圖是以(-3.0, 6.9, 2.5)為初始相機位置開始的迭代結果,這個是得到了和官方tutorial一樣的結果。

DirectX9 3D快速上手 3

directx9 3d 快速上手3 by sssa2000 4 15 2005 我們這裡暫時先跳過,乏味的索引緩衝和深度緩衝的內容,先看看怎麼在 3d空間中實現乙個東西,給自己來點成就感。正好sdk 的嚮導也是這麼安排的,呵呵,那我們就繼續從嚮導出發吧,以 tutorial 3 為例子。這個例子主要...

D3D渲染效能測試

測試條件 一張 nvidia 1030顯示卡 1個顯示器 30fps,4k 渲染1個4k畫面 gpu 60 fps 45 渲染2個4k畫面 gpu 50 fps 30 渲染3個4k畫面 gpu 57 fps 30 渲染4個4k畫面 gpu 62 fps 30 測試條件 一張 nvidia 1030顯...

Unity3D 碰撞測試

碰撞測試這個再遊戲的開發中是很有必要的,當敵人的攻擊的時候,發生碰撞這時候就會造成一定的傷害,因此我們需要根據受到的傷害對使用者的生命值進行控制,因此碰撞的測試是 我們在遊戲的開發過程中需要的一種比較重要的資料。在unity中的碰撞測試有兩種,一種是碰撞,一種是觸發!一種屬於物理碰撞,一種屬於非物理...