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

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

▶ ブラザー工業株式会社の特許一覧

特開2024-7790コンピュータプログラム、および、画像処理装置
<>
  • 特開-コンピュータプログラム、および、画像処理装置 図1
  • 特開-コンピュータプログラム、および、画像処理装置 図2
  • 特開-コンピュータプログラム、および、画像処理装置 図3
  • 特開-コンピュータプログラム、および、画像処理装置 図4
  • 特開-コンピュータプログラム、および、画像処理装置 図5
  • 特開-コンピュータプログラム、および、画像処理装置 図6
  • 特開-コンピュータプログラム、および、画像処理装置 図7
  • 特開-コンピュータプログラム、および、画像処理装置 図8
  • 特開-コンピュータプログラム、および、画像処理装置 図9
  • 特開-コンピュータプログラム、および、画像処理装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024007790
(43)【公開日】2024-01-19
(54)【発明の名称】コンピュータプログラム、および、画像処理装置
(51)【国際特許分類】
   G06T 11/80 20060101AFI20240112BHJP
【FI】
G06T11/80 A
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022109117
(22)【出願日】2022-07-06
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】澤野 賢太郎
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050AA09
5B050BA06
5B050BA11
5B050BA12
5B050CA01
5B050DA01
5B050EA04
5B050EA09
5B050EA12
5B050EA13
5B050EA19
5B050FA02
5B050FA05
(57)【要約】
【課題】画像によって表される生物を考慮して画像の少なくとも一部を変更する
【解決手段】
顔と顔以外の部分とを含む生物を表す対象画像を使用して、生物の姿勢を推定する。推定された姿勢に応じて対象画像の少なくとも一部の画像を変更する推定対応処理を含む画像処理を実行することによって、出力画像を生成する。また、顔を含む生物を表す対象画像を使用して、顔の表情を推定する。推定された表情に応じて対象画像の少なくとも一部の画像を変更する推定対応処理を含む画像処理を実行することによって、出力画像を生成する。
【選択図】 図1
【特許請求の範囲】
【請求項1】
コンピュータプログラムであって、
顔と顔以外の部分とを含む生物を表す対象画像を使用して、前記生物の姿勢を推定する推定機能と、
推定された姿勢に応じて前記対象画像の少なくとも一部の画像を変更する推定対応処理を含む画像処理を実行することによって、出力画像を生成する出力生成機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項2】
請求項1に記載のコンピュータプログラムであって、
前記推定される姿勢が所定の種類の姿勢である場合に実行される特定の推定対応処理は、前記顔の表情を含む前記生物の外観を変更する外観変更処理と、前記対象画像のスタイルを変更する処理と、前記対象画像の背景を変更する処理とのうちの、少なくとも1以上の処理を含む、
コンピュータプログラム。
【請求項3】
コンピュータプログラムであって、
顔を含む生物を表す対象画像を使用して、前記顔の表情を推定する推定機能と、
推定された表情に応じて前記対象画像の少なくとも一部の画像を変更する推定対応処理を含む画像処理を実行することによって、出力画像を生成する出力生成機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項4】
請求項3に記載のコンピュータプログラムであって、
前記推定される表情が所定の種類の表情である場合に実行される特定の推定対応処理は、前記生物の姿勢を含む前記生物の外観を変更する外観変更処理と、前記対象画像のスタイルを変更する処理と、前記対象画像の背景を変更する処理とのうちの、少なくとも1以上の処理を含む、
コンピュータプログラム。
【請求項5】
請求項1から4のいずれかに記載のコンピュータプログラムであって、
前記画像処理は、スタイルを変更するスタイル変更処理を含み、
前記スタイル変更処理は、
前記スタイル変更処理の対象の画像であるスタイル変更対象画像のうちの前記顔の画像である第1画像のスタイルを変更することによって第1変更済画像を生成する第1生成処理と、
前記スタイル変更対象画像のうちの前記顔以外の部分を含む特定領域に対応付けられる第2画像のスタイルを変更することによって第2変更済画像を生成する第2生成処理と、
前記第1変更済画像の少なくとも一部である注目画像と前記第2変更済画像との合成処理を実行することによって、スタイル変更済の画像である変更済合成画像を生成する第3生成処理と、
を含む、コンピュータプログラム。
【請求項6】
請求項5に記載のコンピュータプログラムであって、
前記合成処理は、前記第2変更済画像によって表される前記生物の複数の部分の位置を使用して、前記第2変更済画像上の前記注目画像の合成位置を決定する決定処理を含み、
前記生物の前記複数の部分は、前記顔に含まれる部分を含む、
コンピュータプログラム。
【請求項7】
請求項2、4のいずれかに記載のコンピュータプログラムであって、
前記特定の推定対応処理は、前記外観変更処理を含み、
前記画像処理は、スタイルを変更するスタイル変更処理を含み、
前記スタイル変更処理は、前記外観変更処理による変更済の画像のスタイルを変更する、
コンピュータプログラム。
【請求項8】
画像処理装置であって、
顔と顔以外の部分とを含む生物を表す対象画像を使用して、前記生物の姿勢を推定する推定部と、
推定された姿勢に応じて前記対象画像の少なくとも一部の画像を変更する推定対応処理を含む画像処理を実行することによって、出力画像を生成する出力生成部と、
を備える、画像処理装置。
【請求項9】
画像処理装置であって、
顔を含む生物を表す対象画像を使用して、前記顔の表情を推定する推定部と、
推定された表情に応じて前記対象画像の少なくとも一部の画像を変更する推定対応処理を含む画像処理を実行することによって、出力画像を生成する出力生成部と、
を備える、画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、画像の少なくとも一部を変更する技術に関する。
【背景技術】
【0002】
画像の少なくとも一部を変更する種々の処理が提案されている。例えば、以下の論文は、画像のスタイルを他の画像に転送することによって他の画像のスタイルを変更するニューラルネットワークを開示している。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Leon A. Gatys, Alexander S. Ecker and Matthias Bethge. "Image Style Transfer Using Convolutional Neural Networks." 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (2016), DOI:10.1109/CVPR.2016.265
【発明の概要】
【発明が解決しようとする課題】
【0004】
画像は、種々の被写体を表し得る。例えば、画像は、人やペット(例えば、犬、猫)など、種々の生物を表し得る。画像によって表される生物を考慮して画像の少なくとも一部を変更する点については、工夫の余地があった。
【0005】
本明細書は、画像によって表される生物を考慮して画像の少なくとも一部を変更する技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]コンピュータプログラムであって、顔と顔以外の部分とを含む生物を表す対象画像を使用して、前記生物の姿勢を推定する推定機能と、推定された姿勢に応じて前記対象画像の少なくとも一部の画像を変更する推定対応処理を含む画像処理を実行することによって、出力画像を生成する出力生成機能と、をコンピュータに実現させる、コンピュータプログラム。
【0008】
この構成によれば、推定された姿勢に応じて対象画像の少なくとも一部の画像が変更されるので、生物の姿勢を考慮して画像を変更できる。
【0009】
[適用例2]コンピュータプログラムであって、顔を含む生物を表す対象画像を使用して、前記顔の表情を推定する推定機能と、推定された表情に応じて前記対象画像の少なくとも一部の画像を変更する推定対応処理を含む画像処理を実行することによって、出力画像を生成する出力生成機能と、をコンピュータに実現させる、コンピュータプログラム。
【0010】
この構成によれば、推定された表情に応じて対象画像の少なくとも一部の画像が変更されるので、表情を考慮して画像を変更できる。
【0011】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像処理方法および画像処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0012】
図1】一実施例としての画像処理装置を示す図である。
図2】画像処理の例を示すフローチャートである。
図3】画像処理の例を示すフローチャートである。
図4】(A)-(F)は、画像処理で処理される画像の例を示す図である。
図5】(A)、(B)は、キーポイントの例を示す図である。
図6】姿勢処理テーブルT1の例を示す図である。
図7】(A)-(E)は、画像処理で処理される顔領域画像の例を示す図である。
図8】表情処理テーブルT2の例を示す図である。
図9】(A)-(C)は、画像処理で処理される画像の例を示す図である。
図10】ランドマークセットの例を示す図である。
【発明を実施するための形態】
【0013】
A.第1実施例:
A1.装置構成:
図1は、一実施例としての画像処理装置を示す図である。本実施例では、画像処理装置200は、例えば、パーソナルコンピュータである。画像処理装置200は、生物を表す画像の少なくとも一部の画像を変更する画像処理装置の例である。
【0014】
画像処理装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
【0015】
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、プログラム231と、姿勢推定モデルM1と、姿勢分類モデルM2と、顔表情変更モデルM3と、スタイル変換モデルM4と、分割モデルM5と、顔検出モデルM6と、ランドマーク検出モデルM7と、超解像モデルM8と、表情分類モデルM9と、姿勢処理テーブルT1と、表情処理テーブルT2と、のそれぞれのデータを格納している。本実施例では、モデルM1-M9は、それぞれ、プログラムモジュールである。モデルM1-M9は、それぞれ、いわゆる機械学習モデルである。本実施例では、モデルM1-M9は、それぞれ、訓練済である。プログラム231とモデルM1-M9とテーブルT1、T2との詳細については、後述する。
【0016】
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。ユーザは、操作部250を操作することによって、種々の指示を画像処理装置200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである。通信インタフェース270は、例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェースのうちの1種以上を含む。
【0017】
A2.画像処理:
図2図3は、画像処理の例を示すフローチャートである。図3は、図2の続きを示している。プログラム231(図1)は、画像処理のためのプログラムである。ユーザは、画像処理の開始指示を、操作部250を操作することによって、画像処理装置200に入力する。プロセッサ210は、開始指示に従って、画像処理を開始する。この画像処理は、入力画像とスタイル画像とを使用して、スタイル画像のスタイルで表現される出力画像を生成する。本実施例では、入力画像は、人物を表す撮影画像である。スタイル画像は、油絵の画像など、入力画像のスタイルとは異なるスタイルを有する種々の画像であってよい。スタイルは、筆跡、明るさの分布、色相の分布など、画像の表現に関する種々の観点から識別されてよい。以下、入力画像を、第1対象画像とも呼ぶ。
【0018】
S110では、第1対象画像と入力スタイル画像とのペアのデータを取得する。例えば、プロセッサ210は、ユーザによって指定されるデータを、記憶装置(例えば、不揮発性記憶装置230、通信インタフェース270に接続される図示しない記憶装置、など)から、取得する。
【0019】
図4(A)-図4(F)は、画像処理で処理される画像の例を示す図である。図4(A)は、第1対象画像の例を示している。第1対象画像IMa1は、第1方向Dx(ここでは、横方向)に平行な2辺と、第1方向Dxに垂直な第2方向Dy(ここでは、縦方向)に平行な2辺と、を有する矩形状の画像である。第1対象画像IM1は、第1方向Dxと第2方向Dyとに沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値によって、表されている。本実施例では、色値は、R(赤)、G(緑)、B(青)の3個の成分値で表されている。各成分値は、例えば、0から255までの256段階で表されている。本実施例では、後述する他の画像も、第1方向Dxに平行な2辺と第2方向Dyに平行な2辺とを有する矩形状を有している。
【0020】
第1対象画像IMa1は、背景Ba1と人物PRとを表す撮影画像である。第1対象画像IMa1は、人物PRの顔Fa1と、胴Ta1と、右腕ARa1と、左腕ALa1とを表している。人物PRは、左腕ALa1を曲げて、左手LHを顔Fa1の横に持ち上げている(左手LHが顔Fa1の横に配置されている)。以下、人物PRのうちの顔Fa1以外の部分を、残余部分Ra1と呼ぶ。
【0021】
S120(図2)では、プロセッサ210は、第1対象画像IMa1中の人物PRの姿勢を推定する。姿勢の推定方法は、種々の方法であってよい。本実施例では、プロセッサ210は、姿勢推定モデルM1(図1)を使用して、人物PRの姿勢を推定する。姿勢推定モデルM1は、人物の姿勢を推定する種々のモデルであってよい。本実施例では、姿勢推定モデルM1は、「OpenPose」と呼ばれる姿勢推定モデルである。OpenPoseは、カーネギーメロン大学のCenter for Technology Transfer and Enterprise Creation (CTTEC)で開発されたソフトウェアである。OpenPoseのライブラリは、以下のURLで公開されている。
https://github.com/CMU-Perceptual-Computing-Lab/openpose
また、OpenPoseは、以下の論文に開示されている。
Zhe Cao, Gines Hidalgo, Tomas Simon, Shih-En Wei and Yaser Sheikh, "OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields", arXiv, 30 May 2019, http://arxiv.org/abs/1812.08008
【0022】
図5(A)、図5(B)は、姿勢推定モデルM1によって推定されるキーポイントの例を示す図である。OpenPoseのモデルは、人物の複数の部分を示す複数のキーポイントの画像内の位置を推定する。本実施例では、姿勢推定モデルM1は、OpenPoseの「BODY_25」と呼ばれるモデルである。このモデルは、25個のキーポイントKP0-KP24を検出する。図5(A)は、キーポイントKP0-KP24によって表される骨格SKの例を示している。図中では、予め決められたキーポイントの複数のペアが、線Lで接続されている(以下、線Lを接続線Lとも呼ぶ)。キーポイントKP0-KP24と複数の接続線Lとは、人物の骨格SKを表している。接続線Lによって接続すべきキーポイントペアは、接続線Lが人物の骨格の一部を示すように、予め決められている。なお、図中では、いくつかの接続線の符号が省略されている)。
【0023】
図5(B)は、キーポイントKP0-KP24と体の部分との対応関係KRを示している。対応関係KRにおいて、「R」は右を示し、「L」は左を示している。例えば、第15キーポイントKP15の「R-Eye」は右目を示している。
【0024】
姿勢推定モデルM1は、人物の画像から適切なキーポイントを検出するように、予め訓練される。訓練方法は、例えば、OpenPoseの論文に記載の訓練方法であってよい。姿勢推定モデルM1の訓練には、OpenPoseの上記のURLで公開されている訓練用のライブラリが使用されてよい。
【0025】
S120(図2)では、プロセッサ210は、訓練済の姿勢推定モデルM1の演算を、第1対象画像IMa1(図4(A))を使用して実行することによって、第1対象画像IMa1の人物の姿勢を表すキーポイントを検出する。図4(B)は、第1対象画像IMa1から検出されるキーポイントの例を示している。図4(B)の例では、人物PRを示す13個のキーポイントKP0-KP8、KP15-KP18が、検出されている。以下、S120で推定される姿勢(本実施例では、キーポイントによって示される姿勢)を、第1推定姿勢とも呼ぶ。
【0026】
なお、プロセッサ210は、姿勢推定モデルM1の演算を実行するために、姿勢推定モデルM1に入力される画像のデータ形式を、姿勢推定モデルM1によって受付可能な入力データ形式に変換する形式変換処理を行う。例えば、画像の幅と高さとが入力データ形式の幅と高さと異なる場合、形式変換処理は、解像度変換処理(リサイズ処理とも呼ばれる)を含んでよい(例えば、バイキュービック法やバイリニア法など)。また、画像のアスペクト比が入力データ形式のアスペクト比と異なる場合、形式変換処理は、アスペクト比を調整する処理を含んでよい。プロセッサ210は、例えば、適切なアスペクト比に対して足りない領域に、所定の色(例えば、白、黒など)を有する画素を補足するパディング処理を実行してよい。これに代えて、プロセッサ210は、第1方向Dxの解像度変換と第2方向Dyの解像度変換とを、互いに異なる変換比率で実行してよい(変換比率は、変換前の解像度に対する変化済の解像度の比率)。また、画像のチャンネル(例えば、赤、緑、青の3チャンネル)が入力データ形式のチャンネルと異なる場合、形式変換処理は、チャンネル変換処理(例えば、色変換処理)を含んでよい。プロセッサ210は、このような形式変換処理を、他のモデルM2-M9の演算を実行する場合にも、実行する。形式変換処理は、モデルに適合するように、モデル毎に予め決められる。モデルによって画像が生成される場合、生成される画像のサイズが元の画像のサイズと異なり得る。この場合、プロセッサ210は、モデルによって生成される画像のリサイズ処理(例えば、形式変換処理の逆変換処理)を実行することによって、元の画像のサイズと同じサイズを有する画像を生成する。なお、超解像モデルM8によって生成される画像については、リサイズ処理は省略される。
【0027】
S130(図2)では、プロセッサ210は、第1推定姿勢が、姿勢処理テーブルT1(図1)によって定められる特定の姿勢であるか否かを判断する。図6は、姿勢処理テーブルT1の例を示す図である。姿勢処理テーブルT1は、姿勢Pと、推定対応処理IP1と、の対応関係を示している。図6の例では、姿勢処理テーブルT1は、特定姿勢PP1-PP3を含むk種類の特定姿勢PPi(iは1以上、k以下の整数。kは、特定姿勢の総数(1以上の整数))のそれぞれの対応関係を定めている。
【0028】
第1種特定姿勢PP1では、人物は、片方の腕を曲げて、その手を顔の横に配置している。第1種特定姿勢PP1は、左手を持ち上げる姿勢PP1aと、右手を持ち上げる姿勢PP1bと、を含んでいる。第1種特定姿勢PP1は、喜びの感情を示し得る。第1種特定姿勢PP1には、表情変更処理IP1aが、対応付けられている。本実施例では、表情変更処理IP1aは、顔の表情を笑顔に変更する。
【0029】
第2種特定姿勢PP2では、人物は、両腕を曲げて、両手を顔の横に配置している。第2種特定姿勢PP2には、スタイル変換処理IP1bが対応付けられている。本実施例では、スタイル変換処理IP1bは、第1スタイル画像を使用して、スタイル変換を行う(すなわち、スタイルが変更される)。
【0030】
第3種特定姿勢PP3では、人物は、両腕を曲げて、両手を肩の横に配置している。第3種特定姿勢PP3は、肩をすくめる姿勢である。第3種特定姿勢PP3には、背景変更処理IP1cが対応付けられている。本実施例では、背景変更処理IP1cは、背景画像を、特定の背景画像に変更する。
【0031】
最後の姿勢PPzは、特定姿勢PPiには分類されない姿勢である(残余姿勢PPzと呼ぶ)。残余姿勢PPzには、推定対応処理IP1は、対応付けられない。
【0032】
S130(図2)では、プロセッサ210は、第1推定姿勢が特定姿勢PPiのいずれかであるか否かを判断する。この判断方法は、種々の方法であってよい。本実施例では、プロセッサ210は、姿勢分類モデルM2(図1)を使用して、第1推定姿勢が特定姿勢PPiであるか否かを判断する。まず、プロセッサ210は、S120で検出されるキーポイントのセットと、キーポイントのセットによって形成される複数の接続線と、を表す骨格画像のデータを生成する。骨格画像は、図5(A)の骨格SKのように、複数のキーポイントと複数の接続線とによって形成される骨格を表している。
【0033】
次に、プロセッサ210は、訓練済の姿勢分類モデルM2の演算を、骨格画像のデータを使用して実行することによって、第1推定姿勢をk種類の特定姿勢PPiのいずれかに分類する。姿勢分類モデルM2は、骨格画像によって表される姿勢を分類する種々のモデルであってよい。本実施例では、姿勢分類モデルM2は、畳込ニューラルネットワーク画像分類器と呼ばれる機械学習モデルである。図示を省略するが、本実施例では、姿勢分類モデルM2は、交互に並ぶ複数の畳込層と複数のプーリング層とを有する第1ネットワークと、1以上の全結合層を有する第2ネットワークと、を有している。第1ネットワークは、姿勢分類モデルM2に入力される画像の特徴を示す特徴マップを生成する。第2ネットワークは、特徴マップを使用して、k種類の特定姿勢PPiに対応するk個の確信度を示すk個の出力値を生成する。例えば、第2ネットワークは、Softmaxと呼ばれる活性化関数を使用して、k個の出力値の合計値が1になるように、k個の出力値を正規化する。
【0034】
姿勢分類モデルM2の訓練方法は、畳込ニューラルネットワーク画像分類器を適切に訓練可能な種々の方法であってよい。例えば、訓練用の骨格画像が姿勢分類モデルM2に入力される。そして、k個の出力値のうち、骨格画像の姿勢に対応する出力値が最も大きくなるように、姿勢分類モデルM2の複数の演算パラメータが調整される。複数の演算パラメータの調整は、互いに異なる姿勢を示す複数の骨格画像を使用して、行われる。複数の演算パラメータを調整するためのアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを使用したアルゴリズムが採用されてよい。ここで、いわゆるAdamの最適化が行われてよい。
【0035】
訓練済の姿勢分類モデルM2に入力される骨格画像の姿勢は、k個の出力値のうちの最大の出力値に対応する特定姿勢PPiに分類される。なお、最大の出力値が所定の姿勢閾値以下である場合、プロセッサ210は、骨格画像の姿勢がk種類の特定姿勢PPiのいずれとも異なると判断してよい。姿勢閾値は、姿勢が適切に分類されるように、予め実験的に決定される。例えば、姿勢閾値は、骨格画像の姿勢がk種類の特定姿勢PPiのいずれかである場合に、最大の出力値が姿勢閾値よりも大きくなり、骨格画像の姿勢がk種類の特定姿勢PPiのいずれとも異なる場合に、最大の出力値が姿勢閾値よりも小さくなるように、決定される。
【0036】
第1推定姿勢がk種類の特定姿勢PPiのいずれかであると判断される場合(図2:S130:Yes)、S140で、プロセッサ210は、第1推定姿勢の特定姿勢PPiに対応付けられる推定対応処理IP1を実行する(図6)。プロセッサ210は、推定対応処理IP1を、第1対象画像IMa1(図4(B))に対して実行する。
【0037】
第1対象画像IMa1(図4(B))の第1推定姿勢が、第1種特定姿勢PP1(図6)に分類されると仮定する。この場合、プロセッサ210は、表情変更処理IP1aを実行する。表情変更処理IP1aは、顔の表情を変更する種々の処理であってよい。本実施例では、プロセッサ210は、訓練済の顔表情変更モデルM3(図1)を使用して、第1対象画像によって表される顔の表情を変更する。顔表情変更モデルM3は、顔の表情を変更する種々のモデルであってよい。本実施例では、顔表情変更モデルM3は、以下の論文に開示される「FaR-GAN」と呼ばれるモデルである。
Hanxiang Hao, Sriram Baireddy, Amy R. Reibman and Edward J. Delp, "FaR-GAN for One-Shot Face Reenactment", arXiv, 13 May 2020, http://arxiv.org/abs/2005.06402
【0038】
FaR-GANは、顔ランドマークのセットから元画像へ顔の表情を転送することによって、元画像の人物と同じ人物の、顔ランドマークのセットによって表される表情と同じ表情を有する、新しい顔の画像を生成する。顔ランドマークは、顎、鼻、目、眉、口など、顔の部分を示す点である。顔ランドマークのセットは、顔の複数の部分を示す複数の点を有している。本実施例では、笑顔を表す顔ランドマークのセットが使用される。図4(C)は、第1対象画像IMa1(図4(A))から生成される処理済画像の例を示している。この処理済画像IMa2は、第1対象画像IMa1の人物PRと同じ人物PRの顔を表している。顔Fa2は、笑顔に変更されている。
【0039】
プロセッサ210は、第1対象画像IMa1から顔を表す顔部分を抽出し、抽出された画像を使用して、姿勢分類モデルM2の演算を実行してよい。そして、プロセッサ210は、姿勢分類モデルM2によって生成される顔画像を第1対象画像IMa1に合成することによって、処理済画像IMa2を生成してよい。顔部分の抽出方法は、任意の方法であってよい。例えば、プロセッサ210は、YOLO(You only look once)と呼ばれる物体検出モデルを使用して、第1対象画像IMa1から顔部分を検出してよい。
【0040】
他の推定対応処理IP1(例えば、処理IP1b、IP1c(図6))も、種々の処理であってよい。例えば、スタイル変換処理IP1bでは、プロセッサ210は、スタイル変換モデルM4を使用して、第1対象画像のスタイル変換を行う。スタイル変換モデルM4は、画像の物体の形状(例えば、エッジの形状)の変化を抑制しつつ、画像のスタイル変換を行う種々のモデルであってよい。本実施例では、スタイル変換モデルM4は、以下の論文に開示されるスタイル変換モデルである。この論文の技術は、adaptive instance normalization(AdaIN)と呼ばれる正規化を使用する。
Xun Huang and Serge Belongie, "Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization", arXiv:1703.06868, 30 Jul. 2017, http://arxiv.org/abs/1703.06868
スタイル変換モデルM4は、スタイル画像のスタイルで元画像をレンダリングすることによって、スタイル画像のスタイルで表現される変換済画像を生成する。スタイル変換モデルM4は、変換済画像を適切に生成できるように、予め訓練される。訓練方法は、例えば、AdaINの上記の論文に記載の訓練方法であってよい。
【0041】
プロセッサ210は、訓練済のスタイル変換モデルM4の演算を、第1対象画像と第1スタイル画像とを使用して実行することによって、スタイル変換済の画像を生成する。本実施例では、第2種特定姿勢PP2(図6)は、不安の感情を示し得る。第1スタイル画像としては、例えば、不安を表現する所定の画像(例えば、油絵の画像)が使用される。
【0042】
背景変更処理IP1c(図6)では、プロセッサ210は、第1対象画像のうちの背景部分を選択し、背景部分の画像を特定の背景画像に変更する。背景部分の選択方法は、種々の方法であってよい。例えば、プロセッサ210は、分割モデルM5を使用して、第1対象画像を背景部分と他の部分とに分割する。分割モデルM5は、種々のモデルであってよい。本実施例では、分割モデルM5は、以下の論文に開示される「Mask R-CNN」と呼ばれるモデルである。
Kaiming He, Georgia Gkioxari, Piotr Dollar(「a」は、アキュートアクセントを有する) and Ross Girshick, "Mask R-CNN", arXiv:1703.06870, 24 Jan. 2018, http://arxiv.org/abs/1703.06870
Mask R-CNNは、「instance segmentation」と呼ばれる領域分割を行うモデルである。この領域分割は、物体毎に、物体の領域と物体の種類(クラス)とを検出する。この領域分割は、画素がどの物体領域に含まれるのかを、画素毎に決定する(このような処理は、セグメンテーションとも呼ばれる)。分割モデルM5は、人物を含む複数種類の物体の領域を適切に分割できるように、予め訓練される。訓練方法は、例えば、Mask R-CNNの上記の論文に記載の訓練方法であってよい。
【0043】
プロセッサ210は、訓練済の分割モデルM5の演算を、第1対象画像を使用して実行することによって、第1対象画像のうちの物体を表していない部分(すなわち、背景部分)を検出する。プロセッサ210は、背景部分の画像を、特定の背景画像に変更する。特定の背景画像は、第3種特定姿勢PP3(図6)に適する種々の画像であってよい。本実施例では、第3種特定姿勢PP3は、諦めの感情を示し得る。特定の背景画像としては、例えば、暗い風景画像が使用される。
【0044】
S140(図2)の処理の後、プロセッサ210は、S150へ移行する。プロセッサ210は、S140で処理された画像を使用して、S150以降の処理を実行する。第1推定姿勢がk種類の特定姿勢PPiのいずれとも異なると判断される場合(S130:No)、プロセッサ210は、S140をスキップして、S150へ移行する。この場合、プロセッサ210は、第1対象画像を使用して、S150以降の処理を進行する。以下、S150以降の処理の対象の画像を、第2対象画像と呼ぶ。第2対象画像は、第1対象画像、または、S140で処理された画像である。図4(C)の処理済画像IMa2は、第2対象画像の例である(処理済画像IMa2を、第2対象画像IMa2とも呼ぶ)。
【0045】
S150では、プロセッサ210は、第2対象画像(例えば、第2対象画像IMa2(図4(C)))から顔領域を検出する。顔領域の検出処理は、種々の処理であってよい。本実施例では、プロセッサ210は、訓練済の顔検出モデルM6を使用して、第2対象画像から顔領域を検出する。顔検出モデルM6は、顔の領域を検出する種々のモデルであってよい。本実施例では、顔検出モデルM6は、以下の論文に開示される「BlazeFace」と呼ばれる物体検出モデルである。
Valentin Bazarevsky, Yury Kartynnik, Andrey Vakunov, Karthik Raveendran and Matthias Grundmann, "BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs", arXiv:1907.05047, 14 Jul. 2019, http://arxiv.org/abs/1907.05047
【0046】
図4(D)は、第2対象画像IMa2から検出される顔領域の例を示している。顔検出モデルM6は、顔を囲む矩形の枠(バウンディングボックスと呼ばれる)を検出する。顔検出モデルM6は、顔の画像から顔を示す適切なバウンディングボックスを検出するように、BlazeFaceの論文に記載の訓練方法によって、予め訓練される。プロセッサ210は、第2対象画像IMa2を使用して顔検出モデルM6の演算を実行することによって、顔Fa2に対応するバウンディングボックスBBを検出し得る。
【0047】
S160(図2)では、プロセッサ210は、第2対象画像(例えば、第2対象画像IMa2(図4(D)))から、顔領域の画像である顔領域画像を抽出する。図7(A)-図7(E)は、画像処理で処理される顔領域画像の例を示す図である。図7(A)は、図4(D)の第2対象画像IMa2から抽出される顔領域画像を示している。顔領域画像IMb2は、バウンディングボックスBBに囲まれる領域の画像である。顔領域画像IMb2は、顔Fa2と、人物PRのうちの顔Fa2以外の部分である残余部分Rb2と、背景Bb2と、を表している。
【0048】
S170(図2)では、プロセッサ210は、顔領域画像の高解像度化処理を実行する。高解像度化処理は、画像の解像度(すなわち、画素密度)を大きくする種々の処理であってよい。本実施例では、プロセッサ210は、訓練済の超解像モデルM8(図1)を使用して、高解像度の画像を生成する。超解像モデルM8は、高解像度の画像を生成する種々のモデルであってよい。本実施例では、超解像モデルM8は、以下の論文に開示される画像生成モデルである。この論文は、「PULSE」と呼ばれる技術を開示する。
Sachit Menon, Alexandru Damian, Shijia Hu, Nikhil Ravi and Cynthia Rudin, "PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models", arXiv:2003.03808, 20 Jul. 2020, http://arxiv.org/abs/2003.03808
【0049】
この論文に記載の技術では、顔の自然な高解像度画像を生成するように訓練済の画像生成モデル(論文では、StyleGAN)を使用して、高解像度画像が生成される。生成された高解像度画像のダウンスケール(論文では、バイキュービック)によって得られる低解像度画像と、元の低解像度画像と、の間の差が小さくなるように、画像生成モデルに入力すべき潜在変数が探索される。探索された潜在変数を使用して画像生成モデルによって生成される高解像度画像が、低解像度画像に対応する高解像度画像として採用される。潜在変数の探索は、ロスが小さくなるように、行われる。ここで、ダウンスケールによって得られる低解像度画像と元の低解像度画像との間の差を示すダウンスケーリングロスと、自然な画像を生成する潜在変数を探索するためのクロスロス(geodesic cross lossとも呼ばれる)と、が使用される。
【0050】
本実施例では、超解像モデルM8は、顔の自然な高解像度画像を生成するように訓練済のStyleGANである。StyleGANの構成としては、例えば、以下の論文に開示の構成が採用される。
Tero Karras, Samuli Laine and Timo Aila, "A Style-Based Generator Architecture for Generative Adversarial Networks", arXiv:1812.04948, 29 Mar. 2019, http://arxiv.org/abs/1812.04948
超解像モデルM8は、この論文に記載の訓練方法によって、予め訓練される。
【0051】
プロセッサ210は、訓練済の超解像モデルM8を使用して、顔領域画像(例えば、顔領域画像IMb2(図7(A)))に対応する高解像度画像を生成する。図7(B)の画像IMb3は、顔領域画像IMb2から生成される高解像度画像の例である。高解像度画像の生成方法としては、PULSEの上記の論文に記載の方法が採用される。高解像度化処理による倍率は、1よりも大きい任意の値であってよい。例えば、幅と高さとのそれぞれが、4倍に増大されてよい。
【0052】
S180(図2)では、プロセッサ210は、高解像度の顔領域画像(例えば、顔領域画像IMb3(図7(B))を使用して、顔の表情を推定する。本実施例では、プロセッサ210は、表情分類モデルM9(図1)を使用して、顔の表情を分類する。表情分類モデルM9は、画像に含まれる顔の表情を分類する種々のモデルであってよい。本実施例では、表情分類モデルM9は、畳込ニューラルネットワーク画像分類器と呼ばれる機械学習モデルである。表情分類モデルM9のアーキテクチャは、姿勢分類モデルM2のアーキテクチャと同じである。表情分類モデルM9は、表情分類モデルM9に入力される画像を、表情処理テーブルT2によって定められるm種類(mは、1以上の整数)の表情のいずれかに分類する。
【0053】
図8は、表情処理テーブルT2の例を示す図である。表情処理テーブルT2は、顔の表情Eと、推定対応処理IP2と、の対応関係を示している。図8の例では、表情処理テーブルT2は、特定表情EP1-EP4を含むm種類の特定表情EPjのそれぞれの対応関係を定めている(mは、特定表情EPjの総数(1以上の整数)、jは、1以上、m以下の整数。)。
【0054】
第1種特定表情EP1は、笑顔である。第1種特定表情EP1には、第1種背景調整処理IP2aが、対応付けられている。本実施例では、第1種背景調整処理IP2aは、背景の明るさを明るくする。
【0055】
第2種特定表情EP2は、泣き顔である。第2種特定表情EP2には、第2種背景調整処理IP2bが、対応付けられている。本実施例では、第2種背景調整処理IP2bは、背景の明るさを暗くする。
【0056】
第3種特定表情EP3は、片目を閉じた表情である(ウィンクとも呼ばれる)。第3種特定表情EP3は、左目を閉じる表情EP3aと、右目を閉じる表情EP3bと、を含んでいる。本実施例では、第3種特定表情EP3は、友好的なジェスチャーとして使用されることとする。第3種特定表情EP3には、姿勢変更処理IP2cが対応付けられている。姿勢変更処理IP2cは、人物の姿勢を、特定の姿勢に変更する。
【0057】
第4種特定表情EP4は、驚き顔である。第4種特定表情EP4では、両目と口とが大きく開いている。第4種特定表情EP4には、スタイル変換処理IP2dが対応付けられている。スタイル変換処理IP2dは、第2スタイル画像を使用して、スタイル変換を行う。
【0058】
最後の表情EPzは、特定表情EPjには分類されない表情である(残余表情EPzとも呼ぶ)。残余表情EPzには、推定対応処理IP2は、対応付けられない。
【0059】
表情分類モデルM9は、表情分類モデルM9に入力される画像を使用して、m種類の特定表情EPjに対応するm個の確信度を示すm個の出力値を生成する。表情分類モデルM9の訓練方法は、姿勢分類モデルM2の訓練方法と同じであってよい。例えば、訓練用の顔画像が表情分類モデルM9に入力される。そして、m個の出力値のうち、顔画像の表情に対応する出力値が最も大きくなるように、表情分類モデルM9の複数の演算パラメータが調整される。複数の演算パラメータの調整は、互いに異なる表情を示す複数の顔画像を使用して、行われる。複数の演算パラメータを調整するためのアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを使用したアルゴリズムが採用されてよい。ここで、いわゆるAdamの最適化が行われてよい。
【0060】
S180(図2)では、プロセッサ210は、訓練済の表情分類モデルM9の演算を、高解像度の顔領域画像(例えば、顔領域画像IMb3(図7(B)))を使用して実行することによって、m種類の特定表情EPjのそれぞれの確信度を算出する。プロセッサ210は、顔領域画像の表情を、m個の出力値のうちの最大の出力値に対応する特定表情EPjに分類する。なお、最大の出力値が所定の表情閾値以下である場合、プロセッサ210は、顔領域画像の表情がm種類の特定表情EPjのいずれとも異なると判断してよい。表情閾値は、表情が適切に分類されるように、予め実験的に決定される。例えば、表情閾値は、顔領域画像の表情がm種類の特定表情EPjのいずれかである場合に、最大の出力値が表情閾値よりも大きくなり、顔領域画像の表情がm種類の特定表情EPjのいずれとも異なる場合に、最大の出力値が表情閾値よりも小さくなるように、決定される。以下、S180で分類される顔領域画像の表情を、推定表情と呼ぶ。
【0061】
S190(図2)では、プロセッサ210は、推定表情が特定表情EPjであるか否かを判断する。推定表情がm種類の特定表情EPjのいずれかである場合(S190:Yes)、S200で、プロセッサ210は、推定表情の特定表情EPjに対応付けられる推定対応処理IP2を実行する(図8)。プロセッサ210は、推定対応処理IP2を、第2対象画像(例えば、第2対象画像IMa2(図4(D)))に対して実行する。
【0062】
高解像度の顔領域画像IMb3(図7(B))の推定表情が、第1種特定表情EP1(図8)に分類されると仮定する。この場合、プロセッサ210は、第1種背景調整処理IP2aを実行する。プロセッサ210は、第2対象画像(例えば、第2対象画像IMa2(図4(D))のうちの背景部分を選択し、背景部分の明るさを明るくする。背景部分の選択方法は、S140の背景変更処理IP1c(図6)で説明した方法(ここでは、分割モデルM5を使用する方法)と同じである。プロセッサ210は、背景部分の輝度値のトーンカーブを調整することによって、背景部分の輝度値を増大する。図4(E)の画像IMa3は、第2対象画像IMa2(図4(D))から第1種背景調整処理IP2aによって生成される画像の例である。第2対象画像IMa2の背景Ba1が、明るい背景Ba3に変更されている。なお、背景の明るさを明るくする処理は、輝度値を増大する処理に代えて、他の種々の処理であってよい。例えば、プロセッサ210は、背景部分の画像を、予め準備された明るい背景画像に変更してよい。
【0063】
他の推定対応処理IP2(例えば、処理IP2b-IP2d(図8))も、種々の処理であってよい。例えば、第2種背景調整処理IP2bでは、プロセッサ210は、第2対象画像のうちの背景部分を選択し、背景部分の明るさを暗くする。背景部分の選択方法と明るさの調整方法とは、第1種背景調整処理IP2aのものと同じであってよい。プロセッサ210は、背景部分の輝度値を低減してよい。これに代えて、プロセッサ210は、背景部分の画像を、予め準備された暗い背景画像に変更してよい。
【0064】
姿勢変更処理IP2cでは、プロセッサ210は、第2対象画像の人物の姿勢を、特定の姿勢に変更する。姿勢を変更する処理は、種々の処理であってよい。本実施例では、プロセッサ210は、第2対象画像(例えば、第2対象画像IMa2(図4(D)))から人物を形成する複数の部分(例えば、上腕、下腕、上肢、下肢など)を抽出する。プロセッサ210は、特定の姿勢を有する骨格SKx(図8)に合せて、抽出した複数の部分を配置する。これにより、処理済の画像中では、人物は、骨格SKxの姿勢と同じ姿勢を有する。人物を形成する複数の部分を抽出する処理は、種々の処理であってよい。例えば、プロセッサ210は、分割モデルM5(図1)を使用して、第2対象画像から人物を表す部分を検出する。プロセッサ210は、人物を表す部分を、S120で検出される複数のキーポイントのそれぞれの位置で、更に分割する。これにより、プロセッサ210は、上腕、下腕、上肢、下肢などの複数の部分を抽出できる。なお、姿勢変更処理IP2cでは、プロセッサ210は、腕と足とのみの配置を変更してよい。
【0065】
スタイル変換処理IP2dでは、プロセッサ210は、第2対象画像のスタイル変換を行う。S140(図2)のスタイル変換処理IP1b(図6)とは異なり、第2スタイル画像が使用される。プロセッサ210は、訓練済のスタイル変換モデルM4の演算を、第2対象画像と第2スタイル画像とを使用して実行することによって、スタイル変換済の画像を生成する。本実施例では、第4種特定表情EP4は、驚きの感情を示し得る。第2スタイル画像としては、例えば、驚きを表現する所定の画像(例えば、油絵の画像)が使用される。
【0066】
S200(図2)の処理の後、プロセッサ210は、S210へ移行する。プロセッサ210は、S200で処理された画像を使用して、S210以降の処理を実行する。推定表情がm種類の特定表情EPjのいずれとも異なると判断される場合(S190:No)、プロセッサ210は、S200をスキップして、S210へ移行する。この場合、プロセッサ210は、第2対象画像を使用して、S210以降の処理を進行する。以下、S210以降の処理の対象の画像を、第3対象画像と呼ぶ。第3対象画像は、第2対象画像、または、S200で処理された画像である。図4(E)の画像IMa3は、第3対象画像の例である(画像IMa3を、第3対象画像IMa3とも呼ぶ)。
【0067】
S210では、プロセッサ210は、第3対象画像(例えば、第3対象画像IMa3(図4(E)))の全体のスタイル変換を行う。プロセッサ210は、訓練済のスタイル変換モデルM4の演算を、第3対象画像とS110で取得される入力スタイル画像とを使用して実行することによって、スタイル変換済の画像を生成する(以下、変換済全体画像と呼ぶ)。
【0068】
図4(F)の画像IMa4は、第3対象画像IMa3(図4(E))から生成される変換済全体画像の例を示している。この変換済全体画像IMa4は、第3対象画像IMa3の人物PRと同じ人物PRを表している。顔Fa4と残余部分Ra4とを含む人物PRと、背景Ba4とは、入力スタイル画像のスタイルで表されている。なお、スタイル変換処理は、物体の形状を変化させ得る。図4(F)の例では、人物PRの顔Fa4の口の形状が、元の第3対象画像IMa3における形状から、大幅に変化している。このような形状の変化は、種々の原因によって、引き起こされ得る。例えば、第3対象画像IMa3中で顔Fa2の大きさが小さい場合に、顔Fa2に含まれる部分の形状がスタイル変換によって大きく変化し得る。
【0069】
S220(図2)では、プロセッサ210は、変換済全体画像(例えば変換済全体画像IMa4(図4(F)))中の人物の姿勢を推定する。姿勢推定の方法は、S120での姿勢推定の方法と同じである。プロセッサ210は、訓練済の姿勢推定モデルM1(図1)の演算を、変換済全体画像を使用して実行することによって、変換済全体画像の人物の姿勢を表すキーポイントを検出する。
【0070】
図9(A)-図9(C)は、画像処理で処理される画像の例を示す図である。図9(A)は、変換済全体画像IMa4(図4(F))から検出されるキーポイントの例を示している。図9(A)の例では、人物PRを示す13個のキーポイントKP0-KP8、KP15-KP18が、検出されている。以下、S220で推定される姿勢(本実施例では、キーポイントによって示される姿勢)を、第2推定姿勢とも呼ぶ。S200(図2)では、姿勢変更処理IP2c(図8)が実行され得る。従って、第2推定姿勢は、第1推定姿勢(図2:S120)とは異なり得る。
【0071】
S230(図3)では、プロセッサ210は、高解像度の顔領域画像(図2:S170)のスタイル変換を実行する。プロセッサ210は、訓練済のスタイル変換モデルM4の演算を、高解像度の顔領域画像とS110で取得される入力スタイル画像とを使用して実行することによって、スタイル変換済の画像を生成する(以下、変換済顔領域画像と呼ぶ)。
【0072】
図7(C)の画像IMb4は、高解像度の顔領域画像IMb3(図7(B))から生成される変換済顔領域画像の例を示している。この変換済顔領域画像IMb4は、顔領域画像IMb3の人物PRと同じ人物PRを表している。顔Fb3と残余部分Rb3を含む人物PRと、背景Bb3とは、入力スタイル画像のスタイルで表されている。
【0073】
なお、S230(図3)でスタイル変換モデルM4に入力される顔領域画像IMb3(図7(B))中では、S210(図2)でスタイル変換モデルM4に入力される第3対象画像IMa3(図4(E))中と比べて、顔が大きい(すなわち、顔を表す領域の画素数が多い)。従って、S230では、S210と比べて、顔に含まれる部分(例えば、口など)の変形の可能性は、小さい。
【0074】
S240(図3)では、プロセッサ210は、変換済顔領域画像(例えば、変換済顔領域画像IMb4(図7(C)))から顔のランドマークを検出する。顔のランドマークは、顎、鼻、目、眉、口など、顔の部分を示す点である。顔のランドマークの検出方法は、種々の方法であってよい。本実施例では、プロセッサ210は、ランドマーク検出モデルM7(図1)を使用して、ランドマークを検出する。ランドマーク検出モデルM7は、顔のランドマークを検出する種々のモデルであってよい。本実施例では、ランドマーク検出モデルM7は、以下の論文に開示される「Attention Mesh」と呼ばれる検出モデルである。
Ivan Grishchenko, Artsiom Ablavatski, Yury Kartynnik, Karthik Raveendra and Matthias Grundmann, "Attention Mesh: High-fidelity Face Mesh Prediction in Real-time", arXiv:2006.10962, 19 Jun. 2020, http://arxiv.org/abs/2006.10962
【0075】
Attention Meshモデルは、顔の複数の部分を示す複数の点のそれぞれの三次元座標を、二次元の画像から推定する。複数の点は、顔の三次元の形状を示す顔メッシュを形成する。ランドマーク検出モデルM7は、顔の画像から適切な顔メッシュを推定するように、Attention Meshの論文に記載の訓練方法によって、予め訓練される。本実施例では、プロセッサ210は、顔メッシュを形成する複数の点のうち、顔の予め決められた複数の部分を示す複数の点のセットを、ランドマークセットとして採用する。
【0076】
図10は、ランドマークセットの例を示す図である。図中には、人物の顔Fhの画像IMhが示されている。本実施例では、68個の点P1-P68が、ランドマークセットLMとして使用される。点P1-P17の第1点セットPS1は、顎を示している。点P18-P22の第2点セットPS2は、右の眉を示している。点P23-P27の第3点セットPS3は、左の眉を示している。点P28-P36の第4点セットPS4は、鼻を示している。点P37-P42の第5点セットPS5は、右の目を示している。点P43-P48の第6点セットPS6は、左の目を示している。点P49-P68の第7点セットPS7は、口を示している。
【0077】
図7(D)は、変換済顔領域画像IMb4(図7(C))から検出される顔のランドマークの例を示している。プロセッサ210は、変換済顔領域画像IMb4を使用してランドマーク検出モデルM7の演算を実行することによって、顔Fb3のランドマークセットLMb3を検出する。ランドマークセットLMb3は、68個の点P1-P68(図10)を示している。
【0078】
なお、顔検出モデルM6のBlazeFaceと、ランドマーク検出モデルM7のAttention Meshとは、Google社の「MediaPipe」と呼ばれるライブラリによって、実装されている。顔検出モデルM6とランドマーク検出モデルM7とを有する顔処理モデルMxは、「MediaPipe」のライブラリを使用して構成されてよい。
【0079】
S250(図3)では、プロセッサ210は、S240で検出されたランドマークセットを使用して、変換済顔領域画像から顔を表す部分領域の画像である顔部分画像を取得する。図7(E)は、変換済顔領域画像IMb4(図7(D))から取得される顔部分画像の例を示している。顔を表す部分領域を決定する方法は、種々の方法であってよい。本実施例では、第1点セットPS1(図7(D))は、顎、すなわち、顔の下半分の輪郭を示している。プロセッサ210は、第1点セットPS1を、顔の上側(ここでは、第2方向Dyの反対方向側)に向かって反転させることによって、上部点セットPS1r(図7(E))を形成する。反転の軸としては、第1点セットPS1の左側の端の点P1と右側の端の点P17とを結ぶ直線Lrが採用される。第1点セットPS1と上部点セットPS1rとに囲まれる領域は、顔の主要な部分(例えば、目と鼻と口)を含み得る。プロセッサ210は、第1点セットPS1と上部点セットPS1rとに囲まれる領域の画像IMcを、顔部分画像として取得する。なお、変換済顔領域画像IMb4のサイズは、元のバウンディングボックスBB(図7(A))のサイズと異なり得る。プロセッサ210は、変換済顔領域画像IMb4のリサイズ(例えば、解像度変換)によって、変換済顔領域画像IMb4のサイズをバウンディングボックスBBのサイズに戻す。そして、リサイズ済の画像から顔部分画像IMcを抽出する。
【0080】
S260(図3)では、プロセッサ210は、変換済全体画像中の人物の第2姿勢(図2:S220)と、顔部分画像(すなわち、変換済顔領域画像)の顔のランドマーク(図3:S240)と、を使用して、変換済全体画像上の顔部分画像の合成位置を決定する。図9(B)は、合成位置の例を示している。図中には、変換済全体画像IMa4と、顔部分画像IMcと、が示されている。本実施例では、プロセッサ210は、顔の同じ部分を示すランドマークとキーポイントとの組み合わせを使用して、合成位置を決定する。なお、S250で、変換済顔領域画像IMb4のリサイズによって生成される画像から、顔部分画像IMcが取得され得る。この場合、プロセッサ210は、変換済顔領域画像IMb4のリサイズに適合するようにランドマークセットLMb3(図7(D))をリサイズすることによって、顔部分画像IMc上のランドマークを取得する。
【0081】
変換済全体画像IMa4には、第2姿勢の3個のキーポイントKP0(鼻)、KP15(右目)、KP16(左目)が示されている。顔部分画像IMc4には、ランドマークの3個の点P34(鼻)、P41(右目)、P48(左目)が示されている。本実施例では、プロセッサ210は、これらの3個の点P34、P41、P48が、3個のキーポイントKP0、KP15、KP16の近くにそれぞれ配置されるように、合成位置を決定する。例えば、プロセッサ210は、3個の点P34、P41、P48を示す画像と、3個のキーポイントKP0、KP15、KP16を示す画像と、のテンプレートマッチングによって、合成位置IMPSを決定する。テンプレートマッチングとしては、例えば、OpenCV(Open Source Computer Vision)によって提供されているテンプレートマッチングが使用されてよい。
【0082】
S270(図3)では、プロセッサ210は、変換済全体画像上の合成位置に、顔部分画像を合成することによって、合成画像を生成する。図9(C)は、合成画像の例を示している。図中には、変換済全体画像IMa4と、顔部分画像IMcと、合成画像IMdと、が示されている。プロセッサ210は、変換済全体画像IMa4上の合成位置IMPSに、顔部分画像IMcを重畳する。これにより、合成画像IMdが生成される。
【0083】
S210(図2)、S230(図3)で説明したように、変換済全体画像IMa4と、変換済顔領域画像IMb4(図9(B))から取得される顔部分画像IMcとは、入力スタイル画像のスタイルで表現されている。従って、プロセッサ210は、入力スタイル画像のスタイルで表現される合成画像IMdを生成できる。
【0084】
また、合成画像IMd中では、顔部分画像IMcが、人物PRの顔を表している。S230(図3)で説明したように、顔部分画像IMcでは、変換済全体画像IMa4と比べて、顔に含まれる部分(例えば、口など)の変形の可能性は、小さい。従って、変換済全体画像IMa4内の顔Fa4に含まれる部分が大きく変形している場合であっても、プロセッサ210は、顔部分画像IMcを変換済全体画像IMa4の顔を表す領域に重畳することによって、顔の変形が小さい合成画像IMdを生成できる。
【0085】
S280(図3)では、プロセッサ210は、合成画像のデータを、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図2図3の画像処理を終了する。本実施例では、合成画像(S270)は、画像処理によって生成される出力画像の例である。
【0086】
以上のように、本実施例では、画像処理装置200のプロセッサ210は、以下の処理を実行する。S120(図2)では、プロセッサ210は、顔と顔以外の部分とを含む人物を表す対象画像を使用して、人物の姿勢を推定する。図4(B)の画像IMa1は、対象画像の例であり、顔Fa1と顔Fa1以外の部分Ra1とを含む人物PRを表している。プロセッサ210は、第1対象画像IMa1から、キーポイントKP0-KP8、KP15-KP18を検出する。キーポイントKP0-KP8、KP15-KP18は、人物PRの第1推定姿勢を示している。
【0087】
図2図3の画像処理(S120-S270)は、S140を含んでいる。S140では、プロセッサ210は、第1推定姿勢に応じて推定対応処理を実行する。本実施例では、プロセッサ210は、第1推定姿勢に対応付けられる推定対応処理IP1(図6)を実行する。推定対応処理IP1では、対象画像(例えば、第1対象画像IMa1)の少なくとも一部の画像が変更される。
【0088】
このように、プロセッサ210は、第1推定姿勢に応じて実行される推定対応処理IP1(S140)を含む画像処理(S120-S270)を実行することによって、出力画像(例えば、合成画像IMd(図9(C)))を生成する。従って、プロセッサ210は、人物の姿勢を考慮して、画像の少なくとも一部を変更できる。
【0089】
また、図6に示すように、S140で実行される推定対応処理IP1は、表情変更処理IP1aと、スタイル変換処理IP1bと、背景変更処理IP1cと、を含む複数の処理からなる群から選択される。表情変更処理IP1aは、顔の表情、すなわち、人物の外観を変更する。表情変更処理IP1aは、顔の表情を含む人物の外観を変更する外観変更処理の例である。スタイル変換処理IP1bは、対象画像のスタイルを変更する処理の例である。背景変更処理IP1cは、対象画像の背景を変更する処理の例である。この構成によれば、プロセッサ210は、外観変更処理と、スタイルを変更する処理と、背景を変更する処理と、を含む複数の処理からなる群から選択される処理を実行できる。
【0090】
S140では、プロセッサ210は、第1推定姿勢に応じて、実行すべき処理を選択する。このように、プロセッサ210は、人物の姿勢を考慮して、画像の少なくとも一部を変更できる。特に、第1推定姿勢が所定の種類の姿勢(本実施例では、特定姿勢PP1、PP2、PP3のいずれか)である場合には、プロセッサ210は、表情変更処理IP1aとスタイル変換処理IP1bと背景変更処理IP1cとのうちの第1推定姿勢に対応する処理を実行する。このように、第1推定姿勢が所定の種類の姿勢である場合に、プロセッサ210は、画像の少なくとも一部を適切に変更できる。
【0091】
また、本実施例では、プロセッサ210は、以下の処理を実行する。S150-S180(図2)では、プロセッサ210は、顔を含む人物を表す対象画像を使用して、顔の表情を推定する。図4(C)の画像IMa2は、対象画像の例であり、人物PRの顔Fa2を表している。プロセッサ210は、第2対象画像IMa2を使用して(具体的には、第2対象画像IMa2から得られる高解像度の顔領域画像IMb3(図7(B)を使用して)、顔Fa2の表情を推定する。
【0092】
図2図3の画像処理(S120-S270)は、S200を含んでいる。S200では、プロセッサ210は、推定表情に応じて推定対応処理を実行する。本実施例では、プロセッサ210は、推定表情に対応付けられる推定対応処理IP2(図8)を実行する。推定対応処理IP2では、対象画像(例えば、第2対象画像IMa2)の少なくとも一部の画像が変更される。
【0093】
このように、プロセッサ210は、推定表情に応じて実行される推定対応処理IP2(S200)を含む画像処理を実行することによって、出力画像を生成する。従って、プロセッサ210は、人物の顔の表情を考慮して、画像の少なくとも一部を変更できる。
【0094】
また、図8に示すように、S200で実行される推定対応処理IP2は、姿勢変更処理IP2cと、スタイル変換処理IP2dと、背景調整処理IP2a、IP2bと、を含む複数の処理からなる群から選択される。姿勢変更処理IP2cは、人物の姿勢、すなわち、人物の外観を変更する。姿勢変更処理IP2cは、生物の姿勢を含む生物の外観を変更する外観変更処理の例である。スタイル変換処理IP2dは、対象画像のスタイルを変更する処理の例である。背景調整処理IP2a、IP2bは、対象画像の背景の画像を、元の明るさとは異なる明るさを有する画像に変更する。背景調整処理IP2a、IP2bは、対象画像の背景を変更する処理の例である。この構成によれば、プロセッサ210は、外観変更処理と、スタイルを変更する処理と、背景を変更する処理と、を含む複数の処理からなる群から選択される処理を実行できる。
【0095】
S200では、プロセッサ210は、推定表情に応じて、実行すべき処理を選択する。このように、プロセッサ210は、人物の顔の表情を考慮して、画像の少なくとも一部を変更できる。特に、推定表情が所定の種類の表情(本実施例では、特定表情EP1-EP4のいずれか)である場合には、プロセッサ210は、姿勢変更処理IP2cとスタイル変換処理IP2dと背景調整処理IP2a、IP2bとのうちの推定表情に対応する処理を実行する。このように、推定表情が所定の種類の表情である場合に、プロセッサ210は、画像の少なくとも一部を適切に変更できる。
【0096】
また、図2図3の画像処理は、スタイル変換を行うためのS210、S230、S260-S270を含んでいる。S230では、プロセッサ210は、顔領域画像IMb3(図7(B))のスタイル変換を行うことによって、変換済顔領域画像IMb4(図7(C))を生成する。顔領域画像IMb3は、第2対象画像IMa2(図4(D))のうちの顔Fa2の画像である。第2対象画像IMa2は、スタイル変更処理の対象の画像であるスタイル変更対象画像の例である。顔領域画像IMb3は、スタイル変更対象画像(ここでは、第2対象画像IMa2)のうちの顔の画像である第1画像の例である。変換済顔領域画像IMb4は、第1画像のスタイルを変更することによって生成される第1変更済画像の例である。
【0097】
S210では、プロセッサ210は、第3対象画像(例えば、第3対象画像IMa3(図4(E)))のスタイル変換を行うことによって、変換済全体画像(例えば、変換済全体画像IMa4(図4(F)))を生成する。第3対象画像は、第2対象画像(すなわち、スタイル変更対象画像)、または、S200で第2対象画像に対する処理によって生成される画像である。このように、第3対象画像は、スタイル変更対象画像のうちの顔以外の部分を含む特定領域(本実施例では、全領域)に対応付けられる第2画像の例である。変換済全体画像は、第2画像のスタイルを変更することによって生成される第2変更済画像の例である。
【0098】
S260-S270では、プロセッサ210は、顔部分画像IMc(図9(C))と変換済全体画像IMa4との合成処理を実行することによって、スタイル変更済の画像である合成画像IMdを生成する。顔部分画像IMcは、変換済顔領域画像IMb4(第1変更済画像の例)の少なくとも一部である注目画像の例である。変換済全体画像IMa4は、第2変更済画像の例である。
【0099】
この構成によれば、プロセッサ210は、人物の顔を考慮して画像のスタイルを変更できる。なお、変換済顔領域画像IMb4の一部である画像IMcに代えて、変換済顔領域画像IMb4の全体が、変換済全体画像IMa4に合成されてもよい。ここで、変換済顔領域画像IMb4のサイズは、変換済全体画像IMa4に適するサイズ(例えば、バウンディングボックスBB(図7(A))のサイズ)に、調整されてよい。
【0100】
また、S260では、プロセッサ210は、第2変更済画像(例えば、変換済全体画像IMa4(図9(B)))によって表される人物の複数の部分(例えば、キーポイントKP0、KP15、KP16)の位置を使用して、第2変更済画像上の注目画像(例えば、顔部分画像IMc)の合成位置IMPSを決定する。ここで、人物の複数の部分(ここでは、キーポイントKP0、KP15、KP16)は、顔に含まれる部分を含んでいる。この構成によれば、プロセッサ210は、顔に含まれる部分の位置を考慮して、適切な合成位置を決定できる。
【0101】
また、S140(図2)で外観変更処理(例えば、表情変更処理IP1a)が実行される場合、S230のスタイル変換処理は、外観変更処理による変更済の画像のスタイルを変更する。また、S200で外観変更処理(例えば、姿勢変更処理IP2c)が実行される場合、S210のスタイル変換処理は、外観変更処理による変更済の画像のスタイルを変更する。外観変更処理は、スタイルを、意図せずに、変化させ得る。本実施例では、スタイル変換処理によって変更されたスタイルが、外観変更処理によって更に変更される可能性は、低減する。
【0102】
B.変形例:
(1)S120(図2)で使用される姿勢推定モデルM1(図1)は、OpenPoseのモデルに代えて、姿勢を推定する種々のモデルであってよい。
【0103】
また、姿勢推定処理は、図2のS120で説明した処理に限らず、種々の処理であってよい。例えば、プロセッサ210は、複数の姿勢のそれぞれのテンプレート画像を使用するテンプレートマッチングによって、姿勢を推定してよい。テンプレートマッチングには、姿勢推定モデルM1によって推定される姿勢(例えば、骨格)を表す画像が使用されてよい。テンプレートマッチングとしては、例えば、OpenCV(Open Source Computer Vision)によって提供されているテンプレートマッチングが使用されてよい。また、姿勢推定モデルM1は、人物の画像から直接に姿勢を分類する畳込ニューラルネットワーク画像分類器であってよい。
【0104】
(2)推定姿勢に応じて実行される推定対応処理(図2:S140)は、図6で説明した処理に限らず、処理対象の画像の少なくとも一部の画像を変更する種々の処理であってよい。画像の少なくとも一部の画像の変更は、種々の観点から、行われてよい。例えば、明るさ、色相などの色が、変更されてよい。また、画像の物体(例えば、人物)の形状(例えば、エッジの形状)が変更されてよい。例えば、第1種特定姿勢PP1に、図8の推定対応処理IP2のいずれか(例えば、第1種背景調整処理IP2a)が対応付けられてよい。
【0105】
推定姿勢と推定対応処理IP1との対応関係は、図6の対応関係に限らず、他の種々の対応関係であってよい。1種類の推定姿勢に応じて、複数の処理が実行されてよい。例えば、第1種特定姿勢PP1には、表情変更処理IP1aとスタイル変換処理IP1bとが対応付けられてよい。また、第2種特定姿勢PP2には、3つの処理IP1a、IP1b、IP1cが対応付けられてよい。また、推定対応処理に対応付けられる特定姿勢PPiは、図6の特定姿勢PP1-PP3に限らず、任意の姿勢を含んでよい。例えば、特定姿勢PPiは、足の形を含む姿勢を含んでよい。また、特定姿勢PPiの種類の総数kは、1以上の任意の整数であってよい。
【0106】
(3)表情変更処理IP1a(図6)で使用される顔表情変更モデルM3は、「FaR-GAN」と呼ばれるモデルに代えて、他の種々のモデルであってよい。例えば、顔表情変更モデルM3は、顔の画像から所定の表情の顔の画像を生成するオートエンコーダであってよい。
【0107】
(4)背景変更処理IP1c(図6)は、図8の背景調整処理IP2a、IP2bと同様に、背景部分の画像の色(例えば、明るさ)を変更する処理であってよい。
【0108】
(5)表情推定処理は、図2のS180で説明した処理に限らず、種々の処理であってよい。例えば、プロセッサ210は、ランドマーク検出モデルM7(図1)を使用して、顔の画像から複数のランドマークを検出する。そして、プロセッサ210は、複数のランドマークを表す画像を表情分類モデルM9(図1)に入力することによって、表情を分類する。この場合、表情分類モデルM9は、複数のランドマークを表す画像を使用して表情を適切に分類するように、予め訓練される。なお、ランドマーク検出モデルM7は、「Attention Mesh」と呼ばれるモデルに代えて、顔のランドマークを検出する種々のモデルであってよい。
【0109】
(6)推定表情に応じて実行される推定対応処理(図2:S200)は、図8で説明した処理に限らず、処理対象の画像の少なくとも一部の画像を変更する種々の処理であってよい。S140の推定対応処理と同様に、画像の少なくとも一部の画像の変更は、種々の観点から、行われてよい。例えば、第1種特定表情EP1に、図6の推定対応処理IP1のいずれか(例えば、背景変更処理IP1c)が対応付けられてよい。
【0110】
推定表情と推定対応処理IP2との対応関係は、図8の対応関係に限らず、他の種々の対応関係であってよい。1種類の推定表情に応じて、複数の処理が実行されてよい。例えば、第1種特定表情EP1には、第1種背景調整処理IP2aと姿勢変更処理IP2cとが対応付けられてよい。第2種特定表情EP2には、3つの処理IP2b、IP2c、IP2dが対応付けられてよい。また、推定対応処理に対応付けられる特定表情EPjは、図8の特定表情EP1-EP4に限らず、任意の表情を含んでよい。例えば、特定表情EPjは、口から舌を出した表情を含んでよい。また、特定表情EPjの種類の総数mは、1以上の任意の整数であってよい。
【0111】
(7)姿勢変更処理IP2c(図8)は、人物を形成する複数の部分を抽出して再配置する処理に代えて、姿勢を変更する種々の処理であってよい。例えば、人物の画像から所定の姿勢の人物の画像を生成するオートエンコーダが、使用されてよい。
【0112】
(8)背景調整処理IP2a、IP2b(図8)は、図6の背景変更処理IP1cと同様に、背景部分の画像を別の画像に変更する処理であってよい。
【0113】
(9)S240(図3)の顔のランドマークを検出する処理は、「Attention Mesh」と呼ばれる検出モデルを使用する処理に代えて、他の種々の処理であってよい。プロセッサ210は、例えば、OpenCV(Open Source Computer Vision)のFacemark APIを使用することによって、顔のランドマークを検出してよい。また、プロセッサ210は、顔の部分(口、目など)のテンプレート画像を使用するテンプレートマッチングによって、ランドマークを検出してよい。
【0114】
(10)S170(図2)で使用される超解像モデルM8(図1)は、「PULSE」と呼ばれる技術のモデルに代えて、解像度(すなわち、画素密度)を増大する種々のモデルであってよい。また、S170の高解像度化処理は、機械学習モデルを使用する処理に代えて、種々の解像度変換処理(例えば、バイキュービック法やバイリニア法など)であってよい。
【0115】
(11)S150(図2)で使用される顔検出モデルM6は、「BlazeFace」と呼ばれるモデルに代えて、顔を検出する種々のモデルであってよい。顔検出モデルM6は、例えば、YOLO(You only look once)と呼ばれる物体検出モデルであってよい。また、プロセッサ210は、機械学習モデルを使用せずに、顔のテンプレート画像を使用するテンプレートマッチングによって、顔を検出してよい。
【0116】
(12)背景変更処理IP1c(図6)で使用される分割モデルM5(図1)は、「Mask R-CNN」と呼ばれるモデルに代えて、画像中の物体を示す領域を分離する種々のモデルであってよい。分割モデルM5は、例えば、セマンティックセグメンテーションを行うモデルであってよい(U-net、SegNetなど)。
【0117】
(13)顔を含む画像から顔部分画像を取得する処理は、S250(図3)で説明した処理に代えて、他の種々の処理であってよい。例えば、プロセッサ210は、顔を表す部分と他の部分とに画像を分割する分割モデルを使用してよい。分割モデルは、分割モデルM5と同じアーキテクチャを有してよい。また、分割モデルは、以下の論文に開示される「FCN(fully convolutional network)」と呼ばれるモデルであってよい。
Yuval Nirkin, Iacopo Masi, Anh Tuan Tran, Tal Hassner and Gerard Medioni, "On Face Segmentation, Face Swapping, and Face Perception", arXiv:1704.06729, 22 Apr. 2017, http://arxiv.org/abs/1704.06729
このモデルは、顔の見える部分を示す領域を、分割する。
【0118】
(14)S210(図2)のスタイル変換で処理される画像は、スタイル変更対象画像(例えば、第2対象画像IMa2(図4(D)))の全領域に対応付けられる第3対象画像(例えば、第3対象画像IMa3(図4(E)))の全体である。S210で処理される画像は、スタイル変更対象画像のうちの顔以外の部分を含む特定領域に対応付けられる画像、すなわち、第3対象画像のうちの特定領域の画像であってよい。特定領域は、上記の実施例のように、スタイル変更対象画像の全領域であってよい。これに代えて、特定領域は、スタイル変更対象画像から顔を表す領域(例えば、S160で抽出される領域)を除いた残りの領域であってよい。この場合、S210では、プロセッサ210は、第3対象画像のうちの顔を表す領域をマスクして得られる画像のスタイル変換を行ってよい。マスクされる部分の色値は、所定の色値(例えば、白、黒、フレーなど)に設定されてよい。
【0119】
(15)スタイル変換モデルM4(図1)は、AdaINの論文のモデルに代えて、画像のスタイル変換を行う種々のモデルであってよい。例えば、「Fast Patch-based Style Transfer of Arbitrary Style」と呼ばれる技術のアーキテクチャ、または、「Avatar-Net: Multi-scale Zero-shot Style Transfer by Feature Decoration」と呼ばれる技術のアーキテクチャが、採用されてよい。また、図2図3のS140(スタイル変換処理IP1b)と、S200(スタイル変換処理IP2d)と、S210と、S230とでは、プロセッサ210は、互いに異なるスタイル変換モデルを使用してよい。
【0120】
(16)S260(図3)では、プロセッサ210は、変換済全体画像によって表される人物の複数の部分(複数の参照部分とも呼ぶ)のそれぞれの位置を使用して、合成位置を決定してよい。複数の参照部分は、顔に含まれる部分である複数の顔参照部分(例えば、口、鼻、目、眉からなる群から選択される2以上の部分)を含んでよい。また、複数の参照部分は、顔に含まれる1以上の顔参照部分(例えば、口、鼻、目、眉からなる群から選択される1以上の部分)と、人物の顔以外の部分である1以上の非顔参照部分(例えば、首、肩、肘、手首、腰からなる群から選択される1以上の部分)と、を含んでよい。いずれの場合も、プロセッサ210は、複数の参照部分のそれぞれの位置を使用することによって、顔部分画像の全体の変換済全体画像上の合成位置を決定できる。例えば、プロセッサ210は、顔部分画像のうちの複数の顔参照部分に対応する複数の顔対応部分(例えば、両目)が、それぞれ、変換済全体画像上の対応する顔参照部分の近くに配置されるように、顔部分画像の全体の変換済全体画像上の合成位置を決定してよい。また、プロセッサ210は、顔部分画像の顔対応部分(例えば、鼻)が、変換済全体画像の対応する顔参照部分の近くに配置されるように、顔部分画像の変換済全体画像上の位置を決定してよい。そして、プロセッサ210は、複数の参照部分のうちの顔参照部分と非顔参照部分とを使用して、顔部分画像の変換済全体画像上の向きを決定してよい。例えば、プロセッサ210は、顔部分画像によって示される顔の上方向(例えば、口から鼻に向かう方向)が、変換済全体画像によって示される顔の上方向(例えば、首から鼻に向かう方向)に一致するように、顔部分画像を回転させてよい。このように、顔部分画像の全体の合成位置は、顔部分画像の顔対応部分(例えば、鼻)の変換済全体画像上の位置と顔部分画像の変換済全体画像上の向きとの組み合わせによって、定められてよい。また、合成位置の決定には、合成すべき顔を表す画像(例えば、顔部分画像)のうちの1以上の参照部分に対応する1以上の部分(例えば、1以上の顔対応部分)が使用されてよい。いずれの場合も、プロセッサ210は、顔部分画像によって表される顔のサイズ(例えば、変換済顔領域画像IMb4(図7(E))の幅と高さ)が、変換済全体画像によって表される顔のサイズ(例えば、バウンディングボックスBB(図7(A))の幅と高さ)に近くなるように、顔部分画像をリサイズ(例えば、解像度変換)してよい。
【0121】
(17)画像処理は、図2図3の処理に代えて、他の種々の処理であってよい。例えば、プロセッサ210は、姿勢の推定と推定姿勢に対応する推定対応処理(S120-S140)を、「S150-S200」による処理済の画像を使用して、実行してよい。プロセッサ210は、姿勢の推定と推定姿勢に対応する推定対応処理(S120-S140)を、S270による処理済の画像(すなわち、合成画像)を使用して、実行してよい。プロセッサ210は、表情の推定と推定表情に対応する推定対応処理(S180-S200)を、S270による処理済の画像(すなわち、合成画像)を使用して、実行してよい。また、S170は省略されてよい。この場合、S180では、プロセッサ210は、S160で抽出された画像を使用してよい。また、「S120-S140」の処理と「S150-S200」の処理との一方、または、両方が、省略されてよい。また、上記の実施例では、機械学習モデル(例えば、スタイル変換モデルM4)を使用する処理のために画像のサイズ(例えば、幅と高さ)が変化する場合に、プロセッサ210は、画像のリサイズを行う。これにより、第1-第3の対象画像と合成画像と出力画像とのそれぞれのサイズは、入力画像のサイズと同じである。これに代えて、画像のリサイズは、省略されてよい。例えば、プロセッサ210は、S210(図2)で、スタイル変換モデルM4によって生成される画像を、リサイズ無しで、変換済全体画像として使用してよい。この場合、S270(図3)で生成される合成画像のサイズ(ひいては、出力画像のサイズ)は、スタイル変換モデルM4によって生成される画像のサイズと同じであり、入力画像のサイズと異なり得る。
【0122】
(18)対象画像によって表される生物は、人物に限らず、顔を有する種々の生物であってよい。例えば、犬、猫などのペットを表す画像が、対象画像として使用されてよい。また、犬、猫に限らず、種々の哺乳類を表す画像が、対象画像として使用されてよい。
【0123】
(19)図1の画像処理装置は、パーソナルコンピュータとは異なる種類の装置(例えば、デジタルカメラ、スキャナ、スマートフォン)であってもよい。また、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、画像処理装置による画像処理の機能を一部ずつ分担して、全体として、画像処理の機能を提供してもよい(これらの装置を備えるシステムが画像処理装置に対応する)。
【0124】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、機械学習モデル(例えば、スタイル変換モデルM4(図1))は、専用のハードウェア回路によって実現されてよい。
【0125】
また、本開示の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0126】
上記した実施の形態は、本開示の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0127】
200…画像処理装置、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、231…プログラム、240…表示部、250…操作部、270…通信インタフェース、M1…姿勢推定モデル、M2…姿勢分類モデル、M3…顔表情変更モデル、M4…スタイル変換モデル、M5…分割モデル、M6…顔検出モデル、M7…ランドマーク検出モデル、M8…超解像モデル、M9…表情分類モデル、Dx…第1方向、Dy…第2方向
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10