欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch圖片分割原理分析

 更新時間:2024年10月14日 08:46:46   作者:xx_xjm  
自Transformer模型被應(yīng)用于計算機(jī)視覺領(lǐng)域后,圖像分割技術(shù)得到了進(jìn)一步的發(fā)展,但圖像分割操作復(fù)雜,特別是對張量的處理,涉及多種變換方法,其中,view/reshape用于改變數(shù)據(jù)形狀,而permute/transpose用于改變數(shù)據(jù)的維度順序

pytorch圖片分割原理

自從transformer應(yīng)用到cv領(lǐng)域以后,對圖片的分割需求便越加重了,但是圖像分割說起來容易,實(shí)際操作起來還是有很多地方不懂(主要還是code能力太弱)。

我們知道,對張量的處理一般又兩種,一種是view/reshape這樣的,先將數(shù)據(jù)按行展開,再按照指定形狀排列數(shù)據(jù);另一種是permute/transpose這種,是把數(shù)據(jù)按照維度進(jìn)行變化,也就是把數(shù)據(jù)排列的先后順序轉(zhuǎn)換一下(后面具體介紹)。所以分割圖片就用到了兩者的結(jié)合

實(shí)驗(yàn)

原圖:

1:我們先看直接reshape的結(jié)果:將原圖片切割為8份

完全沒法看好吧!

原因就是上面說的,reshape是把整張圖片按行(這里是按照通道數(shù)3,實(shí)際上也確實(shí)應(yīng)該把通道數(shù)調(diào)到最后,按照通道展開,原因后面介紹)展開。

2:我們看一下正確的做法

可以看到分割的很完美!

接下來解釋一下原因

1:通道數(shù)必須放到最后一個維度:首先,我們知道再張量數(shù)據(jù)是連續(xù)的情況下,其數(shù)據(jù)是按行展開排序的,也就是按照張量最后一個維度展開排序,所以,對于一個三通道的RGB圖像(3,H, W)它本來是按照寬度展開的,但這樣在分割的時候就存在問題了,因?yàn)?,分割一張圖片,應(yīng)該是三個通道一起分割,故,我們第一步應(yīng)該把通道數(shù)調(diào)到最后一個維度(這里因?yàn)槭怯胏v2打開的圖片,通道數(shù)已經(jīng)在最后一維 ,所以不用再單獨(dú)轉(zhuǎn)換,但如果需要轉(zhuǎn)換的話,注意,不可以用reshape或者view,只能用permute/或者transpose)

2:寬和高的分割必須先在自己的維度分割,即對于一組(B,C,H, W)的圖片,在把C轉(zhuǎn)換到最后一維后為(B,H,W,C),分割(此時用reshape)應(yīng)該先按照(B,H/H分割size,H分割size,W/W分割size,W分割size,C)展開,然后再用permute,或者tanspose轉(zhuǎn)化為(B,H/H分割size,W/W分割size,H分割size,W分割size,C),最后,再用contiguous().view轉(zhuǎn)化為(B,(H/H分割size)*(W/W分割size),H分割size,W分割size,C),解釋如下:

張量的維度,實(shí)際上表述數(shù)據(jù)的方向和排列順序,越靠后的維度越先排列,所以,對于(B, H W, C),如果只是進(jìn)行reshape或者view的話,他始終是會先把寬W排完之后再排高,所以,為了要把圖片分成一份一份的,那么就必須讓寬和高交替出現(xiàn),也就是要改變數(shù)據(jù)的排列順序,這正是permute和transpose的作用,它們相當(dāng)于在保持現(xiàn)有數(shù)據(jù)在內(nèi)存中順序的基礎(chǔ)上,改變數(shù)據(jù)的排列順序,這里(B,H/H分割size,H分割size,W/W分割size,W分割size,C)H/H分割size,H分割size都代表高;W/W分割size,W分割size都代表寬,也就是(B,高,高,寬,寬,C),將H分割size和W/W分割size轉(zhuǎn)換以后則為(B,高,寬,高,寬,C )

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3多線程詳解

    Python3多線程詳解

    使用多線程,可以同時進(jìn)行多項(xiàng)任務(wù),可以使用戶界面更友好,還可以后臺執(zhí)行某些用時長的任務(wù),同時具有易于通信的優(yōu)點(diǎn)。python3中多線程的實(shí)現(xiàn)使用了threading模塊,它允許同一進(jìn)程中運(yùn)行多個線程,本文介紹的非常詳細(xì),,需要的朋友可以參考下
    2023-05-05
  • Python使用sql語句對mysql數(shù)據(jù)庫多條件模糊查詢的思路詳解

    Python使用sql語句對mysql數(shù)據(jù)庫多條件模糊查詢的思路詳解

    這篇文章主要介紹了Python使用sql語句對mysql數(shù)據(jù)庫多條件模糊查詢的思路詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Python實(shí)現(xiàn)對PPT文件進(jìn)行截圖操作的方法

    Python實(shí)現(xiàn)對PPT文件進(jìn)行截圖操作的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)對PPT文件進(jìn)行截圖操作的方法,涉及Python操作幻燈片的相關(guān)技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-04-04
  • Django項(xiàng)目在pycharm新建的步驟方法

    Django項(xiàng)目在pycharm新建的步驟方法

    在本篇文章里小編給大家整理的是一篇關(guān)于Django項(xiàng)目在pycharm新建的步驟方法,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • Python實(shí)現(xiàn)的基數(shù)排序算法原理與用法實(shí)例分析

    Python實(shí)現(xiàn)的基數(shù)排序算法原理與用法實(shí)例分析

    這篇文章主要介紹了Python實(shí)現(xiàn)的基數(shù)排序算法,簡單說明了基數(shù)排序的原理并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)與使用基數(shù)排序的具體操作技巧,需要的朋友可以參考下
    2017-11-11
  • python判斷windows隱藏文件的方法

    python判斷windows隱藏文件的方法

    inux 下隱藏文件是以句號 “.” 開頭的文件,根據(jù)文件名即可判斷是否為隱藏文件。win 下是以文件隱藏屬性確定的,所以,只能通過微軟的 API 獲取隱藏屬性來判斷是否為隱藏文件
    2014-03-03
  • pygame學(xué)習(xí)筆記(4):聲音控制

    pygame學(xué)習(xí)筆記(4):聲音控制

    這篇文章主要介紹了pygame學(xué)習(xí)筆記(4):聲音控制,本文講解了pygame.mixer啟動與初始化、播放聲音片段wav文件、播放mp3、wma、ogg音樂文件、控制音量、制作mp3播放器中遇到的問題等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • 用Python編寫web API的教程

    用Python編寫web API的教程

    這篇文章主要介紹了用Python編寫web API的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • Python?函數(shù)參數(shù)11個案例分享

    Python?函數(shù)參數(shù)11個案例分享

    大家好,今天給大家分享一下明哥整理的一篇?Python?參數(shù)的內(nèi)容,內(nèi)容非常的干,全文通過案例的形式來理解知識點(diǎn),自認(rèn)為比網(wǎng)上?80%?的文章講的都要明白,如果你是入門不久的?python?新手,相信本篇文章應(yīng)該對你會有不小的幫助,需要的朋友可以參考下
    2023-02-02
  • python中nan與inf轉(zhuǎn)為特定數(shù)字方法示例

    python中nan與inf轉(zhuǎn)為特定數(shù)字方法示例

    這篇文章主要給大家介紹了將python中nan與inf轉(zhuǎn)為特定數(shù)字的方法,文中給出了詳細(xì)的示例代碼和運(yùn)行結(jié)果,對大家的理解和學(xué)習(xí)具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-05-05

最新評論