(57)【要約】  ウォーターマークを埋め込んだ画像が加工されたとしても、ウォーターマークを検出する確実性を高める。画像処理装置（１０）の画像データ取得手段（１０２）は、画像データを取得する。ウォーターマーク生成手段（１０３）は、複数サイズのウォーターマークを生成する。画像処理手段（１０４）は、画像データ取得手段（１０２）により取得された画像データが示す画像に、ウォーターマーク生成手段（１０３）により生成された複数サイズのそれぞれのウォーターマークを埋め込む。
2017130333.tif 000002
【特許請求の範囲】
【請求項１】
画像データを取得する画像データ取得手段と、
複数サイズのウォーターマークを生成するウォーターマーク生成手段と、
前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された前記複数サイズのそれぞれのウォーターマークを埋め込む画像処理手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
前記画像は、複数個の色チャンネルを有するカラー画像であり、
前記画像処理手段は、前記カラー画像の画素値に含まれる前記複数個の色チャンネルのそれぞれの数値を変化させることによって、前記複数個の色チャンネルのそれぞれに、前記複数サイズのそれぞれのウォーターマークを埋め込む、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像処理手段は、前記複数個の色チャンネルのそれぞれに埋め込まれた前記ウォーターマークの一部又は全部が互いに重なるように、前記各サイズのウォーターマークを埋め込む、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像処理装置は、ユーザによる前記画像データの要求を受け付ける要求受付手段を更に含み、
前記ウォーターマークは、前記画像データを要求した前記ユーザを識別するための情報を含み、
前記画像処理装置は、前記要求受付手段により要求を受け付けた前記ユーザに対して、前記画像処理手段により前記ウォーターマークが埋め込まれた前記画像データを提供する画像提供手段を更に含む、
ことを特徴とする請求項１〜３の何れかに記載の画像処理装置。
【請求項５】
前記ウォーターマークは、複数段階の誤り訂正レベルを有する二次元コードであり、
前記ウォーターマーク生成手段は、基準以上の誤り訂正レベルの前記二次元コードを、前記複数個のサイズごとに生成する、
ことを特徴とする請求項１〜４の何れかに記載の画像処理装置。
【請求項６】
前記画像処理装置は、前記画像データ取得手段により取得された画像データの拡張子を取得する拡張子取得手段を更に含み、
前記ウォーターマーク生成手段は、前記拡張子取得手段により取得された拡張子に基づいて、生成するウォーターマークのサイズを決定する、
ことを特徴とする請求項１〜５の何れかに記載の画像処理装置。
【請求項７】
前記画像処理装置は、前記画像データ取得手段により取得された画像データのデータサイズを取得するデータサイズ取得手段を更に含み、
前記ウォーターマーク生成手段は、前記データサイズ取得手段により取得されたデータサイズに基づいて、生成するウォーターマークのサイズを決定する、
ことを特徴とする請求項１〜６の何れかに記載の画像処理装置。
【請求項８】
前記画像処理手段は、前記画像の中央に近いほどサイズが小さくなるように、前記複数サイズのそれぞれのウォーターマークを埋め込む位置を決定する、
を更に含むことを特徴とする請求項１〜７の何れかに記載の画像処理装置。
【請求項９】
前記画像処理手段は、前記複数サイズのそれぞれのウォーターマークからなるウォーターマーク群を前記画像に複数個埋め込む、
ことを特徴とする請求項１〜８の何れかに記載の画像処理装置。
【請求項１０】
画像データを取得する画像データ取得ステップと、
複数サイズのウォーターマークを生成するウォーターマーク生成ステップと、
前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された各サイズのウォーターマークを埋め込む画像処理ステップと、
を含むことを特徴とする画像処理方法。
【請求項１１】
画像データを取得する画像データ取得手段、
複数サイズのウォーターマークを生成するウォーターマーク生成手段、
前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された各サイズのウォーターマークを埋め込む画像処理手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、静止画や動画などの画像にウォーターマークを埋め込む技術が知られている。例えば、特許文献１には、不正なウェブサイトに掲載された画像の出所を特定するために、当該画像にウォーターマークを埋め込む技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１３／０２３６０４６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、画像にウォーターマークを埋め込んだとしても、ユーザが画像データを加工すると、ウォーターマークを検出できなくなることがある。例えば、ユーザが画像データを圧縮又は縮小した場合、圧縮率又は縮小率が高いとウォーターマークがつぶれてしまい検出できないことがある。また例えば、画像の一部を切り取ったり塗りつぶしたりした場合、ウォーターマークが切り取られたり塗りつぶされたりしてしまい検出できなくなってしまう。【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、ウォーターマークを埋め込んだ画像が加工されたとしても、ウォーターマークを検出する確実性を高めることである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る画像処理装置は、画像データを取得する画像データ取得手段と、複数サイズのウォーターマークを生成するウォーターマーク生成手段と、前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された前記複数サイズのそれぞれのウォーターマークを埋め込む画像処理手段と、を含むことを特徴とする。【０００７】
本発明に係る画像処理方法は、画像データを取得する画像データ取得ステップと、複数サイズのウォーターマークを生成するウォーターマーク生成ステップと、前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された各サイズのウォーターマークを埋め込む画像処理ステップと、を含むことを特徴とする。【０００８】
本発明に係るプログラムは、画像データを取得する画像データ取得手段、複数サイズのウォーターマークを生成するウォーターマーク生成手段、前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された各サイズのウォーターマークを埋め込む画像処理手段、としてコンピュータを機能させる。【０００９】
また、本発明に係る情報記憶媒体は、上記のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体である。【００１０】
また、本発明の一態様では、前記画像は、複数個の色チャンネルを有するカラー画像であり、前記画像処理手段は、前記カラー画像の画素値に含まれる前記複数個の色チャンネルのそれぞれの数値を変化させることによって、前記複数個の色チャンネルのそれぞれに、前記複数サイズのそれぞれのウォーターマークを埋め込む、ことを特徴とする。【００１１】
また、本発明の一態様では、前記画像処理手段は、前記複数個の色チャンネルのそれぞれに埋め込まれた前記ウォーターマークの一部又は全部が互いに重なるように、前記各サイズのウォーターマークを埋め込む、ことを特徴とする。【００１２】
また、本発明の一態様では、前記画像処理装置は、ユーザによる前記画像データの要求を受け付ける要求受付手段を更に含み、前記ウォーターマークは、前記画像データを要求した前記ユーザを識別するための情報を含み、前記画像処理装置は、前記要求受付手段により要求を受け付けた前記ユーザに対して、前記画像処理手段により前記ウォーターマークが埋め込まれた前記画像データを提供する画像提供手段を更に含む、ことを特徴とする。【００１３】
また、本発明の一態様では、前記ウォーターマークは、複数段階の誤り訂正レベルを有する二次元コードであり、前記ウォーターマーク生成手段は、基準以上の誤り訂正レベルの前記二次元コードを、前記複数個のサイズごとに生成する、ことを特徴とする。【００１４】
また、本発明の一態様では、前記画像処理装置は、前記画像データ取得手段により取得された画像データの拡張子を取得する拡張子取得手段を更に含み、前記ウォーターマーク生成手段は、前記拡張子取得手段により取得された拡張子に基づいて、生成するウォーターマークのサイズを決定する、ことを特徴とする。【００１５】
また、本発明の一態様では、前記画像処理装置は、前記画像データ取得手段により取得された画像データのデータサイズを取得するデータサイズ取得手段を更に含み、前記ウォーターマーク生成手段は、前記データサイズ取得手段により取得されたデータサイズに基づいて、生成するウォーターマークのサイズを決定する、ことを特徴とする。【００１６】
また、本発明の一態様では、前記画像処理手段は、前記画像の中央に近いほどサイズが小さくなるように、前記複数サイズのそれぞれのウォーターマークを埋め込む位置を決定する、を更に含むことを特徴とする。【００１７】
また、本発明の一態様では、前記画像処理手段は、前記複数サイズのそれぞれのウォーターマークからなるウォーターマーク群を前記画像に複数個埋め込む、ことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、ウォーターマークを埋め込んだ画像が加工されたとしても、ウォーターマークを検出する確実性を高めることが可能になる。
【図面の簡単な説明】
【００１９】
【図１】実施形態に関わる画像処理システムの全体構成を示す図である。
【図２】画像処理システムで実現される機能の一例を示す機能ブロック図である。
【図３】ウォーターマーク生成部が生成するウォーターマークの一例を示す図である。
【図４】ウォーターマークを埋め込む前の画像を示す図である。
【図５】ウォーターマークが埋め込まれる様子を示す図である。
【図６】ウォーターマーク埋め込み処理の一例を示すフロー図である。
【図７】ウォーターマーク検出処理の一例を示すフロー図である。
【図８】変形例の機能ブロック図である。
【図９】変形例（１）においてウォーターマークが埋め込まれる様子を示す図である。
【図１０】ウォーターマーク群が埋め込まれる様子を示す図である。
【発明を実施するための形態】
【００２０】
［１．画像処理システムのハードウェア構成］
以下、本発明に関わる画像処理装置を含む画像処理システムの実施形態の例を説明する。図１は、実施形態に関わる画像処理システムの全体構成を示す図である。図１に示すように、画像処理システム１は、画像処理サーバ１０（画像処理装置の一例）、ユーザ端末２０、及び管理者端末３０を含む。画像処理サーバ１０、ユーザ端末２０、及び管理者端末３０の各々は、ネットワーク２を介してデータ送受信可能に接続される。なお、ここでは、これらを１台ずつとして説明するが、これらは複数台あってもよい。
【００２１】
画像処理サーバ１０は、サーバコンピュータである。画像処理サーバ１０は、制御部１１、記憶部１２、及び通信部１３を含む。制御部１１は、例えば、一又は複数のマイクロプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭであり、補助記憶部は、ハードディスク又はソリッドステートドライブ等である。通信部１３は、ネットワークカードを含む。通信部１３は、ネットワーク２を介してデータ通信を行う。
【００２２】
ユーザ端末２０は、ユーザが操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯電話機（スマートフォンを含む）、又は携帯情報端末（タブレット型コンピュータを含む）等である。ユーザ端末２０は、制御部２１、記憶部２２、通信部２３、操作部２４、及び表示部２５を含む。制御部２１、記憶部２２、及び通信部２３のハードウェア構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であるので説明を省略する。
【００２３】
操作部２４は、ユーザが操作を行うための入力デバイスであり、例えば、マウスやキーボード、タッチパネル等である。操作部２４は、ユーザによる操作内容を制御部２１に伝達する。表示部２５は、例えば、液晶表示部又は有機ＥＬ表示部等である。表示部２５は、制御部２１の指示に従って画面を表示する。
【００２４】
管理者端末３０は、管理者が操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯電話機（スマートフォンを含む）、又は携帯情報端末（タブレット型コンピュータを含む）等である。管理者端末３０の制御部３１、記憶部３２、通信部３３、操作部３４、及び表示部３５のハードウェア構成は、それぞれ制御部２１、記憶部２２、通信部２３、操作部２４、及び表示部２５と同様であるので説明を省略する。
【００２５】
なお、記憶部１２，２２，３２に記憶されるものとして説明するプログラム及びデータは、ネットワーク２を介して記憶部１２，２２，３２に供給されるようにしてもよい。また、画像処理サーバ１０、ユーザ端末２０、及び管理者端末３０のハードウェア構成は、上記の例に限られず、種々のコンピュータのハードウェアを適用可能である。例えば、画像処理サーバ１０、ユーザ端末２０、及び管理者端末３０の各々は、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）を含んでもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部を介して記憶部１２，２２，３２に供給されるようにしてもよい。
【００２６】
本実施形態では、画像処理サーバ１０は、ユーザが勤務する会社の秘密情報の画像を管理する。例えば、ユーザが画像を故意に社外に公開した場合に当該ユーザを特定できるように、画像処理サーバ１０は、ユーザが要求した画像に複数サイズのウォーターマークを埋め込むことで、ユーザが画像を加工したとしても、ウォーターマークを検出する確実性を高めるようにしている。以降、当該技術の詳細について説明する。
【００２７】
［２．画像処理システムにおいて実現される機能］
図２は、画像処理システム１で実現される機能の一例を示す機能ブロック図である。本実施形態では、主に、画像処理サーバ１０で実現される機能を説明する。図２に示すように、画像処理サーバ１０では、データ記憶部１００、要求受付部１０１、画像データ取得部１０２、ウォーターマーク生成部１０３、画像処理部１０４、及び画像提供部１０５が実現される。
【００２８】
［２−１．データ記憶部］
データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、複数サイズのウォーターマークを画像に埋め込むための各種データを記憶する。例えば、データ記憶部１００は、ユーザデータベース及び画像データベースを記憶する。
【００２９】
ユーザデータベースは、画像処理システム１を利用するユーザに関する情報を格納する。例えば、ユーザデータベースは、ユーザを一意に識別するユーザＩＤやユーザの個人情報を格納する。個人情報は、例えば、ユーザ名（例えば、氏名やユーザアカウント）、ユーザの所属（例えば、会社名や所属部署）、及びユーザの連絡先（例えば、電話番号やメールアドレス）などである。
【００３０】
画像データベースは、画像処理サーバ１０が管理する画像データに関する情報を格納する。画像データは、静止画データであってもよいし、動画データであってもよい。更に画像データは、カラー画像データであってもよいし、グレースケール画像データであってもよい。本実施形態では、画像データがカラーの静止画像を示す場合を例に挙げて説明する。
【００３１】
画像データベースには、画像データそのものが格納されていてもよいし、画像データの所在のみが格納されていてもよい。画像データの所在とは、画像データの格納場所であり、例えば、画像データを格納したフォルダ（ディレクトリ）やＵＲＬなどのリンク情報である。画像データは、画像処理サーバ１０に記憶されていてもよいし、画像処理サーバ１０とデータ送受信可能に接続された他のコンピュータに記憶されていてもよい。また、画像データベースには、画像データの形式やデータサイズを格納するようにしてよい。画像データの形式は、例えば、画像データの拡張子や色深度情報などである。
【００３２】
なお、データ記憶部１００が記憶するデータは上記の例に限られない。データ記憶部１００は、種々のデータを記憶してよい。例えば、ウォーターマークに画像データの著作者や管理者の情報を含める場合には、データ記憶部１００は、画像データごとに著作者や管理者の情報を記憶してもよい。
【００３３】
［２−２．要求受付部］
要求受付部１０１は、制御部１１を主として実現される。要求受付部１０１は、ユーザによる画像データの要求を受け付ける。画像データの要求とは、画像データの取得要求又は表示要求である。例えば、要求受付部１０１は、ユーザ端末２０からユーザが指定した画像データを識別する情報（ファイル名やリンク情報など）を受信することによって、画像データの要求を受け付けることになる。
【００３４】
［２−３．画像データ取得部］
画像データ取得部１０２は、制御部１１を主として実現される。画像データ取得部１０２は、画像データを取得する。本実施形態では、ユーザは画像データベースに格納された画像データを要求するので、画像データ取得部１０２は、画像データベースに格納された複数の画像データのうち、ユーザが指定した画像データを取得することになる。
【００３５】
［２−４．ウォーターマーク生成部］
ウォーターマーク生成部１０３は、制御部１１を主として実現される。ウォーターマーク生成部１０３は、複数サイズのウォーターマークを生成する。ウォーターマークは、デジタルウォーターマークとも呼ばれ、一般的には、データの秘密保持や著作権保護の目的で埋め込まれる画像である。ウォーターマークは、可視的なものと不可視的なものが存在するが、本実施形態では、ウォーターマークが不可視的である場合を説明する。
【００３６】
ウォーターマークは、画像データベースに格納された画像に関する情報を含む。別の言い方をすれば、ウォーターマークは、自身が埋め込まれる画像に関する情報を含む。この情報は、画像の秘密を保持したり著作権を保護したりするための情報であり、例えば、画像を要求したユーザを識別するための情報、画像の著作者を識別するための情報、又は画像の管理者を識別するための情報である。ここでは、ウォーターマークは、画像データを要求したユーザを識別するための情報を含む場合を説明する。ユーザを識別するための情報は、ユーザデータベースに格納された情報であり、例えば、ユーザＩＤ、ユーザ名、所属、及び連絡先などである。
【００３７】
また、ウォーターマークは、画像で表されてもよいし、テキストで表されてもよい。本実施形態では、ウォーターマークが画像として表される場合を説明する。更に、その画像の一例として、所与の規格で定められたコードを用いる場合を説明する。コードは、バーコードであってもよいし、二次元コードであってもよい。ここでは、ここでは、ウォーターマークは、複数段階の誤り訂正レベルを有する二次元コードである場合を説明する。誤り訂正レベルは、コードに格納された情報のうち訂正可能な情報の多さ（割合）を示す。誤り訂正の方法自体は公知の種々の手法を適用可能であり、例えば、リードソロモン符号などの誤り訂正符号を利用してよい。
【００３８】
本実施形態では、二次元コードの一例として、４段階の誤り訂正レベルを有するＱＲコード（登録商標）を説明する。この二次元コードでは、レベルＬ、レベルＭ、レベルＱ、レベルＨの順番に誤り訂正レベルが高くなり、それぞれの誤り訂正能力は、約７％、約１５％、約２５％、約３０％である。ウォーターマーク生成部１０３は、基準以上の誤り訂正レベルの二次元コードを、複数個のサイズごとに生成する。基準以上の誤り訂正レベルとは、複数段階の誤り訂正レベルのうち、所定レベル以上のものである。ここでは、ウォーターマーク生成部１０３は、レベルＨの二次元コードをウォーターマークとして生成する場合を説明する。
【００３９】
図３は、ウォーターマーク生成部１０３が生成するウォーターマークの一例を示す図である。図３に示すように、本実施形態では、６６％・１００％・１５０％の３つのサイズのウォーターマーク４０Ｓ，４０Ｒ，４０Ｌを生成する場合を説明するが、ウォーターマーク生成部１０３は、２つ以上のサイズのウォーターマークを生成すればよく、その数は３つに限られず任意であってよい。なお、ここでのサイズとは、面積的な大きさ（ピクセル数）のことであり、例えば、画像の縦幅・横幅・解像度（単位長さあたりのピクセル数）によりサイズが定まる。なお、以降では、３つのウォーターマーク４０Ｓ，４０Ｒ，４０Ｌを特に区別しないときは、単にウォーターマーク４０と記載する。また、特に図面を参照する必要のないときは、画像とウォーターマークの符号を省略する。
【００４０】
ウォーターマーク生成部１０３は、埋め込むべき情報をコード情報に変換するためのアルゴリズムに基づいて、ウォーターマーク４０を生成することになる。このアルゴリズムは、公知の符号化アルゴリズムなどを利用すればよい。ウォーターマーク生成部１０３は、アルゴリズムに基づいてコードに変換し、縦横が所定ピクセル数のウォーターマーク４０Ｒを生成する。そして、ウォーターマーク生成部１０３は、ウォーターマーク４０Ｒを所定倍率（ここでは６６％）だけ縮小したものをウォーターマーク４０Ｓとし、所定倍率（ここでは１５０％）だけ拡大したものをウォーターマーク４０Ｌとする。即ち、ウォーターマーク４０Ｓは、ウォーターマーク４０Ｒの縦横のピクセル数が６６％になったものであり、ウォーターマーク４０Ｌは、ウォーターマーク４０Ｒの縦横のピクセル数が１５０％になったものである。
【００４１】
［２−５．画像処理部］
画像処理部１０４は、制御部１１を主として実現される。画像処理部１０４は、画像データ取得部１０２により取得された画像データが示す画像に、ウォーターマーク生成部１０３により生成された複数サイズのそれぞれのウォーターマークを埋め込む。
【００４２】
以降、図４及び図５を参照して、画像処理部１０４の処理を説明する。図４は、ウォーターマーク４０を埋め込む前の画像を示す図である。図４では、画像５０の左上をスクリーン座標系（Ｘ−Ｙ座標系）の原点Ｏとする。本実施形態では、画像５０がカラー画像である場合を説明しているので、画像５０の各画素の画素値は、色チャンネルごとに数値を含んでいる。例えば、ＲＧＢカラー画像であれば、画素値は、赤チャンネルの数値Ｒｘｙ、緑チャンネルの数値Ｇｘｙ、及び青チャンネルＢｘｙの数値を含む。なお、これらのｘとｙの文字は画素の座標である。このＲＧＢカラー画像が２４ビットであれば、各色チャンネルの数値は、８ビットで表されるので０〜２５５の何れかの数値となる。
【００４３】
画像処理部１０４は、これら３つの数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙのうち、ウォーターマークを埋め込む色チャンネルの数値を変化させることによって、画像５０にウォーターマーク４０を埋め込む。画像処理部１０４は、全ての色チャンネルの数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙを変化させてもよいし、一部の色チャンネルの数値のみを変化させるようにしてもよい。即ち、画像処理部１０４は、全ての色チャンネルに対してウォーターマーク４０を埋め込んでもよいし、一部の色チャンネルにウォーターマーク４０を埋め込んでもよい。本実施形態では、画像処理部１０４が、赤チャンネルの数値Ｒｘｙを変化させることによって、赤チャンネルに対してウォーターマーク４０を埋め込む場合を説明する。即ち、画像処理部１０４は、複数の色チャンネルのうち、赤チャンネルだけにウォーターマーク４０を埋め込むことになる。このため、図３や後述の図５では、ウォーターマーク４０を黒で示しているが、実際には赤色である。なお、画像処理部１０４は、赤チャンネルではなく、緑チャンネル又は青チャンネルにウォーターマーク４０を埋め込んでもよいし、２つ以上の色チャンネルにウォーターマーク４０を埋め込んでもよい。２つ以上の色チャンネルにウォーターマーク４０を埋め込む場合は後述の変形例で説明する。
【００４４】
図５は、ウォーターマークが埋め込まれる様子を示す図である。図５に示す例では、画像処理部１０４は、画像５０の上から、ウォーターマーク４０Ｓ，４０Ｒ，４０Ｌの順番で埋め込む。図５では、ウォーターマーク４０Ｒ，４０Ｒ，４０Ｌが、それぞれ６個、６個、３個である場合を説明するが、これらの個数は任意であってよく、１個ずつであってもよい。なお、画像処理部１０４は、予め定められた方法に基づいてウォーターマーク４０を埋め込む位置を選択すればよく、図５のような順番ではなく、ウォーターマーク４０を埋め込む位置をランダムに決定してもよい。また、図５では、説明の簡略化のために、ウォーターマーク４０Ｓ，４０Ｒ，４０Ｌが互いに重ならないようにしているが、後述する変形例のように、これらが互いに重なっていてもよい。
【００４５】
先述したように、本実施形態では、ウォーターマーク４０は二次元コードである。二次元コードの各セルは、０又は１の何れかの値を取る。例えば、「０」に対応するセルは色がなく、「１」に対応するセルは色を有する。なお、ここでの色がないとは背景色と同じ色であることを意味し、色を有するとは背景色と異なる色であることを意味する。ここでは、赤チャンネルに対してウォーターマーク４０が埋め込まれるので、ウォーターマーク４０の「０」のセルに対応する領域は赤色がなく、「１」のセルに対応する領域は赤色を有することになる。なお、ウォーターマーク４０の二次元コードの１つのセルは、画像としては１画素（１ピクセル）だけで構成されてもよいし、複数の画素から構成されてもよい。例えば、画像圧縮に耐えられるように、十分な大きさのウォーターマーク４０を採用する場合には、１つのセルは複数の画素から構成されるようにすればよい。
【００４６】
例えば、画像処理部１０４は、ウォーターマーク４０の「０」のセルに対応する画素の画素値は変化させず、ウォーターマーク４０の「１」のセルに対応する画素の画素値は変化させる。具体的には、画像処理部１０４は、ウォーターマーク４０の「０」のセルに対応する画素の画素値は（Ｒｘｙ，Ｇｘｙ，Ｂｘｙ）のまま変化させず、ウォーターマーク４０の「１」のセルに対応する画素の画素値を（Ｒｘｙ＋１，Ｇｘｙ，Ｂｘｙ）とする。このように、ウォーターマーク４０が埋め込まれた領域の画素値はわずかしか変化しないので、図５に示すように、ウォーターマーク４０は人の目では気づきにくい状態（不可視的な状態）となる。
【００４７】
なお、画像処理部１０４が数値Ｒｘｙを１だけ増加させる場合を説明したが、２以上の変化をさせてもよい。ただし、数値Ｒｘｙの変化が大きすぎると、不可視性を維持できない可能性があるので、変化量は閾値（例えば、４）未満となるようにしてもよい。また、画像処理部１０４は、数値Ｒｘｙを増加させるのではなく減少させてもよい。この場合、画像処理部１０４は、ウォーターマーク４０の「０」のセルに対応する画素の画素値を減少させ、ウォーターマーク４０の「１」のセルに対応する画素の画素値は変化さないようにしてもよい。また、数値Ｒｘｙの変化量は、固定値であってもよいし、可変値であってもよい。
【００４８】
また、画像５０に埋め込まれるウォーターマーク４０のサイズ及びその数は、画像データベースに格納された全ての画像データで同じであってもよいし、画像データごとに異なっていてもよい。更に、ウォーターマーク４０のサイズや数は、固定値であってもよいし、可変値であってもよい。可変値である場合には、ウォーターマーク４０のサイズや数は、ユーザや画像データなどの所定条件のもとで定まってもよいし、ランダムに定まってもよい。
【００４９】
［２−６．画像提供部］
画像提供部１０５は、制御部１１を主として実現される。画像提供部１０５は、要求受付部１０１により要求を受け付けたユーザに対して、画像処理部１０４によりウォーターマークが埋め込まれた画像データ（即ち、画素値を変化させた画像データ）を提供する。例えば、画像提供部１０５は、ウォーターマークを埋め込んだ画像データ自体をユーザ端末に送信してもよいし、画像データ自体は送信せずにウォーターマークが埋め込まれた画像を表示部２５に表示させるためのデータ（画面の表示データ）のみをユーザ端末に送信してもよい。
【００５０】
［３．画像処理システムにおいて実行される処理］
次に、画像処理システム１において実行される処理の一例として、画像にウォーターマークを埋め込むためのウォーターマーク埋め込み処理と、画像に埋め込まれたウォーターマークを検出するためのウォーターマーク検出処理と、を説明する。下記に説明する処理は、図２に示す機能ブロックが実行する処理の一例である。
【００５１】
図６は、ウォーターマーク埋め込み処理の一例を示すフロー図である。図６に示す処理は、制御部１１が、記憶部１２に記憶されたプログラムに従って動作し、制御部２１が、記憶部２２に記憶されたプログラムに従って動作することによって実行される。
【００５２】
図６に示すように、まず、ユーザ端末２０において、ユーザが操作部２４から所定の操作を行うと、制御部２１は、画像処理サーバ１０に対して画像データを要求する（Ｓ１）。画像データの要求は、所定の形式で行われるようにすればよく、例えば、要求する画像データを識別するための情報（ファイル名やリンク情報など）を含む。なお、ユーザ端末２０から画像処理サーバ１０に対して要求が送信される場合にはユーザＩＤやＩＰアドレスが送信されており、画像処理サーバ１０は、どのユーザがアクセスしているかを特定可能になっているものとする。
【００５３】
画像処理サーバ１０においては、画像データの要求を受信すると、制御部１１は、ユーザデータベースを参照し、画像データを要求したユーザＩＤなどの情報を取得する（Ｓ２）。Ｓ２においては、制御部１１は、画像データの要求に基づいて、ウォーターマークとして埋め込む情報を取得することになる。なお、この情報は、ユーザが画像データを要求した日時や画像データを提供する日時が含まれていてもよい。
【００５４】
制御部１１は、Ｓ２で取得した情報に基づいて、複数サイズのウォーターマークを生成する（Ｓ３）。例えば、ウォーターマークを生成するプログラムは記憶部１２に記憶されているものとする。本実施形態では、二次元コードをウォーターマークとして用いるので、公知の二次元コードビルダを利用してよい。二次元コードビルダは、生成する二次元コードの誤り訂正レベルを設定可能であり、ここでは、レベルＨとする。また、生成すべきウォーターマークのサイズを示す情報は予め記憶部１２に記憶されているものとする。Ｓ３においては、制御部１１は、Ｓ２で取得した情報を二次元コードビルダに入力することによってウォーターマークを生成する。二次元コードビルダは、各サイズのウォーターマークを生成してもよいし、１つのサイズのみを生成して、制御部１１がそのサイズのウォーターマークを拡大又は縮小することで各サイズのウォーターマークを生成するようにしてもよい。
【００５５】
制御部１１は、画像データベースを参照し、ユーザが要求した画像データを取得する（Ｓ４）。制御部１１は、画像データが示す画像のうち、Ｓ３で生成した複数のサイズのそれぞれのウォーターマークを埋め込む領域を選択する（Ｓ５）。Ｓ５においては、制御部１１は、複数サイズのそれぞれについて、ウォーターマークを埋め込む領域を選択する。例えば、制御部１１は、図５のようにウォーターマークを埋め込む場合、画像５０の上から６６％のウォーターマーク４０Ｓ、１００％のウォーターマーク４０Ｒ、及び１５０％のウォーターマーク４０Ｌの順番で領域を選択する。
【００５６】
制御部１１は、Ｓ３で生成した複数サイズのそれぞれのウォーターマークを、Ｓ５で選択した領域に埋め込む（Ｓ６）。Ｓ６においては、制御部１１は、図４及び図５を参照して説明した方法に基づいて、ウォーターマークを埋め込む領域の赤チャンネルの数値Ｒｘｙを変化させることになる。制御部１１は、Ｓ６でウォーターマークを埋め込んだ画像データをユーザ端末２０に送信する（Ｓ７）。ユーザ端末２０においては、画像データを受信すると、制御部２１は、受信した画像データを表示部２５に表示させ（Ｓ８）、本処理は終了する。
【００５７】
以上説明したウォーターマーク埋め込み処理が実行されると、ユーザは、受信した画像データや表示部２５のスクリーンショットなどをネットワーク２上のコンピュータにアップロードできる状態となる。以降説明するウォーターマーク検出処理は、ネットワーク２上のコンピュータにアップロードされた画像に埋め込まれたウォーターマークを管理者端末３０で検出するための処理である。
【００５８】
図７は、ウォーターマーク検出処理の一例を示すフロー図である。図７に示す処理は、制御部３１が、記憶部３２に記憶されたプログラムに従って動作することによって実行される。図７に示すように、まず、制御部３１は、ネットワーク２上のコンピュータに公開された画像データを取得する（Ｓ２１）。Ｓ２１においては、制御部３１は、ネットワーク２上のコンピュータから画像データを受信してもよいし、予め記憶部３２にダウンロードしておいた画像データを読み出してもよい。
【００５９】
制御部３１は、Ｓ２１で取得した画像データが示す画像内の領域を選択する（Ｓ２２）。Ｓ２２においては、制御部３１は、予め定められた方法に基づいて画像内の領域を選択すればよく、所定の大きさの領域を画像内の所定位置から順番に選択してもよいし、ランダムに領域を選択してもよい。なお、Ｓ２２以降の処理は、ウォーターマークを埋め込んだ色チャンネルに対して実行される。本実施形態では、赤チャンネルに対してウォーターマークを埋め込むので、Ｓ２２以降の処理は、赤チャンネルに対して実行されることになる。後述する変形例のように複数の色チャンネルに対してウォーターマークを埋め込む場合には、Ｓ２２以降の処理は、当該色チャンネルごとに実行されることになる。
【００６０】
制御部３１は、Ｓ２２で選択した領域に対してヒストグラムイコライゼーション処理を実行する（Ｓ２３）。ヒストグラムイコライゼーション処理は、ヒストグラムにおける頻度の累積を示すグラフが直線状になるように各画素値を変換する処理である。画像に対してヒストグラムイコライゼーション処理を施すことにより、画像の階調に偏りがあるような場合に、階調を万遍なく分散させることができる。ヒストグラムイコライゼーション処理自体は、公知の種々の処理を適用可能である。Ｓ２３では、制御部３１は、赤チャンネルごとにヒストグラムイコライゼーション処理を実行するので、赤チャンネルのヒストグラムを生成することになる。なお、画像全体に対してヒストグラムイコライゼーション処理を施してもよいが、一部の領域に対してヒストグラムイコライゼーション処理を施すことにより、各階調のピーク間の距離をより広げることができるので、ウォーターマークが浮かび上がりやすくなり、その結果、ウォーターマークを検出しやすくなる。
【００６１】
制御部３１は、Ｓ２３で生成したヒストグラムを参照して、特定の階調（又はピーク）を選択する（Ｓ２４）。Ｓ２４においては、制御部３１は、ヒストグラムに表れた頻度を閾値と比較し、基準以上の頻度が現れた階調を選択する。この閾値は、記憶部３２に記憶されているものとする。
【００６２】
制御部３１は、Ｓ２４で選択した特定の階調でウォーターマークの一部又は全部を検出可能であるかを判定する（Ｓ２５）。Ｓ２５においては、制御部３１は、ウォーターマークに含まれる所定パターンを検出したかを判定することになる。本実施形態のように二次元コードをウォーターマークとして用いるのであれば、制御部３１は、二次元コードのコーナーに配置された３つのファインダパターンを探索する。例えば、制御部３１は、１つ又は２つのファインダパターンを検出した場合にウォーターマークの一部を検出したと判定し、３つのファインダパターンを検出した場合にウォーターマークの全部を検出したと判定する。
【００６３】
一部又は全部を検出可能であると判定された場合（Ｓ２５；Ｙ）、制御部３１は、当該検出したウォーターマークが完全であるかを判定する（Ｓ２６）。本実施形態のように二次元コードをウォーターマークとして用いるのであれば、Ｓ２６においては、制御部３１は、公知の二次元コードリーダーでウォーターマークの読み取りが可能かを判定すればよい。他にも例えば、制御部３１は、ウォーターマークに含まれる所定パターンを検出したかを判定してもよい。このパターンは、Ｓ２５の判定で用いるパターンと同じであってもよいし、異なっていてもよい。Ｓ２６においては、制御部３１は、パターンマッチングを利用して、二次元コードのアライメントパターン、タイミングパターン、又はフォーマット情報を検出したかを判定してもよい。
【００６４】
ウォーターマークが完全であると判定された場合（Ｓ２６；Ｙ）、制御部３１は、ウォーターマークに含まれるメッセージを読み出して表示部２５に表示させ（Ｓ２７）、本処理は終了する。Ｓ２７においては、制御部３１は、ウォーターマークに含まれるユーザＩＤなどの情報を表示部２５に表示させることになる。
【００６５】
一方、ウォーターマークが完全でないと判定された場合（Ｓ２６；Ｎ）、制御部３１は、記憶部３２を参照し、既に検出したウォーターマークの一部があるかを判定する（Ｓ２８）。過去にＳ２５で検出されたウォーターマークの一部は、記憶部３２に記憶されているものとする。
【００６６】
ウォーターマークの一部があると判定された場合（Ｓ２８；Ｙ）、制御部３１は、Ｓ２５で検出したウォーターマークの一部と、既に検出したウォーターマークの一部と、を合成する（Ｓ２９）。Ｓ２９においては、制御部３１は、各ウォーターマーク部分に含まれる所定パターンを所定位置に配置することによって合成する。例えば、本実施形態のように二次元コードをウォーターマークとして用いるのであれば、ファインダパターンは３つのコーナーに配置されるので、各ウォーターマーク部分に含まれるファインダパターンがコーナーに配置されるようにする。
【００６７】
制御部３１は、Ｓ２９で合成したウォーターマークが完全であるかを判定する（Ｓ３０）。Ｓ３０の処理は、Ｓ２６と同様である。ウォーターマークが完全であると判定された場合（Ｓ３０；Ｙ）、Ｓ２７においてメッセージが読み出され、本処理は終了する。一方、ウォーターマークが完全でないと判定された場合（Ｓ３０；Ｎ）、後述するＳ３２に移行する。
【００６８】
Ｓ２５において、一部又は全部を検出可能でないと判定された場合（Ｓ２５；Ｎ）、制御部３１は、Ｓ２４における階調の選択を終了するかを判定する（Ｓ３１）。Ｓ３１においては、制御部３１は、まだ選択していない階調が存在するかを判定することになる。階調の選択を終了しないと判定された場合（Ｓ３１；Ｎ）、Ｓ２４の処理に戻り、次の階調についてウォーターマークの検出処理が実行される。
【００６９】
一方、階調の選択を終了すると判定された場合（Ｓ３１；Ｙ）、制御部３１は、Ｓ２２において全ての領域を選択し終わったかを判定する（Ｓ３２）。選択していない領域があると判定されない場合（Ｓ３２；Ｎ）、Ｓ２２の処理に戻り、次の領域についてウォーターマークの検出処理が実行される。
【００７０】
一方、領域の選択を終了すると判定された場合（Ｓ３２；Ｙ）、制御部３１は、ウォーターマークを検出できなかった旨を示すエラーメッセージを表示部３５に表示させ（Ｓ３３）、本処理は終了する。
【００７１】
以上説明した画像処理システム１によれば、画像処理サーバ１０が複数サイズのウォーターマークを画像に埋め込むので、ウォーターマークを埋め込んだ画像が加工されたとしても、ウォーターマークを検出しやすくすることができる。例えば、圧縮や縮小に強い大きなウォーターマークと、切り取りや塗りつぶしに強い小さなウォーターマークと、を１つの画像に埋め込むことで、ユーザが画像を圧縮したり切り取ったりした場合であっても、ウォーターマークを検出する確率を高めることができる。
【００７２】
また、画像処理サーバ１０に対して画像データを要求したユーザを識別する情報をウォーターマークに含めるので、例えば、社内の秘密情報である画像をユーザが漏えいした場合であっても、ウォーターマークから当該ユーザを特定することができる。その結果、画像の漏えいを未然に防止することができる。
【００７３】
また、基準以上の誤り訂正レベルの二次元コードをウォーターマークとして使用するので、ウォーターマークの一部が、ユーザによる加工や元々の画像の色との関係でうまく検出できなかったとしても、その誤りを訂正しやすくなるので、ウォーターマークに埋め込んだ情報をより正確に抽出することができる。
【００７４】
［４．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【００７５】
図８は、変形例の機能ブロック図である。図８に示すように、下記に説明する変形例では、実施形態の機能に加えて、拡張子取得部１０６（変形例（３）参照）及びデータサイズ取得部１０７（変形例（４）参照）が実現される。
【００７６】
（１）例えば、実施形態では、ある単一の色チャンネルに対してのみウォーターマークを埋め込む場合を説明したが、複数個の色チャンネルのそれぞれに対してウォーターマークを埋め込むようにしてもよい。ここでは、複数個の色チャンネルを有するカラー画像の全ての色チャンネルに対してウォーターマークを埋め込む場合を説明する。
【００７７】
変形例（１）の画像処理部１０４は、カラー画像の画素値に含まれる複数個の色チャンネルのそれぞれの数値Ｒｘｙ，Ｇｘｙ，Ｂｘｙを変化させることによって、複数個の色チャンネルのそれぞれに、複数サイズのそれぞれのウォーターマークを埋め込むことになる。
【００７８】
図９は、変形例（１）においてウォーターマークが埋め込まれる様子を示す図である。ここでは、ウォーターマーク４０のサイズは、実施形態と同様の場合を説明する。即ち、６６％・１００％・１５０％の３つのサイズのウォーターマーク４０が埋め込められる場合を説明する。図９のウォーターマーク４０ＳＲ，４０ＲＲ，４０ＬＲは、赤チャンネルに埋め込まれるウォーターマークを示す。ウォーターマーク４０ＳＧ，４０ＲＧ，４０ＬＧは、緑チャンネルに埋め込まれるウォーターマークを示す。ウォーターマーク４０ＳＢ，４０ＲＢ，４０ＬＢは、青チャンネルに埋め込まれるウォーターマークを示す。なお、各ウォーターマーク４０が埋め込まれる位置は、実施形態と同様、予め定められた方法に基づいて決定されるようにすればよい。また、図９では、各ウォーターマーク４０を黒で示しているが、実際には、色チャンネルに対応する色（赤色、緑色、又は青色）である。
【００７９】
ウォーターマーク４０ＳＲ，４０ＲＲ，４０ＬＲが埋め込まれる方法は、実施形態で説明した方法と同様である。画像処理部１０４は、ウォーターマーク４０ＳＧ，４０ＲＧ，４０ＬＧの「０」のセルに対応する画素の画素値は（Ｒｘｙ，Ｇｘｙ，Ｂｘｙ）のまま変化させず、ウォーターマーク４０ＳＧ，４０ＲＧ，４０ＬＧの「１」のセルに対応する画素の画素値を（Ｒｘｙ，Ｇｘｙ＋１，Ｂｘｙ）とする。同様に、画像処理部１０４は、ウォーターマーク４０ＳＢ，４０ＲＢ，４０ＬＢの「０」のセルに対応する画素の画素値は（Ｒｘｙ，Ｇｘｙ，Ｂｘｙ）のまま変化させず、ウォーターマーク４０ＳＢ，４０ＲＢ，４０ＬＢの「１」のセルに対応する画素の画素値を（Ｒｘｙ，Ｇｘｙ，Ｂｘｙ＋１）とする。ここでは、実施形態と同様、各色チャンネルの数値の変化を少なくしてウォーターマーク４０の不可視性を高めている。
【００８０】
なお、ここでは、各色チャンネルで数値の変化量が同じである場合を説明したが、色チャンネルに応じて数値の変化量を異ならせてもよい。また、色チャンネルに応じて、ウォーターマーク４０のサイズを異ならせてもよい。この場合、画像処理部１０４は、ある１つの色チャンネルの中でウォーターマークのサイズを異ならせてもよいし、ある色チャンネルのウォーターマークのサイズと、他の色チャンネルのウォーターマークのサイズと、を異ならせてもよい。更に、画像処理部１０４は、色チャンネルごとにウォーターマークのサイズが異なるようにしてもよい。
【００８１】
変形例（１）によれば、複数個の色チャンネルのそれぞれにウォーターマークを埋め込むので、一部の色チャンネルがウォーターマークを検出しにくい傾向を有していたとしても、他の色チャンネルがウォーターマークを検出しやすい傾向を有していれば、ウォーターマークを検出できるので、ウォーターマークを検出する確実性を向上させることができる。具体的には、グラデーションしている領域内にウォーターマークが埋め込まれると、ウォーターマークが埋め込まれた画素の画素値が変化して周囲の画素値と同じになってしまい、ウォーターマークを検出できないことがあるが、例えば、緑チャンネルと青チャンネルがグラデーションしていても、赤チャンネルがグラデーションしていなければ、赤チャンネルに埋め込んだウォーターマークを検出することができる。更に、各色チャンネルに対して異なるウォーターマークを埋め込むこともできるので、画像に対して埋め込む情報量を多くすることができる。
【００８２】
なお、画像処理部１０４は、３つ全ての色チャンネルに対してウォーターマークを埋め込むのではなく、任意の２つにウォーターマークを埋め込んでもよい。更に、ウォーターマークを埋め込む色チャンネルは、固定であってもよいし、所与の条件のもとで可変であってもよい。また、変形例（１）では、図７で説明したウォーターマーク検出処理は、色チャンネルごとに実行される。即ち、Ｓ２３において、赤チャンネル、緑チャンネル、及び青チャンネルのそれぞれに対してヒストグラムイコライゼーション処理が施されて３つのヒストグラムが生成され、Ｓ２４以降の処理は、これら３つのヒストグラムのそれぞれに対して実行される。このため、例えば、Ｓ２６又はＳ３０において、何れかの色チャンネルにおいてウォーターマークが完全であると判定された場合には、他の色チャンネルのウォーターマークが完全でなくてもウォーターマーク内のメッセージを読み取ることが可能なので、Ｓ２７の処理に移行することになる。
【００８３】
（２）また例えば、変形例（１）では、図９のように各色チャンネルのウォーターマークが互いに重ならない場合を例に挙げたが、ある色チャンネルのウォーターマークと、他の色チャンネルのウォーターマークと、はそれぞれ別個のものとして検出可能（例えば、赤チャンネルのウォーターマークと、緑チャンネルのウォーターマークと、が重なっても、色が混ざってウォーターマークが分からなくなるわけではなく、赤チャンネル成分又は緑チャンネル成分だけを抜き出せば数値が変化した領域を特定可能）なので、これらは互いに重なってもよい。変形例（２）の画像処理部１０４は、各色チャンネルに埋め込まれたウォーターマークの一部又は全部が互いに重なるように、各サイズのウォーターマークを埋め込む。
【００８４】
例えば、画像処理部１０４は、赤チャンネルに埋め込むウォーターマークの一部と、緑チャンネル又は青チャンネルに埋め込むウォーターマークの一部と、が重なるように、ウォーターマークを埋め込む位置を決定する。また例えば、画像処理部１０４は、赤チャンネルに埋め込むウォーターマークが、緑チャンネル又は青チャンネルに埋め込むウォーターマークの全てを含むように、ウォーターマークを埋め込む位置を決定する。なお、各色チャンネルに対して同じ位置に同じウォーターマークが埋め込まれるようにしてもよい。
【００８５】
変形例（２）によれば、各色チャンネルのウォーターマークを重ねて配置することができるので、スペースを有効利用することができ、画像に埋め込むウォーターマークの数を多くすることができる。また、複数のサイズのウォーターマークを重ねて配置することで、圧縮や縮小に強い大きなウォーターマークと、切り取りや塗りつぶしに強い小さなウォーターマークと、を重ねて配置することができるので、画像の一部だけが切り取られたり画像が圧縮又は縮小されたりした場合であっても、より確実にウォーターマークを検出して、画像を公開したユーザを特定しやすくなる。
【００８６】
（３）また例えば、実施形態では、予め定められたサイズのウォーターマークを画像に埋め込む場合を説明したが、圧縮又は縮小される蓋然性の高い画像については、圧縮又は縮小に耐えられるようにウォーターマークを大きくしてもよい。例えば、画像データの拡張子をもとに圧縮又は縮小される蓋然性が高いかを推測し、その蓋然性が高ければウォーターマークのサイズを大きくしてもよい。
【００８７】
変形例（３）の画像処理システム１は、拡張子取得部１０６を含む。拡張子取得部１０６は、制御部１１を主として実現される。拡張子取得部１０６は、画像データ取得部１０２により取得された画像データの拡張子を取得する。拡張子取得部１０６は、画像データのファイル名から拡張子を取得してもよいし、画像データに関連付けられた情報（プロパティなど）から拡張子を取得してもよい。ここでは、拡張子が画像データベースに格納されているので、拡張子取得部１０６は、画像データベースを参照することによって拡張子を取得するようにしてよい。
【００８８】
ウォーターマーク生成部１０３は、拡張子取得部１０６により取得された拡張子に基づいて、生成するウォーターマークのサイズを決定する。例えば、拡張子の種類と、生成すべきウォーターマークのサイズと、の関連付けがデータ記憶部１００に記憶されているものとする。この関連付けは、テーブル形式であってもよいし、演算式形式でプログラムコード内に記述されていてもよい。ウォーターマーク生成部１０３は、拡張子取得部１０６により取得された拡張子に関連付けられたサイズのウォーターマークを生成する。
【００８９】
例えば、ＢＭＰデータやＴＩＦＦデータは、比較的データサイズが大きいので圧縮又は縮小される蓋然性が高いが、ＧＩＦデータやＪＰＥＧデータは、比較的データサイズが小さいので圧縮又は縮小される蓋然性が低い。ウォーターマーク生成部１０３は、拡張子取得部１０６により取得された拡張子がＢＭＰデータやＴＩＦＦデータを示す場合、拡張子取得部１０６により取得された拡張子がＧＩＦデータやＪＰＥＧデータを示す場合よりもウォーターマークのサイズを大きくする。
【００９０】
変形例（３）によれば、画像データの拡張子からユーザの加工方法を推測し、その加工方法に応じたサイズのウォーターマークを埋め込むことができるので、ウォーターマークを検出する確率をより高めることができる。
【００９１】
（４）また例えば、変形例（３）では拡張子をもとにウォーターマークのサイズを決定する場合を例に挙げたが、画像データのデータサイズをもとにウォーターマークのサイズを決定してもよい。
【００９２】
変形例（４）の画像処理システム１は、データサイズ取得部１０７を含む。データサイズ取得部１０７は、制御部１１を主として実現される。データサイズ取得部１０７は、画像データ取得部１０２により取得された画像データのデータサイズを取得する。データサイズ取得部１０７は、画像データに関連付けられた情報（プロパティなど）からデータサイズを取得するようにしてもよい。ここでは、データサイズが画像データベースに格納されているので、拡張子取得部１０６は、画像データベースを参照することによってデータサイズを取得するようにしてよい。
【００９３】
ウォーターマーク生成部１０３は、データサイズ取得部１０７により取得されたデータサイズに基づいて、生成するウォーターマークのサイズを決定する。例えば、データサイズと、生成すべきウォーターマークのサイズと、を関連付けがデータ記憶部１００に記憶されているものとする。この関連付けは、テーブル形式であってもよいし、演算式形式でプログラムコード内に記述されていてもよい。ウォーターマーク生成部１０３は、データサイズ取得部１０７により取得されたデータサイズに関連付けられたサイズのウォーターマークを生成する。
【００９４】
例えば、ウォーターマーク生成部１０３は、データサイズが大きくなるほど、画像データが圧縮又は縮小される蓋然性が高いので、ウォーターマークのサイズを大きくする。別の言い方をすれば、ウォーターマーク生成部１０３は、データサイズが小さくなるほど、画像データが圧縮又は縮小される蓋然性が低いので、ウォーターマークのサイズを小さくする。
【００９５】
変形例（４）によれば、画像データの拡張子から加工方法を推測し、その加工方法に応じたサイズのウォーターマークを埋め込むことができるので、ウォーターマークを検出する確率をより高めることができる。
【００９６】
（５）また例えば、実施形態では、ウォーターマークが埋め込まれる位置が固定されていたりランダムに決定されたりする場合を説明したが、画像の中央付近は切り取られやすいため、切り取りに強い小さなウォーターマークが画像の中央付近に配置されるようにしてもよい。
【００９７】
変形例（５）の画像処理部１０４は、画像の中央に近いほどサイズが小さくなるように、複数サイズのそれぞれのウォーターマークを埋め込む位置を決定する。即ち、画像処理部１０４は、画像の端部に近いほどサイズが大きくなるように、複数サイズのそれぞれのウォーターマークを埋め込む位置を決定する。例えば、画像処理部１０４は、画像５０の中心点の座標と所定距離以内に、ウォーターマーク生成部１０３が生成したウォーターマークのうち最も小さいものを埋め込む。別の言い方をすれば、画像処理部１０４は、画像５０の中心点の座標と所定距離以上の場所に、ウォーターマーク生成部１０３が生成したウォーターマークのうち最も大きいものを埋め込む。
【００９８】
変形例（５）によれば、画像データのデータサイズから加工方法を推測し、その加工方法に応じたサイズのウォーターマークを埋め込むことができるので、ウォーターマークを検出する確率をより高めることができる。
【００９９】
（６）また例えば、各サイズのウォーターマークをばらばらに埋め込むのではなく、複数サイズのウォーターマークを１かたまりとしたウォーターマーク群を複数個埋め込むようにしてもよい。
【０１００】
図１０は、ウォーターマーク群が埋め込まれる様子を示す図である。図１０では、複数サイズのウォーターマークの集団をウォーターマーク群４１とする。図１０に示すように、ウォーターマーク群４１は、実施形態で説明した３つのサイズのウォーターマーク４０からなる。変形例（６）の画像処理部１０４は、各サイズのウォーターマークからなるウォーターマーク群４１を画像５０に複数個埋め込む。
【０１０１】
例えば、画像処理部１０４は、ウォーターマーク群４１における各ウォーターマーク４０の数及び配置を決定する。ここでは、最も大きなウォーターマーク４０Ｌを中心にして、それよりも小さなウォーターマーク４０Ｓ，４０Ｒを周囲に配置することになる。なお、ウォーターマーク群４１によって、ウォーターマークのサイズ、数、及び配置の少なくとも１つが異なってもよい。また、ウォーターマーク群４１は、互いにサイズが異なる複数のウォーターマーク４０を含んでいればよく、各サイズのウォーターマーク４０は１つずつであってもよいし、２つ以上であってもよい。
【０１０２】
変形例（６）によれば、ウォーターマーク群を複数埋め込むので、ウォーターマークを検出する確率をより高めることができる。
【０１０３】
（７）また例えば、変形例（１）〜（６）の２つ以上を組み合わせるようにしてもよい。
【０１０４】
また例えば、上記においては、各サイズで同じ情報を含むウォーターマークとしたが、ウォーターマーク生成部１０３は、サイズごとに異なる情報を含むウォーターマークを生成するようにしてもよい。このようにすることで、画像に埋め込む情報量を多くすることができる。また、ウォーターマーク生成部１０３は、サイズごとに誤り訂正レベルを異ならせるようにしてもよい。例えば、サイズが大きいほど誤り訂正レベルを低くして、サイズが小さいほど誤り訂正レベルを高くするようにしてもよい。
【０１０５】
また例えば、全てのウォーターマークの向きが同じである場合を説明したが、ウォーターマークの向きを異ならせてもよい。即ち、複数個の色チャンネルのそれぞれに埋め込むウォーターマークの向きを異ならせてもよい。画像処理部１０４は、ある１つのサイズの中でウォーターマークの向きを異ならせてもよいし、あるサイズのウォーターマークの向きと、他のサイズのウォーターマークの向きと、を異ならせてもよい。更に、画像処理部１０４は、サイズごとにウォーターマークの向きが異なるようにウォーターマークを埋め込むようにしてもよい。
【０１０６】
また例えば、画像処理部１０４は、各色チャンネルに対してヒストグラムイコライゼーション処理を実行し、色分布がまばらな色チャンネルに対してウォーターマークを埋め込むようにしてもよい。更に、画像処理部１０４は、画像内の領域ごとにヒストグラムイコライゼーション処理を実行し、色分布がまばらな領域に対してウォーターマークを埋め込むようにしてもよい。色分布がまばらか否かは、ヒストグラムに表れるピークの頻度数やピーク間の距離に基づいて判定されるようにすればよい。例えば、画像処理部１０４は、第１閾値以上の頻度の階調数が基準数以上である場合、第１閾値よりも小さい第２閾値以上の頻度の階調数が基準数未満である場合、又は、ピーク間の距離が所定距離（所定距離は、ウォーターマークを埋め込む場合の数値の変化量に応じた距離であってよい。）以上である場合に色分布がまばらであると判定してもよい。また例えば、変形例（１）において、画像処理部１０４は、色分布がまばらな色チャンネルに対してのみウォーターマークを埋め込んでもよい。
【０１０７】
また例えば、静止画像データにウォーターマークを埋め込む場合を説明したが、動画データにウォーターマークを埋め込んでもよい。更に、二次元コード以外のコードをウォーターマークとして利用してもよいし、コード以外の画像やテキストをウォーターマークとして利用してもよい。また例えば、ウォーターマークには任意の情報が含まれていてよく、画像データを要求したユーザ以外の情報が含まれていてもよい。
【０１０８】
また例えば、画像処理サーバ１０で実現されるものとして説明した機能が他のコンピュータ（例えば、ユーザ端末２０や管理者端末３０など）で実現されるようにしてもよい。この場合、上記説明した各機能が実現されるコンピュータが本発明に係る画像処理装置に相当することになる。また、上記説明した機能のうち、画像データ取得部１０２、ウォーターマーク生成部１０３、及び画像処理部１０４以外の機能は省略してもよい。
【図１】
2017130333.tif 000003
【図２】
2017130333.tif 000004
【図３】
2017130333.tif 000005
【図４】
2017130333.tif 000006
【図５】
2017130333.tif 000007
【図６】
2017130333.tif 000008
【図７】
2017130333.tif 000009
【図８】
2017130333.tif 000010
【図９】
2017130333.tif 000011
【図１０】
2017130333.tif 000012
【手続補正書】
【提出日】平成29年2月13日(2017.2.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像データを取得する画像データ取得手段と、
前記画像データ取得手段により取得された画像データの拡張子を取得する拡張子取得手段と、
前記拡張子取得手段により取得された拡張子に基づいて、生成するウォーターマークのサイズを決定し、複数サイズのウォーターマークを生成するウォーターマーク生成手段と、
前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された前記複数サイズのそれぞれのウォーターマークを埋め込む画像処理手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
画像データを取得する画像データ取得手段と、
前記画像データ取得手段により取得された画像データのデータサイズを取得するデータサイズ取得手段と、
前記データサイズ取得手段により取得されたデータサイズに基づいて、生成するウォーターマークのサイズを決定し、複数サイズのウォーターマークを生成するウォーターマーク生成手段と、
前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された前記複数サイズのそれぞれのウォーターマークを埋め込む画像処理手段と、
を含むことを特徴とする画像処理装置。
【請求項３】
画像データを取得する画像データ取得手段と、
複数サイズのウォーターマークを生成するウォーターマーク生成手段と、
前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された前記複数サイズのそれぞれのウォーターマークからなるウォーターマーク群を複数個埋め込む画像処理手段と、
を含むことを特徴とする画像処理装置。
【請求項４】
前記画像は、複数個の色チャンネルを有するカラー画像であり、
前記画像処理手段は、前記カラー画像の画素値に含まれる前記複数個の色チャンネルのそれぞれの数値を変化させることによって、前記複数個の色チャンネルのそれぞれに、前記複数サイズのそれぞれのウォーターマークを埋め込む、
ことを特徴とする請求項１〜３の何れかに記載の画像処理装置。
【請求項５】
前記画像処理手段は、前記複数個の色チャンネルのそれぞれに埋め込まれた前記ウォーターマークの一部又は全部が互いに重なるように、前記各サイズのウォーターマークを埋め込む、
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記画像処理装置は、ユーザによる前記画像データの要求を受け付ける要求受付手段を更に含み、
前記ウォーターマークは、前記画像データを要求した前記ユーザを識別するための情報を含み、
前記画像処理装置は、前記要求受付手段により要求を受け付けた前記ユーザに対して、前記画像処理手段により前記ウォーターマークが埋め込まれた前記画像データを提供する画像提供手段を更に含む、
ことを特徴とする請求項１〜５の何れかに記載の画像処理装置。
【請求項７】
前記ウォーターマークは、複数段階の誤り訂正レベルを有する二次元コードであり、
前記ウォーターマーク生成手段は、基準以上の誤り訂正レベルの前記二次元コードを、前記複数個のサイズごとに生成する、
ことを特徴とする請求項１〜６の何れかに記載の画像処理装置。
【請求項８】
前記画像処理手段は、前記画像の中央に近いほどサイズが小さくなるように、前記複数サイズのそれぞれのウォーターマークを埋め込む位置を決定する、
を更に含むことを特徴とする請求項１〜７の何れかに記載の画像処理装置。
【請求項９】
画像データを取得する画像データ取得ステップと、
前記画像データ取得ステップにより取得された画像データの拡張子を取得する拡張子取得ステップと、
前記拡張子取得ステップにより取得された拡張子に基づいて、生成するウォーターマークのサイズを決定し、複数サイズのウォーターマークを生成するウォーターマーク生成ステップと、
前記画像データ取得ステップにより取得された画像データが示す画像に、前記ウォーターマーク生成ステップにより生成された前記複数サイズのそれぞれのウォーターマークを埋め込む画像処理ステップと、
を含むことを特徴とする画像処理方法。
【請求項１０】
画像データを取得する画像データ取得ステップと、
前記画像データ取得ステップにより取得された画像データのデータサイズを取得するデータサイズ取得ステップと、
前記データサイズ取得ステップにより取得されたデータサイズに基づいて、生成するウォーターマークのサイズを決定し、複数サイズのウォーターマークを生成するウォーターマーク生成ステップと、
前記画像データ取得ステップにより取得された画像データが示す画像に、前記ウォーターマーク生成ステップにより生成された前記複数サイズのそれぞれのウォーターマークを埋め込む画像処理ステップと、
を含むことを特徴とする画像処理方法。
【請求項１１】
画像データを取得する画像データ取得ステップと、
複数サイズのウォーターマークを生成するウォーターマーク生成ステップと、
前記画像データ取得ステップにより取得された画像データが示す画像に、前記ウォーターマーク生成ステップにより生成された前記複数サイズのそれぞれのウォーターマークからなるウォーターマーク群を複数個埋め込む画像処理ステップと、
を含むことを特徴とする画像処理方法。
【請求項１２】
画像データを取得する画像データ取得手段、
前記画像データ取得手段により取得された画像データの拡張子を取得する拡張子取得手段、
前記拡張子取得手段により取得された拡張子に基づいて、生成するウォーターマークのサイズを決定し、複数サイズのウォーターマークを生成するウォーターマーク生成手段、
前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された前記複数サイズのそれぞれのウォーターマークを埋め込む画像処理手段、
としてコンピュータを機能させるためのプログラム。
【請求項１３】
画像データを取得する画像データ取得手段、
前記画像データ取得手段により取得された画像データのデータサイズを取得するデータサイズ取得手段、
前記データサイズ取得手段により取得されたデータサイズに基づいて、生成するウォーターマークのサイズを決定し、複数サイズのウォーターマークを生成するウォーターマーク生成手段、
前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された前記複数サイズのそれぞれのウォーターマークを埋め込む画像処理手段、
としてコンピュータを機能させるためのプログラム。
【請求項１４】
画像データを取得する画像データ取得手段、
複数サイズのウォーターマークを生成するウォーターマーク生成手段、
前記画像データ取得手段により取得された画像データが示す画像に、前記ウォーターマーク生成手段により生成された前記複数サイズのそれぞれのウォーターマークからなるウォーターマーク群を複数個埋め込む画像処理手段、
としてコンピュータを機能させるためのプログラム。
【国際調査報告】
2017130333.tif 000013
2017130333.tif 000014
2017130333.tif 000015