"Image" (ネットエンコーダ)

NetEncoder["Image"]

2D画像をランク3の画素値テンソルに変換するエンコーダを表す.

NetEncoder[{"Image",size}]

入力画像の大きさを size に変更するエンコーダを表す.

NetEncoder[{"Image",{width,height}]

入力画像を指定の大きさにサイズ変更するエンコーダを表す.

NetEncoder[{"Image",size,"param"val,}]

前処理のための特定のパラメータを持つエンコーダを表す.

詳細

  • NetEncoder[][input]はエンコーダを入力に適用して出力を生成する.
  • NetEncoder[][{input1,input2,}]はエンコーダを入力のリストに適用して出力のリストを生成する.
  • エンコーダへの入力にはImage[]オブジェクトまたはFile[]式が使える.
  • NetEncoder["Image"]NetEncoder[{"Image",{128,128}}]に相当する.
  • ネットワークの構築時に,"port"->NetEncoder[]を指定すると,エンコーダをネットワークの入力ポートに付加することができる.
  • パラメータ
  • 以下のパラメータが使用可能である:
  • ColorSpace"RGB"符号化に使われる色空間
    "DataTransposed"False横(幅)が最初の次元かどうか
    InterleavingFalseチャンネルがインターリーブされているかどうか
    "MeanImage"None減算される平均画像
    "VarianceImage"None正規化に使われる分散画像
    Method"Stretch"サイズを確認する方法
    ResamplingAutomaticリサンプリング手法
    AlignmentCenter Method"Fit" または"Fill"のときに画像を揃える方法
    PaddingBlackMethod"Fit"のときのパディングスキーム
  • Method に使用可能な値には以下のものがある:
  • "Stretch"リサンプリングによって,フィットするように画像を引き伸ばす
    "Fit"画像全体をフィットする.縦横比を保つ.必要に応じてパディングする
    "Fill"より小さな次元にフィットする.必要に応じて反対側をクロップする
  • Interleaving"DataTransposed" オプションは,出力の形状に以下のような影響を与える:
  • 以下の設定は"MeanImage""VarianceImage"に使うことができる:
  • None減算しない
    m各画素から減算される値
    {m1,m2,}いろいろなチャンネルから減算される値
    Image[]減算される全体画像
  • 画素は減算前に,0と1の間で正規化される.

例題

すべて開くすべて閉じる

  (1)

指定の大きさの画像エンコーダを作る:

画像を符号化する:

符号化された値を画像として可視化する:

スコープ  (1)

NetEncoder["Image"]は,FileまたはImageオブジェクトを符号化できる.画像エンコーダを作る:

エンコーダをFileオブジェクトに適用する:

エンコーダをImageオブジェクトに適用する:

エンコーダを画像のリストに適用する:

パラメータ  (12)

ColorSpace  (1)

出力画像のColorSpace "Grayscale"に設定する:

出力はグレースケール画像に適した1つのチャンネル次元だけである.

"DataTransposed"  (2)

"DataTransposed"Falseにすると,縦(高さ)が出力の最初の次元になる:

"DataTransposed"Trueにすると,横(幅)が出力の最初の次元になる:

"DataTransposed"Trueで,InterleavingTrueにすると,縦(高さ)を固定で,横(幅)を変動で,画像をスケーリングできる:

Interleaving  (2)

InterleavingFalseにすると,出力のチャンネル次元は次元リスト内の最初の次元になる:

InterleavingTrueにすると,出力のチャンネル次元は次元リスト内の最後の次元になる:

InterleavingTrueにすると,横(幅)を固定で,縦(高さ)を変動で,画像をスケーリングできる:

"MeanImage"  (1)

符号化した画像から平均値のリストを引く画像エンコーダを作る:

各画素値が0.8の画像を作る:

エンコーダを画像に適用する:

これは以下と同等である:

"VarianceImage"  (1)

符号化された画像を分散リストによって正規化する画像エンコーダを作る:

各画素の値が0.8の画像を作る:

エンコーダを画像に適用する:

これは以下と同等である:

Method  (2)

画像全体をフィッティングし,必要に応じてパディングすることにより,次元に適合する画像エンコーダを作成する:

画像を符号化する:

符号化した値を画像として可視化する:

より小さな次元にフィッティングし,必要に応じてクロップすることにより,次元に適合する画像エンコーダを作成する:

画像を符号化する:

符号化した値を画像として可視化する:

Resampling  (1)

区分的線形補間を使ってスケーリングすることにより,次元に適合する画像エンコーダを作成する:

画像を符号化する:

符号化した値を画像として可視化する:

Padding  (1)

画像全体をフィッティングし,必要に応じて灰色でパディングすることにより,次元に適合する画像エンコーダを作成する:

画像を符号化する:

符号化した値を画像として可視化する:

Alignment  (1)

画像全体をフィッティングし,必要に応じて右側または下側をパディングすることにより,次元に適合する画像エンコーダを作成する:

画像を符号化する:

符号化した値を画像として可視化する:

特性と関係  (2)

画像エンコーダをFile オブジェクトのリストに適用するとき,NetEncoderはマルチコアのプロセッサ上の計算を並列化しようとする.64個の画像のリストを作る:

画像エンコーダを作る:

使用可能なプロセッサの数を表示する:

エンコーダを画像にMapする:

並列化を利用するために,エンコーダをMapを使わずに直接Fileオブジェクトに適用する:

NetTrainは,ネットが完全に指定されていないときはエンコーダを自動的に付加しようとする.画像エンコーダの自動付加は以下のようになる: