回答編集履歴

1

d

2018/12/21 07:25

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -2,20 +2,64 @@
2
2
 
3
3
 
4
4
 
5
- 1、ゴミ2、礫3した場合、
5
+ ## 1. そうでない画像に分ける。
6
-
7
- 各行が <画像ファイル名> <クラスID> であるテキストファイルを作成するといいと思います。例えば、`1.jpg 1` であれば、画像`1.jpg` のクラスは1、つまり海であることを意味します。
8
6
 
9
7
 
10
8
 
11
- ```
9
+ 以下のディレクトリ構造を用意する。
12
10
 
13
- 1.jpg 1
14
11
 
15
- 2.jpg 2
16
12
 
17
- 2.jpg 3
13
+ dataset
18
14
 
15
+ -- positive: 砂の画像を入れるディレクトリ
16
+
17
+ -- negative: 砂でない画像を入れるディレクトリ
18
+
19
+
20
+
21
+ ## 2 フォルダから画像及びラベルを読み込む。
22
+
23
+
24
+
19
- ...
25
+ ```python
26
+
27
+ import glob
28
+
29
+ import os
30
+
31
+ import numpy as np
32
+
33
+ from PIL import Image
34
+
35
+
36
+
37
+ data, labels = [], []
38
+
39
+ label_to_id = {name: i for i, name in enumerate(os.listdir('dataset'))}
40
+
41
+ print(label_to_id) # {'negative': 0, 'positive': 1}
42
+
43
+
44
+
45
+ dataset_dir = 'dataset'
46
+
47
+ for name in os.listdir('dataset'):
48
+
49
+ for img_path in glob.glob(os.path.join(dataset_dir, name, '*.jpg')):
50
+
51
+ img = Image.open(img_path)
52
+
53
+ img = img.resize((28, 28))
54
+
55
+ data.append(np.array(img))
56
+
57
+ labels.append(label_to_id[name])
58
+
59
+
60
+
61
+ data = np.array(data)
62
+
63
+ labels = np.array(labels)
20
64
 
21
65
  ```