teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

d

2018/12/21 07:25

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,11 +1,33 @@
1
1
  教師あり学習にはラベルデータが必要です。
2
2
 
3
- 1、ゴミ2、礫3した場合、
3
+ ## 1. そうでない画像に分ける。
4
- 各行が <画像ファイル名> <クラスID> であるテキストファイルを作成するといいと思います。例えば、`1.jpg 1` であれば、画像`1.jpg` のクラスは1、つまり海であることを意味します。
5
4
 
5
+ 以下のディレクトリ構造を用意する。
6
+
7
+ dataset
8
+ -- positive: 砂の画像を入れるディレクトリ
9
+ -- negative: 砂でない画像を入れるディレクトリ
10
+
11
+ ## 2 フォルダから画像及びラベルを読み込む。
12
+
6
- ```
13
+ ```python
14
+ import glob
7
- 1.jpg 1
15
+ import os
8
- 2.jpg 2
16
+ import numpy as np
9
- 2.jpg 3
17
+ from PIL import Image
18
+
19
+ data, labels = [], []
20
+ label_to_id = {name: i for i, name in enumerate(os.listdir('dataset'))}
21
+ print(label_to_id) # {'negative': 0, 'positive': 1}
22
+
23
+ dataset_dir = 'dataset'
24
+ for name in os.listdir('dataset'):
25
+ for img_path in glob.glob(os.path.join(dataset_dir, name, '*.jpg')):
26
+ img = Image.open(img_path)
27
+ img = img.resize((28, 28))
10
- ...
28
+ data.append(np.array(img))
29
+ labels.append(label_to_id[name])
30
+
31
+ data = np.array(data)
32
+ labels = np.array(labels)
11
33
  ```