(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022179475
(43)【公開日】2022-12-02
(54)【発明の名称】コード生成方法、コード生成装置、プログラム、データ照合方法
(51)【国際特許分類】
H03M 7/30 20060101AFI20221125BHJP
G06T 7/00 20170101ALI20221125BHJP
G06V 10/424 20220101ALI20221125BHJP
A61B 5/1171 20160101ALI20221125BHJP
【FI】
H03M7/30 Z
G06T7/00 300F
G06V10/424
A61B5/1171 200
【審査請求】未請求
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2022128142
(22)【出願日】2022-08-10
(62)【分割の表示】P 2021153630の分割
【原出願日】2021-05-19
(71)【出願人】
【識別番号】521216681
【氏名又は名称】片岡 忠久
(74)【代理人】
【識別番号】110001184
【氏名又は名称】弁理士法人むつきパートナーズ
(72)【発明者】
【氏名】片岡 忠久
【テーマコード(参考)】
4C038
5J064
5L096
【Fターム(参考)】
4C038VA07
4C038VB03
4C038VC05
5J064BC08
5J064BC14
5J064BC15
5L096AA02
5L096AA06
5L096CA02
5L096DA02
5L096EA24
5L096FA32
5L096GA19
5L096GA41
5L096HA08
5L096JA11
5L096KA09
5L096KA13
(57)【要約】 (修正有)
【課題】画像や音声等の対象データをコード化するコード生成方法、コード生成装置、プログラム及びデータ照合方法を提供する。
【解決手段】情報処理装置を用いて対象データの内容に応じたコードを生成するコード生成装置1であって、情報処理部10は、対象データを複数のサンプリング範囲に分割するサンプリング処理部20と、複数のサンプリング範囲の各々に含まれ、それぞれが数値で表される1又は複数種の要素データのうち少なくとも1つの要素データについて当該サンプリング範囲毎に当該要素データの平均値を求める特徴値算出部21と、サンプリング範囲毎の平均値ないしその上位から所定桁数分の数値を、文字列データとして連結することによって対象データに対応する参照用コードを生成するエンコード処理部23と、を含む。
【選択図】
図6
【特許請求の範囲】
【請求項1】
情報処理装置を用いて対象データの内容に応じたコードを生成並びに照合する方法であって、
参照用データに応じて求められた参照用コードを取得する第1ステップと、
特定対象データに対応する特定対象コードを生成する第2ステップと、
前記参照用コードと前記特定対象コードとを比較してそれらの一致/不一致を定める第3ステップと、
を含み、
前記第1ステップにおける前記参照用コードは、
前記参照用データを複数の第1サンプリング範囲に分割するステップと、
前記複数の第1サンプリング範囲の各々に複数含まれる第1要素データであってそれぞれが数値で表される1又は複数種の当該第1要素データのうち少なくとも1種の当該第1要素データについて当該第1サンプリング範囲ごとに当該第1要素データの平均値を求めるステップと、
前記第1サンプリング範囲ごとの前記第1要素データの平均値ないしその上位から所定桁数分の数値を、文字列データとして連結することによって前記参照用データに対応する前記参照用コードを生成するステップと、
を経て予め求められたものであり、
前記第2ステップにおける前記特定対象コードは、
前記特定対象データを各前記第1サンプリング範囲と同じように設定された複数の第2サンプリング範囲に分割するステップと、
前記複数の第2サンプリング範囲の各々に複数含まれる第2要素データであってそれぞれが数値で表される1又は複数種の当該第2要素データのうち少なくとも1種であって前記第1要素データと同じ種類の当該第2要素データについて当該第2サンプリング範囲ごとに当該第2要素データの平均値を求めるステップと、
前記第2サンプリング範囲ごとの前記第2要素データの平均値ないしその上位から所定桁数分の数値を、文字列データとして連結することによって前記特定対象データに対応する前記特定対象コードを生成するステップと、
を経て生成されるものであり、
前記第3ステップは、
各前記第1サンプリング範囲と各前記第2サンプリング範囲との間のそれぞれにおいて、前記参照用コードに基づいて得られる各前記第1サンプリング範囲ごとの平均値ないしその上位から所定桁数分の数値と前記特定対象コードに基づいて得られる各前記第2サンプリング範囲ごとの平均値ないしその上位から所定桁数分の数値との差分を求めるステップと、
前記差分の各々が全て予め定めた許容範囲に収まる場合に前記参照用コードと前記特定対象コードとが一致すると判断するステップと、
を含む、データ照合方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コード生成方法、コード生成装置、プログラム、データ照合方法に関する。
【背景技術】
【0002】
予め用意した参照用データとの比較・照合により対象データの内容を特定する技術が知られている。当該技術の代表例としては画像認識技術が挙げられる(例えば特開2019-28985号公報参照)。しかし、従来技術では、参照用データを得るための学習時間が膨大に必要であり、あるいは対象データとの比較・照合にかかる処理負荷が大きく高速な処理が難しいという点で改良の余地があった。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明に係る具体的態様は、画像や音声等の対象データを少ないデータ量でコード化する新規な技術を提供することを目的の1つとする。
【課題を解決するための手段】
【0005】
[1]本発明に係る一態様のデータ照合方法は、情報処理装置を用いて対象データの内容に応じたコードを生成並びに照合する方法であって、(a)参照用データに応じて求められた参照用コードを取得する第1ステップと、(b)特定対象データに対応する特定対象コードを生成する第2ステップと、(c)前記参照用コードと前記特定対象コードとを比較してそれらの一致/不一致を定める第3ステップと、を含み、(d)前記第1ステップにおける前記参照用コードは、(d1)前記参照用データを複数の第1サンプリング範囲に分割するステップと、(d2)前記複数の第1サンプリング範囲の各々に複数含まれる第1要素データであってそれぞれが数値で表される1又は複数種の当該第1要素データのうち少なくとも1種の当該第1要素データについて当該第1サンプリング範囲ごとに当該第1要素データの平均値を求めるステップと、(d3)前記第1サンプリング範囲ごとの前記第1要素データの平均値ないしその上位から所定桁数分の数値を、文字列データとして連結することによって前記参照用データに対応する前記参照用コードを生成するステップと、を経て予め求められたものであり、(e)前記第2ステップにおける前記特定対象コードは、(e1)前記特定対象データを各前記第1サンプリング範囲と同じように設定された複数の第2サンプリング範囲に分割するステップと、(e2)前記複数の第2サンプリング範囲の各々に複数含まれる第2要素データであってそれぞれが数値で表される1又は複数種の当該第2要素データのうち少なくとも1種であって前記第1要素データと同じ種類の当該第2要素データについて当該第2サンプリング範囲ごとに当該第2要素データの平均値を求めるステップと、(e3)前記第2サンプリング範囲ごとの前記第2要素データの平均値ないしその上位から所定桁数分の数値を、文字列データとして連結することによって前記参照用データに対応する前記参照用コードを生成するステップと、を経て生成されるものであり、(f)前記第3ステップは、(f1)対応する各前記第1サンプリング範囲と各前記第2サンプリング範囲との間のそれぞれにおいて、前記参照用コードに基づいて得られる各前記第1サンプリング範囲ごとの平均値ないしその上位から所定桁数分の数値と前記特定対象コードに基づいて得られる各前記第2サンプリング範囲ごとの平均値ないしその上位から所定桁数分の数値との差分を求めるステップと、(f2)前記差分の各々が全て予め定めた許容範囲に収まる場合に前記参照用コードと前記特定対象コードとが一致すると判断するステップと、を含む、データ照合方法である。
【0006】
上記構成によれば、画像や音声等の対象データを少ないデータ量でコード化する新規な技術が提供される。
【図面の簡単な説明】
【0007】
【
図1】
図1は、第1実施形態のコード化方法について説明するための図である。
【
図2】
図2は、上記した方法により生成されるコードと各コードに対応するコンテンツのデータベース構成例を示す図である。
【
図3】
図3は、データベースを用いた照合の流れを概念的に説明する図である。
【
図4】
図4は、フレキシブルな照合を行う具体的な方法を説明するための図である。
【
図5】
図5は、上記した
図4に示した例におけるサンプリング範囲S1~S9のそれぞれに対応する差分を折れ線グラフで示した図である。
【
図6】
図6は、上記した方法を用いてコード生成を行うためのコード生成装置の構成例を示すブロック図である。
【
図7】
図7は、上記方法により生成されるコードを用いて対象データの照合を行うユーザ装置の構成例を示すブロック図である。
【
図8】
図8は、コード生成装置、ユーザ装置のそれぞれにおける情報処理部を実現するコンピュータの構成例を示す図である。
【
図9】
図9(A)は、コード生成装置の動作手順を示すフローチャートである。また、
図9(B)は、ユーザ装置の動作手順を示すフローチャートである。
【
図10】
図10は、上記した実施形態に係るコード化技術の応用例1を説明するための図である。
【
図11】
図11は、上記した実施形態に係るコード化技術の応用例2を説明するための図である。
【
図12】
図12は、上記した実施形態に係るコード化技術の応用例3を説明するための図である。
【
図13】
図13は、上記した実施形態に係るコード化技術の応用例4を説明するための図である。
【
図14】
図14は、上記した実施形態に係るコード化技術の応用例5を説明するための図である。
【
図15】
図15は、上記した実施形態に係るコード化技術の応用例6を説明するための図である。
【
図16】
図16は、上記した実施形態に係るコード化技術の応用例7を説明するための図である。
【
図17】
図17は、第2実施形態のコード化方法について説明するための図である。
【
図18】
図18は、16進数の文字コードで表記されたコードの一例を示す図である。
【
図19】
図19は、第2実施形態のコードを用いた照合方法を説明するための図である。
【
図20】
図20は、第3実施形態のコード化方法について説明するための図である。
【
図21】
図21は、第3実施形態のコードを用いた照合方法を説明するための図である。
【
図22】
図22は、各実施形態の利用方法を示す概念図である。
【発明を実施するための形態】
【0008】
<第1実施形態>
図1は、第1実施形態のコード化方法について説明するための図である。ここではコード化の対象となるデータ(対象データ)の一例として画像データを挙げて説明する。また、本明細書におけるコード化とは、対象データに含まれる所定の数値に基づいてこの対象データを特定し得る文字列データを生成することをいう。
【0009】
対象データとして
図1(A)に示すような画像データを想定する。画像データは、カラー画像でもモノクロ画像でもよい。画像データには、ピクセル(画素)ごとに輝度、色相、彩度、色差などの値(要素データ)が含まれるものとする。ここでは理解を容易にするするために、要素データとして輝度値を用いて説明する。
【0010】
図1(B)に示すように、画像データを複数のサンプリング範囲に分割する。ここでは画像データを9つのサンプリング範囲S1、S2、S3・・・S9に分割する。各サンプリング範囲S1等は、例えば、それぞれ幅と高さがともに40ピクセルであり、各サンプリング範囲S1等に含まれるピクセル総数はそれぞれ1600であるとする。また、各ピクセルの輝度値(階調数)は、0~255の範囲の数値で与えられているものとする。
【0011】
このとき、各サンプリング範囲S1等に含まれるピクセルのピクセル値(ここでは輝度値)をpx1、px2、・・・px1600とすると、各サンプリング範囲S1等のそれぞれにおいて、ピクセル値の平均値は以下のように求められる。
ピクセル値の合計値: sumSx=px1+px2+px3+・・・px1600
ピクセル値の平均値: Ax=sumSx/1600
【0012】
図1(C)に各サンプリング範囲S1等のそれぞれにおけるピクセル値の平均値の一例を示す。図示の例では、サンプリング範囲S1の平均値A1が128、サンプリング範囲S2の平均値A2が86、サンプリング範囲S3の平均値A3が134、サンプリング範囲S4の平均値A4が101、サンプリング範囲S5の平均値A5が68、サンプリング範囲S1の平均値A6が101、サンプリング範囲S7の平均値A7が115、サンプリング範囲S8の平均値A8が91、サンプリング範囲S9の平均値A9が121である。
【0013】
次に、各サンプリング範囲S1等における平均値の相対差を以下のように求める。
平均値の合計値: sumA=A1+A2+A3+・・・+A9
=945
平均値の相対差: Vx=(100×Ax)/945
【0014】
図1(D)に各サンプリング範囲S1等のそれぞれにおける平均値の相対差の一例を示す。図示の例では、サンプリング範囲S1の相対差V1が13.54%、サンプリング範囲S2の相対差V2が9.10%、サンプリング範囲S3の相対差V3が14.17%、サンプリング範囲S4の相対差V4が10.68%、サンプリング範囲S5の相対差V5が7.19%、サンプリング範囲S6の相対差V6が10.68%、サンプリング範囲S7の相対差V7が12.16%、サンプリング範囲S8の相対差V8が9.62%、サンプリング範囲S9の相対差V9が12.80%である。
【0015】
これら各サンプリング範囲S1等での相対差を用いて、それぞれの相対差の上位から小数点第2位までの桁の数値(全体で4桁)を文字列データとして抽出する。例えば、サンプリング範囲S1からは「1354」という文字列データが抽出される。なお、十の位に値がないものや小数点以下の桁で値がないものは当該値を0とする。例えば、9.1%であれば「0910」となる。
【0016】
このようにして各サンプリング範囲S1等から抽出された文字列データを連結する。連結順序については特に限定はなく任意に定めることができる。ここではサンプリング範囲S1、S2・・・S9の順に連結することにする。これにより、上記した例においては「135409101417106807191068121609621280」という文字列データが得られる(
図1(E)参照)。本実施形態ではこのようにして生成される文字列データを対象データに対応するコードとして用いる。
【0017】
なお、相対差については必ずしも百分率で表さなくてもよい。また、各サンプリング範囲に対応する文字列データの連結順については、予め定めた順序を常に使用するという前提のもとであればその順序は自由であり、例えばサンプリング範囲S9、S8・・・S1の順に連結すると定めておくこともできる。また、各サンプリング範囲において相対差を何桁まで用いるかも任意である。サンプリング範囲の分割数も任意である。サンプリング範囲の分割数を少なくすればより簡易的で高速に照合を行うことが可能で、他方、サンプリング範囲の分割数を増加させることでより精度の高い照合を行うことが可能になる。
【0018】
図2は、上記した方法により生成されるコードと各コードに対応するコンテンツのデータベース構成例を示す図である。ここではコンテンツの例として画像を挙げる。図示のように、予め各画像1、2・・・に対応するコードが上記方法によって生成され、それらを紐づけたデータベースが構築される。例えば、コード「2110・・・」には画像1が対応し、コード「1053・・・」には画像2が対応する。ここで、コンテンツとしての画像1、2・・・というのは、画像データそのものであってもよいし、画像データの内容に対応した付加情報(例えば、画像に含まれる物体等を表す文字列、現実空間上での位置情報、時刻情報、その他任意の付加情報)のデータを含んでもよい。このようなデータベースを予め構築しておくことで、このデータベースの各コードを参照用データとして用いて、特定対象データがどのコンテンツに対応するものであるかを照合することが可能となる。
【0019】
図3は、データベースを用いた照合の流れを概念的に説明する図である。例えば、撮影して得られた画像データに対して上記方法によりコード化が行われ、この画像データに対応するコードである特定対象コード(図示の例では「8841・・・」)が生成される。この生成された特定対象コードとデータベースの各参照用コードと照合し、生成された特定対象コードと一致する参照用コードがデータベースに存在すれば、撮影された画像に対応するコンテンツ(図示の例では「画像37」)を特定することができる。
【0020】
例えば、カメラを備えた端末装置(一例としてスマートフォン)を用いて任意の空間を撮影した画像データが得られたとする。また、端末装置には、上記したコード化を実行可能なアプリケーションプログラムが予めインストールされているとともに、
図2に示したようなデータベースが記憶されているものとする。なお、データベースはネットワークを介して端末装置と通信可能なサーバに置かれていてもよい。この場合、例えば、ユーザがカメラを向けて撮影された風景の画像に対応するコンテンツが特定されれば、そのコンテンツに関わる情報をユーザの端末装置の画面上に表示させるといった使い方を実現できる。
【0021】
なお、本願発明者の検討によると、対象データが空間を撮影して得た画像データであれば、サンプリング範囲を64個以上となるようにしてコード化を行うことで、実用上、必要十分な精度で照合・判定を行うことが可能になるという知見が得られている。この条件で生成されるコードのデータ量は192バイト程度であり、非常に小さいデータ量であるといえる。
【0022】
ここで、
図3を用いて説明した照合の原理によると、コード同士の文字列データがすべて一致している場合に各コードに対応するコンテンツが同じと判定されるが、以下のように判定の際における許容範囲を設定することで、よりフレキシブルな照合を行うことができる。
【0023】
図4は、フレキシブルな照合を行う具体的な方法を説明するための図である。また、
図5は、上記した
図4に示した例におけるサンプリング範囲S1~S9のそれぞれに対応する差分を折れ線グラフで示した図である。
【0024】
図4(A)に示す例では、参照用コードAと特定対象コードBのそれぞれの文字列データについて、上記したサンプリング範囲に対応する4桁ごとに区切り、それぞれの文字列データを4桁の数値として扱い、対応するサンプリング範囲ごとに数値の差分(A-B)を求める。例えば、サンプリング範囲S1に対応する数値は、参照用コードにおいて「1354」であり、特定対象コードにおいて「1368」であるので、両者の差分を求めると「-14」になる。同様に、他のサンプリング範囲S2~S9についてもそれぞれ差分を求めると、+15、0、-12、+19、+17、+15、0、+18となる。このとき、各サンプリング範囲に対応する差分の許容範囲を例えば±20と予め定めておくとすると、
図4(A)に示す例ではサンプリング範囲S1~S9のいずれに対応する差分もこの許容範囲に収まる。このような場合に、参照用コードと特定対象コードとは「同一(一致)」であると判断することができる。
図5に示すように、参照用コードと特定対象コードが同一であると判断できる場合(AとB)ではグラフがほぼ重なる。
他方、
図4(B)に示す例では、参照用コードAと特定対象コードCのそれぞれの文字列データについて、各サンプリング範囲S1~S9についての差分は、+74、-101、+27、0、-261、+38、+126、-249、+273となる。各サンプリング範囲に対応する差分の許容範囲が±20と予め定められているとすると、
図4(B)に示す例ではサンプリング範囲S4に対応する差分だけ許容範囲に収まり、それ以外のサンプリング範囲に対応する差分は許容範囲に収まっていない。このような場合に、参照用コードと特定対象コードとは「異なる(不一致)」と判断することができる。この場合、
図5に示すように、参照用コードと特定対象コードが異なると判断できる場合(AとC)ではグラフが重ならない。
【0025】
なお、許容範囲が設けられていないとすると、画像の撮影条件(反射光、環境光など)が全く同じ状態であることを意味する。これに対して、許容範囲を設けた場合には、光の状態など微弱な環境変化や、利用者の感覚に対応した「解」を導き出すことが可能となる。この許容範囲(環境変数)を用いることにより、人間の目による感覚に近い判断(~かもしれない)を実現できる。許容範囲の大きさについては任意に設定できるが、本願発明者の検討によれば上記した±20程度に設定することが好ましい。
【0026】
図6は、上記した方法を用いてコード生成を行うためのコード生成装置の構成例を示すブロック図である。図示のコード生成装置1は、情報処理部10、カメラ11、マイク12、記憶装置13、操作デバイス14、表示デバイス15を含んで構成されている。
【0027】
情報処理部10は、コード生成に係る情報処理を行う。この情報処理部10は、機能ブロックとして、サンプリング処理部20、特徴値算出部21、エンコード処理部23、コード記録処理部24を備える。情報処理部10は、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有するコンピュータを用い、このコンピュータにおいて所定の動作プログラムを実行させることによって実現される。なお、本実施形態ではサンプリング処理部20が「分割部」に対応し、特徴値算出部が「平均値算出部」及び「相対差算出部」に対応し、エンコード処理部23が「コード生成部」に対応する。
【0028】
カメラ11は、コード生成の対象となり得る空間、物体などを撮影してその画像を生成するものである。ここでいう画像とは、必ずしも可視光範囲での画像に限らず、例えば熱画像であってもよいし、赤外線画像などであってもよい。カメラ11は、撮影した画像の画像データ(ないし画像信号)を情報処理部10へ出力する。
【0029】
マイク12は、コード生成の対象となり得る音を収音して電気信号に変換するものである。ここでいう音とは、必ずしも可聴範囲の音に限らず、超音波、低周波音などであってもよい。マイク12から出力される音の信号は情報処理部10へ出力され、情報処理部10においてデジタルデータに変換されて取り込まれる。
【0030】
記憶装置13は、情報処理部10の構成、動作に必要なプログラムや各種データを記憶するとともに、情報処理部10によって生成されたコードのデータベースを記憶する。この記憶装置13は、例えばハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの不揮発性の記憶装置である。
【0031】
操作デバイス14は、情報処理部10の動作に必要な情報の入力などに用いられるものであり、例えばキーボード、マウス、スイッチ、タッチパネルなどを含み得る。表示デバイス15は、情報処理部10の動作に関する情報の表示に用いられるものであり、例えば液晶表示デバイス、有機EL表示デバイスなどが用いられる。
【0032】
サンプリング処理部20は、コード生成の対象データを複数のサンプリング範囲に分割する処理を行う(
図1(B)参照)。対象データは、例えば画像データや音データである。音データの場合には、所定時間ごとに区切ってそれらの区間に含まれる音データを各サンプリング範囲に対応するデータとすることができる(後述の第3実施形態参照)。
【0033】
特徴値算出部21は、サンプリング処理部20によって分割された各サンプリング範囲に含まれる所定データの平均値を求めるとともに(
図1(C)参照)、各サンプリング範囲に対応する平均値の相対差を求める(
図1(D)参照)。相対差は、例えば上記した例のように百分率で表されるがこれに限定されない。
【0034】
エンコード処理部23は、特徴値算出部21によって算出された各サンプリング範囲に対応する相対差(又は平均値)を用いて、対象データに対応するコード(文字列データを連結したコード)を生成する。
【0035】
コード記録処理部24は、エンコード処理部23によって生成されたコードと、このコードに対応するコンテンツを特定する情報のデータとを関連づけて記憶装置13へ記録して、コードのデータベース(
図2参照)を生成する。
【0036】
図7は、上記方法により生成されるコードを用いて対象データの照合を行うユーザ装置の構成例を示すブロック図である。図示のユーザ装置2は、情報処理部50、カメラ51、マイク52、記憶装置53、操作デバイス54、表示デバイス55を含んで構成されている。このユーザ装置2は、例えばユーザが所持するスマートフォン等の情報処理装置に対して所定のアプリケーションプログラムを予めインストールすることによって実現されるものである。
【0037】
情報処理部50は、コード照合に係る情報処理を行う。この情報処理部50は、機能ブロックとして、サンプリング処理部60、特徴値算出部61、エンコード処理部63、照合処理部64を備える。情報処理部50は、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有するコンピュータを用い、このコンピュータにおいて所定の動作プログラムを実行させることによって実現される。
【0038】
なお、カメラ51、マイク52、記憶装置53、操作デバイス54、表示デバイス55の各々の構成および動作については上記したコード生成装置1におけるカメラ11、マイク12、記憶装置13、操作デバイス14、表示デバイス15と同様であるので、ここでは詳細な説明を省略する。また、サンプリング処理部60、特徴値算出部61、エンコード処理部63の各々の構成および動作についても、上記したコード生成装置1におけるサンプリング処理部20、特徴値算出部21、エンコード処理部23と同様であるので、ここでは詳細な説明を省略する。
【0039】
情報処理部50の照合処理部64は、サンプリング処理部60、特徴値算出部61、エンコード処理部63のそれぞれの処理によって得られた特定対象コードと記憶装置53に予め格納されているデータベース(
図2参照)を照合し、特定対象コードに対応するコンテンツを特定する。照合処理部64による具体的な照合方法は、コード同士の完全一致を条件とする方法であってもよいし、上記したようにコード同士の相違に許容範囲を設けたフレキシブルな方法であってもよい。特定結果は、例えば表示デバイス55に表示される。
【0040】
図8は、コード生成装置、ユーザ装置のそれぞれにおける情報処理部を実現するコンピュータの構成例を示す図である。図示のコンピュータは、相互に通信可能に接続されたCPU201、ROM202、RAM203、記憶装置204、外部インタフェース(I/F)205を含んで構成されている。CPU201は、ROM202から読み出される基本制御プログラムをベースにして動作し、記憶装置204に格納されたプログラム(アプリケーションプログラム)206を読み出してこれを実行することにより、上記したコントローラ13の機能を実現する。RAM203は、CPU201の動作時に使用させるデータを一時的に記憶する。記憶装置204は、例えばハードディスク、ソリッドステートドライブなどの不揮発性の記憶装置であり、プログラム206など種々のデータを格納する。外部インタフェース205は、CPU201と外部装置を接続するインタフェースであり、例えばカメラ11(51)、マイク12(52)、操作デバイス14(54)、表示デバイス15(55)とCPU201との接続に用いられる。
【0041】
図9(A)は、コード生成装置の動作手順を示すフローチャートである。また、
図9(B)は、ユーザ装置の動作手順を示すフローチャートである。なお、いずれの動作手順においても、情報処理の結果に矛盾や不整合を生じない限りにおいて適宜処理順序を入れ替えることも可能であり、またここで言及しない他の処理を追加してもよく、それらの実施態様も排除されない。
【0042】
まず、コード生成装置の動作手順を説明する。
コード生成装置1に対象データが入力されると(ステップS11)、サンプリング処理部20は、この対象データを複数のサンプリング範囲に分割する処理を行う(ステップS12)。ここで、対象データは、カメラ11から入力される画像データでもよいし、マイク12から入力される信号に対応する音データでもよいし、記憶装置13に予め格納されていた画像データもしくは音データでもよい。また、ネットワークを介してサーバ等(図示せず)から送信されてコード生成装置1で受信されたものであってもよい。
【0043】
次に、特徴値算出部21は、サンプリング処理部20によって分割された各サンプリング範囲に含まれる所定の要素データの平均値を求める(ステップS13)。ここでの要素データとは、上記のとおり対象データに含まれており対象データの内容、特徴あるいは特性を形作るためのデータであればよい。例えば、上記したように画像データであれば各画素の輝度等であり、音データであれば所定のサンプリング時間ごとの音の大きさであってもよい。
【0044】
次に、特徴値算出部21は、各サンプリング範囲に対応する平均値の相対差を求める(ステップS14)。相対差は、例えば上記した例のように百分率で表されるがこれに限定されない。
【0045】
次に、エンコード処理部23は、特徴値算出部21によって算出された各サンプリング範囲に対応する相対差を用いて、対象データに対応する参照用コード(文字列データを連結したコード)を生成する(ステップS15)。
【0046】
次に、コード記録処理部24は、エンコード処理部23によって生成された参照用コードと、この参照用コードに対応するコンテンツを特定する情報のデータとを関連づけて記憶装置13へ記録して、参照用コードのデータベース(
図2参照)を生成する(ステップS16)。
【0047】
以上の一連の情報処理が、必要な回数を繰り返して実行されることで、複数のコンテンツのそれぞれに対応する参照用コードが生成され、それらの情報を含んだデータベースが得られる。なお、生成されたデータベースは、ネットワークを介して通信可能に接続されたサーバ装置等(図示せず)に送信され、格納されてもよい。それにより、ネットワークを介してデータベースを複数のユーザに対して共有させることができる。
【0048】
次に、ユーザ装置の動作手順を説明する。
ユーザ装置2に特定対象データが入力されると(ステップS21)、サンプリング処理部60は、この特定対象データを複数のサンプリング範囲に分割する処理を行う(ステップS22)。ここでの特定対象データも、カメラ11から入力される画像データでもよいし、マイク12から入力される信号に対応する音データでもよいし、記憶装置13に予め格納されていた画像データもしくは音データでもよい。
【0049】
次に、特徴値算出部61は、サンプリング処理部60によって分割された各サンプリング範囲に含まれる所定の要素データの平均値を求める(ステップS23)。ここでの要素データも、上記のとおり対象データに含まれており対象データの内容、特徴あるいは特性を形作るためのデータであればよい。
【0050】
次に、特徴値算出部61は、各サンプリング範囲に対応する平均値の相対差を求める(ステップS24)。
【0051】
次に、エンコード処理部63は、特徴値算出部61によって算出された各サンプリング範囲に対応する相対差を用いて、特定対象データに対応する特定対象コード(文字列データを連結したコード)を生成する(ステップS25)。
【0052】
次に、照合処理部64は、記憶装置53に予め格納されているデータベースを参照して、ステップS25で生成された特定対象コードに対応するコンテンツを特定する(ステップS26)。特定結果は、適宜、表示デバイス55に表示される。記憶装置53に格納されているデータベースは、例えばネットワークを介してサーバ等(図示せず)から送信されてユーザ装置2で受信されたものである。
【0053】
以上が第1実施形態のコード生成及び照合に関する基本的な内容であり、次にその応用例をいくつか説明する。なお、以下の応用例に係るコード生成及び照合はいずれも上記のコード生成装置1およびユーザ装置2(あるいは他の装置)によって実行されるものである。
【0054】
図10は、上記した実施形態に係るコード化技術の応用例1を説明するための図である。ここでは、顔認証技術への応用例が示されている。ここでいう顔認証技術とは、ある画像に含まれる顔に対応する人物を特定する技術をいうものとする。また、ある画像とは、カメラによって撮影される静止画像でもよいし、動画像でもよい。動画像の場合には、フレームごとに得られる静止画像を用いることができる。
図10(A)に示すように、ある人物の正面からの顔画像データ300が与えられたとする。この顔画像データ300に対して、公知技術を用いて、当該人物を上下左右の各方向から俯瞰した際に対応する顔画像データを自動生成する。もちろん、自動生成ではなく、当該人物から直接に撮影されてもよい。ここでは、正面の顔画像データ300と、これを中心として自動生成(ないし撮影)された上下左右の各方向に対応する顔画像データの合計15個の顔画像データが示されている。
【0055】
これらの顔画像データに対して、上記のコード生成装置1によって、
図10(B)に示すようにそれぞれコード化を行って参照用コードを得る。ここでは、正面の顔画像データ300に対応するコード1、それ以外の上下左右各方向の顔画像データに対応するコード2~コード15が得られている。これら15個のコード1~コード15をひとまとまりの顔認証用データとして紐づける。例えば、識別情報(FaceID)として各コードに「xxxxx_CEC」といった識別情報を付与してこれらと紐づけることができる。また、識別情報には、特定対象となる人物に関する属性情報(例えば、氏名、年齢、所属など)が紐づけられる。
【0056】
このような顔認証用データを予め生成し記憶しておくことで、例えばユーザ装置2(又は他の装置)において、リアルタイムにカメラから得られる画像データに基づいて顔認証を行うことができる。具体的な照合方法は種々考えられ、例えばコード1~コード15のいずれか1つでも合致するものがあればその人物と特定してもよいし、複数個のコードが合致することを条件としてもよい。本実施形態のコード化技術により得られるコードは不可逆の文字列データ(テキストデータ)であり、顔画像データ自体は用いないため、例えば顔認証用データがネットワークサーバ上に保存されている場合に、万一、情報漏洩したとしてもプライバシーの保護を図ることができる。また、1個のコードのデータサイズは数百バイトであるから、顔認証に必要なデータ容量を飛躍的に小さくすることができる。例えば、1個の顔画像データのデータサイズが100キロバイトであるとすると15個の顔画像データのデータ容量は1500キロバイトとなるのに対して、1個のコードのデータサイズは例えば192バイト程度にできるので15個のコードのデータ容量としても2880バイトであり、データ容量の差は歴然である。
【0057】
図11は、上記した実施形態に係るコード化技術の応用例2を説明するための図である。ここでは、空間などの画像データを複数の部分画像に分割し、それぞれの部分画像でコードを生成して画像認識(空間認識)を行う場合の応用例が示されている。具体的には、上記のコード生成装置1により、
図11(A)に示すように、対象データとしての画像データ400が複数(ここでは12)の部分画像A~Lに分割される。そして、各部分画像A~Lのそれぞれに対して上記のコード化が行われる。部分画像Aに対応して生成されたコードをA_コードと表す。他の部分画像に対応するコードについても同様である。このようにして生成されたA_コード等の12個のコードは、1つの参照用コード群として紐づけて記録される。
【0058】
特定対象データとしての画像データについて、同様にしてユーザ装置2(又は他の装置)によって複数の部分画像に分割して各々の部分画像に対応するコードが生成される。例えば、ユーザのカメラによってリアルタイムに撮影される静止画像、あるいは動画像の1フレーム分の画像に対して、コード生成が行われる。このとき、例えば
図11(B)に示すように、参照用データ群に対応する画像データ400の撮影範囲と、ユーザによる特定対象データとしての画像データ410とが部分的に重複していたとする。ここでは、部分画像E、F、I、Jに対応する部分が重複しているとする。
【0059】
この状態で、参照用コード群に対して、特定対象データである画像データ410から生成されるコード群を総当たりで参照したとすると、部分画像の総数N=12に対して、一致する部分画像の数T=4、一致しない部分画像の数F=8となる(
図11(C)参照)。整合率(認識率)をT/Nと定義し、非整合率をF/Nと定義すると、この例では整合率が約33%(T/N=4/12)となり、非整合率が約66%(F/N=8/12)となる。この整合率が何%以上であれば特定対象データと参照用データが一致すると判断するかは用途により異なり、適宜設定すればよい。また、整合率は、類似性の判断に用いることもできる。例えば上記のように整合率が約33%という場合、似ている可能性が高い、近い場所を撮影しているが高いといった判断を行うこともできる。このような手法を用いれば、どのようなフレームインにも対応できる。また、部分画像の総数Nを多くするほど、認識精度を向上させることができる。その場合でも基本的にテキストデータによる検索、照合、判定であるため、一般に知られるテキスト検索と同等の高速な処理を行うことができる。
【0060】
図12は、上記した実施形態に係るコード化技術の応用例3を説明するための図である。ここでは、対象物の上下方向を判定する場合の応用例が示されている。対象物としては、上下方向で非対称な形状であれば特にその内容は問わない。例えば、工業機械でピスタチオを割るために上下方向を判定するような場合が挙げられる。
【0061】
図12(A)に示すように、ある対象物500をその上下方向での非対称性に着目し、2つの部分a、bに区分けする。一例として、部分aは三角形とみなし、部分bを台形とみなす。部分aの底辺と部分bの下底は等しく、かつ両者の高さも等しいとする。部分a、bを同一サイズの領域510、512(図中点線で示す矩形領域)に当てはめてそれぞれ部分a、b以外の残余部分を比較すると、部分aに対応する矩形領域510のほうが部分bに対応する矩形領域512に比べて残余部分が大きい。このような知見を元に、コード化技術を応用する。
【0062】
具体的には、
図12(B)の左側に示すように、まず対象物500が存在しない状態でベースとなる領域を撮影し、その画像データ520を複数(一例として数百個)の部分画像に分割してそれぞれに対応する参照用コードを生成し、その参照用コード群を記録しておく。
【0063】
次に、
図12(B)の中央に示すように、ベースとなる領域に対象物500が配置された状態で当該領域を撮影して得られる画像データ522に基づき、対象物500のエッジを検出し、対象物500の存在する有効領域524(図中、太線で示す矩形領域)を抽出する。
図12(B)に示すように、この抽出した矩形領域524の内部を、上下半分ずつの領域が同一の部分画像の数となるようにして分割し、各部分画像についてコード化する。なお、部分画像の分割の仕方は参照用コード群の生成時と同様にする。
【0064】
次に、参照用コード群に対して、対象物500が配置された状態で生成した特定対象コード群を照合すると、対象物の存在する領域に対応する各コードは一致せず、それ以外の領域に対応する各コードは一致することになる。
図12(B)においてコードの一致する領域については斜線模様を付して示している。
図12(C)に示すように、これらコードの一致する領域の数を、上記した有効領域の上半分の領域524a、下半分の領域524bに分けてそれぞれ計数する。図示の例では、有効領域の上半分の領域524aにおいては24個のコードが一致し、下半分の領域524bにおいては13個のコードが一致することになる。この場合、有効領域の上半分の領域524aが上記した部分aに相当するので「上」、有効領域の下半分の領域524bが上記した部分bに相当するので「下」というように判定することができる。
【0065】
図13は、上記した実施形態に係るコード化技術の応用例4を説明するための図である。ここでは、映像(画像)の中の対象体(一例として動物)を予めコード化しておき、その参照用コード群を用いて、映像中に存在する対象体を認識する場合の応用例が示されている。具体的には、まず、
図13(A)に示すように映像中の対象体600(ここでは動物)に対して公知技術によってエッジ検出を行い、
図13(B)に示すようにこの対象体のエッジ610を抽出する。次に、
図13(C)に示すように、抽出されたエッジ610およびその内部領域612に対して複数の矩形領域をマッピングする。矩形領域の数は任意に設定でき、数が多いほど認識精度を向上させることができる。そして、マッピングされた各矩形領域の部分画像に対して、上記した方法により、それぞれの部分画像に対応する参照用コードを生成し、その参照用コード群を記録しておく。同様にして、対象体の各撮影方向などに対応する参照用コード群を生成し記録しておく。これらの参照用コード群には、対象体に関する情報(例えば、動物であればその名称などの属性情報)を紐づけて記録しておく。
【0066】
次に、例えばリアルタイムに撮影される映像中から、上記と同様にして対象体のエッジ検出、矩形領域のマッピングを行い、各矩形領域の部分画像に対してコード化を行い、映像中の対象体に対応する特定対象コード群を生成する。この特定対象コード群を、予め記録されている参照用コード群と照合することにより、映像中に含まれる対象体を認識し、その有無や名称などの属性を特定することができる。
【0067】
このように既存のエッジ検出技術と本実施形態のコード化技術を組み合わせることにより、コードの即時登録、即時照合も可能となり、認識精度の向上が実現できる。対象体が空間や電子データの場合でも同様である。本実施形態のコード化技術は、生成から登録、比較、照合、判定までをリアルタイムで実現することが可能であるため、認識精度や認識速度の向上を図ることができる。
【0068】
図14は、上記した実施形態に係るコード化技術の応用例5を説明するための図である。ここでは、例えば工業製品の製造時の外観検査工程への適用例が示されている。具体的には、まず
図14(A)に示すように検査対象となる製品の外観を撮影して画像データ700を得る。次に、
図14(B)に示すように、画像データ700を任意の角度ごと(例えば1°ごと)に360°回転させて、それぞれの角度の画像データ701、702等を得る。そして、それぞれの角度の画像データに基づいてコード化を行い、各コードを参照用コードとして記録しておく。次に、
図14(C)に示すように、実際の外観検査工程において、例えばベルト上を流れてくる各製品を撮影して得られる画像データ710~713からそれぞれコードを生成し、これを予め記録しておいた参照用コードと照合する。それにより、製品の配置の角度が一定ではなくても形状や色調などが一致していれば合格品(OK品)と判断し、一部の欠けや色調の相違などがある場合には不良品(NG品)と判断することができる。図示の例では画像データ711、713に対応する製品は合格品であり、画像データ710、713に対応する製品は不良品と判断できる。
【0069】
このように予め参照用コードを生成する際に、1つの良品(不良のない製品)を1つの配置状態(角度)で撮影すれば、メモリ内処理により方向や角度が変わっても識別可能な複数の参照用コードを自動的に生成することができる。また、色情報もコードに埋め込むことにより形状だけでなく色調での判断も可能となる。
【0070】
図15は、上記した実施形態に係るコード化技術の応用例6を説明するための図である。例えば、製品の外観検査工程において製品が一定の配置で流れてくることが確定している場合には、角度を変えた参照用コードの生成は不要である。この場合は一定の配置にした良品に対応する1つの参照用コードで対応できる。ここでは一例としてパソコン用のキーボードの欠損、印刷不調、傷などの不良を検出する場合を考える。
【0071】
まず、15(A)に示すように検査対象となる製品の外観を撮影して画像データ800を得てコード化を行い、参照用コードとして記録しておく。このとき、
図15(B)に示すように、対象製品の画像データ800を複数の矩形領域に分割してそれぞれに対応する部分画像801を得て、各部分画像801に対応する参照用コードの集合である参照用コード群を得ることが好ましい。次に、実際の外観検査工程において、例えばベルト上を流れてくる各製品を撮影して得られる画像データから特定対象コード(群)を生成し、これを予め記録しておいた参照用コード(群)と照合する。それにより、キーボードの欠損、印刷不調、傷などの不良が存在する場合にはそれを検出することができる。この場合に、
図15(C)に示すように、不一致となった参照用コードに基づいて不良が存在する領域810を特定することもできる。
【0072】
図16は、上記した実施形態に係るコード化技術の応用例7を説明するための図である。ここでは、対象体の形状と面積を求める方法を説明する。対象体は、一定の撮影領域に配置されて撮影されるものとする。この場合に、まず対象体が配置されていない状態で撮影領域の画像データを得て、これを複数の領域に分割し、各領域の部分画像に対してコード化を行う。これにより、
図16(A)に示すように複数(図示の例では81個)のコードCd11、Cd12・・・Cd99からなる参照用コード群が得られるので、この参照用コード群を記録しておく。
【0073】
次に、対象体の配置された撮影領域の画像データを得て、これを複数の領域に分割し、各領域の部分画像に対してコード化を行う。それにより、特定対象コード群が得られる。これを上記の参照用コード群と照合する。すると、
図16(B)に示すように、コードの一致している領域901(図中の無模様矩形領域)と、コードの一致していない領域902、903(図中の模様が付された矩形領域)が得られる。コードの一致していない領域902、903は、対象体の存在する領域である。ここでは、10%刻みで一致率を区分けてしている。コードが不一致の領域のうち、例えば図示の例では30%~40%の一致率の領域902をつなぐことで対象体のエッジ、すなわち形状が得られる。また、このエッジ内の面積を求めることで対象体の平面視の面積を求めることができる。また、エッジ内において一致率の異なる領域903(ここでは例えば60~70%の一致率)の部分に基づき、対象体の凹凸を推定することもできる。なお、コード同士の一致率の求め方は種々考えられるが、簡便な一例としては、コード同士をそれらの並び順に1文字ずつ比較して一致する文字の数を計数し、その数を全体の文字数で除算する方法を用いることができる。例えば、コードに384文字が含まれており、そのうち370文字が一致していれば一致率は約96%となる。
【0074】
<第2実施形態>
図17は、第2実施形態のコード化方法について説明するための図である。ここではコード化の対象となるデータ(対象データ)の一例として画像データを挙げて説明する。なお、コード生成装置やユーザ装置の構成については第1実施形態と同様であり(
図6、
図7参照)、コード生成と照合に係る情報処理方法のみが異なっている。ここでは装置構成の説明を省略し、コード生成と照合の情報処理方法について詳述する。
【0075】
図17(A)に示すように、対象データ(参照用データ)としての画像データが複数のサンプリング範囲に分割される。図示の例では8行8列の64個のサンプリング範囲S11、S12、S13・・・S88に分割されているが分割数はこれに限定されない。各サンプリング範囲S11~S88に含まれるピクセル総数は、例えば1000~2000である。各ピクセルには、公知のフォーマットに基づいてYUV形式で色情報が含まれているものとする。ここで、Yは輝度値、U(Cb)は輝度値と青色成分との差、V(Cr)は輝度値と赤色成分との差をそれぞれ表すものとする。以下、それぞれの値をY値、U値、V値という。この処理はサンプリング処理部20、60が実行する。
【0076】
このとき、サンプリング範囲S11~S88のそれぞれごとに、Y値、U値、V値の平均値が求められる。平均値の求め方は上記した第1実施形態と同様であり、例えばサンプリング範囲S11については、このサンプリング範囲S11に含まれるすべてのピクセルのY値、U値、V値のそれぞれの合計値を求め、その合計値をサンプリング範囲S11のピクセル総数で除算することにより求められる。他のサンプリング範囲についても同様である。この処理は、特徴値算出部21、61が実行する。
【0077】
図17(B)に、各サンプリング範囲のY値、U値、V値の各平均値の一例を示す。ここでは、サンプリング範囲S11のY値の平均値をY11、U値の平均値をU11、V値の平均値をV11というようにして、各サンプリング範囲におけるY値、U値、V値の各平均値を表している。例えば、サンプリング範囲S12では、各平均値は、Y12=119、U12=128、V12=142である。
【0078】
上記のようにして求められる各サンプリング範囲のY値、U値、V値の各平均値を用いてコードが生成される。一例を
図17(C)に示すように、例えば各平均値をY値、U値、V値の順でY11、Y12、Y13、・・・Y21、Y22、・・・Y87、Y88、U11、U12、U13、・・・U21、U22、・・・U87、U88、V11、V12、V13、・・・V21、V22、・・・Y87、Y88というように連結する。なお、これは一例であり、Y値、U値、V値の結合順序は適宜設定できる。このようにして、対象データ(参照用データ)としての画像データに対応した参照用コードが生成される。この処理は、エンコード処理部23、63が実行する。
【0079】
ここで、Y11~Y88、U11~U88、V11~V88のそれぞれの値が例えば16進数の文字列で表されるとすると、上記のように8行8列の64分割のサンプリング範囲を設定した場合に得られるコードのデータサイズは、192バイト(=64×3)となる。これは384文字のテキストデータに相当する。16進数の文字コードで表記されたコードの一例を
図18に示す。16進数文字では1文字あたりのデータ量が4ビットであるから文字数が384文字であるが記録する際のデータ量は192バイトとなる。
【0080】
本願発明者の検討によれば、この192バイトのデータ量が複雑な演算を用いずに比較・照合・判定・認識をリアルタイムで行うための実用的な最小値となる。すなわち、空間・風景・物体・熱源映像・映像・画像などの可視化できる対象データに対して98%程度の認識率を達成できる有効なコードの最小値が192バイトとなる。このデータサイズは、元になる映像や画像の面積やデータサイズに依存しない。
【0081】
例えば、フレームレートが24fpsの動画に対応して毎秒24個のコードを生成した場合のデータ量について考える。上記のように1つの画像に対応するコードのデータサイズが192バイトであるとすると、30分間の動画に対応するコード数は43200となり、そのデータ量は約7.9MBとなる。同様に、1時間の動画に対応するコード数は86400でデータ量は約15.8MBとなり、2時間の動画に対応するコード数は172800でデータ量は約31.6MBとなり、1日間の動画に対応するコード数は2073600でデータ量は約379.7MBとなる。また、各コードに対して座標(経度・緯度・標高:24バイト)、時刻(年月日と時分秒:8バイト)、2バイト文字100文字分のコメント(200バイト)の各関連情報が付加されていたとしても、30分間の動画に対応するデータ量は約17.5MB、1時間の動画に対応するデータ量は約34.9MB、2時間の動画に対応するデータ量は約69.9MB、1日間の動画に対応するデータ量は約838.5MBとなる。なお、毎秒1つのフレームに対応して1つのコードを生成した場合のデータ量は上記の1/24の大きさとなる。この場合、1日間の動画でもデータ量が15.8MB(関連情報なし)、あるいは34.9MB(関連情報あり)と非常に小さくなる。
【0082】
また、このコードにはYUVの各々の色情報が含まれるので、この色情報を用いて下記の変換式によってRGB形式の色情報を得ることもできる。
R=(1.164×(Y値-16))+(1.596×(V値-128))
G=(1.164×(Y値-16))-(0.391×(U値-128))-(0.813×(V値-128))
B=(1.164×(Y値-16))+(2.018×(U値-128))
【0083】
図19は、第2実施形態のコードを用いた照合方法を説明するための図である。ここでは、説明を簡素化するために、3行3列のサンプリング範囲が設定されている場合を考える。図中、左側には予め生成されて記録された参照用コードを示し、右側には特定対象データから得られた特定対象コードを示す。なお、各コードの実態は上記した
図17(C)に示したような文字列であるが、ここではサンプリング範囲ごとの対応が分かりやすくなるように表現している。照合方法としては、例えば、単純に比較する方法と、相対的に比較する方法などが考えられる。これらの処理は、照合処理部64が実行する。
【0084】
まず、単純に比較する方法を説明する。サンプリング範囲ごとに、参照用コードと特定対象コードのY値、U値、V値のそれぞれの差分を求め、その差分を二乗する。例えば、図示の例では、1行1列のサンプリング範囲におけるY値の差分の二乗は、(202-195)2=49となる。同様に、1行2列のサンプリング範囲におけるY値の差分の二乗は、(195-212)2=289となる。同様に、例えば3行3列のサンプリング範囲におけるY値の差分の二乗は、(149-190)2=1681となる。他のサンプリング範囲についても同様にしてY値の差分の二乗を求め、それらの合計値を求める。図示の例では、各サンプリング範囲におけるY値の差分の二乗を合計するとその合計値は15114(=49+289+・・・+1681)となる。また、U値、V値についても同様にして各値の差分の二乗を合計するとその合計値はそれぞれ8694、3072となる。
【0085】
このようにしてY値、U値、V値のそれぞれに対応する合計値が得られると、それらを予め設定した基準値と比較し、各値ともに基準値以下である場合に、参照用コードと特定対象コードが一致していると判断する。基準値は、どの程度の類似度で「一致」とするかを用途などに考慮して設定すればよく、例えば97%以上の一致率に相当する基準値を設定することができる。
【0086】
なお、Y値、U値、V値のそれぞれについて差分をさらに二乗しているのは、参照用コードと特定対象コードの相違をより検出しやすくするためである。用途によっては二乗をしなくてもよいし、反対に、三乗などさらに指数を大きくしてもよい。
【0087】
次に、相対的に比較する方法を説明する。まず、参照用コードについて、1行1列のサンプリング範囲と1行2列のサンプリング範囲との間でY値の差分を二乗した値Ya12を求める。図示の例ではYa12=(202-195)2=49である。同様に、1行1列のサンプリング範囲とそれ以降の8つのサンプリング範囲との間でY値の差分を二乗した値Ya13、Ya14・・・Ya19をそれぞれ求める。
【0088】
次に、1行2列のサンプリング範囲と1行3列のサンプリング範囲との間でY値の差分を二乗した値Ya23を求める。図示の例ではYa23=(195-213)2=324である。同様に、1行2列のサンプリング範囲とそれ以降の7つのサンプリング範囲との間でY値の差分を二乗した値Ya24、Ya25・・・Ya29をそれぞれ求める。同様にして、1行3列のサンプリング範囲とそれ以降のサンプリング範囲との間でY値の差分を二乗した値Y34、Y35、・・・Y49を求める。
【0089】
以下も同様に、2行1列のサンプリング範囲とそれ以降のサンプリング範囲、2行2列のサンプリング範囲とそれ以降のサンプリング範囲、2行3列のサンプリング範囲とそれ以降のサンプリング範囲、3行1列のサンプリング範囲とそれ以降のサンプリング範囲、3行2列のサンプリング範囲とそれ以降のサンプリング範囲、のそれぞれの間でY値の差分を二乗した値を求める。
【0090】
そして、求められたY値の差分を二乗した値をすべて合計する。図示の例では、合計値は47502となる。また、U値、V値についても同様にして計算すると、U値に関する合計値は73256、V値に関する合計値は0となる。
【0091】
次に、特定対象コードについても上記と同様にして計算すると、Y値に関する合計値は70898、V値に関する合計値は58104、U値に関する合計値は18272となる。
【0092】
そして、参照用コードと特定対象コードとの間で、YUVそれぞれの合計値の差分を求めると、ΔY=23396、ΔU=15152、ΔV=18272となる。
【0093】
このようにしてY値、U値、V値のそれぞれに対応する合計値の差分が得られると、それらを予め設定した基準値と比較し、各値ともに基準値以下である場合に、参照用コードと特定対象コードが一致していると判断する。基準値は、どの程度の類似度で「一致」とするかを用途などに考慮して設定すればよく、例えば97%以上の一致率に相当する基準値を設定することができる。
【0094】
なお、単純比較の場合と同様、Y値、U値、V値のそれぞれについて差分をさらに二乗しているのは参照用コードと特定対象コードの相違をより検出しやすくするためである。用途によっては二乗をしなくてもよいし、反対に、三乗などさらに指数を大きくしてもよい。また、相対比較の場合に、上記した例では、あるサンプリング範囲とそれ以降のサンプリング範囲との差分を求めていたが、各サンプリング範囲について、他の全てのサンプリング範囲と総当たりにして差分を求めてもよい。
【0095】
上記したような第2実施形態に係るコードは、上記した第1実施形態において種々説明した応用例に対して適用することができる。すなわち、第1実施形態と第2実施形態ではコードの生成方法に相違があるが、各応用例は生成されたコードの活用方法に係るものであり、コードの生成方法には影響を受けないからである。
【0096】
<第3実施形態>
図20は、第3実施形態のコード化方法について説明するための図である。ここではコード化の対象となるデータ(対象データ)の一例として音データを挙げて説明する。なお、コード生成装置やユーザ装置の構成については第1実施形態と同様であり(
図6、
図7参照)、コード生成と照合に係る情報処理方法のみが異なっている。ここでは装置構成の説明を省略し、コード生成と照合の情報処理方法について詳述する。
【0097】
一般に、音の三要素は、音の大きさ、音程、音色である。音データのコード化とは、音自体を再現するものではなく、例えばリアルタイムに音データを解析して音の認識、識別を行うことを目的とした技術である。本実施形態では、音の三要素のうち、音程に着目してコード化を行う。
【0098】
図20(A)は、マイクから収音された音に対して離散フーリエ変換を行い、周波数の時間変化を求めた波形図の一例である。なお、必要に応じてケプストラム解析により基本周波数を算出してもよい。このような波形図に対して、例えばサンプリング間隔Qを0.2秒間に設定し、このサンプリング間隔ごとに周波数を抽出する。そして、抽出した周波数の値をコード化し、記録する。このとき、サンプリング間隔Q、サンプリング時間(図示の例では2.0秒間)、曲のタイトル等の関連データが付加されて記録される。コード化の対象となる音データは、マイクによる収音でリアルタイムに得られるものであってもよいし、予め収音されて保存されていたものであってもよい。保存されていた音データの形式がmp3などの圧縮形式である場合には、適宜WAVE形式などの非圧縮形式に変換されてコード化が実行される。
【0099】
なお、上記の情報処理は、サンプリング間隔ごとのデータ分割がサンプリング処理部20によって行われ、周波数の算出が特徴値算出部21によって行われ、コード化がエンコード処理部23によって行われ、得られたコードと関連情報の記録がコード記録処理部24によって行われる。
【0100】
図20(B)は、コード化の一例を示す図である。
図20(A)に示した音データの波形に基づいて0.2秒間ごとにコード化を行った場合の例を示している。例えば、取得タイミングが0.2秒のときの周波数は1046.50Hzと抽出され、それに対応するコード(図中「CEC」と表記)が0416と得られている。この音は、音階名でいうと「ド/C6」に対応し、鍵盤記号(88鍵盤の場合)でいうと64に対応している。ほかの取得タイミングについても同様である。なお、本例では周波数の抽出時には可聴範囲として20Hz~20000Hzを想定し、コード化の際には小数点以下を切り捨てている。例えば、20.2Hzの場合、小数点切り捨て後の値は「20」であり、これを16進数でコード化すると「14」となる。同様に、261.62Hzなどの場合、小数点切り捨て後の値は「261」であり、これを16進数でコード化すると「105」となる。同様に、20000.0Hzなどの場合、小数点切り捨て後の値は「20000」であり、これを16進数でコード化すると「4e20」となる。よって、本実施形態で生成されるコードは最大4文字の16進数で表現できるので、データサイズは最大で2バイトとなる。
【0101】
図21は、第3実施形態のコードを用いた照合方法を説明するための図である。
図21(A)に示すように、ある楽曲(Twilight Message)の一部分(2000ms分)の音程に対応するコードがサンプリング間隔Qを0.2秒間に設定して予め求められており、参照用コード群として記録されている。なお、図中では説明を簡単にするために、コードをA~Gのアルファベットで表記しており、同じアルファベット表記のコードはその内容が一致しているとする。これに対して、リアルタイム(あるいは音データ)として与えられる各楽曲の特定対象データに対してコード化を行い、これを参照用データ群と照合する。図示の例では、楽曲(1)、楽曲(3)のそれぞれには参照用データ群とコードの並びが一致する部分が存在しないので、参照用データ群により特定される楽曲ではないと判断できる。他方、楽曲(2)には、参照用データ群とコードの並びが一致する部分が存在するので、この楽曲(2)は参照用データ群に対応する楽曲(Twilight Message)であると判断できる。なお、サンプリング間隔Qごとの各コード同士の一致/不一致については、完全にコードが同じ場合に「一致」と判断してもよいし、一定の誤差範囲内(例えば±10Hzに相当する誤差範囲内)であれば「一致」と判断してもよい。
【0102】
なお、上記の情報処理は、サンプリング間隔ごとのデータ分割がサンプリング処理部60によって行われ、周波数の算出が特徴値算出部61によって行われ、コード化がエンコード処理部63によって行われ、得られたコードと参照用データ群との照合が照合処理部64によって行われる。
【0103】
ここで、音データのコード化に際しては、特にその対象が楽曲の音データである場合には、そのテンポを考慮してサンプリング間隔を設定することがより好ましい。例えば、テンポ(BPM)が120の楽曲の場合、1分間に4分音符が120個(拍)含まれる。この場合、1秒間に2拍である、1拍の間隔は0.5秒間となる。この場合、音データのテンポに合わせてサンプリング間隔を設定(調整)することで、音符のタイミングに対応したコード化が可能となる。具体的には、サンプリング間隔をQ、テンポをB、対象とする音符の拍の長さをXとする。ここで、音符の拍の長さとは、例えば4分音符の場合にはX=4、8分音符の場合にはX=8というように設定される。このとき、
図21(B)に示すように、サンプリング間隔Qは、Q=(1/((B/60)×(X/4)))×1000と表せる。この関係式を用いてサンプリング間隔Qを設定して音データをコード化することで、楽曲の類似性の判定精度がより向上する。
図21(B)の下欄に、好ましいサンプリング間隔Qの具体的な値を例示する。
【0104】
このような音データのコード化により、例えば空間に流れる楽曲のタイトルをユーザ装置2に表示させ、あるいはその楽曲に合わせたARコンテンツ(拡張現実コンテンツ)、動画、静止画をユーザ装置2に表示させるなどの制御を実現できる。また、いわゆる楽曲の盗作問題に関して、人間の主観的な判断ではなく、客観性のある判断としてその類否を提示することも可能となる。また、一般に生物の心音はすべて異なり、たとえ双子であっても心音は異なるという見識を前提にすると、心音をコード化することにより、心音に基づく人物認証(心音認証)を行うことも可能になる。例えば、空港などのゲートにおける人物認証が可能になるなど、これまでにないユースケースを生み出すことができる。
【0105】
以上のような各実施形態によれば、画像や音声等の対象データを少ないデータ量でコード化する新規な技術が提供される。それにより、低負荷かつ短い処理時間で特定対象データと参照用データとの照合を実行可能とする新規な技術も提供される。
【0106】
すなわち、各実施形態によれば、例えばカメラを通した映像を任意の個数で分割し、複数に分割された各1ブロック(サンプリング範囲)に対して光源、輝度、色などの情報から固有のコードを生成して記録し、このコードを利用して高速に(あるいはリアルタイムに)比較、照合、認証を行うことが可能となる。この固有のコードを用いることで、熱源、音、X線といった不可視の情報や五感情報の伝送において、より小さなデータサイズで実現することも可能である。
図22にその概念図を示すように、空間情報や動画像、静止画像、温度や音といった、現在においてデータとして確立・認識されているものに対して各実施形態による固有のコードを付加することによって、現実世界との紐付けだけでなくデータの新しい利用方法が生まれ、すでに記録されて存在しているデータに更なる付加価値と活用方法を与えることができる。例えば、GPS情報(位置情報)、方向、角度、温度、圧力などに加え、すでにビッグデータ上には入手先やURLなど様々な付随する情報が存在する。しかしながら現実世界とリアルタイムで比較、照合した場合には、判定に必要な「状況」、「状態」、「空間データ」が欠落しており、必要な紐付けができていないのが現状である。これに対して、各実施形態によるコードを用いて「アースデータ」という現実との結合の手を作ることにより、現実世界とシステムの間でのリンクの「鍵」、トリガーとしての役割を果たすことができる。各実施形態によるコードのデータサイズは非常に小さいので、「バイトチェーン」という新しい概念が提供される。
【0107】
なお、本発明は上記した各実施形態の内容に限定されるものではなく、本発明の要旨の範囲内において種々に変形して実施をすることが可能である。各実施形態により生成されるコードの活用法、応用法は上記した内容に限られない。また、各実施形態で挙げた数値などは一例であってこれらに限定されない。また、第1実施形態では、各サンプリング範囲の相互間で相対差を求めていたがこれを省略して各サンプリング範囲の輝度の平均値を文字列データとして連結してもよい。
【0108】
また、上記した各実施形態では、平均値ないし相対差から得た文字列データを直接に連結してコードを生成していたが本発明における「連結」の態様はこれに限定されない。例えば、各平均値または各相対差に対して一定の係数を乗算したものを文字列データにして連結してもよい。また、各平均値等に対応する文字列データの相互間に特定のデータ(区切り文字等)を介在させた形で各文字列データを連結してもよい。あるいは、各平均値等に対応する文字列データを一定規則の下で他の文字列データに変換したものを連結してもよい。すなわち、平均値等の相互の相対的な関係性が崩れない形ないし復元可能な形であればいかなる連結の態様であっても本発明における「連結」の概念に含まれる。
【符号の説明】
【0109】
10、50、情報処理部、11、51:カメラ、12、52:マイク、13、53:記憶装置、14、54:動作デバイス、15、55:表示デバイス、20、60:サンプリング処理部、21、61:特徴値算出部、23、63:エンコード処理部、24:コード記録処理部、64:照合処理部