実施の形態1
以下実施の形態を、図面を参照して説明する。図1は情報処理システムの概要を示す説明図である。情報処理システムは第1撮像装置1、第2撮像装置2及び情報処理装置3等を含む。第1撮像装置1は例えば自動車またはオートバイ等の移動体を撮像する赤外線カメラである。以下では第1撮像装置1を第1カメラといい、また移動体を車両という。第2撮像装置2は例えば車両のカラー画像を取得するものであり、以下では第2カメラという。第1カメラ1及び第2カメラ2は道路上または側道にて、物理的に異なる位置にてそれぞれ配置される。第1カメラ1及び第2カメラ2は道路上の車両を監視すべく光軸を、道路を走行する車両に望ませて配置している。第1カメラ1及び第2カメラ2は有線または無線にて情報処理装置3に接続されている。
情報処理装置3はパーソナルコンピュータ、携帯電話機、PDA(Personal Digital Assistance)等であり、インターネットまたは公衆回線網等の通信網Nを介してサーバコンピュータ4に接続されている。以下では情報処理装置3をコンピュータ3と読み替えて説明する。コンピュータ3は第1カメラ1及び第2カメラ2を制御すると共に、第1カメラ1及び第2カメラ2により取り込んだ画像をサーバコンピュータ4へ送信する。なお、第1カメラ1、第2カメラ2及びコンピュータ3を一つの筐体に格納しても良い。
図2は第1カメラ1及び第2カメラ2から取り込んだ画像のイメージを示す説明図である。図2Aは第1カメラ1から取り込んだ画像を示す。コンピュータ3は時間的に異なる2枚の画像を取り込み、車両の移動方向を算出する。図2Aの例では、矢印で示すように7時方向に車両が進行していることが理解できる。図2Bは第2カメラ2から取り込んだ画像を示す。コンピュータ3は時間的に異なる2枚の画像を取り込み、車両の移動方向を算出する。図2Bの例では、6時方向に車両が進行していることが理解できる。
コンピュータ3は進行方向の角度の差分を算出する。コンピュータ3は角度の差に対応するロール角分、第2カメラ2をロールさせる。ロールとは第2カメラ2の光軸を移動させることなく、光軸を中心に第2カメラ2を左または右方向に回転させることである。図2の例では、第2カメラ2を反時計回りにロールさせる。また本実施形態では第2カメラ2をロールさせる例を挙げて説明するがこれに限るものではない。逆に第1カメラ1をロールさせても良く、さらには第1カメラ1及び第2カメラ2の双方をロールさせても良い。これにより、まず車両の進行方向が第1カメラ1及び第2カメラ2間で一致する。
図3は進行方向調整後に第1カメラ1及び第2カメラ2から取り込んだ画像のイメージを示す説明図である。図3Aは第1カメラ1から取り込んだ画像を示し、図3Bは第2カメラ2から取り込んだ画像を示す。第1カメラ1及び第2カメラ2の設置位置及び画角の違いにより、図3Bの車両の方が図3Aの車両よりも小さく映っている。コンピュータ3は第1カメラ1から取り込んだ車両及び第2カメラ2から取り込んだ車両のサイズを算出する。コンピュータ3はサイズの差が小さくなるよう第2カメラ2の画角を変更する。これにより第1カメラ1及び第2カメラ2で取り込まれる車両の進行方向及び大きさが一致する。以下詳細を説明する。
図4はコンピュータ3のハードウェア群を示すブロック図である。コンピュータ3は制御部としてのCPU(Central Processing Unit)31、RAM(Random Access Memory)32、入力部33、表示部34、記憶部35、通信部36、及び入出力部38等を含む。CPU31は、バス37を介してハードウェア各部と接続されている。CPU31は記憶部35に記憶された制御プログラム35Pに従いハードウェア各部を制御する。RAM32は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM32は、記憶部としても機能し、CPU31による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
入力部33はマウスまたはキーボード、マウスまたはタッチパネル等の入力デバイスであり、受け付けた操作情報をCPU31へ出力する。表示部34は液晶ディスプレイまたは有機EL(electroluminescence)ディスプレイ等であり、CPU31の指示に従い各種情報を表示する。通信部36は通信モジュールであり、通信網Nを介してサーバコンピュータ、他のコンピュータ(図示せず)または携帯電話基地局等との間で情報の送受信を行う。入出力部38は例えばUSB(Universal Serial Bus)等のポートであり、第1カメラ1及び第2カメラ2との間で情報の入出力を行う。
第1カメラ1はカメラ駆動部11及びズームレンズ駆動部12等を含む。第1カメラ1は取り込んだ画像を、入出力部38を介して、コンピュータ3へ出力する。カメラ駆動部11は、CPU31の制御に従い、第1カメラ1を左右にロールさせるためのモータ等である。ズームレンズ駆動部12は、CPU31の制御に従い、第1カメラ1のズームレンズを前後に移動させるための機構である。第2カメラ2も同様にカメラ駆動部21及びズームレンズ駆動部22等を含む。
第2カメラ2は取り込んだ画像を、入出力部38を介して、コンピュータ3へ出力する。カメラ駆動部21は、CPU31の制御に従い、第2カメラ2を左右にロールさせるためのモータ等である。ズームレンズ駆動部22は、CPU31の制御に従い、第2カメラ2のズームレンズを前後に移動させるための機構である。記憶部35は例えば、大容量フラッシュメモリまたはハードディスク等であり、制御プログラム35Pを格納する。
CPU31は、図2に示すように、第1カメラ1及び第2カメラ2から画像を取り込む。CPU31は、車両を認識した場合、当該認識した車両の連続する2フレームの画像を読み出す。なお、車両の認識は取り込んだ画像の明度の変化により行えば良い。CPU31は、読み出した第1カメラ1の2フレームの画像について車両のエッジ検出を行う。CPU31は、2フレームのエッジ画像に基づいて第1カメラ1から取り込んだ車両の進行方向を算出する。具体的にはCPU31は、進行方向を仮定した上で、一方のエッジ画像を仮定した進行方向に移動させ、2つのエッジ画像の相関関数を算出する。CPU31は、算出した特定した進行方向についての相関関数の最大値を記憶しておく。以上の処理を仮定する進行方向を変化させながら行う。
そしてCPU31は、相関関数が最大となる進行方向を抽出する。その他、CPU31は、エッジ画像の重心、取り込んだ画像のタイヤ、ナンバープレート、フロントガラス等の重心、または車両の先端画素等の特徴点を算出する。CPU31は、2フレーム間の特徴点から進行方向を算出しても良い。本実施形態ではエッジ画像を用いた例を挙げて説明する。また本実施形態では連続する2フレーム間の画像を用いる例を挙げるがこれに限るものではない。必ずしも時間的に連続している必要は無く2フレーム後の画像を用いても良い。
CPU31は、同様の処理を同時間にて第2カメラ2から取り込んだ画像に対しても行う。CPU31は、同一車両の第2カメラ2における進行方向を算出する。CPU31は、第1カメラ1の車両の進行方向から第2カメラ2の車両の進行方向を減じ、差を求める。以下では当該差を進行方向差という。また本実施形態では、取り込み画像の12時方向を0度、6時方向を180度とする。CPU31は、進行方向差が正の場合、カメラ駆動部21へ第2カメラ2のロール角を左方向へ所定角度変更する旨の情報(以下、右変更情報という)を出力する。カメラ駆動部21は、右変更情報を受け付けた場合、第2カメラ2のロール角を左方向へ所定角度変更する。
また進行方向差が負の場合、カメラ駆動部21へ第2カメラ2のロール角を右方向へ所定角度変更する旨の情報(以下、左変更情報という)を出力する。カメラ駆動部21は、左変更情報を受け付けた場合、第2カメラ2のロール角を右方向へ所定角度変更する。変更する角度は、進行方向差の大きさに応じて適宜変更すればよい。具体的には、CPU31は、記憶部35に予め記憶した進行方向差とロール角とを対応付けたテーブルを参照し、角度を決定すれば良い。CPU31は、以上の処理を進行方向差の絶対値が記憶部35に記憶した第1閾値以下となるまで行う。この第1閾値は、例えば3度とすれば良い。これにより、第1カメラ1及び第2カメラ2から取り込んだ画像内を移動する車両の進行方向が略一致することとなる。
次いで、CPU31は、図3に示すサイズ調整を行う。CPU31は、第1カメラ1及び第2カメラ2から同時間時に取り込んだ画像から車両のエッジを検出する。CPU31は、エッジを構成する画素に基づき、車両のサイズを算出する。第1カメラ1の総画素数と、第2カメラ2の総画素数とが一致する場合、エッジにより囲まれる画素数を車両のサイズとすればよい。本実施形態ではエッジ内の画素数を車両のサイズとするがこれに限るものではない。第1カメラ1と第2カメラ2との総画素数が異なる場合、CPU31は、予め記憶部35に記憶した画角に対応した一画素あたりの面積を参照し、第1カメラ1及び第2カメラ2から取り込んだ車両のエッジ内の面積を求めても良い。そしてこの面積をサイズとしても良い。その他、本実施形態ではエッジを囲む領域の画素数または面積をサイズとしたが、車両の長さをサイズとしても良い。CPU31は、例えば、車両のエッジと、進行方向に伸びる直線との2つの交点における距離をサイズとしても良い。
CPU31は、第1カメラ1から取り込んだ画像の車両のサイズから、第2カメラ2から取り込んだ画像の車両のサイズを減じ、差を求める。以下では当該差をサイズ差という。CPU31は、サイズ差が正の場合、ズームレンズ駆動部22へ第2カメラ2の画角を所定角度小さくする方向へ変更する旨の情報(以下、場合により小変更情報という)を出力する。ズームレンズ駆動部22は、小変更情報を受け付けた場合、第2カメラ2の画角を所定角度小さくし、画像を拡大する。
また、CPU31は、サイズ差が負の場合、ズームレンズ駆動部22へ第2カメラ2の画角を所定角度大きくする方向へ変更する旨の情報(以下、場合により大変更情報という)を出力する。ズームレンズ駆動部22は、大変更情報を受け付けた場合、第2カメラ2の画角を所定角度大きくし、画像を縮小する。この変更する角度は、サイズ差の大きさに応じて適宜変更すればよい。具体的には、CPU31は、記憶部35に予め記憶したサイズ差と変更すべき角度とを対応付けたテーブルを参照し、角度を決定すれば良い。
CPU31は、以上の処理をサイズ差の絶対値が記憶部35に記憶した第2閾値以下となるまで行う。この第2閾値は、例えば30画素数とすれば良い。以上の処理を繰り返し行うことにより、第1カメラ1及び第2カメラ2から取り込んだ画像内を移動する車両のサイズが略一致することとなる。また本実施形態では、第2カメラ2のカメラ駆動部21及びズームレンズ駆動部22を用いる例を挙げたがこれに限るものではない。ロール角の変更をカメラ駆動部21で行い、画角の変更を第1カメラ1のズームレンズ駆動部12で行っても良い。逆に、ロール角の変更を第1カメラ1のカメラ駆動部11で行い、画角の変更を第2カメラ2のズームレンズ駆動部22で行っても良い。なお、本実施形態ではカメラに向かって走行する車両を対象としたが、これに限るものではない。カメラから遠ざかる方向に走行する車両を対象としても良い。
以上のハードウェアにおいて各ソフトウェア処理を、フローチャートを用いて説明する。図5及び図6は変更処理の手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS51)。CPU31は、第2カメラ2から画像データを取り込む(ステップS52)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS53)。CPU31は、車両を認識していないと判断した場合(ステップS53でNO)、処理をステップS51へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS53でYES)、処理をステップS54へ移行させる。CPU31は、車両認識時及び認識時から1フレーム後の、第1カメラ1の2フレーム画像をRAM32に記憶する(ステップS54)。CPU31は、車両認識時及び認識時から1フレーム後の、第2カメラ2の2フレーム画像をRAM32に記憶する(ステップS55)。CPU31は、第1カメラ1の2フレーム画像のエッジを検出する(ステップS56)。CPU31は、2フレーム間のエッジ画像に基づき、第1カメラ1の車両の進行方向を算出する(ステップS57)。CPU31は、第2カメラ2の2フレーム画像のエッジを検出する(ステップS58)。CPU31は、2フレーム間のエッジ画像に基づき、第2カメラ2の車両の進行方向を算出する(ステップS59)。
CPU31は、第1カメラ1の車両進行方向から第2カメラ2の車両進行方向を減じることにより差を算出する(ステップS61)。CPU31は、記憶部35から進行方向の閾値を読み出す(ステップS62)。CPU31は、進行方向の差の絶対値が閾値以下か否かを判断する(ステップS63)。CPU31は、閾値以下でないと判断した場合(ステップS63でNO)、処理をステップS64へ移行させる。CPU31は、算出した差は正の値か否かを判断する(ステップS64)。CPU31は、正の値と判断した場合(ステップS64でYES)、処理をステップS65へ移行させる。CPU31は、右方向へ第2カメラ2のロール角を変更する(ステップS65)。なお、変更する角度は、記憶部35に予め差に対応付けて変更する角度を記憶したテーブルを参照して決定すればよい。CPU31は、第2カメラ2のカメラ駆動部21に、右方向へ所定角度第2カメラ2をロールさせる命令を出力する。カメラ駆動部21は、当該命令を受けて、第2カメラ2を所定角度右方向へロールさせる。
CPU31は、正の値でないと判断した場合(ステップS64でNO)、処理をステップS66へ移行させる。CPU31は、左方向へ第2カメラ2のロール角を変更する(ステップS66)。CPU31は、第2カメラ2のカメラ駆動部21に、左方向へ所定角度第2カメラ2をロールさせる命令を出力する。カメラ駆動部21は、当該命令を受けて、第2カメラ2を所定角度左方向へロールさせる。CPU31は、ステップS65及びS66の処理後、処理をステップS51に戻す。以上の処理を繰り返すことにより、2つのカメラから取り込まれる車両の進行方向が次第に一致することになる。CPU31は、進行方向の差の絶対値が閾値以下であると判断した場合(ステップS63でYES)、ステップS67へ移行する。
続いて、画角変更処理を行う。CPU31は、車両認識時の車両のエッジに基づき、第1カメラ1の車両のサイズを算出する(ステップS67)。CPU31は、車両認識時の車両のエッジに基づき、第2カメラ2の車両のサイズを算出する(ステップS68)。CPU31は、第1カメラ1の車両サイズから第2カメラ2の車両サイズを減じることにより差を算出する(ステップS69)。CPU31は、記憶部35からサイズの閾値を読み出す(ステップS611)。CPU31は、サイズの差の絶対値が閾値以下か否かを判断する(ステップS612)。CPU31は、閾値以下でないと判断した場合(ステップS612でNO)、処理をステップS613へ移行させる。CPU31は、算出した差は正の値か否かを判断する(ステップS613)。CPU31は、正の値と判断した場合(ステップS613でYES)、処理をステップS614へ移行させる。CPU31は、第2カメラ2の画角を小さくするよう変更する(ステップS614)。なお、画角の変更量は、記憶部35に予め差に対応付けて変更すべき角度を記憶したテーブルを参照して決定すればよい。CPU31は、第2カメラ2のズームレンズ駆動部22に、画角を小さくする命令を出力する。ズームレンズ駆動部22は、当該命令を受けて、第2カメラ2の画角を小さくする。
CPU31は、正の値でないと判断した場合(ステップS613でNO)、処理をステップS615へ移行させる。CPU31は、第2カメラ2の画角を大きくするよう変更する(ステップS615)。CPU31は、第2カメラ2のズームレンズ駆動部22に、画角を大きくする命令を出力する。ズームレンズ駆動部22は、当該命令を受けて、第2カメラ2の画角を大きくする。CPU31は、ステップS614及びS615の処理後、処理をステップS51に戻す。なお、CPU31は、処理を戻した後、ステップS58の処理後、進行方向の算出及びロール角の制御を行うことなく、ステップS67の画角変更処理を行っても良い。以上の処理を繰り返すことにより、2つのカメラから取り込まれる車両のサイズが次第に一致することになる。CPU31は、サイズの差の絶対値が閾値以下であると判断した場合(ステップS612でYES)、処理を終了する。これにより、2つのカメラから取り込まれる車両の進行方向及びサイズが実質的に同一となる。
実施の形態2
実施の形態2は車両の進行方向及びサイズを複数の車両に基づき算出する形態に関する。図7及び8は平均車両進行方向の算出手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS71)。CPU31は、第2カメラ2から画像データを取り込む(ステップS72)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS73)。CPU31は、車両を認識していないと判断した場合(ステップS73でNO)、処理をステップS71へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS73でYES)、処理をステップS74へ移行させる。CPU31は、車両認識時及び認識時から1フレーム後の、第1カメラ1の2フレーム画像をRAM32に記憶する(ステップS74)。CPU31は、車両認識時及び認識時から1フレーム後の、第2カメラ2の2フレーム画像をRAM32に記憶する(ステップS75)。CPU31は、第1カメラ1の2フレーム画像のエッジを検出する(ステップS76)。CPU31は、2フレーム間のエッジ画像に基づき、第1カメラ1の車両の進行方向を算出する(ステップS77)。CPU31は、第1カメラ1の車両の進行方向をRAM32に記憶する(ステップS78)。
CPU31は、第2カメラ2の2フレーム画像のエッジを検出する(ステップS79)。CPU31は、2フレーム間のエッジ画像に基づき、第2カメラ2の車両の進行方向を算出する(ステップS710)。CPU31は、第2カメラ2の車両の進行方向をRAM32に記憶する(ステップS81)。CPU31は、初期値0である認識車両のカウンタをインクリメントする(ステップS82)。CPU31は、記憶部35から認識車両の閾値を読み出す(ステップS83)。この閾値は例えば10台としておけばよい。
CPU31は、認識した車両が閾値以上か否かを判断する(ステップS84)。CPU31は、閾値以上でないと判断した場合(ステップS84でNO)、処理をステップS71へ戻す。これにより、複数の車両の進行方向が算出される。CPU31は、閾値以上であると判断した場合(ステップS84でYES)、処理をステップS85へ移行させる。CPU31は、ステップS78で記憶した進行方向を参照し、複数車両に対する第1カメラ1の車両進行方向の合計値を算出する(ステップS85)。CPU31は、合計値を、閾値で除すことで、第1カメラ1の車両の進行方向の平均値を算出する(ステップS86)。CPU31は、ステップS81で記憶した進行方向を参照し、複数車両に対する第2カメラ2の車両進行方向の合計値を算出する(ステップS87)。
CPU31は、合計値を、閾値で除すことで、第2カメラ2の車両の進行方向の平均値を算出する(ステップS88)。CPU31は、カウンタの認識車両数をクリアする(ステップS89)。CPU31は、ステップS61へ移行する。ステップS61では第1カメラ1の平均車両進行方向と、第2カメラ2の平均車両進行方向との差が算出される。以降の処理は実施の形態1と同様であるので詳細な説明は省略する。
また車両のサイズについても複数の車両の平均を用いても良い。ステップS63の処理後、以下の処理を行う。図9及び図10は平均車両サイズの算出手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS91)。CPU31は、第2カメラ2から画像データを取り込む(ステップS92)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS93)。CPU31は、車両を認識していないと判断した場合(ステップS93でNO)、処理をステップS91へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS93でYES)、処理をステップS94へ移行させる。CPU31は、第1カメラ1の認識した車両に係る画像のエッジを検出する(ステップS94)。CPU31は、エッジに基づき、第1カメラ1の車両のサイズを算出する(ステップS95)。CPU31は、第1カメラ1の車両のサイズをRAM32に記憶する(ステップS96)。
CPU31は、第2カメラ2の認識車両に係る画像のエッジを検出する(ステップS97)。CPU31は、エッジに基づき、第2カメラ2の車両のサイズを算出する(ステップS98)。CPU31は、第2カメラ2の車両のサイズをRAM32に記憶する(ステップS99)。CPU31は、初期値0である認識車両のカウンタをインクリメントする(ステップS101)。CPU31は、記憶部35から認識車両の閾値を読み出す(ステップS102)。
CPU31は、認識した車両が閾値以上か否かを判断する(ステップS103)。CPU31は、閾値以上でないと判断した場合(ステップS103でNO)、処理をステップS91へ戻す。これにより、複数の車両のサイズが算出される。CPU31は、閾値以上であると判断した場合(ステップS103でYES)、処理をステップS104へ移行させる。CPU31は、ステップS96で記憶したサイズを参照し、複数車両に対する第1カメラ1の車両サイズの合計値を算出する(ステップS104)。CPU31は、合計値を、閾値で除すことで、第1カメラ1の車両のサイズの平均値を算出する(ステップS105)。CPU31は、ステップS99で記憶したサイズを参照し、複数車両に対する第2カメラ2の車両サイズの合計値を算出する(ステップS106)。
CPU31は、合計値を、閾値で除すことで、第2カメラ2の車両のサイズの平均値を算出する(ステップS107)。CPU31は、カウンタの認識車両数をクリアする(ステップS108)。その後、CPU31は、ステップS69へ移行する。ステップS69では第1カメラ1の平均サイズと、第2カメラ2の平均サイズとの差が算出される。以降の処理は実施の形態1と同様であるので詳細な説明は省略する。これにより、より精度良くロール角及び画角を調整することが可能となる。
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
実施の形態3は複数の車両についての差の平均値を利用する形態に関する。図11及び図12は進行方向の差の平均値算出処理の手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS111)。CPU31は、第2カメラ2から画像データを取り込む(ステップS112)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS113)。CPU31は、車両を認識していないと判断した場合(ステップS113でNO)、処理をステップS111へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS113でYES)、処理をステップS114へ移行させる。CPU31は、車両認識時及び認識時から1フレーム後の、第1カメラ1の2フレーム画像をRAM32に記憶する(ステップS114)。CPU31は、車両認識時及び認識時から1フレーム後の、第2カメラ2の2フレーム画像をRAM32に記憶する(ステップS115)。CPU31は、第1カメラ1の2フレーム画像のエッジを検出する(ステップS116)。CPU31は、2フレーム間のエッジ画像に基づき、第1カメラ1の車両の進行方向を算出する(ステップS117)。CPU31は、第2カメラ2の2フレーム画像のエッジを検出する(ステップS118)。CPU31は、2フレーム間のエッジ画像に基づき、第2カメラ2の車両の進行方向を算出する(ステップS119)。
CPU31は、第1カメラ1の車両進行方向から第2カメラ2の車両進行方向を減じることにより差を算出する(ステップS121)。CPU31は、進行方向の差をRAM32に記憶する(ステップS122)。CPU31は、初期値ゼロである認識車両のカウンタをインクリメントする(ステップS123)。CPU31は、認識車両の閾値を読み出す(ステップS124)。CPU31は、認識車両は閾値以上か否かを判断する(ステップS125)。CPU31は、閾値以上でないと判断した場合(ステップS125でNO)、処理をステップS111へ戻す。CPU31は、閾値以上と判断した場合(ステップS125でYES)、処理をステップS126へ移行させる。CPU31は、ステップS122で記憶した進行方向の差の合計値を算出する(ステップS126)。CPU31は、進行方向の差の合計値を閾値で除すことで、進行方向の差の平均値を算出する(ステップS127)。CPU31は、その後ステップS62の処理を行う。以下では、進行方向の複数車両の差の平均値が用いて処理が行われる。
また車両のサイズについても複数の車両の平均サイズ差を用いても良い。ステップS63の処理後、以下の処理を行う。図13及び図14は平均サイズ差の算出手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS131)。CPU31は、第2カメラ2から画像データを取り込む(ステップS132)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS133)。CPU31は、車両を認識していないと判断した場合(ステップS133でNO)、処理をステップS131へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS133でYES)、処理をステップS134へ移行させる。CPU31は、第1カメラ1の認識した車両に係る画像のエッジを検出する(ステップS134)。CPU31は、エッジに基づき、第1カメラ1の車両のサイズを算出する(ステップS135)。
CPU31は、第2カメラ2の認識車両に係る画像のエッジを検出する(ステップS136)。CPU31は、エッジに基づき、第2カメラ2の車両のサイズを算出する(ステップS137)。CPU31は、第1カメラ1の車両サイズと第2カメラ2の車両サイズとの差を算出する(ステップS138)。CPU31は、算出した車両のサイズ差をRAM32に記憶する(ステップS139)。CPU31は、初期値0である認識車両のカウンタをインクリメントする(ステップS141)。CPU31は、記憶部35から認識車両の閾値を読み出す(ステップS142)。
CPU31は、認識した車両が閾値以上か否かを判断する(ステップS143)。CPU31は、閾値以上でないと判断した場合(ステップS143でNO)、処理をステップS131へ戻す。これにより、複数の車両のサイズが算出される。CPU31は、閾値以上であると判断した場合(ステップS143でYES)、処理をステップS144へ移行させる。CPU31は、ステップS139で記憶したサイズを参照し、複数車両に対するサイズ差の合計値を算出する(ステップS144)。CPU31は、合計値を、閾値で除すことで、サイズ差の平均値を算出する(ステップS145)。CPU31は、カウンタの認識車両数をクリアする(ステップS146)。その後、CPU31は、ステップS611へ移行する。ステップS612ではサイズの差の平均値が用いた処理が行われる以降の処理は実施の形態1と同様であるので詳細な説明は省略する。これにより、より精度良くロール角及び画角を調整することが可能となる。
本実施の形態3は以上の如きであり、その他は実施の形態1及び実施の形態2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態4
実施の形態4は車両のナンバープレートを用いて、より詳細にロール角及び画角を調整する形態に関する。図15は第1カメラ1及び第2カメラ2から取り込んだ車両の画像を示す説明図である。図15Aは第1カメラ1から取り込んだ車両の画像であり、図15Bは第2カメラ2から取り込んだ車両の画像である。図15Aのナンバープレートに対して図15Bのナンバープレートは第1カメラ1と第2カメラ2との設置位置の違いにより、歪んでいる。また、ナンバープレートのサイズも若干異なっている。CPU31は、第1カメラ1から取得したナンバープレートの傾き及び第2カメラ2から取得したナンバープレートの傾きを算出する。CPU31は、傾きの差が閾値以下となるようにロール角の変更を行う。その後、CPU31は、第1カメラ1及び第2カメラ2から取得したナンバープレートのサイズを算出する。CPU31は、サイズの差が閾値以下となるように、画角の変更を行う。なお、本実施形態ではナンバープレートを用いてロール角及び画角の双方を変更する例を挙げるが、いずれか一方の変更であっても良い。
図16及び図17は変更処理の手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS161)。CPU31は、第2カメラ2から画像データを取り込む(ステップS162)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS163)。CPU31は、車両を認識していないと判断した場合(ステップS163でNO)、処理をステップS161へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS163でYES)、処理をステップS164へ移行させる。CPU31は、第1カメラ1で認識した車両のエッジを検出する(ステップS164)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS165)。具体的には認識した車両先頭部分の領域について、ナンバープレートに対するパターンマッチングを行うことにより、ナンバープレートのエッジを抽出する。CPU31は、第1カメラ1のナンバープレートの傾きを算出する(ステップS166)。具体的には、CPU31は、ナンバープレートのエッジ短辺を構成する数点に基づき、近似直線を生成する。CPU31は、算出した近似曲線の傾きを算出する。その他、短辺の両端の画素または両端近傍の画素を結ぶ線分の傾きをナンバープレートの傾きとしても良い。なお、傾きは他の実施形態と同じく12時方向を0度とし、画面下側に向かう6時方向を180度とする。
CPU31は、第2カメラ2で認識した車両のエッジを検出する(ステップS167)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS168)。CPU31は、第2カメラ2のナンバープレートの傾きを算出する(ステップS169)。CPU31は、第1カメラ1のナンバープレートの傾きから、第2カメラ2のナンバープレートの傾きを減じることにより傾きの差を算出する(ステップS171)。CPU31は、記憶部35から傾きの閾値を読み出す(ステップS172)。ステップS172における閾値(第3閾値)はステップS62の閾値(第1閾値)より小さく、例えば1度とすればよい。
CPU31は、傾きの差の絶対値が閾値以下か否かを判断する(ステップS173)。CPU31は、閾値以下でないと判断した場合(ステップS173でNO)、処理をステップS174へ移行させる。CPU31は、算出した差は正の値か否かを判断する(ステップS174)。CPU31は、正の値と判断した場合(ステップS174でYES)、処理をステップS175へ移行させる。CPU31は、右方向へ第2カメラ2のロール角を変更する(ステップS175)。なお、変更する角度は、記憶部35に予め傾きの差に対応付けて変更する角度を記憶したテーブルを参照して決定すればよい。CPU31は、第2カメラ2のカメラ駆動部21に、右方向へ所定角度第2カメラ2をロールさせる命令を出力する。カメラ駆動部21は、当該命令を受けて、第2カメラ2を所定角度右方向へロールさせる。
CPU31は、正の値でないと判断した場合(ステップS174でNO)、処理をステップS176へ移行させる。CPU31は、左方向へ第2カメラ2のロール角を変更する(ステップS176)。CPU31は、第2カメラ2のカメラ駆動部21に、左方向へ所定角度第2カメラ2をロールさせる命令を出力する。カメラ駆動部21は、当該命令を受けて、第2カメラ2を所定角度左方向へロールさせる。CPU31は、ステップS175及びS176の処理後、処理をステップS161に戻す。以上の処理を繰り返すことにより、2つのカメラから取り込まれる車両の進行方向が次第に一致することになる。CPU31は、傾きの差の絶対値が閾値以下であると判断した場合(ステップS173でYES)、ステップS177へ移行する。
続いて、画角変更処理を行う。CPU31は、車両認識時のナンバープレートのエッジに基づき、第1カメラ1のナンバープレートのサイズを算出する(ステップS177)。具体的には、抽出したナンバープレートのエッジにより囲まれる画素数を計数し、サイズとする。なお、実施の形態1で述べたとおり、1画素あたりの長さから面積を求め、サイズとしても良い。本実施形態では画素数によりサイズを求める例を挙げて説明する。CPU31は、車両認識時のナンバープレートのエッジに基づき、第2カメラ2のナンバープレートのサイズを算出する(ステップS178)。CPU31は、第1カメラ1のナンバープレートサイズから第2カメラ2のナンバープレートサイズを減じることにより差を算出する(ステップS179)。CPU31は、記憶部35からサイズの閾値を読み出す(ステップS1710)。なお、ステップS1710の閾値(第4閾値)はステップS611における閾値(第2閾値)よりも小さく、例えば5画素とすればよい。
CPU31は、サイズの差の絶対値が閾値以下か否かを判断する(ステップS1711)。CPU31は、閾値以下でないと判断した場合(ステップS1711でNO)、処理をステップS1712へ移行させる。CPU31は、算出した差は正の値か否かを判断する(ステップS1712)。CPU31は、正の値と判断した場合(ステップS1712でYES)、処理をステップS1713へ移行させる。CPU31は、第2カメラ2の画角を小さくするよう変更する(ステップS1713)。なお、画角の変更量は、記憶部35に予めナンバープレートのサイズ差に対応付けて変更すべき角度を記憶したテーブルを参照して決定すればよい。CPU31は、第2カメラ2のズームレンズ駆動部22に、画角を小さくする命令を出力する。ズームレンズ駆動部22は、当該命令を受けて、第2カメラ2の画角を小さくする。
CPU31は、正の値でないと判断した場合(ステップS1712でNO)、処理をステップS1714へ移行させる。CPU31は、第2カメラ2の画角を大きくするよう変更する(ステップS1714)。CPU31は、第2カメラ2のズームレンズ駆動部22に、画角を大きくする命令を出力する。ズームレンズ駆動部22は、当該命令を受けて、第2カメラ2の画角を大きくする。CPU31は、ステップS1713及びS1714の処理後、処理をステップS161に戻す。以上の処理を繰り返すことにより、2つのカメラから取り込まれるナンバープレートのサイズが次第に一致することになる。CPU31は、サイズの差の絶対値が閾値以下であると判断した場合(ステップS1711でYES)、処理を終了する。これにより、より精度良く2つのカメラのロール角及び画角を調整することが可能となる。
本実施の形態4は以上の如きであり、その他は実施の形態1から実施の形態3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態5
実施の形態5は複数車両の傾き及びサイズの平均を利用する形態に関する。図18及び図19は平均傾き算出処理の手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS181)。CPU31は、第2カメラ2から画像データを取り込む(ステップS182)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS183)。CPU31は、車両を認識していないと判断した場合(ステップS183でNO)、処理をステップS181へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS183でYES)、処理をステップS184へ移行させる。CPU31は、第1カメラ1で認識した車両のエッジを検出する(ステップS184)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS185)。CPU31は、第1カメラ1のナンバープレートの傾きを算出する(ステップS186)。
CPU31は、第2カメラ2で認識した車両のエッジを検出する(ステップS187)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS188)。CPU31は、第2カメラ2のナンバープレートの傾きを算出する(ステップS189)。CPU31は、第1カメラ1のナンバープレートの傾きをRAM32に記憶する(ステップS191)。CPU31は、第2カメラ2のナンバープレートの傾きをRAM32に記憶する(ステップS192)。
CPU31は、初期値0である認識車両のカウンタをインクリメントする(ステップS193)。CPU31は、記憶部35から認識車両の閾値を読み出す(ステップS194)。この閾値は例えば10台としておけばよい。
CPU31は、認識した車両が閾値以上か否かを判断する(ステップS195)。CPU31は、閾値以上でないと判断した場合(ステップS195でNO)、処理をステップS181へ戻す。これにより、複数のナンバープレートの傾きが算出される。CPU31は、閾値以上であると判断した場合(ステップS195でYES)、処理をステップS196へ移行させる。CPU31は、ステップS191で記憶した傾きを参照し、複数車両に対する第1カメラ1のナンバープレートの傾きの合計値を算出する(ステップS196)。CPU31は、合計値を、閾値で除すことで、第1カメラ1の車両のナンバープレートの傾きの平均値を算出する(ステップS197)。CPU31は、ステップS192で記憶した傾きを参照し、複数車両に対する第2カメラ2のナンバープレートの傾きの合計値を算出する(ステップS198)。
CPU31は、合計値を、閾値で除すことで、第2カメラ2のナンバープレートの傾きの平均値を算出する(ステップS199)。CPU31は、カウンタの認識車両数をクリアする(ステップS1910)。CPU31は、ステップS171へ移行する。ステップS171では第1カメラ1のナンバープレートの平均傾きと、第2カメラ2のナンバープレートの平均傾きとの差が算出される。以降の処理は実施の形態4と同様であるので詳細な説明は省略する。
ロール角の変更が終了した場合、以下の処理によりナンバープレートのサイズを算出しても良い。図20及び図21は平均サイズ算出処理の手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS201)。CPU31は、第2カメラ2から画像データを取り込む(ステップS202)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS203)。CPU31は、車両を認識していないと判断した場合(ステップS203でNO)、処理をステップS201へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS203でYES)、処理をステップS204へ移行させる。CPU31は、第1カメラ1で認識した車両のエッジを検出する(ステップS204)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS205)。CPU31は、第1カメラ1のナンバープレートのサイズを算出する(ステップS206)。
CPU31は、第2カメラ2で認識した車両のエッジを検出する(ステップS207)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS208)。CPU31は、第2カメラ2のナンバープレートのサイズを算出する(ステップS209)。CPU31は、第1カメラ1のナンバープレートのサイズをRAM32に記憶する(ステップS211)。CPU31は、第2カメラ2のナンバープレートのサイズをRAM32に記憶する(ステップS212)。
CPU31は、初期値0である認識車両のカウンタをインクリメントする(ステップS213)。CPU31は、記憶部35から認識車両の閾値を読み出す(ステップS214)。この閾値は例えば10台としておけばよい。
CPU31は、認識した車両が閾値以上か否かを判断する(ステップS215)。CPU31は、閾値以上でないと判断した場合(ステップS215でNO)、処理をステップS201へ戻す。これにより、複数のナンバープレートのサイズが算出される。CPU31は、閾値以上であると判断した場合(ステップS215でYES)、処理をステップS216へ移行させる。CPU31は、ステップS211で記憶したサイズを参照し、複数車両に対する第1カメラ1のナンバープレートのサイズの合計値を算出する(ステップS216)。CPU31は、合計値を、閾値で除すことで、第1カメラ1の車両のナンバープレートサイズの平均値を算出する(ステップS217)。CPU31は、ステップS122で記憶したサイズを参照し、複数車両に対する第2カメラ2のナンバープレートのサイズの合計値を算出する(ステップS218)。
CPU31は、合計値を、閾値で除すことで、第2カメラ2のナンバープレートのサイズの平均値を算出する(ステップS219)。CPU31は、カウンタの認識車両数をクリアする(ステップS2110)。CPU31は、ステップS179へ移行する。ステップS179では第1カメラ1のナンバープレートの平均サイズと、第2カメラ2のナンバープレートの平均サイズとの差が算出される。以降の処理を実施の形態4と同様に行い、ステップS1713またはS1714後、処理をステップS201に戻す。このように複数車両のナンバープレートを用いることでより精度良くロール角及び画角を調整することが可能となる。
本実施の形態5は以上の如きであり、その他は実施の形態1から実施の形態4と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態6
実施の形態6は傾きの差及びサイズの差について複数車両のナンバープレートの平均値を利用する形態に関する。複数の車両のナンバープレートの傾き及びサイズについて、第1カメラ1と第2カメラ2との差の平均値を利用する形態であっても良い。図22及び図23は傾きの差の算出処理の手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS221)。CPU31は、第2カメラ2から画像データを取り込む(ステップS222)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS223)。CPU31は、車両を認識していないと判断した場合(ステップS223でNO)、処理をステップS221へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS223でYES)、処理をステップS224へ移行させる。CPU31は、第1カメラ1で認識した車両のエッジを検出する(ステップS224)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS225)。CPU31は、第1カメラ1のナンバープレートの傾きを算出する(ステップS226)。
CPU31は、第2カメラ2で認識した車両のエッジを検出する(ステップS227)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS228)。CPU31は、第2カメラ2のナンバープレートの傾きを算出する(ステップS229)。CPU31は、第1カメラ1のナンバープレートの傾きから第2カメラ2のナンバープレートの傾きを減じることにより差を算出する(ステップS231)。CPU31は、算出した差をRAM32に記憶する(ステップS232)。
CPU31は、初期値0である認識車両のカウンタをインクリメントする(ステップS233)。CPU31は、記憶部35から認識車両の閾値を読み出す(ステップS234)。
CPU31は、認識した車両が閾値以上か否かを判断する(ステップS235)。CPU31は、閾値以上でないと判断した場合(ステップS235でNO)、処理をステップS221へ戻す。これにより、複数のナンバープレートの傾きの差が算出される。CPU31は、閾値以上であると判断した場合(ステップS235でYES)、処理をステップS236へ移行させる。CPU31は、ステップS232で記憶した差を参照し、複数車両に対する第1カメラ1のナンバープレートの傾きの差の合計値を算出する(ステップS236)。CPU31は、合計値を、閾値で除すことで、第1カメラ1の車両のナンバープレートの傾きの差の平均値を算出する(ステップS237)。
CPU31は、カウンタの認識車両数をクリアする(ステップS238)。CPU31は、ステップS172へ移行する。以降の処理は実施の形態4と同様であるので詳細な説明は省略する。
ロール角の変更が終了した場合、以下の処理によりナンバープレートのサイズを算出しても良い。図24及び図25はサイズの差の算出処理の手順を示すフローチャートである。CPU31は、第1カメラ1から画像を取り込む(ステップS241)。CPU31は、第2カメラ2から画像データを取り込む(ステップS242)。CPU31は、制御プログラム35Pを実行し、画像から車両の認識を行う。CPU31は、第1カメラ1から取得した画像及び第2カメラ2から取得した画像に基づき、車両を認識したか否かを判断する(ステップS243)。CPU31は、車両を認識していないと判断した場合(ステップS243でNO)、処理をステップS241へ戻す。
CPU31は、車両を認識したと判断した場合(ステップS243でYES)、処理をステップS244へ移行させる。CPU31は、第1カメラ1で認識した車両のエッジを検出する(ステップS244)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS245)。CPU31は、第1カメラ1のナンバープレートのサイズを算出する(ステップS246)。
CPU31は、第2カメラ2で認識した車両のエッジを検出する(ステップS247)。CPU31は、車両のエッジからナンバープレートのエッジを抽出する(ステップS248)。CPU31は、第2カメラ2のナンバープレートのサイズを算出する(ステップS249)。CPU31は、第1カメラ1のナンバープレートのサイズから第2カメラ2のナンバープレートのサイズを減じることにより差を算出する(ステップS251)。CPU31は、算出した差をRAM32に記憶する(ステップS252)。
CPU31は、初期値0である認識車両のカウンタをインクリメントする(ステップS253)。CPU31は、記憶部35から認識車両の閾値を読み出す(ステップS254)。
CPU31は、認識した車両が閾値以上か否かを判断する(ステップS255)。CPU31は、閾値以上でないと判断した場合(ステップS255でNO)、処理をステップS241へ戻す。これにより、複数のナンバープレートのサイズの差が算出される。CPU31は、閾値以上であると判断した場合(ステップS255でYES)、処理をステップS256へ移行させる。CPU31は、ステップS252で記憶した差を参照し、複数車両に対する第1カメラ1のナンバープレートのサイズの差の合計値を算出する(ステップS256)。CPU31は、合計値を、閾値で除すことで、第1カメラ1の車両のナンバープレートのサイズの差の平均値を算出する(ステップS257)。
CPU31は、カウンタの認識車両数をクリアする(ステップS258)。CPU31は、ステップS1710へ移行する。以降の処理を実施の形態4と同様に行い、ステップS1713またはS1714後、処理をステップS241に戻す。このように複数車両のナンバープレートを用いることでより精度良くロール角及び画角を調整することが可能となる。
本実施の形態6は以上の如きであり、その他は実施の形態1から実施の形態5と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態7
実施の形態7は、遠隔地にて情報処理する形態に関する。図26は実施の形態7に係る情報処理システムの概要を示す説明図である。実施の形態1で述べたコンピュータ3は、通信網Nを介して中継装置5に接続されている。図26に示すように、複数の中継装置5に接続する形態であっても良い。中継装置5は、ルータ等の通信装置であり、第1カメラ1及び第2カメラ2から出力される画像をコンピュータ3へ送信する。コンピュータ3は上記実施の形態で述べた処理を行い、ロール角度の変更及び画角の変更に関する情報を中継装置5へ送信する。中継装置5は、コンピュータ3によるロール角度の変更及び画角の変更に関する情報を受信し、第1カメラ1または第2カメラ2へ出力する。第1カメラ1または第2カメラ2はロール角の変更及び画角の変更を行う。これにより、遠隔地での制御も一括して行うことが可能となる。
本実施の形態7は以上の如きであり、その他は実施の形態1から実施の形態6と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態8
図27は上述した形態のコンピュータ3の動作を示す機能ブロック図である。CPU31が制御プログラム35Pを実行することにより、サーバコンピュータ3は以下のように動作する。第1算出部311は、第1カメラ1から取り込んだ画像に含まれる車両の進行方向を算出する。第2算出部312は、第2撮カメラ2から取り込んだ画像に含まれる車両の進行方向を算出する。第1ロール角変更部313は、第1算出部311で算出した進行方向及び第2算出部312で算出した進行方向との差が第1閾値以下となるように、第1カメラ1または第2カメラ2のロール角を変更する。第3算出部314は第1カメラ1から取り込んだ画像に含まれる車両のサイズを算出する。第4算出部315は、第2カメラ2から取り込んだ画像に含まれる車両のサイズを算出する。第1画角変更部316は、第3算出部314で算出したサイズ及び第4算出部315で算出したサイズとの差が第2閾値以下となるように、第1カメラ1または第2カメラ2の画角を変更する。
図28は実施の形態8に係るコンピュータ3のハードウェア群を示すブロック図である。コンピュータ3を動作させるためのプログラムは、ディスクドライブ等の読み取り部30AにCD-ROM、DVD(Digital Versatile Disc)ディスク、メモリーカード、またはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体3Aを読み取らせて記憶部35に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ3Bをコンピュータ3内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
図28に示すコンピュータ3は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体3Aまたは半導体メモリ3Bから読み取り、或いは、通信網Nを介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム35Pとしてインストールされ、RAM32にロードして実行される。これにより、上述したコンピュータ3として機能する。
本実施の形態8は以上の如きであり、その他は実施の形態1から5と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
以上の実施の形態1乃至8を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1撮像装置と、
第2撮像装置と、
第1撮像装置及び第2撮像装置から取り込んだ画像を処理する情報処理装置とを含む情報処理システムであって、
前記情報処理装置は、
前記第1撮像装置から取り込んだ画像に含まれる移動体の進行方向を算出する第1算出部と、
前記第2撮像装置から取り込んだ画像に含まれる前記移動体の進行方向を算出する第2算出部と、
前記第1算出部で算出した進行方向及び前記第2算出部で算出した進行方向との差が第1閾値以下となるように、前記第1撮像装置または前記第2撮像装置のロール角を変更する第1ロール角変更部と、
前記第1撮像装置から取り込んだ画像に含まれる移動体のサイズを算出する第3算出部と、
前記第2撮像装置から取り込んだ画像に含まれる前記移動体のサイズを算出する第4算出部と、
前記第3算出部で算出したサイズ及び前記第4算出部で算出したサイズとの差が第2閾値以下となるように、前記第1撮像装置または前記第2撮像装置の画角を変更する第1画角変更部と
を備える情報処理システム。
(付記2)
前記第1算出部は、前記第1撮像装置から取り込んだ画像に含まれる複数の移動体の平均進行方向を算出し、
前記第2算出部は、前記第2撮像装置から取り込んだ画像に含まれる複数の移動体の平均進行方向を算出する
付記1に記載の情報処理システム。
(付記3)
前記第3算出部は、前記第1撮像装置から取り込んだ画像に含まれる複数の移動体の平均サイズを算出し、
前記第4算出部は、前記第2撮像装置から取り込んだ画像に含まれる複数の移動体の平均サイズを算出する
付記1または2に記載の情報処理システム。
(付記4)
前記第1ロール角変更部は、
前記第1算出部で算出した進行方向及び前記第2算出部で算出した進行方向との差を、複数の移動体について求め、求めた差の平均値が第1閾値以下となるように、前記第1撮像装置または前記第2撮像装置のロール角を変更する
付記1に記載の情報処理システム。
(付記5)
前記第1画角変更部は、
前記第3算出部で算出したサイズ及び前記第4算出部で算出したサイズとの差を、複数の移動体について求め、求めた差の平均値が第2閾値以下となるように、前記第1撮像装置または前記第2撮像装置の画角を変更する
付記1または4に記載の情報処理システム。
(付記6)
前記情報処理装置は、
前記第1撮像装置から取り込んだ画像に含まれる移動体のナンバープレートの傾きを算出する第1傾き算出部と、
前記第2撮像装置から取り込んだ画像に含まれる前記移動体のナンバープレートの傾きを算出する第2傾き算出部と、
前記第1傾き算出部で算出した傾き及び前記第2傾き算出部で算出した傾きとの差が第3閾値以下となるように、前記第1撮像装置または前記第2撮像装置のロール角を変更する第2ロール角変更部と
を備える付記1から5のいずれか一つに記載の情報処理システム。
(付記7)
前記第1傾き算出部は、前記第1撮像装置から取り込んだ画像に含まれる複数の移動体のナンバープレートの平均傾きを算出し、
前記第2傾き算出部は、前記第2撮像装置から取り込んだ画像に含まれる複数の移動体のナンバープレートの平均傾きを算出する
付記6に記載の情報処理システム。
(付記8)
前記第2ロール角変更部は、
前記第1傾き算出部で算出した傾き及び前記第2傾き算出部で算出した傾きとの差を、複数の移動体について求め、求めた差の平均値が第3閾値以下となるように、前記第1撮像装置または前記第2撮像装置のロール角を変更する
付記6に記載の情報処理システム。
(付記9)
前記情報処理装置は、
前記第1撮像装置から取り込んだ画像に含まれる移動体のナンバープレートのサイズを算出する第1サイズ算出部と、
前記第2撮像装置から取り込んだ画像に含まれる前記移動体のナンバープレートのサイズを算出する第2サイズ算出部と、
前記第1サイズ算出部で算出したサイズ及び前記第2サイズ算出部で算出したサイズとの差が第4閾値以下となるように、前記第1撮像装置または前記第2撮像装置の画角を変更する第2画角変更部と
を備える付記1から8のいずれか一つに記載の情報処理システム。
(付記10)
前記第1サイズ算出部は、前記第1撮像装置から取り込んだ画像に含まれる複数の移動体のナンバープレートの平均サイズを算出し、
前記第2サイズ算出部は、前記第2撮像装置から取り込んだ画像に含まれる複数の移動体のナンバープレートの平均サイズを算出する
付記9に記載の情報処理システム。
(付記11)
前記第2画角変更部は、
前記第1サイズ算出部で算出したサイズ及び前記第2サイズ算出部で算出したサイズとの差を、複数の移動体について求め、求めた差の平均値が第4閾値以下となるように、前記第1撮像装置または前記第2撮像装置の画角を変更する
付記9に記載の情報処理システム。
(付記12)
第1撮像装置から取り込んだ画像に含まれる移動体の進行方向を算出する第1算出部と、
第2撮像装置から取り込んだ画像に含まれる前記移動体の進行方向を算出する第2算出部と、
前記第1算出部で算出した進行方向及び前記第2算出部で算出した進行方向との差が第1閾値以下となるように、前記第1撮像装置または前記第2撮像装置のロール角を変更する第1ロール角変更部と、
前記第1撮像装置から取り込んだ画像に含まれる移動体のサイズを算出する第3算出部と、
前記第2撮像装置から取り込んだ画像に含まれる前記移動体のサイズを算出する第4算出部と、
前記第3算出部で算出したサイズ及び前記第4算出部で算出したサイズとの差が第2閾値以下となるように、前記第1撮像装置または前記第2撮像装置の画角を変更する第1画角変更部と
を備える情報処理装置。
(付記13)
コンピュータに、
第1撮像装置から取り込んだ画像に含まれる移動体の進行方向を算出し、
第2撮像装置から取り込んだ画像に含まれる前記移動体の進行方向を算出し、
算出した進行方向の差が第1閾値以下となるように、前記第1撮像装置または前記第2撮像装置のロール角を変更し、
前記第1撮像装置から取り込んだ画像に含まれる移動体のサイズを算出し、
前記第2撮像装置から取り込んだ画像に含まれる前記移動体のサイズを算出し、
算出したサイズの差が第2閾値以下となるように、前記第1撮像装置または前記第2撮像装置の画角を変更する
処理を実行させるプログラム。
(付記14)
第1撮像装置から取り込んだ画像に含まれる移動体の進行方向を算出し、
第2撮像装置から取り込んだ画像に含まれる前記移動体の進行方向を算出し、
算出した進行方向の差が第1閾値以下となるように、前記第1撮像装置または前記第2撮像装置のロール角を変更し、
前記第1撮像装置から取り込んだ画像に含まれる移動体のサイズを算出し、
前記第2撮像装置から取り込んだ画像に含まれる前記移動体のサイズを算出し、
算出したサイズの差が第2閾値以下となるように、前記第1撮像装置または前記第2撮像装置の画角を変更する
情報処理方法。