(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下に、本願に係る出力装置、出力方法、出力プログラム及び出力システムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る出力装置、出力方法、出力プログラム及び出力システムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0011】
〔1.出力処理の一例〕
まず、
図1を用いて、実施形態に係る出力処理の一例について説明する。
図1は、実施形態に係る出力処理の一例を示す図である。
図1では、実施形態に係る出力装置100が、画像を出力するニューラルネットワークとして学習されたモデルに、処理対象となる画像(以下、区別のため「第1画像」と称する場合がある)を入力し、実施形態に係る出力処理により、モデルの出力層から画像(以下、区別のため「第2画像」と称する場合がある)を出力する例について説明する。
【0012】
図1に示す出力装置100は、実施形態に係る出力処理を実行するサーバ装置である。出力装置100は、画像を出力するニューラルネットワークとして学習されたモデルM01を用いて、実施形態に係る出力処理を実行する。
【0013】
図1に示す表示制御装置30
1及び30
2は、モデルM01の中間層から出力される画像をディスプレイ等の出力デバイスに表示するよう制御するサーバ装置である。なお、表示制御装置30
1及び30
2を区別する必要のない場合、表示制御装置30と総称する。
【0014】
実施形態において、出力装置100は、複数のノードを多段に接続したニューラルネットワークとして学習されたモデルM01を保持する。例えば、モデルM01は、DNN、LSTM(Long Short-Term Memory)、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等であってもよい。また、モデルM01は、これら畳み込みニューラルネットワークや、再帰型ニューラルネットワークの機能を組み合わせたものであってもよい。
【0015】
モデルM01は、第1画像が入力層に入力された場合に、複数の中間層を経て、出力層から第2画像を出力するよう学習されたモデルである。すなわち、モデルM01は、ある入力情報が入力された際に、その入力情報を変換した他の出力情報を出力するよう学習されている。例えば、モデルM01は、複数の人間の顔の特徴を事前に学習したモデルである。この場合、出力装置100は、所定のユーザの顔を撮像した顔画像をモデルM01に入力すると、モデルM01の生成時に学習された複数の人間の顔の特徴を合成した画像を第2画像として出力する。
【0016】
一般に、ニューラルネットワークでは、入力信号に対して、複数の中間層の各々に設定された様々な接続係数が乗じられ、出力信号が算出される。この場合、ユーザは、出力結果を確認できるものの、中間層による演算処理に介入することはできないため、出力結果を確認したのち、あらためて異なる入力信号(ここでは、ユーザの顔画像)を入力したり、モデルを新たに学習し直したりすることを要する。すなわち、従来では、ユーザがニューラルネットワークの出力結果を微修正することや、ニューラルネットワークの演算過程に介入することは困難であった。
【0017】
そこで、実施形態に係る出力装置100は、以下に示す出力処理によって、ユーザによる介入処理を出力結果に反映させる。具体的には、出力装置100は、第1画像が入力されたモデルM01の中間層における画像である中間画像を出力する。そして、出力装置100は、中間画像に対する介入処理を反映させた情報である介入情報を受け付ける。さらに、出力装置100は、受け付けられた介入情報に基づいて、モデルM01の出力層から第2画像を出力する。このように、出力装置100は、中間層の処理に対してユーザが介入する手段を与え、ユーザが介入したことにより生じる介入情報を演算処理に加えることで、学習済みモデルが行う演算に対してユーザが微調整を行うことを可能とする。以下、実施形態に係る出力処理について、
図1を用いて流れに沿って説明する。
【0018】
まず、ユーザは、カメラ50等の入力デバイスを用いて自身の顔を撮影し、顔画像を作成する。そして、ユーザは、撮影した顔画像を出力装置100に送信する(ステップS11)。例えば、ユーザは、画像を出力するネットワーク機能を備えたカメラ50を介して顔画像を送信してもよいし、カメラ50と接続された端末装置等を介して顔画像を送信してもよい。なお、カメラ50は、所定のトリミング処理を行った顔画像を作成してもよい。例えば、カメラ50は、既存の顔認識技術に基づいて、ユーザの顔を示す範囲のみを残し、背景等の情報を削除するトリミング処理を行った後の顔画像を出力装置100に送信してもよい。
【0019】
出力装置100は、ユーザから取得した顔画像をモデルM01に入力する(ステップS12)。具体的には、出力装置100は、顔画像を形成する各画素(ピクセル)の情報を入力信号として、モデルM01の入力層に入力する。この場合、モデルM01の入力層は、顔画像を構成する各画素の数、及び、画素の色情報(例えば、RGBの3チャンネル)に対応する数のノードを有する。
【0020】
モデルM01では、入力層のノードに所定の接続係数(重み値)が乗じられ、第1中間層のノードが算出される。なお、入力層の各ノードと乗じられる接続係数の値や、どのノードとどのエッジに対応する接続係数が乗じられるかといったニューラルネットワークの構造は、学習段階で決定される。なお、ニューラルネットワークの構造については、既存の技術であるため説明を省略する。
【0021】
続いて、出力装置100は、モデルM01の第1中間層が有する情報に基づいて、中間画像を出力する(ステップS13)。具体的には、出力装置100は、第1中間層のノードが有する値に基づいて中間画像61を生成し、生成した中間画像61を出力する。出力装置100は、出力した中間画像61を表示制御装置30
1に送信する。表示制御装置30
1は、中間画像61を出力デバイスの一例であるディスプレイ60に表示するよう制御する(ステップS14)。
【0022】
なお、
図1の例では、中間画像61は、ユーザの顔を構成する箇所(目や鼻など)が認識できるよう図示されている。この場合、表示制御装置30
1は、第1中間層の各ノードに基づいて、第1画像と同様の画素の並びを再現して中間画像61を生成したものと想定される。しかし、各中間層から出力される中間画像は、実際には、ユーザが対象を認識できないような画像である場合がある。例えば、モデルM01が畳み込みニューラルネットワークで学習されたモデルである場合、中間画像は、畳み込みで用いられた、特徴量を抽出するための複数のフィルタの情報が反映された画像となる。この場合、中間画像は、個々のフィルタを適用した画像の大きさ(例えば、16ピクセル×16ピクセルなど)ごとにユーザの顔が区切られた、モザイクのような画像で示される。
【0023】
ディスプレイ60は、ユーザが視認できる位置に設置される。すなわち、ユーザは、自身を撮像した顔画像が第1中間層で処理された画像である中間画像61を視認することができる。
【0024】
また、
図1の例では、ディスプレイ60はタッチパネルを採用したディスプレイである。すなわち、ユーザは、ディスプレイ60に対してタッチ操作による介入を行うことができる。例えば、ユーザは、指65を用いてディスプレイ60に表示された中間画像61の任意の箇所をタッチすることで、タッチ操作による介入を行う(ステップS15)。なお、表示制御装置30
1は、ユーザがタッチ操作を行った場合、タッチ操作が行われた箇所(
図1で示す表示66)が黒く塗りつぶされるよう、表示を制御する。
【0025】
ここで、表示制御装置30
1は、ユーザのタッチ操作に基づいて、介入情報を取得する(ステップS16)。介入情報とは、中間画像に対する介入処理を反映させた情報である。具体的には、介入情報とは、中間画像61においてユーザからタッチされた箇所の画素を示す情報である。すなわち、介入情報に示される画素とは、ユーザがディスプレイ60上で黒く塗りつぶした箇所に対応する画素である。より具体的には、介入情報は、例えばユーザからタッチされた画素を指し示した座標情報によって表される。
【0026】
表示制御装置30
1は、取得した介入情報を出力装置100に送信する(ステップS17)。出力装置100は、受け付けた介入情報に基づいて、モデルM01の演算への介入処理を行う(ステップS18)。具体的には、出力装置100は、第1中間層のノードのうち、介入情報に対応したノードを特定する。すなわち、出力装置100は、中間画像61に対してユーザのタッチ操作が行われた画素に対応するノードを特定する。そして、出力装置100は、特定したノードをマスクする処理を行う。具体的には、出力装置100は、特定したノードを除いたノードのみを用いて、次の中間層(第2中間層)への演算を行う。
【0027】
ステップS18を経て、出力装置100は、モデルM01の第2中間層のノードの値を決定する。そして、出力装置100は、第2中間層に対応する中間画像71を出力し(ステップS19)、表示制御装置30
2に送信する。表示制御装置30
2は、出力装置100から送信された中間画像71をディスプレイ70に表示する(ステップS20)。
【0028】
図1の例では、ディスプレイ70の近傍にカメラ75が設置される。カメラ75は、例えば、ユーザがカメラ50を操作する状況や、ディスプレイ60をタッチしている状況を撮像可能なように設置される。カメラ75は、リアルタイムなユーザの状況を継続的に撮像し、撮像した画像を表示制御装置30
2に送信する。言い換えれば、ユーザは、カメラ75で撮像された画像に基づく介入を行う(ステップS21)。
【0029】
表示制御装置30
2は、カメラ75が撮像した画像を所定の閾値に基づいて2値化情報に変換する。かかる2値化情報は、中間画像71と同じ大きさ(すなわち同一の画素数)を有する。そして、表示制御装置30
2は、得られた2値化情報を介入情報として取得する(ステップS22)。例えば、表示制御装置30
2は、2値化情報のうち、黒色側を示した画素に対応する座標情報を介入情報として取得する。
【0030】
表示制御装置30
2は、取得した介入情報を出力装置100に送信する(ステップS23)。出力装置100は、受け付けた介入情報に基づいて、モデルM01の演算への介入処理を行う(ステップS24)。具体的には、出力装置100は、第2中間層のノードのうち、介入情報に対応したノードを特定する。例えば、出力装置100は、中間画像71と2値化情報とを重畳させ、2値化情報のうち黒色側を示した画素に対応するノードを特定する。そして、出力装置100は、特定したノードをマスクする処理を行う。具体的には、出力装置100は、特定したノードを除いたノードのみを用いて、次の中間層(第3中間層)への演算を行う。
【0031】
出力装置100は、上記で示したような中間画像の出力と介入情報の取得とを、モデルM01の出力層まで繰り返す。出力装置100は、最後の中間層への介入処理を終えた場合、最後の中間層から出力層への演算を行い、出力層から第2画像を出力させる(ステップS25)。
【0032】
出力装置100は、ディスプレイ80に、出力結果である第2画像81を表示するよう制御する。第2画像81は、ユーザが入力した顔画像に、モデルM01の学習時において学習された複数の顔画像における特徴が合成されたものである。また、第2画像81には、各々の中間層における介入処理が反映される。出力装置100は、ディスプレイ80に第2画像81を表示することで、ユーザへ出力結果を提示する(ステップS26)。
【0033】
なお、ステップS12からステップS26までの処理は、ステップS11の入力の開始から所定時間が経過するまで、連続的に実行される。すなわち、ユーザは、ディスプレイ60をタッチしたり、カメラ75に撮像される姿(影)を変化させたりして、第2画像81の変化を確認することができる。これにより、ユーザは、モデルM01から出力される結果を確認しながら、インタラクティブにモデルM01の演算への介入を行うことができる。すなわち、ユーザは、モデルの出力結果を動的に修正することができる。
【0034】
ここで、
図1で示した出力装置100による出力処理が実際に行われる状況について、
図2を用いて説明する。
図2は、実施形態に係る出力処理の実行例を示す図である。
図2に示すように、ユーザは、カメラ50によって自身の顔画像が撮像される位置に座る。そして、ユーザは、ディスプレイ60に表示される中間画像61にタッチしたり、カメラ75に撮像される姿を変化させたりしながら、ディスプレイ80に表示される第2画像81を確認する。なお、
図2に示すように、出力処理の実行例では、第1中間層や第2中間層とは異なる中間層から出力される中間画像を表示するための他のディスプレイがさらに設置されてもよい。
【0035】
上述してきたように、実施形態に係る出力装置100は、画像を出力するニューラルネットワークであるモデルM01に、処理対象である第1画像を入力する。そして、出力装置100は、第1画像が入力されたモデルM01の中間層における画像である中間画像61や中間画像71を出力する。続けて、出力装置100は、中間画像61や中間画像71に対する介入処理を反映させた情報である介入情報を受け付ける。さらに、出力装置100は、受け付けられた介入情報に基づいて、モデルM01の出力層から第2画像81を出力する。
【0036】
このように、実施形態に係る出力装置100は、中間画像61等に対するタッチ操作等の介入処理により生じた介入情報をモデルM01の演算に組み込む構成を有することで、ユーザが動的にニューラルネットワークの処理に介入することを可能にする。これにより、出力装置100は、モデルから出力される結果を動的に修正することができる。また、出力装置100は、リアルタイムに変化する出力結果である第2画像を提示させながらユーザからの介入操作を受け付けることで、第2画像の変化を楽しむといった娯楽をユーザに提供することができる。また、出力装置100は、中間画像に触れた箇所の入力をマスクし、その結果を第2画像に反映させることで、中間画像のどのような箇所が変化することで出力結果がどのような影響を受けるのかといった、通常では認識することのできないモデルの内部処理をユーザに体感させることができる。
【0037】
なお、
図1や
図2の例では、ユーザからの介入処理としてタッチ操作やカメラによって撮像された画像情報等を利用する例を示したが、介入処理はこれに限られない。例えば、介入処理は、マウス等のポインティングデバイスを利用して行われてもよいし、音声入力等によって行われてもよい。
【0038】
以下、上記のような出力処理を行う出力装置100、及び出力装置100を含む出力システム1の構成や処理について、さらに詳細に説明する。
【0039】
〔2.出力システムの構成〕
次に、
図3を用いて、実施形態に係る出力システム1の構成について説明する。
図3は、実施形態に係る出力システム1の構成例を示す図である。
図3に示すように、出力システム1は、入力デバイス10と、出力デバイス20と、表示制御装置30と、出力装置100とを含む。出力システム1に含まれる各装置は、通信ネットワークであるネットワークN(例えば、インターネット)を介して有線または無線により通信可能に接続される。なお、
図3に示す出力システム1に含まれる各装置の数は図示したものに限られない。例えば、出力システム1には、複数台の入力デバイス10が含まれてもよい。
【0040】
入力デバイス10は、種々の情報の入力を行うために利用されるデバイス(情報処理装置)である。例えば、入力デバイス10は、
図1に示したカメラ50やカメラ75等である。また、入力デバイス10には、カメラ機能やマイク機能を備えたデスクトップ型PC(Personal Computer)や、ノート型PCや、スマートフォン等の携帯電話機や、タブレット端末や、PDA(Personal Digital Assistant)等であってもよい。入力デバイス10は、入力された情報を出力装置100や表示制御装置30等に送信する。
【0041】
出力デバイス20は、種々の情報を出力するデバイスである。例えば、出力デバイスは、
図1に示したディスプレイ60やディスプレイ70、ディスプレイ80等である。なお、入力デバイス10と出力デバイス20は、別の装置でなく、一体であってもよい。例えば、出力デバイス20がタッチパネルを備えたディスプレイである場合、かかるディスプレイは、出力デバイス20であるとともに、入力デバイス10としても機能する。出力デバイス20は、出力装置100や表示制御装置30から送信された情報に基づいて、画像等の情報を出力(表示)する。
【0042】
表示制御装置30は、出力装置100が中間層から出力させた中間画像を取得し、中間画像を出力デバイス20に表示するよう制御するサーバ装置である。また、表示制御装置30は、入力デバイス10に入力された情報に基づいて、中間画像に対する介入情報を取得する。具体的には、表示制御装置30は、ユーザのタッチ操作やユーザを撮像した画像情報等に基づいて介入情報を取得する。そして、表示制御装置30は、取得した介入情報を出力装置100に送信する。
【0043】
出力装置100は、上述のように、モデルの中間層から中間画像を出力し、中間画像に対する介入情報を受け付け、受け付けられた介入情報に基づいて、モデルの出力層から第2画像を出力する出力処理を実行するサーバ装置である。
【0044】
〔3.出力装置の構成〕
次に、
図4を用いて、実施形態に係る出力装置100の構成について説明する。
図4は、実施形態に係る出力装置100の構成例を示す図である。
図4に示すように、出力装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、出力装置100は、出力装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を出力するための出力部(例えば、液晶ディスプレイ等)を有してもよい。
【0045】
(通信部110について)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、入力デバイス10や、出力デバイス20や、表示制御装置30との間で情報の送受信を行う。
【0046】
(記憶部120について)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、モデル記憶部121と、画像記憶部122とを有する。
【0047】
(モデル記憶部121について)
モデル記憶部121は、出力装置100が保持するモデルに関する情報を記憶する。ここで、
図5に、実施形態に係るモデル記憶部121の一例を示す。
図5は、実施形態に係るモデル記憶部121の一例を示す図である。
図5に示すように、モデル記憶部121は、「モデルID」、「入力データ」、「接続係数」、「出力データ」といった項目を有する。
【0048】
「モデルID」は、モデルを識別する識別情報を示す。なお、以下の説明では、
図5に示すような識別情報を参照符号として用いる場合がある。例えば、識別情報が「M01」で示されるモデルを「モデルM01」と表記する場合がある。
【0049】
「入力データ」は、モデルに入力されるデータの形式(態様)を示す。「接続係数」は、モデルにおける接続係数(重み値)を示す。「出力データ」は、モデルから出力されるデータの形式を示す。
図5に示した例では、「入力データ」や「接続係数」や「出力データ」を「A01」のような概念で示しているが、実際には、各項目に対応する具体的な情報が記憶される。例えば、「入力データ」の項目には、モデルに入力可能なデータの具体的な形式(例えば、入力される画像の画素数や色情報が3チャンネルで表現されること等)が記憶される。「接続係数」には、モデルが有する中間層の数や、各中間層のノードを接続するエッジの数や、どのノードとどのノードがエッジで接続されているかを示す情報や、各エッジの接続係数の値等が記憶される。「出力データ」には、出力結果として出力されるデータの具体的な形式(例えば、出力される画像の画素数や色情報が3チャンネルで表現されること等)が記憶される。
【0050】
すなわち、
図5では、モデル記憶部121が記憶する情報の一例として、モデルID「M01」で識別されるモデルM01は、入力データが「A01」であり、接続係数が「B01」であり、出力データが「C01」といったモデルであることを示している。
【0051】
なお、
図5での図示は省略しているが、モデル記憶部121には、モデルを学習するための学習データ等のデータセット等が記憶されてもよい。
【0052】
なお、実施形態に係るモデルは、一つの中間層を有するニューラルネットワークであってもよいし、複数の中間層を有するDNN等、種々の構造であってもよい。
【0053】
(画像記憶部122について)
画像記憶部122は、モデルに入力される画像の情報を記憶する。ここで、
図6に、実施形態に係る画像記憶部122の一例を示す。
図6は、実施形態に係る画像記憶部122の一例を示す図である。
図6に示すように、画像記憶部122は、「画像ID」、「画素数」、「色情報」といった項目を有する。
【0054】
「画像ID」は、画像を識別する識別情報を示す。「画素数」は、画像が含む画素の数を示す。「色情報」は、各画素の色情報を示す。
図6に示した例では、「画素数」や「色情報」を「E01」のような概念で示しているが、実際には、各項目に対応する具体的な情報が記憶される。例えば、「画素数」の項目には、画像を構成する画素数の具体的な値が記憶される。また、「色情報」には、各画素の色を示す具体的な情報(例えば、RGBの3チャンネル分の値)が記憶される。
【0055】
すなわち、
図6では、画像記憶部122が記憶する情報の一例として、画像IDが「D01」である画像D01は、画素数が「E01」であり、色情報が「F01」であることを示している。
【0056】
(制御部130について)
図4に戻って説明を続ける。制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、出力装置100内部の記憶装置に記憶されている各種プログラム(出力プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0057】
制御部130は、記憶部120に記憶されるモデルに従った情報処理により、モデルの入力層に入力された第1画像(より正確には、画像を構成する各画素に対応する入力信号)に対して、モデルが有する接続係数(すなわち、モデルが学習した特徴に対応する重み値)に基づく演算を行い、モデルの出力層から第2画像(より正確には、画像を構成する各画素に対応する出力信号)を出力する。
【0058】
実施形態に係る制御部130は、
図4に示すように、取得部131と、入力部132と、算出部133と、中間出力部134と、受付部135と、結果出力部136とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、
図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、
図4に示した接続関係に限られず、他の接続関係であってもよい。
【0059】
(取得部131について)
取得部131は、種々の情報を取得する。例えば、取得部131は、実施形態に係る出力処理を実行するための学習済みモデルを取得する。取得部131は、取得したモデルをモデル記憶部121に格納する。
【0060】
また、取得部131は、ユーザの顔画像を取得する。例えば、取得部131は、ユーザを撮像したカメラ等の入力デバイス10を介して、ユーザの顔画像を取得する。取得部131は、取得した画像を画像記憶部122に格納する。また、取得部131は、取得した顔画像を入力部132に送る。
【0061】
(入力部132について)
入力部132は、画像を出力するニューラルネットワークとして学習され、生成されたモデルに、処理対象である第1画像を入力する。実施形態では、入力部132は、第1画像として、ユーザの顔を撮像した顔画像をモデルに入力する。
【0062】
例えば、入力部132は、第1画像を符号化するエンコーダとしての機能や、符号化された情報に対して所定の行列を適用したベクトルを生成する機能等を有する。すなわち、入力部132は、入力データである第1画像を、ニューラルネットワークとして学習されたモデルに入力可能な形式に変換し、変換後の情報をモデルに入力する。
【0063】
(算出部133について)
算出部133は、入力部132によってモデルに入力された情報(すなわち、各ノード)に接続係数を乗じて、次段の中間層に対応するノードの値を算出する。例えば、算出部133は、次段の中間層のノードの値として、当該ノードに接続された前段の各ノードの値と、互いに接続されたノード間のエッジの接続係数とを乗じて、各ノードの値の合計値を算出する。さらに、算出部133は、算出した合計値を所定の活性化関数に入力し、次段のノードに対応する値を算出する。
【0064】
(中間出力部134について)
中間出力部134は、第1画像が入力されたモデルの中間層における画像である中間画像を出力する。具体的には、中間出力部134は、中間層の各ノードの値に基づいて中間画像を生成し、生成した中間画像を出力する。
【0065】
なお、中間画像の構成は、必ずしも最終的な出力結果(第2画像)と一致しなくてもよい。例えば、ニューラルネットワークの構造によっては、中間層のノード数と出力層のノード数は異なる場合がある。この場合、中間画像と第2画像の各々の画素数等の画像情報は、互いに異なっていてもよい。
【0066】
また、中間画像は、画像を見るユーザが顔と認識可能な形態でなくてもよい。例えば、モデルが畳み込みニューラルネットワークの構造を有する場合、中間画像は、畳み込みで用いられた特徴量を抽出するためのフィルタの大きさで区切られた、モザイクのような画像で示される場合がある。この場合、中間画像には、ユーザの顔の特徴的な箇所(例えば、顔を構成する目や鼻の近傍など)がモザイクのように羅列される画像で示される場合がある。
【0067】
また、中間出力部134は、各々の中間層ごとの中間画像を出力する。具体的には、中間出力部134は、第1画像が入力されたモデルの第1中間層における画像である第1中間画像を出力する。その後、中間出力部134は、後述する受付部135によって第1中間画像に対する介入処理を反映させた第1介入情報が受け付けられた場合に、第1介入情報が入力されたモデルの次段の中間層における画像である第2中間画像を出力する。例えば、中間層がm層(mは任意の数)存在するモデルであれば、中間出力部134は、第1層から第m層分の中間画像を出力してもよい。
【0068】
(受付部135について)
受付部135は、中間画像に対する介入処理を反映させた情報である介入情報を受け付ける。具体的には、受付部135は、中間画像に対するユーザの介入処理を受け付けた表示制御装置30を介して、当該介入処理を示す介入情報を受け付ける。
【0069】
例えば、受付部135は、中間画像に対する介入処理によって中間画像の一部又は全部の情報を欠落させた情報である介入情報を受け付ける。具体的には、受付部135は、出力デバイス20上に表示された中間画像において、ユーザにタッチ操作された箇所に対応する画素の情報を欠落させることを示す介入情報を受け付ける。また、受付部135は、出力デバイス20上に表示された中間画像において、ユーザを撮像した画像を2値化した情報と重畳される箇所に対応する画素の情報を欠落させることを示す介入情報を受け付ける。
【0070】
受付部135は、受け付けた介入情報を算出部133に送る。算出部133は、受け付けた介入情報に基づいて、中間画像を出力させた中間層の次段の中間層におけるノードを算出する。すなわち、受付部135は、モデルの演算が出力層に至るまで介入情報を受け付け、算出部133は、モデルの出力層まで演算を繰り返す。
【0071】
(結果出力部136について)
結果出力部136は、受付部135によって受け付けられた介入情報に基づいて、モデルの出力層から第2画像を出力する。具体的には、結果出力部136は、受付部135によって受け付けられた介入情報に基づく演算が算出部133により行われた結果、出力層に対応するノードの情報を取得する。そして、結果出力部136は、出力層のノードに基づいて、モデルの演算結果となる第2画像を出力する。例えば、結果出力部136は、出力デバイス20に表示可能な形式の画素数や色情報が設定された画像データとして、第2画像を出力する。
【0072】
〔4.表示制御装置の構成〕
次に、
図7を用いて、実施形態に係る表示制御装置30の構成について説明する。
図7は、実施形態に係る表示制御装置30の構成例を示す図である。
図7に示すように、表示制御装置30は、通信部31と、記憶部33と、制御部32とを有する。なお、表示制御装置30は、表示制御装置30を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を出力するための出力部(例えば、液晶ディスプレイ等)を有してもよい。
【0073】
(通信部31について)
通信部31は、例えば、NIC等によって実現される。通信部31は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、入力デバイス10や、出力デバイス20や、出力装置100との間で情報の送受信を行う。
【0074】
(記憶部33について)
記憶部33は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部33は、中間画像記憶部34と、介入情報記憶部35とを有する。
【0075】
(中間画像記憶部34について)
中間画像記憶部34は、出力装置100から送信された中間画像を記憶する。
図8に、実施形態に係る中間画像記憶部34の一例を示す。
図8は、実施形態に係る中間画像記憶部34の一例を示す図である。
図8に示すように、中間画像記憶部34は、「中間画像ID」、「画素数」、「色情報」といった項目を有する。
【0076】
「中間画像ID」は、中間画像を識別する識別情報を示す。「画素数」及び「色情報」は、
図6に示した同一の項目に対応する。
【0077】
すなわち、
図8では、中間画像記憶部34が記憶する情報の一例として、中間画像IDが「G01」である中間画像G01は、画素数が「H01」であり、色情報が「J01」であることを示している。
【0078】
(介入情報記憶部35について)
介入情報記憶部35は、介入情報を記憶する。ここで、
図9に、実施形態に係る介入情報記憶部35の一例を示す。
図9は、実施形態に係る介入情報記憶部35の一例を示す図である。
図9に示すように、介入情報記憶部35は、「介入情報ID」、「欠落箇所情報」といった項目を有する。
【0079】
「介入情報ID」は、介入情報を識別する識別情報を示す。「欠落箇所情報」は、中間画像が含む画素のうち、ユーザの操作によって欠落される箇所を示す。
図9に示した例では、「欠落箇所情報」を「L01」のような概念で示しているが、実際には、欠落箇所情報の項目には、欠落箇所に対応する具体的な情報が記憶される。例えば、欠落箇所情報は、ユーザがタッチ操作を行った箇所に対応する中間画像における具体的な座標情報や、ユーザを撮像した画像の2値化情報において黒色(影)と判定された箇所の具体的な座標情報等が記憶される。
【0080】
すなわち、
図9では、介入情報記憶部35が記憶する情報の一例として、介入情報IDが「K01」である介入情報K01は、欠落箇所情報が「L01」であることを示している。
【0081】
(制御部32について)
図7に戻って説明を続ける。制御部32は、コントローラであり、例えば、CPUやMPU等によって、表示制御装置30内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部32は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現される。
【0082】
実施形態に係る制御部32は、
図7に示すように、受信部36と、表示制御部37と、生成部38と、送信部39とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部32の内部構成は、
図7に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部32が有する各処理部の接続関係は、
図7に示した接続関係に限られず、他の接続関係であってもよい。
【0083】
(受信部36について)
受信部36は、各種情報を受信する。例えば、受信部36は、出力装置100から中間画像に関する情報を受信する。具体的には、受信部36は、中間画像を構成する画素に関する情報(画素数や色情報等)を受信する。受信部36は、受信した中間画像を中間画像記憶部34に格納する。
【0084】
(表示制御部37について)
表示制御部37は、出力装置100に係る中間出力部134によって出力された中間画像を、任意の表示装置(実施形態では出力デバイス20)に表示する。
【0085】
また、表示制御部37は、後述する生成部38によって生成された介入情報を中間画像に反映させた画像である介入画像を表示装置に表示する。具体的には、表示制御部37は、出力デバイス20に表示中の中間画像にタッチ操作が行われた場合、タッチ操作が行われた画素を特定し、当該画素を黒く表示するよう制御する。このように、中間画像を黒く表示する処理により、介入画像が出力デバイス20上に表示される。これにより、ユーザは、中間画像において、自身がどの位置にタッチしたかを認識することができる。
【0086】
(生成部38について)
生成部38は、表示制御部37によって表示された中間画像に対する介入処理に基づいて、介入情報を生成する。具体的には、生成部38は、中間画像においてユーザから介入処理を受け付けた画素の座標情報を特定し、特定した座標情報を示した介入情報を生成する。生成部38は、生成した介入情報を介入情報記憶部35に格納する。
【0087】
具体的には、生成部38は、中間画像が表示された出力デバイス20に対するユーザの選択操作に基づいて、中間画像において選択された箇所の情報を欠落させた介入情報を生成する。ユーザの選択操作とは、例えば、タッチセンサを有する出力デバイス20に対するタッチ操作や、その他のポインティングデバイスを利用して中間画像を構成する画素をユーザが選択する操作をいう。これにより、ユーザは、中間画像を視認しながら欠落させたい情報を自身で選択して、ニューラルネットワークの処理に影響を与えることができる。
【0088】
生成部38が行う処理について、
図10及び
図11を用いて説明する。
図10は、実施形態に係る介入処理の一例を示す図(1)である。
図10では、ディスプレイ60に表示された中間画像61に対して、ユーザがタッチ操作による介入処理を行った例を示す。
【0089】
図10の例において、生成部38は、ディスプレイ60を介して、ユーザのタッチ操作を検出する(ステップS31)。例えば、ユーザは、指65で中間画像61の一部をタッチする。生成部38は、ユーザが触れた箇所に対応する座標情報に基づいて、欠落箇所を特定する(ステップS32)。具体的には、生成部38は、指65が触れた箇所を示した表示66に対応する座標位置を欠落箇所として特定する。そして、生成部38は、中間画像61から一部の情報が欠落した情報である介入情報を生成する。なお、介入情報は、欠落した箇所のみを示す情報によって表されてもよいし、中間画像61から一部の情報を欠落させた画像情報として表されてもよい。
【0090】
次に、
図11を用いて、生成部38が生成した介入情報の流れを示す。
図11は、実施形態に係る介入処理の手順を示す図(1)である。
図11に示すように、まず、受信部36は、出力装置100からm層目(mは任意の整数)の中間層出力を受信する。
図11において、「R
N(m)×W(m)×H(m)」は、m層の中間層の画像情報を示す。なお、「N」はチャンネル数を示し、「W」は画像における横軸、「H」は画像における縦軸の座標を示す。「H(m)」は、m層の中間層出力の要素を示す。
【0091】
表示制御部37は、受信した中間層出力を整形し、出力デバイス20(ディスプレイ)で表示可能な形式に変換する。整形後の画像は、例えば、「R
W×H」で示され、各々の要素(各画素の情報)は「X」で示される。
【0092】
一方、
図11に示すように、生成部38は、整形された中間画像が表示されたタッチセンサを介して、ユーザのタッチした座標位置を特定し、介入情報を生成する。なお、
図11に示す「M」は、介入情報の要素を示す。例えば、
図11では、介入情報とは、中間画像「R
W×H」で示される画像に含まれる座標「M」であることを示している。すなわち、
図11において、介入情報とは、中間画像においてユーザが触れた座標「M」を示した情報である。
【0093】
そして、送信部39は、生成部38によって生成された介入情報を出力装置100に送信する。また、表示制御部37は、介入情報と中間画像とに基づいて、介入処理に関する演算を行う。例えば、表示制御部37は、中間画像の要素「X」と介入情報の要素「M」との要素積を算出して、介入後の中間画像に関する情報を演算する(
図11中の「○」は、要素積の算出を示す)。そして、表示制御部37は、介入後の中間画像をディスプレイに表示する。
【0094】
また、生成部38は、出力デバイス20に設置された撮像装置(カメラ)を制御して生成される2値化情報と、出力デバイス20に表示された中間画像とに基づいて、中間画像の一部又は全部の情報を欠落させた介入情報を生成する。これにより、出力装置100は、ユーザが身体を動かすたびにニューラルネットワークの出力結果を変化させることができるため、思いがけない出力結果をユーザに提示させ、ユーザを楽しませることができる。
【0095】
上記の生成部38が行う処理について、
図12及び
図13を用いて説明する。
図12は、実施形態に係る介入処理の一例を示す図(2)である。
図12では、ユーザの近傍に設置されたカメラ75によってユーザが撮像され、撮像された画像に基づいて介入情報が生成される例を示す。
【0096】
図12の例において、生成部38は、カメラ75を介して、ユーザを撮像した画像90を取得する(ステップS41)。続けて、生成部38は、取得した画像90を2値化データに変換する(ステップS42)。例えば、生成部38は、所定の閾値よりも明度の低い画素を「0」、所定の閾値よりも明度の高い画素を「1」とする。
【0097】
また、生成部38は、出力装置100から受信した中間画像91を取得する(ステップS43)。そして、生成部38は、中間画像91に画像90を2値化したデータを重畳させる(ステップS44)。そして、生成部38は、中間画像91のうち、画像90を2値化した場合に「0」と判定された画素と重畳する画素を、欠落させるデータとして特定する。生成部38は、かかる欠落させたデータに基づいて、介入情報を生成する。
【0098】
次に、
図13を用いて、生成部38が生成した介入情報の流れを示す。
図13は、実施形態に係る介入処理の手順を示す図(2)である。
図13に示すように、まず、受信部36は、
図11と同様、出力装置100からm層目(mは任意の整数)の中間層出力を受信する。
【0099】
また、
図13に示すように、生成部38は、カメラから取得されたカメラ画像を2値化して、2値化画像を得る。そして、生成部38は、2値化画像を中間画像に重畳可能なようにリサイズする。そして、生成部38は、2値化情報に基づいて、介入情報(
図13に示す要素「Y」により示される)を生成する。送信部39は、生成部38によって生成された介入情報を出力装置100に送信する。また、表示制御部37は、中間画像の要素「X」と介入情報の要素「Y」との要素積を算出して、介入後の中間画像に関する情報を演算する。そして、表示制御部37は、介入後の中間画像をディスプレイに表示する。なお、生成部38は、中間画像の要素「X」と2値化情報の要素積を介入情報としてもよい。
【0100】
ここで、
図14を用いて、表示制御装置30から取得した介入情報に基づいて、出力装置100で行われる演算の概要について説明する。
図14は、実施形態に係る出力処理の手順を示す概要図である。
図14に示すように、ユーザ顔画像が入力されたのち、出力装置100は、第1層の計算を行い、第1層の出力(第1中間画像)を得る(なお、「f」は活性化関数を示す)。そして、出力装置100は、第1層の介入処理を実行し(
図11や
図13で示す「介入処理」と同様の処理)、介入処理を経た第1層の出力を得る。
【0101】
その後、出力装置100は、第2層の計算を行い、第2層の出力(第2中間画像)を得る。これらの処理を繰り返し、出力装置100は、出力層に至るまでの演算を行う。なお、
図14に示す例では、出力装置100は、第M層という複数の中間層を有するDNNを利用した演算を行っているため、最終的な結果として、出力層からDNN出力を得る。実施形態では、DNN出力は、画像情報である。
【0102】
(送信部39について)
送信部39は、各種情報を送信する。例えば、送信部39は、生成部38が生成した介入情報を出力装置100に送信する。
【0103】
〔5.処理手順〕
次に、
図15を用いて、実施形態に係る出力装置100による処理の手順について説明する。
図15は、実施形態に係る処理手順を示すフローチャートである。
【0104】
図15に示すように、出力装置100は、カメラ等の入力デバイス10を介して、ユーザの顔画像を取得する(ステップS101)。出力装置100は、取得した顔画像をモデルに入力する(ステップS102)。
【0105】
その後、出力装置100は、所定時間(例えば、ユーザがニューラルネットワークの出力の変化を体験する体験時間として設定された時間)が経過したか否かを判定する(ステップS103)。所定時間が経過していない場合(ステップS103;No)、出力装置100は、出力した中間画像に対する介入情報を表示制御装置30から受け付ける(ステップS105)。続けて、出力装置100は、介入情報に基づいて、次の層の情報を算出する(ステップS106)。具体的には、出力装置100は、介入処理を経た前段の出力に基づいて、次の層を構成する各ノードの値を算出する。
【0106】
その後、出力装置100は、算出した層(次の層)が出力層であるか否かを判定する(ステップS107)。出力層でない場合(ステップS107;No)、出力装置100は、次の中間層の中間画像を出力する処理を繰り返す(ステップS104)。
【0107】
一方、出力装置100は、次の層が出力層である場合(ステップS107;Yes)、出力層からモデルの出力結果である第2画像を出力する(ステップS108)。そして、出力装置100は、出力した第2画像を出力デバイス20等に表示する(ステップS109)。その後、所定時間が経過した場合に(ステップS103;Yes)、出力装置100は、一連の出力処理を終了する。
【0108】
なお、
図15での図示は省略したが、出力装置100は、任意のタイミング(例えば、ユーザの顔画像を最初にモデルに入力する直前)に、それまでの介入情報を初期化する処理を実行してもよい。
【0109】
〔6.変形例〕
上述した実施形態に係る出力システム1は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、上記の出力システム1に含まれる各装置の他の実施形態について説明する。
【0110】
〔6−1.出力装置の構成〕
上記実施形態では、出力装置100が、中間画像を表示制御装置30に出力し、表示制御装置30を介して介入情報を受け付ける例を示した。ここで、これらの処理は、出力装置100のみによって行われてもよい。
【0111】
この点について、
図16を用いて説明する。
図16は、変形例に係る出力装置200の構成例を示す図である。
図16に示すように、出力装置200は、出力装置100と比較して、中間画像記憶部123と、介入情報記憶部124と、表示制御部137と、生成部138とをさらに有する。
【0112】
中間画像記憶部123は、表示制御装置30に係る中間画像記憶部34と同様の情報を記憶する。介入情報記憶部124は、表示制御装置30に係る介入情報記憶部35と同様の情報を記憶する。また、表示制御部137は、表示制御装置30に係る表示制御部37と同様の処理を実行する。生成部138は、表示制御装置30に係る生成部38と同様の処理を実行する。
【0113】
すなわち、出力装置100は、表示制御装置30が実行する処理を自装置で実行してもよい。これにより、出力装置100は、簡易なシステム設計で実施形態に係る出力処理を実行することができる。
【0114】
〔6−2.出力システムの各装置〕
出力システム1に含まれる各装置は、様々な変形例により実現されてもよい。例えば、出力システム1は、ユーザを撮像するカメラ50を制御するための撮影用PCを備えてもよい。出力装置100は、モデルの出力結果である第2画像を表示するディスプレイを備えてもよい。この場合、出力装置100は、ノートPCやタブレット等、表示装置としての機能を兼ねる情報処理端末によって実現される。
【0115】
〔6−3.介入処理〕
上記実施形態では、介入処理として、ユーザによるタッチ操作や、カメラによって撮像される画像情報等の例を示した。しかし、介入処理は、中間画像に対して行われる種々のユーザの操作や、あるいは、ユーザの発する音声による音声データ等であってもよい。
【0116】
また、上記実施形態では、出力装置100は、介入情報として、中間画像として表示された一部の情報を欠落させた情報を利用することを示した。しかし、介入情報は、必ずしも中間画像の一部を欠落させたものではなく、中間画像の一部を変化させたものであってもよい。例えば、介入情報は、中間画像として示された画素の情報を任意に変化(例えば、明度や色情報を増減させる等)させたものであってもよい。
【0117】
〔7.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0118】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0119】
例えば、
図4に示したモデル記憶部121や画像記憶部122は、出力装置100が保持せずに、外部のストレージサーバ等に保持されてもよい。この場合、出力装置100は、ストレージサーバにアクセスすることで、モデルや画像情報等を取得する。
【0120】
また、例えば、上述してきた出力装置100は、表示制御装置30から介入情報を取得したり、出力デバイス20に第2画像を出力したりといった、外部装置とのやりとりを中心に実行するフロントエンドサーバ側と、モデルを用いた演算処理を中心に実行するバックエンドサーバ側とに分散されてもよい。
【0121】
〔8.ハードウェア構成〕
また、上述してきた実施形態に係る出力装置100や、入力デバイス10や、出力デバイス20や、表示制御装置30等は、例えば
図17に示すような構成のコンピュータ1000によって実現される。以下、出力装置100を例として説明する。
図17は、出力装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
【0122】
CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0123】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス1500は、通信網500(
図3に示すネットワークNに対応する)を介して他の機器からデータを受信してCPU1100へ送り、また、通信網500を介してCPU1100が生成したデータを他の機器へ送信する。
【0124】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、入出力インターフェイス1600を介して生成したデータを出力装置へ出力する。
【0125】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラム又はデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0126】
例えば、コンピュータ1000が出力装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、HDD1400には、記憶部120内の各データが格納される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網500を介してこれらのプログラムを取得してもよい。
【0127】
〔9.効果〕
上述してきたように、実施形態に係る出力装置100は、入力部132と、中間出力部134と、受付部135と、結果出力部136とを有する。入力部132は、画像を出力するニューラルネットワークであるモデルに、処理対象である第1画像を入力する。中間出力部134は、第1画像が入力されたモデルの中間層における画像である中間画像を出力する。受付部135は、中間画像に対する介入処理を反映させた情報である介入情報を受け付ける。結果出力部136は、受付部135によって受け付けられた介入情報に基づいて、モデルの出力層から第2画像を出力する。
【0128】
このように、実施形態に係る出力装置100は、ニューラルネットワークの演算の過程において、中間層から出力した中間画像に対する介入情報を受け付けることで、ニューラルネットワークにユーザが介入することを可能にする。これにより、出力装置100は、モデルから出力される結果を動的に修正することができる。
【0129】
また、中間出力部134は、第1画像が入力されたモデルの第1中間層における画像である第1中間画像を出力し、その後、受付部135によって第1中間画像に対する介入処理を反映させた第1介入情報が受け付けられた場合には、第1介入情報が入力されたモデルの次段の中間層における画像である第2中間画像を出力する。
【0130】
このように、実施形態に係る出力装置100は、中間層が複数にわたる場合には、中間層ごとに中間画像を出力してもよい。これにより、出力装置100は、ニューラルネットワークの様々な過程でユーザによる介入を受け付けることができるので、より詳細にユーザの介入を出力結果に反映させることができる。
【0131】
また、受付部135は、中間画像に対する介入処理によって中間画像の一部又は全部の情報を欠落させた情報である介入情報を受け付ける。
【0132】
このように、実施形態に係る出力装置100は、中間画像を欠落させた介入情報を受け付ける。言い換えれば、出力装置100は、ニューラルネットワークによって抽出された特徴的な部分を欠落させる情報を受け付ける。これにより、出力装置100は、入力された画像の一部の特徴をニューラルネットワークの演算から削除することができるため、介入処理によって出力結果がどのように変化するかをユーザにわかりやすく提示することができる。
【0133】
また、変形例に係る出力装置200は、中間出力部134によって出力された中間画像を表示装置に表示する表示制御部137と、表示制御部137によって表示された中間画像に対する介入処理に基づいて介入情報を生成する生成部138と、をさらに備える。また、受付部135は、生成部138によって生成された介入情報を受け付ける。
【0134】
このように、変形例に係る出力装置200は、中間画像を表示する処理や、介入情報を生成する処理を自装置で実行してもよい。これにより、出力装置200は、より簡易的なシステムで出力処理を実行することができる。
【0135】
また、生成部138は、中間画像が表示された表示装置に対するユーザの選択操作に基づいて、中間画像において選択された箇所の情報を欠落させた介入情報を生成する。
【0136】
このように、変形例に係る出力装置200は、欠落情報をユーザの選択操作に基づいて生成することで、ユーザの動きと連動した第2画像(出力結果)の変化をユーザに提示できるため、第2画像の変化を楽しむといった娯楽をユーザに提供することができる。また、出力装置200は、中間画像のどのような箇所が変化することで出力結果がどのような影響を受けるのかといった、通常では認識することのできないモデルの内部処理をユーザに体感させることができる。
【0137】
また、生成部138は、表示装置に設置された撮像装置を制御して生成される2値化情報と、表示装置に表示された中間画像とに基づいて、中間画像の一部又は全部の情報を欠落させた介入情報を生成する。
【0138】
このように、変形例に係る出力装置200は、カメラ等に撮像された風景等に基づいて介入情報を生成してもよい。これにより、出力装置200は、ユーザが意図しない変化を出力結果に反映させることができるため、印象的なデモンストレーション等を行うことができる。
【0139】
また、表示制御部137は、生成部138によって生成された介入情報を中間画像に反映させた画像である介入画像を表示装置に表示する。
【0140】
このように、変形例に係る出力装置200は、ユーザがタッチした箇所がわかるような、介入情報が反映された中間画像をユーザに提示する。これにより、出力装置200は、ユーザがどの箇所を触れることでどのように出力結果が変化するかをユーザに知覚させることができるので、モデルによる演算や介入による変化をユーザに実感させることができる。
【0141】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0142】
また、上述した出力装置100は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【0143】
また、特許請求の範囲に記載した「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。