(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-26
(54)【発明の名称】傍観者および付属オブジェクトの除去
(51)【国際特許分類】
G06T 7/10 20170101AFI20240719BHJP
G06T 7/00 20170101ALI20240719BHJP
【FI】
G06T7/10
G06T7/00 660Z
G06T7/00 350B
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023531632
(86)(22)【出願日】2022-06-30
(85)【翻訳文提出日】2023-05-24
(86)【国際出願番号】 US2022035793
(87)【国際公開番号】W WO2024005832
(87)【国際公開日】2024-01-04
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】リバ,オーリー
(72)【発明者】
【氏名】ベレス,ペドロ
(72)【発明者】
【氏名】リ,シヤン
(72)【発明者】
【氏名】チェン,ホイジョン
(72)【発明者】
【氏名】プヤット,マルセル
(72)【発明者】
【氏名】バオ,ヤナン
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096DA01
5L096EA37
5L096FA02
5L096FA59
5L096GA51
5L096KA04
(57)【要約】
メディアアプリケーションは、初期画像において傍観者を検出する。メディアアプリケーションは、傍観者を含む傍観者ボックスを生成し、傍観者のすべての画素は傍観者ボックス内に存在する。メディアアプリケーションは、傍観者と傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスを生成する。メディアアプリケーションは、傍観者ボックスとローカライザボックスの1つまたは複数とを集約して、集約ボックスを形成する。メディアアプリケーションは、集約ボックスに基づいて、セグメンタを初期画像に適用して、初期画像から傍観者と1つまたは複数のオブジェクトとをセグメント化して傍観者マスクを生成し、傍観者マスクは、集約ボックス内の画素のサブセットを含む。メディアアプリケーションは、傍観者マスク内のすべての画素を初期画像内の背景に一致する画素に置き換えるインペイント画像を生成する。
【特許請求の範囲】
【請求項1】
コンピュータによって実現される方法であって、
初期画像において傍観者を検出することと、
前記傍観者を含む傍観者ボックスを生成することとを備え、前記傍観者のすべての画素は前記傍観者ボックス内に存在し、前記方法はさらに、
前記傍観者と前記傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスを生成することと、
前記傍観者ボックスと前記ローカライザボックスの1つまたは複数とを集約して、集約ボックスを形成することと、
前記集約ボックスに基づいてセグメンタを前記初期画像に適用して、前記初期画像から前記傍観者と前記1つまたは複数のオブジェクトとをセグメント化して、傍観者マスクを生成することとを備え、前記傍観者マスクは、前記集約ボックス内の画素のサブセットを含み、前記方法はさらに、
インペイント画像を生成することを備え、前記傍観者マスク内のすべての画素は、前記インペイント画像において、前記初期画像内の背景に一致する画素に置き換えられる、方法。
【請求項2】
前記セグメンタを前記初期画像に適用する前に、
前記集約ボックスを、前記傍観者ボックスであると定義することと、
前記ローカライザボックスの各々について、ローカライザボックスに対する前記集約ボックスのIoU(intersection over union)比を計算することと、
前記IoU比が閾値を超えていることに応答して、または前記集約ボックスと前記ローカライザボックスとの重なり面積が占有閾値を超えていることに応答して、前記集約ボックスのサイズを増加させることとをさらに備える、請求項1に記載の方法。
【請求項3】
前記IoU比は、前記集約ボックスと前記ローカライザボックスとの前記重なり面積を、前記集約ボックスと前記ローカライザボックスとの和集合の面積で除算したものであり、前記方法はさらに、
前記集約ボックスをパディングすることを備える、請求項2に記載の方法。
【請求項4】
前記セグメンタを前記初期画像に適用することは、前景を背景からセグメント化して、前記傍観者に付属する前記1つまたは複数のオブジェクトを前記背景から区別することを含む、請求項1に記載の方法。
【請求項5】
前記初期画像の被写体が前記傍観者を遮蔽しているかどうかを判定することと、
前記初期画像の前記被写体が前記傍観者を遮蔽していると判定することに応答して、被写体マスクを生成し、前記被写体マスク内の画素を除去するために前記傍観者マスクを更新することとをさらに備える、請求項1に記載の方法。
【請求項6】
前記セグメンタは、訓練済み機械学習モデルである、請求項1に記載の方法。
【請求項7】
前記ローカライザボックスは、前記初期画像内の被写体、前記傍観者、またはオブジェクトのうちの1つまたは複数を含み、前記方法はさらに、
前記被写体に関連付けられた対応するローカライザボックスを除去することを備える、請求項1に記載の方法。
【請求項8】
コンピュータによって実現される方法であって、
各々が背景画像にオブジェクトを重ねることを含む訓練画像を含むように生成される合成訓練データセットを取得することと、
訓練済み機械学習モデルを取得することとを備え、前記訓練済み機械学習モデルを取得することは、
前記合成訓練データセットを入力として生の機械学習モデルに提供することと、
訓練画像の予測傍観者ボックスを出力することと、
各予測傍観者ボックスを、訓練画像に対応するグラウンドトゥルース傍観者マスクと比較することと、
前記比較に基づいて、前記生の機械学習モデルの1つまたは複数のパラメータを調整することとによって行われ、
前記訓練済み機械学習モデルは、初期画像を受信し、かつ前記集約ボックス内の画素のサブセットを含む傍観者マスクを出力するように訓練される、方法。
【請求項9】
前記訓練済み機械学習モデルは、複数の層を含み、かつ前記訓練済み機械学習モデルを用いて前記傍観者マスクを出力するニューラルネットワークであり、前記傍観者マスクは、
画素ごとに、前記画素を前景の一部または背景の一部のうちのいずれかとして分類することにより、画像を前記前景と前記背景とにセグメント化する第1の層と、
画素ごとに、前記画素が傍観者マスクの一部であるか、被写体マスクの一部であるか、またはそのどちらでもないかを出力する出力層とを含み、前記ニューラルネットワークにおいて前記第1の層は前記出力層に先行する、請求項8に記載の方法。
【請求項10】
前記訓練済み機械学習モデルへの入力として、傍観者と、前記傍観者に付属する1つまたは複数のオブジェクトとを包含する集約ボックスを有する前記初期画像を受信することと、
前記訓練済み機械学習モデルを用いて、前記集約ボックス内の画素のサブセットを含む傍観者マスクを出力することと、
インペイント画像を生成することとをさらに備え、前記傍観者マスク内のすべての画素は、前記インペイント画像において、前記初期画像内の背景に一致する画素に置き換えられる、請求項8に記載の方法。
【請求項11】
前記訓練済み機械学習モデルへの入力として前記初期画像を受信する前に、
前記初期画像において前記傍観者を検出することと、
前記傍観者を含む傍観者ボックスを生成することとをさらに備え、前記傍観者のすべての画素は前記傍観者ボックス内に存在し、前記方法はさらに、
前記傍観者と前記傍観者に付属する前記1つまたは複数のオブジェクトとを包含するローカライザボックスを生成することと、
前記傍観者ボックスと前記ローカライザボックスのうちの1つまたは複数とを集約して、前記集約ボックスを形成することとを備える、請求項10に記載の方法。
【請求項12】
前記集約ボックスを、前記傍観者ボックスであると定義することと、
前記傍観者ボックスの各々について、
ローカライザボックスに対する前記集約ボックスのIoU(intersection over union)比を計算することと、
前記IoU比が閾値を超えていることに応答して、または前記集約ボックスと前記ローカライザボックスとの重なり面積が占有閾値を超えていることに応答して、前記集約ボックスのサイズを増加させることとをさらに備える、請求項11に記載の方法。
【請求項13】
前記IoU比は、前記集約ボックスと前記ローカライザボックスとの前記重なり面積を、前記集約ボックスと前記ローカライザボックスとの和集合の面積で除算したものであり、前記方法はさらに、
前記集約ボックスをパディングすることを備える、請求項12に記載の方法。
【請求項14】
前記傍観者マスクを出力することは、対応する信頼値を出力することと、前記対応する信頼値が信頼閾値を満たさないことに応答して、前記傍観者のエッジの周りにぼかしを追加することとを含む、請求項10に記載の方法。
【請求項15】
コンピューティングデバイスであって、
プロセッサと、
前記プロセッサに結合され、前記プロセッサによって実行されると前記プロセッサに動作を実行させる命令を格納したメモリとを備え、前記動作は、
初期画像において傍観者を検出することと、
前記傍観者を含む傍観者ボックスを生成することとを含み、前記傍観者のすべての画素は前記傍観者ボックス内に存在し、前記動作はさらに、
前記傍観者と前記傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスを生成することと、
前記傍観者ボックスと前記ローカライザボックスの1つまたは複数とを集約して、集約ボックスを形成することと、
前記集約ボックスに基づいてセグメンタを前記初期画像に適用して、前記初期画像から前記傍観者と前記1つまたは複数のオブジェクトとをセグメント化して、傍観者マスクを生成することとを含み、前記傍観者マスクは、前記集約ボックス内の画素のサブセットを含み、前記動作はさらに、
インペイント画像を生成することを含み、前記傍観者マスク内のすべての画素は、前記インペイント画像において、前記初期画像内の背景に一致する画素に置き換えられる、コンピューティングデバイス。
【請求項16】
前記動作はさらに、
前記セグメンタを前記初期画像に適用する前に、
前記集約ボックスを、前記傍観者ボックスであると定義することと、
前記ローカライザボックスの各々について、ローカライザボックスに対する前記集約ボックスのIoU(intersection over union)比を計算することと、
前記IoU比が閾値を超えていることに応答して、または前記集約ボックスと前記ローカライザボックスとの重なり面積が占有閾値を超えていることに応答して、前記集約ボックスのサイズを増加させることとを含む、請求項15に記載のコンピューティングデバイス。
【請求項17】
前記IoU比は、前記集約ボックスと前記ローカライザボックスとの前記重なり面積を、前記集約ボックスと前記ローカライザボックスとの和集合の面積で除算したものであり、前記動作はさらに、
前記集約ボックスをパディングすることを含む、請求項16に記載のコンピューティングデバイス。
【請求項18】
前記セグメンタを前記初期画像に適用することは、前景を背景からセグメント化して、前記傍観者に付属する前記1つまたは複数のオブジェクトを前記背景から区別することを含む、請求項15に記載のコンピューティングデバイス。
【請求項19】
前記動作はさらに、
前記初期画像の被写体が前記傍観者を遮蔽しているかどうかを判定することと、
前記初期画像の前記被写体が前記傍観者を遮蔽していると判定することに応答して、被写体マスクを生成し、前記被写体マスク内の画素を除去するために前記傍観者マスクを更新することとを含む、請求項15に記載のコンピューティングデバイス。
【請求項20】
前記セグメンタは、訓練済み機械学習モデルである、請求項15に記載のコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【0001】
背景
画像(静止画像、選択的な動きを伴う画像等)および動画などの視覚的メディアアイテムにおけるオブジェクトの分類は、メディアアイテムの焦点から注意を逸らす傍観者を除去することによって改善することができる。しかしながら、傍観者がオブジェクト(たとえば、自転車/スケートボードに乗っている人、バッグを持っている人等)に付属している場合、傍観者に関連付けられた画素が特定され、オブジェクトに関連付けられた画素が特定されないことがある。このような分類を画像編集の目的で使用する(たとえば、傍観者を背景に一致する画素で置き換える)場合、オブジェクトに関連付けられた画素が存在するため、結果として得られる画像は満足できないものになる可能性がある。
【0002】
本明細書で提供される背景の説明は、本開示の文脈を一般的に提示することを目的とするものである。本背景の項に記載されている範囲での本発明者の研究、および出願時に先行技術として認められない可能性のある説明の態様は、本開示に対して先行技術として明示的または黙示的に認められるものではない。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
コンピュータによって実現される方法は、初期画像において傍観者を検出することを備える。方法はさらに、傍観者を含む傍観者ボックスを生成することを備え、傍観者のすべての画素は傍観者ボックス内に存在する。方法はさらに、傍観者と傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスを生成することを備える。方法はさらに、傍観者ボックスとローカライザボックスの1つまたは複数とを集約して、集約ボックスを形成することを備える。方法はさらに、集約ボックスに基づいてセグメンタを初期画像に適用して、初期画像から傍観者と1つまたは複数のオブジェクトとをセグメント化して、傍観者マスクを生成することを備え、傍観者マスクは、集約ボックス内の画素のサブセットを含む。方法はさらに、インペイント画像を生成することを備え、傍観者マスク内のすべての画素は、インペイント画像において、初期画像内の背景に一致する画素に置き換えられる。一例では、方法または方法の少なくとも1つまたは複数のステップは、機械学習モデルによって実行または提供され得る。機械学習モデルは、たとえば、以下で説明する訓練方法によって取得される訓練済み機械学習モデルであり得る。それゆえ、機械学習モデルは、ローカライザボックスを生成するステップと、集約ボックスを形成するステップと、セグメンタを適用するステップと、任意にインペイント画像を生成するステップとのうちの少なくとも1つを実行し得る。機械学習モデルはさらに、以下で説明する方法ステップのうちのいずれかを実行し得る。ただ1つのモデルを使用する代わりに、複数のモデルも使用可能である。
【0004】
いくつかの実施形態において、方法はさらに、セグメンタを初期画像に適用する前に、集約ボックスを傍観者ボックスであると定義することと、ローカライザボックスの各々について、ローカライザボックスに対する集約ボックスのIoU(intersection over union)比を計算することと、IoU比が閾値を超えていることに応答して、または集約ボックスとローカライザボックスとの重なり面積が占有閾値を超えていることに応答して、集約ボックスのサイズを増加させることとを備える。いくつかの実施形態において、IoU比は、集約ボックスとローカライザボックスとの重なり面積を、集約ボックスとローカライザボックスとの和集合の面積で除算したものであり、方法はさらに、集約ボックスをパディングすることを備える。いくつかの実施形態において、セグメンタを初期画像に適用することは、前景を背景からセグメント化して、傍観者に付属する1つまたは複数のオブジェクトを背景から区別することを含む。いくつかの実施形態において、方法はさらに、初期画像の被写体が傍観者を遮蔽しているかどうかを判定することと、初期画像の被写体が傍観者を遮蔽していると判定することに応答して、被写体マスクを生成し、被写体マスク内の画素を除去するために傍観者マスクを更新することとを備える。いくつかの実施形態において、セグメンタは、訓練済み機械学習モデルである。いくつかの実施形態において、ローカライザボックスは、初期画像内の被写体、傍観者、またはオブジェクトのうちの1つまたは複数を含み、方法はさらに、被写体に関連付けられた対応するローカライザボックスを除去することを備える。
【0005】
いくつかの実施形態において、コンピュータによって実現される方法(たとえば、訓練方法とも呼ばれる)は、各々が背景画像にオブジェクトを重ねることを含む訓練画像を含むように生成される合成訓練データセットを取得することと、訓練済み機械学習モデルを取得することとを備え、訓練済み機械学習モデルを取得することは、合成訓練データセットを入力として生の機械学習モデルに提供することと、訓練画像の予測傍観者ボックスを出力することと、各予測傍観者ボックスを、訓練画像に対応するグラウンドトゥルース傍観者マスクと比較することと、比較に基づいて、生の機械学習モデルの1つまたは複数のパラメータを調整することとによって行われ、訓練済み機械学習モデルは、初期画像を受信し、かつ集約ボックス内の画素のサブセットを含む傍観者マスクを出力するように訓練される。
【0006】
いくつかの実施形態において、訓練済み機械学習モデルは、複数の層を含み、かつ訓練済み機械学習モデルで傍観者マスクを出力するニューラルネットワークであり、傍観者マスクは、画素ごとに、画素を前景の一部または背景の一部のうちのいずれかとして分類することにより、画像を前景と背景とにセグメント化する第1の層と、画素ごとに、画素が傍観者マスクの一部であるか、被写体マスクの一部であるか、またはそのどちらでもないかを出力する出力層とを含み、ニューラルネットワークにおいて、第1の層は出力層に先行する。いくつかの実施形態において、方法はさらに、訓練済み機械学習モデルへの入力として、傍観者と、傍観者に付属する1つまたは複数のオブジェクトとを包含する集約ボックスを有する初期画像を受信することと、訓練済み機械学習モデルを用いて、集約ボックス内の画素のサブセットを含む傍観者マスクを出力することと、インペイント画像を生成することとを備え、傍観者マスク内のすべての画素は、インペイント画像において、初期画像内の背景に一致する画素に置き換えられる。いくつかの実施形態において、方法はさらに、機械学習モデルへの入力として初期画像を受信する前に、初期画像において傍観者を検出することと、傍観者を含む傍観者ボックスを生成することとを備え、傍観者のすべての画素は傍観者ボックス内に存在し、方法はさらに、傍観者と傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスを生成することと、傍観者ボックスとローカライザボックスのうちの1つまたは複数とを集約して、集約ボックスを形成することとを備える。いくつかの実施形態において、方法はさらに、集約ボックスを傍観者ボックスであると定義することと、傍観者ボックスの各々について、ローカライザボックスに対する集約ボックスのIoU(intersection over union)比を計算することと、IoU比が閾値を超えていることに応答して、または集約ボックスとローカライザボックスとの重なり面積が占有閾値を超えていることに応答して、集約ボックスのサイズを増加させることとを備える。いくつかの実施形態において、IoU比は、集約ボックスとローカライザボックスとの重なり面積を、集約ボックスとローカライザボックスとの和集合の面積で除算したものであり、方法はさらに、集約ボックスをパディングすることを備える。いくつかの実施形態において、傍観者マスクを出力することは、対応する信頼値を出力することと、対応する信頼値が信頼閾値を満たさないことに応答して、傍観者のエッジの周りにぼかしを追加することとを含む。
【0007】
いくつかの実施形態において、コンピューティングデバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、プロセッサによって実行されるとプロセッサに動作を実行させる命令を格納したメモリとを備える。動作は、初期画像において傍観者を検出することと、傍観者を含む傍観者ボックスを生成することとを含み得、傍観者のすべての画素は傍観者ボックス内に存在し、動作はさらに、傍観者と傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスを生成することと、傍観者ボックスとローカライザボックスの1つまたは複数とを集約して、集約ボックスを形成することと、集約ボックスに基づいてセグメンタを初期画像に適用して、初期画像から傍観者と1つまたは複数のオブジェクトとをセグメント化して、傍観者マスクを生成することとを含み得、傍観者マスクは、集約ボックス内の画素のサブセットを含み、動作はさらに、インペイント画像を生成することを含み、傍観者マスク内のすべての画素は、インペイント画像において、初期画像内の背景に一致する画素に置き換えられる。
【0008】
いくつかの実施形態において、動作はさらに、セグメンタを初期画像に適用する前に、集約ボックスを傍観者ボックスであると定義することと、ローカライザボックスの各々について、ローカライザボックスに対する集約ボックスのIoU(intersection over union)比を計算することと、IoU比が閾値を超えていることに応答して、または集約ボックスとローカライザボックスとの重なり面積が占有閾値を超えていることに応答して、集約ボックスのサイズを増加させることとを含む。いくつかの実施形態において、IoU比は、集約ボックスとローカライザボックスとの重なり面積を、集約ボックスとローカライザボックスとの和集合の面積で除算したものであり、動作はさらに、集約ボックスをパディングすることを含む。いくつかの実施形態において、セグメンタを初期画像に適用することは、前景を背景からセグメント化して、傍観者に付属する1つまたは複数のオブジェクトを背景から区別することを含む。いくつかの実施形態において、動作はさらに、初期画像の被写体が傍観者を遮蔽しているかどうかを判定することと、初期画像の被写体が傍観者を遮蔽していると判定することに応答して、被写体マスクを生成し、被写体マスク内の画素を除去するために傍観者マスクを更新することとを含む。いくつかの実施形態において、セグメンタは、訓練済み機械学習モデルである。
【0009】
本明細書に記載の技術は、傍観者と、傍観者に付属する1つまたは複数のオブジェクトとを含む集約ボックスと、集約ボックス内の画素のサブセットを含む傍観者マスクを生成することと、傍観者マスク内の画素を初期画像内の背景に一致する画素に置き換えるインペイント画像とを生成することとによって、オブジェクトが傍観者に取り付けられた場合に画像から除去するオブジェクトを特定するという課題を有利に解決する。いくつかの実施形態において、初期画像の被写体が傍観者を遮蔽する場合、本願は、傍観者マスク内の被写体画素を含まない画素マスクに基づいて生成された、被写体マスクの一部である画素が最終画像に保持される被写体マスクを生成するための技術を説明する。説明される技術は、傍観者および付属オブジェクトを除去する画像編集、または傍観者および付属オブジェクトをぼかすといった他のアクションを自動的に行って、最終的な画像を生成することができる。
【発明の効果】
【0010】
したがって、本開示の方法は、さまざまな技術的問題を解決する。たとえば、方法は、(たとえば、それぞれの能力を有する同じモデルまたは別のモデルを使用することによって)初期画像の被写体のより信頼性の高いおよび/または正確な検出を改善することができる、傍観者が除去された画像を提供することができる。別の例では、傍観者が除去された提供画像は、別の機械学習モデル(たとえば、人物検出または画像分類のためのもの)を訓練するための最適化データセットとして使用することができる。このデータセットは、訓練タスクにおいてモデルを混乱させる可能性のある紛らわしい傍観者が除去されているため、最適化され得る。
【図面の簡単な説明】
【0011】
【
図1】本明細書で説明するいくつかの実施形態に係る、例示的なネットワーク環境を示すブロック図である。
【
図2】本明細書で説明するいくつかの実施形態に係る、例示的なコンピューティングデバイスを示すブロック図である。
【
図3A】本明細書で説明するいくつかの実施形態に係る、例示的な初期画像を示す図である。
【
図3B】本明細書で説明するいくつかの実施形態に係る、傍観者ボックスとローカライザボックスとを有する例示的な初期画像を示す図である。
【
図3C】本明細書で説明するいくつかの実施形態に係る、ボックスアグリゲータ出力を有する例示的な初期画像を示す図である。
【
図3D】本明細書で説明するいくつかの実施形態に係る、集約ボックスと傍観者ボックスとを有する例示的な初期画像を示す図である。
【
図3E】いくつかの実施形態に係る、傍観者と付属オブジェクトとを包含する傍観者マスクを有する例示的な初期画像を示す図である。
【
図3F】本明細書で説明するいくつかの実施形態に係る、傍観者とオブジェクトとが除去された例示的な最終画像を示す図である。
【
図4】本明細書で説明するいくつかの実施形態に係る、傍観者および付属オブジェクトが除去されたインペイント画像を生成するための例示的なフローチャートである。
【
図5】本明細書で説明するいくつかの実施形態に係る、傍観者マスクを生成するための例示的なフローチャートである。
【
図6】本明細書で説明するいくつかの実施形態に係る、例示的なニューラルネットワークの動作を示す図である。
【発明を実施するための形態】
【0012】
詳細な説明
例示的な環境100
図1は、例示的な環境100を示すブロック図である。いくつかの実施形態において、環境100は、ネットワーク105に結合されたメディアサーバ101と、ユーザデバイス115aと、ユーザデバイス115nとを含む。ユーザ125a,125nはそれぞれ、ユーザデバイス115a,115nと関連付けられ得る。いくつかの実施形態において、環境100は、
図1に示されていない他のサーバまたはデバイスを含み得る。
図1および残りの図において、参照番号の後の文字、たとえば「115a」は、その特定の参照番号を有する要素についての言及を表す。本文中の参照番号の後に文字がないもの、たとえば「115」は、その参照番号を有する要素の実施形態についての一般的な言及を表す。
【0013】
メディアサーバ101は、プロセッサと、メモリと、ネットワーク通信ハードウェアとを含み得る。いくつかの実施形態において、メディアサーバ101はハードウェアサーバである。メディアサーバ101は、信号線102を介してネットワーク105に通信可能に結合される。信号線102は、イーサネット(登録商標)、同軸ケーブル、光ファイバーケーブルなどの有線接続、またはWi-Fi(登録商標)、Bluetooth(登録商標)、もしくは他の無線技術などの無線接続であり得る。いくつかの実施形態において、メディアサーバ101は、ネットワーク105を介して、ユーザデバイス115a,115nのうちの1つまたは複数との間でデータを送受信する。メディアサーバ101は、メディアアプリケーション103aとデータベース199とを含み得る。
【0014】
データベース199は、機械学習モデル、訓練データセット、画像などを格納し得る。また、データベース199は、ユーザ125に関連するソーシャルネットワークデータ、ユーザ125のユーザプリファレンスなどを格納し得る。
【0015】
ユーザデバイス115は、ハードウェアプロセッサに結合されたメモリを含むコンピューティングデバイスであり得る。たとえば、ユーザデバイス115は、モバイルデバイス、タブレットコンピュータ、携帯電話、ウェアラブルデバイス、ヘッドマウントディスプレイ、モバイル電子メールデバイス、携帯ゲームプレーヤー、携帯音楽プレーヤー、リーダーデバイス、またはネットワーク105にアクセス可能な他の電子デバイスを含み得る。
【0016】
図示された実現例において、ユーザデバイス115aは信号線108を介してネットワーク105に結合され、ユーザデバイス115nは信号線110を介してネットワーク105に結合される。メディアアプリケーション103は、ユーザデバイス115a上のメディアアプリケーション103bおよび/またはユーザデバイス115n上のメディアアプリケーション103cとして格納され得る。信号線108および110は、イーサネット、同軸ケーブル、光ファイバーケーブルなどの有線接続、またはWi-Fi、Bluetooth、もしくは他の無線技術などの無線接続であり得る。ユーザデバイス115a,115nはそれぞれ、ユーザ125a,125nによってアクセスされる。
図1のユーザデバイス115a,115nは、例として使用されている。
図1は、2つのユーザデバイス115a,115nを示しているが、本開示は、1つまたは複数のユーザデバイス115を有するシステムアーキテクチャに適用される。
【0017】
メディアアプリケーション103は、メディアサーバ101またはユーザデバイス115に格納され得る。いくつかの実施形態において、本明細書で説明する動作は、メディアサーバ101またはユーザデバイス115で実行される。いくつかの実施形態において、一部の動作はメディアサーバ101で実行され、一部はユーザデバイス115で実行されてもよい。動作の実行は、ユーザ設定に従う。たとえば、ユーザ125aは、動作をサーバ101ではなく、それぞれのデバイス115aで実行するような設定を指定し得る。このような設定により、本明細書で(たとえば、
図4~
図6を参照して)説明される動作は、完全にユーザデバイス115aで実行され、メディアサーバ101では動作は実行されない。さらに、ユーザ125aは、ユーザの画像および/または他のデータを、ユーザデバイス115aにローカルにのみ格納し、メディアサーバ101に格納しないよう指定し得る。このような設定により、メディアサーバ101にユーザデータが送信されたり格納されたりすることはない。メディアサーバ101へのユーザデータの送信、メディアサーバ101による当該データの一時的または永久的な格納、およびメディアサーバ101による当該データに対する動作の実行は、ユーザがメディアサーバ101による送信、格納、および動作の実行に同意している場合にのみ行われる。ユーザには、たとえば、メディアサーバ101の使用を有効または無効にできるような、いつでも設定を変更できるオプションが提供される。
【0018】
機械学習モデル(たとえば、ニューラルネットワークまたは他のタイプのモデル)は、1つまたは複数の動作に利用される場合、特定のユーザの許可を得て、ユーザデバイス115にローカルに格納され、利用される。サーバ側のモデルは、ユーザによって許可された場合にのみ使用される。モデルの訓練は、
図5を参照して後述するように、合成データセットを使用して実行される。さらに、訓練済みモデルは、ユーザデバイス115での使用のために提供され得る。そのような使用中、ユーザ125によって許可された場合、モデルのオンデバイス訓練が実行され得る。更新されたモデルパラメータは、たとえば、連合学習を可能にするために、ユーザ115によって許可される場合、メディアサーバ101に送信され得る。モデルパラメータは、ユーザデータを含まない。
【0019】
メディアアプリケーション103は、画像を受信する。たとえば、メディアアプリケーション103は、ユーザデバイス115の一部であるカメラから画像を受信し、またはメディアアプリケーション103は、ネットワーク105を介して画像を受信する。メディアアプリケーション103は、初期画像において一人または複数の傍観者を検出し、傍観者を含む傍観者ボックスを生成し、傍観者のすべての画素は傍観者ボックス内に存在する。メディアアプリケーション103はさらに、傍観者に付属している1つまたは複数のオブジェクトを包含する1つまたは複数のローカライザボックスを生成し、傍観者ボックスと1つまたは複数のローカライザボックスとを集約して、集約ボックスを形成する。
【0020】
メディアアプリケーション103は、集約ボックスに基づいて初期画像にセグメンタを適用して、初期画像から傍観者と1つまたは複数のオブジェクトとをセグメント化して傍観者マスクを生成し、傍観者マスクは、集約ボックス内の画素のサブセットを含む。メディアアプリケーション103は、傍観者マスク内のすべての画素を初期画像内の背景に一致する画素に置き換えるインペイント画像を生成する。
【0021】
いくつかの実施形態において、メディアアプリケーション103は、中央処理装置(central processing unit:CPU)、フィールドプログラマブルゲートアレイ(field-programmable gate array:FPGA)、特定用途向け集積回路(application-specific integrated circuit:ASIC)、機械学習プロセッサ/コプロセッサ、任意の他のタイプのプロセッサ、またはそれらの組み合わせを含むハードウェアを用いて実装され得る。いくつかの実施形態において、メディアアプリケーション103aは、ハードウェアとソフトウェアとの組み合わせを使用して実装され得る。
【0022】
例示的なコンピューティングデバイス200
図2は、本明細書で説明する1つまたは複数の特徴を実装するために使用され得る例示的なコンピューティングデバイス200を示すブロック図である。コンピューティングデバイス200は、任意の適切なコンピュータシステム、サーバ、または他の電子もしくはハードウェアデバイスであり得る。一例では、コンピューティングデバイス200は、メディアアプリケーション103aを実装するために使用されるメディアサーバ101である。別の例では、コンピューティングデバイス200は、ユーザデバイス115である。
【0023】
いくつかの実施形態において、コンピューティングデバイス200は、プロセッサ235、メモリ237、入出力(I/O)インターフェイス239、ディスプレイ241、カメラ243、およびストレージデバイス245を含み、これらすべてがバス218を介して結合されている。プロセッサ235は、信号線222を介してバス218に結合され得る。メモリ237は信号線224を介してバス218に結合され得る。I/Oインターフェイス239は、信号線226を介してバス218に結合され得る。ディスプレイ241は、信号線228を介してバス218に結合され得る。カメラ243は、信号線230を介してバス218に結合され得る。ストレージデバイス245は、信号線232を介してバス218に結合され得る。
【0024】
プロセッサ235は、プログラムコードを実行し、コンピューティングデバイス200の基本動作を制御する1つもしくは複数のプロセッサおよび/または処理回路であり得る。「プロセッサ」は、データ、信号もしくは他の情報を処理する任意の適切なハードウェアシステム、機構またはコンポーネントを含む。プロセッサは、1つまたは複数のコア(たとえば、シングルコア、デュアルコア、もしくはマルチコア構成)を有する汎用中央処理装置(CPU)を含むシステム、(たとえば、マルチプロセッサ構成の)複数の処理ユニット、グラフィック処理ユニット(graphics processing unit:GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、複合プログラマブル論理デバイス(complex programmable logic device:CPLD)、機能を実現するための専用回路、ニューラルネットワークモデルに基づく処理を実装するための専用プロセッサ、ニューラル回路、行列計算(たとえば、行列の乗算)に最適化したプロセッサ、または他のシステムを含み得る。いくつかの実施形態において、プロセッサ235は、ニューラルネットワーク処理を実装する1つまたは複数のコプロセッサを含み得る。いくつかの実施形態において、プロセッサ235は、データを処理して確率的出力を生成するプロセッサであってもよく、たとえば、プロセッサ235によって生成される出力は不正確であり得る、または期待される出力からの範囲内で正確であり得る。処理は、特定の地理的な場所に限定される必要はなく、時間的な制限を有する必要もない。たとえば、プロセッサは、リアルタイムで、オフラインで、バッチモードでなど、その機能を実行し得る。処理の一部は、異なる時間に異なる場所で、異なる(または同じ)処理システムによって実行され得る。コンピュータは、メモリと通信している任意のプロセッサであり得る。
【0025】
メモリ237は、典型的には、プロセッサ235によるアクセスのためにコンピューティングデバイス200において提供され、プロセッサまたはプロセッサのセットによる実行のための命令を格納するのに適した、ランダムアクセスメモリ(random access memory:RAM)、読取専用メモリ(read-only memory:ROM)、電気消去可能読取専用メモリ(Electrical Erasable Read-only Memory:EEPROM)、フラッシュメモリなどの任意の適切なプロセッサ読取可能記憶媒体であり得、プロセッサ235とは別に配置、および/またはそれと統合されている。メモリ237は、メディアアプリケーション103を含む、プロセッサ235によってコンピューティングデバイス200上で動作するソフトウェアを格納することができる。
【0026】
メモリ237は、オペレーティングシステム262、他のアプリケーション264、およびアプリケーションデータ266を含み得る。他のアプリケーション264は、たとえば、画像ライブラリアプリケーション、画像管理アプリケーション、画像ギャラリーアプリケーション、通信アプリケーション、ウェブホスティングエンジンまたはアプリケーション、メディア共有アプリケーション等を含み得る。本明細書に開示された1つまたは複数の方法は、いくつかの環境およびプラットフォームで、たとえば、任意のタイプのコンピューティングデバイス上で実行できるスタンドアロンコンピュータプログラムとして、ウェブページを有するウェブアプリケーションとして、モバイルコンピューティングデバイス上で動作するモバイルアプリケーション(「アプリ」)としてなど、動作することができる。
【0027】
アプリケーションデータ266は、他のアプリケーション264またはコンピューティングデバイス200のハードウェアによって生成されたデータであり得る。たとえば、アプリケーションデータ266は、画像ライブラリアプリケーションによって使用される画像、および他のアプリケーション264(たとえば、ソーシャルネットワーキングアプリケーション)によって特定されるユーザアクション等を含み得る。
【0028】
I/Oインターフェイス239は、コンピューティングデバイス200を他のシステムおよびデバイスとインターフェイスすることを可能にする機能を提供し得る。インターフェイス付きデバイスは、コンピューティングデバイス200の一部として含まれ得るか、または別個であってコンピューティングデバイス200と通信し得る。たとえば、ネットワーク通信デバイス、ストレージデバイス(たとえば、メモリ237および/またはストレージデバイス245)、ならびに入出力デバイスは、I/Oインターフェイス239を介して通信できる。いくつかの実施形態において、I/Oインターフェイス239は、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイク、スキャナ、センサ等)および/または出力デバイス(表示デバイス、スピーカデバイス、プリンタ、モニタ等)などのインターフェイスデバイスに接続することができる。
【0029】
I/Oインターフェイス239に接続することができるインターフェイス付きデバイスのいくつかの例は、コンテンツ、たとえば、画像、動画、および/または本明細書で説明するような出力アプリケーションのユーザインターフェイスを表示し、ユーザからタッチ(またはジェスチャ)入力を受信するために使用することができるディスプレイ241を含み得る。たとえば、ディスプレイ241は、ビューファインダ上のグラフィカルガイドを含むユーザインターフェイスを表示するために利用され得る。ディスプレイ241は、液晶ディスプレイ(liquid crystal display:LCD)、発光ダイオード(light emitting diode:LED)、またはプラズマ表示画面、陰極線管(cathode ray tube:CRT)、テレビ、モニタ、タッチスクリーン、3次元表示画面、または他の視覚表示デバイスなどの任意の適切な表示デバイスを含み得る。たとえば、ディスプレイ241は、モバイルデバイスに設けられたフラットディスプレイ画面、眼鏡フォームファクタもしくはヘッドセットデバイスに埋め込まれた複数のディスプレイ画面、またはコンピュータデバイスのモニタ画面であり得る。
【0030】
カメラ243は、画像および/または動画をキャプチャすることができる任意のタイプの画像キャプチャデバイスであり得る。いくつかの実施形態において、カメラ243は、I/Oインターフェイス239がメディアアプリケーション103に送信する画像または動画をキャプチャする。
【0031】
ストレージデバイス245は、メディアアプリケーション103に関連するデータを格納する。たとえば、ストレージデバイス245は、ラベル付き画像、機械学習モデル、機械学習モデルからの出力などを含む訓練データセットを格納し得る。
【0032】
図2は、メモリ237に格納された、境界ボックスモジュール202、セグメンタ204、機械学習モジュール206、インペインタモジュール208、およびユーザインターフェイスモジュール210を含む、例示的なメディアアプリケーション103を示す。
【0033】
境界ボックスモジュール202は、境界ボックスを生成する。いくつかの実施形態において、境界ボックスモジュール202は、境界ボックスを生成するためにプロセッサ235によって実行可能な命令のセットを含む。いくつかの実施形態において、境界ボックスモジュール202は、コンピューティングデバイス200のメモリ237に格納され、プロセッサ235によってアクセスおよび実行可能であり得る。
【0034】
いくつかの実施形態において、境界ボックスモジュール202は、初期画像を受信する。初期画像は、コンピューティングデバイス200のカメラ243から、またはI/Oインターフェイス239を介してメディアサーバ101から受信され得る。初期画像は、人などの被写体を含む。境界ボックスモジュール202は、初期画像において傍観者を検出する。傍観者は、初期画像の被写体ではない人であり、たとえば、歩いている人、走っている人、自転車に乗っている人、被写体の後ろに立っている人、または他の態様では初期画像内にいる人である。異なる例では、傍観者は、前景に(たとえば、カメラの前を横切る人)、被写体と同じ深さで(たとえば、被写体の側に立つ人)、または背景の中にいることがある。いくつかの例では、初期画像に複数の傍観者が存在する場合がある。傍観者は、任意のポーズの人、たとえば、立っている、座っている、しゃがんでいる、横になっている、ジャンプしている人であり得る。傍観者は、カメラの方を向いていてもよいし、カメラに対して斜めになっていてもよいし、カメラから顔をそらしていてもよい。たとえば、
図3Aは、被写体と傍観者との例示的な初期画像300を示す。被写体は歩いている女性であり、傍観者はスクーターに乗った男性である。
【0035】
境界ボックスモジュール202は、傍観者を含む傍観者ボックスを生成する。いくつかの実施形態において、傍観者ボックスは、傍観者の画素を包含する矩形状の境界ボックスである。境界ボックスモジュール202は、オブジェクト認識を実行し、オブジェクトを人の前のオブジェクトと比較し、人でないオブジェクトを破棄することによって、傍観者を検出し得る。いくつかの実施形態において、境界ボックスモジュール202は、ニューラルネットワーク、より具体的には畳み込みニューラルネットワークなどの機械学習アルゴリズムを使用して、傍観者を特定し、傍観者ボックスを生成する。傍観者ボックスは、境界ボックスのx座標およびy座標と関連付けられる。
【0036】
初期画像内の傍観者は、オブジェクトに付属している。たとえば、傍観者は、自転車に乗っている、バッグの横に立っている、またはバッグを持っている、傘を持っている、スクーターに乗っている、などの場合がある。境界ボックスモジュール202は、初期画像内のオブジェクトの境界ボックスを生成する。オブジェクトは、財布、ベビーカー、スクーターなどの人でないもの、ならびに、人の顔および人のズボンなどの人および/または人の一部分を含み得る。また、オブジェクトは、ペット、固定オブジェクト(たとえば、街灯、ゴミ箱など)、または他のタイプのオブジェクトを含み得る。境界ボックスが、位置(たとえば、境界ボックスのx座標およびy座標、境界ボックスの中心のx座標およびy座標、境界ボックスのエッジまでの距離を示すyの変化およびxの変化など)とオブジェクトの種類の注釈と関連付けられている場合、その境界ボックスはローカライザボックスと呼ばれる場合がある。
【0037】
境界ボックスモジュール202は、初期画像において、傍観者と傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスを生成する。たとえば、
図3Bは、スクーターに乗った男性の周りの破線ボックスによって示されるような傍観者ボックスと、ローカライザボックスとを有する例示的な初期画像310を示す。さまざまなローカライザボックスは、傍観者が身につけているメッセンジャーバッグ、傍観者のズボンおよび被写体312のズボンなどの衣料品などのオブジェクト、ならびに初期画像の傍観者の顔および被写体314の顔を包含する。
【0038】
境界ボックスモジュール202は、
図3Bのローカライザボックス312および314であった、初期画像の被写体に関連付けられたローカライザボックスを除去する。
図3Cは、初期画像の被写体に関連付けられたローカライザボックスが除去された例示的な初期画像320を示す。
【0039】
境界ボックスモジュール202は、傍観者ボックスとローカライザボックスとを集約して、集約ボックスを形成する。境界ボックスモジュール202は、集約ボックスが傍観者とオブジェクトとを包含するのに十分な大きさであるかどうかを判定し得る。いくつかの実施形態において、境界ボックスモジュール202は、集約ボックスの面積を、ローカライザボックスの各々の面積と比較する。たとえば、
図3Cを参照すると、境界ボックスモジュール202は、傍観者の周りの破線ボックスの面積を、傍観者、メッセンジャーバッグ、およびスクーターを包含する実線ボックス322と比較し、破線ボックスの面積を、スクーターを包含する実線ボックス323と比較し、破線ボックスの面積を、メッセンジャーバッグを包含する実線ボックス324と比較する。
【0040】
境界ボックスモジュール202は、集約ボックスとローカライザボックスの各々との重なり面積を、集約ボックスとローカライザボックスの各々との和集合の面積で除算した比であるIoU(Intersection over Union)比を計算する。ローカライザボックスの各々について、IoU比が閾値を超える場合、または集約ボックスとローカライザボックスの各々との重なり面積が占有閾値を超える場合、境界ボックスモジュール202は、閾値または占有閾値を満たすまで集約ボックスのサイズを増加させる。
【0041】
いくつかの実施形態において、集約ボックスのサイズが最終決定されると、境界ボックスモジュール202は、集約ボックスをパディングする。たとえば、境界ボックスモジュール202は、集約ボックスが包括的であることを保証するために、集約ボックスの外側の所定量の画素(たとえば、10画素)で集約ボックスをパディングする。いくつかの実現例において、パディングは、集約ボックスの4つの側面すべてで等しくてもよい。いくつかの実現例において、異なる側で異なる量のパディングが使用されてもよい(たとえば、左側で0画素、上および下で5画素、右側で10画素など)。
図3Dは、集約ボックス332と傍観者ボックスとを有する例示的な初期画像330を示す。集約ボックス332は、傍観者と、付属オブジェクトであるメッセンジャーバッグとスクーターとを包含するため、破線の傍観者ボックス(傍観者を包含する)よりも大きい。
【0042】
いくつかの実施形態において、メディアアプリケーション103は、傍観者マスクを生成するセグメンタ204を含む。いくつかの実施形態において、メディアアプリケーション103は、初期画像をセグメント化し、傍観者マスクを出力する訓練済み機械学習モデルを生成する機械学習モジュール206を含む。いくつかの実施形態において、セグメンタ204は、傍観者と初期画像の被写体との間に重なりがない場合に使用され、機械学習モジュール206は、傍観者と被写体との間に重なりがある場合に使用される。いくつかの実施形態において、セグメンタ204はまた、機械学習技術を採用し、または機械学習モジュール206と連携して動作する。
【0043】
セグメンタ204は、傍観者マスクを生成するために、初期画像の集約ボックス内の傍観者と1つまたは複数のオブジェクトとをセグメント化する。いくつかの実施形態において、セグメンタ204は、傍観者マスクを生成するためにプロセッサ235によって実行可能な命令のセットを含む。いくつかの実施形態において、セグメンタ204は、コンピューティングデバイス200のメモリ237に格納され、プロセッサ235によってアクセスおよび実行可能であり得る。
【0044】
傍観者と1つまたは複数のオブジェクトとを初期画像から除去するように包含する傍観者マスクが生成される。このプロセスは、傍観者に付属するオブジェクトを特定することが困難であるため、傍観者が1つまたは複数のオブジェクトに付属している場合には、より困難である。いくつかの実施形態において、傍観者マスクは、入力画像上で超画素を生成し、超画素のセントロイドを深度マップ値にマッチングさせて深度に基づくクラスタリング検出を行うことに基づいて生成される。より具体的には、マスクされた領域における深度値を使用して深度範囲を求め、深度範囲内に収まる超画素を特定し得る。しかしながら、傍観者に付属するオブジェクトの深さは地面と同じであるため、過剰に包括的な傍観者マスクとなる可能性がある。
【0045】
傍観者マスクを生成するための別の技術は、重みが距離変換マップによって表される傍観者マスクに深度値がどれだけ近かったかに基づいて、深度値を重み付けすることを含む。しかしながら、傍観者マスクは、地面を過剰に含み、オブジェクトの一部を過小に含む可能性がある。
【0046】
いくつかの実施形態において、セグメンタ204は、集約ボックスを含む初期画像を受信し、前景を背景からセグメント化して、傍観者に付属するオブジェクトを歩道などの背景から区別することによって、そのような技術的問題を解決する。セグメンタ204は、集約ボックス内の傍観者および傍観者に付属するオブジェクトの画素を使用して、傍観者マスクを生成する。傍観者マスクに使用される画素のサブセットは、集約ボックス内の画素よりも少ない。
【0047】
いくつかの実施形態において、傍観者マスクを生成するタスクは、被写体が傍観者の一部を遮蔽することによってさらに複雑になる。たとえば、
図3Aを参照すると、被写体の右腕は、傍観者に付属するスクーターと重なっている。セグメンタ204が被写体を考慮せずに傍観者マスクを生成する場合、傍観者マスクは被写体の一部を含むことができ、インペインタモジュールは被写体の腕の一部を除去し得る。いくつかの実施形態において、セグメンタ204は、初期画像の被写体が傍観者を遮蔽しているかどうかを判定し、初期画像の被写体が傍観者を遮蔽していることに応答して、被写体マスクを生成し、傍観者マスクを更新して、被写体マスク内の画素を除去する。
【0048】
機械学習モジュール206は、本明細書において機械学習モデルと称される訓練済みモデルを生成する。いくつかの実施形態において、機械学習モジュール206は、機械学習モデルをアプリケーションデータ266(たとえば、ユーザデバイス115によってキャプチャされた初期画像)などの入力データに適用して、傍観者マスクを出力するように構成されている。いくつかの実施形態において、機械学習モジュール206は、プロセッサ235によって実行されるソフトウェアコードを含み得る。いくつかの実施形態において、機械学習モジュール206は、コンピューティングデバイス200のメモリ237に格納され、プロセッサ235によってアクセスおよび実行可能であり得る。
【0049】
いくつかの実施形態において、機械学習モジュール206は、プロセッサ235が機械学習モデルを適用することを可能にする回路構成(たとえば、プログラマブルプロセッサ用、フィールドプログラマブルゲートアレイ(FPGA)用等)を指定し得る。いくつかの実施形態において、機械学習モジュール206は、ソフトウェア命令、ハードウェア命令、または組合せを含み得る。いくつかの実施形態において、機械学習モジュール206は、機械学習モジュール206を呼び出すために、たとえば、機械学習モデルをアプリケーションデータ266に適用してセグメンテーションマスクを出力するために、オペレーティングシステム262および/または他のアプリケーション264によって使用できるアプリケーションプログラミングインターフェイス(application programming interface:API)を提供してもよい。
【0050】
機械学習モジュール206は、訓練データを使用して、訓練済み機械学習モデルを生成する。たとえば、訓練データは、被写体、傍観者、傍観者に付属する1つまたは複数のオブジェクト、集約ボックスを有し、傍観者および1つまたは複数のオブジェクトがセグメント化され傍観者マスクに関連付けられた画像を含み得る。いくつかの実現例において、集約ボックスは、訓練データ内の画像ごとに手動で生成されてもよい。
【0051】
訓練データは、任意のソース、たとえば、訓練用に特別にマークされたデータリポジトリ、機械学習用の訓練データとして使用する許可が与えられたデータ等から取得され得る。いくつかの実施形態において、訓練は、訓練データをユーザデバイス115に直接提供するメディアサーバ101上で発生してもよく、訓練は、ユーザデバイス115上でローカルに発生してもよく、または両方の組み合わせであり得る。
【0052】
いくつかの実施形態において、訓練データは、訓練されるコンテキストにおけるアクティビティに基づかないデータ、たとえば、シミュレートされたまたはコンピュータで生成された画像/動画から生成されたデータなど、訓練目的で生成された合成データを含み得る。訓練データは、傍観者を部分的に遮蔽する被写体の合成画像を含み得る。いくつかの実施形態において、合成画像は、2次元オブジェクトまたは3次元オブジェクトを背景画像に重ねることによって生成される。3次元オブジェクトは、3次元オブジェクトを2次元オブジェクトに変換するために、特定のビューからレンダリングされ得る。いくつかの実施形態において、合成画像は、複合効果または遮蔽効果をエミュレートするために、背景上に複数の人とオブジェクトとを重ねることによって生成される。合成画像内の人とオブジェクトとを区別するように生の機械学習モデルを訓練するために、人マスクおよびオブジェクトマスク等の異なるマスクが合成画像に追加され得る。
【0053】
いくつかの実施形態において、機械学習モジュール206は、別のアプリケーションから取得され、編集されていない/転送されている重みを使用する。たとえば、これらの実施形態では、訓練済みモデルは、たとえば、異なるデバイス上で生成され、メディアアプリケーション103の一部として提供されてもよい。さまざまな実施形態において、訓練済みモデルは、(たとえば、ニューラルネットワークノードの数およびタイプ、ノード間の接続性、および複数の層へのノードの編成を定義する)モデル構造または形式、ならびに関連する重みを含むデータファイルとして提供されてもよい。機械学習モジュール206は、訓練済みモデルのデータファイルを読み、訓練済みモデルで指定されたモデル構造または形式に基づいて、ノード接続性、層、および重みを有するニューラルネットワークを実装し得る。
【0054】
訓練済み機械学習モデルは、1つもしくは複数のモデル形式または構造を含み得る。たとえば、モデル形式または構造は、任意のタイプのニューラルネットワーク、たとえば、線形ネットワーク、複数の層(たとえば、入力層と出力層との間の「隠れ層」であって、各層は線形ネットワークである)を実装する深層学習ニューラルネットワーク、畳み込みニューラルネットワーク(たとえば、入力データを複数の部分もしくはタイルに分割またはセグメント化し、1つまたは複数のニューラルネットワーク層を使用して各タイルを個別に処理し、各タイルの処理結果を集約するネットワーク)、シーケンスツーシーケンスニューラルネットワーク(たとえば、文中の単語、動画内のフレームなどの連続データを入力として受信し、結果シーケンスを出力として生成するネットワーク)などを含み得る。
【0055】
モデルの形式または構造は、さまざまなノード間の接続性、およびノードの層への編成を指定し得る。たとえば、第1の層(たとえば、入力層)のノードは、入力データまたはアプリケーションデータとしてデータを受信し得る。そのようなデータは、たとえば、訓練済みモデルが、たとえば、初期画像の分析に使用される場合、ノードごとに1つまたは複数の画素を含み得る。後続の中間層は、モデル形式または構造で指定された接続性に従って、入力として、前の層のノードの出力を受信し得る。これらの層は、隠れ層と呼ばれることもある。たとえば、最初の層は、前景と背景との間のセグメンテーションを出力し得る。最終層(たとえば、出力層)は、機械学習モデルの出力を生成する。たとえば、出力層は、初期画像の前景および背景へのセグメンテーションを受信し、画素が傍観者マスクの一部であるか、被写体マスクの一部であるか、またはそのどちらでもないかを出力し得る。いくつかの実現例において、モデル形式または構造は、各層内のノードの数および/またはタイプも指定する。
【0056】
異なる実現例において、訓練済みモデルは、1つまたは複数のモデルを含み得る。モデルの1つまたは複数は、モデル構造または形式ごとに層に配置された複数のノードを含み得る。いくつかの実現例において、ノードは、たとえば、1単位の入力を処理して1単位の出力を生成するように構成された、メモリがない計算ノードであり得る。ノードによって実行される計算は、たとえば、複数のノード入力の各々に重みを乗算すること、加重和を取得すること、および加重和をバイアスまたはインターセプト値で調整してノード出力を生成することとを含み得る。いくつかの実現例において、ノードによって実行される計算は、調整された重み付き和にステップ/活性化関数を適用することも含み得る。いくつかの実現例において、ステップ/活性化関数は、非線形関数であり得る。さまざまな実現例において、そのような計算は、行列の乗算のような演算を含んでもよい。いくつかの実現例において、複数のノードによる計算は、たとえば、マルチコアプロセッサの複数のプロセッサコアを使用して、グラフィック処理ユニット(graphics processing unit:GPU)の個々の処理ユニットを使用して、または特殊用途の神経回路を使用して、並行して実行されてもよい。いくつかの実現例において、ノードはメモリを含んでもよく、たとえば、後続の入力を処理する際に、1つまたは複数の以前の入力を格納し使用してもよい。たとえば、メモリを有するノードは、長短期メモリ(long short-term memory:LSTM)ノードを含み得る。LSTMノードは、メモリを使用して、ノードが有限状態機械(finite state machine:FSM)のように動作することを可能にする「状態」を維持し得る。
【0057】
いくつかの実現例において、訓練済みモデルは、個々のノードに対する埋め込みまたは重みを含み得る。たとえば、モデルは、モデル形式または構造によって指定されるように層に編成された複数のノードとして開始され得る。初期化時に、それぞれの重みが、モデル形式に従って接続されるノード、たとえば、ニューラルネットワークの連続する層におけるノードの各対の間の接続に適用され得る。たとえば、それぞれの重みは、ランダムに割り当てられ得るか、またはデフォルト値に初期化され得る。その後、モデルは、たとえば訓練データを使用して、結果を生成するために訓練され得る。
【0058】
訓練は、教師あり学習技術を適用することを含み得る。教師あり学習では、訓練データは、複数の入力(たとえば、画像、集約ボックス、人物マスクなど)と、入力ごとの対応するグラウンドトゥルース出力(たとえば、画像ごとに傍観者および付属オブジェクトを正しく特定するグラウンドトゥルース傍観者マスク)とを含み得る。モデルの出力とグラウンドトゥルース出力との比較に基づいて、重みの値は、たとえば、モデルが画像に対してグラウンドトゥルース出力を生成する確率を高めるように、自動的に調整される。
【0059】
さまざまな実現例において、訓練済みモデルは、モデル構造に対応する重みのセット、または埋め込みを含む。いくつかの実現例において、訓練済みモデルは、固定された、たとえば、重みを提供するサーバからダウンロードされた重みのセットを含み得る。さまざまな実現例において、訓練済みモデルは、モデル構造に対応する重みのセット、または埋め込みを含む。データが省略される実現例において、機械学習モジュール206は、たとえば、機械学習モジュール206の開発者、第三者などによる、事前の訓練に基づく訓練済みモデルを生成してもよい。いくつかの実現例において、訓練済みモデルは、固定された、たとえば、重みを提供するサーバからダウンロードされた重みのセットを含んでもよい。
【0060】
いくつかの実施形態において、機械学習モジュール206は、被写体、1つまたは複数のオブジェクトに関連付けられた傍観者、および傍観者および1つまたは複数のオブジェクトを囲む集約ボックスを有する初期画像を受信する。機械学習モジュール206は、初期画像を、訓練済み機械学習モデルへの入力として提供する。いくつかの実施形態において、訓練済み機械学習モデルは、集約ボックス内の画素のサブセットを含む傍観者マスクを出力する。
図3Eは、傍観者と付属オブジェクトとを包含する傍観者マスク(黒実線で図示)を有する例示的な初期画像340を示す。
【0061】
いくつかの実施形態において、機械学習モデルは、訓練済み機械学習モデルによって出力された各傍観者マスクの信頼値を出力する。信頼値は、パーセント、0から1までの数などで表され得る。たとえば、機械学習モデルは、傍観者マスクが傍観者および付属オブジェクトを正しく組み込み、被写体からの画素を含まないという信頼について、85%の信頼値を出力する。いくつかの実施形態において、信頼値が閾値を下回る場合、インペインタモジュール208は、傍観者のエッジの周りにぼかし効果または他の効果を適用して、あらゆるエラーを最小限に抑える。
【0062】
いくつかの実施形態において、機械学習モジュール206は、ユーザデバイス115上でユーザからフィードバックを受信する。フィードバックは、インペイント画像を投稿し、インペイント画像を除去し、インペイント画像を共有するユーザなどの形態をとり得る。機械学習モジュール206は、フィードバックに基づいて、機械学習モデルのパラメータを修正する。
【0063】
インペインタモジュール208は、傍観者マスク内のすべての画素を初期画像内の背景に一致する画素に置き換えるインペイント画像を生成する。いくつかの実施形態において、インペインタモジュール208は、インペイント画像を生成するためにプロセッサ235によって実行可能な命令のセットを含む。いくつかの実施形態において、インペインタモジュール208は、コンピューティングデバイス200のメモリ237に格納され、プロセッサ235によってアクセスおよび実行可能であり得る。
【0064】
いくつかの実施形態において、インペインタモジュール208は、機械学習モジュール206から傍観者マスクを有する初期画像を受信する。インペインタモジュール208は、傍観者マスク内のすべての画素を、初期画像内の背景に一致する画素に置き換える。背景に一致する画素は、被写体および/または傍観者のいない同じ場所の別の画像に基づいてもよい。または、インペインタモジュール208は、傍観者マスクを取り囲んでいる画素に基づいて、傍観者マスクから除去された画素を一致させてもよい。たとえば、傍観者が地面に立っていた場合、インペインタモジュール208は、画素を地面の画素と置き換える。
図3Fは、傍観者とオブジェクトとが除去された例示的なインペイント画像350を示す。機械学習ベースのインペインタ技術を含む、他のインペインティング技術が可能である。
【0065】
ユーザインターフェイスモジュール210は、ユーザインターフェイスを生成する。いくつかの実施形態において、ユーザインターフェイスモジュール210は、ユーザインターフェイスを生成するためにプロセッサ235によって実行可能な命令のセットを含む。いくつかの実施形態において、ユーザインターフェイスモジュール210は、コンピューティングデバイス200のメモリ237に格納され、プロセッサ235によってアクセスおよび実行可能であり得る。
【0066】
ユーザインターフェイスモジュール210は、インペイント画像を含むユーザインターフェイスを生成する。いくつかの実施形態において、ユーザインターフェイスは、インペイント画像の編集、インペイント画像の共有、フォトアルバムへのインペイント画像の追加などのオプションを含む。
【0067】
例示的なフローチャート
図4は、本明細書で説明するいくつかの実施形態に係る、傍観者および付属オブジェクトが除去されたインペイント画像を生成するための例示的なフローチャート400を示す。フローチャート400に示される方法は、
図2のコンピューティングデバイス200によって実行され得る。いくつかの実施形態において、フローチャート400は、ユーザデバイス115、メディアサーバ101によって、または一部がユーザデバイス115で、一部がメディアサーバ101で実行される。
【0068】
図4の方法400は、ブロック402で開始し得る。ブロック402では、初期画像内の傍観者が検出される。ブロック402の後に、ブロック404が続き得る。
【0069】
ブロック404では、傍観者のすべての画素は傍観者ボックス内に存在する、傍観者を含む傍観者ボックスが生成される。ブロック404の後に、ブロック406が続き得る。
【0070】
ブロック406では、傍観者と傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスが生成される。ブロック406の後に、ブロック408が続き得る。
【0071】
ブロック408において、傍観者ボックスとローカライザボックスとは集約されて、集約ボックスを形成する。いくつかの実施形態において、集約ボックスは、まず傍観者ボックスと同じであると定義され、次に、IoU計算の適用に基づいて特定のローカライザボックスが追加される。ブロック408の後に、ブロック410が続き得る。
【0072】
ブロック410では、セグメンタが、集約ボックスに基づいて初期画像に適用されて、初期画像から傍観者と1つまたは複数のオブジェクトとをセグメント化して傍観者マスクを生成し、傍観者マスクは、集約ボックス内の画素のサブセットを含む。ブロック410の後に、ブロック412が続き得る。
【0073】
ブロック412では、傍観者マスク内のすべての画素を初期画像内の背景に一致する画素に置き換えるインペイント画像が生成される。
【0074】
図5は、本明細書で説明するいくつかの実施形態に係る、オブジェクトを有する傍観者を除去するための例示的なフローチャート500である。フローチャート500に示される方法は、
図2のコンピューティングデバイス200によって実行され得る。いくつかの実施形態において、フローチャート500は、ユーザデバイス115、メディアサーバ101によって、または一部がユーザデバイス115で、一部がメディアサーバ101で実行される。
【0075】
図5の方法500は、ブロック502で開始し得る。フローチャート500に示す方法は、
図2のコンピューティングデバイス200によって実行されてもよい。いくつかの実施形態において、フローチャート500は、ユーザデバイス115、メディアサーバ101によって、または一部がユーザデバイス115上で、一部がメディアサーバ101上で実行される。
【0076】
ブロック502において、各々がオブジェクトに付属する傍観者と被写体とを含む訓練画像を含む合成訓練データセットが取得される。いくつかの実現例において、訓練画像の少なくともサブセットにおける被写体は、傍観者および/または付属オブジェクトを遮蔽する。教師あり学習の場合、訓練データセットはまた、訓練画像ごとにグラウントゥルース傍観者マスクを含む。ブロック502の後に、ブロック504が続き得る。
【0077】
ブロック504において、訓練済み機械学習モデルは、合成訓練データセットを入力として使用して生の機械学習モデルを訓練することによって取得され、訓練は教師あり学習を使用して実行される。教師あり学習の下で、モデルは、訓練画像用の予測傍観者ボックスを出力する。予測傍観者ボックスは、訓練画像に対応するグラウンドトゥルース傍観者マスクと比較される。比較に基づき、訓練中のモデル(生モデル)の1つまたは複数のパラメータを調整するためにフィードバックが提供される。いくつかの実現例において、パラメータを調整するために勾配降下が使用され得る。この処理は、予測傍観者ボックスとグラウンドトゥルース傍観者ボックスとの誤差が減少するように、十分大きな訓練データセットで実行される。訓練は、誤差が閾値を下回る場合、または訓練データセット全体が利用されている場合、完了し得る。訓練は、追加の訓練画像で何度も繰り返すことが可能である。さらに、たとえば、インペイント画像が満足できるものではない(たとえば、傍観者および/または付属オブジェクトを完全に除去しない)とユーザフィードバックが示す場合、再訓練は、インペイント出力画像に関するユーザフィードバックに基づいて開始されてもよい。訓練済みモデルは、メディアアプリケーション103の一部としてユーザデバイス115にローカルで使用できるようにされ、および/または、メディアサーバ101で使用するために格納されてもよい。ブロック504の後に、ブロック506が続き得る。
【0078】
ブロック506では、傍観者と傍観者に付属する1つまたは複数のオブジェクトとを囲む集約ボックスを有する初期画像が、訓練済み機械学習モデルへの入力として受信される。ブロック506の後に、ブロック508が続き得る。
【0079】
ブロック508では、集約ボックス内の画素のサブセットを含む傍観者マスクが、訓練済み機械学習モデルを用いて出力される。
【0080】
図6は、例示的なニューラルネットワークの動作を示す。ニューラルネットワーク機械学習モデル600は、第1の層604とセグメンテーション出力層608とを含む。2つの層が示されているが、ニューラルネットワーク機械学習モデル600は、より多くの層またはより少ない層を含み得る。
【0081】
初期画像602が、入力層604への入力として提供される。たとえば、初期画像602は、被写体と、1つまたは複数のオブジェクトに付属する傍観者とを含む。第1の層604は、画素ごとに、その画素を、初期画像602の前景の一部または背景606の一部のいずれかとして分類することによって、初期画像602を前景と背景とにセグメント化する。
【0082】
初期画像602の前景および背景へのセグメンテーション(606)は、セグメンテーション出力層608への入力として提供される。セグメンテーション出力層608は、画素が傍観者マスクの一部であるか、被写体マスクの一部であるか、またはそのどちらでもないかを出力する(610)。
【0083】
上記の説明に加えて、本明細書に記載のシステム、プログラム、または機能がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクション、またはアクティビティ、職業、ユーザの好み、またはユーザの現在位置に関する情報)の収集を可能にし得る場合、およびユーザにサーバからコンテンツまたは通信が送信される場合の両方について、ユーザが選択を行うことができるコントロールをユーザに提供し得る。さらに、特定のデータは、格納または使用される前に、個人を特定できる情報が削除されるように1つまたは複数の方法で処理され得る。たとえば、ユーザの身元は、個人を特定できる情報を特定できないように処理されるか、ユーザの地理的位置は、位置情報が取得された場合(都市、郵便番号、州レベルなどについて)一般化されて、ユーザの特定の位置を判定できないようにすることが可能である。このように、ユーザは、ユーザについてどのような情報が収集され、その情報がどのように使用され、どのような情報がユーザに提供されるかをコントロールすることが可能である。
【0084】
上記の説明では、本明細書の完全な理解を提供するために、説明の目的で多数の具体的な詳細が記載されている。しかしながら、本開示はこれらの具体的な詳細がなくても実施され得ることが、当業者には明白であろう。いくつかの例では、説明の不明瞭化を避けるために、構造およびデバイスがブロック図の形式で示されている。たとえば、実施形態は、主にユーザインターフェイスおよび特定のハードウェアを参照して上で記載され得る。しかしながら、実施形態は、データおよびコマンドを受信し得る任意のタイプのコンピューティングデバイス、ならびに、サービスを提供する任意の周辺デバイスに適用され得る。
【0085】
本明細書における「いくつかの実施形態」または「いくつかの場合」への言及は、当該実施形態または例に関連して記載される特定の特徴、構造または特性が、記載の少なくとも1つの実現例に含まれ得ることを意味する。本明細書のさまざまな場所に表れる「いくつかの実施形態において」という表現は、必ずしもすべて同じ実施形態について言及しているわけではない。
【0086】
上述した詳細な説明の一部は、コンピュータメモリ内のデータビットに対する動作のアルゴリズムおよび記号表現に関して提示されている。これらのアルゴリズム的な記載および表現は、データ処理技術における当業者によって使用される手段であって、それらの研究の内容を他の当業者に最も効果的に伝える手段である。アルゴリズムは、ここでは一般的に、所望の結果に繋がるステップの自己一貫したシーケンスであると考えられる。ステップは、物理的な量の物理的な動作を必要とするものである。通常、必ずしも必要ではないが、これらの量は、格納、転送、組み合わせ、比較、および別の態様では動作が可能な電気的データまたは磁気的データの形態をとる。時には、主に一般的な使用の理由で、これらのデータをビット、値、要素、記号、文字、項または数などと称することが簡便であることが証明されている。
【0087】
しかしながら、これらの用語および同様の用語のすべては、適切な物理的な量に関連付けられるべきであり、これらの量に適用される便利なラベルにすぎないことを留意するべきである。以下の議論から明白なように別の態様で具体的に言及されない限り、当該記載全体にわたって、「処理」、「演算」、「計算」、「判定」または「表示」などを含む用語を利用する議論は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)な量として表されるデータを操作し、コンピュータシステムメモリ、レジスタ、または、他のそのような情報記憶デバイス、送信デバイス、もしくは表示デバイス内の物理的な量として同様に表される他のデータに変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよびプロセスを指すことが理解される。
【0088】
本明細書の実施形態は、上述した方法の1つまたは複数のステップを実行するためのプロセッサにも関連し得る。プロセッサは、コンピュータに格納されたコンピュータプログラムによって選択的に起動または再構成される特殊目的プロセッサであり得る。このようなコンピュータプログラムは、光ディスク、ROM、CD-ROM、磁気ディスク、RAM、EPROM、EEPROM、磁気もしくは光カード、不揮発性メモリを有するUSBキーを含むフラッシュメモリ、または電子命令の格納に適した任意のタイプの媒体を含み、各々がコンピュータシステムバスに結合されているが、これらに限定されない非一時的なコンピュータ読取可能記憶媒体に格納されてもよい。
【0089】
本明細書は、いくつかの完全にハードウェアの実施形態、いくつかの完全にソフトウェアの実施形態、またはハードウェア要素およびソフトウェア要素の両方を含むいくつかの実施形態の形態をとることができる。いくつかの実施形態において、仕様はソフトウェアで実装され、これにはファームウェア、常駐ソフトウェア、マイクロコードなどが含まれるが、これらに限定されるものではない。
【0090】
さらに、本明細書は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して使用するプログラムコードを提供するコンピュータ使用可能媒体またはコンピュータ読取可能媒体からアクセスできるコンピュータプログラム製品の形態をとることができる。本明細書の目的で、コンピュータ使用可能媒体またはコンピュータ読取可能媒体は、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用するプログラムを包含、格納、通信、伝播、もしくは輸送できる任意の装置であり得る。
【0091】
プログラムコードを格納または実行するのに好適なデータ処理システムは、システムバスを介してメモリ要素に直接的または間接的に結合される少なくとも1つのプロセッサを含む。メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを抽出しなければならない回数を低減するために少なくとも何らかのプログラムコードの一時的な格納を提供するキャッシュメモリとを含み得る。
【手続補正書】
【提出日】2023-05-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータによって実現される方法であって、
初期画像において傍観者を検出することと、
前記傍観者を含む傍観者ボックスを生成することとを備え、前記傍観者のすべての画素は前記傍観者ボックス内に存在し、前記方法はさらに、
前記傍観者と前記傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスを生成することと、
前記傍観者ボックスと前記ローカライザボックスの1つまたは複数とを集約して、集約ボックスを形成することと、
前記集約ボックスに基づいてセグメンタを前記初期画像に適用して、前記初期画像から前記傍観者と前記1つまたは複数のオブジェクトとをセグメント化して、傍観者マスクを生成することとを備え、前記傍観者マスクは、前記集約ボックス内の画素のサブセットを含み、前記方法はさらに、
インペイント画像を生成することを備え、前記傍観者マスク内のすべての画素は、前記インペイント画像において、前記初期画像内の背景に一致する画素に置き換えられる、方法。
【請求項2】
前記セグメンタを前記初期画像に適用する前に、
前記集約ボックスを、前記傍観者ボックスであると定義することと、
前記ローカライザボックスの各々について、ローカライザボックスに対する前記集約ボックスのIoU(intersection over union)比を計算することと、
前記IoU比が閾値を超えていることに応答して、または前記集約ボックスと前記ローカライザボックスとの重なり面積が占有閾値を超えていることに応答して、前記集約ボックスのサイズを増加させることとをさらに備える、請求項1に記載の方法。
【請求項3】
前記IoU比は、前記集約ボックスと前記ローカライザボックスとの前記重なり面積を、前記集約ボックスと前記ローカライザボックスとの和集合の面積で除算したものであり、前記方法はさらに、
前記集約ボックスをパディングすることを備える、請求項2に記載の方法。
【請求項4】
前記セグメンタを前記初期画像に適用することは、前景を背景からセグメント化して、前記傍観者に付属する前記1つまたは複数のオブジェクトを前記背景から区別することを含む、請求項1
~3のいずれか1項に記載の方法。
【請求項5】
前記初期画像の被写体が前記傍観者を遮蔽しているかどうかを判定することと、
前記初期画像の前記被写体が前記傍観者を遮蔽していると判定することに応答して、被写体マスクを生成し、前記被写体マスク内の画素を除去するために前記傍観者マスクを更新することとをさらに備える、請求項1
~3のいずれか1項に記載の方法。
【請求項6】
前記セグメンタは、訓練済み機械学習モデルである、請求項1
~3のいずれか1項に記載の方法。
【請求項7】
前記ローカライザボックスは、前記初期画像内の被写体、前記傍観者、またはオブジェクトのうちの1つまたは複数を含み、前記方法はさらに、
前記被写体に関連付けられた対応するローカライザボックスを除去することを備える、請求項1
~3のいずれか1項に記載の方法。
【請求項8】
コンピュータによって実現される方法であって、
各々が背景画像にオブジェクトを重ねることを含む訓練画像を含むように生成される合成訓練データセットを取得することと、
訓練済み機械学習モデルを取得することとを備え、前記訓練済み機械学習モデルを取得することは、
前記合成訓練データセットを入力として生の機械学習モデルに提供することと、
訓練画像の予測傍観者ボックスを出力することと、
各予測傍観者ボックスを、訓練画像に対応するグラウンドトゥルース傍観者マスクと比較することと、
前記比較に基づいて、前記生の機械学習モデルの1つまたは複数のパラメータを調整することとによって行われ、
前記訓練済み機械学習モデルは、初期画像を受信し、か
つ集約ボックス内の画素のサブセットを含む傍観者マスクを出力するように訓練される、方法。
【請求項9】
前記訓練済み機械学習モデルは、複数の層を含み、かつ前記訓練済み機械学習モデルを用いて前記傍観者マスクを出力するニューラルネットワークであり、前記傍観者マスクは、
画素ごとに、前記画素を前景の一部または背景の一部のうちのいずれかとして分類することにより、画像を前記前景と前記背景とにセグメント化する第1の層と、
画素ごとに、前記画素が傍観者マスクの一部であるか、被写体マスクの一部であるか、またはそのどちらでもないかを出力する出力層とを含み、前記ニューラルネットワークにおいて前記第1の層は前記出力層に先行する、請求項8に記載の方法。
【請求項10】
前記訓練済み機械学習モデルへの入力として、傍観者と、前記傍観者に付属する1つまたは複数のオブジェクトとを包含する集約ボックスを有する前記初期画像を受信することと、
前記訓練済み機械学習モデルを用いて、前記集約ボックス内の画素のサブセットを含む傍観者マスクを出力することと、
インペイント画像を生成することとをさらに備え、前記傍観者マスク内のすべての画素は、前記インペイント画像において、前記初期画像内の背景に一致する画素に置き換えられる、請求項8
または9に記載の方法。
【請求項11】
前記訓練済み機械学習モデルへの入力として前記初期画像を受信する前に、
前記初期画像において前記傍観者を検出することと、
前記傍観者を含む傍観者ボックスを生成することとをさらに備え、前記傍観者のすべての画素は前記傍観者ボックス内に存在し、前記方法はさらに、
前記傍観者と前記傍観者に付属する前記1つまたは複数のオブジェクトとを包含するローカライザボックスを生成することと、
前記傍観者ボックスと前記ローカライザボックスのうちの1つまたは複数とを集約して、前記集約ボックスを形成することとを備える、請求項10に記載の方法。
【請求項12】
前記集約ボックスを、前記傍観者ボックスであると定義することと、
前記傍観者ボックスの各々について、
ローカライザボックスに対する前記集約ボックスのIoU(intersection over union)比を計算することと、
前記IoU比が閾値を超えていることに応答して、または前記集約ボックスと前記ローカライザボックスとの重なり面積が占有閾値を超えていることに応答して、前記集約ボックスのサイズを増加させることとをさらに備える、請求項11に記載の方法。
【請求項13】
前記IoU比は、前記集約ボックスと前記ローカライザボックスとの前記重なり面積を、前記集約ボックスと前記ローカライザボックスとの和集合の面積で除算したものであり、前記方法はさらに、
前記集約ボックスをパディングすることを備える、請求項12に記載の方法。
【請求項14】
前記傍観者マスクを出力することは、対応する信頼値を出力することと、前記対応する信頼値が信頼閾値を満たさないことに応答して、前記傍観者のエッジの周りにぼかしを追加することとを含む、請求項10に記載の方法。
【請求項15】
コンピューティングデバイスであって、
プロセッサと、
前記プロセッサに結合され、前記プロセッサによって実行されると前記プロセッサに動作を実行させる命令を格納したメモリとを備え、前記動作は、
初期画像において傍観者を検出することと、
前記傍観者を含む傍観者ボックスを生成することとを含み、前記傍観者のすべての画素は前記傍観者ボックス内に存在し、前記動作はさらに、
前記傍観者と前記傍観者に付属する1つまたは複数のオブジェクトとを包含するローカライザボックスを生成することと、
前記傍観者ボックスと前記ローカライザボックスの1つまたは複数とを集約して、集約ボックスを形成することと、
前記集約ボックスに基づいてセグメンタを前記初期画像に適用して、前記初期画像から前記傍観者と前記1つまたは複数のオブジェクトとをセグメント化して、傍観者マスクを生成することとを含み、前記傍観者マスクは、前記集約ボックス内の画素のサブセットを含み、前記動作はさらに、
インペイント画像を生成することを含み、前記傍観者マスク内のすべての画素は、前記インペイント画像において、前記初期画像内の背景に一致する画素に置き換えられる、コンピューティングデバイス。
【請求項16】
前記動作はさらに、
前記セグメンタを前記初期画像に適用する前に、
前記集約ボックスを、前記傍観者ボックスであると定義することと、
前記ローカライザボックスの各々について、ローカライザボックスに対する前記集約ボックスのIoU(intersection over union)比を計算することと、
前記IoU比が閾値を超えていることに応答して、または前記集約ボックスと前記ローカライザボックスとの重なり面積が占有閾値を超えていることに応答して、前記集約ボックスのサイズを増加させることとを含む、請求項15に記載のコンピューティングデバイス。
【請求項17】
前記IoU比は、前記集約ボックスと前記ローカライザボックスとの前記重なり面積を、前記集約ボックスと前記ローカライザボックスとの和集合の面積で除算したものであり、前記動作はさらに、
前記集約ボックスをパディングすることを含む、請求項16に記載のコンピューティングデバイス。
【請求項18】
前記セグメンタを前記初期画像に適用することは、前景を背景からセグメント化して、前記傍観者に付属する前記1つまたは複数のオブジェクトを前記背景から区別することを含む、請求項15
~17のいずれか1項に記載のコンピューティングデバイス。
【請求項19】
前記動作はさらに、
前記初期画像の被写体が前記傍観者を遮蔽しているかどうかを判定することと、
前記初期画像の前記被写体が前記傍観者を遮蔽していると判定することに応答して、被写体マスクを生成し、前記被写体マスク内の画素を除去するために前記傍観者マスクを更新することとを含む、請求項15
~17のいずれか1項に記載のコンピューティングデバイス。
【請求項20】
前記セグメンタは、訓練済み機械学習モデルである、請求項15
~17のいずれか1項に記載のコンピューティングデバイス。
【国際調査報告】