LoginSignup
0
0

More than 1 year has passed since last update.

うまくいかない原因が画像データ不足と感じたときに手っ取り早く90度回転で4倍にデータを増やす

Last updated at Posted at 2023-01-12

サンプル数が少ないとうまく結果を出せない可能性がある

正方形の画像かつ回転等を行っても大丈夫なデータに限るが、画像データの水増しを行ってみる

使用ライブラリ

import numpy as np
import glob
import os
from matplotlib import pyplot as plt
import cv2

プログラム

#今回はGoogleコラボを使うのでこの一文を入れる
from google.colab import drive
drive.mount('/content/drive')


#指定した場所から取得
true_train_img=glob.glob(os.path.join("/content/drive/MyDrive/mvtec/tile/train/good", '*'))

#取得したアドレスの確認
print(true_train_img)

#枚数の確認
print(len(true_train_img))
lensize=len(true_train_img)

#枚数分
for i in range(lensize):
    #一枚に対しての処理
    #90度、90度、90度で一回転するので3になる
    for j in range(3):
        
        img=cv2.imread(os.path.join(true_train_img[i]))
        
        #保存先の指定 最後/としないとファイル直下に大量の画像が入るので注意
        savepath='/content/drive/MyDrive/mvtec/tile/train/mizumasi/'
        zero_i = "{0:03d}".format(i)
        one_i="{0:01d}".format(j)
        
        #アドレスの指定と数字を組み合わせ
        new_name =  savepath+zero_i+one_i+".png"
        for k in range(j):
            img=cv2.rotate(img,cv2.ROTATE_90_CLOCKWISE)
        #書き込み処理
        cv2.imwrite(new_name,img)
        


この処理を行う事で、1枚→4枚になるのでデータは確保できるはず。
しかしながら上下左右などデータを変えてしまうと成立しないようなデータは使用するべきではないのでちゅうい

image.png

ドライブ上ではこのような配置になる。goodは元の画像mizumasiは回転後の画像が入る。画像を1フォルダで一緒にしてしまうと元データが分かりにくくなるので分けている。

true_mizumasi_train=glob.glob(os.path.join("/content/drive/MyDrive/mvtec/tile/train/mizumasi" , '*'))

上のような一文を学習用プログラムに入れることで、取得した画像をプログラム上で追加できる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0