LoginSignup
0
2

More than 3 years have passed since last update.

機械学習モデルを用いた顔画像データセット仕分け(#3)

Last updated at Posted at 2020-12-28

概要

UTKFaceデータセットを下記特徴ごとに仕分けする。
・問題なし
・グレースケール
・複数人が写っている
・加工処理されている

仕分けの流れ

前回作成した学習用モデルを使用し、UTKFaceデータセットのpart1フォルダの画像データを一枚ずつ判別

Googleマイドライブに下記フォルダを作っておき、判別された画像を保存していく
・normal
・grayscale
・several
・processing

環境

Google Colaboratory(GPU)

# UTKFace part1 ZIP読み込み
z = zipfile.ZipFile('/content/drive/My Drive/part1.zip')
imgfiles = [ x for x in z.namelist() if re.search(r"^part1.*jpg$", x)]

for imgfile in imgfiles:
    image = Image.open(io.BytesIO(z.read(imgfile)))
    image = image.convert('RGB')
    image_p1 = image.resize((im_size, im_size))
    data = np.asarray(image_p1)
    # shape(299,299,3)(1,299,299,3)に変更する
    data = data[None, ...]
    # ZIPフォルダ内に保存されていたファイル名を取得
    file = str(os.path.basename(imgfile))
    # 学習済モデルに画像一枚分のデータを入力して予測する
    pred=model.predict(data)
    # 判別された値によって画像データを保存する場所を変更する
    if np.argmax(pred) == 0:
      image.save('/content/drive/My Drive/normal/' + file)
    elif np.argmax(pred) == 1:
      image.save('/content/drive/My Drive/grayscale/' + file)
    elif np.argmax(pred) == 2:
      image.save('/content/drive/My Drive/several/' + file)
    else :
      image.save('/content/drive/My Drive/processing/' + file)

z.close()
del z, imgfiles

model.predictは複数枚の画像読み込みを想定(モデルの引数が4次元)しているため、1枚ずつ予測していこうとするとエラーが出ました。
data = data[None, ...]で3次元から4次元に変換すると予測してくれました。
画像のファイル名は変更せずに各フォルダに仕分けをして保存しています。

仕分けされたフォルダの画像を確認

(スクショを貼ってたんですが、違法なのかもしれないと思い削除させて頂きました)

grayscaleフォルダ

色がついている画像もちらほら見受けられますがほぼ判別できているようです。

severalフォルダ

人が複数人写っている画像で学習していましたが学習用データが少なかったためか、ぬいぐるみや動物が写っている、もしくは背景がシンプルではない画像もこちらのフォルダに入ってきているように感じました。

processingフォルダ

顔に文字が被っていたり、渦巻きのような模様が入っているデータをほぼ判別できています。

結果

判別精度はぼちぼちですが、normalフォルダにすっきりした画像を集める事ができました。
このnormalフォルダを利用して年齢や性別が特定できるモデルを作っていこうと思います。

0
2
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
2