質問編集履歴

7

書式変更

2019/10/18 06:43

投稿

hglkmnlkygmnl
hglkmnlkygmnl

スコア6

test CHANGED
@@ -1 +1 @@
1
- ksncdsvnkdsnvodnv
1
+ python 画像処理
test CHANGED
@@ -1 +1,227 @@
1
+ ```このコードとほか3つのファイルで機械学習を行います。
2
+
3
+
4
+
5
+ import numpy as np
6
+
7
+ import pandas as pd
8
+
9
+ import cv2
10
+
11
+ from chainer.datasets import tuple_dataset
12
+
13
+ from random import getrandbits
14
+
15
+
16
+
17
+ #学習に関する基本情報の定義
18
+
19
+ NUM_SHAPE = 48 #画像一辺の長さ
20
+
21
+ TRAIN_DATA_SIZE_MAG = 2 #水増しで元のデータサイズの何倍の量まで増やすか
22
+
23
+
24
+
25
+
26
+
27
+ #Csvファイルから画像とラベルを読み込む
28
+
29
+ def dataFromCsv(csvfile):
30
+
31
+
32
+
33
+ data = pd.read_csv(csvfile,delimiter=',')
34
+
35
+
36
+
37
+ train_data = data[data['Usage']=='Training']
38
+
39
+ publictest_data = data[data['Usage']=='PublicTest']
40
+
41
+ privatetest_data = data[data['Usage']=='PrivateTest']
42
+
43
+
44
+
45
+ #1行のデータを画像のカタチにする(画像枚数、1、縦、横)
46
+
47
+ train_x = pixelsToArray_x(train_data)
48
+
49
+ publictest_x = pixelsToArray_x(publictest_data)
50
+
51
+ privatetest_x = pixelsToArray_x(privatetest_data)
52
+
53
+
54
+
55
+ #ラベルは["neutral","happiness","surprise","sadness","anger","disgust","fear","contempt","unknown,NA"]
56
+
57
+ #NA以外をyに入れる
58
+
59
+ #各画像へのラベルは合計10になるので、10で割って0-1にする
60
+
61
+ train_y = np.array(train_data.iloc[:,2:11],dtype=np.float32)/10
62
+
63
+ publictest_y = np.array(publictest_data.iloc[:,2:11],dtype=np.float32)/10
64
+
65
+ privatetest_y = np.array(privatetest_data.iloc[:,2:11],dtype=np.float32)/10
66
+
67
+
68
+
69
+ #水増し
70
+
71
+ train_x,train_y = augmentation(train_x,train_y)
72
+
73
+
74
+
75
+ #tuple化
76
+
77
+ train = tuple_dataset.TupleDataset(train_x,train_y)
78
+
79
+ publictest = tuple_dataset.TupleDataset(publictest_x,publictest_y)
80
+
81
+ privatetest = tuple_dataset.TupleDataset(privatetest_x,privatetest_y)
82
+
83
+
84
+
85
+ return train,publictest,privatetest
86
+
87
+
88
+
89
+
90
+
91
+ #水増し(holizontal Flip,Scale augmentation)
92
+
93
+ def augmentation(x_array,y_array,train_data_size_mag = TRAIN_DATA_SIZE_MAG):
94
+
95
+
96
+
97
+ #データ変換の処理4つ
98
+
99
+ #関数が適用されるかはランダム
100
+
101
+ def normalization(img):
102
+
103
+ return (img - np.mean(img))/np.std(img)
104
+
105
+
106
+
107
+ def gausianNoise(img):
108
+
109
+ MEAN = 0
110
+
111
+ SIGMA = 15
112
+
113
+
114
+
115
+ gaussfilter = np.random.normal(MEAN,SIGMA,(img.shape))
116
+
117
+ return img + gaussfilter
118
+
119
+
120
+
121
+ def holizontalFlip(img):
122
+
123
+ return img[:,::-1]
124
+
125
+
126
+
127
+ def scaleAugmentation(img):
128
+
129
+ SCALE_MIN = 50
130
+
131
+ SCALE_MAX = 80
132
+
133
+
134
+
135
+ #拡大処理、入力された画像サイズ48*48に対して、50*50~80*80まで拡大
136
+
137
+ SCALE_SIZE = np.random.randint(SCALE_MIN,SCALE_MAX)
138
+
139
+
140
+
141
+ #リサイズ
142
+
143
+ scale_img = cv2.resize(img,(SCALE_SIZE,SCALE_SIZE))
144
+
145
+
146
+
147
+ top = np.random.randint(0,SCALE_SIZE-NUM_SHAPE)
148
+
149
+ left = np.random.randint(0,SCALE_SIZE-NUM_SHAPE)
150
+
151
+ bottom = top + NUM_SHAPE
152
+
153
+ right = left + NUM_SHAPE
154
+
155
+
156
+
157
+ return scale_img[top:bottom,left:right]
158
+
159
+
160
+
161
+
162
+
1
- esjnhyrnjewgetjhtrymkjytdkmhbtmbmdbytjrytjsrtwjt
163
+ def activateAugmentFforArray(f,x_array,activateP):
164
+
165
+
166
+
167
+ #変換用関数fを画像に適用させるかどうかをランダムに決める
168
+
169
+ def randActivateF(f,img):
170
+
171
+ if np.random.rand()>activateP:
172
+
173
+ return img
174
+
175
+ return f(img)
176
+
177
+
178
+
179
+ imglist = []
180
+
181
+ #x_arrayは[データ数,色数,縦,横]なので2回ループして画像毎の関数を(ランダムに)適用
182
+
183
+ for imgC in x_array:
184
+
185
+ imglist.append([randActivateF(f,img) for img in imgC])
186
+
187
+
188
+
189
+ return np.array(imglist)
190
+
191
+
192
+
193
+ #変換処理対象データをtrain_data_size_mag-1用意(1セットは元の画像にするため-1)
194
+
195
+ changed_x_array = np.concatenate([x_array]*(train_data_size_mag-1),axis=0)
196
+
197
+
198
+
199
+ #変換の種類ごとにactivateAugmentFforArrayを適用して、画像の変換(もしくは無変換)を行う
200
+
201
+ changed_x_array = activateAugmentFforArray(normalization,changed_x_array,0.2)
202
+
203
+ changed_x_array = activateAugmentFforArray(gausianNoise,changed_x_array,0.2)
204
+
205
+ changed_x_array = activateAugmentFforArray(holizontalFlip,changed_x_array,1)
206
+
207
+ changed_x_array = activateAugmentFforArray(scaleAugmentation,changed_x_array,0.2)
208
+
209
+
210
+
211
+ return np.concatenate([x_array,changed_x_array],axis=0).astype(np.float32),np.concatenate([y_array]*train_data_size_mag,axis=0)
212
+
213
+
214
+
215
+ #1行のデータを画像の形にする
216
+
217
+ def pixelsToArray_x(data):
218
+
219
+ np_x = np.array([np.fromstring(image,np.float32,sep=' ')/255 for image in np.array(data['pixels'])])
220
+
221
+ np_x.shape =(np_x.shape[0],1,NUM_SHAPE,NUM_SHAPE)
222
+
223
+ return np_x
224
+
225
+ コード
226
+
227
+ ```

6

書式変更

2019/10/18 06:43

投稿

hglkmnlkygmnl
hglkmnlkygmnl

スコア6

test CHANGED
@@ -1 +1 @@
1
- python 表情推定
1
+ ksncdsvnkdsnvodnv
test CHANGED
@@ -1,279 +1 @@
1
- pythonで表情推定を行っています。
2
-
3
-
4
-
5
- 以下が、エラー内容です。
6
-
7
-
8
-
9
- ---------------------------------------------------------------------------
10
-
11
- ValueError Traceback (most recent call last)
12
-
13
- <ipython-input-55-450eafb27c92> in <module>()
14
-
15
- 30 print("------------------------------")
16
-
17
- 31 if __name__ == "__main__":
18
-
19
- ---> 32 test("/content/drive/My Drive/challenges-in-representation-learning-facial-expression-recognition-challenge/fer2013/myferdata.csv","saved_model/myresnet.npz")
20
-
21
-
22
-
23
- 1 frames
24
-
25
- <ipython-input-50-68efd0820676> in dataFromCsv(csvfile)
26
-
27
- 27 #NA以外をyに入れる
28
-
29
- 28 #各画像へのラベルは合計10になるので、10で割って0-1にする
30
-
31
- ---> 29 train_y = np.array(train_data.iloc[:,2:11],dtype=np.float32)/10
32
-
33
- 30 publictest_y = np.array(publictest_data.iloc[:,2:11],dtype=np.float32)/10
34
-
35
- 31 privatetest_y = np.array(privatetest_data.iloc[:,2:11],dtype=np.float32)/10
36
-
37
-
38
-
39
- ValueError: could not convert string to float: 'Training'
40
-
41
-
42
-
43
- ------------------------------------------------------------------------
44
-
45
-
46
-
47
-
48
-
49
- ```python
50
-
51
- import numpy as np
52
-
53
- import pandas as pd
54
-
55
- import cv2
56
-
57
- from chainer.datasets import tuple_dataset
58
-
59
- from random import getrandbits
60
-
61
-
62
-
63
- #学習に関する基本情報の定義
64
-
65
- NUM_SHAPE = 48 #画像一辺の長さ
66
-
67
- TRAIN_DATA_SIZE_MAG = 2 #水増しで元のデータサイズの何倍の量まで増やすか
68
-
69
-
70
-
71
-
72
-
73
- #Csvファイルから画像とラベルを読み込む
74
-
75
- def dataFromCsv(csvfile):
76
-
77
-
78
-
79
- data = pd.read_csv(csvfile,delimiter=',')
80
-
81
-
82
-
83
- train_data = data[data['Usage']=='Training']
84
-
85
- publictest_data = data[data['Usage']=='PublicTest']
86
-
87
- privatetest_data = data[data['Usage']=='PrivateTest']
88
-
89
-
90
-
91
- #1行のデータを画像のカタチにする(画像枚数、1、縦、横)
92
-
93
- train_x = pixelsToArray_x(train_data)
94
-
95
- publictest_x = pixelsToArray_x(publictest_data)
96
-
97
- privatetest_x = pixelsToArray_x(privatetest_data)
98
-
99
-
100
-
101
- ["neutral","happiness","surprise","sadness","anger","disgust","fear","contempt","unknown,NA"]
102
-
103
-
104
-
105
- #NA以外をyに入れる
106
-
107
- #各画像へのラベルは合計10になるので、10で割って0-1にする
108
-
109
-
110
-
111
- train_y = np.array(train_data.iloc[:,2:11],dtype=np.float32)/10
112
-
113
- publictest_y = np.array(publictest_data.iloc[:,2:11],dtype=np.float32)/10
114
-
115
- privatetest_y = np.array(privatetest_data.iloc[:,2:11],dtype=np.float32)/10
116
-
117
-
118
-
119
- #水増し
120
-
121
- train_x,train_y = augmentation(train_x,train_y)
122
-
123
-
124
-
125
- #tuple化
126
-
127
- train = tuple_dataset.TupleDataset(train_x,train_y)
128
-
129
- publictest = tuple_dataset.TupleDataset(publictest_x,publictest_y)
130
-
131
- privatetest = tuple_dataset.TupleDataset(privatetest_x,privatetest_y)
132
-
133
-
134
-
135
- return train,publictest,privatetest
136
-
137
-
138
-
139
-
140
-
141
- #水増し(holizontal Flip,Scale augmentation)
142
-
143
- def augmentation(x_array,y_array,train_data_size_mag = TRAIN_DATA_SIZE_MAG):
144
-
145
-
146
-
147
- #データ変換の処理4つ
148
-
149
- #関数が適用されるかはランダム
150
-
151
- def normalization(img):
152
-
153
- return (img - np.mean(img))/np.std(img)
154
-
155
-
156
-
157
- def gausianNoise(img):
158
-
159
- MEAN = 0
160
-
161
- SIGMA = 15
162
-
163
-
164
-
165
- gaussfilter = np.random.normal(MEAN,SIGMA,(img.shape))
166
-
167
- return img + gaussfilter
168
-
169
-
170
-
171
- def holizontalFlip(img):
172
-
173
- return img[:,::-1]
174
-
175
-
176
-
177
- def scaleAugmentation(img):
178
-
179
- SCALE_MIN = 50
180
-
181
- SCALE_MAX = 80
182
-
183
-
184
-
185
- #拡大処理、入力された画像サイズ48*48に対して、50*50~80*80まで拡大
186
-
187
- SCALE_SIZE = np.random.randint(SCALE_MIN,SCALE_MAX)
188
-
189
-
190
-
191
- #リサイズ
192
-
193
- scale_img = cv2.resize(img,(SCALE_SIZE,SCALE_SIZE))
194
-
195
-
196
-
197
- top = np.random.randint(0,SCALE_SIZE-NUM_SHAPE)
198
-
199
- left = np.random.randint(0,SCALE_SIZE-NUM_SHAPE)
200
-
201
- bottom = top + NUM_SHAPE
202
-
203
- right = left + NUM_SHAPE
204
-
205
-
206
-
207
- return scale_img[top:bottom,left:right]
208
-
209
-
210
-
211
-
212
-
213
- def activateAugmentFforArray(f,x_array,activateP):
1
+ esjnhyrnjewgetjhtrymkjytdkmhbtmbmdbytjrytjsrtwjt
214
-
215
-
216
-
217
- #変換用関数fを画像に適用させるかどうかをランダムに決める
218
-
219
- def randActivateF(f,img):
220
-
221
- if np.random.rand()>activateP:
222
-
223
- return img
224
-
225
- return f(img)
226
-
227
-
228
-
229
- imglist = []
230
-
231
- #x_arrayは[データ数,色数,縦,横]なので2回ループして画像毎の関数を(ランダムに)適用
232
-
233
- for imgC in x_array:
234
-
235
- imglist.append([randActivateF(f,img) for img in imgC])
236
-
237
-
238
-
239
- return np.array(imglist)
240
-
241
-
242
-
243
- #変換処理対象データをtrain_data_size_mag-1用意(1セットは元の画像にするため-1)
244
-
245
- changed_x_array = np.concatenate([x_array]*(train_data_size_mag-1),axis=0)
246
-
247
-
248
-
249
- #変換の種類ごとにactivateAugmentFforArrayを適用して、画像の変換(もしくは無変換)を行う
250
-
251
- changed_x_array = activateAugmentFforArray(normalization,changed_x_array,0.2)
252
-
253
- changed_x_array = activateAugmentFforArray(gausianNoise,changed_x_array,0.2)
254
-
255
- changed_x_array = activateAugmentFforArray(holizontalFlip,changed_x_array,1)
256
-
257
- changed_x_array = activateAugmentFforArray(scaleAugmentation,changed_x_array,0.2)
258
-
259
-
260
-
261
- return np.concatenate([x_array,changed_x_array],axis=0).astype(np.float32),np.concatenate([y_array]*train_data_size_mag,axis=0)
262
-
263
-
264
-
265
- #1行のデータを画像の形にする
266
-
267
- def pixelsToArray_x(data):
268
-
269
- np_x = np.array([np.fromstring(image,np.float32,sep=' ')/255 for image in np.array(data['pixels'])])
270
-
271
- np_x.shape =(np_x.shape[0],1,NUM_SHAPE,NUM_SHAPE)
272
-
273
- return np_x
274
-
275
-
276
-
277
- ```
278
-
279
- ![csvファイル](99b9d5d1c8959bba7a06ce252a6fa351.png)

5

書式改善

2019/10/18 05:31

投稿

hglkmnlkygmnl
hglkmnlkygmnl

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  以下が、エラー内容です。
6
6
 
7
+
8
+
7
9
  ---------------------------------------------------------------------------
8
10
 
9
11
  ValueError Traceback (most recent call last)
@@ -273,3 +275,5 @@
273
275
 
274
276
 
275
277
  ```
278
+
279
+ ![csvファイル](99b9d5d1c8959bba7a06ce252a6fa351.png)

4

書式改善

2019/10/03 14:23

投稿

hglkmnlkygmnl
hglkmnlkygmnl

スコア6

test CHANGED
File without changes
test CHANGED
@@ -42,9 +42,9 @@
42
42
 
43
43
 
44
44
 
45
+
46
+
45
- 問題のコードを以下に示します。
47
+ ```python
46
-
47
- ------------------------------------------------------------------------
48
48
 
49
49
  import numpy as np
50
50
 
@@ -58,7 +58,7 @@
58
58
 
59
59
 
60
60
 
61
- 学習に関する基本情報の定義
61
+ #学習に関する基本情報の定義
62
62
 
63
63
  NUM_SHAPE = 48 #画像一辺の長さ
64
64
 
@@ -68,7 +68,7 @@
68
68
 
69
69
 
70
70
 
71
- Csvファイルから画像とラベルを読み込む
71
+ #Csvファイルから画像とラベルを読み込む
72
72
 
73
73
  def dataFromCsv(csvfile):
74
74
 
@@ -86,7 +86,7 @@
86
86
 
87
87
 
88
88
 
89
- 1行のデータを画像のカタチにする(画像枚数、1、縦、横)
89
+ #1行のデータを画像のカタチにする(画像枚数、1、縦、横)
90
90
 
91
91
  train_x = pixelsToArray_x(train_data)
92
92
 
@@ -100,9 +100,9 @@
100
100
 
101
101
 
102
102
 
103
- NA以外をyに入れる
103
+ #NA以外をyに入れる
104
-
104
+
105
- 各画像へのラベルは合計10になるので、10で割って0-1にする
105
+ #各画像へのラベルは合計10になるので、10で割って0-1にする
106
106
 
107
107
 
108
108
 
@@ -114,13 +114,13 @@
114
114
 
115
115
 
116
116
 
117
- 水増し
117
+ #水増し
118
118
 
119
119
  train_x,train_y = augmentation(train_x,train_y)
120
120
 
121
121
 
122
122
 
123
- tuple化
123
+ #tuple化
124
124
 
125
125
  train = tuple_dataset.TupleDataset(train_x,train_y)
126
126
 
@@ -136,15 +136,15 @@
136
136
 
137
137
 
138
138
 
139
- 水増し(holizontal Flip,Scale augmentation)
139
+ #水増し(holizontal Flip,Scale augmentation)
140
140
 
141
141
  def augmentation(x_array,y_array,train_data_size_mag = TRAIN_DATA_SIZE_MAG):
142
142
 
143
143
 
144
144
 
145
- データ変換の処理4つ
145
+ #データ変換の処理4つ
146
-
146
+
147
- 関数が適用されるかはランダム
147
+ #関数が適用されるかはランダム
148
148
 
149
149
  def normalization(img):
150
150
 
@@ -180,13 +180,13 @@
180
180
 
181
181
 
182
182
 
183
- 拡大処理、入力された画像サイズ48*48に対して、50*50~80*80まで拡大
183
+ #拡大処理、入力された画像サイズ48*48に対して、50*50~80*80まで拡大
184
184
 
185
185
  SCALE_SIZE = np.random.randint(SCALE_MIN,SCALE_MAX)
186
186
 
187
187
 
188
188
 
189
- リサイズ
189
+ #リサイズ
190
190
 
191
191
  scale_img = cv2.resize(img,(SCALE_SIZE,SCALE_SIZE))
192
192
 
@@ -212,7 +212,7 @@
212
212
 
213
213
 
214
214
 
215
- 変換用関数fを画像に適用させるかどうかをランダムに決める
215
+ #変換用関数fを画像に適用させるかどうかをランダムに決める
216
216
 
217
217
  def randActivateF(f,img):
218
218
 
@@ -226,7 +226,7 @@
226
226
 
227
227
  imglist = []
228
228
 
229
- x_arrayは[データ数,色数,縦,横]なので2回ループして画像毎の関数を(ランダムに)適用
229
+ #x_arrayは[データ数,色数,縦,横]なので2回ループして画像毎の関数を(ランダムに)適用
230
230
 
231
231
  for imgC in x_array:
232
232
 
@@ -238,13 +238,13 @@
238
238
 
239
239
 
240
240
 
241
- 変換処理対象データをtrain_data_size_mag-1用意(1セットは元の画像にするため-1)
241
+ #変換処理対象データをtrain_data_size_mag-1用意(1セットは元の画像にするため-1)
242
242
 
243
243
  changed_x_array = np.concatenate([x_array]*(train_data_size_mag-1),axis=0)
244
244
 
245
245
 
246
246
 
247
- 変換の種類ごとにactivateAugmentFforArrayを適用して、画像の変換(もしくは無変換)を行う
247
+ #変換の種類ごとにactivateAugmentFforArrayを適用して、画像の変換(もしくは無変換)を行う
248
248
 
249
249
  changed_x_array = activateAugmentFforArray(normalization,changed_x_array,0.2)
250
250
 
@@ -260,7 +260,7 @@
260
260
 
261
261
 
262
262
 
263
- 1行のデータを画像の形にする
263
+ #1行のデータを画像の形にする
264
264
 
265
265
  def pixelsToArray_x(data):
266
266
 
@@ -272,4 +272,4 @@
272
272
 
273
273
 
274
274
 
275
- --------------------------------------------------------------------------
275
+ ```

3

書式変更

2019/10/03 14:12

投稿

hglkmnlkygmnl
hglkmnlkygmnl

スコア6

test CHANGED
File without changes
test CHANGED
@@ -96,10 +96,10 @@
96
96
 
97
97
 
98
98
 
99
- ラベルは
100
-
101
99
  ["neutral","happiness","surprise","sadness","anger","disgust","fear","contempt","unknown,NA"]
102
100
 
101
+
102
+
103
103
  NA以外をyに入れる
104
104
 
105
105
  各画像へのラベルは合計10になるので、10で割って0-1にする

2

書式変更

2019/10/03 04:31

投稿

hglkmnlkygmnl
hglkmnlkygmnl

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,8 +4,6 @@
4
4
 
5
5
  以下が、エラー内容です。
6
6
 
7
-
8
-
9
7
  ---------------------------------------------------------------------------
10
8
 
11
9
  ValueError Traceback (most recent call last)
@@ -38,12 +36,16 @@
38
36
 
39
37
  ValueError: could not convert string to float: 'Training'
40
38
 
39
+
40
+
41
41
  ------------------------------------------------------------------------
42
42
 
43
43
 
44
44
 
45
45
  問題のコードを以下に示します。
46
46
 
47
+ ------------------------------------------------------------------------
48
+
47
49
  import numpy as np
48
50
 
49
51
  import pandas as pd
@@ -267,3 +269,7 @@
267
269
  np_x.shape =(np_x.shape[0],1,NUM_SHAPE,NUM_SHAPE)
268
270
 
269
271
  return np_x
272
+
273
+
274
+
275
+ --------------------------------------------------------------------------

1

書式改善

2019/10/03 04:24

投稿

hglkmnlkygmnl
hglkmnlkygmnl

スコア6

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  ValueError: could not convert string to float: 'Training'
40
40
 
41
- ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
41
+ ------------------------------------------------------------------------
42
42
 
43
43
 
44
44
 
@@ -56,7 +56,7 @@
56
56
 
57
57
 
58
58
 
59
- #学習に関する基本情報の定義
59
+ 学習に関する基本情報の定義
60
60
 
61
61
  NUM_SHAPE = 48 #画像一辺の長さ
62
62
 
@@ -66,7 +66,7 @@
66
66
 
67
67
 
68
68
 
69
- #Csvファイルから画像とラベルを読み込む
69
+ Csvファイルから画像とラベルを読み込む
70
70
 
71
71
  def dataFromCsv(csvfile):
72
72
 
@@ -84,7 +84,7 @@
84
84
 
85
85
 
86
86
 
87
- #1行のデータを画像のカタチにする(画像枚数、1、縦、横)
87
+ 1行のデータを画像のカタチにする(画像枚数、1、縦、横)
88
88
 
89
89
  train_x = pixelsToArray_x(train_data)
90
90
 
@@ -94,11 +94,15 @@
94
94
 
95
95
 
96
96
 
97
+ ラベルは
98
+
97
- #ラベルは["neutral","happiness","surprise","sadness","anger","disgust","fear","contempt","unknown,NA"]
99
+ ["neutral","happiness","surprise","sadness","anger","disgust","fear","contempt","unknown,NA"]
98
-
100
+
99
- #NA以外をyに入れる
101
+ NA以外をyに入れる
100
-
102
+
101
- #各画像へのラベルは合計10になるので、10で割って0-1にする
103
+ 各画像へのラベルは合計10になるので、10で割って0-1にする
104
+
105
+
102
106
 
103
107
  train_y = np.array(train_data.iloc[:,2:11],dtype=np.float32)/10
104
108
 
@@ -108,13 +112,13 @@
108
112
 
109
113
 
110
114
 
111
- #水増し
115
+ 水増し
112
116
 
113
117
  train_x,train_y = augmentation(train_x,train_y)
114
118
 
115
119
 
116
120
 
117
- #tuple化
121
+ tuple化
118
122
 
119
123
  train = tuple_dataset.TupleDataset(train_x,train_y)
120
124
 
@@ -130,15 +134,15 @@
130
134
 
131
135
 
132
136
 
133
- #水増し(holizontal Flip,Scale augmentation)
137
+ 水増し(holizontal Flip,Scale augmentation)
134
138
 
135
139
  def augmentation(x_array,y_array,train_data_size_mag = TRAIN_DATA_SIZE_MAG):
136
140
 
137
141
 
138
142
 
139
- #データ変換の処理4つ
143
+ データ変換の処理4つ
140
-
144
+
141
- #関数が適用されるかはランダム
145
+ 関数が適用されるかはランダム
142
146
 
143
147
  def normalization(img):
144
148
 
@@ -174,13 +178,13 @@
174
178
 
175
179
 
176
180
 
177
- #拡大処理、入力された画像サイズ48*48に対して、50*50~80*80まで拡大
181
+ 拡大処理、入力された画像サイズ48*48に対して、50*50~80*80まで拡大
178
182
 
179
183
  SCALE_SIZE = np.random.randint(SCALE_MIN,SCALE_MAX)
180
184
 
181
185
 
182
186
 
183
- #リサイズ
187
+ リサイズ
184
188
 
185
189
  scale_img = cv2.resize(img,(SCALE_SIZE,SCALE_SIZE))
186
190
 
@@ -206,7 +210,7 @@
206
210
 
207
211
 
208
212
 
209
- #変換用関数fを画像に適用させるかどうかをランダムに決める
213
+ 変換用関数fを画像に適用させるかどうかをランダムに決める
210
214
 
211
215
  def randActivateF(f,img):
212
216
 
@@ -220,7 +224,7 @@
220
224
 
221
225
  imglist = []
222
226
 
223
- #x_arrayは[データ数,色数,縦,横]なので2回ループして画像毎の関数を(ランダムに)適用
227
+ x_arrayは[データ数,色数,縦,横]なので2回ループして画像毎の関数を(ランダムに)適用
224
228
 
225
229
  for imgC in x_array:
226
230
 
@@ -232,13 +236,13 @@
232
236
 
233
237
 
234
238
 
235
- #変換処理対象データをtrain_data_size_mag-1用意(1セットは元の画像にするため-1)
239
+ 変換処理対象データをtrain_data_size_mag-1用意(1セットは元の画像にするため-1)
236
240
 
237
241
  changed_x_array = np.concatenate([x_array]*(train_data_size_mag-1),axis=0)
238
242
 
239
243
 
240
244
 
241
- #変換の種類ごとにactivateAugmentFforArrayを適用して、画像の変換(もしくは無変換)を行う
245
+ 変換の種類ごとにactivateAugmentFforArrayを適用して、画像の変換(もしくは無変換)を行う
242
246
 
243
247
  changed_x_array = activateAugmentFforArray(normalization,changed_x_array,0.2)
244
248
 
@@ -254,7 +258,7 @@
254
258
 
255
259
 
256
260
 
257
- #1行のデータを画像の形にする
261
+ 1行のデータを画像の形にする
258
262
 
259
263
  def pixelsToArray_x(data):
260
264