(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024163746
(43)【公開日】2024-11-22
(54)【発明の名称】プログラム、モデル生成方法、画像処理方法、及び画像処理装置
(51)【国際特許分類】
G06T 7/194 20170101AFI20241115BHJP
G06T 7/00 20170101ALI20241115BHJP
H04N 23/60 20230101ALI20241115BHJP
【FI】
G06T7/194
G06T7/00 350B
G06T7/00 U
H04N23/60 500
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2023079603
(22)【出願日】2023-05-12
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】早坂 美咲
(72)【発明者】
【氏名】西本 卓也
(72)【発明者】
【氏名】宮内 翼
(72)【発明者】
【氏名】倉持 惇彩
(72)【発明者】
【氏名】清野 創
【テーマコード(参考)】
5C122
5L096
【Fターム(参考)】
5C122EA12
5C122FH01
5C122FH09
5C122FH18
5C122HA13
5C122HA35
5C122HA48
5C122HB01
5C122HB05
5L096BA08
5L096CA02
5L096CA23
5L096CA25
5L096DA01
5L096EA07
5L096EA43
5L096FA02
5L096FA54
5L096GA08
5L096GA13
5L096GA24
5L096GA34
5L096GA51
5L096HA11
5L096JA13
5L096KA04
5L096KA15
5L096MA03
(57)【要約】 (修正有)
【課題】撮影画像から高精度の前景領域を抽出するマスク画像を生成するプログラム、モデル生成方法、画像処理方法及び画像処理装置を提供する。
【解決手段】出力マスク画像の生成処理方法は、撮影画像を取得し、撮影画像中の前景領域を示す第前マスク画像を生成し、前マスク画像における前景領域又は背景領域に対する修正指示を受け付け、撮影画像、第1マスク画像及び修正指示の内容を示す情報を入力した場合に、入力された情報に基づいて推論された撮影画像中の前景領域を示す推論マスク画像を出力する学習モデルに、取得した撮影画像、生成した前マスク画像及び受け付けた修正指示の内容を示す情報を入力して、入力した情報に基づいて推論された前記撮影画像中の前景領域を示す推論マスク画像を取得する。そして、前マスク画像、推論マスク画像及び修正指示の内容を示す情報に基づいて出力マスク画像を生成する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
撮影画像を取得し、
取得した前記撮影画像中の前景領域を示す第1マスク画像を生成し、
前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付け、
撮影画像、前記撮影画像中の前景領域を示す第1マスク画像、及び、前記第1マスク画像に対する修正指示の内容を示す情報を入力した場合に、入力された情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を出力するように学習された学習モデルに、取得した前記撮影画像と、前記撮影画像中の前景領域を示す第1マスク画像と、前記第1マスク画像に対して受け付けた修正指示の内容を示す情報とを入力して、入力した情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を取得し、
前記第1マスク画像、前記第2マスク画像、及び前記第1マスク画像に対して受け付けた修正指示の内容を示す情報に基づいて、出力用の第3マスク画像を生成する
処理をコンピュータに実行させるプログラム。
【請求項2】
前記第1マスク画像に対して2値化処理を行い、
前記第2マスク画像に対して2値化処理を行い、
2値化処理した前記第1マスク画像と、2値化処理した前記第2マスク画像との差分画像を生成し、
前記差分画像に対して補正処理を行い、
補正処理後の前記差分画像において、前記修正指示を受け付けた画素を起点として前記画素と同じ画素値で隣り合う画素を順次連結した連結領域を特定し、
前記第1マスク画像と、特定した前記連結領域とに基づいて、前記第3マスク画像を生成する
処理を前記コンピュータに実行させる請求項1に記載のプログラム。
【請求項3】
前記第1マスク画像における背景領域に対して前景領域への修正指示を受け付けた場合、前記第1マスク画像における前景領域内の画素の画素値に基づく閾値によって前記第1マスク画像に対する2値化処理を行い、
前記第1マスク画像における前景領域に対して背景領域への修正指示を受け付けた場合、前記第1マスク画像における背景領域内の画素の画素値に基づく閾値によって前記第1マスク画像に対する2値化処理を行う
処理を前記コンピュータに実行させる請求項2に記載のプログラム。
【請求項4】
前記第1マスク画像における背景領域に対して前景領域への修正指示を受け付けた場合、前記第1マスク画像における前記連結領域内の画素の画素値を、前景領域内の画素の画素値に更新して前記第3マスク画像を生成し、
前記第1マスク画像における前景領域に対して背景領域への修正指示を受け付けた場合、前記第1マスク画像における前記連結領域内の画素の画素値を、背景領域内の画素の画素値に更新して前記第3マスク画像を生成する
処理を前記コンピュータに実行させる請求項2又は3に記載のプログラム。
【請求項5】
前記差分画像に対してモルフォロジー処理のクロージング処理を行った後にオープニング処理を行って、前記差分画像を補正する
処理を前記コンピュータに実行させる請求項2又は3に記載のプログラム。
【請求項6】
前記撮影画像の上に前記第1マスク画像を重畳させた重畳画像と、前記撮影画像から前記第1マスク画像に基づいて前景領域が抽出された前景画像と、前記第1マスク画像とのいずれかの選択を受け付け、
選択された画像を表示する
処理を前記コンピュータに実行させる請求項1~3のいずれかひとつに記載のプログラム。
【請求項7】
表示された前記画像を介して、前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付ける
処理を前記コンピュータに実行させる請求項6に記載のプログラム。
【請求項8】
前記差分画像において、前記修正指示を受け付けた画素を起点として前記画素と同じ画素値で隣り合う画素を順次連結した第2の連結領域を特定し、
前記第2の連結領域内の画素数が所定値よりも多いか否かを判断し、
前記第2の連結領域内の画素数が所定値よりも多いと判断した場合に、前記差分画像に対して補正処理を行う
処理を前記コンピュータに実行させる請求項2又は3に記載のプログラム。
【請求項9】
補正処理後の前記差分画像において、前記修正指示を受け付けた画素が、前記差分画像における差分領域内の画素であるか否かを判断し、
前記差分領域内の画素でないと判断した場合、補正処理前の前記差分画像における前記連結領域を特定し、
前記第1マスク画像と、補正処理前の前記差分画像から特定した前記連結領域とに基づいて、前記第3マスク画像を生成する
処理を前記コンピュータに実行させる請求項2又は3に記載のプログラム。
【請求項10】
補正処理後の前記差分画像において、前記修正指示を受け付けた画素が、前記差分画像における差分領域内の画素であるか否かを判断し、
前記差分領域内の画素でないと判断した場合、前記第1マスク画像を前記第3マスク画像とする
処理を前記コンピュータに実行させる請求項2又は3に記載のプログラム。
【請求項11】
前記撮影画像中の前景領域を示す前記第1マスク画像を、前記第3マスク画像に更新し、
更新後の前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付け、
前記学習モデルに、前記撮影画像と、更新後の前記第1マスク画像と、更新後の前記第1マスク画像に対して受け付けた修正指示の内容を示す情報とを入力して、入力した情報に基づいて推論された前記第2マスク画像を新たに取得し、
更新後の前記第1マスク画像、新たに取得した前記第2マスク画像、及び更新後の前記第1マスク画像に対して受け付けた修正指示の内容を示す情報に基づいて、新たな前記第3マスク画像を生成する
処理を前記コンピュータに実行させる請求項1~3のいずれかひとつに記載のプログラム。
【請求項12】
前記撮影画像と前記第3マスク画像とに基づいて、前記撮影画像中の前景領域を抽出して前景画像を生成する
処理を前記コンピュータに実行させる請求項1~3のいずれかひとつに記載のプログラム。
【請求項13】
前記前景画像に含まれる被写体の少なくとも1つを選択し、
前記前景画像から、選択した被写体の撮影領域を抽出する
処理を前記コンピュータに実行させる請求項12に記載のプログラム。
【請求項14】
複数の合成用画像のいずれかを選択し、
選択した合成用画像に前記前景画像を合成する
処理を前記コンピュータに実行させる請求項12に記載のプログラム。
【請求項15】
前記合成用画像に前記前景画像を合成する際に前記前景画像に行う画像処理、及び前記合成用画像に対する合成位置の入力を受け付け、
前記前景画像に対して、受け付けた画像処理を行い、画像処理後の前記前景画像を、前記合成用画像中の受け付けた合成位置に合成する
処理を前記コンピュータに実行させる請求項14に記載のプログラム。
【請求項16】
撮影画像と、前記撮影画像中の前景領域を示す第1マスク画像と、前記第1マスク画像に対する修正指示の内容を示す情報と、前記修正指示が反映された前記撮影画像中の前景領域を示す第2マスク画像とを関連付けた訓練データを取得し、
取得した訓練データを用いて、前記撮影画像、前記第1マスク画像、及び前記修正指示の内容を示す情報を入力した場合に前記修正指示が反映された前記第2マスク画像を出力する学習モデルを生成する
処理をコンピュータが実行するモデル生成方法。
【請求項17】
撮影画像を取得し、
取得した前記撮影画像中の前景領域を示す第1マスク画像を生成し、
前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付け、
撮影画像、前記撮影画像中の前景領域を示す第1マスク画像、及び、前記第1マスク画像に対する修正指示の内容を示す情報を入力した場合に、入力された情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を出力するように学習された学習モデルに、取得した前記撮影画像と、前記撮影画像中の前景領域を示す第1マスク画像と、前記第1マスク画像に対して受け付けた修正指示の内容を示す情報とを入力して、入力した情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を取得し、
前記第1マスク画像、前記第2マスク画像、及び前記第1マスク画像に対して受け付けた修正指示の内容を示す情報に基づいて、出力用の第3マスク画像を生成する
処理をコンピュータが実行する画像処理方法。
【請求項18】
制御部を有する画像処理装置であって、
前記制御部は、
撮影画像を取得し、
取得した前記撮影画像中の前景領域を示す第1マスク画像を生成し、
前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付け、
撮影画像、前記撮影画像中の前景領域を示す第1マスク画像、及び、前記第1マスク画像に対する修正指示の内容を示す情報を入力した場合に、入力された情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を出力するように学習された学習モデルに、取得した前記撮影画像と、前記撮影画像中の前景領域を示す第1マスク画像と、前記第1マスク画像に対して受け付けた修正指示の内容を示す情報とを入力して、入力した情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を取得し、
前記第1マスク画像、前記第2マスク画像、及び前記第1マスク画像に対して受け付けた修正指示の内容を示す情報に基づいて、出力用の第3マスク画像を生成する
画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、モデル生成方法、画像処理方法、及び画像処理装置に関する。
【背景技術】
【0002】
カメラで撮影した画像から前景となる領域を抽出して他の画像に合成する画像合成が行われている。例えば特許文献1では、処理対象画像を前景領域、背景領域、第1未知領域、及び第2未知領域に分類し、第1未知領域の各画素をセグメンテーションによって前景領域と背景領域とに分類し、第2未知領域の各画素の透過度をアルファマッティングによって求め、第1未知領域に対する処理結果及び第2未知領域に対する処理結果を統合してマスク画像を生成し、マスク画像を用いて処理対象画像から前景画像を切り出す技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示された技術では、処理対象画像に対して輝度情報を基に前景領域、背景領域、第1未知領域、及び第2未知領域の分類を行うので、ユーザが意図しない領域を前景領域又は背景領域に分類する可能性がある。また、特許文献1に開示された技術では、第1未知領域に対する処理結果及び第2未知領域に対する処理結果を統合したマスク画像において、第1未知領域と第2未知領域とが隣接する箇所の画素値が異なる場合に、第1未知領域と第2未知領域との統合箇所に違和感のある境界が発生する可能性が考えられる。このようなマスク画像を用いて処理対象画像から高精度に前景画像を切り出すことは難しい。
【0005】
本開示は、撮影画像から高精度の前景領域を抽出できるマスク画像を生成することが可能なプログラム等を提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一態様に係るプログラムは、撮影画像を取得し、取得した前記撮影画像中の前景領域を示す第1マスク画像を生成し、前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付け、撮影画像、前記撮影画像中の前景領域を示す第1マスク画像、及び、前記第1マスク画像に対する修正指示の内容を示す情報を入力した場合に、入力された情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を出力するように学習された学習モデルに、取得した前記撮影画像と、前記撮影画像中の前景領域を示す第1マスク画像と、前記第1マスク画像に対して受け付けた修正指示の内容を示す情報とを入力して、入力した情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を取得し、前記第1マスク画像、前記第2マスク画像、及び前記第1マスク画像に対して受け付けた修正指示の内容を示す情報に基づいて、出力用の第3マスク画像を生成する処理をコンピュータに実行させる。
【発明の効果】
【0007】
本開示の一態様では、撮影画像から高精度の前景領域を抽出できるマスク画像を生成することができる。
【図面の簡単な説明】
【0008】
【
図1】画像処理装置の構成例を示すブロック図である。
【
図3】出力マスク画像の生成処理手順の一例を示すフローチャートである。
【
図4】出力マスク画像の生成処理手順の一例を示すフローチャートである。
【
図9】合成画像の提供処理手順の一例を示すフローチャートである。
【
図13】実施形態2のマージ処理手順の一例を示すフローチャートである。
【
図14】実施形態3のマージ処理手順の一例を示すフローチャートである。
【
図15】出力マスク画像の生成処理手順の変形例を示すフローチャートである。
【
図17】合成画像の提供処理手順の変形例を示すフローチャートである。
【
図18】実施形態5の合成画像の提供処理手順の一例を示すフローチャートである。
【
図20】画像処理システムの構成例を示す説明図である。
【発明を実施するための形態】
【0009】
以下に、本開示のプログラム、モデル生成方法、画像処理方法、及び画像処理装置について、その実施形態を示す図面に基づいて詳述する。
【0010】
(実施形態1)
図1は画像処理装置の構成例を示すブロック図である。本実施形態では、カメラを用いて撮影した撮影画像から被写体の撮影領域を抽出し、抽出した被写体の撮影領域を他の画像に合成する画像処理装置について説明する。なお、本実施形態では、撮影画像中の被写体の撮影領域において、他の画像に合成する被写体の領域は前景領域とし、他の画像に合成しない被写体の領域は背景領域とする。撮影画像中のいずれの被写体を前景領域とするか背景領域とするかは、ユーザによる操作によって指定される。
【0011】
画像処理装置10は、種々の情報処理及び情報の送受信が可能な情報処理装置であり、例えばパーソナルコンピュータ、サーバコンピュータ等である。画像処理装置10は、制御部11、記憶部12、通信部13、入力部14、表示部15、読取部16等を有し、これらの各部はバスを介して接続されている。制御部11は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)、又はAIチップ(AI用半導体)等の1又は複数のプロセッサを含む。制御部11は、記憶部12に記憶されたプログラム12Pを適宜実行することにより、画像処理装置10が行うべき情報処理及び制御処理を実行する。
【0012】
記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、ハードディスク、SSD(Solid State Drive)等を含む。記憶部12は、制御部11が実行するプログラム12P(プログラム製品)及び各種のデータを記憶している。また記憶部12は、制御部11がプログラム12Pを実行する際に発生するデータ等を一時的に記憶する。プログラム12P及び各種のデータは、画像処理装置10の製造段階において記憶部12に書き込まれてもよく、制御部11が通信部13を介して他の装置からダウンロードして記憶部12に記憶してもよい。また記憶部12は、例えば機械学習によって訓練データを学習済みの第1学習モデルM1及び第2学習モデルM2を記憶している。学習モデルM1,M2は、人工知能ソフトウェアを構成するプログラムモジュールとしての利用が想定される。学習モデルM1,M2は、入力値に対して所定の演算を行い、演算結果を出力するものであり、記憶部12には、この演算を規定する関数の係数や閾値等のデータが学習モデルM1,M2として記憶される。
【0013】
また記憶部12は、撮影画像DB12a及び合成用背景DB12bを記憶している。撮影画像DB12aは、画像処理装置10によって所定の画像処理が行われる処理対象の画像が蓄積されたデータベースである。撮影画像DB12aに記憶される撮影画像は、通信部13を介してカメラ又は他の情報処理装置から受信した画像であってもよく、画像処理装置10がカメラを備える場合、画像処理装置10のカメラで撮影した画像であってもよい。合成用背景DB12bは、撮影画像から抽出された被写体の撮影領域(以下では前景画像という)を合成する合成用の背景画像(合成用画像)が蓄積されたデータベースである。合成用背景画像は、複数種類の画像であり、静止画であっても動画であってもよい。学習モデルM1,M2、撮影画像DB12a、及び合成用背景DB12bの一部又は全部は、画像処理装置10に接続された他の記憶装置に記憶されてもよく、画像処理装置10が通信可能な他の記憶装置に記憶されてもよい。
【0014】
通信部13は、有線通信又は無線通信に関する処理を行うための通信モジュールであり、ネットワークNを介して他の装置との間で情報の送受信を行う。ネットワークNは、インターネット又は公衆電話回線網であってもよく、画像処理装置10が設けられている施設内に構築されたLAN(Local Area Network)であってもよい。入力部14は、ユーザによる操作入力を受け付け、操作内容に対応した制御信号を制御部11へ送出する。表示部15は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部11からの指示に従って各種の情報を表示する。入力部14の一部及び表示部15は一体として構成されたタッチパネルであってもよく、また、タッチパネルは画像処理装置10に外付けされている構成でもよい。
【0015】
読取部16は、CD(Compact Disc)、DVD(Digital Versatile Disc)、USB(Universal Serial Bus)メモリ、SDカード、マイクロSDカード、コンパクトフラッシュ(登録商標)等の可搬型記憶媒体10aに記憶された情報を読み取る。記憶部12に記憶されるプログラム12P及び各種のデータは、制御部11が読取部16を介して可搬型記憶媒体10aから読み取って記憶部12に記憶してもよい。
【0016】
本実施形態において、画像処理装置10は、複数のコンピュータを含んで構成されるマルチコンピュータであってもよく、1台の装置内にソフトウェアによって仮想的に構築された仮想マシンであってもよく、クラウドサーバであってもよい。また、プログラム12Pは、単一のコンピュータ上で、又は1つのサイトにおいて配置されて実行されてもよく、もしくは複数のサイトにわたって分散され、ネットワークNを介して相互に接続された複数のコンピュータ上で実行されるように展開することができる。更に、画像処理装置10は、入力部14及び表示部15は必須ではなく、接続されたコンピュータを通じて操作を受け付ける構成でもよく、表示すべき情報を外部の表示装置へ出力する構成でもよい。
【0017】
本実施形態の画像処理装置10において、制御部11は、記憶部12に記憶されたプログラム12Pを読み出して実行することにより、撮影画像に対して、背景領域を除去して前景領域(被写体の領域)を抽出して前景画像を生成する処理を実行する。また制御部11は、撮影画像から生成した前景画像を合成用背景画像に合成する処理を実行する。よって、本実施形態の画像処理装置10は、撮影画像から生成された前景画像を任意の合成用背景画像に合成した合成後の画像をユーザに提供することができる。なお、本実施形態の画像処理装置10では、制御部11は、撮影画像から前景領域を抽出して第1マスク画像を生成する際に第1学習モデルM1を用い、撮影画像及び第1マスク画像に基づいて前景領域を推論して第2マスク画像を生成する際に第2学習モデルM2を用いる。
【0018】
図2は学習モデルM1,M2の構成例を示す説明図である。学習モデルM1,M2は、入力された画像に含まれる所定のオブジェクトを認識するモデルであり、例えばセマンティックセグメンテーションにより、画像中のオブジェクトを画素単位で分類することができる。学習モデルM1,M2は、例えばU-Net、FCN(Fully Convolutional Network )、SegNet等のアルゴリズムを用いて構成することができ、複数のアルゴリズムを組み合わせて構成してもよい。
【0019】
第1学習モデルM1は、1枚の撮影画像を入力とし、入力された撮影画像に基づいて、撮影画像に含まれる背景領域及び前景領域(被写体領域)を認識する演算を行い、認識した結果を出力するモデルである。第1学習モデルM1には、例えばByteDance Inc.によって開発された「Robust Video Matting」を用いることができる。具体的には、第1学習モデルM1は、入力された撮影画像の各画素を背景領域と前景領域とに分類し、各画素に領域毎のラベルを対応付けた分類済みの撮影画像(ラベル画像)を出力する。
図2Aに示す例では、第1学習モデルM1は、背景領域に分類された画素を黒(例えば画素値0)で示し、前景領域に分類された画素を白(例えば画素値255)で示し、各画素が0~255の画素値を有する多値のラベル画像を出力する。第1学習モデルM1から出力されるラベル画像は、撮影画像中の前景領域を示す第1マスク画像であり、本実施形態の画像処理装置10は、第1マスク画像を初期のマスク画像(以下では前マスク画像と記載する)として使用する。
【0020】
第1学習モデルM1は、訓練用の撮影画像と、この撮影画像中の各画素に対して、判別すべきオブジェクト(ここでは背景領域及び前景領域)を示すデータがラベリングされた正解のラベル画像とが関連付けられた訓練データを用いて機械学習させることにより生成することができる。第1学習モデルM1は、訓練データに含まれる撮影画像が入力された場合に、訓練データに含まれる正解のラベル画像を出力するように学習する。具体的には、第1学習モデルM1は、入力された撮影画像に基づいて演算を行い、撮影画像中の各オブジェクト(ここでは背景領域及び前景領域)を検出した検出結果を取得する。より具体的には、第1学習モデルM1は、撮影画像中の各画素に対して、分類されたオブジェクトの種類を示す値がラベリングされたラベル画像を出力として取得する。そして第1学習モデルM1は、取得した検出結果(ラベル画像)を、正解のラベル画像における各オブジェクトの範囲及び種類と比較し、両者が近似するように、ニューロン間の重み(結合係数)等のパラメータを最適化する。パラメータの最適化の方法は特に限定されないが、最急降下法、誤差逆伝播法等を用いることができる。これにより、撮影画像が入力された場合に、撮影画像中の背景領域及び前景領域を示すラベル画像を出力する第1学習モデルM1が得られる。
【0021】
第1学習モデルM1を用いて撮影画像から生成されたラベル画像は、ユーザが意図する前景領域及び背景領域に正確に分類されない場合がある。また、撮影画像に複数の被写体が含まれる場合に、どの被写体を合成用背景画像に合成するかは、ユーザ又はどのような合成後画像を生成すべきかによって異なるので、合成対象とすべき被写体の領域が適切に前景領域に分類されたラベル画像を生成することは困難である。そこで、本実施形態では、第2学習モデルM2を用いて、撮影画像と、第1学習モデルM1で得られた前マスク画像と、前マスク画像で分類された前景領域及び背景領域に対して背景領域及び前景領域への修正指示とに基づいて、ユーザが意図する前景領域を推論した推論マスク画像を生成する処理が行われる。
【0022】
第2学習モデルM2は、1枚の撮影画像と、第1学習モデルM1を用いてこの撮影画像から生成された前マスク画像と、前マスク画像で分類された前景領域又は背景領域に対して行われた背景領域又は前景領域への修正指示の内容とを入力とし、入力された画像及び情報に基づいて、ユーザが意図する前景領域を推論する演算を行い、演算結果である推論マスク画像を出力するモデルである。具体的には、第2学習モデルM2は、入力された修正指示内容に基づいて、撮影画像及び前マスク画像から、ユーザが意図する前景領域を推論(予測)し、推論した前景領域を示す推論マスク画像を出力する。推論マスク画像では、前マスク画像における前景領域及び背景領域の過不足が調整され、ユーザが前景領域に修正指示した背景領域が前景領域に修正され、ユーザが背景領域に修正指示した前景領域が背景領域に修正される。
【0023】
第2学習モデルM2は、訓練用の撮影画像と、第1学習モデルM1を用いてこの撮影画像から生成された前マスク画像と、前マスク画像における前景領域又は背景領域の任意の画素に対する背景領域又は前景領域への修正指示内容と、この撮影画像中の各画素に対して、判別すべきオブジェクト(ここでは背景領域及び前景領域)を示すデータがラベリングされた正解のラベル画像とが関連付けられた訓練データを用いて機械学習させることにより生成することができる。ここでの正解のラベル画像は、修正指示内容が反映された前記撮影画像中の前景領域を示すラベル画像である。第2学習モデルM2は、訓練データに含まれる撮影画像、前マスク画像、及び修正指示内容が入力された場合に、訓練データに含まれる正解のラベル画像を出力するように学習する。具体的には、第2学習モデルM2は、入力された撮影画像、前マスク画像、及び修正指示内容に基づいて演算を行い、入力された撮影画像においてユーザが意図する前景領域を推論した結果の推論マスク画像を取得する。そして第2学習モデルM2は、取得した推論マスク画像を、訓練データが示す正解のラベル画像と比較し、両者が近似するように、最急降下法、誤差逆伝播法等を用いてパラメータを最適化する。これにより、撮影画像、前マスク画像、及び修正指示内容が入力された場合に、撮影画像においてユーザが意図する前景領域と背景領域とに分類された推論マスク画像を出力する第2学習モデルM2が得られる。
図2Bに示す例では、前マスク画像において背景領域に分類された傘の領域の画素に対して前景領域への修正指示が行われており、この場合、推論マスク画像では、修正指示された傘の領域が前景領域に修正されている。
【0024】
学習モデルM1,M2の学習は、画像処理装置10で行われてもよく、他の学習装置で行われてもよい。他の学習装置で学習が行われて生成された学習済みの学習モデルM1,M2は、例えばネットワークN経由又は可搬型記憶媒体10a経由で学習装置から画像処理装置10にダウンロードされて記憶部12に記憶される。画像処理装置10は、上述したような学習モデルM1,M2を予め用意しておき、カメラで撮影した撮影画像中の背景領域を除去して前景領域を抽出する背景除去処理に用いる。具体的には、画像処理装置10は、第1学習モデルM1を用いて、撮影画像における前景領域及び背景領域が分類された前マスク画像を取得し、第2学習モデルM2を用いて、撮影画像に対してユーザが意図する前景領域及び背景領域に分類された推論マスク画像を取得する。そして、画像処理装置10は、前マスク画像及び推論マスク画像から、撮影画像中の背景領域がマスクされたマスク画像(出力用の出力マスク画像)を生成し、生成した出力マスク画像を用いて、撮影画像から、マスクされていない前景領域を抽出することにより、背景領域が除去された前景画像を生成することができる。
【0025】
以下に、本実施形態の画像処理装置10が、撮影画像から、ユーザが意図する前景領域を抽出して前景画像を生成し、生成した前景画像を任意の合成用背景画像に合成して提供する処理について説明する。まず、撮影画像から前景画像を生成する際に用いるマスク画像(出力マスク画像)の生成処理について説明する。
図3及び
図4は出力マスク画像の生成処理手順の一例を示すフローチャート、
図5~
図7はマージ処理の説明図、
図8は画面例を示す説明図である。
図4に示すマージ処理は、
図3中のステップS17の処理である。以下の処理は、画像処理装置10の制御部11が、記憶部12に記憶してあるプログラム12Pに従って行う。
【0026】
画像処理装置10の制御部11は、処理対象の撮影画像を取得する(S11)。撮影画像は、任意の撮影場所で撮影された画像、カメラマンが手に持ったカメラで撮影した画像、撮影位置が固定されたカメラで撮影された画像等、どのような撮影画像でもよい。処理対象の撮影画像は、撮影画像DB12aから読み出してもよく、通信部13を介してカメラ又は他の情報処理装置から取得してもよい。制御部11は、取得した撮影画像に対して背景除去処理を実行し、撮影画像中の前景領域を示す前マスク画像(第1マスク画像)を生成する(S12)。具体的には、制御部11は、撮影画像を第1学習モデルM1に入力し、第1学習モデルM1から出力されるラベル画像(前マスク画像)を取得する。ここでは制御部11は、撮影画像における前景領域及び背景領域が分類された前マスク画像を取得する。なお、制御部11は、背景差分法による背景除去処理等によって撮影画像中の前景領域を抽出して前マスク画像を生成してもよい。背景差分法は、事前に背景を撮影した背景画像と、新たに撮影した撮影画像との差分を算出することにより、背景画像には存在しない被写体を抽出する処理である。
【0027】
制御部11は、撮影画像及び前マスク画像に基づいて、前マスク画像において前景領域又は背景領域に分類されたいずれかの画素に対して、背景領域又は前景領域への修正指示を受け付けるための前景/背景修正画面を表示部15に表示する(S13)。例えば制御部11は、
図8Aに示すような画面を生成して表示する。
図8Aに示す画面は、撮影画像の上に、前マスク画像における前景領域をグレー領域として重ねた画像を表示し、表示中の撮影画像を介して、前景領域中の画素に対して背景領域への修正指示、及び、背景領域中の画素に対して前景領域への修正指示を受け付けるように構成されている。ユーザは、
図8Aに示す画面において、入力部14を介して、背景領域に修正したい前景領域内の任意の画素、又は、前景領域に修正したい背景領域内の任意の画素を選択して修正ボタンを操作することにより、任意の画素に対する修正指示を行う。なお、修正箇所の指定は、
図8A中の黒丸で示すように、例えば任意の箇所(画素)に対するクリック操作によって行われてもよく、任意の領域に対してドラッグ操作によって線を引くことによって行われてもよい。以下では、前マスク画像における前景領域中の画素に対する背景領域への修正指示の操作を背景クリックと記載し、前マスク画像における背景領域中の画素に対する前景領域への修正指示の操作を前景クリックと記載する。
【0028】
前景/背景修正画面は、
図8Aに示すように撮影画像の上に前マスク画像における前景領域をグレー領域として重畳させた重畳画像に加えて、
図8Bに示すように前マスク画像に基づく背景除去処理によって撮影画像から前マスク画像における前景領域を抽出した前景画像、及び、
図8Cに示すような前マスク画像を切り替えて表示できるように構成されている。
図8Aに示す前景/背景修正画面には、各画像の切替を指示するための「撮影画像+前マスク画像」ボタン、「撮影画像(背景除去)」ボタン、「前マスク画像」ボタンが設けられている。制御部11は、いずれかのボタンが操作されることによって画像の選択を受け付け、選択された画像を前景/背景修正画面に表示し、表示した画像を介して、画像中の任意の画素に対する修正指示を受け付けることができる。
【0029】
制御部11は、前景/背景修正画面を介して任意の箇所(画素)に対する修正指示を受け付けたか否かを判断する(S14)。ここで制御部11は、修正指示を受け付けていないと判断する場合(S14:NO)、即ち、
図8Aの画面に表示された前マスク画像における前景領域又は背景領域に対して修正指示が行われずに終了ボタンが操作された場合、ステップS12で生成した前マスク画像を出力マスク画像に特定する(S19)。
【0030】
修正指示を受け付けたと判断した場合(S14:YES)、制御部11は、受け付けた修正指示の内容を取得する。具体的には、制御部11は、修正指示された箇所(画素)の位置(修正位置)と、前景クリック又は背景クリックのいずれが行われたかを示す修正内容とを取得する(S15)。なお、修正内容として、制御部11は、修正位置の画素が前マスク画像中の前景領域の画素である場合、背景クリックが行われたことを示す修正指示(前景領域から背景領域への修正指示)を取得し、修正位置の画素が前記前マスク画像中の背景領域の画素である場合、前景クリックが行われたことを示す修正指示(背景領域から前景領域への修正指示)を取得する。そして、制御部11は、ステップS11で取得した撮影画像と、ステップS12で生成した前マスク画像と、ステップS15で取得した修正指示内容(修正位置及び修正内容)とを第2学習モデルM2に入力し、第2学習モデルM2によって推論マスク画像(第2マスク画像)を生成する(S16)。具体的には、制御部11は、撮影画像、前マスク画像、及び修正指示内容を入力することによって第2学習モデルM2から出力される推論マスク画像を取得する。
【0031】
次に制御部11は、ステップS12で生成した前マスク画像と、ステップS16で生成し推論マスク画像とをマージして出力マスク画像を生成するマージ処理を実行する(S17)。ここで、前マスク画像及び推論マスク画像は、多値画像であり、異なる学習モデルM1,M2によって生成されているので、推論精度に差異が生じる可能性がある。このような2つのマスク画像をマージした場合、マージ部分に推論精度の差に基づく違和感(異質感)が生じる可能性がある。そこで、本実施形態では、2つのマスク画像に2値化処理を行うことによって、2つのマスク画像における推論精度の差異を低減する。なお、第1学習モデルM1よりも第2学習モデルM2の推論精度が低いことが想定される。推論精度が高い前マスク画像に対しては、前景クリックが行われた場合は、前マスク画像における白画素(前景領域内の画素)の画素値(例えば255)又は白画素の画素値に近い値(例えば254又は250)を閾値T1として2値化処理を行い、背景クリックが行われた場合は、前マスク画像における黒画素(背景領域内の画素)の画素値(例えば0)又は黒画素の画素値に近い値(例えば1又は5)を閾値T1として2値化処理を行う。このように前景クリックが行われた場合と背景クリックが行われた場合とにおいて、前マスク画像に行う2値化処理に用いる閾値T1を切り替えることにより、推論マスク画像との推論精度の差異をより低減することができ、推論精度の差に基づく異質感を抑制することができる。一方、推論精度が低い推論マスク画像に対しては、前景クリック及び背景クリックのいずれが行われた場合であっても同じ閾値T2を用いて2値化処理を行う。なお、推論マスク画像に対する閾値T2は、推論マスク画像における白画素の画素値(例えば255)と黒画素の画素値(例えば0)との中間値、中央値又は平均値を用いてもよく、大津の2値化処理等によって推論マスク画像の各画素の画素値から自動的に決定されてもよい。
【0032】
図4に示すマージ処理において、制御部11は、ステップS15で取得した修正内容に応じて、前マスク画像に行う2値化処理における閾値T1を特定する(S21)。ここでは制御部11は、前景クリックが行われた場合、前マスク画像における白画素の画素値又はこの画素値に近い値を閾値T1に特定し、背景クリックが行われた場合、前マスク画像における黒画素の画素値又はこの画素値に近い値を閾値T1に特定する。そして、制御部11は、特定した閾値T1に基づく2値化処理を前マスク画像に行う(S22)。これにより、
図5に前マスク画像(2値)で示すような画像が得られる。制御部11は、例えば予め設定されている閾値T2に基づく2値化処理を推論マスク画像に行う(S23)。これにより、
図5に推論マスク画像(2値)で示すような画像が得られる。
【0033】
次に制御部11は、2値化処理後の前マスク画像と、2値化処理後の推論マスク画像との排他的論理和(XOR)を算出する(S24)。具体的には、制御部11は、2値の前マスク画像と2値の推論マスク画像とにおいて、それぞれの画素の画素位置毎に画素値の排他的論理和を算出し、2つのマスク画像における差分画像を生成する。これにより、
図5にXOR画像で示すような画像が得られる。
図5に示すXOR画像では、差異領域(排他的論理和が1の領域、差分領域)を白画素で示し、これ以外の領域(排他的論理和が0の領域)を黒画素で示している。なお、ステップS22~S23で前マスク画像及び推論マスク画像に対して異なる閾値T1,T2による2値化処理を行っているので、同じ閾値(例えば白画素の画素値と黒画素の画素値との中間値等)による2値化処理を行った後に排他的論理和を算出する場合と比較して、XOR画像における差異領域(白画素の領域)が大きくなる傾向がある。よって、本実施形態では、制御部11は、XOR画像(差分画像)に対してモルフォロジー処理を実行し(S25)、XOR画像から余分な差異領域を削除することによってXOR画像を補正する。
【0034】
制御部11は、モルフォロジー処理として、
図6Aに示すようなクロージング処理を実行した後に、
図6Bに示すようなオープニング処理を実行する。クロージング処理は、2値画像に対して複数回の膨張演算を行った後、同じ回数の収縮演算を行う処理であり、
図6Aの左側に示すような黒画素によるノイズを消去することができる。オープニング処理は、2値画像に対して複数回の収縮演算を行った後、同じ回数の膨張演算を行う処理であり、
図6Bの左側に示すような白画素によるノイズ及び線を消去することができる。膨張演算は、処理対象の画素の画素値を、当該画素の近傍で最も大きい画素値に置き換える処理であり、収縮演算は、処理対象の画素の画素値を、当該画素の近傍で最も小さい画素値に置き換える処理である。なお、モルフォロジー処理を行うことにより、XOR画像における差異領域を分断することができる。
図5に示す例では、モルフォロジー処理後のXOR画像における差異領域が2つの領域に分断されている。これにより、次のステップS26でXOR画像から抽出される連結領域のサイズが大きくなることが抑制される。
【0035】
次に、制御部11は、モルフォロジー処理によって補正したXOR画像(差分画像)において、ステップS15で取得した修正位置を起点として、この修正位置の画素の画素値と同じ画素値(同じラベル)で、隣り合う画素を順次連結した連結領域を特定する(S26)。例えば
図6Cに示すような画像において、グレーで示す画素が修正位置の画素である場合、修正位置の画素は白画素であるので、制御部11は、修正位置の画素に隣り合う画素のうちの白画素を連結領域の画素として抽出する。そして制御部11は、抽出した画素に更に隣り合う画素のうちの白画素を連結領域の画素として抽出する処理を、隣り合う画素に白画素がなくなるまで繰り返すことにより、連結領域を特定する。これにより、
図5に連結領域で示すような画像が得られる。なお、このように特定された連結領域は、前マスク画像にマージする更新領域となる。よって、制御部11は、特定した連結領域を更新領域に設定する(S27)。
【0036】
制御部11は、ステップS15で取得した修正内容に応じて、前マスク画像にマージする更新領域内の画素の画素値を特定する(S28)。ここでは制御部11は、前景クリックが行われた場合、前マスク画像における白画素の画素値又はこの画素値に近い値を画素値に特定し、背景クリックが行われた場合、前マスク画像における黒画素の画素値又はこの画素値に近い値を画素値に特定する。そして、制御部11は、前マスク画像において、更新領域に対応する領域内に、特定した画素値の画素を挿入して出力マスク画像(第3マスク画像)を生成する(S29)。具体的には、制御部11は、前景クリックが行われた場合、前マスク画像の更新領域に対応する領域内に白画素を挿入し、背景クリックが行われた場合、前マスク画像の更新領域に対応する領域内に黒画素を挿入することにより、ユーザが修正指示した箇所に基づいて特定された更新領域に、ユーザが修正指示した内容に応じた画素値の画素をマージすることができる。これにより、前マスク画像に対して、ユーザが修正指示した内容を反映させるための補正処理を行うことができる。これにより、
図5に示すような出力マスク画像が得られる。
【0037】
制御部11は、
図3の処理に戻り、ステップS29で生成した出力マスク画像を、次にユーザが修正指示した内容に基づいて新たな出力マスク画像を生成する処理における前マスク画像に設定(更新)する(S18)。そして制御部11は、ステップS13に移行し、
図8Aに示すような前景/背景修正画面を表示部15に表示する(S13)。ここでは、撮影画像の上に、ステップS29で生成した出力マスク画像に更新された更新後の前マスク画像における前景領域をグレー領域として重ねた重畳画像が前景/背景修正画面に表示される。
【0038】
その後、制御部11は、ステップS14以降の処理を継続する。
図5に示す出力マスク画像では、傘の左半分の領域が背景領域に分類されているので、ユーザは、新たに表示された
図8Aに示す画面において、傘の左半分の領域内の任意の画素を選択して修正ボタンを操作することにより、傘の左半分の領域に対して前景クリック(背景領域から前景領域への修正指示)を行う。この場合、制御部11は、更新後の前マスク画像に対する修正指示を受け付けたと判断し(S14:YES)、ステップS15~S17の処理を繰り返し、新たな出力マスク画像を生成する。具体的には、制御部11は、
図7Aに示すような修正指示内容(修正位置及び修正内容)を取得し(S15)、
図7Aに示すように、撮影画像と、更新後の前マスク画像と、取得した修正指示内容とを第2学習モデルM2に入力して新たな推論マスク画像を生成する(S16)。そして制御部11は、更新後の前マスク画像と、新たに生成した推論マスク画像とに基づいて、
図4に示すマージ処理を行い、
図7Bに示すような出力マスク画像を新たに生成する(S17)。これにより、ユーザが更に修正指示した箇所に基づく更新領域を前景領域に更新した出力マスク画像が生成される。
【0039】
制御部11は、修正指示を受け付けていないと判断する場合(S14:NO)、即ち、
図8Aの画面中の終了ボタンが操作された場合、この時点での前マスク画像(ステップS29で生成した出力マスク画像)を出力マスク画像に特定する(S19)。上述した処理により、撮影画像から、ユーザが意図する前景領域を高精度に抽出するためのマスク画像(出力マスク画像)が生成される。上述した処理では、第1学習モデルM1を用いて自動で撮影画像から前景領域を抽出した前マスク画像に対して、ユーザが意図する前景領域及び背景領域への修正指示に基づいて、前景領域及び背景領域の修正が可能である。よって、前景領域又は背景領域の過不足領域の修正、ユーザが意図する前景領域及び背景領域への修正を違和感なく行うことができる。また、上述した処理では、第1学習モデルM1を用いて撮影画像から生成された前マスク画像と、前マスク画像に基づいてユーザが修正指示した内容から第2学習モデルM2を用いて生成された推論マスク画像とにおける推論精度に差異がある場合であっても、違和感なく前マスク画像と推論マスク画像(更新領域)とをマージさせることができ、高精度の出力マスク画像の生成が可能となる。
【0040】
次に、上述した処理によって生成した出力マスク画像を用いて、撮影画像から前景画像を生成し、生成した前景画像を合成用背景画像に合成して提供する処理について説明する。
図9は合成画像の提供処理手順の一例を示すフローチャート、
図10~12は画面例を示す説明図である。以下の処理は、画像処理装置10の制御部11が、記憶部12に記憶してあるプログラム12Pに従って行う。
【0041】
画像処理装置10の制御部11は、
図3中のステップS19で特定した出力マスク画像をマスク画像として用いて、ステップS11で取得した撮影画像から、マスク画像中の白領域(前景領域)に対応する領域を抽出することにより、撮影画像中の前景領域を抽出して前景画像を生成する(S31)。これにより、撮影画像から背景領域が除去された前景画像が生成される。
【0042】
制御部11は、生成した前景画像を合成する合成用背景画像に対する選択を受け付けるために、合成用背景画像の一覧を表示する(S32)。ここでは、制御部11は、合成用背景DB12bに記憶してある合成用背景画像を読み出して、
図10に示すような画面を表示部15に表示し、合成用背景画像の一覧をユーザに提示する。
図10に示す画面は、前景画像と、合成用背景画像として用意された静止画と動画のサムネイル画像(例えば最初の画像)とを表示しており、いずれかの合成用背景画像に対する選択を受け付けるように構成されている。また、
図10に示す画面は、動画の合成用背景画像に対して、総再生時間と、総再生時間に対する再生位置を示すインジケータとを表示しており、インジケータを介して再生位置を移動させることにより、画面に表示される動画の再生位置を変更させることができる。ユーザは、
図10に示す画面において、入力部14を介していずれかの合成用背景画像を選択してOKボタンを操作することにより、いずれかの合成用背景画像に対する選択を行う。制御部11は、いずれかの合成用背景画像に対する選択を受け付けたか否かを判断しており(S33)、受け付けていないと判断した場合(S33:NO)、受け付けるまで待機する。
【0043】
制御部11は、いずれかの合成用背景画像に対する選択を受け付けたと判断した場合(S33:YES)、選択された合成用背景画像に前景画像を合成する際に、前景画像に対して行う画像処理の設定を受け付けるための設定画面を表示部15に表示する(S34)。例えば制御部11は、
図11Aに示すように、合成用背景画像及び前景画像を表示し、前景画像に対して行う画像処理の処理内容を入力するための入力欄を有する設定画面を表示する。前景画像に対して行う画像処理は、前景画像を拡大又は縮小する変倍処理、及び前景画像を回転させる回転処理を含む。よって、設定画面は、前景画像の幅及び高さに対する変倍率の入力欄と、回転角度の入力欄とを有し、各入力欄は、任意の数値を入力できる構成でもよく、複数の選択肢の中から任意の1つを選択するためのプルダウンメニューが設けられていてもよい。なお、
図11Aに示す設定画面は、前景画像に対して、例えばピンチアウト及びピンチイン操作によって拡大率又は縮小率を入力できる構成でもよい。更に、設定画面は、
図11Bに示すようなドラッグ操作によって、前景画像を合成用背景画像に合成する合成位置(合成用画像中の合成位置)を指定できるように構成されている。なお、前景画像に実行可能な画像処理は、変倍処理及び回転処理に限定されない。
【0044】
ユーザは、
図11A,Bに示す画面において、入力部14を介して、前景画像の幅及び高さに対する変倍率と、回転角度と、合成用背景画像に対する前景画像の合成位置とを入力して合成実行ボタンを操作することにより、合成用背景画像に対する前景画像の合成処理の実行を指示する。制御部11は、
図11A,Bに示す設定画面において、画像処理の処理内容の入力を受け付けたか否かを判断しており(S35)、受け付けたと判断した場合(S35:YES)、入力された処理内容(具体的には、変倍率及び回転角度)を各入力欄に表示する。そして制御部11は、表示中の前景画像に対して、入力された処理内容の画像処理を実行する(S36)。ここでは、制御部11は、変倍率が入力された場合、入力された変倍率での変倍処理(拡大処理又は縮小処理)を、表示中の前景画像に対して実行し、回転角度が入力された場合、入力された回転角度での回転処理を表示中の前景画像に対して実行する。そして、制御部11は、表示中の前景画像を、画像処理後の前景画像に更新する。
図11Bの画面では、
図11Aの画面中の前景画像に対して縮小処理が行われた後の前景画像が表示されている。前景画像に対する画像処理は、必ずしも行う必要はなく、画像処理の処理内容の入力を受け付けていないと判断した場合(S35:NO)、制御部11は、ステップS36の処理をスキップする。
【0045】
次に制御部11は、
図11A,Bに示す設定画面において、合成用背景画像に対する前景画像の合成位置の入力を受け付けたか否かを判断しており(S37)、受け付けたと判断した場合(S37:YES)、
図11Bに示すように、前景画像を、指定された合成位置に移動させる(S38)。そして、制御部11は、合成実行ボタンが操作されたか否かを判断し(S39)、操作されていないと判断した場合(S39:NO)、ステップS35の処理に戻り、画像処理内容及び合成位置の入力受付を継続する。なお、制御部11は、合成位置の入力を受け付けていないと判断した場合も(S37:NO)、ステップS35の処理に戻る。
【0046】
合成実行ボタンが操作されたと判断した場合(S39:YES)、制御部11は、選択された合成用背景画像に対して、選択された前景画像を合成する合成処理を行う(S40)。具体的には、制御部11は、ステップS33で選択された合成用背景画像において、ステップS37~S38で指定された合成位置に、ステップS36で画像処理を行った前景画像を合成して合成画像を生成する。制御部11は、生成した合成画像を出力し(S41)、一連の処理を終了する。例えば制御部11は、
図12に示すような画面を表示部15に表示することにより、生成した合成画像を表示してユーザに提示する。
【0047】
図12に示す画面は、合成画像を表示し、合成画像の生成のやり直しを指示するためのやり直すボタン、合成画像の印刷を指示するための印刷ボタン、合成画像の送信を指示するための送信ボタンを有する。
図12に示す画面において、やり直すボタンが操作された場合、画像処理装置10の制御部11は、例えば
図9中のステップS34の処理に戻り、画像処理及び合成処理を再度実行する。なお、制御部11は、合成用背景画像の選択からやり直す場合、
図9中のステップS32の処理に戻ってもよい。
図12に示す画面において、印刷ボタンが操作された場合、画像処理装置10の制御部11は、ネットワークN経由又は直接接続されているプリンタに合成画像を送信して、合成画像を印刷する。また、送信ボタンが操作された場合、制御部11は、ネットワークN経由又は近距離無線通信等によって、指定された端末に合成画像を送信する。なお、制御部11は、
図12に示す画面を表示することなく、生成した合成画像をプリンタによって印刷してもよく、所定の端末へ送信してもよい。
【0048】
上述した処理により、本実施形態の画像処理装置10では、ユーザが意図する前景領域を撮影画像から高精度に抽出できるマスク画像(出力マスク画像)を用いることにより、撮影画像からユーザが意図する前景領域を精度よく抽出できる背景除去処理を実現することができる。よって、自由な背景及び自由な撮影位置で被写体を撮影した撮影画像に対して、ユーザが意図する前景領域を精度よく抽出した前景画像を生成することができる。また、前景画像に対して変倍処理及び回転処理が可能であり、任意の合成用背景画像の選択が可能であるので、前景画像に対して自由な加工を実現できる。更に、ユーザが意図しない被写体が写り込んでしまった場合であっても、ユーザが選択した被写体のみを前景領域とする前景画像の生成が可能であり、任意の被写体のみを含む前景画像を生成できる。
【0049】
本実施形態では、第1学習モデルM1を用いて、撮影画像から背景領域を除去して前景領域が抽出された前マスク画像を生成し、第2学習モデルM2を用いて、撮影画像、前マスク画像、及びユーザによる修正指示内容に基づいて予測された前景領域を示す推論マスク画像を生成する。そして、前マスク画像及び推論マスク画像をマージすることにより、撮影画像からユーザが意図する前景領域を抽出できる出力マスク画像を生成できる。よって、このような出力マスク画像を用いて背景除去を行うことにより、ユーザが意図する前景領域が抽出された高精度の前景画像を生成することができる。なお、ユーザは、前景領域又は背景領域に修正したい箇所に対するクリック操作又はドラッグ操作等によって修正指示を行うので操作性がよい。
【0050】
本実施形態において、学習モデルM1,M2を用いたマスク画像(前マスク画像及び推論マスク画像)の予測処理は、画像処理装置10がローカルで行う構成に限定されない。例えば、学習モデルM1,M2を用いた処理を実行するサーバを設けてもよい。この場合、画像処理装置10は、処理対象の撮影画像をサーバへ送信し、サーバで第1学習モデルM1を用いて撮影画像から生成された前マスク画像が画像処理装置10へ送信されるように構成される。また、画像処理装置10は、処理対象の撮影画像、前マスク画像、及び修正指示内容をサーバへ送信し、サーバで第2学習モデルM2を用いて生成された出力マスク画像が画像処理装置10へ送信されるように構成される。この場合にも、画像処理装置10は、サーバで生成された出力マスク画像を用いて、撮影画像から背景領域を除去する背景除去処理を実行できる。なお、第1学習モデルM1を用いた処理を実行するサーバと、第2学習モデルM2を用いた処理を実行するサーバとを各別に設けてもよい。また、合成用背景画像に前景画像を合成する処理を実行するサーバを設けてもよい。この場合、画像処理装置10は、合成処理対象の前景画像及び合成用背景画像をサーバへ送信し、サーバで合成用背景画像に前景画像が合成された合成画像が画像処理装置10へ送信されるように構成される。この場合にも、画像処理装置10は、サーバで生成された合成画像を印刷又は送信することにより、ユーザに提供できる。このような構成とする場合、画像処理装置10は、スマートフォン、タブレット端末、通信機能を有するカメラ等で構成することができる。上述したような構成とした場合であっても、本実施形態と同様の処理が可能であり、同様の効果が得られる。
【0051】
本実施形態では、撮影画像から前景画像を生成して合成用背景画像に合成して合成画像を生成する構成であるが、この構成に限定されない。例えば、撮影画像から背景除去処理を行って生成された前景画像をそのままユーザに提供する構成でもよい。また、本実施形態で生成された出力マスク画像は、撮影画像に対して背景除去を行って前景画像を生成する処理に用いる構成に限定されない。例えば、入力画像中の各画素を、複数の対象物の領域にそれぞれ分類するセグメンテーションDNN(Deep Neural Network)の学習に用いるセグメンテーションマスク(セグメンテーション用のラベル画像)の生成に利用してもよい。
【0052】
(実施形態2)
本実施形態では、前マスク画像及び推論マスク画像をマージする処理において、前マスク画像及び推論マスク画像の差分画像(XOR画像)における差異領域(白画素の領域)内の画素数の多少に応じて、モルフォロジー処理を実行するか否かを切り替える画像処理装置について説明する。本実施形態の画像処理装置は、
図1に示す実施形態1の画像処理装置10の構成と同様の構成を有するので、構成についての説明は省略する。
【0053】
図13は実施形態2のマージ処理手順の一例を示すフローチャートである。
図13に示す処理は、
図4に示す処理において、ステップS24,S25の間にステップS51~S52を追加したものである。
図4と同じステップについては説明を省略する。
【0054】
本実施形態の画像処理装置10において、制御部11は、
図4中のステップS21~S24と同様の処理を実行する。そして、制御部11は、ステップS24で算出した、2値化処理後の前マスク画像と2値化処理後の推論マスク画像との排他的論理和(XOR)の画像(差分画像、XOR画像)において、ステップS15で取得した修正位置を起点として、この修正位置の画素の画素値と同じ画素値(同じラベル)で、隣り合う画素を順次連結した連結領域(第2の連結領域)を特定する(S51)。そして、制御部11は、特定した連結領域の画素数(連結領域内の白画素数)を計数し、連結領域の画素数が閾値T3よりも多いか否かを判断する(S52)。閾値T3は、例えば予め設定されて記憶部12に記憶されているが、適宜変更できるように構成されていてもよい。
【0055】
連結領域の画素数が閾値T3よりも多いと判断した場合(S52:YES)、制御部11は、ステップS25に移行する。この場合、制御部11は、実施形態1と同様の処理を実行して出力マスク画像を生成する。連結領域の画素数が閾値T3以下であると判断した場合(S52:NO)、制御部11は、ステップS25~S26をスキップしてステップS27に移行する。この場合、制御部11は、ステップS51でXOR画像において特定した連結領域を更新領域に設定し(S27)、ステップS28以降の処理を実行する。
【0056】
上述した処理により、2値化処理後の前マスク画像と2値化処理後の推論マスク画像との差分画像(XOR画像)において、修正位置に基づく連結領域の画素数が閾値T3よりも多いか否かに応じて、モルフォロジー処理を実行するか否かを切り替えることができる。モルフォロジー処理では、処理対象の画像に対して余分な領域が削除されるので、モルフォロジー処理を行うことによって、前マスク画像にマージする更新領域が不用意に大きくなることを抑制できる。しかし、元の連結領域(モルフォロジー処理前の状態での連結領域)が小さい場合、モルフォロジー処理を行うことによって、前マスク画像にマージする更新領域が小さくなり過ぎる、又は消滅する場合がある。よって、本実施形態では、モルフォロジー処理前のXOR画像における連結領域の大きさ(画素数)の大小に応じて、モルフォロジー処理を実行するか否かを切り替えることにより、前マスク画像にマージする更新領域が不用意に大きくなることを抑制すると共に小さくなり過ぎないように制御できる。よって、閾値T3は、モルフォロジー処理を行った場合に連結領域が小さくなり過ぎない画素数とすればよい。
【0057】
本実施形態では、上述した処理以外の処理は、実施形態1と同様であり、上述した実施形態1と同様の効果が得られる。また本実施形態では、モルフォロジー処理を行った後に連結領域を特定した場合に、特定した連結領域が小さくなり過ぎる場合にはモルフォロジー処理を行わずに、モルフォロジー処理前のXOR画像から連結領域(更新領域)を特定することにより、前マスク画像にマージする更新領域として、適切なサイズの更新領域を設定できる。本実施形態においても、上述した実施形態1で適宜説明した変形例の適用が可能である。
【0058】
(実施形態3)
上述の実施形態2では、モルフォロジー処理前のXOR画像から特定した連結領域の画素数に応じて、モルフォロジー処理を実行するか否かを切り替える構成であった。本実施形態では、モルフォロジー処理後のXOR画像において、ユーザが指定した修正位置の画素が白画素であるか黒画素であるかに応じて、前マスク画像にマージする更新領域を、モルフォロジー処理後のXOR画像における連結領域とするか、モルフォロジー処理前のXOR画像における連結領域とするかを切り替える画像処理装置について説明する。本実施形態の画像処理装置は、
図1に示す実施形態1の画像処理装置10の構成と同様の構成を有するので、構成についての説明は省略する。
【0059】
図14は実施形態3のマージ処理手順の一例を示すフローチャートである。
図14に示す処理は、
図4に示す処理において、ステップS25,S26の間にステップS61~S62を追加したものである。
図4と同じステップについては説明を省略する。
【0060】
本実施形態の画像処理装置10において、制御部11は、
図4中のステップS21~S25と同様の処理を実行する。そして、制御部11は、モルフォロジー処理後のXOR画像において、ステップS15で取得した修正位置の画素が白画素であるか否かを判断する(S61)。修正位置の画素が白画素であると判断した場合(S61:YES)、制御部11は、ステップS26に移行する。この場合、制御部11は、実施形態1と同様の処理を実行して出力マスク画像を生成する。一方、修正位置の画素が白画素でないと判断した場合(S61:NO)、即ち黒画素であると判断した場合、制御部11は、モルフォロジー処理前のXOR画像(排他的論理和の結果を示す画像)における連結領域を特定する(S62)。ステップS62は
図13中のステップS51と同じ処理である。その後、制御部11は、ステップS27に移行し、ステップS62で特定した連結領域を更新領域に設定し(S27)、ステップS28以降の処理を実行する。
【0061】
上述した処理により、モルフォロジー処理後のXOR画像において、修正位置の画素が白画素であるか黒画素であるに応じて、モルフォロジー処理後のXOR画像における連結領域を更新領域とするか、モルフォロジー処理前のXOR画像における連結領域を更新領域とするかを切り替えることができる。モルフォロジー処理後のXOR画像において、修正位置の画素が黒画素である場合、モルフォロジー処理によって連結領域(更新領域)が小さくなり過ぎた、又は消滅したと考えられる。よって、本実施形態では、この場合、モルフォロジー処理前のXOR画像における連結領域を更新領域として、前マスク画像に更新領域をマージする。一方、モルフォロジー処理後のXOR画像において修正位置の画素が白画素である場合、モルフォロジー処理によって連結領域(更新領域)が小さくなり過ぎていないので、モルフォロジー処理によって余分な領域が削除された後のXOR画像における連結領域を、前マスク画像にマージする更新領域とする。これにより、前マスク画像に適切なサイズの更新領域をマージすることができる。
【0062】
本実施形態において、モルフォロジー処理後のXOR画像において修正位置の画素が黒画素である場合、モルフォロジー処理前のXOR画像における連結領域を更新領域としたマージ処理を行う構成のほかに、マージ処理を行わない構成としてもよい。この場合、例えば制御部11は、前景クリックが行われた場合、「指定された箇所で前景領域を推論できません。違う箇所をクリックしてください」のメッセージを、
図8Aに示す前景/背景修正画面に表示してもよい。また、制御部11は、背景クリックが行われた場合、「指定された箇所で背景領域を推論できません。違う箇所をクリックしてください」のメッセージを表示してもよい。このようなメッセージが表示された場合、ユーザは、前景/背景修正画面において、異なる箇所に対して前景クリック又は背景クリックを行った後に修正ボタンを操作することにより、任意の箇所(画素)に対する修正指示を行い、修正すべき箇所がない場合は終了ボタンを操作する。
【0063】
よって、
図3中のステップS17で前マスク画像にマージ処理を行わず、その後のステップS14で修正指示を受け付けていないと判断する場合(S14:NO)、制御部11は、
図3中のステップS19で、直近に生成した前マスク画像を出力マスク画像に設定する。
【0064】
本実施形態では、上述した処理以外の処理は、実施形態1と同様であり、上述した実施形態1と同様の効果が得られる。また本実施形態でも、モルフォロジー処理によって連結領域が小さくなり過ぎる場合には、モルフォロジー処理を行わずに、モルフォロジー処理前のXOR画像における連結領域(更新領域)を前マスク画像にマージする、又は、マージ処理を行わないことにより、適切な出力マスク画像を生成できる。本実施形態においても上述した実施形態1で適宜説明した変形例の適用が可能である。
【0065】
(実施形態4)
上述の実施形態1~3では、ユーザが前景に指定した領域を前景画像として合成用背景画像に合成する構成であった。本実施形態では、出力マスク画像を用いて撮影画像から生成された前景画像から、合成対象の被写体の選択を受け付ける画像処理装置について説明する。本実施形態の画像処理装置は、
図1に示す実施形態1の画像処理装置10の構成と同様であるので、構成についての説明は省略する。
【0066】
図15は出力マスク画像の生成処理手順の変形例を示すフローチャート、
図16は画面例を示す説明図である。
図15に示す処理は、
図9に示す処理において、ステップS31,S32の間にステップS71~S73を追加したものである。
図9と同じステップについては説明を省略する。なお、
図15では
図9中のステップS34~S41の図示を省略している。
【0067】
本実施形態の画像処理装置10において、制御部11は、
図3中のステップS19で特定した出力マスク画像をマスク画像として用いて、撮影画像から前景画像を生成した場合(S31)、生成した前景画像を表示部15に表示する(S71)。例えば制御部11は、
図16に示すような画面を表示し、前景画像をユーザに提示する。
図16に示す画面は、表示中の前景画像を介して、前景画像に含まれる任意の被写体に対する選択を受け付けるように構成されている。ユーザは、
図16に示す画面において、入力部14を介して任意の被写体を選択してOKボタンを操作することにより、任意の被写体に対する選択を行う。制御部11は、前景画像を介して、任意の被写体に対する選択を受け付けたか否かを判断する(S72)。
図16に示す例では、前景画像中の2人の被写体のうちで左側の被写体に対する選択を受け付けた状態を示している。なお、複数の被写体が選択されてもよい。また、制御部11は、前景画像を表示する際に、例えば前景画像に対して物体検知処理を行うことによって、前景画像中の各被写体を検出し、検出した各被写体をバウンディングボックスで提示するように構成されていてもよい。この場合、ユーザは、いずれかのバウンディングボックスを選択することによって、任意の被写体を容易に指定できる。
【0068】
制御部11は、被写体に対する選択を受け付けていないと判断した場合(S72:NO)、受け付けるまで待機する。制御部11は、被写体に対する選択を受け付けたと判断した場合(S72:YES)、前景画像から、選択された被写体の領域を抽出して被写体画像を生成する(S73)。例えば制御部11は、
図10に示す前景画像のような被写体画像を生成する。その後、制御部11は、ステップS32以降の処理を実行する。なお、制御部11は、被写体画像を合成対象として以降の処理を実行する。即ち、
図10及び
図11の画面では、前景画像の代わりに被写体画像が表示され、ステップS36では被写体画像に対した画像処理が行われ、ステップS38では被写体画像が移動され、ステップS40では被写体画像が合成用背景画像に合成される。これにより、本実施形態では、撮影画像から高精度に生成された前景画像から、ユーザが所望する被写体のみを抽出して合成用背景画像に合成することができる。
【0069】
図15に示す処理では、撮影画像から生成された前景画像から、合成対象の被写体が選択されて被写体画像が生成される構成であったが、この構成に限定されない。例えば、撮影画像から任意の被写体が選択された後に、選択された被写体の領域(被写体画像)に対して、出力マスク画像を生成し、出力マスク画像を用いて被写体画像から前景画像を生成する構成としてもよい。
図17は合成画像の提供処理手順の変形例を示すフローチャートである。
図17に示す処理は、
図3に示す処理において、ステップS11,S12の間にステップS81~S83を追加したものである。
図3と同じステップについては説明を省略する。なお、
図17では
図3中のステップS13~S19の図示を省略している。
【0070】
画像処理装置10の制御部11は、撮影画像を取得した場合(S11)、取得した撮影画像を表示部15に表示する(S81)。ここでは、
図16の画面と同じ構成を有し、撮影画像が表示されている画面が表示部15に表示される。ここでの画面は、表示中の撮影画像に含まれる任意の被写体に対する選択を受け付けるように構成されており、ユーザは、画面に表示された撮影画像中の任意の被写体を選択してOKボタンを操作することにより、任意の被写体に対する選択を行う。制御部11は、撮影画像中の任意の被写体に対する選択を受け付けたか否かを判断する(S82)。ここでも複数の被写体が選択されてもよい。また、制御部11は、撮影画像を表示する際に、例えば撮影画像に対して物体検知処理を行うことによって、撮影画像中の各被写体を検出し、検出した各被写体をバウンディングボックスで提示するように構成されていてもよい。
【0071】
制御部11は、被写体に対する選択を受け付けていないと判断した場合(S82:NO)、受け付けるまで待機する。制御部11は、被写体に対する選択を受け付けたと判断した場合(S82:YES)、撮影画像から、選択された被写体の領域を抽出して被写体画像を生成する(S83)。その後、制御部11は、ステップS12以降の処理を実行する。なお、制御部11は、被写体画像を処理対象の撮影画像として以降の処理を実行する。即ち、ステップS12では、被写体画像から前マスク画像が生成され、ステップS16では、被写体画像と、被写体画像から生成された前マスク画像と、ユーザが指定した修正指示内容とに基づいて推論マスク画像が生成され、ステップS17では、被写体画像から生成された前マスク画像及び推論マスク画像に基づいて出力マスク画像が生成される。これにより、
図17に示す処理では、撮影画像から、ユーザが所望する被写体の領域が抽出されて生成された被写体画像に基づいて、当該被写体画像からユーザが意図する前景領域を抽出できる高精度の出力マスク画像を生成することができる。
【0072】
上述した処理により、本実施形態では、任意の合成用背景画像に合成する被写体の選択を前景画像又は撮影画像を介して受け付けることができる。また、
図17に示す処理において、撮影画像から、選択された被写体の領域を抽出し、抽出した領域(被写体画像)に対して、出力マスク画像を生成する処理を行う場合、処理対象の画像のデータ量を削減することができる。
【0073】
本実施形態では、前景画像又は撮影画像から合成対象の被写体を選択する処理は、ユーザが手動で行う構成であったが、この構成に限定されない。例えば、前景画像又は撮影画像に対して物体検知処理を行うことによって画像中の被写体を自動で検知し、検知した被写体から合成対象の被写体を自動で特定する構成でもよい。本実施形態においても、上述した実施形態1~3で適宜説明した変形例の適用が可能である。本実施形態の構成は、上述した実施形態1~3の画像処理装置10に適用可能であり、実施形態1~3の画像処理装置10に適用した場合であっても同様の効果が得られる。
【0074】
(実施形態5)
上述の実施形態1~4では、合成用背景画像に合成する前景画像は静止画であった。本実施形態では、動画である前景画像を合成用背景画像に合成する画像処理装置について説明する。本実施形態の画像処理装置では、動画に含まれる各静止画に対して、出力マスク画像を生成し、生成した出力マスク画像を用いて前景画像を生成することにより、背景領域が除去された前景画像が複数生成され、複数の前景画像をつなぎ合わせることにより動画の前景画像が生成される構成とする。本実施形態の画像処理装置は、
図1に示す実施形態1の画像処理装置10の構成と同様であるので、構成についての説明は省略する。
【0075】
図18は実施形態5の合成画像の提供処理手順の一例を示すフローチャート、
図19は画面例を示す説明図である。
図18に示す処理は、
図3に示す処理において、ステップS11の代わりにステップS91~S92を追加し、ステップS19の後にステップS93~S95を追加したものである。
図3と同じステップについては説明を省略する。
【0076】
本実施形態の画像処理装置10において、制御部11は、動画(複数の静止画を含む撮影画像)を取得する(S91)。ここでも、処理対象の動画は、撮影画像DB12aから読み出してもよく、通信部13を介してカメラ又は他の情報処理装置から取得してもよい。制御部11は、処理対象の動画から1枚の静止画を抽出し(S92)、抽出した静止画に対してステップS12~S19の処理を実行する。具体的には、制御部11は、1枚の静止画に基づいて、前マスク画像及び推論マスク画像を生成し、前マスク画像及び推論マスク画像をマージして出力マスク画像を生成する。制御部11は、生成した出力マスク画像をマスク画像として用いて、ステップS92で抽出した静止画(撮影画像)から、マスク画像中の白領域(前景領域)に対応する領域を抽出して前景画像を生成し、記憶部12に記憶する(S93)。これにより、動画に含まれる1枚の静止画から1枚の前景画像が生成される。
【0077】
制御部11は、ステップS91で取得した動画に含まれる全ての静止画に対して前景画像の生成処理を終了したか否かを判断し(S94)、終了していないと判断した場合(S94:NO)、ステップS92の処理に戻る。そして制御部11は、取得した動画から未処理の静止画を1枚抽出し(S92)、抽出した静止画に対してステップS12~S19,S93の処理を行い、各静止画から前景画像を生成する。
【0078】
全ての静止画に対して前景画像の生成処理を終了したと判断した場合(S94:YES)、制御部11は、動画に含まれる各静止画から生成した前景画像をつなぎ合わせることにより前景動画を生成する(S95)。これにより、取得した動画から、当該動画に含まれる静止画中の前景領域からなる前景動画が生成される。その後、制御部11は、
図9中のステップS32~S41を実行する。なお、本実施形態では、制御部11は、ステップS34で、
図19に示すような設定画面を表示する。
図19に示す設定画面は、
図11A,Bに示す画面と同様の構成を有しており、更に、表示中の前景動画に対して総再生時間及び総再生時間に対する再生位置を示すインジケータ15aと、表示中の合成用背景画像に対して総再生時間及び総再生時間に対する再生位置を示すインジケータ15bとを表示している。インジケータ15a,15bによって再生位置を移動させることにより、画面に表示されている前景動画及び合成用背景画像の再生位置の変更が可能となる。なお、
図19に示す設定画面では、合成用背景画像として動画が選択された場合の状態を示しているので、合成用背景画像にインジケータ15bが表示されるが、合成用背景画像として静止画が選択された場合にはインジケータ15bは表示されない。なお、合成対象の前景画像が動画であっても、合成用背景画像は静止画であっても動画であってもよい。
【0079】
なお、
図19に示す設定画面は、合成対象の前景動画に対して、総再生時間の入力欄、繰り返して再生する再生回数の入力欄、再生速度の入力欄等を有する構成でもよい。この場合、前景動画に対して変倍処理及び回転処理だけでなく、総再生時間、再生回数、再生速度の指定が可能であり、前景動画に対して任意の編集処理が可能となる。よって、ステップS36で制御部11は、設定画面に表示中の前景動画に対して、変倍処理及び回転処理に加えて、入力された内容に基づく動画編集処理を実行する。更に、
図19に示す設定画面は、インジケータ15bを介して合成用背景画像の任意の再生位置を指定し、指定された再生位置の画像(静止画)に対して、
図11Bに示すようなドラッグ操作によって前景動画の合成位置を指定できる構成でもよい。この場合、動画である合成用背景画像の任意の再生位置から、任意の合成位置に前景動画を合成することが可能となる。よって、ステップS40で制御部11は、合成用背景画像の任意の再生位置から、各画像(静止画)に対して指定された合成位置に、ステップS36で画像処理及び動画編集処理を行った前景動画を合成して合成画像の動画を生成することができる。上述した処理により、前景動画が任意の合成用背景画像の動画に合成された合成動画が生成される。
【0080】
上述した処理により、本実施形態では、被写体を撮影した動画に含まれる各静止画に背景除去処理を行って前景画像を生成することにより、背景領域が除去された前景動画を生成できる。よって、被写体の静止画だけでなく動画を合成対象とすることができるので、より自由度の高い合成画像の生成が可能となる。本実施形態においても、上述した実施形態1~4で適宜説明した変形例の適用が可能である。
【0081】
本実施形態の構成は、上述した実施形態1~4の画像処理装置10に適用可能であり、実施形態1~4の画像処理装置10に適用した場合であっても同様の効果が得られる。本実施形態の構成を実施形態4の画像処理装置10に適用した場合、
図18に示す処理においてステップS93の処理後、又はステップS95の処理後に、
図15中のステップS71~S73を行えばよい。この場合には、生成された前景画像から、又は前景動画に含まれる各静止画から、ユーザが所望する被写体の領域が抽出され、所望の被写体のみを含む被写体動画を生成することができる。また、
図18に示す処理においてステップS92,S12の間に、
図17中のステップS81~S83を行えばよい。この場合には、動画から抽出された各静止画から、ユーザが所望する被写体の領域が抽出され、所望の被写体のみを含む被写体画像について出力マスク画像が生成され、生成された出力マスク画像を用いて、被写体画像の背景領域を除去することにより、高精度の前景動画を生成することができる。
【0082】
(実施形態6)
上述の実施形態1~5の画像処理装置10を各種の施設に設置する場合のシステム構成について説明する。
図20は画像処理システムの構成例を示す説明図である。本実施形態の画像処理システムは、例えば遊園地、テーマパーク、水族館、動物園、植物園、展示会、観光地等の施設に設置され、記念撮影として撮影された画像に対して利用される。本実施形態の画像処理システムは、画像処理装置10、カメラ20(撮像装置)、タッチパネル30及びプリンタ40等を有し、各装置10,20,30,40はネットワークN経由で通信する構成でもよく、有線通信又は無線通信で直接通信する構成でもよい。カメラ20は、1回の撮影指示に対応して1枚の画像データ(静止画)を取得する撮影処理と、例えば1秒間に30枚又は15枚の画像データ(動画)を取得する撮影処理とを行うように構成されている。なお、カメラ20は、施設に設置され、施設のカメラマンが撮影を行うカメラであってもよく、施設を利用するユーザが使用するカメラであってもよい。なお、ユーザが使用するカメラは、スマートフォン、タブレット端末等に搭載されているカメラであってもよい。
【0083】
本実施形態の画像処理システムでは、上述の実施形態1~5で画像処理装置10の表示部15に表示されていた各種の画面がタッチパネル30に表示され、入力部14を介して入力されていた各種の情報がタッチパネル30を介して入力される。このような構成でも、上述の実施形態1~5の画像処理システムと同様の処理が可能であり、同様の効果が得られる。
【0084】
以上の実施形態1~6を含む実施の形態に関し、更に以下の付記を開示する。
【0085】
(付記1)
撮影画像を取得し、
取得した前記撮影画像中の前景領域を示す第1マスク画像を生成し、
前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付け、
撮影画像、前記撮影画像中の前景領域を示す第1マスク画像、及び、前記第1マスク画像に対する修正指示の内容を示す情報を入力した場合に、入力された情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を出力するように学習された学習モデルに、取得した前記撮影画像と、前記撮影画像中の前景領域を示す第1マスク画像と、前記第1マスク画像に対して受け付けた修正指示の内容を示す情報とを入力して、入力した情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を取得し、
前記第1マスク画像、前記第2マスク画像、及び前記第1マスク画像に対して受け付けた修正指示の内容を示す情報に基づいて、出力用の第3マスク画像を生成する
処理をコンピュータに実行させるプログラム。
【0086】
(付記2)
前記第1マスク画像に対して2値化処理を行い、
前記第2マスク画像に対して2値化処理を行い、
2値化処理した前記第1マスク画像と、2値化処理した前記第2マスク画像との差分画像を生成し、
前記差分画像に対して補正処理を行い、
補正処理後の前記差分画像において、前記修正指示を受け付けた画素を起点として前記画素と同じ画素値で隣り合う画素を順次連結した連結領域を特定し、
前記第1マスク画像と、特定した前記連結領域とに基づいて、前記第3マスク画像を生成する
処理を前記コンピュータに実行させる付記1に記載のプログラム。
【0087】
(付記3)
前記第1マスク画像における背景領域に対して前景領域への修正指示を受け付けた場合、前記第1マスク画像における前景領域内の画素の画素値に基づく閾値によって前記第1マスク画像に対する2値化処理を行い、
前記第1マスク画像における前景領域に対して背景領域への修正指示を受け付けた場合、前記第1マスク画像における背景領域内の画素の画素値に基づく閾値によって前記第1マスク画像に対する2値化処理を行う
処理を前記コンピュータに実行させる付記2に記載のプログラム。
【0088】
(付記4)
前記第1マスク画像における背景領域に対して前景領域への修正指示を受け付けた場合、前記第1マスク画像における前記連結領域内の画素の画素値を、前景領域内の画素の画素値に更新して前記第3マスク画像を生成し、
前記第1マスク画像における前景領域に対して背景領域への修正指示を受け付けた場合、前記第1マスク画像における前記連結領域内の画素の画素値を、背景領域内の画素の画素値に更新して前記第3マスク画像を生成する
処理を前記コンピュータに実行させる付記2又は3に記載のプログラム。
【0089】
(付記5)
前記差分画像に対してモルフォロジー処理のクロージング処理を行った後にオープニング処理を行って、前記差分画像を補正する
処理を前記コンピュータに実行させる付記2~4のいずれかひとつに記載のプログラム。
【0090】
(付記6)
前記撮影画像の上に前記第1マスク画像を重畳させた重畳画像と、前記撮影画像から前記第1マスク画像に基づいて前景領域が抽出された前景画像と、前記第1マスク画像とのいずれかの選択を受け付け、
選択された画像を表示する
処理を前記コンピュータに実行させる付記1~5のいずれかひとつに記載のプログラム。
【0091】
(付記7)
表示された前記画像を介して、前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付ける
処理を前記コンピュータに実行させる付記6に記載のプログラム。
【0092】
(付記8)
前記差分画像において、前記修正指示を受け付けた画素を起点として前記画素と同じ画素値で隣り合う画素を順次連結した第2の連結領域を特定し、
前記第2の連結領域内の画素数が所定値よりも多いか否かを判断し、
前記第2の連結領域内の画素数が所定値よりも多いと判断した場合に、前記差分画像に対して補正処理を行う
処理を前記コンピュータに実行させる付記2~7のいずれかひとつに記載のプログラム。
【0093】
(付記9)
補正処理後の前記差分画像において、前記修正指示を受け付けた画素が、前記差分画像における差分領域内の画素であるか否かを判断し、
前記差分領域内の画素でないと判断した場合、補正処理前の前記差分画像における前記連結領域を特定し、
前記第1マスク画像と、補正処理前の前記差分画像から特定した前記連結領域とに基づいて、前記第3マスク画像を生成する
処理を前記コンピュータに実行させる付記2~8のいずれかひとつに記載のプログラム。
【0094】
(付記10)
補正処理後の前記差分画像において、前記修正指示を受け付けた画素が、前記差分画像における差分領域内の画素であるか否かを判断し、
前記差分領域内の画素でないと判断した場合、前記第1マスク画像を前記第3マスク画像とする
処理を前記コンピュータに実行させる付記2~9のいずれかひとつに記載のプログラム。
【0095】
(付記11)
前記撮影画像中の前景領域を示す前記第1マスク画像を、前記第3マスク画像に更新し、
更新後の前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付け、
前記学習モデルに、前記撮影画像と、更新後の前記第1マスク画像と、更新後の前記第1マスク画像に対して受け付けた修正指示の内容を示す情報とを入力して、入力した情報に基づいて推論された前記第2マスク画像を新たに取得し、
更新後の前記第1マスク画像、新たに取得した前記第2マスク画像、及び更新後の前記第1マスク画像に対して受け付けた修正指示の内容を示す情報に基づいて、新たな前記第3マスク画像を生成する
処理を前記コンピュータに実行させる付記1~10のいずれかひとつに記載のプログラム。
【0096】
(付記12)
前記撮影画像と前記第3マスク画像とに基づいて、前記撮影画像中の前景領域を抽出して前景画像を生成する
処理を前記コンピュータに実行させる付記1~11のいずれかひとつに記載のプログラム。
【0097】
(付記13)
前記前景画像に含まれる被写体の少なくとも1つを選択し、
前記前景画像から、選択した被写体の撮影領域を抽出する
処理を前記コンピュータに実行させる付記12に記載のプログラム。
【0098】
(付記14)
複数の合成用画像のいずれかを選択し、
選択した合成用画像に前記前景画像を合成する
処理を前記コンピュータに実行させる付記12又は13に記載のプログラム。
【0099】
(付記15)
前記合成用画像に前記前景画像を合成する際に前記前景画像に行う画像処理、及び前記合成用画像に対する合成位置の入力を受け付け、
前記前景画像に対して、受け付けた画像処理を行い、画像処理後の前記前景画像を、前記合成用画像中の受け付けた合成位置に合成する
処理を前記コンピュータに実行させる付記14に記載のプログラム。
【0100】
(付記16)
撮影画像と、前記撮影画像中の前景領域を示す第1マスク画像と、前記第1マスク画像に対する修正指示の内容を示す情報と、前記修正指示が反映された前記撮影画像中の前景領域を示す第2マスク画像とを関連付けた訓練データを取得し、
取得した訓練データを用いて、前記撮影画像、前記第1マスク画像、及び前記修正指示の内容を示す情報を入力した場合に前記修正指示が反映された前記第2マスク画像を出力する学習モデルを生成する
処理をコンピュータが実行するモデル生成方法。
【0101】
(付記17)
撮影画像を取得し、
取得した前記撮影画像中の前景領域を示す第1マスク画像を生成し、
前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付け、
撮影画像、前記撮影画像中の前景領域を示す第1マスク画像、及び、前記第1マスク画像に対する修正指示の内容を示す情報を入力した場合に、入力された情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を出力するように学習された学習モデルに、取得した前記撮影画像と、前記撮影画像中の前景領域を示す第1マスク画像と、前記第1マスク画像に対して受け付けた修正指示の内容を示す情報とを入力して、入力した情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を取得し、
前記第1マスク画像、前記第2マスク画像、及び前記第1マスク画像に対して受け付けた修正指示の内容を示す情報に基づいて、出力用の第3マスク画像を生成する
処理をコンピュータが実行する画像処理方法。
【0102】
(付記18)
制御部を有する画像処理装置であって、
前記制御部は、
撮影画像を取得し、
取得した前記撮影画像中の前景領域を示す第1マスク画像を生成し、
前記第1マスク画像における前記前景領域又は背景領域に対する修正指示を受け付け、
撮影画像、前記撮影画像中の前景領域を示す第1マスク画像、及び、前記第1マスク画像に対する修正指示の内容を示す情報を入力した場合に、入力された情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を出力するように学習された学習モデルに、取得した前記撮影画像と、前記撮影画像中の前景領域を示す第1マスク画像と、前記第1マスク画像に対して受け付けた修正指示の内容を示す情報とを入力して、入力した情報に基づいて推論された前記撮影画像中の前景領域を示す第2マスク画像を取得し、
前記第1マスク画像、前記第2マスク画像、及び前記第1マスク画像に対して受け付けた修正指示の内容を示す情報に基づいて、出力用の第3マスク画像を生成する
画像処理装置。
【0103】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0104】
10 画像処理装置
11 制御部
12 記憶部
13 通信部
14 入力部
15 表示部
M1 第1学習モデル
M2 第2学習モデル