以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、システム10の一例を概略的に示す。システム10は、カメラ200によって生成された動画データに対して画像処理を施す画像処理装置100を備える。システム10は、カメラ200を備えてよい。
カメラ200は、予め定められた対象300を撮像して動画データを生成する。対象300は、例えば、人物である。対象300は、移動可能な任意の物であってよく、自動車等の車両や、ドローンの様な無人航空機等が、その例として挙げられる。
カメラ200は、任意の空間に対して設置されて、当該任意の空間を撮像する。図1に示す例では、カメラ200は、1又は複数の対象300が存在する閉空間50を撮像する。閉空間50の例として、社員食堂等が挙げられるが、これに限らない。カメラ200は、開放空間を撮像してもよい。
カメラ200は、生成した動画データをネットワーク20を介して画像処理装置100に送信する。カメラ200は、ストリーミングによって動画データを画像処理装置100に送信してよい。カメラ200は、動画ファイルを画像処理装置100に送信してもよい。
カメラ200は、ネットワーク20に有線接続されてよい。カメラ200は、ネットワーク20に無線接続されてもよい。無線接続の通信方式は、任意の通信方式であってよい。無線接続の通信方式の例として、移動体通信方式、Wi−Fi(登録商標)通信方式、及びBluetooth(登録商標)通信方式等が挙げられる。
ネットワーク20は、社内ネットワーク等のLAN(Local Area Network)を含んでよい。ネットワーク20は、移動体通信ネットワークを含んでよい。移動体通信ネットワークは、3G(3rd Generation)通信方式、LTE(Long Term Evolution)通信方式、5G(5th Generation)通信方式、及び6G(6th Generation)通信方式以降の通信方式の少なくともいずれかに準拠していてよい。ネットワーク20は、インターネットを含んでよい。
画像処理装置100は、カメラ200から受信した動画データを解析して、対象300に関する情報を出力するよう制御する。画像処理装置100は、例えば、画像処理装置100が備えるディスプレイに対象300に関する情報を表示させる。
また、画像処理装置100は、例えば、携帯通信端末30に対して、ネットワーク20を介して、対象300に関する情報を送信して、携帯通信端末30に、対象300に関する情報を表示させる。携帯通信端末30は、スマートフォン等の携帯電話、及びタブレット端末等であってよい。
また、画像処理装置100は、例えば、PC(Personal Computer)40に対して、対象300に関する情報を送信して、PC40に、対象300に関する情報を表示させる。PC40は、ネットワーク20に有線接続されてよい。PC40は、ネットワーク20に無線接続されてもよい。
画像処理装置100は、例えば、動画データを解析して、閉空間50内の複数の人物のそれぞれが、移動しているか否かを判定する。具体例として、画像処理装置100は、動画データの複数のフレームのうちの注目フレームにおける人物が存在する注目対象存在領域を特定し、注目対象存在領域と、複数のフレームのうちの、注目フレームよりも過去の複数の過去フレームにおける人物が存在する過去対象存在領域とに基づいて、注目対象存在領域に存在する複数の人物のそれぞれが移動しているか否かを判定する。そして、画像処理装置100は、注目フレームに含まれる複数の人物のそれぞれが移動しているか否かを示す情報を出力するよう制御する。
図2は、動画データ400内の注目フレーム410及び過去フレーム420の一例を概略的に示す。画像処理装置100は、注目フレーム410を決定した後、注目フレーム410よりも過去の複数の過去フレーム420を選択する。画像処理装置100は、予め定められた数の過去フレーム420を選択してよい。予め定められた数は、任意に設定可能であってよい。
画像処理装置100は、例えば、動画データ400の全フレームを注目フレーム410として決定し得る。画像処理装置100は、カメラ200によってストリーミングされる動画データ400の最新のフレームを注目フレーム410として、複数の過去フレーム420を選択して解析を実行するという動作を、フレームを受信する毎に実行してよい。
画像処理装置100は、予め定められたフレーム数毎に、フレームを注目フレーム410として決定してもよい。予め定められたフレーム数は、例えば、10フレーム等の任意の数であってよく、任意に設定可能であってよい。
図3及び図4は、注目フレーム410及び過去フレーム420の解析処理を説明するための説明図である。ここでは、説明を簡易にするために、過去フレーム420の数が3つである場合を例示している。
画像処理装置100は、注目フレーム410、過去フレーム430、過去フレーム440、及び過去フレーム450のそれぞれについて、対象300が存在する対象存在領域を特定する。図3に示す例では、注目フレーム410、過去フレーム430、過去フレーム440、及び過去フレーム450のそれぞれに、対象存在領域310及び対象存在領域320が含まれる。なお、図3では、対象存在領域310に存在する対象300は滞留しており、対象存在領域320に存在する対象300は移動している場合を例示している。
画像処理装置100は、対象存在領域に第1の値を割り当て、対象存在領域以外の領域に第2の値を割り当てる。第1の値は、第2の値よりも大きい値であってよい。図3では、第1の値が「1」であり、第2の値が「0」である場合を例示しているが、これに限らず、他の値であってもよい。
数値割当412は、注目フレーム410の各領域に割り当てた数値を示す。数値割当432は、過去フレーム430の各領域に割り当てた数値を示す。数値割当442は、過去フレーム440の各領域に割り当てた数値を示す。数値割当452は、過去フレーム450の各領域に割り当てた数値を示す。
画像処理装置100は、注目フレーム410の対象存在領域に割り当てた値と、複数の過去フレーム420のそれぞれにおける、注目フレーム410の対象存在領域に対応する領域に割り当てた数値とに基づいて、注目フレーム410の対象存在領域に存在する対象300が移動しているか否かを判定してよい。
図4のおける合計値414は、注目フレーム410の各領域について、注目フレーム410の各領域に割り当てた数値と、複数の過去フレーム420のそれぞれの、注目フレーム410の各領域に対応する領域に割り当てた数値とを加算した値を示す。数値312は、注目フレーム410の対象存在領域310に割り当てた数値と、複数の過去フレーム420のそれぞれにおける、注目フレーム410の対象存在領域310に対応する領域に割り当てた数値とを加算した値を示す。数値322は、注目フレーム410の対象存在領域320に割り当てた数値と、複数の過去フレーム420のそれぞれにおける、注目フレーム410の対象存在領域320に対応する領域に割り当てた数値とを加算した値を示す。
画像処理装置100は、例えば、数値312の平均値が予め定められた閾値より高い場合、対象存在領域310に存在する対象300が移動していないと判定し、閾値より低い場合、対象300が移動していると判定する。また、画像処理装置100は、例えば、数値322の平均値が予め定められた閾値より高い場合、対象存在領域320に存在する対象300が移動していないと判定し、閾値より低い場合、対象300が移動していると判定する。例えば、閾値が3.2である場合、数値312の平均値は4であり、数値322の平均値は1であることから、画像処理装置100は、対象存在領域310の対象300は移動しておらず、対象存在領域320の対象300は移動していると判定する。
画像処理装置100は、数値312の合計値が予め定められた閾値より高い場合、対象存在領域310に存在する対象300が移動していないと判定し、閾値より低い場合、対象300が移動していると判定してもよい。また、画像処理装置100は、数値322の合計値が予め定められた閾値より高い場合、対象存在領域320に存在する対象300が移動していないと判定し、閾値より低い場合、対象300が移動していると判定してもよい。例えば、閾値が12.8である場合、数値312の合計値は16であり、数値322の合計値は2であることから、画像処理装置100は、対象存在領域310の対象300は移動しておらず、対象存在領域320の対象300は移動していると判定する。
従来、動画データ中の対象300を検出して、検出した対象300をトラッキングする技術が知られていた。当該技術によれば、対象300が移動しているか否かを判定し得る。しかし、例えば、動画データを送信するネットワークの環境によっては、フレームが欠落したり、一部のフレームの送信が遅延したりする場合があり、そのような場合、トラッキングが失敗してしまい、対象300が移動しているか否かを適切に判定できない場合がある。また、動画データのフレームレートが低い場合、トラッキングの精度が低下してしまい、対象300が移動しているか否かを適切に判定できない場合がある。また、動画データ中に多数の対象300が含まれている場合に、処理負荷が非常に高まってしまう場合がある。例えば、従来は、注目対象存在領域同士のフレーム間で一致させる計算と、一致した注目対象存在領域同士の移動距離計算とを果たした上で、移動又は滞留を判断していたが、前者においては過去フレームと現在フレームの注目対象存在領域のすべての総当たりで計算が必要であり、後者においては一致した注目対象存在領域ペア全てにおいて計算が必要であった。
それに対して、本実施形態に係る画像処理装置100によれば、一定期間のフレームにおける対象300の検出結果の蓄積に基づく判定をすることによって、フレームが一部欠落したり、フレームレートが低い場合であっても、対象300が滞留していることを比較的高い精度で推定することができる。また、フレーム毎に割り当てた数値の演算によって対象300が滞留しているか否かを判定できるので、処理負荷を大幅に低減することができる。
図5は、画像処理装置100の機能構成の一例を概略的に示す。画像処理装置100は、動画受信部102、動画格納部104、領域特定部106、及び出力制御部110を備える。
動画受信部102は、カメラ200から動画データを受信する。動画受信部102は、カメラ200からネットワーク20を介して動画データを受信してよい。
動画格納部104は、動画データを格納する。動画格納部104は、動画受信部102が受信した動画データを格納してよい。動画格納部104は、可搬型記憶媒体から読み込んだ動画データを格納してもよい。
領域特定部106は、動画格納部104に格納されている動画データの複数のフレームのうちの注目フレームにおける予め定められた対象が存在する注目対象存在領域を特定する。複数のフレームから注目フレームを特定する方法は、事前に設定されていてよい。例えば、複数のフレームのすべてについて解析を行う場合には、領域特定部106は、全フレームを順次注目フレームとして特定する。また、例えば、予め定められたフレーム数毎に解析を行う場合には、領域特定部106は、予め定められたフレーム毎に注目フレームとして特定する。
領域特定部106は、画像処理装置100の利用者による指示に従って、複数のフレームから注目フレームを特定してもよい。例えば、領域特定部106は、複数のフレームのうち、画像処理装置100の利用者によって指定されたフレームを注目フレームとして特定する。
領域特定部106は、任意の方法を用いて、注目フレームにおける予め定められた対象が存在する注目対象存在領域を特定してよい。領域特定部106は、例えば、画像内の予め定められた対象を特定するための機械学習モデルを利用することによって、注目対象存在領域を特定する。領域特定部106は、予め定められた対象の多数の画像を取得して、当該多数の画像を用いて、画像から予め定められた対象を特定するための機械学習モデルを生成してもよい。機械学習モデルを生成するアルゴリズムとしては、公知の任意のアルゴリズムを採用し得る。
領域特定部106は、注目フレームよりも過去の複数の過去フレームにおける予め定められた対象が存在する過去対象存在領域を特定してよい。領域特定部106は、注目フレームにおける注目対象存在領域を特定する方法と同様の方法を用いて、複数の過去フレームにおける過去対象存在領域を特定してよい。
注目対象存在領域及び過去対象存在領域は、矩形形状であってよい。注目対象存在領域及び過去対象存在領域を矩形形状とすることによって、計算コストを低減することができる。なお、注目対象存在領域及び過去対象存在領域は、矩形形状に限らず、任意の形状であってよい。注目対象存在領域及び過去対象存在領域は、画素単位で予め定められた対象を特定した領域であってもよい。注目対象存在領域及び過去対象存在領域を矩形形状とした場合と比較して計算コストは高まるが、対象の特定精度を向上することができる。
出力制御部110は、注目対象存在領域と、動画データの複数のフレームのうちの、注目フレームよりも過去の複数の過去フレームにおける予め定められた対象が存在する過去対象存在領域とに基づいて、注目対象存在領域に存在する対象に関する情報を出力する。出力制御部110は、例えば、注目対象存在領域に存在する対象の移動に関する情報を出力するよう制御する。また、出力制御部110は、例えば、注目対象存在領域に存在する対象が移動しているか否かに関する情報を出力するよう制御する。
出力制御部110は、数値割当部112、移動判定部114、及び表示制御部116を有してよい。数値割当部112は、注目対象存在領域及び複数の過去フレームのそれぞれにおける過去対象存在領域に第1の数値を割り当てる。数値割当部112は、注目フレームにおける注目対象存在領域以外の領域及び複数の過去フレームのそれぞれにおける過去対象存在領域以外の領域に第2の数値を割り当てる。
移動判定部114は、注目対象存在領域に存在する対象が移動しているか否かを判定する。移動判定部114は、複数の過去フレームのそれぞれにおける注目対象存在領域に対応する領域に割り当てられた数値と、注目対象存在領域に割り当てられた数値とに基づいて、注目対象存在領域に存在する対象が移動しているか否かを判定してよい。
移動判定部114は、例えば、複数の過去フレームのそれぞれにおける注目対象存在領域に対応する領域に割り当てられた数値と、注目対象存在領域に割り当てられた数値との平均値が、予め定められた閾値より高い場合、対象が移動していないと判定する。移動判定部114は、例えば、複数の過去フレームのそれぞれにおける注目対象存在領域に対応する領域に割り当てられた数値と、注目対象存在領域に割り当てられた数値との平均値が、予め定められた閾値より低い場合、対象が移動していると判定する。
移動判定部114は、注目フレームの領域毎に設定された閾値から、注目対象存在領域に対応する閾値を選択して、当該閾値と平均値とを比較することによって、対象が移動しているか否かを判定してもよい。動画格納部104は、フレームの領域毎に設定された閾値を格納してよく、移動判定部114は、動画格納部104から、注目対象存在領域に対応する閾値を選択してよい。動画格納部104は、例えば、フレームの領域のうち、対象が滞留している可能性が高い領域に、対象が移動している可能性が高い領域に対応する閾値よりも値が小さい閾値を対応付けて格納する。
カメラ200による撮像対象となる空間には、場所によって、存在する対象が移動している可能性が高いところと、存在する対象が滞留している可能性が高いところとが存在し得る。例えば、カメラ200が社員食堂を撮像している場合において、通路の空間は、対象が移動している可能性が高く、座席の空間は、対象が滞留している可能性が高い。そのような場合、動画格納部104は、フレームにおける座席の空間に対応する領域に対して、フレームにおける通路の空間に対応する領域に対応する閾値よりも値が小さい閾値を対応付けて格納してよい。これにより、通路の空間に存在する対象と比較して、座席の空間に存在する対象が移動していないと判定する可能性を高めることができ、判定精度の向上に貢献することができる。
移動判定部114は、複数の過去フレームのそれぞれにおける注目対象存在領域に対応する領域に割り当てられた数値と、注目対象存在領域に割り当てられた数値との合計値が、予め定められた閾値より高い場合、対象が移動していないと判定してもよい。移動判定部114は、複数の過去フレームのそれぞれにおける注目対象存在領域に対応する領域に割り当てられた数値と、注目対象存在領域に割り当てられた数値との合計値が、予め定められた閾値より低い場合、対象が移動していると判定してもよい。移動判定部114は、注目フレームの領域毎に設定された閾値から、注目対象存在領域に対応する閾値を選択し、当該閾値と合計値とを比較することによって、対象が移動しているか否かを判定してもよい。
表示制御部116は、注目フレームの注目対象存在領域に対応する位置に、注目対象存在領域に存在する対象が移動しているか否かを示すオブジェクトを配置して、注目フレームを表示部に表示させるよう制御する。表示部は、画像処理装置100が備えるディスプレイであってよい。表示部は、携帯通信端末30が備えるディスプレイであってもよい。表示部は、PC40が備えるディスプレイであってもよい。
表示制御部116は、移動判定部114によって注目対象存在領域に存在する対象が移動していないと判定された場合、当該注目対象存在領域に存在する対象が移動していないことを示すオブジェクトを注目フレームの注目対象存在領域に対応する位置に配置してよい。表示制御部116は、移動判定部114によって注目対象存在領域に存在する対象が移動していると判定された場合、当該注目対象存在領域に存在する対象が移動していることを示すオブジェクトを注目フレームの注目対象存在領域に対応する位置に配置してよい。
閉空間を撮像することによって生成された動画データを対象とする場合、表示制御部116は、閉空間内の、移動している対象の数と、移動していない対象の数とを表示部に表示させるよう制御してもよい。例えば、閉空間を撮像することによって生成された動画データを対象とする場合、領域特定部106は、注目フレームに含まれる対象の数を特定する。また、移動判定部114は、注目フレームに含まれる対象のうち、移動していない対象の数と、移動している対象の数とを特定する。そして、表示制御部116は、領域特定部106によって特定された注目フレームに含まれる対象の数と、移動判定部114によって特定された移動している対象の数及び移動していない対象の数とを表示部に表示させる。これにより、閉空間における人の流れを容易に把握可能な表示をていきょうすることができる。
図6は、注目フレーム410の一例を概略的に示す。図6は、カメラ200が社員食堂を撮像して生成した動画データにおける注目フレーム410を例示している。注目フレーム410には、複数の人物330が含まれる。画像処理装置100は、注目フレーム410と、注目フレーム410よりも過去の複数の過去フレームとに基づいて、複数の人物330のそれぞれが、移動しているか否かを判定してよい。
図7は、出力制御部110によって表示制御された表示画像500の一例を概略的に示す。出力制御部110は、図7に例示するように、注目フレーム410のうち、移動している人物330の位置に移動者オブジェクト510を配置し、移動していない人物330の位置に滞留者オブジェクト520を配置した表示画像500を表示部に表示させてよい。
出力制御部110は、例えば、社員の携帯通信端末30や、社員のPC40に表示画像500を表示させる。これにより、社員に、社員食堂における人の流れを適切に把握させることができる。
出力制御部110は、表示画像500とともに、社員食堂内の人物330の数と、滞留している人物330の数と、移動している人物330の数とを表示部に表示させてもよい。これにより、社員に、社員食堂の混雑度合と、人の流れとを適切に把握させることができる。
図8は、システム10の一例を概略的に示す。ここでは、図1と異なる点を主に説明する。図8に示す例では、画像処理装置100は、複数のカメラ200のそれぞれから、動画データを受信する。
画像処理装置100は、閉空間50を撮像することによって生成された動画データと、閉空間52を撮像することによって生成された動画データとを受信する。画像処理装置100は、それぞれの動画データについて、動画データの複数のフレームのうちの注目フレームにおける注目対象存在領域と、複数のフレームのうちの、注目フレームよりも過去の複数の過去フレームにおける過去対象存在領域とに基づいて、注目対象存在領域に存在する対象300に関する情報を出力するよう制御してよい。
図8に示す例において、動画格納部104は、閉空間50を撮像した動画データを解析するときに用いる閾値と、閉空間52を撮像した動画データを解析するときに用いる閾値とを、それぞれ格納してよい。移動判定部114は、閉空間50を撮像した動画データの複数の過去フレームのそれぞれにおける注目対象存在領域に対応する領域に割り当てられた数値と、注目対象存在領域に割り当てられた数値との平均値を、閉空間50に対応する閾値とを比較することによって、対象が移動しているか否かを判定してよい。移動判定部114は、閉空間52を撮像した動画データの複数の過去フレームのそれぞれにおける注目対象存在領域に対応する領域に割り当てられた数値と、注目対象存在領域に割り当てられた数値との平均値を、閉空間52に対応する閾値とを比較することによって、対象が移動しているか否かを判定してよい。
動画格納部104は、例えば、閉空間50における対象300が移動している可能性又は滞留している可能性と、閉空間52における対象300が移動している可能性又は滞留している可能性とに基づく閾値を格納する。動画格納部104は、例えば、閉空間50に対して、閉空間52の方が、対象300が滞留している可能性が高い場合、閉空間52に対して、閉空間50に対応する閾値よりも値が小さい閾値を対応付けて格納してよい。これにより、撮像対象空間の性質に応じた推定を実現することができる。なお、本実施形態における対象300は、人物の他、車両や無人航空機など移動可能な物体であればよい。
図9は、画像処理装置100として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブは、DVD−ROMドライブ及びDVD−RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブは、プログラム又はデータをDVD−ROM等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
プログラムは、DVD−ROM又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD−ROM、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
また、CPU1212は、記憶装置1224、DVDドライブ(DVD−ROM)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD−ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。