国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        使用Pytorch進行圖像增強的綜合教程

        最近,在研究項目中,開始了解圖像增強技術(shù)的重要性。該項目的目標是訓練一個能夠重建原始圖像的魯棒生成模型。所解決的問題是異常檢測,這是一個相當具有挑戰(zhàn)性的問題,因為數(shù)據(jù)量很小,而且模型不足以單獨完成所有工作。

        常見的場景是使用可用于訓練的正常圖像訓練網(wǎng)絡模型,并在包含正常圖像和異常圖像的測試集上評估其性能。

        最初的假設(shè)是,生成模型應該很好地捕捉正態(tài)分布,但同時,它應該無法重建異常樣本。如何驗證這一假設(shè)?我們可以看到重建誤差,異常圖像的重建誤差應該較高,而正常樣本的重建誤差應該較低。

        在這篇文章中,將列出最好的數(shù)據(jù)增強技術(shù),以增加數(shù)據(jù)集中圖像的大小和多樣性。其主要目的是提高模型的性能和泛化能力。

        我們將探索簡單的變換,如旋轉(zhuǎn)、裁剪和高斯模糊,以及更復雜的技術(shù),如高斯噪聲和隨機塊。

        圖像增強技術(shù):

        1、簡單變換

        · 調(diào)整大小

        · 灰度

        · 規(guī)范化

        · 隨機旋轉(zhuǎn)

        · 中心裁剪

        · 隨機裁剪

        · 高斯模糊

        2、更先進的技術(shù)

        · 高斯噪聲

        · 隨機塊

        · 中心區(qū)域

        1、表面裂紋數(shù)據(jù)集簡介

        在本教程中,我們將使用表面裂紋檢測數(shù)據(jù)集。你可以在此處或Kaggle上下載數(shù)據(jù)集:

        image.png

        從名稱可以推斷,它提供了有裂紋和無裂紋曲面的圖像。因此,它可以作為異常檢測任務的數(shù)據(jù)集,其中異常類由有裂紋的圖像表示,而正常類由無裂紋的表面表示。

        該數(shù)據(jù)集包含4000幅有缺陷和無缺陷表面的彩色圖像。這兩個類都有訓練和測試集。此外,以227×227像素的分辨率獲取每個數(shù)據(jù)集圖像。

        2、簡單變換

        本節(jié)包括torchvision中可用的不同轉(zhuǎn)換模塊。在深入研究之前,我們從訓練數(shù)據(jù)集中導入模塊和一個沒有缺陷的圖像。

        from PIL import Image

        from pathlib import Path

        import matplotlib.pyplot as plt

        import numpy as np

        import sys

        import torch

        import numpy as np

        import torchvision.transforms as T

        plt.rcParams["savefig.bbox"] = 'tight'

        orig_img = Image.open(Path('../input/surface-crack-detection/Negative/00026.jpg'))

        torch.manual_seed(0)

        data_path = '../input/surface-crack-detection/'

        diz_class = {'Positive':'Crack','Negative':'No crack'}

        讓我們顯示圖像的尺寸:

        np.a(chǎn)sarray(orig_img).shape  #(227, 227, 3)

        這意味著我們有一個227x227的圖像,有3個通道。

        調(diào)整大小

        由于圖像具有很高的高度和寬度,因此在將其傳遞給神經(jīng)網(wǎng)絡之前,需要降低維數(shù)。例如,我們可以將227x227圖像調(diào)整為32x32和128x128圖像。

        resized_imgs = [T.Resize(size=size)(orig_img) for size in [32,128]]

        plot(resized_imgs,col_title=["32x32","128x128"])

        值得注意的是,當我們獲得一幅32x32的圖像時,我們會失去分辨率,而128x128的尺寸似乎可以保持樣品的高分辨率。

        灰度等級

        RGB圖像可能很難管理。因此,將圖像轉(zhuǎn)換為灰度可能很有用:

        gray_img = T.Grayscale()(orig_img)

        plot([gray_img], cmap='gray', col_title=["Gray"])

        規(guī)范化

        規(guī)范化是一種有效的方法,可以加快基于神經(jīng)網(wǎng)絡結(jié)構(gòu)的模型的計算速度,加快學習速度。規(guī)范化圖像有兩個步驟:

        · 我們從每個輸入通道中減去通道平均值

        · 稍后,我們將其除以通道標準差。

        我們可以顯示原始圖像及其規(guī)范化版本:

        normalized_img = T.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))(T.ToTensor()(orig_img))

        normalized_img = [T.ToPILImage()(normalized_img)]

        plot(normalized_img, col_title=["Standard normalize"])

        隨機旋轉(zhuǎn)

        隨機旋轉(zhuǎn)方法以隨機角度旋轉(zhuǎn)圖像。

        rotated_imgs = [T.RandomRotation(degrees=d)(orig_img) for d in range(50,151,50)]

        plot(rotated_imgs, col_title=["Rotation 50","Rotation 100","Rotation 150"])

        中心裁剪

        我們使用T.CenterCrop方法裁剪圖像的中心部分,其中需要指定裁剪大小。

        center_crops = [T.CenterCrop(size=size)(orig_img) for size in (128,64, 32)]

        plot(center_crops,col_title=['128x128','64x64','32x32'])

        當圖像的邊界中有一個大背景,而分類任務根本不需要這個背景時,這種轉(zhuǎn)換非常有用。

        隨機裁剪

        我們沒有裁剪圖像的中心部分,而是通過T.RandomCrop方法隨機裁剪圖像的一部分,該方法將裁剪的輸出大小作為參數(shù)。

        random_crops = [T.RandomCrop(size=size)(orig_img) for size in (832,704, 256)]

        plot(random_crops,col_title=['832x832','704x704','256x256'])

        高斯模糊

        我們使用高斯核對圖像進行高斯模糊變換。這種方法有助于降低圖像的清晰度和清晰度,然后將生成的圖像輸入到神經(jīng)網(wǎng)絡中,神經(jīng)網(wǎng)絡在樣本的學習模式方面變得更加穩(wěn)健。

        blurred_imgs = [T.GaussianBlur(kernel_size=(51, 91), sigma=sigma)(orig_img) for sigma in (3,7)]

        plot(blurred_imgs)

        3、更先進的技術(shù)

        前面展示了PyTorch提供的簡單轉(zhuǎn)換示例。現(xiàn)在,我們將重點討論從零開始實現(xiàn)的更復雜的技術(shù)。

        高斯噪聲

        高斯噪聲是一種常用的向整個數(shù)據(jù)集添加噪聲的方法,它迫使模型學習數(shù)據(jù)中包含的最重要信息。

        它包括注入高斯噪聲矩陣,高斯噪聲矩陣是從高斯分布中提取的隨機值矩陣。稍后,我們將在0和1之間剪裁樣本。噪聲因子越高,圖像的噪聲越大。

        def add_noise(inputs,noise_factor=0.3):

            noisy = inputs+torch.randn_like(inputs) * noise_factor

            noisy = torch.clip(noisy,0.,1.)

            return noisy
           

        noise_imgs = [add_noise(T.ToTensor()(orig_img),noise_factor) for noise_factor in (0.3,0.6,0.9)]

        noise_imgs = [T.ToPILImage()(noise_img) for noise_img in noise_imgs]

        plot(noise_imgs, col_title=["noise_factor=0.3","noise_factor=0.6","noise_factor=0.9"])

        隨機塊

        正方形補丁隨機應用在圖像中。這些補丁的數(shù)量越多,神經(jīng)網(wǎng)絡解決問題的難度就越大。

        def add_random_boxes(img,n_k,size=32):

           h,w = size,size

           img = np.a(chǎn)sarray(img)

           img_size = img.shape[1]

           boxes = []

           for k in range(n_k):

               y,x = np.random.randint(0,img_size-w,(2,))

               img[y:y+h,x:x+w] = 0

               boxes.a(chǎn)ppend((x,y,h,w))

           img = Image.fromarray(img.a(chǎn)stype('uint8'), 'RGB')

           return img

        blocks_imgs = [add_random_boxes(orig_img,n_k=i) for i in (10,20)]

        plot(blocks_imgs,col_title=["10 black boxes","20 black boxes"])

        中心區(qū)域

        這是一種非常簡單的方法,可以使模型更一般化。它包括在圖像的中心區(qū)域添加一個補丁塊。

        def add_central_region(img,size=32):

           h,w = size,size

           img = np.a(chǎn)sarray(img)

           img_size = img.shape[1]

           img[int(img_size/2-h(huán)):int(img_size/2+h),int(img_size/2-w):int(img_size/2+w)] = 0

           img = Image.fromarray(img.a(chǎn)stype('uint8'), 'RGB')
           return img
         

        central_imgs = [add_central_region(orig_img,size=s) for s in (32,64)]

        plot(central_imgs,col_title=["32","64"])

        最后的想法:

        希望你發(fā)現(xiàn)本教程很有用。目的是對基于神經(jīng)網(wǎng)絡的圖像增強方法進行概述,以解決模型的泛化問題。代碼位于GitHub上:

        image.png

        感謝閱讀!

               原文標題 : 使用Pytorch進行圖像增強的綜合教程

        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

        發(fā)表評論

        0條評論,0人參與

        請輸入評論內(nèi)容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

        暫無評論

        暫無評論

          人工智能 獵頭職位 更多
          掃碼關(guān)注公眾號
          OFweek人工智能網(wǎng)
          獲取更多精彩內(nèi)容
          文章糾錯
          x
          *文字標題:
          *糾錯內(nèi)容:
          聯(lián)系郵箱:
          *驗 證 碼:

          粵公網(wǎng)安備 44030502002758號

          主站蜘蛛池模板: 91瑟瑟| 扎赉特旗| 制服丝袜无码| 武汉市| 丝袜制服无码国产| 湖北省| 一本色道久久综合狠狠| 亚洲最大三级网站| 伊人网狼人| 成人日本有码在线| 丝袜?亚洲?另类?国产?另类| 91TS人妖另类精品系列| 26uuu亚洲| 色图综合网| 亚洲丝袜精品在线视频| 国产精品xxxx| 夜夜爽夜夜| 亚洲成年| www.亚洲555久久久| 筠连县| 日韩操逼网| 无码人妻精品一区二区三区温州| 西平县| 国产XX00| 国产九九在线视频| 综合一区二区三区| AV网站免费看| 夜夜cao| 成人亚洲精品一区二区三区嫩花 | 超碰在线91| 91国在线观看| 亚洲1234区| 国产在线资源| 大田县| 久久老司机视频| jizz亚洲人| 亚洲中字幕| 性国产| 台前县| 精品九九在线| 亚洲欧洲av|