(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
H04N 1/32 20060101AFI20240219BHJP
【FI】
H04N1/32 144
(21)【出願番号】P 2019222001
(22)【出願日】2019-12-09
【審査請求日】2022-12-05
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】溝口 慶範
(72)【発明者】
【氏名】小川 広晃
(72)【発明者】
【氏名】後藤 文孝
(72)【発明者】
【氏名】酒井 洋行
(72)【発明者】
【氏名】山口 裕充
(72)【発明者】
【氏名】土井 司
(72)【発明者】
【氏名】佐々木 建
【審査官】花田 尚樹
(56)【参考文献】
【文献】特開2009-223835(JP,A)
【文献】特開2018-160176(JP,A)
【文献】特開2014-038429(JP,A)
【文献】特開2018-082285(JP,A)
【文献】特開2018-097483(JP,A)
【文献】国際公開第2013/111278(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/32 - 1/36
1/42 - 1/44
(57)【特許請求の範囲】
【請求項1】
撮像して解析することにより抽出可能な付加情報が埋め込まれた画像を生成するための画像処理装置であって、
画像内のオブジェクトを認識する認識手段と、
記憶手段に記憶された付加情報の中から、前記認識手段によって認識されたオブジェクトに
紐付けられた付加情報を選択する選択手段と、
前記選択手段によって選択された付加情報を埋め込む
埋め込み領域の少なくとも一部が、前記認識手段によって認識されたオブジェクトの領域と重畳するように、該付加情報をレイアウトするレイアウト手段と、
を有
し、
前記レイアウト手段は、複数のオブジェクトにそれぞれ対応する複数の埋め込み領域に付加情報をレイアウトする場合、前記複数の埋め込み領域が互いに重ならないように、前記複数の埋め込み領域の位置またはサイズを調整することを特徴とする画像処理装置。
【請求項2】
前記記憶手段には、前記認識手段
で認識されたオブジェクトと、付加情報とを紐付けるための紐付け情報が記憶されていることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記認識手段によって認識されたオブジェクトに紐付けられた付加情報が前記記憶手段に記憶されていない場合、前記選択手段による付加情報の選択は実行されないことを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記レイアウト手段は、複数のオブジェクトにそれぞれ対応する複数の埋め込み領域に付加情報をレイアウトする場合、前記複数のオブジェクトのそれぞれの中心位置を基準に決定した前記複数の埋め込み領域のそれぞれの位置を、前記複数の埋め込み領域が互いに重ならないように、互いに反対方向に移動することを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。
【請求項5】
前記レイアウト手段は、複数のオブジェクトにそれぞれ対応する複数の埋め込み領域に付加情報をレイアウトする場合、前記複数の埋め込み領域が互いに重ならないように、前記複数の埋め込み領域のサイズを調整することを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。
【請求項6】
前記認識手段によって認識されたオブジェクトに対応する、1または複数の付加情報の候補をユーザに提示する提示手段を更に有し、
前記選択手段は、前記ユーザの入力に応じた付加情報を選択する
ことを特徴とする
請求項1乃至5の何れか1項に記載の画像処理装置。
【請求項7】
前記レイアウト手段によってレイアウトされた結果をユーザに提示する提示手段を更に有し、
前記ユーザは、付加情報の埋め込み位置を選択しなおすか、または手動で調整できることを特徴とする
請求項1乃至6の何れか1項に記載の画像処理装置。
【請求項8】
撮像して解析することにより抽出可能な付加情報が埋め込まれた画像を生成するための画像処理装置の制御方法であって、
画像内のオブジェクトを認識する認識ステップと、
記憶手段に記憶された付加情報の中から、前記認識ステップにおいて認識されたオブジェクトに
紐付けられた付加情報を選択する選択ステップと、
前記選択ステップにおいて選択された付加情報を埋め込む
埋め込み領域の少なくとも一部が、前記認識ステップにおいて認識されたオブジェクトの領域と重畳するように、該付加情報をレイアウトする
レイアウトステップと、
を有
し、
前記レイアウトステップは、複数のオブジェクトにそれぞれ対応する複数の埋め込み領域に付加情報をレイアウトする場合、前記複数の埋め込み領域が互いに重ならないように、前記複数の埋め込み領域の位置またはサイズを調整することを特徴とする画像処理
装置の制御方法。
【請求項9】
コンピュータに
請求項8に記載の方法を実行させるためのプログラム。
【請求項10】
少なくとも1つのコンピュータを、請求項1乃至7の何れか1項に記載された画像処理装置の各手段として機能させるためのプログラム。
【請求項11】
少なくとも1つのコンピュータを、請求項1乃至7の何れか1項に記載された画像処理装置の各手段として機能させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像に情報を埋め込むための技術に関する。
【背景技術】
【0002】
従来、文字列などの付加情報(以下、多重化情報と表記)を符号化し、印刷対象の画像に埋め込むことで、画像だけでない多重化情報を不可視に近い状態で印刷できる多重化の技術がある。
【0003】
特許文献1には、印刷物に複数の多重化情報を埋め込む場合において、読み取り側が読み取りエラーを起こさぬよう多重化情報同士の埋め込み領域の重複を避ける技術として、多重化情報の埋め込み領域を示すマーカを適切に配することが記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら特許文献1では、適切な多重化情報を選択し、選択した多重化情報を画像領域に埋め込む際の負荷軽減について考慮されていなかった。
【0006】
そこで本発明の一実施形態は、上記の課題に鑑み、多重化情報を画像に埋め込む際、ユーザの負荷を軽減することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一実施形態は、撮像して解析することにより抽出可能な付加情報が埋め込まれた画像を生成するための画像処理装置であって、画像内のオブジェクトを認識する認識手段と、記憶手段に記憶された付加情報の中から、前記認識手段によって認識されたオブジェクトに紐付けられた付加情報を選択する選択手段と、前記選択手段によって選択された付加情報を埋め込む埋め込み領域の少なくとも一部が、前記認識手段によって認識されたオブジェクトの領域と重畳するように、該付加情報をレイアウトするレイアウト手段と、を有し、前記レイアウト手段は、複数のオブジェクトにそれぞれ対応する複数の埋め込み領域に付加情報をレイアウトする場合、前記複数の埋め込み領域が互いに重ならないように、前記複数の埋め込み領域の位置またはサイズを調整することを特徴とする画像処理装置である。
【発明の効果】
【0008】
本発明の一実施形態によれば、多重化情報を画像に埋め込む際、ユーザの負荷を軽減することが可能になる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施形態における多重化エンコード処理部の基本構成を示す図
【
図2】第1の実施形態における多重化デコード処理部の基本構成を示す図
【
図3】第1の実施形態における多重化エンコード処理部のブロック図
【
図4】画像データの処理に用いるマスクパターンを示す図
【
図5】第1の実施形態における多重化部の詳細な構成を示すブロック図
【
図6】
図4のマスクパターンを数値化したパターンを示す図
【
図7】多重化エンコード処理後の画像データに基づく記録処理を説明するためのフローチャート
【
図8】第1の実施形態における多重化デコード処理部のブロック図
【
図9】多重化位置の検出部による画像データの周波数特性の判定方法の説明図
【
図10】画像データの周波数特性と、判定領域との関係の説明図
【
図11】第1の実施形態における多重化デコード処理のフローチャート
【
図12】第1の実施形態におけるオブジェクト情報、多重化情報に関わるDBと、紐付けに関わるDBとの関係を説明するための図
【
図13】第1の実施形態における情報選択処理のフローチャート
【
図14】第1の実施形態における多重化情報レイアウト処理のフローチャート
【
図15】第1の実施形態におけるレイアウト処理を説明するための図
【
図16】第2の実施形態におけるオブジェクト情報、多重化情報に関わるDBと、紐付けに関わるDBとの関係を説明するための図
【
図17】第2の実施形態における情報選択処理のフローチャート
【
図18】第3の実施形態における情報選択処理のフローチャート
【
図19】第3の実施形態における多重化情報レイアウト処理のフローチャート
【発明を実施するための形態】
【0010】
以下、本発明の実施形態を図面に基づいて説明する。
【0011】
[第1の実施形態]
本実施形態は、画像情報に多重化情報を埋め込む多重化エンコード処理部に関わるが、ここでは撮像画像から多重化情報を抽出する多重化デコード処理部を含んで説明する。また以下では、情報処理システムの基本構成と、情報処理システムの特徴的な構成と、に分けて説明する。
【0012】
(1)基本構成
(1-1)多重化エンコード処理部のハードウェア
図1(a)及び
図1(b)は、情報処理システムにおいて、画像情報に多重化情報を埋め込む多重化エンコードのためのハードウェア(多重化エンコード処理部)の構成例を示す図である。これらのハードウェアはそれぞれ、画像データ(画像情報ともいう)Aと、該画像データに埋め込む多重化対象のデータ(多重化情報、多重化データ、付加情報等という)Bとを取得し、画像データAと多重化情報Bとが埋め込まれた記録物Cを生成する。
図1(a)のハードウェアは、記録装置(プリンタ)とは別の装置によって、画像データAに多重化情報Bを埋め込む処理を行うように構成されている。
図1(b)のハードウェアは、記録装置内において、画像データAに多重化情報Bを埋め込む処理を行うように構成されている。
【0013】
図1(a)の構成において、入力端子100から入力される画像データAは、色成分を含む多階調の画像データである。これに対し、入力端子101から入力される多重化情報Bは、テキスト文書データ、音声データ、動画データ等である。或いは、多重化情報Bは、テキスト文書データ、音声データ、画像データ、動画データ等が圧縮されたデータであってもよいし、他のバイナリ値に変換されたデータであってもよい。情報を多重化する多重化装置102は、後述するように、画像データAに多重化情報Bを埋め込む処理(多重化処理、埋め込み処理等という)を行う。記録装置103は、多重化情報Bが埋め込まれた画像データAに基づく記録動作を行うことで、記録物Cを生成する。
【0014】
図1(b)の構成において、
図1(a)の多重化装置102に相当する多重化部105は、記録装置103に含まれている。
図1(a)の構成と同様に、入力端子100から画像データAが入力され、入力端子101から多重化情報Bが入力される。記録装置103内の多重化部105は、画像データAに多重化情報Bを埋め込む処理を行う。また、記録装置103内の記録部106は、多重化情報Bが埋め込まれた画像データAに基づく記録動作を行うことで、記録物Cを生成する。このように多重化情報Bが埋め込まれた画像データAに基づいて記録物Cを生成する処理を「多重化エンコード処理」ともいう。
【0015】
図2は、情報処理システムにおいて、記録物Cから多重化情報Bを抽出する多重化デコードのためのハードウェア(多重化デコード処理部)の構成例を示す図である。このハードウェアは、多重化エンコード処理によって生成された記録物Cをカメラ等の撮像装置によって撮像し、その撮像画像を解析することによって、埋め込まれている多重化情報Bを抽出する。
【0016】
カメラ付きモバイル端末(情報処理装置)201は、撮像センサ202を有し、記録物Cの撮像機能を有する。モバイル端末201として、スマートフォンやPDA等が想定される。多重化情報の分離装置203は、撮像センサ202によって撮像された画像を解析することによって、多重化情報Bを抽出する。CPU(中央演算装置)204は、プログラムに従って情報処理方法を実行する。ROM205には、CPU204によって実行されるプログラムが記憶されている。RAM206は、CPU204によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリとして機能する。ハードディスク等の2次記憶装置207には、画像ファイル、および、画像解析結果を含むデータベース等が記憶される。
【0017】
ディスプレイ208には、CPU204の処理結果に基づく情報等が表示され、ユーザは、ディスプレイ208に表示された内容を視認する。ユーザは、キー入力装置209を用いて、処理の指示および文字の入力等を行う。尚、ディスプレイ208及びキー入力装置209の代わりに、ディスプレイ208の表示機能と、キー入力装置209の入力機能とを併せ持つタッチパネル機能を備えるディスプレイを採用してもよい。
【0018】
無線LAN210はインターネットに接続されている。モバイル端末201は、インターネットに接続されたサイトにアクセスして、ディスプレイ208にサイトの画面などを表示させる。モバイル端末201は、無線LAN210を介して、データを送信または受信できる。スピーカー211は、抽出された多重化情報が音声データまたは音声付動画データの場合に、音声を出力したり、インターネットの接続先に動画データがある場合に、その動画データの再生時に音声を出力したりする。
【0019】
モバイル端末201は、撮像センサ202を内蔵する構成に限定されない。例えば、モバイル端末201とは別の装置によって撮像センサ202を制御し、撮像画像を多重化情報の分離装置203に送信する構成であってもよい。撮像センサ202としては、デジタルカメラおよびビデオカメラ等を採用することができる。多重化エンコード処理に対し、記録物Cから多重化情報Bを抽出する処理を「多重化デコード処理」ともいう。
【0020】
(1-2)多重化エンコード処理のためのファームウェア構成
図3は、多重化エンコード処理のための基本的なファームウェア構成のブロック図である。画像データは、以下の処理が施され、記録ヘッドに接続された記録エンジンが受信可能な解像度および階調数に変換されてから、記録エンジンに送信される。なお、本実施形態においては、
図3の301から311が多重化装置102に備えられ、312から319が記録装置103に備えられるものとして説明するが、その限りではない。例えば、301から319が記録装置103に備えられていても良いし、301から319が多重化装置102に備えられていても良い。
【0021】
(1-2-1)付属情報の取得部
付属情報の取得部301は、画像データを圧縮する際に使用された各種パラメータを取得する。その取得された各種パラメータは、画像データの復元部302に送られて、圧縮された画像データを元の画像データに変換するための処理に利用される。また、その取得された各種パラメータは、圧縮度を算出するための処理に利用される。例えば、入力画像データは、文書データをJPEGフォーマットで圧縮して得られた非可逆画像データであり、記録媒体に記録される。非可逆画像データには、圧縮する際に使用された量子化テーブルと画像データサイズとが含まれている。取得された画像データサイズ情報および量子化テーブルは、画像データの復元部302に送られる。
【0022】
(1-2-2)画像データの復元部
画像データの復元部302は、符号化された画像データを復号化して、画像データを抽出する。
【0023】
(1-2-3)画像補正部
画像補正部303は、画像データの復元部302により複合化されたRGBデータに対し、画像の補正処理を施す。画像の補正としては、全体の色を明るくまたは暗くする明度調整、コントラスト調整、およびカラーバランスの調整の他、写真の記録を想定した逆光補正および赤目補正などの様々な補正が挙げられる。これらの補正を画像補正部303において一元的に処理することにより、記録装置に依存しない処理を実現することができる。
【0024】
(1-2-4)解像度変換部
解像度変換部304は、解像度が記録装置に対応する解像度となるように、画像データを変換する。詳しくは、解像度変換部304は、入力される画像データと、記録装置の解像度と、に応じて導き出された変倍量に基づいて、拡大または縮小の処理を施す。変倍処理の方法としては、ニアレストネイバー法、バイリニア法、バイキュービック法などが存在し、処理の特性、および処理速度を考慮して適切な方法を選択すればよい。
【0025】
(1-2-5)オブジェクト認識部
オブジェクト認識部305は、画像データに対してオブジェクト認識処理を行う。
図3では画像データAに対して画像補正と解像度変換とを実施した後の画像にオブジェクト認識を実施しているが、本実施形態はこの構成に限られない。認識処理の内容や、処理全体の要求速度等に応じて、オブジェクト認識を行う画像を適宜変形してよい。
【0026】
オブジェクト認識に関する技術として、例えば顔認識技術がある。顔認識の処理の流れとしては、まず画像中の顔らしい領域を特定し、該特定した顔らしい領域について特徴量を導出する。この特徴量はある計算式に従って算出され、例えば、指定領域のヒストグラムを取得することや、周波数変換を実施した結果の振幅・位相情報を取得すること等も、特徴量算出の範疇に含まれる。予め複数の顔情報について、異なる人物毎に特徴量マップを作成しておく。顔認識技術の分野では、特徴量マップの作成に用いた画像データやマッピングされたデータを「教師(データ)」と呼ぶ。オブジェクトDB306は、教師データを保持しているデータベースである。画像中の顔らしい領域に対して導出された特徴量に基づいて、この領域内の人物が特徴量マップにマッピングされたどの人物に近いか、決定される。以上が、一般的な顔認識技術の処理内容である。
【0027】
図12(a)は、オブジェクト認識を実行するにあたって、記憶されている教師データのデータベースを表している。つまり、オブジェクトDB306の一例である。
図12(a)に示すように、オブジェクトの種類を示すオブジェクトNoの値I
1は特徴クラスタ値F
1に対応し、同様に、I
2はF
2に対応し、I
3はF
3に対応する。
【0028】
図12(b)は、教師データのマップの概念図である。この図では、3次元マップに特徴クラスタ値F
1~F
3がマッピングされている。オブジェクト認識部305は、画像内のオブジェクトの特徴量を導出し、該導出した特徴量に基づき、3次元マップ内の特徴クラスタ値F
1~F
3の何れに該当するか決定する。ここで述べるクラスタとは、マップ中で該当のオブジェクトであると判定される範囲を示している。導出された特徴量群に対応する1点が、マップの軸を基準にプロットされ、プロットされた場所がクラスタに含まれているか否かに基づいて、当該クラスタのオブジェクトであるか否かが決定される。尚、複雑な特徴を持つ情報を区別したい場合や、区別したいオブジェクトの種類が多い場合は、マップの軸はより多くなる傾向がある。また、特徴クラスタ値F
nの取りうる範囲は、特徴クラスタ値それぞれに対し数百~数千オーダーのオブジェクトの特徴をマッピングして精度を向上させたものであることが望ましい。また、画像データAから複数のオブジェクトが認識される場合もある。
【0029】
(1-2-6)情報選択部
情報選択部307は、オブジェクト認識部305によって認識されたオブジェクトに応じて、多重化情報DB308の中から最適な多重化情報を選択する。多重化情報DB308に保持されている多重化情報は、
図1(a)の多重化装置102もしくは
図1(b)の多重化部105において、画像データAに埋め込まれる多重化情報Bになり得る。情報選択部307による処理は、画像データAに埋め込まれる多重化情報Bを選択する処理に相当する。
【0030】
多重化情報にはテキスト文書データ等が含まれる。テキスト文書データは、例えば、既に公知である文字コードを利用して、数字および文字を数値に割り当てた数値データである。このような数値データが多重化情報として多重化情報DB308に保持される。
【0031】
具体例として、「hello」という文字に対応するテキスト文書データについて説明する。テキスト文書データは、数値データいわゆるバイナリデータとする。バイナリデータとは「0」及び「1」で表現される情報であり、この「0」及び「1」の連続的なつながりが特定の意味を持つ。バイナリデータと文字との対応は、「文字コード」によって定義されている。文字コードの中の1つである「シフトJIS」の場合、「h」はバイナリデータの「01101000」に対応する。同様に、「e」は「01100101」、「l」は「01101100」、「o」は「01101111」のバイナリデータに対応する。従って、「hello」という文字は、バイナリデータによれば、「0110100001100101011011000110110001101111」と表現できる。逆に、「0110100001100101011011000110110001101111」というバイナリデータを取得できれば、該取得したバイナリデータに基づき「hello」という文字を取得することができる。多重化情報DB308は、このようなバイナリデータに変換された数値データに対応する。
【0032】
図12(c)は、多重化情報DB308の一例を表している。
図12(c)のテーブルには、多重化情報として埋め込みたい「hello」、「bye」、「lunch」という文字が保持されており、これらは夫々、文字を識別するための多重化情報Noの値(本例ではB
1~B
3の何れか)と対応する。
【0033】
情報選択部307は、紐付け情報DB309を参照する。紐付け情報DB309には、認識したオブジェクトと、多重化情報DB308に保持された内容とを紐付けるための情報が保持される。
【0034】
図12(d)は、紐付け情報DB309の具体例として、
図12(a)のデータベースと、
図12(c)のデータベースとを紐付けるためのデータベースを表している。
図12(d)では、紐付け情報である紐付けNoの値S
1は、B
1とI
3との対応関係に紐付いており、S
2は、B
2とI
1との対応関係に紐付いており、S
3は、B
3とI
2との対応関係に紐付いている。情報選択部307は、紐付け情報を用いて多重化情報DB308を参照することで、画像中のオブジェクトに最適な多重化情報を選択することが可能である。以下、情報選択部307によって実行される、画像中のオブジェクトに対して最適な多重化情報を選択する(情報選択処理とする)について、
図13を用いて説明する。
【0035】
図13は、本実施形態における情報選択処理のフローチャートであり、オブジェクト認識部305で認識されたオブジェクトに対して多重化情報を選択する手順をステップ毎に示す。尚、以下では、具体例として、認識されたオブジェクトに対するオブジェクトNoの値がI
1であったケースを挙げながら説明する。画像中で複数のオブジェクトが認識された場合は、該認識された複数のオブジェクトそれぞれについて、同様のフローの処理を実行する。なお、本実施形態においては、多重化装置102(または記録装置103)のCPUがフローチャートに関わるプログラムを読み出して実行することで、各ステップの処理が実行される。
【0036】
ステップS1301において、情報選択部307は、オブジェクト認識部305で認識された対象オブジェクトに対応するオブジェクトNoの値を取得する。
図12(a)では、オブジェクトNoの値としてI
1~I
3が存在するが、以下では、対象オブジェクトに対応するオブジェクトNoの値がI
1のケースを想定して説明する。つまり、オブジェクト認識部305が、画像内のオブジェクトから抽出された特徴量「F
1」を情報選択部307に出力する。そして情報選択部307は、特徴量「F
1」とオブジェクトDB306に基づいて、オブジェクトNoの値として「I
1」を取得する。尚、以降では「ステップS~」を「S~」と略記する。
【0037】
S1302において、情報選択部307は、最大で紐付け情報DB309(例えば
図12(d))に保持されている紐付けNoの値の個数(N個とする)分の、S1303~S1304のループ処理を実行する。例えば、
図12(d)のテーブルを用いる場合、紐付けNoの値としてS
1~S
3が保持されているため、繰り返しの処理を最大で3回実行することになる。尚、S1303~S1304のループ処理は、S1301で取得したオブジェクトNoの値に対応する多重化情報Noの値を見つけた時点で終了し、S1305に進む。
【0038】
S1303において、情報選択部307は、紐付け情報DB309(例えば
図12(d))を参照し、注目紐付けNoの行において、S1301で取得したオブジェクトNoの値(本例ではI
1)と一致するオブジェクトNoの値が保持されているか判定する。本ステップの判定処理が真の場合、S1304に進む一方、該判定結果が偽の場合、次のループ処理(S1303~S1304)に移行する。
【0039】
S1304において、情報選択部307は、紐付け情報DB309(例えば
図12(d))を参照し、認識された対象オブジェクトのオブジェクトNoの値と紐付けられた多重化情報Noの値を選択する。具体的には、情報選択部307は、対象オブジェクトに付加する情報の内容を識別するための多重化情報Noの値として、S1301で取得したオブジェクトNoの値に紐付けされている多重化情報Noの値を選択的に決定する。尚、S1301で取得したオブジェクトNoの値がI
1であり、かつ
図12(d)のテーブルを用いる場合、本ステップでは、多重化情報Noの値としてB
2が選択される。
【0040】
S1305において、情報選択部307は、オブジェクト認識部305で認識された対象オブジェクトに最適な多重化情報が、紐付け情報DB309に保持されていたか判定する。本ステップの判定結果が真の場合、S1307に進む一方、該判定結果が偽の場合、S1306に進む。なお、本実施形態の具体例では、S1304において多重化情報Noの値としてB2が選択されたため、S1305の判定結果は、真である。
【0041】
S1306において、情報選択部307は、対象オブジェクトに最適な多重化情報が紐付け情報DB309に保持されていなかったため、多重化情報を選択しなかった旨を示す値(「非選択」を示す値)を出力する。そして、画像処理装置のCPUは、出力された値を取得する。
【0042】
S1307において、情報選択部307は、S1304で選択した多重化情報Noの値(本実施例では、「B2」)を出力し、画像処理装置のCPUは、該出力された値を取得する。
【0043】
以上が、情報選択処理の内容である。
図13のフローチャートの処理を実行することで、認識されたオブジェクトの種類(オブジェクトNo)に対応する多重化情報が自動的に選択されるため、操作性が向上する。
【0044】
(1-2-7)多重化情報レイアウト部
多重化情報レイアウト部310は、情報選択部307で選択された多重化情報Bを、画像中のどの位置にレイアウトするか決定する処理(多重化情報レイアウト処理とする)を実行する。以下、多重化情報レイアウト処理について、
図14を用いて説明する。
【0045】
図14は、多重化情報レイアウト処理のフローチャートであり、情報選択部307によって選択された多重化情報Bを画像データA中に埋め込む位置を決定する手順をステップ毎に示す。
【0046】
S1401において、多重化情報レイアウト部310は、オブジェクト認識部305が認識した対象オブジェクトの位置情報を取得する。尚、本ステップで取得する位置情報は、オブジェクト認識部305が領域特定を行った際に取得したものであってもよいし、多重化情報レイアウト部310にて改めてオブジェクトが存在する領域を特定し、該特定した領域の位置情報を求めても良い。
【0047】
S1402において、多重化情報レイアウト部310は、対象オブジェクトに対して選択された多重化情報があるか判定する。例えば、S1402は、多重化情報レイアウト部310が情報選択部307から取得される情報に基づいて判定処理を行う。具体的には、オブジェクト認識部305が、対象オブジェクトから抽出された特徴量「F1」を情報選択部307に出力する。そして情報選択部307は、特徴量「F1」とオブジェクトDB306に基づいて、オブジェクトNoの値として「I1」を取得する。さらに情報選択部307は、オブジェクトNoの値「I1」と紐付け情報DB309に基づいて特定された多重化情報No「B2」を多重化情報レイアウト部310に出力する。ここで多重化情報レイアウト部310は、多重化情報Noを取得できた場合、S1402において真と判定する。一方、多重化情報レイアウト部310は、多重化情報Noを取得できない場合、S1402において偽と判定する。本ステップの判定結果が真の場合、S1403に進む一方、該判定家結果が偽の場合、多重化情報レイアウト処理は終了する。
【0048】
S1403において、多重化情報レイアウト部310は、S1401で取得した位置情報に基づき、選択した多重化情報の埋め込み位置(レイアウト位置とも呼ぶ)を決定する。
【0049】
以上、
図14のフローチャートの処理を実行することで、認識されたオブジェクトの種類に基づいて自動的に選択された多重化情報が埋め込まれる位置が自動的に決定されるため、操作性が向上する。
【0050】
図15(a)は、多重化情報レイアウト処理を実行した場合の、多重化情報の埋め込み位置の決定例を示す。まず顔領域Aのオブジェクトの種類に対応する多重化情報が
図13の処理により選択される。そして、S1401で特定されたオブジェクトの位置に基づいて、オブジェクト領域に重畳するような多重化情報埋め込み領域の位置を指定する。
図15(a)では、認識するオブジェクトを顔とした場合に、顔領域Aの中心位置を基準に、多重化情報埋め込み領域Aを決定している。つまり、認識された顔領域Aのオブジェクトに基づいて自動的に選択された多重化情報が顔領域Aに重畳するように、埋め込み領域Aが決定される。このようにオブジェクト領域の中心位置に多重化情報を埋め込んだ場合、読み取り側ユーザはオブジェクトに端末をかざせば、高い精度で多重化情報を読み取ることができるようになる。多重化情報の埋め込み位置をオブジェクト領域の中心位置からずらした場合でも、読み取り側ユーザのかざす端末の視野範囲内にオブジェクト領域があれば、関連する多重化情報を読み取ることが可能である。オブジェクトの位置に対して一部でも多重化情報が重畳していれば、読み取り時に視野範囲から外れる可能性は低い。
【0051】
S1404において、多重化情報レイアウト部310は、埋め込み位置の調整を行う。埋め込み位置の調整は例えば、
図15(b)のような画像に対して実施される。
図15(b)では2人の人物が写っているが、そのそれぞれにオブジェクト認識を実施して多重化情報をレイアウトした結果、S1403において、多重化情報位置Bと、多重化情報位置Cと、が決定されたとする。図示するように、複数の埋め込み情報が重畳していた場合は、読み取りデータの復号時にエラーが発生してしまう。従って、埋め込み位置が重畳した場合には、重畳を防ぐように調整を行う。
【0052】
図15(c)は、重畳を防ぐように位置調整を実施した結果を示している。多重化情報埋め込み領域Bと、多重化情報埋め込み領域Cとが重畳しないように、それぞれの領域の位置を移動する。本実施形態では、重畳させない方法の一例として、多重化情報レイアウト部310は、異なる多重化情報埋め込み領域が重畳しないよう、互いにX軸上で反対方向にスライドする。但し、埋め込み位置の調整方法は、この方法に限定されない。これ以外の方法として例えば、多重化情報に紐付いているオブジェクト領域が重畳している割合が、多重化情報に紐付いていないオブジェクト領域に重畳している割合に対して大きくなるように位置を調整する方法を採用しても良い。なお、埋め込み領域のサイズを調整することにより、埋め込み位置の重畳が解消されても良い。
【0053】
また本実施形態では、特に手段に限定しないが、対応するオブジェクト領域に多重化情報埋め込み位置を決定することで読み取り側ユーザが直観的に読み取りを実施できる仕組みを設ける。オブジェクトの種類によって、オブジェクトに重畳させて埋め込む/重畳しないで埋め込む、を切り替えることができるように設計する。ユーザが画像中のオブジェクトに対して多重化情報を重畳して埋め込みたいか、埋め込みたくないかがレイアウト時に考慮されることから、ユーザの負荷が軽減される。
【0054】
尚、多重化情報を埋め込む際に必要な領域サイズは多重化情報のbit数や埋め込み強度設定によって異なる場合があるが、本実施形態ではこれらが一律同じとして説明した。多重化情報によって領域サイズが異なる場合、多重化情報の埋め込みは、埋め込む多重化情報に応じた領域サイズで実施される。
【0055】
(1-2-8)多重化情報の多重化部
多重化情報の多重化部311は、解像度変換部304によって変換された画像データと、情報選択部307で選択された多重化情報と、を受け取り、画像データに多重化情報を埋め込む。またこの際、多重化情報の多重化部311は、多重化情報レイアウト部310の処理結果に基づく埋め込み位置に対して、多重化情報を埋め込む。本実施形態における埋め込み処理(多重化処理)においては、多重化情報である「0」、「1」から成るバイナリデータが読み取れるように、画像データにマスク処理を施して、バイナリデータに対応する「0」、「1」から成る情報を埋め込む。尚、本例では、画像データにマスク処理を施すことにより、所定領域の画像データに、「0」か「1」のバイナリデータに対応する異なる周期性を持たせる。
【0056】
図4(a)及び
図4(b)は、バイナリデータに対応するマスクデータを示しており、
図4(a)のマスクデータが「0」に対応し、
図4(b)のマスクデータが「1」に対応する。これらのマスクデータは、5px×5pxの領域に対応する大きさである。5px×5pxの領域に対応する画像データに対して、
図6(a)または
図6(b)のような異なる周期性を持つパターンを組み合わせる(適用する)ことにより、「0」か「1」のバイナリデータを埋め込む。多重化情報の多重化部311おいては、多重化情報のバイナリデータ(数値データ)に基づいて、画像データに、「0」、「1」のバイナリデータに対応する周期性を持たせることにより、多重化情報を埋め込む。画像データに対する多重化情報の埋め込み方法の一例として、画像データを1色のグレー画像データとし、その画像データの全体に、「0」、「1」のバイナリデータを埋め込む方法について説明する。
【0057】
多重化される画像のサイズは縦幅640px、横幅480pxとし、マスクデータは、
図4(a)、
図4(b)と同様に5px×5pxの大きさとする。
図4(a)のマスクデータによって、「0」のバイナリデータが表現され、
図4(b)のマスクデータによって、「1」のバイナリデータが表現されるものとする。
図4(a)または
図4(b)のマスクデータにおいて、5×5の画素ブロックは、黒ブロック401と白ブロック402と斜線ブロック403とに分けられる。黒ブロック401は数値「+2」に対応し、白ブロック402は数値「0」に対応し、斜線ブロック403は数値「-1」に対応する。0を埋め込みたい場合は「0」に対応する
図4(a)のマスクデータを用い、1を埋め込みたい場合は「1」に対応する
図4(b)のマスクデータを用いる。
図4のパターンを数値化した
図6のパターンに関わる説明で後述するように、埋め込み情報を基準値と掛け算させた値を加算することによりパターンを形成する。
【0058】
多重化情報のバイナリデータ(数値データ)に対応するパターンとして、極力、人間の視覚的に目立ちづらいパターンを形成したい場合もある。本例のように、画像データが1色のグレー画像データの場合は、輝度成分によってパターンを形成しなければならないため、視覚的に目立ちやすい。パターンの形状および周波数成分にもよるものの、輝度成分の変化より、色成分の変化の方が視覚的に目立ちにくい傾向がある。例えば、RGB成分を持つカラー画像を、YCbCr、Lab、またはYuvなどの色空間の画像データに変換して、輝度成分と色成分とに分ける。そして、輝度成分ではなく、色成分にマスクデータを適用することにより、視覚的に目立ちにくいパターンを形成することができる。
【0059】
本例においては、マスクデータを5px×5pxのブロックに分けて画像データに加算する。しかし、ブロックサイズの単位およびマスク形状は任意であり、マスクデータを画像データに組み込む方法として、加算、減算、乗算、および除算などを組み合わせてもよい。付加情報が埋め込まれた画像の記録物を撮像した際に、マスクデータのパターンを区別できる方法であれば、任意の方法を採用してよい。従って、多重化情報の多重化部311は、多重化情報が埋め込まれた画像の記録物を撮像した際に、その多重化情報を抽出できるように、多重化情報を画像データに埋め込むための処理部である。
【0060】
(1-2-9)色補正部
色補正部312は、記録装置によって記録媒体に記録される画像の色が好適な色となるように、画像データに変換処理を施す。例えば、モニタ等の表示装置に表示された画像を記録する場合、表示装置における色再現範囲と記録装置における色再現範囲とは、必ずしも一致しない。ある色では、表示装置と比べて記録装置の再現範囲の方が狭く、また、別の色では、表示装置と比べて記録装置の再現範囲の方が広い場合がある。そのため、画像の劣化を最小限にして、適宜、色の圧縮および伸長を行う必要がある。本実施形態では一例として、それらの処理をRGB形式で実施する。つまり、記録装置の再現性を考慮して、色補正部312に入力されたRGB値を記録装置用のRGB値(以下、「記録装置用RGB値」ともいう)に変換する。この変換は、マトリクス演算によって行うことが可能但し一般的には、3次元の色補正テーブル313が利用される。入力されるRGB値を各色8ビット(256階調)とした場合、全ての組み合わせを保持することは記憶容量の観点から現実的でないため、色補正テーブル313として、所定の間隔で間引かれたテーブルを用いる。ここでは一例として、グリッド点の数が17のテーブルを用いるものとする。
【0061】
(1-2-10)インク色変換部
インク色変換部314は、色補正部312の変換により取得された記録装置用RGB値をインク色の値(例えばCMYK値)に変換する。この変換には、記録装置用RGB値の組み合わせと、インク色の値(例えばCMYK値)の組み合わせと、が予め対応付けられた色分解テーブル315を用いる。尚、色補正部312と同様に、インク色変換部314においてもグリッド点17のテーブルを利用する。
【0062】
(1-2-11)濃度補正部
インクジェット記録装置においては、記録用紙等の記録媒体上にドットを形成するために付与されるインクの量が多くなるにしたがって、ドットの重なりが増加し、記録画像における濃度が上昇しにくくなる。濃度補正部316は、このような濃度の応答性を均一にするために濃度を補正する。このような濃度補正により、色補正テーブル313および色分解テーブル315の作成精度が確保しやすくなる。CMYKの4色インクを用いる記録装置においては、それらのインク色について濃度補正を行う。本実施形態では一例として、1次元の濃度補正テーブル317を用いる。このテーブルとしては、インク色毎の入力8ビット(256階調)に対応したテーブルを用意しておけばよく、特に間引くことなく、入力信号値と補正後の出力信号値とを対応付けたテーブルを用いることができる。
【0063】
(1-2-12)階調変換部
階調変換部318は、インク色毎に濃度補正が施された後の多ビットデータを、記録装置において記録可能な階調数のデータに変換する。尚、本実施形態では一例として、多ビットデータを記録「1」または非記録「0」の2階調(1ビット)データに変換する。また、階調の変換方法としては、画像の低周波成分を排除して、視覚に好適な階調の再現が可能な誤差拡散法を採用する。また、入力信号(多ビットデータ)として、画素値が0~255の8ビットのデータを想定する。
【0064】
階調変換を全てのインク色C、M、Y、Kに対して実行することにより、記録装置103で記録可能な1ビットのインク色毎の記録データが得られる。
【0065】
(1-3)多重化エンコード処理
図5は、多重化情報の多重化部311(
図3参照)のファームウェア構成を説明するためのブロック図である。以下、多重化部311における各処理部について説明する。
【0066】
(1-3-1)色空間変換部
色空間変換部501は、解像度変換部304において記録装置に対応する解像度に変更された画像データの色空間を、情報多重化のための色空間に変換する処理部である。例えば、下式のように、情報多重化を行う色空間をYUVのUとし、画像データのRGBの色空間をYUVの色空間に変換する。
【0067】
【0068】
【0069】
【0070】
(1-3-2)ブロック位置設定部
本実施形態では、画像データを複数のブロック領域に分け、ブロック単位で各画素の濃度を変調させて、
図9(a)または
図9(b)のマスクデータに対応するパターンを形成させることにより、多重化情報を埋め込む。ブロック位置設定部502は、色空間変換後の画像データを取得し、指定された色のプレーン画像に対して、指定された1つのブロックのサイズに合わせて、ブロックの位置座標を設定する。例えば、YUVのU色のプレーン画像のサイズを縦幅640px、横幅480pxとし、ブロックサイズを縦幅5px、横幅5pxとする。この場合、縦ブロック数は128(=640÷5)、横ブロック数は96(=480÷5)、埋め込み可能なブロック数の合計は12288(=128×96)となる。複数のブロックを用いて、多重化情報の読み取り精度を高める事が出来る。あるオブジェクトに関わる多重化情報のブロックを多重化情報レイアウト部310で指定した画像位置内に並べて配置する事ができ、それによってあるブロックが読み取り出来ないような表面傷など劣化した場合でも他のブロックで情報を補完する事が出来る。
【0071】
(1-3-3)数値化部
数値化部503は、受信した多重化情報を数値化したデータに変換する。例えば、数値化部503の受信した多重化情報がシフトJISの文字列であったとする。この場合には、シフトJISの形式によって文字と数値とが対応付けられた変換マップを予め保持しておき、その変換マップを用いて文字列を数値列に変換する。例えば、多重化情報DB308から取得した多重化情報が文字列「hello」の場合、変換後の数値列は「0110100001100101011011000110110001101111」となる。
【0072】
(1-3-4)パターン選択部
パターン選択部504は、ブロック単位で各画素の濃度変調を行うためのマスクパターンが登録されており、数値化部503によって数値化された多重化情報に対して適用すべきマスクパターンを選択する。
【0073】
図6(a)、
図6(b)は、周波数特性が異なる
図4(a)および
図4(b)のパターンを数値化した図である。前述したように、
図4(a)および
図6(a)のパターンは、バイナリデータの「0」に対応し、
図4(b)および
図6(b)のパターンは、バイナリデータの「1」に対応する。
【0074】
(1-3-5)情報多重化部
情報多重化部505は、色空間変換部501において色空間変換した画像データと、ブロック位置設定部502において設定された各ブロックの位置と、パターン選択部504において選択されたマスクパターンと、を取得する。情報多重化部505は、これらの取得情報に基づき、画像データの指定領域にマスクパターンを適用した画像データを生成する。
【0075】
例えば、画像データをYUVのU色プレーンとし、それを指定領域の内部に属する1ブロック(5px×5px)毎に処理し、そのYUVのU色プレーンの値に
図6(a)または
図6(b)のマスクパターンの値を適用するケースを検討する。ここでは一例として、下記の式に示すように、これらのマスクパターンの数値に応じてYUVのU色プレーンの値(U値とする)に対する加減算処理を行うものとし、その加減算処理を行う基準値を10とする。
【0076】
【0077】
例えば、1ブロック内の1画素のU値が「20」であり、適用するマスクパターンの数値が「0」である場合には、式(5)のようにU値が処理される。
【0078】
【0079】
また例えば、1ブロック内の1画素のU値が「30」であり、適用するマスクパターンの数値が「2」の場合には、式(6)のようにU値が処理される。
【0080】
【0081】
また例えば、1ブロック内の1画素のU値が「40」であり、適用するマスクパターンの数値が「-1」の場合には、式(7)のようにU値が処理される。
【0082】
【0083】
このように本実施形態では、画素毎に、適用するマスクパターンの数値と、基準値と、を掛け合わせた値を加算することによって、多重化を実現する。尚、マスクパターンの適用方法は、U色プレーン上に、マスクパターンを埋め込むことができれば任意の方法を採用してよく、ここで挙げた方法に限定されない。
【0084】
このような多重化エンコード処理は、
図1(a)の多重化装置102または
図1(b)の多重化部105によって実行される。尚、多重化エンコード処理を実行する構成要素は、記録装置103に含まれていなくてもよく、記録装置103に含まれていてもよい。多重化装置102もしくは多重化部105において生成された多重化エンコード処理後の画像データは、記録装置103もしくは記録部106に送信される。
【0085】
(1-4)画像データに基づく記録処理
図7は、多重化エンコード処理後の画像データに基づく記録処理を説明するためのフローチャートである。
【0086】
まず、S701において、色補正部312(
図3参照)は、多重化情報の多重化部311によって多重化情報が埋め込まれた画像データ(多重化画像データとする)を取得する。
【0087】
次に、S702において、色補正部312は、多重化画像データに色補正を施す。
【0088】
次に、S703において、CPUは、記録データを生成する。具体的には、インク色変換部314、濃度補正部316、及び階調変換部318により、色補正後の画像データをインク色の値に変換してから濃度を補正し、その濃度補正後の画像データを、所定の階調数の画像データに変換することにより、記録データを生成する。生成された記録データは、記録エンジンに送信される。
【0089】
S704において、記録エンジンは、送信された記録データに基づいて、各色のインクを記録媒体に付与することにより、記録物Cを生成する。
【0090】
(1-5)多重化デコード処理のためのファームウェア構成
図8は、記録物Cの記録画像に埋め込まれている多重化情報を抽出する多重化デコード処理のための基本的なファームウェア構成のブロック図である。
【0091】
図8に示すように、撮像センサ202(
図2参照)は、撮像部801と、色調整部802とを有する。また、多重化情報の分離装置203は、多重化位置の検出部803と、多重化情報の分離部804と、抽出データの解析部805とを有する。また、テキスト文書データ、音声データ、動画データなどの数値化された多重化情報のデータが記録物Cの記録画像に埋め込まれている。
【0092】
(1-5-1)撮像部
撮像部801は、撮像センサ202内の撮像素子によって、記録物Cの記録画像を撮像して画像データを取得する。
【0093】
撮像部801内の撮像素子としてはCCDを採用することができ、CCDは、フォトダイオード(受光素子)により光を感知して、その光を電圧に変化させる。その際、撮像素子毎に配置したRGBまたはCMYなどのカラーフィルタにより、光を色のデータとして変換させることができる。フォトダイオードの検出信号は、色調整部802に送られる。
【0094】
(1-5-2)色調整部
色調整部802は、撮像部801におけるフォトダイオードの出力データを、1画素がRGB3チャンネル8ビットデータの画像データに変換する。画像データに変換する前に、撮像時の光源などに応じて、フォトダイオードの出力データに対してRGBなどの色の補間処理が行われる。その補間処理は、例えば、モバイル端末201等を用いて撮像する際に、白い被写体を白く撮像できるように調整することに相当する。撮像部801は、太陽またはライト等の光源から照射されて、被写体から反射された光をフォトダイオードによって検知するため、光源に応じて画像の色が異なることになる。従って、色調整部802は、光源に応じた補間処理を行う。
【0095】
補間処理の方法として、光源の色合いを示す色温度によって表現された光の色を数値化した単位のケルビン(K)を用いる方法がある。昼間の太陽光は5500K、白熱電球は3000Kであり、一般的に、色温度が高いと青く見え、低いと赤く見える。そのため、光源に応じて撮像画像の色が異なることになる。モバイル端末201には通常、撮像する際にセンサにより色温度を検知して、白い被写体が白く撮像できるよう自動的に調整する、いわゆるオートホワイトバランス調整機能が搭載されている。また、太陽光または白熱電球等の光源に応じて、手動によりホワイトバランスを調整することもできる。
【0096】
色調整部802は、フォトダイオードの出力データに基づいて、ホワイトバランスが調整された画像データを生成し、該生成した画像データを、多重化情報の分離装置203に送る。
【0097】
(1-5-3)多重化位置の検出部
多重化位置の検出部803には、色調整部802によって色調整された画像データが入力される。多重化位置の検出部803は、その画像データの周波数特性を判定することによって、多重化情報が埋め込まれている位置(多重化位置とする)を検出する。
【0098】
図9(a)は、二次元の周波数領域における周波数特性の差の説明図であり、横軸は水平方向の周波数、縦軸は垂直方向の周波数、中心となる原点は直流成分を示し、原点から遠ざかるにつれて高周波域となる。本例においては、多重化処理により周波数特性が変化する。
【0099】
例えば、前述したように、
図4(a)のマスクパターンを適用したときの周波数特性の変化により、
図9(a)中の直線901上に大きなパワースペクトルが生じる。また、
図4(b)のマスクパターンを適用したときの周波数特性の変化により、
図9(a)中の直線902上に大きなパワースペクトルが生じる。多重化情報の分離時には、多重化信号を判定するために、このような大きなパワースペクトルが発生する周波数ベクトルを検出する。そのため、各々の周波数ベクトルを個別に強調して抽出することが必要となる。
【0100】
そのためには、
図6(a)、
図6(b)のマスクパターンと同様の周波数特性をもつハイパスフィルタを用いるとよい。
図6(a)のマスクパターンに対応する空間フィルタは、
図9(a)中の直線901上の周波数ベクトルを強調することが可能である。
図6(b)のマスクパターンに対応する空間フィルタは、
図9(a)中の直線902上の周波数ベクトルを強調することが可能である。
【0101】
例えば、
図6(b)のマスクパターンを適用する量子化条件により、
図9(a)中の直線901の周波数ベクトル上に大きなパワースペクトルが発生したと仮定する。この場合、そのパワースペクトルの変化量は、
図6(a)のマスクパターンに対応する空間フィルタによって増幅されるものの、
図6(b)のマスクパターンに対応する空間フィルタによっては殆ど増幅されない。即ち、複数の空間フィルタを並列に用いてフィルタリングした場合、パワースペクトルは、周波数ベクトルが一致した空間フィルタによってのみ増幅され、それ以外の空間フィルタによってはほとんど増幅されない。従って、パワースペクトルを増幅させた空間フィルタを特定することにより、いかなる周波数ベクトル上に大きなパワースペクトルが発生したかを判定することができる。このように周波数特性を判定することにより、多重化情報を抽出することが可能である。その際、多重化情報の抽出位置がずれた場合には、多重化情報を正しく抽出することが難しくなる。
【0102】
図9(b)は、記録物Cにおける記録領域の説明図である。記録物Cとしての記録媒体903は、ブロック単位で情報が多重化された領域904を含み、その領域904に対して、特定の周波数特性を持つように多重化情報が埋め込まれる。
【0103】
図10(a)及び
図10(b)は、多重化されたブロックと、周波数特性を判定する領域との関係の説明図であり、図示するように、記録媒体は、4つのブロックにおいて多重化されている。
図10(a)においては、ブロック単位の周波数特性を判定する判定領域1002がブロックの位置からずれている(つまり、判定領域1002が複数のブロックにまたがっている)。一方、
図10(b)においては、ブロック単位の周波数特性を判定する判定領域1003がブロックの位置と一致している(つまり、判定領域1003が複数のブロックにまたがっていない)。
図10(a)の場合には、判定領域1002において周波数特性を正しく判定することができる。一方、
図10(b)の場合には、判定領域1003において、特定の周波数ベクトルのパワースペクトルが下がってしまい、周波数特性を正しく判定することが難しい。
【0104】
多重化位置の検出部803は、空間フィルタを利用して、多重化させたブロック単位の周波数特性を判定する。その際に、多重化されたブロックの位置を特定することが必要である。その多重化されたブロックの位置は、特定の周波数ベクトルのパワースペクトルの強度に基づいて特定することができる。そのため、多重化位置の検出部803においては、撮像画像に対し、ブロック単位の周波数特性の判定領域をずらしながら周波数特性を検出し、該検出した周波数特性を判定することによって、多重化されたブロックの位置を特定する。
【0105】
(1-5-4)多重化情報の分離部
ブロック単位の周波数特性は、多重化位置の検出部803によって検出されたブロックの位置を基準として判定され、多重化情報の分離部804は、そのブロック単位の周波数特性の判定結果に基づいて、多重化された多重化情報を抽出する。
【0106】
(1-5-5)抽出データの解析部
抽出データの解析部805は、多重化情報の分離部804によって多重化情報として分離された数値列を解析し、その数値列を元々の埋め込み前の多重化情報の形式に変換する。
【0107】
例えば、予め、多重化する多重化情報をテキスト文書データとして、その文字コードを「シフトJIS」に数値化しておく。シフトJISの1バイトコード(半角文字)においては、上位4ビットと下位4ビットの組み合わせによって、数値および文字に対応した変換(数値化)が可能である。例えば、上位4ビットが「0100」、下位4ビットが「0001」の場合、それらの数値列は文字「A」と判定される。このように、変換マップを予め保持しておき、その変換マップと数値列とを対応させることによって、数値列を文字に変換することができる。例えば、多重化情報として分離された数値列は、
図2のRAM206に一時的に保持し、「シフトJIS」変換マップは、2次記憶装置207に、参照可能に予め保持しておくことができる。
【0108】
多重化情報の分離部804によって、多重化情報として、「0110100001100101011011000110110001101111」の数値列が分離された場合を想定する。この数値列は、変換マップによって次のように変換される。
【0109】
最初の上位4ビット「0110」、下位4ビット「1000」は、文字「h」に変換される。その次の上位4ビット「0110」、下位4ビット「0101」は、文字「e」に変換される。その次の上位4ビット「0110」、下位4ビット「1100」は、文字「l」に変換される。その次の上位4ビット「0110」、下位4ビット「1100」は、文字「l」に変換される。最後の上位4ビット「0110」、下位4ビット「1111」は、文字「o」に変換される。従って、数値列は、「hello」の文字列に変換されることになる。
【0110】
このように多重化情報として抽出された文字列は、例えば、
図2のディスプレイ208に表示させることができる。また、抽出された文字列がURLの場合には、CPU204は、
図2の無線LAN210を介してネットワークに接続し、ブラウザを利用して、ディスプレイ208に、URL先の画面を表示することもできる。また、CPU204は、そのURLが動画サイトであった場合には、ディスプレイ208に動画を表示し、スピーカー211によって音声を流すこともできる。
【0111】
(1-6)多重化デコード処理
図11は、本実施形態における多重化デコード処理のフローチャートである。
【0112】
まず、S1101において、モバイル端末201における撮像部801(
図8参照)の撮像センサは、記録物Cの記録画像を撮像する。本ステップにより、撮像画像(データ)が取得される。撮像部801によって撮像された光は色データに変換されてから、色調整部802に送信される。
【0113】
S1102において、色調整部802は、撮像部801におけるフォトダイオードの出力データに対してホワイトバランス調整を実施することで、画像データを生成する。色調整部802によって生成された画像データは、多重化情報の分離装置203へ送信されるか、もしくは、2次記憶装置207に記憶される(
図2参照)。
【0114】
S1103において、多重化位置の検出部803は、S1102でホワイトバランスが調整された画像データに基づいて、情報が多重化されている位置を検出する。
【0115】
S1104において、多重化位置の検出部803は、情報が多重化されているブロックの位置を検出できたか判定する。本ステップの判定結果が真の場合、S1105に進む。一方、本ステップの判定結果が偽の場合、S1101に戻り、次の撮像画像に対する処理を行う。
【0116】
S1105において、多重化情報の分離部804は、S1102で生成された画像データと、S1103で検出されたブロックの位置と、に基づいてブロック毎の周波数特性を判定する。そして、多重化情報の分離部804は、その判定結果に基づいて、多重化されている多重化情報を数値データとして抽出する。多重化情報の分離部804によって抽出された数値データは、抽出データの解析部805へ送信される。或いは、この数値データは、RAM206に一時的に記憶された後、抽出データの解析部805へ送信されてもよい。
【0117】
S1106において、抽出データの解析部805は、多重化情報として抽出された数値データを解析し、該解析した数値データを文字などの出力情報に変換する。 S1107において、抽出データの解析部805は、抽出された全ての数値データに関して、解析部1405による出力情報への変換が完了したか判定する。本ステップの判定結果が真の場合、多重化デコード処理を終了する。一方、本ステップの判定結果が偽の場合、S1101に戻る。文字などに変換された出力情報は、ディスプレイ208などに表示することができ、また、カメラ付きモバイル端末(情報処理装置)201は、その出力情報に基づいてネットワークにアクセスすることができる。
【0118】
<本実施形態の効果>
本実施形態では、オブジェクト認識に用いる教師データDBと、多重化情報を保持しているDBとが紐付けられている状態において、認識したオブジェクトに対応する多重化情報を自動で選択する。これにより、埋め込み側ユーザは負荷なく、オブジェクトに対して最適な多重化情報を多重化することができる。
【0119】
また本実施形態では、選択したオブジェクトに対応する多重化情報を、認識したオブジェクトの領域に重畳する位置で埋め込む。これにより、埋め込み側ユーザは負荷なく、読み取り側ユーザが端末をかざす位置を考慮した多重化情報の埋め込みを実施することができる。
【0120】
[第2の実施形態]
第1の実施形態では、オブジェクト認識結果と多重化情報とが1対1対応して紐付けされており、多重化情報は、紐付け情報を用いて選択される(もしくは非選択となる)。但し、オブジェクト認識結果に対する多重化情報の選択候補が複数存在する場合がある。複数の選択候補の中から最適な多重化情報を選択するために、本実施形態では、評価処理のステップを設ける。尚、この評価処理は、
図3における情報選択部307によって実行される。
【0121】
図16は、第2の実施形態を説明するための図であり、DBの具体例を示す。
図16(a)は、オブジェクト認識で用いる教師データのデータベースを示している。
図16(b)は、多重化情報のデータベースである。
図16(a)は
図12(a)と同様であり、
図16(b)は
図12(c)と同様である。本実施形態は、
図16(c)のような紐付け情報を保持するデータベースを用いる点で、前述の実施形態と異なる。
【0122】
図16(c)では、紐付けNo値S
1~S
9に対して多重化情報No値B
1~B
8が対応付けられている。紐付けNo値S
2及びS
6は双方ともに、多重化情報No値B
2と対応している。オブジェクトNo値I
1~I
5も同様に、紐付けNo値や多重化情報No値と1対1対応していない。本実施形態では、オブジェクトの数、オブジェクトのサイズ、及びオブジェクトの位置を、紐付け情報を選択するための条件として使用する。なお、オブジェクトの数、オブジェクトのサイズおよびオブジェクトの位置は、オブジェクトの種類以外のオブジェクトに関わる情報と呼ぶこともある。尚、
図16(c)に示すデータベース(テーブル)は例示であり、図中の項目の一部を保持しないデータベースを用いてもよいし、これらの項目以外の項目を保持するデータベースを用いてもよい。
【0123】
紐付けNo値S
1及びS
4はそれぞれ、同じオブジェクトNo値I
3と対応しており、あるオブジェクトに対する紐付けNo値を一意に求めるために、画像内のオブジェクト領域の位置に基づいて紐付けNo値を区別する。本例では
図16(c)に示すように、オブジェクトの位置について、所定の閾値Y_THを設定し、画像内のオブジェクトのY座標がこの閾値以上の場合は紐付けNo値S
1であるとして、そうでない場合は紐付けNo値S
4であるとした。尚、原点が画像左上であると仮定している。このような実施形態が有効なユースケースとして、大判ポスターが挙げられる。印刷物が大きい大判ポスターの場合、同じオブジェクトであっても読み取り側のユーザに依って、スマートフォン等の端末をかざす位置が異なる。仮に、大人は高い位置のオブジェクトに端末をかざす一方、子供は低い位置のオブジェクトに端末をかざすことを想定すれば、オブジェクトに埋め込む多重化情報は大人用と子供用とで分けることが有効である。同じ文字情報による多重化情報でも、大人用は漢字と平仮名である一方、子供用は平仮名だけ、といった使い分けが可能である。
図16(c)の紐付けNo値S
1及びS
4を、大人用と子供用とで使い分けることを想定する場合、紐付けNo値S
4は大人用、紐付けNo値S
1は子供用になる。
【0124】
紐付けNo値S
2及びS
9はそれぞれ、同じオブジェクトNo値I
1と対応しており、あるオブジェクトに対する紐付けNo値を一意に求めるために、画像内のオブジェクト領域のサイズ(オブジェクトサイズとする)に基づいて紐付けNo値を区別する。本例では
図16(c)に示すように、オブジェクトサイズについて、所定の閾値SIZE_THを設定し、画像におけるオブジェクトサイズがこの閾値以上の場合は紐付けNo値S
2であるとして、そうでない場合は紐付けNo値S
9であるとしている。このような実施形態が有効なユースケースとして、同じオブジェクトに対する詳細な多重化情報と簡易な多重化情報との使い分けが挙げられる。具体的に説明すると、冊子のページ中で同じオブジェクトが大きく掲載されているか小さく掲載されているかに応じて、そのオブジェクトがページ中にメインで掲載されているか否かが分かる。大きく掲載されている場合は、詳細な多重化情報を選択する一方で、小さく掲載されている場合は、簡易な多重化情報を選択する。簡易な多重化情報であれば埋め込みデータ量が小さいことから、画像中の小さな領域に埋め込むことができる。ページ中にメインで掲載されていない場合は簡易な多重化情報を選択すれば、メインで掲載されるオブジェクトに紐付く多重化情報と重畳して埋め込んでしまうことを極力避けることができる。
【0125】
紐付けNo値S
7及びS
8はそれぞれ、同じオブジェクトNo値I
5と対応しており、あるオブジェクトに対する紐付けNo値を一意に求めるために、画像内のオブジェクト数に基づいて紐付けNo値を区別する。本例では
図16(c)に示すように、オブジェクト数について、所定の閾値NUM_THを設定し、画像内のオブジェクト数がこの閾値以上の場合は紐付けNo値S
7であるとして、そうでない場合は紐付けNo値S
8であるとしている。このような実施形態が有効なユースケースとして、群情報用の多重化情報と個情報用の多重化情報との使い分けが挙げられる。例えばオブジェクトを認識した結果、複数の服が近接で認識された場合は、その服のブランドの紹介といった群情報を多重化情報として埋め込む。一方で、1枚の服が認識された場合は、その服の製品名や値段といった個情報を多重化情報として埋め込む。
【0126】
紐付けNo値S5のように、オブジェクトNo値がブランクの紐付け情報が用意されても良い。この場合、オブジェクトの種類に依らず、任意のオブジェクトのオブジェクトサイズが所定の条件を満たす場合(Size≧SIZE_TH)に、多重化情報B5が選択される。
【0127】
なお、
図16(c)を使用する場合、1つのオブジェクトが複数の紐付け情報を選択するための条件に一致する可能性もある。例えば、画像内にオブジェクトNo「I
1」に相当し、かつ、サイズがTH以上のオブジェクトがあったとする。このオブジェクトは、紐付けNo「S
2」と「S
5」に該当することになる。このようなケースにおいて複数の紐付け条件から多重化情報を選択するために、評価処理のステップを設けることが有効である。評価手法としては、上記のような紐付け情報を選択するための条件に基づいて選択的に決定する手法の他に、重み付け総和を算出して関連度合いを評価する手法がある。オブジェクトNo、オブジェクト数、オブジェクトサイズ、オブジェクト位置の重みをそれぞれα
1、α
2、α
3、α
4と設定する。式(8)に示すように、それぞれ条件に合致していた場合は、重みを累積加算して評価値を算出する。最終的な評価値が最も高い紐付けNo値を選択し、その時の多重化情報No値を出力する。
【0128】
【0129】
S
Lは紐付けNoの各値を示している。Tは紐付けNoに対して与えられているオブジェクトNo、オブジェクト数、オブジェクトサイズ、オブジェクト位置の条件に対して合致していれば1、合致していなければ-1を表す変数である。紐付けNoに対して与えられている条件について
図16(c)中の「-」のようにブランクである場合は、T=0であるとする。SUMの値が大きいものに紐付く多重化情報Noの値を、最終的な選択結果とする。
【0130】
例えば紐付けNo値S2とS5とは両方とも、同一のオブジェクトサイズ条件を持つが、紐付けNo値S2はオブジェクトNo値I1を指定する一方で、紐付けNo値S5は指定がない。指定がない場合はT=0であるため、その分評価値は下がる。仮に全ての重みが同値で、認識したオブジェクトのオブジェクトNo値がI1であり、オブジェクトサイズがSize≧SIZE_THを満たしたとすれば、評価結果として対象のオブジェクトに対して、多重化情報No値B2が選択される。しかし、認識したオブジェクトのオブジェクトNo値がI1でなかった場合は、対象のオブジェクトに対して、多重化情報No値B5が選択される。
【0131】
SUMに対して閾値を設定することも可能である。その場合、全ての紐付けNo値に対応するSUMが閾値を超えられなかった場合は、「非選択」を示す値を選択結果として出力する。「非選択」とされた対象オブジェクトについてのレイアウト処理は、第1の実施形態と同様である。
【0132】
図17は、本実施形態における情報選択処理のフローチャートである。尚、
図17の各ステップの内、第1の実施形態と同様のステップについては、説明を割愛する(
図13参照)。
【0133】
S1701において、情報選択部307は、注目する紐付けNo値に対応する評価値SUMを算出する。
【0134】
S1702において、情報選択部307は、全ての紐付けNo値に対する評価値SUMの中で最も大きい値を、SUM_MAXと設定する。そして、情報選択部307は、SUM_MAXが所定の閾値SUM_TH以上か判定する。本ステップの判定結果が真の場合、S1703に進む一方、該判定結果が偽の場合、S1306に進む。
【0135】
S1703において、情報選択部307は、SUM_MAXとなる紐付けNo値に対応する多重化情報No値を出力し、画像処理装置のCPUは、該出力された値を取得する。
【0136】
<本実施形態の効果>
本実施形態では、多様なユースケースに関わるオブジェクト情報や、多重化情報を紐付けるために、複数の評価項目と評価ステップとを用いて多重化情報を選択する。これにより、多様なユースケースに対して多重化情報が自動で選択されることになり、ユーザの負荷が軽減される。
【0137】
また、評価ステップを用いて、オブジェクトの種類や大きさ、位置、数に依って、多重化情報をオブジェクト領域に重畳させて埋め込むか、または、オブジェクト領域に重畳させないで埋め込むか、を判定することもできる。ユーザが画像中のオブジェクトに対して多重化情報を重畳して埋め込みたいか否かがレイアウト時に考慮されることから、ユーザの負荷が軽減される。
【0138】
[第3の実施形態]
第1の実施形態、第2の実施形態では、多重化情報を選択する処理や選択された多重化情報をレイアウトする処理が自動化されている。従って、埋め込み側ユーザは、多重化情報として何が選択されたか、選択された多重化情報がどこにレイアウトされたか知る術がない。そこで本実施形態では、前述の実施形態におけるフローにおいて、手動調整処理に関するステップを追加することで、埋め込み側ユーザにとって予期せぬ情報が選択されたり、レイアウトされたりすることを、未然に防止する。
【0139】
図18は、本実施形態における情報選択処理のフローチャートである。第2の実施形態における情報選択処理(
図17参照)と比べると、追加処理(S1801)が発生していることが分かる。尚、以下の説明では、第2の実施形態と重複する内容については説明を割愛する。
【0140】
S1801において、情報選択部307は、選択結果として出力された多重化情報をユーザに提示する。詳しくは、情報選択部307は、選択結果として出力された多重化情報に関する内容を、記録装置や操作端末の表示装置(具体的にはパネル等)を介して表示する。ユーザにとって不都合な情報である場合は、処理を中断して、埋め込む多重化情報を選択する処理を再び実行することが可能である。また仮に、選択結果として、複数の多重化情報の候補が出力された場合は、ユーザは提示された複数の多重化情報の候補の中から最適な多重化情報を選択することが可能である。
【0141】
図19は、本実施形態における多重化情報レイアウト処理のフローチャートである。第1の実施形態における多重化情報レイアウト処理(
図14参照)と比べると、追加処理(S1901)が発生していることが分かる。尚、以下の説明では、第1の実施形態と重複する内容については説明を割愛する。
【0142】
S1901では、多重化情報レイアウト部310は、レイアウト結果として出力された埋め込み位置情報をユーザに提示する。詳しくは、多重化情報レイアウト部310は、レイアウト結果として出力された埋め込み位置情報に関する内容を、記録装置や操作端末の表示装置(具体的にはパネル等)を介して表示する。ユーザにとって不都合な埋め込み位置である場合は、処理を中断して、埋め込み位置をユーザが微調整することや、埋め込む位置を選択する処理を再び実行することが可能である。また仮に、複数の埋め込み位置候補が出力された場合は、ユーザは提示された複数の埋め込み位置候補の中から最適な埋め込み位置を選択する事が可能である。埋め込み位置のユーザへの提示は、
図15に示すように多重化情報の埋め込み領域をオブジェクトの領域に重畳させて表示することが有効である。
【0143】
<本実施形態の効果>
本実施形態では、多重化情報の自動選択処理や自動レイアウト処理に対して、手動確認のステップを設けている。これにより、ユーザにとって最適な多重化情報を確実に埋め込むことが可能となる。尚、ユーザによる手動ステップを設けるため、前述の実施形態と比べてユーザの負荷は増える。しかし、本実施形態では、多重化情報の候補や埋め込み位置の候補を提示しており、候補を何ら提示することなくDB全体から多重化情報を選択させて埋め込む形態より、ユーザの負荷は軽減されている。
【0144】
[第4の実施形態]
第1の実施形態、第2の実施形態では、紐付け情報としてオブジェクトNo等を用いていた。通常、紐付け情報は手動で設定するが、自動で設定することも可能である。
【0145】
例えば、オブジェクトDB306に記憶する教師データを動画から取得することを想定する。動画内のあるフレームを抜き出して、該抜き出したフレームに対してオブジェクト認識を実施することが可能である。一方で、動画には音声が含まれているため、フレームの前後数秒間の音声を多重化情報として設定する事が可能である。フレームに写る人物をオブジェクト認識した場合、その「人物」の情報と、そのときの「音声」の情報とを、互いに紐付けることが可能である。このような、ある画像に対して、画像に写るオブジェクトの種類を示す情報と、多重化可能な情報とが一揃いで含まれるような情報に対しては、紐付け情報を自動的に生成することができる。なお、多重化可能な情報(本実施形態では音声)は、付加情報に対応する情報と呼ぶこともある。
【0146】
別の例として、SNS情報がある。SNSでは一般的に、写真と、コメントとが同時に記載されている。コメントを多重化情報として埋め込みたい場合は、写真に写る「人物」の情報と、そのときの「コメント」の内容とを、互いに紐付けることが可能である。
【0147】
<本実施形態の効果>
本実施形態によれば、紐付け情報を自動で設定することが可能となるため、手動で設定する場合と比べて、ユーザの負荷を減らすことができる。
【0148】
[その他の実施形態]
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。尚、本発明は、前述の実施形態の要素を適宜組み合わせてもよい。
【符号の説明】
【0149】
305 オブジェクト認識部
307 情報選択部
310 多重化情報レイアウト部