(58)【調査した分野】(Int.Cl.,DB名)
より低い位置から撮像された画像における前記同一被写体に対応する領域の高さ方向の長さの、より高い位置から撮像された画像における前記同一被写体に対応する領域の高さ方向の長さに対する割合が、
予め定められた閾値よりも大きい場合、
前記検出部は、前記同一被写体の立ち上がり部分を検出する、
請求項3に記載の検出装置。
【発明を実施するための形態】
【0007】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0008】
図1は、本実施形態に係る検出装置30を搭載する移動体1のブロック図を示す。移動体1は、例えば、自動車、自転車、及び鉄道車両等の車両、船舶、又は航空機等であってよく、複数の撮像装置を利用して移動の障害となる障害物を検出する。本実施形態の説明では、移動体1が自動車である場合について説明する。検出装置30は、移動体1の移動方向で、移動体1に対して立ち上がった線分又は面部分(立ち上がり部分ともいう)を検出することにより、障害物を検出する。移動体1は、撮像装置20、撮像装置22、及び、検出装置30を備える。
【0009】
撮像装置20及び22は、異なる高さで移動体1に設けられたデジタルカメラであってよい。撮像装置20及び22は、例えば、撮像方向が移動体1の移動方向側に向けて設けられ、移動体1の移動方向の道路面を撮像した画像をそれぞれ生成する。一例として、撮像装置20は自動車のバックミラー近傍に配置され、撮像装置22は自動車の前側ナンバープレート近傍に配置されてよい。撮像装置20及び撮像装置22は、撮像した画像を検出装置30に提供する。
【0010】
検出装置30は、複数の撮像装置20及び22が撮像した複数の画像に基づいて移動体1の移動方向にある障害物を検出する。検出装置30は、取得部310、抽出部320、検出部330、距離算出部340、判定部350、及び、出力部360を有する。
【0011】
取得部310は、複数の撮像装置20及び22で撮像された複数の画像を取得する。取得部310は、取得した複数の画像を抽出部320に供給する。
【0012】
抽出部320は、複数の画像の一部から障害物の候補となる障害物候補を抽出する。例えば、抽出部320は、複数の画像の一つの画像(例えば、撮像装置20からの画像)において、輝度等の特徴が周辺と異なる領域を障害物候補として抽出してよい。抽出部320は、抽出した障害物候補を検出部330に供給する。
【0013】
検出部330は、複数の画像から移動体1に対して立ち上がり部分を有する物体を検出する。例えば、検出部330は、複数の画像のうち障害物候補の抽出に用いなかった画像(例えば、撮像装置22からの画像)から、抽出された障害物候補に類似する領域を検出し、これを複数の撮像装置に共通して撮像された同一の障害物候補に対応する同一被写体として特定する。
【0014】
そして、検出部330は、複数の画像における同一被写体の高さ方向の長さの相違に基づいて、同一被写体の撮像装置20等に対する立ち上がり部分を検出する。検出部330による立ち上がり部分の具体的な検出方法は後述する。検出部330は、複数の画像で特定した同一被写体を距離算出部340に供給し、同一被写体について立ち上がり部分を検出したか否かの情報を判定部350に供給する。
【0015】
距離算出部340は、複数の画像の視差量に基づいて、同一被写体までの距離を算出する。例えば、距離算出部340は、複数の画像における同一の被写体の中心部分の高さ方向のシフト量に基づいて移動体1から同一被写体までの距離を算出する。距離算出部340は算出した距離を判定部350に供給する。
【0016】
判定部350は、同一被写体が立ち上がり部分を有するかの判定結果に基づいて、同一被写体が障害物であるか否かを判定する。例えば、判定部350は、複数の画像における障害物候補の同一被写体のうち、予め定められた高さ以上の立ち上がり部分を有する同一被写体を障害物と判定する。判定部350は、判定結果を出力部360に供給する。
【0017】
出力部360は、判定部350による判定結果を出力する。例えば、出力部360は、移動体1のディスプレイに検出した障害物を表示して、搭乗者に障害物の存在を警告してよい。
【0018】
このように検出装置30は、異なる高さに設けられた複数の撮像装置20等の画像中の同一被写体の視差に加えて/代えて、同一被写体の高さ方向の長さの相違を用いて障害物を判定する。同一被写体が遠方にある場合、同一被写体の高さ方向の長さの相違は同一被写体の視差よりも画像上で検出しやすいので、検出装置30は、同一被写体の視差のみを用いる場合と比較して、遠方の物体が移動体1の障害物となるかをより正確に判定することができる。これにより、検出装置30は移動体1の安全な移動を可能にする。
【0019】
図2〜3は、本実施形態の検出装置30の検出原理の概略を示す。
図2は、高位置側(高さP
H)の撮像装置20及び低位置側(高さP
L|P
L<P
H)の撮像装置22が、高さHを有し垂直(例えば、地面又は撮像装置20等に対し垂直)に立ち上がった同一被写体100を撮像する様子を示す。図中で撮像装置20の画像中の同一被写体100の高さ方向の長さはV
Hで示され、撮像装置22の画像中の同一被写体100の高さ方向の長さはV
Lで示される。
【0020】
撮像装置20及び撮像装置22の画像中において長さV
Hと長さV
Lは略同じ長さとなる。すなわち、同一被写体100が移動体1に対して立ち上がり部分を有する場合、複数の画像中の当該同一被写体100の画像中の高さ方向の長さはほぼ同じとなる。
【0021】
図3(a)は、高位置側(高さP
H)の撮像装置20及び(高さP
L|P
L<P
H)低位置側の撮像装置22が、奥行Dを有し水平方向(例えば、地面に対して平行又は撮像装置20等に対して水平)に沿って設けられる同一被写体100'を撮像する様子を示す。撮像装置20の画像中の同一被写体100'の高さ方向の長さはV
Hで示され、撮像装置22の画像中の同一被写体100の高さ方向の長さはV
Lで示される。
【0022】
図示するように、撮像装置20及び撮像装置22の画像中において長さV
Hは長さV
Lより大きくなる。すなわち、同一被写体100'が水平に配置されて移動体1に対して立ち上がり部分を有しない場合、高位置側の撮像装置20が同一被写体100'を撮像した際の高さ方向(縦方向)の長さは、低位置側の撮像装置22が撮像した長さより大きくなる。
【0023】
図3(b)は、
図3(a)の同一被写体100'付近の拡大図を示す。図示するように、長さV
Hは
図3(b)の右側の矢印の長さD
Hと比例し、長さV
Lは
図3(b)の左側の矢印の長さD
Lと比例する。ここで、長さD
HはDP
H/Zとなり、長さD
LはDP
L/Zとなる。従って、複数の画像中の同一被写体100'の高さ方向の長さ比V
H:V
Lは、撮像装置20及び撮像装置22の高さ比P
H:P
Lと等しくなる。
【0024】
例えば、撮像装置20及び撮像装置22の高さ比が3:1であれば、高さ方向の長さ比V
H:V
Lも3:1となる。同一被写体100'が遠方にある場合は同一被写体100'の視差は数ピクセル以下と非常に小さくなる可能性があるが、長さ比V
H:V
Lも3:1は常に一定なので、同一被写体100'の立ち上がりは視差に比べて検出しやすい。
【0025】
これにより、検出部330は、複数の画像における同一被写体の高さ方向の長さに相違があれば、同一被写体の主要な面が撮像装置20等の光軸と略平行な方向(すなわち水平方向)に沿って存在する状態であり、撮像装置20等に対して立ち上がり部分を有しないと判断する。
【0026】
また、検出部330は、複数の画像における同一被写体の高さ方向の長さに相違がなければ、同一被写体の主要な面が撮像装置20等の光軸と略垂直な方向(すなわち鉛直方向)に沿って存在する状態であり、撮像装置20等に対して立ち上がり部分を有すると判断する。
【0027】
図4は、本実施形態の検出装置30の処理のフローを示す。検出装置30は、S110からS160までの処理を実行することにより、移動体1の障害物を検出する。
【0028】
まず、S110において、取得部310は、異なる高さに設けられた複数の撮像装置20及び22で撮像された複数の画像を取得する。例えば、取得部310は、撮像装置20及び22のそれぞれが撮像したデジタル画像を取得する。取得部310は、撮像装置20等から動画及び/又は静止画を取得してよい。
【0029】
取得部310は、垂直方向に並ぶ複数の撮像装置20等から複数の画像を取得してもよく、これに代えて、斜め方向(例えば、地面又は撮像装置20等に対して斜め方向)に並ぶ複数の撮像装置20等から複数の画像を取得してもよい。また、取得部310は、高さの異なる少なくとも2個の撮像装置のそれぞれから複数の画像を取得してよい。取得部310は、取得した複数の画像を抽出部320に供給する。
【0030】
次に、S120において、抽出部320は、複数の画像から障害物の候補となる障害物候補を抽出する。例えば、抽出部320は、関心領域(ROI:Region of Interest)を自動抽出する既存の手法を用いて、複数の画像の一つの画像(例えば、撮像装置20からの画像)から障害物候補を抽出する。
【0031】
一例として、抽出部320は、撮像装置20からの画像を、複数のスーパーピクセル(複数の画素を含み、含まれる画素の色等の特徴が類似する所定の大きさ/形状の領域)に分割し、複数のスーパーピクセルのうち周囲と輝度及び/又は色度等の特徴が基準以上異なるものを障害物候補として抽出してよい。抽出部320は、抽出した障害物候補を検出部330に供給する。
【0032】
次に、S130において、検出部330は、障害物候補の立ち上がり部分を検出する。例えば、まず検出部330は、複数の画像における同一被写体を特定する。具体的には、検出部330は、複数の画像のうちS120で障害物候補の抽出に使用していない画像(例えば、撮像装置22からの画像)から、抽出された障害物候補に類似する領域を同一被写体とする。
【0033】
その後、検出部330は、複数の画像における同一被写体に対応する領域の高さ方向の長さの比V
H:V
L及び複数の撮像装置20等の高さの比P
H:P
Lに基づいて、立ち上がり部分を検出する。検出部330は、複数の画像における同一被写体の対応関係を距離算出部340に供給し、同一被写体について立ち上がり部分を検出したか否かの情報を判定部350に供給する。
【0034】
次に、S140において、距離算出部340は、複数の画像の視差量に基づいて、同一被写体までの距離を算出する。例えば、距離算出部340は、高さ方向における複数の画像の視差量に基づいて、移動体1から同一被写体までの距離を算出する。一例として、距離算出部340は、複数の撮像装置の焦点距離及び相対位置、並びに複数の画像における対応関係を有する同一被写体の視差を利用し、三角測量により、撮像装置位置から障害物候補までの距離zを算出する。
【0035】
高さ方向の視差量を用いることに代えて/加えて、移動体1が水平方向に設けられた複数の撮像装置を有する場合(例えば、水平な底辺を有する三角形の各頂点位置に撮像装置を設ける場合等)、距離算出部340は、水平方向における複数の画像の視差量に基づいて、同一被写体までの距離zを算出してよい。
【0036】
これにより、縦方向に十分に離隔して複数の撮像装置20等を配置できない場合等でも横方向に十分に離隔して撮像装置を設置することで、距離算出部340は、大きな視差量の視差画像を得ることができ、より正確に距離zを算出することができる。距離算出部340は、算出した同一被写体までの距離zを判定部350に供給する。
【0037】
次に、S150において、判定部350は、同一被写体が移動体1の走行の障害となる障害物となるか否かを判定する。例えば、判定部350は、複数の画像で検出された同一被写体のうち立ち上がり部分を有するものを選択する。次に、判定部350は、選択した同一被写体の距離及び高さ方向の長さ、並びに撮像装置の焦点距離を用いて、立ち上がり部分の実際の高さhを推定する。その後、判定部350は、推定した高さhに基づき、同一被写体が障害物であるか否かを判定する。例えば、判定部350は、選択した同一被写体のうち、推定した高さhが予め定められた閾値以上であるものを障害物と判定してよい。
【0038】
ここで、判定部350による具体的な処理の一例を説明する。まず、判定部350は、障害物候補の距離z[m]及び一の画像中における障害物の高さ方向の長さV
H[pixel]及び一の画像を撮像した撮像装置の焦点距離f[pixel]を用いて、障害物候補の実際の高さをh=zV
H/f[m]として算出する。
【0039】
次に、判定部350は、算出した高さhを用いて障害物候補が移動体1の走行の障害となり得るかどうか、すなわち障害物であるか否か判定する。例えば、高さhの閾値をT
h(例えば0.1[m])としてh>T
hの場合、判定部350は、障害物候補を障害物と判定する。
【0040】
ここで、判定部350は、距離算出部340が算出した距離を用いず、立ち上がり部分を有する同一被写体を全て障害物と判定してもよい。判定部350は、判定結果を出力部360に供給する。
【0041】
次に、S160において、出力部360は、判定部350による判定結果を出力する。例えば、出力部360は、移動体1の搭乗者用のディスプレイに検出した障害物の方向、及び/又は、障害物までの距離等を表示して、搭乗者に障害物の存在を警告してよい。また、出力部360は、移動体1に設けられたヘッドアップディスプレイに障害物の位置及び距離等を表示してもよい。
【0042】
図5は、
図4のS130の具体的な処理フローを示す。検出部330は、S131〜S139までの処理を実行することにより、S130の処理を遂行してよい。
【0043】
検出部330では、複数の画像における同一被写体の高さ方向の長さの比V
H:V
Lに基づいて、立ち上がり部分を検出する。そのために、まず、検出部330は複数の画像中の同一被写体を特定する必要がある。複数の画像中の同一被写体の特定は容易ではないため、一例として、二つの撮像装置から同時に得られる二つの画像を使って、高さ方向の長さの比r=V
L/V
Hの算出と同時に同一被写体の特定を実施する方法を以下に示す。
【0044】
まず、S131で、検出部330は、i=0をセットする。
【0045】
次に、S132で、検出部330は、上側の撮像装置(撮像装置20)で得られた画像から、抽出部320により抽出された障害物候補の画像を基準とし、高さ方向にs倍に縮小したテンプレート画像を作成するための倍率sを生成する。sは[P
L/P
H,1.0]の範囲でその両端を含む複数通りの離散値であり、例えばs=P
L/P
H+i×dであってよい。例えば、iは1〜n−1の整数値のうち検出部330がセットした値を取り、dは(1−P
L/P
H)/(n−1)であってよい。これにより、sは、P
L/P
H、P
L/P
H+d、P
L/P
H+2d、・・・、P
L/P
H+(n−2)d、1のn通りの値となる。i=0にセットされている場合、検出部330は倍率sとしてP
L/P
Hを生成する。
【0046】
次に、S133で、検出部330は、倍率sを用いて抽出部320により抽出された障害物候補の画像を基準とし、高さ方向にs倍に縮小したテンプレート画像を作成する。
【0047】
次に、S134で、検出部330は、複数の画像のうちS120において下側の撮像装置(撮像装置22)で得られた別の画像に対して、前記のs倍に縮小したテンプレート画像のテンプレート・マッチングを行い、別の画像中の最も適合した位置でのテンプレート画像との適合度m
sを算出する。
【0048】
前記S134のテンプレート・マッチングにおいて、検出部330は、テンプレート画像を別の画像の全体に対して走査し、それぞれの位置で適合度を算出する。画像全体について適合度を算出した後、その中から最も適合度が高い位置を検出し、その適合度をm
sとする。ここで、検出部330は、適合度の算出のために、正規化相互相関(Normalized Cross−Correlation)またはSSD(Sum of Squared Difference)相違度などを使用してよい。
【0049】
S135において、検出部330は、i<nとなるか否かの判断を行う。i<nと判断した場合、検出部330はiに1を追加して処理をS132に戻す。これにより、検出部330は、S132〜S134の倍率sの生成及びテンプレート・マッチングの処理をn通りのsについて実施し、複数のテンプレート画像の各々を用いて複数の倍率候補の中から最大の適合度を与える倍率を算出する。i<nでないと判断した場合、検出部330は、処理をS136に進める。
【0050】
その後、S136において、検出部330は、r=arg max
s(m
s)を計算することにより、最大のm
sを与える倍率sの値を、高さ方向の長さの割合rとして算出する。rは、より低い位置から撮像された画像における同一被写体に対応する領域の高さ方向の長さV
Lの、より高い位置から撮像された画像における同一被写体に対応する領域の高さ方向の長さV
Hに対する割合を示し、V
H:V
L=1:rとなる。
【0051】
次いで、S137で、検出部330は、r及び予め定められた閾値に基づいて障害物候補が立ち上がり部分を有するか否か判断する。例えば、rの閾値をT
rとする場合、検出部330は、r>T
rとなるか否か判断する。例えば、検出部330は、閾値T
rとしてT
r=(1+P
L/P
H)/2を用いてよい。検出部330は、r>T
rとなると判断する場合、処理をS139に進め、そうでない場合、処理をS138に進める。
【0052】
S138において、検出部330は、立ち上がり部分を検出しない。
【0053】
S139において、検出部330は、同一被写体に対応する障害物候補が
図2に示すように立ち上がり部分を有すると判定する。検出部330は、立ち上がり部分を有すると判断した障害物候補に関して、複数の画像における同一被写体の対応関係を距離算出部340に供給する。
【0054】
このように検出部330は、より低い位置から撮像された画像における同一被写体に対応する領域の高さ方向の長さの、より高い位置から撮像された画像における同一被写体に対応する領域の高さ方向の長さに対する割合rが、予め定められた閾値T
rよりも大きい場合に、障害物候補となる同一被写体の撮像装置20等に対する立ち上がり部分を検出する。
【0055】
なお、検出部330は、S133のテンプレート・マッチングの際、複数画像中の同一被写体の特定をより正確に実施するために、別の画像においてテンプレート画像を走査する範囲(探索範囲)を、画像全体ではなくエピポーラ線付近の範囲に限定してよい。例えば、検出部330は、別の画像においてエピポーラ線から予め定められた距離広がる領域を、探索範囲としてよい。
【0056】
ここで利用するエピポーラ幾何とは、二つの撮像装置の相対位置関係が既知であることに基づいた幾何制約であり、一の画像上に撮像された同一被写体の中心点が、別の画像上ではエピポールを通る直線上に拘束されるという制約を指す。例えば、垂直方向に並ぶ二つの撮像装置を使用した場合、一の画像の障害物候補の中心と同じ水平位置において、別の画像で垂直方向に延伸する線がエピポーラ線である。
【0057】
図6は、複数の撮像装置20及び22が撮像した複数の画像の例を示す。ここでは、高位置側の撮像装置20が撮像した画像を上ビューとして示し、低位置側の撮像装置22が撮像した画像を下ビューとして示す。両画像には、道路上に位置する同一被写体である障害物候補402及び障害物候補404が含まれる。
【0058】
障害物候補402は、上ビューでは高さ方向(図における上下方向)に長いが下ビューでは高さ方向に短い。従って、検出装置30は、障害物候補402を、
図3に示すような水平方向に沿った物体として検出する。水平方向に沿った物体は、例えば道路面に塗装された交通標識等であると考えられるので、移動体1の移動の障害物にならない可能性が高い。
【0059】
一方で、障害物候補404は、上ビューでの高さ方向の長さと下ビューでの高さ方向の長さはほぼ等しい。従って、検出装置30は、障害物候補404を、
図2に示すような立ち上がった物体として検出する。障害物候補404は、道路上に放置された高さを有する物体であると考えられるので、移動体1の移動の障害物となる。
【0060】
次に、上記実施形態の変形例として、垂直に立ち上がった被写体か水平方向に沿う被写体かの二通りだけでなく、その間の傾きを有する被写体についても考慮する場合について以下に記載する。
【0061】
本変形例では、検出装置30は、取得部310及び抽出部320によるS110及びS120の処理を、前述した実施形態と同様に実行してよい。
【0062】
本変形例において、検出部330は、前述した実施形態と同様にS131〜S136を含むS130の処理を実行して、複数の画像中の同一被写体の特定、及び高さ方向の長さの比rの算出してよい。次に、検出部330は、複数の画像中の同一被写体の対応を距離算出部340に供給する。また、検出部330は、高さ方向の長さの比rを判定部350に供給する。本変形例では、検出部330は、立ち上がり部分を有するか否かの判断は行わない。
【0063】
距離算出部340は、S140の処理を前述した実施形態と同様に実行してよい。
【0064】
判定部350は、S150において、複数の画像中の同一被写体の高さ方向の長さの比r及び距離z及び撮像装置の高さ方向の位置P
HとP
Lを用いて同一被写体が障害物であるか否か判定する。例えば、判定部350は、長さの比r(S136で算出される最大の適合度を与える倍率s)が同一被写体までの距離に基づく閾値よりも大きい場合に、同一被写体が障害物であると判定してよい。本変形例における、同一被写体の角度θを考慮した障害物判定の原理は後述する。次に、判定部350は、判定結果を出力部360に供給する。
【0065】
出力部360は、S160と同様に実行してよい。
【0066】
図7は、
図3(b)に対応する本変形例に係る判定部350による障害物判定原理の概略を示す。図示するように、同一被写体100'は角度θの傾きを有する。この場合、より高い位置から撮像された画像における同一被写体に対応する高さV
Hは図中のD
Hに比例し、V
H=αD
Hの関係がある。また、より低い位置から撮像された画像における同一被写体に対応する高さV
Lは図中のD
Lに比例し、V
L=αD
Lの関係がある。ここで、αは比例係数、D
H=Dcosθ(ztanθ+P
H)/(z+cosθ)及びD
L=Dcosθ(ztanθ+P
H)/(z+cosθ)である。
【0067】
このとき、同一被写体の高さ方向の長さの比はr=V
L/V
H=(ztanθ+P
L)/(ztanθ+P
H)であり、角度θに対して単調増加となる。角度θ=ψ以上を障害物と判定する場合、rの閾値はT
r=(ztanψ+P
L)/(ztanψ+P
H)とする。判定部350は、距離z及び撮像装置の高さ方向の位置P
HとP
Lを用いて、同一被写体のまでの距離zに基づく閾値T
rを設定し、r>T
rの場合は同一被写体を障害物と判定する。以上のように、本変形例では、閾値T
rは距離zに応じて異なる値をとる。
【0068】
このように、本変形例の検出装置30は、複数の画像中における同一被写体100'の高さ方向の長さV
H及びV
L、複数の撮像装置の設置位置の高さ及び同一被写体100'の距離及び角度基準値を用いて定められた閾値T
rに基づき、同一被写体100'が障害物か否かを判定する。これにより、本変形例の検出装置30は、障害物が垂直に立ち上がっておらず、一定の角度で立ち上がっている場合でも、障害物の存在をより詳細な条件により検出することができ、移動体1によるより安全な移動を可能にする。
【0069】
なお、本実施形態及び変形例において、撮像装置20及び撮像装置22は、異なる高さに設けられていれば足りるが、検出部330による立ち上がりの検出を容易にし、検出精度を向上するため、高さの比がより大きい方が好ましい。例えば、撮像装置20及び撮像装置22の高さの比P
H:P
Lは3:1以上であることが望ましい。
【0070】
上記説明では、検出装置30が道路上等に存在する移動体1の障害物を検出する場合について説明したが、検出装置30の検出対象はこれに限られない。検出装置30は、説明した実施形態及び変形例の手法を用いて、地面、壁、天井等の検出装置30の周囲に存在する面上の物体が、面から立ち上がっているかを検出してよい。例えば、検出装置30は、壁面から垂直に配置された複数の撮像装置からの画像を用いて、壁から垂直に立ち上がった部分を有する物体を検出してよい。
【0071】
図8は、検出装置30として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部を備える。
【0072】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0073】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0074】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0075】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0076】
コンピュータ1900にインストールされ、コンピュータ1900を検出装置30として機能させるプログラムは、取得モジュール、抽出モジュール、検出モジュール、距離算出モジュール、判定モジュール、及び、出力モジュールを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、取得部310、抽出部320、検出部330、距離算出部340、判定部350、及び、出力部360としてそれぞれ機能させてよい。
【0077】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部310、抽出部320、検出部330、距離算出部340、判定部350、及び、出力部360として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の検出装置30が構築される。
【0078】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0079】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
【0080】
例えば、検出装置30の記憶部は、取得部310、抽出部320、検出部330、距離算出部340、判定部350、及び、出力部360から受け取った/へ提供するデータを適宜記憶してよい。例えば、記憶部は、取得部310から入力されたデータを受け取って記憶してよい。また、記憶部は、検出部330が検出した結果及び出力部360が出力した結果等を記憶してよい。
【0081】
なお、本実施形態の説明において、一の構成要素(例えば、取得部310)から別の構成要素(例えば、抽出部320)に情報(例えば、複数の画像)を供給したと記載するときは、一の構成要素から別の構成要素に直接情報を受け渡すことだけでなく、記憶部への情報の格納及び情報の読み出しを介して情報を渡すことをも含んでよい。
【0082】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0083】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0084】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0085】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0086】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【0087】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0088】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。