IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Preferred Networksの特許一覧

特許7353032データ生成装置、データ生成方法及びプログラム
<>
  • 特許-データ生成装置、データ生成方法及びプログラム 図1
  • 特許-データ生成装置、データ生成方法及びプログラム 図2
  • 特許-データ生成装置、データ生成方法及びプログラム 図3
  • 特許-データ生成装置、データ生成方法及びプログラム 図4
  • 特許-データ生成装置、データ生成方法及びプログラム 図5
  • 特許-データ生成装置、データ生成方法及びプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-21
(45)【発行日】2023-09-29
(54)【発明の名称】データ生成装置、データ生成方法及びプログラム
(51)【国際特許分類】
   G06N 3/0475 20230101AFI20230922BHJP
   G06T 11/80 20060101ALI20230922BHJP
   G06T 1/40 20060101ALI20230922BHJP
【FI】
G06N3/0475
G06T11/80 A
G06T1/40
【請求項の数】 29
(21)【出願番号】P 2018215020
(22)【出願日】2018-11-15
(65)【公開番号】P2020086542
(43)【公開日】2020-06-04
【審査請求日】2021-10-25
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】鈴木 良平
(72)【発明者】
【氏名】宮戸 岳
(72)【発明者】
【氏名】米辻 泰山
【審査官】金田 孝之
(56)【参考文献】
【文献】国際公開第2018/079020(WO,A1)
【文献】米国特許出願公開第2018/0314716(US,A1)
【文献】米国特許出願公開第2017/0140524(US,A1)
【文献】Jun-Yan Zhu et al.,Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks,arXiv:1703.10593v5,2018年08月,<URL: https://arxiv.org/abs/1703.10593v5>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 1/40
G06T 11/80
(57)【特許請求の範囲】
【請求項1】
1以上のメモリと、1以上のプロセッサと、を備え、
前記1以上のプロセッサは、
第1のデータを受け付け、
前記第1のデータの少なくとも第1の部分をエンコーダに入力することで条件変数を生成し、
前記条件変数第1のニューラルネットワークに入力することで、第2のデータを生成し、
前記第1のニューラルネットワークは、複数の生成モデルから選択された生成モデルである、
データ生成装置。
【請求項2】
1以上のメモリと、1以上のプロセッサと、を備え、
前記1以上のプロセッサは、
第1のデータを受け付け、
初期値を第1のニューラルネットワークに入力して得られたデータと、前記第1のデータの少なくとも第1の部分との誤差を誤差逆伝播することで条件変数を生成し、
前記条件変数前記第1のニューラルネットワークに入力することで、第2のデータを生成し、
前記第1のニューラルネットワークは、複数の生成モデルから選択された生成モデルである、
データ生成装置。
【請求項3】
1以上のメモリと、1以上のプロセッサと、を備え、
前記1以上のプロセッサは、
第1のデータを受け付け、
前記第1のデータの少なくとも第1の部分をエンコーダに入力することで得られた値を第1のニューラルネットワークに入力することで得られたデータと、少なくとも前記第1の部分との誤差を誤差逆伝播することで条件変数を生成し、
前記条件変数前記第1のニューラルネットワークに入力することで、第2のデータを生成し、
前記第1のニューラルネットワークは、複数の生成モデルから選択された生成モデルである、
データ生成装置。
【請求項4】
前記1以上のプロセッサは、
少なくとも前記第1の部分と、前記データとの誤差に基づいて、前記条件変数を生成する、請求項2又は請求項3に記載のデータ生成装置。
【請求項5】
前記初期値は、ランダムな値を含む、請求項2又は請求項2に従属する請求項4に記載のデータ生成装置。
【請求項6】
前記第1のニューラルネットワークは、ユーザからの指示に基づいて、前記複数の生成モデルから選択された生成モデルである、請求項1乃至5のいずれか一項に記載のデータ生成装置。
【請求項7】
前記第1のニューラルネットワークは、前記第1の部分に含まれる物体に基づいて、前記複数の生成モデルから選択された生成モデルである、請求項1乃至6のいずれか一項に記載のデータ生成装置。
【請求項8】
前記1以上のプロセッサは、
前記第2のデータを生成する前に、ユーザからの指示に基づいて、前記条件変数を変更し、
変更後の前記条件変数と前記第1のニューラルネットワークとを用いて、前記第2のデータを生成する、請求項1乃至7のいずれか一項に記載のデータ生成装置。
【請求項9】
前記1以上のプロセッサは、
前記第2のデータを生成する前に、参照データから生成された参照用の条件変数を用いて、前記条件変数を変更し、
変更後の前記条件変数と前記第1のニューラルネットワークとを用いて、前記第2のデータを生成する、請求項1乃至7のいずれか一項に記載のデータ生成装置。
【請求項10】
前記複数の生成モデルの各々は、それぞれ異なるクラスに属する物体が含まれる訓練データを用いて訓練された生成モデルである、請求項1乃至9のいずれか一項に記載のデータ生成装置。
【請求項11】
前記1以上のプロセッサは、
前記第2のデータと前記第1のデータの少なくとも第2の部分とを合成することで、第3のデータを生成する、請求項1乃至10のいずれか一項に記載のデータ生成装置。
【請求項12】
前記第1の部分は、
前記第1のデータにおいて、ユーザによって指定又は選択された部分、
前記第1のデータにおいて、ユーザによって所定の色でペイントされた部分、
前記第1のデータにおいて、ユーザによって線で囲まれた部分、
の少なくとも1つである、請求項1乃至11のいずれか一項に記載のデータ生成装置。
【請求項13】
前記1以上のプロセッサは、
前記第1の部分を前記第1のニューラルネットワークに直接入力せずに、前記第2のデータを生成する、請求項1乃至12のいずれか一項に記載のデータ生成装置。
【請求項14】
前記第1のデータは、画像、音声、文章、3Dオブジェクトの少なくとも1つである、請求項1乃至13のいずれか一項に記載のデータ生成装置。
【請求項15】
前記1以上のプロセッサは、
前記第1のニューラルネットワークの各層で、又は、前記第1のニューラルネットワークの層に応じて、コンディショナル情報を変更し、
変更後の前記コンディショナル情報を前記第1のニューラルネットワークに入力し、前記第2のデータを生成する、請求項1乃至14のいずれか一項に記載のデータ生成装置。
【請求項16】
前記条件変数は、少なくとも中間表現を含む、請求項1乃至15のいずれか一項に記載のデータ生成装置。
【請求項17】
前記中間表現は、潜在変数である、請求項16に記載のデータ生成装置。
【請求項18】
前記第2のデータを表示する表示装置を更に有する、請求項1乃至17のいずれか一項に記載のデータ生成装置。
【請求項19】
1以上のプロセッサが、
第1のデータを受け付け、
前記第1のデータの少なくとも第1の部分をエンコーダに入力することで条件変数を生成し、
前記条件変数第1のニューラルネットワークに入力することで、第2のデータを生成し、
前記第1のニューラルネットワークは、複数の生成モデルから選択された生成モデルである、
データ生成方法。
【請求項20】
1以上のプロセッサが、
第1のデータを受け付け、
初期値を第1のニューラルネットワークに入力して得られたデータと、前記第1のデータの少なくとも第1の部分との誤差を誤差逆伝播することで条件変数を生成し、
前記条件変数前記第1のニューラルネットワークに入力することで、第2のデータを生成し、
前記第1のニューラルネットワークは、複数の生成モデルから選択された生成モデルである、
データ生成方法。
【請求項21】
1以上のプロセッサが、
第1のデータを受け付け、
前記第1のデータの少なくとも第1の部分をエンコーダに入力することで得られた値を第1のニューラルネットワークに入力することで得られたデータと、少なくとも前記第1の部分との誤差を誤差逆伝播することで条件変数を生成し、
前記条件変数前記第1のニューラルネットワークに入力することで、第2のデータを生成し、
前記第1のニューラルネットワークは、複数の生成モデルから選択された生成モデルである、
データ生成方法。
【請求項22】
前記1以上のプロセッサが、
少なくとも前記第1の部分と、前記データとの誤差に基づいて、前記条件変数を生成する、請求項20又は請求項21に記載のデータ生成方法。
【請求項23】
前記第1のニューラルネットワークは、ユーザからの指示に基づいて、前記複数の生成モデルから選択された生成モデルである、請求項19乃至22の何れか一項に記載のデータ生成方法。
【請求項24】
前記第1のニューラルネットワークは、前記第1の部分に含まれる物体に基づいて、前記複数の生成モデルから選択された生成モデルである、請求項19乃至22の何れか一項に記載のデータ生成方法。
【請求項25】
前記1以上のプロセッサが、
前記第2のデータを生成する前に、ユーザからの指示に基づいて、前記条件変数を変更し、
変更後の前記条件変数と前記第1のニューラルネットワークとを用いて、前記第2のデータを生成する、請求項19乃至24のいずれか一項に記載のデータ生成方法。
【請求項26】
前記1以上のプロセッサが、
前記第2のデータと前記第1のデータの少なくとも第2の部分とを合成することで、第3のデータを生成する、請求項19乃至25のいずれか一項に記載のデータ生成方法。
【請求項27】
1以上のプロセッサに、
第1のデータを受け付ける処理と、
前記第1のデータの少なくとも第1の部分をエンコーダに入力することで条件変数を生成する処理と、
前記条件変数第1のニューラルネットワークに入力することで、第2のデータを生成する処理と、を実行させ、
前記第1のニューラルネットワークは、複数の生成モデルから選択された生成モデルである、
プログラム。
【請求項28】
1以上のプロセッサに、
第1のデータを受け付ける処理と、
初期値を第1のニューラルネットワークに入力して得られたデータと、前記第1のデータの少なくとも第1の部分との誤差を誤差逆伝播することで条件変数を生成する処理と、
前記条件変数前記第1のニューラルネットワークに入力することで、第2のデータを生成する処理と、を実行させ、
前記第1のニューラルネットワークは、複数の生成モデルから選択された生成モデルである、
プログラム。
【請求項29】
1以上のプロセッサに、
第1のデータを受け付ける処理と、
前記第1のデータの少なくとも第1の部分をエンコーダに入力することで得られた値を第1のニューラルネットワークに入力することで得られたデータと、少なくとも前記第1の部分との誤差を誤差逆伝播することで条件変数を生成する処理と、
前記条件変数前記第1のニューラルネットワークに入力することで、第2のデータを生成する処理と、を実行させ、
前記第1のニューラルネットワークは、複数の生成モデルから選択された生成モデルである、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ生成装置、データ生成方法及びプログラムに関する。
【背景技術】
【0002】
ノイズ等の中間表現と、クラス情報等のコンディショナル情報とを入力として、画像や音声、文章等のデータを生成する生成モデルが知られている。このような生成モデルとして、敵対的生成ネットワーク(以降、GAN(Generative Adversarial Networks)と表す。)の一種であるclass-conditional GANが知られている。
【0003】
しかしながら、例えば、画像中の一部の画像領域における中間表現やコンディショナル情報を操作したり、画像生成の各段階で中間表現やコンディショナル情報を変更したりすることで当該画像領域のみを編集する等、柔軟な編集を行うことはできなかった。
【先行技術文献】
【非特許文献】
【0004】
【文献】Jun-Yan Zhu, Philipp Krahenbuhl, Eli Shechtman, Alexei A. Efros. Generative Visual Manipulation on the Natural Image Manifold, In ECCV, 2016.
【文献】Anh Nguyen, Jason Yosinski, Yoshua Bengio, Alexey Dosovitskiy, Jeff Clune. Plug & Play Generative Networks: Conditional Iterative Generation of Images in Latent Space, arXiv:1612.00005, 2016.
【文献】Takeru Miyato, Masanori Koyama. cGANs with Projection Discriminator, In ICLR, 2018.
【文献】Han Zhang, Ian Goodfellow, Dimitris Metaxas, Augustus Odena. Self-Attention Generative Adversarial Networks, arXiv:1805.08318, 2018.
【文献】Andrew Brock, Jeff Donahue, Karen Simonyan. Large Scale GAN Training for High Fidelity Natural Image Synthesis, arXiv:1809.11096, 2018.
【文献】Jun-Yan Zhu, Taesung Park, Phillip Isola, Alexei A. Efros, Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks, arXiv:1703.10593, 2017.
【文献】Xiaodan Liang, Hao Zhang, Eric P. Xing. Generative Semantic Manipulation with Contrasting GAN, arXiv:1708.00315, 2017.
【文献】Takuhiro Kaneko, Kaoru Hiramatsu, and Kunio Kashino, Generative Attribute Controller with Conditional Filtered Generative Adversarial Networks. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017.
【文献】Xun Huang, Serge Belongie. Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization, In ICCV, 2017.
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施の形態は、上記の点に鑑みてなされたもので、編集対象のデータ中の一部のデータにおける中間表現やコンディショナル情報の操作・変更により柔軟なデータ編集を実現することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の実施の形態におけるデータ編集装置は、第1のデータ中の少なくとも一部の第1のデータ領域に対して、前記第1のデータ領域の中間表現又はコンディショナル情報の少なくとも一方の変更の指定を受け付ける受付手段と、複数の生成モデルの中から選択された1以上の生成モデルと、前記変更された中間表現又はコンディショナル情報の少なくとも一方とを用いて、前記第1のデータ領域を編集した第2のデータを生成する生成手段と、前記第2のデータを、前記第1のデータ中の前記第1のデータ領域部分に合成した第3のデータを作成する合成手段と、を有する。
【図面の簡単な説明】
【0007】
図1】本発明の実施の形態における画像編集装置の全体構成の一例を示す図である。
図2】本発明の実施の形態における画像編集処理の一例を示すフローチャートである。
図3】画像編集の流れの一例を説明するための図である。
図4】中間表現及びクラス情報の生成モデルへの入力の一例を説明するための図である。
図5】生成モデルの各段階で中間表現を変更する場合の一例を説明するための図である。
図6】本発明の実施の形態における画像編集装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、一例として、編集対象のデータが画像であるものとし、画像中の一部の画像領域における中間表現やコンディショナル情報をユーザが操作したり、画像生成の各段階で中間表現やコンディショナル情報を変更させたりすることで、当該画像領域を編集可能な画像編集装置10について説明する。なお、中間表現及びコンディショナル情報は、「条件変数」とも称される。
【0009】
本発明の実施の形態は、編集対象のデータが画像である場合に限られず、例えば、音声や文章(テキスト)等の種々のデータを編集する場合にも同様に適用することが可能である。
【0010】
ここで、中間表現とは、生成モデルに入力される条件変数のことであり、文脈によっては「ノイズ」、「潜在変数」と称されることもある。本明細書では、「中間表現Z」と表す。
【0011】
また、コンディショナル情報とは、編集対象のデータの何等かの状態、条件、分類等を示す情報である。編集対象のデータが画像である場合には、コンディショナル情報としては、例えば、画像中の画素が属するクラスを示すクラス情報等が挙げられる。なお、クラスとは、例えば、画像中の画素が表す物体の種類や分類、カテゴリ等のことである。また、編集対象のデータが音声や文章等である場合には、コンディショナル情報としては、例えば、音声や文章をエンコーダでエンコードした結果であってもよいし、音声が男性であるか又は女性であるかの分類や音声の高低の分類等であってもよい。
【0012】
本発明の実施の形態では、主に、コンディショナル情報の一例としてクラス情報について説明し、「クラス情報C」と表す。また、中間表現は、「中間表現Z」と表す。
【0013】
また、本発明の実施の形態では、画像生成には、GAN等のニューラルネットワークで実現される生成モデルを用いるものとする。また、このニューラルネットワークは、CNNのように、中間表現Zを入力として段階的に解像度を高める変換を繰り返す構造であるものとする。ただし、生成モデルはニューラルネットワークで実現されるものに限られず、各段階のうちの少なくとも1つの段階で空間的な解像度を持った形式に変換される構造のモデルであれば、任意の生成モデルを用いることが可能である。このような生成モデルの1つとして、特に、段階的に解像度を高めるようにして画像が生成されるモデルを用いることも可能である。
【0014】
なお、本発明の実施の形態における画像編集装置10は、例えばPC(パーソナルコンピュータ)等を用いて実現されるが、これに限られない。画像編集装置10は、例えば、スマートフォンやタブレット端末等を用いて実現されてもよい。
【0015】
本発明の実施の形態における画像編集装置10は、(1)生成モデルの条件変数である中間表現Z及びクラス情報Cを空間的に自由かつ連続的に操作可能とし、(2)画像生成の各段階で条件変数を変更可能とする、ことにより画像中の一部の画像領域を柔軟に編集可能とする。なお、画像生成の各段階とは、例えば、生成モデルがニューラルネットワークで実現されている場合はニューラルネットワークの各層(レイヤ)のことである。
【0016】
これにより、例えば、様々な物体が写った画像に対して、この画像の一部の物体のクラスを変更(例えば、犬を猫にする、犬をライオンにする等)することが可能となる。また、物体全体のクラス変更だけでなく、例えば、犬の耳等の物体の一部分のみを画像編集の対象にしたり、画像編集の度合いを連続的に変化(例えば、犬と猫の中間のクラスに変更する等)させたりすること等も可能となる。このように、本発明の実施の形態における画像編集装置10によれば、柔軟かつ幅広いバリエーションの画像編集が可能となる。なお、編集対象となる画像の形式は限定されず、例えば、絵、イラスト、写真、CG(コンピュータグラフィックス)等、任意の形式の画像を用いることが可能である。
【0017】
<全体構成>
まず、本発明の実施の形態における画像編集装置10の全体構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における画像編集装置10の全体構成の一例を示す図である。
【0018】
図1に示すように、本発明の実施の形態における画像編集装置10は、画像編集処理部110と、記憶部120とを有する。画像編集処理部110は、画像中の一部の画像領域における条件変数の操作・変更により当該画像領域の編集を行う処理(画像編集処理)を実行する。また、記憶部120は、例えば、異なるクラスの物体が含まれる画像で学習された生成モデル(学習済みの生成モデル)が記憶されている。例えば、人の画像で学習された生成モデルや犬の画像で学習された生成モデル、人の画像と犬の画像とで学習された生成モデル等の複数の生成モデルが記憶されている。このように、記憶部120には、様々なクラスの物体が含まれる画像で学習された複数の生成モデルが予め記憶されている。なお、記憶部120には、生成モデルの他にも、例えば、編集対象の画像等が記憶されていてもよい。
【0019】
ここで、画像編集処理部110には、操作受付部111と、入力部112と、物体検出部113と、モデル選択部114と、中間表現生成部115と、画像生成部116と、合成部117と、出力部118とが含まれる。
【0020】
操作受付部111は、ユーザによる各種操作(例えば、クラス情報Cを変更する画像領域の指定操作や変更後のクラス情報Cの設定操作等)を受け付ける。
【0021】
入力部112は、編集対象の画像を入力する。以降、入力部112が入力した画像を「入力画像」と表す。すなわち、入力画像が編集対象の画像である。
【0022】
物体検出部113は、既存の物体検出技術により入力画像中の1以上の物体の位置及びクラスをそれぞれ検出する。ここで、物体の位置は、例えば、当該物体に対するバウンディングボックスとして検出される。また、物体のクラスが検出されることで、当該物体のクラス情報Cが得られる。
【0023】
モデル選択部114は、物体検出部113が検出した物体のうち、ユーザにより編集対象として選択された物体に対して、記憶部120に記憶されている生成モデルの中から適した生成モデルを選択する。
【0024】
中間表現生成部115は、ユーザにより編集対象として選択された物体のバウンディングボックス内の画像領域(この画像領域は「画像パッチ」又は単に「パッチ」とも称される。)の中間表現Zを生成する。
【0025】
画像生成部116は、変更後のクラス情報C及び中間表現Zを用いて、モデル選択部114が選択した生成モデルにより画像(つまり、編集対象の物体の画像パッチと同じサイズの画像)を生成する。生成モデルにより生成された画像を「編集後画像パッチ」とも表す。
【0026】
合成部117は、画像生成部116が生成した編集後画像パッチを、入力画像中の該当の画像パッチ部分に合成した画像を作成する。この合成後の画像を「編集後入力画像」とも表す。
【0027】
出力部118は、合成部117が作成した編集後入力画像を出力する。ここで、出力部118は、任意の出力先に編集後入力画像を出力すればよい。例えば、記憶部120に編集後入力画像を出力(保存)してもよいし、ディスプレイ等の表示装置に編集後入力画像を出力(表示)してもよいし、ネットワークを介して接続される他の装置に編集後入力画像を出力(送信)してもよい。
【0028】
<画像編集処理>
次に、本発明の実施の形態における画像編集処理について、図2を参照しながら説明する。図2は、本発明の実施の形態における画像編集処理の一例を示すフローチャートである。
【0029】
ステップS101:入力部112は、編集対象の画像を入力する。ここで、入力部112は、例えば、編集対象の画像を指定する操作がユーザにより行われ、操作受付部111が当該操作を受け付けたことに応じて、当該画像を入力すればよい。なお、入力部112が入力する画像(入力画像)の入力元としては、画像編集装置10のローカルストレージ(例えば、記憶部120)であってもよいし、ネットワークドライブやクラウドストレージ等であってもよい。
【0030】
ステップS102:物体検出部113は、入力画像中の1以上の物体の位置及びクラスをそれぞれ検出する。以降では、物体検出部113により検出された物体のクラスを「物体クラス」とも表す。
【0031】
ここで、例えば、図3に示す入力画像1000が入力部112により入力された場合、物体検出部113は、当該入力画像1000中の物体(人及び犬)の位置及び物体クラスをそれぞれ検出する。これにより、例えば、バウンディングボックスB1及び物体クラス「犬」と、バウンディングボックスB2及び物体クラス「人」とが検出される。これにより、物体毎に、当該物体の物体クラスを示すクラス情報Cが得られる。なお、クラス情報Cは、例えば、バウンディングボックス内の画像領域(画像パッチ)に含まれる各画素がどのクラスに属するかを示すクラスマップとして得られてもよい。ここで、クラスマップは、画像パッチと同じ解像度を持つデータ構造の情報である。ただし、物体クラスとしてどのようなクラスが存在し、どのような形式で物体クラスが表現されるか等は、物体検出部113を実現するオブジェクトディテクターによって異なる。
【0032】
なお、図3に示す例では、物体の位置としてバウンディングボックスが検出された場合を示しているが、これに限られず、例えば、当該物体を囲む任意の領域(任意の矩形領域や任意の円形領域、任意の多角形領域、当該物体の境界で表される領域等)が検出されてもよい。この場合、当該領域が画像パッチとなる。また、当該領域は必ずしも物体を囲んでいる必要はなく、物体の一部が領域からはみ出していてもよい。更に、画像パッチが入力画像1000の一部である必要はなく、画像パッチと入力画像1000とが一致していてもよい。
【0033】
また、上記のステップS102では、必ずしもクラス情報Cが検出される必要はなく、例えば、バウンディングボックス(又は、物体を囲む任意の領域等)のみが検出されてもよい。更に、物体検出部113により物体の位置及びクラスが検出される必要はなく、例えば、入力画像1000中の物体の位置及びクラスの少なくとも一方をユーザにより指定されてもよい。この場合、操作受付部111により物体の位置及びクラスの少なくとも一方の指定を受け付ければよい。
【0034】
ステップS103:操作受付部111は、上記のステップS102で検出された物体のうち、ユーザによる編集対象の物体の選択操作を受け付ける。ここで、以降では、図3に示す入力画像1000中のバウンディングボックスB1に対応する物体(犬)を編集対象の物体とする選択操作が行われたものとして説明を続ける。なお、例えば、上記のステップS102で検出された物体が1つである場合や上記のステップS102で検出された全ての物体が編集対象として自動的に選択される場合等には、このステップS103は省略されてもよい。
【0035】
ステップS104:操作受付部111は、上記のステップS103で選択された物体のバウンディングボックス内の画像領域(画像パッチ)に対して編集対象の領域(以降、「対象領域」とも表す。)及びその目標クラスを設定する操作を受け付ける。なお、目標クラスとは、対象領域の物体クラスの変更先とするクラスのことである。
【0036】
ここで、図3に示す例では、ユーザは、例えば、バウンディングボックスB1内の画像パッチ1100に対して、目標クラスに対応した色でペイントすること等により対象領域1101を設定する操作を行う。なお、対象領域及び目標クラスの設定方法は、目標クラスに対応した色でペイントする方法以外にも、例えば、目標クラスの名称等を直接指定又は選択してもよい。また、対象領域の設定方法についても、フリーハンドでペイントする方法以外に、例えば、「耳」や「鼻」等の部位を指定又は選択する方法が採用されてもよい。
【0037】
上記の対象領域及び目標クラスの設定により、編集対象の物体のクラス情報Cから変更後のクラス情報Cが作成される。変更後のクラス情報Cは、当該物体の画像パッチと同じ解像度を持つデータ構造の情報であるものとする。例えば、変更前のクラス情報Cもクラスマップである場合、変更後のクラス情報Cは、変更前のクラス情報Cが表すクラスマップを構成する各値のうち、対象領域に対応する値を目標クラスに応じた値に変更したものである。ただし、変更後のクラス情報Cが生成モデルに入力される際に当該クラス情報Cを適宜リサイズすればよいため、変更後のクラス情報Cと当該物体の画像パッチとが同じ解像度でなくてもよい。
【0038】
ここで、ユーザは、目標クラスとして、各画素がどのクラスに属するかだけでなく、その割合まで設定することができる。例えば、或る画素について、目標クラス「ライオン100%」と設定することもできるし、目標クラス「ライオン60% ペルシャ猫40%」と設定することもできる。このように、ユーザは、連続的な値で構成されるクラスマップを変更後のクラス情報Cとして作成することができる。なお、変更前のクラス情報Cは、連続的な値で構成されるクラスマップであってもよいし、離散的な値で構成されるクラスマップであってもよい。
【0039】
このように、本発明の実施の形態では、ユーザは、画像パッチ1100に対して、クラス情報Cを空間的に自由(つまり、画像中の物体の任意の領域におけるクラス情報Cを操作可能)かつ連続的に操作することができる。
【0040】
ステップS105:モデル選択部114は、上記のステップS103で選択された物体に対して、この物体の物体クラス及び目標クラスに応じた生成モデルを記憶部120から選択する。
【0041】
例えば、物体クラスが「柴犬」であり、対象領域(例えば、耳部分)の目標クラスが「シェパード」である場合、モデル選択部114は、犬の画像で学習された生成モデルを選択することが挙げられる。また、例えば、物体クラスが「犬」であり、対象領域(例えば、顔部分)の目標クラスが「ライオン」である場合、モデル選択部114は、犬の画像とライオンの画像とで学習された生成モデルを選択することが挙げられる。なお、モデル選択部114は、物体クラス又は目標クラスのいずれか一方のみに応じた生成モデルを記憶部120から選択してもよい。
【0042】
このように、モデル選択部114は、物体クラス及び目標クラスの少なくとも一方に応じて、当該物体の画像パッチの編集に適した生成モデル(つまり、物体クラスを目標クラスに変更した画像生成を高い精度を行うことが可能な学習済み生成モデル)を選択すればよい。
【0043】
また、モデル選択部114は、記憶部120から複数の生成モデルを選択してもよいし、これらの複数の生成モデルを候補としてユーザに提示した上で、これらの候補のうち、ユーザによって選択された1つ以上の生成モデルを最終的に選択してもよい。また、モデル選択部114は、複数の生成モデルを候補としてユーザに提示する際に、これら候補に対して何等かのスコア(例えば、物体クラスを目標クラスに変更した画像生成の精度を示す指標値等)を提示してもよい。更に、モデル選択部114は、記憶部120から生成モデルを選択するだけでなく、例えば、API(Application Programming Interface)等として外部サービスによって提供されている生成モデルからも選択してもよい。
【0044】
なお、上記のステップS105で複数の生成モデルが選択された場合、以降のステップS105~ステップS108は、生成モデル毎に、並列又は直列に実行されればよい。
【0045】
ステップS106:中間表現生成部115は、上記のステップS103で選択された物体の画像パッチの中間表現Zを生成する。ここで、中間表現Zは、例えば、学習済みのエンコーダに画像パッチを入力することで生成すればよい。これ以外にも、例えば、上記のステップS105で選択された生成モデルにランダムな初期値を入力することで生成された画像と当該画像パッチとの誤差を誤差逆伝播により最適化することで中間表現Zを生成してもよい。又は、例えば、上記のステップS105で選択された生成モデルに、上記の学習済みエンコーダに画像パッチを入力することで生成された情報を入力し、この入力により生成モデルで生成された画像と当該画像パッチとの誤差を誤差逆伝播により最適化することで中間表現を生成してもよい。ここで、誤差としては、例えば、当該画像と当該画像パッチとが同一の解像度となるように一方又は両方をリサイズした後の画像同士の誤差を用いてもよいし、任意の学習済みニューラルネットワーク等を用いて当該画像の特徴量と当該画像パッチの特徴量とをそれぞれ抽出した上で、これらの特徴量同士の誤差を用いてもよい。特に、このような特徴量として、GANの識別器(discriminator)の中間層の出力を用いてもよい。
【0046】
なお、画像パッチを生成モデルやエンコーダに入力する際には、これらの生成モデルやエンコーダに入力可能なように、当該画像パッチの解像度がリサイズされる。
【0047】
ステップS107:画像生成部116は、上記のステップS105で選択された生成モデルに対して、変更後のクラス情報C及び中間表現Zを入力することで、例えば図3に示す編集後画像パッチ1200を生成する。この編集後画像パッチ1200には、対象領域1101が目標クラスに応じて編集された領域1201が含まれる。なお、編集後画像パッチは、当該生成モデルにより生成され、当該生成モデルの出力として得られる。
【0048】
このとき、画像生成部116は、変更後のクラス情報Cを、生成モデルにおける画像生成の各段階に対応する解像度のクラスマップにリサイズした上で、当該生成モデルに入力する。
【0049】
例えば、図4に示すように、CNNで実現される生成モデルがレイヤ1、レイヤ2、レイヤ3等で構成されている場合、画像生成部116は、中間表現Zを当該生成モデルに入力すると共に、変更後のクラス情報Cが示すクラスマップを各レイヤが入力可能な解像度にリサイズした上で当該生成モデルに入力する。例えば、クラス数をCとして、レイヤ1にクラス情報を入力する際に入力可能なデータの次元数がH×W×C(次元)である場合、画像生成部116は、変更後のクラス情報Cが示すクラスマップの解像度をH×W(次元)にリサイズした上で、当該生成モデルのレイヤ1に入力する。同様に、例えば、レイヤ2が入力可能なデータの次元数がH×W×C(次元)である場合、画像生成部116は、変更後のクラス情報Cが示すクラスマップの解像度をH×W(次元)にリサイズした上で、当該生成モデルのレイヤ2に入力する。他のレイヤ(段階)についても同様である。
【0050】
ここで、上記では、変更後のクラス情報Cが示すクラスマップのリサイズのみを行ったが、これに限られない。例えば、各段階(レイヤ)に応じて、変更後のクラス情報Cが示すクラスマップを変更してもよい。具体的には、各段階に応じて、変更後のクラス情報Cが示すクラスマップに含まれる各値を変更(例えば、或る画素に対応する値に所定の定数を乗じる等)してもよいし、段階によってはクラスマップを生成モデルに入力しなくてもよい。特に、生成モデルによる画像生成の知見により、生成モデルの浅いレイヤ(例えば、第1層目)には変更後のクラス情報Cが示すクラスマップを生成モデルに入力しないようにしてもよい。これにより、生成モデルにより生成される画像を、より高い自由度で、より柔軟に変更することができる。
【0051】
また、上記では、中間表現Zをそのまま生成モデルに入力したが、これに限られず、例えば、中間表現Zに何等かの変化を加えて変更した上で、この変更後の中間表現Zを生成モデルに入力してもよい。更に、例えば、生成モデルが画像生成の各段階で中間表現Zを入力可能である場合には、段階毎に又は段階に応じて中間表現Zに何等かの変化を加えて変更した上で、変更後の中間表現Zを生成モデルに入力してもよい。
【0052】
なお、上記のクラスマップの変更や中間表現Zの変更は、ユーザの操作によって具体的に値が変更されてもよいし、画像生成部116により自動的に値が変更されてもよい。また、ユーザの操作によって具体的に値を変更するか又は自動的に値を変更するかは、例えば、設定情報としてユーザが予め設定可能であってもよい。
【0053】
ここで、生成モデルの各段階で中間表現Zを変更する場合の一例として、入力画像1000とは異なる他の画像(以降、「参照画像」と表す。)の中間表現を用いる場合について、図5を参照しながら説明する。図5は、生成モデルの各段階で中間表現を変更する場合の一例を説明するための図である。図5では、一例として、入力画像1000及び参照画像と、上記のステップS102で検出されるバウンディングボックスの画像パッチの解像度とが一致しているものとする。
【0054】
上記のステップS106で入力画像1000から生成される中間表現を「中間表現Z」、同様に参照画像から生成される中間表現を「中間表現Z」として、中間表現Z及び中間表現Zをそれぞれ生成モデルに入力する。このとき、図5に示すように、ユーザにより指定されたウェイトマップを用いて、生成モデルの各段階で、中間表現Zの特徴量(の一部)を、中間表現Zの特徴量の一部に混合した特徴量(以降、「混合特徴量」と表す。)を生成する。
【0055】
より詳細には、中間表現Zが入力された場合における生成モデルの段階n(n=0,・・・,N)の特徴量をF (n)、中間表現Zが入力された場合における生成モデルの段階nの特徴量をF (n)、生成モデルの段階nにおけるウェイトマップをM(n)とする。このとき、例えば、各段階nで、以下により段階nにおける混合特徴量を生成する。
【0056】
【数1】
【0057】
ここで、Nrefは参照画像数であり、図5に示す例ではNref=1である。○はアダマール積、λ(n)は0≦λ(n)≦1であり、段階nにおける混合の強さを表す。また、M (n)はウェイトマップであり、F (n)の各要素のうち、混合する要素に対応する値を1、混合しない要素に対応する値を0としたデータである。なお、上記の数1に示す混合特徴量を、明細書のテキストでは、便宜上、「(n)」と表す。
【0058】
そして、図5に示すように、最終的に出力される混合特徴量(N)を出力画像として、この出力画像を編集後画像パッチ1200とする。
【0059】
なお、図5に示す例では、便宜上、参照画像は1つであるものとしたが、上記の数1に示すように、参照画像数Nrefは2以上であってもよい。また、図5に示す例では、生成モデルの各段階nで混合特徴量を生成したが、これに限られず、或る特定の1つ以上の段階nでのみ混合特徴量を生成してもよい。特に、生成モデルの浅い段階n(例えば、n=0等)でのみ混合特徴量を生成するようにしてもよい。
【0060】
また、図5に示す例では、例えば、段階n=0で、4×4のF(0) の中央の4つの特徴量(例えば、(2,2),(2,3),(3,2),(3,3)の位置にある4つ特徴量)が混合されているが、上述したように、どの特徴量を混合対象とするかはウェイトマップM (n)により決定される。したがって、ユーザは、ウェイトマップM (n)を指定することで、どの段階nで、特徴量のどの要素を対象とした混合を行うかを決定することができる。
【0061】
更に、図5に示す例では、各段階nでF (n)とF (n)との間で同一の位置にある特徴量を混合しているが、これに限られず、例えば、F (n)とF (n)との間で異なる位置にある特徴量を混合してもよい。具体的には、例えば、段階n=0で、4×4のF(0) の中央の4つの特徴量(例えば、(2,2),(2,3),(3,2),(3,3)の位置にある4つ特徴量)を、F (1)の左上の4つの特徴量(例えば、(1,1),(1,2),(2,1),(2,2)の位置にある4つの特徴量)にそれぞれ混合する、等である。すなわち、一般的には、任意の段階nで、F (n)の任意の(空間的)位置にある特徴量を、F (n)の任意の(空間的)位置にある特徴量に混合してもよい。
【0062】
なお、本発明の実施の形態では、入力画像(の特徴量)に対して、1以上の参照画像(の特徴量)を混合するための式として、上記の数1に示す式を説明したが、上記の数1に示す式は一例であって、1次元以上の解像度を有している任意のデータ同士を混合するための式であれば任意の式を用いることができる。
【0063】
ステップS108:合成部117は、上記のステップS107で生成された編集後画像パッチ1200を、入力画像1000の画像パッチ1100部分(すなわち、上記のステップS103で選択された物体の画像パッチ部分)に合成して、例えば図3に示す編集後入力画像1300を作成する。ここで、合成部117は、例えば、画像パッチ1100に含まれる対象領域1101をマスクとして編集後画像パッチ1200から領域1201を切り出した上で、Poisson Image Blending等の画像合成手法を用いて入力画像1000の画像パッチ1100部分に合成することで、編集後入力画像1300を作成すればよい。これにより、境界部分での画像アーティファクトの発生を回避することができる。
【0064】
ステップS109:出力部118は、上記のステップS108で作成された編集後入力画像1300を出力する。なお、このとき、上記のステップS105で複数の生成モデルが選択されたことにより、上記のステップS108で複数の編集後入力画像が作成された場合には、これら複数の編集後入力画像をユーザが選択可能に表示されてもよい。これにより、ユーザは、複数の生成モデルによってそれぞれ編集された複数の編集後入力画像のうち、所望の編集後入力画像を得ることができるようになる。
【0065】
<ハードウェア構成>
次に、本発明の実施の形態における画像編集装置10のハードウェア構成について、図6を参照しながら説明する。図6は、本発明の実施の形態における画像編集装置10のハードウェア構成の一例を示す図である。
【0066】
図6に示すように、本発明の実施の形態における画像編集装置10は、入力装置201と、表示装置202と、外部I/F203と、通信I/F204と、RAM(Random Access Memory)205と、ROM(Read Only Memory)206と、プロセッサ207と、補助記憶装置208とを有する。これら各ハードウェアは、バス209により通信可能に接続されている。
【0067】
入力装置201は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置202は、例えばディスプレイ等であり、画像編集装置10の各種の処理結果(例えば、入力画像や編集後入力画像等)を表示する。なお、画像編集装置10は、入力装置201及び表示装置202のうちの少なくとも一方を有していなくてもよい。
【0068】
外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。画像編集装置10は、外部I/F203を介して、記録媒体203a等の読み取りや書き込み等を行うことができる。記録媒体203aには、画像編集処理部110を実現する1以上のプログラムや編集対象となる画像等が記録されていてもよい。
【0069】
記録媒体203aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
【0070】
通信I/F204は、画像編集装置10を通信ネットワークに接続するためのインタフェースである。画像編集処理部110を実現する1以上のプログラムや編集対象となる画像等は、通信I/F204を介して、所定のサーバ装置等から取得(ダウンロード)されてもよい。
【0071】
RAM205は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM206は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM206には、例えば、OS(Operating System)に関する設定や通信ネットワークに関する設定等が格納されている。
【0072】
プロセッサ207は、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)等であり、ROM206や補助記憶装置208等からプログラムやデータをRAM205上に読み出して処理を実行する演算装置である。画像編集処理部110は、例えば補助記憶装置208に格納されている1以上のプログラムがプロセッサ207に実行させる処理により実現される。なお、画像編集装置10は、プロセッサ207として、CPUとGPUとの両方を有していてもよいし、CPU又はGPUのいずれか一方のみを有していてもよい。また、画像編集装置10は、例えば、FPGA(Field-Programmable Gate Array)等の専用の半導体チップを有していてもよい。
【0073】
補助記憶装置208は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置208には、例えば、OS、各種のアプリケーションソフトウェア、画像編集処理部110を実現する1以上のプログラム等が格納されている。また、記憶部120は、例えば、補助記憶装置208を用いて実現される。
【0074】
本発明の実施の形態における画像編集装置10は、図6に示すハードウェア構成を有することにより、上述した画像編集処理を実現することができる。なお、図6に示すハードウェア構成は一例であって、他の構成であってもよい。例えば、画像編集装置10は、複数のプロセッサ207を有していてもよいし、複数のRAM205や複数のROM206、複数の補助記憶装置208等を有していてもよい。また、例えば、画像編集装置10は、複数のコンピュータで構成されていてもよい。
【0075】
<まとめ>
以上のように、本発明の実施の形態における画像編集装置10は、画像中の一部の画像領域における条件変数をユーザが操作したり、画像生成の各段階で条件変数を変更させたりすることで、当該画像領域を編集することができる。このとき、本発明の実施の形態では、画像中の物体検出と、当該物体の一部の領域における条件変数の操作とを組み合わせると共に、画像生成の各段階での条件変数の変更を更に組み合わせることで、画像編集を実現している。これにより、本発明の実施の形態における画像編集装置10によれば、柔軟かつ幅広いバリエーションの画像編集が可能となる。
【0076】
なお、本発明の実施の形態では、図2のステップS102でバウンディングボックスや物体を囲む任意の領域等を検出する場合について説明したが、例えば、入力画像中で編集したい領域をユーザがフリーハンド等で指定(例えば、円や矩形で囲む等)してもよい。これにより、例えば、この指定された領域に対して対象領域及び目標クラスが設定されることで、当該対象領域及び目標クラスに応じて入力画像を編集することができる。具体的には、例えば、入力画像中で編集したい領域をユーザが円で囲んで、目標クラス「柴犬」等と設定することで、当該領域に柴犬が含まれる編集後入力画像を出力することができるようになる。
【0077】
また、本発明の実施の形態では、図2のステップS104で目標クラスを設定する操作(つまり、コンディショナル情報の変更)を受け付けたが、これに限られず、例えば、中間表現Zの変更を受け付けてもよいし、コンディショナル情報の変更と中間表現Zの変更との両方を受け付けてもよい。したがって、図2のステップS107では変更後のコンディショナル情報と(変更されていない)中間表現Zとから編集後画像パッチを生成してもよいし、(変更されていない)コンディショナル情報と変更後の中間表現Zとから編集後画像パッチを生成してもよいし、変更後のコンディショナル情報と変更後の中間表現Zとから編集後画像パッチを生成してもよい。
【0078】
ここで、本発明の実施の形態では、編集対象の画像として静止画を対象に説明したが、これに限られず、例えば、動画を編集対象としてもよい。動画を編集対象とする場合、動画を構成する各フレーム画像に対して、本発明の実施の形態における画像編集処理を繰り返し適用すればよい。また、本発明の実施の形態は、画像編集だけでなく、例えば、セマンティックセグメンテーション等のタスクにも応用可能である。
【0079】
更に、上述したように、本発明の実施の形態では、編集対象のデータは画像に限られない。編集対象のデータとしては、例えば、音声、文章、3Dオブジェクト等の任意のデータを対象とすることが可能である。すなわち、1次元以上の解像度を有しているデータ(特に、時間的又は空間的な解像度を有しているデータ)であれば、任意のデータを対象とすることが可能である。したがって、本発明の実施の形態によれば、1次元以上の解像度を有している任意のデータを編集対象として、当該編集対象のデータ中の一部のデータにおける中間表現やコンディショナル情報の操作・変更により、柔軟なデータ編集を実現することができるようになる。
【0080】
本発明の実施の形態では、画像編集装置10が単一の装置で実現されている場合について説明したが、例えば、複数の装置群で実現されていてもよい。すなわち、画像編集処理部110に含まれる機能部(操作受付部111、入力部112、物体検出部113、モデル選択部114、中間表現生成部115、画像生成部116、合成部117及び出力部118)の少なくとも一部の機能部が画像編集装置10とは異なる他の装置で実現されていてもよい。同様に、記憶部120が画像編集装置10とは異なる他の装置で実現されていてもよい。
【0081】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【0082】
10 画像編集装置
110 画像編集処理部
111 操作受付部
112 入力部
113 物体検出部
114 モデル選択部
115 中間表現生成部
116 画像生成部
117 合成部
118 出力部
120 記憶部
図1
図2
図3
図4
図5
図6