Rumah >Peranti teknologi >AI >Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

王林
王林ke hadapan
2023-04-11 22:49:012089semak imbas

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.

Ringkasan 12 teknik peningkatan data imej yang biasa digunakan


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):

Memotong
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. Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

RandomResizedCrop
transform = transforms.CenterCrop((224, 224))
 imshow(path, transform)

Kaedah ini menggabungkan pemangkasan dan saiz semula pada masa yang sama. Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

Terbalikkan
transform = transforms.RandomResizedCrop((100, 300))
 imshow(path, transform)

Terbalikkan imej secara mendatar atau menegak, kod di bawah akan cuba menggunakan flip mendatar pada imej kami. Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

Padding
transform = transforms.RandomHorizontalFlip()
 imshow(path, transform)

Padding terdiri daripada padding amaun yang ditentukan pada semua tepi imej. Kami akan mengisi setiap tepi dengan 50 piksel. Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

Putaran
transform = transforms.Pad((50,50,50,50))
 imshow(path, transform)

Menggunakan sudut putaran rawak pada imej. Kami akan menetapkan sudut ini kepada 15 darjah. Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

Random Affine
transform = transforms.RandomRotation(15)
 imshow(path, transform)

Teknik ini ialah transformasi yang meninggalkan pusat tidak berubah. Teknik ini mempunyai beberapa parameter: Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

darjah: sudut putaran

terjemah: terjemahan mendatar dan menegak

    skala: parameter penskalaan
  • kongsi: Imej parameter pemangkasan
  • warna isian: Warna isian di luar imej
Gaussian Blur
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. Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

Skala kelabu
transform = transforms.GaussianBlur(7, 3)
 imshow(path, transform)

Tukar imej warna kepada skala kelabu. Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

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)

KecerahanRingkasan 12 teknik peningkatan data imej yang biasa digunakan

Tukar kecerahan imej Imej yang terhasil menjadi lebih gelap atau lebih terang jika dibandingkan dengan imej asal.

Kontras
transform = 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. Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

transform = transforms.ColorJitter(cnotallow=2)
 imshow(path, transform)

Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

Saturation

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

Hue

色调被定义为Ringkasan 12 teknik peningkatan data imej yang biasa digunakan中颜色的深浅。

transform = transforms.ColorJitter(hue=2)
 imshow(path, transform)

Ringkasan 12 teknik peningkatan data imej yang biasa digunakan

总结

图像本身的变化将有助于模型对未见数据的泛化,从而不会对数据进行过拟合。以上整理的都是我们常见的数据增强技术,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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam