(57)【特許請求の範囲】
【請求項１】
情報処理装置を用いて対象データの内容に応じたコードを生成する方法であって、
前記対象データを複数のサンプリング範囲に分割するステップと、
前記複数のサンプリング範囲の各々に含まれ、それぞれが数値で表される１又は複数種の要素データのうち少なくとも１つの要素データについて当該サンプリング範囲ごとに当該要素データの平均値を求めるステップと、
各前記サンプリング範囲の平均値を各前記サンプリングの平均値の総和で除算して得られる相対差を、各前記サンプリング範囲について求めるステップと、
前記サンプリング範囲ごとの前記相対差ないしその上位から所定桁数分の数値を、文字列データとして連結することによって前記対象データに対応するコードを生成するステップと、
を含む、コード生成方法。
【請求項２】
前記コードと前記対象データに関連する付加データとを紐づけたデータベースを生成するステップ、を更に含む、
請求項１に記載のコード生成方法。
【請求項３】
前記対象データは、静止画像データ、動画像データ又は音データを含む、
請求項１又は２に記載のコード生成方法。
【請求項４】
前記コードは、１６進数の文字列データで表される、
請求項１〜３の何れか１項に記載のコード生成方法。
【請求項５】
情報処理装置に実行され、対象データの内容に応じたコードを生成する装置として当該情報処理装置を機能させるためのプログラムであって、
前記情報処理装置に、
前記対象データを複数のサンプリング範囲に分割するステップと、
前記複数のサンプリング範囲の各々に含まれ、それぞれが数値で表される１又は複数種の要素データのうち少なくとも１つの要素データについて当該サンプリング範囲ごとに当該要素データの平均値を求めるステップと、
各前記サンプリング範囲の平均値を各前記サンプリングの平均値の総和で除算して得られる相対差を、各前記サンプリング範囲について求めるステップと、
前記サンプリング範囲ごとの前記相対差ないしその上位から所定桁数分の数値を、文字列データとして連結することによって前記対象データに対応するコードを生成するステップと、
を実行させる、プログラム。
【請求項６】
対象データの内容に応じたコードを生成する装置であって、
前記対象データを複数のサンプリング範囲に分割する分割部と、
前記複数のサンプリング範囲の各々に含まれ、それぞれが数値で表される１又は複数種の要素データのうち少なくとも１つの要素データについて当該サンプリング範囲ごとに当該要素データの平均値を求める平均値算出部と、
各前記サンプリング範囲の平均値を各前記サンプリングの平均値の総和で除算して得られる相対差を、各前記サンプリング範囲について求める相対差算出部と、
前記サンプリング範囲ごとの前記相対差ないしその上位から所定桁数分の数値を、文字列データとして連結することによって前記対象データに対応するコードを生成するコード生成部と、
を含む、コード生成装置。
【請求項７】
請求項１記載の方法により、前記対象データとしての参照用データに応じて求められた前記コードである参照用コードを取得するステップと、
請求項１記載の方法により、前記対象データとしての特定対象データに対応する前記コードである特定対象コードを生成するステップと、
前記参照用コードと前記特定対象コードとを比較してそれらの一致／不一致を定めるステップと、
を含む、データ照合方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コード生成方法、コード生成装置、プログラム、データ照合方法に関する。
【背景技術】
【０００２】
予め用意した参照用データとの比較・照合により対象データの内容を特定する技術が知られている。当該技術の代表例としては画像認識技術が挙げられる（例えば特開２０１９−２８９８５号公報参照）。しかし、従来技術では、参照用データを得るための学習時間が膨大に必要であり、あるいは対象データとの比較・照合にかかる処理負荷が大きく高速な処理が難しいという点で改良の余地があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１９−２８９８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明に係る具体的態様は、画像や音声等の対象データを少ないデータ量でコード化する新規な技術を提供することを目的の１つとする。
【課題を解決するための手段】
【０００５】
［１］本発明に係る一態様のコード生成方法は、情報処理装置を用いて対象データの内容に応じたコードを生成する方法であって、（ａ）前記対象データを複数のサンプリング範囲に分割するステップと、（ｂ）前記複数のサンプリング範囲の各々に含まれ、それぞれが数値で表される１又は複数種の要素データのうち少なくとも１つの要素データについて当該サンプリング範囲ごとに当該要素データの平均値を求めるステップと、（ｃ）各前記サンプリング範囲の平均値を各前記サンプリングの平均値の総和で除算して得られる相対差を、各前記サンプリング範囲について求めるステップと、（ｄ）前記サンプリング範囲ごとの前記相対差ないしその上位から所定桁数分の数値を文字列データとして連結することによって前記対象データに対応するコードを生成するステップと、を含む、コード生成方法である。
［２］本発明に係る一態様のプログラムは、上記［１］のコード生成方法を情報処理装置に実行させる、プログラムである。
［３］本発明に係る一態様のコード生成装置は、上記［１］のコード生成方法における各ステップを実行する手段を備える、コード生成装置である。
［４］本発明に係る一態様のデータ照合方法は、上記［１］のコード生成方法を用いてデータ照合を行う、データ照合方法である。
【０００６】
上記構成によれば、画像や音声等の対象データを少ないデータ量でコード化する新規な技術が提供される。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１実施形態のコード化方法について説明するための図である。
【図２】図２は、上記した方法により生成されるコードと各コードに対応するコンテンツのデータベース構成例を示す図である。
【図３】図３は、データベースを用いた照合の流れを概念的に説明する図である。
【図４】図４は、フレキシブルな照合を行う具体的な方法を説明するための図である。
【図５】図５は、上記した図４に示した例におけるサンプリング範囲Ｓ１〜Ｓ９のそれぞれに対応する差分を折れ線グラフで示した図である。
【図６】図６は、上記した方法を用いてコード生成を行うためのコード生成装置の構成例を示すブロック図である。
【図７】図７は、上記方法により生成されるコードを用いて対象データの照合を行うユーザ装置の構成例を示すブロック図である。
【図８】図８は、コード生成装置、ユーザ装置のそれぞれにおける情報処理部を実現するコンピュータの構成例を示す図である。
【図９】図９（Ａ）は、コード生成装置の動作手順を示すフローチャートである。また、図９（Ｂ）は、ユーザ装置の動作手順を示すフローチャートである。
【図１０】図１０は、上記した実施形態に係るコード化技術の応用例１を説明するための図である。
【図１１】図１１は、上記した実施形態に係るコード化技術の応用例２を説明するための図である。
【図１２】図１２は、上記した実施形態に係るコード化技術の応用例３を説明するための図である。
【図１３】図１３は、上記した実施形態に係るコード化技術の応用例４を説明するための図である。
【図１４】図１４は、上記した実施形態に係るコード化技術の応用例５を説明するための図である。
【図１５】図１５は、上記した実施形態に係るコード化技術の応用例６を説明するための図である。
【図１６】図１６は、上記した実施形態に係るコード化技術の応用例７を説明するための図である。
【図１７】図１７は、第２実施形態のコード化方法について説明するための図である。
【図１８】図１８は、１６進数の文字コードで表記されたコードの一例を示す図である。
【図１９】図１９は、第２実施形態のコードを用いた照合方法を説明するための図である。
【図２０】図２０は、第３実施形態のコード化方法について説明するための図である。
【図２１】図２１は、第３実施形態のコードを用いた照合方法を説明するための図である。
【図２２】図２２は、各実施形態の利用方法を示す概念図である。
【発明を実施するための形態】
【０００８】
＜第１実施形態＞
図１は、第１実施形態のコード化方法について説明するための図である。ここではコード化の対象となるデータ（対象データ）の一例として画像データを挙げて説明する。また、本明細書におけるコード化とは、対象データに含まれる所定の数値に基づいてこの対象データを特定し得る文字列データを生成することをいう。
【０００９】
対象データとして図１（Ａ）に示すような画像データを想定する。画像データは、カラー画像でもモノクロ画像でもよい。画像データには、ピクセル（画素）ごとに輝度、色相、彩度、色差などの値（要素データ）が含まれるものとする。ここでは理解を容易にするするために、要素データとして輝度値を用いて説明する。
【００１０】
図１（Ｂ）に示すように、画像データを複数のサンプリング範囲に分割する。ここでは画像データを９つのサンプリング範囲Ｓ１、Ｓ２、Ｓ３・・・Ｓ９に分割する。各サンプリング範囲Ｓ１等は、例えば、それぞれ幅と高さがともに４０ピクセルであり、各サンプリング範囲Ｓ１等に含まれるピクセル総数はそれぞれ１６００であるとする。また、各ピクセルの輝度値（階調数）は、０〜２５５の範囲の数値で与えられているものとする。
【００１１】
このとき、各サンプリング範囲Ｓ１等に含まれるピクセルのピクセル値（ここでは輝度値）をｐｘ１、ｐｘ２、・・・ｐｘ１６００とすると、各サンプリング範囲Ｓ１等のそれぞれにおいて、ピクセル値の平均値は以下のように求められる。
ピクセル値の合計値：  ｓｕｍＳｘ＝ｐｘ１＋ｐｘ２＋ｐｘ３＋・・・ｐｘ１６００
ピクセル値の平均値：  Ａｘ＝ｓｕｍＳｘ／１６００
【００１２】
図１（Ｃ）に各サンプリング範囲Ｓ１等のそれぞれにおけるピクセル値の平均値の一例を示す。図示の例では、サンプリング範囲Ｓ１の平均値Ａ１が１２８、サンプリング範囲Ｓ２の平均値Ａ２が８６、サンプリング範囲Ｓ３の平均値Ａ３が１３４、サンプリング範囲Ｓ４の平均値Ａ４が１０１、サンプリング範囲Ｓ５の平均値Ａ５が６８、サンプリング範囲Ｓ１の平均値Ａ６が１０１、サンプリング範囲Ｓ７の平均値Ａ７が１１５、サンプリング範囲Ｓ８の平均値Ａ８が９１、サンプリング範囲Ｓ９の平均値Ａ９が１２１である。
【００１３】
次に、各サンプリング範囲Ｓ１等における平均値の相対差を以下のように求める。
平均値の合計値：  ｓｕｍＡ＝Ａ１＋Ａ２＋Ａ３＋・・・＋Ａ９
＝９４５
平均値の相対差：  Ｖｘ＝（１００×Ａｘ）／９４５
【００１４】
図１（Ｄ）に各サンプリング範囲Ｓ１等のそれぞれにおける平均値の相対差の一例を示す。図示の例では、サンプリング範囲Ｓ１の相対差Ｖ１が１３．５４％、サンプリング範囲Ｓ２の相対差Ｖ２が９．１０％、サンプリング範囲Ｓ３の相対差Ｖ３が１４．１７％、サンプリング範囲Ｓ４の相対差Ｖ４が１０．６８％、サンプリング範囲Ｓ５の相対差Ｖ５が７．１９％、サンプリング範囲Ｓ６の相対差Ｖ６が１０．６８％、サンプリング範囲Ｓ７の相対差Ｖ７が１２．１６％、サンプリング範囲Ｓ８の相対差Ｖ８が９．６２％、サンプリング範囲Ｓ９の相対差Ｖ９が１２．８０％である。
【００１５】
これら各サンプリング範囲Ｓ１等での相対差を用いて、それぞれの相対差の上位から小数点第２位までの桁の数値（全体で４桁）を文字列データとして抽出する。例えば、サンプリング範囲Ｓ１からは「１３５４」という文字列データが抽出される。なお、十の位に値がないものや小数点以下の桁で値がないものは当該値を０とする。例えば、９．１％であれば「０９１０」となる。
【００１６】
このようにして各サンプリング範囲Ｓ１等から抽出された文字列データを連結する。連結順序については特に限定はなく任意に定めることができる。ここではサンプリング範囲Ｓ１、Ｓ２・・・Ｓ９の順に連結することにする。これにより、上記した例においては「１３５４０９１０１４１７１０６８０７１９１０６８１２１６０９６２１２８０」という文字列データが得られる（図１（Ｅ）参照）。本実施形態ではこのようにして生成される文字列データを対象データに対応するコードとして用いる。
【００１７】
なお、相対差については必ずしも百分率で表さなくてもよい。また、各サンプリング範囲に対応する文字列データの連結順については、予め定めた順序を常に使用するという前提のもとであればその順序は自由であり、例えばサンプリング範囲Ｓ９、Ｓ８・・・Ｓ１の順に連結すると定めておくこともできる。また、各サンプリング範囲において相対差を何桁まで用いるかも任意である。サンプリング範囲の分割数も任意である。サンプリング範囲の分割数を少なくすればより簡易的で高速に照合を行うことが可能で、他方、サンプリング範囲の分割数を増加させることでより精度の高い照合を行うことが可能になる。
【００１８】
図２は、上記した方法により生成されるコードと各コードに対応するコンテンツのデータベース構成例を示す図である。ここではコンテンツの例として画像を挙げる。図示のように、予め各画像１、２・・・に対応するコードが上記方法によって生成され、それらを紐づけたデータベースが構築される。例えば、コード「２１１０・・・」には画像１が対応し、コード「１０５３・・・」には画像２が対応する。ここで、コンテンツとしての画像１、２・・・というのは、画像データそのものであってもよいし、画像データの内容に対応した付加情報（例えば、画像に含まれる物体等を表す文字列、現実空間上での位置情報、時刻情報、その他任意の付加情報）のデータを含んでもよい。このようなデータベースを予め構築しておくことで、このデータベースの各コードを参照用データとして用いて、特定対象データがどのコンテンツに対応するものであるかを照合することが可能となる。
【００１９】
図３は、データベースを用いた照合の流れを概念的に説明する図である。例えば、撮影して得られた画像データに対して上記方法によりコード化が行われ、この画像データに対応するコードである特定対象コード（図示の例では「８８４１・・・」）が生成される。この生成された特定対象コードとデータベースの各参照用コードと照合し、生成された特定対象コードと一致する参照用コードがデータベースに存在すれば、撮影された画像に対応するコンテンツ（図示の例では「画像３７」）を特定することができる。
【００２０】
例えば、カメラを備えた端末装置（一例としてスマートフォン）を用いて任意の空間を撮影した画像データが得られたとする。また、端末装置には、上記したコード化を実行可能なアプリケーションプログラムが予めインストールされているとともに、図２に示したようなデータベースが記憶されているものとする。なお、データベースはネットワークを介して端末装置と通信可能なサーバに置かれていてもよい。この場合、例えば、ユーザがカメラを向けて撮影された風景の画像に対応するコンテンツが特定されれば、そのコンテンツに関わる情報をユーザの端末装置の画面上に表示させるといった使い方を実現できる。
【００２１】
なお、本願発明者の検討によると、対象データが空間を撮影して得た画像データであれば、サンプリング範囲を６４個以上となるようにしてコード化を行うことで、実用上、必要十分な精度で照合・判定を行うことが可能になるという知見が得られている。この条件で生成されるコードのデータ量は１９２バイト程度であり、非常に小さいデータ量であるといえる。
【００２２】
ここで、図３を用いて説明した照合の原理によると、コード同士の文字列データがすべて一致している場合に各コードに対応するコンテンツが同じと判定されるが、以下のように判定の際における許容範囲を設定することで、よりフレキシブルな照合を行うことができる。
【００２３】
図４は、フレキシブルな照合を行う具体的な方法を説明するための図である。また、図５は、上記した図４に示した例におけるサンプリング範囲Ｓ１〜Ｓ９のそれぞれに対応する差分を折れ線グラフで示した図である。
【００２４】
図４（Ａ）に示す例では、参照用コードＡと特定対象コードＢのそれぞれの文字列データについて、上記したサンプリング範囲に対応する４桁ごとに区切り、それぞれの文字列データを４桁の数値として扱い、対応するサンプリング範囲ごとに数値の差分（Ａ−Ｂ）を求める。例えば、サンプリング範囲Ｓ１に対応する数値は、参照用コードにおいて「１３５４」であり、特定対象コードにおいて「１３６８」であるので、両者の差分を求めると「−１４」になる。同様に、他のサンプリング範囲Ｓ２〜Ｓ９についてもそれぞれ差分を求めると、＋１５、０、−１２、＋１９、＋１７、＋１５、０、＋１８となる。このとき、各サンプリング範囲に対応する差分の許容範囲を例えば±２０と予め定めておくとすると、図４（Ａ）に示す例ではサンプリング範囲Ｓ１〜Ｓ９のいずれに対応する差分もこの許容範囲に収まる。このような場合に、参照用コードと特定対象コードとは「同一（一致）」であると判断することができる。図５に示すように、参照用コードと特定対象コードが同一であると判断できる場合（ＡとＢ）ではグラフがほぼ重なる。
他方、図４（Ｂ）に示す例では、参照用コードＡと特定対象コードＣのそれぞれの文字列データについて、各サンプリング範囲Ｓ１〜Ｓ９についての差分は、＋７４、−１０１、＋２７、０、−２６１、＋３８、＋１２６、−２４９、＋２７３となる。各サンプリング範囲に対応する差分の許容範囲が±２０と予め定められているとすると、図４（Ｂ）に示す例ではサンプリング範囲Ｓ４に対応する差分だけ許容範囲に収まり、それ以外のサンプリング範囲に対応する差分は許容範囲に収まっていない。このような場合に、参照用コードと特定対象コードとは「異なる（不一致）」と判断することができる。この場合、図５に示すように、参照用コードと特定対象コードが異なると判断できる場合（ＡとＣ）ではグラフが重ならない。
【００２５】
なお、許容範囲が設けられていないとすると、画像の撮影条件（反射光、環境光など）が全く同じ状態であることを意味する。これに対して、許容範囲を設けた場合には、光の状態など微弱な環境変化や、利用者の感覚に対応した「解」を導き出すことが可能となる。この許容範囲（環境変数）を用いることにより、人間の目による感覚に近い判断（〜かもしれない）を実現できる。許容範囲の大きさについては任意に設定できるが、本願発明者の検討によれば上記した±２０程度に設定することが好ましい。
【００２６】
図６は、上記した方法を用いてコード生成を行うためのコード生成装置の構成例を示すブロック図である。図示のコード生成装置１は、情報処理部１０、カメラ１１、マイク１２、記憶装置１３、操作デバイス１４、表示デバイス１５を含んで構成されている。
【００２７】
情報処理部１０は、コード生成に係る情報処理を行う。この情報処理部１０は、機能ブロックとして、サンプリング処理部２０、特徴値算出部２１、エンコード処理部２３、コード記録処理部２４を備える。情報処理部１０は、例えばＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）等を有するコンピュータを用い、このコンピュータにおいて所定の動作プログラムを実行させることによって実現される。なお、本実施形態ではサンプリング処理部２０が「分割部」に対応し、特徴値算出部が「平均値算出部」及び「相対差算出部」に対応し、エンコード処理部２３が「コード生成部」に対応する。
【００２８】
カメラ１１は、コード生成の対象となり得る空間、物体などを撮影してその画像を生成するものである。ここでいう画像とは、必ずしも可視光範囲での画像に限らず、例えば熱画像であってもよいし、赤外線画像などであってもよい。カメラ１１は、撮影した画像の画像データ（ないし画像信号）を情報処理部１０へ出力する。
【００２９】
マイク１２は、コード生成の対象となり得る音を収音して電気信号に変換するものである。ここでいう音とは、必ずしも可聴範囲の音に限らず、超音波、低周波音などであってもよい。マイク１２から出力される音の信号は情報処理部１０へ出力され、情報処理部１０においてデジタルデータに変換されて取り込まれる。
【００３０】
記憶装置１３は、情報処理部１０の構成、動作に必要なプログラムや各種データを記憶するとともに、情報処理部１０によって生成されたコードのデータベースを記憶する。この記憶装置１３は、例えばハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）などの不揮発性の記憶装置である。
【００３１】
操作デバイス１４は、情報処理部１０の動作に必要な情報の入力などに用いられるものであり、例えばキーボード、マウス、スイッチ、タッチパネルなどを含み得る。表示デバイス１５は、情報処理部１０の動作に関する情報の表示に用いられるものであり、例えば液晶表示デバイス、有機ＥＬ表示デバイスなどが用いられる。
【００３２】
サンプリング処理部２０は、コード生成の対象データを複数のサンプリング範囲に分割する処理を行う（図１（Ｂ）参照）。対象データは、例えば画像データや音データである。音データの場合には、所定時間ごとに区切ってそれらの区間に含まれる音データを各サンプリング範囲に対応するデータとすることができる（後述の第３実施形態参照）。
【００３３】
特徴値算出部２１は、サンプリング処理部２０によって分割された各サンプリング範囲に含まれる所定データの平均値を求めるとともに（図１（Ｃ）参照）、各サンプリング範囲に対応する平均値の相対差を求める（図１（Ｄ）参照）。相対差は、例えば上記した例のように百分率で表されるがこれに限定されない。
【００３４】
エンコード処理部２３は、特徴値算出部２１によって算出された各サンプリング範囲に対応する相対差（又は平均値）を用いて、対象データに対応するコード（文字列データを連結したコード）を生成する。
【００３５】
コード記録処理部２４は、エンコード処理部２３によって生成されたコードと、このコードに対応するコンテンツを特定する情報のデータとを関連づけて記憶装置１３へ記録して、コードのデータベース（図２参照）を生成する。
【００３６】
図７は、上記方法により生成されるコードを用いて対象データの照合を行うユーザ装置の構成例を示すブロック図である。図示のユーザ装置２は、情報処理部５０、カメラ５１、マイク５２、記憶装置５３、操作デバイス５４、表示デバイス５５を含んで構成されている。このユーザ装置２は、例えばユーザが所持するスマートフォン等の情報処理装置に対して所定のアプリケーションプログラムを予めインストールすることによって実現されるものである。
【００３７】
情報処理部５０は、コード照合に係る情報処理を行う。この情報処理部５０は、機能ブロックとして、サンプリング処理部６０、特徴値算出部６１、エンコード処理部６３、照合処理部６４を備える。情報処理部５０は、例えばＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）等を有するコンピュータを用い、このコンピュータにおいて所定の動作プログラムを実行させることによって実現される。
【００３８】
なお、カメラ５１、マイク５２、記憶装置５３、操作デバイス５４、表示デバイス５５の各々の構成および動作については上記したコード生成装置１におけるカメラ１１、マイク１２、記憶装置１３、操作デバイス１４、表示デバイス１５と同様であるので、ここでは詳細な説明を省略する。また、サンプリング処理部６０、特徴値算出部６１、エンコード処理部６３の各々の構成および動作についても、上記したコード生成装置１におけるサンプリング処理部２０、特徴値算出部２１、エンコード処理部２３と同様であるので、ここでは詳細な説明を省略する。
【００３９】
情報処理部５０の照合処理部６４は、サンプリング処理部６０、特徴値算出部６１、エンコード処理部６３のそれぞれの処理によって得られた特定対象コードと記憶装置５３に予め格納されているデータベース（図２参照）を照合し、特定対象コードに対応するコンテンツを特定する。照合処理部６４による具体的な照合方法は、コード同士の完全一致を条件とする方法であってもよいし、上記したようにコード同士の相違に許容範囲を設けたフレキシブルな方法であってもよい。特定結果は、例えば表示デバイス５５に表示される。
【００４０】
図８は、コード生成装置、ユーザ装置のそれぞれにおける情報処理部を実現するコンピュータの構成例を示す図である。図示のコンピュータは、相互に通信可能に接続されたＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、記憶装置２０４、外部インタフェース（Ｉ／Ｆ）２０５を含んで構成されている。ＣＰＵ２０１は、ＲＯＭ２０２から読み出される基本制御プログラムをベースにして動作し、記憶装置２０４に格納されたプログラム（アプリケーションプログラム）２０６を読み出してこれを実行することにより、上記したコントローラ１３の機能を実現する。ＲＡＭ２０３は、ＣＰＵ２０１の動作時に使用させるデータを一時的に記憶する。記憶装置２０４は、例えばハードディスク、ソリッドステートドライブなどの不揮発性の記憶装置であり、プログラム２０６など種々のデータを格納する。外部インタフェース２０５は、ＣＰＵ２０１と外部装置を接続するインタフェースであり、例えばカメラ１１(５１)、マイク１２（５２）、操作デバイス１４（５４）、表示デバイス１５（５５）とＣＰＵ２０１との接続に用いられる。
【００４１】
図９（Ａ）は、コード生成装置の動作手順を示すフローチャートである。また、図９（Ｂ）は、ユーザ装置の動作手順を示すフローチャートである。なお、いずれの動作手順においても、情報処理の結果に矛盾や不整合を生じない限りにおいて適宜処理順序を入れ替えることも可能であり、またここで言及しない他の処理を追加してもよく、それらの実施態様も排除されない。
【００４２】
まず、コード生成装置の動作手順を説明する。
コード生成装置１に対象データが入力されると（ステップＳ１１）、サンプリング処理部２０は、この対象データを複数のサンプリング範囲に分割する処理を行う（ステップＳ１２）。ここで、対象データは、カメラ１１から入力される画像データでもよいし、マイク１２から入力される信号に対応する音データでもよいし、記憶装置１３に予め格納されていた画像データもしくは音データでもよい。また、ネットワークを介してサーバ等（図示せず）から送信されてコード生成装置１で受信されたものであってもよい。
【００４３】
次に、特徴値算出部２１は、サンプリング処理部２０によって分割された各サンプリング範囲に含まれる所定の要素データの平均値を求める（ステップＳ１３）。ここでの要素データとは、上記のとおり対象データに含まれており対象データの内容、特徴あるいは特性を形作るためのデータであればよい。例えば、上記したように画像データであれば各画素の輝度等であり、音データであれば所定のサンプリング時間ごとの音の大きさであってもよい。
【００４４】
次に、特徴値算出部２１は、各サンプリング範囲に対応する平均値の相対差を求める（ステップＳ１４）。相対差は、例えば上記した例のように百分率で表されるがこれに限定されない。
【００４５】
次に、エンコード処理部２３は、特徴値算出部２１によって算出された各サンプリング範囲に対応する相対差を用いて、対象データに対応する参照用コード（文字列データを連結したコード）を生成する（ステップＳ１５）。
【００４６】
次に、コード記録処理部２４は、エンコード処理部２３によって生成された参照用コードと、この参照用コードに対応するコンテンツを特定する情報のデータとを関連づけて記憶装置１３へ記録して、参照用コードのデータベース（図２参照）を生成する（ステップＳ１６）。
【００４７】
以上の一連の情報処理が、必要な回数を繰り返して実行されることで、複数のコンテンツのそれぞれに対応する参照用コードが生成され、それらの情報を含んだデータベースが得られる。なお、生成されたデータベースは、ネットワークを介して通信可能に接続されたサーバ装置等（図示せず）に送信され、格納されてもよい。それにより、ネットワークを介してデータベースを複数のユーザに対して共有させることができる。
【００４８】
次に、ユーザ装置の動作手順を説明する。
ユーザ装置２に特定対象データが入力されると（ステップＳ２１）、サンプリング処理部６０は、この特定対象データを複数のサンプリング範囲に分割する処理を行う（ステップＳ２２）。ここでの特定対象データも、カメラ１１から入力される画像データでもよいし、マイク１２から入力される信号に対応する音データでもよいし、記憶装置１３に予め格納されていた画像データもしくは音データでもよい。
【００４９】
次に、特徴値算出部６１は、サンプリング処理部６０によって分割された各サンプリング範囲に含まれる所定の要素データの平均値を求める（ステップＳ２３）。ここでの要素データも、上記のとおり対象データに含まれており対象データの内容、特徴あるいは特性を形作るためのデータであればよい。
【００５０】
次に、特徴値算出部６１は、各サンプリング範囲に対応する平均値の相対差を求める（ステップＳ２４）。
【００５１】
次に、エンコード処理部６３は、特徴値算出部６１によって算出された各サンプリング範囲に対応する相対差を用いて、特定対象データに対応する特定対象コード（文字列データを連結したコード）を生成する（ステップＳ２５）。
【００５２】
次に、照合処理部６４は、記憶装置５３に予め格納されているデータベースを参照して、ステップＳ２５で生成された特定対象コードに対応するコンテンツを特定する（ステップＳ２６）。特定結果は、適宜、表示デバイス５５に表示される。記憶装置５３に格納されているデータベースは、例えばネットワークを介してサーバ等（図示せず）から送信されてユーザ装置２で受信されたものである。
【００５３】
以上が第１実施形態のコード生成及び照合に関する基本的な内容であり、次にその応用例をいくつか説明する。なお、以下の応用例に係るコード生成及び照合はいずれも上記のコード生成装置１およびユーザ装置２（あるいは他の装置）によって実行されるものである。
【００５４】
図１０は、上記した実施形態に係るコード化技術の応用例１を説明するための図である。ここでは、顔認証技術への応用例が示されている。ここでいう顔認証技術とは、ある画像に含まれる顔に対応する人物を特定する技術をいうものとする。また、ある画像とは、カメラによって撮影される静止画像でもよいし、動画像でもよい。動画像の場合には、フレームごとに得られる静止画像を用いることができる。図１０（Ａ）に示すように、ある人物の正面からの顔画像データ３００が与えられたとする。この顔画像データ３００に対して、公知技術を用いて、当該人物を上下左右の各方向から俯瞰した際に対応する顔画像データを自動生成する。もちろん、自動生成ではなく、当該人物から直接に撮影されてもよい。ここでは、正面の顔画像データ３００と、これを中心として自動生成（ないし撮影）された上下左右の各方向に対応する顔画像データの合計１５個の顔画像データが示されている。
【００５５】
これらの顔画像データに対して、上記のコード生成装置１によって、図１０（Ｂ）に示すようにそれぞれコード化を行って参照用コードを得る。ここでは、正面の顔画像データ３００に対応するコード１、それ以外の上下左右各方向の顔画像データに対応するコード２〜コード１５が得られている。これら１５個のコード１〜コード１５をひとまとまりの顔認証用データとして紐づける。例えば、識別情報（ＦａｃｅＩＤ）として各コードに「ｘｘｘｘｘ＿ＣＥＣ」といった識別情報を付与してこれらと紐づけることができる。また、識別情報には、特定対象となる人物に関する属性情報（例えば、氏名、年齢、所属など）が紐づけられる。
【００５６】
このような顔認証用データを予め生成し記憶しておくことで、例えばユーザ装置２（又は他の装置）において、リアルタイムにカメラから得られる画像データに基づいて顔認証を行うことができる。具体的な照合方法は種々考えられ、例えばコード１〜コード１５のいずれか１つでも合致するものがあればその人物と特定してもよいし、複数個のコードが合致することを条件としてもよい。本実施形態のコード化技術により得られるコードは不可逆の文字列データ（テキストデータ）であり、顔画像データ自体は用いないため、例えば顔認証用データがネットワークサーバ上に保存されている場合に、万一、情報漏洩したとしてもプライバシーの保護を図ることができる。また、１個のコードのデータサイズは数百バイトであるから、顔認証に必要なデータ容量を飛躍的に小さくすることができる。例えば、１個の顔画像データのデータサイズが１００キロバイトであるとすると１５個の顔画像データのデータ容量は１５００キロバイトとなるのに対して、１個のコードのデータサイズは例えば１９２バイト程度にできるので１５個のコードのデータ容量としても２８８０バイトであり、データ容量の差は歴然である。
【００５７】
図１１は、上記した実施形態に係るコード化技術の応用例２を説明するための図である。ここでは、空間などの画像データを複数の部分画像に分割し、それぞれの部分画像でコードを生成して画像認識（空間認識）を行う場合の応用例が示されている。具体的には、上記のコード生成装置１により、図１１（Ａ）に示すように、対象データとしての画像データ４００が複数（ここでは１２）の部分画像Ａ〜Ｌに分割される。そして、各部分画像Ａ〜Ｌのそれぞれに対して上記のコード化が行われる。部分画像Ａに対応して生成されたコードをＡ＿コードと表す。他の部分画像に対応するコードについても同様である。このようにして生成されたＡ＿コード等の１２個のコードは、１つの参照用コード群として紐づけて記録される。
【００５８】
特定対象データとしての画像データについて、同様にしてユーザ装置２（又は他の装置）によって複数の部分画像に分割して各々の部分画像に対応するコードが生成される。例えば、ユーザのカメラによってリアルタイムに撮影される静止画像、あるいは動画像の１フレーム分の画像に対して、コード生成が行われる。このとき、例えば図１１（Ｂ）に示すように、参照用データ群に対応する画像データ４００の撮影範囲と、ユーザによる特定対象データとしての画像データ４１０とが部分的に重複していたとする。ここでは、部分画像Ｅ、Ｆ、Ｉ、Ｊに対応する部分が重複しているとする。
【００５９】
この状態で、参照用コード群に対して、特定対象データである画像データ４１０から生成されるコード群を総当たりで参照したとすると、部分画像の総数Ｎ＝１２に対して、一致する部分画像の数Ｔ＝４、一致しない部分画像の数Ｆ＝８となる（図１１（Ｃ）参照）。整合率（認識率）をＴ／Ｎと定義し、非整合率をＦ／Ｎと定義すると、この例では整合率が約３３％（Ｔ／Ｎ＝４／１２）となり、非整合率が約６６％（Ｆ／Ｎ＝８／１２）となる。この整合率が何％以上であれば特定対象データと参照用データが一致すると判断するかは用途により異なり、適宜設定すればよい。また、整合率は、類似性の判断に用いることもできる。例えば上記のように整合率が約３３％という場合、似ている可能性が高い、近い場所を撮影しているが高いといった判断を行うこともできる。このような手法を用いれば、どのようなフレームインにも対応できる。また、部分画像の総数Ｎを多くするほど、認識精度を向上させることができる。その場合でも基本的にテキストデータによる検索、照合、判定であるため、一般に知られるテキスト検索と同等の高速な処理を行うことができる。
【００６０】
図１２は、上記した実施形態に係るコード化技術の応用例３を説明するための図である。ここでは、対象物の上下方向を判定する場合の応用例が示されている。対象物としては、上下方向で非対称な形状であれば特にその内容は問わない。例えば、工業機械でピスタチオを割るために上下方向を判定するような場合が挙げられる。
【００６１】
図１２（Ａ）に示すように、ある対象物５００をその上下方向での非対称性に着目し、２つの部分ａ、ｂに区分けする。一例として、部分ａは三角形とみなし、部分ｂを台形とみなす。部分ａの底辺と部分ｂの下底は等しく、かつ両者の高さも等しいとする。部分ａ、ｂを同一サイズの領域５１０、５１２（図中点線で示す矩形領域）に当てはめてそれぞれ部分ａ、ｂ以外の残余部分を比較すると、部分ａに対応する矩形領域５１０のほうが部分ｂに対応する矩形領域５１２に比べて残余部分が大きい。このような知見を元に、コード化技術を応用する。
【００６２】
具体的には、図１２（Ｂ）の左側に示すように、まず対象物５００が存在しない状態でベースとなる領域を撮影し、その画像データ５２０を複数（一例として数百個）の部分画像に分割してそれぞれに対応する参照用コードを生成し、その参照用コード群を記録しておく。
【００６３】
次に、図１２（Ｂ）の中央に示すように、ベースとなる領域に対象物５００が配置された状態で当該領域を撮影して得られる画像データ５２２に基づき、対象物５００のエッジを検出し、対象物５００の存在する有効領域５２４（図中、太線で示す矩形領域）を抽出する。図１２（Ｂ）に示すように、この抽出した矩形領域５２４の内部を、上下半分ずつの領域が同一の部分画像の数となるようにして分割し、各部分画像についてコード化する。なお、部分画像の分割の仕方は参照用コード群の生成時と同様にする。
【００６４】
次に、参照用コード群に対して、対象物５００が配置された状態で生成した特定対象コード群を照合すると、対象物の存在する領域に対応する各コードは一致せず、それ以外の領域に対応する各コードは一致することになる。図１２（Ｂ）においてコードの一致する領域については斜線模様を付して示している。図１２（Ｃ）に示すように、これらコードの一致する領域の数を、上記した有効領域の上半分の領域５２４ａ、下半分の領域５２４ｂに分けてそれぞれ計数する。図示の例では、有効領域の上半分の領域５２４ａにおいては２４個のコードが一致し、下半分の領域５２４ｂにおいては１３個のコードが一致することになる。この場合、有効領域の上半分の領域５２４ａが上記した部分ａに相当するので「上」、有効領域の下半分の領域５２４ｂが上記した部分ｂに相当するので「下」というように判定することができる。
【００６５】
図１３は、上記した実施形態に係るコード化技術の応用例４を説明するための図である。ここでは、映像（画像）の中の対象体（一例として動物）を予めコード化しておき、その参照用コード群を用いて、映像中に存在する対象体を認識する場合の応用例が示されている。具体的には、まず、図１３（Ａ）に示すように映像中の対象体６００（ここでは動物）に対して公知技術によってエッジ検出を行い、図１３（Ｂ）に示すようにこの対象体のエッジ６１０を抽出する。次に、図１３（Ｃ）に示すように、抽出されたエッジ６１０およびその内部領域６１２に対して複数の矩形領域をマッピングする。矩形領域の数は任意に設定でき、数が多いほど認識精度を向上させることができる。そして、マッピングされた各矩形領域の部分画像に対して、上記した方法により、それぞれの部分画像に対応する参照用コードを生成し、その参照用コード群を記録しておく。同様にして、対象体の各撮影方向などに対応する参照用コード群を生成し記録しておく。これらの参照用コード群には、対象体に関する情報（例えば、動物であればその名称などの属性情報）を紐づけて記録しておく。
【００６６】
次に、例えばリアルタイムに撮影される映像中から、上記と同様にして対象体のエッジ検出、矩形領域のマッピングを行い、各矩形領域の部分画像に対してコード化を行い、映像中の対象体に対応する特定対象コード群を生成する。この特定対象コード群を、予め記録されている参照用コード群と照合することにより、映像中に含まれる対象体を認識し、その有無や名称などの属性を特定することができる。
【００６７】
このように既存のエッジ検出技術と本実施形態のコード化技術を組み合わせることにより、コードの即時登録、即時照合も可能となり、認識精度の向上が実現できる。対象体が空間や電子データの場合でも同様である。本実施形態のコード化技術は、生成から登録、比較、照合、判定までをリアルタイムで実現することが可能であるため、認識精度や認識速度の向上を図ることができる。
【００６８】
図１４は、上記した実施形態に係るコード化技術の応用例５を説明するための図である。ここでは、例えば工業製品の製造時の外観検査工程への適用例が示されている。具体的には、まず図１４（Ａ）に示すように検査対象となる製品の外観を撮影して画像データ７００を得る。次に、図１４（Ｂ）に示すように、画像データ７００を任意の角度ごと（例えば１°ごと）に３６０°回転させて、それぞれの角度の画像データ７０１、７０２等を得る。そして、それぞれの角度の画像データに基づいてコード化を行い、各コードを参照用コードとして記録しておく。次に、図１４（Ｃ）に示すように、実際の外観検査工程において、例えばベルト上を流れてくる各製品を撮影して得られる画像データ７１０〜７１３からそれぞれコードを生成し、これを予め記録しておいた参照用コードと照合する。それにより、製品の配置の角度が一定ではなくても形状や色調などが一致していれば合格品（ＯＫ品）と判断し、一部の欠けや色調の相違などがある場合には不良品（ＮＧ品）と判断することができる。図示の例では画像データ７１１、７１３に対応する製品は合格品であり、画像データ７１０、７１３に対応する製品は不良品と判断できる。
【００６９】
このように予め参照用コードを生成する際に、１つの良品（不良のない製品）を１つの配置状態（角度）で撮影すれば、メモリ内処理により方向や角度が変わっても識別可能な複数の参照用コードを自動的に生成することができる。また、色情報もコードに埋め込むことにより形状だけでなく色調での判断も可能となる。
【００７０】
図１５は、上記した実施形態に係るコード化技術の応用例６を説明するための図である。例えば、製品の外観検査工程において製品が一定の配置で流れてくることが確定している場合には、角度を変えた参照用コードの生成は不要である。この場合は一定の配置にした良品に対応する１つの参照用コードで対応できる。ここでは一例としてパソコン用のキーボードの欠損、印刷不調、傷などの不良を検出する場合を考える。
【００７１】
まず、１５（Ａ）に示すように検査対象となる製品の外観を撮影して画像データ８００を得てコード化を行い、参照用コードとして記録しておく。このとき、図１５（Ｂ）に示すように、対象製品の画像データ８００を複数の矩形領域に分割してそれぞれに対応する部分画像８０１を得て、各部分画像８０１に対応する参照用コードの集合である参照用コード群を得ることが好ましい。次に、実際の外観検査工程において、例えばベルト上を流れてくる各製品を撮影して得られる画像データから特定対象コード（群）を生成し、これを予め記録しておいた参照用コード（群）と照合する。それにより、キーボードの欠損、印刷不調、傷などの不良が存在する場合にはそれを検出することができる。この場合に、図１５（Ｃ）に示すように、不一致となった参照用コードに基づいて不良が存在する領域８１０を特定することもできる。
【００７２】
図１６は、上記した実施形態に係るコード化技術の応用例７を説明するための図である。ここでは、対象体の形状と面積を求める方法を説明する。対象体は、一定の撮影領域に配置されて撮影されるものとする。この場合に、まず対象体が配置されていない状態で撮影領域の画像データを得て、これを複数の領域に分割し、各領域の部分画像に対してコード化を行う。これにより、図１６（Ａ）に示すように複数（図示の例では８１個）のコードＣｄ１１、Ｃｄ１２・・・Ｃｄ９９からなる参照用コード群が得られるので、この参照用コード群を記録しておく。
【００７３】
次に、対象体の配置された撮影領域の画像データを得て、これを複数の領域に分割し、各領域の部分画像に対してコード化を行う。それにより、特定対象コード群が得られる。これを上記の参照用コード群と照合する。すると、図１６（Ｂ）に示すように、コードの一致している領域９０１（図中の無模様矩形領域）と、コードの一致していない領域９０２、９０３（図中の模様が付された矩形領域）が得られる。コードの一致していない領域９０２、９０３は、対象体の存在する領域である。ここでは、１０％刻みで一致率を区分けてしている。コードが不一致の領域のうち、例えば図示の例では３０％〜４０％の一致率の領域９０２をつなぐことで対象体のエッジ、すなわち形状が得られる。また、このエッジ内の面積を求めることで対象体の平面視の面積を求めることができる。また、エッジ内において一致率の異なる領域９０３（ここでは例えば６０〜７０％の一致率）の部分に基づき、対象体の凹凸を推定することもできる。なお、コード同士の一致率の求め方は種々考えられるが、簡便な一例としては、コード同士をそれらの並び順に１文字ずつ比較して一致する文字の数を計数し、その数を全体の文字数で除算する方法を用いることができる。例えば、コードに３８４文字が含まれており、そのうち３７０文字が一致していれば一致率は約９６％となる。
【００７４】
＜第２実施形態＞
図１７は、第２実施形態のコード化方法について説明するための図である。ここではコード化の対象となるデータ（対象データ）の一例として画像データを挙げて説明する。なお、コード生成装置やユーザ装置の構成については第１実施形態と同様であり（図６、図７参照）、コード生成と照合に係る情報処理方法のみが異なっている。ここでは装置構成の説明を省略し、コード生成と照合の情報処理方法について詳述する。
【００７５】
図１７（Ａ）に示すように、対象データ（参照用データ）としての画像データが複数のサンプリング範囲に分割される。図示の例では８行８列の６４個のサンプリング範囲Ｓ１１、Ｓ１２、Ｓ１３・・・Ｓ８８に分割されているが分割数はこれに限定されない。各サンプリング範囲Ｓ１１〜Ｓ８８に含まれるピクセル総数は、例えば１０００〜２０００である。各ピクセルには、公知のフォーマットに基づいてＹＵＶ形式で色情報が含まれているものとする。ここで、Ｙは輝度値、Ｕ（Ｃｂ）は輝度値と青色成分との差、Ｖ（Ｃｒ）は輝度値と赤色成分との差をそれぞれ表すものとする。以下、それぞれの値をＹ値、Ｕ値、Ｖ値という。この処理はサンプリング処理部２０、６０が実行する。
【００７６】
このとき、サンプリング範囲Ｓ１１〜Ｓ８８のそれぞれごとに、Ｙ値、Ｕ値、Ｖ値の平均値が求められる。平均値の求め方は上記した第１実施形態と同様であり、例えばサンプリング範囲Ｓ１１については、このサンプリング範囲Ｓ１１に含まれるすべてのピクセルのＹ値、Ｕ値、Ｖ値のそれぞれの合計値を求め、その合計値をサンプリング範囲Ｓ１１のピクセル総数で除算することにより求められる。他のサンプリング範囲についても同様である。この処理は、特徴値算出部２１、６１が実行する。
【００７７】
図１７（Ｂ）に、各サンプリング範囲のＹ値、Ｕ値、Ｖ値の各平均値の一例を示す。ここでは、サンプリング範囲Ｓ１１のＹ値の平均値をＹ１１、Ｕ値の平均値をＵ１１、Ｖ値の平均値をＶ１１というようにして、各サンプリング範囲におけるＹ値、Ｕ値、Ｖ値の各平均値を表している。例えば、サンプリング範囲Ｓ１２では、各平均値は、Ｙ１２＝１１９、Ｕ１２＝１２８、Ｖ１２＝１４２である。
【００７８】
上記のようにして求められる各サンプリング範囲のＹ値、Ｕ値、Ｖ値の各平均値を用いてコードが生成される。一例を図１７（Ｃ）に示すように、例えば各平均値をＹ値、Ｕ値、Ｖ値の順でＹ１１、Ｙ１２、Ｙ１３、・・・Ｙ２１、Ｙ２２、・・・Ｙ８７、Ｙ８８、Ｕ１１、Ｕ１２、Ｕ１３、・・・Ｕ２１、Ｕ２２、・・・Ｕ８７、Ｕ８８、Ｖ１１、Ｖ１２、Ｖ１３、・・・Ｖ２１、Ｖ２２、・・・Ｙ８７、Ｙ８８というように連結する。なお、これは一例であり、Ｙ値、Ｕ値、Ｖ値の結合順序は適宜設定できる。このようにして、対象データ（参照用データ）としての画像データに対応した参照用コードが生成される。この処理は、エンコード処理部２３、６３が実行する。
【００７９】
ここで、Ｙ１１〜Ｙ８８、Ｕ１１〜Ｕ８８、Ｖ１１〜Ｖ８８のそれぞれの値が例えば１６進数の文字列で表されるとすると、上記のように８行８列の６４分割のサンプリング範囲を設定した場合に得られるコードのデータサイズは、１９２バイト（＝６４×３）となる。これは３８４文字のテキストデータに相当する。１６進数の文字コードで表記されたコードの一例を図１８に示す。１６進数文字では１文字あたりのデータ量が４ビットであるから文字数が３８４文字であるが記録する際のデータ量は１９２バイトとなる。
【００８０】
本願発明者の検討によれば、この１９２バイトのデータ量が複雑な演算を用いずに比較・照合・判定・認識をリアルタイムで行うための実用的な最小値となる。すなわち、空間・風景・物体・熱源映像・映像・画像などの可視化できる対象データに対して９８％程度の認識率を達成できる有効なコードの最小値が１９２バイトとなる。このデータサイズは、元になる映像や画像の面積やデータサイズに依存しない。
【００８１】
例えば、フレームレートが２４ｆｐｓの動画に対応して毎秒２４個のコードを生成した場合のデータ量について考える。上記のように１つの画像に対応するコードのデータサイズが１９２バイトであるとすると、３０分間の動画に対応するコード数は４３２００となり、そのデータ量は約７．９ＭＢとなる。同様に、１時間の動画に対応するコード数は８６４００でデータ量は約１５．８ＭＢとなり、２時間の動画に対応するコード数は１７２８００でデータ量は約３１．６ＭＢとなり、１日間の動画に対応するコード数は２０７３６００でデータ量は約３７９．７ＭＢとなる。また、各コードに対して座標（経度・緯度・標高：２４バイト）、時刻（年月日と時分秒：８バイト）、２バイト文字１００文字分のコメント（２００バイト）の各関連情報が付加されていたとしても、３０分間の動画に対応するデータ量は約１７．５ＭＢ、１時間の動画に対応するデータ量は約３４．９ＭＢ、２時間の動画に対応するデータ量は約６９．９ＭＢ、１日間の動画に対応するデータ量は約８３８．５ＭＢとなる。なお、毎秒１つのフレームに対応して１つのコードを生成した場合のデータ量は上記の１／２４の大きさとなる。この場合、１日間の動画でもデータ量が１５．８ＭＢ（関連情報なし）、あるいは３４．９ＭＢ（関連情報あり）と非常に小さくなる。
【００８２】
また、このコードにはＹＵＶの各々の色情報が含まれるので、この色情報を用いて下記の変換式によってＲＧＢ形式の色情報を得ることもできる。
Ｒ＝（１．１６４×（Ｙ値−１６））＋（１．５９６×（Ｖ値−１２８））
Ｇ＝（１．１６４×（Ｙ値−１６））−（０．３９１×（Ｕ値−１２８））−（０．８１３×（Ｖ値−１２８））
Ｂ＝（１．１６４×（Ｙ値−１６））＋（２．０１８×（Ｕ値−１２８））
【００８３】
図１９は、第２実施形態のコードを用いた照合方法を説明するための図である。ここでは、説明を簡素化するために、３行３列のサンプリング範囲が設定されている場合を考える。図中、左側には予め生成されて記録された参照用コードを示し、右側には特定対象データから得られた特定対象コードを示す。なお、各コードの実態は上記した図１７（Ｃ）に示したような文字列であるが、ここではサンプリング範囲ごとの対応が分かりやすくなるように表現している。照合方法としては、例えば、単純に比較する方法と、相対的に比較する方法などが考えられる。これらの処理は、照合処理部６４が実行する。
【００８４】
まず、単純に比較する方法を説明する。サンプリング範囲ごとに、参照用コードと特定対象コードのＹ値、Ｕ値、Ｖ値のそれぞれの差分を求め、その差分を二乗する。例えば、図示の例では、１行１列のサンプリング範囲におけるＹ値の差分の二乗は、（２０２−１９５）２＝４９となる。同様に、１行２列のサンプリング範囲におけるＹ値の差分の二乗は、（１９５−２１２）２＝２８９となる。同様に、例えば３行３列のサンプリング範囲におけるＹ値の差分の二乗は、（１４９−１９０）２＝１６８１となる。他のサンプリング範囲についても同様にしてＹ値の差分の二乗を求め、それらの合計値を求める。図示の例では、各サンプリング範囲におけるＹ値の差分の二乗を合計するとその合計値は１５１１４（＝４９＋２８９＋・・・＋１６８１）となる。また、Ｕ値、Ｖ値についても同様にして各値の差分の二乗を合計するとその合計値はそれぞれ８６９４、３０７２となる。
【００８５】
このようにしてＹ値、Ｕ値、Ｖ値のそれぞれに対応する合計値が得られると、それらを予め設定した基準値と比較し、各値ともに基準値以下である場合に、参照用コードと特定対象コードが一致していると判断する。基準値は、どの程度の類似度で「一致」とするかを用途などに考慮して設定すればよく、例えば９７％以上の一致率に相当する基準値を設定することができる。
【００８６】
なお、Ｙ値、Ｕ値、Ｖ値のそれぞれについて差分をさらに二乗しているのは、参照用コードと特定対象コードの相違をより検出しやすくするためである。用途によっては二乗をしなくてもよいし、反対に、三乗などさらに指数を大きくしてもよい。
【００８７】
次に、相対的に比較する方法を説明する。まず、参照用コードについて、１行１列のサンプリング範囲と１行２列のサンプリング範囲との間でＹ値の差分を二乗した値Ｙａ１２を求める。図示の例ではＹａ１２＝（２０２−１９５）２＝４９である。同様に、１行１列のサンプリング範囲とそれ以降の８つのサンプリング範囲との間でＹ値の差分を二乗した値Ｙａ１３、Ｙａ１４・・・Ｙａ１９をそれぞれ求める。
【００８８】
次に、１行２列のサンプリング範囲と１行３列のサンプリング範囲との間でＹ値の差分を二乗した値Ｙａ２３を求める。図示の例ではＹａ２３＝（１９５−２１３）２＝３２４である。同様に、１行２列のサンプリング範囲とそれ以降の７つのサンプリング範囲との間でＹ値の差分を二乗した値Ｙａ２４、Ｙａ２５・・・Ｙａ２９をそれぞれ求める。同様にして、１行３列のサンプリング範囲とそれ以降のサンプリング範囲との間でＹ値の差分を二乗した値Ｙ３４、Ｙ３５、・・・Ｙ４９を求める。
【００８９】
以下も同様に、２行１列のサンプリング範囲とそれ以降のサンプリング範囲、２行２列のサンプリング範囲とそれ以降のサンプリング範囲、２行３列のサンプリング範囲とそれ以降のサンプリング範囲、３行１列のサンプリング範囲とそれ以降のサンプリング範囲、３行２列のサンプリング範囲とそれ以降のサンプリング範囲、のそれぞれの間でＹ値の差分を二乗した値を求める。
【００９０】
そして、求められたＹ値の差分を二乗した値をすべて合計する。図示の例では、合計値は４７５０２となる。また、Ｕ値、Ｖ値についても同様にして計算すると、Ｕ値に関する合計値は７３２５６、Ｖ値に関する合計値は０となる。
【００９１】
次に、特定対象コードについても上記と同様にして計算すると、Ｙ値に関する合計値は７０８９８、Ｖ値に関する合計値は５８１０４、Ｕ値に関する合計値は１８２７２となる。
【００９２】
そして、参照用コードと特定対象コードとの間で、ＹＵＶそれぞれの合計値の差分を求めると、ΔＹ＝２３３９６、ΔＵ＝１５１５２、ΔＶ＝１８２７２となる。
【００９３】
このようにしてＹ値、Ｕ値、Ｖ値のそれぞれに対応する合計値の差分が得られると、それらを予め設定した基準値と比較し、各値ともに基準値以下である場合に、参照用コードと特定対象コードが一致していると判断する。基準値は、どの程度の類似度で「一致」とするかを用途などに考慮して設定すればよく、例えば９７％以上の一致率に相当する基準値を設定することができる。
【００９４】
なお、単純比較の場合と同様、Ｙ値、Ｕ値、Ｖ値のそれぞれについて差分をさらに二乗しているのは参照用コードと特定対象コードの相違をより検出しやすくするためである。用途によっては二乗をしなくてもよいし、反対に、三乗などさらに指数を大きくしてもよい。また、相対比較の場合に、上記した例では、あるサンプリング範囲とそれ以降のサンプリング範囲との差分を求めていたが、各サンプリング範囲について、他の全てのサンプリング範囲と総当たりにして差分を求めてもよい。
【００９５】
上記したような第２実施形態に係るコードは、上記した第１実施形態において種々説明した応用例に対して適用することができる。すなわち、第１実施形態と第２実施形態ではコードの生成方法に相違があるが、各応用例は生成されたコードの活用方法に係るものであり、コードの生成方法には影響を受けないからである。
【００９６】
＜第３実施形態＞
図２０は、第３実施形態のコード化方法について説明するための図である。ここではコード化の対象となるデータ（対象データ）の一例として音データを挙げて説明する。なお、コード生成装置やユーザ装置の構成については第１実施形態と同様であり（図６、図７参照）、コード生成と照合に係る情報処理方法のみが異なっている。ここでは装置構成の説明を省略し、コード生成と照合の情報処理方法について詳述する。
【００９７】
一般に、音の三要素は、音の大きさ、音程、音色である。音データのコード化とは、音自体を再現するものではなく、例えばリアルタイムに音データを解析して音の認識、識別を行うことを目的とした技術である。本実施形態では、音の三要素のうち、音程に着目してコード化を行う。
【００９８】
図２０（Ａ）は、マイクから収音された音に対して離散フーリエ変換を行い、周波数の時間変化を求めた波形図の一例である。なお、必要に応じてケプストラム解析により基本周波数を算出してもよい。このような波形図に対して、例えばサンプリング間隔Ｑを０．２秒間に設定し、このサンプリング間隔ごとに周波数を抽出する。そして、抽出した周波数の値をコード化し、記録する。このとき、サンプリング間隔Ｑ、サンプリング時間（図示の例では２．０秒間）、曲のタイトル等の関連データが付加されて記録される。コード化の対象となる音データは、マイクによる収音でリアルタイムに得られるものであってもよいし、予め収音されて保存されていたものであってもよい。保存されていた音データの形式がｍｐ３などの圧縮形式である場合には、適宜ＷＡＶＥ形式などの非圧縮形式に変換されてコード化が実行される。
【００９９】
なお、上記の情報処理は、サンプリング間隔ごとのデータ分割がサンプリング処理部２０によって行われ、周波数の算出が特徴値算出部２１によって行われ、コード化がエンコード処理部２３によって行われ、得られたコードと関連情報の記録がコード記録処理部２４によって行われる。
【０１００】
図２０（Ｂ）は、コード化の一例を示す図である。図２０（Ａ）に示した音データの波形に基づいて０．２秒間ごとにコード化を行った場合の例を示している。例えば、取得タイミングが０．２秒のときの周波数は１０４６．５０Ｈｚと抽出され、それに対応するコード（図中「ＣＥＣ」と表記）が０４１６と得られている。この音は、音階名でいうと「ド／Ｃ６」に対応し、鍵盤記号（８８鍵盤の場合）でいうと６４に対応している。ほかの取得タイミングについても同様である。なお、本例では周波数の抽出時には可聴範囲として２０Ｈｚ〜２００００Ｈｚを想定し、コード化の際には小数点以下を切り捨てている。例えば、２０．２Ｈｚの場合、小数点切り捨て後の値は「２０」であり、これを１６進数でコード化すると「１４」となる。同様に、２６１．６２Ｈｚなどの場合、小数点切り捨て後の値は「２６１」であり、これを１６進数でコード化すると「１０５」となる。同様に、２００００．０Ｈｚなどの場合、小数点切り捨て後の値は「２００００」であり、これを１６進数でコード化すると「４ｅ２０」となる。よって、本実施形態で生成されるコードは最大４文字の１６進数で表現できるので、データサイズは最大で２バイトとなる。
【０１０１】
図２１は、第３実施形態のコードを用いた照合方法を説明するための図である。図２１（Ａ）に示すように、ある楽曲（Twilight  Message）の一部分（２０００ｍｓ分）の音程に対応するコードがサンプリング間隔Ｑを０．２秒間に設定して予め求められており、参照用コード群として記録されている。なお、図中では説明を簡単にするために、コードをＡ〜Ｇのアルファベットで表記しており、同じアルファベット表記のコードはその内容が一致しているとする。これに対して、リアルタイム（あるいは音データ）として与えられる各楽曲の特定対象データに対してコード化を行い、これを参照用データ群と照合する。図示の例では、楽曲（１）、楽曲（３）のそれぞれには参照用データ群とコードの並びが一致する部分が存在しないので、参照用データ群により特定される楽曲ではないと判断できる。他方、楽曲（２）には、参照用データ群とコードの並びが一致する部分が存在するので、この楽曲（２）は参照用データ群に対応する楽曲（Twilight  Message）であると判断できる。なお、サンプリング間隔Ｑごとの各コード同士の一致／不一致については、完全にコードが同じ場合に「一致」と判断してもよいし、一定の誤差範囲内（例えば±１０Ｈｚに相当する誤差範囲内）であれば「一致」と判断してもよい。
【０１０２】
なお、上記の情報処理は、サンプリング間隔ごとのデータ分割がサンプリング処理部６０によって行われ、周波数の算出が特徴値算出部６１によって行われ、コード化がエンコード処理部６３によって行われ、得られたコードと参照用データ群との照合が照合処理部６４によって行われる。
【０１０３】
ここで、音データのコード化に際しては、特にその対象が楽曲の音データである場合には、そのテンポを考慮してサンプリング間隔を設定することがより好ましい。例えば、テンポ（ＢＰＭ）が１２０の楽曲の場合、１分間に４分音符が１２０個（拍）含まれる。この場合、１秒間に２拍である、１拍の間隔は０．５秒間となる。この場合、音データのテンポに合わせてサンプリング間隔を設定（調整）することで、音符のタイミングに対応したコード化が可能となる。具体的には、サンプリング間隔をＱ、テンポをＢ、対象とする音符の拍の長さをＸとする。ここで、音符の拍の長さとは、例えば４分音符の場合にはＸ＝４、８分音符の場合にはＸ＝８というように設定される。このとき、図２１（Ｂ）に示すように、サンプリング間隔Ｑは、Ｑ＝（１／（（Ｂ／６０）×（Ｘ／４）））×１０００と表せる。この関係式を用いてサンプリング間隔Ｑを設定して音データをコード化することで、楽曲の類似性の判定精度がより向上する。図２１（Ｂ）の下欄に、好ましいサンプリング間隔Ｑの具体的な値を例示する。
【０１０４】
このような音データのコード化により、例えば空間に流れる楽曲のタイトルをユーザ装置２に表示させ、あるいはその楽曲に合わせたＡＲコンテンツ（拡張現実コンテンツ）、動画、静止画をユーザ装置２に表示させるなどの制御を実現できる。また、いわゆる楽曲の盗作問題に関して、人間の主観的な判断ではなく、客観性のある判断としてその類否を提示することも可能となる。また、一般に生物の心音はすべて異なり、たとえ双子であっても心音は異なるという見識を前提にすると、心音をコード化することにより、心音に基づく人物認証（心音認証）を行うことも可能になる。例えば、空港などのゲートにおける人物認証が可能になるなど、これまでにないユースケースを生み出すことができる。
【０１０５】
以上のような各実施形態によれば、画像や音声等の対象データを少ないデータ量でコード化する新規な技術が提供される。それにより、低負荷かつ短い処理時間で特定対象データと参照用データとの照合を実行可能とする新規な技術も提供される。
【０１０６】
すなわち、各実施形態によれば、例えばカメラを通した映像を任意の個数で分割し、複数に分割された各１ブロック（サンプリング範囲）に対して光源、輝度、色などの情報から固有のコードを生成して記録し、このコードを利用して高速に（あるいはリアルタイムに）比較、照合、認証を行うことが可能となる。この固有のコードを用いることで、熱源、音、Ｘ線といった不可視の情報や五感情報の伝送において、より小さなデータサイズで実現することも可能である。図２２にその概念図を示すように、空間情報や動画像、静止画像、温度や音といった、現在においてデータとして確立・認識されているものに対して各実施形態による固有のコードを付加することによって、現実世界との紐付けだけでなくデータの新しい利用方法が生まれ、すでに記録されて存在しているデータに更なる付加価値と活用方法を与えることができる。例えば、ＧＰＳ情報（位置情報）、方向、角度、温度、圧力などに加え、すでにビッグデータ上には入手先やＵＲＬなど様々な付随する情報が存在する。しかしながら現実世界とリアルタイムで比較、照合した場合には、判定に必要な「状況」、「状態」、「空間データ」が欠落しており、必要な紐付けができていないのが現状である。これに対して、各実施形態によるコードを用いて「アースデータ」という現実との結合の手を作ることにより、現実世界とシステムの間でのリンクの「鍵」、トリガーとしての役割を果たすことができる。各実施形態によるコードのデータサイズは非常に小さいので、「バイトチェーン」という新しい概念が提供される。
【０１０７】
なお、本発明は上記した各実施形態の内容に限定されるものではなく、本発明の要旨の範囲内において種々に変形して実施をすることが可能である。各実施形態により生成されるコードの活用法、応用法は上記した内容に限られない。また、各実施形態で挙げた数値などは一例であってこれらに限定されない。また、第１実施形態では、各サンプリング範囲の相互間で相対差を求めていたがこれを省略して各サンプリング範囲の輝度の平均値を文字列データとして連結してもよい。
【０１０８】
また、上記した各実施形態では、平均値ないし相対差から得た文字列データを直接に連結してコードを生成していたが本発明における「連結」の態様はこれに限定されない。例えば、各平均値または各相対差に対して一定の係数を乗算したものを文字列データにして連結してもよい。また、各平均値等に対応する文字列データの相互間に特定のデータ（区切り文字等）を介在させた形で各文字列データを連結してもよい。あるいは、各平均値等に対応する文字列データを一定規則の下で他の文字列データに変換したものを連結してもよい。すなわち、平均値等の相互の相対的な関係性が崩れない形ないし復元可能な形であればいかなる連結の態様であっても本発明における「連結」の概念に含まれる。
【符号の説明】
【０１０９】
１０、５０、情報処理部、１１、５１：カメラ、１２、５２：マイク、１３、５３：記憶装置、１４、５４：動作デバイス、１５、５５：表示デバイス、２０、６０：サンプリング処理部、２１、６１：特徴値算出部、２３、６３：エンコード処理部、２４：コード記録処理部、６４：照合処理部
【要約】      （修正有）【課題】画像や音声等の対象データをコード化する新規な技術の方法を提供する。【解決手段】コード生成方法は、情報処理装置を用いて対象データの内容に応じたコードを生成する方法であって、対象データを入力しＳ１１、複数のサンプリング範囲に分割しＳ１２、複数のサンプリング範囲の各々に含まれ、それぞれが数値で表される１又は複数種の要素データのうち少なくとも１つの要素データについてサンプリング範囲ごとに要素データの平均値を求めＳ１３、サンプリング範囲ごとの平均値ないしその上位から所定桁数分の数値を、文字列データとして連結することによって対象データに対応する参照用コードを生成するＳ１５。【選択図】図９【図１】
0006964372.tif 000002
【図２】
0006964372.tif 000003
【図３】
0006964372.tif 000004
【図４】
0006964372.tif 000005
【図５】
0006964372.tif 000006
【図６】
0006964372.tif 000007
【図７】
0006964372.tif 000008
【図８】
0006964372.tif 000009
【図９】
0006964372.tif 000010
【図１０】
0006964372.tif 000011
【図１１】
0006964372.tif 000012
【図１２】
0006964372.tif 000013
【図１３】
0006964372.tif 000014
【図１４】
0006964372.tif 000015
【図１５】
0006964372.tif 000016
【図１６】
0006964372.tif 000017
【図１７】
0006964372.tif 000018
【図１８】
0006964372.tif 000019
【図１９】
0006964372.tif 000020
【図２０】
0006964372.tif 000021
【図２１】
0006964372.tif 000022
【図２２】
0006964372.tif 000023