(57)【要約】【課題】モデルから出力される結果を動的に修正すること。【解決手段】本願に係る出力装置は、入力部と、中間出力部と、受付部と、結果出力部とを有する。入力部は、画像を出力するニューラルネットワークであるモデルに、処理対象である第１画像を入力する。中間出力部は、第１画像が入力されたモデルの中間層における画像である中間画像を出力する。受付部は、中間画像に対する介入処理を反映させた情報である介入情報を受け付ける。結果出力部は、受付部によって受け付けられた介入情報に基づいて、モデルの出力層から第２画像を出力する。【選択図】図１
2019200485.tif 000002
【特許請求の範囲】
【請求項１】
画像を出力するニューラルネットワークであるモデルに、処理対象である第１画像を入力する入力部と、
前記第１画像が入力されたモデルの中間層における画像である中間画像を出力する中間出力部と、
前記中間画像に対する介入処理を反映させた情報である介入情報を受け付ける受付部と、
前記受付部によって受け付けられた介入情報に基づいて、前記モデルの出力層から第２画像を出力する結果出力部と、
を備えたことを特徴とする出力装置。
【請求項２】
前記中間出力部は、
前記第１画像が入力されたモデルの第１中間層における画像である第１中間画像を出力し、その後、前記受付部によって前記第１中間画像に対する介入処理を反映させた第１介入情報が受け付けられた場合には、当該第１介入情報が入力されたモデルの次段の中間層における画像である第２中間画像を出力する、
ことを特徴とする請求項１に記載の出力装置。
【請求項３】
前記受付部は、
前記中間画像に対する介入処理によって当該中間画像の一部又は全部の情報を欠落させた情報である前記介入情報を受け付ける、
ことを特徴とする請求項１又は２に記載の出力装置。
【請求項４】
前記中間出力部によって出力された中間画像を表示装置に表示する表示制御部と、
前記表示制御部によって表示された中間画像に対する介入処理に基づいて、前記介入情報を生成する生成部と、
をさらに備え、
前記受付部は、
前記生成部によって生成された前記介入情報を受け付ける、
ことを特徴とする請求項１〜３のいずれか一つに記載の出力装置。
【請求項５】
前記生成部は、
前記中間画像が表示された表示装置に対するユーザの選択操作に基づいて、当該中間画像において選択された箇所の情報を欠落させた前記介入情報を生成する、
ことを特徴とする請求項４に記載の出力装置。
【請求項６】
前記生成部は、
前記表示装置に設置された撮像装置を制御して生成される２値化情報と、前記表示装置に表示された中間画像とに基づいて、当該中間画像の一部又は全部の情報を欠落させた前記介入情報を生成する、
ことを特徴とする請求項４又は５に記載の出力装置。
【請求項７】
前記表示制御部は、
前記生成部によって生成された前記介入情報を前記中間画像に反映させた画像である介入画像を前記表示装置に表示する、
ことを特徴とする請求項４〜６のいずれか一つに記載の出力装置。
【請求項８】
コンピュータが実行する出力方法であって、
画像を出力するニューラルネットワークであるモデルに、処理対象である第１画像を入力する入力工程と、
前記第１画像が入力されたモデルの中間層における画像である中間画像を出力する中間出力工程と、
前記中間画像に対する介入処理を反映させた情報である介入情報を受け付ける受付工程と、
前記受付工程によって受け付けられた介入情報に基づいて、前記モデルの出力層から第２画像を出力する結果出力工程と、
を含んだことを特徴とする出力方法。
【請求項９】
画像を出力するニューラルネットワークであるモデルに、処理対象である第１画像を入力する入力手順と、
前記第１画像が入力されたモデルの中間層における画像である中間画像を出力する中間出力手順と、
前記中間画像に対する介入処理を反映させた情報である介入情報を受け付ける受付手順と、
前記受付手順によって受け付けられた介入情報に基づいて、前記モデルの出力層から第２画像を出力する結果出力手順と、
をコンピュータに実行させることを特徴とする出力プログラム。
【請求項１０】
出力装置と、表示制御装置とを有する出力システムであって、
前記出力装置は、
画像を出力するニューラルネットワークであるモデルに、処理対象である第１画像を入力する入力部と、
前記第１画像が入力されたモデルの中間層における画像である中間画像を出力する中間出力部と、を備え、
前記表示制御装置は、
前記中間出力部によって出力された中間画像を表示装置に表示する表示制御部と、
前記表示制御部によって表示された中間画像に対する介入処理を反映させた情報である介入情報を生成する生成部と、を備え、
前記出力装置は、さらに、
前記生成部によって生成された前記介入情報を受け付ける受付部と、
前記受付部によって受け付けられた介入情報に基づいて、前記モデルの出力層から第２画像を出力する結果出力部と、
を備えることを特徴とする出力システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力装置、出力方法、出力プログラム及び出力システムに関する。
【背景技術】
【０００２】
ニューラルネットワーク（Neural  Network）を用いて学習されたモデルを活用する情報処理が盛んに行われている。例えば、多段に接続されたニューロンを有するＤＮＮ（Deep  Neural  Network）を利用して、言語認識や画像認識等といった各種分類処理を実現する技術が知られている。
【０００３】
また、ニューラルネットワークに処理対象の画像を入力し、ニューラルネットワークの中間層から中間画像を抽出することによって、ニューラルネットワークが画像内の所定の対象を認識するために用いる合成画像を生成する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６２１４０７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、モデルから出力される結果を動的に修正することは難しい。具体的には、上記の従来技術は、画像内の所定の対象を認識するために用いる情報を生成するものであり、ニューラルネットワークの出力結果そのものを修正するような処理に適用することは困難である。
【０００６】
本願は、上記に鑑みてなされたものであって、モデルから出力される結果を動的に修正することができる出力装置、出力方法、出力プログラム及び出力システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る出力装置は、画像を出力するニューラルネットワークであるモデルに、処理対象である第１画像を入力する入力部と、前記第１画像が入力されたモデルの中間層における画像である中間画像を出力する中間出力部と、前記中間画像に対する介入処理を反映させた情報である介入情報を受け付ける受付部と、前記受付部によって受け付けられた介入情報に基づいて、前記モデルの出力層から第２画像を出力する結果出力部と、を備えたことを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、モデルから出力される結果を動的に修正することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る出力処理の一例を示す図である。
【図２】図２は、実施形態に係る出力処理の実行例を示す図である。
【図３】図３は、実施形態に係る出力システムの構成例を示す図である。
【図４】図４は、実施形態に係る出力装置の構成例を示す図である。
【図５】図５は、実施形態に係るモデル記憶部の一例を示す図である。
【図６】図６は、実施形態に係る画像記憶部の一例を示す図である。
【図７】図７は、実施形態に係る表示制御装置の構成例を示す図である。
【図８】図８は、実施形態に係る中間画像記憶部の一例を示す図である。
【図９】図９は、実施形態に係る介入情報記憶部の一例を示す図である。
【図１０】図１０は、実施形態に係る介入処理の一例を示す図（１）である。
【図１１】図１１は、実施形態に係る介入処理の手順を示す図（１）である。
【図１２】図１２は、実施形態に係る介入処理の一例を示す図（２）である。
【図１３】図１３は、実施形態に係る介入処理の手順を示す図（２）である。
【図１４】図１４は、実施形態に係る出力処理の手順を示す概要図である。
【図１５】図１５は、実施形態に係る処理手順を示すフローチャートである。
【図１６】図１６は、変形例に係る出力装置の構成例を示す図である。
【図１７】図１７は、出力装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る出力装置、出力方法、出力プログラム及び出力システムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る出力装置、出力方法、出力プログラム及び出力システムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１１】
〔１．出力処理の一例〕
まず、図１を用いて、実施形態に係る出力処理の一例について説明する。図１は、実施形態に係る出力処理の一例を示す図である。図１では、実施形態に係る出力装置１００が、画像を出力するニューラルネットワークとして学習されたモデルに、処理対象となる画像（以下、区別のため「第１画像」と称する場合がある）を入力し、実施形態に係る出力処理により、モデルの出力層から画像（以下、区別のため「第２画像」と称する場合がある）を出力する例について説明する。
【００１２】
図１に示す出力装置１００は、実施形態に係る出力処理を実行するサーバ装置である。出力装置１００は、画像を出力するニューラルネットワークとして学習されたモデルＭ０１を用いて、実施形態に係る出力処理を実行する。
【００１３】
図１に示す表示制御装置３０１及び３０２は、モデルＭ０１の中間層から出力される画像をディスプレイ等の出力デバイスに表示するよう制御するサーバ装置である。なお、表示制御装置３０１及び３０２を区別する必要のない場合、表示制御装置３０と総称する。
【００１４】
実施形態において、出力装置１００は、複数のノードを多段に接続したニューラルネットワークとして学習されたモデルＭ０１を保持する。例えば、モデルＭ０１は、ＤＮＮ、ＬＳＴＭ（Long  Short-Term  Memory）、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等であってもよい。また、モデルＭ０１は、これら畳み込みニューラルネットワークや、再帰型ニューラルネットワークの機能を組み合わせたものであってもよい。
【００１５】
モデルＭ０１は、第１画像が入力層に入力された場合に、複数の中間層を経て、出力層から第２画像を出力するよう学習されたモデルである。すなわち、モデルＭ０１は、ある入力情報が入力された際に、その入力情報を変換した他の出力情報を出力するよう学習されている。例えば、モデルＭ０１は、複数の人間の顔の特徴を事前に学習したモデルである。この場合、出力装置１００は、所定のユーザの顔を撮像した顔画像をモデルＭ０１に入力すると、モデルＭ０１の生成時に学習された複数の人間の顔の特徴を合成した画像を第２画像として出力する。
【００１６】
一般に、ニューラルネットワークでは、入力信号に対して、複数の中間層の各々に設定された様々な接続係数が乗じられ、出力信号が算出される。この場合、ユーザは、出力結果を確認できるものの、中間層による演算処理に介入することはできないため、出力結果を確認したのち、あらためて異なる入力信号（ここでは、ユーザの顔画像）を入力したり、モデルを新たに学習し直したりすることを要する。すなわち、従来では、ユーザがニューラルネットワークの出力結果を微修正することや、ニューラルネットワークの演算過程に介入することは困難であった。
【００１７】
そこで、実施形態に係る出力装置１００は、以下に示す出力処理によって、ユーザによる介入処理を出力結果に反映させる。具体的には、出力装置１００は、第１画像が入力されたモデルＭ０１の中間層における画像である中間画像を出力する。そして、出力装置１００は、中間画像に対する介入処理を反映させた情報である介入情報を受け付ける。さらに、出力装置１００は、受け付けられた介入情報に基づいて、モデルＭ０１の出力層から第２画像を出力する。このように、出力装置１００は、中間層の処理に対してユーザが介入する手段を与え、ユーザが介入したことにより生じる介入情報を演算処理に加えることで、学習済みモデルが行う演算に対してユーザが微調整を行うことを可能とする。以下、実施形態に係る出力処理について、図１を用いて流れに沿って説明する。
【００１８】
まず、ユーザは、カメラ５０等の入力デバイスを用いて自身の顔を撮影し、顔画像を作成する。そして、ユーザは、撮影した顔画像を出力装置１００に送信する（ステップＳ１１）。例えば、ユーザは、画像を出力するネットワーク機能を備えたカメラ５０を介して顔画像を送信してもよいし、カメラ５０と接続された端末装置等を介して顔画像を送信してもよい。なお、カメラ５０は、所定のトリミング処理を行った顔画像を作成してもよい。例えば、カメラ５０は、既存の顔認識技術に基づいて、ユーザの顔を示す範囲のみを残し、背景等の情報を削除するトリミング処理を行った後の顔画像を出力装置１００に送信してもよい。
【００１９】
出力装置１００は、ユーザから取得した顔画像をモデルＭ０１に入力する（ステップＳ１２）。具体的には、出力装置１００は、顔画像を形成する各画素（ピクセル）の情報を入力信号として、モデルＭ０１の入力層に入力する。この場合、モデルＭ０１の入力層は、顔画像を構成する各画素の数、及び、画素の色情報（例えば、ＲＧＢの３チャンネル）に対応する数のノードを有する。
【００２０】
モデルＭ０１では、入力層のノードに所定の接続係数（重み値）が乗じられ、第１中間層のノードが算出される。なお、入力層の各ノードと乗じられる接続係数の値や、どのノードとどのエッジに対応する接続係数が乗じられるかといったニューラルネットワークの構造は、学習段階で決定される。なお、ニューラルネットワークの構造については、既存の技術であるため説明を省略する。
【００２１】
続いて、出力装置１００は、モデルＭ０１の第１中間層が有する情報に基づいて、中間画像を出力する（ステップＳ１３）。具体的には、出力装置１００は、第１中間層のノードが有する値に基づいて中間画像６１を生成し、生成した中間画像６１を出力する。出力装置１００は、出力した中間画像６１を表示制御装置３０１に送信する。表示制御装置３０１は、中間画像６１を出力デバイスの一例であるディスプレイ６０に表示するよう制御する（ステップＳ１４）。
【００２２】
なお、図１の例では、中間画像６１は、ユーザの顔を構成する箇所（目や鼻など）が認識できるよう図示されている。この場合、表示制御装置３０１は、第１中間層の各ノードに基づいて、第１画像と同様の画素の並びを再現して中間画像６１を生成したものと想定される。しかし、各中間層から出力される中間画像は、実際には、ユーザが対象を認識できないような画像である場合がある。例えば、モデルＭ０１が畳み込みニューラルネットワークで学習されたモデルである場合、中間画像は、畳み込みで用いられた、特徴量を抽出するための複数のフィルタの情報が反映された画像となる。この場合、中間画像は、個々のフィルタを適用した画像の大きさ（例えば、１６ピクセル×１６ピクセルなど）ごとにユーザの顔が区切られた、モザイクのような画像で示される。
【００２３】
ディスプレイ６０は、ユーザが視認できる位置に設置される。すなわち、ユーザは、自身を撮像した顔画像が第１中間層で処理された画像である中間画像６１を視認することができる。
【００２４】
また、図１の例では、ディスプレイ６０はタッチパネルを採用したディスプレイである。すなわち、ユーザは、ディスプレイ６０に対してタッチ操作による介入を行うことができる。例えば、ユーザは、指６５を用いてディスプレイ６０に表示された中間画像６１の任意の箇所をタッチすることで、タッチ操作による介入を行う（ステップＳ１５）。なお、表示制御装置３０１は、ユーザがタッチ操作を行った場合、タッチ操作が行われた箇所（図１で示す表示６６）が黒く塗りつぶされるよう、表示を制御する。
【００２５】
ここで、表示制御装置３０１は、ユーザのタッチ操作に基づいて、介入情報を取得する（ステップＳ１６）。介入情報とは、中間画像に対する介入処理を反映させた情報である。具体的には、介入情報とは、中間画像６１においてユーザからタッチされた箇所の画素を示す情報である。すなわち、介入情報に示される画素とは、ユーザがディスプレイ６０上で黒く塗りつぶした箇所に対応する画素である。より具体的には、介入情報は、例えばユーザからタッチされた画素を指し示した座標情報によって表される。
【００２６】
表示制御装置３０１は、取得した介入情報を出力装置１００に送信する（ステップＳ１７）。出力装置１００は、受け付けた介入情報に基づいて、モデルＭ０１の演算への介入処理を行う（ステップＳ１８）。具体的には、出力装置１００は、第１中間層のノードのうち、介入情報に対応したノードを特定する。すなわち、出力装置１００は、中間画像６１に対してユーザのタッチ操作が行われた画素に対応するノードを特定する。そして、出力装置１００は、特定したノードをマスクする処理を行う。具体的には、出力装置１００は、特定したノードを除いたノードのみを用いて、次の中間層（第２中間層）への演算を行う。
【００２７】
ステップＳ１８を経て、出力装置１００は、モデルＭ０１の第２中間層のノードの値を決定する。そして、出力装置１００は、第２中間層に対応する中間画像７１を出力し（ステップＳ１９）、表示制御装置３０２に送信する。表示制御装置３０２は、出力装置１００から送信された中間画像７１をディスプレイ７０に表示する（ステップＳ２０）。
【００２８】
図１の例では、ディスプレイ７０の近傍にカメラ７５が設置される。カメラ７５は、例えば、ユーザがカメラ５０を操作する状況や、ディスプレイ６０をタッチしている状況を撮像可能なように設置される。カメラ７５は、リアルタイムなユーザの状況を継続的に撮像し、撮像した画像を表示制御装置３０２に送信する。言い換えれば、ユーザは、カメラ７５で撮像された画像に基づく介入を行う（ステップＳ２１）。
【００２９】
表示制御装置３０２は、カメラ７５が撮像した画像を所定の閾値に基づいて２値化情報に変換する。かかる２値化情報は、中間画像７１と同じ大きさ（すなわち同一の画素数）を有する。そして、表示制御装置３０２は、得られた２値化情報を介入情報として取得する（ステップＳ２２）。例えば、表示制御装置３０２は、２値化情報のうち、黒色側を示した画素に対応する座標情報を介入情報として取得する。
【００３０】
表示制御装置３０２は、取得した介入情報を出力装置１００に送信する（ステップＳ２３）。出力装置１００は、受け付けた介入情報に基づいて、モデルＭ０１の演算への介入処理を行う（ステップＳ２４）。具体的には、出力装置１００は、第２中間層のノードのうち、介入情報に対応したノードを特定する。例えば、出力装置１００は、中間画像７１と２値化情報とを重畳させ、２値化情報のうち黒色側を示した画素に対応するノードを特定する。そして、出力装置１００は、特定したノードをマスクする処理を行う。具体的には、出力装置１００は、特定したノードを除いたノードのみを用いて、次の中間層（第３中間層）への演算を行う。
【００３１】
出力装置１００は、上記で示したような中間画像の出力と介入情報の取得とを、モデルＭ０１の出力層まで繰り返す。出力装置１００は、最後の中間層への介入処理を終えた場合、最後の中間層から出力層への演算を行い、出力層から第２画像を出力させる（ステップＳ２５）。
【００３２】
出力装置１００は、ディスプレイ８０に、出力結果である第２画像８１を表示するよう制御する。第２画像８１は、ユーザが入力した顔画像に、モデルＭ０１の学習時において学習された複数の顔画像における特徴が合成されたものである。また、第２画像８１には、各々の中間層における介入処理が反映される。出力装置１００は、ディスプレイ８０に第２画像８１を表示することで、ユーザへ出力結果を提示する（ステップＳ２６）。
【００３３】
なお、ステップＳ１２からステップＳ２６までの処理は、ステップＳ１１の入力の開始から所定時間が経過するまで、連続的に実行される。すなわち、ユーザは、ディスプレイ６０をタッチしたり、カメラ７５に撮像される姿（影）を変化させたりして、第２画像８１の変化を確認することができる。これにより、ユーザは、モデルＭ０１から出力される結果を確認しながら、インタラクティブにモデルＭ０１の演算への介入を行うことができる。すなわち、ユーザは、モデルの出力結果を動的に修正することができる。
【００３４】
ここで、図１で示した出力装置１００による出力処理が実際に行われる状況について、図２を用いて説明する。図２は、実施形態に係る出力処理の実行例を示す図である。図２に示すように、ユーザは、カメラ５０によって自身の顔画像が撮像される位置に座る。そして、ユーザは、ディスプレイ６０に表示される中間画像６１にタッチしたり、カメラ７５に撮像される姿を変化させたりしながら、ディスプレイ８０に表示される第２画像８１を確認する。なお、図２に示すように、出力処理の実行例では、第１中間層や第２中間層とは異なる中間層から出力される中間画像を表示するための他のディスプレイがさらに設置されてもよい。
【００３５】
上述してきたように、実施形態に係る出力装置１００は、画像を出力するニューラルネットワークであるモデルＭ０１に、処理対象である第１画像を入力する。そして、出力装置１００は、第１画像が入力されたモデルＭ０１の中間層における画像である中間画像６１や中間画像７１を出力する。続けて、出力装置１００は、中間画像６１や中間画像７１に対する介入処理を反映させた情報である介入情報を受け付ける。さらに、出力装置１００は、受け付けられた介入情報に基づいて、モデルＭ０１の出力層から第２画像８１を出力する。
【００３６】
このように、実施形態に係る出力装置１００は、中間画像６１等に対するタッチ操作等の介入処理により生じた介入情報をモデルＭ０１の演算に組み込む構成を有することで、ユーザが動的にニューラルネットワークの処理に介入することを可能にする。これにより、出力装置１００は、モデルから出力される結果を動的に修正することができる。また、出力装置１００は、リアルタイムに変化する出力結果である第２画像を提示させながらユーザからの介入操作を受け付けることで、第２画像の変化を楽しむといった娯楽をユーザに提供することができる。また、出力装置１００は、中間画像に触れた箇所の入力をマスクし、その結果を第２画像に反映させることで、中間画像のどのような箇所が変化することで出力結果がどのような影響を受けるのかといった、通常では認識することのできないモデルの内部処理をユーザに体感させることができる。
【００３７】
なお、図１や図２の例では、ユーザからの介入処理としてタッチ操作やカメラによって撮像された画像情報等を利用する例を示したが、介入処理はこれに限られない。例えば、介入処理は、マウス等のポインティングデバイスを利用して行われてもよいし、音声入力等によって行われてもよい。
【００３８】
以下、上記のような出力処理を行う出力装置１００、及び出力装置１００を含む出力システム１の構成や処理について、さらに詳細に説明する。
【００３９】
〔２．出力システムの構成〕
次に、図３を用いて、実施形態に係る出力システム１の構成について説明する。図３は、実施形態に係る出力システム１の構成例を示す図である。図３に示すように、出力システム１は、入力デバイス１０と、出力デバイス２０と、表示制御装置３０と、出力装置１００とを含む。出力システム１に含まれる各装置は、通信ネットワークであるネットワークＮ（例えば、インターネット）を介して有線または無線により通信可能に接続される。なお、図３に示す出力システム１に含まれる各装置の数は図示したものに限られない。例えば、出力システム１には、複数台の入力デバイス１０が含まれてもよい。
【００４０】
入力デバイス１０は、種々の情報の入力を行うために利用されるデバイス（情報処理装置）である。例えば、入力デバイス１０は、図１に示したカメラ５０やカメラ７５等である。また、入力デバイス１０には、カメラ機能やマイク機能を備えたデスクトップ型ＰＣ（Personal  Computer）や、ノート型ＰＣや、スマートフォン等の携帯電話機や、タブレット端末や、ＰＤＡ（Personal  Digital  Assistant）等であってもよい。入力デバイス１０は、入力された情報を出力装置１００や表示制御装置３０等に送信する。
【００４１】
出力デバイス２０は、種々の情報を出力するデバイスである。例えば、出力デバイスは、図１に示したディスプレイ６０やディスプレイ７０、ディスプレイ８０等である。なお、入力デバイス１０と出力デバイス２０は、別の装置でなく、一体であってもよい。例えば、出力デバイス２０がタッチパネルを備えたディスプレイである場合、かかるディスプレイは、出力デバイス２０であるとともに、入力デバイス１０としても機能する。出力デバイス２０は、出力装置１００や表示制御装置３０から送信された情報に基づいて、画像等の情報を出力（表示）する。
【００４２】
表示制御装置３０は、出力装置１００が中間層から出力させた中間画像を取得し、中間画像を出力デバイス２０に表示するよう制御するサーバ装置である。また、表示制御装置３０は、入力デバイス１０に入力された情報に基づいて、中間画像に対する介入情報を取得する。具体的には、表示制御装置３０は、ユーザのタッチ操作やユーザを撮像した画像情報等に基づいて介入情報を取得する。そして、表示制御装置３０は、取得した介入情報を出力装置１００に送信する。
【００４３】
出力装置１００は、上述のように、モデルの中間層から中間画像を出力し、中間画像に対する介入情報を受け付け、受け付けられた介入情報に基づいて、モデルの出力層から第２画像を出力する出力処理を実行するサーバ装置である。
【００４４】
〔３．出力装置の構成〕
次に、図４を用いて、実施形態に係る出力装置１００の構成について説明する。図４は、実施形態に係る出力装置１００の構成例を示す図である。図４に示すように、出力装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、出力装置１００は、出力装置１００を利用する管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を出力するための出力部（例えば、液晶ディスプレイ等）を有してもよい。
【００４５】
（通信部１１０について）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、ネットワークＮと有線又は無線で接続され、ネットワークＮを介して、入力デバイス１０や、出力デバイス２０や、表示制御装置３０との間で情報の送受信を行う。
【００４６】
（記憶部１２０について）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部１２０は、モデル記憶部１２１と、画像記憶部１２２とを有する。
【００４７】
（モデル記憶部１２１について）
モデル記憶部１２１は、出力装置１００が保持するモデルに関する情報を記憶する。ここで、図５に、実施形態に係るモデル記憶部１２１の一例を示す。図５は、実施形態に係るモデル記憶部１２１の一例を示す図である。図５に示すように、モデル記憶部１２１は、「モデルＩＤ」、「入力データ」、「接続係数」、「出力データ」といった項目を有する。
【００４８】
「モデルＩＤ」は、モデルを識別する識別情報を示す。なお、以下の説明では、図５に示すような識別情報を参照符号として用いる場合がある。例えば、識別情報が「Ｍ０１」で示されるモデルを「モデルＭ０１」と表記する場合がある。
【００４９】
「入力データ」は、モデルに入力されるデータの形式（態様）を示す。「接続係数」は、モデルにおける接続係数（重み値）を示す。「出力データ」は、モデルから出力されるデータの形式を示す。図５に示した例では、「入力データ」や「接続係数」や「出力データ」を「Ａ０１」のような概念で示しているが、実際には、各項目に対応する具体的な情報が記憶される。例えば、「入力データ」の項目には、モデルに入力可能なデータの具体的な形式（例えば、入力される画像の画素数や色情報が３チャンネルで表現されること等）が記憶される。「接続係数」には、モデルが有する中間層の数や、各中間層のノードを接続するエッジの数や、どのノードとどのノードがエッジで接続されているかを示す情報や、各エッジの接続係数の値等が記憶される。「出力データ」には、出力結果として出力されるデータの具体的な形式（例えば、出力される画像の画素数や色情報が３チャンネルで表現されること等）が記憶される。
【００５０】
すなわち、図５では、モデル記憶部１２１が記憶する情報の一例として、モデルＩＤ「Ｍ０１」で識別されるモデルＭ０１は、入力データが「Ａ０１」であり、接続係数が「Ｂ０１」であり、出力データが「Ｃ０１」といったモデルであることを示している。
【００５１】
なお、図５での図示は省略しているが、モデル記憶部１２１には、モデルを学習するための学習データ等のデータセット等が記憶されてもよい。
【００５２】
なお、実施形態に係るモデルは、一つの中間層を有するニューラルネットワークであってもよいし、複数の中間層を有するＤＮＮ等、種々の構造であってもよい。
【００５３】
（画像記憶部１２２について）
画像記憶部１２２は、モデルに入力される画像の情報を記憶する。ここで、図６に、実施形態に係る画像記憶部１２２の一例を示す。図６は、実施形態に係る画像記憶部１２２の一例を示す図である。図６に示すように、画像記憶部１２２は、「画像ＩＤ」、「画素数」、「色情報」といった項目を有する。
【００５４】
「画像ＩＤ」は、画像を識別する識別情報を示す。「画素数」は、画像が含む画素の数を示す。「色情報」は、各画素の色情報を示す。図６に示した例では、「画素数」や「色情報」を「Ｅ０１」のような概念で示しているが、実際には、各項目に対応する具体的な情報が記憶される。例えば、「画素数」の項目には、画像を構成する画素数の具体的な値が記憶される。また、「色情報」には、各画素の色を示す具体的な情報（例えば、ＲＧＢの３チャンネル分の値）が記憶される。
【００５５】
すなわち、図６では、画像記憶部１２２が記憶する情報の一例として、画像ＩＤが「Ｄ０１」である画像Ｄ０１は、画素数が「Ｅ０１」であり、色情報が「Ｆ０１」であることを示している。
【００５６】
（制御部１３０について）
図４に戻って説明を続ける。制御部１３０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、出力装置１００内部の記憶装置に記憶されている各種プログラム（出力プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００５７】
制御部１３０は、記憶部１２０に記憶されるモデルに従った情報処理により、モデルの入力層に入力された第１画像（より正確には、画像を構成する各画素に対応する入力信号）に対して、モデルが有する接続係数（すなわち、モデルが学習した特徴に対応する重み値）に基づく演算を行い、モデルの出力層から第２画像（より正確には、画像を構成する各画素に対応する出力信号）を出力する。
【００５８】
実施形態に係る制御部１３０は、図４に示すように、取得部１３１と、入力部１３２と、算出部１３３と、中間出力部１３４と、受付部１３５と、結果出力部１３６とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図４に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部１３０が有する各処理部の接続関係は、図４に示した接続関係に限られず、他の接続関係であってもよい。
【００５９】
（取得部１３１について）
取得部１３１は、種々の情報を取得する。例えば、取得部１３１は、実施形態に係る出力処理を実行するための学習済みモデルを取得する。取得部１３１は、取得したモデルをモデル記憶部１２１に格納する。
【００６０】
また、取得部１３１は、ユーザの顔画像を取得する。例えば、取得部１３１は、ユーザを撮像したカメラ等の入力デバイス１０を介して、ユーザの顔画像を取得する。取得部１３１は、取得した画像を画像記憶部１２２に格納する。また、取得部１３１は、取得した顔画像を入力部１３２に送る。
【００６１】
（入力部１３２について）
入力部１３２は、画像を出力するニューラルネットワークとして学習され、生成されたモデルに、処理対象である第１画像を入力する。実施形態では、入力部１３２は、第１画像として、ユーザの顔を撮像した顔画像をモデルに入力する。
【００６２】
例えば、入力部１３２は、第１画像を符号化するエンコーダとしての機能や、符号化された情報に対して所定の行列を適用したベクトルを生成する機能等を有する。すなわち、入力部１３２は、入力データである第１画像を、ニューラルネットワークとして学習されたモデルに入力可能な形式に変換し、変換後の情報をモデルに入力する。
【００６３】
（算出部１３３について）
算出部１３３は、入力部１３２によってモデルに入力された情報（すなわち、各ノード）に接続係数を乗じて、次段の中間層に対応するノードの値を算出する。例えば、算出部１３３は、次段の中間層のノードの値として、当該ノードに接続された前段の各ノードの値と、互いに接続されたノード間のエッジの接続係数とを乗じて、各ノードの値の合計値を算出する。さらに、算出部１３３は、算出した合計値を所定の活性化関数に入力し、次段のノードに対応する値を算出する。
【００６４】
（中間出力部１３４について）
中間出力部１３４は、第１画像が入力されたモデルの中間層における画像である中間画像を出力する。具体的には、中間出力部１３４は、中間層の各ノードの値に基づいて中間画像を生成し、生成した中間画像を出力する。
【００６５】
なお、中間画像の構成は、必ずしも最終的な出力結果（第２画像）と一致しなくてもよい。例えば、ニューラルネットワークの構造によっては、中間層のノード数と出力層のノード数は異なる場合がある。この場合、中間画像と第２画像の各々の画素数等の画像情報は、互いに異なっていてもよい。
【００６６】
また、中間画像は、画像を見るユーザが顔と認識可能な形態でなくてもよい。例えば、モデルが畳み込みニューラルネットワークの構造を有する場合、中間画像は、畳み込みで用いられた特徴量を抽出するためのフィルタの大きさで区切られた、モザイクのような画像で示される場合がある。この場合、中間画像には、ユーザの顔の特徴的な箇所（例えば、顔を構成する目や鼻の近傍など）がモザイクのように羅列される画像で示される場合がある。
【００６７】
また、中間出力部１３４は、各々の中間層ごとの中間画像を出力する。具体的には、中間出力部１３４は、第１画像が入力されたモデルの第１中間層における画像である第１中間画像を出力する。その後、中間出力部１３４は、後述する受付部１３５によって第１中間画像に対する介入処理を反映させた第１介入情報が受け付けられた場合に、第１介入情報が入力されたモデルの次段の中間層における画像である第２中間画像を出力する。例えば、中間層がｍ層（ｍは任意の数）存在するモデルであれば、中間出力部１３４は、第１層から第ｍ層分の中間画像を出力してもよい。
【００６８】
（受付部１３５について）
受付部１３５は、中間画像に対する介入処理を反映させた情報である介入情報を受け付ける。具体的には、受付部１３５は、中間画像に対するユーザの介入処理を受け付けた表示制御装置３０を介して、当該介入処理を示す介入情報を受け付ける。
【００６９】
例えば、受付部１３５は、中間画像に対する介入処理によって中間画像の一部又は全部の情報を欠落させた情報である介入情報を受け付ける。具体的には、受付部１３５は、出力デバイス２０上に表示された中間画像において、ユーザにタッチ操作された箇所に対応する画素の情報を欠落させることを示す介入情報を受け付ける。また、受付部１３５は、出力デバイス２０上に表示された中間画像において、ユーザを撮像した画像を２値化した情報と重畳される箇所に対応する画素の情報を欠落させることを示す介入情報を受け付ける。
【００７０】
受付部１３５は、受け付けた介入情報を算出部１３３に送る。算出部１３３は、受け付けた介入情報に基づいて、中間画像を出力させた中間層の次段の中間層におけるノードを算出する。すなわち、受付部１３５は、モデルの演算が出力層に至るまで介入情報を受け付け、算出部１３３は、モデルの出力層まで演算を繰り返す。
【００７１】
（結果出力部１３６について）
結果出力部１３６は、受付部１３５によって受け付けられた介入情報に基づいて、モデルの出力層から第２画像を出力する。具体的には、結果出力部１３６は、受付部１３５によって受け付けられた介入情報に基づく演算が算出部１３３により行われた結果、出力層に対応するノードの情報を取得する。そして、結果出力部１３６は、出力層のノードに基づいて、モデルの演算結果となる第２画像を出力する。例えば、結果出力部１３６は、出力デバイス２０に表示可能な形式の画素数や色情報が設定された画像データとして、第２画像を出力する。
【００７２】
〔４．表示制御装置の構成〕
次に、図７を用いて、実施形態に係る表示制御装置３０の構成について説明する。図７は、実施形態に係る表示制御装置３０の構成例を示す図である。図７に示すように、表示制御装置３０は、通信部３１と、記憶部３３と、制御部３２とを有する。なお、表示制御装置３０は、表示制御装置３０を利用する管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を出力するための出力部（例えば、液晶ディスプレイ等）を有してもよい。
【００７３】
（通信部３１について）
通信部３１は、例えば、ＮＩＣ等によって実現される。通信部３１は、ネットワークＮと有線又は無線で接続され、ネットワークＮを介して、入力デバイス１０や、出力デバイス２０や、出力装置１００との間で情報の送受信を行う。
【００７４】
（記憶部３３について）
記憶部３３は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部３３は、中間画像記憶部３４と、介入情報記憶部３５とを有する。
【００７５】
（中間画像記憶部３４について）
中間画像記憶部３４は、出力装置１００から送信された中間画像を記憶する。図８に、実施形態に係る中間画像記憶部３４の一例を示す。図８は、実施形態に係る中間画像記憶部３４の一例を示す図である。図８に示すように、中間画像記憶部３４は、「中間画像ＩＤ」、「画素数」、「色情報」といった項目を有する。
【００７６】
「中間画像ＩＤ」は、中間画像を識別する識別情報を示す。「画素数」及び「色情報」は、図６に示した同一の項目に対応する。
【００７７】
すなわち、図８では、中間画像記憶部３４が記憶する情報の一例として、中間画像ＩＤが「Ｇ０１」である中間画像Ｇ０１は、画素数が「Ｈ０１」であり、色情報が「Ｊ０１」であることを示している。
【００７８】
（介入情報記憶部３５について）
介入情報記憶部３５は、介入情報を記憶する。ここで、図９に、実施形態に係る介入情報記憶部３５の一例を示す。図９は、実施形態に係る介入情報記憶部３５の一例を示す図である。図９に示すように、介入情報記憶部３５は、「介入情報ＩＤ」、「欠落箇所情報」といった項目を有する。
【００７９】
「介入情報ＩＤ」は、介入情報を識別する識別情報を示す。「欠落箇所情報」は、中間画像が含む画素のうち、ユーザの操作によって欠落される箇所を示す。図９に示した例では、「欠落箇所情報」を「Ｌ０１」のような概念で示しているが、実際には、欠落箇所情報の項目には、欠落箇所に対応する具体的な情報が記憶される。例えば、欠落箇所情報は、ユーザがタッチ操作を行った箇所に対応する中間画像における具体的な座標情報や、ユーザを撮像した画像の２値化情報において黒色（影）と判定された箇所の具体的な座標情報等が記憶される。
【００８０】
すなわち、図９では、介入情報記憶部３５が記憶する情報の一例として、介入情報ＩＤが「Ｋ０１」である介入情報Ｋ０１は、欠落箇所情報が「Ｌ０１」であることを示している。
【００８１】
（制御部３２について）
図７に戻って説明を続ける。制御部３２は、コントローラであり、例えば、ＣＰＵやＭＰＵ等によって、表示制御装置３０内部の記憶装置に記憶されている各種プログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部３２は、コントローラであり、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現される。
【００８２】
実施形態に係る制御部３２は、図７に示すように、受信部３６と、表示制御部３７と、生成部３８と、送信部３９とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部３２の内部構成は、図７に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部３２が有する各処理部の接続関係は、図７に示した接続関係に限られず、他の接続関係であってもよい。
【００８３】
（受信部３６について）
受信部３６は、各種情報を受信する。例えば、受信部３６は、出力装置１００から中間画像に関する情報を受信する。具体的には、受信部３６は、中間画像を構成する画素に関する情報（画素数や色情報等）を受信する。受信部３６は、受信した中間画像を中間画像記憶部３４に格納する。
【００８４】
（表示制御部３７について）
表示制御部３７は、出力装置１００に係る中間出力部１３４によって出力された中間画像を、任意の表示装置（実施形態では出力デバイス２０）に表示する。
【００８５】
また、表示制御部３７は、後述する生成部３８によって生成された介入情報を中間画像に反映させた画像である介入画像を表示装置に表示する。具体的には、表示制御部３７は、出力デバイス２０に表示中の中間画像にタッチ操作が行われた場合、タッチ操作が行われた画素を特定し、当該画素を黒く表示するよう制御する。このように、中間画像を黒く表示する処理により、介入画像が出力デバイス２０上に表示される。これにより、ユーザは、中間画像において、自身がどの位置にタッチしたかを認識することができる。
【００８６】
（生成部３８について）
生成部３８は、表示制御部３７によって表示された中間画像に対する介入処理に基づいて、介入情報を生成する。具体的には、生成部３８は、中間画像においてユーザから介入処理を受け付けた画素の座標情報を特定し、特定した座標情報を示した介入情報を生成する。生成部３８は、生成した介入情報を介入情報記憶部３５に格納する。
【００８７】
具体的には、生成部３８は、中間画像が表示された出力デバイス２０に対するユーザの選択操作に基づいて、中間画像において選択された箇所の情報を欠落させた介入情報を生成する。ユーザの選択操作とは、例えば、タッチセンサを有する出力デバイス２０に対するタッチ操作や、その他のポインティングデバイスを利用して中間画像を構成する画素をユーザが選択する操作をいう。これにより、ユーザは、中間画像を視認しながら欠落させたい情報を自身で選択して、ニューラルネットワークの処理に影響を与えることができる。
【００８８】
生成部３８が行う処理について、図１０及び図１１を用いて説明する。図１０は、実施形態に係る介入処理の一例を示す図（１）である。図１０では、ディスプレイ６０に表示された中間画像６１に対して、ユーザがタッチ操作による介入処理を行った例を示す。
【００８９】
図１０の例において、生成部３８は、ディスプレイ６０を介して、ユーザのタッチ操作を検出する（ステップＳ３１）。例えば、ユーザは、指６５で中間画像６１の一部をタッチする。生成部３８は、ユーザが触れた箇所に対応する座標情報に基づいて、欠落箇所を特定する（ステップＳ３２）。具体的には、生成部３８は、指６５が触れた箇所を示した表示６６に対応する座標位置を欠落箇所として特定する。そして、生成部３８は、中間画像６１から一部の情報が欠落した情報である介入情報を生成する。なお、介入情報は、欠落した箇所のみを示す情報によって表されてもよいし、中間画像６１から一部の情報を欠落させた画像情報として表されてもよい。
【００９０】
次に、図１１を用いて、生成部３８が生成した介入情報の流れを示す。図１１は、実施形態に係る介入処理の手順を示す図（１）である。図１１に示すように、まず、受信部３６は、出力装置１００からｍ層目（ｍは任意の整数）の中間層出力を受信する。図１１において、「ＲＮ（ｍ）×Ｗ（ｍ）×Ｈ（ｍ）」は、ｍ層の中間層の画像情報を示す。なお、「Ｎ」はチャンネル数を示し、「Ｗ」は画像における横軸、「Ｈ」は画像における縦軸の座標を示す。「Ｈ（ｍ）」は、ｍ層の中間層出力の要素を示す。
【００９１】
表示制御部３７は、受信した中間層出力を整形し、出力デバイス２０（ディスプレイ）で表示可能な形式に変換する。整形後の画像は、例えば、「ＲＷ×Ｈ」で示され、各々の要素（各画素の情報）は「Ｘ」で示される。
【００９２】
一方、図１１に示すように、生成部３８は、整形された中間画像が表示されたタッチセンサを介して、ユーザのタッチした座標位置を特定し、介入情報を生成する。なお、図１１に示す「Ｍ」は、介入情報の要素を示す。例えば、図１１では、介入情報とは、中間画像「ＲＷ×Ｈ」で示される画像に含まれる座標「Ｍ」であることを示している。すなわち、図１１において、介入情報とは、中間画像においてユーザが触れた座標「Ｍ」を示した情報である。
【００９３】
そして、送信部３９は、生成部３８によって生成された介入情報を出力装置１００に送信する。また、表示制御部３７は、介入情報と中間画像とに基づいて、介入処理に関する演算を行う。例えば、表示制御部３７は、中間画像の要素「Ｘ」と介入情報の要素「Ｍ」との要素積を算出して、介入後の中間画像に関する情報を演算する（図１１中の「○」は、要素積の算出を示す）。そして、表示制御部３７は、介入後の中間画像をディスプレイに表示する。
【００９４】
また、生成部３８は、出力デバイス２０に設置された撮像装置（カメラ）を制御して生成される２値化情報と、出力デバイス２０に表示された中間画像とに基づいて、中間画像の一部又は全部の情報を欠落させた介入情報を生成する。これにより、出力装置１００は、ユーザが身体を動かすたびにニューラルネットワークの出力結果を変化させることができるため、思いがけない出力結果をユーザに提示させ、ユーザを楽しませることができる。
【００９５】
上記の生成部３８が行う処理について、図１２及び図１３を用いて説明する。図１２は、実施形態に係る介入処理の一例を示す図（２）である。図１２では、ユーザの近傍に設置されたカメラ７５によってユーザが撮像され、撮像された画像に基づいて介入情報が生成される例を示す。
【００９６】
図１２の例において、生成部３８は、カメラ７５を介して、ユーザを撮像した画像９０を取得する（ステップＳ４１）。続けて、生成部３８は、取得した画像９０を２値化データに変換する（ステップＳ４２）。例えば、生成部３８は、所定の閾値よりも明度の低い画素を「０」、所定の閾値よりも明度の高い画素を「１」とする。
【００９７】
また、生成部３８は、出力装置１００から受信した中間画像９１を取得する（ステップＳ４３）。そして、生成部３８は、中間画像９１に画像９０を２値化したデータを重畳させる（ステップＳ４４）。そして、生成部３８は、中間画像９１のうち、画像９０を２値化した場合に「０」と判定された画素と重畳する画素を、欠落させるデータとして特定する。生成部３８は、かかる欠落させたデータに基づいて、介入情報を生成する。
【００９８】
次に、図１３を用いて、生成部３８が生成した介入情報の流れを示す。図１３は、実施形態に係る介入処理の手順を示す図（２）である。図１３に示すように、まず、受信部３６は、図１１と同様、出力装置１００からｍ層目（ｍは任意の整数）の中間層出力を受信する。
【００９９】
また、図１３に示すように、生成部３８は、カメラから取得されたカメラ画像を２値化して、２値化画像を得る。そして、生成部３８は、２値化画像を中間画像に重畳可能なようにリサイズする。そして、生成部３８は、２値化情報に基づいて、介入情報（図１３に示す要素「Ｙ」により示される）を生成する。送信部３９は、生成部３８によって生成された介入情報を出力装置１００に送信する。また、表示制御部３７は、中間画像の要素「Ｘ」と介入情報の要素「Ｙ」との要素積を算出して、介入後の中間画像に関する情報を演算する。そして、表示制御部３７は、介入後の中間画像をディスプレイに表示する。なお、生成部３８は、中間画像の要素「Ｘ」と２値化情報の要素積を介入情報としてもよい。
【０１００】
ここで、図１４を用いて、表示制御装置３０から取得した介入情報に基づいて、出力装置１００で行われる演算の概要について説明する。図１４は、実施形態に係る出力処理の手順を示す概要図である。図１４に示すように、ユーザ顔画像が入力されたのち、出力装置１００は、第１層の計算を行い、第１層の出力（第１中間画像）を得る（なお、「ｆ」は活性化関数を示す）。そして、出力装置１００は、第１層の介入処理を実行し（図１１や図１３で示す「介入処理」と同様の処理）、介入処理を経た第１層の出力を得る。
【０１０１】
その後、出力装置１００は、第２層の計算を行い、第２層の出力（第２中間画像）を得る。これらの処理を繰り返し、出力装置１００は、出力層に至るまでの演算を行う。なお、図１４に示す例では、出力装置１００は、第Ｍ層という複数の中間層を有するＤＮＮを利用した演算を行っているため、最終的な結果として、出力層からＤＮＮ出力を得る。実施形態では、ＤＮＮ出力は、画像情報である。
【０１０２】
（送信部３９について）
送信部３９は、各種情報を送信する。例えば、送信部３９は、生成部３８が生成した介入情報を出力装置１００に送信する。
【０１０３】
〔５．処理手順〕
次に、図１５を用いて、実施形態に係る出力装置１００による処理の手順について説明する。図１５は、実施形態に係る処理手順を示すフローチャートである。
【０１０４】
図１５に示すように、出力装置１００は、カメラ等の入力デバイス１０を介して、ユーザの顔画像を取得する（ステップＳ１０１）。出力装置１００は、取得した顔画像をモデルに入力する（ステップＳ１０２）。
【０１０５】
その後、出力装置１００は、所定時間（例えば、ユーザがニューラルネットワークの出力の変化を体験する体験時間として設定された時間）が経過したか否かを判定する（ステップＳ１０３）。所定時間が経過していない場合（ステップＳ１０３；Ｎｏ）、出力装置１００は、出力した中間画像に対する介入情報を表示制御装置３０から受け付ける（ステップＳ１０５）。続けて、出力装置１００は、介入情報に基づいて、次の層の情報を算出する（ステップＳ１０６）。具体的には、出力装置１００は、介入処理を経た前段の出力に基づいて、次の層を構成する各ノードの値を算出する。
【０１０６】
その後、出力装置１００は、算出した層（次の層）が出力層であるか否かを判定する（ステップＳ１０７）。出力層でない場合（ステップＳ１０７；Ｎｏ）、出力装置１００は、次の中間層の中間画像を出力する処理を繰り返す（ステップＳ１０４）。
【０１０７】
一方、出力装置１００は、次の層が出力層である場合（ステップＳ１０７；Ｙｅｓ）、出力層からモデルの出力結果である第２画像を出力する（ステップＳ１０８）。そして、出力装置１００は、出力した第２画像を出力デバイス２０等に表示する（ステップＳ１０９）。その後、所定時間が経過した場合に（ステップＳ１０３；Ｙｅｓ）、出力装置１００は、一連の出力処理を終了する。
【０１０８】
なお、図１５での図示は省略したが、出力装置１００は、任意のタイミング（例えば、ユーザの顔画像を最初にモデルに入力する直前）に、それまでの介入情報を初期化する処理を実行してもよい。
【０１０９】
〔６．変形例〕
上述した実施形態に係る出力システム１は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、上記の出力システム１に含まれる各装置の他の実施形態について説明する。
【０１１０】
〔６−１．出力装置の構成〕
上記実施形態では、出力装置１００が、中間画像を表示制御装置３０に出力し、表示制御装置３０を介して介入情報を受け付ける例を示した。ここで、これらの処理は、出力装置１００のみによって行われてもよい。
【０１１１】
この点について、図１６を用いて説明する。図１６は、変形例に係る出力装置２００の構成例を示す図である。図１６に示すように、出力装置２００は、出力装置１００と比較して、中間画像記憶部１２３と、介入情報記憶部１２４と、表示制御部１３７と、生成部１３８とをさらに有する。
【０１１２】
中間画像記憶部１２３は、表示制御装置３０に係る中間画像記憶部３４と同様の情報を記憶する。介入情報記憶部１２４は、表示制御装置３０に係る介入情報記憶部３５と同様の情報を記憶する。また、表示制御部１３７は、表示制御装置３０に係る表示制御部３７と同様の処理を実行する。生成部１３８は、表示制御装置３０に係る生成部３８と同様の処理を実行する。
【０１１３】
すなわち、出力装置１００は、表示制御装置３０が実行する処理を自装置で実行してもよい。これにより、出力装置１００は、簡易なシステム設計で実施形態に係る出力処理を実行することができる。
【０１１４】
〔６−２．出力システムの各装置〕
出力システム１に含まれる各装置は、様々な変形例により実現されてもよい。例えば、出力システム１は、ユーザを撮像するカメラ５０を制御するための撮影用ＰＣを備えてもよい。出力装置１００は、モデルの出力結果である第２画像を表示するディスプレイを備えてもよい。この場合、出力装置１００は、ノートＰＣやタブレット等、表示装置としての機能を兼ねる情報処理端末によって実現される。
【０１１５】
〔６−３．介入処理〕
上記実施形態では、介入処理として、ユーザによるタッチ操作や、カメラによって撮像される画像情報等の例を示した。しかし、介入処理は、中間画像に対して行われる種々のユーザの操作や、あるいは、ユーザの発する音声による音声データ等であってもよい。
【０１１６】
また、上記実施形態では、出力装置１００は、介入情報として、中間画像として表示された一部の情報を欠落させた情報を利用することを示した。しかし、介入情報は、必ずしも中間画像の一部を欠落させたものではなく、中間画像の一部を変化させたものであってもよい。例えば、介入情報は、中間画像として示された画素の情報を任意に変化（例えば、明度や色情報を増減させる等）させたものであってもよい。
【０１１７】
〔７．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１１８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１１９】
例えば、図４に示したモデル記憶部１２１や画像記憶部１２２は、出力装置１００が保持せずに、外部のストレージサーバ等に保持されてもよい。この場合、出力装置１００は、ストレージサーバにアクセスすることで、モデルや画像情報等を取得する。
【０１２０】
また、例えば、上述してきた出力装置１００は、表示制御装置３０から介入情報を取得したり、出力デバイス２０に第２画像を出力したりといった、外部装置とのやりとりを中心に実行するフロントエンドサーバ側と、モデルを用いた演算処理を中心に実行するバックエンドサーバ側とに分散されてもよい。
【０１２１】
〔８．ハードウェア構成〕
また、上述してきた実施形態に係る出力装置１００や、入力デバイス１０や、出力デバイス２０や、表示制御装置３０等は、例えば図１７に示すような構成のコンピュータ１０００によって実現される。以下、出力装置１００を例として説明する。図１７は、出力装置１００の機能を実現するコンピュータ１０００の一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ（Read  Only  Memory）１３００、ＨＤＤ（Hard  Disk  Drive）１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を有する。
【０１２２】
ＣＰＵ１１００は、ＲＯＭ１３００又はＨＤＤ１４００に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【０１２３】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス１５００は、通信網５００（図３に示すネットワークＮに対応する）を介して他の機器からデータを受信してＣＰＵ１１００へ送り、また、通信網５００を介してＣＰＵ１１００が生成したデータを他の機器へ送信する。
【０１２４】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、入出力インターフェイス１６００を介して生成したデータを出力装置へ出力する。
【０１２５】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラム又はデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１２６】
例えば、コンピュータ１０００が出力装置１００として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムを実行することにより、制御部１３０の機能を実現する。また、ＨＤＤ１４００には、記憶部１２０内の各データが格納される。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置から通信網５００を介してこれらのプログラムを取得してもよい。
【０１２７】
〔９．効果〕
上述してきたように、実施形態に係る出力装置１００は、入力部１３２と、中間出力部１３４と、受付部１３５と、結果出力部１３６とを有する。入力部１３２は、画像を出力するニューラルネットワークであるモデルに、処理対象である第１画像を入力する。中間出力部１３４は、第１画像が入力されたモデルの中間層における画像である中間画像を出力する。受付部１３５は、中間画像に対する介入処理を反映させた情報である介入情報を受け付ける。結果出力部１３６は、受付部１３５によって受け付けられた介入情報に基づいて、モデルの出力層から第２画像を出力する。
【０１２８】
このように、実施形態に係る出力装置１００は、ニューラルネットワークの演算の過程において、中間層から出力した中間画像に対する介入情報を受け付けることで、ニューラルネットワークにユーザが介入することを可能にする。これにより、出力装置１００は、モデルから出力される結果を動的に修正することができる。
【０１２９】
また、中間出力部１３４は、第１画像が入力されたモデルの第１中間層における画像である第１中間画像を出力し、その後、受付部１３５によって第１中間画像に対する介入処理を反映させた第１介入情報が受け付けられた場合には、第１介入情報が入力されたモデルの次段の中間層における画像である第２中間画像を出力する。
【０１３０】
このように、実施形態に係る出力装置１００は、中間層が複数にわたる場合には、中間層ごとに中間画像を出力してもよい。これにより、出力装置１００は、ニューラルネットワークの様々な過程でユーザによる介入を受け付けることができるので、より詳細にユーザの介入を出力結果に反映させることができる。
【０１３１】
また、受付部１３５は、中間画像に対する介入処理によって中間画像の一部又は全部の情報を欠落させた情報である介入情報を受け付ける。
【０１３２】
このように、実施形態に係る出力装置１００は、中間画像を欠落させた介入情報を受け付ける。言い換えれば、出力装置１００は、ニューラルネットワークによって抽出された特徴的な部分を欠落させる情報を受け付ける。これにより、出力装置１００は、入力された画像の一部の特徴をニューラルネットワークの演算から削除することができるため、介入処理によって出力結果がどのように変化するかをユーザにわかりやすく提示することができる。
【０１３３】
また、変形例に係る出力装置２００は、中間出力部１３４によって出力された中間画像を表示装置に表示する表示制御部１３７と、表示制御部１３７によって表示された中間画像に対する介入処理に基づいて介入情報を生成する生成部１３８と、をさらに備える。また、受付部１３５は、生成部１３８によって生成された介入情報を受け付ける。
【０１３４】
このように、変形例に係る出力装置２００は、中間画像を表示する処理や、介入情報を生成する処理を自装置で実行してもよい。これにより、出力装置２００は、より簡易的なシステムで出力処理を実行することができる。
【０１３５】
また、生成部１３８は、中間画像が表示された表示装置に対するユーザの選択操作に基づいて、中間画像において選択された箇所の情報を欠落させた介入情報を生成する。
【０１３６】
このように、変形例に係る出力装置２００は、欠落情報をユーザの選択操作に基づいて生成することで、ユーザの動きと連動した第２画像（出力結果）の変化をユーザに提示できるため、第２画像の変化を楽しむといった娯楽をユーザに提供することができる。また、出力装置２００は、中間画像のどのような箇所が変化することで出力結果がどのような影響を受けるのかといった、通常では認識することのできないモデルの内部処理をユーザに体感させることができる。
【０１３７】
また、生成部１３８は、表示装置に設置された撮像装置を制御して生成される２値化情報と、表示装置に表示された中間画像とに基づいて、中間画像の一部又は全部の情報を欠落させた介入情報を生成する。
【０１３８】
このように、変形例に係る出力装置２００は、カメラ等に撮像された風景等に基づいて介入情報を生成してもよい。これにより、出力装置２００は、ユーザが意図しない変化を出力結果に反映させることができるため、印象的なデモンストレーション等を行うことができる。
【０１３９】
また、表示制御部１３７は、生成部１３８によって生成された介入情報を中間画像に反映させた画像である介入画像を表示装置に表示する。
【０１４０】
このように、変形例に係る出力装置２００は、ユーザがタッチした箇所がわかるような、介入情報が反映された中間画像をユーザに提示する。これにより、出力装置２００は、ユーザがどの箇所を触れることでどのように出力結果が変化するかをユーザに知覚させることができるので、モデルによる演算や介入による変化をユーザに実感させることができる。
【０１４１】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１４２】
また、上述した出力装置１００は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をＡＰＩ（Application  Programming  Interface）やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【０１４３】
また、特許請求の範囲に記載した「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【０１４４】
１  出力システム
１０  入力デバイス
２０  出力デバイス
３０  表示制御装置
１００  出力装置
１１０  通信部
１２０  記憶部
１２１  モデル記憶部
１２２  画像記憶部
１２３  中間画像記憶部
１２４  介入情報記憶部
１３０  制御部
１３１  取得部
１３２  入力部
１３３  算出部
１３４  中間出力部
１３５  受付部
１３６  結果出力部
１３７  表示制御部
１３８  生成部
【図１】
2019200485.tif 000003
【図２】
2019200485.tif 000004
【図３】
2019200485.tif 000005
【図４】
2019200485.tif 000006
【図５】
2019200485.tif 000007
【図６】
2019200485.tif 000008
【図７】
2019200485.tif 000009
【図８】
2019200485.tif 000010
【図９】
2019200485.tif 000011
【図１０】
2019200485.tif 000012
【図１１】
2019200485.tif 000013
【図１２】
2019200485.tif 000014
【図１３】
2019200485.tif 000015
【図１４】
2019200485.tif 000016
【図１５】
2019200485.tif 000017
【図１６】
2019200485.tif 000018
【図１７】
2019200485.tif 000019