<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          干貨|10 大 PyTorch 最常用的轉(zhuǎn)換函數(shù)

          共 4706字,需瀏覽 10分鐘

           ·

          2021-06-13 09:04

          ↑ 點(diǎn)擊藍(lán)字 關(guān)注極市平臺(tái)

          作者丨磐懟懟
          來(lái)源丨深度學(xué)習(xí)與計(jì)算機(jī)視覺(jué)
          編輯丨極市平臺(tái)

          極市導(dǎo)讀

           

          當(dāng)我們要處理多種類型的數(shù)據(jù)時(shí),數(shù)據(jù)可能不是我們所需要的格式,PyTorch轉(zhuǎn)換就是救星。本文介紹了10個(gè)PyTorchPyTorch最常用的轉(zhuǎn)換函數(shù)。 >>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺(jué)的最前沿

          Pytorch是一個(gè)深度學(xué)習(xí)框架,廣泛用于圖像分類、分割、目標(biāo)識(shí)別等各種任務(wù)。在這種情況下,我們必須處理各種類型的數(shù)據(jù)。很可能在大多數(shù)情況下,數(shù)據(jù)可能不是我們所需要的格式。PyTorch轉(zhuǎn)換就是救星。torchvision.transforms模塊提供了可以使用的各種圖像轉(zhuǎn)換。我們使用變換對(duì)數(shù)據(jù)進(jìn)行一些操作,使其適合于訓(xùn)練torchvision模塊,PyTorch為常見(jiàn)的圖像變換提供變換有關(guān)的函數(shù)。這些變換可以使用Compose鏈接在一起。讓我們?cè)诒疚闹锌纯雌渲械膸讉€(gè)!準(zhǔn)備好了嗎?

          1. ToTensor

          這是一個(gè)非常常用的轉(zhuǎn)換。在PyTorch中,我們主要處理張量形式的數(shù)據(jù)。如果輸入數(shù)據(jù)是NumPy數(shù)組或PIL圖像的形式,我們可以使用ToTensor將其轉(zhuǎn)換為張量格式。最后一個(gè)張量的形式是(C * H * W)。同時(shí),還執(zhí)行從0–255到0–1的范圍內(nèi)的縮放操作。讓我們用一個(gè)例子來(lái)更好地理解它。在這個(gè)博客中,我將使用Ragnar(我最喜歡的虛構(gòu)角色)的圖像來(lái)執(zhí)行轉(zhuǎn)換。

          2.  Normalize

          此操作將獲取張量圖像,并使用平均值和標(biāo)準(zhǔn)差對(duì)其進(jìn)行歸一化。它有3個(gè)參數(shù):mean, std, inplace。我們需要為3個(gè)通道提供一系列平均值,作為參數(shù)“mean”,“std”類似。如果將“inplace”設(shè)為True,則將計(jì)算得到的值覆蓋之前的值。

          torchvision.transforms.Normalize([meanOfChannel1, meanOfChannel2, meanOfChannel3], [stdOfChannel1, stdOfChannel2, stdOfChannel3])#Example:transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))

          3. CenterCrop

          這將在中心裁剪給定的張量圖像。你可以以(高度、寬度)的形式向transforms.CenterCrop()提供要裁剪的大小作為輸入。讓我們?cè)趫D像上實(shí)現(xiàn)這個(gè)并進(jìn)行檢查。

          transform = transforms.Compose([transforms.ToTensor(),transforms.CenterCrop((200,100))])tensor_img = transform(image)tensor_img.shapeOutput: torch.Size([3, 200, 100])

          如果只提供一個(gè)尺寸標(biāo)注而不是兩個(gè)尺寸標(biāo)注,會(huì)發(fā)生什么情況?它將假設(shè)它是一個(gè)正方形,并且將生成一個(gè)(size, size))的裁剪。如果給定的尺寸比原來(lái)的尺寸大呢?沿著這些邊,圖像將填充0!

          4. RandomHorizontalFlip

          此變換將以給定的概率水平(隨機(jī))翻轉(zhuǎn)圖像。你可以通過(guò)參數(shù)“p”來(lái)設(shè)置這個(gè)概率。p的默認(rèn)值為0.5。檢查我下面的例子來(lái)理解。

          transform = transforms.Compose([transforms.RandomHorizontalFlip(p=0.9)])tensor_img = transform(image)tensor_img

          查看原始圖像和翻轉(zhuǎn)的圖像!

          5. RandomRotation

          此變換將圖像隨機(jī)旋轉(zhuǎn)一個(gè)角度。以度為單位的角度可以作為參數(shù)“degrees”的輸入。

          transform = transforms.Compose([transforms.RandomRotation(degrees=180)])tensor_img = transform(image)tensor_img

          查看上述代碼的轉(zhuǎn)換!

          旋轉(zhuǎn)圖像

          6. Grayscale

          此轉(zhuǎn)換將把原始RGB圖像更改為灰度(即黑白)。你可以提供你想要多少個(gè)通道作為參數(shù)“num_output_channels”的輸入。

          transform = transforms.Compose([transforms.Grayscale(num_output_channels=1)])tensor_img = transform(image)tensor_img

          輸出如下所示。

          7. GaussianBlur

          在這里,圖像將被隨機(jī)選擇的高斯模糊所模糊。必須提供參數(shù)kernel_size。

          transform = transforms.Compose([transforms.GaussianBlur(kernel_size=501)])tensor_img = transform(image)tensor_img

          8. RandomApply

          此轉(zhuǎn)換將隨機(jī)應(yīng)用給定的轉(zhuǎn)換列表。

          transform = transforms.RandomApply([transforms.RandomSizedCrop(200),transforms.RandomHorizontalFlip()],p=0.6)tensor_img = transform(image)

          9. Compose

          在本文中,我們一直在使用Compose() 。為了清楚地定義它,它將幾個(gè)變換組合在一起。

          transforms.Compose([transforms.Grayscale(1),transforms.CenterCrop(10), transforms.ToTensor()])

          一些轉(zhuǎn)換將以所需格式處理數(shù)據(jù)。然而,對(duì)于圖像數(shù)據(jù)增強(qiáng),則需要灰度、隨機(jī)水平翻轉(zhuǎn)和隨機(jī)旋轉(zhuǎn)等變換。

          10. 函數(shù)變換

          在我們學(xué)習(xí)到的所有變換中,你可以注意到參數(shù)是隨機(jī)生成的。這通常足以進(jìn)行數(shù)據(jù)擴(kuò)充。但是,有時(shí)你可能需要對(duì)轉(zhuǎn)換管道進(jìn)行更細(xì)粒度的控制。在這種情況下,可以使用函數(shù)變換。在這里,你可以指定或生成所有參數(shù)。一個(gè)附加的優(yōu)點(diǎn)是,一個(gè)特定定義的函數(shù)變換可以應(yīng)用于多個(gè)圖像。可以從torchvision.transforms.functional訪問(wèn)所有函數(shù)轉(zhuǎn)換。現(xiàn)在讓我們深入了解PyTorch提供的不同功能轉(zhuǎn)換。

          A) 調(diào)整亮度:adjust_brightness

          這主要是調(diào)整圖像的亮度。它以PyTorch張量的形式將圖像作為輸入。它還有一個(gè)重要參數(shù)“亮度系數(shù)”。這將表示如何實(shí)際更改亮度。例如,如果值為1,則會(huì)得到與輸入相同的圖像。如果該值大于1,將獲得更亮的圖像。如果它小于1,你會(huì)得到一個(gè)更暗的圖像。可以相應(yīng)地傳遞浮點(diǎn)值。返回的圖像將是張量或PIL圖像。

          new_img = transforms.functional.adjust_brightness(image,brightness_factor=2)new_img

          B) 調(diào)整對(duì)比度:adjust_contrast

          上面我們看到了如何調(diào)整亮度,這里我們有另一個(gè)用于調(diào)整圖像對(duì)比度的變換。它需要兩個(gè)輸入?yún)?shù):張量形式的圖像和“對(duì)比度因子”。第二個(gè)參數(shù)將輸入一個(gè)浮點(diǎn)值,它將告訴你如何調(diào)整對(duì)比度。但不能是負(fù)的。

          new_img = transforms.functional.adjust_contrast(image,contrast_factor=3.8)new_img

          C) 調(diào)整色調(diào):adjust_hue

          色調(diào)是圖像的一個(gè)重要屬性。Pytorch允許你通過(guò)transforms.functional.adjust_hue進(jìn)行調(diào)整。想知道它是怎么工作的嗎?首先,圖像將被轉(zhuǎn)換成HSV(色調(diào),飽和度,值)形式。將根據(jù)我們的參數(shù)在H通道中進(jìn)行更改。更改后,圖像將轉(zhuǎn)換為其原始形式。重要的參數(shù)是“色調(diào)因子”。它可以是[-0.5.0.5]范圍內(nèi)的浮點(diǎn)值。嘗試實(shí)現(xiàn)下面的示例。

          new_img = transforms.functional.adjust_hue(image,hue_factor=0.3)new_img

          D) 調(diào)整飽和度:adjust_saturation

          這是為了調(diào)整輸入圖像的顏色飽和度。與上述情況類似,我們有一個(gè)“飽和度系數(shù)”參數(shù),它決定了飽和度的變化方式。這將輸入一個(gè)浮點(diǎn)值。如果將其設(shè)置為0,則會(huì)得到黑白圖像。

          new_img = transforms.functional.adjust_saturation(image,saturation_factor=6)

          輸出如下圖所示!

          E) 調(diào)整銳度:adjust_sharpness

          你可以通過(guò)此變換調(diào)整圖像的清晰度。它采用浮點(diǎn)值作為“銳度系數(shù)”參數(shù)的輸入。此值可以是除負(fù)值以外的任何值。在下面的代碼中,我使用了10的銳度因子,這意味著變換后的圖像將是原始圖像的10倍銳度。

          new_img = transforms.functional.adjust_sharpness(image,sharpness_factor=10)

          檢查輸出!

          F) 均衡:equalize

          這種變換將均衡圖像的直方圖。怎么會(huì)這樣?它將對(duì)輸入應(yīng)用非線性映射,從而在輸出中創(chuàng)建灰度值的均勻分布。

          new_img = transforms.functional.equalize(image)

          這些是一些重要的函數(shù)轉(zhuǎn)換,將有助于在圖像預(yù)處理階段。它們也可以組合使用。

          如果覺(jué)得有用,就請(qǐng)分享到朋友圈吧!

          △點(diǎn)擊卡片關(guān)注極市平臺(tái),獲取最新CV干貨

          公眾號(hào)后臺(tái)回復(fù)“79”獲取CVPR 2021:TransT 直播鏈接~


          極市干貨
          YOLO教程:一文讀懂YOLO V5 與 YOLO V4大盤點(diǎn)|YOLO 系目標(biāo)檢測(cè)算法總覽全面解析YOLO V4網(wǎng)絡(luò)結(jié)構(gòu)
          實(shí)操教程:PyTorch vs LibTorch:網(wǎng)絡(luò)推理速度誰(shuí)更快?只用兩行代碼,我讓Transformer推理加速了50倍PyTorch AutoGrad C++層實(shí)現(xiàn)
          算法技巧(trick):深度學(xué)習(xí)訓(xùn)練tricks總結(jié)(有實(shí)驗(yàn)支撐)深度強(qiáng)化學(xué)習(xí)調(diào)參Tricks合集長(zhǎng)尾識(shí)別中的Tricks匯總(AAAI2021
          最新CV競(jìng)賽:2021 高通人工智能應(yīng)用創(chuàng)新大賽CVPR 2021 | Short-video Face Parsing Challenge3D人體目標(biāo)檢測(cè)與行為分析競(jìng)賽開(kāi)賽,獎(jiǎng)池7萬(wàn)+,數(shù)據(jù)集達(dá)16671張!


          CV技術(shù)社群邀請(qǐng)函 #

          △長(zhǎng)按添加極市小助手
          添加極市小助手微信(ID : cvmart2)

          備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測(cè)-深圳)


          即可申請(qǐng)加入極市目標(biāo)檢測(cè)/圖像分割/工業(yè)檢測(cè)/人臉/醫(yī)學(xué)影像/3D/SLAM/自動(dòng)駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群


          每月大咖直播分享、真實(shí)項(xiàng)目需求對(duì)接、求職內(nèi)推、算法競(jìng)賽、干貨資訊匯總、與 10000+來(lái)自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺(jué)開(kāi)發(fā)者互動(dòng)交流~


          覺(jué)得有用麻煩給個(gè)在看啦~  
          瀏覽 55
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  zzijzzij亚洲日本少妇ji… | 日本精品一区二区视频 | 男人天堂色 | 一级特黄绿象免费视频 | 亚洲无码在线视频观看 |