【文献】
YACINE MORSLY ET AL,"Particle Swarm Optimization Inspired Probability Algorithm for Optimal Camera Network Placement",IEEE Sensor Journal, Vol.12, No.5, May 2012,米国,IEEE,2011年10月13日,Vol.12, No.5,p.1402-1412,doi:10.1109/JSEN.2011.2170833
【文献】
YI-CHUN XU ET AL,"Camera Network Coverage Improving by Particle Swarm Optimization",EURASIP Journal on Image and Video Processing, 2010,EURASIP,2010年12月 2日,Vol.2011,doi:10.1155/2011/458283
【文献】
CONCI N ET AL,"Camera placement using particle swarm optimization in visual surveillance applications",Image Processing (ICIP), 2009 16th IEEE International Conference on,米国,IEEE,2009年11月 7日,p.3485-3488,doi:10.1109/ICIP.2009.5413833
(58)【調査した分野】(Int.Cl.,DB名)
前記区域(106)がさらに空白区域(202)を含み、適合解を選択する前記ステップ(S508)がさらに、監視される前記空白区域(202)の割合に基づく、請求項1から3のいずれか一項に記載の方法。
前記少なくとも1台の監視カメラ(102、408)のそれぞれがカメラ機能を含み、前記カメラ機能が、視野およびズームレベルのうち少なくとも1つを含み、前記適合解が、前記少なくとも1台の監視カメラ(102、408)の前記カメラ機能を含む、請求項1から6のいずれか一項に記載の方法。
前記適合度関数がさらに、少なくとも2台の監視カメラ(102、408)を備え、適合解を選択する前記ステップ(S508)がさらに、前記少なくとも2台の監視カメラ(102、408)のそれぞれに対する前記監視区域(402)の所要の入射視野角(404、406)に基づく、請求項1から8のいずれか一項に記載の方法。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記に鑑み、本発明の一目的は、少なくとも監視区域を含むある区域内の1台または複数台の監視カメラの位置および向きを選択するための、改善された方法、システム、およびコンピュータ可読記録媒体を提供することである。概して、上記目的は、添付の独立特許請求項によって達成される。
【課題を解決するための手段】
【0007】
第1の態様によれば、少なくとも監視区域を含むある区域内の1台または複数台の監視カメラの位置および向きを選択するための方法によって本発明が実現し、この方法は、この区域に関するデータをプロセッサによって受信するステップと、このデータを用いて仮想区域をプロセッサによってモデル化するステップと、適合度関数の繰返し処理をプロセッサによって評価するステップであって、この適合度関数が、1台または複数台の監視カメラのシミュレーションされたカバレージエリアを計算し、かつ監視区域のシミュレーションされた入射視野角を計算するための、仮想区域内の1台または複数台の監視カメラの位置および向きを含む、評価するステップと、適合度関数に対する適合解をプロセッサによって選択するステップであって、この適合解が、1台または複数台の監視カメラの位置および向きを含み、この選択するステップが、1台または複数台の監視カメラの計算されシミュレーションされたカバレージエリア、監視区域における計算されシミュレーションされた入射視野角、および監視区域の所要の入射視野角に基づく、選択するステップとを含む。
【0008】
本明細書においては、用語「適合度関数」は、現在の解(すなわち、適合解)がどの程度最適なのかという測定値を計算するための関数として理解すべきである。
【0009】
本明細書においては、用語「向き」は、カメラのパン角度とチルト角度の組合せ、または単にカメラのパン角度もしくはチルト角度として理解すべきである。パンは、カメラが水平面内で回転する角度であり、チルトは、カメラが垂直面内で回転する角度である。
【0010】
本明細書においては、用語「監視区域」は、少なくとも1台のカメラによって監視する必要のある、区域のうちのサブ区域(または場合によっては区域全体)として理解すべきである。このような区域の一例は、美術館での有名な絵画、バンクバルブへの入口、または組立ラインの製品安全評価区域でもよい。監視区域は、1つの連続区域またはいくつかの別々の区域を含んでもよい。
【0011】
本明細書においては、用語「入射視野角」は、区域、または区域内もしくは区域の一部分にある対象物がカメラで監視される角度として理解すべきである。この角度は、1次元、2次元、または3次元で表現してもよい。所要の入射視野角は、角度の範囲、または最大角度もしくは最小角度を指定してもよい。
【0012】
本明細書においては、用語「仮想区域」は、区域についての任意の適切なコンピュータ表現として理解すべきである。多角形表現が最も一般的であるが、たとえば、区域内の各表面を表す等値面を使用することによるベクトル表現も同様に可能である。さらなる実施形態によれば、レベルセットなどの離散点ベースの表現が利用される。
【0013】
本明細書においては、用語「カバレージエリア」は、その位置に配置された少なくとも1台のカメラが監視することになる区域の領域として理解すべきである。
【0014】
本発明は、多くの場合で、監視区域の監視が、所要の入射視野角で実行されて、区域の監視を容易にする必要があるとの認識に基づいている。たとえば、出入り口を通って区域に入る人々を監視するとき、カメラはその出入り口の前に有利に配置され、平均的な人間の身長の高さで出入り口の位置に向けられて、たとえば、その区域に入る人の顔認識を容易にする。組立ラインを監視するときは、たとえば製品のほとんどの部分が見える角度で、その製品が監視されるようにカメラが有利に配置される。
【0015】
一実施形態によれば、仮想区域内の1台または複数台の監視カメラのうち少なくとも1台のカメラの位置および向きのうち少なくとも1つが、各繰返し処理において変更され、適合度関数の繰返し処理は、適合解が監視区域を完全にカバーするシミュレーションされたカバレージエリアを含むまで、評価され、この適合解は、監視区域に所要の入射視野角を満たす。
【0016】
この実施形態はさらに、監視区域の監視を容易にするが、それは監視区域全体が監視されることになるからである。もちろん、監視カメラが監視区域全体を監視できない場合もある。こうした場合には、最大数の繰返し処理を設定することができる。適合度関数が繰返し処理の最大数に達すると、最良の適合解、たとえば、シミュレーションされたカバレージエリアが監視区域をほとんどカバーするが、所要の入射視野角が実現される解が選ばれる。適合解が、監視区域を完全にカバーしているシミュレーションされたカバレージエリア、および監視区域に所要の入射視野角を含んでいることが分かった場合でも、適合度関数の繰返し処理が続行し得ることを付記してもよい。
【0017】
さらなる実施形態によれば、適合解を選択するステップはさらに、監視区域を監視する1台または複数台の監視カメラのうちの少なくとも1台のカメラが取り込んだ画像の所要の解像度に基づいている。これにより、監視区域の監視がさらに容易になるが、それは、高解像度画像は、低解像度画像よりも詳細部分を多く含んでいるからである。
【0018】
実施形態によれば、区域はさらに空白区域を含み、適合解を選択するステップはさらに、監視される空白区域の割合に基づく。
【0019】
本明細書においては、用語「空白区域」は、監視すなわち監視区域が必要でもなく、禁止されてもいない区域の一部分として理解すべきである。
【0020】
区域が、監視が最も重要である監視区域を含む場合でも、その区域の他の部分を監視することが有利になる場合がある。監視されている空白区域の割合にさらに基づいて、適合解を選択することにより、この方法は、所要の入射視野角で監視区域全体を監視する要件が満たされる複数の解から選ぶことができる。そのような場合、選択された適合解は、空白区域の大部分が監視されている解でもよい。
【0021】
区域は非監視区域をさらに含む。この実施形態によれば、適合解を選択するステップはさらに、非監視区域が、少なくとも1台または複数台の監視カメラによって監視されないことに基づいてもよい。
【0022】
本明細書においては、用語「非監視区域」は、監視すべきではない区域として理解すべきである。一例として、このような区域は、従業員の作業スペース、または浴室もしくは休息場の一部分など、よりプライベートな区域を含んでもよい。
【0023】
この実施形態の利点は、この方法が、区域のある部分が監視されない状態に保たれるような区域を扱うという点であり得る。
【0024】
実施形態によっては、適合度関数は、複数の監視カメラを含み、適合解はさらに、監視カメラの数を含む。経済的理由または他の理由により、区域を監視するために、より多くのまたはより少ないカメラを利用可能とすることができる。
【0025】
実施形態によっては、仮想区域内の監視カメラの数、ならびに仮想区域内の1台または複数台の監視カメラのうち少なくとも1台のカメラの位置および向きのうち少なくとも1つが、各繰返し処理において変更される。これによって適合度関数がより柔軟になるが、それは、カメラの数を変更してもよく、それにより、要件による適合解を見つける可能性が増すからである。
【0026】
実施形態によっては、少なくとも1台の監視カメラのそれぞれは、カメラ機能、すなわち視野およびズームレベルのうち少なくとも1つを含むカメラ機能を含み、適合解は、少なくとも1台の監視カメラのカメラ機能を含む。この場合、仮想区域内の少なくとも1台の監視カメラのカメラ機能、ならびに仮想区域内の1台または複数台の監視カメラのうち少なくとも1台の位置および向きのうち少なくとも1つを、各繰返し処理において変更してもよい。たとえば経済的な理由から、視野が狭く、ズームできない安いカメラを監視用に使用しなければならない場合もある。ズームのレベルは、たとえばカメラの視野に影響を及ぼすことがあるが、カメラで取り込んだ画像の解像度もそうである。適合度関数を繰り返すときに、監視カメラのカメラ機能を変更できることにより、すなわち、カメラのモデルまたはカメラのズームレベルを変更することによって、より柔軟な方法が実現する。
【0027】
いくつかの実施形態では、適合度関数はさらに、少なくとも2台の監視カメラを備え、適合解を選択するステップはさらに、少なくとも2台の監視カメラのそれぞれに対する監視区域に所要の視野角に基づく。ある区域がたとえば2つの方向から監視されるという、監視システムの要件が存在する場合もある。たとえば、サッカー場のゴールエリアを監視するとき、ボールが完全にゴールエリア内にあるのかどうか確実に確かめるために、互いに異なる角度から、すなわち、三角測量技法を使用することによって、ゴールエリアを監視する2台のカメラが必要になることがある。監視区域が、2つ以上の別々の監視区域を含んでもよく、この場合の少なくとも2台の監視カメラのそれぞれが、同じ別々の監視区域を監視しなくてもよいことを付記してもよい。したがって、互いに異なる所要の視野角は、互いに異なる別々の監視区域に関係してもよい。
【0028】
実施形態によっては、アクティブエッジアルゴリズムを使用して、シミュレーションされたカバレージエリアが計算される。一般的な代替形態は、すなわち仮想区域をグリッドに分割することにより、この仮想区域のサンプリングされた表現を使用し、このグリッド内の各セルにおいて、グリッドがカバーされているかどうか計算することである。アクティブエッジアルゴリズムを使用する利点は、連続的なカバレージエリアが得られ、したがってシミュレーションされたより正確なカバレージエリアが得られることである。さらなる利点は、アルゴリズムの時間計算量がO(n)、すなわち、線形時間アルゴリズムになることである。これは、低速のアルゴリズムを使用する場合よりも、適合度関数を高速に実行できることを意味する。
【0029】
実施形態によっては、粒子群最適化(PSO)アルゴリズムによって、各繰返し処理での変更が実行される。2台以上のカメラを使用するとき、これが有利なアルゴリズムになるが、それは、特定のカメラに対する各変更が、その局所的に最もよく知られた解と全体的に最もよく知られた解の両方の影響を受けるからであり、すなわち全てのカメラを考慮に入れている。
【0030】
適合度関数への入力データを考慮して、適合度関数に対する解(すなわち、適合解)を最適化するための任意の適切な最適化アルゴリズムを使用できることを付記してもよい。適切な最適化アルゴリズムの他の例は、進化的アルゴリズムなどの、ヒューリスティック探索最適化手法でもよい。さらなる例は、傾斜法でもよく、または動的計画法もしくは整数線形計画法(ILP)などのプログラム手法を使用してもよい。
【0031】
第2の態様では、本発明は、処理機能を有する装置上で実行されるときに、第1の態様による方法を実行するためのプログラムが記録されたコンピュータ可読記録媒体を提供する。
【0032】
第3の態様では、本発明は、少なくとも監視区域を含むある区域内の1台または複数台の監視カメラの位置および向きを選択するためのシステムであって、この区域に関するデータを受信することと、このデータを用いて仮想区域をモデル化し、適合解を計算するために適合度関数の繰返し処理を評価することであって、この適合度関数が、監視区域に所要の視野角、ならびに1台または複数台の監視カメラのシミュレーションされたカバレージエリアを計算し、かつ監視区域のシミュレーションされた入射視野角を計算するための、仮想区域内の1台または複数台の監視カメラの位置および向きを含む、評価することと、適合度関数に対する適合解を選択することであって、この適合解が、1台または複数台の監視カメラの位置および向きを含み、この選択が、1台または複数台の監視カメラの計算されシミュレーションされたカバレージエリア、監視区域における計算されシミュレーションされた入射視野角、および監視区域の所要の入射視野角に基づく、選択することとを行うように構成された1つまたは複数のコンピュータプロセッサを備えるシステムを提供する。
【0033】
第2および第3の態様は一般に、第1の態様と同じ特徴および利点を有することができる。
【0034】
概して、特許請求の範囲で使用される全ての用語は、本明細書において別段の定めが明示的にない限り、当技術分野でのその通常の意味に従って解釈すべきである。「要素、装置、構成要素、手段、ステップなど」への全ての言及は、別段の記載が明示的にない限り、要素、装置、構成要素、手段、ステップなどのうちの少なくとも1つの例に言及するものとして素直に解釈すべきである。本明細書において開示される任意の方法のステップは、明示的に記載されない限り、開示された順序そのままで実行しなくてもよい。
【0035】
次に、本発明の各実施形態を示す添付図面を参照して、本発明の上記開示のおよびその他の態様をより詳細に説明する。
【発明を実施するための形態】
【0037】
次に、本発明のいくつかの実施形態が示してある添付図面を参照して、以下に本発明の実施形態をより完全に説明する。しかし、本発明は、多くの様々な形態で実施してもよく、本明細書に記載の実施形態に限定されるものと解釈すべきではなく、むしろ、本開示が完璧かつ完全なものになり、本発明の範囲を当業者に完全に伝えるように、これらの実施形態が一例として提供される。さらに、同様の番号は、全体を通して同様の要素を指す。
【0038】
例を挙げて明確に説明するのを簡略化するために、
図1〜
図8のそれぞれは、3次元のシーンの2次元表現、または2D投影を示していることを付記してもよい。
【0039】
図6には、一例として、光学カメラ102のパラメータが示してある。カメラ102の視野(FoV)602は、カメラのレンズを通して目に見え、度で測定されるシーンの一部(ボリュームたとえばコーン)を示す固有パラメータである。FoVは、実際には、カメラによって監視することもできる区域を表す。
【0040】
カメラが生成する画像において満足できる程度に鮮明に現れることになる、最も近い対象物と最も遠い対象物との間の距離は、被写界深度(DoF)と呼ばれる。これは、(
図6の断面図に示した)FoVコーン602の最近深度(ND)とも呼ばれる最も近い縁部610、および最遠深度(FD)とも呼ばれる最も遠い縁部612によって、
図6に示される。
【0041】
カメラの空間分解能(SR)は、画像上での対象物の画素の総数と、対象物のサイズとの比である。所与の空間分解能の要求値は、対象物とカメラの間の距離によって決まる。カメラの空間分解能は、FDに変換することができる。SRの要求値が高くなると、カメラのFDが短くなることがある。
【0042】
各カメラは、1組のパラメータによって定義され、数多くのタイプのカメラが利用可能である。互いに異なる各カメラは、互いに異なるレンズタイプ、素子タイプなどを有する。通常、3つのカメラタイプは、固定視野カメラ、パン/チルト/ズーム(PTZ)カメラ、および全方位カメラである。固定視野カメラは、定位置に取り付けられると、固定の位置、向き614、および焦点距離を有する。固定視野カメラは、その固定焦点距離ゆえに、DoFおよびFoVが小さいことがあり、すなわちズームすることができない。PTZカメラは、回転することができ、焦点距離が調整可能である(ズーム)。したがって、PTZカメラのDoFおよびFoVは、固定視野カメラよりも大きくてよい。全方位カメラは、2πFoVを有する。PTZカメラにおいては、回転することができるので、回転角の二等分線614がカメラの向きである。全方位カメラの場合、2πFoVを有するので向きは問題ではない。
【0043】
本明細書では、カバレージエリアとは、カメラが監視でき、障害物によって遮られていない区域を指す。これが、一例として
図7に示してある。
図7では、障害物706が、カメラ102のFoVの一部分を遮っている。この結果、FoV全体を監視用に利用できるわけではない。この例では、区域702、すなわちカメラ102のカバレージエリアが監視される。しかし、障害物706によって遮られた区域704は、監視されないままである。
【0044】
図1a〜
図1cには、一例として、監視カメラ102の位置および向きを選択するための方法が示してあり、部分的には
図5に示してある。
図1aには、監視される区域106が示してある。この区域は、たとえばドアなどの監視区域108を含む。
【0045】
監視される区域106に関するデータが、プロセッサによって受信され(S502)、仮想区域にモデル化される(S504)。この例、ならびに
図2a〜
図2d、
図3a〜
図3d、
図4a〜
図4c、および
図8a〜
図8dとともに示した例では、各図には、1つまたは複数の監視カメラの位置および向きを選択する(S508)ための適合度関数の繰返し処理が示してある。適合度関数の各繰返し処理では、仮想区域内の1台または複数台の監視カメラのうち、少なくとも1台のカメラの位置および向きのうち少なくとも1つが変更される。これらの繰返し処理は、区域106内で実際に発生するものとして、各図とともに示してあるが、これが単に、例を挙げて明確に説明するのを簡略化するためのものであることが当業者には理解されることを付記してもよい。
【0046】
図1aで分かるように、カメラ102のFoV104全体を利用しても、区域106、より具体的には監視区域108を監視することはできないが、それは、監視区域108に近い壁が、カメラ102のFoV104の一部分を遮っているからである。したがって、仮想区域内のカメラ102のシミュレーションされたカバレージエリアは、監視区域108をカバーしていない。したがってプロセッサによって実行される、適合度関数のこの繰返し処理の評価(S506)の結果として、適合度関数を新規に繰り返すことが必要になる。
図1bでは、カメラ102の位置と向きの両方が変更されている。この新規の位置および向きの場合では、カメラ102のFoV104が監視区域108を監視するのを遮るものはなく、すなわち、監視区域108はカメラのカバレージエリア内にある。しかし、監視区域108のシミュレーションされた入射視野角112は、入射視野角110の所要の範囲内にはない。したがってプロセッサによって実行される、適合度関数のこの繰返し処理の評価(S506)の結果として、適合度関数を新規に繰り返すことが必要になる。
図1cでは、カメラ102の位置と向きの両方がもう一度変更されている。ここで、カメラ102は、実質的に監視区域108の前に配置され、それに向かって配向されている。監視区域108のシミュレーションされた入射視野角112は、ここで入射視野角110の所要の範囲内にある。さらに、シミュレーションされたカバレージエリアは、監視区域108を完全にカバーしている。したがって、プロセッサは、適合度関数に対する適合解として、カメラ102のこの位置および向きを選択することができる(S508)。
【0047】
図2a〜
図2dには、一例として、監視カメラ102の位置および向きを選択するための方法が示してあり、部分的には
図5に示してある。
図2aには、監視される区域106が示してある。この区域は、監視区域108および空白区域202を含む。
図2a〜
図2bには、
図1a〜
図1bとともに既に説明したものと同じものが示してあり、すなわち、2つの繰返し処理が実行され、この繰返し処理の評価(S506)の結果、さらに繰返し処理が必要になることが示してある。
図2cでは、監視区域108のシミュレーションされた入射視野角112は、ここで入射視野角110の所要の範囲内にある。さらに、シミュレーションされたカバレージエリアは、監視区域108を完全にカバーしている。しかし、監視区域は空白区域202を含むので、適合度関数の繰返し処理を評価し続けて(S506)、既に見つかっている適合解において、どの程度の部分が監視されるのかと比較して、適合解において、空白区域202のより広い部分を監視することができるかどうか確かめるようにプロセッサを構成してもよい。
図2dを見て分かるように、カメラ102を区域106の右下部の隅部まで移動し、カメラ102の視点からわずかに右へ配向することにより、
図2cで監視される空白区域202の部分と比較して、空白区域202のより広い部分が監視される。したがって、プロセッサは、適合解として
図2dに示した繰返し処理において、カメラの位置および向きを選択してもよい(S508)。
【0048】
図3a〜
図3dには、一例として、監視カメラ102の位置および向きを選択するための方法が示してあり、部分的には
図5に示してある。
図3aには、監視される区域106が示してある。この区域は、たとえばドアなどの監視区域108、および非監視区域302を含む。非監視区域302は、たとえば、ドア108を見張る従業員の作業区域でもよい。
図3a〜
図3bには、
図1a〜
図1bとともに既に説明したものと同じものが示してあり、すなわち、2つの繰返し処理が実行され、この繰返し処理の評価(S506)の結果、さらに繰返し処理が必要になることが示してある。さらに、
図3bには、カメラ102のカバレージエリアが、非監視区域302をカバーしている様子が示してあるが、この非監視区域302は、プロセッサに実装された評価プロセスの実施形態によっては許可されない場合がある。実施形態によっては、非監視区域のいずれの部分も、カメラ102で監視されることが許可されない。他の実施形態では、指定された入射視野角のカメラによって、非監視区域を監視することができる。たとえば、非監視区域がPCを含む場合、PCの背後から非監視区域を監視することが許容できる場合があり、したがってPCの画面は監視されない。
図3a〜
図3dとともに説明した実施形態では、非監視区域のいずれの部分も、監視することを許可されない。
図3cを見て分かるように、カメラ102の位置および向きが、もう一度変更されている。次に、監視区域108のシミュレーションされた入射視野角112が、入射視野角110の所要の範囲内にあるように、カメラ102が配置される。さらに、シミュレーションされたカバレージエリアは、監視区域108を完全にカバーしている。しかし、非監視区域302は、依然としてカメラ102のカバレージエリアによってカバーされる。したがって、繰返し処理の評価(S506)の結果として、繰返し処理がさらに必要になる。
図3dでは、監視区域108と非監視区域302の間にカメラ102が配置されるように、カメラ102の位置および向きが変更されている。監視区域108のシミュレーションされた入射視野角112が、入射視野角110の所要の範囲内にあるように、また、シミュレーションされたカバレージエリアが、監視区域108を完全にカバーするように、監視区域に向けてカメラ102が配向される。次に、非監視区域302は、完全にカメラ102のカバレージエリアの外側にある。したがって、プロセッサは、適合解として
図3dに示した繰返し処理において、カメラの位置および向きを選択してもよい(S508)。
【0049】
図4a〜
図4cには、一例として、2台の監視カメラ102、408の位置および向きを選択するための方法が示してあり、部分的には
図5に示してある。この区域106は、監視区域402を含んでおり、この監視区域402を2つの方向から監視しなければならず、すなわち、2つの入射視野角404、406が必要となる。すなわち、適合解の選択(S508)は、2つの監視カメラ102、408のそれぞれについて、監視区域402に所要の入射視野角404、406に基づいている。
図4aには、監視区域402のシミュレーションされた入射視野角112、412が、2台のカメラ102、408のいずれかの所要の入射視野角404、406内にない様子が示してある。
図4bに示した次の繰返し処理では、監視区域402のシミュレーションされた入射視野角112が、入射視野角406の所要の範囲のうちの1つの範囲内にあるように、また、シミュレーションされたカバレージエリアが、監視区域108を完全にカバーするように、左側のカメラ102が配置および配向される。しかし、右側のカメラ408は、依然として、要件に従わないシミュレーションされた入射視野角412を有する。したがって、繰返し処理の評価(S506)の結果として、繰返し処理がさらに必要になる。
図4cに示した次の繰返し処理では、左側のカメラ102の位置および向きが維持されるが、右側のカメラ408は、移動されて、
図4bに示した前の繰返し処理と比較して異なる向きに配向される。次に、2つの入射視野角404、406の要件が満たされる。したがって、プロセッサは、適合解として
図4cに示した繰返し処理において、2台のカメラ102、408の位置および向きを選択してもよい(S508)。
【0050】
場合によっては、少なくとも3つの異なる角度で、すなわち少なくとも3つの異なる所要の入射視野角で、あるポイントまたは区域を監視する必要があることを付記してもよい。当業者は、上記説明がこうした場合を処理するために容易に適合することを理解する。本明細書においてさらに詳細には説明しない。
【0051】
実施形態によっては、適合度関数の各繰返し処理において、変更できるのは位置および/または向きだけではない。前述の通り、各カメラは、視野機能やズーム機能などのカメラ機能を有してもよい。カメラにズーム機能が存在する場合、一機能としてズームレベルが存在する。適合度関数を繰り返しながら、これらの機能の設定を変更してもよい。たとえば、監視区域を監視する監視カメラで取り込んだ画像の解像度が十分でないこともある。この場合、所要の解像度を達成するよう、ズームレベルを変更してもよい。これが、
図8a〜
図8dに示してある。
図8a〜
図8bには、
図1a〜
図1bとともに既に説明したものと同じものが示してあり、すなわち、2つの繰返し処理が実行され、この繰返し処理の評価(S506)の結果、さらに繰返し処理が必要になることが示してある。
図8cでは、監視区域108のシミュレーションされた入射視野角112は、入射視野角110の所要の範囲内にある。さらに、シミュレーションされたカバレージエリアは、監視区域108を完全にカバーしている。しかし、監視カメラ102で取り込んだ画像の解像度は、要件に従っていない。したがって、さらに繰返し処理が必要になることがある。
図8dでは、監視区域108の所要の解像度が達成されるよう、カメラ102のFDが減少している。したがって、プロセッサは、適合解として
図8dに示した繰返し処理において、カメラ102の位置および向き、ならびにズームレベルを選択してもよい(S508)。
【0052】
アクティブエッジアルゴリズムを使用して、前述のシミュレーションされたカバレージエリアを計算することができる。「Automated camera layout to satisfy task−specific and floor plan−specific coverage requirements」(Erdemら、2006年、Computer Vision and Image Understanding、103(3):156〜169頁)に、アクティブエッジアルゴリズムが詳細に記載されており、本明細書でさらに論じられることはない。
【0053】
粒子群最適化、すなわちPSOアルゴリズムを使用して、繰返し処理の手法を実施することができる。群知能(SI)に基づく最適化技法が、過去10年間で広く世間に広まってきた。社会性昆虫(アリ、ミツバチ、スズメバチなど)の集合行動、ならびに鳥の群れまたは魚群などの動物社会からヒントを得て、SIの規律により、これらの社会のこうした挙動をまねることによって知的システムを設計しようとしている。これらコロニーの単一個体は洗練されていないが、分散化し自己組織化されたやり方で、個々のメンバー間の協働および対話の下で複雑な仕事を実行することもできる。
【0054】
科学および産業の世界では、最適化問題が非常に重要である。組合せ最適化(CO)として知られている最適化問題の重要なクラスは、(巡回セールスマン問題、車両経路指定、最小スパンニングツリーなどのような)対象物の有限集合から、最適な対象物を見つけ出すことに取り組む。CO問題を解決するために開発されてきたアルゴリズムは、完全アルゴリズムまたは近似アルゴリズムとして分類することもできる。完全アルゴリズムは、確実に、CO問題のあらゆる場合を見つけ出し、それを評価して最適な解を見つけ出す。たとえ、NP困難な問題について、多項式時間アルゴリズムが存在しないことがある場合でも、それによって近似法を使用することになる。近似法では、最適の解を確実に見つけ出すことは、非常に短い時間で十分に良好な解を得るための犠牲になる。近年、近似法の使用が数多くの研究者の注目を集めてきたが、それは、近似法が、古典的な傾斜ベースの手法よりも実装がより容易であり、(特に、目的関数が暗黙的に与えられるとき、または微分できないときに)傾斜情報を必要としないという事実によるものである。粒子群最適化は、NP困難のCO問題に対して近似解を見つけるための、最も注目に値するSI技法の1つであり、さらに論じることになるこの研究の関心の的である。
【0055】
KennedyおよびEberhart(「Particle swarm optimization(粒子群最適化)」Neural Networks、1995年、Proceedings、IEEE International Conference、volume4、1942〜1948頁、vol.4)によって、連続非線形関数向けの新規の最適化法として粒子群最適化が初めて紹介された。この方法は、2つの主要な構成要素の方法論、すなわち、一般には人工生命、具体的には鳥の群れ、魚の群れ、および群れ理論にその起源をもつ。PSOの考え方は、簡略化された社会システム、すなわち、食物を探すときの群れる鳥、および群れる魚をシミュレーションすることから生まれた。鳥それぞれを1つの粒子と仮定すれば、個々の粒子は、その現在速度、それ自体の以前の経験、および、これまでに知られていたグループの最良の以前の経験に基づいた位置に向けて移動する。PSOは、広い範囲の可能性が与えられている場合に、全個体群が、社会的相互作用の余分なものを省いた形式を用いて、問題を解決する多変量解のパターンを見つけることができる適応培養モデルに従う。PSOの元になる簡略な社会認知理論は、3つの原理に基づいている。すなわち、評価(刺激を評価する傾向のことであり、有機的組織体が、誘引もしくは撃退する環境の特徴を、評価または区別することができない場合、学習は起こり得ない)、比較(各個体が、ある種の測定値に基づいて、それ自体と仲間の個体とを比較し、他の個体より優れている個体を模倣し、それに従う)、および模倣(他の個体の捉え方を取得することであり、そのことは実際には、挙動をむやみに模倣するのではなく、その目的を認識し、それが適切であるときその挙動を実行することを意味する)である。PSOは、もともとKennedyおよびEberhartによって提案されたときには、粒子の群れについてのものであって、粒子それぞれが、ポテンシャル解を示し、最適解を求めて問題空間を繰り返し飛行する。遺伝的アルゴリズム(GA)と同様に、このシステムはランダム解の全個体群(粒子)で初期化される。しかし、GAとは異なり、各粒子にはまた、問題空間内の粒子をそのナビゲーションに従って導くランダム速度が割り当てられる。群れでの個体最良位置(pBest)および全体最良位置(gBest)に向けて、各粒子の速度を変更する(加速させる)ことによって、最適化が実行される。粒子群の実装は通常、全体最良(Global Best(gBest))PSOおよび局所最良(Local Best(lBest))PSOとして知られている2つのソシオメトリ原理のうちの1つに従う。これら2つのタイプについて、以下の節で簡潔に論じる。
【0056】
全体最良PSOでは、概念的には、各粒子が、他のあらゆる粒子と連結され、各粒子の近隣区域が群れ全体であるとも言える。このトポロジを使用する結果として、各粒子は、最良に実行する群れ全体の個体群の任意のメンバーによって影響を受ける。
【0057】
局所最良PSOでは、各個体(その個体自体を含む)およびそのk番目の最も近い近隣メンバーについて近隣区域が生成される。このトポロジの簡略な例は、k=2(リングトポロジ)の場合でもよく、粒子iが、各粒子i−1、i、i+1の中の最良の粒子の影響を受ける。すなわち、各粒子は、環境の局所的知識に基づいて影響を受ける。
【0058】
個体と集団の両方でうまくいくように個体の配置を調整したいので、更新速度式にはpBestおよびgBestの存在が必要である。社会学上の観点からは、pBestは、自伝的記憶に似ており、それと関連する速度調整は「素朴なノスタルジア」と呼ばれ、個体は、過去において既に経験してきた最良の位置に戻ろうとする。あるいは、gBestは、個体が模倣しようとする、公表された知識または集団規範と同様である。文字通り、集団規範は「社会的知識」とも呼ばれる。速度更新は、以下の式を使用して実行される。
【0059】
【数1】
ここで、
は、時刻tにおける次元dの粒子iの速度ベクトルであり、
は、時刻tにおける次元dの粒子iの位置であり、
P
best,iは、これまでに見つかった粒子iの個体最良位置であり、
G
bestは、群れによってこれまでに見つかった最適の粒子であり、
C
1は、ノスタルジア構成要素の寄与を決定する加速度定数であり、
C
2は、社会構成要素の寄与を決定する加速度定数であり、
r
1およびr
2は、0.0〜1.0の間の一様分布からの乱数である。
【0060】
局所最良PSOのバージョンについては、式1の社会構成要素においてG
bestの代わりにL
bestを使用する。
【0061】
各繰返し処理では、粒子の速度を更新した後、各粒子は、問題空間におけるその以前の位置、および新規に更新された速度に基づいて、次式を使用してその位置を調整することになる。
【0062】
【数2】
ここで、
は、(時刻t+1での)粒子iの新規の位置ベクトルを表し、
は、(時刻tでの)粒子iの以前の位置を表し、
は、(時刻t+1での)粒子iの新規に更新された速度を表す。
【0063】
ここで、PSOの全体バージョンを実施するためのアルゴリズムを説明する。
1:問題空間内でのd次元において、ランダムな速度および位置で、粒子の全個体群を初期化する。
2:While maxIterationに達するか、十分に良好な適合度が達成されると、以下を実行する。
3:各粒子について適合度関数を評価する。
4:粒子の適合度と粒子のpBestとを比較する。現在値がpBestよりも良好である場合、pBestをd次元空間内の現在の粒子に設定する。
5:適合度評価と個体群全体の以前の最良値とを比較する。現在値がgBestよりも良好である場合、gBestを現在の粒子に設定する。
6:式(1)および(2)に従って、粒子の速度および位置を変更する。
7:End While
8:gBest粒子が、この最適化プロセスを用いて達成された、十分に良好な適合度である。
【0064】
群れの中の粒子の数が、その初期多様性を定義する。多数の粒子を有することで、問題空間のより多い区域をカバーするのに役立つが、同様に、計算が複雑になり、PSOが劣化してランダム探索になる。実証的研究によって、最初の個体群が10〜30個の粒子というサイズの小さい群れでも、良好な解を見つけるのに十分であることが分かっている。群れのサイズは、問題に依存していることを付記すべきであるが、実際には、探索空間の粗さまたは滑らかさが群れの粒子の数を規定している。
【0065】
近隣区域のサイズは、どの程度粒子が互いに相互作用するかを確定する。しかし、近隣区域のカバレージの大きいPSOが速くなると、サイズの小さい近隣区域が局所最適条件になる可能性は低い。文字通り、小さい近隣区域サイズで開始し、この近隣区域の周囲を繰り返し増大させることによって、確実に初期多様性が高くなり、また収束が速くなる手法が提案された。
【0066】
式(1)では、加速度係数C
1およびC
2が、粒子の速度ベクトルのノスタルジア構成要素および社会構成要素の影響を制御する。通常、C
1およびC
2の値は経験的に見つかり、それらの値が相対的に低いと、粒子の飛行が滑らかになるが、値が高いと、さらに加速され、他の構成要素に向かって突然移動することになる。C
1とC
2の両方を2.0に設定して、速度式の各構成要素の周りの全ての領域をカバーするよう探索させるようにすることが合理的である。また、多くの研究においては、1.49445の値を使用し、収縮係数を使用して確実に収束させる。
【0067】
PSOに関連する1つの問題は、その収束速度が高いことである。収束速度が高いと最適化プロセスが速まるが、その結果、探索が完全には行われず、それにより、問題空間の多くの区域が未探索のまま残ることになる。最適化アルゴリズムが問題空間をどの程度良好に探索するのか決定する2つの特性があり、これらは、探索と活用と呼ばれている。問題空間の様々な領域を探し、より良好な最適条件を探し出す機能を探索と呼び、見込みのある区域に焦点を当てて、候補となる解を改良する機能を活用と呼ぶ。良好な最適化アルゴリズムを実現するためには、これら2つの目的の間に明確なトレードオフがなければならない。このトレードオフのバランスをとるのに役立つ、PSOの様々な変形形態を以下に紹介する。
【0068】
各粒子は、その速度ベクトルを使用して、問題空間を飛行する。PSOアルゴリズムは、粒子が問題空間のあらゆる次元に移動することもできるように、速度を調整する。前に論じた速度式(式1)は、振動が広範囲になればなるほど爆発的に増加する傾向にある。速度を抑制するのに通常利用される一方法は、個体iにおける各次元dにおいて、速度が超過しないようにすることである。
【0069】
【数3】
V
maxは通常、問題の特性に基づいて経験的に選択される。
【0070】
群れの探索と活用を制御すること、ならびに速度制限の必要性をなくす役に立つことを可能にするためのメカニズムとして慣性質量を使用したPSOのバージョンが使用されてきた。慣性質量ωは、飛行方向の以前の記憶内容のうちどの程度が、gBest PSOにおいて、速度更新式(1)を次式に変更する粒子の新規の速度を制御するのかを制御する。
【0072】
ω<1に設定すると、時が経つにつれて粒子の速度が減速することになる。ωの値が大きくなると、粒子が問題空間をより容易に探索し、解の多様性を改善できるようになるが、ωの値がより小さくなると、アルゴリズムが、局所の近隣区域をより完全に探索する助けになる。しかし、値が小さすぎると、群れの探索機能が不能になる。
【0073】
探索/活用のトレードオフを決定し、慣性質量ωを排除し、速度制限を除外するために、慣性質量と同様の手法が使用されてきた。この手法では、速度は定数Xに制限され、この定数は収縮係数と呼ばれる。次元jでの粒子iの速度更新式(1)が次式に変換される。
【0075】
【数6】
ここで、
φ=φ
1+φ
2、(φ≧4、k∈[0,1])、
φ
1=c
1r
1、
φ
2=c
2r
2。
【0076】
制約条件φ≧4およびk∈[0,1]を満足させることによって、群れが安定点に収束することが確実である。パラメータkは、群れが探索または活用する機能を制御する。kの値がほぼゼロの場合は、群れの収束が速くなるが、kがほぼ1と考えると、収束が遅くなり、探索度が高くなる。通常、kは、最適化時の定数であると考えられるが、研究者によっては、初期の探索段階において1に近い値のkを使用して、初期の高い探索を実現し、後に、kの値をほぼゼロにまで低減させて、後の段階においてより局所的な活用を実現した。
【0077】
前述の通り、粒子群の最適化においては、通常、各粒子は、目下の問題に対するポテンシャル解を表す。これらの解は、その最良性能のそれ自体の局所的知識、およびトポロジ的に近接している他の粒子の利用可能な近隣区域の知識を利用することによって、それ自体を改善しようと試みる。様々な制約条件に関して、閉多角形でのカメラの最良の配置を見つけたいので、識別すべき最も重要なことは、様々な粒子によって、どのようにして解を表すかである。その後、有効な解の境界基準を規定しなければならない。
【0078】
これまで固定長の粒子符号化を使用して、カメラの配置を表してきた。したがって、n台のカメラを所与のレイアウトに配置するために、群れの各粒子は、n個の因子から構成しなければならず、各因子は、各カメラのうちの1台のカメラの向きと姿勢、ならびにそのモデル情報を含む。粒子符号化が
図9に示してある。各因子は、カメラモデルに関連しており、このモデルは、特定のモデルの固有パラメータについての追加情報を含んでいる。さらに、カメラのコーン、視界、および各カメラの部分的なカバレージの計算において、これらのパラメータを使用することになる。
【0079】
PSOアルゴリズムの初期段階では、粒子の数N
cが生成され、無作為に初期化されることになる。不要な計算コストを避けるため、実現可能な(有効な)解のみを生成する。解の妥当性を確認検査するため、まず、初期化プロセスが、内部の多角形(孔)を除外して、主要な外部の多角形の内部にカメラを配置するようにさせる。このようにすれば、カメラの無駄を確実になくすことができる。コンピュータグラフィックスでは、このプロセスをヒットテストと呼ぶ。ヒットテストでは、簡略で効率的なアルゴリズムが使用され、このアルゴリズムでは、半無限の水平光線(y座標を固定し、x座標を増大させる)がテストポイントから放出され、いくつの縁部を光線が横切ったかを数え、それぞれ横切る際に内部の光線と外部の光線との間で変化することによって、このポイントが多角形の内部になるのかどうか判定することになる。これらのステップがどのようにして実行されるのかの概要を以下に示す。
ヒットテスト:
【0080】
孔を有する多角形では、全ての多角形の孔に対して上記の手順を使用して、ポイントが、閉多角形の内部に正確に存在し、孔のうちの1つに配置されないことを確実にする。要するに、各粒子の因子は、以下の式(7)に言及している制約条件に従って初期化されることになる。カメラモデルは、ユーザの要件について、各因子に順次割り当てられる。チルト角度(β)は±φ
v/2(φ
vはカメラの垂直FoVである)に制限されるが、それは、実際の状況では、カメラは水平線の周りで過度に傾斜はしないからであり、したがって、チルト角度を制限する計算コストが避けられる。パン角度(θ)を任意の角度に設定できることは明らかであるが、それは、シーンの全ての角度を試してみようとしているからである。
【0081】
【数7】
(x,y)←多角形P
e内部のランダム配置(ヒットテストを使用する)
【0082】
各粒子にランダム速度ベクトルを割り当てることによって粒子初期化が完了することになり、これにより、シーン内を飛行する粒子の初期傾向が確定される。速度ベクトルを初期化できるように、まず、各速度の上限と下限を設定する必要がある。経験的な観察に基づいて、以下の制限値を使用した。
【0084】
ここで、V
x、V
y、V
β、およびV
φはそれぞれ、因子のx、y、パン、およびチルトの速度ベクトルを表す。また、τは、外部の多角形の周りのバウンディングボックス(最も小さい境界ボックス)を表し、これは、多角形の頂点の最大および最小(x,y)座標を見つけることによって簡単に計算することができる。最後に、以下の式を使用して、粒子の各因子の加速度ベクトルを計算することもできる。
【0086】
粒子の速度を更新する際の主な考え方は、各粒子が、比較的良好な粒子からどのようにして学習できるかにかかっている。我々の方法では、学習プロセスは、良好な性能の粒子に似るように粒子を改善することによって実行され、同様の因子(同じタイプのカメラを有する因子)を徐々に互いに収束させることによって、これを実行する。これは、各因子の速度を、良好な性能の因子に近づけなければならないことを意味する。各次元(位置、パン、およびチルト)での速度が、これら2つの因子の間のギャップを埋めるように意図することによって、それを実行する。
【0087】
【数10】
ここで、
pBestは、これまでの因子の最良性能であり(個体最良)、
lBestは、これまでの近隣区域での最良性能の粒子の因子であり(局所最良)、
ω=0.975に設定された慣性係数、
c
1=2.01に設定されたノスタルジア係数、
c
2=2.01に設定された社会係数、
ζ=c
1r
1+c
2r
2、
r
1、r
2=0〜1の間の乱数。
【0088】
前述の通り、新規の速度を計算した後、広範囲の振動の影響を避けるため、規定された境界値に速度を制限することが必要である。式(8)で指定された変数を使用して、以下のように速度を制限した。
【0090】
所与のシーンおよびカメラのFoVコーンのポイントについて、可視多角形の幾何学的交点を計算することによって、各カメラのカバレージが計算される。結果として得られる多角形により、所望の多角形の見取り図における所与のカメラのある姿勢および向きによって、どのポイントを見ることができるかについての情報が得られる。また、各カメラについて、目に見える視野の区域を計算する必要がある。組み合わされた交差した多角形のこの計算された区域は、最適化の目的で後に使用されることになる。多角形の区域を計算するために、各ラインセグメントとx軸との間に存在する区域を単に合算することができる。
【0091】
各RoIにおいてカバーされる区域および見取り図のカバレージ全体に基づいて、各粒子の適合度関数が計算される。様々なRoIのタイプが、粒子の適合度に様々に寄与する。したがって、カメラとRoIの各順列について、カバレージを計算する必要がある。たとえば、3つのカメラと2つのRoIを有する場合、カバレージ計算の3×2の順列を実行して、粒子の適合度全体を評価する必要がある。問題定義には、あるRoIのカバレージを最大化すること、および他の何らかのRoIを最小化することが必要になるので、戻された計算済みの全ての適合度値を合計することによってカバレージ全体が計算される。様々なRoIについてカバレージを計算するときに考慮すべき重要な一側面は、カバーされた全ての区域を全て組み合わせて、重複する視野の影響を排除する必要があるということである。各RoIに寄与する全てのカバレージ幾何学的形状を組み合わせること、および、最後にRoIの特定の制約条件を加えることによって、これが実行される。RoIの特定の適合度値を計算した後、これらの値の平均にシーンの区域全体を乗算し、未処理のカバレージ全体をそれに加算することによって、全体の適合度が計算される。以下のアルゴリズムで、この手順を説明する。
更新適合度:
【0092】
このようにして、RoIカバレージを最大化することが最優先事項であり、カバレージ全体を最大化することが2番目の優先事項であることは間違いない。
【0093】
簡略な監視区域、すなわち、監視区域を監視する2台以上のカメラの入射視野角が必要ない監視区域では(
図1〜
図3で説明したが、
図4では説明していない)、満足すべき最も重要な要件は、少なくとも1台のカメラで満たすべき解像度の閾値である。そうするために、各因子(カメラ)のFoVコーンを再計算して、所要の解像度の閾値を有する可視区域を見つけ出さなければならず、次いで、以前の節で説明した通常のコーン計算を使用して、幾何学的視界を見つけることになる。最後に、幾何学的形状の区域が計算され、適合度値に加えられる。
【0094】
非監視区域(
図3に示す)は、いかなるカメラからも目に見えてはいけない。したがって、これらの区域についての適合度の計算は、適合度値から最終計算区域を差し引かなければならないことを除いては、単純な監視区域に似ている。これは、適合度関数に対するペナルティ値の役割を果たし、したがって、これらの区域をカバーするカメラ配置を各粒子が避けるようにする。
【0095】
2つ以上の所要の入射視野角を有する監視区域では(
図4で説明した)、やはり重要なことは、各カメラが区域を見通す際の角度である。これらの種類の区域について適合度値を計算するために、それらの間の角度(
図10のベクトルR)およびその区域の法線ベクトル(
図10のベクトルN)が所要の入射視野角以下であるカメラのみが、適合度の計算に寄与しなければならない。
【0096】
次式のように、ベクトルRおよびNのドット積を使用して、この角度を計算することができる。
【0097】
【数12】
ここで、
θは、カメラがラインを見通す際の角度であり、
Rは、カメラからRoIの中心に向けて放射される光線であり、
Nは、RoIの中心を通り、RoIラインに垂直な法線ベクトルである。
【0098】
速度が更新された後、粒子は実際に飛行するはずである。各因子の次の位置、パン角度、およびチルト角度に影響を及ぼす、この因子に関連する速度に関してその因子を動かすことによって、粒子の飛行が実行される。考慮すべき一側面は、粒子のこの動きが、境界を越えた動きにつながってはならないことである。そうした動きが生じた場合は、その動きを訂正する必要がある。そのために、2つの主要な方式で速度ベクトルを更新する。すなわち、第1に、その値を2つに分割する(xもしくはyの方向、または両方の方向において可能である)。第2に、前述の訂正方法がうまくいかない場合、速度ベクトルを反射して(やはり、xもしくはyの方向、または両方の方向において)、有効な動きを生成する。両方の場合において、速度のこの変更は、永久的なものにはならず、動きに対して一度きりの影響を及ぼすことになり、その結果、因子は、無効な動きから脱することができるようになる。チルト角度およびパン角度については、こうした制限を加えない。
【0099】
2つの粒子が適度に近く配置されている場合、これらの粒子は同じ近隣区域内に存在すると考える。2つの異なる粒子における同様の各因子間の物理的な距離として接近配置を特徴付け、それにより、対応する各因子間の平均距離が特定の範囲よりも短くなければならないことを意味する。この範囲は、外部の多角形のバウンディングボックスの直径を、あるステップ(我々の場合には20)で除算したものとして定義される。接近測定には、パン角度およびチルト角度を含めなかったが、それは、物理的に近いがパン角度およびチルト角度が異なる各因子が、近隣区域を形成するようにしたいと考えるからであり、この近隣区域において、各因子が、依然として適度に似かよった構成を有しながら広範囲の配向選択肢を有する、1組の因子から構成された局所最良から恩恵を受けることもできる。
【0100】
この近隣区域の選択を以下に示す。
近隣区域の選択:
【0101】
1つの粒子からなるクラスタを生成することで開始し、続いて、適度に近い粒子をそれに加える。群れの中でクラスタを形成しない全ての粒子について、このプロセスを繰り返すことになる。
【0102】
本発明は、決して前述の各実施形態に限定されるものではないことが、当業者には理解される。それどころか、添付の特許請求の範囲に記載の範囲において、数多くの修正形態および変形形態が実現可能である。たとえば、カメラ機能は、さらに多くの特徴、たとえばカメラのセンササイズを含んでもよく、適合度関数の繰返し処理においてこうした特徴を変更してもよい。センササイズは、カメラの視野を決定するパラメータの1つであり、カメラの解像度にも影響を及ぼす。適合度関数を繰返し処理する際、任意の数の上記変更可能な特徴(たとえば、カメラの位置、向き、カメラの数、ズームレベルなど)が、監視カメラにおける各繰返し処理での変更でもよいことをさらに付記してもよい。前述の説明は、実現可能な改変方式のいくつかを単に例示したものにすぎない。