VISION / LESSON 15

自分の画像を教材にする

自分で撮った画像を、フォルダ名を使って分類用データにする方法と、学習前の点検を知ろう。

図から学ぶ
自分の画像を教材にするを表すキャラクターと学習内容のイラスト
TODAY'S GOAL

この回でつかむこと

画像フォルダとラベルの対応を説明できる。

ことばの窓
01 / SEE THE IDEA

自分の画像を教材にするって何だろう?

画像分類では、クラスごとにフォルダを分けると名前をラベルとして扱えます。ただし枚数だけでなく、背景や撮影場所の偏りも確認します。

あおい

自分で撮った写真なら、すぐ学習に入れられる?

AI先生

まずラベルと枚数を確かめよう。フォルダの整理が、正解を教える準備になるんだよ。

はる

撮影日や背景が片方のクラスだけに偏っていないかも見ます。

フォルダ名からラベルを作る。縦線と横線の画像を分ける。各フォルダの枚数を確認。実物を見て誤分類を防ぐ。
図15 フォルダ名からラベルを作る。縦線と横線の画像を分ける。各フォルダの枚数を確認。実物を見て誤分類を防ぐ。

AI先生 フォルダ名が正解になるから、中の画像も一枚ずつ確かめようね。

図を読むと

同じ撮影条件ばかりを片方のクラスに集めない。 画像分類では、クラスごとにフォルダを分けると名前をラベルとして扱えます。ただし枚数だけでなく、背景や撮影場所の偏りも確認します。

小さなコードで確かめるまず結果を予想しよう
from pathlib import Path
root = Path('/content/demo_images')
for name in ['vertical','horizontal']:
    (root/name).mkdir(parents=True,exist_ok=True)
print([p.name for p in root.iterdir()])
実行結果vertical と horizontal

なぜそうなる? フォルダ名が分類の種類を表します。ノートブックでは自動生成した小さな画像を入れます。

02 / GO ONE STEP FURTHER

読み込む前に点検

クラス数と各クラスの枚数を数え、数件を目で確認してから学習へ進みます。

print({p.name:len(list(p.glob('*.png'))) for p in root.iterdir()})
実行結果各フォルダのPNG枚数

ここに注目 今は空なので0枚です。ノートブックの次のセルで画像を生成します。

03 / YOUR TURN

予想して、理由を話そう

答えを選んで、説明を確かめよう。外れても発見が一つ増えるよ。

片方だけ青背景の写真で学習したら?

答えを選ぶと理由が表示されます。

04 / TRY ON COLAB

Colabで試してみよう

コードの実行はColaboratoryの実行環境で行います。まずノートブックを保存し、Colabで「ファイル → ノートブックをアップロード」から開いてください。上から順に実行し、最後に値を変えてみましょう。

保存ボタンを押しても画面は切り替わりません。通常はブラウザの「ダウンロード」フォルダに .ipynb が保存されます。見つからない場合はダウンロード履歴を確認してください。Colabの実習は小さな例から始められます。

COFFEE BREAK

身近な技術とつなげてみよう

AI先生

AI先生:画像を集める作業は『撮るだけ』ではないんだ。ラベルを確かめる人の仕事が品質を決めるよ。

KEY TERMS

この回の重要な用語

本文で出会った言葉を、ここで意味と一緒に振り返ろう。上の「ことばの窓」からも説明を開けるよ。

ImageFolder
クラス名のフォルダから画像とラベルを読み込むtorchvisionのデータセットです。
ラベリング
データへ正解の種類を付ける作業です。
データ漏洩
テスト用の情報が学習に混ざり、評価が実力以上になることです。