CNN-RNN结合的3D物体识别分类
原文:Convolutional-Recursive Deep Learning for 3D Object Classification
總體思想:
1、同時(shí)使用CNN-RNN進(jìn)行圖像特征的學(xué)習(xí),對RGB-D圖像進(jìn)行分類
2、使用單層CNN提取圖像低維特征,使用這種方法的原因在于這種低維特征能夠允許物體的部分形變,從而具有一定的魯棒性。將單層CNN的輸出作為輸入輸入至RNN中,讓RNN去學(xué)習(xí)特征間的組合關(guān)系(應(yīng)該也可以理解為是RNN學(xué)習(xí)到的隱關(guān)系)
3、嘗試探索新的用于機(jī)器視覺的深度學(xué)習(xí)架構(gòu),在之前的用于自然語言處理和計(jì)算機(jī)視覺中,嘗試使用(1)對每種輸入采取不同樹結(jié)構(gòu)(2)對單層RNN使用一套權(quán)重(3)嚴(yán)格限制樹的結(jié)構(gòu)為二維(4)使用反向傳播訓(xùn)練RNN。在本文中使用固定樹結(jié)構(gòu),允許n進(jìn)制樹。
4、使用非監(jiān)督學(xué)習(xí)的方法學(xué)習(xí)濾波器權(quán)重。
5、總體結(jié)構(gòu)示意圖(引自原文)
左側(cè)為RGB圖像,右側(cè)為深度圖像。首先使用K個(gè)濾波器進(jìn)行卷積操作,將卷積層輸出結(jié)果按序輸入至RNN中。這里有一點(diǎn)不明白,就是為什么CNN和RNN的塊輸入順序不同。
Convolutional-Recursive Neural Networks
1、非監(jiān)督學(xué)習(xí)CNN濾波器
實(shí)現(xiàn)方法,首先將RGB和深度圖像的patch分別進(jìn)行提取放入到兩個(gè)集合內(nèi),而后分別進(jìn)行歸一化和白化。對這些預(yù)處理過的patch使用k-means進(jìn)行聚類,下圖為進(jìn)行聚類后得到的結(jié)果(引自原文)
2、單層CNN
使用單層CNN結(jié)構(gòu)是為了使提取的特征具有平移不變性。使用了what is the best multi-stage architecture for object recognition的結(jié)構(gòu),并且加入了矯正和LCN(局部對比度歸一化,用于在一個(gè)feature map中實(shí)現(xiàn)對比特征)。
使用K個(gè)filter,大小為dp,進(jìn)行卷積操作,然后再使用size為dl,stride為s進(jìn)行平均池化。最終得到一個(gè)K×r×r的3D矩陣為輸出。
3、Fixed-Tree Recursive Neural Networks
本文中使用的結(jié)構(gòu)是一個(gè)固定的樹結(jié)構(gòu),葉節(jié)點(diǎn)為K維向量(來自于CNN池化后的結(jié)果),為了方便理解,畫了兩個(gè)示意圖(字略丑,湊合看)第一個(gè)就是經(jīng)池化后從CNN輸出的結(jié)果,第二張是k為128,block大小為3×3的拼接。
整個(gè)部分的目的就是為了提取圖像的隱特征,并且最終輸出的結(jié)果是一個(gè)k維的向量。每一步的操作都類似于金子塔,其計(jì)算方式如下,W為權(quán)重,維度為K×b^2K
在實(shí)現(xiàn)過程中,第一個(gè)matrix P1的數(shù)量應(yīng)該為(r/b)^2個(gè),其中r為經(jīng)過CNN處理后的輸入圖像的大小,b表示block的大小。從X到P1的合并就使用上述公式,對將P1合并為P2同樣也使用相同的方法,直至最后只剩下一個(gè)P矩陣。使用后向傳播,最小交叉熵進(jìn)行訓(xùn)練。下圖為合并過程示意圖,摘自原文。
4、Multiple Random RNNs
對于3D矩陣的輸入,可以使用N個(gè)RNN,每個(gè)RNN都輸出K維向量,然后將這N個(gè)輸出進(jìn)行連接,作為softmax分類器的輸入。實(shí)驗(yàn)表明即使RNN使用random weight,仍能夠獲得較高質(zhì)量的特征向量。
總結(jié)
以上是生活随笔為你收集整理的CNN-RNN结合的3D物体识别分类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pip 安装报错,is not a su
- 下一篇: opencv像素基本操作及图像遍历at