国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

torch.nn.functional.grid_sample(F.grid_sample)函數(shù)的說明 & 3D空間中的點向圖像投影的易錯點

這篇具有很好參考價值的文章主要介紹了torch.nn.functional.grid_sample(F.grid_sample)函數(shù)的說明 & 3D空間中的點向圖像投影的易錯點。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

由于二者有一定共通之處,因此放在一篇文章內(nèi)介紹。

1. 關(guān)于torch.nn.functional.grid_sample函數(shù)的說明(F.grid_sample)

??該函數(shù)的作用是在圖像/體素空間中采樣特征。

1.1 輸入和輸出:

變量名 數(shù)據(jù)類型 默認值 含義 備注
input Tensor - 原始圖像/體素空間的特征 形狀需為 ( B , C , H , W ) (B,C,H,W) (B,C,H,W) ( B , C , D , H , W ) (B,C,D,H,W) (B,C,D,H,W),分別表示在圖像中采樣特征和在3D體素空間中采樣特征
grid Tensor - 采樣圖像/體素空間的歸一化坐標(biāo) 形狀需為 ( B , h , w , 2 ) (B,h,w,2) (B,h,w,2)(對應(yīng)4維input的情況)或 ( B , d , h , w , 3 ) (B,d,h,w,3) (B,d,h,w,3)(對應(yīng)5維input的情況),具體見1.2節(jié)
mode str ‘bilinear’ 采樣特征的插值方式 可為’bilinear’(雙線性插值)、‘nearest’(最近鄰插值)、‘bicubic’(雙三次插值)
padding_mode str ‘zeros’ 圖像/體素空間外側(cè)填充方式 可為’zeros’(零填充)、‘border’(邊界值填充)或’reflection’(反射填充,詳見官方介紹)
align_corners bool False 是否將像素看作點而非方塊 False表示將像素看作方塊,而True表示將像素看作點(具體見1.2節(jié))
返回值 Tensor 返回值 采樣得到的特征圖 形狀為 ( B , C , h , w ) (B,C,h,w) (B,C,h,w)(對應(yīng)4維input的情況)或 ( B , C , d , h , w ) (B,C,d,h,w) (B,C,d,h,w)(對應(yīng)5維input的情況)

1.2 需要注意的地方

以4維輸入(即從圖像采樣特征)為例,設(shè)圖像的大小為 ( H , W ) (H,W) (H,W)。

  • 當(dāng)align_corner=False時,函數(shù)會將像素視為方塊,并以圖像左上角像素的左上角為原點建立坐標(biāo)系(如下左圖所示);否則函數(shù)會將像素視為點,以圖像左上角像素中心)為原點建立坐標(biāo)系(如下右圖所示)。
    torch.nn.functional.grid_sample(F.grid_sample)函數(shù)的說明 & 3D空間中的點向圖像投影的易錯點
  • 參數(shù)grid的元素需主要分布在 [ ? 1 , 1 ] [-1,1] [?1,1]內(nèi),表示歸一化采樣坐標(biāo)。其中 ? 1 -1 ?1表示圖像范圍內(nèi)的最小坐標(biāo),而 1 1 1表示圖像范圍內(nèi)的最大坐標(biāo)(如上圖所示)。
  • 參數(shù)grid中的最后一維的順序為 ( x , y ) (x,y) (x,y),但輸入圖像大小 ( H , W ) (H,W) (H,W)對應(yīng) ( y _ s i z e , x _ s i z e ) (y\_size,x\_size) (y_size,x_size)。例子如下:
a = torch.arange(12, dtype=torch.float).reshape(3,4).unsqueeze(0).unsqueeze(0)  # (1,1,3,4)
grid = torch.tensor([[[-0.25,-1.0], [1.0,-1.0]],
                     [[-1.0, 1.0], [1.0, 1.0]]]).unsqueeze(0)					# (1,2,2,2)
out = F.grid_sample(a, grid=grid, padding_mode='border')						# (1,1,2,2)
# 輸出a:
# tensor([[[[ 0.,  1.,  2.,  3.],
#           [ 4.,  5.,  6.,  7.],
#           [ 8.,  9., 10., 11.]]]])
# 輸出out:
# tensor([[[[ 1.,  3.],
#           [ 8., 11.]]]])
# 我們只關(guān)注采樣的左上角元素,坐標(biāo)為(-0.25,-1.0),對應(yīng)上左圖中的第一行第二個格子的頂部中心,
# 在雙線性插值、邊界值填充的情況下采樣特征就是該像素的特征1。
  • 對于5維輸入(即從體素空間采樣特征)的情況,參數(shù)grid中的最后一維順序為 ( x , y , z ) (x,y,z) (x,y,z),但輸入體素空間大小 ( D , H , W ) (D,H,W) (D,H,W)對應(yīng) ( z _ s i z e , y _ s i z e , x _ s i z e ) (z\_size,y\_size,x\_size) (z_size,y_size,x_size)。例子如下:
a = torch.arange(12, dtype=torch.float).reshape(3,4).unsqueeze(0).unsqueeze(0)  # (1,1,3,4)
grid = torch.tensor([[[[-0.25, -1.0, -1.0], [1.0, -1.0, -1.0]],
                      [[ -1.0,  1.0,  1.0], [1.0,  1.0,  1.0]]]]).unsqueeze(0)	# (1,1,2,2,3)
out = F.grid_sample(a, grid=grid, padding_mode='border')						# (1,1,1,2,2)
# 輸出a:
# tensor([[[[[ 0.,  1.,  2.,  3.],
#            [ 4.,  5.,  6.,  7.],
#            [ 8.,  9., 10., 11.]],		# 第一層
# 
#           [[12., 13., 14., 15.],
#            [16., 17., 18., 19.],
#            [20., 21., 22., 23.]]]]])	# 第二層
# 輸出out:
# tensor([[[[[ 1.,  3.],
#            [20., 23.]]]]])
# 我們只關(guān)注采樣的左上角元素,前兩個維度的坐標(biāo)為(-0.25,-1.0),對應(yīng)上左圖中的第一行第二個格子的頂部中心;
# 而第三個維度的坐標(biāo)為-1.0,對應(yīng)最上層的最上部(自行想象3D體素空間)。在雙線性插值、邊界值填充的情況下,
# 采樣特征就是該體素(最上層、第一行第二個體素)的特征1。

2. 3D空間中的點向圖像投影時的易錯點

2.1 點向圖像的投影

??設(shè)圖像的內(nèi)參矩陣( 3 × 4 3\times4 3×4)擴維為 4 × 4 4\times4 4×4后的矩陣為 I \textbf{I} I,相機坐標(biāo)系中的點(3維)擴維到4維后的向量為 p = ( x , y , z , 1 ) T \textbf{p}=(x,y,z,1)^T p=(x,y,z,1)T,圖像坐標(biāo)系下的像素索引(可為小數(shù))為 ( u , v ) (u,v) (u,v),深度為 d d d,則 ( u d , v d , d , 1 ) T = I ? p (ud,vd,d,1)^T=\textbf{I}\cdot\textbf{p} (ud,vd,d,1)T=I?p

2.2 易錯點:小數(shù)索引轉(zhuǎn)換為整數(shù)索引(尋找對應(yīng)的像素)

??下圖所示為上述 ( u , v ) (u,v) (u,v)被定義的坐標(biāo)系以及像素的整數(shù)索引。
torch.nn.functional.grid_sample(F.grid_sample)函數(shù)的說明 & 3D空間中的點向圖像投影的易錯點

可見,應(yīng)該對小數(shù)索引進行floor()操作,以找到其對應(yīng)像素的整數(shù)索引。文章來源地址http://www.zghlxwxcb.cn/news/detail-423156.html

到了這里,關(guān)于torch.nn.functional.grid_sample(F.grid_sample)函數(shù)的說明 & 3D空間中的點向圖像投影的易錯點的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 深入淺出Pytorch函數(shù)——torch.softmax/torch.nn.functional.softmax

    分類目錄:《深入淺出Pytorch函數(shù)》總目錄 相關(guān)文章: · 機器學(xué)習(xí)中的數(shù)學(xué)——激活函數(shù):Softmax函數(shù) · 深入淺出Pytorch函數(shù)——torch.softmax/torch.nn.functional.softmax · 深入淺出Pytorch函數(shù)——torch.nn.Softmax 將Softmax函數(shù)應(yīng)用于沿 dim 的所有切片,并將重新縮放它們,使元素位于 [ 0 ,

    2024年02月15日
    瀏覽(94)
  • torch.nn.Conv3d

    比Conv2D多一個維度。 舉例說明:Conv2D對720×720的3通道圖像進行卷積,batch_size設(shè)為64,則輸入向量的維度為 [64, 3, 720, 720], Conv3D對分辨率為720×720的視頻(假設(shè)為連續(xù)5幀)進行卷積,batch_size設(shè)為64,則輸入向量的維度為 [64, 3, 5, 720, 720] ?參數(shù)詳解 in_channels( int ) :輸入張量的通道數(shù)

    2023年04月09日
    瀏覽(19)
  • PyTorch中的torch.nn.Linear函數(shù)解析

    PyTorch中的torch.nn.Linear函數(shù)解析

    torch.nn是包含了構(gòu)筑神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)基本元素的包,在這個包中,可以找到任意的神經(jīng)網(wǎng)絡(luò)層。這些神經(jīng)網(wǎng)絡(luò)層都是nn.Module這個大類的子類。torch.nn.Linear就是神經(jīng)網(wǎng)絡(luò)中的線性層,可以實現(xiàn)形如y=Xweight^T+b的加和功能。 nn.Linear():用于設(shè)置網(wǎng)絡(luò)中的全連接層,需要注意的是全連接

    2024年02月16日
    瀏覽(29)
  • 深入淺出Pytorch函數(shù)——torch.nn.Linear

    分類目錄:《深入淺出Pytorch函數(shù)》總目錄 對輸入數(shù)據(jù)做線性變換 y = x A T + b y=xA^T+b y = x A T + b 語法 參數(shù) in_features :[ int ] 每個輸入樣本的大小 out_features :[ int ] 每個輸出樣本的大小 bias :[ bool ] 若設(shè)置為 False ,則該層不會學(xué)習(xí)偏置項目,默認值為 True 變量形狀 輸入變量:

    2024年02月12日
    瀏覽(94)
  • 深入淺出Pytorch函數(shù)——torch.nn.Module

    分類目錄:《深入淺出Pytorch函數(shù)》總目錄 Pytorch中所有網(wǎng)絡(luò)的基類,我們的模型也應(yīng)該繼承這個類。 Modules 也可以包含其它 Modules ,允許使用樹結(jié)構(gòu)嵌入他們,我們還可以將子模塊賦值給模型屬性。 語法 方法 torch.nn.Module.apply 實例 通過上面方式賦值的 submodule 會被注冊,當(dāng)調(diào)

    2024年02月12日
    瀏覽(99)
  • 深入淺出Pytorch函數(shù)——torch.nn.Softmax

    分類目錄:《深入淺出Pytorch函數(shù)》總目錄 相關(guān)文章: · 機器學(xué)習(xí)中的數(shù)學(xué)——激活函數(shù):Softmax函數(shù) · 深入淺出Pytorch函數(shù)——torch.softmax/torch.nn.functional.softmax · 深入淺出Pytorch函數(shù)——torch.nn.Softmax 將Softmax函數(shù)應(yīng)用于 n n n 維輸入張量,重新縮放它們,使得 n n n 維輸出張量的

    2024年02月15日
    瀏覽(23)
  • 深入淺出Pytorch函數(shù)——torch.nn.init.uniform_

    分類目錄:《深入淺出Pytorch函數(shù)》總目錄 相關(guān)文章: · 深入淺出Pytorch函數(shù)——torch.nn.init.calculate_gain · 深入淺出Pytorch函數(shù)——torch.nn.init.uniform_ · 深入淺出Pytorch函數(shù)——torch.nn.init.normal_ · 深入淺出Pytorch函數(shù)——torch.nn.init.constant_ · 深入淺出Pytorch函數(shù)——torch.nn.init.ones_ ·

    2024年02月12日
    瀏覽(92)
  • 深入淺出Pytorch函數(shù)——torch.nn.init.normal_

    分類目錄:《深入淺出Pytorch函數(shù)》總目錄 相關(guān)文章: · 深入淺出Pytorch函數(shù)——torch.nn.init.calculate_gain · 深入淺出Pytorch函數(shù)——torch.nn.init.uniform_ · 深入淺出Pytorch函數(shù)——torch.nn.init.normal_ · 深入淺出Pytorch函數(shù)——torch.nn.init.constant_ · 深入淺出Pytorch函數(shù)——torch.nn.init.ones_ ·

    2024年02月12日
    瀏覽(98)
  • 深入淺出Pytorch函數(shù)——torch.nn.init.dirac_

    分類目錄:《深入淺出Pytorch函數(shù)》總目錄 相關(guān)文章: · 深入淺出Pytorch函數(shù)——torch.nn.init.calculate_gain · 深入淺出Pytorch函數(shù)——torch.nn.init.uniform_ · 深入淺出Pytorch函數(shù)——torch.nn.init.normal_ · 深入淺出Pytorch函數(shù)——torch.nn.init.constant_ · 深入淺出Pytorch函數(shù)——torch.nn.init.ones_ ·

    2024年02月12日
    瀏覽(94)
  • 深入淺出Pytorch函數(shù)——torch.nn.init.eye_

    分類目錄:《深入淺出Pytorch函數(shù)》總目錄 相關(guān)文章: · 深入淺出Pytorch函數(shù)——torch.nn.init.calculate_gain · 深入淺出Pytorch函數(shù)——torch.nn.init.uniform_ · 深入淺出Pytorch函數(shù)——torch.nn.init.normal_ · 深入淺出Pytorch函數(shù)——torch.nn.init.constant_ · 深入淺出Pytorch函數(shù)——torch.nn.init.ones_ ·

    2024年02月11日
    瀏覽(103)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包