JP2024505766A - エンドツーエンドウォーターマーキングシステム - Google Patents

エンドツーエンドウォーターマーキングシステム Download PDF

Info

Publication number
JP2024505766A
JP2024505766A JP2023507470A JP2023507470A JP2024505766A JP 2024505766 A JP2024505766 A JP 2024505766A JP 2023507470 A JP2023507470 A JP 2023507470A JP 2023507470 A JP2023507470 A JP 2023507470A JP 2024505766 A JP2024505766 A JP 2024505766A
Authority
JP
Japan
Prior art keywords
image
watermarked
training
training image
machine learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023507470A
Other languages
English (en)
Inventor
シヤン・ルオ
フェン・ヤン
エルナズ・バルシャン・タシュニジ
デイク・ヘ
ライアン・マシュー・ハガーティ
マイケル・ジーン・ゲーベル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2024505766A publication Critical patent/JP2024505766A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Abstract

ウォーターマークを生成するエンコーダ、およびウォーターマーク内で符号化されたデータ項目を復号するデコーダを、共同でトレーニングするための、コンピュータ記憶媒体上で符号化されたコンピュータプログラムを含む、方法、システム、および装置。トレーニングは、複数のトレーニング画像およびデータ項目を取得することを備える。トレーニング画像ごとに、エンコーダを使用して第1のウォーターマークが生成され、2つ以上の第1のウォーターマークをタイリングすることによって後続の第2のウォーターマークが生成される。トレーニング画像は、第1の誤差値を生成するために、第2のウォーターマークを使用してウォーターマークが入れられ、ウォーターマーク入り画像にひずみが加えられる。ひずみ検出器が、ひずんだ画像が修正されることに基づいてひずみを予測する。予測されるデータ項目および第2の誤差値を生成するために、修正された画像がデコーダによって復号される。エンコーダおよびデコーダのトレーニングパラメータが、第1および第2の誤差値に基づいて調整される。

Description

本明細書は、一般に、デジタルコンテンツの中にウォーターマークを埋め込み、かつデジタルコンテンツの中に埋め込まれたウォーターマークを復元するための、データ処理および技法に関する。
インターネットなどのネットワーク化された環境では、コンテンツプロバイダは、電子文書、たとえば、ウェブページまたはアプリケーションインターフェースの中での提示のために、情報を提供することができる。文書は、ファーストパーティコンテンツプロバイダによって提供されるファーストパーティコンテンツ、およびサードパーティコンテンツプロバイダ(たとえば、ファーストパーティコンテンツプロバイダとは異なるコンテンツプロバイダ)によって提供されるサードパーティコンテンツを含むことができる。
サードパーティコンテンツは、様々な技法を使用して電子文書に追加され得る。たとえば、いくつかの文書は、サードパーティコンテンツプロバイダに(たとえば、ファーストパーティコンテンツを提供するサーバとは異なるドメインの中のサーバに)サードパーティコンテンツ項目を直接要求するように、文書がそこで提示されるクライアントデバイスに命令する、タグを含む。他の文書は、複数のサードパーティコンテンツプロバイダと提携する仲介サービスを呼び出して、サードパーティコンテンツプロバイダのうちの1つまたは複数から選択されたサードパーティコンテンツ項目を戻すように、クライアントデバイスに命令する、タグを含む。いくつかの事例では、サードパーティコンテンツ項目は、電子文書での提示のために動的に選択され、文書の所与のサービングのために選択される特定のサードパーティコンテンツ項目は、同じ文書の他のサービングのために選択されるサードパーティコンテンツ項目とは異なってよい。
概して、本明細書で説明する主題の1つの発明的態様は、画像の中に埋め込まれるデジタルウォーターマークを生成するエンコーダ機械学習モデル、および画像の中に埋め込まれるデジタルウォーターマーク内で符号化された第1のデータ項目を復号するデコーダ機械学習モデルを、共同でトレーニングするための動作を含む方法において具現することができ、トレーニングは、第1の複数のトレーニング画像および複数のデータ項目を取得するステップであって、複数のデータ項目の中の各データ項目が、トレーニング画像の中に埋め込まれるべきデジタルウォーターマーク内で符号化されることになるデータ項目である、ステップと、第1の複数のトレーニング画像の中のトレーニング画像ごとに、複数のデータ項目からデータ項目を取得するステップと、データ項目が入力として提供される先のエンコーダ機械学習モデルを使用して、データ項目を符号化する第1のデジタルウォーターマークを生成するステップと、第2のデジタルウォーターマークを生成するために第1のデジタルウォーターマークの2つ以上のインスタンスをタイリングするステップと、ウォーターマーク入りトレーニング画像を取得するために第2のデジタルウォーターマークをトレーニング画像と組み合わせるステップと、ウォーターマーク入りトレーニング画像に1つまたは複数のひずみを適用するステップと、ひずみ検出器機械学習モデルを使用して、ウォーターマーク入りトレーニング画像の中に存在する1つまたは複数のひずみを予測するステップと、ひずんだウォーターマーク入りトレーニング画像の中に埋め込まれた第2のデジタルウォーターマークを保持しながら、予測される1つまたは複数のひずみに基づいてウォーターマーク入りトレーニング画像を修正するステップと、ひずんだウォーターマーク入りトレーニング画像の中に埋め込まれた第2のデジタルウォーターマークの中に埋め込まれるものと予測される復号されたデータ項目を取得するために、デコーダ機械学習モデルを使用して、修正されたウォーターマーク入りトレーニング画像を復号するステップと、ウォーターマーク入りトレーニング画像およびトレーニング画像に基づいて第1の誤差値を決定するステップと、復号されたデータ項目およびデータ項目に基づいて第2の誤差値を決定するステップと、第1の誤差値および第2の誤差値を最小化するようにエンコーダ機械学習モデルおよびデコーダ機械学習モデルの1つまたは複数のトレーニングパラメータを調整するステップとを含む。
この態様の他の実施形態は、対応する方法、装置、およびコンピュータ記憶デバイス上で符号化された、方法のアクションを実行するように構成されたコンピュータプログラムを含む。これらおよび他の実施形態は各々、以下の特徴のうちの1つまたは複数を随意に含むことができる。
方法は、ウォーターマーク入りトレーニング画像およびトレーニング画像に基づいてL2損失値を算出することによって、ウォーターマーク入りトレーニング画像およびトレーニング画像に基づいて第1の誤差値を決定するステップを含むことができる。
方法は、復号されたデータ項目およびデータ項目に基づいてシグモイド交差エントロピー値を算出することによって、復号されたデータ項目およびデータ項目に基づいて第2の誤差値を決定するステップを含むことができる。
方法は、1つまたは複数のひずみとして、画像圧縮、ガウス雑音、または画像スケーリングを含むことができる。
方法は、第2の複数のトレーニング画像および複数のデータ項目を取得するステップであって、複数のデータ項目の中の各データ項目が、トレーニング画像の中に埋め込まれるべきデジタルウォーターマーク内で符号化されることになるデータ項目である、ステップと、エンコーダ機械学習モデルの重みを固定するステップと、第2の複数のトレーニング画像の中のトレーニング画像ごとに、エンコーダ機械学習モデルを使用して、ウォーターマーク入りトレーニング画像を生成するステップと、ウォーターマーク入りトレーニング画像に1つまたは複数のひずみを適用するステップと、ひずみ検出器機械学習モデルを使用して、ひずんだウォーターマーク入りトレーニング画像の中に存在する1つまたは複数のひずみを予測するステップと、ひずみ検出器機械学習モデルを使用して、ウォーターマーク入りトレーニング画像の中に存在する1つまたは複数のひずみを予測するステップと、ひずんだウォーターマーク入りトレーニング画像の中に存在する予測される1つまたは複数のひずみ、およびウォーターマーク入りトレーニング画像の中に存在する予測される1つまたは複数のひずみに基づいて、第3の誤差値を決定するステップと、第3の誤差値を最小化するようにひずみ検出器機械学習モデルの1つまたは複数のトレーニングパラメータを調整するステップとによって、ひずみ検出器機械学習モデルをトレーニングするステップをさらに含むことができる。
方法はまた、ひずんだウォーターマーク入りトレーニング画像の中に存在する予測される1つまたは複数のひずみ、およびウォーターマーク入りトレーニング画像の中に存在する予測される1つまたは複数のひずみに基づいて、L2損失値を算出することによって、第3の誤差値を決定するステップを含むことができる。
本明細書で説明する主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施され得る。簡潔のために、単に「ウォーターマーク」または「デジタルウォーターマーク」とも呼ばれる、視覚的に知覚不可能なウォーターマークが、(たとえば、ウェブサイトにおいて、ストリーミングビデオの中で、またはネイティブアプリケーションの中で)ファーストパーティコンテンツとともに提示されるサードパーティコンテンツのソースを決定するために使用され得る。これらのウォーターマークは、以前に可能であったよりも効率的なやり方で抽出および復号され得る。たとえば、本明細書で説明するウォーターマーク抽出および復号技法は、ウォーターマークを符号化および復号するために一緒にトレーニングされるエンコーダ機械学習モデルおよびデコーダ機械学習モデルを実装する。このことは、単純な軽量エンコーダ機械学習モデル、およびエンコーダによって生成されたウォーターマークを復号するために特にトレーニングされる効率的なデコーダを使用するウォーターマークの高速な生成をもたらし、したがって、ウォーターマーキングシステムのロバストネスを全面的に向上させる。
本明細書で説明する技法は、入力デジタルコンテンツの中に含まれ得るウォーターマークを復号することを試みる前に入力デジタルコンテンツ(たとえば、画像)の中のウォーターマークの存在を検出する、初期ウォーターマーク検出プロセスを含む。このことは、(復号プロセスと比較して)計算コストがさほど高くない検出プロセスを使用して、ウォーターマークを含まないコンテンツ全体またはコンテンツの部分をフィルタで除去し、それによって、計算コストがより高い復号プロセスによってそのような入力デジタルコンテンツを処理するために必要とされる時間と計算リソースの両方を節約することによって低減され得る、復号に関与するコンピュータリソースを考慮に入れることによって動機づけられる。言い換えれば、デジタルコンテンツを完全に処理しデジタルコンテンツの中のウォーターマークを復号することを試みなければならないのではなく、検出プロセスは、最初に、もっと少ないコンピューティングリソースを使用しながら、かつ復号プロセスを実行するために必要とされるよりも短い時間の中で、画像がウォーターマークを含むかどうかを判定することができる。このようにして、復号プロセスを開始する前の、検出プロセスの使用は、ウォーターマークを含まないデジタルコンテンツの全部または部分をフィルタで迅速に除去し、それによって、そのような動作のために本来なら必要とされる計算リソースを低減することによって、コンピューティングリソースを節約し、ウォーターマークを実際に含むデジタルコンテンツのより高速な識別および解析を可能にする。対照的に、ウォーターマーク入り画像の検出と復号の両方のために復号プロセスのみに依拠する技法、またはフィルタメカニズムとして検出プロセスを使用しないプロセスは、計算コストがもっと高い。
本明細書で説明する検出および復号プロセスは、ひずみにとらわれず、入力画像の中のひずみとは無関係にウォーターマークが検出および/または復号され得ることを意味する。本技法は、ウォーターマークを復号する前にひずみを緩和するように入力画像を修正するために使用される入力画像の中の任意のひずみを検出するために、機械学習モデルを使用する。このことは、復号の間、誤った任意の予測を低減し、それによって、よりロバストで信頼できるウォーターマーキングシステムを提供する。
より詳細には、本明細書で説明する技法は、(たとえば、コンテンツのピクチャまたはスクリーンショットの中の)最初に提示されたコンテンツの再生の中のウォーターマークを検出および復号するために使用することができ、最初に提示されたコンテンツがそこでキャプチャされるひずみは、キャプチャされたあるインスタンスから別のインスタンスまで(たとえば、あるピクチャから別のピクチャまで)変化する。入力画像(たとえば、クライアントデバイスにおいて提示されるコンテンツのピクチャなどの、再生)の中のウォーターマークの検出および/または復号は、ウォーターマークの肯定的な検出の後でのみ、1つまたは複数のひずみを予測することを必要とすることになる。開示する方法の実装形態は、したがって、異なるそれぞれのズームレバーを用いて画像を解析してウォーターマークを検出または復号するために必要とされる計算リソースを低減することによって、動機づけられる。
本明細書で説明する技法の他の利点は、デジタルコンテンツのデータにとらわれない検出および復号プロセスを含み、これは、デジタルコンテンツのデータまたはコンテキストにウォーターマークが入れられていることとは無関係にウォーターマークが符号化、検出、および復号され得ることを意味する。このことは、ウォーターマークおよびウォーターマーク入りデジタルコンテンツの事前生成を可能にし、それによって、符号化時間を著しく短縮する。
本明細書で説明する主題の1つまたは複数の実施形態の詳細が、添付図面および以下の説明に記載される。本主題の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
ウォーターマーク入り画像とともに電子文書をクライアントデバイスへ送信するための環境のブロック図である。 エンコーダ機械学習モデルを使用して生成される例示的な第1のウォーターマークの図である。 エンコーダ機械学習モデルを使用して生成されたウォーターマークを使用して生成される例示的な第2のウォーターマークの図である。 画像解析およびデコーダ装置のブロック図である。 UNetアーキテクチャを有する例示的な畳み込みニューラルネットワークのブロック図である。 エンコーダ機械学習モデルおよびデコーダ機械学習モデルを共同でトレーニングするための例示的なプロセスのブロック図である。 エンドツーエンド学習パイプラインの一部としてエンコーダ機械学習モデルおよびデコーダ機械学習モデルを共同でトレーニングするための例示的なプロセスのフロー図である。 ひずみ検出器機械学習モデルをトレーニングするための例示的なプロセスのフロー図である。 デジタルウォーターマークをソース画像に加えるための例示的なプロセスのフロー図である。 ウォーターマーク入り画像のウォーターマークを復号するための例示的なプロセスのフロー図である。 例示的なコンピュータシステムのブロック図である。
本明細書は、コンテンツのキャプチャされた再生(たとえば、クライアントデバイスにおいて提示されるコンテンツのデジタル写真)の中の視覚的に識別可能なウォーターマークを検出および復号するためのシステム、方法、デバイス、および技法について説明する。以下の説明は、視覚的に識別可能なウォーターマークに関するウォーターマーク検出について説明するが、本技法はまた、視覚的に知覚可能なウォーターマークに適用され得る。簡潔のために単に「ウォーターマーク」と呼ばれる視覚的に識別可能なウォーターマークは半透明であり、通常の観察条件の下では人間のユーザに視覚的に識別可能であり、その結果、ウォーターマークは、コンテンツの視覚的品質を劣化させることなくコンテンツの中に埋め込むことができる。ウォーターマークは、ウォーターマークがその中に埋め込まれる画像のソースの識別子などの情報を搬送することができる。たとえば、インターネットのコンテキストでは、ウォーターマークは、(情報の中でも)発行者のプロパティ(たとえば、ウェブサイト、ビデオストリーム、ビデオゲーム、またはモバイルアプリケーション)がユーザによってアクセスされたとき、発行者のプロパティ上にコンテンツを配置したエンティティ、サーバ、またはサービスを識別することができる。したがって、発行者のプロパティ上に提示されるようなコンテンツの再生(たとえば、コンテンツのピクチャまたはスクリーンショット)が、確認のためにキャプチャおよびサブミットされると、適切なエンティティ、サーバ、またはサービスによって実際にコンテンツが配信されたかどうかを確認するためにウォーターマークが検出および復号され得る。
以下で詳細に説明するように、ウォーターマークの符号化、検出、および復号は、画像がそこでキャプチャされる任意のひずみとは無関係にウォーターマークを生成、検出、および復号するようにトレーニングされる機械学習モデルによって実行され得る。このことを行うために、トレーニングプロセス中に関与される機械学習モデルによって生成されたウォーターマークを機械学習モデルが検出および復号できるように、機械学習モデルが共同でトレーニングされる。
図1は、ウォーターマーク入り画像とともに電子文書およびデジタルコンポーネントをクライアントデバイスへ送信するためのコンピューティング環境100(または、単に環境100)のブロック図である。図示のように、コンピューティング環境100は、ウォーターマーク生成器110ならびに画像解析およびデコーダ装置118を含む。環境100は、サーバシステム102、クライアントデバイス104、および1つまたは複数のコンテンツプロバイダ106a~nのためのコンピューティングシステムを含む。サーバシステム102、クライアントデバイス104、およびコンテンツプロバイダ106a~nは、インターネットまたはローカルエリアネットワーク(LAN)などの1つまたは複数のネットワークを介して接続される。概して、クライアントデバイス104は、電子文書を求める要求を生成するとともにサーバシステム102へ送信するように構成される。クライアントデバイス104からの要求に基づいて、サーバシステム102は、クライアントデバイス104に戻すための応答(たとえば、電子文書およびデジタルコンポーネント)を生成する。所与の応答は、クライアントデバイス104のユーザに表示されるように構成される、ソース画像128aなどのコンテンツを含むことができ、ここで、ソース画像128aはコンテンツプロバイダ106a~nのうちの1つによって提供される。サーバシステム102は、ソース画像128aを介したクライアントデバイス104における応答文書の提示の際の表示のために構成される、半透明な第2のウォーターマーク126を用いて、クライアントデバイス104にサービスされる応答を増補することができる。例として、以下の説明は、クライアントデバイス104に提供されるソース画像128a~nを参照しながら説明されるが、第2のウォーターマーク126が、ネイティブアプリケーションコンテンツ、ストリーミングビデオコンテンツ、ビデオゲームコンテンツ、または他の視認可能なコンテンツを含む、様々な他のタイプの視認可能なコンテンツの上にオーバーレイされ得ることを、諒解されたい。半透明な第2のウォーターマーク126を用いて、クライアントデバイス104にサービスされる応答を増補するのではなく、サーバシステム102が、ウォーターマークを1つまたは複数のコンテンツプロバイダ106a~nに配信することができ、ここで、コンテンツプロバイダが、提示のためにコンテンツをクライアントデバイス104へ送信する前にウォーターマーク入り画像を生成できることにも、留意されたい。
クライアントデバイス104は、画像および他のコンテンツを1人または複数の人間のユーザに提示するように構成される任意のタイプのコンピューティングデバイスであり得る。クライアントデバイス104は、サーバシステム102への要求を作成するとともにサーバシステム102からの応答を受信する、ウェブブラウザアプリケーションなどのアプリケーションを含んでよい。アプリケーションは、ウェブページコードまたは他のタイプの文書ファイルなどの、サーバシステム102からの応答を実行して、クライアントデバイス104の1人または複数のユーザに応答を提示してよい。いくつかの実装形態では、クライアントデバイス104は、電子ディスプレイデバイス(たとえば、LCDもしくはLEDスクリーン、CRTモニタ、ヘッドマウント仮想現実ディスプレイ、ヘッドマウント複合現実ディスプレイ)を含むか、またはクライアントデバイス104の1人もしくは複数のユーザへのレンダリングされた応答からコンテンツを表示する電子ディスプレイデバイスに結合される。表示されるコンテンツは、ソース画像128a、および、たとえば、2つの画像をマージするプロセスであるアルファブレンディングなどの技法を使用することによって実質的に透過的にソース画像128aの上部を覆って表示される1つまたは複数の第2のウォーターマーク126を含むことができる。いくつかの実装形態では、クライアントデバイス104は、ノートブックコンピュータ、スマートフォン、タブレットコンピュータ、デスクトップコンピュータ、ゲーミングコンソール、携帯情報端末、(たとえば、音声制御下の)スマートスピーカー、スマートウォッチ、または別のウェアラブルデバイスである。
いくつかの実装形態では、クライアントデバイス104への応答の中で提供されるソース画像128aは、たとえば、応答のファーストパーティコンテンツプロバイダによって提供されるコンテンツの中にない、サードパーティコンテンツ項目である。たとえば、応答がウェブページである場合、ウェブページの作成者は、ウェブページの作成者(たとえば、画像リポジトリの提供者)とは異なるサードパーティコンテンツプロバイダからのデジタルコンポーネント(たとえば、画像)によって埋められるように構成されるスロットを、ウェブページの中に含めてよい。別の例では、ファーストパーティコンテンツプロバイダは、サードパーティのソース画像128aに直接リンクさせてよい。クライアントデバイス104は、コンテンツプロバイダ106a~nのうちの1つのための対応するコンピューティングシステムにソース画像128aを直接、またはサーバシステム102もしくは別のサーバシステムによって提供されるサービスなどの仲介サービスを介して間接的に要求してよい。サーバシステム102は、1つまたは複数のロケーションにおける1つまたは複数のコンピュータとして実装され得る。
サーバシステム102は、たとえば、クライアントデバイス104にサービスすべきソース画像128aを取得するために、コンテンツプロバイダ106a~nのコンピューティングシステムと通信するように構成され得る。そのような実装形態では、サーバシステム102は、ソース画像128a、およびソース画像128aを覆って電子文書の中で表示されることになる半透明なウォーターマークを用いて、クライアントデバイス104からの要求に応答するように構成される。半透明なウォーターマークを生成するために、サーバシステム102はウォーターマーク生成器110を含むことができ、ウォーターマーク生成器110は、次に複数のトレーニングパラメータを含むエンコーダ機械学習モデル112を含むことができる(エンコーダ機械学習モデル112のトレーニングが、図4および図5を参照しながら説明される)。サーバシステム102は、半透明なウォーターマークを生成した後、ソース画像128aを覆って半透明なウォーターマークをオーバーレイするように、クライアントデバイス104上で実行中のアプリケーションを案内する命令と一緒に、ソース画像128aおよび半透明なウォーターマークを送信することができる。
いくつかの実装形態では、サーバシステム102は、すでにウォーターマークが入れられているソース画像128aを用いてクライアントデバイス104からの要求に応答するように構成される。そのような実装形態では、(たとえば、クライアントデバイス104がソース画像128aを覆って半透明なウォーターマークをオーバーレイすることを可能にするために)ソース画像128aおよび半透明なウォーターマークをクライアントデバイス104へ送信するのではなく、サーバシステム102は、ソース画像128aを覆って半透明なウォーターマークをオーバーレイすることによって、ウォーターマーク入りソース画像(符号化画像130とも呼ばれる)を生成することができる。符号化画像130を生成した後、符号化画像130がクライアントデバイス104へ送信される。そのような実装形態では、クライアントデバイス104からの要求に応答するときに符号化画像130を生成するための、半透明なウォーターマークへのアクセスをサーバシステム102が有するように、ウォーターマーク生成器110は、半透明なウォーターマークを生成するサーバシステム102によって実装され得る。
また別の実装形態では、コンテンツプロバイダ106a~nおよびサーバシステム102は、それぞれ、ソース画像128aおよび半透明なウォーターマークを送信するために、独立してクライアントデバイス104と通信することができる。そのような実装形態では、コンテンツプロバイダ106a~nおよびサーバシステム102は、クライアントデバイス104との同時(または、ほぼ同時)の通信、およびクライアントデバイス104においてウォーターマークが入れられようとしているソース画像128aを確認するために、互いに通信してよい。クライアントデバイス104は、ソース画像128aを覆って半透明なウォーターマークをオーバーレイするように、クライアントデバイス104上で実行中のアプリケーションを案内するための命令と一緒に、ソース画像128aおよび半透明なウォーターマークを受信した後。
また別の実装形態では、コンテンツプロバイダ106a~nは、ソース画像128aを覆って半透明なウォーターマークをオーバーレイすることによって符号化画像130を生成することができる。符号化画像130を生成した後、符号化画像130がクライアントデバイス104へ送信される。そのような実装形態では、クライアントデバイス104からの要求に応答するときに符号化画像130を生成するための、半透明なウォーターマークへのアクセスをコンテンツプロバイダ106a~nが有するように、ウォーターマーク生成器110は、半透明なウォーターマークを生成するコンテンツプロバイダ106a~nによって実装され得る。
データ項目(第1のデータ項目122と呼ばれる)を符号化するデジタルウォーターマーク(第1のウォーターマーク124と呼ばれる)を生成するために第1のデータ項目122を入力として受信するように、(図4および図5を参照しながらさらに説明するように)エンコーダ機械学習モデル112がトレーニングプロセス中に構成される。いくつかの実装形態では、エンコーダ機械学習モデル112は、単一の完全接続畳み込みニューラルネットワーク層などの単純かつ軽量なモデルであり得る。しかしながら、エンコーダ機械学習モデルが、2つ以上の畳み込み層、プーリング層、または完全接続層を含むことができることに留意されたい。エンコーダ機械学習モデルが、必ずしもニューラルネットワークであるとは限らず、特定の実装形態に応じて任意の種類の教師あり学習モデル、教師なし学習モデル、または強化学習モデルであり得ることにも留意されたい。
いくつかの実装形態では、第1のデータ項目122は、特定のコンテンツプロバイダ106を識別する、(たとえば、英数字値であり得る)一意識別子であり得る。第1のデータ項目122は、追加または代替として、応答がその間にクライアントデバイス104からの要求にサービスされる、クライアントデバイス104とサーバシステム102との間のネットワークセッションを一意に識別する、(たとえば、英数字値であり得る)セッション識別子を含むことができる。第1のデータ項目122は、クライアントデバイス104にサービスされる特定のソース画像128aまたはソース画像128aに関連する情報(たとえば、クライアントデバイス104にサービスされた特定のソース画像128aをコンテンツプロバイダ106a~nのうちのどれが提供したのかを示す情報、およびいつソース画像128aがいつサービスまたは要求されたのかを示すタイムスタンプ)を識別する参照を含むことができる。
いくつかの実装形態では、サーバシステム102はまた、第1のデータ項目によって表されるセッション識別子または他の情報を介してアクセス可能な詳細情報を作成するために、ソース画像128aについてのそのような情報と相関関係にあるデータ、または特定の要求に対してサービスされた応答を記憶する、応答記録データベースを含むことができる。応答記録データベースはまた、セッション識別子を画像データに関連付けることができ、それによって、第1のデータ項目によって表されるセッション識別子を使用してデータベースに照会することによってアクセス可能な画像データを作成する。サーバシステムのユーザは、次いで、第1のデータ項目に対するセッション識別子を使用して、たとえば、どの時間において、またどのコンテンツプロバイダ106a~nから、ソース画像128a~nのうちのどれがクライアントデバイス104にサービスされたのかを、識別することができる。
いくつかの実装形態では、第1のウォーターマーク124は、第1のデータ項目122を表す画像である。第1のウォーターマーク124は、第1のデータ項目122を符号化できる網目状のタイプのバーコードまたは任意のパターンであり得る。第1のウォーターマーク124は、ピクセルの行および列の個数に関して既定のサイズを有することができる。第1のウォーターマーク124の中の各ピクセルは、データの複数のビットを符号化することができ、ここで、複数のビットの値は異なる色によって表される。たとえば、バイナリ値「00」を符号化するピクセルは黒色であってよく、バイナリ値「11」を符号化するピクセルは白色であってよい。同様に、バイナリ値「01」を符号化するピクセルは濃淡がより薄い黒色(たとえば、暗い灰色)であってよく、バイナリ値「10」を符号化するピクセルは濃淡がさらに薄い黒色(たとえば、薄い灰色)であってよい。いくつかの実装形態では、第1のウォーターマークの最小符号化単位は、実際には単一のピクセルよりも大きくてよい。しかし、本明細書で説明する例では、最小符号化単位は単一のピクセルであるものと想定される。しかしながら、本明細書で説明する技法が、最小符号化単位が複数のピクセルのセット、たとえば、ピクセルの2×2または3×3のセットである実装形態に拡張され得ることを、諒解されたい。第1のデータ項目122を使用してエンコーダ機械学習モデル112によって生成される例示的な第1のウォーターマーク124が、図2Aを参照しながら図示および説明される。
図2Aは、たとえば、本明細書で説明する技法のために、第1のウォーターマーク124の働きをすることができる、例示的なウォーターマークパターン200を示す。いくつかの実装形態では、ウォーターマーク200は、固定されたサイズ、たとえば、この例では32×64ピクセルというサイズを有するが、他の既定のサイズを有するウォーターマークが同様に利用され得る。ウォーターマーク200は、図1に関して説明したように(また、図6を参照しながらさらに説明するように)第1のデータ項目122を使用して生成され得る。ウォーターマークパターン200の特有の特徴とは、各ピクセルまたはピクセルのグループが、様々な色およびそれぞれの色の濃淡をとり得ることである。たとえば、ウォーターマークパターン200は、白色または黒色でのピクセルまたはピクセルのグループを含むことができ、ここで、異なるピクセルまたはピクセルのグループは、白色または黒色の異なる濃淡を有することができる。この特徴は、(QRコード(登録商標)などの他のウォーターマークパターンと比較して)設定済みのピクセル数またはウォーターマーク寸法を使用してもっと多数の固有パターンを提供することを可能にする。
図1を参照しながら説明を続けると、サーバシステム102は、第1のウォーターマーク124を生成した後、第1のウォーターマーク124の複数のインスタンスを結合して第2のウォーターマーク126を生成するために、ウォーターマークタイリング装置114を使用する。たとえば、ウォーターマークタイリング装置114は、第1のウォーターマーク124の2つ以上のインスタンスを隣り合わせに置くことによって第2のウォーターマーク126を生成することができる。例示的な第2のウォーターマーク126が、図2Bを参照しながらさらに説明される。
図2Bは、たとえば、本明細書で説明する技法のために、第2のウォーターマークの働きをすることができる、例示的なウォーターマーク250を示す。ウォーターマーク250は、64×128ピクセルというサイズを有し、4つの第1のウォーターマークを互いの隣に置くことによりウォーターマークタイリング装置114によって生成される。たとえば、ウォーターマーク250は、第1のウォーターマーク124の4つのインスタンス(255~258)を含む。
図1に戻ると、サーバシステム102は、いくつかの実装形態では、電子文書を求める、クライアントの要求への返答としてクライアントデバイス104に戻すための応答を生成する。応答は、ウェブページ、アプリケーションインターフェース、PDF、プレゼンテーションスライドデッキ、またはスプレッドシートなどの電子文書を集合的に形成する、ファーストパーティコンテンツ項目およびサードパーティコンテンツ項目を含む、1つまたは複数のコンテンツ項目を含むことができる。いくつかの実装形態では、応答は、様々なコンテンツ項目がどのように配置および表示されることになるのかを指定する1次文書を含む。ハイパーテキストマークアップ言語(HTML)ページなどの1次文書は、文書の提示の際に表示されることになるファーストパーティコンテンツ項目およびサードパーティコンテンツ項目を参照してよい。いくつかの実装形態では、サーバシステム102は、応答を実行するとき、ソース画像128aを覆って第2のウォーターマーク126の1つまたは複数のインスタンスを表示するようにクライアントデバイス104に命令するコンピュータコードを1次文書に追加するように、たとえば、実質的に人間のユーザに識別可能なソース画像128aにウォーターマークを加えるように構成される。電子文書をレンダリングするクライアントデバイス104におけるアプリケーションは、ソース画像128aの上にオーバーレイされたときの第2のウォーターマーク126の不透明性のレベルを指定する、指定の透明度に従ってソース画像128aの上に第2のウォーターマーク126をオーバーレイするために、アルファブレンディング技法を使用することができる。たとえば、サーバシステム102は、電子文書の中のサードパーティコンテンツスロットの中で背景画像としてソース画像128aを表示するように、かつ画像128aを覆って前景画像として第2のウォーターマーク126の1つまたは複数のインスタンスを表示するように、クライアントデバイス104に指示する、コードを追加してよい。いくつかの実装形態では、サーバシステム102が、ウォーターマーク入り画像130を用いてクライアントデバイス104からの要求に応答するように構成される場合、ソース画像128aの上に第2のウォーターマーク126をオーバーレイするためのアルファブレンディング技法がサーバ102によって実行される。同様に、任意の他のエンティティ(たとえば、コンテンツプロバイダ106)が、ウォーターマーク入り画像130を用いてクライアントデバイス104からの要求に応答するように構成される場合、ソース画像128aの上に第2のウォーターマーク126をオーバーレイするためのアルファブレンディング技法がそのエンティティによって実行される。
いくつかの実装形態では、ウォーターマーク入り画像130を生成するクライアントデバイス104などのエンティティは、ソース画像128aを覆って第2のウォーターマークをオーバーレイする前に強度値を[0, 1]に制約するために、第2のウォーターマーク126の各ピクセル強度値にシグモイド関数を適用する。このことは、次式
Im=sigmoid(WeM0+be)
を使用して表すことができ、ただし、Imは第2のウォーターマーク126であり、M0はデータ項目であり、Weおよびbeは、エンコーダ機械学習モデル112の重みおよびバイアスである。
いくつかの実装形態では、第2のウォーターマーク126がソース画像128aのサイズよりも大きい場合、第2のウォーターマーク126は既定の規則に基づいてクロップされる。たとえば、既定の規則は、第2のウォーターマーク126の大きさをソース画像128aのサイズに変更するように第2のウォーターマーク126が右下からクロップされ得ることを表明することができる。
いくつかの実装形態では、第2のウォーターマーク126のファイルサイズを小さくするために、第2のウォーターマーク126の各ピクセルはまた、一定の色ベクトルc∈R3に基づいて調整することができ、したがって、調整済みのウォーターマークIm'が得られる。このことは、
Im'=Repeat(Im.c)
として表すことができる。
いくつかの実装形態では、指定の透明度に従ってソース画像128aの上に第2のウォーターマーク126をオーバーレイするためのアルファブレンディング技法は、
Iw=(1-α)*Io+α*I'm
として表すことができ、ただし、Iwは符号化画像130であり、αは、ソース画像128aの上にオーバーレイされたときの第2のウォーターマーク126の不透明性の尺度である指定の透明度である。
多くの異なるクライアントデバイス104に配信される数百万の画像(および、他の視覚コンテンツ)があり得る環境では、サーバシステム102が画像(または、他の視覚コンテンツ)の提供者もしくはソース、画像(または、他の視覚コンテンツ)の他の特性、または画像(または、他の視覚コンテンツ)の特定の印象(たとえば、提示)についてのコンテキストを決定する必要がある状況があり得る。
たとえば、クライアントデバイス104のユーザは、電子文書を求める要求に応答してコンテンツプロバイダ106a~nのうちの1つから不適当または無関係な画像128aを受信することがある。ユーザは、符号化画像130のスクリーンショット(たとえば、クライアントデバイス104において提示される画像または他のコンテンツの再生)をキャプチャしてよく、たとえば、ソース画像128aの起源について照会するために、スクリーンショットを解析のためにサーバシステム102へ送信してよい。スクリーンショットが、ウォーターマーキング画像126によってオーバーレイされた元の画像128aを示すので、サーバシステム102は、スクリーンショットを処理して、画像の中に含まれるデジタルウォーターマークから第1のデータ項目を復元することができる。システム102は、次いで、様々な目的のために、たとえば、応答記録データベースに問い合わせて画像128aおよびその起源についての詳細情報またはソース画像128aがその中でクライアントデバイス104にサービスされた特定のクライアントセッションについての他の情報をルックアップするために、復元された第1のデータ項目を使用することができる。
いくつかの実装形態では、第1のデータ項目122の符号化された表現を符号化ソース画像130から検出および復号するために、サーバシステム102は、画像解析およびデコーダ装置118を含むことができる。上記で説明したように、いくつかの実装形態では、符号化ソース画像130は、クライアントデバイス104がソース画像128aを覆って第2のウォーターマーク126をレンダリングすることから得られる画像である。第2のウォーターマーク126がソース画像128aとは別個であるにもかかわらず、画像解析およびデコーダ装置118によって処理される符号化ソース画像130は、ソース画像128aを覆ってブレンドされた第2のウォーターマーク126を示すマージされた画像であってよい。符号化ソース画像130は、画像解析およびデコーダ装置118に入力することができ、画像解析およびデコーダ装置118は、符号化ソース画像130の中に存在するウォーターマークを検出および/または復号する。画像解析およびデコーダ装置118に入力される符号化ソース画像130は、クライアントデバイス104において提供された実際の符号化ソース画像130であってよく、または(上記で説明したように、第2のウォーターマーク126をソース画像128aとマージ/ブレンドすることによって生成された画像である)その画像の提示の再生(たとえば、スクリーンショットまたは他のデジタルキャプチャ)であってもよい。したがって、元のソース画像128aおよび元の第2のウォーターマーク126は、解析のために画像解析およびデコーダ装置118にサブミットされなくてよい。
場合によっては、画像解析およびデコーダ装置118を含むサーバシステム102は、場合によっては符号化された/ウォーターマーク入り画像を解析するための要求を受信することがある。本明細書で使用する「場合によっては」という用語は、項目に起因する場合があるが、それにもかかわらず項目を処理する処理エンティティ(たとえば、サーバシステム102)に知られていない、項目の条件を指す。すなわち、項目の可能な条件とは、その真実性がそれに対して処理エンティティに知られていない項目の候補条件である。処理エンティティは、可能な(候補)条件の真実性に関して予測を行うために、かつ/または特定の条件を呈示する可能な(候補)項目を識別するために、項目の可能な(候補)条件を識別するための処理を実行してよい。たとえば、場合によっては符号化されたソース画像は、場合によってはウォーターマークを用いて符号化されるソース画像であるが、画像が実際にウォーターマークが入れられているかどうかは、当初はサーバシステム102に知られていない。したがって、場合によってはウォーターマークを用いて符号化されつつある符号化ソース画像130は、符号化ソース画像130の候補条件であり、符号化ソース画像130は、ウォーターマークを用いて符号化されつつあるという候補条件を呈示する候補項目である。場合によっては符号化された画像は、ユーザが、画像のスクリーンショット(または、デジタル写真などの別のデジタル再生)をキャプチャすること、および解析のためにサーバシステム102にキャプチャされた画像を提供することから、ただし、画像が符号化されている/ウォーターマークが入れられているかどうかを示すことになる、より多くの情報を伴わずに得られ得る。
場合によっては符号化された(ウォーターマーク入り)ソース画像を解析するための要求をサーバシステム102が受信するこれらの場合には、画像解析およびデコーダ装置118は、ウォーターマークおよびひずみ検出装置132を使用して、受信された画像を解析し、ウォーターマークおよびひずみ検出装置132は、1つまたは複数の機械学習モデル、たとえば、場合によっては符号化されたソース画像がウォーターマークを含む可能性があるかそれとも含まない可能性があるかを検出するための、ウォーターマーク検出器機械学習モデル134a、およびクライアントデバイス104に提供された符号化ソース画像130と比較して、場合によっては符号化されたソース画像の中の可能なひずみを検出するための、ひずみ検出器機械学習モデル134bを、実装することができる。これらの機械学習モデルの各々が、図3Aを参照しながらさらに説明される。簡潔のために、場合によっては符号化されたソース画像は、場合によっては符号化された画像と呼ばれることもある。
ウォーターマークおよびひずみ検出装置132が、場合によっては符号化されたソース画像への1つまたは複数のひずみと一緒に、場合によっては符号化されたソース画像の一部分の中で視覚的に識別可能なウォーターマークを検出する場合、画像解析およびデコーダ装置118は、場合によっては符号化されたソース画像のその部分を修正して任意のひずみを除去することができる。ひずみを除去した後、画像解析およびデコーダ装置118内に実装されたウォーターマークデコーダ134は、デジタルウォーターマークが検出される、場合によっては符号化された画像の部分/領域を復号することを試みる。他の図に関してさらに詳細に説明するように、ウォーターマークデコーダ134は、場合によっては符号化された画像の場合によっては符号化された領域、および場合によっては符号化された画像の特徴を処理して、場合によっては符号化された画像のウォーターマークステータスを予測するように構成される、1つまたは複数の機械学習モデル(デコーダ機械学習モデルと呼ばれる)を実装することができる。画像解析およびデコーダ装置118はまた、以下でより詳細に説明されるズーム装置138および検証装置140を含むことができる。画像解析およびデコーダ装置118、ならびに任意のサブシステムは、サーバシステム102が実装される1つまたは複数のロケーションにおいて1つまたは複数のコンピュータ上に実装され得る。
ウォーターマーク生成器110、ウォーターマークおよびひずみ検出装置132、ならびにウォーターマークデコーダ134は、単一のエンティティまたは異なるエンティティによって実装され得る。たとえば、場合によっては符号化された画像を解析するための要求を生成および送信する前に、クライアントデバイス104が、キャプチャされた、場合によっては符号化された画像の中のウォーターマークおよび/またはひずみの存在を検出できるように、クライアントデバイス104は、ウォーターマークおよびひずみ検出装置132を含むことができる。別の例では、場合によっては符号化された画像の中に存在するウォーターマークをクライアントデバイス104が検出および復号できるように、クライアントデバイス104は、ウォーターマークおよびひずみ検出装置132とウォーターマークデコーダ134の両方を含むことができる。別の例では、コンテンツプロバイダ106a~nがクライアントデバイス104からの要求に応答するときに符号化画像130を生成できるように、ウォーターマーク生成器110は、コンテンツプロバイダ106a~nによって実装され得る。
図3Aは、場合によっては符号化された画像302の中に含まれるデジタルウォーターマーク内で符号化された予測される第1のデータ項目を取得するために入力として画像解析およびデコーダ装置118に提供される、場合によっては符号化された画像302を検出および復号する、例示的な画像解析およびデコーダ装置118のブロック図300である。
場合によっては符号化された画像302は、クライアントデバイスにおいて提示される画像のスクリーンキャプチャまたはデジタル写真の形態をなすことができる。たとえば、場合によっては符号化された画像302は、発行者ウェブサイト上で提示される画像のスクリーンキャプチャであり得る。より詳細には、場合によっては符号化された画像302は、発行者のウェブサイトを訪問したユーザによってキャプチャされている場合があり、次いで、画像の提示を(たとえば、不適当として)報告するためにユーザによってサブミットされている場合がある。画像解析およびデコーダ装置118は、ウォーターマークおよびひずみ検出装置132、ウォーターマークデコーダ134、ならびに検証装置140のうちの1つまたは複数を含むことができる。
いくつかの実装形態では、ウォーターマークおよびひずみ検出装置132は、場合によっては符号化された画像302を処理するとともに、場合によっては符号化された画像302の一部分が1つまたは複数のウォーターマークを含むかどうかという表示を出力として生成するように構成される、ウォーターマーク検出器機械学習モデル132aを実装することができる。ウォーターマーク検出器機械学習モデル132aは、決定木、人工ニューラルネットワーク、遺伝的プログラミング、論理プログラミング、サポートベクトルマシン、クラスタリング、強化学習、ベイズ推定などの、特定の実装形態に適すると見なされる任意のモデルであり得る。機械学習モデルはまた、画像を解析するためのコンピュータビジョンおよび画像処理のための方法、アルゴリズム、および技法を含んでよい。そのような実装形態では、場合によっては符号化された画像302がウォーターマークの一部分または1つもしくは複数のウォーターマークを含むかどうかという表示は、分類またはスコアもしくは確率などの数値の形態のものであってよい。たとえば、ウォーターマーク検出器機械学習モデル132aは、場合によっては符号化された画像302を処理して、ウォーターマークを含む画像またはウォーターマークを含まない画像として画像を分類できる、分類モデルとして実装され得る。別の例では、ウォーターマーク検出器機械学習モデル132aは、場合によっては符号化された画像302を処理して、場合によっては符号化された画像302がウォーターマークを含む可能性を示すスコアなどの、スコアを生成することができる。
いくつかの実装形態では、ウォーターマークおよびひずみ検出装置132は、セマンティックな画像セグメント化を実行するとともに、ウォーターマークが入れられている符号化ピクセルのセットを識別するセグメント化マスクを生成するために、ウォーターマーク検出器機械学習モデル132aを実装することができる。セマンティックな画像セグメント化とは、画像の各ピクセルを1つまたは複数のクラスに分類するプロセスである。たとえば、ウォーターマーク検出器機械学習モデル132aは、場合によっては符号化された画像302を処理して、場合によっては符号化された画像302の各ピクセルを複数のクラス(たとえば、第1のクラスおよび第2のクラス)に分類することができる。各ピクセルが第1のクラスおよび第2のクラスに分類される実装形態では、第1のクラスは、第2のウォーターマーク126を使用してブレンドされている、画像302のピクセルに対応し、第2のクラスは、第2のウォーターマーク126を使用してブレンドされていない、画像302のピクセルに対応する。ウォーターマーク検出器機械学習モデル132aは、場合によっては符号化された画像302のピクセル特性に基づいてピクセルを分類する。たとえば、(すなわち、第2のウォーターマークを使用して符号化された)第1のクラスとして分類されるピクセルは、人間の目に視覚的に識別不可能であるにもかかわらず、ウォーターマーク検出器機械学習モデル132aにとって区別可能である。たとえば、32ビットRGBピクセルは、各色チャネル(たとえば、赤色(R)、緑色(G)、および青色(B))に対する8ビット、および透明度に対する「アルファ」チャネルを含む。そのようなフォーマットは、これらの組合せの一部分が人間の目には区別不可能であるにもかかわらず、コンピューティングシステムによって識別可能な4,294,967,296通りの色組合せをサポートすることができる。
分類されたピクセルに基づいて、ウォーターマーク検出器機械学習モデル132aは、ウォーターマークが入れられている符号化ピクセルのセット(たとえば、ウォーターマークの一部分を含む/ウォーターマークの一部分を用いて符号化される、ピクセルに対応する第1のクラスの中に分類されたピクセルのセット)を識別するセグメント化マスクを出力として生成する。たとえば、ウォーターマーク検出器機械学習モデル132aは、場合によっては符号化された画像302のピクセルを第1のクラスおよび第2のクラスに分類した後、ピクセルが割り当てられる先のクラスに関係するピクセルにラベルを割り当てることによってセグメント化マスクを生成することができる。たとえば、ウォーターマーク検出器機械学習モデル132aは、寸法1000×1000×3の、場合によっては符号化された画像302(たとえば、クライアントデバイス104からのスクリーンショット)を入力として受信し、ここで、寸法とは、場合によっては符号化されたソース画像302の長さ、幅、およびチャネル数を指す。ウォーターマーク検出器機械学習モデル132aは、寸法1000×1000×1のセグメント化マスクを出力として生成し、ここで、セグメント化マスクの各値は、場合によっては符号化された画像302のそれぞれのピクセルに割り当てられたラベルに対応する。たとえば、場合によっては符号化された画像302のピクセルは、第1のクラスとして分類される場合、ラベル「1」を割り当てることができ、そのピクセルは、第2のクラスとして分類される場合、ラベル「0」を割り当てることができる。この例では、セグメント化マスク310は、場合によっては符号化された画像302を処理することによりウォーターマーク検出器機械学習モデル132aによって生成される。図3Aに示すように、セグメント化マスク310は、第1のクラスとして分類されたピクセルを含む2つの部分310aおよび310b、ならびに第2のクラスとして分類されたピクセルを含む第3の部分310cを含む。図3Aに見られるように、場合によっては符号化された画像302は、場合によっては符号化された画像302の2つの異なる領域の中に2つのウォーターマーク126aおよび126bを含む。場合によっては符号化された画像302を入力として使用して、ウォーターマーク検出器機械学習モデル132aは、ウォーターマーク126aおよび126bを含む、場合によっては符号化された画像302の部分を識別する、セグメント化マスク310を出力する。ウォーターマークを検出すると、以下で詳細に説明するように、場合によっては符号化された画像302がウォーターマークデコーダ134によって処理され得る。
別の例では、ウォーターマーク検出器機械学習モデル132aは、ウォーターマーク検出器機械学習モデル132aのクラスごとにセグメント化マスクを生成することができる。たとえば、ウォーターマーク検出器機械学習モデル132aは、寸法1000×1000×NumClassのセグメント化マスクを生成することができ、ただし、NumClass=2は、ウォーターマーク検出器機械学習モデル132aのクラスの数である。この例では、セグメント化マスクは、2つの1000×1000行列として解釈することができ、ここで、第1の行列は、第1のクラスに属する、場合によっては符号化された画像302のピクセルを識別することができ、第2の行列は、第2のクラスに属する、場合によっては符号化された画像302のピクセルを識別することができる。そのような状況では、ラベル「0」および「1」は、ピクセルが特定のクラスに属するか否かを示すために使用される。たとえば、場合によっては符号化された画像302の、その対応するピクセルが第1のクラスとして分類される第1の行列の値はラベル「1」を有し、その対応するピクセルが第2のクラスとして分類される要素はラベル「0」を有する。同様に、第2の行列の値、すなわち、場合によっては符号化された画像302の、その対応するピクセルが第2のクラスとして分類される要素はラベル「1」を有し、その対応するピクセルが第1のクラスとして分類される要素はラベル「0」を有する。ウォーターマーク検出器機械学習モデル132aとして使用され得る、UNetアーキテクチャを有するディープ畳み込みニューラルネットワーク(CNN:convolutional neural network)が、図3Bを参照しながらさらに説明される。
図3Bは、ウォーターマーク検出器機械学習モデル350の例示的なアーキテクチャのブロック図である。ウォーターマーク検出器機械学習モデル350は、UNetアーキテクチャを有するCNNである。ウォーターマーク検出器機械学習モデル350は、エンコーダブロック360、365、および370、ならびにデコーダブロック375、380、および385を含む。エンコーダブロック360、365、および370、ならびにデコーダブロック375、380、および385がエンコーダ機械学習モデルおよびデコーダ機械学習モデルとは異なることに留意されたい。CNN350のエンコーダブロック360、365、および370は、畳み込み層と、それに後続する1つまたは複数のマックスプーリング層とを含む。たとえば、エンコーダブロックは、3×3の畳み込みを実行する畳み込み層と、それに後続し2×2のマックスプーリング動作を実行するマックスプーリング層とを含むことができる。いくつかの実装形態では、エンコーダブロックは、VGGネットワークのような事前トレーニングされた分類ネットワークであり得る。デコーダブロック375、380、および385は、畳み込み層と、それに後続するアップサンプリング層とを含むことができる。たとえば、デコーダブロックは、3×3の畳み込みを実行する畳み込み層と、それに後続するアップサンプリング層とを含むことができ、アップサンプリング層に続いて、ブロックごとの入力がエンコーダブロックからの特徴マップによってアペンドされる。
CNN350は、場合によっては符号化されたソース画像302などの画像を入力として受信するとともに、異なる画像セグメントに対する分類をCNN350のトレーニングに基づいて識別するセグメント化マスクを出力として生成するように構成される。たとえば、CNN350は、寸法1000×1000×1のセグメント化マスク310を出力として生成し、ここで、セグメント化マスクの各値は、場合によっては符号化された画像302のそれぞれのピクセルに割り当てられたラベルに対応する。たとえば、場合によっては符号化された画像302のピクセルは、第1のクラスとして分類される場合、ラベル「1」を割り当てることができ、そのピクセルは、第2のクラスとして分類される場合、ラベル「0」を割り当てることができる。図3Aに示すように、セグメント化マスク310は、第1のクラスとして分類されたピクセルを含む2つの部分310aおよび310b、ならびに第2のクラスとして分類されたピクセルを含む第3の部分310cを含む。
いくつかの実装形態では、ウォーターマーク検出器機械学習モデル132aは、場合によっては符号化された画像302が1つまたは複数のウォーターマークを含むかどうかという表示を生成するように複数のトレーニングパラメータを調整できるトレーニングプロセスを使用して、トレーニングデータセット(検出器モデルトレーニングデータセットと呼ばれる)に対してトレーニングされる。検出器モデルトレーニングデータセットは、複数のトレーニングサンプルを含むことができ、ここで、各トレーニングサンプルは、ウォーターマークが入れられているトレーニング画像、およびウォーターマークを使用して符号化されているトレーニング画像のピクセルを識別するターゲットを含む。たとえば、トレーニング画像は、トレーニング画像の1つまたは複数の領域の中にウォーターマークを含む、クライアントデバイス104からのスクリーンショットと類似の画像であり得る。トレーニング画像に対応するターゲットは、ウォーターマークが入れられているかもしくはウォーターマークが入れられていないかのいずれかのピクセル、または場合によっては、ウォーターマーク入りピクセルとウォーターマークなしピクセルの両方を識別するセグメント化マスクを含むことができる。
ウォーターマーク検出器機械学習モデル132aの一般化可能性を向上させるために、トレーニングプロセスは、たとえば、検出器モデルトレーニングデータセットの既存のトレーニングサンプルを使用して新たなひずんだトレーニングサンプルを生成する、ひずみ装置を使用して、検出器モデルトレーニングデータセットを増補することができる。新たなトレーニングサンプルを生成するために、トレーニングプロセスは、トレーニング画像のセットの中の画像をひずませて、ひずんだ画像を作成することができる。いくつかの実装形態では、ひずんだ画像は、水平反転および垂直反転、平行移動、回転、クロッピング、ズーミング、色ひずみ、ランダム雑音を付加すること、水平スケーリングおよび垂直スケーリング、ならびに他の背景画像を用いて画像をスプライスすることなどの、実世界の視覚データの中で広く発生する視覚的な摂動を適用することによって生成され得る。トレーニングプロセスはまた、損失のある圧縮または変換技法を使用してトレーニング画像を異なるファイルフォーマットに符号化することによって、新たなトレーニングサンプルを生成することができる。たとえば、トレーニングプロセスは、トレーニング画像の中で小さいアーティファクトを導入するためにJPEG圧縮を使用することができ、圧縮の後生成されるトレーニング画像は、検出器モデルトレーニングデータセットを増補するために使用され得る。
トレーニングの間、トレーニングプロセスは、交差エントロピー損失などの損失関数を使用してウォーターマーク検出器機械学習モデル132aの様々なパラメータを調整することができる。たとえば、ピクセルごとの交差エントロピー損失は、各ピクセルを個別に検査して、クラス予測をピクセルのターゲットクラスと比較することができ、それに応じてウォーターマーク検出器機械学習モデル132aのパラメータを調整することができる。トレーニングプロセスは本質的に反復的であり得、その結果、各反復の間、トレーニングプロセスは、たとえば、損失が指定のしきい値よりも小さくなるまで、またはトレーニングプロセスが指定の回数の反復を実行するまで、交差エントロピー損失を最小化することを目指す。交差エントロピー損失は、以下の形式
L=-(y log log(p)+(1-y)log(1-p))
をとることができ、ただし、yはピクセルのターゲットラベルであり、pはピクセルが第1のクラスに属するという予測される可能性である。他の損失関数の例は、重み付き交差エントロピー損失、焦点損失、感度特異性損失、ダイス損失、境界損失、ハウスドルフ距離損失、または2つ以上の異なるタイプの損失の平均として算出され得る複合損失を含むことができる。
いくつかの実装形態では、ウォーターマークおよびひずみ検出装置132は、場合によっては符号化された画像302を処理して、場合によっては符号化された画像302がソース画像128aに関して受けている1つまたは複数のひずみの表示を出力として生成するように構成され得る、ひずみ検出器機械学習モデル132bを実装することができる。たとえば、場合によっては符号化された画像302を処理することによって、ひずみ検出器機械学習モデル132bは、垂直スケーリング、水平スケーリング、および画像オフセットの表示を出力として生成することができる。垂直スケーリングおよび水平スケーリングは、ソース画像128aと比較した、場合によっては符号化された画像302の、それぞれ、長さおよび幅の変化を示すひずみである。ズームなどの他のタイプのひずみが、予測される水平スケーリングおよび垂直スケーリングから生成され得る。
いくつかの実装形態では、ウォーターマークおよびひずみ検出装置132は、1つまたは複数のウォーターマークを含む、場合によっては符号化された画像302の部分のみを処理して、場合によっては符号化された画像302の部分がソース画像128aの対応する部分に関して受けている1つまたは複数のひずみの表示を出力として生成するように構成され得る、ひずみ機械学習モデル132bを実装することができる。たとえば、場合によっては符号化された画像302の部分を処理することによって、ひずみ検出器機械学習モデル132bはまた、垂直スケーリングおよび水平スケーリングの表示を出力として生成することができ、ここで、垂直スケーリングおよび水平スケーリングは、ソース画像128aの部分と比較した、場合によっては符号化された画像302の部分の、それぞれ、長さおよび幅の変化を示すひずみである。
いくつかの実装形態では、ひずみ検出器機械学習モデル132bは、場合によっては符号化された画像302の部分を処理して、場合によっては符号化された画像302の部分が受けている1つまたは複数のひずみの表示を出力として生成するようにトレーニングされた、UNetアーキテクチャを有するCNNであり得る。ひずみ機械学習モデル132bは、場合によっては符号化された画像302の部分の中の1つまたは複数のひずみの表示を生成するように複数のトレーニングパラメータを調整できるトレーニングプロセスを使用して、トレーニングデータセット(ひずみモデルトレーニングデータセットと呼ばれる)に対してトレーニングされる。ひずみモデルトレーニングデータセットは複数のトレーニングサンプルを含むことができ、ここで、各トレーニングサンプルはウォーターマーク入りトレーニング画像を含む。たとえば、ウォーターマーク入りトレーニング画像は、ソース画像128aの上に第2のウォーターマーク126をオーバーレイすることによって生成されるウォーターマーク入り画像130と類似の画像であり得る。
いくつかの実装形態では、ひずみ検出器機械学習モデル132bは、トレーニング済みのエンコーダ機械学習モデル112によって特に符号化される、場合によっては符号化された画像302または場合によっては符号化された画像302の一部分の中のひずみを検出するようにトレーニングされ得る。言い換えれば、ひずみ検出器機械学習モデル132bは、特定のエンコーダ機械学習モデル112を使用して符号化されている画像の中のひずみを検出するように微調整される。そのような実装形態では、検出器モデルトレーニングデータセットは、ウォーターマークが入れられていないトレーニング画像を含むことができる。エンコーダ機械学習モデル112をトレーニングした後、エンコーダ機械学習モデル112のパラメータは固定され、次いで、検出器モデルトレーニングデータセットの中のトレーニング画像の各々にウォーターマークを入れて対応するウォーターマーク入りトレーニング画像を生成するために使用される。
いくつかの実装形態では、ひずみ機械学習モデル132bをトレーニングしながら、トレーニングプロセスは、ひずみモデルトレーニングデータセットからのウォーターマーク入りトレーニング画像をひずませて、ひずんだウォーターマーク入りトレーニング画像を生成することができる。たとえば、トレーニングプロセスの各反復の間、ひずみモデルトレーニングデータセットからのウォーターマーク入りトレーニング画像は、ランダムな水平スケーリング係数、ランダムな垂直スケーリング係数、およびランダムな画像オフセットに基づいてひずませられ得る。トレーニングプロセスは、次いで、ひずんだウォーターマーク入りトレーニング画像およびウォーターマーク入りトレーニング画像を入力としてひずみ検出器機械学習モデル132bに提供して、ひずんだウォーターマーク入りトレーニング画像およびウォーターマーク入りトレーニング画像の中の1つまたは複数のひずみを示す1つまたは複数の出力を生成する。たとえば、ウォーターマーク入りトレーニング画像からひずんだウォーターマーク入りトレーニング画像を生成した後、トレーニングプロセスは、ウォーターマーク入りトレーニング画像を入力としてひずみ検出器機械学習モデル132bに提供して、パターン(ユニバーサルパターンと呼ばれる)を生成することができる。同様に、トレーニングプロセスは、ひずんだウォーターマーク入りトレーニング画像を入力としてひずみ検出器機械学習モデル132bに提供することができ、別のパターン(変換済みのパターンと呼ばれる)を出力として生成することができる。
いくつかの実装形態では、ユニバーサルパターンおよび変換済みのパターンは、ウォーターマーク入りトレーニング画像およびひずんだウォーターマーク入りトレーニング画像の上に1対の水平線および垂直線をさらに生成する1対の周期的な信号を使用して生成される、グリッドパターンであり得る。そのような実装形態では、信号のピークは、ソース画像128aの上にオーバーレイされたときの第2のウォーターマーク126の中心のx座標およびy座標に対応する。
ユニバーサルパターンおよび変換済みのパターンを生成した後、トレーニングプロセスは、損失関数(たとえば、L2損失)を使用して第3の誤差値を算出するために2つのパターンを比較する。第3の誤差値がウォーターマーク入りトレーニング画像に加えられたひずみの予測される測定値であることに留意されたい。第3の誤差値は、時々、形式||T(U0)-U1||2をとることができ、ただし、Tは、1つまたは複数のひずみを加えることによるウォーターマーク入りトレーニング画像の変換を指し、U0はユニバーサルパターンであり、U1は変換済みのパターンである。トレーニングプロセスは、次いで、第3の誤差値を使用してひずみ検出器機械学習モデル132bの様々なパラメータを調整することができる。トレーニングプロセスは本質的に反復的であり得、その結果、各反復の間、トレーニングプロセスは、たとえば、損失が指定のしきい値よりも小さくなるまで、またはトレーニングプロセスが指定の回数の反復を実行するまで、L2損失を最小化することを目指す。
いくつかの実装形態では、ウォーターマーク検出器機械学習モデル132aおよびひずみ機械学習モデル132bは、単一の機械学習モデルとして実装され得る。そのような1つの例示的な実装形態では、単一の機械学習モデルは、第1の段階の間、単一の機械学習モデルが、場合によっては符号化された画像302を処理して、場合によっては符号化された画像302の一部分が1つまたは複数のウォーターマークを含むことを決定できるような、2つの段階の中で情報を処理することができる。たとえば、場合によっては符号化された画像302を処理すること、および1つまたは複数のウォーターマークを含む、場合によっては符号化された画像302の部分を識別する、対応するセグメント化マスクを生成することによって。第2の段階の間、単一の機械学習モデルは、1つまたは複数のウォーターマークを含む、場合によっては符号化された画像302の部分を処理して、場合によっては符号化された画像302の部分が受けているひずみの表示を生成することができる。
ウォーターマーク検出器機械学習モデル132aおよびひずみ機械学習モデル132bが単一の機械学習モデルとして実装され得る、別の例示的な実装形態では、単一の機械学習モデルは、場合によっては符号化された画像302を処理するとともに、3つの出力を生成するように構成することができ、ここで、第1の出力は、場合によっては符号化された画像302の部分を識別するセグメント化マスクであり、第2の出力は、予測される垂直スケーリングであり、第3の出力は、予測される水平スケーリングである。
いくつかの実装形態では、画像解析およびデコーダ装置118は、ウォーターマーク検出装置132が、ウォーターマークが入れられている、場合によっては符号化された画像302の領域全体を検出および/または抽出できないことに応答して、場合によっては符号化された画像302のスケーリングされたバージョンを生成することができる。たとえば、セグメント化マスクがウォーターマーク入り領域の一部分しか生成しないことを想定する。そのような状況では、ウォーターマークデコーダ134は、不完全な情報によりウォーターマークを復号することができない。そのような状況では、画像解析およびデコーダ装置118は、場合によっては符号化された画像302のスケーリングされたバージョンを生成することができ、ウォーターマークが入れられている、場合によっては符号化された画像302の領域全体が、復号の前に識別され得るかどうかを検査することができる。
いくつかの実装形態では、ウォーターマークおよびひずみ検出装置132は、場合によっては符号化された画像302の中のウォーターマークの存在を検出機械学習モデル132aが首尾よく決定した後、場合によっては符号化された画像302の部分を処理することができる。
いくつかの実装形態では、場合によっては符号化された画像302の一部分が1つまたは複数のウォーターマークを含むことを検出および決定した後、画像解析およびデコーダ装置118は、ひずみ検出器機械学習モデルによって予測されるひずみに基づいて画像のその部分を修正して、ソース画像130と類似であるかまたは類似であることに近い、場合によっては符号化された画像302の修正済みの部分を生成することができる。たとえば、ウォーターマーク検出器機械学習モデル132aを使用して場合によっては符号化された画像302上のウォーターマークの存在を決定した後、画像解析およびデコーダ装置118は、1つまたは複数のウォーターマークを含む、場合によっては符号化された画像302の一部分を取得することができる。1つまたは複数のウォーターマークの存在の肯定的な決定に応答して、画像解析およびデコーダ装置はまた、場合によっては符号化された画像302が受けた様々なひずみを示す1つまたは複数の予測を生成することができる。たとえば、場合によっては符号化された画像302が2×垂直スケーリングを受けていることを、ひずみ検出器機械学習モデル132bが予測することを想定する。画像解析およびデコーダ装置118は、そのような予測に応答して、場合によっては符号化された画像の部分を修正して、1/2という垂直スケーリング係数を有する修正済みのバージョンを生成することができ、それによって、場合によっては符号化された画像302が受けた任意のひずみを緩和する。
同様に、場合によっては符号化された画像302が(垂直スケーリング係数および水平スケーリング係数を使用して識別される)垂直スケーリングおよび/または水平スケーリングを受けていることを、ひずみ検出器機械学習モデル132bが予測する場合、画像解析およびデコーダ装置118は、場合によっては符号化された画像302の部分をスケーリングすることによって、場合によっては符号化された画像302の部分を修正して、修正済みのバージョンを生成することができる。修正済みのバージョンは、同じ垂直スケーリング係数および/または水平スケーリング係数でスケーリングされ、それによって、場合によっては符号化された画像302が受けた任意の垂直ひずみおよび/または水平ひずみを緩和する。
場合によっては符号化された画像302の中で検出されたウォーターマークを復号するために、画像解析およびデコーダ装置はウォーターマークデコーダ134を含む。いくつかの実装形態では、ウォーターマークデコーダ134は、場合によっては符号化された画像302の修正済みの部分を処理するとともに、予測される第1のデータ項目を出力として生成するように構成される、デコーダ機械学習モデル134aを実装することができる。デコーダ機械学習モデル134aは、決定木、人工ニューラルネットワーク、遺伝的プログラミング、論理プログラミング、サポートベクトルマシン、クラスタリング、強化学習、ベイズ推定などの、特定の実装形態に適すると見なされる任意のモデルであり得る。機械学習モデルはまた、画像を解析するためのコンピュータビジョンおよび画像処理のための方法、アルゴリズム、および技法を含んでよい。いくつかの実装形態では、デコーダ機械学習モデル134aは、予測される第1のデータ項目を予測するようにトレーニングされる、UNetアーキテクチャを有するディープ畳み込みニューラルネットワーク(CNN)であり得る。デコーダ機械学習モデル134aは、予測(たとえば、予測される第1のデータ項目)を生成するように調整され得る複数のトレーニングパラメータを含むことができる。
いくつかの実装形態では、場合によっては符号化された画像302を処理することによって、予測される第1のデータ項目を生成した後、画像解析およびデコーダ装置118は、場合によっては符号化された画像302の真正性(または、ソース)を検証するために、予測される第1のデータ項目を使用することができる。真正性(または、ソース)を検証するために、サーバシステム102内に実装された検証装置140は、予測される第1のデータ項目を応答記録データベース120の中に記憶された第1のデータ項目と比較することができる。一致(たとえば、厳密な一致)が見出せる場合、検証装置140は、クライアントデバイス104上で提示されるソース画像128aが、実際にサーバシステム102またはコンテンツプロバイダ106a~bによって提供されたことを結論付けることができる。一致がない場合、検証装置140は、クライアントデバイス104上で提示されるソース画像128aが、サーバシステム102またはコンテンツプロバイダ106a~bによって提供されなかったことを結論付けることができる。
図4は、デジタルコンポーネントの中に含まれるべきデジタルウォーターマークを生成するエンコーダ機械学習モデル、およびデジタルウォーターマークの中で符号化されたデータ項目を取得するためにデジタルウォーターマークのデジタルコンポーネントを復号するデコーダ機械学習モデルを、エンドツーエンド学習パイプラインの一部として共同でトレーニングするための、トレーニングプロセス400のブロック図である。トレーニングプロセスの動作は、例として、システム、たとえば、エンコーダ機械学習モデル112およびデコーダ機械学習モデル134aを含む、図1のシステムによって実行される。プロセス400の動作はまた、非一時的であってよい1つまたは複数のコンピュータ可読媒体上に記憶される命令として実施することができ、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス400の動作を実行させることができる。トレーニングプロセス400は、プロセス400の各反復がステップA~Eを使用して説明される反復的なプロセスである。トレーニングプロセスは、以下で説明するように終了基準に達した後に終了する。
いくつかの実装形態では、エンコーダ機械学習モデルおよびデコーダ機械学習モデルは、ウォーターマーク入りデジタルコンポーネント(たとえば、場合によっては符号化された画像302)を処理することによって、予測される第1のデータ項目を生成するために、エンコーダ機械学習モデルおよびデコーダ機械学習モデルの複数のトレーニングパラメータを調整できるトレーニングプロセスを使用してトレーニングデータセット(エンドツーエンドトレーニングデータセットと呼ばれる)に対してトレーニングされ、ここで、ウォーターマーク入り画像の中にオーバーレイされるウォーターマークは、第1のデータ項目を使用して符号化される。言い換えれば、共同トレーニングプロセスは、エンコーダ機械学習モデルに、第1のデータ項目をデジタルウォーターマークパターンに符号化させ、デジタルウォーターマークパターンが、次いで、デジタルコンポーネントの上にオーバーレイされ、デコーダ機械学習モデルが、ウォーターマーク入りデジタルコンポーネントを復号して、第1のデータ項目と同じである予測される第1のデータ項目を出力することが、目的とされる。
エンドツーエンドトレーニングデータセットは、複数のトレーニング画像(または、他のタイプのデジタルコンポーネント)および複数の第1のデータ項目を含むことができる。たとえば、トレーニング画像は、クライアントデバイス104に提供されるサードパーティコンテンツのソース画像128a~nと類似の画像であり得、第1のデータ項目は、トレーニング画像にウォーターマークを入れるために使用される第2のウォーターマークを生成するためにエンコーダ機械学習モデル112が処理する第1のデータ項目であり得る。
トレーニングの間、複数のデータ項目の中の第1の各データ項目は、エンコーダ機械学習モデルによってデジタルウォーターマークに符号化され、デジタルウォーターマークは、次いで、(複数のトレーニング画像の中から)特定のトレーニング画像の上にオーバーレイされて、それぞれのウォーターマーク入りトレーニング画像(図4では単にウォーターマーク入り画像とも呼ばれる)および第1の誤差値(損失1 425と呼ばれる)を取得する。これらのウォーターマーク入り画像は、それぞれのウォーターマーク入り画像およびそれぞれの第2の誤差値(損失2 470と呼ばれる)ごとに、予測される第1のデータ項目を生成するために、デコーダ機械学習モデルによって処理される。各それぞれのウォーターマーク入り画像が、それぞれのウォーターマーク入り画像のウォーターマークを生成するために使用されたそれぞれの第1のデータ項目を有することに、留意されたい。損失1 425および損失2 470に応じて、エンコーダ機械学習モデルおよびデコーダ機械学習モデルの学習可能なパラメータが調整される。トレーニングプロセス400は、以下で説明の簡潔および容易さのためにさらに説明され、トレーニングプロセス400は、デジタルウォーターマークを生成するために使用されるトレーニング画像420および第1のデータ項目410を参照しながら説明される。
トレーニングプロセス400の特定の反復のステップAの間、エンコーダ機械学習モデル112は第1のデータ項目410を処理して第1のウォーターマークを生成する。図4に示さないが、ウォーターマークタイリング装置114は、たとえば、第1のウォーターマークのタイリングされたバージョンである第2のウォーターマークを生成するために、第1のウォーターマークを使用することができる(図2Aおよび図2Bを参照しながら図示および説明したように)。いくつかの実装形態では、第2のウォーターマークは、たとえば、トレーニング画像420と同じサイズ(すなわち、同じ寸法)を有するように第2のウォーターマークをクロップすることなどの、追加の処理を受けることがある。第2のウォーターマークはまた、図3Aを参照しながら説明したようなピクセル強度および透明度の調整などの処理を受けることがある。第2のウォーターマークが確定されると、(たとえば、上記で説明したようにアルファブレンディングを使用して)トレーニング画像420を用いて第2のウォーターマークをオーバーレイすることによって、ウォーターマーク入りトレーニング画像430が生成される。
ステップBの間、トレーニング画像420とウォーターマーク入りトレーニング画像430との間の差分を示す損失1 425が、トレーニング画像420およびウォーターマーク入りトレーニング画像430に基づいて算出される。たとえば、ピクセルレベルでの画像420と430との間の差分を算出するために、絶対誤差関数などのピクセルごとの損失関数が使用され得る。他の誤差関数は、平均2乗誤差(L2)などの知覚的な損失関数を含むことができる。
ステップCの間、ひずみ装置440(たとえば、図3を参照しながら説明したひずみ装置)が、ウォーターマーク入りトレーニング画像430を処理して1つまたは複数のひずんだ画像450を生成することができる。ひずんだ画像450は、垂直スケーリングおよび水平スケーリングなどの1つまたは複数のひずみを加えること、場合によっては符号化された画像302が受けることがある実世界の画像改変をシミュレートするためのクロッピングによって、生成される。たとえば、ひずみ装置440は、ランダムな水平ひずみ係数および垂直ひずみ係数を適用することによってウォーターマーク入りトレーニング画像430をひずませることができる。
例として使用されないが、デコーダ機械学習モデル134aの一般性を改善する、画像のひずんだバージョンの中のウォーターマークを復号するために使用され得る、同じ画像の複数の異なるひずんだバージョンを、ひずみ装置440が生成できることに留意されたい。たとえば、特定のウォーターマーク入りトレーニング画像430が与えられると、異なるタイプのひずみにわたってその一般性を改善するためにデコーダ機械学習モデル134aによって後で使用され得る、ひずんだ画像450の複数の異なるバージョンが、ひずみ装置440によって生成され得る。
ステップDの間、ひずんだ画像450の一部分が入力としてデコーダ機械学習モデル134aに提供される。いくつかの実装形態では、図4に示さないが、ひずんだ画像450をデコーダ機械学習モデル134aに提供する前に、ひずんだ画像450は、図3Aを参照しながら説明したようにウォーターマークおよびひずみ検出装置132を使用して処理され得る。そのような実装形態では、ウォーターマークおよびひずみ検出装置132は、ひずんだ画像450を処理して、ウォーターマークを含む、ひずんだ画像450の一部分を識別することができる(図3Aを参照しながら説明したように)。いくつかの実装形態では、ひずんだ画像450の識別された部分がさらに処理されて、ひずんだ画像450の修正済みの部分を生成することができ、ここで、その処理は、ウォーターマーク入りトレーニング画像430が受けた任意のひずみを緩和することを含むことができる。デコーダ機械学習モデル134aは、ひずんだ画像450の識別された部分またはひずんだ画像450の修正済みの部分を処理して、画像の中に含まれる予測される第1のデータ項目460を生成する。
ステップEの間、画像にウォーターマークを入れるために使用された第1のデータ項目の予測される値と実際の値との間の差分を示す第2の誤差値(損失2 470と呼ばれる)が、予測される第1のデータ項目460およびターゲットの第1のデータ項目410に基づいて算出される。たとえば、損失2は、シグモイド交差エントロピー損失であり得る。
損失1 425および損失2 470を算出した後、エンコーダ機械学習モデル112およびデコーダ機械学習モデル134aの学習可能なパラメータは、全損失(すなわち、損失1+損失2)値または個々の損失1値および損失2値を最小化するように調整され得る。全損失は、次のように、すなわち、
Total loss=||Iw-Io||2+crossentropy(Md,Mo)
のように表すことができ、ただし、Iwはウォーターマーク入りトレーニング画像430であり、Ioはトレーニング画像420であり、Mdは予測される第1のデータ項目460であり、Moはターゲットの第1のデータ項目410である。すなわち、損失値の絶対値は、予測が現実の値からどのくらい遠くにあるのか(たとえば、予測される第1のデータ項目460とターゲットの第1のデータ項目410との間の差分)を示し、損失値の符号は、学習可能なパラメータが調整されなければならない方向を示す。損失1 425および損失2 470が競合する2つの目標として見られ得ることに留意されたい。たとえば、損失1 425の目標はできるだけ小さくトレーニング画像を変化させることであるが、損失2 470に対する目標はできるだけ正確な復号を行うことである。同じトレーニング画像を用いてエンコーダ機械学習モデルとデコーダ機械学習モデルの両方をトレーニングすることは、2つの損失関数のバランスをとる。
前に述べたように、トレーニングプロセス400は、エンドツーエンドトレーニングデータセットのトレーニングサンプルにわたって反復する反復的なプロセスである。トレーニングプロセス400は、終了基準に達すると終了する。たとえば、トレーニングプロセス400は、ステップBおよびEの間に算出される損失値が指定のしきい値未満になると終了することができる。たとえば、全誤差に対する指定のしきい値が0.1に設定される場合、トレーニングプロセスは、損失1+損失2の値>0.1となるまでトレーニング画像にわたって反復し続ける。別の例では、トレーニングプロセス400は、指定の回数の反復(たとえば、10,000回の反復)の後に終了することができる。
図5Aは、エンドツーエンド学習パイプラインの一部としてエンコーダ機械学習モデルおよびデコーダ機械学習モデルを共同でトレーニングするための例示的なプロセスのフロー図である。プロセス500の動作は、たとえば、画像解析およびデコーダ装置118を含むサーバシステム102によって実施され得る。プロセス500の動作はまた、非一時的であってよい1つまたは複数のコンピュータ可読媒体上に記憶される命令として実施することができ、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス500の動作を実行させることができる。
トレーニングプロセス500の動作は、エンドツーエンドトレーニングデータセットのトレーニングサンプルにわたって反復する。トレーニングプロセス500は、終了基準に達すると終了する。たとえば、トレーニングプロセス500は、全損失が指定のしきい値未満であるときに終了することができる。たとえば、全損失に対する指定のしきい値が0.1に設定される場合、トレーニングプロセスは、全損失の値<=0.1となるまでトレーニング画像にわたって反復し続ける。別の例では、トレーニングプロセス500は、指定の回数の反復(たとえば、10,000回の反復)の後に終了することができる。
サーバシステム102は、複数のトレーニング画像および複数のデータ項目を取得する(505)。たとえば、エンコーダ機械学習モデルおよびデコーダ機械学習モデルをトレーニングするために、エンドツーエンドトレーニングデータセットが使用され得る。エンドツーエンドトレーニングデータセットは、複数のトレーニング画像および複数の第1のデータ項目を含むことができる。たとえば、トレーニング画像は、クライアントデバイス104に提供されるサードパーティコンテンツのソース画像128a~nと類似の画像であり得、第1のデータ項目は、トレーニング画像にウォーターマークを入れるために使用される第2のウォーターマークを生成するためにエンコーダ機械学習モデル112が処理する第1のデータ項目であり得る。
サーバシステム102は、エンコーダ機械学習モデルを使用して第1のデジタルウォーターマークを生成する(510)。たとえば、サーバシステム102のウォーターマーク生成器110内に実装されるエンコーダ機械学習モデル112が、第1のデータ項目410を符号化して第1のウォーターマークを生成する(図2Aを参照しながら図示および説明したように)。
サーバシステム102は、タイリング装置を使用して第2のデジタルウォーターマークを生成する(515)。たとえば、サーバシステム102は、第1のウォーターマークを生成した後、第1のウォーターマークの複数のインスタンスを結合して、たとえば、第1のウォーターマークのタイリングされたバージョンである、第2のウォーターマークを生成するために、ウォーターマークタイリング装置114を使用する(図2Bを参照しながら図示および説明したように)。第2のウォーターマークはまた、クロッピングなどの処理を受けることがある(図2Bおよび図3Aを参照しながら説明したように)。
サーバシステム102は、ウォーターマーク入り画像を取得するために第2のデジタルウォーターマークをトレーニング画像と組み合わせる(520)。図4を参照しながら説明したように、サーバシステム102は、第2のウォーターマークとトレーニング画像420とを組み合わせるためにアルファブレンディングのような技法を使用することができ、それによって、トレーニング画像420にウォーターマークを入れてウォーターマーク入りトレーニング画像430を生成する。
サーバシステム102は、ウォーターマーク入り画像にひずみを適用する(525)。図4を参照しながら説明したように、ひずみ装置440は、ウォーターマーク入りトレーニング画像430を処理して1つまたは複数のひずんだ画像450を生成することができる。ひずんだ画像450は、垂直スケーリングおよび水平スケーリング、他の背景画像とのスプライシング、JPEG圧縮、図3の中の場合によっては符号化された画像302が受けることがある実世界の画像改変をシミュレートするためのクロッピングなどの、1つまたは複数のひずみを加えることによって生成される。たとえば、ひずみ装置440は、ランダムな垂直スケーリング係数に基づいてウォーターマーク入りトレーニング画像430をひずませることができる。
サーバシステム102は、ひずみ検出器機械学習モデルを使用してひずみを予測する(530)。図4を参照しながら説明したように、ひずみ検出器機械学習モデル132bは、ひずんだウォーターマーク入りトレーニング画像430を処理して1つまたは複数の予測されるひずみを生成する。たとえば、ひずんだウォーターマーク入りトレーニング画像430を処理することによって、ひずみ検出器機械学習モデル132bは、トレーニング画像420と比較した、ひずんだウォーターマーク入りトレーニング画像430の垂直スケーリングの推定レベルを示す、予測される垂直スケーリング係数を出力として生成することができる。
サーバシステムは、予測される1つまたは複数のひずみに基づいて、ひずんだウォーターマーク入りトレーニング画像を修正する(535)。図4を参照しながら説明したように、ひずんだウォーターマーク入りトレーニング画像430の中の1つまたは複数のひずみを予測した後、画像解析およびデコーダ装置118は、ひずんだウォーターマーク入りトレーニング画像430の部分を修正して、ひずんだトレーニングウォーターマーク入り画像430の修正済みの部分を生成することができる。たとえば、ウォーターマーク入りトレーニング画像430が2という係数で垂直スケーリングを受けていることを、ひずみ検出器機械学習モデル132bが予測することを想定する。画像解析およびデコーダ装置118は、そのような予測に応答して、ひずんだウォーターマーク入りトレーニング画像430の部分を修正して、1/2という垂直スケーリング係数を有する修正済みのバージョンを生成することができ、それによって、ウォーターマーク入りトレーニング画像430が受けた任意のひずみを緩和する。
同様に、ウォーターマーク入りトレーニング画像430が水平スケーリングを受けていることを、ひずみ検出器機械学習モデル132bが予測する場合、画像解析およびデコーダ装置118は、ひずんだウォーターマーク入りトレーニング画像430の部分をスケーリングすることによって、ひずんだウォーターマーク入りトレーニング画像430の部分を修正して、修正済みのバージョンを生成することができる。
サーバシステム102は、予測される第1のデータ項目を生成するためにウォーターマークを復号する(540)。図4を参照しながら説明したように、ウォーターマーク入りトレーニング画像の中で検出されたウォーターマークを復号するために、デコーダ機械学習モデル134aは、ひずんだトレーニングウォーターマーク入り画像の修正済みの部分を処理して、予測される第1のデータ項目を出力として生成する。
サーバシステム102は、第1の誤差値を決定する(545)。たとえば、トレーニング画像420とウォーターマーク入りトレーニング画像430との間の差分を示す損失1 425が、トレーニング画像420およびウォーターマーク入りトレーニング画像430に基づいて算出される。たとえば、ピクセルレベルでの画像420と430との間の差分を算出するために、絶対誤差関数などのピクセルごとの損失関数が使用され得る。
サーバシステム102は、第2の誤差値を決定する(550)。たとえば、画像にウォーターマークを入れるために使用される第1のデータ項目の予測される値と実際の値との間の差分を示す第2の誤差値(損失2 470と呼ばれる)が、予測される第1のデータ項目460および第1のデータ項目410に基づいて算出される。たとえば、損失2は、シグモイド交差エントロピー損失であり得る。
サーバシステム102は、エンコーダ機械学習モデルおよびデコーダ機械学習モデルのパラメータを調整する(555)。損失1 425および損失2 470を算出した後、エンコーダ機械学習モデル112およびデコーダ機械学習モデル134aの学習可能なパラメータが、全損失(すなわち、損失1+損失2)値または個々の損失1値および損失2値を最小化するように調整され得る。たとえば、損失値の絶対値は、予測が現実の値からどのくらい遠くにあるのかを示し、損失値の符号は、学習可能なパラメータが調整されなければならない方向を示す。全損失は、次のように、すなわち、
Total loss=||Iw-Io||2+crossentropy(Md,Mo)
のように表すことができ、ただし、Iwはウォーターマーク入りトレーニング画像430であり、Ioはトレーニング画像420であり、Mdは予測される第1のデータ項目460であり、Moはターゲットの第1のデータ項目410である。すなわち、損失値の絶対値は、予測が現実の値からどのくらい遠くにあるのかを示し、損失値の符号は、学習可能なパラメータが調整されなければならない方向を示す。
図5Bは、ひずみ検出器機械学習モデルをトレーニングするための例示的なプロセス560のフロー図である。プロセス560の動作は、たとえば、画像解析およびデコーダ装置118を含むサーバシステム102によって実施され得る。プロセス550の動作はまた、非一時的であってよい1つまたは複数のコンピュータ可読媒体上に記憶される命令として実施することができ、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス560の動作を実行させることができる。
トレーニングプロセス560の動作は、エンドツーエンドトレーニングデータセットのトレーニングサンプルにわたって反復する。トレーニングプロセス560は、終了基準に達すると終了する。たとえば、トレーニングプロセス560は、全損失が指定のしきい値未満であるときに終了することができる。たとえば、全損失に対する指定のしきい値が0.1に設定される場合、トレーニングプロセスは、全損失の値<=0.1となるまでトレーニング画像にわたって反復し続ける。別の例では、トレーニングプロセス560は、指定の回数の反復(たとえば、10,000回の反復)の後に終了することができる。
サーバシステム102は、複数のトレーニング画像および複数のデータ項目を取得する(565)。たとえば、ひずみ検出器機械学習モデルをトレーニングするために、ひずみモデルトレーニングデータセットが使用され得る。ひずみモデルトレーニングデータセットは、複数のトレーニング画像および複数の第1のデータ項目を含むことができる。たとえば、トレーニング画像は、クライアントデバイス104に提供されるサードパーティコンテンツのソース画像128a~nと類似の画像であり得、第1のデータ項目は、トレーニング画像にウォーターマークを入れるために使用される第2のウォーターマークを生成するためにエンコーダ機械学習モデル112が処理する第1のデータ項目であり得る。
サーバシステム102は、エンコーダ機械学習モデルの重みを固定する(570)。トレーニング済みのエンコーダ機械学習モデル112によって特に符号化される、場合によっては符号化された画像302または場合によっては符号化された画像302の一部分の中のひずみを検出するために、トレーニングプロセス560は、ひずみモデルトレーニングデータセットの中のトレーニング画像の各々にウォーターマークを入れるようにエンコーダ機械学習モデル112のパラメータを固定して、対応するウォーターマーク入りトレーニング画像を生成することができる。
サーバシステム102は、エンコーダ機械学習モデルを使用して、ウォーターマーク入りトレーニング画像を生成する(575)。たとえば、サーバシステム102のウォーターマーク生成器110内に実装されるエンコーダ機械学習モデル112が、第1のデータ項目を符号化して第1のウォーターマークを生成する(図2Aを参照しながら図示および説明したように)。サーバシステム102は、第1のウォーターマークを生成した後、第1のウォーターマークの複数のインスタンスを結合して、たとえば、第1のウォーターマークのタイリングされたバージョンである、第2のウォーターマークを生成するために、ウォーターマークタイリング装置114を使用する(図2Bを参照しながら図示および説明したように)。第2のウォーターマークはまた、クロッピングなどの処理を受けることがある(図2Bおよび図3Aを参照しながら説明したように)。サーバシステム102は、ウォーターマーク入り画像を取得するために第2のデジタルウォーターマークをトレーニング画像と組み合わせる。図4を参照しながら説明したように、サーバシステム102は、第2のウォーターマークとトレーニング画像とを組み合わせるためにアルファブレンディングのような技法を使用することができ、それによって、トレーニング画像にウォーターマークを入れてウォーターマーク入りトレーニング画像を生成する。
サーバシステム102は、ウォーターマーク入り画像にひずみを適用する(580)。図4を参照しながら説明したように、ひずみ装置は、ウォーターマーク入りトレーニング画像を処理して1つまたは複数のひずんだウォーターマーク入り画像を生成することができる。ひずんだウォーターマーク入り画像は、垂直スケーリングおよび水平スケーリング、画像オフセット、他の背景画像とのスプライシング、JPEG圧縮、図3の中の場合によっては符号化された画像302が受けることがある実世界の画像改変をシミュレートするためのクロッピングなどの、1つまたは複数のひずみを加えることによって生成される。たとえば、ひずみ装置は、ひずみモデルトレーニングデータセットからのウォーターマーク入りトレーニング画像をひずませて、ひずんだウォーターマーク入りトレーニング画像を生成することができる。
サーバシステム102は、ひずみ検出器機械学習モデルを使用して、ひずみを予測する(585)。図4を参照しながら説明したように、ひずみ検出器機械学習モデル132bは、ひずんだウォーターマーク入りトレーニング画像を処理して1つまたは複数の予測されるひずみを生成する。たとえば、ひずんだウォーターマーク入りトレーニング画像を処理することによって、ひずみ検出器機械学習モデル132bは、トレーニング画像と比較した、ひずんだウォーターマーク入りトレーニング画像の垂直スケーリングの推定レベルを示す、予測される垂直スケーリング係数を出力として生成することができる。
出力を生成するために、トレーニングプロセス560は、ひずんだウォーターマーク入りトレーニング画像およびウォーターマーク入りトレーニング画像を入力としてひずみ検出器機械学習モデル132bに提供して、ひずんだウォーターマーク入りトレーニング画像およびウォーターマーク入りトレーニング画像の中の1つまたは複数のひずみを示す1つまたは複数の出力を生成することができる。たとえば、ウォーターマーク入りトレーニング画像からひずんだウォーターマーク入りトレーニング画像を生成した後、トレーニングプロセスは、ウォーターマーク入りトレーニング画像を入力としてひずみ検出器機械学習モデル132bに提供して、パターン(ユニバーサルパターンと呼ばれる)を生成することができる。同様に、トレーニングプロセスは、ひずんだウォーターマーク入りトレーニング画像を入力としてひずみ検出器機械学習モデル132bに提供することができ、別のパターン(変換済みのパターンと呼ばれる)を出力として生成することができる。
サーバシステム102は、第3の誤差値を決定する(590)。たとえば、ユニバーサルパターンおよび変換済みのパターンを生成した後、トレーニングプロセスは、損失関数(たとえば、L2損失)を使用して第3の誤差値を算出するために2つのパターンを比較する。第3の誤差値は、時々、形式||T(U0)-U1||2をとることができ、ただし、Tは、1つまたは複数のひずみを加えることによるウォーターマーク入りトレーニング画像の変換を指し、U0はユニバーサルパターンであり、U1は変換済みのパターンである。
サーバシステム102は、エンコーダ機械学習モデルおよびデコーダ機械学習モデルのパラメータを調整する(595)。たとえば、トレーニングプロセス560は、第3の誤差値を使用してひずみ検出器機械学習モデル132bの様々なパラメータを調整することができる。トレーニングプロセスは本質的に反復的であり得、その結果、各反復の間、トレーニングプロセスは、たとえば、損失が指定のしきい値よりも小さくなるまで、またはトレーニングプロセスが指定の回数の反復を実行するまで、L2損失を最小化することを目指す。
図6は、デジタルウォーターマークをソース画像に加える例示的なプロセス600のフロー図である。プロセス600の動作は、サーバシステム102を含む、たとえば、図1に示すシステムによって実施することができ、サーバシステム102はウォーターマーク生成器110を含む。プロセス600の動作はまた、非一時的であってよい1つまたは複数のコンピュータ可読媒体上に記憶される命令として実施することができ、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス600の動作を実行させることができる。
エンドツーエンド学習パイプラインをトレーニングした後、エンコーダ機械学習モデル112およびウォーターマークタイリング装置114を含むウォーターマーク生成器110が、デジタルウォーターマークを提供するエンティティによって展開される。たとえば、サーバシステム102が、たとえば、クライアントデバイス104にサービスすべきソース画像128aを取得するために、コンテンツプロバイダ106a~nのコンピューティングシステムと通信するように構成される場合、サーバシステム102は、デジタルウォーターマークを生成するために使用され得るウォーターマーク生成器110を含むことができる。サーバシステム102は、半透明なウォーターマークを生成した後、ソース画像128aを覆って半透明なウォーターマークをオーバーレイするように、クライアントデバイス104上で実行中のアプリケーションを案内する命令と一緒に、ソース画像128aおよび半透明なウォーターマークを送信することができる。コンテンツプロバイダ106a~nが、独立してクライアントデバイス104と通信するように構成される場合、コンテンツプロバイダ106a~nは、デジタルウォーターマークを生成するために使用され得るウォーターマーク生成器110を含むことができる。
サーバシステム102は、ソース画像を取得する(610)。たとえば、クライアントデバイス104は、コンテンツプロバイダ106a~nのうちの1つのための対応するコンピューティングシステムにソース画像128aを直接、またはサーバシステム102もしくは別のサーバシステムによって提供されるサービスなどの仲介サービスを介して間接的に要求してよい。サーバシステム102は、たとえば、クライアントデバイス104にサービスすべきソース画像128aを取得するために、コンテンツプロバイダ106a~nのコンピューティングシステムと通信するように構成され得る。
サーバシステム102は、第1のデータ項目を取得する(620)。たとえば、サーバシステム102は、電子文書、およびソース画像128aを介して電子文書の中で表示されることになる半透明な第2のウォーターマーク126を用いて、クライアントデバイス104からの要求に応答するように構成され得る。半透明なウォーターマークを生成するために、サーバシステム102は、第1のデータ項目122を処理することによって第1のウォーターマークを生成できるエンコーダ機械学習モデル112をさらに含むことができるウォーターマーク生成器110を含むことができる。たとえば、第1のデータ項目122は、コンテンツプロバイダ106a~nを識別する一意識別子であり得る。第1のデータ項目122はまた、応答がその間にクライアントデバイス104からの要求にサービスされる、クライアントデバイス104とサーバシステム102との間のネットワークセッションを一意に識別する、セッション識別子を含むことができる。第1のデータ項目122はまた、クライアントデバイス104にサービスされる特定のソース画像128aを識別する画像データ、またはソース画像128aに関連する情報(たとえば、クライアントデバイス104にサービスされる特定のソース画像128aをコンテンツプロバイダ106a~nのうちのどれが提供したのかを示す情報、およびいつソース画像128aがサービスまたは要求されたのかを示すタイムスタンプ)を含むことまたはそれを参照することができる。
サーバシステム102は、第1のデジタルウォーターマークを生成する(630)。図1を参照しながら説明したように、サーバシステム102のウォーターマーク生成器110内に実装されるエンコーダ機械学習モデル112は、第1のデータ項目122を第1のウォーターマーク124に符号化する第1のウォーターマーク124を生成するために、第1のデータ項目122を入力として受信するように構成される。いくつかの実装形態では、第1のウォーターマーク124は、図2に示すように第1のデータ項目122を表す網目状のタイプのバーコードであり得る。第1のウォーターマーク124は、ピクセルの行および列の個数に関して既定のサイズを有することができる。第1のウォーターマーク124の中の各ピクセルは、データの複数のビットを符号化することができ、ここで、複数のビットの値は異なる色によって表される。たとえば、バイナリ値「00」を符号化するピクセルは黒色であってよく、バイナリ値「11」を符号化するピクセルは白色であってよい。同様に、バイナリ値「01」を符号化するピクセルは濃淡がより薄い黒色(たとえば、暗い灰色)であってよく、バイナリ値「10」を符号化するピクセルは濃淡がさらに薄い黒色(たとえば、薄い灰色)であってよい。いくつかの実装形態では、第1のウォーターマークの最小符号化単位は、実際には単一のピクセルよりも大きくてよい。しかし、本明細書で説明する例では、最小符号化単位は単一のピクセルであるものと想定される。しかしながら、本明細書で説明する技法が、最小符号化単位が複数のピクセルのセット、たとえば、ピクセルの2×2または3×3のセットである実装形態に拡張され得ることを、諒解されたい。
例示的なウォーターマーク200を示す図2Aを参照しながら、例示的な第1のウォーターマーク124がさらに説明される。ウォーターマーク200は、この例では32×64ピクセルという固定されたサイズを有するが、他の既定のサイズを有するウォーターマークも好適であることになる。ウォーターマーク200の特有の特徴とは、各ピクセルが、白色または黒色を含む様々な値の色合いをとり得ることである。
サーバシステム102は、第2のデジタルウォーターマークを生成する(640)。図1を参照しながら説明したように、サーバシステム102は、第1のウォーターマーク124を生成した後、第1のウォーターマーク124の複数のインスタンスを結合して第2のウォーターマーク126を生成するために、ウォーターマークタイリング装置114を使用する。たとえば、ウォーターマークタイリング装置114は、第1のウォーターマーク124の2つ以上のインスタンスを隣り合わせに置くことによって第2のウォーターマーク126を生成することができる。例示的な第2のウォーターマーク250を示す図2Bを参照しながら、例示的な第2のウォーターマーク126がさらに説明される。図2Bの例では、第2のウォーターマーク250は、64×128ピクセルというサイズを有し、4つの第1のウォーターマークを2×2のアレイをなして置くことによりウォーターマークタイリング装置114によって生成される。たとえば、ウォーターマーク250は、第1のウォーターマーク124の4つのインスタンス(255~258)を含む。第2のウォーターマーク126を生成した後、第2のウォーターマーク126は、第2のウォーターマーク126のサイズがソース画像128aのサイズよりも大きくならないように更新され得る。たとえば、第2のウォーターマーク126のサイズがソース画像128aのサイズよりも大きい場合、第2のウォーターマーク126は、ソース画像128aのサイズに一致するようにクロップされ得る。
第2のデジタルウォーターマーク250が、ウォーターマーク入り画像130を取得するためにソース画像128aと組み合わせられる(650)。図1を参照しながら説明したように、サーバシステム102が、電子文書を求める、クライアントの要求への返答としてクライアントデバイス104に戻すための応答を生成するとき、応答は、応答を実行するとき、ソース画像128aを覆って第2のウォーターマーク126の1つまたは複数のインスタンスを表示するように、たとえば、実質的に人間のユーザに識別不可能なウォーターマークをソース画像128aに加えるように、クライアントデバイス104に命令するコンピュータコードを含むことができる。電子文書をレンダリングするクライアントデバイス104におけるアプリケーションは、ソース画像128aの上にオーバーレイされたときの第2のウォーターマーク126の不透明性を示す、第2のウォーターマーク126の指定の透明度に従ってソース画像128aの上に第2のウォーターマーク126をオーバーレイするために、アルファブレンディング技法を実行することができる。たとえば、サーバシステム102は、電子文書の中のサードパーティコンテンツスロットの中で背景画像としてソース画像128aを表示するように、かつ画像128aを覆って前景画像として第2のウォーターマーク126の1つまたは複数のインスタンスを表示するように、クライアントデバイス104に指示する、コードを追加してよい。ソース画像128aの上に第2のウォーターマーク126をオーバーレイするためのアルファブレンディング技法はまた、サーバシステム102またはコンテンツプロバイダ106a~nなどの他のエンティティによって実行され得る。たとえば、サーバシステム102またはコンテンツプロバイダ106a~nがウォーターマーク入り画像130をクライアントデバイス104へ送信するように構成される場合、対応するエンティティは、次いでクライアントデバイス104へ送信されるウォーターマーク入り画像130を生成するために、アルファブレンディング技法を実行することができる。
図7は、画像が1つまたは複数のデジタルウォーターマークを含むかどうかを検出するとともに、1つまたは複数のデジタルウォーターマークを復号する、例示的なプロセス700のフロー図である。プロセス700の動作は、たとえば、画像解析およびデコーダ装置118を含むサーバシステム102によって実施され得る。プロセス700の動作はまた、非一時的であってよい1つまたは複数のコンピュータ可読媒体上に記憶される命令として実施することができ、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス700の動作を実行させることができる。
プロセス700は、サーバシステム102が画像解析およびデコーダ装置118を実装するという想定に関して説明されている。しかしながら、画像解析およびデコーダ装置118がコンテンツプロバイダ106a~nなどの他のエンティティによって実装され得ることを諒解されたい。
サーバシステム102は、画像を取得する(710)。いくつかの実装形態では、また図1および図3Aを参照しながら説明したように、場合によっては符号化された画像302が、画像解析およびデコーダ装置118を含むサーバシステム102によって取得され、画像解析およびデコーダ装置118は、ウォーターマークおよびひずみ検出装置132、ならびにウォーターマークデコーダ134をさらに含む。たとえば、クライアントデバイス104のユーザは、電子文書を求める要求に応答して、不適当または無関係なコンテンツ(たとえば、暴力、殺害、ヘイトスピーチ、またはコンテンツの起源に関する問題を生じる任意のコンテンツ)を受信することがある。ユーザは、コンテンツのスクリーンショット(場合によっては符号化された画像または候補画像と呼ばれる)をキャプチャしてよく、たとえば、ユーザに提示され、かつ場合によっては符号化された画像によって描かれる、コンテンツの起源について照会するために、スクリーンショットを解析のために画像解析およびデコーダ装置118へ送信してよい。複数の画像が画像解析およびデコーダ装置118によって受信されるが、それらは同時に受信されることを必要とされない。たとえば、画像は、発行者のプロパティ上でコンテンツが提示されるユーザによってサブミットされるとき、ある時間期間にわたって取得され得る。
サーバシステム102は、場合によっては符号化された画像の一部分の中にデジタルウォーターマークが埋め込まれていることを決定する(720)。図3Aを参照しながら説明したように、場合によっては符号化された画像が、視覚的に識別可能なウォーターマークを含むかどうかに関する決定は、ウォーターマークデコーダ134による任意のひずみまたは復号を検査するための、場合によっては符号化された画像302の任意の処理の前に、ウォーターマークおよびひずみ検出装置132によって実行される。検出機械学習アルゴリズム132aを使用して、場合によっては符号化された画像302が画像のさらなる任意の処理の前にウォーターマークを含むかどうかを決定することは、より効率的なコンピューティングシステムを提供する。たとえば、より計算集約的なひずみ検出器機械学習モデル132bおよびデコーダ機械学習モデルが場合によっては符号化された画像302を処理することを必要とする前に、受信された画像の中のウォーターマークの存在を検出するために、UNetベースの検出機械学習モデル132aが使用され得る。したがって、システムは、さらなる計算を実行するために必要とされるリソースを浪費することなく、ウォーターマークがその中で検出されない任意の画像を無視することができる。たとえば、場合によっては符号化された画像302の中でウォーターマークが検出されない場合、サーバシステム102は、場合によっては符号化された画像302の中のウォーターマークの存在を確認するために(本明細書の範囲外の)他の技法を採用することができる。
ウォーターマーク検出器機械学習モデル132aは、場合によっては符号化された画像302を処理するとともに、場合によっては符号化された画像302がウォーターマークの一部分または1つもしくは複数のウォーターマークを含むかどうかという表示を出力として生成するように構成される。たとえば、ウォーターマーク検出器機械学習モデルは、場合によっては符号化された画像302を処理して、ウォーターマークを含む画像またはウォーターマークを含まない画像として画像を分類できる、分類モデルとして実装され得る。
ウォーターマーク検出器機械学習モデル132は、ウォーターマークを含む、場合によっては符号化された画像302の部分を決定するために、セマンティックな画像セグメント化を実行するように構成され得る。
サーバシステム102は、ひずみ検出器機械学習モデルを使用して、場合によっては符号化された画像の部分の中の1つまたは複数のひずみを予測する(730)。図3Aを参照しながら説明したように、ウォーターマークおよびひずみ検出装置132は、1つまたは複数のウォーターマークを含む、(プロセス600のステップ620から取得された)場合によっては符号化された画像302または場合によっては符号化された画像302の部分のいずれかを処理して、場合によっては符号化された画像302がソース画像128aに対して受けているひずみの表示を出力として生成するように構成され得る、ひずみ検出器機械学習モデル132bを実装することができる。たとえば、ひずみ検出器機械学習モデルは、垂直スケーリングおよび水平スケーリングの表示を出力として生成することができ、ここで、垂直スケーリングおよび水平スケーリングは、場合によっては符号化された画像302または場合によっては符号化された画像302の部分の長さおよび幅に沿ったひずみである。検出機械学習モデル132aが、場合によっては符号化された画像302の中のウォーターマークの存在を首尾よく決定した後、ウォーターマークおよびひずみ検出装置132が、場合によっては符号化された画像302または場合によっては符号化された画像302の部分を処理できることに、留意されたい。
サーバシステム102は、予測される1つまたは複数のひずみに基づいて、場合によっては符号化された画像の部分を修正する(740)。たとえば、場合によっては符号化された画像302の一部分が1つまたは複数のウォーターマークを含むことを検出および決定した後、画像解析およびデコーダ装置118は、ひずみ検出器機械学習モデル132bによって予測されるひずみに基づいて画像のその部分を修正して、ソース画像130と類似であるかまたは類似であることに近い、場合によっては符号化された画像302の修正済みの部分を生成することができる。たとえば、ウォーターマーク検出器機械学習モデル132aを使用して場合によっては符号化された画像302上のウォーターマークの存在を決定した後、画像解析およびデコーダ装置118は、1つまたは複数のウォーターマークを含む、場合によっては符号化された画像302の一部分を取得することができる。1つまたは複数のウォーターマークの存在という決定に応答して、画像解析およびデコーダ装置はまた、場合によっては符号化された画像302が受けた様々なひずみを示す1つまたは複数の予測を生成することができる。画像解析およびデコーダ装置118は、ひずみを予測することに応答して、場合によっては符号化された画像302の部分を修正して、場合によっては符号化された画像302が受けた任意のひずみを緩和することができる。たとえば、場合によっては符号化された画像302が(垂直スケーリング係数および水平スケーリング係数を使用して識別される)垂直スケーリングおよび/または水平スケーリングを受けていることを、ひずみ検出器機械学習モデル132bが予測する場合、画像解析およびデコーダ装置118は、場合によっては符号化された画像302の部分をスケーリングすることによって、場合によっては符号化された画像302の部分を修正して、修正済みのバージョンを生成することができる。修正済みのバージョンは、ひずみ検出器機械学習モデル132bによって予測されるものと同じ垂直スケーリング係数および/または水平スケーリング係数で逆にスケーリングされ、それによって、場合によっては符号化された画像302が受けた任意の垂直ひずみおよび/または水平ひずみを緩和する。たとえば、ウォーターマークを含む、場合によっては符号化された画像303の部分が、2という水平スケーリングおよび3という垂直スケーリングを受けていることを、ひずみ検出器機械学習モデルが予測する場合、場合によっては符号化された画像302の修正済みの部分は、場合によっては符号化された画像130の部分に対して1/2という水平スケーリングおよび1/3という垂直スケーリングを実行することによって生成されることになる。
サーバシステム102は、画像の修正済みの部分の中に含まれるウォーターマークを復号する(750)。図3Aを参照しながら説明したように、たとえば、場合によっては符号化された画像302の中で検出されたウォーターマークを復号するために、画像解析およびデコーダ装置はウォーターマークデコーダ134を含む。いくつかの実装形態では、ウォーターマークデコーダ134は、画像の中に含まれるウォーターマーク内で符号化されるものと予測される、予測される第1のデータ項目を出力として生成するために、場合によっては符号化された画像302の修正済みの部分を復号するように構成されるデコーダ機械学習モデル134aを実装することができる。
サーバシステム102は、予測される第1のデータ項目を検証する(760)。たとえば、場合によっては符号化された画像302を処理することによって、予測される第1のデータ項目を生成した後、画像解析およびデコーダ装置118は、予測される第1のデータ項目を使用して、場合によっては符号化された画像302の真正性(または、ソース)を検証することができる。真正性(または、ソース)を検証するために、サーバシステム102内に実装された検証装置140は、予測される第1のデータ項目を応答記録データベース120の中に記憶された第1のデータ項目と比較することができる。一致が見出せる場合、検証装置140は、クライアントデバイス104上で提示されるソース画像128aが、実際にサーバシステム102またはコンテンツプロバイダ106a~bによって提供されたことを結論付けることができる。一致がない場合、検証装置140は、クライアントデバイス104上で提示されるソース画像128aが、サーバシステム102またはコンテンツプロバイダ106a~bによって提供されなかったことを結論付けることができる。
図8は、上記で説明した動作を実行するために使用され得る例示的なコンピュータシステム800のブロック図である。システム800は、プロセッサ810、メモリ820、記憶デバイス830、および入力/出力デバイス840を含む。構成要素810、820、830、および840の各々は、たとえば、システムバス850を使用して相互接続され得る。プロセッサ810は、システム800内での実行のための命令を処理することが可能である。いくつかの実装形態では、プロセッサ810はシングルスレッドプロセッサである。別の実装形態では、プロセッサ810はマルチスレッドプロセッサである。プロセッサ810は、メモリ820の中または記憶デバイス830上に記憶された命令を処理することが可能である。
メモリ820は、情報をシステム800内に記憶する。一実装形態では、メモリ820はコンピュータ可読媒体である。いくつかの実装形態では、メモリ820は揮発性メモリユニットである。別の実装形態では、メモリ820は不揮発性メモリユニットである。
記憶デバイス830は、システム800のための大容量ストレージを提供することが可能である。いくつかの実装形態では、記憶デバイス830はコンピュータ可読媒体である。様々な異なる実装形態では、記憶デバイス830は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイスによってネットワークを介して共有される記憶デバイス(たとえば、クラウド記憶デバイス)、またはいくつかの他の大容量記憶デバイスを含むことができる。
入力/出力デバイス840は、システム800のための入力/出力動作を行う。いくつかの実装形態では、入力/出力デバイス840は、ネットワークインターフェースデバイス、たとえば、Ethernetカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、802.11カードのうちの1つまたは複数を含むことができる。別の実装形態では、入力/出力デバイスは、入力データを受信するとともに出力データを外部デバイス860、たとえば、キーボード、プリンタ、およびディスプレイデバイスへ送るように構成された、ドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどの、他の実装形態も使用され得る。
例示的な処理システムが図1~図6で説明されているが、本明細書で説明した主題および機能的動作の実装形態は、他のタイプのデジタル電子回路構成で、または本明細書で開示する構造およびそれらの構造的等価物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアで、あるいはそれらのうちの1つまたは複数の組合せで実装され得る。
本明細書で説明した主題および動作の実施形態は、デジタル電子回路構成で、または本明細書で開示する構造およびそれらの構造的等価物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアで、あるいはそれらのうちの1つまたは複数の組合せで実装され得る。本明細書で説明した主題の実施形態は、1つもしくは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、(1つまたは複数の)コンピュータ記憶媒体上で符号化された、コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加として、プログラム命令は、データ処理装置による実行のために、好適な受信機装置への送信のために情報を符号化するために生成される、人工生成の伝搬信号、たとえば、機械生成の電気信号、光信号、または電磁信号の上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得、またはそれらの中に含まれ得る。その上、コンピュータ記憶媒体は伝搬信号でなく、コンピュータ記憶媒体は、人工生成の伝搬信号の中で符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得、またはそれらの中に含まれ得る。
本明細書で説明した動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶されるかまたは他のソースから受信されるデータに対して、データ処理装置によって実行される動作として、実施され得る。
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または上記の複数のもの、もしくは上記のものの組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路構成、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想機械、またはそれらのうちの1つまたは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング基盤、およびグリッドコンピューティング基盤などの、様々な異なるコンピューティングモデル基盤を実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続き型言語を含む、任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含む、任意の形態で展開され得る。コンピュータプログラムは、ファイルシステムの中のファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語文書の中に記憶された1つまたは複数のスクリプト)を保持するファイルの一部分の中に、当該のプログラムに専用の単一のファイルの中に、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)の中に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるか、もしくは複数のサイトにわたって分散され通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開され得る。
本明細書で説明したプロセスおよび論理フローは、入力データに対して動作するとともに出力を生成することによってアクションを実行するために、1つまたは複数のプログラマブルプロセッサが1つまたは複数のコンピュータプログラムを実行することによって実行され得る。プロセスおよび論理フローはまた、専用論理回路構成、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することができ、装置はまた、それらとして実装され得る。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、命令およびデータを読取り専用メモリもしくはランダムアクセスメモリまたはその両方から受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、あるいはそれらからデータを受信すること、もしくはそれらにデータを転送すること、またはその両方を行うために、動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。その上、コンピュータは、ほんのいくつかの例を挙げれば、別のデバイス、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)の中に埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性のメモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路構成によって補完され得るか、または専用論理回路構成の中に組み込まれ得る。
ユーザとの対話を行うために、本明細書で説明した主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがそれによってコンピュータに入力を提供できる、キーボード、およびポインティングデバイス、たとえば、マウスまたはトラックボールを有する、コンピュータ上で実施され得る。他の種類のデバイスが、同様にユーザとの対話を行うために使用でき、たとえば、ユーザに提供されるフィードバックは、任意の形態の知覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送るとともにそうしたデバイスから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答して、ウェブページをそのウェブブラウザへ送ることによって、ユーザと対話することができる。
本明細書で説明した主題の実施形態は、たとえば、データサーバとして、バックエンド構成要素を含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザがそれを通じて、本明細書で説明した主題の実装形態と対話できるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって、相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いから遠隔にあり、通常、通信ネットワークを通じて相互作用する。クライアントとサーバとの関係は、コンピュータプログラムがそれぞれのコンピュータ上で動作するとともに互いとのクライアントサーバ関係を有することによって生じる。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスと対話するユーザにデータを表示するとともにそのユーザからユーザ入力を受信するために)データ(たとえば、HTMLページ)をクライアントデバイスへ送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信され得る。
本明細書は多くの特定の実装詳細を含むが、これらは任意の発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。別個の実施形態の文脈で本明細書で説明されるいくつかの特徴はまた、単一の実施形態において組合せで実施され得る。反対に、単一の実施形態の文脈で説明される様々な特徴はまた、複数の実施形態において別個に、または任意の好適な部分組合せで実施され得る。その上、特徴はいくつかの組合せにおいて働くものとして上記で説明されることがあり、そのようなものとして最初に特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除されることがあり、特許請求される組合せは、部分組合せまたは部分組合せの変形形態を対象とする場合がある。
同様に、動作は特定の順序で図面に示されるが、このことは、望ましい結果を達成するために、そのような動作が、図示の特定の順序で、もしくは逐次的順序で実行されること、またはすべての例示された動作が実行されることを必要とするものとして理解されるべきではない。いくつかの環境では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されるべきではなく、説明したプログラム構成要素およびシステムが、一般に、単一のソフトウェア製品の中で一緒に統合され得るか、または複数のソフトウェア製品の中にパッケージ化され得ることを、理解されたい。
以上、本主題の特定の実施形態が説明されている。他の実施形態が以下の特許請求の範囲内に入る。場合によっては、特許請求の範囲の中に記載されるアクションは、異なる順序で実行することができ、依然として望ましい結果を達成することができる。加えて、添付の図に示されるプロセスは、望ましい結果を達成するために、必ずしも図示の特定の順序または逐次的な順序を必要とするとは限らない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
100 コンピューティング環境
102 サーバシステム
104 クライアントデバイス
106 コンテンツプロバイダ
110 ウォーターマーク生成器
112 エンコーダ機械学習モデル
114 ウォーターマークタイリング装置
118 画像解析およびデコーダ装置
120 応答記録データベース
122 第1のデータ項目
124 第1のウォーターマーク
126 第2のウォーターマーク
128 ソース画像
130 ウォーターマーク入り画像、符号化ソース画像、符号化画像、ソース画像
132 ウォーターマークおよびひずみ検出装置
132a ウォーターマーク検出器機械学習モデル、検出機械学習アルゴリズム
132b ひずみ検出器機械学習モデル
134 ウォーターマークデコーダ
134a ウォーターマーク検出器機械学習モデル、デコーダ機械学習モデル
134b ひずみ検出器機械学習モデル
138 ズーム装置
140 検証装置
200 ウォーターマークパターン
250 ウォーターマーク
255~258 第1のウォーターマークのインスタンス
302 場合によっては符号化された画像
310 セグメント化マスク
350 ウォーターマーク検出器機械学習モデル、畳み込みニューラルネットワーク(CNN)
360、365、370 エンコーダブロック
375、380、385 デコーダブロック
400 トレーニングプロセス
410 第1のデータ項目
420 トレーニング画像
425 損失1
430 ウォーターマーク入りトレーニング画像
440 ひずみ装置
450 ひずんだ画像
460 予測される第1のデータ項目
470 損失2
800 コンピュータシステム
810 プロセッサ
820 メモリ
830 記憶デバイス
840 入力/出力デバイス
850 システムバス
860 外部デバイス

Claims (18)

  1. 画像の中に埋め込まれるデジタルウォーターマークを生成するエンコーダ機械学習モデル、および前記画像の中に埋め込まれる前記デジタルウォーターマーク内で符号化された第1のデータ項目を復号するデコーダ機械学習モデルを、共同でトレーニングするためのコンピュータ実装方法であって、前記トレーニングが、
    第1の複数のトレーニング画像および複数のデータ項目を取得するステップであって、前記複数のデータ項目の中の各データ項目が、トレーニング画像の中に埋め込まれるべきデジタルウォーターマーク内で符号化されることになるデータ項目である、ステップと、
    前記第1の複数のトレーニング画像の中のトレーニング画像ごとに、
    前記複数のデータ項目からデータ項目を取得するステップと、
    前記データ項目が入力として提供される先の前記エンコーダ機械学習モデルを使用して、前記データ項目を符号化する第1のデジタルウォーターマークを生成するステップと、
    第2のデジタルウォーターマークを生成するために前記第1のデジタルウォーターマークの2つ以上のインスタンスをタイリングするステップと、
    ウォーターマーク入りトレーニング画像を取得するために前記第2のデジタルウォーターマークを前記トレーニング画像と組み合わせるステップと、
    前記ウォーターマーク入りトレーニング画像に1つまたは複数のひずみを適用するステップと、
    ひずみ検出器機械学習モデルを使用して、前記ウォーターマーク入りトレーニング画像の中に存在する前記1つまたは複数のひずみを予測するステップと、
    前記ひずんだウォーターマーク入りトレーニング画像の中に埋め込まれた前記第2のデジタルウォーターマークを保持しながら、前記予測される1つまたは複数のひずみに基づいて前記ウォーターマーク入りトレーニング画像を修正するステップと、
    前記ひずんだウォーターマーク入りトレーニング画像の中に埋め込まれた前記第2のデジタルウォーターマークの中に埋め込まれるものと予測される復号されたデータ項目を取得するために、前記デコーダ機械学習モデルを使用して、前記修正されたウォーターマーク入りトレーニング画像を復号するステップと、
    前記ウォーターマーク入りトレーニング画像および前記トレーニング画像に基づいて第1の誤差値を決定するステップと、
    前記復号されたデータ項目および前記データ項目に基づいて第2の誤差値を決定するステップと、
    前記第1の誤差値および前記第2の誤差値を最小化するように前記エンコーダ機械学習モデルおよび前記デコーダ機械学習モデルの1つまたは複数のトレーニングパラメータを調整するステップとを備える、
    コンピュータ実装方法。
  2. 前記ウォーターマーク入りトレーニング画像および前記トレーニング画像に基づいて前記第1の誤差値を決定するステップが、
    前記ウォーターマーク入りトレーニング画像および前記トレーニング画像に基づいてL2損失値を算出するステップを備える、
    請求項1に記載の方法。
  3. 前記復号されたデータ項目および前記データ項目に基づいて前記第2の誤差値を決定するステップが、
    前記復号されたデータ項目および前記データ項目に基づいてシグモイド交差エントロピー値を算出するステップを備える、
    請求項1に記載の方法。
  4. 前記1つまたは複数のひずみが、画像圧縮、ガウス雑音、または画像スケーリングを含む、請求項1に記載の方法。
  5. 第2の複数のトレーニング画像および複数のデータ項目を取得するステップであって、前記複数のデータ項目の中の各データ項目が、トレーニング画像の中に埋め込まれるべきデジタルウォーターマーク内で符号化されることになるデータ項目である、ステップと、
    前記エンコーダ機械学習モデルの重みを固定するステップと、
    前記第2の複数のトレーニング画像の中のトレーニング画像ごとに、
    前記エンコーダ機械学習モデルを使用して、ウォーターマーク入りトレーニング画像を生成するステップと、
    前記ウォーターマーク入りトレーニング画像に1つまたは複数のひずみを適用するステップと、
    前記ひずみ検出器機械学習モデルを使用して、前記ひずんだウォーターマーク入りトレーニング画像の中に存在する前記1つまたは複数のひずみを予測するステップと、
    前記ひずみ検出器機械学習モデルを使用して、前記ウォーターマーク入りトレーニング画像の中に存在する1つまたは複数のひずみを予測するステップと、
    前記ひずんだウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみ、および前記ウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみに基づいて、第3の誤差値を決定するステップと、
    前記第3の誤差値を最小化するように前記ひずみ検出器機械学習モデルの1つまたは複数のトレーニングパラメータを調整するステップとを含む、
    前記ひずみ検出器機械学習モデルをトレーニングするステップをさらに備える、請求項1に記載の方法。
  6. 前記第3の誤差値を決定するステップが、
    前記ひずんだウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみ、および前記ウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみに基づいて、L2損失値を算出するステップを備える、
    請求項1に記載の方法。
  7. 画像の中に埋め込まれるデジタルウォーターマークを生成するエンコーダ機械学習モデル、および前記画像の中に埋め込まれる前記デジタルウォーターマーク内で符号化された第1のデータ項目を復号するデコーダ機械学習モデルを、共同でトレーニングするためのシステムであって、前記トレーニングが、
    第1の複数のトレーニング画像および複数のデータ項目を取得することであって、前記複数のデータ項目の中の各データ項目が、トレーニング画像の中に埋め込まれるべきデジタルウォーターマーク内で符号化されることになるデータ項目であることと、
    前記第1の複数のトレーニング画像の中のトレーニング画像ごとに、
    前記複数のデータ項目からデータ項目を取得することと、
    前記データ項目が入力として提供される先の前記エンコーダ機械学習モデルを使用して、前記データ項目を符号化する第1のデジタルウォーターマークを生成することと、
    第2のデジタルウォーターマークを生成するために前記第1のデジタルウォーターマークの2つ以上のインスタンスをタイリングすることと、
    ウォーターマーク入りトレーニング画像を取得するために前記第2のデジタルウォーターマークを前記トレーニング画像と組み合わせることと、
    前記ウォーターマーク入りトレーニング画像に1つまたは複数のひずみを適用することと、
    ひずみ検出器機械学習モデルを使用して、前記ウォーターマーク入りトレーニング画像の中に存在する前記1つまたは複数のひずみを予測することと、
    前記ひずんだウォーターマーク入りトレーニング画像の中に埋め込まれた前記第2のデジタルウォーターマークを保持しながら、前記予測される1つまたは複数のひずみに基づいて前記ウォーターマーク入りトレーニング画像を修正することと、
    前記ひずんだウォーターマーク入りトレーニング画像の中に埋め込まれた前記第2のデジタルウォーターマークの中に埋め込まれるものと予測される復号されたデータ項目を取得するために、前記デコーダ機械学習モデルを使用して、前記修正されたウォーターマーク入りトレーニング画像を復号することと、
    前記ウォーターマーク入りトレーニング画像および前記トレーニング画像に基づいて第1の誤差値を決定することと、
    前記復号されたデータ項目および前記データ項目に基づいて第2の誤差値を決定することと、
    前記第1の誤差値および前記第2の誤差値を最小化するように前記エンコーダ機械学習モデルおよび前記デコーダ機械学習モデルの1つまたは複数のトレーニングパラメータを調整することとを備える、
    システム。
  8. 前記ウォーターマーク入りトレーニング画像および前記トレーニング画像に基づいて前記第1の誤差値を決定することが、
    前記ウォーターマーク入りトレーニング画像および前記トレーニング画像に基づいてL2損失値を算出することを備える、
    請求項7に記載のシステム。
  9. 前記復号されたデータ項目および前記データ項目に基づいて前記第2の誤差値を決定することが、
    前記復号されたデータ項目および前記データ項目に基づいてシグモイド交差エントロピー値を算出することを備える、
    請求項7に記載のシステム。
  10. 前記1つまたは複数のひずみが、画像圧縮、ガウス雑音、または画像スケーリングを含む、請求項7に記載のシステム。
  11. 第2の複数のトレーニング画像および複数のデータ項目を取得することであって、前記複数のデータ項目の中の各データ項目が、トレーニング画像の中に埋め込まれるべきデジタルウォーターマーク内で符号化されることになるデータ項目であることと、
    前記エンコーダ機械学習モデルの重みを固定することと、
    前記第2の複数のトレーニング画像の中のトレーニング画像ごとに、
    前記エンコーダ機械学習モデルを使用して、ウォーターマーク入りトレーニング画像を生成することと、
    前記ウォーターマーク入りトレーニング画像に1つまたは複数のひずみを適用することと、
    前記ひずみ検出器機械学習モデルを使用して、前記ひずんだウォーターマーク入りトレーニング画像の中に存在する前記1つまたは複数のひずみを予測することと、
    前記ひずみ検出器機械学習モデルを使用して、前記ウォーターマーク入りトレーニング画像の中に存在する1つまたは複数のひずみを予測することと、
    前記ひずんだウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみ、および前記ウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみに基づいて、第3の誤差値を決定することと、
    前記第3の誤差値を最小化するように前記ひずみ検出器機械学習モデルの1つまたは複数のトレーニングパラメータを調整することとを含む、
    前記ひずみ検出器機械学習モデルをトレーニングすることをさらに備える、請求項7に記載のシステム。
  12. 前記第3の誤差値を決定することが、
    前記ひずんだウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみ、および前記ウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみに基づいて、L2損失値を算出することを備える、
    請求項7に記載のシステム。
  13. 1つまたは複数のデータ処理装置によって実行されたとき、画像の中に埋め込まれるデジタルウォーターマークを生成するエンコーダ機械学習モデル、および前記画像の中に埋め込まれる前記デジタルウォーターマーク内で符号化された第1のデータ項目を復号するデコーダ機械学習モデルを、共同でトレーニングするための動作を前記1つまたは複数のデータ処理装置に実行させる命令を記憶する非一時的コンピュータ可読媒体であって、前記トレーニングが、
    第1の複数のトレーニング画像および複数のデータ項目を取得することであって、前記複数のデータ項目の中の各データ項目が、トレーニング画像の中に埋め込まれるべきデジタルウォーターマーク内で符号化されることになるデータ項目であることと、
    前記第1の複数のトレーニング画像の中のトレーニング画像ごとに、
    前記複数のデータ項目からデータ項目を取得することと、
    前記データ項目が入力として提供される先の前記エンコーダ機械学習モデルを使用して、前記データ項目を符号化する第1のデジタルウォーターマークを生成することと、
    第2のデジタルウォーターマークを生成するために前記第1のデジタルウォーターマークの2つ以上のインスタンスをタイリングすることと、
    ウォーターマーク入りトレーニング画像を取得するために前記第2のデジタルウォーターマークを前記トレーニング画像と組み合わせることと、
    前記ウォーターマーク入りトレーニング画像に1つまたは複数のひずみを適用することと、
    ひずみ検出器機械学習モデルを使用して、前記ウォーターマーク入りトレーニング画像の中に存在する前記1つまたは複数のひずみを予測することと、
    前記ひずんだウォーターマーク入りトレーニング画像の中に埋め込まれた前記第2のデジタルウォーターマークを保持しながら、前記予測される1つまたは複数のひずみに基づいて前記ウォーターマーク入りトレーニング画像を修正することと、
    前記ひずんだウォーターマーク入りトレーニング画像の中に埋め込まれた前記第2のデジタルウォーターマークの中に埋め込まれるものと予測される復号されたデータ項目を取得するために、前記デコーダ機械学習モデルを使用して、前記修正されたウォーターマーク入りトレーニング画像を復号することと、
    前記ウォーターマーク入りトレーニング画像および前記トレーニング画像に基づいて第1の誤差値を決定することと、
    前記復号されたデータ項目および前記データ項目に基づいて第2の誤差値を決定することと、
    前記第1の誤差値および前記第2の誤差値を最小化するように前記エンコーダ機械学習モデルおよび前記デコーダ機械学習モデルの1つまたは複数のトレーニングパラメータを調整することとを備える、
    非一時的コンピュータ可読媒体。
  14. 前記ウォーターマーク入りトレーニング画像および前記トレーニング画像に基づいて前記第1の誤差値を決定することが、
    前記ウォーターマーク入りトレーニング画像および前記トレーニング画像に基づいてL2損失値を算出することを備える、
    請求項13に記載の非一時的コンピュータ可読媒体。
  15. 前記復号されたデータ項目および前記データ項目に基づいて前記第2の誤差値を決定することが、
    前記復号されたデータ項目および前記データ項目に基づいてシグモイド交差エントロピー値を算出することを備える、
    請求項13に記載の非一時的コンピュータ可読媒体。
  16. 前記1つまたは複数のひずみが、画像圧縮、ガウス雑音、または画像スケーリングを含む、請求項13に記載の非一時的コンピュータ可読媒体。
  17. 第2の複数のトレーニング画像および複数のデータ項目を取得することであって、前記複数のデータ項目の中の各データ項目が、トレーニング画像の中に埋め込まれるべきデジタルウォーターマーク内で符号化されることになるデータ項目であることと、
    前記エンコーダ機械学習モデルの重みを固定することと、
    前記第2の複数のトレーニング画像の中のトレーニング画像ごとに、
    前記エンコーダ機械学習モデルを使用して、ウォーターマーク入りトレーニング画像を生成することと、
    前記ウォーターマーク入りトレーニング画像に1つまたは複数のひずみを適用することと、
    前記ひずみ検出器機械学習モデルを使用して、前記ひずんだウォーターマーク入りトレーニング画像の中に存在する前記1つまたは複数のひずみを予測することと、
    前記ひずみ検出器機械学習モデルを使用して、前記ウォーターマーク入りトレーニング画像の中に存在する1つまたは複数のひずみを予測することと、
    前記ひずんだウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみ、および前記ウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみに基づいて、第3の誤差値を決定することと、
    前記第3の誤差値を最小化するように前記ひずみ検出器機械学習モデルの1つまたは複数のトレーニングパラメータを調整することとを含む、
    前記ひずみ検出器機械学習モデルをトレーニングすることをさらに備える、請求項13に記載の非一時的コンピュータ可読媒体。
  18. 前記第3の誤差値を決定することが、
    前記ひずんだウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみ、および前記ウォーターマーク入りトレーニング画像の中に存在する前記予測される1つまたは複数のひずみに基づいて、L2損失値を算出することを備える、
    請求項13に記載の非一時的コンピュータ可読媒体。
JP2023507470A 2022-01-11 2022-01-11 エンドツーエンドウォーターマーキングシステム Pending JP2024505766A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2022/011898 WO2023136805A1 (en) 2022-01-11 2022-01-11 End-to-end watermarking system

Publications (1)

Publication Number Publication Date
JP2024505766A true JP2024505766A (ja) 2024-02-08

Family

ID=81326560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023507470A Pending JP2024505766A (ja) 2022-01-11 2022-01-11 エンドツーエンドウォーターマーキングシステム

Country Status (6)

Country Link
US (1) US20230362399A1 (ja)
EP (1) EP4238312A1 (ja)
JP (1) JP2024505766A (ja)
KR (1) KR20230110713A (ja)
CN (1) CN116746155A (ja)
WO (1) WO2023136805A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117057969B (zh) * 2023-08-28 2024-04-19 天津大学 跨模态图像-水印联合生成与检测装置及方法
CN117495649A (zh) * 2024-01-02 2024-02-02 支付宝(杭州)信息技术有限公司 一种图像的处理方法、装置及设备

Also Published As

Publication number Publication date
KR20230110713A (ko) 2023-07-25
CN116746155A (zh) 2023-09-12
WO2023136805A1 (en) 2023-07-20
EP4238312A1 (en) 2023-09-06
US20230362399A1 (en) 2023-11-09

Similar Documents

Publication Publication Date Title
CN110197229B (zh) 图像处理模型的训练方法、装置及存储介质
Zhang et al. Robust invisible video watermarking with attention
CN109784181B (zh) 图片水印识别方法、装置、设备及计算机可读存储介质
Zhang et al. Viscode: Embedding information in visualization images using encoder-decoder network
KR102423710B1 (ko) 반투명 이미지 워터마크 검출
Wu et al. Image-into-image steganography using deep convolutional network
JP2024505766A (ja) エンドツーエンドウォーターマーキングシステム
Laishram et al. A novel minimal distortion-based edge adaptive image steganography scheme using local complexity: (BEASS)
Dhargupta et al. Fuzzy edge detection based steganography using modified Gaussian distribution
Qi et al. A novel haze image steganography method via cover-source switching
Juarez-Sandoval et al. Digital image ownership authentication via camouflaged unseen-visible watermarking
Mo et al. MDRSteg: large-capacity image steganography based on multi-scale dilated ResNet and combined chi-square distance loss
US20230325961A1 (en) Zoom agnostic watermark extraction
CN116391200A (zh) 缩放不可知水印提取
CN112911341B (zh) 图像处理方法、解码器网络训练方法、装置、设备和介质
EP4064095A1 (en) Encoding, decoding and integrity validation systems for a security document with a steganography-encoded image and methods, security document, computing devices, computer programs and associated computer-readable data carrier
US20240087075A1 (en) End-to-end watermarking system
CN115457015A (zh) 一种基于视觉交互感知双流网络的图像无参考质量评估方法及装置
Sultan et al. A new framework for analyzing color models with generative adversarial networks for improved steganography
Taneja et al. Understanding digital image anti-forensics: an analytical review
CN113221718A (zh) 公式识别方法、装置、存储介质和电子设备
Fu et al. Dual-layer barcodes
CN117649358B (zh) 图像处理方法、装置、设备及存储介质
CN117057969B (zh) 跨模态图像-水印联合生成与检测装置及方法
Zhang et al. A convolutional neural network-based blind robust image watermarking approach exploiting the frequency domain

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230228

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240507