Magicode logo
Magicode
0
3 min read

AIにアミバとトキを学習させよう③

どこに需要があるかわかりませんが、アミバとトキを学習させる内容の続きです。 今回は取得した写真データを、AIが学習できる形に複製・成形します。 ポイントは以下の通りです。

①アミバとトキの写真が入ったフォルダを配列として指定

②写真のサイズを統一

③学習データを水増しさせるために各写真を数度傾けたデータを作る

④複製したデータもふくめてこれらのデータをnpyというバイナリ形式の配列データとして保存

from PIL import Image
import os, glob
import numpy as np
from PIL import ImageFile
# IOError: image file is truncated (0 bytes not processed)回避のため
ImageFile.LOAD_TRUNCATED_IMAGES = True


classes = ["amiba", "toki"]
num_classes = len(classes)
image_size = 64 #画像のサイズ
num_testdata = 25

X_train = [] 
X_test  = []
y_train = []
y_test  = []

for index, classlabel in enumerate(classes):
    photos_dir = "./" + classlabel
    files = glob.glob(photos_dir + "/*.jpg")
    for i, file in enumerate(files):
        image = Image.open(file)
        image = image.convert("RGB")
        image = image.resize((image_size, image_size))
        data = np.asarray(image)
        if i < num_testdata:
            X_test.append(data)
            y_test.append(index)
        else:

            for angle in range(-20, 20, 5):

                img_r = image.rotate(angle)
                data = np.asarray(img_r)
                X_train.append(data)
                y_train.append(index)
                # FLIP_LEFT_RIGHT は 左右反転
                img_trains = img_r.transpose(Image.FLIP_LEFT_RIGHT)
                data = np.asarray(img_trains)
                X_train.append(data)
                y_train.append(index) 

X_train = np.array(X_train)
X_test  = np.array(X_test)
y_train = np.array(y_train)
y_test  = np.array(y_test)

xy = (X_train, X_test, y_train, y_test)
np.save("./amiba_toki.npy", xy)#配列をnpyという独自バイナリファイルとして格納(これがAIの学習データになる)

```python

Discussion

コメントにはログインが必要です。