Matlamat melatih pembelajaran mesin atau model pembelajaran mendalam adalah untuk menjadi model "universal". Ini memerlukan model tidak melebihi set data latihan, atau dengan kata lain, model kami mempunyai pemahaman yang baik tentang data yang tidak kelihatan. Pembesaran data juga merupakan salah satu daripada banyak cara untuk mengelak daripada pemasangan berlebihan.
Proses mengembangkan jumlah data yang digunakan untuk melatih model dipanggil penambahan data. Dengan melatih model dengan pelbagai jenis data, kita boleh mendapatkan model yang lebih "umum". Apakah yang dimaksudkan dengan "berbilang jenis data"? Artikel ini hanya membincangkan teknologi peningkatan data "imej" dan hanya memperkenalkan pelbagai strategi peningkatan data imej secara terperinci. Kami juga akan mendapatkan hands-on dan melaksanakan teknik penambahan data yang digunakan terutamanya dalam data imej atau penglihatan komputer menggunakan PyTorch.
Kerana ia memperkenalkan teknologi peningkatan data. Jadi hanya gunakan satu imej. Mari kita lihat kod visual dahulu. saiz yang dikehendaki. Kod di bawah menunjukkan bahawa kami ingin mengubah saiz imej daripada saiz asalnya kepada 224 x 224.
import PIL.Image as Image import torch from torchvision import transforms import matplotlib.pyplot as plt import numpy as np import warnings def imshow(img_path, transform):
path = './kitten.jpeg' transform = transforms.Resize((224, 224)) imshow(path, transform)
Teknik ini menggunakan sebahagian daripada imej yang dipilih pada imej baharu. Contohnya, gunakan CenterCrop untuk mengembalikan imej yang dipotong tengah.
RandomResizedCroptransform = transforms.CenterCrop((224, 224)) imshow(path, transform)
Kaedah ini menggabungkan pemangkasan dan saiz semula pada masa yang sama.
Terbalikkantransform = transforms.RandomResizedCrop((100, 300)) imshow(path, transform)
Terbalikkan imej secara mendatar atau menegak, kod di bawah akan cuba menggunakan flip mendatar pada imej kami.
Paddingtransform = transforms.RandomHorizontalFlip() imshow(path, transform)
Padding terdiri daripada padding amaun yang ditentukan pada semua tepi imej. Kami akan mengisi setiap tepi dengan 50 piksel.
Putarantransform = transforms.Pad((50,50,50,50)) imshow(path, transform)
Menggunakan sudut putaran rawak pada imej. Kami akan menetapkan sudut ini kepada 15 darjah.
Random Affinetransform = transforms.RandomRotation(15) imshow(path, transform)
Teknik ini ialah transformasi yang meninggalkan pusat tidak berubah. Teknik ini mempunyai beberapa parameter:
terjemah: terjemahan mendatar dan menegak
transform = transforms.RandomAffine(1, translate=(0.5, 0.5), scale=(1, 1), shear=(1,1), fillcolor=(256,256,256)) imshow(path, transform)
Imej akan gunakan Gaussian blur Lakukan pemprosesan blur.
Skala kelabutransform = transforms.GaussianBlur(7, 3) imshow(path, transform)
Tukar imej warna kepada skala kelabu.
Peningkatan warna, juga dikenali sebagai pewarnaan warna, ialah proses mengubah suai sifat warna imej dengan menukar nilai pikselnya. Kaedah berikut adalah semua operasi berkaitan warna.transform = transforms.Grayscale(num_output_channels=3) imshow(path, transform)
Kecerahan
Tukar kecerahan imej Imej yang terhasil menjadi lebih gelap atau lebih terang jika dibandingkan dengan imej asal. Kontrastransform = transforms.ColorJitter(brightness=2) imshow(path, transform)
Tahap perbezaan antara bahagian paling gelap dan paling terang bagi sesuatu imej dipanggil kontras. Kontras imej juga boleh dilaraskan sebagai peningkatan.
transform = transforms.ColorJitter(cnotallow=2) imshow(path, transform)
Ringkasan 12 teknik peningkatan data imej yang biasa digunakan中颜色的分离被定义为饱和度。
transform = transforms.ColorJitter(saturatinotallow=20) imshow(path, transform)
色调被定义为Ringkasan 12 teknik peningkatan data imej yang biasa digunakan中颜色的深浅。
transform = transforms.ColorJitter(hue=2) imshow(path, transform)
图像本身的变化将有助于模型对未见数据的泛化,从而不会对数据进行过拟合。以上整理的都是我们常见的数据增强技术,torchvision中还包含了很多方法,可以在他的文档中找到:https://pytorch.org/vision/stable/transforms.html
Atas ialah kandungan terperinci Ringkasan 12 teknik peningkatan data imej yang biasa digunakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!