一 知識背景算法
3D scan&cloud points(點雲)patch-based features,fully convolutional network, deep metric learning, sparse tensors,sparse convolutions, hard negetive-mining, contrastive loss, triplet loss, batch normalization...網絡
1.cloud points(點雲)架構
「在逆向工程中經過測量儀器獲得的產品外觀表面的點數據集合也稱之爲點雲,一般使用三維座標測量機所獲得的點數量比較少,點與點的間距也比較大,叫稀疏點雲;而使用三維激光掃描儀或照相式掃描儀獲得的點雲,點數量比較大而且比較密集,叫密集點雲,框架
在稀疏的卷積中和權值${W}$相乘的${x}$必須在${C}$中,這樣的係數卷積獲得的也是一個稀疏的結果。文中的${V^(3){-1,0,1}}$我以爲其中的元素沒必要是固定的${{-1,0,1}}$,若是非要是這樣,卷積(相關)就沒法計算了(這也是我在閱讀時遇到的困惑)。固然最主要的仍是要在code中去實現這個係數卷積。[接下來的時間我會探索一下]。ide
文章正文:函數
從3D掃描或者是點雲上提取幾何特徵是許多工做的第一步。例如註冊(registration),重建(reconstruction)和跟蹤(tracking)。現今的(state of art)方法須要將低階(low-level)的特徵做爲輸入來計算。性能
「低層次特徵提取算法基於興趣點所在表面及臨近點的空間分佈,提取基本的二維、三維幾何屬性做爲興趣點特徵信息,如線性、平面性等。低層次特徵提取算法複雜度低、運算效率高、內存消耗少,但領域尺寸的選擇對識別效果影響較大。」學習
「高層次特徵提取算法基於低層次幾何特徵及臨近點空間分佈,定義並計算更復雜的幾何屬性做爲特徵信息。根據幾何屬性的定義又可細分爲基於顯著性、基於直方圖、基於顯著性直方圖與基於其餘特徵的四大類提取算法[1][2]。」spa
這裏說明下指標:recall 中文叫查全率又叫召回率,其計算公式以下:.net
$recal{l_c} = \frac{{T{P_c}}}{{T{P_c} + F{N_c}}}$
意思是某一類判斷正確佔到該類總數的百分比。理所固然的想要提高recall能夠遵循「寧肯錯殺一百,不可放過一人」的思想。嘿嘿~
接着咱們給出做者用的網絡框架:
這是一個ResUNet的架構,兩個白框是輸入輸出層,每一個塊用三個參數來描述:kernel size, stride, channel dimensionality.(核大小,步幅,和通道維度)除了最後一層其餘的卷積層後面都有Batch normalization而後跟一個非線性(Relu).
那說了半天啥是全卷積特徵啊?
全卷積特徵做者說了:
我給你翻譯翻譯:
全卷積網絡純粹的由具備平移不變性的操做組成,像卷積和元素級別的非線性。(我不懂啥是元素級別的非線性啊?)一樣,咱們吧稀疏卷積網絡(注這裏是由於他用的稀疏卷積因此將這個網絡將spase convolution network)給一個稀疏的tensor用上,咱們獲得的也是個稀疏的tensor,咱們把這個稀疏的tensor輸出叫作全卷積特徵。
OK。
重頭戲來了,嘿嘿~
做者本身說本身搞了個新的Metric learning的新的損失函數。在看他的新傢伙式兒以前,咱們不妨回顧下他站在誰的肩膀上搞了個大新聞。。
在前面的背景知識裏有提到,就是negative mining 和標準的metric learning 的損失函數。這個做者說本身用全卷積網絡了搞了個metric learning,並且還把negative mining整合到對比損失函數和三元組損失函數裏了,他本身把整合後的這個新的損失函數叫作「Hardest contrastive"和」hardest-triplet"
網絡:「我太難了(哭腔)"。
好言歸正傳,想要搞metric learning必須遵循兩個約束,一個是相似的特徵必須和彼此之間挨的足夠近,對於分類來講,確定是越近越好,那麼有
$D({{f}_{i}},{{f}_{j}})\to 0\forall (i,j)\in P$
啥意思?${P}$是正確配對feature-match成功的特徵,${(i,j)}$是其中的一個組合。相反的不類似的特徵必然挨的越遠越好,那咱們就給他一個警惕線稱之爲margin(注:margin在英語裏由差距,差額之意)用數學來講就是
$D({{f}_{i}},{{f}_{j}})>m\forall (i,j)\in N$
這裏的${D}$是一種距離的衡量手段,原文沒說啥距離,我以爲應該能夠用歐氏距離。
文章說Lin等人說這些對於正例的約束會致使網絡過擬合,而後搞出個針對正例的基於margin的損失函數。式子裏右下角的+號表明着大於0時就取這個值,不然就取0。說實話,我由於一直吧這裏邊的${I_{ij}}$當是個示性函數,覺得根據後邊中括號裏邊的東西來取值,一直沒搞懂,後來偶來見發現tm這兩貨是分開的。我真想吐槽這做者。。
做者的對正例加了個margin的約束後,能夠解決網絡過擬合的現像。
接着又弄個三元組(triplet loss)損失,我一併給出原文,瞅瞅:
在許多的文獻了這篇文章後邊也用了,這(4)裏邊的這個${f}$叫作anchor(中文名叫錨)而${f_+}$表明正例裏邊的元素。帶負號的就不難說了。
在negative mining裏邊就說了,網絡的性能會被小部分」人"左右,是誰呢?就是那些對於網絡來講很是難啃的硬骨頭——「hardest negatives"
接着做者討論一個容易被人忽視,但卻相當重要的存在:全卷積特徵的特性
傳統的Metric learning 認爲特徵是獨立同分布的(iid),爲啥?做者說了:
由於batch是隨機採樣來的。
這裏須要和你們回顧下啥是epoch,batch,iteration???
雖然說基礎,但也要溫故而知新嘛~
然而,然而...
在全卷積特徵的提取過程當中,相鄰特徵的位置是相關的。(我也不懂...)