オートエンコーダによるカラリゼーションの複雑さについて

東京電機大学 工学部 情報通信工学科
ネットワークシステム研究室
担当教員 坂本 直志
17ec013 猪瀬琢磨

目次

1.はじめに

近年のニューラルネットワークを使ったディープラーニングの技術の進展は、様々な分野で応用されている。ディープラーニングを応用した技術は画像の分野でも応用され、画像の識別や白黒画像をカラー画像へと変換させるカラリゼーションでも使用されている。一方、それらの技術は複雑な構造のネットワークを使用しているのが主である。そこで本研究は全結合ニューラルネットワークおよび深層ニューラルネットワーク構造を利用して、どのような構造でカラリゼーションが実現できるかを模索し、考察することとする。

2.準備

2.1カラリゼーションと既存の研究の説明[2]

カラリゼーションとは、モノクロの画像や動画などに対して、コンピュータ技術を用いて色彩をつける技法である。現在までに複数の手段がすでに確立されており、2002年のWelshらの研究[3]や、2004年のLevinらの研究などによる手法[4]が存在する。Levinの手法は人間が画像へ色差情報を一部与え、それをもとにして白黒画像のカラー化を行う。 Welshの手法は、参考画像の画素の輝度地とその統計量に注目して関係関数を作り、目的の白黒画像のカラー化を行う。これをもとにしてニューラルネットワークを適用した小林らの手法[5]も開発されており、ニューラルネットワークを用いるのがカラリゼーションにおける近年の主流になっている。ニューラルネットワークをカラリゼーションに適応した代表例は、2016年の飯塚らの研究[6]があげられる。この研究では、入力画像の大特徴と局所特徴を考慮した畳み込みディープニューラルネットワークを利用した手法の開発が行われた。これにより、入寮区画像の全体の特徴と、局所的な部分の特徴の両方を学習することができる。また、入力画像の画素数が固定されず、どのような画素数の画像でもカラリゼーションが行われるのが特徴である。本研究でも近年の主流に従ってニューラルネットワークを用いた白黒画像のカラリゼーションの検討を行う。

2.2.ニューラルネットワーク

 ニューラルネットワークとは、人間のニューロンを数理モデル化したものの組み合わせのことである。ニューラルネットワークの例を以下に示す。


図1 ニューラルネットワークのモデル例

図1もモデルでは、x1~xnは入力、w1~wnはネットワークの重みと呼ばれる 値で、各ニューロンの結合の強さを表している。yは出力となっている。出 力される値は、バイアスθを加えて次のように表される。

y=f(x_1 ω_1+⋯+x_n ω_n+θ)

Fは活性化関数と呼ばれる非線形の関数である。本研究ではReLU関数とSigmoid関数、tanh関数を活性化関数として使用する。ReLU関数とsigmoid関数は以下のように表される。

ReLU関数
 f(x)={_(x (x≥0))^(0 (x<0))
Sigmoid関数
 f(x)=1/(1+e^(-x) )
Tanh関数
 f(x)=(e^x-e^(-x))/(e^x+e^(-x) )

図1で示したようなニューロン数を多層に重ねることでニューラルネットワークは構成されている。その例を以下に示す。


図2 隠れ層2層のニューラルネットワーク

ニューラルネットワークは、入力層、隠れ層、出力層から構成されている。隠れ層が多いニューラルネットワークは特別に「深層(ディープ)ニューラルネットワーク」と呼ばれている。また、図2のように隣接する層のノードが全てつながっているニューラルネットワークは全結合ニューラルネットワークと呼ばれる。ニューラルネットワークの学習は、出力と正解データとなる教師画像を比較し、その誤差をもとにニューラルネットワークの重み、バイアスの値を修正していくことで正解画像に近づけさせていく。

2.3.畳み込みニューラルネットワーク

畳み込みニューラルネットワーク(Convolutional Neural Network : CNN)とは、AIが画像分析を行うための学習手法の一つである。CNNは畳み込み層とプーリング層という2つの層を含む構造の順伝播型のネットワークである。畳み込み層では、入力される画像データからエッジなどの特徴を抽出する。プーリング層は特徴の空間サイズを縮小する役割がある。データの次元削減を行い、計算に必要な処理コストを削減する役割をもつ。今回の実験ではマックスプーリイング法を採用する。マックスおうーリング層で行われる処理は、入力に対して適用されたカーネル内の画素のうち最大値を取得する処理である。

2.4.オートエンコーダ

オートエンコーダとは、深層ニューラルネットワーク構造の一種であり、入力データのノイズ除去やデータの可視化のための次元削減などで活躍しているものがある。一般的な全結合ニューラルネットワークを利用したオートエンコーダの構造を以下の図に示す。


図3 オートエンコーダのモデル例

図3のモデルは隠れ層が1層のモデルで、4つの入力を2つへ圧縮(エンコード)し、再び4つの出力へと展開(デコード)している。このようにオートンコーダは次元を入力データの次元を削減してより小さなものとするエンコーダ、削減された次元を元に戻すデコーダの二つの部分から構成されている。実際の根とワークモデルでは隠れ層が3層以上のモデル等も用いられる。

2.5.畳み込みオートエンコーダ

畳み込みオートエンコーダとは、畳み込みニューラルネットワークを元にオートエンコーダへ利用したものである。エンコーダ部分には畳み込み層、プーリング層を用いる。今回の実験では、デコーダ部分にはアップサンプリング層を用いる。アップサンプリング層は、プーリング層で削減された次元を復元する働きをもっている。デコーダ部分で用いることで、エンコーダ部分で圧縮された次元を復元することができる。

3.実験

3.1.実験環境・データセット

表1 実験環境

OSWindows10
CPUIntel(R)Core(TM) i5-7200U CPU@ 2.50GHz 2.71GHz
メモリ8 GB

表2 ライブラリ環境

言語Python3.8.3
機械学習Keras2.3.1(TensorFlow2.2.0)
画像処理OpenCV4.1.1
行列計算NumPy1.16.4

データセットは、MNISTと、CIFAR-10データセットを使用し、それぞれ実験を行う。  CIFAR-10は10種類のクラス分けされた5万枚の訓練データと1万枚のテストデータが幅32×高さ32ピクセルのデータセットである。

3.2.MNISTを使用した色付け

まずは、CIFAR-10のような複雑な画像ではなく、MNISTに指定した色付けをして、学習させてみる。MNISTへの色付けは1から9まで、それぞれ順番に赤、青、緑、紺、黄色、オレンジ、グリーンイエロー、ピンク、茶色と色付けをした。損失関数を用いることでモデルの精度、学習の進み具合が判断できる。今回はval_lossといったどれだけ正しい結果を出力できたかを表すもので比較していく。値が小さいほど正しい結果を出力し、値が大きいほど正しい結果が出せていないと判断をすることができる。

3.2.1.全結合2層ニューラルネットワークの色付け

図4に示した設定のニューラルネットワークに対して、mnistというデータを用いて、100エポックまで学習を行った。Mnistとは、手書き数字画像6万枚と、テスト画像1万枚を集めた画像データセットである。四角内の数字はノード数を表している。


図4 全結合層2層のニューラルネットワーク

この学習済みのニューラルネットワークに対して、ランダムな10枚のmnistの白黒画像の検証用の入力を与え、出力とval_lossのグラフを観測した。

  1. まず、学習の条件は画素数28×28、バッチサイズが256であり、データ 6万枚100エポックでこの条件を満たした。
  2. 検証用データに対して、得られた出力結果を図5、val_lossのグラフを図6に示す。出力結果の画像は上の段が入力された白黒画像、下の段がネットワークにより出力されたカラー画像を示す。val_lossのグラフは縦軸がval_loss、横軸はエポック数である。


    図5 全結合層2層の出力


    図6 全結合層2層のval_lossグラフ

  3. 出力画像の結果から、5や2などはっきりと色付けができているものもあ るが色が薄れているものや、9のように黒くなって一部分うまく表示できて いない数字もある。全体としては、人間の目で見る限りは色が薄れていると ころもあるが、大体の画像で正常に色付けされていることが分かる。得られ たグラフの結果から、最初の20エポック目まではval_lossの値が減少してい るが、40エポックからは値の変動があまりなくなっている。100エポックの 学習を行ってval_lossの値は約0.07である。

3.2.2.全結合3層ニューラルネットワークの色付け

前実験の構造に中間層に1層、ノード数36の層を加えて実験を行う。 つまり、図7に示した設定のニューラルネットワークに対して、mnistというデータを用いて、100エポックまで学習を行った。Mnistの数字につけた色も同様にして実験を行った。


図7 全結合層3層の構造

この学習済みのニューラルネットワークに対して、ランダムな10枚のmnistの白黒画像の検証用の入力を与え、出力とval_lossのグラフを観測した。

  1. まず、学習の条件は画素数28×28、バッチサイズが256であり、データ6 万枚100エポックでこの条件を満たした。
  2. 検証用データに対して、得られた出力結果を図8、val_lossのグラフを図9に示す。出力結果の画像は上の段が入力された白黒画像、下の段がネットワークにより出力されたカラー画像を示す。val_lossのグラフは縦軸がval_loss、横軸はエポック数である。


    図8 全結合層3層の出力


    図9 全結合層3層のval_lossグラフ

  3. 得られた出力の結果から、8はピンクで学習をさせていたが、水色がつ いていることが分かる。左から2番目の9が少し黒くなっている部分はあるが その他は正常に色付けができていることが分かる。全体的にみると、人間の 目で見る限りは色が薄れているところもあるが、大体の画像で正常に色付け されていることが分かる。全結合2層ニューラルネットワークの出力の結果 と比べると、人間の目にはあまり変わりがないようにみえる。得られたグラ フからval_lossの値が20エポックまでは減少していっているが、そこからは 値が変動してないのが分かる。100エポックの学習でval_lossの値は約0.08 であることが分かる。全結合層2層ニューラルネットワークのval_lossグラ フと比べて100エポック目のval_lossの値が0.01ほど大きくなってしまい正 しい結果が得られていないと分かる。

3.2.3.全結合4層ニューラルネットワークの色付け

前実験の構造に中間層に1層、ノード数36の層を加えて実験を行う。 つまり、図10に示した設定のニューラルネットワークに対して、mnistというデータを用いて、100エポックまで学習を行った。Mnistの数字につけた色も同様にして実験を行った。


図10 全結合層4層の構造

この学習済みのニューラルネットワークに対して、ランダムな10枚のmnistの白黒画像の検証用の入力を与え、出力とval_lossのグラフを観測した。

  1. まず、学習の条件は画素数28×28、バッチサイズが256であり、データ6万枚100エポックでこの条件を満たした。
  2. 検証用データに対して、得られた出力結果を図11、val_lossのグラフを図12に示す。出力結果の画像は上の段が入力された白黒画像、下の段がネットワークにより出力されたカラー画像を示す。val_lossのグラフは縦軸がval_loss、横軸はエポック数である。


    図11 全結合層4層の出力


    図12 全結合層4層のval_lossグラフ

  3. 得られた出力の結果から、9には茶色をつけて学習をさせていたが一番 右の9は茶色ではなく緑に近い色がついていると分かる。しかし、9以外の数 字は人間の目で見る限りは大体の画像が正常に色付けされていることが分か る。3.2.1の実験や3.2.2の実験と比べると、3.2.1の実験では学習と違う色 がついてしまう出力はなかったが、3.2.2の実験と3.2.3の実験では間違って カラー化されている出力があることが分かる。得られたval_lossのグラフか ら、val_lossの値が20エポックまでは減少していっているが、そこからは値 が変動してないのが分かる。100エポックの学習でval_lossの値は約0.08で あることが分かる。実験1と比べると、100エポック目のval_lossの値が0.01 ほど大きくなってしまい正しい結果が得られていないと分かる。また3.2.2 の実験と比べると、グラフの値の変化など違いがあまり無いことが分かる。

3.2.4.全結合5層ニューラルネットワークの色付け

前実験の構造に中間層に1層、ノード数36の層を加えて実験を行う。 つまり、図13に示した設定のニューラルネットワークに対して、mnistというデータを用いて、100エポックまで学習を行った。Mnistの数字につけた色も同様にして実験を行った。


図13 全結合層5層の構造

この学習済みのニューラルネットワークに対して、ランダムな10枚のmnistの白黒画像の検証用の入力を与え、出力とval_lossのグラフを観測した。

  1. まず、学習の条件は画素数28×28、バッチサイズが256であり、データ6万枚100エポックでこの条件を満たした。
  2. 検証用データに対して、得られた出力結果を図14、val_lossのグラフを図15に示す。出力結果の画像は上の段が入力された白黒画像、下の段がネットワークにより出力されたカラー画像を示す。val_lossのグラフは縦軸がval_loss、横軸はエポック数である。


    図14 全結合層5層の出力


    図15 全結合層5層のval_lossグラフ

  3. 得られた出力の結果から、右の5は色付けが薄く感じる部分があり、右 の9は少し黄色が混ざっているように見える。全体としては、人間の目で見 る限りは色が薄れているところもあるが、大体の画像で正常に色付けされて いることが分かる。3.2.1の実験から3.2.3の実験までと比較すると、薄い部 分や間違って色がついてしまう数字がそれぞれあり人間の目にはあまり出力 の違いは分からないといえる。得られたval_lossのグラフから、60エポック までは減少されていることが分かるがそこから値が変化していないことが分 かる。100エポック目でのval_lossの値は約0.81ということが分かる。3.2.1 の実験から3.2.3の実験と比べると、100エポック目の値が一番大きく精度が 一番悪いことが分かる。

3.2.5.畳み込みオートエンコーダ2層の色付け

これまでは全結合層のみの構造で実験をしたが、この実験では畳み込みオートエンコーダを使用して実験を行う。図16に示した構造でニューラルネットワークに対して、mnistというデータを用いて、100エポックまで学習を行った。Mnistの数字につけた色も同様にして実験を行った。畳み込み層のノード数は28-14-14-28で、エンコーダ部分とデコーダ部分をつなぐ全結合層のノード数は32である。


図16 畳み込みオートエンコーダ2層の構造

この学習済みのニューラルネットワークに対して、ランダムな10枚のmnistの白黒画像の検証用の入力を与え、出力を観測した。

  1. 1. まず、学習の条件は画素数28×28、バッチサイズが256であり、データ6万枚100エポックでこの条件を満たした。
  2. 検証用データに対して、得られた出力結果を図17、val_lossのグラフを図18に示す。上の段が入力された白黒画像、下の段がネットワークにより出力されたカラー画像を示す。val_lossのグラフは縦軸がval_loss、横軸はエポック数である。


    図17 畳み込みオートエンコーダ2層の出力


    図18 畳み込みオートエンコーダ2層のval_lossグラフ

  3. 得られた出力の結果から、8や一番右の3などで別の色が混じっているの が分かる。その他の数字は人間の目では正常にカラー化できているのが分か る。3.2.1の実験や3.2.3の実験と比べると少し違う色が混じっている部分な どが多いことが分かる。得られた出力のグラフからval_lossは40エポックま では値が減少しているが、そこからは値の変動はないのが分かる。100エポッ ク目のval_lossは約0.075である。この値は3.2.1実験の全結合層2層と比べ ると値は少し大きく精度は劣るとわかる。

3.2.6.畳み込みオートエンコーダ3層の色付け

3.2.5の実験と同様で、畳み込み層とプーリング層を1層増やして実験を行う。つまり、図19に示した設定のニューラルネットワークに対して、mnistというデータを用いて、グラフを見て100エポックまで学習を行った。Mnistの数字につけた色も同様にして実験を行った。ノード数は畳み込み層28-14-7-7-14-28とし、エンコーダ部分とデコーダ部分をつなぐ全結合層のノード数は32である。


図19 畳み込みオートエンコーダ3層の構造

この学習済みのニューラルネットワークに対して、ランダムな10枚のmnistの白黒画像の検証用の入力を与え、出力を観測した。

  1. まず、学習の条件は画素数28×28、バッチサイズが256であり、データ6万枚100エポックでこの条件を満たした。
  2. 検証用データに対して、得られた出力結果を図20、val_lossのグラフを図21に示す。上の段が入力された白黒画像、下の段がネットワークにより出力されたカラー画像を示す。val_lossのグラフは縦軸がval_loss、横軸はエポック数である。


    図20 畳み込みオートエンコーダ3層の出力


    図21 畳み込みオートエンコーダ3層のval_lossグラフ

  3. 3. 得られた出力の結果から、一番右の5など人間の目では、少し薄い部 分はあるが大体の画像がカラー化できていることが分かる。これまでの実験 と比べると、人間の目で見る限りは、違いはあまりないと分かる。得られた グラフから100エポックまでval_lossの値が減少していることが分かる。100 エポック目のval_lossは約0.08である。2.3.5の実験の畳み込みオートエン コーダ2層の値より少し大きくなっているので2.3.3の実験よりは精度が劣っ ていると分かる。

3.2.7.畳み込みオートエンコーダ4層の色付け

3.2.6の実験と同様で、畳み込み層とプーリング層を1層増やして実験を行う。つまり、図22に示した設定のニューラルネットワークに対して、mnistというデータを用いて、グラフを見て100エポックまで学習を行った。Mnistの数字につけた色も同様にして実験を行った。ノード数は畳み込み層28-14-7-4-4-7-14-28とし、エンコーダ部分とデコーダ部分をつなぐ全結合層のノード数は32である。


図22 畳み込みオートエンコーダ4層の構造

この学習済みのニューラルネットワークに対して、ランダムな10枚のmnistの白黒画像の検証用の入力を与え、出力を観測した。

  1. まず、学習の条件は画素数28×28、バッチサイズが256であり、データ6万枚100エポックでこの条件を満たした。
  2. 検証用データに対して、得られた出力結果を図23、val_lossのグラフを図24に示す。上の段が入力された白黒画像、下の段がネットワークにより出力されたカラー画像を示す。val_lossのグラフは縦軸がval_loss、横軸はエポック数である。


    図23 畳み込みオートエンコーダ4層の出力


    図24 畳み込みオートエンコーダ4層のval_lossグラフ

  3. 得られた出力の結果から、3など薄く色付けされているものがあるが人 間の目で見る限りはカラー化できていると分かる。これまでの実験と比べて も、人間の目で見る限りは違いがないと分かる。得られたval_lossのグラフ より、val_lossの値は100エポックまで減少していることが分かる。100エポッ ク目のval_lossの値は約0.9だと分かる。これまでの実験と比較すると100エ ポック目の値が一番大きいので、一番精度が悪いと分かる。

3.2.8.畳み込みオートエンコーダ5層の色付け

3.2.7の実験と同様で、畳み込み層とプーリング層を1層増やして実験を行う。つまり、図25に示した設定のニューラルネットワークに対して、mnistというデータを用いて、グラフを見て100エポックまで学習を行った。Mnistの数字につけた色も同様にして実験を行った。ノード数は畳み込み層28-14-7-4-2-2-4-7-14-28とし、エンコーダ部分とデコーダ部分をつなぐ全結合層のノード数は32である。


図25 畳み込みオートエンコーダ5層の構造

この学習済みのニューラルネットワークに対して、ランダムな10枚のmnistの白黒画像の検証用の入力を与え、出力を観測した。

  1. 1. まず、学習の条件は画素数28×28、バッチサイズが256であり、データ6万枚100エポックでこの条件を満たした。
  2. 検証用データに対して、得られた出力結果を図26、val_lossのグラフを図27に示す。上の段が入力された白黒画像、下の段がネットワークにより出力されたカラー画像を示す。val_lossのグラフは縦軸がval_loss、横軸はエポック数である。


    図26 畳み込みオートエンコーダ5層の出力


    図27 畳み込みオートエンコーダ5層のval_lossグラフ

  3. 得られた出力の結果より、薄く色付けはされているが出力された数字自体が少し歪んで見えることが分かる。これまでの実験と比較しても、出力の数字自体が少し歪んで見えるので一番精度が悪いと分かる。得られたval_lossのグラフから、100エポック目の数字は約0.126と分かる。これまでの実験と比べても、値が一番高いので一番精度が悪いと分かる。
  4. Mnistの色付けの実験を全て比較すると、出力は畳み込みオートエンコーダ5層だけが精度が低くなっていると分かり、ほかの出力を比較してもあまり違いが分からない結果となった。Val_lossのフラフで比較をすると、全結合層では2層で一番精度がよく、畳み込みオートエンコーダでは2層が、一番精度がよかったといえる。全体的に見ればmnistを使用した色付けでは全結合層2層がval_lossの数字が低く精度が一番良かったと分かる。

3.3.Cifar-10を使用した色付け

3.3.1.畳み込みオートエンコーダ2層の色付け

今回の実験では、畳み込みオートエンコーダを用いてCifar10の画像を学習し色付けを行っていく。実験5と同様のデータセット、エポック数で行った。構造は実験5の図16と同じ構造で、ノード数は畳み込み層64-128-128-64とし、エンコーダ部分とデコーダ部分をつなげる全結合層のノード数は512である。

この学習済みのニューラルネットワークに対して、鳥の白黒画像の検証用の入力を与え、出力とlossを観測した。

  1. まず、学習の条件は画素数32×32、バッチサイズが256であり、データ5万枚で実験を行う。
  2. 検証用データはgoogleで自分が集めた鳥の画像10枚を用いる。検証用データに対して、得られた出力結果を図28、lossのグラフを図29に示す。上の段が入力された白黒画像、真ん中の段が正解のカラー画像、下の段がネットワークにより出力されたカラー画像を示す。Lossのグラフは、縦軸がloss、横軸がエポック数である


    図28 畳み込みオートエンコーダ2層の出力


    図29 畳み込みオートエンコーダ2層のloss

  3. 得られた出力の結果から、一番右の画像は、背景の青が少し薄く感じ るが、正確に色付けができていることが分かる。逆に一番左の画像が白黒の ままで色付けができていなことが分かる。他の画像は白や黒の色付けはされ ているが、緑や青などの部分は色付けが正確にされていないと分かる。得ら れたlossのグラフから、約10エポックでlossが減らない状態になってしまい、 100エポック目のlossは約0.56であることが分かる。

3.3.2.畳み込みオートエンコーダ3層の色付け

3.3.1の実験と同様のデータセット、エポック数で行った。構造は図19と同じ構造で、ノード数は畳み込み層64-128-256-256-128-64とし、エンコーダ部分とデコーダ部分をつなげる全結合層のノード数は512である。

この学習済みのニューラルネットワークに対して、鳥の白黒画像の検証用の入力を与え、出力とlossを観測した。

  1. まず、学習の条件は画素数32×32、バッチサイズが256であり、データ5万枚で実験を行う。
  2. 検証用データはgoogleで自分が集めた鳥の画像10枚を用いる。検証用データに対して、得られた出力結果を図30、lossのグラフを図31に示す。上の段が入力された白黒画像、真ん中の段が正解のカラー画像、下の段がネットワークにより出力されたカラー画像を示す。Lossのグラフは、縦軸がloss、横軸がエポック数である。


    図30 畳み込みオートエンコーダ3層の出力


    図31 畳み込みオートエンコーダ3層のloss

  3. 得られた出力の結果から、一番右の画像は、少し色付けは薄いが正確に 色付けがされていることが分かる。他の画像は芝生や空などの色つけがされ ている画像はあるが、鳥に十分に色付けされている画像がないのが分かる。 3.3.1の実験と比べると少し色付け背景や鳥にされていることが分かる。得 られたlossのグラフから、少しずつではあるが100エポックまでlossが減少 していて、100エポック目のlossは約0.55と分かる。3.3.1の実験と比べると 100エポック目のlossが小さいことが分かり、精度はよくなっていることが 分かる。

3.3.3.畳み込みオートエンコーダ4層の色付け

3.3.2の実験と同様のデータセット、エポック数で行った。構造は図22と同じ構造で、ノード数は畳み込み層64-128-256-512-512-256-128-64とし、エンコーダ部分とデコーダ部分をつなげる全結合層のノード数は512である。

この学習済みのニューラルネットワークに対して、鳥の白黒画像の検証用の入力を与え、出力とlossを観測した。

  1. まず、学習の条件は画素数32×32、バッチサイズが256であり、データ5万枚で実験を行う。
  2. 検証用データはgoogleで自分が集めた鳥の画像10枚を用いる。検証用データに対して、得られた出力結果を図32、lossのグラフを図33に示す。上の段が入力された白黒画像、真ん中の段が正解のカラー画像、下の段がネットワークにより出力されたカラー画像を示す。Lossのグラフは、縦軸がloss、横軸がエポック数である。


    図32 畳み込みオートエンコーダ4層の出力


    図33 畳み込みオートエンコーダ4層のloss

  3. 得られた出力の結果より、芝生の緑色は濃く色付けされているが、実 験9と10で色付けされていた空の青色が色付けされていなく、また出力の画 像が少し歪んで見えることが分かる。得られたlossのグラフより、3.3.1の 実験と3.3.2の実験と比べると、少ないエポック数の時にlossが大きく、100 エポックまでlossが減少しているが100エポック目のlossは約0.58というこ とが分かった。

3.3.4.畳み込みオートエンコーダ3層100エポック数の色付け

畳み込みオートエンコーダ3層のlossのグラフを見ると、まだlossが下がっていくと予測できるので、エポック数を増やしていき、出力の画像とlossのグラフで精度を確かめていく。3.3.2の実験と同様のデータセット、構造で行った。つまり、畳み込みオートエンコーダ3層で実験を行った。エポック数を1000として実験を行った。

この学習済みのニューラルネットワークに対して、鳥の白黒画像の検証用の入力を与え、出力とlossを観測した。

  1. まず、学習の条件は画素数32×32、バッチサイズが256であり、データ5万枚で実験を行う。
  2. 検証用データはgoogleで自分が集めた鳥の画像10枚を用いる。検証用データに対して、得られた出力結果を図34、lossのグラフを図35に示す。上の段が入力された白黒画像、真ん中の段が正解のカラー画像、下の段がネットワークにより出力されたカラー画像を示す。Lossのグラフは、縦軸がloss、横軸がエポック数である。


    図34 畳み込みオートエンコーダ3層の1000エポックの出力


    図35 畳み込みオートエンコーダ3層の1000エポックのloss

  3. 得られた出力より、右から4番目の画像は正解に近い色にカラー化されているが、背中の細かい白の色付けはされていないことが分かる。左から二番目の画像も赤い部分や黒い部分が色付けされていることが分かる。他はそれぞれの画像で少しずつ色はついているが十分な色付けができていないことが分かる。3.3.2の実験と比較しても、少し色がついて精度は上がっている様には見えるが、十分なカラー化ができていないことが分かる。グラフをみると、lossのグラフは、1000エポック目は約0.55であり、3.3.2の実験のグラフでは少しずつ減少していたが、図35のグラフを見ると、200エポック目には減少はしなくなり精度は200エポック目から変化しないことがグラフから分かる。

各実験を比較していくと、出力では畳み込みオートエンコーダ2層から4層までを比較すると、背景が薄い部分があるが数枚は色付けがされている画像があるが、インコのように白黒のまま出力されている画像があることが分かる。2層と3層を比べると2層より3層の方が、色が少し濃く色付けされているのが分かる。4層では一番右の背景の青色の画像が2層や3層では色付けがされていたのに白黒で出力されたことが分かる。また、2層3層と比較すると緑色が濃く色付けされていることが分かる。エポック数を増やした実験と3層の実験を比較すると、右から4番目の画像がより正確に色付けされていることが分かる。また、lossのグラフを比較していくと100エポック固定の実験では3層が、一番損失が少ないことが分かる。また、少しではあるが1000エポックの実験のlossのグラフでは100エポックから少し損失は減少しているので、損失の値を見ると3層の1000エポックの精度が一番良いと分かる。

4.総論

今回の実験では全結合のみのニューラルネットワークと畳み込みオートエンコーダを使用して白黒画像のカラーを試した。Mnistの実験から、単色の色付けは手書きの数字の色付けにより、誤って色付けをしてしまう場合もあるが正確に色付けされることが分かる。このことから、単色の簡単な色付けはで来ることが分かる。Cifar-10の実験より、鳥の白や黒、茶色は色付けされているが、緑や青などの色はカラー化されていないことが分かる。このことから、畳み込みオートエンコーダでは、複雑な画像のカラー化は一定のカラー化はできるが十分なカラー化ができないことが分かる。発展として、既存ででているネットワーク(alexnet、resnet)などの複雑な構造のネットワークを使用しなければ満足のいくカラー化はできないと考えられる。

5.参考文献

  1. モノクロ画像のカラリゼーションのための色彩傾向を考慮したウェブ画像検索システム https://www.ieice.org/iss/de/DEWS/DEWS2006/doc/5B-i9.pdf
  2. オートエンコーダを使用した白黒画像の色付け http://www.net.c.dendai.ac.jp/~tamura/
  3. Tomihisa Welsh, Michael Ashkhmin, Klaus Mueller “Transferring Color to Greyscale Images” 2002, https://www.researchgate.net/publication/220183710_Transferring_Color_to_Greyscale_Images
  4. Anat Levin, Dani Lischinski, Yair Weiss”Colorization using Optimaization”, https://webee.technion.ac.il/people/anat.levin/papers/colorization-siggraph04.pdf
  5. 小林洋平,白山晋 ”A Basic Study of Transferring Color to Grayscale Images”, https://www.jstage.jst.go.jp/article/itej1997/59/5/59_5_769/_pdf/-char/ja
  6. 飯塚里志,シモセラ エドガー,石川博 “ディープネットワークを用いた大域特徴と局所特徴の学習による白黒写真の自動色付け”, http://iizuka.cs.tsukuba.ac.jp/projects/colorization/web/