(57)【特許請求の範囲】
【請求項１】
付加情報が埋め込まれた印刷物を撮像することにより前記印刷物に対応する撮像データが取得された場合、前記印刷物に対応する前記撮像データから、前記印刷物に埋め込まれた前記付加情報を取得する取得手段と、
前記取得手段により取得された前記付加情報に含まれる識別情報に基づいて、所定のデータを取得するデータ取得手段と、
前記取得手段により取得された前記付加情報に含まれる前記印刷物が存在することを示す情報に基づいて、前記付加情報が取得された後に取得された撮像データに前記印刷物が含まれているか否かを判定する判定手段と、
前記判定手段により前記撮像データに前記印刷物が含まれていると判定された場合、前記データ取得手段により取得された前記所定のデータに基づいて前記撮像データへの合成処理を実行する合成手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記データ取得手段は、前記識別情報により識別される動画像データを取得し、
前記合成手段は、前記データ取得手段により取得された前記動画像データを前記撮像データに合成する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記データ取得手段は、前記識別情報により識別される３Ｄオブジェクトデータを取得し、
前記合成手段は、前記データ取得手段により取得された前記３Ｄオブジェクトデータを前記撮像データに合成する、
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記撮像データにおける前記印刷物が撮像されている領域を特定する特定手段、をさらに備え、
前記合成手段は、前記特定手段により特定された前記領域に基づいて、前記データ取得手段により取得された前記所定のデータを合成する、
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記印刷物には、前記付加情報が誤差拡散法により埋め込まれており、
前記取得手段は、前記撮像データに対して複数種類の空間フィルタを適用し、当該適用の結果から前記付加情報が多重化されていた量子化条件を特定し、当該特定された量子化条件に対応する値に基づいて前記付加情報を取得する、
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記取得手段は、前記取得された前記撮像データに対してブロック単位で、前記付加情報が多重化されていた量子化条件を特定し、当該特定された量子化条件に対応する値に基づいて前記付加情報を取得することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記情報処理装置は、撮像部を備える携帯端末であり、
前記撮像部が前記印刷物を撮像することにより前記印刷物に対応する前記撮像データが取得される、
ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記データ取得手段は、前記識別情報によりオブジェクトデータを取得し、
前記合成手段は、前記データ取得手段により取得された前記オブジェクトデータに基づいて前記撮像データに合成されるオブジェクトを生成することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
情報処理装置において実行される情報処理方法であって、
付加情報が埋め込まれた印刷物を撮像することにより前記印刷物に対応する撮像データが取得された場合、前記印刷物に対応する前記撮像データから、前記印刷物に埋め込まれた前記付加情報を取得する取得工程と、
前記取得工程において取得された前記付加情報に含まれる識別情報に基づいて、所定のデータを取得するデータ取得工程と、
前記取得工程において取得された前記付加情報に含まれる前記印刷物が存在することを示す情報に基づいて、前記付加情報が取得された後に取得された撮像データに前記印刷物が含まれているか否かを判定する判定工程と、
前記判定工程において前記撮像データに前記印刷物が含まれていると判定された場合、前記データ取得工程において取得された前記所定のデータに基づいて前記撮像データへの合成処理を実行する合成工程と、
を有することを特徴とする情報処理方法。
【請求項１０】
請求項１乃至８のいずれか１項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、付加情報を多重化する情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年ではＡＲ（Augmented Reality）の技術を用いたコンテンツやアトラクションが普及している。ＡＲとは拡張現実の事であり、現実環境に情報を付加することにより拡張した世界を体験させる技術である。特許文献１には、マーカー認識処理装置の撮影部により撮影される、三次元位置認識のためのマーカーとＱＲコードを含む撮影画像から、ＱＲコードを検出する。三次元画像を表示させつつ閲覧サイトにアクセスできる、という技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１９００８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図１７は、ＡＲ技術を用いた効果画像処理の他の例を説明するための図である。印刷物１７０１には写真部１７０５と共にコード部１７０６が印刷されている。ユーザはアプリケーション上で、スマートフォン１７０２のカメラにより印刷物のコード部１７０６を撮像する。アプリケーションは、撮像されたコードを解析し、ダウンロード情報を得る。ダウンロード情報より、ネットワークを介して指定のサーバへ接続し、サーバから画像の特徴量を得る。その後、ユーザは、印刷物１７０１の写真部１７０５を撮像することにより、スマートフォンのディスプレイ１７０３上ではあたかも印刷物１７０１の写真が動いているかのようなユーザ体験を得ることができる。
【０００５】
この構成では、図１７に示すように、コード部１７０６のスペースが必要である。コード部１７０６の存在は、写真鑑賞の観点から、ユーザにとって好ましくない印象を与えてしまうと考えられる。また、コード部１７０６を撮像し、写真部１７０５を撮像するという２アクションが必要であり、ユーザの操作負荷が大きくなるおそれがあった。
【０００６】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、撮像画像に特殊効果を与える構成においてユーザの利便性を向上させる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る情報処理装置は、付加情報が埋め込まれた印刷物を撮像することにより前記印刷物に対応する撮像データが取得された場合、前記印刷物に対応する前記撮像データから、前記印刷物に埋め込まれた前記付加情報を取得する取得手段と、前記取得手段により取得された前記付加情報に含まれる識別情報に基づいて、所定のデータを取得するデータ取得手段と、前記取得手段により取得された前記付加情報に含まれる前記印刷物が存在することを示す情報に基づいて、前記付加情報が取得された後に取得された撮像データに前記印刷物が含まれているか否かを判定する判定手段と、前記判定手段により前記撮像データに前記印刷物が含まれていると判定された場合、前記データ取得手段により取得された前記所定のデータに基づいて前記撮像データへの合成処理を実行する合成手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、撮像画像に特殊効果を与える構成においてユーザの利便性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理システムの構成を示すブロック図である。
【図２】付加情報多重化装置の構成を示すブロック図である。
【図３】誤差拡散処理部の構成を示すブロック図である。
【図４】量子化条件制御部の処理を示すフローチャートである。
【図５】多重化領域を説明するための図である。
【図６】量子化条件Ａ、Ｂを説明するための図である。
【図７】付加情報分離部の構成を示すブロック図である。
【図８】撮影画像を示す図である。
【図９】空間フィルタを示す図である。
【図１０】二次元の周波数領域を示す図である。
【図１１】間引き部から判定部までの処理を示すフローチャートである。
【図１２】間引き方法を説明するための図である。
【図１３】間引き方法を説明するための図である。
【図１４】印刷物が連続的に撮影される場合を示す図である。
【図１５】図１４の場合の処理を示すフローチャートである。
【図１６Ａ】ＡＲ技術を用いた効果画像処理を説明するための図である。
【図１６Ｂ】ＡＲ技術を用いた効果画像処理を説明するための図である。
【図１７】ＡＲ技術を用いた効果画像処理を説明するための図である。
【図１８】情報多重化された印刷物の生成処理を示すフローチャートである。
【図１９】情報多重化された印刷物の読取処理を示すフローチャートである。
【図２０】印刷物を示す図である。
【図２１】情報多重化された印刷物の生成処理を示すフローチャートである。
【図２２】情報多重化された印刷物の読取処理を示すフローチャートである。
【図２３】画像処理装置とカメラ付携帯端末のブロック構成を示す図である。
【図２４Ａ】３Ｄオブジェクト処理の実行結果を示す図である。
【図２４Ｂ】３Ｄオブジェクト処理の実行結果を示す図である。
【図２５】他の３Ｄオブジェクトを表示させた様子を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１１】
［第１の実施形態］
図１は、画像処理システムの構成を示すブロック図である。本実施形態における画像処理システムは、画像処理装置１１５とカメラ付携帯端末１０４とを含む。画像処理装置１１５は、印刷機能を有する装置であり、例えば、ＭＦＰ（多機能型印刷装置）やＳＦＰ（単機能型印刷装置）である。カメラ付携帯端末１０４は、例えば、カメラ付携帯電話、カメラ付スマートフォンやタブレットＰＣ、スマートグラスやスマートウォッチなどのウェアラブル端末である。
【００１２】
本実施形態では、画像処理装置１１５は、付加情報が多重化された印刷物１１２を印刷する。そして、カメラ付携帯端末１０４は、撮像センサ１０５（カメラ）により、印刷物１１２を撮像する。本実施形態では、画像処理装置１１５とカメラ付携帯端末１０４との間は、有線ネットワークや無線ネットワークで相互に通信可能であっても良いし、ネットワーク等を介して通信可能に接続されていなくても良い。
【００１３】
画像処理装置１１５は、付加情報を印刷物１１２に埋め込む付加情報多重化部１０２を含み、カメラ付携帯端末１０４は、多重化された付加情報を印刷物から読み取る付加情報分離部１０６を含む。付加情報多重化部１０２は、例えば、プリント部１０３（プリンタエンジン）へ出力すべき画像情報を作成するプリンタドライバソフトウエア、もしくは、アプリケーションソフトウエアとして実現される。また、複写機、ファクシミリ、プリンタ本体等にハードウエア及びソフトウエアとして内蔵される形態で実現されても良い。付加情報多重化部１０２とプリント部１０３は別のデバイスに搭載されていても良い。例えば、スマートフォンのアプリケーションに付加情報多重化部が実装されており、出力である多重化画像を別デバイスであるプリンタへ送り、該プリンタで印刷を行っても良い。付加情報多重化部１０２とプリント部１０３は別のデバイスで実現される場合、プリント部１０３は、例えば、インクジェットプリンタ、レーザプリンタ等のプリンタである。他の例として、デジタルスチールカメラで撮影した画像を、無線ネットワークを介してスマートフォンやＰＣなどの別デバイスへ送る。スマートフォンやＰＣ内に付加情報多重化部を備えておき、該画像を多重化しても良い。また、付加情報分離部１０６は、例えば、デジタルスチールカメラで撮影した画像から付加情報を分離する内部のアプリケーションソフトウエアやハードウエアで実現されても良い。
【００１４】
［付加情報の埋込みのための構成］
入力端子１００からは、多階調の画像情報が入力され、入力端子１０１からは、画像情報の中に埋め込むべき必要な付加情報が入力される。この付加情報は、入力端子１００に入力される画像情報とは別の情報、例えば音声情報や動画情報、テキスト文書情報、３Ｄオブジェクトデータなどが挙げられる。また、付加情報は、入力端子１００に入力される画像に関する特徴量情報、著作権、撮影日時、撮影場所、撮影者等の諸情報、全く別の画像情報等であっても良い。加えて、上述の情報が格納されているＵＲＬなど、例えばサーバのアドレス情報であっても良い。
【００１５】
本実施形態では、入力端子１００に入力される画像情報の画像の特徴量情報および該画像の関連動画が存在するＵＲＬが、埋め込むべき付加情報として入力端子１０１に入力される。画像の特徴量情報とは、前述したように、カメラ付携帯端末１０４のカメラで撮像した画像内に特定画像が存在するか否か、また、存在する場合には、その位置や角度、大きさなどをリアルタイムで特定するための情報である。例えば、該画像のエッジやエッジのコーナー情報、ベクトル、色、形などが挙げられ、公知の局所特徴量の検出方法などを用いて得ることができる情報である。
【００１６】
付加情報多重化部１０２は、視覚的に判別しづらいように、画像情報中に付加情報を埋め込む（多重化する）。付加情報多重化部１０２は、付加情報の多重化とともに、入力した多階調の画像情報の量子化も行う。つまり、付加情報多重化部１０２は、画像に画像の特徴量（特定画像が存在するか否か、また、存在する場合には、特定画像の位置や角度、大きさなどをリアルタイムで特定するための情報）を画像に付加情報として多重化する。なお、付加情報多重化部１０２は、特徴量を取得可能な情報（ＵＲＬ）を画像に付加情報として多重化しても良い。
【００１７】
プリント部１０３は、付加情報多重化部１０２で作成された情報を記録媒体に印刷するプリンタエンジンである。つまり、プリンタ部は、付加情報が多重化された画像を記録媒体に記録する。
【００１８】
図２３（ａ）は、画像処理装置１１５のブロック構成を示す図である。ＣＰＵ２１１は、画像処理装置１１５の内部を統括的に制御するプロセッサである。図１の付加情報多重化部１０２は、例えば、ＣＰＵ２１１により実現される。ＲＯＭ２１２やＨＤＤ２３０１は、画像処理装置１１５の基本プログラムや制御プログラム、各種アプリケーションやデータ等を記憶する。例えば、ＣＰＵ２１１は、ＲＯＭ２１２に記憶されたプログラムをＲＡＭ２１３に読み出して実行することにより、各実施形態の動作を実現する。ＲＡＭ２１３は、ＣＰＵ２１１のワーキングメモリとしても用いられる。
【００１９】
ネットワークインタフェース（ＮＷ  Ｉ／Ｆ）２３０２は、例えば、有線や無線等、ネットワークの形態に応じた構成を有する。また、通信範囲が異なる複数種類の無線ネットワークにも対応可能であり、例えば、通信距離が数ｃｍといった近距離無線通信（ＮＦＣ：Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）により、カメラ付携帯端末１０４と通信することも可能である。
【００２０】
ディスプレイ１１４は、ユーザに各設定画面やプレビュー画面等を表示する。操作部２３０３は、例えば、キーボードやタッチパネル等を有し、ユーザからの操作指示を受付可能である。
【００２１】
デバイスＩ／Ｆ２３０４は、プリント部２３０５（プリントエンジン）やスキャン部２３０６と、システムバス２３０８とを接続する。図１では、プリント部２３０５が示されているが、画像処理装置１１５の実行可能な機能に応じて、ＦＡＸ等、他のブロックがデバイスＩ／Ｆ２３０４に接続されても良い。
【００２２】
画像処理部２３０７は、外部やスキャン部２３０６等から取得したデータに対して、用途に応じた画像処理を実行する。例えば、画像処理部２３０７は、プリント部２３０５の記録方式に応じた色空間変換や二値化処理、画像の拡大／縮小／回転、といった処理を実行する。
【００２３】
図１に示す各ブロックは、システムバス２３０８を介して相互に通信可能に接続される。図１に示す構成以外の構成であっても良く、例えば、システムバス２３０８とイメージデータバスとがバスブリッジを介して接続される。その場合には、例えば、デバイスＩ／Ｆ２３０４がイメージデータバスに接続される。
【００２４】
図１の入力端子１００は、例えば、ネットワークＩ／Ｆ２３０２から入力される構成を示し、また、入力端子１０１は、例えば、ネットワークＩ／Ｆ２３０２や操作部２３０３から入力される構成を示す。
【００２５】
［付加情報の読取りのための構成］
図１のカメラ付携帯端末１０４上で実行される読取アプリケーションは、撮像センサ１０５を用いて読み取られた印刷物１１２上の情報を取得する。読取アプリケーションは、付加情報分離部１０６を用いて分離された印刷物１１２中に埋め込まれた付加情報を出力端子１０７に出力する。この出力端子１０７は、取得した付加情報を出力するインタフェースであり、例えば音声情報は、カメラ付携帯端末１０４のスピーカ１０８へ出力され、画像情報は、ディスプレイ１０９へ出力される。また、外部デバイスへデータを出力するインタフェースに、付加情報が出力されても良い。また、カメラ付携帯端末１０４に複数の撮像センサがある場合、印刷物１１２の撮影は、第二撮像センサ１１１により行われても良い。本実施形態では、付加情報分離部１０６により、印刷物１１２に埋め込まれた、入力端子１００に入力された画像の特徴量情報および該画像の関連動画が存在するＵＲＬの情報、が取得される。
【００２６】
図２３（ｂ）は、カメラ付携帯端末１０４のブロック構成を示す図である。カメラ付携帯端末１０４は、ＣＰＵやＲＯＭやＲＡＭといった、汎用的な情報処理装置の構成を含む。ＣＰＵ２３１０は、カメラ付携帯端末１０４の内部を統括的に制御するプロセッサである。図１の付加情報分離部１０６は、例えば、ＣＰＵ２３１０により実現される。ＲＯＭ２３１１は、カメラ付携帯端末１０４の基本プログラムや制御プログラム、各種アプリケーションやデータ等を記憶する。例えば、ＣＰＵ２３１０は、ＲＯＭ２３１１に記憶されたプログラムをＲＡＭ２３１２に読み出して実行することにより、各実施形態の動作を実現する。ＲＡＭ２３１２は、ＣＰＵ２３１０のワーキングメモリとしても用いられる。
【００２７】
ネットワーク通信部１１３は、例えば、有線や無線等、ネットワークの形態に応じた構成を有する。また、通信範囲が異なる複数種類の無線ネットワークにも対応可能であり、例えば、通信距離が数ｃｍといった近距離無線通信（ＮＦＣ：Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）により、画像処理装置１１５と通信することも可能である。
【００２８】
ディスプレイ１０９は、ユーザに各設定画面やプレビュー画面等を表示する。操作部２３１３は、例えば、タッチセンサーやハードキー等を有し、ユーザからの操作指示を受付可能である。加速度センサ１１０は、カメラ付携帯端末１０４の姿勢を検出する。図２３（ｂ）に示す各ブロックは、システムバス２３１４を介して相互に通信可能に接続されている。
【００２９】
［印刷物の生成処理］
次に、情報多重化された印刷物の生成の詳細について説明する。
【００３０】
図１８は、本実施形態において付加情報が埋め込まれた印刷物の生成処理を示すフローチャートである。ここでは、印刷された写真などの画像に対してＡＲ技術を用いた特殊効果画像処理が行われることを目的としている。ここで、特出効果画像処理とは、例えば、撮像された静止画像データに対して動画像データを合成して画像に動画効果を与えることである。なお、撮像することで得られたデータを、単に撮像データと呼ぶこともある。また、例えば、撮像された静止画像データに対して３Ｄオブジェクトデータを合成して画像に３Ｄ効果を与えることである。３Ｄオブジェクトデータについては、第２の実施形態において説明する。図１８の処理は、例えば、画像処理装置１１５のＣＰＵ２１１がＲＯＭ２１２に記憶されているプログラムをＲＡＭ２１３に読み出して実行することにより実現される。
【００３１】
Ｓ１８０１では、画像処理装置１１５の情報多重化印刷アプリケーション(以下、印刷アプリケーション)がユーザ指示により起動する。なお、本実施形態では、付加情報多重化部１０２、プリント部１０３、ディスプレイ１１４が一体化された画像処理装置１１５を用いて説明をしているため、印刷アプリケーションも画像処理装置１１５にて動作する。一方、上述したように、例えば、スマートフォンが付加情報多重化部１０２を備え、プリンタがプリント部１０３を備える形態も考えられる。この場合、図１８の処理はスマートフォン（携帯端末）により実行される処理となる。Ｓ１８０２では、印刷アプリケーションは、印刷対象となる動画像の選択を受け付ける。例えば、ユーザは、ポインティングデバイスやキーボードの入力装置、あるいは、タッチディスプレイ上でのタッチ操作により対象となる動画像を選択する。動画像の選択においては、例えば、端末内に保存している動画像ファイルがプレビュー表示され、ユーザによる選択が行われる。尚、動画像は、ネットワーク上の動画像やメモリカードなど、ストレージ内に保存している動画像であっても良い。
【００３２】
Ｓ１８０３では、印刷アプリケーションは、Ｓ１８０２で選択された動画像中の任意のフレームを１つ選択する。フレームの選択においては、例えば、動画像を再生し、一時停止やコマ送り、スライドバーによる再生フレームの選択など、ユーザがフレームを見ながら選択することで実現される。他に、アプリケーションが一意に先頭フレームを選択しても良いし、動画像を解析し、公知の顔検出、表情評価、ブレ・ボケ評価、構図評価などの技術から配点し、最適なフレームが選択される方法によって行われても良い。
【００３３】
Ｓ１８０４では、印刷アプリケーションは、Ｓ１８０３で選択されたフレームの切出しを行う。切出しとは、フレームを１枚の静止画として取得することである。例えば、アプリケーションは、動画像のWidth×Height[Pixel]分のメモリを確保し、そのメモリに前述のフレームのＲＧＢ値を書き込む。メモリは、Width×Height×３[Byte]の容量を含む。ここで、３Ｂｙｔｅとは、ＲＧＢの各要素に対応し、Ｒで８[bit]（１[Byte]）、Ｇで８[bit]、Ｂで８[bit]が必要であることを意味する。このようにして、８[bit]×３の２４[bit]のビットマップ画像が完成する。以下、これを切り出されたフレーム（あるいは画像）と呼ぶ。そして、本実施形態では、この切り出された画像が図１に示す入力端子１００に入力される画像情報となり、印刷物１１２についての可視情報となる。本実施形態では、ビットマップ画像は、ｓＲＧＢ色空間の画像とする。そのため、動画像の色空間がｓＲＧＢでない場合には、公知の色空間変換技術を用いてｓＲＧＢへの変換が行われる。また、他にプリンタが対応している色空間がある場合には、その色空間への変換が行われても良い。
【００３４】
Ｓ１８０５では、印刷アプリケーションは、動画像ファイルのサーバへの登録を行う。印刷アプリケーションは、外部のサーバとの間で通信を行い、Ｓ１８０２で選択された動画像に対応する動画像ファイルをアップロードする。ここで、サーバとは、カメラ付携帯端末１０４の読取アプリケーションがアクセスし、動画像ファイルをダウンロード可能なサーバである。サーバは、情報多重化印刷用および読み取りの専用サーバでも良いし、任意の動画共有サービスを行っているサイトのサーバでも良い。但し、任意の動画共有サービスを使用する場合、その動画像を公開したくない場合、視聴の制限ができないサービスはサービス候補から除外する必要がある。本実施形態では、上記の専用サーバを用いた構成として説明する。
【００３５】
専用サーバは、アップロードされた動画像ファイルに一意のＩＤ（識別情報）を付けて識別可能に管理する。サーバは、そのＩＤ、あるいは、そのＩＤから作成した暗号をクライアント側である画像処理装置の印刷アプリケーションへと返す。暗号は、専用サーバ内でＩＤが割り出せる方式であれば良く、例えば、サーバ内で一意にランダムな文字の羅列（長文）を作成したものでも良い。サーバ内では、ＩＤと長文とを対応したテーブルを持ち、テーブルを参照することにより長文からＩＤを検索可能である。長文にするのは、できるだけ長い文字の羅列である方がハッキングなどの攻撃に強いためである。尚、この長文自身をＩＤとしても良く、本実施形態では、長文自身をＩＤであるとして説明する。また、印刷物に情報多重化で埋込み可能な容量から、文字の長さを決定し、クライアントである画像処理装置の印刷アプリケーションがサーバへ通知することで、サーバは最大限に長い文字列を発行することが可能となる。
【００３６】
Ｓ１８０６では、印刷アプリケーションは、特徴量の作成を行う。画像の特徴量情報とは、前述したように、カメラ付携帯端末１０４のカメラで撮像した画像内に特定画像が存在するか否か、また、存在する場合にはその位置や角度、大きさなどをリアルタイムで特定するための情報である。例えば、画像のエッジやエッジのコーナー情報、ベクトル、色、形などが挙げられ、公知の局所特徴量の検出方法などを用いて得ることができる情報である。ここでは、Ｓ１８０４で動画像から切り出された画像に対して局所特徴量を算出し、これが特徴量情報とされる。特徴量は、数値や文字のテキスト情報でも良いし、数値のバイナリでもよい。また、ベクトルや座標などでも良い。また、圧縮されるようにしても良い。これにより、多重化で埋め込む容量を低減することができる。
【００３７】
なお、後で、切り出された画像は印刷され、印刷物１１２が作成される。後述するカメラ付携帯端末１０４の読取アプリケーションは、その印刷物１１２をカメラで撮像し、撮像映像にＳ１８０４で動画から切り出された画像があるかを、特徴量を用いて探索する。
【００３８】
ここで、印刷とカメラ撮像との間では、切り出された画像の色味、濃淡、解像度などが、切り出された状態から変化している可能性がある。例えば、プリンタやカメラでは、出力結果の見栄えが良くなるよう、彩度やコントラストを強調する機器が一般的に普及している。また、プリンタによっては、ＣＭＹＫなどの色材の構成ではｓＲＧＢなどの入力画像の色空間の再現ができない場合がある。その場合は、入力画像とは異なる色が出力されることになる。反対に、ｓＲＧＢなどの入力画像の色空間より広い範囲の色を再現可能なプリンタであれば、入力画像の色空間を超えた色を出力する機種もある。カメラについても、光源や距離などの撮影条件で色や解像度が変化する。そのため、印刷やカメラ撮像における変化を考慮して、切り出された画像に解像度変換、輝度や色の補正などを行った画像に対して、特徴量算出を行うようにしても良い。これにより、所定の条件下で読取アプリケーションでの探索の精度を向上させることができる。
【００３９】
Ｓ１８０７では、印刷アプリケーションは、付加情報を入力する。本実施形態における付加情報は、Ｓ１８０６で算出した特徴量情報、および、Ｓ１８０５でアップロードされた動画像ファイルに付加されたＩＤである。前述したように、上記の専用サーバがＩＤを発行する。専用サーバを用いて本実施形態を実現する場合、読み取りアプリケーションが専用サーバへのアクセス情報を保持しておけば良い。そのため、該サーバのＵＲＬやＩＰアドレスを多重化情報として埋め込まなくても良い。このように専用サーバを用いれば、多重化情報として埋め込む容量を減らす事が可能である。Ｓ１８０５で動画共有サービスのサーバへ動画像ファイルをアップロードする構成の場合には、カメラ付携帯端末１０４の読取アプリケーションが動画像ファイルをダウンロードやストリーミングによって再生できる情報が付加情報となる。その情報とは、例えば、サイトのユーザ名やパスワードなどのログイン情報、動画像ファイルのＵＲＬやＩＤである。従って、これらの情報が付加情報として、図１の入力端子１０１を介して付加情報多重化部１０２へ入力される。
【００４０】
又は、これらの情報を他の管理サーバに記憶しておき、そのサーバがＩＤで情報を管理するようにしても良い。読取アプリケーションが、上記の管理サーバにアクセスしてＩＤを送信すると、管理サーバは、前述のログイン情報やＵＲＬなどを返す構成とする。これにより、管理サーバはログイン情報やＵＲＬなど、動画像ファイルに比べて容量の少ない文字情報のみ管理すれば良く、ストレージ容量や通信回線の能力などを抑えることができる。この場合、上記の管理サーバで記憶されるＩＤが付加情報に含まれる。
【００４１】
Ｓ１８０８では、印刷アプリケーションは、付加情報多重化を行う。図１の付加情報多重化部１０２は、前述の画像情報と付加情報とを用いて多重化画像を作成する。本実施形態において、多重化画像は、多重化処理および誤差拡散による特有のハーフトーン後の画像である。多重化情報の埋め込み方法についての詳細は後述する。
【００４２】
尚、本実施形態では、誤差拡散で多重化情報を埋め込む。しかし、ＲＧＢなどの多値画像をＬ＊ａ＊ｂ＊やＹＣＣなどの色空間に変換し、画素毎に各要素（Ｌ＊ａ＊ｂ＊色空間ならＬ＊やａ＊やｂ＊など）への加算、減算を行うことで多重化を行うようにしても良い。この場合、加算、減算を行った画像を、プリンタが入力として対応する色空間へと変換し、通常の色補正、色分解、ガンマ補正、ハーフトーンなどを行い、印刷すれば良い。プリンタが入力として対応する色空間とは、例えばｓＲＧＢ色空間やＣＭＹＫ色空間などである。また、ＲＧＢ画像の各要素（Ｒ、Ｇ、Ｂ）に対して加算、減算を行っても良い。
【００４３】
読み取りの際、上述したＬ＊ａ＊ｂ＊やＹＣＣなど、変換した色空間と同じ色空間に変換して解析する事により、多重化情報を読み出すことができる。このように、多重化により情報を埋め込まれた印刷物は、人間の目には情報を埋め込まれていない通常の印刷物のように見える。その理由を説明する。ハーフトーンや画像データの画素の単位、あるいはそれに近い周波数に信号が埋め込まれる。通常の観察距離においてその周波数は人間の目には感知しにくい周波数であるため、認識し難い。そのため、本実施形態では、この多重化情報や信号を、不可視情報と呼ぶ。反対に、バーコードやＱＲコードなどの２次元コード、人間が見て信号(データ)がある事が認識しやすい情報を可視情報と呼ぶ。
【００４４】
尚、不可視情報を画像に埋め込む別の方法として、特殊な色材を用いてバーコードや２次元コード等を印刷し、印刷物に紫外線などの特殊な光線を当てた場合に読み取り可能となる仕組みを用いても良い。また、不可視光線を返す色材で上記同様にコード等を印刷し、不可視光線を感知可能なカメラを用いて読み取りを行っても良い。
【００４５】
Ｓ１８０９では、印刷アプリケーションは、印刷を行う。具体的には、印刷アプリケーションは、Ｓ１８０８で作成された多重化画像をプリント部１０３へ送信することで、印刷が行われる。その結果、印刷用紙（記録媒体）に情報多重化された画像が印刷された印刷物１１２が出力される。即ち、印刷物１１２は、可視情報である画像と、不可視情報である付加情報の両方を含む記録媒体であるといえる。なお、印刷アプリケーションがスマートフォン等で実施される形態の場合、Ｓ１８０９の処理は、印刷アプリケーションの指示に従い、スマートフォンからプリンタへ印刷データを送信する処理に相当する。
【００４６】
［印刷物の読取処理］
図１９は、Ｓ１８０９で出力された情報多重化された印刷物１１２を読み取るアプリケーションの処理を示すフローチャートである。図１９の処理は、例えば、カメラ付携帯端末１０４のＣＰＵ２３１０がＲＯＭ２３１１に記憶されているプログラムをＲＡＭ２３１２に読み出して実行することにより実現される。
【００４７】
Ｓ１９０１では、情報多重化読取アプリケーション（以下、読取アプリケーション）が、ユーザ指示により起動する。なお、読取アプリケーションは、カメラ付携帯端末において動作する。
【００４８】
Ｓ１９０２では、読取アプリケーションが、カメラ付携帯端末１０４に搭載されたカメラに撮像を指示する。読取アプリケーションは、カメラ付携帯端末１０４のカメラ機能により撮像されている映像をディスプレイ１０９に表示する。ユーザは、カメラがどこを映しているのかをディスプレイ１０９で確認しながら、印刷物１１２を撮像する。ここでは、ディスプレイ１０９内に、撮像対象の印刷物１１２が含まれるように撮像されるものとする。この間、撮像センサ１０５は、１秒間に３０回などの単位で、撮像された画像を取得し続ける。この撮像は、読取アプリケーションの終了まで繰り返し続けられる。
【００４９】
尚、必ずしも取得した画像の全てが、後続するＳ１９０３で使用されなくても良い。例えば、１秒に１回など予め定められた間隔で取得された画像を使用するようにしても良いし、カメラ付携帯端末１０４の性能や状態に応じてその間隔が変更されても良い。性能とは、ＣＰＵやＧＰＵの処理速度、メモリ容量、メモリ転送の速度、カメラの感度や画素数、カメラモジュールの処理速度、あるいはＯＳによる機能制限などが挙げられる。状態とは、バッテリー残量や充電中か否か、他のアプリプロセスやＯＳなどの影響、使用出来るＣＰＵコア数やメモリ量、ＧＰＵコア数などが挙げられる。また、画像のブレやボケの評価機能を用いて、例えば１秒間などの一定時間の内、評価値が高い画像を使用するなどしても良い。本実施形態では、取得した画像は、ＲＧＢそれぞれ８[bit]の２４[bit]画像とする。
【００５０】
Ｓ１９０３では、読取アプリケーションは、多重化された付加情報の取出しを行う。付加情報分離部１０６は、Ｓ１９０２で撮像センサ１０５から取得した画像から付加情報を分離し、付加情報を取り出す。ここで、付加情報は、Ｓ１８０７で入力され、Ｓ１８０８で多重化された特徴量情報およびＩＤである。また、任意の動画共有サービスのサーバへ動画像ファイルをアップロードする構成の場合は、対象動画像ファイルにアクセスして再生できる情報が付加情報となっている。付加情報の分離についての詳細は後述する。付加情報の取出しができるまで、Ｓ１９０２でのカメラでの撮像とＳ１９０３での付加情報の取出しとが繰り返し行われる。付加情報の取出しが完了すると、読取アプリケーションは、ディスプレイ１０９への表示やスピーカ１０８から音を発するなどして、読取りに成功したことをユーザがわかるように通知する。
【００５１】
Ｓ１９０４では、読取アプリケーションは、動画像の取得を行う（データ取得動作）。読取アプリケーションは、外部のネットワークを介して、Ｓ１８０５で動画像ファイルがアップロードにより登録された専用サーバにアクセスする。そして、専用サーバに、Ｓ１９０３で取り出した付加情報に含まれるＩＤを送信する。専用サーバは、ＩＤを受け取ると、ＩＤで識別される動画像ファイルを、読取アプリケーションからダウンロード可能な状態になるよう処理する。例えば、専用サーバは、一定時間のみ使用可能なＵＲＬを発行し、そのＵＲＬをカメラ付携帯端末１０４の読取アプリケーションに送信する。ここで、そのＵＲＬの宛先は、本対象の動画像ファイルである。使用時間を一定時間にするのは、第三者のハッキングによる動画像ファイルへの不適切なアクセスを防ぐためである。
【００５２】
任意の動画共有サービスのサーバへ動画像ファイルをアップロードする構成の場合は、読取アプリケーションは、付加情報から取り出したＵＲＬやログイン情報などを用いて、対象動画ファイルにアクセスする。
【００５３】
このようにして、読取アプリケーションは、動画像ファイルのダウンロードやストリーミングにより、動画像の再生を開始可能な状態とする。後述する動画像の再生は、読取アプリケーションがカメラ付携帯端末１０４のＯＳの機能を用いるか、読取アプリケーション自身が搭載する公知のコーデックを用いることで実行される。
【００５４】
Ｓ１９０５では、読取アプリケーションは、Ｓ１９０２により撮像されている映像の特徴量を算出する。読取アプリケーションは、Ｓ１９０２から繰り返し行われているカメラでの撮像操作により、ＲＧＢ画像を逐次取得する。読取アプリケーションは、取得したＲＧＢ画像に対してＳ１８０６での特徴量作成と同じ処理を実行し、Ｓ１９０２により撮像されている映像に関するＲＧＢ画像の特徴量を作成する。
【００５５】
Ｓ１９０６では、読取アプリケーションは、特徴量の比較を行う。読取アプリケーションは、Ｓ１９０３で付加情報として取り出した特徴量情報と、Ｓ１９０５で作成した撮像画像の特徴量とを比較し、撮像画像内に印刷物に印刷された対象の画像が存在するか否かを判定する。これをマッチングと呼ぶ。また、Ｓ１９０６では、対象の画像が存在する場合、撮像画像内の座標位置、角度、大きさが取得される。これは、三次元空間上の位置や角度などの状態を取得する事になる。特徴量の比較の結果、撮像画像内に対象の印刷物が存在しないと判定された場合、読取アプリケーションの処理はＳ１９０５に戻り、新たにＲＧＢ画像を取得し、そのＲＧＢ画像の特徴量を作成する。一方、撮像画像内に対象の印刷物が存在すると判定された場合、読取アプリケーションの処理はＳ１９０７へ進む。
【００５６】
Ｓ１９０７では、読取アプリケーションは、フレームへの合成を行う。読取アプリケーションは、Ｓ１９０４で再生が開始可能な状態の動画像ファイルに基づいて動画像の再生を開始する。その際、読取アプリケーションは、動画像のフレームを取得し、Ｓ１９０６で取得した角度、大きさに応じて、動画像のフレームを変形する。そして、Ｓ１９０６で取得したＲＧＢ画像上のフレームに載せるように上書き合成する。この時、合成する位置は、１９０６で取得した座標位置である。そして、読取アプリケーションは、Ｓ１９０７で得られた合成画像を、ディスプレイ１０９に描画する。
【００５７】
Ｓ１９０８では、読取アプリケーションは、動画像の再生が終了したか否かを判定する。動画像の再生が終了していないと判定された場合、Ｓ１９０５からの処理を繰り返す。２回目以降のＳ１９０７では、前回再生した動画像のフレームに後続するフレームを取得して処理を行う。
【００５８】
以上により、ユーザはディスプレイ１０９を見ると、あたかも印刷物上の画像が動いているように見えるという体験ができる。その結果例を図１６に表している。図１６Ａにおいて、ユーザはスマートフォン１６０２のカメラ機能を使い、印刷物１６０１を含むように撮像する。すると、ディスプレイ１６０３には印刷物１６０１の切り出し元の動画が領域１６０４に再生され、あたかも印刷物１６０１の画像が動いているかのように見える。
【００５９】
また、図１６Ｂは印刷物１６０１を図１６Ａよりも下の位置から撮像した場合を示している。下側から撮像しているため、ディスプレイ１６０３には印刷物１６０１は１６０６のように変形して見える。この際、１６０６には動画の各フレームを同じ形、大きさに変形し、向きも合わせて合成して再生される。そのため、スマートフォンや印刷物の位置を変えると、それに合わせて動画再生領域１６０６も変化するため、ユーザはより印刷物上の画像が動いているかのように感じる。
【００６０】
尚、後続のフレーム再生までの時間に、Ｓ１９０５からＳ１９０８までの処理が間に合わなければ、数フレームをスキップし、間隔を空けて再生しても良い。これにより、性能が低いカメラ付き形態端末においても上記体験を実現することが可能となる。
【００６１】
本実施形態では、画像の特徴量が多重化情報として印刷物そのものに埋め込まれるので、画像の印刷物を撮像する場合、類似画像による誤作動が生じにくいという効果がある。
【００６２】
また、本実施形態では、画像の特徴量を取り出せるような情報を多重化情報として印刷物に埋め込むため、アプリケーションが予め画像の特徴量を持つ必要がない。そのため、少数の画像のための専用アプリケーションにならず、不特定多数の画像に汎用的に使える印刷アプリケーションおよび読取アプリケーションを提供することが可能となる。加えて、多重化情報を読み取る事で再生するコンテンツが決まるため、どのような特徴量を使用するか、ユーザに選ばせる必要もない。そのため操作性が向上する。
【００６３】
上記では、ディスプレイ１０９内に印刷物１１２を含むように撮像されるものとして説明した。しかしながら、図１４に示すように、印刷物１１２がディスプレイ１０９内に収まらないサイズである場合もある。
【００６４】
図１５は、印刷物１１２がディスプレイ１０９内に収まらないサイズである場合の処理を示すフローチャートである。図１５の処理は、例えば、カメラ付携帯端末１０４のＣＰＵ２３１０がＲＯＭ２３１１に記憶されているプログラムをＲＡＭ２３１２に読み出して実行することにより実現される。
【００６５】
Ｓ１５０１では、図１４に示すように、ユーザは、カメラ付携帯端末１０４を印刷物１１２上で所定方向に移動させながら、ショット間で映像が重複するように複数回ショットを繰り返す。ユーザは、さらに、上記操作を所定方向と交差する方向に複数回、繰り返す。その結果、読取アプリケーションは、印刷物１１２を構成する複数の画像を取得する。
【００６６】
Ｓ１５０２では、読取アプリケーションは、Ｓ１５０１で取得された複数の画像を合成およびディスプレイ１０９の表示領域に応じた縮小処理を行う。合成においては、複数のショット間の重複部分の画像に基づいて合成が行われる。Ｓ１５０３では、Ｓ１９０３と同様の付加情報の取出しが行われ、Ｓ１５０４では、Ｓ１９０４〜Ｓ１９０８と同様の動画（コンテンツ）の再生が行われる。
【００６７】
［付加情報の埋込み処理］
次に、多重化情報として印刷物に付加情報を埋め込む処理を説明する。尚、下記は本実施形態の一例であり、情報を埋め込む方法は以下に説明する方法に限定されない。また、印刷を対象に説明を行うが、これに限らず、ＲＧＢ画像データに多重化情報を埋め込み、ディスプレイ１１４に表示するなどの構成でも同様の効果が得られる。
【００６８】
図２は、図１の付加情報多重化部１０２の構成を示すブロック図である。誤差拡散処理部２００は、入力端子１００に入力された画像情報に誤差拡散法を用いた疑似階調処理を行うことによって、入力階調数よりも少ない量子化レベルに変換し、複数画素の量子化値により、面積的に階調性を表現する。誤差拡散処理についての詳細は後述する。
【００６９】
ブロック化部２０１は、入力端子１００に入力された画像情報を所定領域（ブロック）単位に区分する。ブロック化部２０１により行われるブロック化は、矩形に区分されても良いし、矩形以外の領域に区分されても良い。
【００７０】
量子化条件制御部２０２は、ブロック化部２０１にてブロック化された領域単位で、量子化条件を変更するように制御する。また、量子化条件制御部２０２は、入力端子１０１に入力された付加情報に基づき、ブロック単位で量子化条件を変更する。制御部２１０は、ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３を含む、例えばチップ等で構成した制御部である。ＣＰＵ２１１は、ＲＯＭ２１２に保持された制御プログラムに従って、上述した各構成の動作及び処理を制御する。
【００７１】
図３は、誤差拡散処理部２００の構成を示すブロック図である。本実施形態では、量子化値が二値である誤差拡散処理を例にして説明する。加算器３００は、入力端子１０１に入力された画像情報の注目画素値と、既に二値化された周辺画素の分配された量子化誤差とを加算する。比較部３０１は、量子化条件制御部２０２からの量子化閾値と、加算器３００の加算結果とを比較し、所定の閾値よりも大きい場合には"１"を、それ以外は"０"を出力する。８ビットの精度で画素の階調を表現する場合、例えば、最大値である"２５５"と最小値である"０"が出力される。
【００７２】
ここで、量子化値が"１"の時に、記録媒体上にドット（インク、トナー等）が記録されると仮定する。減算器３０２は、量子化結果と上記の加算結果との誤差を算出し、誤差配分演算部３０３は、以降の量子化処理が施される周辺画素に誤差を配分する。誤差の配分割合は、注目画素との相対的な距離に基づいて設定された誤差の配分テーブル３０４に予め保持されており、誤差配分演算部３０３は、配分テーブル３０４に保持された配分割合に基づいて誤差を周辺画素に分配する。図３の配分テーブル３０４は、周囲４画素分の配分テーブルを示しているが、これに限られない。
【００７３】
次に、量子化条件制御部２０２を含む全体の処理について、図４のフローチャートを参照しながら説明する。量子化値は二値である例について説明する。図４の処理は、例えば、画像処理装置１１５のＣＰＵ２１１がＲＯＭ２１２に記憶されているプログラムをＲＡＭ２１３に読み出して実行することにより実現される。
【００７４】
Ｓ４０１では、ＣＰＵ２１１は、ＲＡＭ２１３に確保された変数ｉを初期化する。ここで、変数ｉは、垂直方向のアドレスをカウントする変数である。Ｓ４０２では、ＣＰＵ２１１は、ＲＡＭ２１３に確保された変数ｊを初期化する。ここで、変数ｊは、水平方向のアドレスをカウントする変数である。続いて、Ｓ４０３では、ＣＰＵ２１１は、現在の処理アドレスである座標（ｉ，ｊ）が多重化処理を実行すべき領域に属しているか否かを判定する。
【００７５】
図５を参照しながら、多重化領域について説明する。図５は、水平画素数がWIDTH、垂直画素数がHEIGHTから成る、一つの画像を示している。ここで、この画像中に付加情報を多重化するとする。画像の左上を原点として、横Ｎ画素、縦Ｍ画素でブロック化が行われる。本実施形態では、原点を基準点としてブロック化が行われるが、原点から離れた点を基準点として設定するようにしても良い。この画像中に最大限の情報を多重化するために、Ｎ×Ｍのブロックを基準点から配置していく。即ち、水平方向に配置可能なブロック数をＷ、垂直方向に配置可能なブロック数をＨとすると、ＷとＨは、式（１）及び（２）から算出される。
【００７６】
Ｗ  ＝  ＩＮＴ（ＷＩＤＴＨ／Ｎ）  ・・・（１）
Ｈ  ＝  ＩＮＴ（ＨＥＩＧＨＴ／Ｍ）  ・・・（２）
但し、ＩＮＴ（）は（）内の整数部分を示す。
【００７７】
式（１）、式（２）において割り切れない剰余画素数が、Ｎ×Ｍのブロックを複数配置した時の端部に相当し、本実施形態では、その部分を符号多重化領域外とする。
【００７８】
図４のＳ４０３では、現在処理している注目画素が多重化領域内でない、即ち、多重化領域外であると判定された場合には、Ｓ４０４において、ＣＰＵ２１１は、量子化条件Ｃを設定する。一方、多重化領域内であると判定された場合には、Ｓ４０５において、ＣＰＵ２１１は、多重化すべき付加情報を読み込む。ここで、説明を容易にする為に、付加情報は、ｃｏｄｅ［］という配列を用いて、各１ビットずつ表現されるものとする。例えば、付加情報を４８ビット分の情報と仮定すると、配列ｃｏｄｅ［］には、ｃｏｄｅ［０］からｃｏｄｅ［４７］まで、各１ビットずつが格納されている。
【００７９】
Ｓ４０５において、ＣＰＵ２１１は、ＲＡＭ２１３に確保された変数ｂｉｔに、式（３）のように、配列ｃｏｄｅ［］内の情報を代入する。
【００８０】
ｂｉｔ  ＝  ｃｏｄｅ［ＩＮＴ（ｉ／Ｍ）×Ｗ＋ＩＮＴ（ｊ／Ｎ）］・・・（３）
Ｓ４０６では、ＣＰＵ２１１は、代入された変数ｂｉｔが"１"であるか否かを判定する。前述したように、配列ｃｏｄｅ［］内の情報は各１ビットずつ格納されている為、変数ｂｉｔの値も"０"か"１"かの何れかを示すことになる。
【００８１】
ここで、"０"であると判定された場合には、Ｓ４０７において、ＣＰＵ２１１は、量子化条件Ａを設定し、"１"であると判定された場合には、Ｓ４０８において、ＣＰＵ２１１は、量子化条件Ｂを設定する。
【００８２】
次に、Ｓ４０９では、ＣＰＵ２１１は、Ｓ４０４、Ｓ４０７、Ｓ４０８で設定された量子化条件に基づいて量子化処理を行う。この量子化処理は、図３で説明した誤差拡散法により行われる。
【００８３】
Ｓ４１０では、ＣＰＵ２１１は、水平方向変数ｊをカウントアップして、Ｓ４１１において、画像の水平画素数であるWIDTH未満か否かを判定する。ここで、WIDTH未満であると判定された場合、Ｓ４０３からの処理を繰り返す。一方、WIDTH未満でないと判定された場合、即ち、水平方向の処理がWIDTH画素数分終了した場合、Ｓ４１２において、ＣＰＵ２１１は、垂直方向変数ｉをカウントアップする。そして、Ｓ４１３において、ＣＰＵ２１１は、画像の垂直画素数であるHEIGHT未満か否かを判定する。ここで、HEIGHT未満であると判定された場合、Ｓ４０２からの処理を繰り返す。一方、HEIGHT未満でないと判定された場合、即ち、垂直方向の処理がHEIGHT画素数分終了した場合、図４の処理を終了する。以上の処理により、Ｎ×Ｍ画素よりなるブロック単位で、量子化条件を変更する。
【００８４】
次に、量子化条件Ａ、Ｂ、Ｃの例について説明する。誤差拡散法における量子化条件には様々な因子があるが、本実施形態において量子化条件の因子は、量子化閾値である。Ｓ４０４で設定される量子化条件Ｃは、多重化領域外で用いられる為に、量子化閾値はどのような条件でも良い。前述したように、１画素が８ビットによる階調表現で、量子化レベルが２値の場合には、最大値である"２５５"、及び、最小値である"０"が量子化代表値となるが、その中間値となる"１２８"が量子化閾値として設定されることが多い。よって、本実施形態では、量子化条件Ｃは、量子化閾値を"１２８"固定値とする条件とする。
【００８５】
Ｓ４０７で設定される量子化条件Ａと、Ｓ４０８で設定される量子化条件Ｂは、多重化領域内のブロックで用いられる為、量子化条件の違いによる画質の違いを生じさせる必要がある。但し、画質の違いは視覚的には判別しにくいように表現し、かつ、紙上から容易に識別可能である必要がある。
【００８６】
図６（ａ）及び（ｂ）は、量子化条件Ａ、Ｂを説明するための図である。図６（ａ）は、量子化条件Ａにおける量子化閾値の変化の周期を示す図である。図中、一つのマスを１画素分と想定し、白いマスは固定閾値、灰色のマスを変動閾値とする。即ち、図６（ａ）の例では、横８画素、縦４画素のマトリクスを組み、灰色のマスについてのみ突出した値を閾値として設定する。
【００８７】
図６（ｂ）は、同様に、量子化条件Ｂにおける量子化閾値の変化の周期を示した図である。図６（ｂ）の例では、図６（ａ）とは異なり、横４画素、縦８画素のマトリクスを組み、灰色のマスについてのみ突出した値を閾値として設定する。
【００８８】
前述したように１画素が８ビットの階調値の場合に、例えば、固定閾値として"１２８"、突出した閾値を"１０"と設定する。量子化閾値が低くなると、注目画素の量子化値が"１"（量子化代表値"２５５"）になりやすくなる。即ち、図６（ａ）、（ｂ）ともに、図中の灰色のマスの並びで量子化値"１"が並びやすくなる。言い換えると、Ｎ×Ｍ画素のブロック毎に、図６（ａ）の灰色のマスの並びでドットが発生するブロックと、図６（ｂ）の灰色のマスの並びでドットが発生するブロックとが混在することになる。
【００８９】
誤差拡散法における量子化閾値の多少の変更は、画質的には大きな影響を及ぼさない。組織的ディザ法においては、使用するディザパターンによって、階調表現の画質が大きく左右される。しかしながら、前述したような、規則的に量子化閾値の変化を与えた誤差拡散法では、あくまでも画質を決定する階調表現は誤差拡散法であるので、ドットの並びが多少変化したり、テクスチャの発生が変化したり等は、階調表現の画質には殆ど影響を与えない。量子化閾値が変化した場合でも、あくまでも信号値と量子化値との差分となる誤差は周囲画素に拡散されるので、入力された信号値は、マクロ的に保存される。即ち、誤差拡散法におけるドットの並び、テクスチャの発生に関しては、冗長性が極めて大きいといえる。
【００９０】
上記の説明のように、本実施形態では、誤差拡散法の量子化閾値に、符号を表す所定の周期性を重畳することにより、多重化を実現している。しかしながら、他の重畳方式により多重化を実現しても良い。例えば、直接ＲＧＢの値（輝度情報）に、周期性を重畳する方式により多重化を実現しても良い。または、ＲＧＢの値を、輝度−色差情報など、他の色空間情報（例えばＣＩＥ  Ｌ＊ａ＊ｂ、ＹＣｒＣｂ信号）に分離して周期性を重畳する方式により多重化を実現しても良い。または、ＲＧＢの値をインク色（例えばＣＭＹＫ信号）に分離して周期性を重畳する方式により多重化を実現しても良い。
【００９１】
入力された画像情報が白(8bitのRGB信号値で表すとR=255, G=255, B=255)や黒(0, 0, 0)、ＲＥＤ(255, 0, 0)、ＧＲＥＥＮ(0, 255, 0)、ＢＬＵＥ(0, 0, 255)など、色域の表面やそれに近い部分では、上記の方法で色材を加算あるいは減算が出来なかったり、効果が少ない場合がある。例えば、通常、印刷物で白を表す場合は用紙の白そのものを使い、色材を用いない。その場合、色材の減算はできない。こういった場合に備えて、多重化処理の前に予め画像の色域のダイナミックレンジを小さくする処理を入れても良い。ダイナミックレンジを小さくするとは、白(255, 255, 255)の色を少し暗く(例えば、250, 250, 250)、黒(0, 0, 0)を少し明るく(例えば、5,5,5)し、その間を例えば均等になるように調整するなどである。同様に、ＲＥＤの彩度を少し下げる(250, 0, 0)などし、色域を少し小さくする。望ましくは、後述の読み取り処理を行う機器で差が判別でき、人間の目には色域が小さくなった影響が分かり難い程度が良い。このようにして色域に増減できる余裕をもたせることにより、色域の表面付近においても、色材の加算、減算が可能となる。
【００９２】
［付加情報の読取処理］
次に、図１の画像処理システムにおける付加情報分離部１０６の処理について説明する。図７は、付加情報分離部１０６の構成を示すブロック図である。説明を容易にする為に、前述の付加情報多重化部１０２の場合と同様、分割したブロック内に各１ビットずつの付加情報が多重化されている印刷物１１２から、付加情報を分離する例について説明する。当然のことながら、付加情報多重化部１０２における１ブロックあたりの付加情報量と、付加情報分離部１０６における１ブロックあたりの分離情報量とは等しくなる。
【００９３】
入力端子７００には、カメラ付携帯端末１０４で読み込まれた画像情報が入力される。ここで、カメラ付携帯端末１０４の撮像センサ１０５の解像度（撮像解像度）は、印刷物１１２を作成する際の印刷解像度以上が好ましい。勿論のことながら、正確に印刷物１１２のドットの点在情報を読み込む為には、サンプリング定理により、撮像センサ１０５側は、プリンタ側よりも２倍以上の解像度が必要になる。しかしながら、同等以上であれば、正確でなくとも、ある程度ドットが点在しているのを判別することが可能である。本実施形態では、説明を容易にするためにプリンタ解像度と撮像センサ１０５の解像度とは同一解像度であるとする。
【００９４】
幾何学的ずれ検出部７０１は、カメラ付携帯端末１０４で撮影した画像の幾何学的ずれを検出する。入力端子７００から送信される画像情報は、プリント部１０３による出力、カメラ付携帯端末１０４による撮影を経ている為に、プリンタ出力以前の画像情報とは幾何学的にずれている場合がある。そこで、幾何学的ずれ検出部７０１は、印刷物１１２と、印刷物１１２以外との境界線をエッジ検出にて検出する。
【００９５】
図８は、撮影画像の一例を示す図である。印刷解像度と撮像センサ１０５の解像度とが同一解像度であれば、プリント部１０３の紙上記録時の斜行、及び、カメラ付携帯端末１０４を印刷物１１２にかざす時のずれ等により、画像の回転方向（傾き）が補正すべき大きな要因となる。そのため、印刷物１１２の境界線を検出することにより、どの程度、回転方向でずれが生じているかを判定する。
【００９６】
ブロック化部７０２は、横Ｐ画素、縦Ｑ画素単位にブロック化を行う。ここで、各ブロックは、電子透かしの重畳時にブロック化したＮ×Ｍ画素よりも小さい。即ち、式（４）の関係が成り立つ。
【００９７】
Ｐ≦Ｎ、かつ  Ｑ≦Ｍ …（４）
また、Ｐ×Ｑ画素単位のブロック化は、ある一定間隔毎にスキップして行われる。即ち、多重化時のＮ×Ｍ画素より成るブロックと想定される領域内に、Ｐ×Ｑ画素単位のブロックが一つ内包されるようにブロック化が行われる。スキップ画素数は、水平Ｎ画素分、垂直Ｍ画素分が基本となるが、幾何学的ずれ検出部７０１により検出されたずれ量をブロック数で割り出された１ブロックあたりのずれ量とスキップ画素数とに基づいて補正が行われる。
【００９８】
空間フィルタ７０３、７０４は、それぞれ特性の異なる空間フィルタＡ、Ｂを示し、フィルタリング部７０５は、周辺画素との積和を演算するディジタルフィルタリング部を示す。この空間フィルタの各係数は、多重化時の量子化条件の変動閾値の周期に対応して設定される。ここで、付加情報多重化部１０２における量子化条件の変更が図６（ａ）及び（ｂ）の２種類の周期性を用いて行われることにより、付加情報が多重化されたとする。その場合の付加情報分離部１０６に用いる空間フィルタＡ７０３、空間フィルタＢ７０４の例を、図９（ａ）及び（ｂ）に示す。図９（ａ）及び（ｂ）中、５×５画素の中央部が注目画素になり、それ以外の２４画素分が周辺画素になる。図９（ａ）及び（ｂ）中、空白部の画素は、フィルタ係数が"０"であることを表す。図９から明らかなように、図９（ａ）及び（ｂ）は、エッジ強調フィルタになっている。しかも、その強調するエッジの方向性と多重化した時の変動閾値の方向性とが図９（ａ）及び（ｂ）と図６（ａ）及び（ｂ）とで一致している。つまり、図９（ａ）は図６（ａ）に一致し、また、図９（ｂ）は図６（ｂ）に一致するように、空間フィルタが作成される。
【００９９】
間引き部７０６、７０７は、それぞれ、Ｐ×Ｑ画素により成るブロック内のフィルタリング後の信号（以下、変換値という）を、ある規則性に基づいて間引き処理する。本実施形態では、周期性と位相のそれぞれの規則性に分離して間引き処理を行う。即ち、間引き部７０６及び７０７では間引きの周期性が互いに異なっていて、それぞれにおいて、位相を変化させた複数の間引き処理を実行する。間引き方法については後述する。
【０１００】
変換値加算部７０８は、間引き部７０６及び７０７により間引きされた変換値を、位相毎にそれぞれ加算する。この間引き処理及び間引き画素の変換値の加算処理は、空間フィルタで強調した所定周波数ベクトルの電力（パワー）を抽出することに相当する。
【０１０１】
分散値算出部７０９は、それぞれの周期性において、位相毎に加算した複数の加算値の分散値を算出する。判定部７１０は、それぞれの周期性における分散値に基づいて、多重化された符号を判定する。
【０１０２】
図１０は、二次元の周波数領域を示す図である。横軸は水平方向の周波数、縦軸は垂直方向の周波数を示している。中心となる原点は直流成分を示し、原点から遠ざかるにつれて、高周波域となる。図１０中の円は、誤差拡散によるカットオフ周波数を示している。誤差拡散法のフィルタ特性は、低周波域がカットオフされたＨＰＦ（ハイパスフィルタ）の特性を示し、そのカットオフされる周波数は、対象画像の濃度に応じて変化する。
【０１０３】
本実施形態では、量子化閾値の変更により量子化後に発生する周波数特性が変化するが、図６（ａ）による量子化閾値の変更では、図１０の周波数ベクトルＡ上に大きなパワースペクトルが生じる。また、図６（ｂ）による量子化閾値の変更では、図１０の周波数ベクトルＢ上に大きなパワースペクトルが生じる。付加情報分離時には、この大きなパワースペクトルが発生する周波数ベクトルを検出することに基づいて、多重化信号の判定が行われる。本実施形態では、各々の周波数ベクトルを個別に強調、抽出することが行われる。
【０１０４】
図９（ａ）及び（ｂ）は、特定の周波数ベクトルの方向性を有するＨＰＦに相当する。即ち、図９（ａ）の空間フィルタでは、図１０の直線Ａ上の周波数ベクトルを強調することが可能になり、また、図９（ｂ）の空間フィルタでは、図１０の直線Ｂ上の周波数ベクトルを強調することが可能になる。例えば、図６（ａ）に示すような量子化条件の変更により、図１０の直線Ａの周波数ベクトル上に大きなパワースペクトルが発生したとする。その時に、図９（ａ）の空間フィルタではパワースペクトルの変化量が増幅するが、図９（ｂ）の空間フィルタでは、ほとんど増幅されない。つまり、複数の空間フィルタを並列にフィルタリングした場合に、周波数ベクトルが一致した空間フィルタ時のみ増幅し、それ以外のフィルタによるフィルタリングの場合には増幅がほとんどない。従って、いかなる周波数ベクトル上に大きなパワースペクトルが発生しているかを容易に判定することができる。
【０１０５】
図１１は、図７の間引き部７０６及び７０７、変換値加算部７０８、分散値算出部７０９、判定部７１０の処理を示すフローチャートである。図１１の処理は、例えば、カメラ付携帯端末１０４のＣＰＵ２３１０がＲＯＭ２３１１に記憶されているプログラムをＲＡＭ２３１２に読み出して実行することにより実現される。
【０１０６】
図１１中、Ｓ１１０１及びＳ１１０２は、変数の初期化を示し、ＣＰＵ２３１０は、ＲＡＭ２３１２内に確保された変数ｉ、ｊの値を０に初期化する。
【０１０７】
Ｓ１１０３では、ＣＰＵ２３１０は、間引き部７０６及び７０７による間引きの規則性の因子、即ち、"周期性"及び"位相"の２因子を決定する。本フローチャートでは、周期性に関する変数をｉ、位相に関する変数をｊとする。この周期性及び位相の条件は、番号（ナンバー）により管理され、ここでは、周期性ナンバー（以下Ｎｏ．と略す）がｉ、位相Ｎｏ．がｊである間引き方法の因子を設定する。
【０１０８】
Ｓ１１０４では、ＣＰＵ２３１０は、ブロック内で間引きをした変換値を加算し、その加算値を変数の配列ＴＯＴＡＬ［ｉ］［ｊ］として記憶する。
【０１０９】
Ｓ１１０５では、ＣＰＵ２３１０は、変数ｊをカウントアップし、Ｓ１１０６において、固定値Ｊと比較する。Ｊには、位相を変化させて間引き処理をする回数が格納されている。ここで、変数ｊがＪ未満であれば、Ｓ１１０３に戻り、カウントアップ後のｊによる新たな位相Ｎｏ．により、間引き処理及び間引き画素の変換値の加算処理が繰り返される。
【０１１０】
位相をずらした間引き処理及び間引き画素の変換値の加算処理が設定回数終了した場合、Ｓ１１０７において、ＣＰＵ２３１０は、加算結果ＴＯＴＡＬ［ｉ］［ｊ］の分散値を算出する。即ち、各加算結果が位相の差によりどの程度ばらついているかが評価される。ここでは、ｉを固定して、Ｊ個のＴＯＴＡＬ［ｉ］［ｊ］の分散値を求める。ここで、分散値をＢ［ｉ］とする。
【０１１１】
Ｓ１１０８において、ＣＰＵ２３１０は、変数ｉをカウントアップし、Ｓ１１０９において、固定値Ｉと比較する。Ｉには、周期性を変化させて間引き処理をする回数が格納されている。ここで、変数ｉがＩ未満であれば、Ｓ１１０２に戻り、カウントアップ後のｉによる新たな周期性Ｎｏ．の条件を用いて、再び、間引き処理及び間引き画素の変換値の加算処理が繰り返される。
【０１１２】
Ｓ１１０９において、ＣＰＵ２１１は、ｉが設定回数終了したと判定されると、分散値Ｂ［ｉ］は、Ｉ個算出できたことになる。Ｓ１１１０にて、Ｉ個の分散値の集合から、分散値の最大値を検出し、その時のｉの値を変数ｉｍａｘに代入する。Ｓ１１１１において、ＣＰＵ２１１は、周期性Ｎｏ．がｉｍａｘである符号を、多重化された符号であると判定する。その後、図１１の処理を終了する。
【０１１３】
以下、Ｉ＝２、Ｊ＝４の例を説明する。図１２、図１３は、ブロックサイズをＰ＝Ｑ＝１６とした時の間引き方法を説明するための図であり、テーブル形式で示している。図１２及び図１３においては、ブロック内の一マスが一画素分を表している。図１２及び図１３では、ブロック形状をＰ＝Ｑの正方形としているが、正方形に限られず、また、矩形以外でも良い。
【０１１４】
図１２は、周期性Ｎｏ．＝０の場合の間引き方法（図７の間引き部Ａ７０６に相当）を示し、図１３は、周期性Ｎｏ．＝１の場合の間引き方法（図７の間引き部Ｂ７０７に相当）を示している。図中、ブロック内の各画素に示している値は、位相Ｎｏ．であるｊの間引き画素を示している。例えば"０"と表示している画素は、ｊ＝０の時の間引き画素に対応する。即ち、図１２、図１３ともに、位相は４種類であり、位相Ｎｏ．ｊが０〜３の場合の間引き方法に相当する。
【０１１５】
図１２の周期性は図６（ａ）の周期性に一致し、図１３の周期性は図６（ｂ）の周期性に一致している。前述したように、図６（ａ）及び（ｂ）ともに、図中の灰色のマスの並びで量子化値"１"（但し、"０"、"１"の２値の場合）が並びやすくなる。その為、例えば、多重化時に量子化条件Ａであったブロックの場合には、図６（ａ）の周期性で量子化値"１"が並びやすくなる。適合した空間フィルタを適用してフィルタリングが行われた場合には、更にその周波数成分が増幅され、図１２の周期性で変換値の間引き処理及び間引き画素の変換値の加算処理が行われると、その加算結果の分散値は大きくなる。
【０１１６】
それに比べて、量子化条件Ａであったブロックを、適合しない空間フィルタを適用してフィルタリングし、なおかつ、図１３の周期性により間引き処理及び間引き画素の変換値の加算処理が行われると、変換値の加算結果の分散値は小さくなる。これは、量子化値の周期性と間引きの周期性とが異なることから、間引きの位相の違いによる変換値の加算値は平均的になり、ばらつきが小さくなるからである。同様に、多重化時に量子化条件Ｂであったブロックについて、図１２の周期性で変換値の間引き処理及び間引き画素の変換値の加算処理が行われると、その加算結果の分散値は小さくなる。一方、その場合に、図１３の周期性で変換値の間引き処理及び間引き画素の変換値の加算処理が行われると、その加算結果の分散値は大きくなる。
【０１１７】
図４で説明したように、ｂｉｔ＝０を量子化条件Ａに設定し、ｂｉｔ＝１を量子化条件Ｂに設定している。その為、周期性Ｎｏ．＝０の分散値が大きいときには、ｂｉｔ＝０と判定することができ、周期性Ｎｏ．＝１の分散値が大きいときには、ｂｉｔ＝１と判定することができる。
【０１１８】
このように、量子化条件と、空間フィルタ特性と、間引き条件の周期性とを関連付けることで、多重化及び分離が容易に実現できる。本実施形態では、周期性Ｎｏ．は０と１の２種類であり、ブロック内の多重化符号は１ビットであった。しかしながら、多重化符号は、１ビットより多くても良い。当然に、量子化条件の種類と、空間フィルタの種類と、間引き条件の周期性Ｎｏ．の種類（Ｉの値）とは一致する。
【０１１９】
本実施形態によれば、直交変換による量子化条件の規則性に対応した周波数のパワーの比較をしなくても、多重化された符号を容易に分離できる。しかも、実空間領域の処理であるので、極めて高速に分離処理が実現できる。
【０１２０】
以上、本実施形態を説明してきたが、量子化条件Ａ及びＢ、空間フィルタＡ及びＢ、間引き部Ａ及びＢは一例であり、これに限られるものではない。他の周期性について行われても良いし、空間フィルタのタップ数、間引きのブロックサイズ等は、本実施形態での例よりも大きくても小さくても良い。
【０１２１】
また、図１１の処理では、説明上、周期性Ｎｏ．である変数ｉ、及び、位相Ｎｏ．である変数ｊの繰り返し処理を説明した。しかしながら、Ｐ×Ｑ画素よりなるブロック内の画素アドレスによる繰り返し処理により実現しても良い。即ち、図１２、図１３に示したように、ブロック内の各画素アドレスに対して周期性Ｎｏ．及び位相Ｎｏ．の２種の情報をテーブルとして予め格納しておき、対応した周期性Ｎｏ．及び位相Ｎｏ．の各々の変数に対して変換値を加算していく方法である。この方法では、Ｐ×Ｑ画素分を処理するだけで、周期性Ｎｏ．及び位相Ｎｏ．の各集合の加算値を並列に算出することができる。
【０１２２】
また、図１１の処理では、空間フィルタによるフィルタリング後の間引き画素の変換値の加算結果の分散値を算出して、分散値の大小比較により、符号を判定していたが、これに限られない。分散値を用いない評価関数の比較により判定されても良い。間引きした変換値の加算結果の偏りは、位相をずらした際に、一つの位相の時だけ値が突出しやすいため、"ばらつき度合い"が評価できれば良い。
【０１２３】
例えば、ばらつき度合いを評価するには、例えば、分散値以外に以下のような評価関数が用いられても良い。
【０１２４】
１．間引きした変換値を加算した加算値の最大値と最小値の差分。
【０１２５】
２．間引きした変換値を加算した加算値の最大値と２番目に大きな値との差分、もしくは、最小値と２番目に小さな値との差分のいずれか。
【０１２６】
３．間引きした変換値を加算した加算値によるヒストグラムを作成した時の、前後の順番の差分の最大値。
【０１２７】
また、上記３つの評価関数は絶対的な差分値であるが、これらの差分値と変換値、もしくは、画素値や変換値の総和等との相対的な比率を評価関数として用いても良い。また、量子化値は二値化を例にして説明したが、これに限られない。
【０１２８】
以上のように、本実施形態によれば、画像をＭ×Ｎ画素より成るブロック単位で量子化条件を変更し、その量子化条件に従って画像を量子化することにより画像に対して所定の付加情報を埋め込むことができる。よって、例えば直交変換をして情報を埋め込む方法に比べて、画質劣化を抑制し、かつ高速に、かつ埋め込まれた付加情報が精度よく抽出できるように、画像に対して付加情報を埋め込むことができる。
【０１２９】
また、本実施形態によれば、上記のように多重化情報（付加情報）を不可視で埋め込み、さらに、撮像して読み込むので、印刷物上にコード部を配置する必要がない。従って、写真鑑賞の観点で不必要と考えられるコード部の配置を避けることができる。加えて、印刷物のコード部を撮像してその後に写真部を撮像する、あるいは、どの特徴量を使用するかのユーザ操作後に写真部を撮像する、という２アクションのユーザの手間を必要としない。本実施形態では、印刷物の写真部のみを撮像する１アクションで実行できるので、ユーザ工数を低減し、利便性を向上させることができる。
【０１３０】
［第２の実施形態］
以下、本実施形態について、第１の実施形態と差異がある点についてのみ説明を行う。図２０は、本実施形態において、印刷アプリケーションにより出力した印刷物１１２を示す図である。用紙２００１にコード部２００２が印刷されている。第１の実施形態では、動画像から切り出した写真を印刷したが、本実施形態では、コードのみを印刷する。コード部２００２には、後述するように、多重化情報が埋め込まれている。ここで、コード部２００２は、特徴量作成時に固有の特徴が出るパターンの画像が望ましい。また、コード部２００２は、撮像の際に煽り（傾き）や回転が起きていても、特徴量を用いたマッチング時に、向きや大きさ、位置が分かるようなパターンの画像である。
【０１３１】
図２１は、情報多重化された印刷物の生成処理を示すフローチャートである。図２１の処理は、例えば、画像処理装置１１５のＣＰＵ２１１がＲＯＭ２１２に記憶されているプログラムをＲＡＭ２１３に読み出して実行することにより実現される。
【０１３２】
Ｓ２１０１では、Ｓ１８０１と同様、ＰＣあるいはスマートフォンなどの端末で印刷アプリケーションがユーザ指示により起動する。
【０１３３】
Ｓ２１０２では、３Ｄオブジェクトの選択が行われる。３Ｄオブジェクトとは、ＡＲ技術によって表示するオブジェクトであり、例えば、家具や家、自動車、洋服、人、動物、キャラクター、食べ物など、様々なコンテンツである。ユーザは、印刷アプリケーションに予め備えられているコンテンツや、ネットワークを使用してサーバにあるコンテンツを選択する。あるいは、選択の代わりに、ユーザ自身が作成した３Ｄオブジェクトを読み込んで取得するようにしても良い。３Ｄオブジェクトは、例えば、Ｗａｖｅｆｒｏｎｔ  ＯＢＪ（登録商標）、ＬＷＳ（登録商標）、３ＤＳ（登録商標）、ＶＲＭＬ（登録商標）など、公知の形式で座標や色、光源など、３Ｄオブジェクトを再生するための情報を有している。３Ｄオブジェクトのプレビューや説明文のリストがディスプレイに表示されると、ユーザは、任意のオブジェクトをポインティングデバイスやキーボードの入力装置、あるいはタッチ操作により選択する。
【０１３４】
Ｓ２１０３では、印刷アプリケーションは、コードを取得する。コードとは、図２０に示すコード部２００２のような二次元の画像情報である。印刷アプリケーションが複数のコードパターンを保持し、そこから選択するようにしても良い。また、コード部２００２は、印刷アプリケーション内で動的に作成されても良いし、ネットワークを介してサーバからダウンロードされても良い。また、ユーザが作成したコードを読み込んで取得するようにしても良い。また、コード部２００２は、バーコードでも良いし、ロゴやキャラクターが描画されていても良いし、白黒でもカラーでも良い。但し、前述したように、コード部２００２は、特徴量の作成時に固有の特徴が出るパターンの画像である。また、コード部２００２は、撮像の際に煽り（傾き）や回転が生じていても、特徴量を用いたマッチング時に向きや大きさ、位置が分かるようなパターンの画像である。
【０１３５】
Ｓ２１０４では、印刷アプリケーションは、特徴量を作成する。Ｓ２１０３で取得されたコードに対し、第１の実施形態のＳ１８０６と同様に、特徴量の作成が行われる。尚、コードの特徴量が他のアプリケーションやサーバにある場合、特徴量を作成する代わりに、他のアプリケーションやサーバにある該コードの特徴量を用いるようにしても良い。また、サーバへコードの画像を送り、サーバで特徴量を作成し、該特徴量を印刷アプリケーションがダウンロードしても良い。但し、後述する読取アプリケーションで使用する特徴量作成の方式と同じ方式でコードの特徴量を取得しておく必要がある。
【０１３６】
Ｓ２１０５では、印刷アプリケーションは、付加情報を取得する。本実施形態における付加情報は、Ｓ２１０４で作成された特徴量情報およびＳ２１０２で選択された３Ｄオブジェクト情報である。第１の実施形態のＳ１８０７と同様に、付加情報は、図１に示す入力端子１０１を介して付加情報多重化部１０２へ入力される。
【０１３７】
Ｓ２１０６では、印刷アプリケーションは、付加情報多重化を行う。第１の実施形態のＳ１８０８と同様に、図１の付加情報多重化部１０２は、コード部２００２の画像情報と付加情報とを用いて多重化画像を作成する。
【０１３８】
Ｓ２１０７では、印刷アプリケーションは、印刷を行う。第１の実施形態のＳ１８０８と同様に、多重化画像がプリント部１０３へ送られて印刷される。その結果、用紙２００１に情報多重化されたコード部２００２が印刷された印刷物１１２が出力される。
【０１３９】
本実施形態における印刷物１１２を図２０に示す。用紙２００１にはコード部２００２が印刷されており、コードのパターンを表している。そして、コード部２００２には、情報多重化が施されており、多重化信号が埋め込まれている。図２０では、白と黒の２色で表しているが、実際は、第１の実施形態で説明したような方式で多重化信号を埋め込むので、多色使用されている。尚、白や黒の部分に多重化信号を埋め込む方法は、第１の実施形態での説明と同じであるので、その説明を省略する。
【０１４０】
図２２は、Ｓ２１０７で出力された情報多重化された印刷物１１２を読み取る読取アプリケーションの処理を示すフローチャートである。図２２の処理は、例えば、カメラ付携帯端末１０４のＣＰＵ２３１０がＲＯＭ２３１１に記憶されたプログラムをＲＡＭ２３１２に読み出して実行することにより実現される。
【０１４１】
Ｓ２２０１では、ＰＣあるいはスマートフォンなどカメラを搭載したデバイス、あるいはカメラが接続されたデバイス上で、情報多重化読取アプリケーション（以下、読取アプリケーション）が、ユーザ指示により起動する。
【０１４２】
Ｓ２２０２では、カメラでの撮像が行われる。第１の実施形態のＳ１９０２と同様に、読取アプリケーションは、デバイスのカメラ機能により撮像された映像をディスプレイ１０９に表示する。ユーザは、カメラがどこを映しているのかをディスプレイ１０９で確認しながら印刷物１１２を含むように撮像する。この間、撮像センサ１０５は、１秒間に３０回などの単位で、撮像した画像を取得し続ける。この撮像動作は、読取処理終了まで繰り返される。ここで、取得した画像は、ＲＧＢそれぞれ８[bit]の２４[bit]画像データであるとする。
【０１４３】
Ｓ２２０３では、読取アプリケーションは、多重化された付加情報の取出しを行う。付加情報分離部１０６は、Ｓ２２０２で撮像センサ１０５から取得された画像から付加情報を分離し、付加情報を取り出す。ここで、付加情報は、Ｓ２１０５で入力端子１０１に入力されＳ２１０６で多重化された、特徴量情報および３Ｄオブジェクト情報である。Ｓ２２０２でのカメラでの撮像と、Ｓ２２０３での付加情報の取出しとは繰り返して行われる。付加情報の取出しが完了すると、読取アプリケーションは、ディスプレイ１０９に表示したり、スピーカ１０８から音を発するなどしてユーザに読取りが成功したことを通知する。
【０１４４】
Ｓ２２０４では、読取アプリケーションは、３Ｄモデルの再生準備を行う。ここで、再生準備とは、３Ｄモデルを立体物として表示させる環境を用意することである。読取アプリケーションは、例えば、ＣＵＤＡ（登録商標）やＯｐｅｎＧＬ（登録商標）やＯｐｅｎＧＬ  ＥＳ（登録商標）を用いて作成された３Ｄ再生プログラムを用意し、３Ｄオブジェクトデータ取得を可能な状態とする。そして、Ｓ２２０３で取り出された３Ｄオブジェクト情報に基づき、メモリの確保、３Ｄ再生プログラムの展開、ＧＰＵへのプログラム展開などの設定が行われる。これにより、３Ｄ再生用のＡＰＩに、座標や角度、距離や大きさなどを入力することにより、ディスプレイ１０９の任意の場所に３Ｄオブジェクトを表示させることが可能になる。
【０１４５】
Ｓ２２０５では、読取アプリケーションは、画像の特徴量を算出する。読取アプリケーションは、Ｓ２２０２から繰り返し行われているカメラでの撮像により、ＲＧＢ画像を逐次取得する。そして、読取アプリケーションは、そのＲＧＢ画像に対し、Ｓ２１０４での特徴量の作成と同じ処理を施し、ＲＧＢ画像の特徴量を作成する。
【０１４６】
Ｓ２２０６では、読取アプリケーションは、特徴量の比較を行う。読取アプリケーションは、Ｓ２２０３で取り出された特徴量情報と、Ｓ２２０５で作成された撮像画像の特徴量とを比較し、撮像画像内に印刷物に印刷された対象の画像、即ちコード部２００２が存在するか否かを判定する。ここで、撮像画像内に、プリント部１０３により印刷された対象の画像が存在すると判定された場合、その判定された画像の座標位置、角度、大きさを取得する。一方、比較の結果、撮像画像内に対象の印刷物が存在しないと判定された場合、読取アプリケーションの処理はＳ２２０５に戻り、新たにＲＧＢ画像を取得し、そのＲＧＢ画像の特徴量を作成する。撮像画像内に対象の画像が存在すると判定された場合、処理はＳ２２０７へ進む。Ｓ２２０６では、大きさ情報から、距離等、他の値が算出されても良い。
【０１４７】
Ｓ２２０７では、読取アプリケーションは、画像の合成を行う。Ｓ２２０６で取得された座標位置、角度、大きさに基づき、Ｓ２２０４で準備された３Ｄ再生の環境を用いて、Ｓ２２０２で撮像を開始して得た画像上に３Ｄオブジェクトを合成する。尚、合成は、ディスプレイ表示を行うＶＲＡＭ（不図示）上に、ＧＰＵの機能を用いて３Ｄオブジェクトを上書き(合成)することで行われる。尚、この合成処理は、例えば、ＣＰＵを用いてメモリ上で行いＶＲＡＭへ描画する方法で実現しても良い。３Ｄオブジェクトは、図２０のコード部２００２の上に３Ｄオブジェクトが乗り、コード部２００２の前方向に３Ｄオブジェクトの正面が向くように表示される。その結果、ディスプレイ１０９上では、カメラで撮像した映像上に３Ｄオブジェクトが表示されることになる。
【０１４８】
Ｓ２２０８では、読取アプリケーションは、３Ｄオブジェクトの表示の終了のユーザ操作が行われたか否かの判定を行う。例えば、ユーザ操作により、デバイスのホームボタンやキーボードのエスケープボタンが押下されたか否かが判定される。あるいは、ディスプレイ１０９上にユーザインタフェース（ＵＩ）を表示し、ＵＩの終了ボタンがタップやクリックされたか否かが判定される。終了のユーザ操作が行われたと判定された場合、Ｓ２２０２から開始していた撮像動作は終了し、読取アプリケーションの終了処理に進む。一方、終了のユーザ操作が行われなかったと判定された場合、処理はＳ２２０５に戻る。
【０１４９】
図２４は、上記の実行結果を表した図である。図２４Ａは印刷物２００１を床に置き、やや左からスマートフォン２４０２のカメラ機能を用いて撮像した場合の例である。コードが印刷された印刷物２００１を置くと、２４０１のような形に見える。スマートフォン２４０２で印刷物２４０１を含むようにやや左から撮像すると、印刷物２４０１はディスプレイ２４０３には２４０５のように表示される。そして、２４０５の位置、大きさ、角度より３Ｄオブジェクト２４０４が図のような位置、大きさ、角度で表示される。例えば、３Ｄオブジェクトを家具としたとき、部屋に置いたときの大きさや色合いなどがシミュレーションできる。やや左から撮像した結果、３Ｄオブジェクトの向かって左面が見えている。
【０１５０】
図２４Ｂは、図２４Ａの説明で床に置いた印刷物２４０１をやや右から撮像した場合の例である。上記と同様に、ディスプレイ２４０３には、印刷物２４０５の上に３Ｄオブジェクト２４０４が図のような位置、大きさ、角度で表示される。やや右から撮像した結果、３Ｄオブジェクトの向かって右面が見える。
【０１５１】
ここでは説明の便宜上、３Ｄオブジェクトは２４０５より小さい図となっているが、それに限らない。マッチングの対象画像が印刷された２４０５より大きく、表示上、２４０５が隠れてしまうような大きな３Ｄオブジェクトでも同様に実現可能である。
【０１５２】
以上のように、カメラで撮像した映像上に３Ｄオブジェクトが表示され、印刷物に対してカメラの向きや角度、距離を変えると、３Ｄオブジェクトもそれに合わせて向きや角度、大きさが変化して表示される。その結果、ユーザは、ディスプレイ１０９を見ると、あたかもその場に３Ｄオブジェクトがあるかのような映像をリアルタイムで得ることができる。
【０１５３】
図２５は、他の３Ｄオブジェクトを表示させた例である。２５０１は図２４Ａ及び図２４Ｂの２４０１と同様に多重化情報が埋め込まれたコード画像が印刷された印刷物である。ディスプレイ２５０３には、印刷物２５０１が２５０５のように映されており、その真上に浮かぶように３Ｄオブジェクト２５０４が表示される。これは、上述したようにマッチングの結果、２５０５が対象の画像領域であると判定され、該画像の位置、大きさ、角度に基づいて浮かんだように見える位置、大きさ、角度に３Ｄオブジェクト２５０４を合成することで実現される。浮かんだように見える位置は、２５０５の大きさのＮ％の距離など、予め定めておけば良い。
【０１５４】
このように、対象の画像領域にのみ３Ｄオブジェクトを表示させるのみではなく、対象の画像領域に基づいて、オブジェクトの位置を決めても良い。また、３Ｄオブジェクトは移動や変形しても良い。移動する際も、対象の画像領域の位置に基づいて移動すると、ユーザは拡張現実として認識しやすい。
【０１５５】
本実施形態では、ＡＲに必要な情報である特徴量と３Ｄオブジェクトのデータが印刷物そのものに埋め込まれている。そのため、ネットワークが使えない環境下でもＡＲの処理を行うことができる。また、そのような環境でも、少数のコンテンツのための専用アプリケーションではなく、不特定多数のコンテンツを汎用的に使える読取アプリケーションにより実現することができる。加えて、撮像する対象の印刷物の箇所は１つであるため、ユーザの撮像の手間が少なくて済むという効果もある。
【０１５６】
第１の実施形態では、動画から切出しを行った画像を印刷し、動画再生をＡＲの効果としていたが、これに限られない。その動画の関連静止画を印刷対象としたり、反対に画像に関連する動画を再生するようにしても良い。また、静止画と動画は関連していなくても良い。
【０１５７】
第２の実施形態では、ディスプレイ１０９上に３Ｄオブジェクトを出現させたが、この応用も考えられる。例えば、ネットワーク等の通信機能を用いて、ディスプレイ１０９上に出現させた３Ｄオブジェクトを画面としてテレビなどの動画を表示させたり、テレビ電話を実現するようにしても良い。３Ｄオブジェクトを画面とすれば、その上でＷｅｂブラウザやゲームなど、他のアプリケーションを表示することもできる。また、３Ｄオブジェクトは、静止物に限られず、動きや変形、変色などの効果が加わっても良い。例えば、３Ｄのアバターを表示し、会議などのコミュニケーションを行うようにしても良い。
【０１５８】
第１及び第２の実施形態では、画像の特徴量を多重化の際の付加情報として埋め込んだが、その限りではない。例えば、専用サーバに特徴量をアップロードしておき、それをダウンロード可能なＵＲＬを付加情報として多重化により印刷物に埋め込んでも良い。つまり、このＵＲＬは、特徴量を取得するための情報であり、それが不可視で埋め込まれていることになる。これにより、より大きな容量の特徴量を使用可能となる。
【０１５９】
また、ＡＲの効果画像処理は、動画再生や３Ｄオブジェクト出現に限られず、メッセージや音楽などの音声でも良い。また、これらのコンテンツはネットワーク上のものでも良いし、埋め込める容量に収まるのであれば、印刷物に多重化情報として埋め込むようにしても良い。これにより、ネットワークなどの通信を行う必要をなくすことができる。
【０１６０】
読取アプリケーションを動作させるデバイスのストレージ内に格納されているものであれば、それを動作させる指示をする命令を、多重化情報として埋め込み、読取アプリケーションでその命令を実行するようにしても良い。例えば、スマートフォン内の動画を指定して、第１の実施形態のように動画を再生しても良い。これにより、ネットワークなどの通信を行う必要をなくすことができ、且つ、印刷物に多重化情報として埋め込める容量以上のコンテンツを再生することができる。
【０１６１】
また、多重化情報として、これらのコンテンツの再生方法を記述するようにしても良い。例えば、第１の実施形態で示した動画の再生であるのか、第２の実施形態で示した３Ｄオブジェクトの再生であるのか、という情報である。従来は、これらは、それぞれ専用アプリケーションとして頒布されていた。しかしながら、このような構成によれば、１つの汎用アプリケーションで様々なコンテンツの再生が可能となり、ユーザは、多数のアプリケーションをダウンロードする必要がなくなる。よって、スマートフォンなどのデバイスのストレージ容量が圧迫されにくくなる。また、コンテンツによってアプリケーションを切り替えるユーザの手間を減らすことができる。
【０１６２】
また、第１および第２の実施形態では、カメラで撮像した映像をリアルタイムでディスプレイに表示し、動画像や３Ｄオブジェクトを合成したが、この限りではない。読み取り対象の画像を含むように静止画を撮影し、該静止画に対して動画像や３Ｄオブジェクトの合成を行い、ディスプレイに表示しても良い。これにより、カメラで撮影したリアルタイムの映像に合成する必要がなくなる。そのため、ＡＲ実行時にカメラ機能や特徴量作成、特徴量マッチングなどの処理を省く事ができ、性能が低い端末でも実行可能となる。
【０１６３】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１６４】
１０２  付加情報多重化部：  １０４  カメラ付携帯端末：  １０６  付加情報分離部：  １１５  画像処理装置
【図１】
0006577815.tif 000002
【図２】
0006577815.tif 000003
【図３】
0006577815.tif 000004
【図４】
0006577815.tif 000005
【図５】
0006577815.tif 000006
【図６】
0006577815.tif 000007
【図７】
0006577815.tif 000008
【図８】
0006577815.tif 000009
【図９】
0006577815.tif 000010
【図１０】
0006577815.tif 000011
【図１１】
0006577815.tif 000012
【図１２】
0006577815.tif 000013
【図１３】
0006577815.tif 000014
【図１４】
0006577815.tif 000015
【図１５】
0006577815.tif 000016
【図１６Ａ】
0006577815.tif 000017
【図１６Ｂ】
0006577815.tif 000018
【図１７】
0006577815.tif 000019
【図１８】
0006577815.tif 000020
【図１９】
0006577815.tif 000021
【図２０】
0006577815.tif 000022
【図２１】
0006577815.tif 000023
【図２２】
0006577815.tif 000024
【図２３】
0006577815.tif 000025
【図２４Ａ】
0006577815.tif 000026
【図２４Ｂ】
0006577815.tif 000027
【図２５】
0006577815.tif 000028