(57)【要約】【課題】魚眼画像から検出対象の物体を検出する際の検出精度を向上させる。【解決手段】画像処理装置（クライアント装置２００）は、魚眼レンズを有する撮像手段により撮像された魚眼画像を取得する取得手段と、取得手段により取得された魚眼画像から、特定のサイズの物体を検出対象の物体として検出する検出手段と、検出手段において検出する検出対象の物体のサイズを、魚眼画像における基準位置からの距離に応じて変化させて設定する設定手段と、を備える。【選択図】      図７
2019159739.tif 000002
【特許請求の範囲】
【請求項１】
魚眼レンズを有する撮像手段により撮像された魚眼画像を取得する取得手段と、
前記取得手段により取得された前記魚眼画像から、特定のサイズの物体を検出対象の物体として検出する検出手段と、
前記検出手段において検出する前記検出対象の物体のサイズを、前記魚眼画像における基準位置からの距離に応じて変化させて設定する設定手段と、を備えることを特徴とする画像処理装置。
【請求項２】
前記基準位置は、前記魚眼画像における前記撮像手段の設置位置に対応する位置であり、
前記設定手段は、前記検出対象の物体のサイズを、前記基準位置からの距離が長いほど小さく変化させて設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記設定手段は、前記検出対象の物体のサイズを、前記基準位置を中心として同心円状に変化させて設定することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記設定手段は、前記撮像手段の設置姿勢に基づいて、前記魚眼画像における前記撮像手段の設置位置から実空間上等距離となる位置について、前記検出対象の物体のサイズを等しく設定することを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記検出手段は、第一の閾値以上のサイズを有する物体を前記検出対象の物体として検出し、
前記設定手段は、前記第一の閾値を設定することを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記設定手段は、前記検出手段により検出可能な物体の最小サイズを前記第一の閾値の下限値として設定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記検出手段は、第二の閾値以下のサイズを有する物体を前記検出対象の物体として検出し、
前記設定手段は、前記第二の閾値を設定することを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
前記設定手段は、前記撮像手段の設置高さ、前記撮像手段の設置姿勢、前記検出対象の物体の実空間上における高さ、および前記検出対象の物体の実空間上における大きさの少なくとも１つに基づいて、前記検出対象の物体のサイズを設定することを特徴とする請求項１から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記検出手段は、前記検出対象の物体として、人体または人体の一部を検出することを特徴とする請求項１から８のいずれか１項に記載の画像処理装置。
【請求項１０】
魚眼レンズを有する撮像手段により撮像された魚眼画像を取得するステップと、
取得された前記魚眼画像から、特定のサイズの物体を検出対象の物体として検出するステップと、
前記検出対象の物体のサイズを、前記魚眼画像における基準位置からの距離に応じて変化させて設定するステップと、を含むことを特徴とする画像処理方法。
【請求項１１】
コンピュータを、請求項１から９のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークカメラの種類が多様化する中で、周囲３６０度を死角なく見渡せる全方位ネットワークカメラ（以下、「全方位カメラ」という。）が普及し始めている。また、ネットワークカメラ市場が拡大する中で、撮像された画像から人物や物体等を検出する技術が多く利用されている。このような技術は、混雑具合の検知等に用いられる。
画像から人体を検出する場合、カメラの設置条件等によっては、映り得ないサイズを人体として検出してしまうことがある。このような誤検出が多発すると、適切な画像解析を行うことができない。
特許文献１には、画像中の近い位置に複数人の検出結果が存在する場合、これらの検出サイズを比較して検出対象とするかどうかを判定する点が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１１９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、全方位カメラにより撮像された撮像画像は、魚眼レンズを用いて撮像された魚眼画像であるため、撮像画像上の距離が近い場合でも、実空間上では同じ大きさの人体が異なる大きさとなるといった特徴がある。そのため、全方位カメラを用いた人体検出の場合、上記特許文献１に記載の技術を適用しても、誤検出を低減することができない場合がある。
そこで、本発明は、魚眼画像から検出対象の物体を検出する際の検出精度を向上させることを課題としている。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る画像処理装置の一態様は、魚眼レンズを有する撮像手段により撮像された魚眼画像を取得する取得手段と、前記取得手段により取得された前記魚眼画像から、特定のサイズの物体を検出対象の物体として検出する検出手段と、前記検出手段において検出する前記検出対象の物体のサイズを、前記魚眼画像における基準位置からの距離に応じて変化させて設定する設定手段と、を備える。
【発明の効果】
【０００６】
本発明によれば、魚眼画像から検出対象の物体を検出する際の検出精度を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】ネットワークカメラシステムの構成例を示す図である。
【図２】クライアント装置のハードウェア構成例である。
【図３】１次記憶装置および２次記憶装置に記憶される情報の一例である。
【図４】環境情報データの一例である。
【図５】撮像環境の一例である。
【図６】閾値データの一例である。
【図７】撮像画像の一例である。
【図８】人体検出結果データの一例である。
【図９】画像解析処理を示すフローチャートの一例である。
【図１０】閾値計算処理を示すフローチャートの一例である。
【図１１】閾値の変化を示す図である。
【図１２】閾値の設定例である。
【図１３】人体判定処理を示すフローチャートの一例である。
【図１４】ネットワークカメラが傾いている場合の閾値の設定例である。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
【０００９】
図１は、本実施形態におけるネットワークカメラシステム１０００の構成例を示すブロック図である。
本実施形態におけるネットワークカメラシステム１０００は、監視領域を監視するユーザに、当該監視領域を撮像した画像を提供するシステムである。また、このネットワークカメラシステム１０００は、監視領域を撮像した画像に対して画像解析処理を行って、特定のサイズの物体を検出対象の物体として検出し、検出結果をユーザに提示することができる。ここで、検出対象の物体は、人体または人体の一部とすることができる。
【００１０】
ネットワークカメラシステム１０００は、撮像装置１００と、クライアント装置２００と、を備える。撮像装置１００とクライアント装置２００とは、ネットワーク３００によって相互に通信可能に接続されている。
ネットワーク３００は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）の通信規格に準拠する複数のルータ、スイッチ、ケーブル等から構成される。なお、ネットワーク３００は、カメラ１００とクライアント装置２００との間で通信可能な構成であれば、その通信規格、規模および構成は問わない。ネットワーク３００は、インターネットや有線ＬＡＮ（Local Area Network）、無線ＬＡＮ（Wireless LAN）、ＷＡＮ（Wide Area Network）、若しくはこれらの複合により実現してもよい。
【００１１】
撮像装置１００は、所定の撮像範囲を撮像するネットワークカメラ（以下、単に「カメラ」という。）であり、撮像画像を、ネットワーク３００を介してクライアント装置２００に配信することができる。カメラ１００は、魚眼レンズを有し、撮像画像として魚眼画像（全方位画像）を取得することができる。カメラ１００は、例えば施設の天井に設置され、カメラ１００の下を通る人物や背景等の被写体を撮像する。
なお、本実施形態では、カメラ１００の撮像範囲が全方位（３６０°）である場合について説明するが、撮像範囲は全方位に限定されるものではなく、これより少ない所定角度範囲であってもよい。また、カメラ１００は、１枚の画像（静止画）を撮像するカメラであってもよいし、１枚以上の画像を含む映像を撮像するカメラであってもよい。
【００１２】
クライアント装置２００は、パーソナルコンピュータ（ＰＣ）やスマートフォン、タブレット型ＰＣといった端末装置により構成することができる。クライアント装置２００は、カメラ１００の制御や、カメラ１００から配信される魚眼画像に対する画像解析処理、当該画像解析処理の処理結果をユーザに提示する表示制御等を行うことができる。
【００１３】
図２は、クライアント装置２００のハードウェア構成例である。
クライアント装置２００は、内部バス２０１を備える。また、クライアント装置２００は、ＣＰＵ２０２、１次記憶装置２０３、２次記憶装置２０４、入力Ｉ／Ｆ２０５、入力部２０６、表示Ｉ／Ｆ２０７、表示部２０８および通信Ｉ／Ｆ２０９を備える。ＣＰＵ２０２、１次記憶装置２０３、２次記憶装置２０４、入力Ｉ／Ｆ２０５、表示Ｉ／Ｆ２０７および通信Ｉ／Ｆ２０９は、内部バス２０１に接続されている。
【００１４】
ＣＰＵ２０２は、クライアント装置２００における動作を統括的に制御する。１次記憶装置２０３は、例えば、ＲＡＭに代表される書き込み可能な高速の記憶装置である。この１次記憶装置２０３は、例えば、ＯＳ（オペレーティングシステム）や各種のプログラムおよび各種のデータ等がロードされ、また、ＣＰＵ２０２がＯＳや各種のプログラム等を実行する際の作業領域としても使用される。
なお、後述するクライアント装置２００の機能や処理は、ＣＰＵ２０２が１次記憶装置２０３に格納されているプログラムを読み出し、そのプログラムを実行することにより実現されるものである。
【００１５】
２次記憶装置２０４は、例えば、ＨＤＤ、フラッシュメモリ、ＳＤカード等に代表される不揮発性の記憶装置であり、着脱可能な構成であってもよい。この２次記憶装置２０４は、ＯＳや各種のプログラムおよび各種のデータ等の永続的な記憶領域として使用される他に、短期的な各種のデータ等の記憶領域としても使用される。
入力Ｉ／Ｆ２０５は、入力部２０６をクライアント装置２００に接続するためのインタフェースであり、入力部２０６による操作指示は、この入力Ｉ／Ｆ２０５を介してクライアント装置２００に入力される。入力部２０６は、例えば、キーボードやマウス等のポインティングデバイスを含む、ユーザが操作可能なＩ／Ｏ機器である。
【００１６】
表示Ｉ／Ｆ２０７は、表示部２０８をクライアント装置２００に接続するためのインタフェースであり、表示部２０８に表示する画像等は、この表示Ｉ／Ｆ２０７を介して表示部２０８に送出する。表示部２０８は、液晶ディスプレイ（ＬＣＤ）等のモニタを備える。通信Ｉ／Ｆ２０９は、ネットワーク３００を介してカメラ１００との間でデータの送受信を行う。通信Ｉ／Ｆ２０９は、１次記憶装置２０３や２次記憶装置２０４に記憶されているデータを、所定のフォーマットに変換してカメラ１００に送信することができる。
【００１７】
なお、カメラ１００の場合、図２の入力Ｉ／Ｆ２０５、入力部２０６、表示Ｉ／Ｆ２０７および表示部２０８に代えて、撮像部を具備する。撮像部は、撮像光学系を構成するレンズ部や撮像素子を備える。レンズ部は、魚眼レンズを備える。撮像素子は、ＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなどを備え、その受光面上に形成された像を電気信号に変換する。そして、カメラ１００の機能や処理は、ＣＰＵ２０２に対応するカメラ１００のＣＰＵがプログラムを実行することで実現することができる。
【００１８】
なお、本実施形態では、クライアント装置２００が、カメラ１００により撮像された画像に対して画像解析処理を行い、その処理結果を表示部２０８に表示させる表示制御を行う画像処理装置として動作する場合について説明する。ただし、撮像装置であるカメラ１００が上記の画像処理装置として動作してもよいし、一般のＰＣや他の機器等が上記の画像処理装置として動作してもよい。
【００１９】
図３は、クライアント装置２００の１次記憶装置２０３および２次記憶装置２０４に記憶される各種のプログラムや各種のデータ等の一例である。
この図３に示すように、１次記憶装置２０３は、ＯＳ２１１、魚眼画像データ２１２、環境設定プログラム２１３、閾値計算プログラム２１４、人体検出プログラム２１５、人体判定プログラム２１６および判定結果表示プログラム２１７を記憶する。また、２次記憶装置２０４は、環境情報データ２２１、閾値データ２２２、人体検出結果データ２２３、人体判定結果データ２２４および結果画像データ２２５を記憶する。
【００２０】
ＯＳ２１１は、クライアント装置２００の全体を制御するための基本プログラムである。１次記憶装置２０３における各種のプログラム（２１３〜２１７）の位置（番地）や大きさは、ＯＳ２１１が管理する。
魚眼画像データ２１２は、画像解析処理の対象となる魚眼画像である。本実施形態においては、魚眼画像は、縦１０００ｐｘ（ピクセル）、横１０００ｐｘの画像とする。なお、画像データとしての形式（ＪＰＥＧ、Ｂｉｔｍａｐ、ＰＮＧ等）は問わない。また、画像データは、Ｈ．２６４やＨ．２６５をはじめとする動画データでもよい。
【００２１】
環境設定プログラム２１３は、ユーザが入力部２０６を介して入力した、魚眼画像の撮像環境を示す環境情報等を設定するプログラムである。ユーザが入力部２０６を使用して環境情報を入力すると、入力Ｉ／Ｆ２０５および内部バス２０１を通して１次記憶装置２０３にロードされている環境設定プログラム２１３が環境情報を受け取る。そして、環境設定プログラム２１３は、内部バス２０１を通して２次記憶装置２０４に環境情報データ２２１を記憶する。なお、２次記憶装置２０４にすでに環境情報データ２２１が記憶されている場合は、当該環境情報データ２２１を更新する。
【００２２】
図４は、環境情報データ２２１の一例である。
環境情報データ２２１は、中心からの距離２２１ａと実空間上の距離２２１ｂとの対応関係と、設置高さ２２１ｃと、検出対象高さ２２１ｄと、を含む。
ここで、中心からの距離２２１ａは、魚眼画像の中心座標からの距離［ｐｘ］であり、実空間上の距離２２１ｂは、中心からの距離２１１ａに対応する実空間上における位置のカメラ１００からの水平距離［ｍ］である。なお、本実施形態では、カメラ１００の設置姿勢は水平であり、魚眼画像の中心位置は、カメラ１００の設置位置に対応している。
また、設置高さ２２１ｃは、実空間上におけるカメラ１００の地上もしくは床面からの高さ［ｍ］である。さらに、検出対象高さ２２１ｄは、実空間上における検出対象の物体の地上もしくは床面から高さ［ｍ］である。本実施形態では、検出対象は人体の頭部であり、検出対象高さ２２１ｄは、検出したい人体のサイズ（身長）の下限値を示すものとする。なお、本実施形態においては、検出対象高さ２１１ｄを１つのみ設定しているが、検出対象高さ２１１ｄとして、例えば検出したい人体のサイズ（身長）の下限値と上限値との２つを設定してもよい。
【００２３】
図５は、撮像環境の一例を示す図である。
この図５に示すように、本実施形態では、カメラ１００は、地上または床面から高さＨの位置に水平に設置されており、カメラ１００の下を通る被写体４００を撮像する。図５において、被写体４００は、カメラ１００から地上または床面まで伸ばした垂線Ｐから、水平方向に距離Ｄの位置に存在する。ここで、上記の高さＨは、図４の設置高さ２２１ｃに対応し、距離Ｄは、図４の実空間までの距離２２１ｂに対応する。
また、図５において、符号ｈは被写体４００の地上または床面からの高さを示す。この被写体４００の高さｈは、図４の検出対象高さ２２１ｄに対応する。符号ｆは、後述する人体検出プログラム２１５により実行される人体検出処理において検出される検出対象の大きさを示す。本実施形態では、検出対象は人体の頭部であるため、大きさｆは、実空間上における人体の頭部の大きさを示す。
なお、本実施形態では、検出対象が頭部である場合について説明するが、検出対象は頭部に限定されるものではなく、例えば、人体全体であってもよいし、人体の他の一部（例えば、上半身のみ）などであってもよい。つまり、上記の大きさｆは、検出対象に応じて変化する。
【００２４】
図５に示す角度θ１は、垂線Ｐと、カメラ１００と被写体４００の検出対象領域（本実施形態では、頭部領域）の下端とを結ぶ直線とのなす角である。また、角度θ２は、垂線Ｐと、カメラ１００と被写体４００の検出対象領域の上端とを結ぶ直線とのなす角である。角度θ１およびθ２は、それぞれ次式により表すことができる。
【００２５】
【数１】
2019159739.tif 000003
【００２６】
図３に戻って、閾値計算プログラム２１４は、図４に示す環境情報データ２２１を用いて、後述する人体判定プログラム２１６により実行される人体判定処理において使用する閾値を計算し、２次記憶装置２０４に閾値データ２２２として保存する。この閾値計算処理の詳細については後述する。
図６に閾値データ２２２の一例を示す。
閾値データ２２２は、中心からの距離２２２ａと閾値２２２ｂとの対応関係を示す。ここで、中心からの距離２２２ａは、魚眼画像の中心座標からの距離［ｐｘ］であり、図４に示す中心からの距離２２１ａに対応する。また、閾値２２２ｂは、人体検出処理によって中心からの距離２２２ａの位置において検出された物体が、間違いなく検出対象の物体であるかどうかを判定するための閾値である。本実施形態では、人体判定処理において、上記の閾値以上のサイズを有する物体が検出対象の物体であると判定する。つまり、閾値２２２ｂは、魚眼画像上における検出対象領域の最小サイズ［ｐｘ］を示す。
【００２７】
図７に、カメラ１００により撮像された魚眼画像データ２１２の例を示す。
この図７において、Ｘは、カメラ１００のｘ座標方向の最大値を表しており、本実施形態ではＸ＝１０００ｐｘである。同様に、Ｙは、カメラ１００のｙ座標方向の最大値を表しており、本実施形態ではＹ＝１０００ｐｘである。
また、ｙ１は、被写体４００の検出対象領域の下端のｙ座標であり、ｙ２は、被写体４００の検出対象領域の上端のｙ座標である。ここで、ｙ１＝（Ｙ／２）×（１−θ１／９０）であり、ｙ２＝（Ｙ／２）×（１−θ２／９０）である。つまり、魚眼画像上における検出対象領域の大きさｙ１−ｙ２は、次式により表される。
【００２８】
【数２】
2019159739.tif 000004
【００２９】
魚眼画像においては、画像の中心付近と円周付近とでは、同じ大きさの被写体であっても極端に大きさが異なる。つまり、画像の中心付近と円周付近とで検出対象領域の大きさは異なり、画像の中心に近いほど、検出対象領域は大きくなる。
そこで、本実施形態では、魚眼画像における基準位置からの距離に応じて、検出対象領域の最小サイズとなる閾値２２２ｂを変化させて設定する。具体的には、図６に示すように、カメラ１００の設置位置に対応する魚眼画像の中心位置を上記基準位置とし、魚眼画像の中心位置からの距離２２２ａが長いほど、閾値２２２ｂを小さく変化させて設定する。これにより、例えば魚眼画像の中心付近において、映り得ないほど小さいサイズの物体を検出対象の物体として検出してしまうことを防止することができる。
【００３０】
図３に戻って、人体検出プログラム２１５は、１次記憶装置２０３にロードされた魚眼画像データ２１２をもとに、魚眼画像から人体を検出する人体検出処理を行う。ここで、人体検出処理は、予め人体の形状を学習させておくようなパターンマッチングをはじめとする検出技術を使用することができる。ただし、人体検出処理は、上記に限定されるものではなく、任意の検出技術を使用することができる。
本実施形態では、人体検出処理では、魚眼画像から人体の形状を有する人体領域を検出し、当該人体領域から、検出対象領域となる頭部領域を検出する。そして、検出対象領域の画像上の位置（座標）および大きさを検出し、２次記憶装置２０４に人体検出結果データ２２３として保存する。ここで、人体検出プログラム２１５は、検出可能な人体の最小サイズを有し、人体検出処理では、その最小サイズ以上の人体領域を検出するものとする。
【００３１】
なお、魚眼画像データ２１２が画像データではなく動画データである場合には、人体検出プログラム２１５は、動画データから１枚のフレームを取得するデコード処理と、取得したフレームから人体を検出する人体検出処理とを行う。この際、複数フレームに対して人体検出処理を実施した場合は、検出結果をフレームごとに保存する。
【００３２】
図８に、人体検出プログラム２１５が出力する人体検出結果データ２２３の一例を示す。
人体検出結果データ２２３は、検出座標（ｘ）２２３ａと、検出座標（ｙ）２２３ｂと、検出サイズ２２３ｃと、を含む。検出座標（ｘ）２２３ａは、人体検出処理により検出された検出対象領域のｘ座標［ｐｘ］であり、検出座標（ｙ）２２３ｂは、人体検出処理により検出された検出対象領域のｙ座標［ｐｘ］である。検出座標（ｘ）２２３ａおよび検出座標（ｙ）２２３ｂは、例えば、検出対象領域の中心座標とすることができる。また、検出サイズ２２３ｃは、人体検出処理により検出された、検出座標（ｘ）２２３ａおよび検出座標（ｙ）２２３ｂに対応する検出対象領域のサイズであり、図５におけるｆと、図７におけるｙ１−ｙ２とに相当する。
【００３３】
図３に戻って、人体判定プログラム２１６は、閾値データ２２２と人体検出結果データ２２３とを比較し、人体検出処理により検出された物体が検出対象の物体であるか否かを判定する人体判定処理を実行する。人体判定処理の詳細については後述する。そして、人体判定プログラム２１６は、人体判定処理の判定結果を２次記憶装置２０４に人体判定結果データ２２４として保存する。
判定結果表示プログラム２１７は、２次記憶装置２０４に記憶されている人体判定結果データ２２４を、１次記憶装置２０３にロードされている魚眼画像データ２１２に重畳する。そして、判定結果表示プログラム２１７は、重畳した結果を結果画像データ２２５として２次記憶装置２０４へ保存する。また、判定結果表示プログラム２１７は、結果画像データ２２５を内部バス２０１および表示Ｉ／Ｆ２０７を介して表示部２０８へ送出する。
【００３４】
次に、本実施形態におけるクライアント装置２００の動作について説明する。
図９は、クライアント装置２００が実行する画像解析処理手順を示すフローチャートである。この図９の処理は、ユーザが入力部２０６を操作して環境情報を入力したタイミングで開始される。ただし、図９の処理の開始タイミングは、上記のタイミングに限らない。クライアント装置２００は、ＣＰＵ２０２が必要なプログラムを読み出して実行することにより、図９に示す各処理を実現することができる。以降、アルファベットＳはフローチャートにおけるステップを意味するものとする。
【００３５】
まずＳ１において、クライアント装置２００は、閾値計算プログラム２１４により閾値計算処理を実行する。クライアント装置２００は、環境情報データ２２１をもとに、人物判定処理において使用する閾値２２２ｂを、魚間画像の中心からの距離２２２ａに応じて複数計算し、閾値データ２２２として保存する。閾値計算処理の詳細については後述する。
次にＳ２において、クライアント装置２００は、カメラ１００により撮像された魚眼画像を取得する。取得された魚眼画像は、１次記憶装置２０３に魚眼画像データ２１２として保存される。
【００３６】
Ｓ３では、クライアント装置２００は、人体検出プログラム２１５により人体検出処理を実行する。クライアント装置２００は、Ｓ２において取得された魚眼画像に対して人体検出処理を行い、検出対象（人体の頭部）の検出結果を人体検出結果データ２２３として保存する。
Ｓ４では、クライアント装置２００は、人体判定プログラム２１６により人体判定処理を実行する。クライアント装置２００は、Ｓ３において検出された物体に対して、Ｓ１において設定された閾値データ２２２を使用して人体判定処理を行い、判定結果を人体判定結果データ２２４として保存する。
【００３７】
Ｓ５では、クライアント装置２００は、判定結果表示プログラム２１７により、画像解析処理結果を表示させる表示制御を行う。クライアント装置２００は、Ｓ４において判定された判定結果をＳ２において取得された魚眼画像に重畳した画像を生成し、生成した画像を結果画像データ２２５として保存する。また、クライアント装置２００は、結果画像データ２２５を表示部２０８に表示させる表示制御を行う。
Ｓ６では、クライアント装置２００は、画像解析処理を終了するか否かを判定し、画像解析処理を継続させる場合にはＳ２に戻り、画像解析処理を終了する場合には図９に示す処理を終了する。
【００３８】
図１０は、図９のＳ１において実行される閾値計算処理を示すフローチャートである。
まずＳ１１において、クライアント装置２００は、２次記憶装置２０４に保存されている環境情報データ２２１を読み込み、Ｓ１２に移行する。
Ｓ１２以降の処理では、クライアント装置２００は、Ｓ１において読み込んだ環境情報データ２２１のうち中心からの距離２２１ａが短い順に、対応する閾値２２２ｂを計算していき、閾値データ２２２を保存する。例えば、図４に示す環境情報データ２１１が保存されている場合、はじめに中心からの距離２２１ａが１００ｐｘである場合の閾値２２２ｂを計算し、２００ｐｘ、３００ｐｘ、…の順に閾値２２２ｂを計算していく。
【００３９】
Ｓ１２では、クライアント装置２００は、Ｓ１１において読み込んだ環境情報データ２２１に基づいて、上記（１）〜（３）式を用いて、中心からの距離２２１ａに対応する閾値（ｙ１−ｙ２）を計算する。
具体的には、クライアント装置２００は、上記（１）式および（２）式をもとに、図５に示す角度θ１およびθ２を算出する。角度θ１およびθ２の算出に用いるＨは、環境情報データ２２１に含まれる設置高さ２２１ｃであり、ｈは、環境情報データ２２１に含まれる検出対象高さ２２１ｄである。また、ｆは、検出対象である人体の頭部の大きさであり、予め設定された値、もしくは検出対象高さ２２１ｄをもとに算出した値を用いることができる。さらに、Ｄは、環境情報データ２２１に含まれる、中心からの距離２２１ａに対応した実空間上の距離２２１ｂである。そして、クライアント装置２００は、算出された角度θ１およびθ２を用いて、上記（３）式をもとにｙ１−ｙ２を算出し、これを閾値２２２ｂの計算結果とする。
【００４０】
次にＳ１３では、クライアント装置２００は、Ｓ１２において計算された閾値２２２ｂが予め設定された下限値以上であるか否かを判定する。ここで、当該下限値は、検出対象の物体（頭部）を検出可能な最小サイズ（検出可能最小サイズ）である。そして、閾値２２２ｂが検出可能最小サイズ以上である場合はＳ１４に移行し、閾値２２２ｂが検出可能最小サイズよりも小さい場合はＳ１６に移行する。
Ｓ１４では、クライアント装置２００は、Ｓ１２において計算された閾値２２２ｂを、２次記憶装置２０４へ閾値データ２２２として保存する。このとき、クライアント装置２００は、図６に示すように、中心からの距離２２２ａと対応付けて閾値２２２ｂを保存する。
【００４１】
Ｓ１５では、クライアント装置２００は、閾値算出の際に使用した各座標ｙ１、ｙ２が、ともに魚眼画像の撮像範囲である円の内側の座標であるか否かを判定する。そして、各座標ｙ１、ｙ２が円の内側の座標である場合にはＳ１２に戻り、環境情報データ２２１のうち、中心からの距離２２１ａを増やして再度閾値２２２ｂを計算する。一方、各座標ｙ１、ｙ２の少なくとも一方が円の外側の座標である場合には、Ｓ１６に移行する。
Ｓ１６では、クライアント装置２００は、環境情報データ２２１のうち、閾値２２２ｂの計算を行っていない残りの中心からの距離２２１ａについて、対応する閾値２２２ｂを検出可能最小サイズに固定して閾値データ２２２として保存する。
【００４２】
図１１は、魚眼画像の中心からの距離と閾値との関係を示す図である。この図１１に示すように、閾値は、魚眼画像の中心からの距離が長いほど小さく設定され、中心から所定距離以上離れた領域は、閾値が検出可能最小サイズに固定された最小サイズ固定領域となる。このように、閾値は、魚眼画像の中心位置を中心として同心円状に変化して設定され、所定の半径以上の円周領域において検出可能最小サイズに固定される。
つまり、図１２に示すように、魚眼画像データ２１２の撮像範囲である円の内側において、魚眼画像の中心位置（図中のバツ印）からの距離が等しい円２１２ａ上では、同じ大きさの閾値２２２ａが設定される。そして、円２１２ａよりも外側の領域では、閾値２２２ａよりも小さい閾値２２２ｂが設定される。
なお、魚眼画像に映る被写体は正立しないため、人体判定処理に使用する閾値は、図１２に示すように、魚眼画像の中心を通る直線に対して垂直となるように考慮して設定するようにしてもよい。
【００４３】
図１３は、図９のＳ４において実行される人体判定処理を示すフローチャートである。
まずＳ４１において、クライアント装置２００は、２次記憶装置２０４に保存されている人体検出結果データ２２３を読み込み、判定対象とする検出結果を選択してＳ４２に移行する。
次にＳ４２において、クライアント装置２００は、人体検出結果データ２２３に含まれる検出座標（ｘ）２２３ａ、検出座標（ｙ）２２３ｂと、魚眼画像データ２１２の画像サイズＸ、Ｙとに基づいて、検出座標と魚眼画像の中心座標との距離を算出する。
【００４４】
Ｓ４３では、クライアント装置２００は、２次記憶装置２０４に保存されている閾値データ２２２を読み込む。そして、クライアント装置２００は、閾値データ２２２に含まれる中心からの距離２２２ａのうち、Ｓ４２において算出された距離と最も近い値に対応する閾値２２２ｂを取得する。
Ｓ４４では、クライアント装置２００は、人体検出結果データ２２３に含まれる検出サイズ２２３ｃと、Ｓ４３において取得された閾値２２２ｂとを比較する。そして、検出サイズ２２３ｃが閾値２２２ｂ以上である場合には、Ｓ４５に移行し、検出サイズ２２３ｃが閾値２２２ｂよりも小さい場合には、Ｓ４６に移行する。
【００４５】
Ｓ４５では、クライアント装置２００は、判定対象の検出結果を人体判定結果データ２２４として２次記憶装置２０４へ保存し、Ｓ４６に移行する。
Ｓ４６では、クライアント装置２００は、人体検出結果データ２２３のうち、すべての検出結果について判定処理を実行したか否かを判定する。そして、未判定の検出結果が存在する場合にはＳ４１に移行し、未判定の検出結果を判定対象として選択してＳ４２以降の処理を繰り返す。一方、すべての検出結果について判定処理が終了している場合は、図１３の処理を終了する。
【００４６】
以上説明したように、本実施形態における画像処理装置（クライアント装置２００）は、カメラ１００により撮像された魚眼画像を取得し、取得された魚眼画像から、特定のサイズの物体を検出対象の物体として検出する画像解析処理を実行する。ここで、画像解析処理は、魚眼画像から検出対象の物体として人体の頭部を検出する人体検出処理と、人体検出手段により検出された物体が間違いなく検出対象の物体であるかどうかを判定する人体判定処理と、を含む。そして、画像処理装置は、画像解析処理において検出する検出対象の物体のサイズ、つまり、人体判定処理において使用する閾値を、魚眼画像における基準位置からの距離に応じて変化させて設定する。
【００４７】
これにより、魚眼画像から人体を検出する際、映り得ないサイズの物体を検出対象の物体として検出してしまうことを防止し、検出精度を向上させることができる。
本実施形態では、画像処理装置は、人体判定処理において使用する閾値として、検出対象の物体の最小サイズを設定し、人体判定処理では、設定された閾値以上のサイズを有する物体を検出対象の物体として検出する。したがって、魚眼画像から検出対象の物体を検出する際、映り得ないほど小さいサイズの物体を検出対象の物体として検出してしまうことを防止し、検出精度を向上させることができる。
【００４８】
上記閾値の設定に際し、画像処理装置は、魚眼画像におけるカメラ１００の設置位置の真下に対応する位置を上記基準位置とし、当該基準位置からの距離が長いほど閾値を小さく変化させて設定することができる。具体的には、画像処理装置は、上記基準位置である魚眼画像の中心座標を中心として同心円状に閾値を変化させて設定する。
図５に示すように、天井に水平配置されたカメラ１００により撮像された魚眼画像において、中心からの距離が等しい位置に存在する物体は、実空間上において、カメラ１００の設置位置から水平方向に等しい距離に位置する。そのため、上述したように閾値を同心円状に変化させて設定することで、実空間上、カメラ１００から等距離に位置する物体に対して、人体判定処理で使用する閾値を等しく設定することができる。したがって、検出対象の物体を適切に検出することができる。
【００４９】
また、画像処理装置は、人体検出処理において検出可能な物体の最小サイズ（検出可能最小サイズ）を閾値の下限値として設定し、魚眼画像の中心から所定距離以上離れた領域については、閾値を検出可能最小サイズで固定する。したがって、魚眼画像の円周付近において、人体判定処理に使用する閾値を、人体検出処理における検出可能最小サイズよりも小さいサイズに設定してしまうことを防止することができる。
【００５０】
画像処理装置は、魚眼画像の撮像環境を示す環境情報として、カメラ１００の設置高さ、カメラ１００の設置姿勢（設置角度）、検出対象の物体の実空間上における高さ、および検出対象の物体の実空間上における大きさを取得する。そして、画像処理装置は、取得した環境情報に基づいて、人体判定処理に使用する閾値を設定する。したがって、検出対象の物体が魚眼画像上においてどの程度の大きさとなるかを考慮して、適切に上記閾値を設定することができる。また、画像処理装置は、ユーザが入力した環境情報を取得可能であるため、ユーザが検出したい人体のサイズ（身長）に応じて、適切に上記閾値を設定することが可能である。
【００５１】
以上のように、本実施形態では、魚眼画像に対して人体判定処理に使用する閾値を、カメラ１００の設置条件や検出対象の物体の実空間上の大きさに基づいて、人体検出処理における検出可能最小サイズを考慮しつつ適切に設定することができる。したがって、全方位カメラを用いた人体検出の精度を向上させることができる。
【００５２】
（変形例）
上記実施形態においては、カメラ１００の設置姿勢が水平である場合について説明したが、カメラ１００の設置姿勢は水平方向に対して傾斜していてもよい。カメラ１００が傾いている場合、魚眼画像上では同じ距離でも、実空間上では距離が異なる。そのため、この場合には、カメラ１００の設置姿勢に基づいて、魚眼画像におけるカメラ１００の設置位置から実空間上等距離となる位置について、人体判定処理に使用する閾値を等しく設定する。つまり、図１４に示すように、魚眼画像２１２の中心位置（図中のバツ印）を中心とした円を歪ませた円２１２ｂ上において、同じ大きさの閾値を設定する。
この場合、図４に示す環境情報データ２２１としては、魚眼画像の中心から引いた垂線を０度の基準として、角度ごとに中心からの距離２２１ａと実空間上の距離２２１ｂとの対応関係を示すテーブルを持つようにしてもよい。同様に、図６に示す閾値データ２２２としては、角度ごとに中心からの距離２２２ａと閾値２２２ｂとの対応関係を示すテーブルを持つようにしてもよい。
【００５３】
また、上記実施形態においては、人体判定処理に使用する閾値が、検出対象領域の最小サイズである場合について説明したが、当該閾値は、検出対象領域の最大サイズであってもよい。この場合、人体判定処理では、上記の閾値以下のサイズを有する物体を検出対象の物体として判定する。これにより、魚眼画像から検出対象の物体を検出する際、映り得ないほど大きいサイズの物体を検出対象の物体として検出してしまうことを防止し、検出精度を向上させることができる。なお、人体判定処理に使用する閾値は、検出対象領域の最小サイズを示す第一の閾値と、検出対象領域の最大サイズを示す第二の閾値との両方が設定されていてもよい。
【００５４】
さらに、上記実施形態においては、人体判定処理に使用する閾値を、魚眼画像において同心円状に変化させて設定する場合について説明したが、同心多角形状や同心矩形状に変化させて設定してもよい。
また、上記実施形態においては、図６に示すように、中心からの距離２２２ａと閾値２２２ｂとを対応させて閾値データ２２２を設定する場合について説明したが、魚眼画像を中心からの距離に応じて分割した領域ごとに閾値を設定してもよい。その際の領域の分割数は問わない。例えば、魚眼画像を中心側領域と円周側領域とに２分割し、各領域について閾値を設定するようにしてもよい。
【００５５】
また、上記実施形態においては、人体検出プログラム２１５と人体判定プログラム２１６とを別々に設け、人体検出処理により検出された物体から、閾値を用いて検出対象の物体を判定する場合について説明した。しかしながら、１つのプログラムにより、特定のサイズの物体、例えば、閾値以上のサイズを有する物体を検出対象の物体として検出する処理を行うようにしてもよい。つまり、人体検出処理と人体判定処理とは、１つのプログラムにより実行されてもよい。
【００５６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５７】
１００…ネットワークカメラ、２００…クライアント装置、３００…ネットワーク、１０００…ネットワークカメラシステム
【図１】
2019159739.tif 000005
【図２】
2019159739.tif 000006
【図３】
2019159739.tif 000007
【図４】
2019159739.tif 000008
【図５】
2019159739.tif 000009
【図６】
2019159739.tif 000010
【図７】
2019159739.tif 000011
【図８】
2019159739.tif 000012
【図９】
2019159739.tif 000013
【図１０】
2019159739.tif 000014
【図１１】
2019159739.tif 000015
【図１２】
2019159739.tif 000016
【図１３】
2019159739.tif 000017
【図１４】
2019159739.tif 000018