(57)【要約】  カメラと、カメラ状態推定装置と、を有する画像認識システムであって、カメラ状態推定装置は、検知対象の画像の特徴量と、検知対象の実空間における大きさと、カメラの状態を示すパラメータの推定値と、を保持し、カメラによって撮影された画像から、特徴量に基づいて、検知対象と類似する対象を抽出し、検知対象の実空間における大きさと、パラメータの推定値と、類似する対象の画像内の位置及び大きさと、に基づいて、パラメータの推定値の誤差の大きさを示す指標を計算し、計算された誤差の大きさを示す指標が所定の条件を満たさない場合に、パラメータの推定値を変更する。
2017126072.tif 000002
【特許請求の範囲】
【請求項１】
カメラと、ネットワークを介して前記カメラに接続されるカメラ状態推定装置と、を有する画像認識システムであって、
前記カメラ状態推定装置は、前記ネットワークに接続される第１インターフェースと、前記第１インターフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１記憶装置と、を有し、
前記第１記憶装置は、検知対象の画像の特徴量と、前記検知対象の実空間における大きさと、前記カメラの状態を示す一つ以上のパラメータの推定値と、を保持し、
前記カメラは、画像を撮影して前記カメラ状態推定装置に送信し、
前記第１プロセッサは、
前記カメラによって撮影された画像から、前記第１記憶装置に保持された特徴量に基づいて、前記検知対象と類似する対象を抽出し、
前記検知対象の実空間における大きさと、前記一つ以上のパラメータの推定値と、前記類似する対象の前記画像内の位置及び大きさと、に基づいて、前記一つ以上のパラメータの推定値の誤差の大きさを示す指標を計算し、
前記計算された誤差の大きさを示す指標が所定の条件を満たさない場合に、前記一つ以上のパラメータの推定値を変更することを特徴とする画像認識システム。
【請求項２】
請求項１に記載の画像認識システムであって、
前記検知対象の実空間における大きさは、前記検知対象の下端から前記検知対象の所定の基準点までの高さを含み、
前記第１プロセッサは、
前記検知対象の実空間における大きさと、前記一つ以上のパラメータの推定値と、前記類似する対象の前記基準点の前記画像内の位置と、前記類似する対象の前記画像内の大きさと、に基づいて、前記類似する対象の下端の実空間における第１座標値を計算し、
前記計算された第１座標値のうち水平面内の座標値と、前記一つ以上のパラメータの推定値と、前記類似する対象の下端の前記画像内の位置と、に基づいて、前記類似する対象の下端の実空間における第２座標値を計算し、
前記第１座標値と前記第２座標値との相違を前記誤差の大きさを示す指標として計算し、
前記計算された相違が所定の値より小さい場合に、前記誤差の大きさを示す指標が所定の条件を満たすと判定することを特徴とする画像認識システム。
【請求項３】
請求項２に記載の画像認識システムであって、
前記第１記憶装置は、前記カメラの状態を示す複数のパラメータの推定値を保持し、
前記第１プロセッサは、
前記カメラによって撮影された画像から、前記検知対象と類似する複数の対象を抽出し、
前記類似する複数の対象の各々の実空間における前記第１座標値を計算し、
前記類似する複数の対象の各々の下端の実空間における前記第２座標値を計算し、
前記類似する複数の対象の各々について、前記第１座標値と前記第２座標値との相違の合計を前記誤差の大きさを示す指標として計算し、
前記計算された相違の合計が所定の値より小さい場合に、前記誤差の大きさを示す指標が所定の条件を満たすと判定することを特徴とする画像認識システム。
【請求項４】
請求項１に記載の画像認識システムであって、
前記一つ以上のパラメータの推定値は、前記カメラの画角の推定値と、前記カメラの撮影方向を示す角度の推定値と、の少なくとも一方を含むことを特徴とする画像認識システム。
【請求項５】
請求項１に記載の画像認識システムであって、
前記検知対象の実空間における大きさは、前記検知対象の実空間における高さ及び幅の少なくとも一方を含むことを特徴とする画像認識システム。
【請求項６】
請求項１に記載の画像認識システムであって、
前記第１記憶装置は、前記検知対象の実空間における座標値をさらに保持し、
前記一つ以上のパラメータの推定値は、前記カメラの撮影方向を示す角度の推定値を含み、
前記第１プロセッサは、
前記保持された座標値と、前記類似する対象の前記画像内の位置と、に基づいて、前記カメラの撮影方向を示す角度を計算することを特徴とする画像認識システム。
【請求項７】
請求項１に記載の画像認識システムであって、
前記ネットワークに接続されるデータベース更新装置をさらに有し、
前記データベース更新装置は、前記ネットワークに接続される第２インターフェースと、前記第２インターフェースに接続される第２プロセッサと、前記第２プロセッサに接続される第２記憶装置と、前記第２プロセッサに接続される表示装置と、前記第２プロセッサに接続される入力装置と、を有し、
前記表示装置は、前記カメラによって撮影された画像を表示し、
前記入力装置は、前記表示された画像のうち、検知対象を含む領域及び当該検知対象の大きさを指定する情報の入力を受け付け、
前記第２プロセッサは、前記第２インターフェースを介して、前記入力された情報を前記カメラ状態推定装置に送信し、
前記第１プロセッサは、前記データベース更新装置から受信した情報に基づいて、前記指定された検知対象の画像の特徴量と、前記検知対象の大きさと、を前記第１記憶装置に追加することを特徴とする画像認識システム。
【請求項８】
プロセッサと、前記プロセッサに接続される記憶装置と、を有するカメラ状態推定装置であって、
前記記憶装置は、検知対象の画像の特徴量と、前記検知対象の実空間における大きさと、カメラの状態を示す一つ以上のパラメータの推定値と、を保持し、
前記プロセッサは、
前記カメラによって撮影された画像から、前記記憶装置に保持された特徴量に基づいて、前記検知対象と類似する対象を抽出し、
前記検知対象の実空間における大きさと、前記一つ以上のパラメータの推定値と、前記類似する対象の前記画像内の位置及び大きさと、に基づいて、前記一つ以上のパラメータの推定値の誤差の大きさを示す指標を計算し、
前記誤差の大きさを示す指標が所定の条件を満たさない場合に、前記一つ以上のパラメータの推定値を変更し、
前記誤差の大きさを示す指標が所定の条件を満たす場合に、前記一つ以上のパラメータの推定値を出力することを特徴とするカメラ状態推定装置。
【請求項９】
請求項８に記載のカメラ状態推定装置であって、
前記検知対象の実空間における大きさは、前記検知対象の下端から前記検知対象の所定の基準点までの高さを含み、
前記プロセッサは、
前記検知対象の実空間における大きさと、前記一つ以上のパラメータの推定値と、前記類似する対象の前記基準点の前記画像内の位置と、前記類似する対象の前記画像内の大きさと、に基づいて、前記類似する対象の下端の実空間における第１座標値を計算し、
前記計算された第１座標値のうち水平面内の座標値と、前記一つ以上のパラメータの推定値と、前記類似する対象の下端の前記画像内の位置と、に基づいて、前記類似する対象の下端の実空間における第２座標値を計算し、
前記第１座標値と前記第２座標値との相違を前記誤差の大きさを示す指標として計算し、
前記計算された相違が所定の値より小さい場合に、前記誤差の大きさを示す指標が所定の条件を満たすと判定することを特徴とするカメラ状態推定装置。
【請求項１０】
請求項９に記載のカメラ状態推定装置であって、
前記記憶装置は、前記カメラの状態を示す複数のパラメータの推定値を保持し、
前記プロセッサは、
前記カメラによって撮影された画像から、前記検知対象と類似する複数の対象を抽出し、
前記類似する複数の対象の各々の実空間における前記第１座標値を計算し、
前記類似する複数の対象の各々の下端の実空間における前記第２座標値を計算し、
前記類似する複数の対象の各々について、前記第１座標値と前記第２座標値との相違の合計を前記誤差の大きさを示す指標として計算し、
前記計算された相違の合計が所定の値より小さい場合に、前記誤差の大きさを示す指標が所定の条件を満たすと判定することを特徴とするカメラ状態推定装置。
【請求項１１】
請求項８に記載のカメラ状態推定装置であって、
前記一つ以上のパラメータの推定値は、前記カメラの画角の推定値と、前記カメラの撮影方向を示す角度の推定値と、の少なくとも一方を含むことを特徴とするカメラ状態推定装置。
【請求項１２】
請求項８に記載のカメラ状態推定装置であって、
前記検知対象の実空間における大きさは、前記検知対象の実空間における高さ及び幅の少なくとも一方を含むことを特徴とするカメラ状態推定装置。
【請求項１３】
請求項８に記載のカメラ状態推定装置であって、
前記記憶装置は、前記検知対象の実空間における座標値をさらに保持し、
前記一つ以上のパラメータの推定値は、前記カメラの撮影方向を示す角度の推定値を含み、
前記プロセッサは、
前記保持された座標値と、前記類似する対象の前記画像内の位置と、に基づいて、前記カメラの撮影方向を示す角度を計算することを特徴とするカメラ状態推定装置。
【請求項１４】
請求項８に記載のカメラ状態推定装置であって、
前記カメラをさらに有することを特徴とするカメラ状態推定装置。
【請求項１５】
計算機を制御するプログラムを格納する非一時的な計算機読み取り可能な記憶媒体であって、
前記計算機は、プロセッサと、前記プロセッサに接続される記憶装置と、を有し、
前記記憶装置は、検知対象の画像の特徴量と、前記検知対象の実空間における大きさと、カメラの状態を示す一つ以上のパラメータの推定値と、を保持し、
前記プログラムは、
前記カメラによって撮影された画像から、前記記憶装置に保持された特徴量に基づいて、前記検知対象と類似する対象を抽出する手順と、
前記検知対象の実空間における大きさと、前記一つ以上のパラメータの推定値と、前記類似する対象の前記画像内の位置及び大きさと、に基づいて、前記一つ以上のパラメータの推定値の誤差の大きさを示す指標を計算する手順と、
前記誤差の大きさを示す指標が所定の条件を満たさない場合に、前記一つ以上のパラメータの推定値を変更する手順と、
前記誤差の大きさを示す指標が所定の条件を満たす場合に、前記一つ以上のパラメータの推定値を出力する手順と、を前記プロセッサに実行させることを特徴とする非一時的な計算機読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラによって撮影された画像からカメラの状態を推定する技術に関する。
【背景技術】
【０００２】
本発明の背景技術として、特開２００８−２７５３９１号公報（特許文献１）に開示された技術がある。この公報には、「一つ以上の計測対象物体を撮像する撮像装置と計測対象物体との間の相対的な位置姿勢を、計測対象物体の３次元モデルを利用して計測する位置姿勢計測装置は、撮像装置により撮像画像を取得する。また、撮像装置の位置姿勢に基づいて、３次元モデルにおける幾何特徴の夫々を撮像画像上に投影し、投影幾何特徴を得る。そして、得られた投影幾何特徴から、投影幾何特徴間の撮像画像上の距離に基づいて、位置姿勢の算出に利用すべき投影幾何特徴を選択する。選択された投影幾何特徴と、撮像画像上から検出される選択された投影幾何特徴に対応する画像幾何特徴とを用いて、撮像装置と計測対象物体との間の相対的な位置姿勢を算出する。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２７５３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
カメラ画像から画像中に映る対象の検出及び対象の状態の認識をする処理において、画像撮影時のカメラ状態(カメラの姿勢、画角)などが必要となる場合がある。例えば、カメラに映る人物の速度を計測したい場合には、人物の一定時間における画面内の移動距離を、実空間における移動距離に変換する際に、前述のカメラ状態が必要となる。【０００５】
カメラ状態を推定する技術は、カメラキャリブレーション技術として一般的に広く知られている。従来、カメラキャリブレーションは、チェッカーボードの様な、大きさ及びパターンが既知の特定の検知対象を撮影し、検知対象の映り方からカメラ状態を推定する方法が一般的であった。しかし、この方法は、カメラの状態が変化する状況においては逐一特定の検知対象を撮影し直す必要があり、現実的ではない。【０００６】
上記の特許文献１には、データベースに保存されたデータと撮影対象を比較することで、カメラ状態を逐一推定する方法が記載されている。この方法によれば、ある特定の検知対象の３次元状態を保持したデータベースを用意し、そのデータベースとカメラ映像とを比較して検知対象の現在の状態を得ることで、ある検知対象が映っている場合におけるカメラ状態が逐一推定される。しかし、この方法では、検知対象の３次元情報をＣＡＤから取得し、データベースに保存する必要がある。ＣＡＤデータは対象の設計図データ又は対象を正確に測定した測定データから作成されるため、データベースに検知対象の情報を入力する際に対象の正確な測定が必要であったり、対象の設計図が存在する必要があったりするため、情報入力に手間がかかり、また対象を自由に選択できないといった課題がある。【０００７】
本発明は、上記の様な課題を解決するためになされたものであり、より簡素な情報を保持したデータベースを用いて、カメラ状態を逐一推定することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明の一態様は、カメラと、ネットワークを介して前記カメラに接続されるカメラ状態推定装置と、を有する画像認識システムであって、前記カメラ状態推定装置は、前記ネットワークに接続される第１インターフェースと、前記第１インターフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１記憶装置と、を有し、前記第１記憶装置は、検知対象の画像の特徴量と、前記検知対象の実空間における大きさと、前記カメラの状態を示す一つ以上のパラメータの推定値と、を保持し、前記カメラは、画像を撮影して前記カメラ状態推定装置に送信し、前記第１プロセッサは、前記カメラによって撮影された画像から、前記第１記憶装置に保持された特徴量に基づいて、前記検知対象と類似する対象を抽出し、前記検知対象の実空間における大きさと、前記一つ以上のパラメータの推定値と、前記類似する対象の前記画像内の位置及び大きさと、に基づいて、前記一つ以上のパラメータの推定値の誤差の大きさを示す指標を計算し、前記計算された誤差の大きさを示す指標が所定の条件を満たさない場合に、前記一つ以上のパラメータの推定値を変更することを特徴とする。
【発明の効果】
【０００９】
本発明の一形態によれば、より簡素な情報を保持したデータベースを用いて、カメラ状態を推定することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１のカメラ状態推定装置の概略の説明図である。
【図２】本発明の実施例１における撮影環境の説明図である。
【図３】本発明の実施例１の画像認識システムのハードウェア構成を示すブロック図である。
【図４】本発明の実施例１におけるカメラ状態推定用データベースの一例の説明図である。
【図５】本発明の実施例１の画像マッチング処理部の構成例を示したブロック図である。
【図６】本発明の実施例１のカメラ状態推定部の構成例を示したブロック図である。
【図７】本発明の実施例１の画像マッチング処理のフローチャートである。
【図８】本発明の実施例１のカメラ状態推定処理のフローチャートである。
【図９】本発明の実施例１の状態推定用データベース更新処理のフローチャートである。
【図１０】本発明の実施例１のデータベース更新装置における表示の一例の説明図である。
【図１１】本発明の実施例２の画像認識システムのハードウェア構成を示すブロック図である。
【図１２】本発明の実施例３におけるカメラ状態推定用データベースの一例の説明図である。
【発明を実施するための形態】
【実施例１】
【００１１】
以下、図面を参照しつつ、本発明を実施するための形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。また、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。【００１２】
図１は、本発明の実施例１のカメラ状態推定装置の概略の説明図である。【００１３】
図１では、カメラ状態推定装置１００には、カメラ１０１が接続される。カメラ１０１は画像を撮影し、撮影された画像を画像取得部１０２が取得する。画像１０３は、画像取得部１０２が取得した画像の一例である。画像１０３内には地面１０６上に幾つかの対象（この例では対象１０７、１０８、１０９）が存在する。カメラ状態推定装置１００には記憶装置１０４が付随し、記憶装置１０４内にカメラ状態推定用データベース１０５が保持される。カメラ状態推定装置１００は前述の画像取得部１０２、記憶装置１０４に加え、画像マッチング処理部１１０及びカメラ状態推定部１１１を備える。画像マッチング処理部１１０にはカメラ１０１によって撮影された画像１０３とカメラ状態推定用データベース１０５が入力される。画像マッチング処理部１１０では入力された画像１０３に、データベース内の検知対象画像が含まれているかを調べ、含まれていた場合にはその画像上位置と対象の大きさに関する情報を抽出し出力する。カメラ状態推定部１１１は、画像マッチング処理部１１０の処理結果が入力されると、入力された情報からカメラ状態１１２を推定して出力する。【００１４】
図２は、本発明の実施例１における撮影環境の説明図である。【００１５】
カメラ１０１は、一定の設置高さ２０２の位置に、地面１０６に対して角度２０１の方向を向くように設置される。また、カメラ１０１は、視野角２０３の範囲を撮影している。実施例１は、地面１０６が水平に映る角度でカメラ１０１が設置されている場合（言い換えると、カメラ１０１が撮影した矩形の画像１０３の上下端の辺と、カメラ１０１が撮影した風景の水平線とが平行になるように、カメラ１０１が設置されている場合）を想定して説明する。撮影される対象２０６は地面１０６に接していることを前提とする。また対象の基準点２０４までの高さ２０５の様な、対象の大きさに関する情報が状態推定用データベースに保持される。【００１６】
図２の様な状況のカメラ１０１の一例は、天井又は柱などに設置した可動式の監視カメラなどである。可動式の監視カメラはカメラの方向（方位角）及び地面に対する傾き（俯角又は仰角）を変更することができ、ズーム機能によって画角（視野角２０３）が変化する。実施例１は監視カメラのようなカメラを想定して説明する。【００１７】
なお、本実施例におけるカメラ状態は、カメラの向き（方位角、俯角、仰角）、画角及び設置位置といった、カメラ１０１の状態を示す一つ以上のパラメータを含む。例えばズーム機能を有するカメラ１０１の画角、首振り機能を有するカメラ１０１の向きのように、少なくともいずれかのパラメータが可変であってもよい。また、可変であるか固定であるかを問わず、少なくとも一つのパラメータの値が未知であり、その値がカメラ状態推定装置１００によって推定される。これらのパラメータは、後述する画像認識処理装置６０３が任意の画像認識処理（例えば撮影された対象物の追跡等）を行うために使用される。【００１８】
図２のＸ軸２０７、Ｙ軸２０８及びＺ軸２０９は、本実施例の説明に用いる実空間座標の座標軸にそれぞれ対応し、カメラの真下の地面上の点２１０（すなわちカメラ１０１を通る垂直線と地面との交点）をその座標系の原点とする。また、足元座標２１１は、対象２０６の基準点２０４の真下の地面上の点の実空間座標であり、対象２０６が人間である場合は、通常、その人間の接地点（すなわち足元）の座標である。【００１９】
なお、本実施例では、実空間の座標値と、画像上の座標値とが扱われる。実空間の座標値は、図２に示すように、カメラ１０１によって撮影される実空間のいずれかの点を原点とする３次元座標系の座標値である。一方、画像上の座標値は、撮影された画像上のいずれかの点を原点とする２次元座標系の座標値であり、その単位は例えば画素である。【００２０】
図３は、本発明の実施例１の画像認識システムのハードウェア構成を示すブロック図である。【００２１】
画像認識システムは、データベース更新装置６０１と、カメラ状態推定装置１００と、画像認識処理装置６０３と、カメラ１０１と、を備え、それぞれネットワーク６０４を介して相互に接続されている。【００２２】
データベース更新装置６０１は、プロセッサ６２１、メモリ６２２、ネットワークインターフェース（Ｉ／Ｆ）６２３、入力用端末６０７及び表示用装置６０８を備える。【００２３】
プロセッサ６２１は、メモリ６２２に格納されたプログラムを実行することによって、以下に説明するデータベース更新装置６０１の種々の機能を実現する。【００２４】
メモリ６２２には、プロセッサ６２１によって実行されるプログラムモジュールであるデータベース情報設定部６０９、カメラ状態推定信号出力部６１０、データベース情報取得部６１１及び画像取得部６１７が格納される。以下の説明では、これらの各部を機能ブロックとして扱い、各部が実行する処理を説明するが、実際にはそれらの処理は、プロセッサ６２１が、各プログラムモジュールに記述された命令に従って実行する。このとき、プロセッサ６２１は、必要に応じてネットワークＩ／Ｆ６２３、入力用端末６０７及び表示用装置６０８等を制御することで、各機能ブロックによるデータの通信及び入出力を行う。【００２５】
図３には、汎用のプロセッサ６２１がメモリ６２２に格納されたプログラムを実行することによって各機能ブロックを実現する例を示すが、これらの機能ブロックの任意の一部又は全部がＡＳＩＣ（Application Specific Integrated Circuit）のような専用のハードウェアによって実現されてもよい。【００２６】
ネットワークＩ／Ｆ６２３は、ネットワーク６０４に接続され、ネットワーク６０４を介して他の装置との通信を行うインターフェースである。【００２７】
表示用装置６０８は、例えば液晶表示装置のような文字及び画像等の表示装置である。入力用端末６０７は、例えばキーボード、マウス又はタッチパネルのような、ユーザからのデータの入力が可能な入力装置を含む。例えば液晶タッチパネルのように、表示用装置６０８と入力用端末６０７とが一体化されていてもよい。【００２８】
データベース情報取得部６１１は、カメラ状態推定装置１００内のカメラ状態推定用データベース１０５から情報を取得し、表示用装置６０８に表示できる形式に変換して表示する。画像取得部６１７は、カメラ１０１から画像を取得し、表示用装置６０８に出力する。データベース情報設定部６０９は、入力用端末６０７から入力される操作情報に従ってカメラ状態推定用データベース１０５の更新情報を生成し、カメラ状態推定装置１００に送信する。カメラ状態推定信号出力部６１０は、入力用端末６０７から入力される操作情報に従って、カメラ状態推定装置１００におけるカメラ状態推定処理を開始する信号を生成し、カメラ状態推定装置１００に送信する。【００２９】
カメラ状態推定装置１００は、プロセッサ６２４、メモリ６２５、ネットワークＩ／Ｆ６２６及び記憶装置１０４を備える。プロセッサ６２４は、メモリ６２５に格納されたプログラムを実行することによって、以下に説明するカメラ状態推定装置１００の種々の機能を実現する。メモリ６２２には、プロセッサ６２１によって実行されるプログラムモジュールである画像取得部１０２、画像マッチング処理部１１０、カメラ状態推定部１１１及びデータベース更新部６１２が格納される。プロセッサ６２４とメモリ６２５に格納されたプログラムモジュールとそれらによって実現される機能ブロックとの関係、及び、機能ブロックの実現方法のバリエーションについては、データベース更新装置６０１について説明したものと同様であるため、詳細な説明を省略する。【００３０】
ネットワークＩ／Ｆ６２６は、ネットワーク６０４に接続され、ネットワーク６０４を介して他の装置との通信を行うインターフェースである。【００３１】
記憶装置１０４は、例えばハードディスクドライブ又はフラッシュメモリのようないわゆる補助記憶装置であり、カメラ状態推定用データベース１０５を格納する。カメラ状態推定用データベース１０５に含まれる情報の少なくとも一部が必要に応じてメモリ６２５にコピーされてもよい。【００３２】
記憶装置１０４又はメモリ６２５には、さらに、カメラ状態を示す一つ以上のパラメータの値が格納される。これらの値の少なくとも一つは未知の値の推定値であり、後述する処理によって更新され、所定の条件が満たされる場合に画像認識処理装置６０３に送信される。【００３３】
データベース更新部６１２は、データベース更新装置６０１から出力されたデータベース更新情報を受信し、カメラ状態推定用データベース１０５の更新処理を行う。画像取得部１０２は、データベース更新装置６０１から出力されたカメラ状態推定処理開始信号を受信し、カメラ１０１から画像を取得する。画像マッチング処理部１１０及びカメラ状態推定部１１１は、カメラ１０１から受信した画像及びカメラ状態推定用データベース１０５の情報を基にカメラ状態を推定し、画像認識処理装置６０３に送信する。【００３４】
画像認識処理装置６０３は、プロセッサ６２７、メモリ６２８、ネットワークＩ／Ｆ６２９及び表示用装置６１４を備える。プロセッサ６２７は、メモリ６２８に格納されたプログラムを実行することによって、以下に説明する画像認識処理装置６０３の種々の機能を実現する。メモリ６２２には、プロセッサ６２１によって実行されるプログラムモジュールである画像取得部６１６、カメラ状態設定部６１３及び画像認識処理部６１５を備える。プロセッサ６２７とメモリ６２８に格納されたプログラムモジュールとそれらによって実現される機能ブロックとの関係、及び、機能ブロックの実現方法のバリエーションについては、データベース更新装置６０１について説明したものと同様であるため、詳細な説明を省略する。【００３５】
ネットワークＩ／Ｆ６２９は、ネットワーク６０４に接続され、ネットワーク６０４を介して他の装置との通信を行うインターフェースである。表示用装置６１４は、例えば液晶表示装置のような文字及び画像等の表示装置である。【００３６】
画像認識処理部６１５は、画像取得部６１６が取得したカメラからの映像に対し、所定の画像認識処理を適用する。画像認識処理部６１５が行う画像認識処理は、どのようなものであってもよいが、具体例としては、速度が一定以上の車を検出する処理などが挙げられる。画像認識処理部６１５は、処理結果を表示用装置６１４に表示する。カメラ状態設定部６１３は、カメラ状態推定装置１００から出力されるカメラ状態を受信し、画像認識処理部６１５で用いるカメラ状態のパラメータ値を更新する。【００３７】
以上のように構成することで、データベース更新装置６０１に表示される映像を見ながら必要な対象情報をカメラ状態推定用データベース１０５に追加することができる。これによって、実際にカメラが映している環境に適したデータベースを構築することができる。そして、追加された情報を基にカメラ状態を推定することで、より正確なカメラ状態推定が可能となる。この様にして推定されたカメラ状態を用いることで、カメラ状態が変わった際にも、画像認識処理部６１５では推定されたカメラ状態を使用して画像認識処理を行うことが可能となる。【００３８】
図３の例では、データベース更新装置６０１とカメラ状態推定装置１００と画像認識処理装置６０３を別々の装置としたが、データベース更新装置６０１とカメラ状態推定装置１００が同一の装置であっても良く、また画像認識処理装置６０３内にデータベース更新装置６０１と同様の機能を持たせることでデータベース更新装置６０１を省略しても良い。また各装置は一つのネットワーク６０４を介して接続されてもよいが、複数のネットワーク又は一般的なケーブルを介して接続されても良い。【００３９】
図４は、本発明の実施例１におけるカメラ状態推定用データベース１０５の一例の説明図である。【００４０】
カメラ状態推定用データベース１０５では情報がＩＤ（識別子）３０２ごとに管理され、各ＩＤごとに、検知対象の画像である対象画像３０３と、その画像の特徴量３０４と、検知対象の大きさを計測した基準位置の座標を示す基準位置座標３０５と、検知対象の大きさを示す高さ３０６とが対応付けられて保存される。【００４１】
対象画像３０３にはカメラ状態推定に用いる特定の検知対象の画像が格納される。本実施例ではカメラ状態推定に用いる特定の検知対象を、検知対象又は対象と記載する。例えば、カメラ１０１が撮影した画像から、人もしくは自動車等の移動物体の画像、又は、郵便ポスト（郵便差出箱）等の移動しない物体の画像を切り出し、それらを検知対象の対象画像３０３として格納することができる。【００４２】
特徴量３０４には画像の色及び形状から導出される数値列である特徴量が格納される。この特徴量は、検知対象が撮影された画像に存在するかどうかを判定する画像マッチング処理において、撮影された画像中の特徴量と、データベース内の特徴量３０４とを比較するために用いられる。【００４３】
基準位置座標３０５には検知対象の大きさを計測した位置の情報が格納される。図４は、検知対象の大きさ（図４の例では高さ）を計測した点の画素座標値（すなわち画面上の座標値）を格納した例である。高さ３０６には、検知対象の実空間における大きさに関する情報が格納される。本実施例では、検知対象の大きさに関する情報として検知対象の実空間における高さの情報を用いる例を示すが、例えば検知対象の幅など、高さ以外の大きさに関する情報を用いてもよい。【００４４】
詳細には、図９及び図１０等を参照して後述するように、カメラ１０１が撮影した画像から、検知対象を含む領域が切り出され、それが対象画像３０３に格納されている場合、その切り出された画像に含まれる検知対象の大きさを計測した点の当該画像上の座標値が基準位置座標３０５に格納される。例えば、検知対象が人であり、検知対象の大きさがその人の下端（足元）から頭頂部までの高さ、すなわち身長である場合、切り出された画像に含まれる人の頭頂部の当該切り出された画像上の座標値（例えば、矩形に切り出された画像の左上の角を原点とする２次元座標系の座標値）が基準位置座標３０５に格納される。【００４５】
例えば、本実施例の画像認識システムの初期状態においては、カメラ状態推定用データベース１０５にデータが格納されていなくてもよい。その場合、画像認識システム内のデータベース更新装置６０１及びカメラ状態推定装置１００は、カメラ１０１によって撮影された画像から検知対象を抽出してそれに関するデータをカメラ状態推定用データベース１０５に格納する。このデータベース更新処理（図９、図１０等参照）によって、カメラ状態推定用データベース１０５に十分な量の検知対象に関するデータが格納されると、カメラ状態推定装置１００は、格納されたデータを利用して、後述する画像マッチング処理及びカメラ状態推定処理を行うことが可能になる。【００４６】
あるいは、画像認識システムの初期状態において、既にカメラ状態推定用データベース１０５に代表的な検知対象に関するデータが格納されていてもよい。その場合、カメラ状態推定装置１００は、それらのデータを継続的に利用して画像マッチング処理及びカメラ状態推定処理を行ってもよい。【００４７】
いずれの場合であっても、必要に応じて（例えばカメラ１０１の設置環境の変化によって新しいデータが必要となった場合等に）上記のデータベース更新処理を行うことによって新たなデータを追加し、それを以後の処理に利用することができる。【００４８】
図５は、本発明の実施例１の画像マッチング処理部１１０の構成例を示したブロック図である。【００４９】
画像マッチング処理部１１０は、特徴量一致度算出処理部４０３と閾値判定処理部４０４と一致対象矩形抽出部４０５とを備える。これらは、例えば、画像マッチング処理部１１０に含まれるプログラムモジュールである。【００５０】
カメラからの画像４０１は、カメラ１０１によって撮影され、送信されたものであり、画像取得部１０２によって取得される。画像取得実行のタイミングは外部から入力される画像取得実行信号４０６によって決定される。画像取得実行信号４０６は、例えばネットワーク６０４に接続された操作用端末（図示省略）などから手動で入力されても良いし、一定タイミングごとに自動的に発行されても良い。また、カメラ１０１の位置又は向きを操作できる場合、操作信号を画像取得実行信号４０６として入力することで、操作が行われるたびにカメラ状態を推定することもできる。また、画像取得部１０２は、画像取得実行信号４０６を受け取った際に、信号受信から一定期間複数フレームの画像を取得し続けてそれらを処理に用いても良い。【００５１】
画像取得部１０２が取得した画像は特徴量一致度算出処理部４０３に入力される。さらに、特徴量一致度算出処理部４０３には、記憶装置１０４の記憶媒体４０２（例えばハードディスク）に記憶されているカメラ状態推定用データベース１０５からカメラ状態推定用データが入力される。特徴量一致度算出処理部４０３では、カメラ状態推定用データベース１０５に記録されている各検知対象データの画像特徴量を用いて、画像取得部１０２が取得した画像内に、カメラ状態推定用データベース１０５に記録されている各検知対象データと類似する部分があるか調べる。類似部分の有無は、例えば一般的なテンプレートマッチング処理と同様の処理によって判定することができる。【００５２】
テンプレートマッチング処理は、入力画像の一部領域を選択し、選択された領域から特徴量を抽出し、その特徴量とデータベースに格納された特徴量との比較を行う処理を、画面内の選択領域をずらしながら繰り返し実行することによって、画面内をスキャンする処理であり、画面内の部分領域毎の一致度が算出される。特徴量一致度算出処理部４０３は、前述のテンプレートマッチング処理をデータベース内の各検知対象に対して行い、各検知対象の特徴量に対する画像の部分領域毎の一致度を算出する。【００５３】
閾値判定処理部４０４は、特徴量一致度算出処理部４０３によって算出された一致度がある一定値（閾値）より高い検知対象を選択する処理を行う。この際、例えば撮影された画像の同一領域に対してカメラ状態推定用データベース１０５に格納されている複数の検知対象の一致度が高かった場合には、その中で最も一致度の高い検知対象のデータを選択しても良い。以下の説明において、一致度が高い検知対象（複数の一致度が高い検知対象の一つが選択された場合にはその選択された検知対象）を「一致した検知対象」とも記載する。一方、その検知対象との一致度が高い画像上の領域を「一致対象」とも記載する。【００５４】
なお、撮影された画像の領域の特徴量とデータベースに格納された検知対象の特徴量とが完全に一致することは実際にはほとんどないため、上記の一致度は類似度と言い換えることができ、「一致した検知対象」は、例えば「類似する検知対象」又は「類似度が（所定の閾値より）高い検知対象」のように言い換えることができる。【００５５】
一致対象矩形抽出部４０５には、閾値判定処理部４０４で選択された検知対象（すなわち一致した検知対象）の情報と、その検知対象が映っている画面上の領域の位置情報とが入力される。一致対象矩形抽出部４０５は、一致した検知対象が、入力された画像内のどの範囲に一致したかを判定し、その範囲を特定する情報を一致対象矩形の情報として出力する。例えば、一致対象矩形抽出部４０５は、一致度が高いと判定された矩形領域のサイズを、一致した検知対象のデータベースに格納された画像のサイズと合わせるようにスケーリングして得られる矩形領域の位置を特定する情報と、前述のスケーリング時の拡大率とを出力する。ここで、矩形領域の位置を特定する情報は、例えば、当該矩形領域を含む画像上の座標系における、当該矩形領域の左上の角の座標値（以下、左上座標とも記載する）を含んでもよい。【００５６】
以上の様にして画像マッチング処理部１１０は、記憶媒体４０２に保存されているデータベースの情報を基に、撮影された画像に検知対象が映っているか（すなわちデータベースに格納されている検知対象と特徴量が類似する対象を含む領域があるか）を調べ、映っている場合にはその領域を抽出し、抽出された領域情報とデータベースに保存されている検知対象情報とを対応付けて出力する。【００５７】
なお、撮影された画像内のある領域の特徴量とカメラ状態推定用データベース１０５に格納された検知対象の特徴量との一致度が高いことは、当該検知対象が当該領域に映っている（少なくともその可能性が高い）ことを意味する。ただし、このことは、当該検知対象と当該領域に映っている検知対象とが同一の物体である（例えば同一人物である）ことを必ずしも意味せず、同種の物体である（例えば別人ではあるがいずれも人間である）ことを意味する場合がある。特徴量の算出方法及び一致度の判定の閾値を調整することで、同一の物体以外を検知しにくくすることも、同種の物体を検知しやすくすることもできる。【００５８】
同一ではないが同種の物体が検知された場合、その実際の大きさは、カメラ状態推定用データベース１０５に格納されている大きさとは異なる場合があるが、特徴量の一致度が高い同種の物体の大きさの個体差（人間であれば身長差）はそれほど大きくないと考えられることから、カメラ状態推定用データベース１０５に格納されている大きさ情報（例えば高さ３０６）を後述するカメラ状態推定処理において使用しても、十分な精度でカメラ状態を推定できると考えられる。【００５９】
同種の物体を検知したい場合であっても、その種類の中にさらに外見上の特徴及び大きさが異なる複数のカテゴリ（例えば大人と子供、小型乗用車と大型トラックなど）が含まれる場合には、それぞれのカテゴリの物体の特徴量及び大きさをカメラ状態推定用データベース１０５に格納してもよい。一方、後述する実施例３に例示する建物又は看板のように、一つしかない物体を検知したい場合には、同一の物体を検知するのに適した特徴量及び閾値が使用される。【００６０】
図６は、本発明の実施例１のカメラ状態推定部１１１の構成例を示したブロック図である。【００６１】
カメラ状態推定部１１１は、対象基準点画素算出部５０５と対象下端画素算出部５０６と対象足元座標算出部５０８と対象下端高さ算出部５０９と対象下端誤差算出部５１０とカメラ状態更新処理部５１１とカメラ状態出力判定部５１２とを有する。これらは、例えば、カメラ状態推定部１１１に含まれるプログラムモジュールである。【００６２】
カメラ状態推定部１１１には画像マッチング処理部１１０の処理結果５０１が入力される。画像マッチング処理部の処理結果５０１は、抽出された一致対象と同数の、対象高さ５０２、基準位置座標５０３及び一致対象矩形情報５０４の組を含む。各検知対象に関する処理結果５０１のうち、対象高さ５０２は、一致した検知対象の対象画像３０３に対応する高さ３０６であり、基準位置座標５０３は、その対象画像３０３に対応する基準位置座標３０５であり、一致対象矩形情報５０４は、一致対象矩形抽出部４０５から出力された一致対象の矩形領域の位置を特定する情報及びスケーリング時の拡大率を含む。【００６３】
なお、本実施例では、２つ以上の一致対象が抽出された（すなわち対象高さ５０２〜一致対象矩形情報５０４の組が２つ以上入力された）場合には、カメラ状態推定部１１１が図６に示すカメラ状態推定処理を実施するが、一致対象が２つに満たない場合には正しくカメラ状態が推定できないため処理を実施せず、２つ以上の一致対象に関する情報が入力されるまで処理を待機する。この際、複数フレームにわたりカメラ状態が変化しない場合には、それらの複数フレーム（すなわちカメラ状態が変化していない期間中の異なる時刻に撮影された複数の画像）に対する画像マッチング処理結果に含まれる一致対象情報を全て用いてカメラ状態推定処理を行っても良い。【００６４】
各入力情報のうち基準位置座標５０３及び一致対象矩形情報５０４は対象基準点画素算出部５０５に入力される。対象基準点画素算出部５０５は、入力された基準位置座標５０３及び一致対象矩形情報５０４から、画面内における検知対象の基準点画素の座標を算出する。この処理では、対象基準点画素算出部５０５は、一致対象矩形情報５０４から矩形の左上座標及び拡大率を取り出し、基準位置座標の値に拡大率をかけたものを、矩形の左上座標に加算することで、対象の基準点画素の座標を算出することができる。算出された基準点画素（すなわち対象基準点画素）の座標は対象足元座標算出部５０８に入力される。【００６５】
対象足元座標算出部５０８には、カメラ状態５０７と、対象基準点画素算出部５０５で算出された座標と、対象高さ５０２とが入力される。ここで、カメラ状態５０７はカメラの高さ、地面に対する角度及び画角を意味する。カメラ状態５０７は、例えば、予め設定しておいたパラメータ値が初期状態として設定され、その後、後述する処理によって更新される。通常、カメラ状態５０７は、初期状態においては画像取得部１０２から入力された画像が撮影された時点のカメラ１０１の実際の状態と一致しておらず、その後、後述する処理によって更新されることで実際の状態に近づく。【００６６】
対象足元座標算出部５０８は、対象基準点画素の座標と対象高さ５０２とを用いて、検知対象の足元座標２１１を算出する。足元座標は、一般的に知られている透視投影モデルに基づいたカメラ座標（すなわちカメラ１０１が撮影した画像上の座標）と実空間座標とを変換する変換行列を用いて計算される。【００６７】
ここで、カメラの真下にある地面の位置を原点２１０とし、地面平面に実空間座標のＸ軸２０７とＹ軸２０８とを設定し、地面と直行する方向に実空間座標のＺ軸２０９を設定した場合、カメラ１０１の画素数、画角、地面とカメラの距離及び地面に対するカメラの角度がカメラ状態５０７等に基づいて特定されれば、実空間座標上の点の座標を画像上の画素の座標に容易に変換できることは自明である。この関係を利用し、実空間座標上のＺ座標の値を対象高さ５０２に設定することで、基準位置座標５０３を実空間座標上に変換することができる。カメラ状態３０７と、入力された画像に含まれる対象の当該画像中に占める位置と、に基づいて、実空間におけるカメラ１０１の設置位置から対象までの方向を計算でき、さらに、カメラ状態３０７と、入力された画像に含まれる対象の当該画像中の基準位置座標と、対象の実空間における大きさを示す対象高さ５０２と、に基づいて、カメラ１０１から対象までの実空間における距離を計算できるためである。【００６８】
対象足元座標算出部５０８は、この様にして変換された基準位置座標５０３の実空間座標点の真下にある地面上の点（例えば対象として人が抽出された場合、その対象である人の下端、すなわち足元）の座標値を対象の足元座標２１１として出力する。ここでは計算方法の一例を示したが、その他の計算方法を使って対象の足元座標２１１を計算しても良い。計算された対象の足元座標２１１は、対象下端高さ算出部５０９に入力される。【００６９】
対象下端画素算出部５０６には、一致対象矩形情報５０４が入力される。対象下端画素算出部５０６は、入力された一致対象矩形情報５０４から一致対象の下端画素を算出する。ここでは、一致対象矩形情報５０４の矩形の左上座標のうち、Ｘ座標に、矩形の幅の半分の値を加算し、Ｙ座標に、矩形の高さの値を加算した座標値を、対象下端画素として算出する。ここで、矩形の幅及び高さは、一致対象矩形情報５０４に含まれていてもよいし、入力された画像内の検知対象に一致する対象画像３０３の大きさと、一致対象矩形情報５０４に含まれる拡大率とに基づいて算出されてもよい。算出された対象下端画素は対象下端高さ算出部５０９に入力される。【００７０】
対象下端高さ算出部５０９には、対象下端画素、対象足元座標及びカメラ状態５０７が入力される。ここでは対象足元座標算出部５０８と同様に、カメラの透視投影モデルに基づいたカメラ座標と実空間座標とを変換する変換行列を用いた計算が行われる。まず、対象下端高さ算出部５０９は、対象下端画素を実空間座標上の座標値（これを対象下端座標とも記載する）に変換した場合に、変換された対象下端座標のＸ座標及びＹ座標（すなわち水平面内の座標）が、対象足元座標のＸ座標及びＹ座標に一致すると仮定する。この仮定を用いることで、対象下端座標の実空間座標のＺ座標を透視投影モデルを用いて計算することができる。対象下端高さ算出部５０９は、計算された対象下端座標の実空間座標のＺ座標の値と、対象足元座標の実空間座標のＺ座標の値との相違を、対象下端高さとして出力する。出力された対象下端高さは対象下端誤差算出部５１０に入力される。【００７１】
対象下端誤差算出部５１０は、全ての検知対象に対して計算された対象下端高さから、対象下端高さの誤差を算出する。カメラ状態５０７が正しい値である場合、理想的には、対象足元座標算出部５０８の処理と対象下端高さ算出部５０９の処理を通じて得られる対象下端高さは０になる。つまり、全ての検知対象に対して、対象下端高さが０になる場合に、カメラ状態５０７は正しい値となっているといえる。【００７２】
これに対して、カメラ状態５０７が正しい値でない場合には、全ての検知対象に対して対象下端高さが０になることはない。例えば、計算に用いたカメラ状態５０７に含まれる画角が、カメラ１０１の実際の画角より狭い場合、対象足元座標算出部５０８は、撮影された画像上の検知対象の大きさに基づいて、カメラ１０１からその検知対象までの距離を実際の距離より小さく誤認する。その結果、対象足元座標のＸ座標及びＹ座標は、実際よりカメラ１０１に近い（すなわち原点２１０に近い）値となるため、対象下端高さ算出部５０９によって算出される対象下端画素の実空間座標上の位置もカメラ１０１に近くなる。すなわち、図２に示すようにカメラ１０１が検知対象を俯瞰するように撮影している場合には、対象下端高さ算出部５０９によって算出される対象下端高さは０より大きく（すなわち地面１０６より高く）なる。【００７３】
例えばカメラ１０１の俯角と画角のように、カメラ状態５０７に含まれる複数のパラメータが未知である場合には、それらのいずれも正しくないにもかかわらず、いずれかの検知対象については対象下端高さが０になることがあり得る。しかし、その場合には別の（カメラ１０１からの距離が異なる）検知対象については対象下端高さが０にならないため、全ての検知対象に対して対象下端高さが０になることはない。これによって、カメラ状態が誤差を含んでいることを検出できる。【００７４】
対象下端誤差算出部５１０は、全ての検知対象に対して計算された対象下端高さを合計し、その合計値を対象下端高さの誤差値としてカメラ状態出力判定部５１２に出力する。具体的には、例えば、対象下端座標の実空間座標のＺ座標の値と、対象足元座標の実空間座標のＺ座標の値との差の絶対値の合計値又は二乗和が計算されてもよい。この合計値は、カメラ状態５０７の誤差の大きさを示す指標に相当する。【００７５】
カメラ状態出力判定部５１２は、対象下端誤差算出部５１０から入力された誤差値に基づいて、カメラ状態を出力するかどうか判定する。カメラ状態５０７を出力する条件としては、例えば、誤差値が一定値以下になったこと、又は、前回判定時の誤差値からの変化が小さいこと、などがある。このような条件が満たされる場合には、その時点で設定されているカメラ状態５０７が、カメラ１０１の実際の状態に十分に近いか、又は、実際の状態にそれ以上近づけることが困難であると考えられるため、カメラ状態５０７を出力すると判定される。カメラ状態出力判定部５１２は、カメラ状態を出力しないと判定した場合、入力された誤差値をカメラ状態更新処理部５１１に出力する。【００７６】
カメラ状態更新処理部５１１は、現在のカメラ状態５０７を更新する。更新方法としては、例えば、今回入力された誤差値を観測し、誤差値が前回入力された誤差値より小さい場合には、前回のカメラ状態更新時のパラメータ変化分と同じ量の変化分を現在のパラメータに加算したものを新しいカメラ状態５０７とし、逆に、今回入力された誤差値が前回入力された誤差値より大きい場合には、前回のカメラ状態更新時のパラメータ変化分の正負を逆転し値を半減した値を現在のパラメータに加算したものを新しいカメラ状態５０７として出力する、などの方法がある。【００７７】
以上の様に、本実施例では、対象下端高さ算出部５０９からカメラ状態更新処理部５１１までの一連の処理部での処理を繰り返し実行することで、最終的に誤差値が小さくなるカメラ状態５０７を算出し、出力する。この一連の処理によって、推定されたカメラ状態５０７から得られる地面座標上に、全ての検知対象が接地している状態となり、正しいカメラ状態５０７を推定することが可能となる。本実施例では、繰り返し処理の際に、誤差量に基づいてカメラ状態を更新する例を示したが、ランダムに用意したカメラ状態のパターン全てに対して対象下端誤差を算出し、最も誤差が小さいカメラ状態を選択するなどの方法を用いることもできる。【００７８】
図７は、本発明の実施例１の画像マッチング処理のフローチャートである。【００７９】
画像マッチング処理は、画像マッチング処理部１１０が、カメラ１０１で撮影された画像とカメラ状態推定用データベース１０５内の検知対象情報とをマッチングし、画像内に含まれる検知対象を検出して対象の情報を取得する処理である。図７の各ステップにおいて画像マッチング処理部１１０内の各部が実行する処理の詳細は、図５を参照して説明した通りである。【００８０】
まず、特徴量一致度算出処理部４０３が、カメラ状態推定用データベース１０５から検知対象情報を取得する（Ｓ８０１）。【００８１】
次に、特徴量一致度算出処理部４０３は、取得した全ての検知対象情報に対してＳ８０３、Ｓ８０４、Ｓ８０５の処理を実行する（Ｓ８０２）。画像部分領域指定処理ステップ（Ｓ８０３）において、特徴量一致度算出処理部４０３は、カメラ１０１で撮影された画像から特徴量の一致度を算出するための部分領域を指定する。次に、特徴量一致度算出処理部４０３は、指定した全ての部分領域に対して特徴量一致度算出処理（Ｓ８０５）を実行する（Ｓ８０４）。特徴量一致度算出処理部４０３は、各部分領域の画像とカメラ状態推定用データベース１０５の検知対象情報とを比較し、一致度を算出する（Ｓ８０５）。【００８２】
閾値判定処理部４０４は、算出された全ての一致度に対して閾値判定処理を実行する（Ｓ８０６）。次に、閾値判定処理部４０４は、一致した検知対象が存在するかを判定し（Ｓ８０７）、一致した検知対象が存在する場合（Ｓ８０７：Ｙｅｓ）には一致対象矩形抽出部４０５がＳ８０８、Ｓ８０９、Ｓ８１０の処理を実施し、一致した検知対象が存在しない場合（Ｓ８０７：Ｎｏ）には処理を終了する。【００８３】
Ｓ８０８では、一致対象矩形抽出部４０５が、全ての一致した検知対象に対して、一致対象の矩形を抽出する処理（Ｓ８０９）を実行する。一致対象矩形抽出部４０５は、全ての一致対象の矩形を抽出したら、一致対象情報を出力し（Ｓ８１０）、画像マッチング処理を完了する。【００８４】
図８は、本発明の実施例１のカメラ状態推定処理のフローチャートである。【００８５】
図８の各ステップにおいてカメラ状態推定部１１１内の各部が実行する処理の詳細は、図６を参照して説明した通りである。【００８６】
まず、カメラ状態推定部１１１は、２つ以上の一致対象が入力されたかどうかを判定し（Ｓ９０１）、２つ以上の一致対象が入力されていない場合（Ｓ９０１：Ｎｏ）には次の入力まで待機し（Ｓ９０２）、２つ以上の一致対象が入力された場合（Ｓ９０１：Ｙｅｓ）にはＳ９０３以降の処理を実行する。ここで、２つ以上の一致対象とは、それぞれがカメラ状態推定用データベース１０５に格納された別の検知対象と類似する一致対象であってもよいし、同一の検知対象と類似する２つ以上の一致対象であってもよい。【００８７】
次に、カメラ状態推定部１１１は、カメラ状態の初期値を設定する（Ｓ９０３）。【００８８】
次に、カメラ状態推定部１１１は、入力される全ての一致対象情報に対してＳ９０５からＳ９０８の処理を実行する（Ｓ９０４）。対象基準点画素算出部５０５は、入力された検知対象情報を用いて検知対象の基準点画素算出処理を実行する（Ｓ９０５）。対象下端画素算出部５０６は、入力された検知対象情報を用いて検知対象の下端画素の算出処理を実行する（Ｓ９０６）。対象足元座標算出部５０８は、設定したカメラ状態と入力された対象基準点画素と対象高さとを用いて、検知対象の足元座標を算出する（Ｓ９０７）。対象下端高さ算出部５０９は、入力された検知対象の足元座標と対象下端画素とを用いて対象の下端高さを算出する（Ｓ９０８）。【００８９】
全ての一致対象情報に対してＳ９０５からＳ９０８の処理が完了したら、次に、対象下端誤差算出部５１０が、全ての一致対象情報から得られた対象下端高さを用いて対象下端誤差を算出する（Ｓ９０９）。次に、カメラ状態出力判定部５１２が、計算された対象下端誤差を基に、現在のカメラ状態を出力するかどうかを判定する（Ｓ９１０）。カメラ状態を出力しないと判定された場合（Ｓ９１０：Ｎｏ）には、カメラ状態更新処理部５１１が、カメラ状態を更新（Ｓ９１１）したのち、カメラ状態推定部１１１がＳ９０４からＳ９０９の処理を繰り返す。Ｓ９１０においてカメラ状態を出力すると判定された場合（Ｓ９１０：Ｙｅｓ）には、カメラ状態推定部１１１がカメラ状態を出力（Ｓ９１２）してカメラ状態推定処理を完了する。【００９０】
図８に示すように、カメラ状態推定部１１１は、複数の一致対象が入力された場合にＳ９０４以降の処理を実行する。これは、例えばカメラ１０１の俯角と画角のように、カメラ状態５０７に含まれる二つ以上の独立したパラメータが未知である場合には、二つ以上の一致対象について対象下端高さが十分に小さくなるパラメータの組合せを探す必要があるためである。このため、未知のパラメータが一つのみの場合（例えば、カメラ１０１の設置位置及び方向が固定されてその角度が既に得られており、ズーム機能によって画角のみが可変である場合など）には、一つの一致対象についてＳ９０５〜Ｓ９１１を繰り返し実行することで、そのパラメータの値を特定することができる。この場合は、一つの一致対象について計算された対象下端高さが、カメラ状態の誤差の大きさを示す指標として用いられる。【００９１】
図９は、本発明の実施例１の状態推定用データベース更新処理のフローチャートである。【００９２】
まず、データベース情報設定部６０９は、カメラ状態推定用データベース１０５に追加する検知対象の画像を選択する処理を実行する（Ｓ１００１）。次に、データベース情報設定部６０９は、カメラ状態推定用データベース１０５に追加する検知対象の大きさ（例えば高さ）の情報を入力する処理を実行する（Ｓ１００２）。次に、データベース情報設定部６０９は、検知対象の大きさ（例えば高さ）を測定した基準点の情報を指定する処理を実行する（Ｓ１００３）。Ｓ１００１からＳ１００３の処理の具体例については図１０を参照して後述する。【００９３】
次に、データベース情報設定部６０９は、Ｓ１００１からＳ１００３で入力された情報をカメラ状態推定用データベース１０５に追加する処理を実行する（Ｓ１００４）。具体的には、例えば、データベース情報設定部６０９が、Ｓ１００１からＳ１００３で入力された情報を、ネットワークＩ／Ｆ６２３及びネットワーク６０４を介してカメラ状態推定装置１００に送信し、カメラ状態推定装置１００のデータベース更新部６１２がその情報を記憶装置１０４のカメラ状態推定用データベース１０５に追加する。【００９４】
次に、データベース更新部６１２は、カメラ状態推定用データベース１０５に十分な量のデータを追加したかどうかを判定する（Ｓ１００５）。追加データの量に不足がある場合（Ｓ１００５：Ｎｏ）にはデータベース更新部６１２は再度Ｓ１００１からＳ１００４の処理を繰り返す。追加データの量が十分である場合（Ｓ１００５：Ｙｅｓ）には状態推定用データベース更新処理を完了する。【００９５】
追加データの量が十分か否かの判定は、カメラ１０１の設置環境等に応じた基準に基づいて行うことができる。例えば、データベース更新部６１２は、追加された検知対象の数又は検知対象の種類（例えば人、自動車等）の数が所定の閾値を超えた場合に、十分な量のデータが追加されたと判定してもよい。【００９６】
具体的には、例えば、人通りは多いが自動車が走行しない道路等にカメラ１０１が設置されている場合、所定の数の人物に関するデータが追加されたときに、追加データの量が十分であると判定されてもよい。常に多くの人が撮影される環境では、一人の人物のデータがデータベースに格納されていれば、カメラ状態の推定が可能となる場合もある。人と車両の両方が撮影され得る環境では、所定の数の人物と車両のデータが追加されたときに、追加データの量が十分であると判定されてもよい。【００９７】
あるいは、例えばカメラ１０１が高所に設置され、広い範囲を監視する場合、看板又は建物のように固定された検知対象が主に追加されることが想定される。このような場合には、データを追加したことによって、カメラ１０１の画角及び方向が可動範囲内のいかなる値であったとしても必ず所定の数の検知対象が画像内に含まれるようになったときに、十分な量のデータが追加されたと判定してもよい。【００９８】
あるいは、十分な量のデータが追加されたか否かをユーザが判定し、その結果をデータベース更新装置６０１に入力してもよい。その場合は、入力された判定結果がデータベース更新装置６０１からカメラ状態推定装置１００に送信され、それに基づいてデータベース更新部６１２がＳ１００５の判定を行ってもよい。【００９９】
図１０は、本発明の実施例１のデータベース更新装置６０１における表示の一例の説明図である。【０１００】
図１０の表示用装置７０１は図３の表示用装置６０８に、図１０の文字入力用端末７０２（例えばキーボード）及びカーソル操作用端末７０３（例えばマウス）は図３の入力用端末６０７に相当する。表示用装置７０１には文字入力用端末７０２及びカーソル操作用端末７０３が接続される。表示用装置７０１の画面上にはカメラ画像７０４とカメラ状態推定用データベースのデータ情報表示フィールド７０５と高さ入力用フィールド７０６とデータベース追加処理実行用ボタン７０７とカメラ状態推定開始用ボタン７０８とカーソル７０９とカーソル操作結果として得られた領域７１０とが表示される。カメラ画像７０４は、カメラ１０１が撮影した画像であり、画像取得部６１７によって取得される。【０１０１】
高さ入力用フィールド７０６には文字入力用端末７０２から入力される高さ情報が表示される。カーソル７０９はカーソル操作用端末７０３によって操作される。ユーザは、追加対象画像選択処理Ｓ１００１において、カーソル操作によって、これからデータを追加しようとする検知対象（図１０の例では郵便差出箱）を含む画像上の一部の領域７１０を選択する事ができる。さらに、ユーザは、追加対象高さ入力処理Ｓ１００２において、選択した領域の検知対象の高さ情報を高さ入力用フィールド７０６に入力する。さらに、ユーザは、対象基準点情報指定処理Ｓ１００３において、カーソル操作によって、選択した領域の検知対象の基準点７１１を指定する。例えば、検知対象が郵便差出箱である場合はその上面の画素、検知対象が人である場合には頭頂部の画素等が基準点７１１として指定される。【０１０２】
データベース追加処理Ｓ１００４において、ユーザがカーソル操作用端末７０３を用いてデータベース追加処理実行用ボタン７０７を操作すると、データベース情報設定部６０９は、カーソル７０９を用いて選択された領域７１０の画像データと、高さ入力用フィールド７０６に入力された高さ情報と、指定された基準点７１１の画像上の座標値と、をカメラ状態推定装置１００に送信する。【０１０３】
これらの情報を受信したカメラ状態推定装置１００のデータベース更新部６１２は、受信した情報に基づいて、カメラ状態推定用データベース１０５の新しいレコードの対象画像３０３に受信した領域７１０の画像データを、特徴量３０４にその画像データから計算された特徴量を、基準位置座標３０５に受信した基準点７１１の座標を、高さ３０６に高さ情報を、それぞれ追加することによって、カメラ状態推定用データベース１０５を更新する。【０１０４】
カメラ状態推定用データベース１０５が更新された後、データベース情報取得部６１１は、更新された結果をデータ情報表示フィールド７０５に表示する。ユーザがカメラ状態推定開始用ボタン７０８を操作すると、カメラ状態推定信号出力部６１０がカメラ状態推定処理を開始する信号を生成し、カメラ状態推定装置１００に送信する。その信号を受信したカメラ状態推定装置１００によってカメラ状態推定処理が実行される。【０１０５】
図１０の例では入力用端末６０７としてマウス及びキーボードなどを想定しているが、タッチパネルなどを用いても良い。また図１０の表示用装置７０１はカメラ画像を１枚表示しているが、複数のカメラの画像を同時に表示しても良い。また、表示用装置７０１は、カメラ状態推定用データベース１０５から削除するレコードを指定するためのフィールドなどを表示しても良い。【０１０６】
以上の実施例１によれば、地面に接地している検知対象の大きさにかかわる情報と画像とを対応付けたデータベースを用意し、カメラ画像中に存在する検知対象を検出することで、検出された検知対象の大きさ情報からカメラの状態を推定することができる。またデータベースを検知対象の画像及び大きさ情報といった簡易な情報で構成することで、データベースの更新作業が容易にできる。これによって、データベースに登録された検知対象が画像に映っていれば、逐一カメラ状態を推定することが可能となる。またデータベースは必要に応じて適宜更新ができるため、カメラが映している環境に合わせてデータベースを更新することで、より精度良くカメラ状態を推定することが可能となる。
【実施例２】
【０１０７】
次に、本発明の実施例２を、図１１を用いて説明する。以下に説明する相違点を除き、実施例２の画像認識システムの各部は、図１〜図１０に示された実施例１の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。【０１０８】
本実施例では、カメラ１０１がカメラ状態推定用データベース１０５、画像マッチング処理部１１０及びカメラ状態推定部１１１を備える。【０１０９】
図１１は、本発明の実施例２の画像認識システムのハードウェア構成を示すブロック図である。【０１１０】
図１１に示す構成のうち実施例１の図１に示すカメラ状態推定用データベース１０５、画像マッチング処理部１１０、カメラ状態推定部１１１、図３に示す入力用端末６０７、表示用装置６０８、データベース情報設定部６０９、カメラ状態推定信号出力部６１０、データベース情報取得部６１１、データベース更新部６１２、カメラ状態設定部６１３、画像認識処理部６１５、及び画像取得部６１７と同じ構成は、同じ符号を付与し、説明を省略する。【０１１１】
すなわち、本実施例のカメラ１０１は、図３に示す実施例１のカメラ１０１に、カメラ状態推定装置１００と同等の機能と、画像認識処理装置６０３の表示用装置６１４以外の部分の機能とを追加したものであるとも言え、図３に示す実施例１のカメラ状態推定装置１００に、実施例１のカメラ１０１と同等の機能と、画像認識処理装置６０３の表示用装置６１４以外の部分の機能とを追加したものであるとも言える。【０１１２】
本実施例のカメラ１０１は、プロセッサ１１０２、メモリ１１０３、ネットワークＩ／Ｆ１１０４、画像撮影部１１０１及び記憶装置１１０５を備える。【０１１３】
プロセッサ１１０２は、メモリ１１０３に格納されたプログラムを実行することによって、本実施例のカメラ１０１の種々の機能を実現する。【０１１４】
メモリ１１０３には、プロセッサ１１０２によって実行されるプログラムモジュールである画像マッチング処理部１１０、カメラ状態推定部１１１、カメラ状態推定信号出力部６１０、データベース更新部６１２、カメラ状態設定部６１３及び画像認識処理部６１５が格納される。実施例１と同様、これらの各部は機能ブロックとして扱われるが、実際には各部の処理はプロセッサ１１０２が各プログラムモジュールに記述された命令に従って実行する。また、実施例１と同様、上記の機能ブロックの任意の一部又は全部が専用のハードウェアによって実現されてもよい。【０１１５】
ネットワークＩ／Ｆ１１０４は、ネットワーク６０４に接続され、ネットワーク６０４を介してデータベース更新装置６０１等との通信を行うインターフェースである。【０１１６】
画像撮影部１１０１は、レンズ及び撮像素子等からなる光学系を有し、それらを用いて画像撮影を行う。本実施例のカメラ１０１は、画像撮影部１１０１が撮影した画像と、カメラ状態推定用データベース１０５に保存された情報とを用いて、画像認識処理部６１５の処理に必要なカメラ状態を推定することができる。【０１１７】
記憶装置１１０５は、例えばハードディスクドライブ又はフラッシュメモリのようないわゆる補助記憶装置であり、カメラ状態推定用データベース１０５を格納する。データベース更新部６１２は、外部から（例えばデータベース更新装置からネットワーク６０４を介して）入力される情報を用いてカメラ状態推定用データベース１０５を更新する。【０１１８】
本実施例のデータベース更新装置６０１は、実施例１のデータベース更新装置６０１（図３）と同様に、プロセッサ６２１、メモリ６２２、ネットワークＩ／Ｆ６２３、入力用端末６０７及び表示用装置６０８を備える。メモリ６２２には、プロセッサ６２１によって実行されるプログラムモジュールであるデータベース情報設定部６０９、データベース情報取得部６１１、画像取得部６１７及び画像認識結果取得部１１０６が格納される。画像認識結果取得部１１０６は、カメラ１０１で処理された画像認識結果を取得し、表示用装置６０８に表示する。本実施例のデータベース更新装置６０１は、データベース更新機能と、カメラ映像の画像認識結果表示機能とを備えるが、それらの機能を別々の装置に分けても良い。【０１１９】
以上のように、本実施例においては、カメラ１０１内部にカメラ状態推定用データベース１０５と画像マッチング処理部１１０とカメラ状態推定部１１１を備えることで、実施例１のカメラ状態推定装置１００が行うものと同様の処理をカメラ１０１内部で実行することができる。これによって、カメラ１０１が複数台に増えたときも、カメラ状態推定処理を各カメラ１０１で実施することができるため、システム全体にかかる負荷を各カメラ１０１に分散することで演算負荷を低減することが可能となる。
【実施例３】
【０１２０】
次に、本発明の実施例３を、図１２を用いて説明する。以下に説明する相違点を除き、実施例２の画像認識システムの各部は、図１〜図１０に示された実施例１又は図１１に示された実施例２の各部と同一の機能を有するため、それらの図示及び説明は省略する。【０１２１】
具体的には、実施例３の画像認識システムは、カメラ状態推定用データベース１０５の代わりに（又はそれに加えて）カメラ状態推定用データベース１２０１を有し、それを利用した処理を行うという点を除き、実施例１又は実施例２の画像認識システムと同様である。【０１２２】
図１２は、本発明の実施例３におけるカメラ状態推定用データベース１２０１の一例の説明図である。【０１２３】
図１２に示すカメラ状態推定用データベース１２０１は、実施例１の図４に示すカメラ状態推定用データベース１０５が保持する対象のＩＤ３０２、対象画像３０３、特徴量３０４、基準位置３０５及び高さ３０６に加え、対象の幅１２０２及び対象の位置情報（例えば緯度経度）１２０３を保持する。【０１２４】
対象足元座標算出部５０８は、図１２に示すカメラ状態推定用データベース１２０１を参照して、検知対象が画像内から検知された場合に、高さ３０６だけでなく幅１２０２も用いて、より高精度に検知対象の足元座標を算出することが可能となる（Ｓ９０７）。また、カメラ状態推定部１１１は、検知対象の位置情報１２０３を参照することで、カメラ１０１の向いている方向を推定することが可能となる。例えば、画像中にＩＤ３０２が「１」の検知対象が存在したことが検知できた場合には、カメラの視野内に、位置情報１２０３として登録された緯度経度（３５、１３９）によって特定される地点の方角が含まれることが分かる。この方角を特定するために、カメラ状態推定部１１１は、緯度経度の値を、図２に示す実空間の座標系における座標値に変換してもよいし、はじめから図２に示す実空間の座標値を位置情報１２０３としてカメラ状態推定用データベース１２０１に格納してもよい。【０１２５】
以上のように、本実施例においては、カメラ状態推定用データベース１２０１に複数種類の大きさに関する情報が含まれ、さらに位置に関する情報が含まれる。これによって、より高精度にカメラ状態を推定でき、さらにカメラの向いている方向も推定可能となる。【０１２６】
なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。【０１２７】
上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。【０１２８】
また、図面には、実施例を説明するために必要と考えられる制御線及び情報線を示しており、必ずしも、本発明が適用された実際の製品に含まれる全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【図１】
2017126072.tif 000003
【図２】
2017126072.tif 000004
【図３】
2017126072.tif 000005
【図４】
2017126072.tif 000006
【図５】
2017126072.tif 000007
【図６】
2017126072.tif 000008
【図７】
2017126072.tif 000009
【図８】
2017126072.tif 000010
【図９】
2017126072.tif 000011
【図１０】
2017126072.tif 000012
【図１１】
2017126072.tif 000013
【図１２】
2017126072.tif 000014
【国際調査報告】
2017126072.tif 000015
2017126072.tif 000016
2017126072.tif 000017