deconvolutionConvolution画像変換カラー_グレースケール

683 views
Skip to first unread message

Spatial_dims

unread,
Nov 8, 2017, 7:01:22 AM11/8/17
to Neural Network Console Users (JP)
カラー画像とそのカラー画像のグレースケール画像が大量に用意がされている状態で, 
Neural Network Consoledで, deconvolutionの層とconvolutionの層が使われて, 
学習の際, 入力をグレースケール画像として, そのときの出力が各グレースケール画像に対応するカラー画像として学習がされたいと思いますが, 

フォルダの構成やファイルの構成, 
そのときCSVファイルが使われるならそのCSVファイルの構成内容, 
他にもニューラルネットワークの構成の例や, 
そのときの各層の設定の内容, 
前処理としてこのとき使われる各画像(入力とするグレースケール画像と学習されるときの出力とされるカラー画像)のサイズが64×64ピクセルの画像に拡大縮小される方法の機能等について教えてもらうのはできますか? 

また, カラー画像のみを用意しておき, 学習の際, 前処理としてそれらのカラー画像がグレースケール画像に変換されて, それらのグレースケール画像が入力, それらの各グレースケール画像に対応するカラー画像が出力とされるような方法があればそのようなのについても教えてほしいです. 

小林由幸

unread,
Nov 10, 2017, 5:27:28 AM11/10/17
to Neural Network Console Users (JP)
> 前処理としてこのとき使われる各画像(入力とするグレースケール画像と学習されるときの出力とされるカラー画像)のサイズが64×64ピクセルの画像に拡大縮小される方法の機能等について教えてもらうのはできますか?

異なるサイズの画像を64x64などのサイズに統一するには、グレースケール画像、カラー画像をそれぞれ集めた2つのフォルダを作り、それぞれCreate Dataset機能を用いて画像を加工します。
例:
\grayscale\images\
\color\images\
https://support.dl.sony.com/docs-ja/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E7%AE%A1%E7%90%86%E7%94%BB%E9%9D%A2/

このとき、グレースケール画像の加工時はOutput Color Chを1、カラー画像の加工時はOutput Color Chを3に設定します。
Output Dirで指定したフォルダ内に、加工後の画像が保存されます。

> フォルダの構成やファイルの構成,
> そのときCSVファイルが使われるならそのCSVファイルの構成内容,

データセットとして以下のようなCSVファイルをご用意ください

x:grayscale,y:color
グレースケール画像のファイル名1,カラー画像のファイル名1
グレースケール画像のファイル名2,カラー画像のファイル名2
グレースケール画像のファイル名3,カラー画像のファイル名3

> 他にもニューラルネットワークの構成の例や,

実際の学習には以下のサンプルプロジェクトにあるようなネットワークを用いることができます
samples\sample_project\tutorial\basics\11_deconvolution.sdcproj

InputレイヤーのSizeをグレースケール画像のサイズ(1,64,64など)に
Deconvolution_2のOutMapsを3(カラー)に、
最後のSquaredErrorレイヤーのDatasetをyに設定することでひとまず学習は可能です。

性能を高めるにはConvolution、Deconvolutionの層をそれぞれ増やすなどお試しください。

Spatial_dims

unread,
Nov 11, 2017, 7:30:04 AM11/11/17
to Neural Network Console Users (JP)
Create Dataset機能を使っていきましたが, neural_network_console_100\samples\sample_datasetの場所で, サイズが色々の256色(8bit)のPNGファイルのカラー画像が多く入れられているフォルダがCreate Dataset の画面でSource Dir とされて, Output Color Ch は3 (RGB) としてApply が押されましたが, 
『Error: Failed to create dataset』と表示がされてアウトプットのフォルダには何もありませんでした. 
どのようなのがされればこのようなエラーが出ずに64×64ピクセルの画像にサイズが変更されるのができそうですか? 

2017年11月10日金曜日 19時27分28秒 UTC+9 小林由幸:
Message has been deleted

Spatial_dims

unread,
Nov 12, 2017, 12:03:22 AM11/12/17
to Neural Network Console Users (JP)
他の画像のサイズが変更されるソフトウェア等が使われて, 64×64ピクセルのカラー画像とグレースケール画像のPNGファイルが用意されて, 上記のようなCSVファイルが作られて, Neural Network Consoleで読み込ませると, Training もEvaluation も画像1 のように実行されるのができましたが, 

64×64ピクセルの画像が使われたときと同様に, 画像2のように設定して256×256ピクセルのグレースケール画像とカラー画像でTraining が実行されると, 
『ValueError: could not broadcast input array from shape (32,1,64,64) into shape (32,1,256,256))』
のようなエラーが出てTraining ができませんでした. バッチサイズは32, グレースケール画像, カラー画像はそれぞれ1048枚です. 

どのようにされるとこのようなエラーが出ずに256×256ピクセル等の画像で, 64×64ピクセルの画像のときと同様に学習がされるのができそうですか? 

2017年11月10日金曜日 19時27分28秒 UTC+9 小林由幸:
キャプチャ1.JPG
キャプチャ2.JPG

小林由幸

unread,
Nov 13, 2017, 9:55:06 PM11/13/17
to Neural Network Console Users (JP)

基本的にグレースケール、およびカラー画像を256x256で用意し、ネットワークの入出力を1,256,256、3,256,256となるように設計することで学習が可能です。


エラーメッセージは、1,256,256の変数に対して1,64,64のデータを入力しようとしたことを示します。
データセットとして正しく256x256の画像が与えられていることをご確認ください。

画像編集の過程で64x64の画像を256x256の画像で上書きされた場合、64x64の古い画像がキャッシュに残っている可能性があります。
この場合、データセットCSVファイルと同じフォルダに作成される.cacheフォルダの削除をお試しください。

Spatial_dims

unread,
Nov 14, 2017, 6:52:46 AM11/14/17
to Neural Network Console Users (JP)
回答ありがとうございます. 
データセットCSVファイルと同じフォルダに作成される.cacheフォルダが他の関係のなさそうなフォルダに移動させられると, 256×256ピクセルの画像が使われる学習がエラーが出ずにできました. 

また, エラーになったときは64×64ピクセルのグレースケールとカラー画像はそれぞれ別々のフォルダに入れられている状態で, それらのフォルダを他の場所に移動させて, 移動前の場所に同様に256×256ピクセルの画像が使われたフォルダが置かれて, データセットCSVファイルには何も触れずに学習がされようとしていました. 

Create Dataset機能で『Error: Failed to create dataset』が出ることについても, どのような拡張子等でCreate Dataset機能が使われて画像のサイズが変更できるようになっている等について教えてもらうのはできますか? 

2017年11月14日火曜日 11時55分06秒 UTC+9 小林由幸:
Reply all
Reply to author
Forward
0 new messages