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

回答編集履歴

3

一部修正

2021/03/04 23:20

投稿

toast-uz
toast-uz

スコア3266

answer CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  なぜ、わざわざ64×64にリサイズしてから8×8に素朴な計算で縮小させているのか、理由が分かりません。
16
16
 
17
- また、**なぜ2乗平均をしているのかも理由はわかりません**。上記のように**単純に255から引くだけでよい**と思います。「2乗平均」処理をすることで、画素の明るさが偏ってしまっています。そのため、以降の処理で本来は不要な「正規化処理」をするはめになってしまっています。
17
+ また、**なぜ2乗平均をしているのかも理由はわかりません**。上記のように**単純に255から引くだけでよい**と思います。「2乗平均」処理をすることで、画素の明るさが偏ってしまっています。そのため、以降の処理で本来は不要な「正規化処理」をするはめになってしまっています(通常、画像の正規化は単純に255で割るだけです)
18
18
 
19
19
  参考: [輝度反転](https://genetaka.hatenablog.com/entry/2019/11/03/164150)
20
20
 

2

補足追記

2021/03/04 23:20

投稿

toast-uz
toast-uz

スコア3266

answer CHANGED
@@ -16,6 +16,8 @@
16
16
 
17
17
  また、**なぜ2乗平均をしているのかも理由はわかりません**。上記のように**単純に255から引くだけでよい**と思います。「2乗平均」処理をすることで、画素の明るさが偏ってしまっています。そのため、以降の処理で本来は不要な「正規化処理」をするはめになってしまっています。
18
18
 
19
+ 参考: [輝度反転](https://genetaka.hatenablog.com/entry/2019/11/03/164150)
20
+
19
21
  なお、蛇足ですが、正しい意味での「2乗平均」になっていないようです。
20
22
 
21
23
  `bright = 255 - crop.mean()**2 / 255 # 平均した結果を2乗してしまっています`

1

一部修正

2021/03/04 23:16

投稿

toast-uz
toast-uz

スコア3266

answer CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  > 1)コメントアウトの文章の意味
4
4
 
5
- 教師データにしているsklearnのload_digitsがサイズ8×8なので、一度64×64にした画像データを、再度8×8に縮小しています。64×64の画像には「小さな8×8画像」が8×8個あると思います(8ばかりでわかりにくいですが)。その「小さな8×8画像」(8×8個)それぞれを「1画素に縮小される範囲」と呼んで、1画素に縮小しています。結果として、縮小された1画素が8×8個になります。
5
+ 教師データにしているsklearnのload_digitsがサイズ8×8なので、一度64×64にした画像データを、再度8×8に縮小しています。64×64の画像には「小さな8×8画像」が8×8個あます(8ばかりでわかりにくいですが)。その「小さな8×8画像」(8×8個)それぞれを「1画素に縮小される範囲」と呼んで、1画素に縮小しています。結果として、縮小された1画素が8×8個になります。
6
6
 
7
7
  文章の意味はこのとおりですが、以下で示すように、**やっていることの意味はわかりません。**
8
8
 
9
9
  > 2)cropしてbrightにx,yでfor文で回して配列を作っている箇所
10
10
 
11
- これ**全体的に全く意味がないことをやっている**と私は思います。要は8×8の画像にして白黒反転させたいだけなので、以下のように記載することで充分です。**ループ処理は一切不要**です。
11
+ これ**全体的に全く意味がないことをやっている**と私は思います。要は8×8の画像にして白黒反転させたいだけなので、以下のように記載することで充分です。x,yの**ループ処理は一切不要**です。
12
12
 
13
13
  `new_resize_img = 255 - np.array(img.resize((8, 8)))`
14
14