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

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

▶ グーグル インコーポレイテッドの特許一覧

特表2024-518695ユーザ入力ベースのメディアアイテムにおける気を散らすものの除去
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-02
(54)【発明の名称】ユーザ入力ベースのメディアアイテムにおける気を散らすものの除去
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240424BHJP
   G06T 7/11 20170101ALI20240424BHJP
   G06T 5/60 20240101ALI20240424BHJP
   H04N 23/60 20230101ALI20240424BHJP
【FI】
G06T7/00 350B
G06T7/11
G06T5/60
H04N23/60 500
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023561358
(86)(22)【出願日】2022-10-18
(85)【翻訳文提出日】2023-10-05
(86)【国際出願番号】 US2022047035
(87)【国際公開番号】W WO2023069445
(87)【国際公開日】2023-04-27
(31)【優先権主張番号】63/257,111
(32)【優先日】2021-10-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】リバ,オーリー
(72)【発明者】
【氏名】サルマ,ナビン
(72)【発明者】
【氏名】ナーン,ヤエル・プリッチ
(72)【発明者】
【氏名】シッフハウアー,アレクサンダー
(72)【発明者】
【氏名】ツァイ,ロンチー
(72)【発明者】
【氏名】ジェイコブス,デイビッド
(72)【発明者】
【氏名】チェン,ホイジョン
(72)【発明者】
【氏名】リ,シヤン
(72)【発明者】
【氏名】フェルドマン,ブライアン
【テーマコード(参考)】
5B057
5C122
5L096
【Fターム(参考)】
5B057AA20
5B057BA02
5B057BA24
5B057CA12
5B057CA16
5B057CB12
5B057CB16
5B057CC03
5B057CE08
5B057CE09
5B057DA08
5B057DB02
5B057DC30
5B057DC36
5B057DC40
5C122DA03
5C122DA04
5C122EA44
5C122EA61
5C122FH10
5C122FH11
5C122FH21
5C122FK37
5C122FL02
5C122FL03
5C122FL05
5C122FL08
5C122HA13
5C122HA35
5C122HA46
5C122HA48
5C122HA88
5C122HB01
5C122HB05
5L096BA08
5L096CA02
5L096CA24
5L096DA01
5L096EA35
5L096EA37
5L096FA02
5L096FA54
5L096FA64
5L096FA66
5L096FA77
5L096GA51
5L096HA11
5L096JA11
5L096KA04
5L096KA15
5L096MA03
(57)【要約】
メディアアプリケーションは、メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を受信する。当該メディアアプリケーションは、ユーザ入力を境界ボックスに変換する。当該メディアアプリケーションは、当該境界ボックスに基づいて、当該メディアアイテムのクロップをセグメンテーション機械学習モデルに提供する。当該セグメンテーション機械学習モデルは、当該メディアアイテムのクロップ内の1つ以上のセグメント化されたオブジェクトのためのセグメンテーションマスクと、当該セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力する。
【特許請求の範囲】
【請求項1】
コンピュータで実行される方法であって、
メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を受信することと、
前記ユーザ入力を境界ボックスに変換することと、
前記境界ボックスに基づいて、前記メディアアイテムのクロップをセグメンテーション機械学習モデルに提供することと、
前記セグメンテーション機械学習モデルを用いて、前記メディアアイテムのクロップ内の1つ以上の細分化されたオブジェクトのためのセグメンテーションマスクと、前記セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力することとを含む、方法。
【請求項2】
前記境界ボックスは、座標軸に平行な境界ボックス、または、方向付けられた境界ボックスである、請求項1に記載の方法。
【請求項3】
前記ユーザ入力は、前記メディアアイテムを参照してなされた1つ以上のストロークを含む、請求項1に記載の方法。
【請求項4】
前記境界ボックスは、方向付けられた境界ボックスであり、前記方向付けられた境界ボックスの方向は、1つ以上のストロークのうちの少なくとも1つの方向と一致する、請求項3に記載の方法。
【請求項5】
前記メディアアイテムのクロップを提供する前に、前記セグメンテーション機械学習モデルは、複数のトレーニング画像およびグラウンドトルースセグメンテーションマスクを含む訓練データを使用してトレーニングされる、請求項1に記載の方法。
【請求項6】
閾値スコアを満たさない対応するセグメンテーションスコア、ピクセルの閾値数を下回る有効なマスクピクセルの数、閾値サイズを下回るセグメンテーションマスクサイズ、または、前記セグメンテーションマスクが前記ユーザ入力によって示される領域からの閾値距離よりも大きいこと、のうちの1つまたは複数に基づいて、セグメンテーションマスクが無効であると判定することと、
前記セグメンテーションマスクが無効であると判定することに応答して、前記ユーザ入力内の領域に基づいて異なるマスクを生成することとをさらに含む、請求項1に記載の方法。
【請求項7】
前記セグメンテーションマスクに一致するメディアアイテムの一部を修復して、出力メディアアイテムを取得することをさらに含み、前記1つ以上のオブジェクトは、前記出力メディアアイテムには存在しない、請求項1に記載の方法。
【請求項8】
前記修復は、修復機械学習モデルを使用して実行され、前記メディアアイテムおよび前記セグメンテーションマスクは、前記修復機械学習モデルへの入力として提供される、請求項7に記載の方法。
【請求項9】
出力されたメディアアイテムを含むユーザインターフェイスを提供することをさらに含む、請求項7に記載の方法。
【請求項10】
命令が記憶された非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに以下の動作を実行させ、前記以下の動作は、
メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を受信することと、
前記ユーザ入力を境界ボックスに変換することと、
前記境界ボックスに基づいて、前記メディアアイテムのクロップをセグメンテーション機械学習モデルに提供することと、
前記セグメンテーション機械学習モデルを用いて、前記メディアアイテムのクロップ内の1つ以上の細分化されたオブジェクトのためのセグメンテーションマスクと、前記セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力することとを含む、コンピュータ可読媒体。
【請求項11】
前記境界ボックスは、座標軸に平行な境界ボックス、または、方向付けられた境界ボックスである、請求項10に記載のコンピュータ可読媒体。
【請求項12】
前記ユーザ入力は、前記メディアアイテムを参照してなされた1つ以上のストロークを含む、請求項10に記載のコンピュータ可読媒体。
【請求項13】
前記境界ボックスは、方向付けられた境界ボックスであり、前記方向付けられた境界ボックスの方向は、1つ以上のストロークのうちの少なくとも1つの方向と一致する、請求項12に記載のコンピュータ可読媒体。
【請求項14】
前記セグメンテーション機械学習モデルは、前記提供する前に、複数のトレーニング画像およびグラウンドトルースセグメンテーションマスクを含む訓練データを使用してトレーニングされる、請求項10に記載のコンピュータ可読媒体。
【請求項15】
コンピューティングデバイスであって、
プロセッサと、
前記プロセッサに結合されて、命令を記憶したメモリとを備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに以下の動作を実行させ、前記以下の動作は、
メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を受信することと、
前記ユーザ入力を境界ボックスに変換することと、
前記境界ボックスに基づいて、前記メディアアイテムのクロップをセグメンテーション機械学習モデルに提供することと、
前記セグメンテーション機械学習モデルを用いて、前記メディアアイテムのクロップ内の1つ以上の細分化されたオブジェクトのためのセグメンテーションマスクと、前記セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力することを含む、コンピューティングデバイス。
【請求項16】
前記境界ボックスは、座標軸に平行な境界ボックス、または、方向付けられた境界ボックスである、請求項15に記載のコンピューティングデバイス。
【請求項17】
前記ユーザ入力は、前記メディアアイテムを参照してなされた1つ以上のストロークを含む、請求項15に記載のコンピューティングデバイス。
【請求項18】
前記境界ボックスは、方向付けられた境界ボックスであり、前記方向付けられた境界ボックスの方向は、1つ以上のストロークのうちの少なくとも1つの方向と一致する、請求項17に記載のコンピューティングデバイス。
【請求項19】
前記メディアアイテムのクロップを提供する前に、前記セグメンテーション機械学習モデルは、複数のトレーニング画像およびグラウンドトルースセグメンテーションマスクを含む訓練データを使用してトレーニングされる、請求項15に記載のコンピューティングデバイス。
【請求項20】
閾値スコアを満たさない対応するセグメンテーションスコア、ピクセルの閾値数を下回る有効なマスクピクセルの数、閾値サイズを下回るセグメンテーションマスクサイズ、または、前記セグメンテーションマスクが前記ユーザ入力によって示される領域からの閾値距離よりも大きいこと、のうちの1つまたは複数に基づいて、セグメンテーションマスクが無効であると判定することと、
前記セグメンテーションマスクが無効であると判定することに応答して、前記ユーザ入力内の領域に基づいて異なるマスクを生成することとをさらに含む、請求項15に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の参照
本出願は、米国特許仮出願63/257,111(2021年10月18日、メディアアイテム内の気を散らすものを除去するためのユーザーアノテーションの翻訳(Translating User Annotation for Distraction Removal in Media Items)に対する優先権を主張し、それは、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【0002】
背景
画像(静的画像、選択的動きを有する画像など)及びビデオのような視覚メディアアイテムのユーザに知覚される品質は、当該メディアアイテムの焦点から気を散らすか、又は当該メディアアイテムの視覚的魅力に影響を及ぼす特定のオブジェクトを除去することによって改善され得る。例えば、ユーザは、風車、背景の人々、フェンス、又はユーザがキャプチャすることを意図する主要被写体の一部ではない他の物体を含む写真又はビデオをキャプチャすることがある。たとえば、写真は、前景の個人、木、建物、風景などをキャプチャすることを意図され得るが、1つ以上の気を散らすオブジェクトが、前景に存在することがあり得(例えば、フェンス、信号機、又は関心物体よりもカメラに近い他の物体)、背景にあり得(例えば、背景内の人、関心物体の上方の電力線、または関心物体よりもカメラから遠く離れた他の物体)、または、同じ平面にあり得る(例えば、カメラに背中があるが、関心のある物体と同じカメラまでの距離にある人)。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ユーザは、注意をそらすオブジェクトを除去するために手動の画像またはビデオ編集技術を使用できる。しかしながら、このタスクは、煩わしく、不完全であり得る。さらに、気を散らすオブジェクトを自動的に除去することは、追加のオブジェクトまたはオブジェクトの一部も除去されるという誤った陽画(positive)をもたらすため、または、不完全なセグメンテーションが、除去されたオブジェクトの部分は依然として見えるという結果をもたらし得るため、困難である。
【0004】
本明細書に提供される背景技術の説明は、本開示の文脈を概して提示する目的のためにある。現在名前が挙げられている発明者の研究は、この背景技術のセクションに記載されている限りにおいて、出願時に従来技術として適格とされ得ない説明の態様と同様に、本開示に対する従来技術として明示的にも暗示的にも認められない。
【課題を解決するための手段】
【0005】
概要
コンピュータで実行される方法は、メディアアイテムから消去される1つ以上のオブジェクトを示すユーザ入力を受信することを含む。当該方法は、ユーザ入力を境界ボックスに変換することをさらに含む。当該方法は、境界ボックスに基づいてメディアアイテムのクロップをセグメンテーション機械学習モデルに提供するステップをさらに含む。当該方法は、セグメンテーション機械学習モデルを用いて、メディアアイテムのクロップ内の1つ以上の細分化されたオブジェクトのためのセグメンテーションマスクと、セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力することをさらに含む。
【0006】
いくつかの実施形態では、境界ボックスは、座標軸に平行な境界ボックスまたは方向付けられた境界ボックスである。ある実施形態では、当該ユーザ入力は、当該メディアアイテムを参照してなされた1つ以上のストロークを含む。いくつかの実施形態では、当該境界ボックスは方向付けられた境界ボックスであり、当該方向付けられた境界ボックスの方向は、1つ以上のストロークのうちの少なくとも1つの方向と一致する。いくつかの実施形態では、当該メディアアイテムのクロップを提供する前に、当該セグメンテーション機械学習モデルは、複数のトレーニング画像およびグラウンドトルースセグメンテーションマスクを含む訓練データを使用して、トレーニングされる。いくつかの実施形態では、当該方法は、閾値スコアを満たさない対応するセグメンテーションスコア、ピクセルの閾値数を下回る有効なマスクピクセルの数、閾値サイズを下回るセグメンテーションマスクサイズ、または、当該セグメンテーションマスクが当該ユーザ入力によって示される領域からの閾値距離よりも大きいこと、のうちの1つまたは複数に基づいて、当該セグメンテーションマスクが無効であると判定することと、当該セグメンテーションマスクが無効であると判定することに応答して、当該ユーザ入力内の領域に基づいて異なるマスクを生成することとをさらに含む。いくつかの実施形態では、当該方法は、当該セグメンテーションマスクに一致するメディアアイテムの一部を修復して出力メディアアイテムを取得することをさらに含み、1つ以上のオブジェクトは当該出力メディアアイテムにはない。いくつかの実施形態では、当該修復は、修復機械学習モデルを使用して実行され、当該メディアアイテムおよび当該セグメンテーションマスクは、当該修復機械学習モデルへの入力として提供される。いくつかの実施形態では、当該方法は、当該出力メディアアイテムを含むユーザインターフェイスを提供することをさらに含む。
【0007】
いくつかの実施形態において、命令が記憶された非一時的なコンピュータ可読媒体は、当該命令が1つ以上のコンピュータによって実行されると、当該1つ以上のコンピュータに以下の動作を実行させ、当該以下の動作は、メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を受信することと、当該ユーザ入力を境界ボックスに変換することと、当該境界ボックスに基づいて、当該メディアアイテムのクロップをセグメンテーション機械学習モデルに提供することと、当該セグメンテーション機械学習モデルを用いて、当該メディアアイテムのクロップ内の1つ以上の細分化されたオブジェクトのためのセグメンテーションマスクと、当該セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力することとを含む。
【0008】
いくつかの実施形態では、境界ボックスは、座標軸に平行な境界ボックスまたは方向付けられた境界ボックスである。ある実施形態では、当該ユーザ入力は、当該メディアアイテムを参照してなされた1つ以上のストロークを含む。いくつかの実施形態では、当該境界ボックスは方向付けられた境界ボックスであり、当該方向付けられた境界ボックスの方向は、1つ以上のストロークのうちの少なくとも1つの方向と一致する。いくつかの実施形態では、当該メディアアイテムのクロップを提供する前に、当該セグメンテーション機械学習モデルは、複数のトレーニング画像およびグラウンドトルースセグメンテーションマスクを含む訓練データを使用して、トレーニングされる。
【0009】
いくつかの実施形態では、コンピューティングデバイスは、1つ以上のプロセッサと、当該1つ以上のプロセッサに結合されて、当該プロセッサによって実行されると、当該プロセッサに複数の動作を実行させる命令が記憶されたメモリとを備える。当該複数の動作は、メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を受信することと、当該ユーザ入力を境界ボックスに変換することと、当該境界ボックスに基づいて、当該メディアアイテムのクロップをセグメンテーション機械学習モデルに提供することと、当該セグメンテーション機械学習モデルを用いて、当該メディアアイテムのクロップ内の1つ以上の細分化されたオブジェクトのためのセグメンテーションマスクと、当該セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力することを含む。
【0010】
いくつかの実施形態では、境界ボックスは、座標軸に平行な境界ボックスまたは方向付けられた境界ボックスである。ある実施形態では、当該ユーザ入力は、当該メディアアイテムを参照してなされた1つ以上のストロークを含む。いくつかの実施形態では、当該境界ボックスは方向付けられた境界ボックスであり、当該方向付けられた境界ボックスの方向は、1つ以上のストロークのうちの少なくとも1つの方向と一致する。いくつかの実施形態では、当該メディアアイテムのクロップを提供する前に、当該セグメンテーション機械学習モデルは、複数のトレーニング画像およびグラウンドトルースセグメンテーションマスクを含む訓練データを使用して、トレーニングされる。いくつかの実施形態では、当該複数の動作は、閾値スコアを満たさない対応するセグメンテーションスコア、ピクセルの閾値数を下回る有効なマスクピクセルの数、閾値サイズを下回るセグメンテーションマスクサイズ、または、当該セグメンテーションマスクが当該ユーザ入力によって示される領域からの閾値距離よりも大きいこと、のうちの1つまたは複数に基づいて、当該セグメンテーションマスクが無効であると判定することと、当該セグメンテーションマスクが無効であると判定することに応答して、当該ユーザ入力内の領域に基づいて異なるマスクを生成することとをさらに含む。
【0011】
本明細書で説明される技術は、有利には、ユーザ入力と関連付けられるユーザ意図を判定するメディアアプリケーションを説明する。例えば、ユーザが画像の一部を囲むとき、メディアアプリケーションは、ユーザが除去を要求している特定のオブジェクトを決定する。
【図面の簡単な説明】
【0012】
図1】本明細書で説明されるいくつかの実施形態に従う、画像からオブジェクトを除去するための例示的なネットワーク環境のブロック図である。
図2】本明細書で説明されるいくつかの実施形態に従う、画像からオブジェクトを除去するための例示的なコンピューティングデバイスのブロック図である。
図3A】本明細書で説明されるいくつかの実施形態に従う、オブジェクトを除去するためのユーザ入力を有する例示的な画像を示す図である。
図3B】本明細書で説明されるいくつかの実施形態に従う、座標軸に平行な境界ボックスを有する例示的な画像を示す図である。
図3C】本明細書で説明されるいくつかの実施形態に従う、異なるセグメンテーションマスクを有する例示的な画像を示す図である。
図3D】本明細書で説明されるいくつかの実施形態に従う、オブジェクトが除去された例示的な画像を示す図である。
図4A】本明細書で説明されるいくつかの実施形態に従う、フェンスの部分を除去するためのユーザ入力を有するヤギの例示的な画像を示す図である。
図4B】本明細書で説明されるいくつかの実施形態に従う、不正確な境界ボックスを有する例示的な画像を示す図である。
図4C】本明細書で説明されるいくつかの実施形態に従う、ヤギがメディアアイテムから除去される例示的な画像を示す図である。
図4D】本明細書に記載のいくつかの実施形態に従う、フェンスを除去対象として適切に識別する、方向付けられた境界ボックスを有する例示的な画像を示す図である。
図4E】本明細書に記載のいくつかの実施形態に従う、フェンスの部分が正しく除去された例示的な画像を示す図である。
図5】本明細書で説明されるいくつかの実施形態に従う、セグメンテーションマスクを生成するための例示的な方法のフローチャートを示す図である。
【発明を実施するための形態】
【0013】
詳細な説明
例示的な環境100
図1は、例示的な環境100のブロック図を示す。いくつかの実施形態では、環境100は、メディアサーバ101と、ユーザデバイス115aと、ネットワーク105に結合されたユーザデバイス115nとを含む。ユーザ125a,125nは、それぞれのユーザデバイス115a,115nに関連付けられ得る。いくつかの実施形態では、環境100は、図1に示されていない他のサーバまたはデバイスを含み得る。図1および残りの図において、参照番号の後の文字、例えば「115a」は、その特定の参照番号を有する要素への参照を表す。次の文字のないテキスト中の参照番号、例えば「115」は、その参照番号を有する要素の実施形態に対する一般的な参照を表す。
【0014】
メディアサーバ101は、プロセッサ、メモリ、およびネットワーク通信ハードウェアを含み得る。いくつかの実施形態では、メディアサーバ101はハードウェアサーバである。メディアサーバ101は、信号線102を介してネットワーク105に通信可能に接続される。信号線102は、イーサネット(登録商標)、同軸ケーブル、光ファイバケーブルのような有線接続、またはWi-Fi(登録商標)、Bluetooth(登録商標)、もしくは他の無線技術などの無線接続であり得る。いくつかの実施形態では、メディアサーバ101は、ネットワーク105を介してユーザデバイス115a,115nの1つまたは複数との間でデータを送受信する。メディアサーバ101は、メディアアプリケーション103aおよびデータベース199を含み得る。
【0015】
データベース199は、機械学習モデル、訓練データセット、画像などを記憶することができる。データベース199は、ユーザ同意を受信すると、ユーザ125に関連付けられたソーシャルネットワークデータ、ユーザ125のユーザ選好などを記憶することができる。
【0016】
ユーザデバイス115は、ハードウェアプロセッサに結合されたメモリを含むコンピューティングデバイスであり得る。たとえば、ユーザデバイス115は、モバイルデバイス、タブレットコンピュータ、携帯電話、ウェアラブルデバイス、ヘッドマウントディスプレイ、モバイル電子メールデバイス、ポータブルゲームプレイヤ、ポータブル音楽プレイヤ、リーダデバイス、またはネットワーク105にアクセスすることが可能な別の電子デバイスを含み得る。
【0017】
図示される実装形態では、ユーザデバイス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を有するシステムアーキテクチャに適用される。
【0018】
メディアアプリケーション103は、メディアサーバ101および/またはユーザデバイス115上に記憶され得る。いくつかの実施形態では、本明細書で説明される動作は、メディアサーバ101またはユーザデバイス115上で実行される。いくつかの実施形態では、いくつかの動作はメディアサーバ101上で実行されてもよく、いくつかの動作はユーザデバイス115上で実行され得る。動作の実行は、ユーザ設定に従う。たとえば、ユーザ125aは、サーバ101上でではなく、それぞれのデバイス115a上で動作が実行されるべきであるという設定を指定し得る。そのような設定では、本明細書で説明される動作は、ユーザデバイス115a上で完全に実行され、メディアサーバ101上では実行されない。さらに、ユーザ125aは、ユーザの画像および/または他のデータが、メディアサーバ101上にではなく、ユーザデバイス115a上にのみローカルに記憶されることを指定し得る。そのような設定では、ユーザデータはメディアサーバ101に送信されず、または記憶されない。メディアサーバ101へのユーザデータの送信、メディアサーバ101によるそのようなデータの一時的または永続的な記憶、および、メディアサーバ101によるそのようなデータに対する動作の実行は、ユーザがメディアサーバ101による動作の送信、記憶、および実行に同意した場合にのみ実行される。ユーザは、例えば、メディアサーバ101の使用を有効または無効にすることができるように、いつでも設定を変更するオプションが提供される。
【0019】
機械学習モデル(例えば、ニューラルネットワークまたは他のタイプのモデル)は、1つ以上の動作のために利用される場合、特定のユーザ許可とともに、ユーザデバイス115上にローカルに記憶され、利用される。サーバ側モデルは、ユーザによって許可された場合にのみ使用される。モデルトレーニングは、図5を参照して以下で説明されるように、合成されたデータセットを使用して実行される。さらに、トレーニングされたモデルは、ユーザデバイス115上で使用するために提供され得る。そのような使用中に、ユーザ125によって許可された場合、当該モデルのオンデバイストレーニングが実行され得る。更新されたモデルパラメータは、ユーザ115によって許可された場合、例えば、連合学習を可能にするために、メディアサーバ101に伝送され得る。モデルパラメータは、いかなるユーザデータも含まない。
【0020】
メディアアプリケーション103は、メディアアイテムを受信する。例えば、メディアアプリケーション103は、ユーザデバイス115の一部であるカメラから当該メディアアイテムを受信するか、又は、メディアアプリケーション103は、ネットワーク105を介して当該メディアアイテムを受信する。メディアアプリケーション103は、当該メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を受信する。例えば、当該ユーザ入力は、除去されるべきオブジェクトを囲む円である。メディアアプリケーション103は、当該ユーザ入力を境界ボックスに変換する。メディアアプリケーション103は、当該境界ボックスに基づくメディアアイテムのクロップをセグメンテーション機械学習モデルに提供する。当該セグメンテーション機械学習モデルは、当該メディアアイテムのクロップ内の1つ以上の細分化されたオブジェクトのためのセグメンテーションマスクと、当該セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力する。いくつかの実施形態では、メディアアプリケーション103は、セグメンテーションマスクに一致するメディアアイテムの一部を修復して出力メディアアイテムを取得し、1つ以上のオブジェクトは、当該出力メディアアイテムに存在しない。
【0021】
いくつかの実施形態では、メディアアプリケーション103は、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、機械学習プロセッサ/コプロセッサ、任意の他のタイプのプロセッサ、またはそれらの組み合せを含むハードウェアを使用して実現され得る。いくつかの実施形態では、メディアアプリケーション103aは、ハードウェアおよびソフトウェアの組み合わせを使用して実現され得る。
【0022】
例示的なコンピューティングデバイス200
図2は、本明細書で説明される1つ以上の特徴を実現するために使用され得る例示的なコンピューティングデバイス200のブロック図である。コンピューティングデバイス200は、任意の好適なコンピュータシステム、サーバ、または他の電子もしくはハードウェアデバイスであり得る。一例では、コンピューティングデバイス200は、メディアアプリケーション103aを実現するために使用されるメディアサーバ101である。別の例では、コンピューティングデバイス200はユーザデバイス115である。
【0023】
いくつかの実施形態では、コンピューティングデバイス200は、全てがバス218を介して結合されたプロセッサ235、メモリ237、入出力(I/O)インターフェイス239、ディスプレイ241、カメラ243、および記憶装置245を含む。プロセッサ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)と、(たとえば、マルチプロセッサ構成における)複数の処理ユニットと、グラフィックス処理ユニット(GPU)と、フィールドプログラマブルゲートアレイ(FPGA)と、特定用途向け集積回路(ASIC)と、複合プログラマブル論理デバイス(CPLD)と、機能性を達成するための専用回路、ニューラルネットワークモデルベース処理を実現するための専用プロセッサ、ニューラル回路、行列計算(例えば、行列乗算)のために最適化されたプロセッサ、または他のシステムを有するシステムを含み得る。いくつかの実施形態では、プロセッサ235は、ニューラルネットワーク処理を実現する1つ以上のコプロセッサを含み得る。いくつかの実施形態では、プロセッサ235は、確率的出力を生成するためにデータを処理するプロセッサであってもよく、例えば、プロセッサ235によって生成される出力は、不正確であるかもしれず、または、予期される出力からの範囲内で正確であり得る。処理は、特定の地理的位置に限定される必要はなく、時間的な制限を有する必要もない。例えば、プロセッサは、リアルタイム、オフライン、バッチモード等でその機能を実行し得る。処理の一部は、異なる時間に、異なる場所で、異なる(または同じ)処理システムによって実行され得る。コンピュータは、メモリと通信する任意のプロセッサであり得る。
【0025】
メモリ237は、プロセッサ235によるアクセスのためにコンピューティングデバイス200内に提供され、当該プロセッサまたは一組のプロセッサによる実行のための命令を記憶するために適した、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的に消去可能な読み取り専用メモリ(EEPROM)、フラッシュメモリ等のような、任意の適切なプロセッサ可読記憶媒体であってもよく、プロセッサ235とは別個に配置され、および/またはそれと統合される。メモリ237は、メディアアプリケーション103を含む、プロセッサ235によってコンピューティングデバイス200上で動作するソフトウェアを記憶できる。
【0026】
メモリ237は、オペレーティングシステム262と、他のアプリケーション264と、アプリケーションデータ266とを含み得る。他のアプリケーション264は、例えば、画像ライブラリアプリケーション、画像管理アプリケーション、画像ギャラリアプリケーション、通信アプリケーション、ウェブホスティングエンジン又はアプリケーション、メディア共有アプリケーション等を含むことができる。本明細書で開示される1つ以上の方法は、いくつかの環境およびプラットフォームにおいて、たとえば、任意のタイプのコンピューティングデバイス上で実行できるスタンドアロンコンピュータプログラムとして、ウェブページを有するウェブアプリケーションとして、モバイルコンピューティングデバイス上で実行されるモバイルアプリケーション(「app」)として等で作動できる。
【0027】
アプリケーションデータ266は、コンピューティングデバイス200の他のアプリケーション264またはハードウェアによって生成されるデータであり得る。たとえば、アプリケーションデータ266は、画像ライブラリアプリケーションによって使用される画像、および、他のアプリケーション264(たとえば、ソーシャルネットワーキングアプリケーション)によって識別されるユーザアクションなどを含み得る。
【0028】
I/Oインターフェイス239は、コンピューティングデバイス200を他のシステムおよびデバイスとインターフェイスすることを可能にする機能を提供できる。インターフェイスされたデバイスは、コンピューティングデバイス200の一部として含まれ得るか、または別個であり得、コンピューティングデバイス200と通信し得る。例えば、ネットワーク通信デバイス、記憶デバイス(例えば、メモリ237および/または記憶装置245)、および、入力/出力デバイスは、I/Oインターフェイス239を介して通信できる。いくつかの実施形態では、I/Oインターフェイス239は、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、スキャナ、センサ等)、および/または、出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モニタ等)のようなインターフェイスデバイスに接続できる。
【0029】
I/Oインターフェイス239に接続できるインターフェイス接続デバイスのいくつかの例は、コンテンツ、例えば、画像、ビデオ、および/または、本明細書で説明されるような出力アプリケーションのユーザインターフェイスを表示するために、かつ、ユーザからタッチ(またはジェスチャ)入力を受信するために、使用され得るディスプレイ241を含み得る。例えば、ディスプレイ241は、ビューファインダ上にグラフィカルガイドを含むユーザインターフェイスを表示するために利用され得る。ディスプレイ241は、液晶ディスプレイ(LCD)、発光ダイオード(LED)、またはプラズマディスプレイスクリーンのような任意の好適な表示デバイス、陰極線管(CRT)、テレビ、モニタ、タッチスクリーン、3次元ディスプレイスクリーン、または他の視覚表示装置を含み得る。例えば、ディスプレイ241は、モバイルデバイス上に提供されるフラットディスプレイスクリーン、眼鏡フォームファクタもしくはヘッドセットデバイスに埋め込まれた複数の表示スクリーン、またはコンピュータデバイス用のモニタスクリーンであり得る。
【0030】
カメラ243は、画像および/またはビデオを含む、メディアアイテムをキャプチャすることができる任意のタイプの画像キャプチャデバイスであり得る。いくつかの実施形態では、カメラ243は、I/Oインターフェイス239がメディアアプリケーション103に提供する画像またはビデオを捕捉する。
【0031】
記憶装置245は、メディアアプリケーション103に関連するデータを記憶する。たとえば、記憶装置245は、ラベル付けされた画像、機械学習モデル、当該機械学習モデルからの出力などを含む訓練データセットを記憶できる。
【0032】
図2は、境界ボックスモジュール202と、セグメンテーション機械学習モジュール204と、修復モジュール206と、ユーザインターフェイスモジュール208とを含む、メモリ237に記憶された例示的なメディアアプリケーション103を示す。
【0033】
境界ボックスモジュール202は、境界ボックスを生成する。いくつかの実施形態では、境界ボックスモジュール202は、境界ボックスを生成するためにプロセッサ235によって実行可能な一組の命令を含む。いくつかの実施形態では、境界ボックスモジュール202は、コンピューティングデバイス200のメモリ237に記憶され、プロセッサ235によってアクセス可能かつ実行可能であり得る。
【0034】
いくつかの実施形態では、境界ボックスモジュール202は、メディアアイテムを受信する。当該メディアアイテムは、コンピューティングデバイス200のカメラ243から、アプリケーションデータ266から、またはI/Oインターフェイス239を介してメディアサーバ101から受信され得る。様々な実施形態では、当該メディアアイテムは、画像、ビデオ、一連の画像(例えば、GIF)などであり得る。
【0035】
いくつかの実装形態では、メディアアイテムは、当該メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を含む。いくつかの実装形態では、当該ユーザ入力は、タッチスクリーンを介したタッチ入力、マウス/トラックパッド/他のポインティングデバイスを介した入力、または他の適切な入力機構として、クライアントデバイス110において受信され得る。いくつかの実装形態では、当該ユーザ入力は、特定のメディアアイテムを参照して受信される。いくつかの実施形態では、当該ユーザ入力は、メディアアイテムから消去されるべきオブジェクトを取り囲むか、又は、その上にある手動で描画されるストロークである。例えば、当該ユーザ入力は、当該オブジェクトを取り囲む円、当該オブジェクトの上にある線または一連の線、当該オブジェクトを取り囲む正方形等であり得る。当該ユーザ入力は、ユーザが指またはスタイラスを使用してタッチスクリーン上で描画することによって、マウスまたはポインタ入力によって、(例えば、カメラによって検出される)ジェスチャ入力等によって、コンピューティングデバイス200上に提供され得る。
【0036】
図3Aを参照すると、オブジェクトを除去するためのユーザ入力を有する例示的な画像300が例示されている。この例では、当該メディアは、風車が背景にあるタンポポ畑の画像である。ユーザ入力は、除去されるべきオブジェクトを取り囲む略円形の形状305,310および315を含む。ユーザ入力305は第1の風車を取り囲み、ユーザ入力310は2つの風車を取り囲み、ユーザ入力315は第4の風車を取り囲む。
【0037】
いくつかの実施形態では、境界ボックスモジュール202は、当該ユーザ入力を境界ボックスに変換する。境界ボックスモジュール202は、当該ユーザ入力に関連付けられたオブジェクトを識別する。例えば、図3Aでは、境界ボックスモジュール202は、ユーザ入力305が、当該ユーザ入力305によって囲まれた風車に関連付けられていることを識別する。いくつかの実施形態では、ユーザ入力が複数のオブジェクトを含み得る場合、境界ボックスモジュール202は、ユーザ入力に関連付けられたオブジェクトの割合を識別する。例えば、ユーザ入力310は、2つの風車に対応する画像のほとんど全てのピクセルを取り囲む。その結果、境界ボックスモジュール202は、ユーザ入力310を2つの風車に関連付ける。いくつかの実施形態では、ユーザ入力がオブジェクトの全てを囲まない場合、境界ボックスモジュール202は、オブジェクトに関連付けられたユーザ入力の量が当該オブジェクトの閾値割合(例えば、ピクセルに関して測定される)を超えるかどうかを判定する。例えば、ユーザ入力315は、複数ブレードのうちの1つを除く風車の全てを含み、当該割合は、70%の閾値割合を超える85%である。
【0038】
いくつかの実施形態では、境界ボックスモジュール202は、当該ユーザ入力に関連付けられたオブジェクトを識別し、当該オブジェクトのアイデンティティを共通に除去されたオブジェクトのリストと比較して、当該ユーザ入力が特定のオブジェクトを含むか否かを判定する。例えば、共通して除去されるオブジェクトの当該リストは、人物、電力線、スクータ、ごみ箱等を含み得る。当該ユーザ入力が背景の人物と木の一部の両方を取り囲む場合、木ではなく人物のみが共通に除去されたオブジェクトの当該リストの一部であるので、境界ボックスモジュール202は、当該ユーザ入力が木ではなく人物に対応すると判定し得る。
【0039】
境界ボックスモジュール202は、1つ以上のオブジェクトを含む境界ボックスを生成する。いくつかの実施形態では、当該境界ボックスは、1つ以上のオブジェクトの全てのピクセルを取り囲む矩形の境界ボックスである。いくつかの実施形態では、境界ボックスモジュール202は、ニューラルネットワーク、またはより具体的には、畳み込みニューラルネットワークのような好適な機械学習アルゴリズムを使用して、1つ以上のオブジェクトを識別して、境界ボックスを生成する。境界ボックスは、メディアアイテム(画像又はビデオ)のx座標及びy座標に関連付けられる。
【0040】
いくつかの実施形態では、境界ボックスモジュール202は、ユーザ入力を座標軸に平行な境界ボックスまたは方向付けられた境界ボックスに変換する。座標軸に平行な境界ボックスは、メディアアイテムのx軸及びy軸と位置合わせされる。いくつかの実施形態では、座標軸に平行な境界ボックスは、当該境界ボックスのエッジがストロークの最も広い部分に接触するようにストロークの周りにぴったりとフィットする。座標軸に平行な境界ボックスは、ユーザ入力によって示されるオブジェクトを含む最小ボックスである。図3Bを参照すると、座標軸に平行な境界ボックスを有する例示的な画像310が示されている。境界ボックス325,330および335はそれぞれ、1つ以上のそれぞれのオブジェクトを含み、境界ボックス325,330および335は、対応するユーザ入力ストロークを囲む。
【0041】
図3Bでは、ユーザ入力の3つのストロークが3つの境界ボックスに変換されたが、各境界ボックスがそれぞれのオブジェクトに対応し、複数のオブジェクトが分離される領域以外のストロークの周りにぴったりと収まる4つの境界ボックスなどの他の実施形態が可能である。例えば、境界ボックス330は、ストロークの最も外側のラインが境界ボックスと位置合わせされた2つのボックスと、オブジェクト間の分離を示すための、中央の1つ以上の追加のラインとに分割され得る。
【0042】
いくつかの実施形態では、境界ボックスモジュール202は、方向付けられた境界ボックスの方向がストロークの方向と一致する方向付けられた境界ボックスを生成する。例えば、当該方向付けられた境界ボックスは、ユーザがメディアアイテム上に1つ以上のラインを提供するときのように、ユーザ入力が1つの方向にあるとき、境界ボックスモジュール202によって適用され得る。いくつかの実施形態では、境界ボックスモジュール202は、画像軸に関して回転させることができるストロークの周りにぴったりとフィットする方向付けられたされた境界ボックスを生成する。いくつかの実施形態では、方向付けられた境界ボックスは、当該境界ボックスの面および縁部がメディアアイテムの縁部と平行ではない任意の境界ボックスである。
【0043】
いくつかの実施形態では、境界ボックスモジュール202は、境界ボックスに基づいて、当該境界ボックスのクロップを生成する。たとえば、境界ボックスモジュール202は、当該境界ボックス内の1つ以上のオブジェクトを含むクロップを生成するために当該境界ボックスの座標を使用するクロップを生成する。
【0044】
いくつかの実施形態では、セグメンテーション機械学習モジュール204は、本明細書ではセグメンテーション機械学習モデルと呼ばれるトレーニング済みモデルを含む(任意選択で、トレーニングも実行する)。いくつかの実施形態では、セグメンテーション機械学習モジュール204は、当該機械学習モデルをアプリケーションデータ266(例えば、ユーザデバイス115によってキャプチャされたメディアアイテム)のような入力データに適用し、セグメンテーションマスクを出力するように構成される。いくつかの実施形態では、セグメンテーション機械学習モジュール204は、プロセッサ235によって実行されるコードを含み得る。いくつかの実施形態では、セグメンテーション機械学習モジュール204は、コンピューティングデバイス200のメモリ237に記憶され、プロセッサ235によってアクセス可能かつ実行可能であり得る。
【0045】
いくつかの実施形態では、セグメンテーション機械学習モジュール204は、プロセッサ235が当該機械学習モデルを適用することを可能にする(例えば、プログラマブルプロセッサのための、フィールドプログラマブルゲートアレイ(FPGA)等のための)回路構成を指定し得る。いくつかの実施形態では、セグメンテーション機械学習モジュール204は、ソフトウェア命令、ハードウェア命令、または組み合わせを含み得る。いくつかの実施形態では、セグメンテーション機械学習モジュール204は、セグメンテーション機械学習モジュール204を呼び出すために、たとえば、アプリケーションデータ266に当該マシンラーニングモデルを適用してセグメンテーションマスクを出力するために、オペレーティングシステム262および/または他のアプリケーション264によって使用され得るアプリケーションプログラミングインターフェイス(API)を提供し得る。
【0046】
セグメンテーション機械学習モジュール204は、トレーニングされたセグメンテーション機械学習モデルを生成するために訓練データを使用する。例えば、訓練データは、トレーニング画像及びグランドトゥルースセグメンテーションマスクを含み得る。トレーニング画像は、手動でセグメント化された境界ボックスのクロップおよび/または合成画像の境界ボックスのクロップであり得る。いくつかの実施形態では、セグメンテーション機械学習モジュール204は、座標軸に平行な境界ボックスまたは方向付けられた境界ボックスを使用してセグメンテーション機械学習モデルをトレーニングする。
【0047】
いくつかの実施形態では、当該訓練データは、トレーニングされる文脈における活動に基づかないデータ、例えば、シミュレートされた又はコンピュータ生成画像/ビデオから生成されたデータのような、トレーニングの目的のために生成された合成データを含み得る。当該訓練データは、合成画像の境界ボックスのクロップの合成画像を含み得る。いくつかの実施形態では、当該合成画像は、背景画像上に2次元オブジェクトまたは3次元オブジェクトを重ね合わせることによって生成される。当該3次元オブジェクトは、3次元オブジェクトを2次元オブジェクトに変換するために特定のビューからレンダリングされ得る。
【0048】
訓練データは、任意のソース、例えば、トレーニングのために具体的にマークされたデータリポジトリ、機械学習のための訓練データとして使用するための許可が提供されるデータ等から取得され得る。いくつかの実施形態では、当該トレーニングは、訓練データをユーザデバイス115に直接提供するメディアサーバ101上で行われてもよく、当該トレーニングは、ユーザデバイス115上でローカルに行われ、または両方の組み合わせであり得る。
【0049】
いくつかの実施形態では、セグメンテーション機械学習モジュール204は、別のアプリケーションから取られ、編集されていない/転送された重みを使用する。例えば、これらの実施形態では、当該トレーニングされたモデルは、例えば、異なるデバイス上で生成され、メディアアプリケーション103の一部として提供され得る。様々な実施形態では、当該トレーニングされたモデルは、(例えば、ニューラルネットワークノードの数およびタイプ、ノードと、当該ノードの複数の層への編成との間の接続性を定義する)モデル構造または形態と、関連付けられた重みとを含む、データファイルとして提供され得る。セグメンテーション機械学習モジュール204は、トレーニングされたモデルのためのデータファイルを読み取り、トレーニングされたモデルにおいて指定されたモデル構造または形態に基づくノード接続性、層、および重みを有するニューラルネットワークを実現し得る。
【0050】
トレーニングされた機械学習モデルは、1つ以上のモデル形式または構造を含み得る。例えば、モデル形式または構造は、線形ネットワーク、複数の層(例えば、入力層と出力層との間に「隠れ層」があり、各層は線形ネットワークである)を実現するディープリーミングニューラルネットワーク、畳み込みニューラルネットワーク(たとえば、入力データを複数の部分またはタイルに分割(split)または分離(partition)し、1つ以上のニューラルネットワーク層を使用して各タイルを別々に処理し、各タイルの処理から結果を集約するネットワーク)、シーケンス間ニューラルネットワーク(例えば、文中の単語、ビデオ中のフレーム等のような一連のデータを入力として受信し、結果の配列を出力として生成するネットワーク)のような任意のタイプのニューラルネットワークを含むことができる。
【0051】
モデル形式または構造は、様々なノードとノードの層への編成との間の接続性を指定し得る。たとえば、第1の層(たとえば、入力層)のノードは、データを入力データまたはアプリケーションデータとして受信し得る。そのようなデータは、例えば、トレーニングされたモデルが、例えば、初期画像の分析のために使用されるとき、例えば、ノードあたり1つ以上のピクセルを含むことができる。後続の中間層は、モデル形式または構造において指定される接続性に従って、前の層のノードの出力を入力として受信し得る。これらの層は隠れ層と呼ばれることもある。たとえば、第1の層は、前景と背景との間のセグメンテーションを出力し得る。最終層(例えば、出力層)は、機械学習モデルの出力を生成する。たとえば、出力層は、初期画像の前景および背景へのセグメンテーションを受け取り、ピクセルがセグメンテーションマスクの一部であるかどうかを出力することができる。いくつかの実施形態では、モデル形式または構造はまた、各層内のノードの数および/またはタイプも指定する。
【0052】
異なる実施形態では、トレーニングされたモデルは、1つ以上のモデルを含むことができる。モデルのうちの1つ以上は、モデル構造または形態毎に層に配列される複数のノードを含み得る。いくつかの実施形態では、当該複数のノードは、例えば、1単位の入力を処理して1単位の出力を生成するように構成された、メモリを持たない計算ノードであり得る。1つのノードによって実行される計算は、例えば、複数のノード入力の各々に重みを掛けるステップと、加重和を取得するステップと、当該加重和をバイアスまたは切片値で調整してノード出力を生成するステップとを含み得る。いくつかの実施形態では、1つのノードによって実行される計算はまた、ステップ/活性化関数を当該調整された加重和に適用することを含み得る。いくつかの実施形態では、当該ステップ/活性化関数は、非線形関数であり得る。様々な実施形態では、そのような計算は、行列乗算のような演算を含み得る。いくつかの実施形態では、当該複数のノードによる計算は、並列に、例えば、1つのマルチコアプロセッサの複数のプロセッサコアを使用して、グラフィックス処理ユニット(GPU)の個々の処理ユニットを使用して、または専用のニューラル回路を使用して、実行され得る。いくつかの実施形態では、ノードは、メモリを含んでもよく、例えば、後続の入力を処理する際に1つ以上の以前の入力を記憶し、使用することができる。例えば、メモリを有するノードは、ロングショートタームメモリ(LSTM)ノードを含み得る。LSTMノードは、ノードが有限状態機械(FSM)のように動作することを可能にする「状態」を維持するためにメモリを使用し得る。
【0053】
いくつかの実施形態では、トレーニングされたモデルは、個々のノードの埋め込みまたは重みを含み得る。例えば、モデルは、モデル形式または構造によって指定されるような層に編成された複数のノードとして開始され得る。初期化において、それぞれの重みは、モデル形式に従って接続される複数のノード、例えば、ニューラルネットワークの連続層内の複数のノード、の各ペアの間の接続に適用され得る。例えば、当該それぞれの重みは、ランダムに割り当てられてもよく、またはデフォルト値に初期化され得る。当該モデルは、次いで、結果を生成するために、例えば、訓練データを使用して訓練され得る。
【0054】
トレーニングは、教師あり学習技術を適用することを含み得る。教師あり学習では、訓練データは、複数の入力(例えば、手動で注釈を付けられたセグメントおよび合成されたメディアアイテム)と、各入力に対する対応するグランドトルース出力(例えば、当該メディアアイテムの各ストロークから除去されるべき1つ以上のオブジェクトを正確に識別するグラウンドトルースセグメンテーションマスク)とを含むことができる。当該モデルの出力とグラウンドトルース出力との比較に基づいて、当該重みの値は、例えば、モデルが当該メディアアイテムのグラウンドトルース出力を生成する確率を高めるように自動的に調整される。
【0055】
いくつかの実施形態では、トレーニング中、セグメンテーション機械学習モジュール204は、メディアアイテム内の消去されるべきオブジェクトを識別するセグメンテーションマスクの品質を示すセグメンテーションスコアと共にセグメンテーションマスクを出力する。当該セグメンテーションスコアは、セグメンテーション機械学習モデルによって出力されたセグメンテーションマスクとグラウンドトルースセグメンテーションマスクとの間の和集合(loU)の交点を反映し得る。
【0056】
様々な実施形態では、トレーニングされたモデルは、モデル構造に対応する一組の重みまたは埋め込みを含む。いくつかの実施形態では、トレーニングされたモデルは、固定された、例えば、重みを提供するサーバからダウンロードされた一組の重みを含み得る。様々な実施形態では、トレーニングされたモデルは、モデル構造に対応する一組の重みまたは埋め込みを含む。データが省略される実施形態では、セグメンテーション機械学習モジュール204は、例えばセグメンテーション機械学習モジュール204の開発者による、第三者による等の、以前のトレーニングに基づくトレーニング済みモデルを生成し得る。いくつかの実施形態では、トレーニングされたモデルは、固定された、例えば、重みを提供するサーバからダウンロードされた一組の重みを含み得る。
【0057】
いくつかの実施形態では、セグメンテーション機械学習モジュール204は、メディアアイテムのクロップを受信する。セグメンテーション機械学習モジュール204は、当該メディアアイテムのクロップを、トレーニングされた機械学習モデルへの入力として提供する。いくつかの実施形態では、トレーニングされた機械学習モデルは、メディアアイテムのクロップ内の1つ以上のセグメント化されたオブジェクトのためのセグメンテーションマスクと、当該セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力する。いくつかの実施形態では、セグメンテーションスコアは、機械学習モデルによって出力されたセグメンテーションマスクとグラウンドトルースセグメンテーションマスクとの間のloUを反映する機械学習モデルのトレーニング中に生成されたセグメンテーションスコアに基づく。いくつかの実施形態では、セグメンテーションスコアは、40/100のような、総数のうちの数である。セグメンテーションスコアの他の表現も可能である。
【0058】
いくつかの実施形態では、セグメンテーション機械学習モデルは、トレーニングされた機械学習モデルによって出力される各セグメンテーションマスクに対する信頼値を出力する。当該信頼値は、パーセンテージ、0~1の数等として表され得る。例えば、機械学習モデルは、セグメンテーションマスクがユーザ入力において識別されたオブジェクトを正しくカバーしたという信頼に対して85%の信頼値を出力する。
【0059】
いくつかの実施形態では、セグメンテーション機械学習モジュール204は、セグメンテーションマスクが首尾よく生成されなかったと判定する。例えば、当該セグメンテーションスコアは、閾値スコアを満たさない場合がある。別の例では、セグメンテーション機械学習モジュール204は、有効なマスクピクセルの数を決定して、その数がピクセルの閾値数を下回ることを判定し得る。別の例では、セグメンテーション機械学習モジュール204は、セグメンテーションマスクのサイズを決定して、当該セグメンテーションマスクのサイズが閾値サイズを下回ることを判定し得る。さらに別の例では、セグメンテーション機械学習モジュール204は、当該セグメンテーションマスクとユーザ入力によって示される領域との間の距離と、当該距離が閾値距離よりも大きいこととを決定し得る。これらの例のうちの1つまたは複数において、セグメンテーション機械学習モジュール204は、当該ユーザ入力内の領域に基づいて異なるセグメンテーションマスクを出力する。
【0060】
図3Cを参照すると、異なるセグメンテーションマスク345,350,355を有する例示的な画像340が示されている。この例では、セグメンテーション機械学習モジュール204は、ユーザ入力内の領域に対応するピクセルを含む異なるセグメンテーションマスクを出力する。
【0061】
修復モジュール206は、1つ以上のオブジェクトが存在しない(ソースメディアアイテムから消去された)出力メディアアイテムを生成する。いくつかの実施形態では、修復モジュール206は、当該出力メディアアイテムを生成するためにプロセッサ235によって実行可能な一組の命令を含む。いくつかの実施形態では、修復モジュール206は、コンピューティングデバイス200のメモリ237に記憶され、プロセッサ235によってアクセス可能かつ実行可能であり得る。
【0062】
いくつかの実施形態では、修復モジュール206は、セグメンテーション機械学習モジュール204からセグメンテーションマスクを受信する。修復モジュール206は、セグメンテーションマスクに一致するメディアアイテムの部分の修復を実行する。例えば、修復モジュール206は、セグメンテーションマスク内のピクセルを、メディアアイテム内の背景に一致するピクセルで置き換える。いくつかの実施形態では、背景に一致するピクセルは、同じ場所の別のメディアアイテムに基づいてもよい。図3Dは、修復後の出力メディアアイテムにオブジェクトが存在しない例示的な修復画像360を示す。
【0063】
いくつかの実施形態では、修復モジュール206は、セグメンテーション機械学習モジュール204から入力としてメディアアイテムおよびセグメンテーションマスクを受信し、出力メディアアイテムに1つ以上のオブジェクトが存在しない出力メディアアイテムを出力するように、修復機械学習モデルをトレーニングする。
【0064】
ユーザインターフェイスモジュール208は、ユーザインターフェイスを生成する。いくつかの実施形態では、ユーザインターフェイスモジュール208は、ユーザインターフェイスを生成するために、プロセッサ235によって実行可能な一組の命令を含む。いくつかの実施形態では、ユーザインターフェイスモジュール208は、コンピューティングデバイス200のメモリ237に記憶され、プロセッサ235によってアクセス可能かつ実行可能であり得る。
【0065】
ユーザインターフェイスモジュール208は、図2のモジュールによって実行されるステップおよび図5で説明されるステップのいずれかを実行する前に、ユーザのメディアアイテムにアクセスする許可をユーザに求めるユーザインターフェイスを生成する。
【0066】
ユーザインターフェイスモジュール208は、メディアアイテムを含むユーザインターフェイスを生成し、除去のために1つ以上のオブジェクトを識別するためのユーザ入力を受け付ける。例えば、ユーザインターフェイスは、ストロークのタッチ入力を受け付ける。ユーザ入力は、ユーザがメディアアイテムから除去するために示す、気を散らす(又は、そうでなければ問題のある)オブジェクトを示す。例えば、当該メディアアイテムは、ビーチにいる家族の画像であってもよく、気を散らすオブジェクトは、背景においてビーチの端に沿って歩いている二人であり得る。ユーザは、ユーザインターフェイスを使用して、ビーチの端に沿って歩いている二人を円で囲むことができる。
【0067】
ユーザインターフェイスモジュール208は、修復された出力メディアアイテムを含むユーザインターフェイスを生成する。この例を続けると、当該メディアアイテムは、ビーチの端に沿って歩いている二人以外の、ビーチにいる家族である。いくつかの実施形態では、出力メディアアイテムは、当該メディアアイテムが1つ以上のオブジェクトを消去するように編集されたことを示すように、(視覚的に)ラベル付けされるか、または(コードで、例えば、ステガノグラフィーで(steganographically))マーク付けされ得る。いくつかの実施形態では、ユーザインターフェイスは、出力メディアアイテムを編集、出力メディアアイテムを共有、出力メディアアイテムをフォトアルバムに追加等のためのオプションを含む。出力メディアアイテムを編集するためのオプションは、オブジェクトの消去を取り消す能力を含み得る。
【0068】
いくつかの実施形態では、出力メディアアイテムは、メディアアイテムが1つ以上のオブジェクトを消去するように編集されたことを示すように、(視覚的に)ラベル付けされるか、または(コードで、例えば、ステノグラフィーで)マーク付けされ得る。
【0069】
いくつかの実施形態では、ユーザインターフェイスモジュール208は、ユーザデバイス115上のユーザからフィードバックを受信する。当該フィードバックは、出力メディアアイテムを投稿するユーザ、出力メディアアイテムを削除するユーザ、出力メディアアイテムを共有するユーザなどの形態をとり得る。
【0070】
例示的な方向付けられた境界ボックス
図4Aは、本明細書に記載されるいくつかの実施形態に従う、フェンスのセグメントを除去するためのユーザ入力を有するヤギの例示的な画像400を示す。境界ボックスモジュール202は、当該ユーザ入力を受信し、方向付けられた境界ボックスを生成する。方向付けられた境界ボックスの方向は、ユーザ入力の方向に基づいて決定される。図4Aにおいて、ユーザ入力405は、チェーンリンクフェンスの対角線に沿ったストロークである。境界ボックス407は、座標軸に平行な境界ボックスである。
【0071】
図4Bは、本明細書で説明されるいくつかの実施形態に従う、不正確な境界ボックスを有する例示的な画像410を示す。座標軸に平行な境界ボックスは、その側面がx軸およびy軸に合わせられた長方形ボックスであるため、境界ボックスは、ユーザ入力による除去のために識別されたチェーンリンクフェンスの代わりに、除去のためのオブジェクトとしてヤギを不適切に識別する。
【0072】
図4Cは、メディアアイテムからヤギが取り除かれた例示的な画像420を示す。
図4Dは、境界ボックスモジュール202が、フェンスを除去の対象として適切に識別する方向付けられた境界ボックスを使用する例示的な画像430を示す。図4Dに示されるように、セグメンテーション機械学習モジュール204が、方向付けられた境界ボックスの切り取られたバージョンを受信するとき、結果として得られるセグメンテーションマスクは、セグメンテーション機械学習モジュール204が、ユーザの意図を、チェーンリンクフェンスの背後のヤギを選択することとして誤って解釈したときである、座標軸に平行な境界ボックスの切り取られたバージョンを受信するときよりも、チェーンリンクフェンスの一部を除去するユーザの意図をより密接に捉える。
【0073】
図4Eは、本明細書に記載のいくつかの実施形態に従う、フェンスのセグメントが正しく除去された例示的な画像440を示す。
【0074】
例示的な方法500
図5は、セグメンテーションマスクを生成するための例示的な方法500のフローチャートを示す。図5の方法500は、ブロック502で開始できる。フローチャートに示される方法500は、図2のコンピューティングデバイス200によって実行され得る。いくつかの実施形態では、方法500は、ユーザデバイス115、メディアサーバ101によって、または、ユーザデバイス115上で部分的に、およびメディアサーバ101上で部分的に実行される。
【0075】
ブロック502において、方法500を実施するためのユーザ許可が受信される。例えば、ユーザは、メディアアイテム内のオブジェクトを丸で囲むことによってユーザ入力を与えるために、アプリケーションをロードし得るが、当該メディアアイテムが表示される前に、ユーザインターフェイスは、当該ユーザに関連付けられたメディアアイテムにアクセスするためのユーザ許可を求める。ユーザインターフェイスはまた、メディアアイテムを修正するための、ユーザが特定のメディアアイテムのみへのアクセスを許可することを可能にするための、メディアアイテムがユーザ許可なしで記憶またはサーバに転送されないことを確実するための等の許可を求め得る。ブロック502の後には、ブロック504が続き得る。
【0076】
ブロック504において、ユーザ許可が受信されたか否かが判定される。ユーザ許可が受信されなかった場合、ブロック504の後にブロック506が続き、方法500を停止する。ユーザ許可が受信された場合、ブロック504の後にブロック508が続く。
【0077】
ブロック508において、メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力が受信される。例えば、画像は、背景にゴミ箱を含む場合があり、当該ユーザ入力は、ゴミ箱の周りの円である。ブロック508の後には、ブロック510が続き得る。
【0078】
ブロック510において、ユーザ入力は境界ボックスに変換される。たとえば、境界ボックスは、座標軸に平行な境界ボックスまたは方向付けられた境界ボックスであり得る。ブロック510の後には、ブロック512が続き得る。
【0079】
ブロック512において、メディアアイテムのクロップは、境界ボックスに基づいてセグメンテーション機械学習モデルに提供される。ブロック506の後には、ブロック514が続き得る。
【0080】
ブロック514において、メディアアイテムのクロップ内の1つ以上のセグメント化されたオブジェクトのためのトレーニングされたセグメンテーション機械学習モデルと、セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを用いて、セグメンテーションマスクが出力される。
【0081】
上記の説明に加えて、ユーザは、本明細書で説明されるシステム、プログラム、または特徴がユーザ情報(例えば、画像および/又はビデオ、ソーシャルネットワーク、ソーシャルアクション、又は活動、職業、(例えば、画像内のオブジェクトに関する)ユーザの好み、又は、ユーザの現在位置を含む、ユーザのメディアアイテムに関する情報)の収集を可能にし得るかどうか、およびいつ可能にし得るか、ならびに、ユーザがコンテンツまたは通信をサーバから送られているか否かの両方について、選択することを可能にする制御が、ユーザに提供され得る。加えて、特定のデータは、個人的に識別可能な情報が取り除かれるように、記憶または使用される前に1つ以上の方法で扱われ得る。例えば、ユーザのアイデンティティは、当該ユーザに対して個人的に識別可能な情報が決定できないように扱われることができ、または、ユーザの地理的位置は一般化され、ユーザの特定の位置が決定されないように、位置情報は、(例えば、都市、ZIPコード、または州レベルのように)取得される。したがって、ユーザは、どの情報がユーザに関して収集されるか、その情報がどのように使用されるか、および、どの情報がユーザに提供されるかに対する制御を有し得る。
【0082】
上記の説明では、説明の目的で、本明細書の完全な理解を提供するために、多数の具体的な詳細が述べられている。しかしながら、当業者には、これらの具体的な詳細なしに本開示を実施できることが明らかであろう。いくつかの事例では、説明を不明瞭にすることを回避するために、構造およびデバイスがブロック図の形態で示される。たとえば、実施形態は、主にユーザインターフェイスおよび特定のハードウェアを参照して上記で説明され得る。しかしながら、実施形態は、データおよびコマンドを受信することができる任意のタイプのコンピューティングデバイス、ならびにサービスを提供する任意の周辺デバイスに適用できる。
【0083】
本明細書における「いくつかの実施形態」または「いくつかのインスタンス」への言及は、実施形態またはインスタンスに関連して説明される特定の特徴、構造、または特性が、当該説明の少なくとも1つの実装形態に含まれ得ることを意味する。本明細書の様々な箇所における「いくつかの実施形態では」という語句の出現は、必ずしも全てが同じ実施形態に言及しているわけではない。
【0084】
上記の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズムおよび記号表現に関して提示されている。これらのアルゴリズム的な記述および表現は、データ処理技術の当業者によって、彼らの仕事の内容を他の当業者に最も効果的に伝えるために使用される手段である。アルゴリズムは、ここでは、概して、所望の結果をもたらす複数のステップの自己矛盾のないシーケンスであると考えられる。当該複数のステップは、物理量の物理的操作を必要とするものである。通常、必ずしもではないが、これらの量は、記憶され、転送され、組み合わされ、比較され、さもなければ操作されることが可能な電気的または磁気的データの形態をとる。時には、主に共通に使用する理由から、これらのデータを、ビット、値、要素、シンボル、文字、項、数等と呼ぶことが便利であることが分かっている。
【0085】
しかし、これらおよび同様の用語の全ては、適切な物理量に関連付けられるものであり、これらの量に適用される便利なラベルにすぎないことに留意されたい。以下の議論から明らかであるように特に明記されない限り、説明全体を通して、「処理する」または「計算する」または「計算する」または「決定する」または「表示する」などを含む用語を利用する議論は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを操作し、または、コンピュータシステムメモリまたはレジスタまたは他のそのような情報記憶、伝送、もしくはディスプレイデバイス内の物理量として表される他のデータに変換するコンピュータシステム、または、同様の電子コンピューティングデバイスの動作およびプロセスを指すことを理解されたい。
【0086】
本明細書の実施形態はまた、上述の方法の1つ以上のステップを実行するためのプロセッサに関連し得る。プロセッサは、コンピュータに記憶されたコンピュータプログラムによって選択的に起動または再構成される専用プロセッサであり得る。そのようなコンピュータプログラムは、限定はしないが、光ディスク、ROM、CD-ROM、磁気ディスク、RAM、EPROM、EEPROM、磁気または光カード、不揮発性メモリを有するUSBキーを含むフラッシュメモリを含む任意のタイプのディスク、または、電子命令を記憶するのに適した任意のタイプの媒体を含む、非一時的コンピュータ可読記憶媒体に記憶されることができ、各々は、コンピュータシステムバスに結合される。
【0087】
本明細書は、いくつかの完全にハードウェアの実施形態、いくつかの完全にソフトウェアの実施形態、または、ハードウェア要素およびソフトウェア要素の両方を含むいくつかの実施形態の形態をとることができる。いくつかの実施形態では、本明細書は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、それらに限定されない、ソフトウェアで実現される。
【0088】
さらに、説明は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して使用するためのプログラムコードを提供するコンピュータが使用可能な又はコンピュータ読み取り可能な媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。本説明の目的のために、コンピュータが使用可能な又はコンピュータ読み取り可能な媒体は、当該命令実行システム、装置、またはデバイスによって、またはそれらと関連して使用するためのプログラムを、含む、記憶する、通信する、伝搬する、または移送することができる、任意の装置であり得る。
【0089】
プログラムコードを記憶または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを取り出さなければならない回数を減らすために少なくともいくつかのプログラムコードの一時的な記憶を提供するキャッシュメモリとを含み得る。
図1
図2
図3A
図3B
図3C
図3D
図4A
図4B
図4C
図4D
図4E
図5
【手続補正書】
【提出日】2023-10-25
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータで実行される方法であって、
メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を受信することと、
前記ユーザ入力を境界ボックスに変換することと、
前記境界ボックスに基づいて、前記メディアアイテムのクロップをセグメンテーション機械学習モデルに提供することと、
前記セグメンテーション機械学習モデルを用いて、前記メディアアイテムのクロップ内の1つ以上の細分化されたオブジェクトのためのセグメンテーションマスクと、前記セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力することとを含む、方法。
【請求項2】
前記境界ボックスは、座標軸に平行な境界ボックス、または、方向付けられた境界ボックスである、請求項1に記載の方法。
【請求項3】
前記ユーザ入力は、前記メディアアイテムを参照してなされた1つ以上のストロークを含む、請求項1に記載の方法。
【請求項4】
前記境界ボックスは、方向付けられた境界ボックスであり、前記方向付けられた境界ボックスの方向は、1つ以上のストロークのうちの少なくとも1つの方向と一致する、請求項3に記載の方法。
【請求項5】
前記メディアアイテムのクロップを提供する前に、前記セグメンテーション機械学習モデルは、複数のトレーニング画像およびグラウンドトルースセグメンテーションマスクを含む訓練データを使用してトレーニングされる、請求項1に記載の方法。
【請求項6】
閾値スコアを満たさない対応するセグメンテーションスコア、ピクセルの閾値数を下回る有効なマスクピクセルの数、閾値サイズを下回るセグメンテーションマスクサイズ、または、前記セグメンテーションマスクが前記ユーザ入力によって示される領域からの閾値距離よりも大きいこと、のうちの1つまたは複数に基づいて、セグメンテーションマスクが無効であると判定することと、
前記セグメンテーションマスクが無効であると判定することに応答して、前記ユーザ入力内の領域に基づいて異なるマスクを生成することとをさらに含む、請求項1に記載の方法。
【請求項7】
前記セグメンテーションマスクに一致するメディアアイテムの一部を修復して、出力メディアアイテムを取得することをさらに含み、前記1つ以上のオブジェクトは、前記出力メディアアイテムには存在しない、請求項1に記載の方法。
【請求項8】
前記修復は、修復機械学習モデルを使用して実行され、前記メディアアイテムおよび前記セグメンテーションマスクは、前記修復機械学習モデルへの入力として提供される、請求項7に記載の方法。
【請求項9】
出力されたメディアアイテムを含むユーザインターフェイスを提供することをさらに含む、請求項7に記載の方法。
【請求項10】
請求項1~9のいずれかに記載の方法を1つ以上のプロセッサに実行させるためのプログラム。
【請求項11】
コンピューティングデバイスであって、
プロセッサと、
前記プロセッサに結合されて、命令を記憶したメモリとを備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに以下の動作を実行させ、前記以下の動作は、
メディアアイテムから消去されるべき1つ以上のオブジェクトを示すユーザ入力を受信することと、
前記ユーザ入力を境界ボックスに変換することと、
前記境界ボックスに基づいて、前記メディアアイテムのクロップをセグメンテーション機械学習モデルに提供することと、
前記セグメンテーション機械学習モデルを用いて、前記メディアアイテムのクロップ内の1つ以上の細分化されたオブジェクトのためのセグメンテーションマスクと、前記セグメンテーションマスクの品質を示す対応するセグメンテーションスコアとを出力することを含む、コンピューティングデバイス。
【請求項12】
前記境界ボックスは、座標軸に平行な境界ボックス、または、方向付けられた境界ボックスである、請求項11に記載のコンピューティングデバイス。
【請求項13】
前記ユーザ入力は、前記メディアアイテムを参照してなされた1つ以上のストロークを含む、請求項11に記載のコンピューティングデバイス。
【請求項14】
前記境界ボックスは、方向付けられた境界ボックスであり、前記方向付けられた境界ボックスの方向は、1つ以上のストロークのうちの少なくとも1つの方向と一致する、請求項13に記載のコンピューティングデバイス。
【請求項15】
前記メディアアイテムのクロップを提供する前に、前記セグメンテーション機械学習モデルは、複数のトレーニング画像およびグラウンドトルースセグメンテーションマスクを含む訓練データを使用してトレーニングされる、請求項11に記載のコンピューティングデバイス。
【請求項16】
閾値スコアを満たさない対応するセグメンテーションスコア、ピクセルの閾値数を下回る有効なマスクピクセルの数、閾値サイズを下回るセグメンテーションマスクサイズ、または、前記セグメンテーションマスクが前記ユーザ入力によって示される領域からの閾値距離よりも大きいこと、のうちの1つまたは複数に基づいて、セグメンテーションマスクが無効であると判定することと、
前記セグメンテーションマスクが無効であると判定することに応答して、前記ユーザ入力内の領域に基づいて異なるマスクを生成することとをさらに含む、請求項11~15のいずれかに記載のコンピューティングデバイス。
【国際調査報告】