Albumentations Kütüphanesi ile Veri Artırma

Original article was published by Sinem Kulaç on Artificial Intelligence on Medium


Yukarıdaki kısmı notebook’u drive’a bağlamak için kullanıyoruz. Çalıştırdıktan sonra çıkan linke tıklayalım ve verilen doğrulama kodunu kopyalayalım. Kutu içerisine yapıştırdığımızda drive’mıza bağlanmış olacağız.

import os
os.chdir("/content/drive/My Drive/Colab Notebooks/Data")

Yukarıdaki kod parçasını drive’a kaydettiğiniz ve artırmak istediğiniz görüntünün bulunduğu dosyanın dosya yolunu girerek çalıştırınız.

!pip install albumentations

Yukarıdaki komut satırını albumentations kütüphanesini indirmek için kullanıyoruz.

import random
import numpy as np
import cv2
import matplotlib.pyplot as plt
import albumentations as A

Yukarıda kütüphaneleri import edelim.

def visualize(image):
plt.figure(figsize=(10,10))
plt.axis('off')
plt.imshow(image)

Yukarıdaki fonksiyonu ise görüntüleme amacıyla oluşturalım.

doc_aug = A.Compose([A.Rotate(limit=30, p=0.5),
A.GaussNoise(p=0.25),
A.MotionBlur(p=.2),
A.MedianBlur(blur_limit=3, p=0.1),
A.Blur(blur_limit=3, p=0.2),
A.OpticalDistortion(p=0.3),
A.GridDistortion(p=.1),
A.CLAHE(clip_limit=2),
A.RandomBrightnessContrast(p=0.2),
A.RGBShift(),
A.HueSaturationValue(p=0.3),
A.RandomGamma(gamma_limit=(20, 300), p=0.5)])
random.seed(42)

Yukarıda veri artırma için birçok yöntem kullandık. Bu yöntemlerin ne işe yaradığını ve nasıl kullanıldığını bu linke tıklayarak öğrenebilirsiniz. Verdiğimiz görüntüyü yukarıdaki yöntemlerden rastgele şekilde bir veya birçoğunu kullanarak farklı bir görüntü elde edeceğiz.

image = cv2.imread('fis8.jpg')
visualize(image)

Seçtiğimiz görüntünün orijinal halini görüntülemek için fonksiyonumuzu çağırdık.

DATASET_PATH = '/content/drive/My Drive/Colab Notebooks/Data'
IMAGES_PATH = f'{DATASET_PATH}/Augmented_data'
os.makedirs(DATASET_PATH, exist_ok=True)
os.makedirs(IMAGES_PATH, exist_ok=True)

Veriyi alacağımız klasörü ve artırılmış veriyi kaydedeceğimiz klasörü belirttik.

from tqdm import tqdm
import pandas as pd
rows = []for i in tqdm(range(5)):
augmented = doc_aug(image=image)
file_name = f'form_aug_{i}.jpg'
cv2.imwrite(f'{IMAGES_PATH}/{file_name}',augmented['image'])

Yukarıda kod parçası aşağıdaki seçtiğimiz görüntüden 5 farklı artırılmış görüntü elde edecek ve artırılmış veriyi kaydedeceğimiz klasöre kaydedecektir. Ben alışveriş fişi görüntüsünü artırarak aşağıdaki sonuçları aldım.

Kullandığım Colab notebook’a buradan erişebilirsiniz.

Okuduğunuz için teşekkürler !