(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-06
(45)【発行日】2023-11-14
(54)【発明の名称】複数のフレームを含む映像の指紋を抽出する方法および装置
(51)【国際特許分類】
H04N 21/8358 20110101AFI20231107BHJP
H04N 21/44 20110101ALI20231107BHJP
【FI】
H04N21/8358
H04N21/44
(21)【出願番号】P 2022129968
(22)【出願日】2022-08-17
【審査請求日】2022-08-17
(31)【優先権主張番号】10-2021-0109089
(32)【優先日】2021-08-18
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シン ソンヒョン
(72)【発明者】
【氏名】ジョン ジス
(72)【発明者】
【氏名】キム デファン
(72)【発明者】
【氏名】パク ジョンウン
(72)【発明者】
【氏名】キム スンビン
【審査官】富樫 明
(56)【参考文献】
【文献】特開2012-142741(JP,A)
【文献】特開2002-111994(JP,A)
【文献】特開2009-081827(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
(57)【特許請求の範囲】
【請求項1】
少なくとも一つのプロセッサによって実行される、複数のフレームを含む映像の指紋(fingerprint)を抽出する方法において、
前記複数のフレームそれぞれから複数のピクセル値行列を獲得する段階;
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の軸別ピクセル値の平均の最大値を算出する段階;および
前記複数のフレームに対して算出された最大値の時間的相関関係に基づいて前記映像の指紋を算出する段階を含む、映像の指紋を抽出する方法。
【請求項2】
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の軸別ピクセル値の平均の最大値を算出する段階は、
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の横軸ピクセル値の平均の最大値を算出する段階;および
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の縦軸ピクセル値の平均の最大値を算出する段階を含む、請求項1に記載の映像の指紋を抽出する方法。
【請求項3】
前記時間的相関関係に基づいて映像の指紋を算出する段階は、
前記複数のフレームに対して算出された最大値に対して離散コサイン変換(Discrete Cosine Transform;DCT)を遂行して前記映像の指紋を算出する段階を含む、請求項1に記載の映像の指紋を抽出する方法。
【請求項4】
前記離散コサイン変換を遂行して前記映像の指紋を算出する段階は、
前記複数のフレームそれぞれの前記複数のピクセル値行列の横軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第1 DCT係数を算出する段階;
前記複数のフレームそれぞれの前記複数のピクセル値行列の縦軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第2 DCT係数を算出する段階;および
前記第1 DCT係数と前記第2 DCT係数を結合して前記映像の指紋を生成する段階を含む、請求項3に記載の映像の指紋を抽出する方法。
【請求項5】
前記時間的相関関係に基づいて映像の指紋を算出する段階は、
前記離散コサイン変換によって算出されたDCT係数から基底(basis)の周波数が0である係数を除く段階をさらに含む、請求項3に記載の映像の指紋を抽出する方法。
【請求項6】
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の軸別ピクセル値の平均の最大値を算出する段階は、
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の横軸ピクセル値の平均の最大値および縦軸ピクセル値の平均の最大値を算出する段階を含み、
前記映像の指紋を算出する段階は、
前記複数のフレームそれぞれの前記複数のピクセル値行列の横軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第1 DCT係数を算出する段階;
前記複数のフレームそれぞれの前記複数のピクセル値行列の縦軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第2 DCT係数を算出する段階;および
前記第1 DCT係数と前記第2 DCT係数を結合して前記映像の指紋を生成する段階を含む、請求項1に記載の映像の指紋を抽出する方法。
【請求項7】
前記映像の指紋を算出する段階は、
前記第1 DCT係数および前記第2 DCT係数から基底の周波数が0である係数を除く段階をさらに含む、請求項6に記載の映像の指紋を抽出する方法。
【請求項8】
少なくとも一つのプロセッサによって実行される、映像の変造の有無を識別する方法において、
原本映像の指紋を獲得する段階;
請求項1に記載された方法により識別対象映像の指紋を抽出する段階;および
前記獲得された原本映像の指紋と前記抽出された指紋を比較して前記識別対象映像の変造の有無を決定する段階を含む、映像の変造の有無を識別する方法。
【請求項9】
請求項1~請求項8のいずれか一項に記載された方法をコンピュータで実行するためのコンピュータ読み取り可能なコンピュータプログラム。
【請求項10】
コンピューティング装置であって、
メモリ;および
前記メモリと連結され、前記メモリに含まれたコンピュータ読み取り可能な少なくとも一つのプログラムを実行するように構成された少なくとも一つのプロセッサを含み、
前記少なくとも一つのプログラムは、
映像に含まれた複数のフレームそれぞれから複数のピクセル値行列を獲得し、
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の軸別ピクセル値の平均の最大値を算出し、
前記複数のフレームに対して算出された最大値の時間的相関関係に基づいて前記映像の指紋を算出するための命令語を含む、コンピューティング装置。
【請求項11】
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の軸別ピクセル値の平均の最大値を算出することは、
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の横軸ピクセル値の平均の最大値を算出し、
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の縦軸ピクセル値の平均の最大値を算出することを含む、請求項10に記載のコンピューティング装置。
【請求項12】
前記時間的相関関係に基づいて映像の指紋を算出することは、
前記複数のフレームそれぞれに対して算出された最大値に対して離散コサイン変換を遂行して前記映像の指紋を算出することを含む、請求項10に記載のコンピューティング装置。
【請求項13】
前記離散コサイン変換を遂行して前記映像の指紋を算出することは、
前記複数のフレームそれぞれの前記複数のピクセル値行列の横軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第1 DCT係数を算出し、
前記複数のフレームそれぞれの前記複数のピクセル値行列の縦軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第2 DCT係数を算出し、
前記第1 DCT係数と前記第2 DCT係数を結合して前記映像の指紋を生成することを含む、請求項12に記載のコンピューティング装置。
【請求項14】
前記時間的相関関係に基づいて映像の指紋を算出することは、
前記離散コサイン変換によって算出されたDCT係数から基底の周波数が0である係数を除くことをさらに含む、請求項12に記載のコンピューティング装置。
【請求項15】
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の軸別ピクセル値の平均の最大値を算出することは、
前記複数のフレームそれぞれに対して前記複数のピクセル値行列の横軸ピクセル値の平均の最大値および縦軸ピクセル値の平均の最大値を算出することを含み、
前記映像の指紋を算出することは、
前記複数のフレームそれぞれの前記複数のピクセル値行列の横軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第1 DCT係数を算出し、
前記複数のフレームそれぞれの前記複数のピクセル値行列の縦軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第2 DCT係数を算出し、
前記第1 DCT係数と前記第2 DCT係数を結合して前記映像の指紋を生成することを含む、請求項10に記載のコンピューティング装置。
【請求項16】
前記映像の指紋を算出することは、
前記第1 DCT係数および前記第2 DCT係数から基底の周波数が0である係数を除くことをさらに含む、請求項15に記載のコンピューティング装置。
【請求項17】
コンピューティング装置であって、
メモリ;および
前記メモリと連結され、前記メモリに含まれたコンピュータ読み取り可能な少なくとも一つのプログラムを実行するように構成された少なくとも一つのプロセッサを含み、
前記少なくとも一つのプログラムは、
原本映像の指紋を獲得し、
請求項1~請求項7のいずれか一項に記載された方法により識別対象映像の指紋を抽出し、
前記獲得された原本映像の指紋と前記抽出された指紋を比較して前記識別対象映像の変造の有無を決定するための命令語を含む、コンピューティング装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は複数のフレームを含む映像の指紋を抽出する方法および装置に関し、具体的には、映像に含まれた複数のフレームそれぞれに対して軸別ピクセル値の平均の最大値を算出し、算出された最大値の時間的相関関係に基づいて映像の指紋を算出する方法および装置に関する。
【背景技術】
【0002】
最近映像コンテンツの消費が活発となり、多様な動画プラットホームが登場するにつれて、使用者が容易かつ簡便に映像コンテンツを製作、共有、視聴できる環境が造成されている。このような環境で、多様な使用者によって製作されて流通される映像コンテンツの数が増加するにつれて、映像を無断で複製して配信する場合も増加しており、映像に対する著作権の保護の必要性も増加している。
【0003】
動画プラットホームで共有または販売される動画コンテンツの違法配信の有無や違法配信者を追跡するために多様なコンテンツ検証方式が使われ得る。例えば、映像指紋抽出(fingerprinting)方式を利用した動画検証システムでは、コンテンツ内に所有者情報などを挿入するウォーターマーク基盤のフィンガープリンティング方式とコンテンツで抽出された特徴点に基づいたフィンガープリンティング方式が使われ得る。特徴点基盤のフィンガープリンティング方式は、音楽、映像などのコンテンツで周波数成分、画面転換情報、位置情報などのような特徴点を抽出してデータベースに保存し、これを他のコンテンツで抽出された特徴点と比較して両コンテンツの同一または類似する有無を判別することができる。
【0004】
このような映像コンテンツ検証方式を使う場合、違法配信者が原本映像を同一に複製して配信する場合、原本映像と複製映像の同一または類似する有無が容易に識別され得る。しかし、このような映像コンテンツ検証方式の特徴を悪用して、無断配信者は原本映像を複製した後に複製映像に多様な変形を加えて既存の検証方式を無力化させている。例えば、違法配信者が原本映像を複製した後に複製映像を左右反転または上下反転させたり、複製映像を縮小し意味のない背景(例:黒い画面)を挿入して配信すると、既存の映像指紋抽出方法ではこのような変形が加えられた映像の違法配信の有無を容易に識別できないという問題点がある。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は前記のような問題点を解決するための複数のフレームを含む映像の指紋を抽出する方法、コンピュータプログラムおよび装置(システム)を提供する。
【課題を解決するための手段】
【0007】
本開示は方法、装置(システム)またはコンピュータプログラムを含んだ多様な方式で具現され得る。
【0008】
本開示の一実施例によると、少なくとも一つのプロセッサによって実行される、複数のフレームを含む映像の指紋(fingerprint)を抽出する方法は複数のフレームそれぞれから複数のピクセル値の行列を獲得する段階、複数のフレームそれぞれに対して複数のピクセル値行列の軸別ピクセル値の平均の最大値を算出する段階および複数のフレームに対して算出された最大値の時間的相関関係に基づいて映像の指紋を算出する段階を含む。
【0009】
本開示の他の実施例によると、少なくとも一つのプロセッサによって実行される、映像の変造の有無を識別する方法は、原本映像の指紋を獲得する段階、本開示の一実施例に係る映像の指紋を抽出する方法により識別対象映像の指紋を抽出する段階および獲得された原本映像の指紋と抽出された指紋とを比較して識別対象映像の変造の有無を決定する段階を含む。
【0010】
本開示の一実施例に係る方法をコンピュータで実行するためのコンピュータプログラムが提供される。
【0011】
本開示の一実施例に係るコンピューティング装置は、メモリおよびメモリと連結され、メモリに含まれたコンピュータ読み取り可能な少なくとも一つのプログラムを実行するように構成された少なくとも一つのプロセッサを含み、少なくとも一つのプログラムは、映像に含まれた複数のフレームそれぞれから複数のピクセル値の行列を獲得し、複数のフレームそれぞれに対して複数のピクセル値行列の軸別ピクセル値の平均の最大値を算出し、複数のフレームに対して算出された最大値の時間的相関関係に基づいて映像の指紋を算出するための命令語を含む。
【0012】
本開示の他の実施例に係るコンピューティング装置は、メモリおよびメモリと連結され、メモリに含まれたコンピュータ読み取り可能な少なくとも一つのプログラムを実行するように構成された少なくとも一つのプロセッサを含み、少なくとも一つのプログラムは、原本映像の指紋を獲得し、本開示の一実施例に係る映像の指紋を抽出する方法により識別対象映像の指紋を抽出し、獲得された原本映像の指紋と抽出された指紋とを比較して識別対象映像の変造の有無を決定するための命令語を含む。
【発明の効果】
【0013】
本開示の一部の実施例によると、著作権の侵害を回避するために原本映像から変造された映像を識別することによって、映像の著作権の保護を強化することができる。
【0014】
本開示の一部の実施例によると、軸別ピクセル値の平均の最大値の時間的相関関係に基づいて映像の指紋を算出することによって、識別対象映像の変造の有無を効果的に識別することができる。
【0015】
本開示の一部の実施例によると、映像が左右反転および/または上下反転したり、映像を縮小し意味のない背景を挿入する場合にも映像の指紋が原本映像の指紋と同一または類似し得るため従来の方法によっては識別できなかった映像の変造の有無をさらに効果的に識別することができる。
【0016】
本開示の効果は以上で言及した効果に制限されず、言及されていない他の効果は特許請求の範囲の記載から本開示が属する技術分野で通常の知識を有する者(「通常の技術者」という)に明確に理解され得るであろう。
【図面の簡単な説明】
【0017】
本開示の実施例は、以下で説明する添付図面を参照して説明され、ここで類似する参照番号は類似する要素を示すが、これに限定されはしない。
【
図1】本開示の一実施例に係るコンピューティング装置が映像の変造の有無を識別する方法の例示を示す図面である。
【
図2】本開示の一実施例に係るコンピューティング装置の内部構成を示すブロック図である。
【
図3】本開示の一実施例に係るプロセッサの内部構成を示すブロック図である。
【
図4】本開示の一実施例に係る複数のフレームに対してピクセル値行列の軸別ピクセル値の平均を算出する例示を示す図面である。
【
図5】本開示の一実施例に係る映像の指紋を算出する例示を示す。
【
図6】原本映像および識別対象映像の一例示を示す。
【
図7】原本映像および識別対象映像の他の例示を示す。
【
図8】本開示の一実施例に係る映像の指紋を抽出する方法の例示を示すフローチャートである。
【
図9】本開示の一実施例に係る映像の変造の有無を識別する方法の例示を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、本開示の実施のための具体的な内容を添付された図面を参照して詳細に説明する。ただし、以下の説明では本開示の要旨を不要に曖昧にさせ得る恐れがある場合、広く知られている機能や構成に関する具体的な説明は省略することにする。
【0019】
添付された図面で、同一または対応する構成要素には同一の参照符号が付与されている。また、以下の実施例の説明において、同一または対応する構成要素を重複して記述することが省略され得る。しかし、構成要素に関する技術が省略されても、そのような構成要素がある実施例に含まれないものと意図されはしない。
【0020】
開示された実施例の利点および特徴、そしてそれらを達成する方法は添付される図面と共に後述されている実施例を参照すると明確になるであろう。しかし、本開示は以下で開示される実施例に限定されるものではなく、互いに異なる多様な形態で具現され得、ただし本実施例は本開示を完全なものとし、本開示が通常の技術者に発明の範疇を完全に知らせるために提供されるものに過ぎない。
【0021】
本明細書で使われる用語について簡略に説明し、開示された実施例について具体的に説明することにする。本明細書で使われる用語は本開示での機能を考慮しつつ、できる限り現在広く使われる一般的な用語を選択したが、これは関連分野に従事する技術者の意図または判例、新しい技術の出現などにより変わり得る。また、特定の場合は出願人が任意に選定した用語もあり、この場合、該当する発明の説明の部分で詳細にその意味を記載するであろう。したがって、本開示で使われる用語は単純な用語の名称ではなく、その用語が有する意味と本開示の全般にわたった内容に基づいて定義されるべきである。
【0022】
本明細書での単数の表現は文脈上明白に単数であると特定しない限り、複数の表現を含む。また、複数の表現は文脈上明白に複数であると特定しない限り、単数の表現を含む。明細書全体で或る部分が何らかの構成要素を含むとする時、これは特に反対の記載がない限り、他の構成要素を除くものではなく他の構成要素をさらに含み得ることを意味する。本開示で、「複数のAのそれぞれ」または「複数のAそれぞれ」は複数のAに含まれたすべての構成要素のそれぞれを指称したり、複数のAに含まれた一部の構成要素のそれぞれを指称し得る。
【0023】
また、明細書で使われる「モジュール」または「部」という用語はソフトウェアまたはハードウェア構成要素を意味し、「モジュール」または「部」は何らかの役割を遂行する。しかし、「モジュール」または「部」はソフトウェアまたはハードウェアに限定される意味ではない。「モジュール」または「部」はアドレッシングできる保存媒体にあるように構成されてもよく、一つまたはそれ以上のプロセッサを再生させるように構成されてもよい。したがって、一例として、「モジュール」または「部」はソフトウェア構成要素、客体指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャー、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイまたは変数のうち少なくとも一つを含むことができる。構成要素と「モジュール」または「部」は中で提供される機能はさらに小さい数の構成要素および「モジュール」または「部」で結合されたり、追加的な構成要素と「モジュール」または「部」にさらに分離され得る。
【0024】
本開示の一実施例によると、「モジュール」または「部」はプロセッサおよびメモリで具現され得る。「プロセッサ」は汎用プロセッサ、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、制御器、マイクロ制御器、状態マシンなどを含むように広く解釈されるべきである。いくつかの環境で、「プロセッサ」は特定用途向け半導体(ASIC)、プログラム可能ロジックデバイス(PLD)、フィールドプログラム可能ゲートアレイ(FPGA)等を指称することもある。「プロセッサ」は、例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサの組み合わせ、DSPコアと結合した一つ以上のマイクロプロセッサの組み合わせ、または任意の他のそのような構成の組み合わせのような処理デバイスの組み合わせを指称してもよい。また、「メモリ」は電子情報を保存可能な任意の電子コンポーネントを含むように広く解釈されるべきである。「メモリ」は任意アクセスメモリ(RAM)、読み取り-専用メモリ(ROM)、不揮発性任意アクセスメモリ(NVRAM)、プログラム可能読み取り-専用メモリ(PROM)、消去-プログラム可能読み取り専用メモリ(EPROM)、電気的に消去可能PROM(EEPROM)、フラッシュメモリ、磁気または光学データ保存装置、レジスタなどのようなプロセッサ-読み取り可能媒体の多様な類型を指称してもよい。プロセッサがメモリから情報を読み取り/読み取るか、メモリに情報を記録できるのであれば、メモリはプロセッサと電子通信状態にあると呼ばれる。プロセッサに集積されたメモリはプロセッサと電子通信状態にある。
【0025】
本開示で、「システム」はサーバー装置とクラウド装置のうち少なくとも一つの装置を含むことができるが、これに限定されるものではない。例えば、システムは一つ以上のサーバー装置で構成され得る。他の例として、システムは一つ以上のクラウド装置で構成され得る。さらに他の例として、システムはサーバー装置とクラウド装置が共に構成されて動作され得る。
【0026】
本開示で、「システム」はサーバー装置とクラウド装置のうち少なくとも一つの装置を含むことができるが、これに限定されるものではない。例えば、システムは一つ以上のサーバー装置で構成され得る。他の例として、システムは一つ以上のクラウド装置で構成され得る。さらに他の例として、システムはサーバー装置とクラウド装置が共に構成されて動作され得る。
【0027】
本開示で、「フレーム(frames)」は映像または動画を構成する静止イメージを含むことができる。一実施例で、「フレーム」とは「イメージ」と指称され得る。また、映像または動画は一定の時間間隔で被写体などを撮影した複数の静止イメージを含むフレームで構成され得る。
【0028】
本開示で、「離散コサイン変換(discrete cosine transform;DCT)」はシーケンスのある値を多様な周波数のコサイン関数の和に変換する動作または演算を指称し得る。DCTで多様な周波数のコサイン関数が基底(basis)となり得、DCT係数(DCT coefficients)は各基底関数に適用される加重値を指称し得る。本開示でDCTを遂行することはDCT係数を算出することを含むことができる。
【0029】
図1は、本開示の一実施例に係るコンピューティング装置が映像の変造の有無を識別する方法の例示を示す図面である。一実施例によると、コンピューティング装置は原本映像110の指紋を獲得することができる。原本映像110の指紋は図示された通り、コンピューティング装置が原本映像110から原本映像の指紋を抽出(120)してデータベース130に保存したものであるか、または外部システムから受信したものであり得る。例えば、原本映像110は複数のフレームで構成された映像であり得る。原本映像110の指紋は、以下で詳細に説明する本開示の多様な実施例に係る映像の指紋を抽出する方法により抽出されたものであり得る。
【0030】
一実施例によると、コンピューティング装置は識別対象映像140から識別対象映像の指紋を抽出(150)することができる。例えば、識別対象映像140は複数のフレームで構成された映像であり得る。識別対象映像140の指紋は、以下で詳細に説明する本開示の多様な実施例に係る映像の指紋を抽出する方法により抽出されたものであり得、原本映像の指紋を抽出(120)した方法と同一または類似する方法により抽出されたものであり得る。
【0031】
一実施例によると、コンピューティング装置は原本映像の指紋と識別対象映像の指紋を比較して、識別対象映像の変造の有無を決定(170)することができる。すなわち、コンピューティング装置は識別対象映像が原本映像を変造して生成されたものであるかどうかを決定することができる。ここで変造とは、原本映像にノイズ(例:gaussian noise)を追加すること、原本映像の画質を落とすこと、原本映像をブラーリング(blurring)すること(例:gaussian blur)、原本映像の一部分または一部のフレームを削除すること(例:crop)、原本映像の明るさを調整すること、原本映像にガンマ補正をすること(例:gamma correction)、原本映像を拡大または縮小し、意味のない背景を挿入すること(例:zoom and shift)、原本映像を左右反転または上下反転すること(例:flip)等のように原本映像に一定の変形を加えることを含むことができる。一実施例で、原本映像と同一の識別対象映像は原本映像から変造されたものと決定され得る。
【0032】
一実施例によると、コンピューティング装置は原本映像の指紋と識別対象映像の指紋をマッチングアルゴリズム160に入力して変造の有無を決定(170)することができる。マッチングアルゴリズム160は識別対象映像の指紋の少なくとも一部が原本映像の指紋の少なくとも一部と同一であったり、類似していたり、誤差範囲内である場合、識別対象映像が原本映像から変造されたものと決定することができる。例えば、原本映像の指紋が[a、b、c、d、e、f、g、h]で、識別対象映像の指紋が[c、d、e、f、g]である場合、識別対象映像の指紋は原本映像の指紋の一部(原本映像の指紋の3番目の成分から7番目の成分まで)と同一であるので、マッチングアルゴリズム160は識別対象映像が原本映像から変造されたものと決定することができる。
【0033】
このような構成によって、著作権の侵害を回避するために原本映像から変造された映像を識別することができ、映像の著作権の保護を強化することができる。
【0034】
図2は、本開示の一実施例に係るコンピューティング装置200の内部構成を示すブロック図である。コンピューティング装置200はメモリ210、プロセッサ220、通信モジュール230および入出力インターフェース240を含むことができる。
図2に図示された通り、コンピューティング装置200は通信モジュール230を利用してネットワークを通じて情報および/またはデータを通信できるように構成され得る。
【0035】
メモリ210は非一過性の任意のコンピュータ読み取り可能な記録媒体を含むことができる。一実施例によると、メモリ210はRAM(random access memory)、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)、フラッシュメモリ(flash memory)などのような非消滅性大容量保存装置(permanent mass storage device)を含むことができる。他の例として、ROM、SSD、フラッシュメモリ、ディスクドライブなどのような非消滅性大容量保存装置は、メモリ210とは区分される別途の永久保存装置としてコンピューティング装置200に含まれ得る。また、メモリ210には運営体制と少なくとも一つのプログラムコード(例えば、コンピューティング装置200に設置されて駆動される映像の指紋抽出、映像の変造の有無識別などのためのコード)が保存され得る。
【0036】
このようなソフトウェア構成要素はメモリ210とは別途のコンピュータで読み取り可能な記録媒体からローディングされ得る。このような別途のコンピュータで読み取り可能な記録媒体はこのようなコンピューティング装置200に直接連結可能な記録媒体を含むことができるが、例えば、フロッピードライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのようにコンピュータで読み取り可能な記録媒体を含むことができる。他の例として、ソフトウェア構成要素はコンピュータで読み取り可能な記録媒体でない通信モジュール230を通じてメモリ210にローディングされてもよい。例えば、少なくとも一つのプログラムは、開発者またはアプリケーションの設置ファイルを配信するファイル配信システムが通信モジュール230を通じて提供するファイルによって設置されるコンピュータプログラム(例えば、映像の指紋抽出、映像の変造の有無識別などのためのプログラムなど)に基づいてメモリ210にローディングされ得る。
【0037】
プロセッサ220は基本的な算術、ロジックおよび入出力演算を遂行することによって、コンピュータプログラムの命令を処理するように構成され得る。命令はメモリ210または通信モジュール230により使用者端末(図示されず)または他の外部システムに提供され得る。例えば、プロセッサ220は映像に含まれた複数のフレームそれぞれから複数のピクセル値行列を獲得し、複数のピクセル値行列それぞれに対して軸別ピクセル値の平均の最大値を算出し、算出された最大値の時間的相関関係に基づいて映像の指紋を算出することができる。また、プロセッサ220は原本映像の指紋を獲得し、識別対象映像の指紋を抽出し、原本映像の指紋と識別対象映像の指紋を比較して識別対象映像の変造の有無を決定することができる。
【0038】
通信モジュール230はネットワークを通じて使用者端末(図示されず)とコンピューティング装置200が互いに通信するための構成または機能を提供することができ、コンピューティング装置200が外部システム(一例として別途のクラウドシステムなど)と通信するための構成または機能を提供することができる。一例として、コンピューティング装置200のプロセッサ220の制御により提供される制御信号、命令、データなどが、通信モジュール230とネットワークを経て使用者端末および/または外部システムの通信モジュールを通じて使用者端末および/または外部システムに伝送され得る。例えば、コンピューティング装置によって識別対象映像の変造の有無の識別結果が外部システム(例:著作権管理システムなど)に伝送され得る。
【0039】
また、コンピューティング装置200の入出力インターフェース240は、コンピューティング装置200と連結されるか、コンピューティング装置200が含むことができる入力または出力のための装置(図示されず)とのインターフェースのための手段であり得る。
図2では入出力インターフェース240がプロセッサ220と別途に構成された要素として図示されたが、これに限定されず、入出力インターフェース240がプロセッサ220に含まれるように構成され得る。コンピューティング装置200は
図2の構成要素よりもさらに多くの構成要素を含むことができる。しかし、大部分の従来技術的構成要素を明確に図示する必要性はない。
【0040】
コンピューティング装置200のプロセッサ220は複数の使用者端末および/または複数の外部システムから受信された情報および/またはデータを管理、処理および/または保存するように構成され得る。一実施例によると、プロセッサ220は使用者端末および/または外部システムから複数のフレームを含む映像を受信することができる。この場合、プロセッサは受信された映像に含まれた複数のフレームそれぞれから複数のピクセル値行列を獲得し、複数のピクセル値行列それぞれに対して軸別ピクセル値の平均の最大値を算出し、算出された最大値の時間的相関関係に基づいて映像の指紋を算出することができる。
【0041】
図3は、本開示の一実施例に係るプロセッサ220の内部構成を示すブロック図である。図示された通り、プロセッサ220はフレーム抽出部310、最大値算出部320、指紋算出部330、変造有無決定部340を含むことができる。フレーム抽出部310は映像から複数のフレームを抽出することができる。一実施例によると、フレーム抽出部310は映像に含まれた複数のフレームを抽出することができる。例えば、映像が総n秒であり、複数のフレームが予め定義された時間間隔である1/30秒ごとに生成されたものである場合、映像の0/30秒、1/30秒、2/30秒、3/30秒、…、n/30秒に対応する静止イメージ(フレーム)を抽出することができる。他の実施例で、映像が特定エンコーディングアルゴリズムによって圧縮された場合、フレーム抽出部310は映像にデコーディングアルゴリズムを適用することによって該当映像に含まれたフレームを抽出することができる。
【0042】
最大値算出部320は、複数のフレームそれぞれに対して複数のピクセル値行列の軸別平均の最大値を算出することができる。一実施例によると、最大値算出部320は、複数のフレームそれぞれに対して複数のピクセル値行列の横軸(すなわち、行(row))ピクセル値の平均および縦軸(すなわち、列(column))ピクセル値の平均を算出することができる。その後、最大値算出部320はフレーム別横軸ピクセル値平均最大値およびフレーム別縦軸ピクセル値平均の最大値を算出することができる。最大値算出部320が軸別平均の最大値を算出する過程は、
図4および
図5を参照して詳しく後述される。
【0043】
指紋算出部330は、最大値算出部320により算出された最大値の時間的相関関係に基づいて映像の指紋を算出することができる。一実施例によると、指紋算出部330は複数のフレームそれぞれに対して算出された最大値に対して離散コサイン変換(Discrete Cosine Transform;DCT)を遂行し、映像の指紋を算出することができる。例えば、指紋算出部330は、最大値算出部320により算出されたフレーム別横軸ピクセル値平均の最大値に対して離散コサイン変換を遂行して第1 DCT係数を算出し、フレーム別縦軸ピクセル値平均の最大値に対して離散コサイン変換を遂行して第2 DCT係数を算出することができる。その次に、指紋算出部330は第1 DCT係数および第2 DCT係数を結合して、前記映像の指紋を生成することができる。追加的に、指紋算出部330は離散コサイン変換によって算出されたDCT係数から基底の周波数が0である係数を除くことができる。
【0044】
任意の映像に一定の変形が加えられて変造されても、該当変造映像で視覚的に重要な情報が維持されている場合、変造映像で軸別ピクセル値平均の最大値が変化する様相は原本映像と類似し得る。したがって、前述した通り、軸別ピクセル値の平均の最大値の時間的相関関係に基づいて映像の指紋を算出することによって、識別対象映像の変造の有無を効果的に識別することができる。指紋算出部330が映像の指紋を算出する過程の例示は
図5を参照して詳しく後述される。
【0045】
変造有無決定部340は、原本映像の指紋と識別対象映像の指紋を比較して識別対象映像の変造の有無を決定することができる。一実施例によると、変造有無決定部340は、原本映像の指紋と識別対象映像の指紋をマッチングアルゴリズムに入力して変造の有無を決定することができる。マッチングアルゴリズムは、識別対象映像の指紋の少なくとも一部が原本映像の指紋の少なくとも一部と同一であったり、類似していたり、誤差範囲内である場合、識別対象映像が原本映像から変造されたものと決定することができる。
【0046】
図3で図示したプロセッサ220の内部構成は例示に過ぎず、一部の実施例では図示した内部構成の他に他の構成を追加で含むことができ、一部の構成が省略されてもよく、一部の過程が他の構成または外部システムによって遂行され得る。例えば、フレーム抽出部310が省略される場合、複数のフレームを外部システムから受信することができる。他の例として、変造有無決定部340が省略される場合、プロセッサ220は映像の指紋を抽出する過程のみを遂行し、外部システムで変造の有無が決定され得る。また、
図3でプロセッサ220の内部構成を機能別に区分して説明したが、これは内部構成が必ずしも物理的に区分されることを意味するものではない。
【0047】
図4は、本開示の一実施例に係る複数のフレーム410に対してピクセル値行列の軸別ピクセル値の平均を算出する例示を示す図面である。コンピューティング装置は映像に含まれた複数のフレーム410それぞれから複数のピクセル値行列を獲得することができ、複数のフレーム410それぞれに対して複数のピクセル値行列の軸別ピクセル値の平均を算出することができる。
【0048】
一実施例によると、図示された通り、コンピューティング装置は複数のフレーム410それぞれに対して横軸ピクセル値の平均(V[h]、ここでhは複数のピクセル値行列の行インデックスである)を算出(420)することができる。例えば、コンピューティング装置は第1フレームで第1行のピクセル値(Img[1][w]、ここでwは複数のピクセル値行列の列インデックスである)をすべて足してフレームの横ピクセル数(W)で割って第1行のピクセル値の平均を算出することができる。このような過程を第1フレームのすべての行(すなわち、H個の行)に対して遂行して第1フレームのピクセル値行列の横軸ピクセル値の平均を算出することができる。また、このような過程をすべてのフレーム410に対して遂行して複数のフレーム410それぞれに対する横軸ピクセル値の平均を算出(420)することができる。
【0049】
これと同様に、コンピューティング装置は複数のフレーム410それぞれに対して縦軸ピクセル値の平均(R[w]、ここでwは複数のピクセル値行列の列インデックスである)を算出(430)することができる。例えば、コンピューティング装置は第1フレームで第1列のピクセル値(Img[h][1]、ここでhは複数のピクセル値行列の行インデックスである)をすべて足してフレームの縦ピクセル数(H)で割って第1列のピクセル値の平均を算出することができる。このような過程を第1フレームのすべての列(すなわち、W個の列)に対して遂行して第1フレームのピクセル値行列の縦軸ピクセル値の平均を算出することができる。また、このような過程をすべてのフレーム410に対して遂行して複数のフレーム410それぞれに対する縦軸ピクセル値の平均を算出(430)することができる。
【0050】
一実施例によると、算出された軸別平均は行列P(440)および行列Q(450)で表現され得る。例えば、複数のフレームそれぞれに対する横軸ピクセル値の平均は、図示された通り、m番目の列およびh番目の行の成分(Vm-1[h-1])がm番目のフレームのh番目の行の平均値を示す行列(440)で表現され得る(図示された通り、インデックスは0で始まる)。また、複数のフレームそれぞれに対する縦軸ピクセル値の平均は、図示された通り、m番目の列およびw番目の行の成分(Rm-1[w-1])がm番目のフレームのw番目の列の平均値を示す行列(450)で表現され得る(図示された通り、インデックスは0で始まる)。
【0051】
図5は、本開示の一実施例に係る映像の指紋(570)を算出する例示を示す。一実施例によると、コンピューティング装置は複数のフレームそれぞれに対して軸別ピクセル値の平均の最大値を算出することができる。例えば、コンピューティング装置は複数のフレームそれぞれに対する横軸ピクセル値平均の最大値(B
m)(530)および複数のフレームそれぞれに対する縦軸ピクセル値平均の最大値(C
m)(540)を算出することができる。ここで、横軸ピクセル値平均の最大値(B
m)(530)、縦軸ピクセル値平均の最大値(C
m)(540)はそれぞれフレーム内の横軸ピクセル値平均(V
m[h]、ここでmはフレームインデックスであり、hは行列の行インデックスである)(440)のうち最も大きい値、各フレーム内の縦軸ピクセル値平均(R
m[w]、ここでmはフレームインデックスであり、wは行列の列インデックスである)(450)のうち最も大きい値を意味し得る。したがって、横軸ピクセル値平均の最大値(B
m)(530)および縦軸ピクセル値平均の最大値(C
m)(540)はそれぞれフレーム別に1個ずつ、総フレームの個数(M)だけ算出され得る。
【0052】
その後、コンピューティング装置は複数のフレームに対して算出された最大値(530、540)の時間的相関関係に基づいて映像の指紋(570)を算出することができる。一実施例によると、コンピューティング装置は複数のフレームに対して算出された最大値(530、540)に対して離散コサイン変換を遂行して映像の指紋(570)を算出することができる。例えば、図示された通り、フレーム別横軸ピクセル値平均の最大値(B0、B1、B2、…、BM-1)(530)をフレーム順で(時間順で)整列し、これに対して離散コサイン変換を遂行して第1 DCT係数(550)を算出することができる。また、フレーム別縦軸ピクセル値平均の最大値(C0、C1、C2、…、CM-1)(540)をフレーム順で整列し、これに対して離散コサイン変換を遂行して第2 DCT係数(560)を算出することができる。その次に、第1 DCT係数(550)および第2 DCT係数(560)を結合して映像の指紋(570)を生成することができる。一実施例で、DCT係数(550、560)の中で基底の周波数が0である係数は映像の変造の有無の識別に大きな意味がないため、映像の指紋を生成するにおいて、除外され得る。前述した方式によって抽出された映像の指紋(570)は映像の変造の有無を識別するのに使われ得る。
【0053】
図6および
図7は、原本映像610、710および識別対象映像620、720の例示を示す。著作権の侵害を回避するために、識別対象映像620、720は原本映像610、710から一定の変形が加えられたものであり得る。例えば、識別対象映像620、720は原本映像にノイズを加えたもの(例:gaussian noise)、原本映像の画質を落としたもの、原本映像にブラーリング(blurring)処理したもの(例:gaussian blur)、原本映像の一部分を削除したもの(例:crop)、原本映像の明るさを調整したもの、原本映像にガンマ補正をしたもの(例:gamma correction)、原本映像を拡大または縮小し、意味のない背景を挿入したもの(例:zoom and shift)、原本映像を左右反転または上下反転したもの(例:flip)などであり得る。
【0054】
映像に変形を加えても、該当映像で視覚的に重要な情報が維持されている場合、軸別ピクセル値の平均の最大値が変化する様相は原本映像と類似し得る。したがって、前述した通り、軸別ピクセル値の平均の最大値の時間的相関関係に基づいて映像の指紋を算出することによって、識別対象映像の変造の有無を効果的に識別することができる。
【0055】
図6には8個の原本映像(frame 0~7)610それぞれを左右反転(flip)した識別対象映像620の例示が図示されており、
図7には原本映像710を縮小して右側に移動した後、黒い背景を挿入した識別対象映像720の例示が図示されている。原本映像を左右反転および/または上下反転して変造する場合、または原本映像を拡大/縮小および移動して意味のない背景を挿入して変造する場合、従来の方法によると、指紋の特性が変更されて映像の変造の有無を識別することが困難であった。原本映像が左右反転および/または上下反転して変造されても、変造映像でのフレーム別横軸ピクセル値の平均の最大値およびフレーム別縦軸ピクセル値の平均の最大値は原本映像と同一であり得る。これと同様に、原本映像を縮小/拡大および/または移動して意味のない背景を挿入して変造する場合にも、変造映像でのフレーム別横軸ピクセル値の平均の最大値およびフレーム別縦軸ピクセル値の平均の最大値は原本映像と同一または類似し得る。したがって、本開示の実施例ではピクセル値の軸別平均の最大値の時間的相関関係に基づいて指紋を算出することによって、従来の方法によっては識別が困難であった映像の変造の有無も効果的に識別することができる。
【0056】
図8は、本開示の一実施例に係る映像の指紋を抽出する方法(800)の例示を示すフローチャートである。方法(800)の各段階はコンピューティング装置または少なくとも一つのプロセッサによって遂行され得る。一実施例によると、方法(800)はプロセッサが複数のフレームそれぞれから複数のピクセル値の行列を獲得することによって開始され得る(S810)。
【0057】
一実施例によると、プロセッサは複数のフレームそれぞれに対して複数のピクセル値行列の軸別ピクセル値の平均の最大値を算出することができる(S820)。例えばプロセッサは複数のフレームそれぞれに対して横軸ピクセル値の平均の最大値および縦軸ピクセル値の平均の最大値を算出することができる。
【0058】
その次に、プロセッサは複数のフレームに対して算出された最大値の時間的相関関係に基づいて映像の指紋を算出することができる(S830)。一実施例によると、プロセッサは複数のフレームそれぞれに対して算出された最大値に対して離散コサイン変換を遂行して映像の指紋を算出することができる。例えば、プロセッサは複数のフレームそれぞれの複数のピクセル値行列の横軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第1 DCT係数を算出することができる。また、プロセッサは複数のフレームそれぞれの複数のピクセル値行列の縦軸ピクセル値の平均の最大値に対して離散コサイン変換を遂行して第2 DCT係数を算出することができる。プロセッサは第1 DCT係数および第2 DCT係数を結合して、映像の指紋を生成することができる。追加的に、プロセッサはDCT係数(第1 DCT係数および第2 DCT係数)から基底の周波数が0である直流成分の係数を除いて指紋を生成することができる。
【0059】
原本映像に変形を加えて映像の各ピクセル値が変更されても、軸別平均の最大値の時間による変化の様相は類似し得る。したがって、前述した通り、軸別平均の最大値からDCT係数を抽出し、原本映像に変形を加えた変造映像を効果的に識別することができる。
【0060】
図9は、本開示の一実施例に係る映像の変造の有無を識別する方法(900)の例示を示すフローチャートである。一実施例によると、プロセッサは原本映像の指紋を獲得することができる(S910)。例えば、プロセッサはデータベースに保存された原本映像の指紋を受信したり、本開示の多様な実施例に係る映像の指紋を抽出する方法により原本映像の指紋を抽出することができる。
【0061】
一実施例によると、プロセッサは識別対象映像の指紋を抽出することができる(S920)。プロセッサは本開示の多様な実施例に係る映像の指紋を抽出する方法により識別対象映像の指紋を抽出することができ、原本映像の指紋を抽出した方法と同一の方法により識別対象映像の指紋を抽出することができる。
【0062】
プロセッサは獲得された原本映像の指紋と抽出された識別対象映像の指紋を比較して、識別対象映像の変造の有無を決定することができる(S930)。一実施例で、原本映像と同一の識別対象映像は原本映像から変造されたものと決定され得る。一実施例によると、プロセッサは原本映像の指紋と識別対象映像の指紋をマッチングアルゴリズムに入力して変造の有無を決定することができる。マッチングアルゴリズムは、識別対象映像の指紋の少なくとも一部が原本映像の指紋の少なくとも一部と同一であったり、類似していたり、誤差範囲内である場合、識別対象映像が原本映像から変造されたものと決定することができる。
【0063】
図8および
図9で図示されたフローチャートは例示に過ぎず、一部の実施例では異なって具現され得る。例えば、一部の段階が追加または省略されたり、一部の段階の順序が変わったり、一部の段階が繰り返し遂行され得る。
【0064】
前述した方法は、コンピュータで実行するためにコンピュータ読み取り可能な記録媒体に保存されたコンピュータプログラムで提供され得る。媒体はコンピュータで実行可能なプログラムを継続して保存するか、実行またはダウンロードのために一時保存するものであってもよい。また、媒体は単一または数個のハードウェアが結合された形態の多様な記録手段または保存手段であり得るが、あるコンピュータシステムに直接接続される媒体に限定されず、ネットワーク上に分散存在するものであってもよい。媒体の例示としては、ハードディスク、フロッピーディスクおよび磁気テープのような磁気媒体、CD-ROMおよびDVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical medium)、およびROM、RAM、フラッシュメモリなどを含んでプログラム命令語が保存されるように構成されたものがあり得る。また、他の媒体の例示として、アプリケーションを流通するアップストアやその他の多様なソフトウェアを供給乃至流通するサイト、サーバーなどで管理する記録媒体乃至保存媒体も挙げられる。
【0065】
本開示の方法、動作または技法は多様な手段によって具現されてもよい。例えば、このような技法はハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせで具現されてもよい。本願の開示と連係して説明された多様な例示的な論理的ブロック、モジュール、回路、およびアルゴリズム段階は、電子ハードウェア、コンピュータソフトウェア、または両者の組み合わせで具現されてもよいことを通常の技術者は理解できるであろう。ハードウェアおよびソフトウェアのこのような相互代替を明確に説明するために、多様な例示的な構成要素、ブロック、モジュール、回路、および段階がそれらの機能的観点で一般的に上で説明された。そのような機能がハードウェアとして具現されるのかまたはソフトウェアとして具現されるのかの可否は、特定アプリケーションおよび全体システムに賦課される設計要求事項により変わる。通常の技術者はそれぞれの特定アプリケーションのために多様な方式で説明された機能を具現してもよいが、そのような具現は本開示の範囲から逸脱させるものと解釈されてはならない。
【0066】
ハードウェアの具現において、技法の遂行に利用されるプロセッシングユニットは、一つ以上のASIC、DSP、デジタル信号プロセッシングデバイス(digital signal processing devices;DSPD)、プログラム可能論理デバイス(programmable logic devices;PLD)、フィールドプログラム可能ゲートアレイ(field programmable gate arrays;FPGA)、プロセッサ、制御器、マイクロ制御器、マイクロプロセッサ、電子デバイス、本開示に説明された機能を遂行するように設計された他の電子ユニット、コンピュータ、またはこれらの組み合わせ内で具現されてもよい。
【0067】
したがって、本開示と連係して説明された多様な例示的な論理ブロック、モジュール、および回路は汎用プロセッサ、DSP、ASIC、FPGAや他のプログラム可能論理デバイス、離散ゲートやトランジスタロジック、離散ハードウェアコンポーネント、または本願に説明された機能を遂行するように設計されたものなどの任意の組み合わせで具現されたり遂行されてもよい。汎用プロセッサはマイクロプロセッサであり得るが、代案として、プロセッサは任意の従来のプロセッサ、制御器、マイクロ制御器、または状態マシンであってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと連係した一つ以上のマイクロプロセッサ、または任意の他の構成の組み合わせで具現されてもよい。
【0068】
ファームウェアおよび/またはソフトウェアの具現において、技法はランダムアクセスメモリ(random access memory;RAM)、読み取り専用メモリ(read-only memory;ROM)、不揮発性RAM(non-volatile random access memory;NVRAM)、PROM(programmable read-only memory)、EPROM(erasable programmable read-only memory)、EEPROM(electrically erasable PROM)、フラッシュメモリ、コンパクトディスク(compact disc;CD)、磁気または光学データストレージデバイスなどのようなコンピュータ読み取り可能媒体上に保存された命令で具現されてもよい。命令は一つ以上のプロセッサによって実行可能であってもよく、プロセッサ(ら)に本開示に説明された機能の特定様態を遂行させてもよい。
【0069】
以上で説明された実施例が一つ以上の独立型コンピュータシステムで現在開示された主題の様態を活用するものとして記述されたが、本開示はこれに限定されず、ネットワークや分散コンピューティング環境のような任意のコンピューティング環境と連係して具現されてもよい。ひいては、本開示で主題の様相は複数のプロセッシングチップや装置で具現されてもよく、ストレージは複数の装置に亘って類似するように影響を受けることになってもよい。このような装置はPC、ネットワークサーバー、および携帯用装置を含んでもよい。
【0070】
本明細書では本開示が一部の実施例と関連して説明されたが、本開示の発明が属する技術分野の通常の技術者が理解できる本開示の範囲を逸脱しない範囲で多様な変形および変更がなされ得る。また、そのような変形および変更は本明細書に添付された特許請求の範囲内に属するものと考えられるべきである。
【符号の説明】
【0071】
110:原本映像
120:原本映像の指紋抽出
130:データベース
140:識別対象映像
150:識別対象映像の指紋抽出
160;マッチングアルゴリズム
170:変造の有無決定