漫談程序員(十八)淺談谷歌用戶體驗(yàn)設(shè)計(jì)準(zhǔn)則
995
2025-04-03
大家好!我是【AI 菌】,一枚愛(ài)彈吉他的程序員。我熱愛(ài)AI、熱愛(ài)分享、熱愛(ài)開源! 這博客是我對(duì)學(xué)習(xí)的一點(diǎn)總結(jié)與思考。如果您也對(duì) 深度學(xué)習(xí)、機(jī)器視覺(jué)、數(shù)據(jù)結(jié)構(gòu)與算法、編程 等感興趣,可以關(guān)注我的動(dòng)態(tài),我們一起學(xué)習(xí),一起進(jìn)步~
我的博客地址為:【AI 菌】的博客
我的Github項(xiàng)目地址是:【AI 菌】的Github
資源傳送門:
原論文地址:PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
開源項(xiàng)目地址:TensorFlow1.0實(shí)現(xiàn) 、PyTorch1.0實(shí)現(xiàn)
文章目錄
1. PointNet簡(jiǎn)介
2. 提出背景
3. 網(wǎng)絡(luò)結(jié)構(gòu)
4. 模型的特點(diǎn)
5. 理論分析
6. 性能與效果
1. PointNet簡(jiǎn)介
PointNet,由斯坦福大學(xué)的Charles R. Qi等人在CVPR2017上發(fā)表,是一個(gè)端對(duì)端的神經(jīng)網(wǎng)絡(luò),可以直接將點(diǎn)云數(shù)據(jù)作為輸入,通過(guò)學(xué)習(xí),實(shí)現(xiàn)對(duì)3D點(diǎn)云數(shù)據(jù)目標(biāo)的分類與分割。
點(diǎn)云是一種重要的幾何數(shù)據(jù)結(jié)構(gòu)。由于其格式不規(guī)則,大多數(shù)研究人員將這些數(shù)據(jù)轉(zhuǎn)換為規(guī)則的三維體素網(wǎng)格或圖像,以便于通過(guò)深度學(xué)習(xí)中的卷積操作進(jìn)行權(quán)值共享、優(yōu)化kernel參數(shù)等。但是,這會(huì)使得數(shù)據(jù)變得不必要的龐大,并導(dǎo)致一些問(wèn)題。
PointNet的效果很好,并且對(duì)輸入的擾動(dòng)等具有很好的魯棒性,它的表現(xiàn)性能達(dá)到了當(dāng)時(shí)最先進(jìn)的水平。PointNet的三個(gè)重要應(yīng)用方面如下圖所示:
2. 提出背景
從數(shù)據(jù)結(jié)構(gòu)的角度來(lái)看,點(diǎn)云是一組無(wú)序的向量。雖然深度學(xué)習(xí)的大部分工作都集中在常規(guī)的輸入表示上,如序列(語(yǔ)音和語(yǔ)言處理)、圖像和體積(視頻或三維數(shù)據(jù)),但在點(diǎn)云的深度學(xué)習(xí)方面卻做得很少。這主要是因?yàn)辄c(diǎn)云具有三個(gè)特征:無(wú)序性、稀疏性、信息量有限。
Oriol Vinyals等人最近的一項(xiàng)工作研究了這個(gè)問(wèn)題。他們使用帶注意機(jī)制的讀寫網(wǎng)絡(luò)來(lái)輸入無(wú)序的集合,并顯示他們的網(wǎng)絡(luò)具有對(duì)數(shù)字排序的能力。在歐式空間中的點(diǎn)云集合具有三個(gè)特點(diǎn):
無(wú)序性。點(diǎn)云是一組沒(méi)有特定順序的點(diǎn)。
點(diǎn)之間的相互作用。這些點(diǎn)來(lái)自具有距離度量的空間,這意味著點(diǎn)不是孤立的,相鄰的點(diǎn)可以形成一個(gè)有意義的子集。因此,模型需要能夠從鄰近點(diǎn)捕捉局部結(jié)構(gòu),以及局部結(jié)構(gòu)之間的相互作用。
變換下的不變性。比如點(diǎn)云整體的旋轉(zhuǎn)和平移不應(yīng)該影響它的分類或者分割。
3. 網(wǎng)絡(luò)結(jié)構(gòu)
輸入是包含n個(gè)點(diǎn)的三維點(diǎn)云(x, y, z) , 原始數(shù)據(jù)通過(guò)一個(gè)3D 空間變換矩陣預(yù)測(cè)網(wǎng)絡(luò) T-Net(3),估計(jì)出3x3的變換矩陣T(3) 并作用在原始數(shù)據(jù)上,實(shí)現(xiàn)數(shù)據(jù)的對(duì)齊。對(duì)齊后的數(shù)據(jù)會(huì)以點(diǎn)為單位,通過(guò)一個(gè)共享參數(shù)的雙層感知機(jī)模型mlp進(jìn)行特征提取 。每個(gè)點(diǎn)提取出64維的特征,再通過(guò)特征空間變換矩陣預(yù)測(cè)網(wǎng)絡(luò) T-Net(64) 預(yù)測(cè)64x64的變換矩陣,作用到特征上,實(shí)現(xiàn)對(duì)特征的對(duì)齊。然后繼續(xù)利用三層感知機(jī)(64,128,1024)進(jìn)行以特征點(diǎn)為單位的特征提取,直到把特征的維度變?yōu)?024,繼而在特征空間的維度上進(jìn)行Max Pooling,提取出點(diǎn)云的全局特征向量global feature。
一方面,全局特征向量經(jīng)過(guò)三層感知機(jī)模型,得到k分類輸出,實(shí)現(xiàn)k分類任務(wù)。
另一方面,全局特征向量與前面的64維特征向量concat,通過(guò)三層感知機(jī)模型得到128維的點(diǎn)特征point features,再經(jīng)過(guò)兩層感知機(jī)模型,得到n*m的特征向量。n表示輸入點(diǎn)的個(gè)數(shù),m表示每個(gè)點(diǎn)所屬的類別信息,從而完成分割任務(wù)。
4. 模型的特點(diǎn)
無(wú)序輸入的對(duì)稱函數(shù)。為了使模型對(duì)輸入排列保持不變性,有三種策略:1)將輸入按規(guī)范順序排序;2)將輸入視為訓(xùn)練RNN的序列,但通過(guò)各種置換來(lái)擴(kuò)充訓(xùn)練數(shù)據(jù);3)使用簡(jiǎn)單的對(duì)稱函數(shù)來(lái)聚合每個(gè)點(diǎn)的信息。這里,一個(gè)對(duì)稱函數(shù)以n個(gè)向量作為輸入,并輸出一個(gè)新的向量,該向量與輸入順序不變。例如,+和*運(yùn)算符是對(duì)稱的二進(jìn)制函數(shù)。
用一個(gè)多層感知器網(wǎng)絡(luò)來(lái)近似h,用一個(gè)單變量函數(shù)和一個(gè)最大池函數(shù)的組合來(lái)近似g。實(shí)驗(yàn)證明這種方法很有效。通過(guò)h的集合,我們可以學(xué)習(xí)一些f來(lái)捕捉集合的不同性質(zhì)。
局部和全局信息融合。點(diǎn)分割需要結(jié)合局部和全局知識(shí)。具體做法是:在計(jì)算出全局點(diǎn)云特征向量后,將全局特征與每個(gè)點(diǎn)特征連接起來(lái),然后,基于合并的點(diǎn)特征通過(guò)3層mlp提取新的逐點(diǎn)特征,提取出的每點(diǎn)特征能同時(shí)感知局部和全局信息。
連結(jié)對(duì)齊網(wǎng)絡(luò)。如果點(diǎn)云經(jīng)過(guò)一定的幾何變換,如剛性變換,則點(diǎn)云的語(yǔ)義標(biāo)注必須是不變的。因此,我們期望由我們的點(diǎn)集學(xué)習(xí)的表示對(duì)這些變換是不變的。我們通過(guò)一個(gè)小型網(wǎng)絡(luò)T-Net預(yù)測(cè)仿射變換矩陣,并將此變換直接應(yīng)用于輸入點(diǎn)的坐標(biāo)。小網(wǎng)絡(luò)本身類似于大網(wǎng)絡(luò),由點(diǎn)無(wú)關(guān)特征提取、最大池和全連通層等基本模塊組成。
這種思想還可以進(jìn)一步擴(kuò)展到特征空間的對(duì)齊。我們可以在點(diǎn)特征上插入另一個(gè)對(duì)齊網(wǎng)絡(luò),并預(yù)測(cè)一個(gè)特征轉(zhuǎn)換矩陣來(lái)對(duì)齊來(lái)自不同輸入點(diǎn)云的特征。然而,特征空間中的變換矩陣維數(shù)遠(yuǎn)高于空間變換矩陣,這大大增加了優(yōu)化的難度。因此,我們?cè)趕oftmax訓(xùn)練損失中添加了一個(gè)正則化項(xiàng)。我們將特征變換矩陣約束為接近正交矩陣:
其中A是由小型網(wǎng)絡(luò)預(yù)測(cè)的特征對(duì)齊矩陣。正交變換不會(huì)丟失輸入中的信息,因此是需要的。我們發(fā)現(xiàn)通過(guò)加入正則化項(xiàng),優(yōu)化變得更加穩(wěn)定,我們的模型獲得了更好的性能。
5. 理論分析
證明了神經(jīng)網(wǎng)絡(luò)對(duì)連續(xù)集函數(shù)的普遍逼近能力。通過(guò)集合函數(shù)的連續(xù)性,直觀地看,對(duì)輸入點(diǎn)集的一個(gè)小擾動(dòng)不應(yīng)使函數(shù)值發(fā)生很大的變化,如分類或分割得分。
定理2(a)說(shuō)明對(duì)于任何輸入數(shù)據(jù)集,都存在一個(gè)關(guān)鍵集和一個(gè)最大集,使得對(duì)和之間的任何集合,其網(wǎng)絡(luò)輸出都和一樣。這也就是說(shuō),模型對(duì)輸入數(shù)據(jù)在有噪聲和有數(shù)據(jù)損壞的情況都是魯棒的。
定理2(b)說(shuō)明了關(guān)鍵集的數(shù)據(jù)多少由maxpooling操作輸出數(shù)據(jù)的維度K給出上界(框架圖中為1024)。個(gè)角度來(lái)講,PointNet能夠總結(jié)出表示某類物體形狀的關(guān)鍵點(diǎn),基于這些關(guān)鍵點(diǎn)PointNet能夠判別物體的類別。這樣的能力決定了PointNet對(duì)噪聲和數(shù)據(jù)缺失的魯棒性。
6. 性能與效果
3D Object Classification 。在ModelNet40形狀分類基準(zhǔn)上評(píng)估模型,該數(shù)據(jù)集有12311個(gè)CAD模型,來(lái)自40個(gè)人造目標(biāo)的類別,9843個(gè)數(shù)據(jù)作為訓(xùn)練集,2468個(gè)數(shù)據(jù)作為測(cè)試集。
3D Object Part Segmentation。部件分割是一項(xiàng)具有挑戰(zhàn)性的細(xì)粒度三維識(shí)別任務(wù)。給定3D掃描或網(wǎng)格模型,任務(wù)是為每個(gè)點(diǎn)或面指定部件類別標(biāo)簽(例如椅子腿、杯柄)。
Semantic Segmentation in Scenes。零部件分割網(wǎng)絡(luò)可以很容易地?cái)U(kuò)展到語(yǔ)義場(chǎng)景分割,其中點(diǎn)標(biāo)簽變成語(yǔ)義目標(biāo)類,而不是對(duì)象部分標(biāo)簽。
室內(nèi)場(chǎng)景的目標(biāo)分割效果:
最好的關(guān)系是互相成就,各位的「三連」就是【AI 菌】創(chuàng)作的最大動(dòng)力,我們下期見!
深度學(xué)習(xí) 網(wǎng)絡(luò)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。