(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-16
(45)【発行日】2024-08-26
(54)【発明の名称】ズームアグノスティックウォーターマーク抽出
(51)【国際特許分類】
H04N 1/32 20060101AFI20240819BHJP
G06T 7/00 20170101ALI20240819BHJP
G06T 1/00 20060101ALI20240819BHJP
【FI】
H04N1/32 144
G06T7/00 350B
G06T1/00 500B
(21)【出願番号】P 2022561572
(86)(22)【出願日】2021-06-21
(86)【国際出願番号】 US2021038252
(87)【国際公開番号】W WO2022271145
(87)【国際公開日】2022-12-29
【審査請求日】2022-12-01
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】デイク・ヘ
(72)【発明者】
【氏名】ティアンハオ・ジャン
(72)【発明者】
【氏名】エルナズ・バルシャン・タシュニジ
(72)【発明者】
【氏名】シヤン・ルオ
(72)【発明者】
【氏名】フイウェン・チャン
(72)【発明者】
【氏名】フェン・ヤン
(72)【発明者】
【氏名】ライアン・マシュー・ハガーティ
【審査官】橘 高志
(56)【参考文献】
【文献】国際公開第2021/045781(WO,A1)
【文献】米国特許出願公開第2015/0030201(US,A1)
【文献】中国特許出願公開第112200710(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/32
G06T 7/00
G06T 1/00
(57)【特許請求の範囲】
【請求項1】
コンピュータ
により実施される方法であって、
ウォーターマーク検出装置によって画像を受信するステップと、
前記画像のうちの各々の特定の画像について、
前記ウォーターマーク検出装置によって、検出器機械学習モデルを使用して、前記特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定するステップであって、前記ウォーターマーク検出装置が、前記画像のうちの少なくとも1つにおいて前記視覚的に知覚不可能なウォーターマークを検出
し、前記検出器機械学習モデルが、あるデータセットの同じ画像の複数の異なるズーム後バージョンを生成するトレーニングプロセスを使用して様々なズームレベルにわたって画像内の前記視覚的に知覚不可能なウォーターマークを検出するようにトレーニングされている、ステップと、
前記特定の画像が前記視覚的に知覚不可能なウォーターマークを含むかどうかの判定に基づいて前記特定の画像を転送するステップであって、
前記ウォーターマーク検出装置が前記特定の画像内で前記視覚的に知覚不可能なウォーターマークを検出したことに応じて前記特定の画像をウォーターマークデコーダに転送するステップと、
前記ウォーターマーク検出装置が前記特定の画像内で前記視覚的に知覚不可能なウォーターマークを検出しなかったことに応じて前記特定の画像をさらなる処理から除外するステップとを含む、ステップと、
前記ウォーターマークデコーダによって、前記ウォーターマークデコーダに転送された前記特定の画像内で検出された前記視覚的に知覚不可能なウォーターマークを復号するステップと、
前記復号された視覚的に知覚不可能なウォーターマークから抽出されるデータに基づいて前記特定の画像内に示される項目を検証するステップとを含
む方法。
【請求項2】
検出器機械学習モデルを使用して前記特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定する前記ステップは、入力画像のある領域が前記視覚的に知覚不可能なウォーターマークを含むかどうかを、前記領域のピクセルごとの解析を必要としない前記領域の粗解析に基づいて判定するようにトレーニングされた検出器機械学習モデルを使用して、前記特定の画像が前記視覚的に知覚不可能なウォーターマークを含むかどうかを判定するステップを含む、請求項1に記載
の方法。
【請求項3】
前記特定の画像が前記視覚的に知覚不可能なウォーターマークを含むかどうかを判定する前記ステップは、
前記ウォーターマーク検出装置によって、前記特定の画像の前記領域内の符号化後ピクセルのセットを判定するステップと、
前記特定の画像の前記領域内の前記符号化後ピクセルの前記セットに基づいて前記特定の画像の前記領域を分類するステップであって、
前記符号化後ピクセルの前記セットがウォーターマーク条件を満たすことに応じて前記領域をウォーターマーク付けされた領域として分類するステップと、
前記符号化後ピクセルの前記セットが前記ウォーターマーク条件を満たさないことに応じて前記領域をウォーターマーク付けされていない領域として分類するステップとを含む、ステップとを含む、請求項2に記載
の方法。
【請求項4】
前記領域内のすべてのピクセルについてバイナリ1を出力して前記領域を前記視覚的に知覚不可能なウォーターマークを含む領域としてマーク付けするステップと、
前記バイナリ1を使用して前記画像についてのウォーターマークマップを生成するステップであって、前記ウォーターマークマップが、前記視覚的に知覚不可能なウォーターマークを含む前記
ウォーターマークマップの領域を示す、ステップとをさらに含む、請求項3に記載
の方法。
【請求項5】
前記ウォーターマークを復号する前記ステップは、前記画像内に示される項目のズームレベルにはかかわらず前記特定の画像内の視覚的に知覚不可能なウォーターマークに対してトレーニングされたデコーダ機械学習モデルを使用して前記ウォーターマークを復号するステップを含む、請求項1に記載
の方法。
【請求項6】
それぞれに異なるズームレベルにおいてそれぞれに異なる画像ひずみを用いてウォーターマーク付けされた項目を示す複数のトレーニング画像を含むトレーニング画像のセットを使用して前記デコーダ機械学習モデルをトレーニングするステップをさらに含む、請求項5に記載
の方法。
【請求項7】
RGB符号なし整数によって表される画像を使用して浮動小数点数において前記デコーダ機械学習モデルをトレーニングすることによって生じるモデル性能欠陥を防止するようにトレーニング画像のセットを前処理するステップをさらに含む、請求項5に記載
の方法。
【請求項8】
システムであって、
データ記憶デバイスと、
1つまたは複数のプロセッサを含むウォーターマーク検出装置であって、前記プロセッサが、動作を実行するように構成され、前記動作が、
検出器機械学習モデルを使用して、特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定することであって、前記ウォーターマーク検出装置が、前記画像のうちの少なくとも1つにおいて前記視覚的に知覚不可能なウォーターマークを検出
し、前記検出器機械学習モデルが、あるデータセットの同じ画像の複数の異なるズーム後バージョンを生成するトレーニングプロセスを使用して様々なズームレベルにわたって画像内の前記視覚的に知覚不可能なウォーターマークを検出するようにトレーニングされている、判定することと、
前記特定の画像が前記視覚的に知覚不可能なウォーターマークを含むかどうかの判定に基づいて前記特定の画像を転送することであって、
前記ウォーターマーク検出装置が前記特定の画像内で前記視覚的に知覚不可能なウォーターマークを検出したことに応じて前記特定の画像をウォーターマークデコーダに転送することと、
前記ウォーターマーク検出装置が前記特定の画像内で前記視覚的に知覚不可能なウォーターマークを検出しなかったことに応じて前記特定の画像をさらなる処理から除外することとを含む、転送することとを含むウォーターマーク検出装置と、
1つまたは複数のプロセッサを含むウォーターマークデコーダであって、動作を実行するように構成され、前記動作が、前記ウォーターマークデコーダによって、前記ウォーターマークデコーダに転送された前記特定の画像内で検出された前記視覚的に知覚不可能なウォーターマークを復号することを含むウォーターマークデコーダとを備え、前記システムは、前記復号された視覚的に知覚不可能なウォーターマークから抽出されるデータに基づいて前記特定の画像内に示される項目を検証することを含む動作を実行するように構成されるシステム。
【請求項9】
検出器機械学習モデルを使用して前記特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを前記判定することは、入力画像のある領域が前記視覚的に知覚不可能なウォーターマークを含むかどうかを、前記領域のピクセルごとの解析を必要としない前記領域の粗解析に基づいて判定するようにトレーニングされた検出器機械学習モデルを使用して、前記特定の画像が前記視覚的に知覚不可能なウォーターマークを含むかどうかを判定することを含む、請求項8に記載のシステム。
【請求項10】
前記特定の画像が前記視覚的に知覚不可能なウォーターマークを含むかどうかを前記判定することは、
前記ウォーターマーク検出装置によって、前記特定の画像の前記領域内の符号化後ピクセルのセットを判定することと、
前記特定の画像の前記領域内の前記符号化後ピクセルの前記セットに基づいて前記特定の画像の前記領域を分類することであって、
前記符号化後ピクセルの前記セットがウォーターマーク条件を満たすことに応じて前記領域をウォーターマーク付けされた領域として分類することと、
前記符号化後ピクセルの前記セットが前記ウォーターマーク条件を満たさないことに応じて前記領域をウォーターマーク付けされていない領域として分類することとを含む、分類することとを含む、請求項9に記載のシステム。
【請求項11】
前記領域内のすべてのピクセルについてバイナリ1を出力して前記領域を前記視覚的に知覚不可能なウォーターマークを含む領域としてマーク付けすることと、
前記バイナリ1を使用して前記画像についてのウォーターマークマップを生成することであって、前記ウォーターマークマップが、前記視覚的に知覚不可能なウォーターマークを含む前記
ウォーターマークマップの領域を示す、生成することとをさらに含む、請求項10に記載のシステム。
【請求項12】
前記ウォーターマークを前記復号することは、前記画像内に示される項目のズームレベルにはかかわらず前記特定の画像内の視覚的に知覚不可能なウォーターマークに対してトレーニングされたデコーダ機械学習モデルを使用して前記ウォーターマークを復号することを含む、請求項8に記載のシステム。
【請求項13】
それぞれに異なるズームレベルにおいてそれぞれに異なる画像ひずみを用いてウォーターマーク付けされた項目を示す複数のトレーニング画像を含むトレーニング画像のセットを使用して前記デコーダ機械学習モデルをトレーニングすることをさらに含む、請求項12に記載のシステム。
【請求項14】
RGB符号なし整数によって表される画像を使用して浮動小数点数において前記デコーダ機械学習モデルをトレーニングすることによって生じるモデル性能欠陥を防止するようにトレーニング画像のセットを前処理することをさらに含む、請求項12に記載のシステム。
【請求項15】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のデータ処理装置によって実行されると、前記1つまたは複数のデータ処理装置に動作を実行させ、前記動作が、
ウォーターマーク検出装置によって画像を受信することと、
前記画像のうちの各々の特定の画像について、
前記ウォーターマーク検出装置によって、検出器機械学習モデルを使用して、前記特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定することであって、前記ウォーターマーク検出装置が、前記画像のうちの少なくとも1つにおいて前記視覚的に知覚不可能なウォーターマークを検出
し、前記検出器機械学習モデルが、あるデータセットの同じ画像の複数の異なるズーム後バージョンを生成するトレーニングプロセスを使用して様々なズームレベルにわたって画像内の前記視覚的に知覚不可能なウォーターマークを検出するようにトレーニングされている、判定することと、
前記特定の画像が前記視覚的に知覚不可能なウォーターマークを含むかどうかの判定に基づいて前記特定の画像を転送することであって、
前記ウォーターマーク検出装置が前記特定の画像内で前記視覚的に知覚不可能なウォーターマークを検出したことに応じて前記特定の画像をウォーターマークデコーダに転送することと、
前記ウォーターマーク検出装置が前記特定の画像内で前記視覚的に知覚不可能なウォーターマークを検出しなかったことに応じて前記特定の画像をさらなる処理から除外することとを含む、転送することと、
前記ウォーターマークデコーダによって、前記ウォーターマークデコーダに転送された前記特定の画像内で検出された前記視覚的に知覚不可能なウォーターマークを復号することと、
前記復号された視覚的に知覚不可能なウォーターマークから抽出されるデータに基づいて前記特定の画像内に示される項目を検証することとを含むコンピュータ可読記憶媒体。
【請求項16】
検出器機械学習モデルを使用して前記特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを前記判定することは、入力画像のある領域が前記視覚的に知覚不可能なウォーターマークを含むかどうかを、前記領域のピクセルごとの解析を必要としない前記領域の粗解析に基づいて判定するようにトレーニングされた検出器機械学習モデルを使用して、前記特定の画像が前記視覚的に知覚不可能なウォーターマークを含むかどうかを判定することを含む、請求項15に記載のコンピュータ可読記憶媒体。
【請求項17】
前記特定の画像が前記視覚的に知覚不可能なウォーターマークを含むかどうかを前記判定することは、
前記ウォーターマーク検出装置によって、前記特定の画像の前記領域内の符号化後ピクセルのセットを判定することと、
前記特定の画像の前記領域内の前記符号化後ピクセルの前記セットに基づいて前記特定の画像の前記領域を分類することであって、
前記符号化後ピクセルの前記セットがウォーターマーク条件を満たすことに応じて前記領域をウォーターマーク付けされた領域として分類することと、
前記符号化後ピクセルの前記セットが前記ウォーターマーク条件を満たさないことに応じて前記領域をウォーターマーク付けされていない領域として分類することとを含む、分類することとを含む、請求項16に記載のコンピュータ可読記憶媒体。
【請求項18】
前記領域内のすべてのピクセルについてバイナリ1を出力して前記領域を前記視覚的に知覚不可能なウォーターマークを含む領域としてマーク付けすることと、
前記バイナリ1を使用して前記画像についてのウォーターマークマップを生成することであって、前記ウォーターマークマップが、前記視覚的に知覚不可能なウォーターマークを含む前記
ウォーターマークマップの領域を示す、生成することとをさらに含む、請求項17に記載のコンピュータ可読記憶媒体。
【請求項19】
前記ウォーターマークを前記復号することは、前記画像内に示される項目のズームレベルにはかかわらず前記特定の画像内の視覚的に知覚不可能なウォーターマークに対してトレーニングされたデコーダ機械学習モデルを使用して前記ウォーターマークを復号することを含む、請求項15に記載のコンピュータ可読記憶媒体。
【請求項20】
それぞれに異なるズームレベルにおいてそれぞれに異なる画像ひずみを用いてウォーターマーク付けされた項目を示す複数のトレーニング画像を含むトレーニング画像のセットを使用して前記デコーダ機械学習モデルをトレーニングすることをさらに含む、請求項19に記載のコンピュータ可読記憶媒体。
【請求項21】
RGB符号なし整数によって表される画像を使用して浮動小数点数において前記デコーダ機械学習モデルをトレーニングすることによって生じるモデル性能欠陥を防止するようにトレーニング画像のセットを前処理することをさらに含む、請求項19に記載のコンピュータ可読記憶媒体。
【請求項22】
コンピュータ
により実施される方法であって、
1つまたは複数のプロセッサによって、視覚的に知覚不可能なウォーターマークを含むトレーニング画像のセットを取得するステップと、
前記1つまたは複数のプロセッサによって、前記トレーニング画像の前記セットのうちの画像をひずませてひずんだ画像を作成するステップであって、前記画像内に示される項目のズームレベルを変更してズーム後画像を作成するステップを含む、ステップと、
前記1つまたは複数のプロセッサによって、前記ひずんだ画像を使用して、入力画像の複数のズームレベルにわたって前記入力画像内の視覚的に知覚不可能なウォーターマークを復号するようにズームアグノスティックウォーターマークデコーダモデルをトレーニングするステップと、
前記ズームアグノスティックウォーターマークデコーダモデルを展開して入力画像内で複数の異なるズームレベルにおいて視覚的に知覚不可能なウォーターマークを復号するステップとを含
む方法。
【請求項23】
前記トレーニング画像の前記セットのうちの画像をひずませてひずんだ画像を作成する前記ステップは、前記画像をそれぞれに異なる画像ファイルフォーマットに変換するかまたは前記画像の解像度を修正するステップを含む、請求項22に記載
の方法。
【請求項24】
前記トレーニング画像の前記セットのうちの各画像について、前記画像内のピクセルの色を表す浮動小数点数を丸めて、前記ピクセルの色を表す浮動小数点数と前記画像を記憶するために使用されるRGB符号なし整数との間の不一致によって生じるモデル性能欠陥を防止するステップを含む、前記トレーニング画像の前記セットのうちの前記画像を前処理するステップをさらに含む、請求項22に記載
の方法。
【請求項25】
前記画像内のピクセルの色を表す浮動小数点数を丸める前記ステップは、
通常の丸めを使用して前記浮動小数点数を丸めるステップと、
切捨てを使用して前記浮動小数点数を丸めるステップとを含む、請求項
24に記載
の方法。
【請求項26】
前記画像内に示される項目のズームレベルを変更してズーム後画像を作成する前記ステップは、各ズーム後画像において、前記トレーニング画像の前記セットのうちの画像内の単一のピクセルを表すために使用されるピクセルの数を変更するステップを含む、請求項22に記載
の方法。
【請求項27】
ズームアグノスティックウォーターマークデコーダモデルをトレーニングする前記ステップは、前記トレーニング画像の前記セットのうちの同じ画像から作成された2つの異なるズーム後画像を使用して前記ズームアグノスティックウォーターマークデコーダモデルをトレーニングするステップであって、前記2つの異なるズーム後画像の各々が異なる数のピクセルを使用して前記同じ画像の単一のピクセルを表す、ステップを含む、請求項26に記載
の方法。
【請求項28】
前記1つまたは複数のプロセッサによって、前記ズーム後画像を使用して、前記入力画像の複数のズームレベルにわたって前記入力画像内の前記視覚的に知覚不可能なウォーターマークが存在することを検出するズームアグノスティックウォーターマークデコーダモデルをトレーニングするステップであって、前記検出が、前記視覚的に知覚不可能なウォーターマークの復号とは無関係に実行される、ステップをさらに含む、請求項22に記載
の方法。
【請求項29】
システムであって、
データ記憶デバイスと、
動作を実行するように構成された1つまたは複数のプロセッサであって、前記動作が、
前記1つまたは複数のプロセッサによって、視覚的に知覚不可能なウォーターマークを含むトレーニング画像のセットを取得することと、
前記1つまたは複数のプロセッサによって、前記トレーニング画像の前記セットのうちの画像をひずませてひずんだ画像を作成することであって、前記画像内に示される項目のズームレベルを変更してズーム後画像を作成することを含む、ひずませて作成することと、
前記1つまたは複数のプロセッサによって、前記ひずんだ画像を使用して、入力画像の複数のズームレベルにわたって前記入力画像内の視覚的に知覚不可能なウォーターマークを復号するようにズームアグノスティックウォーターマークデコーダモデルをトレーニングすることと、
前記ズームアグノスティックウォーターマークデコーダモデルを展開して入力画像内で複数の異なるズームレベルにおいて視覚的に知覚不可能なウォーターマークを復号することとを含む1つまたは複数のプロセッサとを含むシステム。
【請求項30】
前記トレーニング画像の前記セットのうちの画像をひずませてひずんだ画像を作成する前記ひずませて作成することは、前記画像をそれぞれに異なる画像ファイルフォーマットに変換するかまたは前記画像の解像度を修正することを含む、請求項29に記載のシステム。
【請求項31】
前記トレーニング画像の前記セットのうちの各画像について、前記画像内のピクセルの色を表す浮動小数点数を丸めて、前記ピクセルの色を表す浮動小数点数と前記画像を記憶するために使用されるRGB符号なし整数との間の不一致によって生じるモデル性能欠陥を防止することを含む、前記トレーニング画像の前記セットのうちの前記画像を前処理することをさらに含む、請求項29に記載のシステム。
【請求項32】
前記画像内のピクセルの色を表す浮動小数点数を前記丸めることは、
通常の丸めを使用して前記浮動小数点数を丸めることと、
切捨てを使用して前記浮動小数点数を丸めることとを含む、請求項
31に記載のシステム。
【請求項33】
前記画像内に示される項目のズームレベルを変更してズーム後画像を作成する前記変更して作成することは、各ズーム後画像において、前記トレーニング画像の前記セットのうちの画像内の単一のピクセルを表すために使用されるピクセルの数を変更することを含む、請求項29に記載のシステム。
【請求項34】
ズームアグノスティックウォーターマークデコーダモデルを前記トレーニングすることは、前記トレーニング画像の前記セットのうちの同じ画像から作成された2つの異なるズーム後画像を使用して前記ズームアグノスティックウォーターマークデコーダモデルをトレーニングすることであって、前記2つの異なるズーム後画像の各々が異なる数のピクセルを使用して前記同じ画像の単一のピクセルを表す、トレーニングすることを含む、請求項33に記載のシステム。
【請求項35】
前記1つまたは複数のプロセッサによって、前記ズーム後画像を使用して、前記入力画像の複数のズームレベルにわたって前記入力画像内の前記視覚的に知覚不可能なウォーターマークが存在することを検出するズームアグノスティックウォーターマークデコーダモデルをトレーニングすることであって、前記検出が、前記視覚的に知覚不可能なウォーターマークの復号とは無関係に実行される、トレーニングすることをさらに含む、請求項29に記載のシステム。
【請求項36】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のデータ処理装置によって実行されると、前記1つまたは複数のデータ処理装置に動作を実行させ、前記動作が、
1つまたは複数のプロセッサによって、視覚的に知覚不可能なウォーターマークを含むトレーニング画像のセットを取得することと、
前記1つまたは複数のプロセッサによって、前記トレーニング画像の前記セットのうちの画像をひずませてひずんだ画像を作成することであって、前記画像内に示される項目のズームレベルを変更してズーム後画像を作成することを含む、ひずませて作成することと、
前記1つまたは複数のプロセッサによって、前記ひずんだ画像を使用して、入力画像の複数のズームレベルにわたって前記入力画像内の視覚的に知覚不可能なウォーターマークを復号するようにズームアグノスティックウォーターマークデコーダモデルをトレーニングすることと、
前記ズームアグノスティックウォーターマークデコーダモデルを展開して入力画像内で複数の異なるズームレベルにおいて視覚的に知覚不可能なウォーターマークを復号することとを含むコンピュータ可読記憶媒体。
【請求項37】
前記トレーニング画像の前記セットのうちの画像をひずませてひずんだ画像を作成する前記ひずませて作成することは、前記画像をそれぞれに異なる画像ファイルフォーマットに変換するかまたは前記画像の解像度を修正することを含む、請求項36に記載のコンピュータ可読記憶媒体。
【請求項38】
前記トレーニング画像の前記セットのうちの各画像について、前記画像内のピクセルの色を表す浮動小数点数を丸めて、前記ピクセルの色を表す浮動小数点数と前記画像を記憶するために使用されるRGB符号なし整数との間の不一致によって生じるモデル性能欠陥を防止することを含む、前記トレーニング画像の前記セットのうちの前記画像を前処理することをさらに含む、請求項36に記載のコンピュータ可読記憶媒体。
【請求項39】
前記画像内のピクセルの色を表す浮動小数点数を前記丸めることは、
通常の丸めを使用して前記浮動小数点数を丸めることと、
切捨てを使用して前記浮動小数点数を丸めることとを含む、請求項
38に記載のコンピュータ可読記憶媒体。
【請求項40】
前記画像内に示される項目のズームレベルを変更してズーム後画像を作成する前記変更して作成することは、各ズーム後画像において、前記トレーニング画像の前記セットのうちの画像内の単一のピクセルを表すために使用されるピクセルの数を変更することを含む、請求項36に記載のコンピュータ可読記憶媒体。
【請求項41】
ズームアグノスティックウォーターマークデコーダモデルを前記トレーニングすることは、前記トレーニング画像の前記セットのうちの同じ画像から作成された2つの異なるズーム後画像を使用して前記ズームアグノスティックウォーターマークデコーダモデルをトレーニングすることであって、前記2つの異なるズーム後画像の各々が異なる数のピクセルを使用して前記同じ画像の単一のピクセルを表す、トレーニングすることを含む、請求項40に記載のコンピュータ可読記憶媒体。
【請求項42】
前記1つまたは複数のプロセッサによって、前記ズーム後画像を使用して、前記入力画像の複数のズームレベルにわたって前記入力画像内の前記視覚的に知覚不可能なウォーターマークが存在することを検出するズームアグノスティックウォーターマークデコーダモデルをトレーニングすることであって、前記検出が、前記視覚的に知覚不可能なウォーターマークの復号とは無関係に実行される、トレーニングすることをさらに含む、請求項36に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は概して、データ処理および画像からウォーターマークを復元するための技法に関する。
【背景技術】
【0002】
インターネットなどのネットワーク化環境では、ファーストパーティコンテンツプロバイダは電子文書、たとえば、ウェブページまたはアプリケーションインターフェースにおいて提示するための情報を提供することができる。文書は、ファーストパーティコンテンツプロバイダによって提供されるファーストパーティコンテンツと、サードパーティコンテンツプロバイダ(たとえば、ファーストパーティコンテンツプロバイダとは異なるコンテンツプロバイダ)によって提供されるサードパーティコンテンツとを含むことができる。
【0003】
サードパーティコンテンツは、様々な技法を使用して電子文書に追加することができる。たとえば、いくつかの文書は、文書が提示されるクライアントデバイスに、サードパーティコンテンツプロバイダから(たとえば、ファーストパーティコンテンツを提供するサーバとは異なるドメインにおけるサーバから)直接サードパーティコンテンツ項目を要求するよう指示するタグを含む。他の文書は、複数のサードパーティコンテンツプロバイダと提携する中間サービスを呼び出してサードパーティコンテンツプロバイダのうちの1つまたは複数から選択されたサードパーティコンテンツ項目を返すようクライアントデバイスに指示するタグを含む。いくつかの例では、電子文書に提示するためにサードパーティコンテンツ項目は動的に選択され、文書の所与のサービングに選択される特定のサードパーティコンテンツ項目は、同じ文書の他のサービングに選択されるサードパーティコンテンツ項目とは異なる場合がある。
【先行技術文献】
【非特許文献】
【0004】
【文献】Ronneberger O.、Fischer P.、Brox T.、(2015) "U-Net: Convolutional Networks for Biomedical Image Segmentation." In: Navab N.、Hornegger J.、Wells W.、Frangi A. (eds)、Medical Image Computing and Computer-Assisted Intervention - MICCAI 2015、MICCAI 2015.、Lecture Notes in Computer Science、Vol 9351、Springer、Cham. https://doi.org/10.1007/978-3-319-24574-4_28
【発明の概要】
【課題を解決するための手段】
【0005】
概して、本明細書で説明する主題の1つの発明的態様は、ウォーターマーク検出装置によって、画像を受信する動作と、画像のうちの各々の特定の画像について、ウォーターマーク検出装置によって、検出器機械学習モデルを使用して特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定する動作であって、ウォーターマーク検出装置が、画像のうちの少なくとも1つにおいて視覚的に知覚不可能なウォーターマークを検出する、動作と、特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかの判定に基づいて特定の画像を転送する動作であって、ウォーターマーク検出装置が視覚的に知覚不可能なウォーターマークを特定の画像において検出したことに応じて特定の画像をウォーターマークデコーダに転送する動作と、ウォーターマーク検出装置が視覚的に知覚不可能なウォーターマークを特定の画像において検出しなかったことに応じて特定の画像をさらなる処理から除外する動作とを含む、動作と、ウォーターマークデコーダによって、ウォーターマークデコーダに転送された特定の画像内で検出された視覚的に知覚不可能なウォーターマークを復号する動作と、復号された視覚的に知覚不可能なウォーターマークから抽出されるデータに基づいて特定の画像内に示される項目を検証する動作とを含む方法において具体化することができる。
【0006】
これらのおよび他の実装形態は、各々、以下の特徴のうちの1つまたは複数の随意に含むことができる。いくつかの態様では、検出器機械学習モデルを使用して特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定することは、入力画像のある領域が視覚的に知覚不可能なウォーターマークを含むかどうかを、その領域のピクセルごとの解析を必要としないその領域の解析に基づいて判定するようにトレーニングされた検出器機械学習モデルを使用して、特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定することを含む。
【0007】
いくつかの態様では、特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定することは、ウォーターマーク検出装置によって、特定の画像のその領域内の符号化後ピクセルのセットを判定することと、特定の画像のその領域内の符号化後ピクセルのセットに基づいて特定の画像のその領域を分類することであって、符号化後ピクセルのセットがウォーターマーク条件を満たすことに応じてその領域をウォーターマーク付けされた領域として分類することと、符号化後ピクセルのセットがウォーターマーク条件を満たさないことに応じてその領域をウォーターマーク付けされていない領域として分類することとを含む、分類することとを含む。
【0008】
いくつかの態様では、特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定することは、その領域を視覚的に知覚不可能なウォーターマークを含む領域としてマーク付けするためにその領域内のすべてのピクセルについてバイナリ1を出力することと、バイナリ1を使用して画像についてのウォーターマークマップを生成することであって、ウォーターマークマップが、視覚的に知覚不可能なウォーターマークを含むマップの領域を示す、生成することとを含む。
【0009】
いくつかの態様では、ウォーターマークを復号することは、画像内に示される項目のズームレベルにはかかわらず特定の画像内の視覚的に知覚不可能なウォーターマークに対してトレーニングされたデコーダ機械学習モデルを使用してウォーターマークを復号することを含む。
【0010】
いくつかの態様では、トレーニング画像のセットを使用してデコーダ機械学習モデルをトレーニングすることは、ウォーターマーク付けされた項目をそれぞれに異なるズームレベルにおいてそれぞれに異なる画像ひずみを用いて示す複数のトレーニング画像を含む。
【0011】
いくつかの態様では、RGB符号なし整数によって表される画像を使用して浮動小数点数においてデコーダ機械学習モデルをトレーニングすることによって生じるモデル性能欠陥を防止するようにトレーニング画像のセットを前処理すること。
【0012】
いくつかの態様では、ズームアグノスティックウォーターマークデコーダモデルを展開することは、1つまたは複数のプロセッサによって、視覚的に知覚不可能なウォーターマークを含むトレーニング画像のセットを取得することと、1つまたは複数のプロセッサによって、トレーニング画像のセットのうちの画像をひずませてひずんだ画像を作成することであって、画像内に示される項目のズームレベルを変更してズーム後画像を作成することを含む、ひずませて作成することと、1つまたは複数のプロセッサによって、ひずんだ画像を使用して、入力画像の複数のズームレベルにわたって入力画像内の視覚的に知覚不可能なウォーターマークを復号するようにズームアグノスティックウォーターマークデコーダモデルをトレーニングすることと、ズームアグノスティックウォーターマークデコーダモデルを展開して入力画像内でそれぞれに異なるズームレベルにおいて視覚的に知覚不可能なウォーターマークを復号することとを含む。
【0013】
いくつかの態様では、トレーニング画像のセットのうちの画像をひずませてひずんだ画像を作成することは、画像をそれぞれに異なる画像ファイルフォーマットに変換するかまたは画像の解像度を修正することを含む。
【0014】
いくつかの態様では、トレーニング画像のセットのうちの画像を前処理することは、トレーニング画像のセットのうちの各画像について、画像内のピクセルの色を表す浮動小数点数を丸めて、ピクセルの色を表す浮動小数点数と画像を記憶するために使用されるRGB符号なし整数との間の不一致によって生じるモデル性能欠陥を防止することを含む。
【0015】
いくつかの態様では、画像内のピクセルの色を表す浮動小数点数を丸めることは、通常の丸めを使用して浮動小数点数を丸めることと切捨てを使用して浮動小数点数を丸めることとを含む。
【0016】
いくつかの態様では、画像内に示される項目のズームレベルを変更してズーム後画像を作成することは、各ズーム後画像において、トレーニング画像のセットのうちの画像内の単一のピクセルを表すために使用されるピクセルの数を変更することを含む。
【0017】
いくつかの態様では、ズームアグノスティックウォーターマークデコーダモデルをトレーニングすることは、トレーニング画像のセットのうちの同じ画像から作成された2つの異なるズーム後画像を使用してズームアグノスティックウォーターマークデコーダモデルをトレーニングすることであって、2つの異なるズーム後画像の各々が異なる数のピクセルを使用して同じ画像の単一のピクセルを表す、トレーニングすることを含む。
【0018】
いくつかの態様では、ズームアグノスティックウォーターマークデコーダモデルを展開することは、1つまたは複数のプロセッサによって、ズーム後画像を使用して、入力画像の複数のズームレベルにわたって入力画像内の視覚的に知覚不可能なウォーターマークが存在することを検出するズームアグノスティックウォーターマーク検出モデルをトレーニングすることであって、検出が、視覚的に知覚不可能なウォーターマークの復号とは無関係に実行される、トレーニングすることをさらに含むことができる。
【0019】
本明細書で説明される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するために実装することができる。視覚的に知覚不可能なウォーターマークは、簡略して単に「ウォーターマーク」とも呼ばれ、(たとえば、ウェブサイト、ストリーミングビデオ、またはネイティブアプリケーションにおいて)ファーストパーティコンテンツを提示されるサードパーティコンテンツのソースを判定するために使用することができる。このようなウォーターマークは、以前よりも効率的に抽出し復号することができる。たとえば、本明細書で説明するウォーターマーク抽出および復号技法は、初期検出プロセスを実施し、初期検出プロセスは、画像に含まれ得るウォーターマークを復号することを試みる前に入力画像内のウォーターマークが存在することを検出する。このことは、復号に関与するコンピュータリソースを考慮することによって動機付けられ、このようなコンピュータリソースは、(復号プロセスに対して)計算コストが低い検出プロセスを使用してウォーターマークを含まない画像を除外し、それによって、計算コストのより高い復号プロセスによってそのような入力画像を処理するのに必要な時間リソースと計算リソースの両方を節約することによって低減させることができる。言い換えれば、画像を完全に処理し、あらゆる画像内のウォーターマークを復号することを試みる代わりに、検出プロセスの最初に、画像がウォーターマークを含むかどうかを判定することができ、一方、復号プロセスを実行する場合よりも使用するコンピューティングリソースが少なくなり、必要な時間が短くなる。このようにして、復号プロセスを開始する前に検出プロセスを使用すると、ウォーターマークを含まない画像をより迅速に除外し、それによって、処理する必要のあるデータの量を低減させることによって、コンピューティングリソースが節約され、実際にウォーターマークを含む画像をより高速に特定し解析することが可能になる。これに対して、ウォーターマーク付けされた画像の検出と復号の両方について復号プロセスにのみ依存する技法、または検出プロセスをフィルタ機構として使用しないプロセスは、計算コストがより高くなる。
【0020】
本明細書で説明する検出および復号プロセスは、ズームアグノスティックであり、すなわち、画像がキャプチャされるズームレベルとは無関係にウォーターマークを直接検出および/または復号することができる。より詳細には、本明細書で説明する技法は、最初に提示されたコンテンツの再生データ内の(たとえば、コンテンツの写真またはスクリーンショット内の)ウォーターマークを検出し復号するために使用され、最初に提示されたコンテンツがキャプチャされるズームレベルは、キャプチャされる例ごとに(たとえば、写真ごとに)異なる。本明細書で説明する技法がない場合、入力画像内のウォーターマークの検出および/または復号(たとえば、クライアントデバイスにおいて提示されるコンテンツの写真などの再生データ)において、複数の異なるズームレベルで入力画像を解析することが必要になり、コンピューティングリソースおよび時間の無駄になる。したがって、開示する方法の実装形態は、ウォーターマークを検出または復号するために画像をそれぞれに異なるズームレベルで繰り返し解析するのに必要な計算リソースを低減させることによって動機付けされる。本明細書で説明する技法は、入力画像を複数の異なるズームレベルで繰り返し解析する必要なしに入力画像内でウォーターマークを検出し復号するようにトレーニングされたモデルを利用する。本明細書で説明する技法はまた、画像圧縮技法(たとえば、JPEG圧縮)によって生じるひずみなどの他のひずみを有する入力画像内のウォーターマークの正確な検出および復号を可能にする。
【0021】
検出および/または復号モデル性能は、トレーニングデータに対する数値丸めを使用することによって改善される(たとえば、モデルがより正確になる)。たとえば、キャプチャされた画像は一般に、符号なしRGB整数として記憶されるが、モデルトレーニングは、浮動小数点数を使用して実行される。この不一致は一般に、モデル性能に実質的に影響を与えないときには無視されるが、画像からウォーターマークを検出/復号する際には、各ピクセルが重要であり、それによって、符号なしRGB整数とトレーニングに使用される浮動小数点数との間の不一致によって生じるモデル性能の低下によって、モデル性能が許容できなくなる場合がある。したがって、丸め技法を浮動小数点数に適用してモデルトレーニング、ならびに入力画像内のウォーターマークを検出しおよび/または復号するトレーニング済みモデルの能力を向上させることができる。
【0022】
本明細書で説明される主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0023】
【
図1】電子文書をウォーターマーク画像とともにクライアントデバイスに送信するためのコンピューティング環境のブロック図である。
【
図2】画像を2次元バイナリクイックレスポンスコード(QRコード(登録商標))の形式で符号化する例の図である。
【
図3】画像解析およびデコーダモジュールのブロック図である。
【
図4】キャプチャされたソース画像(たとえば、スクリーンショット)が1つまたは複数のウォーターマーク付け画像を用いて符号化されているかどうかを予測する例示的なプロセスの流れ図である。
【
図5】ズームアグノスティック機械学習モデル(デコーダ機械学習モデル)をトレーニングする例示的なプロセスの流れ図である。
【
図6】1つまたは複数のウォーターマーク付け画像を含むキャプチャされたソース画像(たとえば、スクリーンショット)を復号する例示的なプロセスの流れ図である。
【
図7】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0024】
本明細書では、コンテンツのキャプチャされた再生データ(たとえば、クライアントデバイスにおいて提示されるコンテンツのデジタル写真)内の視覚的に知覚不可能なウォーターマークを検出して復号するためのシステム、方法、デバイス、および技法について説明する。以下の説明では視覚的に知覚不可能なウォーターマークに関するウォーターマーク検出について説明するが、この技法は視覚的に知覚可能なウォーターマークに適用することもできる。視覚的に知覚不可能なウォーターマークは、簡略して単に「ウォーターマーク」と呼ばれ、半透明であり、通常の視認条件において人間のユーザには視覚的に知覚不可能であり、それによって、ウォーターマークは、コンテンツの視覚的品質を低下させずにコンテンツに埋め込まれることができる。ウォーターマークは、ウォーターマークが埋め込まれた画像のソースの識別子などの情報を伝えることができる。たとえば、インターネットのコンテキストでは、ウォーターマークは、(数ある情報の中で特に)パブリッシャーのプロパティ(たとえば、ウェブサイト、ビデオストリーム、ビデオゲーム、またはモバイルアプリケーション)がユーザによってアクセスされるときにパブリッシャーのプロパティ上にコンテンツを配置したエンティティ、サーバ、またはサービスを特定することができる。したがって、パブリッシャーのプロパティ上に提示されたコンテンツの再生データ(たとえば、コンテンツの写真またはスクリーンショット)がキャプチャされてサブミットされ検証されるときに、ウォーターマークを検出し復号して、コンテンツが実際に適切なエンティティ、サーバ、またはサービスによって配信されたかどうかを検証することができる。
【0025】
以下で詳細に説明するように、ウォーターマークの検出および復号は、画像がキャプチャされるズームレベルとは無関係にウォーターマークを検出し復号するようにトレーニングされた機械学習モデルによって実行することができる。たとえば、同じコンテンツが2人の異なるユーザの2つの異なるクライアントデバイスにおいて提示されると仮定する。この例では、一方のクライアントデバイスの表示特性によって、他方のクライアントデバイスにおいて提示される(たとえば、2×ズーム)コンテンツの2倍のサイズ(たとえば、4×ズーム)でコンテンツを提示させてもよい。したがって、各ユーザが(たとえば、スクリーンキャプチャアプリケーションまたはデジタルカメラを使用して)コンテンツの提示データを同じズームレベルでキャプチャする場合でも、キャプチャされたコンテンツの再生データはそれぞれに異なるズームレベルになる。もちろん、コンテンツが各クライアントデバイス上に同じサイズで提示された場合でも、(たとえば、スクリーンキャプチャアプリケーションまたはデジタルカメラを使用して)コンテンツの提示データがキャプチャされるズームレベルの違いによって、コンテンツの再生データはそれぞれに異なるズームレベルになる。いずれの場合も、本明細書で説明するモデルは、ズームレベルの違いにかかわらずにコンテンツのキャプチャされた画像の各々からウォーターマークを検出し復号することができる。
【0026】
図1は、ウォーターマーク検出装置132を実装するネットワーク化環境100のブロック図である。環境100は、サーバシステム102と、クライアントデバイス104と、1つまたは複数の画像プロバイダ106a~106n用のコンピューティングシステムとを含む。サーバシステム102、クライアントデバイス104、および画像プロバイダ106a~106nは、インターネットまたはローカルエリアネットワーク(LAN)などの1つもしくは複数のネットワーク上で接続される。一般に、クライアントデバイス104は、電子文書を求める要求を生成してサーバシステム102に送信するように構成される。クライアントデバイス104からの要求に基づいて、サーバシステム102は、クライアントデバイス104に返す応答データ(たとえば、電子文書)を生成する。所与の応答データには、クライアントデバイス104のユーザに表示するように構成されたソース画像128aなどのコンテンツを含めることができ、ソース画像128aは、画像プロバイダ106a~106nのうちの1つによって提供される。サーバシステム102は、クライアントデバイス104における応答文書の提示データ内のソース画像128aに表示されるように構成された半透明のウォーターマーク画像126によって、クライアントデバイス104に与えられる応答データを拡張することができる。例として、以下の説明では、ソース画像128a~128nをクライアントデバイス104に提供されるサードパーティコンテンツの例として使用するが、ネイティブアプリケーションコンテンツ、ストリーミングビデオコンテンツ、ビデオゲームコンテンツ、またはその他の可視コンテンツを含む様々な他の種類の可視コンテンツにウォーターマーク画像126をオーバーレイすることができることを諒解されたい。
【0027】
クライアントデバイス104は、画像およびその他のコンテンツを1人または複数の人間のユーザに提示するように構成された任意の種類のコンピューティングデバイスとすることができる。クライアントデバイス104は、サーバシステム102に要求を出しサーバシステム102から応答を受信するウェブブラウザアプリケーションなどのアプリケーションを含んでもよい。アプリケーションは、ウェブページコードまたは他の種類の文書ファイルなどのサーバシステム102からの応答データを実行し、応答データをクライアントデバイス104の1人または複数のユーザに提示してもよい。いくつかの実装形態では、クライアントデバイス104は、電子ディスプレイデバイス(たとえば、LCDもしくはLEDスクリーン、CRTモニタ、頭部装着仮想現実ディスプレイ、頭部装着複合現実ディスプレイ)を含むか、またはクライアントデバイス104の1人もしくは複数のユーザへのレンダリングされた応答データからコンテンツを表示する電子ディスプレイデバイスに結合される。表示されるコンテンツは、ソース画像128aと、ソース画像128a上に実質的に透明に表示されるウォーターマーク画像126とを含むことができる。いくつかの実装形態では、クライアントデバイス104は、ノートブックコンピュータ、スマートフォン、タブレットコンピュータ、デスクトップコンピュータ、ゲーミングコンソール、携帯情報端末、スマートスピーカ(たとえば、音声制御を受ける)、スマートウォッチ、または他のウェアラブルデバイスである。
【0028】
いくつかの実装形態では、クライアントデバイス104に応じて提供されるソース画像128aは、サードパーティコンテンツ項目であり、たとえば、応答データのファーストパーティコンテンツプロバイダによって提供されるコンテンツには含まれない。たとえば、応答データがウェブページである場合、ウェブページの作成者は、ウェブページに、ウェブページの作成者とは異なるサードパーティコンテンツプロバイダ(たとえば、画像レポジトリのプロバイダ)からの画像によってテータ設定されるように構成されたスロットを含めてもよい。別の例では、ファーストパーティコンテンツプロバイダはサードパーティソース画像128aに直接リンクしてもよい。クライアントデバイス104は、画像プロバイダ106a~106nのうちの1つに対応するコンピューティングシステムから直接ソース画像128aを要求するかまたはサーバシステム102もしくは別のサーバシステムによって提供されるサービスなどの中間サービスを介して間接的に要求してもよい。サーバシステム102は、1つまたは複数の位置において1つまたは複数のコンピュータとして実装することができる。
【0029】
サーバシステム102は、画像プロバイダ106a~106nのコンピューティングシステムと通信して、たとえばクライアントデバイス104に与えるソース画像128aを取得するように構成することができる。いくつかの実装形態では、サーバシステム102は、電子文書、および電子文書内のソース画像128a上に表示すべき半透明のウォーターマーク画像126を用いてクライアントデバイス104からの要求に応答するように構成される。半透明のウォーターマークを生成するには、サーバシステム102は、画像生成サブシステム110を含むことができ、画像生成サブシステム110は、符号化入力生成器112とウォーターマーク画像生成器114とをさらに含むことができる。
【0030】
符号化入力生成器112は、プレーンテキストデータ項目を処理して、プレーンテキストデータ項目を符号化する符号化画像124を生成することができる。たとえば、プレーンテキストデータ項目は、画像のプロバイダまたは画像の他の特性を特定する情報を含むテキストサンプルまたはストリングであってもよい。たとえば、プレーンテキストデータ項目は、画像プロバイダ106a~106nを特定する一意の識別子とすることができる。プレーンテキストデータ項目はまた、セッション識別子を含むことができ、セッション識別子は、クライアントデバイス104からの要求に対する応答が与えられる、クライアントデバイス104とサーバシステム102との間のネットワークセッションを一意に特定する。プレーンテキストデータ項目はまた、クライアントデバイス104に与えられる特定のソース画像128aを特定する画像データまたはソース画像128aに関連する情報(たとえば、画像プロバイダ106a~106nのうちのどれがクライアントデバイス104に与えられる特定のソース画像128aを提供したかを示す情報、およびソース画像128aがいつ与えられたかまたは要求されたかを示すタイムスタンプ)を含むかまたは参照することができる。
【0031】
いくつかの実装形態では、サーバシステム102はまた、応答レコードデータベース120を含むことができ、応答レコードデータベース120は、セッション識別子またはプレーンテキストデータ項目によって表されるその他の情報を介して詳細な情報にアクセスできるように、ソース画像128aに関する上記のような情報または特定の要求に対して与えられた応答を相関付けるデータを記憶する。応答レコードデータベース120はまた、セッション識別子を画像データに関連付けることができ、それによって、プレーンテキストデータ項目によって表されるセッション識別子を使用してデータベース120に問い合わせることによって画像データにアクセスできるようにする。ユーザは、たとえば、プレーンテキストデータ項目からのセッション識別子を使用するためにソース画像128a~128nのうちのどれがいつ、どの画像プロバイダ106a~106nからクライアントデバイス104に与えられたかを特定することができる。
【0032】
サーバシステム102のウォーターマーク画像生成器114は、符号化画像124を処理して半透明のウォーターマーク画像126を生成するように構成することができる。半透明のウォーターマーク画像126は、符号化画像124から導出され、またプレーンテキストデータ項目122を符号化する。しかし、ウォーターマーク画像126の符号化後ピクセルの透明度、色、配列、および/またはその他のフィーチャを符号化画像124の符号化後ピクセルの透明度、色、配列、および/またはその他のフィーチャから変更してもよい。たとえば、符号化画像124は一様に不透明であり、互いに隣接して密に充填された符号化後ピクセルからなってもよいが、ウォーターマーク画像126は、いくつかの完全に透明なピクセルといくつかの部分的に透明なピクセルを含んでもよい。さらに、ウォーターマーク画像126内の符号化後ピクセルは、各符号化後ピクセルが非符号化後ピクセル(すなわち、「空白」ピクセル)に囲まれるように互いに対して間隔を置いて配置されてもよい。符号化画像124のウォーターマーク画像126への変換は、ウォーターマーク画像126が背景ソース画像128a上にオーバーレイされマージされた後に、たとえば、符号化画像124またはウォーターマーク画像126を再構成することによって符号化後情報が復号されるように実行されてもよい。
【0033】
いくつかの実装形態では、符号化画像124はマトリクス型バーコードであり、プレーンテキストデータ項目122を表す。適切なマトリクス型バーコードの一例はクイックレスポンスコード(QRコード(登録商標))である。符号化画像124は、ピクセルの行および列の数に関してあらかじめ規定されたサイズを有することができる。符号化画像124内の各ピクセルは、データのバイナリビットを符号化することができ、各ビットの値は異なる色によって表される。たとえば、バイナリ値「1」を符号化するピクセルは黒色であってもよく、一方、バイナリ値「0」を符号化するピクセルは白色であってもよい。いくつかの実装形態では、符号化画像124の最小符号化単位は実際には、単一のピクセルよりも大きくてもよい。しかし、本明細書で説明する例では、最小符号化単位は単一のピクセルと仮定される。しかし、本明細書で説明する技法が、最小符号化単位が複数のピクセルのセット、たとえば、ピクセルの2×2セットまたは3×3セットに拡張されてもよいことを諒解されたい。例示的な符号化画像124について、
図2を参照しながらさらに説明する。
【0034】
図2は、符号化画像、たとえば、本明細書で説明する技法では符号化画像124として働くことができる例示的なQRコード(登録商標、下記同様)200を示す。ORコード200は、この例では固定サイズが21×21ピクセルである。ただし、他のあらかじめ規定されたサイズのQRコードも適切である。QRコード200の顕著な特徴は、コード200左上角、右上角、および左下角に位置する7×7ピクセルからなる3つの正方形202a~202cである。正方形パターン202a~202cは、光学読取りデバイスがQRコード200の境界を特定し、QRコード200の画像の向きを適切に定める際に助けになり、それによって、ピクセルの行および列を確認することができ、コード200を正常に読み取ることができる。各正方形パターンは、第1のおよび第7の行における7つの連続的な黒色ピクセル(たとえば、符号化後値1)、第2および第6行における黒-白-白-白-白-白-黒(たとえば、符号化後値1-0-0-0-0-0-1)、ならびに第3、第4、および第5行における黒-白-黒-黒-黒-白-黒(たとえば、符号化後値1-0-1-1-1-0-1)によって画定される。コード200内の各黒色ピクセルに高部分透明度値を割り当て、コード200内の各白色ピクセルに全透明度値を適用し、各奇数行におけるQRコード200から各ピクセルの右側に空白(非符号化)全透明度ピクセルを挿入し、コード200の各偶数行におけるQRコード200から各ピクセルの左側に空白全透明度ピクセルを挿入することによってを含む、
図1に関して説明したようにQRコード200からウォーターマーク付け画像を形成することができる。この結果、符号化すべきソース画像上にオーバーレイすることができる21×43ピクセルウォーターマーク付け画像が得られる。
【0035】
図1を参照しながら引き続き説明すると、ウォーターマーク画像126は、ウォーターマーク画像126を実現する途中の中間動作として符号化画像124を明示的に生成することなくプレーンテキストデータから直接生成されてもよい。いくつかの実装形態では、サーバシステム102は、ソース画像128a上にウォーターマーク画像126を直接マージし、マージされた画像をクライアントデバイス104に与えることができ、サーバシステム102は、符号化画像124、ウォーターマーク画像126、またはその両方を明示的に生成することなくソース画像128a内のウォーターマークを直接符号化してもよい。
【0036】
サーバシステム102は、ウォーターマーク画像126を生成した後、電子文書を求めるクライアントの要求に対する返答として、クライアントデバイス104に返す応答データを生成する。応答データは、ファーストパーティコンテンツ項目およびサードパーティコンテンツ項目を含む1つまたは複数のコンテンツ項目を含むことができる。これらのコンテンツ項目は、ウェブページ、アプリケーションインターフェース、PDF、プレゼンテーションスライドデッキ、またはスプレッドシートなどの電子文書を集合的に形成する。いくつかの実装形態では、応答データは一次文書を含み、一次文書は、様々なコンテンツ項目をどのように配置し表示すべきであるかを指定する。ハイパーテキストマークアップ言語(HTML)ページなどの一次文書は、文書を提示する際に表示すべきファーストパーティコンテンツ項目およびサードパーティコンテンツ項目を指す場合がある。いくつかの実装形態では、サーバシステム102は、クライアントデバイス104に、応答を実行する際、ソース画像128a上にウォーターマーク画像126の1つまたは複数のインスタンスを表示するよう指示するコンピュータコードを一次文書に追加し、たとえば、人間のユーザにとって実質的に知覚不可能なウォーターマークをソース画像128aに追加するように構成される。ウォーターマーク画像126は完全に透明なピクセルおよび部分的に透明なピクセルを有するので、電子文書をレンダリングするクライアントデバイス104におけるアプリケーションは、ウォーターマーク画像126の指定された透明度に従ってソース画像128a上にウォーターマーク画像126をオーバーレイするためのブレンディング技法を実行することができる。たとえば、サーバシステム102は、クライアントデバイス104に、電子文書におけるサードパーティコンテンツスロット内の背景画像としてソース画像128aを表示し、ウォーターマーク画像126の1つまたは複数のインスタンスを画像128a上の前景画像として表示するよう命令するコードを追加してもよい。
【0037】
多数の異なるクライアントデバイス104に配信される何百万もの画像(および他の視覚的コンテンツ)が存在できる環境では、サーバシステム102が画像(もしくは他の視覚的コンテンツ)のプロバイダもしくはソース、画像の他の特性、または画像の特定の印象(たとえば、提示データ)に関するコンテキストを判定する必要がある状況があり得る。たとえば、クライアントデバイス104のユーザは、電子文書を求める要求に応じて画像プロバイダ106a~106nのうちの1つから不適切または不穏当な画像128aを受信することがある。ユーザは、符号化後画像130のスクリーンショット(たとえば、クライアントデバイス104において提示される画像またはその他のコンテンツの再生データ)をキャプチャし、そのスクリーンショットを解析できるようにサーバシステム102に送信し、たとえば、ソース画像128aの出所について問い合わせてもよい。スクリーンショットはウォーターマーク付け画像126によってオーバーレイされる元の画像128aを示すので、サーバシステム102は、スクリーンショットを処理してプレーンテキストデータ項目の符号化された表現を復元することができ、符号化された表現を復号してプレーンテキストデータ項目自体を復元することができる。システム102は次いで、復元されたプレーンテキストデータ項目を様々な目的に使用して、たとえば、応答レコードデータベースに問い合わせて画像128aおよびその出所に関する詳細な情報、またはソース画像128aがクライアントデバイス104に与えられた特定のクライアントセッションに関する他の情報を検索することができる。
【0038】
符号化後ソース画像130からプレーンテキストデータ項目122の符号化された表現を検出して復号するために、サーバシステム102は画像解析およびデコーダモジュール118を含むことができる。符号化後ソース画像130は、クライアントデバイス104がソース画像128a上にウォーターマーク画像126をレンダリングすることによって得られる画像である。ウォーターマーク画像126がソース画像128aから分離されるにもかかわらず、画像解析およびデコーダモジュール118によって処理された符号化後ソース画像130は、ソース画像128a上に一体化されたウォーターマーク画像126を示すマージ後画像であってもよい。符号化後ソース画像130は、画像解析およびデコーダモジュール118に入力して、符号化後ソース画像130の一部であるウォーターマークを検出しならびに/または復号することができるので、入力画像と呼ぶこともできる。キャプチャされ画像解析およびデコーダモジュール118にサブミットされる符号化後ソース画像130は、ソース画像128a上のウォーターマーク画像126の提示データの再生データ(たとえば、スクリーンショットまたは他のデジタルキャプチャ)であってもよい。したがって、元のソース画像128aおよび元のウォーターマーク画像126は、解析のために画像解析およびデコーダモジュール118にサブミットされなくてもよい。
【0039】
場合によっては、画像解析およびデコーダモジュール118を含むサーバシステム102は、場合によっては符号化され/ウォーターマーク付けされた画像を解析することを求める要求を受信してもよい。本明細書では、「可能性のある」という用語は、ある項目に起因する場合があるが、それにもかかわらずその項目を処理する処理エンティティ(たとえば、サーバシステム102)には未知である項目の条件を指す。すなわち、ある項目の可能性のある条件は、それが真実であるかどうかが処理エンティティにはわからないその項目の候補条件である。処理エンティティは、ある項目の可能性のある(候補)条件を特定して、ある可能性のある(候補)条件が真実であるかどうかに関して予測し、ならびに/または特定の条件を示す可能性のある(候補)項目を特定する処理を実行してもよい。たとえば、符号化された可能性のあるソース画像は、場合によってはウォーターマークを用いて符号化されているソース画像であるが、最初、画像が実際にウォーターマーク付けされているかどうかはサーバシステム102にはわからない。したがって、ウォーターマークを有するソース画像128aの可能性のある符号化は、ソース画像128aの候補条件であり、ソース画像は、ウォーターマークを用いて符号化される条件を示す候補項目である。符号化された可能性のある画像は、ユーザがソース画像のスクリーンショット(または、たとえば、デジタル写真など別のデジタル再生データ)をキャプチャし、キャプチャされた画像を解析できるようにサーバシステム102に提供することによって得られてもよいが、この場合、画像が符号化され/ウォーターマーク付けされているかどうかの確認を示すさらなる情報は含まれない。
【0040】
画像解析およびデコーダモジュール118は、サーバシステム102が場合によっては符号化されている(ウォーターマーク付けされている)ソース画像130を受信する上記のような場合に、場合によっては符号化されているソース画像がウォーターマークを含む可能性があるかそれとも含まない可能性があるかを検出するための1つもしくは複数の機械学習モデル(検出器機械学習モデルと呼ばれる)を実装することができるウォーターマーク検出装置132を含むことができる。ウォーターマーク検出装置132は、場合によっては符号化されているソース画像の場合によっては符号化されている領域を特定することができ、場合によっては符号化されているソース画像130のフィーチャの値を判定してもよい。簡潔のために、場合によっては符号化されているソース画像を符号化された可能性のある画像と呼ぶこともできる。
【0041】
ウォーターマーク検出装置132が符号化後ソース画像130において視覚的に知覚不可能なウォーターマークを検出した場合、画像解析およびデコーダモジュール118内に実装されたウォーターマークデコーダ134は、符号化された可能性のある画像の復号の1回または複数回の試みを完了する。他の図に関してさらに詳細に説明するように、ウォーターマークデコーダ134は、符号化された可能性のある画像の場合によっては符号化されている領域および符号化された可能性のある画像302のフィーチャを処理して符号化された可能性のある画像のウォーターマークステータスを予測するように構成された1つまたは複数の機械学習モデル(デコーダ機械学習モデルと呼ばれる)を実装することができる。この例では、ウォーターマークデコーダ134は、さらに
図3~
図6を参照して説明するデコーダ機械学習モデル134aを実装する。画像解析およびデコーダモジュール118は、ズーム装置138と検証装置132を含むこともでき、ズーム装置138と検証装置132については以下でより詳細に説明する。サーバシステム102が実装される1つまたは複数の位置において1つまたは複数のコンピュータ上に画像解析およびデコーダモジュール118ならびに任意のサブシステムを実装することができる。
【0042】
図3は、画像解析およびデコーダモジュール118に入力された符号化された可能性のある画像302からプレーンテキストデータ項目122の符号化された表現を検出し復号する例示的な画像解析およびデコーダモジュール118のブロック
図300である。符号化された可能性のある画像302は、クライアントデバイスにおいて提示される画像のスクリーンキャプチャまたはデジタル写真の形態とすることができる。たとえば、符号化された可能性のある画像302は、パブリッシャーウェブサイト上に提示される画像のスクリーンキャプチャとすることができる。より詳細には、符号化された可能性のある画像302は、パブリッシャーのウェブサイトを訪れたユーザによってキャプチャされ、次いで画像の提示データを報告する(たとえば、不適切であるとして報告する)ためにユーザによってサブミットされた可能性がある。画像解析およびデコーダモジュール118は、ウォーターマーク検出装置132、ウォーターマークデコーダ134、コントローラ136、ズーム装置138、および検証装置140のうちの1つまたは複数を含むことができる。
【0043】
いくつかの実装形態では、ウォーターマーク検出装置132は、符号化された可能性のある画像302を処理して、符号化された可能性のある画像302がウォーターマークの一部または1つもしくは複数のウォーターマークを含むかどうかの指示を出力として生成するように構成された機械学習モデル(検出器機械学習モデル132aと呼ばれる)を実装することができる。検出器機械学習モデル132aは、決定木、人工ニューラルネットワーク、遺伝的プログラミング、論理プログラミング、サポートベクターマシン、クラスタリング、強化学習、ベイズ推定などの特定の実装形態に適していると見なされる任意のモデルとすることができる。機械学習モデルはまた、画像を解析するためのコンピュータビジョンおよび画像処理のための方法、アルゴリズム、および技法を含んでもよい。
【0044】
いくつかの実装形態では、ウォーターマーク検出装置132はまた、ヒューリスティクスベースの手法または別の適切なモデルベースの技法もしくはルールベースの技法を実施することができ、この手法または技法は、符号化された可能性のある画像302がウォーターマークを含むかどうかを判定する。そのような実装形態では、符号化された可能性のある画像302がウォーターマークの一部または1つもしくは複数のウォーターマークを含むかどうかの指示は、分類またはスコアもしくは確率などの数の形態とすることができる。たとえば、検出器機械学習モデル132aは、符号化された可能性のある画像302を処理して画像をウォーターマークを含む画像またはウォーターマークを含まない画像として分類することができる分類モデルとして実装することができる。別の例では、検出器機械学習モデル132aは、符号化された可能性のある画像302を処理して、符号化された可能性のある画像302がウォーターマークを含む可能性を示すスコアなどのスコアを生成することができる。
【0045】
いくつかの実装形態では、ウォーターマーク検出装置132は、意味上の画像セグメント化を実行するための検出器機械学習モデル132aを実装することができる。意味上の画像セグメント化は、画像の各ピクセルを1つまたは複数のクラスに分類するプロセスである。たとえば、検出器機械学習モデル132は、符号化された可能性のある画像302を処理して符号化された可能性のある画像302の各ピクセルを第1のクラスおよび第2のクラスに分類することができる。この例では、第1のクラスは、ウォーターマーク画像を使用して符号化される(またはクライアントデバイス104上での表示時に重ね合わせられる)画像302のピクセルに相当し、第2のクラスは、ウォーターマーク画像を使用して符号化されない画像302のピクセルに相当する。検出器機械学習モデル132aは、符号化された可能性のある画像302のピクセル特性に基づいてピクセルを分類する。たとえば、視覚的に知覚不可能であるにもかかわらず第1のクラスとして分類される(すなわち、ウォーターマーク画像を使用して符号化された)ピクセルは、検出器機械学習モデル132aによって区別することができる。たとえば、32ビットRGBピクセルは、各カラーチャネル(たとえば、赤色(R)、緑色(G)、および青色(B))ならびに透明度についての「アルファ」チャネル用の8ビットを含む。そのようなフォーマットは、人間の眼では区別できない組合せが一部あるが、コンピュータシステムによって特定可能な4,294,967,296通りの色組合せを支持することができる。
【0046】
いくつかの実装形態では、検出器機械学習モデル132aは、ウォーターマーク付けされた符号化後ピクセルのセットを特定するセグメント化マスクを出力として生成することができる。たとえば、検出器機械学習モデル132aは、符号化された可能性のある画像302のピクセルを第1のクラスおよび第2のクラスに分類した後、ピクセルが割り当てられたクラスに関するラベルをピクセルに割り当てることによってセグメント化マスクを生成することができる。たとえば、検出器機械学習モデル132aは、寸法1000×1000×3の符号化された可能性のある画像302(たとえば、クライアントデバイス104からのスクリーンショット)を入力として受信し、寸法1000×1000×1のセグメント化マスクを出力として生成し、この場合、セグメント化マスクの各値は、符号化された可能性のある画像302のそれぞれのピクセルに割り当てられたラベルに相当する。たとえば、符号化された可能性のある画像302のピクセルが第1のクラスと分類された場合、そのピクセルにラベル「1」を割り当てることができ、ピクセルが第2のクラスと分類された場合、そのピクセルにラベル「0」を割り当てることができる。この例では、セグメント化マスク310は、検出器機械学習モデル132aにより符号化された可能性のある画像302を処理することによって生成される。
図3を見るとわかるように、符号化された可能性のある画像302は、符号化された可能性のある画像302の2つの異なる領域に2つのウォーターマーク126aおよび126bを含む。セグメント化マスク310は、ウォーターマークを含む符号化された可能性のある画像302の領域としての310aおよび310bとしてウォーターマーク126aおよび126bを特定する。ウォーターマークを検出すると、符号化された可能性のある画像302を符号化後画像として分類し、以下で詳細に説明するようにウォーターマークデコーダ134によって処理することができる。
【0047】
別の例では、検出器機械学習モデル132aは、検出器機械学習モデル132aの各クラスについてセグメント化マスクを生成することができる。たとえば、検出器機械学習モデル132aは、寸法1000×1000×NumClassのセグメント化マスクを生成することができ、この場合、NumClass=2は、検出器機械学習モデル132aのクラスの数である。この例では、セグメント化マスクを2つの1000×1000マトリックスとして解釈することができ、第1のマトリックスは、第1のクラスに属する符号化された可能性のある画像302のピクセルを特定することができ、第2のマトリックスは、第2のクラスに属する符号化された可能性のある画像302のピクセルを特定することができる。そのような状況では、ピクセルが特定のクラスに属するか否かを示すためにラベル「0」および「1」が使用される。たとえば、符号化された可能性のある画像302の対応するピクセルが第1のクラスとして分類される第1のマトリックスの値は、第1のクラスとして分類され、ラベル「1」を有し、対応するピクセルが第2のクラスとして分類される要素はラベル「0」を有する。同様に、第2のマトリックスの値、すなわち符号化された可能性のある画像302の対応するピクセルが第2のクラスとして分類される要素は、ラベル「1」を有し、対応するピクセルが第1のクラスとして分類される要素はラベル「0」を有する。
【0048】
いくつかの実装形態では、検出器機械学習モデル132aは、符号化された可能性のある画像302の意味上のセグメント化を実行して、ウォーターマークを含む符号化された可能性のある画像302の領域を検出するようにトレーニングされたUNetアーキテクチャを有する深層畳み込みニューラルネットワーク(CNN)とすることができる。UNetアーキテクチャを有するCNNについては、Ronneberger O.、Fischer P.、Brox T.、(2015) "U-Net: Convolutional Networks for Biomedical Image Segmentation. In: Navab N.、Hornegger J.、Wells W.、Frangi A. (eds) "Medical Image Computing and Computer-Assisted Intervention - MICCAI 2015." MICCAI 2015. Lecture Notes in Computer Science、Vol 9351、Springer、Cham. https://doi.org/10.1007/978-3-319-24574-4_28により詳細に記載され、その全内容を参照により本明細書に援用する。別の例では、検出器機械学習モデル132は、領域ベースの畳み込みニューラルネットワーク(R-CNN)とすることができる。
【0049】
いくつかの実装形態では、検出器機械学習モデル132aは複数のトレーニングパラメータを含むことができる。検出器機械学習モデル132aは、複数のトレーニングパラメータを調整して、符号化された可能性のある画像302がウォーターマークの一部または1つもしくは複数のウォーターマークを含むかどうかの指示を生成することができるトレーニングプロセスを使用して第1のトレーニングデータセットに関してトレーニングされる。第1のトレーニングデータセットは、各トレーニングサンプルが、ウォーターマーク付けされたトレーニング画像と、ウォーターマークを使用して符号化されたトレーニング画像のピクセルを特定するターゲットとを含む複数のトレーニングサンプルを含むことができる。たとえば、トレーニング画像は、トレーニング画像の1つもしくは複数の領域内にウォーターマークを含むクライアントデバイス104からのスクリーンショットと同様の画像とすることができる。トレーニング画像に対応するターゲットは、ウォーターマーク付けされたピクセルまたはウォーターマーク付けされていないピクセルを特定し、場合によっては、トレーニング画像のウォーターマーク付けされたピクセルとウォーターマーク付けされていないピクセルの両方を特定するセグメント化マスクを含むことができる。
【0050】
検出器機械学習モデル132aの汎化可能性を強化するために、トレーニングプロセスは、第1のデータセットの既存のトレーニングサンプルを使用して新しいトレーニングサンプルを生成することによって第1のデータセットを拡張することができる。新しいトレーニングサンプルを生成するために、トレーニングプロセスはトレーニング画像のセットのうちの画像をひずませてひずんだ画像を作成することができる。いくつかの実装形態では、左右反転および上下反転、並進、回転、クロッピング、ズーミング、色ひずみ、ランダム雑音の付加などの現実世界視覚データにおいて広く生じる視覚摂動を適用することによって、ひずんだ画像を生成することができる。トレーニングプロセスはまた、不可逆圧縮または変換技法を使用してトレーニング画像をそれぞれに異なるファイルフォーマットに符号化することによって新しいトレーニングサンプルを生成することができる。たとえば、トレーニングプロセスは、JPEG圧縮を使用してトレーニング画像に小さいアーチファクトを導入することができ、圧縮後に生成されたトレーニング画像を使用して第1のデータセットを拡張することができる。
【0051】
トレーニングプロセスは、第1のデータセットの同じ画像の複数の異なるズーム後バージョンを生成して、検出器機械学習モデル132aを様々なズームレベルにわたって画像内のウォーターマークを検出するようにトレーニングするトレーニングセットを作成することができる。たとえば、特定のトレーニング画像を仮定すると、画像内に示される項目のズームレベルを変更し、それにより、特定のトレーニング画像のズーム後バージョンを作成することによって、このトレーニング画像の複数の異なるバージョンを作成することができる。
【0052】
トレーニングの間、トレーニングプロセスは、クロスエントロピー誤差などの損失関数を使用して検出器機械学習モデル132aの複数のパラメータを調整することができる。たとえば、ピクセルに関するクロスエントロピー誤差は、各ピクセルを個々に調べてクラス予測をピクセルのターゲットクラスと比較し、それに応じて検出器機械学習モデル132aのパラメータを調整することができる。トレーニングプロセスは、本質的に反復的であってもよく、各反復時に、トレーニングプロセスは、損失が指定されたしきい値よりも小さくなるまでまたはトレーニングプロセスが指定された回数の反復を実行するまでクロスエントロピー誤差を最小限に抑えようとする。クロスエントロピー誤差は以下の形式をとることができる。
L=-(y log(p)+(1-y)log(1-p))
yは、ピクセルのターゲットラベルであり、pは、ピクセルが第1のクラスに属する予測される可能性である。他の損失関数の例には、重み付きクロスエントロピー誤差、焦点損失(focal loss)、感度特異度損失(sensitivity-specifity loss)、ダイス損失(dice loss)、境界損失(boundary loss)、ハウスドルフ距離損失(hausdorff distance loss)、または複合損失(compound loss)を含めることができる。
【0053】
いくつかの実装形態では、画像解析およびデコーダモジュール118は、ウォーターマーク検出装置132が符号化された可能性のある画像302内にウォーターマークが存在することを検出したことに応じて、符号化された可能性のある画像302およびウォーターマーク検出装置132によって生成された1つまたは複数の出力(たとえば、検出器機械学習モデル132aによって生成されたセグメント化マスク)をウォーターマークデコーダ134に転送し、符号化された可能性のある画像302のウォーターマークを復号し抽出する。たとえば、ウォーターマーク検出装置132が符号化された可能性のある画像302内にウォーターマークが存在することを検出した場合、符号化された可能性のある画像302は符号化後画像として分類され、画像解析およびデコーダモジュール118はウォーターマークデコーダ134を使用して検出されたウォーターマークを復号することができる。ウォーターマーク検出装置132が符号化された可能性のある画像302内にウォーターマークが存在することを検出できない状況では、画像解析およびデコーダモジュール118は、符号化された可能性のある画像302を無視し、それ以上ウォーターマークデコーダ134を使用して符号化された可能性のある画像302を処理することはせず、それによって、ウォーターマークの復号を試みるのに必要な計算リソースが節約される。
【0054】
いくつかの実装形態では、ウォーターマークデコーダ134は、一般に符号化された可能性のある画像302内の符号化後ピクセルの符号化後値を特定し、たとえば、各符号化後ピクセルが符号化ソース画像(たとえば、QRコード)内の黒色ピクセル(値1)に相当するかそれとも符号化ソース画像内の白色ピクセル(値0)に相当するかを判定することを含む、ウォーターマークを復号するプロセスを実施する。符号化後ピクセルの位置または座標が確認された後、様々な復号技法を使用してピクセルの符号化後値を確認することができる。たとえば、ピクセルの色をその隣接ピクセルと比較してもよく、ピクセルの色が隣接ピクセルよりもある量だけ暗い場合、符号化画像から黒色ピクセル(値1)を符号化すると見なされてもよい。ピクセルの色が隣接ピクセルよりも必要量だけ暗くない場合、符号化画像から白色ピクセル(値0)を符号化すると見なされてもよい。さらに、ソース画像において符号化されたウォーターマーク付け画像の複数のインスタンスから得た同じ符号化後ピクセルを解析し、結果を統計的に平均してもよい。いくつかの実装形態では、機械学習モデル(デコーダ機械学習モデル134aと呼ばれる)が復号解析を実行するようにトレーニングされてもよい。
【0055】
いくつかの状況では、ウォーターマーク検出装置132が符号化された可能性のある画像302上にウォーターマークが存在することを首尾よく検出する場合でも、ウォーターマークデコーダ134がウォーターマークを復号できないことがある。そのような状況は、ウォーターマーク検出装置132が、符号化された1つまたは複数のピクセルを検出することができるが、符号化された可能性のある画像302が、ダウンサンプリングされているか、または元のネイティブズームレベルからウォーターマークデコーダ134がウォーターマークを復号できない程度にズームインもしくはズームアウトされたときに生じることがある。たとえば、システムの構成要素は、画像を画像処理の一部としてダウンサンプリングすることがあり、それによって画像解像度が低下し、符号化された可能性のある画像302の復号が抑制されることがある。別の例では、ユーザのデバイスが、スクリーンショットが得られたときに画像の解像度が元のソース画像およびウォーターマーク付け画像よりも低くなるように画像のズームされたビューをキャプチャしている場合がある。さらに、スクリーンショットは、記憶域を縮小させるファイル圧縮の結果としての雑音および/またはスクリーンショットの送信費用を含む場合がある。
【0056】
ウォーターマークデコーダ134が符号化された可能性のある画像302を正確に復号できない状況、またはウォーターマークデコーダ134が少なくとも指定されたレベルの精度で動作していない状況では、ズーム手法を使用して符号化された可能性のある画像を復号するウォーターマークデコーダの能力を向上させることができる。ズーム手法は、ズーム装置138によって実行することができ、ズーム装置138は、ウォーターマーク検出装置132によって転送された符号化された可能性のある画像302を入力として受信し、画像フィーチャのズーム後バージョンを出力するように構成される。より詳細には、ズーム装置138は、符号化された可能性のある画像302のウォーターマークを復号するために使用できる符号化された可能性のある画像302の少なくとも1つのスケーリング後バージョンを生成する。たとえば、ウォーターマークデコーダ134の精度を向上させることが望まれる場合、ズーム装置138は、画像フィーチャの解像度を高め(たとえば、2×または他の適切なズーム量だけ高め)、それにより、ウォーターマークフィーチャの解像度を高め、それにより、ウォーターマークデコーダ134の精度を向上させることによって、符号化された可能性のある画像302のスケーリング後バージョンを生成することができる。もちろん、符号化された可能性のある画像302の任意の数のスケーリング後バージョンを生成してもよいが、実際には、符号化された可能性のある画像の単一のズーム後バージョンで十分であるはずである。
【0057】
いくつかの実装形態では、ウォーターマーク検出装置132が、たとえば、符号化された可能性のある画像302がセグメント化マスクではなくウォーターマークを含むことの確認についての指示のみを生成する場合、ウォーターマークデコーダ134は、符号化された可能性のある画像302全体にわたって反復的に探索するのではなくウォーターマークの可能性のある領域を特定するウォーターマークピクセル抽出装置を実装することができる。ウォーターマークピクセル抽出装置は、検出器機械学習モデル132aを参照して説明した画像セグメント化の技法を実施することができる。たとえば、ウォーターマークピクセル抽出装置は、符号化された可能性のある画像302を意味的にセグメント化して符号化された可能性のある画像302と同じ解像度を有するセグメント化マスク310を生成するようにトレーニングされたU-Netなどの機械学習モデルを実装することができる。他の実装形態では、検出器機械学習モデル132aが、ウォーターマーク付けされた符号化された可能性のある画像302のピクセルを特定するセグメント化マスクを生成することによって、符号化された可能性のある画像302上のウォーターマークの可能性のある領域を特定する場合、画像解析およびデコーダモジュール118は、ウォーターマークピクセル抽出装置をバイパスし、デコーダ機械学習モデル134aを使用して符号化された可能性のある画像302のウォーターマークを復号することができる。
【0058】
いくつかの実装形態では、画像解析およびデコーダモジュール118は、セグメント化マスクに基づいて、符号化された可能性のある画像302のズームレベルを判定することができる。セグメント化マスクがウォーターマーク付けされた領域を特定するので、画像解析およびデコーダモジュール118は、ウォーターマーク付けされた領域内のピクセルの数などの領域の特性を判定して、符号化された可能性のある画像302のズームレベルを判定することができる。たとえば、ウォーターマーク付けされた領域として特定された領域がウォーターマークの既知のサイズの2倍の大きさであると仮定する。この例では、ズームレベルは200%または2×であると見なされ、それによって、画像は2×ズームレベルでキャプチャされると判定される。そのような実装形態では、画像解析およびデコーダモジュール118はこの情報を使用して、たとえば、画像を復号するモデルにズームレベルを知らせることによって、符号化された可能性のある画像302のウォーターマーク画像を復号するのを助けることができる。
【0059】
いくつかの実装形態では、画像解析およびデコーダモジュール118は、ウォーターマークピクセル抽出装置(またはウォーターマーク検出装置132)がウォーターマーク付けされた符号化された可能性のある画像302の領域全体を検出しならびに/または抽出することができないことに応じて符号化された可能性のある画像302のスケーリング後バージョンを生成することができる。たとえば、セグメント化マスクがウォーターマーク付けされた領域の一部のみを生成すると仮定する。そのような状況では、ウォーターマークデコーダ134は、情報が不完全であることに起因してウォーターマークを復号することができない。そのような状況では、画像解析およびデコーダモジュール118は、ズーム装置138を使用して符号化された可能性のある画像302のスケーリング後バージョンを生成し、ウォーターマーク付けされた符号化された可能性のある画像302の領域全体を特定できるかどうかを復号の前に検査することができる。
【0060】
いくつかの実装形態では、デコーダ機械学習モデル134aは、符号化された可能性のある画像302を処理し、復号後ウォーターマーク画像320(予測ウォーターマーク画像320とも呼ばれる)を出力として生成するように構成される。デコーダ機械学習モデル134aは、決定木、人工ニューラルネットワーク、遺伝的プログラミング、論理プログラミング、サポートベクターマシン、クラスタリング、強化学習、ベイズ推定などの特定の実装形態に適していると見なされる任意のモデルとすることができる。機械学習モデルはまた、画像を解析するためのコンピュータビジョンおよび画像処理のための方法、アルゴリズム、および技法を含んでもよい。いくつかの実装形態では、ウォーターマーク検出装置132はまた、復号後ウォーターマーク画像320を生成することができるヒューリスティクスベースの手法または別の適切なモデルベースの技法もしくはルールベースの技法を実施することができる。
【0061】
いくつかの実装形態では、検出器機械学習モデル134aは、符号化された可能性のある画像302の復号後ウォーターマーク画像320を予測するようにトレーニングされたUNetアーキテクチャを有する深層畳み込みニューラルネットワーク(CNN)とすることができる。デコーダ機械学習モデル134aは、複数のトレーニングパラメータを含むことができ、デコーダ機械学習モデル134aは、複数のトレーニングパラメータを調整してウォーターマーク画像126の予測データ(たとえば、復号後ウォーターマーク画像320)を生成することができるトレーニングプロセスを使用して第2のトレーニングデータセットに関してトレーニングされる。第2のトレーニングデータセットは、複数のトレーニングサンプルを含むことができ、各トレーニングサンプルがウォーターマーク付けされたトレーニング画像と、ウォーターマークを含むトレーニング画像の領域の特定情報の一形態(たとえば、ウォーターマーク付けされたピクセルとウォーターマーク付けされていないピクセルを特定するセグメント化マスク)と、トレーニング画像内のウォーターマークのウォーターマーク画像を含むターゲットとを含む。
【0062】
デコーダ機械学習モデル134aの汎化可能性を強化するために、第2のデータセットの既存のトレーニングサンプルを使用して新しいトレーニングサンプルを生成することによって第2のデータセットを拡張することができる。新しいトレーニングサンプルを生成するために、トレーニングプロセスはトレーニング画像のセットのうちのトレーニング画像をひずませてモデルをトレーニングするために使用されるひずんだ画像を作成することができる。いくつかの実装形態では、左右反転および上下反転、並進、回転、クロッピング、色ひずみ、ランダム雑音の付加などの現実世界視覚データにおいて広く生じる視覚摂動を適用することによって、ひずんだ画像を生成することができる。いくつかの実装形態では、トレーニングプロセスは、不可逆圧縮または変換技法を使用してトレーニング画像をそれぞれに異なるファイルフォーマットに符号化することによって新しいトレーニングサンプルを生成することができる。たとえば、トレーニングプロセスは、JPEG圧縮を使用してトレーニング画像に小さいアーチファクトを導入することができ、圧縮後に生成されたトレーニング画像を使用して第1のデータセットを拡張することができる。
【0063】
トレーニングプロセスは、第2のデータセットの同じ画像の複数の異なるズーム後バージョンを生成して、デコーダ機械学習モデル134aを様々なズームレベルにわたって画像内のウォーターマークを検出するようにトレーニングするトレーニングセットを作成することができる。たとえば、特定のトレーニング画像を仮定すると、画像内に示される項目のズームレベルを変更し、それにより、特定のトレーニング画像のズーム後バージョンを作成することによって、このトレーニング画像の複数の異なるバージョンを作成することができる。それぞれに異なるレベルでのズーミングによってトレーニング画像内の単一のピクセルを表すのに使用されるピクセルの数が変更されるので、拡張された画像を使用してトレーニングされたときのデコーダ機械学習モデル134aは、ウォーターマークを表すのに使用されるピクセルの数に依存しない。
【0064】
いくつかの実装形態では、トレーニングプロセスは、トレーニング画像のピクセルの色を表す浮動小数点数を丸めることによって第2のトレーニングデータセットをさらに拡張することができる。そのような状況では、トレーニング画像は、ARRIRAW、Blackmagic RAW、DNG、DPX、EXR、PSD、およびTIFF画像フォーマットなどの浮動小数点画像である。浮動小数点画像は最高の精度およびダイナミックレンジをもたらすので、デコーダ機械学習モデル134aは、すべての可能性のある画像フォーマットおよびその他の画像特性の範囲全体を対象とするように汎化可能性を高めるために拡張された浮動小数点画像に関してトレーニングされる。たとえば、通常の丸めを使用して浮動小数点画像の浮動小数点数を丸めることができ、この場合、丸め後の値は、浮動小数点数に最も近い10進値である。別の例では、切捨てを使用して浮動小数点画像の浮動小数点数を丸めることができ、この場合、丸め後の値は、浮動小数点数の10進部である。
【0065】
トレーニングの間、トレーニングプロセスは、クロスエントロピー誤差などの損失関数を使用してデコーダ機械学習モデル134aの複数のパラメータを調整することができる。たとえば、ピクセルに関するクロスエントロピー誤差は、各ピクセルを個々に調べて復号後(予測)ウォーターマーク画像320のピクセル予測データをターゲットウォーターマーク画像のピクセルと比較し、それに応じてデコーダ機械学習モデル134aのパラメータを調整することができる。トレーニングプロセスは、本質的に反復的であってもよく、各反復時に、トレーニングプロセスは、損失が指定されたしきい値よりも小さくなるまでまたはトレーニングプロセスが指定された回数の反復を実行するまでL2損失を最小限に抑えようとする。
【0066】
いくつかの実装形態では、符号化された可能性のある画像302を処理することによって復号後ウォーターマーク画像320を生成した後、ウォーターマークデコーダ134は、符号化された可能性のある画像302の真正性(またはソース)を検証するために画像解析およびデコーダモジュール118によって使用することのできる復号後ウォーターマーク画像320を出力として生成することができる。真正性(またはソース)を検証するために、サーバシステム102内に実装された検証装置140は、復号後ウォーターマーク画像320を使用して対応する符号化画像124および/または対応するプレーンテキストデータ項目122を復元することができる。符号化された可能性のある画像302がサーバシステム102からの応答データとしてクライアントデバイス104に与えられた場合、検証装置140は、対応する符号化画像124および/または対応するプレーンテキストデータ項目122を使用して符号化された可能性のある画像302の真正性を検証することができる。たとえば、サーバシステム102が対応する符号化画像124および/または対応するプレーンテキストデータ項目122を応答レコードデータベース120から特定することができる場合、対応する符号化画像124および/または対応するプレーンテキストデータ項目122は有効である。サーバシステム102は、対応する符号化画像124および/または対応するプレーンテキストデータ項目122に基づいて、ソース画像128aのプロバイダなどのソース画像128aに関する情報、および特定の要求について与えられる応答データの詳細をさらに判定することができる。対応する符号化画像124および/または対応するプレーンテキストデータ項目122を特定できない場合、サーバシステム102は、符号化された可能性のある画像302はサーバシステム102によって送信されなかったと判定することができる。言い換えれば、符号化された可能性のある画像302のソースを特定する情報が復号されない場合、画像解析およびデコーダモジュール118は、符号化された可能性のある画像302がサーバシステム102によって配信されなかったと判定することができる。この理由は、サーバシステム102によって配信されるコンテンツは、サーバシステム102をコンテンツのソースとして特定する情報を用いて符号化されるからである。
【0067】
いくつかの実装形態では、ウォーターマークデコーダ134は、符号化された可能性のある画像302のバージョンに対して実行されるスケーリングに従って元のズームレベルからスケーリングされた復号後ウォーターマーク画像320を出力として生成することができる。たとえば、復号後ウォーターマーク画像320を生成するために、ウォーターマークデコーダ134は、ズーム装置138を使用して符号化された可能性のある画像302の200パーセント(2×)ズームレベルスケーリング後バージョンを生成することができる。この種のズーミングは、上記のように、ウォーターマークが適正に復号される可能性を高めるのを助けることができる。たとえば、元の符号化された可能性のある画像302の比較的小さい部分がウォーターマーク付け画像を用いて符号化されている場合、復号後ウォーターマーク画像320は、デコーダ機械学習モデル134aが復号後ウォーターマーク画像320を生成するには不十分であることがある。そのような状況では、デコーダ機械学習モデル134aによって生成される復号後ウォーターマーク画像320をズーミングして復号プロセスを助けることができる。
【0068】
図4は、符号化された可能性のある画像(たとえば、クライアントデバイスにおいて提示されるコンテンツのスクリーンショット)が1つまたは複数のウォーターマーク付け画像を用いて符号化されているかどうかを予測する例示的なプロセス400の流れ図である。プロセス400の動作は、たとえば、画像解析およびデコーダモジュール118を含むサーバシステム102によって実施することができる。プロセス400の動作は、非一時的であり得る、1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス400の動作を実行させることができる。
【0069】
符号化された可能性のある画像を取得する(410)。いくつかの実装形態では、符号化された可能性のある画像は、候補画像とも呼ばれ、画像解析およびデコーダモジュール118によって取得され、画像解析およびデコーダモジュール118は、1つもしくは複数のデータベース処理デバイスおよび/またはウォーターマーク検出装置を含む。たとえば、クライアントデバイス104のユーザは、電子文書を求める要求に応じて不適切または不穏当なコンテンツ(たとえば、画像またはビデオ)を受信することがある。この例では、ユーザは、コンテンツのスクリーンショット(符号化された可能性のある画像または候補画像と呼ばれる)をキャプチャし、スクリーンショットを解析できるように画像解析およびデコーダモジュール118に送信し、たとえば、ユーザに提示され、符号化された可能性のある画像によって示されるコンテンツの出所を問い合わせてもよい。複数の画像が受信されるが、それらの画像が同時に受信される必要はない。たとえば、画像は、パブリッシャーのプロパティ上のコンテンツが提示されるユーザによってサブミットされるときにある期間にわたって取得することができる。
【0070】
場合によっては符号化されている各画像(候補画像)が視覚的に知覚不可能なウォーターマークを含むかどうかを判定する(420)。いくつかの実装形態では、候補画像が視覚的に知覚不可能なウォーターマークを含むかどうかに関する判定は、ウォーターマークデコーダによる候補画像の任意の処理よりも前にウォーターマーク検出装置によって実行される。ウォーターマーク検出装置を使用して候補画像がウォーターマークを含むかどうかを判定することを、ウォーターマークデコーダを用いて画像を処理することよりも前に行うと、より効率的なコンピューティングシステムが実現される。たとえば、より簡素な(たとえば、より計算コストが低い)検出プロセスを使用して、より計算集約的なデコーダプロセスを実行することが必要になる前に受信された画像内にウォーターマークが存在することを検出することができる。したがって、システムは、デコーダプロセスを実行するのに必要なリソースを無駄にせずに、ウォーターマークが検出されない画像を無視することができる。
【0071】
ウォーターマーク検出装置132は、画像解析およびデコーダモジュール118内に実装することができ、候補画像を処理し、候補画像がウォーターマークの一部または1つもしくは複数のウォーターマークを含むかどうかの指示を出力として生成するように構成された検出器機械学習モデル132aを実装することができる。たとえば、検出器機械学習モデルは、候補画像を処理して画像をウォーターマークを含む画像またはウォーターマークを含まない画像として分類することができる分類モデルとして実装することができる。
【0072】
いくつかの実装形態では、ウォーターマーク検出装置はまた、意味上の画像セグメント化を実行するための検出器機械学習モデルを実装することができる。たとえば、検出器機械学習モデルは、候補画像を処理して候補画像の各ピクセルを第1のクラスおよび第2のクラスに分類することができる。この例では、第1のクラスは、ウォーターマーク画像を使用して符号化される(またはクライアントデバイス上での表示時に重ね合わせられる)候補画像のピクセルに相当し、第2のクラスは、ウォーターマーク画像を使用して符号化されない候補画像のピクセルに相当する。いくつかの実装形態では、検出器機械学習モデルは、ウォーターマーク付けされた符号化後ピクセルのセットを特定するセグメント化マスクを出力として生成することができる。たとえば、検出器機械学習モデルは、候補画像のピクセルを第1のクラスおよび第2のクラスに分類した後、ピクセルが割り当てられたクラスに関するラベルをピクセルに割り当てることによってセグメント化マスクを生成することができる。たとえば、候補画像のピクセルが第1のクラスと分類された場合、そのピクセルにラベル「1」を割り当てることができ、ピクセルが第2のクラスと分類された場合、そのピクセルにラベル「0」を割り当てることができる。
【0073】
いくつかの実装形態では、候補画像が視覚的に知覚不可能なウォーターマークを含むかどうかの判定は、検出器機械学習モデルを使用して実行される。これらの実装形態では、判定することは、入力画像のある領域が視覚的に知覚不可能なウォーターマークを含むかどうかを、その領域のピクセルごとの解析を必要としないその領域の粗解析に基づいて判定するようにトレーニングされた検出器機械学習モデルを使用して、候補画像が視覚的に知覚不可能なウォーターマークを含むかどうかを判定することを含む。たとえば、符号化後ビットまたは黒色ビットの総数を候補画像がウォーターマークを含むかどうかを判定するための条件として使用することができる。より詳細には、ウォーターマークのサイズに対応する領域が十分な数の符号化後ビットまたは黒色ビットを含まない場合、その領域にウォーターマークを含めることは不可能であり、したがって、画像のさらなる処理は不要になる。
【0074】
候補画像が視覚的に知覚不可能なウォーターマークを含むかどうかの判定はまた、ウォーターマーク条件に基づいて候補画像の領域がウォーターマーク付けされているかそれともウォーターマーク付けされていないと分類することによって実行することもできる。ウォーターマーク条件には、たとえば、上述の符号化後ビットのしきい値数、符号化後ビット密度しきい値、符号化後ビット分布条件、または候補画像のウォーターマーク付けされた領域を示すことができる他の条件を含めることができる。これらの実装形態では、候補画像のある領域内の符号化後ピクセルのセットが判定され、符号化後ピクセルのセットがウォーターマーク条件を満たすかどうかに基づいてその領域が分類される。たとえば、候補画像の特定の領域についての符号化後ビット密度(たとえば、符号化されていると特定された領域内の全ビットの一部、たとえば全ビットに対する割合)が符号化後ビット密度しきい値よりも大きい場合、その領域をウォーターマーク付けされた領域として分類することができる。しかし、特定の領域についての符号化後ビット密度が符号化後ビット密度しきい値よりも低い場合、その領域をウォーターマーク付けされていない領域として分類することができる。
【0075】
候補画像のある領域が分類された後、その領域を視覚的に知覚不可能なウォーターマークを含む領域としてマーク付けするためにその領域内のすべてのピクセルについてバイナリ1を出力することができる。このようなバイナリ1を使用して画像についてのウォーターマークマップを生成することができる。ウォーターマークマップは、視覚的に知覚不可能なウォーターマークを含むマップの領域を示す。状況によっては、各領域は同じウォーターマークを含むことができ、それによって、画像のどの部分を解析または復号するかにかかわらず、ウォーターマークに含まれる情報を復元することができる。状況によっては、画像のそれぞれに異なる領域が、各々が異なる情報を伝えるそれぞれに異なるウォーターマークを含み、それによって、単一の画像に符号化できる情報の量を増やすことができる。
【0076】
各々の特定の候補画像(特定の画像)は、特定の画像が視覚的に知覚不可能なウォーターマークを含むかどうかの判定に基づいて転送される。たとえば、特定の画像内にウォーターマークが存在することを検出したことに応じて、特定の画像がウォーターマークデコーダ134に転送され、ウォーターマークが復号され抽出される。ウォーターマークが存在することが検出されない特定の画像については、そのような特定の画像は次いで無視され(または破棄され)、ウォーターマークデコーダによって処理されることはない。いくつかの実装形態では、ウォーターマークが検出されない特定の画像は、さらなる処理から除外される。
【0077】
ウォーターマークデコーダに転送された特定の画像内で検出された視覚的に知覚不可能なウォーターマークを復号する(430)。いくつかの実装形態では、ウォーターマークデコーダは、機械デコーダ機械学習モデルを使用してウォーターマークの復号を実行する。たとえば、デコーダ機械学習モデルは、候補画像を処理し、復号後ウォーターマーク画像を出力として生成するように構成される。デコーダ機械学習モデルは、復号後ウォーターマーク画像を予測するようにトレーニングされたUNetアーキテクチャを有する深層畳み込みニューラルネットワーク(CNN)とすることができる。デコーダ機械学習モデルは、複数のトレーニングパラメータを含むことができ、デコーダ機械学習モデルは、複数のトレーニングパラメータを調整してウォーターマーク画像の予測データ(たとえば、復号後ウォーターマーク画像)を生成することができるトレーニングプロセスを使用して第2のトレーニングデータセットに関してトレーニングされる。ウォーターマークは、特定の画像内に示される項目のズームレベルにかかわらず、特定の画像内の視覚的に知覚不可能なウォーターマークを復号するようにトレーニングされたデコーダ機械学習モデルを使用して復号することができる。たとえば、上述のように、デコーダ機械学習モデルをトレーニングするために使用されるトレーニング画像のセットは、それぞれに異なるズームレベルにおいてそれぞれに異なる画像ひずみを用いてウォーターマーク付けされた項目を示す複数のトレーニング画像を含むことができる。モデルの性能を向上させるには、RGB符号なし整数によって表された画像を使用して浮動小数点数においてデコーダ機械学習モデルをトレーニングすることができる。上述のように、丸め技法を使用して浮動小数点数と符号なしRGB整数との間の不一致に対処することができる。
【0078】
画像解析およびデコーダモジュール118は、候補画像のウォーターマーク画像がデコーダ機械学習モデルによって復号されなかったと判定することができる。たとえば、候補画像は、復号後ウォーターマーク画像を生成する間尤度(または予測信頼性)を低下させる場合があるひずみを含むことができる。別の例では、デコーダ機械学習モデルへの入力として提供された候補画像についてのズームレベルでは、デコーダ機械学習モデルが十分な信頼性を有する復号後ウォーターマーク画像を生成するには不十分である場合があるウォーターマーク付け画像を用いて比較的小さい部分が符号化されることがある。候補画像のウォーターマーク画像が復号されたと判定されると、復号後ウォーターマーク画像を検証のために処理することができる。候補画像のウォーターマーク画像が復号されなかったと判定されたときは、候補画像の1つまたは複数のスケーリング後バージョンを生成することができ、候補画像の1つまたは複数のスケーリング後バージョンを使用してウォーターマークを復号するさらなる試みを実行することができる。
【0079】
復号後ウォーターマーク画像を検証する(440)。たとえば、復号後ウォーターマーク画像の真正性を検証するために、サーバシステム内に実装された検証装置は、復号後ウォーターマーク画像を使用して対応する符号化画像および/または対応するプレーンテキストデータ項目を復元することができる。候補画像によって示されているコンテンツがサーバシステム102からの応答データとしてクライアントデバイス104に与えられた場合、検証装置140は、対応する符号化画像および/または対応するプレーンテキストデータ項目を使用して候補画像によって示されるコンテンツの真正性を検証することができる。たとえば、サーバシステムが対応する符号化画像および/または対応するプレーンテキストデータ項目を応答レコードデータベースから特定することができる場合、対応する符号化画像および/または対応するプレーンテキストデータ項目は有効である。サーバシステムは、対応する符号化画像および/または対応するプレーンテキストデータ項目に基づいて、ソース画像のプロバイダなどのソース画像(たとえば、画像プロバイダによって提供される画像コンテンツ)に関する情報、および特定の要求について与えられる応答データの詳細をさらに判定することができる。対応する符号化画像および/または対応するプレーンテキストデータ項目を特定できない場合、サーバシステムは、符号化された可能性のあるソース画像はサーバシステムによって送信されなかったと判定することができる。
【0080】
図5は、ズームアグノスティックウォーターマークモデル(たとえば、デコーダ機械学習モデル134b)をトレーニングする例示的なプロセスの流れ図である。プロセス500の動作は、たとえば、画像解析およびデコーダモジュール118を含むサーバシステム102によって実施することができる。プロセス500の動作は、非一時的であり得る1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されてもよく、1つまたは複数のデータ処理装置によってこのような命令を実行すると、1つまたは複数のデータ処理装置はプロセス500の動作を実行させることができる。
【0081】
トレーニング画像のセットを取得する(510)。いくつかの実装形態では、トレーニング画像のセットは、1つまたは複数のプロセッサを含むサーバシステム102によって取得される。サーバシステム102は、トレーニングプロセスを実行し、トレーニング画像のセットを使用してデコーダ機械学習モデル134aをトレーニングすることができる。トレーニングプロセスを実行するために、サーバシステム102は、複数のトレーニングサンプルを含むトレーニング画像のセット(トレーニング画像の第2のセットと呼ばれる)を取得し、この場合、各トレーニングサンプルは、ウォーターマーク付けされたトレーニング画像と、ウォーターマークを含むトレーニング画像の領域の特定情報の一形態(たとえば、ウォーターマーク付けされたピクセルとウォーターマーク付けされていないピクセルを特定するセグメント化マスク)と、トレーニング画像内のウォーターマークのウォーターマーク画像を含むターゲットとを含む。
【0082】
トレーニング画像のセットのうちの画像をひずませる(520)。たとえば、デコーダ機械学習モデル134aの汎化可能性を強化するためのトレーニングプロセスは、第2のデータセットの既存のトレーニングサンプルを使用して新しいトレーニングサンプルを生成することによって第2のデータセットを拡張することができる。新しいトレーニングサンプルを生成するには、画像にひずみを加えてひずんだ画像を作成することができる。いくつかの実装形態では、画像の解像度を修正するか、または左右反転および上下反転、並進、回転、クロッピング、色ひずみ、ランダム雑音の付加などの現実世界視覚データにおいて広く生じる視覚摂動を適用することによって、画像をひずませることができる。いくつかの実装形態では、トレーニングプロセスは、不可逆圧縮または変換技法を使用してトレーニング画像をそれぞれに異なるファイルフォーマットに符号化することによって新しいトレーニングサンプルを生成することができる。たとえば、トレーニングプロセスは、JPEG圧縮を使用してトレーニング画像に小さいアーチファクトを導入することができ、圧縮後に生成されたトレーニング画像を使用して第1のデータセットを拡張することができる。いくつかの実装形態では、ひずんだ画像は、画像内の単一のピクセルを表すために使用されるピクセルの数を変更することによって作成することができる。
【0083】
いくつかの実装形態では、トレーニングプロセスは、トレーニング画像のピクセルの色を表す浮動小数点数を丸めることによって第2のトレーニングデータセットをさらに拡張することができる。そのような状況では、トレーニング画像は、ARRIRAW、Blackmagic RAW、DNG、DPX、EXR、PSD、およびTIFF画像フォーマットなどの浮動小数点画像である。そのような状況では、通常の丸めを使用して浮動小数点画像の浮動小数点数を丸めることができ、この場合、丸め後の値は、浮動小数点数に最も近い10進値である。別の例では、切捨てを使用して浮動小数点画像の浮動小数点数を丸めることができ、この場合、丸め後の値は、浮動小数点数の10進部である。
【0084】
いくつかの実装形態では、トレーニングプロセスは、符号化された可能性のある画像302のズームレベルに依存しないようにデコーダ機械学習モデル134aをトレーニングするためにトレーニング画像の1つまたは複数のスケーリング後バージョンを生成することによって第2のトレーニングデータセットをさらに拡張することができる。たとえば、単一のトレーニング画像をズームインおよび/またはズームアウトしてその画像のそれぞれに異なるズーム後バージョンを作成することができる。画像の様々なズーム後バージョンは、モデルをトレーニングするために使用されるトレーニング画像のセットに含めることができ、それによって、モデルは、モデルに入力された候補画像のズームレベルにかかわらずに画像内の視覚的に知覚不可能なウォーターマークを検出しならびに/または復号することができる。
【0085】
ズームアグノスティックウォーターマークデコーダモデルをトレーニングする(530)。いくつかの実装形態では、ズームアグノスティックウォーターマークデコーダモデルは、モデルに入力された候補画像内の視覚的に知覚不可能なウォーターマークを復号するようにトレーニングされ、復号はモデルによって入力画像の複数の異なるズームレベルにわたって実行することができる。たとえば、サーバシステム102は、L2損失などの損失関数を使用してデコーダ機械学習モデル134aの複数のパラメータを調整することができるトレーニングプロセスを実行することができる。たとえば、ピクセルに関するクロスエントロピー誤差は、各ピクセルを個々に調べて復号後(予測)ウォーターマーク画像320のピクセル予測データをターゲットウォーターマーク画像のピクセルと比較し、それに応じてデコーダ機械学習モデル134aのパラメータを調整することができる。トレーニングプロセスは、本質的に反復的であってもよく、各反復時に、トレーニングプロセスは、損失が指定されたしきい値よりも小さくなるまでまたはトレーニングプロセスが指定された回数の反復を実行するまでクロスエントロピー誤差を最小限に抑えようとする。
【0086】
いくつかの実装形態では、ズームアグノスティックウォーターマークデコーダモデルは、トレーニング画像のセットのうちの同じ画像から作成された2つ以上の異なるズーム後画像を使用してトレーニングされる。これらの実装形態では、2つの異なるズーム後画像の各々が異なる数のピクセルを使用して同じ画像の単一のピクセルを表すことができる。
【0087】
ズーム後画像を使用して、入力画像の複数のズームレベルにわたって入力画像内に視覚的に知覚不可能なウォーターマークが存在することを検出するようにズームアグノスティックウォーターマークデコーダモデルをトレーニングすることもできる。いくつかの実装形態では、検出は、デコーダモデルを使用して視覚的に知覚不可能なウォーターマークを復号することとは無関係に実行される。
【0088】
ズームアグノスティックウォーターマークモデルを展開する(540)。たとえば、デコーダ機械学習モデル134aをトレーニングした後、サーバシステム102は候補画像の受信を開始することができる。候補画像内にウォーターマークが存在することが検出された場合、サーバシステム102は、デコーダ機械学習モデル134aを使用して復号後ウォーターマーク画像320を生成することができる。
【0089】
図6は、符号化された可能性のある画像を復号する例示的なプロセス600の流れ図である。プロセス600の動作は、たとえば、画像解析およびデコーダモジュール118を含むサーバシステム102によって実施することができる。プロセス600の動作は、非一時的であり得る1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装されてもよく、1つまたは複数のデータ処理装置によってこのような命令を実行すると、1つまたは複数のデータ処理装置はプロセス600の動作を実行させることができる。
【0090】
ウォーターマークデコーダ134によって入力画像を受信する(610)。たとえば、特定の画像内にウォーターマークが存在することを検出したことに応じて、前述のように、特定の画像がウォーターマークデコーダ134に転送され、ウォーターマークが復号され抽出される。
【0091】
デコーダ機械学習モデルを入力画像に適用する(620)。ウォーターマークデコーダ134は、デコーダ機械学習モデル134aを使用してウォーターマークの復号を実行する。デコーダ機械学習モデルは、入力画像(候補画像とも呼ばれる)を処理し、復号後ウォーターマーク画像を出力として生成するように構成される。デコーダ機械学習モデルは、復号後ウォーターマーク画像を予測するようにトレーニングされたUNetアーキテクチャを有する深層畳み込みニューラルネットワーク(CNN)とすることができる。デコーダ機械学習モデルは、複数のトレーニングパラメータを含むことができ、デコーダ機械学習モデルは、複数のトレーニングパラメータを調整してウォーターマーク画像の予測データ(たとえば、復号後ウォーターマーク画像)を生成することができるトレーニングプロセスを使用して第2のトレーニングデータセットに関してトレーニングされる。
【0092】
ウォーターマークは、特定の画像内に示される項目のズームレベルにかかわらず、画像内の視覚的に知覚不可能なウォーターマークに対してトレーニングされたデコーダ機械学習モデルを使用して復号することができる。たとえば、上述のように、デコーダ機械学習モデルをトレーニングするために使用されるトレーニング画像の第2のセットは、それぞれに異なるズームレベルにおいてそれぞれに異なる画像ひずみを用いてウォーターマーク付けされた項目を示す複数のトレーニング画像を含むことができる。モデルの性能を向上させるには、RGB符号なし整数によって表された画像を用いて浮動小数点数を使用してデコーダ機械学習モデルをトレーニングすることができる。上述のように、丸め技法を使用して浮動小数点数と符号なしRGB整数との間の不一致に対処することができる。
【0093】
画像解析およびデコーダモジュール118は、復号後ウォーターマーク画像が予測されたかどうかを判定する。いくつかの実装形態では、判定することは、デコーダ機械学習モデルを入力画像に適用して復号後ウォーターマークを取得することによって視覚的に知覚不可能なウォーターマークが復号されたどうかを判定することを含む。たとえば、画像解析およびデコーダモジュール118は、候補画像のウォーターマーク画像がデコーダ機械学習モデルによって復号されなかったと判定することができる。この例では、候補画像は、復号後ウォーターマーク画像を生成する間の尤度(または予測信頼性)を低下させる場合がある重大なひずみを含むことがあり、それによって、ウォーターマーク画像は十分な信頼性を有して復号されないと判定される。別の例では、デコーダ機械学習モデルへの入力として提供された候補画像についてのズームレベルでは、デコーダ機械学習モデルが十分な信頼性を有する復号後ウォーターマーク画像を生成するには不十分である場合があるウォーターマーク付け画像を用いて比較的小さい部分が符号化されることがある。候補画像のウォーターマーク画像が復号されたと判定されると、復号後ウォーターマーク画像を検証のために処理することができる。候補画像のウォーターマーク画像が復号されなかったと判定されたときは、候補画像の1つまたは複数のスケーリング後バージョンを生成することができ、候補画像の1つまたは複数のスケーリング後バージョンを使用してウォーターマークを復号するさらなる試みを実行することができる。
【0094】
デコーダ機械学習モデルを入力画像に適用することによって視覚的に知覚不可能なウォーターマークが復号されたどうかに基づいて結果が出力される(630)。符号化された可能性のある画像302を処理することによって復号後ウォーターマーク画像320を生成した後、ウォーターマークデコーダ134は、符号化された可能性のある画像302の真正性(またはソース)を検証するために画像解析およびデコーダモジュール118によって使用することのできる復号後ウォーターマーク画像320を出力として生成することができる。
【0095】
真正性(またはソース)を検証するために、サーバシステム102内に実装された検証装置140は、復号後ウォーターマーク画像320を使用して対応する符号化画像124および/または対応するプレーンテキストデータ項目122を復元することができる。符号化された可能性のある画像302がサーバシステム102からの応答データとしてクライアントデバイス104に与えられた場合、検証装置140は、対応する符号化画像124および/または対応するプレーンテキストデータ項目122を使用して符号化された可能性のある画像302の真正性を検証することができる。
【0096】
いくつかの実装形態では、ウォーターマークデコーダ134は、符号化された可能性のある画像302のバージョンに対して実行されるスケーリングに従って元のズームレベルからスケーリングされた復号後ウォーターマーク画像320を出力として生成することができる。たとえば、この出力は、視覚的に知覚不可能なウォーターマークがデコーダ機械学習モデルを入力画像に適用することによって復号されたとの判定に応じて生成されるズーム後出力を含むことができる。特定の例では、復号後ウォーターマークは、入力画像によって示される項目のズームレベルに対応するズームレベルを有してもよいが、復号後ウォーターマーク画像320を生成するために、ウォーターマークデコーダ134は、ズーム装置138を使用して符号化された可能性のある画像302の200パーセント(2×)ズームレベル(または何らかの他のズームレベル)スケーリング後バージョンを生成することができる。そのような状況では、デコーダ機械学習モデル134aによって生成される復号後ウォーターマーク画像320をズーミングして復号プロセスを助けることができる。ズーム後出力は、復号後ウォーターマークのあるバージョンであり、この場合、復号後ウォーターマークの単一のピクセルがズーム後出力では複数のピクセルを使用して示され、それによって、ウォーターマークの解像度が高められる。これによって、ウォーターマークのより容易なならびに/またはより信頼できる読取りが可能になる。
【0097】
いくつかの状況では、視覚的に知覚不可能なウォーターマークは最初、デコーダ機械学習モデルを入力画像に適用しても復号されないことがある。このような状況では、デコーダ機械学習モデルを入力画像のズーム後バージョンに再適用することができる。たとえば、上述のように、ズーム手法を使用して入力画像におけるウォーターマークの解像度を高めることができ、それによって、ウォーターマークのより信頼できる復号が可能になる。デコーダ機械学習モデルを入力画像のズーム後バージョンに再適用することは、入力画像を少なくとも2倍乗数だけズームして入力画像のズーム後バージョンを作成することを含むことができ、この場合、入力画像のズーム後バージョン内の少なくとも2つのピクセルが入力画像内の単一のピクセルを示すために使用される。ズームが行われた後、デコーダ機械学習モデルを入力画像のズーム後バージョンに再適用することができ、この場合も結果を出力することができる。
【0098】
いくつかの実装形態では、デコーダ機械学習モデルを入力画像に適用する前に追加の動作を実行することができる。たとえば、入力画像に適用される検出器機械学習モデルを使用して入力画像を処理することができる。このような実装形態では、検出器機械学習モデルを入力画像に適用すると、先に詳細に説明したように、入力画像のウォーターマーク付けされた領域を強調するセグメント化マスクを生成することができる。このセグメント化マスクを使用して、入力画像は復号すべき視覚的に知覚不可能なウォーターマークを含むと判定することができる。セグメント化マスクを使用して入力画像のズームレベルを判定することもできる。たとえば、未ズーム画像内の視覚的に知覚不可能なウォーターマークを表すために使用されるピクセルの数に対するセグメント化マスク内の視覚的に知覚不可能なウォーターマークを表すために使用されるピクセルの数に基づいて入力画像のズームレベルを判定することができる。特定の例では、画像上にオーバーレイされるウォーターマークは100×100ピクセル四方であるが、セグメント化マスクは300×300ピクセルであると仮定する。この例では、セグメント化マスクの寸法は未ズーム画像内のウォーターマークにおける既知のサイズの寸法の3倍大きいので、入力画像のズームレベルを300%(3×)と判定することができる。この情報は、結果の一部として出力することができ、入力画像を(デコーダ機械学習モデルによって)さらに処理できるようにスケーリングするかまたは他のモデルもしくは処理ユニットに入力画像のスケールを知らせるために使用することができる。
【0099】
図7は、上記で説明した動作を実行するために使用することができる例示的なコンピュータシステム700のブロック図である。システム700は、プロセッサ710、メモリ720、記憶デバイス730、および入出力デバイス740を含む。構成要素710、720、730、および740の各々は、たとえば、システムバス750を使用して、相互接続することができる。プロセッサ710は、システム700内で実行するための命令を処理することが可能である。いくつかの実装形態では、プロセッサ710は、シングルスレッドプロセッサである。別の実装形態では、プロセッサ710は、マルチスレッドプロセッサである。プロセッサ710は、メモリ720内または記憶デバイス730上に記憶された命令を処理することが可能である。
【0100】
メモリ720は、情報をシステム700内に記憶する。一実装形態では、メモリ720は、コンピュータ可読媒体である。いくつかの実装形態では、メモリ720は、揮発性メモリユニットである。別の実装形態では、メモリ720は不揮発性メモリユニットである。
【0101】
記憶デバイス730は、システム700に対する大容量記憶装置を提供することが可能である。いくつかの実装形態では、記憶デバイス730は、コンピュータ可読媒体である。様々な異なる実装形態では、記憶デバイス730は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイス(たとえば、クラウド記憶デバイス)によってネットワーク上で共有される記憶デバイス、または何らかの他の大容量記憶デバイスを含むことができる。
【0102】
入出力デバイス740は、システム700のための入出力動作を提供する。いくつかの実装形態では、入出力デバイス740は、ネットワークインターフェースデバイス、たとえば、Ethernetカード、シリアル通信デバイス、たとえば、およびRS-232ポート、ならびに/またはワイヤレスインターフェースデバイス、たとえば、および802.11カードのうちの1つまたは複数を含むことができる。別の実装形態では、入出力デバイスは、入力データを受信し、出力データを外部デバイス760、たとえば、キーボード、プリンタ、およびディスプレイデバイスに送るように構成された、ドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなど、他の実装形態を使用することもできる。
【0103】
例示的な処理システムについて
図1-6で説明したが、本明細書で説明した主題および機能的動作の実装形態は、他のタイプのデジタル電子回路において、もしくは本明細書で開示する構造およびそれらの構造等価物を含む、コンピュータソフトウェア、ファームウェア、または、ハードウェアにおいて、またはそれらのうちの1つまたは複数の組合せにおいて実装することができる。
【0104】
本明細書で説明した主題および動作の実施形態は、デジタル電子回路において、または、本明細書で開示した構造およびそれらの構造等価物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装することができる。本明細書で説明する主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、(1つまたは複数の)コンピュータ記憶媒体上で符号化された、コンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替的にまたは追加として、プログラム命令は、データ処理装置による実行のために、好適な受信機装置への送信のために情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械生成の電気、光、または電磁信号上で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであるか、またはそれらに含まれることが可能である。さらに、コンピュータ記憶媒体は、伝搬信号ではなく、コンピュータ記憶媒体は、人工的に生成された伝搬信号において符号化されたコンピュータプログラム命令のソースまたは宛先であることが可能である。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であるか、またはそれらに含まれることが可能である。
【0105】
本明細書で説明する動作は、1つまたは複数のコンピュータ可読記憶デバイス上に記憶されたまたは他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。
【0106】
「データ処理装置」という用語は、例として、プログラム可能プロセッサ、コンピュータ、システムオンチップ、または上記の複数のもの、もしくは組合せを含む、データを処理するための、あらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つまたは複数の組合せを構成するコードも含むことができる。装置および実行環境は、ウェブサービス、分布コンピューティングインフラストラクチャおよびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0107】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとして含む任意の形態で展開することができる。コンピュータプログラムは、ファイルシステムの中のファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語文書の中に記憶された1つまたは複数のスクリプト)を保持するファイルの一部分の中に、当該のプログラムに専用の単一のファイルの中に、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)の中に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるかもしくは複数のサイトにわたって分散され通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開することができる。
【0108】
本明細書で説明するプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によっても実施することができ、装置は、それらとしても実装することができる。
【0109】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、命令およびデータを読取り専用メモリ、もしくはランダムアクセスメモリ、またはその両方から受信することになる。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、または、それらからデータを受信することもしくはそれらにデータを転送すること、もしくは両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有することは必須でない。その上、コンピュータは、ほんのいくつかの例を挙げれば、別のデバイス、たとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)の中に組み込むことができる。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、不揮発性媒体、および不揮発性メモリデバイスを含む。プロセッサおよびメモリは、専用論理回路構成によって増補するか、または専用論理回路構成の中に組み込むことができる。
【0110】
ユーザとの対話を提供するために、本明細書で説明する主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびに、キーボード、および、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上で実装することができる。他の種類のデバイスも、ユーザとの対話を提供するために使用することができる。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受け取ることができる。加えて、コンピュータは、文書をユーザによって使用されるデバイスに送信し、文書をそのデバイスから受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応じてウェブページをそのウェブブラウザに送信することによって、ユーザと対話することができる。
【0111】
本明細書で説明した主題の実施形態は、たとえば、データサーバとして、バックエンド構成要素を含むか、もしくはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書で説明した主題の実装形態とそれを通して対話することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを含むか、あるいは1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装することができる。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって、相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0112】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに遠隔にあり、通常、通信ネットワークを通じて相互作用する。クライアントとサーバとの関係は、コンピュータプログラムがそれぞれのコンピュータ上で実行し互いにクライアントサーバ関係を有することによって生じる。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスと対話するユーザにデータを表示するとともにそのユーザからユーザ入力を受信するために)データ(たとえば、HTMLページ)をクライアントデバイスへ送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信することができる。
【0113】
本明細書は多くの特定の実装詳細を含むが、これらは、任意の発明のまたは特許請求され得るものの範囲に対する限定と解釈すべきではなく、特定の発明の特定の実施形態に特定の特徴の説明と解釈すべきである。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴はまた、単一の実施形態において組み合わせて実施することができる。反対に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の好適な部分組合せにおいて実施することができる。その上、特徴はいくつかの組合せで働くものとして上記で説明されることがあり、当初はそのようなものとして特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除することができ、特許請求される組合せは、部分組合せまたは部分組合せの変形形態を対象としてよい。
【0114】
同様に、動作は、特定の順序で図面に示されるが、これは、望ましい結果を達成するために、そのような動作が図示された特定の順序でもしくは順番に行われること、または例示したすべての動作が行われることを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上記で説明した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムは一般に、単一のソフトウェア製品に一緒に組み込まれるか、または複数のソフトウェア製品にパッケージ化されることがあると理解されたい。
【0115】
以上、本主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲において列挙されるアクションは、異なる順序で実行される場合があるが、依然として望ましい結果を達成することができる。加えて、添付の図において図示されるプロセスは、望ましい結果を達成するために、必ずしも示されている特定の順序または順番を必要とするとは限らない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0116】
100 ネットワーク化環境
102 サーバシステム
104 クライアントデバイス
106a~106n 画像プロバイダ
110 画像生成サブシステム
112 符号化入力生成器
114 ウォーターマーク画像生成器
118 画像解析およびデコーダモジュール
120 応答レコードデータベース
122 プレーンテキストデータ項目
124 符号化画像
126 ウォーターマーク画像
126a、126b ウォーターマーク
128a~128n ソース画像
130 符号化後画像
132 ウォーターマーク検出装置
132a 検出器機械学習モデル
134 ウォーターマークデコーダ
134a、134b デコーダ機械学習モデル
138 ズーム装置
140 検証装置
200 QRコード
202a~202c 7×7画素の正方形
302 符号化された可能性のある画像
310 セグメント化マスク
310a、310b ウォーターマーク
320 ウォーターマーク画像
700 コンピュータシステム
710 プロセッサ
720 メモリ
730 記憶デバイス
740 入出力デバイス
750 システムバス
760 外部デバイス