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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

论文笔记:KD-Net

發布時間:2025/3/21 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 论文笔记:KD-Net 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Escape from Cells: Deep Kd-Networks for the Recognition of 3D Point Cloud Models

1、四個問題

  • 要解決什么問題?
    • 3D點云識別任務。
  • 用了什么方法解決?
    • 參考KD樹的結構,提出了一種新的樹形結構的神經網絡,用來處理不規則的點云數據。
  • 效果如何?
    • 在形狀分類任務、形狀檢索任務以及形狀部件分割任務中都取得了領先的效果。
  • 還存在什么問題?
    • 如果點云存在旋轉,那么KD樹在X/Y/Z軸方向進行切分時會得到不同的結果,影響最終的效果。
    • 每次網絡做前向操作時,都需要先將輸入的點云轉為KD樹,預處理時必須要占用一定時間。
  • 2、論文概述

    2.1、簡介

    • 我們都知道,由于點云是非歐式結構的數據,無法對其直接應用CNN。常用的思路是將其轉換為體素網格,但是這樣會帶來額外的內存消耗和很大的計算量。
    • 作者認為:諸如KD樹、八叉樹等數據結構常被用于表示不規則的數據。那么,是否能將這些數據結構擴展到深度神經網絡中呢?這樣的網絡結構也就能夠處理那些不規則結構的數據。
    • 由此,作者提出了KD網絡,主要是模仿卷積神經網絡的思想,但是又使用KD樹的結構來構建計算圖。

    2.2、KD-Networks

    • 圖1是KD-Netwoks的示意圖。圖中只考慮二維的情況。
    • 在一個有8個點的點云上建立KD樹,在每一層都從X/Y軸選擇一個維度進行劃分。
    • 從根節點到葉節點對KD樹的每個節點進行編號,根節點編號為0,往后遞增。
    • KD數最左邊的8到15號節點實際就是原始點云,右邊的0號節點可以看做輸出的類別預測v0v_0v0?
    • 從左到右,可以看做這個KD-Network的特征前向傳播的方向。
    • 圖中的圓圈表示的是特征傳播并聚合的過程,對應卷積核,其參數是可學習的。相同的顏色表示共享參數,即如果是在相同維度對點集進行劃分,認為其卷積參數也應該共享。

    2.2.1、輸入

    • 由于KD-Network每次都要從3D點云構建KD樹,而KD樹的節點數是N=2DN=2^{D}N=2D,因此點云的點數也必須是2D2^{D}2D。如果點云的點數不同,還需要對其做上采樣或者下采樣。
    • 構建KD樹時,我們以自頂向下的方式遞歸地生成每個樹節點。每次都選取能最好地分割整個點集的坐標軸作為劃分標準,將點集劃分為兩個一樣大的子集,然后遞歸生成。
    • 一個深度為DDD的平衡KD樹包含有N?1=2D?1N-1=2^{D}-1N?1=2D?1個非葉節點。
    • 每個非葉節點Vi∈TV_{i} \in \mathcal{T}Vi?T都與三個劃分方向did_idi?(X/Y/Z軸,di∈{X,Y,Z}d_i \in \{X, Y, Z\}di?{X,Y,Z})以及劃分位置ti\mathcal{t}_iti?有關。
    • KD樹上的節點還與層數li∈{1,…,D?1}l_{i} \in\{1, \ldots, D-1\}li?{1,,D?1}有關,li=1l_{i}=1li?=1是根節點,li=Dl_{i}=Dli?=D是葉節點,也對應著3D點云上的點。
    • 假設KD樹是平衡樹,那么第iii號節點的子節點的編號分別是c1(i)=2ic_{1}(i)=2 ic1?(i)=2ic2(i)=2i+1c_{2}(i)=2 i + 1c2?(i)=2i+1

    2.2.2、KD-Networks的數據處理

    • 給定一個輸入的KD樹T\mathcal{T}T,KD-Network會計算KD樹的每個節點上的特征向量vi\mathbf{v}_ivi?
    • 葉節點即輸入是一個kkk維向量,由輸入點云的維度確定。
    • l(i)l(i)l(i)層上的非葉節點iii,其子節點c1(i)c_1(i)c1?(i)c2(i)c_2(i)c2?(i)在第l(i)+1l(i) + 1l(i)+1層,其特征向量vc1(i)\mathbf{v}_{c_{1}(i)}vc1?(i)?vc1(i)\mathbf{v}_{c_{1}(i)}vc1?(i)?已經計算好了。那么當前節點iii的特征向量vi\mathbf{v}_ivi?的計算公式如下:
      • vi={?(Wxli[vc1(i);vc2(i)]+bxli),ifdi=x?(Wyli[vc1(i);vc2(i)]+byli),ifdi=y?(Wzli[vc1(i);vc2(i)]+bzli),ifdi=z\mathbf{v}_{i}=\left\{\begin{array}{l}{\phi\left(W_{\mathrm{x}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{\mathrm{x}}^{l_{i}}\right)}, if \ d_i = x \\ {\phi\left(W_{\mathrm{y}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{\mathrm{y}}^{l_{i}}\right)}, if \ d_i = y \\ {\phi\left(W_{\mathrm{z}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{z}^{l_{i}}\right)}, if \ d_i = z \end{array}\right.vi?=?????(Wxli??[vc1?(i)?;vc2?(i)?]+bxli??),if?di?=x?(Wyli??[vc1?(i)?;vc2?(i)?]+byli??),if?di?=y?(Wzli??[vc1?(i)?;vc2?(i)?]+bzli??),if?di?=z?
      • 或簡寫為:vi=?(Wdili[vc1(i);vc2(i)]+bdili)\mathbf{v}_{i}=\phi\left(W_{d_{i}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{d_{i}}^{l_{i}}\right)vi?=?(Wdi?li??[vc1?(i)?;vc2?(i)?]+bdi?li??)
      • ?(?)\phi(\cdot)?(?)是非線性單元(ReLU)。
      • lil_ili?層的可學習的參數是{Wxli,Wyli,Wzli,bxli,byli,bzli}\left\{W_{\mathrm{x}}^{l_{i}}, W_{\mathrm{y}}^{l_{i}}, W_{\mathrm{z}}^{l_{i}}, \mathbf{b}_{\mathrm{x}}^{l_{i}}, \mathbf{b}_{\mathrm{y}}^{l_{i}}, \mathbf{b}_{\mathrm{z}}^{l_{i}}\right\}{Wxli??,Wyli??,Wzli??,bxli??,byli??,bzli??}
      • 根據KD樹的劃分方向did_idi?,選取上面三組參數中的一組進行計算。
    • 每層的矩陣WWWbbb的維度為m1,m2,…,mDm^{1}, m^{2}, \ldots, m^{D}m1,m2,,mD
    • lll層的WxlW_{\mathrm{x}}^{l}Wxl?WylW_{\mathrm{y}}^{l}Wyl?WzlW_{\mathrm{z}}^{l}Wzl?維度是ml×2ml+1m^{l} \times 2 m^{l+1}ml×2ml+1(因為每個非葉節點有兩個子節點),而bxl\mathbf{b}_{\mathrm{x}}^{l}bxl?byl\mathbf{b}_{\mathrm{y}}^{l}byl?bzl\mathbf{b}_{\mathrm{z}}^{l}bzl?的維度是mlm^lml

    2.2.3、分類網絡結構

    • 對于分類網絡來說,只要讓根節點輸出的特征向量的維度數為類別數,即可得到分類結果。
      • v0(T)=W0v1(T)+b0\mathbf{v}_{0}(\mathcal{T})=W^{0} \mathbf{v}_{1}(\mathcal{T})+\mathbf{b}^{0}v0?(T)=W0v1?(T)+b0
      • W0W^0W0b0\mathbf{b}^{0}b0是最后的分類層的參數。

    2.2.4、形狀檢索網絡結構

    • 與分類網絡類似,但是最后的根節點輸出的不是分類預測結果而是一個描述子(特征向量)。訓練時加上度量學習的損失函數:histogram loss,siamese loss,triplet loss等,來約束輸出的特征向量,使得同類形狀的特征向量之間距離更小,不同類的特征向量之間距離更大。

    2.2.5、分割網絡結構

    • 在部件分割任務上,KD-Network參考了卷積神經網絡對結構進行了更改,也使用了編碼器-解碼器(encoder-decoder)的結構,并加入了跳躍連接(skip connections)。

    • 上圖是分割網絡的示意圖。
    • 這里的分割網絡可以看成是將兩個KD樹拼接在了一起,左半邊與分類網絡和檢索網絡結構一樣,是encoder;右半邊是decoder,也就是倒過來的KD樹,將根節點的特征傳播到所有的葉節點上。
    • 設右半部分的KD樹的根節點為v1\mathbf{v}_{1}v1?,而節點iii上的特征向量為vi\mathbf{v}_{i}vi?
    • 特征傳播時的更新公式如下:
      • v~c1(i)=?([W~dc1(i)liv~i+b~dc1(i)li;Slivc1(i)+tli])v~c2(i)=?([W~dc2(i)liv~i+b~dc2(i)li;Slivc2(i)+tli])\begin{aligned} \tilde{\mathbf{v}}_{c_{1}(i)} &=\phi\left(\left[\tilde{W}_{d_{c_{1}(i)}}^{l_{i}} \tilde{\mathbf{v}}_{i}+\tilde{\mathbf{b}}_{d_{c_{1}(i)}}^{l_{i}} ; S^{l_{i}} \mathbf{v}_{c_{1}(i)}+\mathbf{t}^{l_{i}}\right]\right) \\ \tilde{\mathbf{v}}_{c_{2}(i)} &=\phi\left(\left[\tilde{W}_{d_{c_{2}(i)}}^{l_{i}} \tilde{\mathbf{v}}_{i}+\tilde{\mathbf{b}}_{d_{c_{2}(i)}}^{l_{i}} ; S^{l_{i}} \mathbf{v}_{c_{2}(i)}+\mathbf{t}^{l_{i}}\right]\right) \end{aligned}v~c1?(i)?v~c2?(i)??=?([W~dc1?(i)?li??v~i?+b~dc1?(i)?li??;Sli?vc1?(i)?+tli?])=?([W~dc2?(i)?li??v~i?+b~dc2?(i)?li??;Sli?vc2?(i)?+tli?])?
      • W~dc?(i)li\tilde{W}_{d_{c *(i)}^{l_{i}}}W~dc?(i)li???b~dc,(i)li\tilde{\mathbf{b}}_{d_{c,(i)}}^{l_{i}}b~dc,(i)?li??分別是網絡中的權重和偏置參數。
      • SliS^{l_{i}}Sli?tlit^{l_{i}}tli?分別是跳躍連接上的權重和偏置參數。
    • 整個網絡的結構類似U-Net,在encoder-decoder結構的基礎之上加入了shortcut,避免一些信息的損失。

    2.2.6、實現細節

    • 預處理,所有點云都事先歸一化到[?1;1]3[-1 ; 1]^{3}[?1;1]3

    2.3、實驗

    3、參考資料

  • Escape from Cells: Deep Kd-Networks for the Recognition of 3D Point Cloud Models
  • 總結

    以上是生活随笔為你收集整理的论文笔记:KD-Net的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。