Written By mathew

データサイエンス基本(機械学習の準備とコマンド)-Python-

ALL DataScience Study

データサイエンスを学ぶために、Pythonの基本的な画像検出を学びました。
復習も兼ねてメモしてみました。

見てくださった方のお役に立てたら幸いです。

機械学習の準備をする

Anaconda Navigatorで2つのキットをインストールする 「scikit-learn」
「scikit-image」
外部のモジュールを入力 import os
import glob
from PIL import Image
複数画像を順に読み込みながらサイズを変えて保存する for path in glob.glob(‘./original/*.jpg’):
  filename = os.path.basename(path)
  img = Image.open(f’./original/{filename}’)
  img = img.convert(‘RGB’)
  img_resize = img.resize((78,100))
  img_resize.save(f’./conv/{filename}’)
※originalフォルダに入っている画像をリサイズして、convフォルダに保存している。
ファイルを操作できるように外部モジュールを追加する 「import os」の下に
import shutil
機械学習の前準備で使う外部モジュールを追加する 「from PIL import Image」の下に
import numpy as np
from skimage import data
教師なし機械学習を行う外部モジュールを追加する 「from skimage import data」の下に
from sklearn.cluster import KMeans

機械学習を行う

リサイズ画像を全部削除する for path in glob.glob(‘./conv/*.jpg’):
  os.remove(path)
結果を保存する「group」フォルダを削除する for path in glob.glob(‘./group/’):
  shutil.rmtree(path)
リサイズ画像を機械学習で使えるように変換し整える feature = np.array([
  data.imread(path)
  for path in glob.glob(‘./conv/*.jpg’)
])
feature = feature.reshape(len(feature),-1).astype(np.float64)
K平均法を実行 model = KMeans(n_cluster=4).fit(feature)
教師なし機械学習で分類された画像をコピーする labels = model.labels_ #分類結果のラベル情報
for label,path in zip(labels,glob.glob(‘./conv/*.jpg’)):
  filename = os.path.basename(path).reshape(‘.jpg’,”) + ‘.jpg’
  os.makedirs(f”./group/{label}”,exist_ok=True) #groupフォルダ作成
  shutil.copyfile(f”./original/{filename}”,f”./group/{label}/{filename}”)