(57)【要約】【課題】局所的な明るさ変動に起因する誤検出を抑制することができるコンピュータプログラム、動体検出方法及び動体検出装置を提供する。【解決手段】コンピュータに、画像に写された動体を検出させるコンピュータプログラムにおいて、動体を検出する処理の対象となる処理対象画像を記憶するコンピュータに、前記処理対象画像内の明るさの分布を特定の参照画像内の明るさの分布に合わせる明るさ補正を行う明るさ補正ステップと、明るさ補正を行った後の処理対象画像に対して、動体検出を行うステップとを含む処理を実行させる。【選択図】図４
2018055621.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、画像に写された動体を検出させるコンピュータプログラムにおいて、
動体を検出する処理の対象となる処理対象画像を記憶するコンピュータに、
前記処理対象画像内の明るさの分布を特定の参照画像内の明るさの分布に合わせる明るさ補正を行う明るさ補正ステップと、
明るさ補正を行った後の処理対象画像に対して、動体検出を行うステップと
を含む処理を実行させることを特徴とするコンピュータプログラム。
【請求項２】
前記明るさ補正ステップは、
前記参照画像及び前記処理対象画像に含まれる各画素の明るさの違いに基づいて、前記処理対象画像での各画素の明るさを前記参照画像での各画素の明るさへ変換するように、各画素の色を表す複数の数値を補正するための補正関数を画素別に生成する補正関数生成ステップと、
前記処理対象画像に含まれる各画素の色を表す複数の数値から、各画素について生成した前記補正関数により、明るさが補正された色を表す複数の数値を計算するステップと
を含むことを特徴とする請求項１に記載のコンピュータプログラム。
【請求項３】
前記補正関数生成ステップは、
前記処理対象画像に含まれる各画素のグレースケール値にエッジ保存平滑化を施した平滑化グレースケール値を計算するステップと、
前記参照画像及び前記処理対象画像に含まれる各画素の平滑化グレースケール値の比を、前記参照画像での平滑化グレースケール値を前記処理対象画像での平滑化グレースケール値で除算することによって計算するステップと、
前記比が１以下である画素について、前記処理対象画像での色を表す各数値をｉｎｐｕｔｌｍｇ（ｘ，ｙ）、明るさが補正された色を表す各数値をｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）、前記比をｒａｔｉｏ（ｘ、ｙ）として、下記の（１）式で表される前記補正関数を生成するステップと、
ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）＝ｉｎｐｕｔｌｍｇ（ｘ，ｙ）＊ｒａｔｉｏ（ｘ、ｙ）  …（１）
前記比が１を超過する画素について、前記参照画像での平滑化グレースケール値をｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ）、前記処理対象画像での平滑化グレースケール値をｉｎｐｕｔＭａｐ（ｘ，ｙ）、色を表す各数値が取り得る最大値をｍａｘとして、下記の（２）式〜（４）式で表される前記補正関数を生成するステップと、
ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）＝ｉｎｐｕｔｌｍｇ（ｘ，ｙ）＊ｒａｔｅ＋ｏｆｆｓｅｔ  …（２）
ｒａｔｅ＝（ｍａｘ−ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ））／（ｍａｘ−ｉｎｐｕｔＭａｐ（ｘ，ｙ））  …（３）
ｏｆｆｓｅｔ＝ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ）−ｒａｔｅ＊ｉｎｐｕｔＭａｐ（ｘ，ｙ）  …（４）
を含むことを特徴とする請求項２に記載のコンピュータプログラム。
【請求項４】
前記参照画像は、統計情報を利用した背景モデルを用いた背景差分により特定されることを特徴とする請求項１から３までのいずれか一つに記載のコンピュータプログラム。
【請求項５】
演算部及び記憶部を備えるコンピュータにより、画像に写された動体を検出する動体検出方法において、
動体を検出する処理の対象となる処理対象画像を前記記憶部に記憶するステップと、
前記処理対象画像内の明るさの分布を特定の参照画像内の明るさの分布に合わせる明るさ補正を行うステップと、
明るさ補正を行った後の処理対象画像に対して、動体検出を行うステップと
を含むことを特徴とする動体検出方法。
【請求項６】
画像に写された動体を検出する動体検出装置において、
動体を検出する処理の対象となる処理対象画像を記憶する記憶部と、
前記処理対象画像内の明るさの分布を特定の参照画像内の明るさの分布に合わせる明るさ補正を行う明るさ補正部と、
明るさ補正を行った後の処理対象画像に対して、動体検出を行う動体検出部と
を備えることを特徴とする動体検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像から動体を検出するためのコンピュータプログラム、動体検出方法、及び動体検出装置に関する。
【背景技術】
【０００２】
カメラで撮影された動画又は繰り返し撮影された画像等の画像には、樹木又は建物等の静止した物体からなる背景と背景に対して移動する人又は自動車等の動体とが写されている。従来、撮影された画像から動体を検出するニーズがある。例えば、監視カメラで撮影された動画に動体が検出された場合に動画の録画を開始することが行われる。画像から動体を検出するには、一般的に、背景差分という方法が用いられる。背景差分とは、事前に撮影された画像と新しく撮影された画像とを比較し、事前に撮影された画像に含まれていない部分を新しく撮影された画像から動体として抽出する方法である。
【０００３】
背景差分には、本来背景である部分を動体として誤検出することがあるという問題がある。例えば、照明環境が変化したことによる局所的な明るさ変動、又は樹木の揺動若しくは水面の変動等の局所的な背景の変化が動体として誤検出されることがある。このような問題を解決するために、種々の手法が開発されている。特許文献１には、背景差分の例が開示されている。
【０００４】
背景差分に用いられる手法として、背景モデルを用いる手法がある。背景モデルを生成する方法には、統計情報を利用した背景モデリングを行う手法と、空間情報を利用した背景モデリングを行う手法との主に二つの手法に分けられる。統計情報を利用した背景モデリングを行う手法では、画像に含まれる画素値の時間的な変化を統計モデル化し、空間情報を利用した背景モデリングを行う手法では、画像中の注目画素及びその周辺領域での画素値の分布パターンをモデル化する。いずれの手法でも、モデルから外れた部分を動体として検出することができる。
【０００５】
統計情報を利用した背景モデルを用いる手法では、局所的な背景の変化に対してはある程度ロバスト性を確保することができる。一方で、局所的な明るさ変動が動体として誤検出されるという問題がある。特に、カメラにおいて露出又はホワイトバランス等の調整により明るさを自動で補正する場合に、誤検出が増加する。また、空間情報を利用した背景モデルを用いる手法では、局所的な背景の変化に加えて、局所的な明るさ変動に対してもある程度ロバスト性を確保することが可能であり、統計情報を利用した背景モデルを用いる手法に比べて誤検出率が低い傾向がある。一方で、周辺領域の設定に応じて処理の精度及び速度が変動するので、パラメータの調整が困難であるという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−７６０１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
統計情報を利用した背景モデルを用いる手法で局所的な明るさ変動が動体として誤検出される問題は、カメラでの明るさの補正を行わないようにすることにより、短期間の間は回避することができる。しかしながら、昼夜を通してカメラを稼働させた場合等、長時間に亘って動体の検出を行う場合は、明るさの補正を行わない状態では画像の明るさが大きく変化し、正常な画像を取得することができなくなる。この結果、動体検出が困難になるという問題がある。
【０００８】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、局所的な明るさ変動に起因する誤検出を抑制することができるコンピュータプログラム、動体検出方法及び動体検出装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係るコンピュータプログラムは、コンピュータに、画像に写された動体を検出させるコンピュータプログラムにおいて、動体を検出する処理の対象となる処理対象画像を記憶するコンピュータに、前記処理対象画像内の明るさの分布を特定の参照画像内の明るさの分布に合わせる明るさ補正を行う明るさ補正ステップと、明るさ補正を行った後の処理対象画像に対して、動体検出を行うステップとを含む処理を実行させることを特徴とする。
【００１０】
本発明に係るコンピュータプログラムは、前記明るさ補正ステップは、前記参照画像及び前記処理対象画像に含まれる各画素の明るさの違いに基づいて、前記処理対象画像での各画素の明るさを前記参照画像での各画素の明るさへ変換するように、各画素の色を表す複数の数値を補正するための補正関数を画素別に生成する補正関数生成ステップと、前記処理対象画像に含まれる各画素の色を表す複数の数値から、各画素について生成した前記補正関数により、明るさが補正された色を表す複数の数値を計算するステップとを含むことを特徴とする。
【００１１】
本発明に係るコンピュータプログラムは、前記補正関数生成ステップは、前記処理対象画像に含まれる各画素のグレースケール値にエッジ保存平滑化を施した平滑化グレースケール値を計算するステップと、前記参照画像及び前記処理対象画像に含まれる各画素の平滑化グレースケール値の比を、前記参照画像での平滑化グレースケール値を前記処理対象画像での平滑化グレースケール値で除算することによって計算するステップと、前記比が１以下である画素について、前記処理対象画像での色を表す各数値をｉｎｐｕｔｌｍｇ（ｘ，ｙ）、明るさが補正された色を表す各数値をｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）、前記比をｒａｔｉｏ（ｘ、ｙ）として、ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）＝ｉｎｐｕｔｌｍｇ（ｘ，ｙ）＊ｒａｔｉｏ（ｘ、ｙ）で表される前記補正関数を生成するステップと、前記比が１を超過する画素について、前記参照画像での平滑化グレースケール値をｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ）、前記処理対象画像での平滑化グレースケール値をｉｎｐｕｔＭａｐ（ｘ，ｙ）、色を表す各数値が取り得る最大値をｍａｘとして、ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）＝ｉｎｐｕｔｌｍｇ（ｘ，ｙ）＊ｒａｔｅ＋ｏｆｆｓｅｔ、ｒａｔｅ＝（ｍａｘ−ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ））／（ｍａｘ−ｉｎｐｕｔＭａｐ（ｘ，ｙ））、及びｏｆｆｓｅｔ＝ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ）−ｒａｔｅ＊ｉｎｐｕｔＭａｐ（ｘ，ｙ）で表される前記補正関数を生成するステップとを含むことを特徴とする。
【００１２】
本発明に係るコンピュータプログラムは、前記参照画像は、統計情報を利用した背景モデルを用いた背景差分により特定されることを特徴とする。
【００１３】
本発明に係る動体検出方法は、演算部及び記憶部を備えるコンピュータにより、画像に写された動体を検出する動体検出方法において、動体を検出する処理の対象となる処理対象画像を前記記憶部に記憶するステップと、前記処理対象画像内の明るさの分布を特定の参照画像内の明るさの分布に合わせる明るさ補正を行うステップと、明るさ補正を行った後の処理対象画像に対して、動体検出を行うステップとを含むことを特徴とする。
【００１４】
本発明に係る動体検出装置は、画像に写された動体を検出する動体検出装置において、動体を検出する処理の対象となる処理対象画像を記憶する記憶部と、前記処理対象画像内の明るさの分布を特定の参照画像内の明るさの分布に合わせる明るさ補正を行う明るさ補正部と、明るさ補正を行った後の処理対象画像に対して、動体検出を行う動体検出部とを備えることを特徴とする。
【００１５】
本発明においては、動体検出装置は、処理対象画像に対して、明るさの分布を特定の参照画像内の明るさの分布に合わせる明るさ補正を行い、その後に動体検出を行う。局所的な明るさの変化が減少した処理対象画像から動体検出を行うことによって、局所的な明るさ変動が動体として誤検出されることが抑制される。
【００１６】
また、本発明においては、動体検出装置は、明るさ補正を行う際に、参照画像及び処理対象画像に含まれる各画素の明るさの違いに基づいて、各画素の色を表す複数の数値を補正するための補正関数を画素別に生成し、補正関数を用いて、各画素の色を表す複数の数値を補正する。画素別に、参照画像及び処理対象画像の明るさの違いに基づいて画素の色が補正されることにより、明るさの分布を参照画像に合わせるように処理対象画像内の明るさの分布が補正される。
【００１７】
また、本発明においては、動体検出装置は、補正関数を生成する際に、各画素のグレースケール値にエッジ保存平滑化を施した平滑化グレースケール値を計算し、参照画像及び処理対象画像の平滑化グレースケール値の比を計算し、計算した比が１以下であるか又は１を超過するかに応じて、画素別に補正関数を生成する。エッジ保存平滑化により、ノイズが除去される。平滑化グレースケール値の比が１を超過する場合でも補正関数が線形になるように、平滑化グレースケール値の比の値に応じて補正関数を分けて生成することにより、明るさ補正による白飛びの発生が防止される。
【００１８】
また、本発明においては、動体検出装置は、動画に含まれる画像の中から、統計情報を利用した背景モデルを用いた背景差分による差分値に基づいて、初期の動体が含まれていない基準画像となる参照画像を特定することができる。
【発明の効果】
【００１９】
本発明にあっては、動体の誤検出が確実に減少し、また、長時間に亘って動体の検出を行う場合であっても動体検出を継続することが可能となる等、優れた効果を奏する。
【図面の簡単な説明】
【００２０】
【図１】画像を撮影し、撮影画像から動体検出を行うカメラシステムの構成例を示す模式図である。
【図２】動体検出装置の機能構成を示す機能ブロック図である。
【図３】動体検出装置の構成例を示すブロック図である。
【図４】動体検出装置が実行する処理の手順を示すフローチャートである。
【図５】Ｓ３の明るさ補正の処理の詳細な手順を示すフローチャートである。
【図６】参照画像の例を示す模式図である。
【図７】入力画像の例を示す模式図である。
【図８】補正関数の例を示す特性図である。
【図９】補正関数の例を示す特性図である。
【図１０】Ｓ４の動体検出の処理の詳細な手順を示すフローチャートである。
【図１１】動体を写した入力画像の例を示す模式図である。
【図１２】動体の検出例を示す模式図である。
【図１３】動体の検出例を示す模式図である。
【発明を実施するための形態】
【００２１】
以下本発明をその実施の形態を示す図面に基づき具体的に説明する。
図１は、画像を撮影し、撮影画像から動体検出を行うカメラシステムの構成例を示す模式図である。カメラシステムは、撮影を行うカメラ２と、動体検出を行う動体検出装置１とを備えている。カメラ２は動体検出装置１に接続されている。例えば、カメラ２は監視カメラである。カメラ２は、カメラ２の外部を連続的に撮影した動画、又はカメラ２の外部を繰り返し撮影した複数の静止画の形で画像を作成し、作成した画像を動体検出装置１へ入力する。
【００２２】
図２は、動体検出装置１の機能構成を示す機能ブロック図である。動体検出装置１は、情報処理を行う処理部１１と、インタフェース部１４と、記憶部１５とを備えている。インタフェース部１４は、カメラ２に接続されている。カメラ２から入力された画像は、インタフェース部１４で受け付けられ、記憶部１５に記憶される。画像はビットマップデータ等の所定のフォーマットの電子データとしてカメラ２で作成され、記憶部１５に記憶される。画像は複数の画素から構成されており、画像を表す電子データには、各画素の色を表す複数の数値である画素値が含まれている。例えば、各画素の色は、Ｒ（赤）Ｇ（緑）Ｂ（青）夫々の明度の組み合わせで表されている。記憶部１５には、少なくとも、動体検出のために参照される参照画像１５１と、カメラ２から入力された入力画像１５２とが記憶される。入力画像１５２は、処理対象画像に対応する。
【００２３】
処理部１１は、画像の明るさ補正を行う明るさ補正部１２と、明るさ補正された画像から動体を検出する動体検出部１３とを備えている。明るさ補正部１２は、画像のグレースケール値を計算するグレースケール値計算部１２１と、グレースケール値の平滑化を行う平滑化部１２２と、参照画像１５１と入力画像１５２との間でグレースケール値を比較する比較部１２３と、明るさを補正するための補正関数を生成する補正関数生成部１２４と、明るさ補正の計算を行う補正計算部１２５とを有している。動体検出部１３は、背景モデル生成部１３１と、入力画像１５２から動体の候補を検出する動体候補検出部１３２と、動体の候補の中から動体を特定する動体特定部１３３とを有している。
【００２４】
動体検出装置１は、サーバ装置又はパーソナルコンピュータ等のコンピュータで構成されている。図３は、動体検出装置１の構成例を示すブロック図である。動体検出装置１は、演算を行うＣＰＵ（Central Processing Unit ）１０１と、ＲＡＭ（Random Access Memory）１０２と、光ディスク等の記録媒体３から情報を読み取るドライブ部１０３と、不揮発性記憶部１０４と、インタフェース部１４とを備えている。ＣＰＵ１０１は演算部に対応する。例えば、不揮発性記憶部１０４はハードディスク又は不揮発性の半導体メモリである。ＣＰＵ１０１は、記録媒体３に記録されたコンピュータプログラム３１をドライブ部１０３に読み取らせ、読み取ったコンピュータプログラム３１を不揮発性記憶部１０４に記憶させる。コンピュータプログラム３１は、動体検出装置１の外部からダウンロードされてもよく、予め不揮発性記憶部１０４に記憶されていてもよい。ＣＰＵ１０１は、必要に応じてコンピュータプログラム３１を不揮発性記憶部１０４からＲＡＭ１０２へロードし、ロードしたコンピュータプログラム３１に従って、各種の処理を実行する。ＣＰＵ１０１がコンピュータプログラム３１に従った処理を実行することにより、処理部１１が実現される。記憶部１５は、ＲＡＭ１０２及び不揮発性記憶部１０４から構成される。図中には、参照画像１５１及び入力画像１５２が不揮発性記憶部１０４に記憶された例を示したが、参照画像１５１及び入力画像１５２はＲＡＭ１０２に記憶されてもよい。なお、処理部１１の一部又は全部は、ソフトウェアを用いた処理によって実現されるのではなく、ハードウェアによって構成されていてもよい。
【００２５】
以下に、動体検出装置１の動作を説明する。図４は、動体検出装置１が実行する処理の手順を示すフローチャートである。ＣＰＵ１０１は、コンピュータプログラム３１に基づいて以下の処理を実行する。カメラ２から動体検出装置１へ画像が入力され（Ｓ１）、動体検出装置１は、参照画像１５１、及びカメラ２から入力された入力画像１５２を記憶部１５に記憶する（Ｓ２）。カメラ２から入力される画像は、カメラ２で撮影された動画の最新の部分、又はカメラ２で撮影された最新の静止画である。参照画像１５１は、背景のみが写されていると期待され得る画像である。例えば、参照画像１５１は、カメラ２で撮影された動画の最初の１フレームの画像、又は予め作成された画像である。入力画像１５２は、例えば、入力された動画に含まれる１フレームの画像、又は入力された静止画である。Ｓ１では、ＣＰＵ１０１は、入力画像１５２を不揮発性記憶部１０４及びＲＡＭ１０２に記憶し、予め不揮発性記憶部１０４に記憶されている参照画像１５１を読み出してＲＡＭ１０２に記憶する。ＣＰＵ１０１は、入力画像１５２内の明るさの分布を参照画像１５１内の明るさの分布に合わせるように入力画像１５２の明るさ補正を行い（Ｓ３）、次に、明るさ補正を行った後の入力画像１５２から動体検出を行う（Ｓ４）。Ｓ３の明るさ補正の処理は明るさ補正部１２に対応し、Ｓ４の動体検出の処理は動体検出部１３に対応する。
【００２６】
図５は、Ｓ３の明るさ補正の処理の詳細な手順を示すフローチャートである。図６は、参照画像１５１の例を示す模式図であり、図７は、入力画像１５２の例を示す模式図である。図６に示す参照画像１５１及び図７に示す入力画像１５２は、同じ室内を撮影した画像である。図６に示す参照画像１５１に比べて、図７に示す入力画像１５２では局所的に明るさが変動している。ＣＰＵ１０１は、入力画像１５２に含まれる各画素のグレースケール値を計算する（Ｓ３１）。グレースケール値は、各画素の明暗を表す値である。グレースケール値が８ビットで表される場合は、グレースケール値は０〜２５５のいずれかの値となる。グレースケール値は、各画素の色を表す複数の画素値から所定の方法で計算される。例えば、ＣＰＵ１０１は、画素毎に記録されているＲＧＢの明度の値から、所定の計算式を用いてグレースケール値を計算する。
【００２７】
ＣＰＵ１０１は、次に、入力画像１５２の各画素のグレースケール値に対して、エッジ保存平滑化を行う（Ｓ３２）。入力画像１５２の各画素のグレースケール値にエッジ保存平滑化を施した平滑化グレースケール値が計算される。ＣＰＵ１０１は、所定のフィルタを用いて、エッジ保存平滑化の計算を行う。エッジ保存平滑化により、入力画像１５２内のエッジが保存されながらも、明るさの分布が平滑化され、ノイズが除去される。参照画像１５１の各画素の平滑化グレースケール値は、予め計算されて不揮発性記憶部１０４に記憶されている。ＣＰＵ１０１は、参照画像１５１の各画素の平滑化グレースケール値を不揮発性記憶部１０４から読み出してＲＡＭ１０２に記憶する。なお、ＣＰＵ１０１は、Ｓ３１で参照画像１５１の各画素のグレースケール値をも計算し、Ｓ３２で参照画像１５１の各画素の平滑化グレースケール値をも計算してもよい。
【００２８】
ＣＰＵ１０１は、次に、参照画像１５１及び入力画像１５２に含まれる各画素の平滑化グレースケール値の比を計算する（Ｓ３３）。具体的には、参照画像１５１の平滑化グレースケール値を入力画像１５２の平滑化グレースケール値で除算した値を計算する。画像内での画素の位置を（ｘ，ｙ）で表し、参照画像１５１の平滑化グレースケール値をｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ）とし、入力画像１５２の平滑化グレースケール値をｉｎｐｕｔＭａｐ（ｘ，ｙ）とする。計算される比の値ｒａｔｉｏ（ｘ、ｙ）は、ｒａｔｉｏ（ｘ、ｙ）＝ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ）／ｉｎｐｕｔＭａｐ（ｘ，ｙ）である。
【００２９】
ＣＰＵ１０１は、次に、入力画像１５２に含まれる複数の画素から一の画素を選択する（Ｓ３４）。ＣＰＵ１０１は、次に、選択した画素についてＳ３３で計算した平滑化グレースケール値の比ｒａｔｉｏ（ｘ、ｙ）が１以下であるか否かを判定する（Ｓ３５）。平滑化グレースケール値の比が１以下である場合（Ｓ３５：ＹＥＳ）、ＣＰＵ１０１は、平滑化グレースケール値の比が１以下であることに応じた、画素の色を補正するための補正関数を生成する（Ｓ３６）。入力画像１５２での画素値をｉｎｐｕｔｌｍｇ（ｘ，ｙ）とし、補正後の画素値をｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）とする。平滑化グレースケール値の比が１以下である場合の補正関数は、ｉｎｐｕｔｌｍｇ（ｘ，ｙ）＝０、ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）＝０とした二次元座標系上の点（０，０）と、ｉｎｐｕｔｌｍｇ（ｘ，ｙ）＝ｉｎｐｕｔＭａｐ（ｘ，ｙ）、ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）＝ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ）とした点（ｉｎｐｕｔＭａｐ（ｘ，ｙ），ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ））とを通る線形関数とする。Ｓ３６では、ＣＰＵ１０１は、下記の（１）式で表される補正関数を生成する。
ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）＝ｉｎｐｕｔｌｍｇ（ｘ，ｙ）＊ｒａｔｉｏ（ｘ、ｙ）  …（１）
【００３０】
平滑化グレースケール値の比ｒａｔｉｏ（ｘ，ｙ）が１を超過する場合（Ｓ３５：ＮＯ）、ＣＰＵ１０１は、平滑化グレースケール値の比が１を超過することに応じた補正関数を生成する（Ｓ３７）。画素値が取り得る最大値をｍａｘとする。平滑化グレースケール値の比が１を超過する場合の補正関数は、点（ｉｎｐｕｔＭａｐ（ｘ，ｙ），ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ））と、ｉｎｐｕｔｌｍｇ（ｘ，ｙ）＝ｍａｘ、ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）＝ｍａｘとした点（ｍａｘ，ｍａｘ）とを通る線形関数とする。画素値が８ビットで表される場合は、ｍａｘ＝２５５となる。Ｓ３７では、ＣＰＵ１０１は、下記の（２）式〜（４）式で表される補正関数を生成する。
ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）＝ｉｎｐｕｔｌｍｇ（ｘ，ｙ）＊ｒａｔｅ＋ｏｆｆｓｅｔ  …（２）
ｒａｔｅ＝（ｍａｘ−ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ））／（ｍａｘ−ｉｎｐｕｔＭａｐ（ｘ，ｙ））  …（３）
ｏｆｆｓｅｔ＝ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ）−ｒａｔｅ＊ｉｎｐｕｔＭａｐ（ｘ，ｙ）  …（４）
【００３１】
図８及び図９は、補正関数の例を示す特性図である。図８は、平滑化グレースケール値の比ｒａｔｉｏ（ｘ、ｙ）が１以下の場合の補正関数を示し、図９は、平滑化グレースケール値の比が１を超過する場合の補正関数を示す。図８及び図９には、補正関数を実線で示し、二次元座標系上の点（０，０）及び（ｍａｘ，ｍａｘ）を結ぶ傾き１の直線を破線で示している。平滑化グレースケール値の比が１以下の場合でも、１を超過する場合でも、補正関数は線形関数であり、（ｉｎｐｕｔＭａｐ（ｘ，ｙ），ｒｅｆｅｒｅｎｃｅＭａｐ（ｘ，ｙ））を通る。また、補正関数の傾きは１以下になっている。平滑化グレースケール値の比が１である場合に、補正関数の傾きは１となる。何れの補正関数も、入力画像１５２での画素の明るさを参照画像１５１での明るさに合わせるように画素値を補正するための関数になっている。
【００３２】
平滑化グレースケール値の比が１を超過する場合は、補正関数を（１）式のように点（０，０）を通る線形関数にすると、補正前の値ｉｎｐｕｔｌｍｇ（ｘ，ｙ）がｍａｘに達しない内に補正後の値ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）がｍａｘに達するようになる。即ち、補正関数は非線形となり、明るさ補正によって白飛びが発生する虞がある。図９に示す如く、平滑化グレースケール値の比が１を超過する場合でも補正関数が線形になるように、平滑化グレースケール値の比の値に応じて補正関数を分けて生成することにより、明るさ補正による白飛びの発生が防止される。
【００３３】
Ｓ３６又はＳ３７が終了した後は、ＣＰＵ１０１は、生成した補正関数を用いて、入力画像１５２での画素値から、明るさが補正された色を表す画素値を計算する（Ｓ３８）。Ｓ３８では、ＣＰＵ１０１は、補正関数中のｉｎｐｕｔｌｍｇ（ｘ，ｙ）に画素値を代入し、補正後の画素値ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）を計算する。画素の色を表す複数の画素値の夫々について、同一の補正関数を用いて、補正後の画素値ｏｕｔｐｕｔｌｍｇ（ｘ，ｙ）が計算される。例えば、ＲＧＢの明度の値の夫々について、同一の補正関数により、明るさが補正された明度の値が計算される。なお、画素の色を表す複数の画素値が取り得る範囲が異なる場合は、（３）式中のｍａｘの値を画素値が取り得る範囲に応じた値にしてその他は同一な補正関数により、補正後の画素値が計算される。Ｓ３８により、入力画像１５２での画素の明るさを参照画像１５１での明るさに合わせるように画素の色を表す各画素値が補正される。ＣＰＵ１０１は、計算した補正後の各画素値を記憶部１５に記憶する。
【００３４】
ＣＰＵ１０１は、次に、Ｓ３４〜Ｓ３８の処理が未処理の画素があるか否かを判定する（Ｓ３９）。未処理の画素がある場合は（Ｓ３９：ＹＥＳ）、ＣＰＵ１０１は、処理をＳ３４へ戻し、未処理の画素の中から一の画素を選択する。入力画像１５２内の全ての画素について補正後の色を表す画素値が計算されることにより、入力画像１５２内の明るさの分布を参照画像１５１内の明るさの分布に合わせるように明るさ補正が行われる。入力画像１５２内の全ての画素について補正後の画素値が記憶されることにより、明るさ補正された入力画像１５２が記憶部１５に記憶される。未処理の画素が無い場合は（Ｓ３９：ＮＯ）、ＣＰＵ１０１は、Ｓ３の明るさ補正の処理を終了する。なお、ＣＰＵ１０１は、一旦各画素について補正関数を生成してから、各画素について補正後の画素値を計算する処理を行ってもよい。Ｓ３１の処理はグレースケール値計算部１２１に対応し、Ｓ３２の処理は平滑化部１２２に対応し、Ｓ３３の処理は比較部に対応し、Ｓ３４〜Ｓ３７の処理は補正関数生成部１２４に対応し、Ｓ３８の処理は補正計算部１２５に対応する。
【００３５】
図１０は、Ｓ４の動体検出の処理の詳細な手順を示すフローチャートである。図１１は、動体を写した入力画像１５２の例を示す模式図である。図１１に示す入力画像１５２には、図６に示す参照画像１５１に写された背景に加えて、人である動体が写っている。ＣＰＵ１０１は、明るさ補正が行われた画像に基づき、統計情報を利用した背景モデリングにより、背景差分に用いるための背景モデルを生成する（Ｓ４１）。不揮発性記憶部１０４には、背景を写しており明るさ補正が行われた複数の画像が記憶されており、ＣＰＵ１０１は、これらの複数の画像を読み出し、読み出した複数の画像に基づいて、統計情報を利用した背景モデリングを行う。背景モデルの基となる複数の画像には、過去に入力され明るさ補正が行われた複数の入力画像１５２が含まれる。背景モデルの基となる複数の画像には、参照画像１５１が含まれていてもよい。例えば、ＣＰＵ１０１は、明るさ補正が行われた過去の入力画像１５２中で背景に対応する部分の画素値の変動を統計処理して、背景モデルを生成する。なお、Ｓ４１では、ＣＰＵ１０１は、予め生成されて記憶されている背景モデルを読み出してもよく、予め生成されている背景モデルを更新してもよい。
【００３６】
ＣＰＵ１０１は、次に、背景差分により、明るさ補正が行われた入力画像１５２から動体候補を検出する（Ｓ４２）。Ｓ４２では、ＣＰＵ１０１は、背景モデルと明るさ補正が行われた入力画像１５２とを比較し、画素値が背景モデルと異なっている画素を抽出し、抽出した画素が含まれる領域を動体候補として検出する。例えば、ＣＰＵ１０１は、背景モデルにおいて画素値の平均及び標準偏差を用いて各画素について定められた許容範囲内に画素値が含まれていない場合に、画素値が背景モデルと異なっているとする。Ｓ４２では、ＣＰＵ１０１は、画素値が背景モデルと異なっている画素を含んだ領域を矩形枠で囲み、入力画像１５２中で矩形枠で囲んだ領域を動体候補としてラベリングする。Ｓ４２では、動体候補が検出されないこともあり、複数の動体候補が検出されることもある。
【００３７】
ＣＰＵ１０１は、次に、動体候補があるか否かを判定する（Ｓ４３）。動体候補がある場合は（Ｓ４３：ＹＥＳ）、ＣＰＵ１０１は、一の動体候補を選択する（Ｓ４４）。ＣＰＵ１０１は、次に、選択した動体候補の矩形枠の入力画像１５２内でのサイズが所定範囲内であるか否かを判定する（Ｓ４５）。矩形枠のサイズの上限値及び下限値が予め定められており、矩形枠のサイズが下限値以上かつ上限値以下である場合に、ＣＰＵ１０１は、動体候補の矩形枠のサイズが所定範囲内であると判定する。矩形枠のサイズの上限値及び下限値は、入力画像１５２に写り得る動体の適切なサイズに合わせて予め定められている。上限値及び下限値は、予め不揮発性記憶部１０４に記憶されているか、又はコンピュータプログラム３１に記録されている。
【００３８】
動体候補の矩形枠のサイズが所定範囲内であった場合は（Ｓ４５：ＹＥＳ）、ＣＰＵ１０１は、入力画像１５２中で矩形枠に囲まれた領域を動体であると特定する（Ｓ４６）。ＣＰＵ１０１は、動体であると特定した領域を示す情報を入力画像１５２に関連付けて不揮発性記憶部１０４に記憶する。動体候補の矩形枠のサイズが所定範囲から外れている場合（Ｓ４５：ＮＯ）、又はＳ４６が終了した後は、ＣＰＵ１０１は、処理をＳ４３へ戻し、未処理の動体候補があるか否かを判定する。
【００３９】
Ｓ４３で動体候補が無い場合は（Ｓ４３：ＮＯ）、Ｓ４の動体検出の処理を終了する。最終的に、動体が全く検出されないこともあり、複数の動体が検出されることもある。Ｓ４１の処理は背景モデル生成部１３１に対応し、Ｓ４２の処理は動体候補検出部１３２に対応し、Ｓ４３〜Ｓ４６の処理は動体特定部１３３に対応する。なお、ＣＰＵ１０１は、Ｓ４３の処理の後で、背景モデルを更新し、不揮発性記憶部１０４に記憶してもよい。Ｓ４の動体検出の処理が終了した後は、動体検出装置１は処理を終了する。
【００４０】
図１２及び図１３は、動体の検出例を示す模式図である。図１２には、図１１に示す入力画像１５２から明るさ補正を行わずに動体を検出した例を示している。図１３には、本実施形態により、図１１に示す入力画像１５２から明るさ補正を行った後に動体を検出した例を示している。図１２に示した例では、局所的に明るさが変動した部分が動体として誤検出されている。図１３に示した例では、局所的に明るさが変動した部分が誤検出されておらず、画像内に写っている動体が矩形枠に囲まれて特定されている。
【００４１】
カメラ２から画像が入力される都度、動体検出装置１はＳ１〜Ｓ４の処理を実行する。例えば、カメラ２で撮影された動画の一フレームが入力される都度、動体検出装置１はＳ１〜Ｓ４の処理を実行する。処理で利用される参照画像１５１は同一であってもよく、時間経過に応じて参照画像１５１が変更されてもよい。なお、動体検出装置１は、画像が入力される都度処理を実行するのではなく、その他のタイミングで処理を実行してもよい。例えば、動体検出装置１は、入力された画像を記憶部１５に記憶しておき、所定量の画像が記憶された場合、処理の開始の指示を受け付けた場合、又は定期的に、記憶された画像の夫々についてＳ３及びＳ４の処理を実行してもよい。
【００４２】
動体検出装置１での動体の検出結果は、他の装置での処理に利用される。例えば、動体が検出された場合に、カメラ２が撮影する動画の録画を開始する処理が行われる。また、例えば、動体が検出された場合に、警報を発する処理が行われる。また、例えば、動体が検出された場合に、接客用ロボットが接客を開始する処理が行われる。
【００４３】
以上詳述した如く、本実施形態においては、動体検出装置１は、入力画像１５２の明るさ補正を行い、その後に背景差分による動体検出を行う。統計情報を利用した背景モデルを用いた背景差分により、局所的な背景の変化に対してロバスト性のある動体検出を行うことができる。即ち、樹木の揺動等の局所的な背景の変化が動体として誤検出されることが抑制される。また、入力画像１５２内の明るさの分布を参照画像１５１内の明るさの分布に合わせるように明るさ補正を行うことで、入力画像１５２内では、参照画像１５１に比べた局所的な明るさの変化が減少する。局所的な明るさの変化が減少した入力画像１５２から動体検出を行うことにより、局所的な明るさ変動に対してロバスト性のある動体検出を行うことができる。即ち、局所的な明るさ変動が動体として誤検出されることが抑制される。従って、図１３に示すように、動体の誤検出が確実に減少する。
【００４４】
局所的な明るさ変動に起因する誤検出が抑制されるので、カメラ２で露出又はホワイトバランス等の調整により明るさの補正を行った場合でも、誤検出が抑制される。このため、長時間に亘って動体の検出を行う場合であっても、正常な画像を取得することが可能となり、動体検出を継続することが可能となる。
【００４５】
なお、本実施形態においては、カメラ２で作成した画像から動体を検出する形態を示したが、動体検出装置１は、カメラでの撮影以外の方法で作成した画像から動体を検出する形態であってもよい。また、動体検出装置１は、動画に含まれる１フレーム目の画像を参照画像１５１として設定する他に、動画に含まれる全フレームの内で、統計情報を利用した背景モデルを用いた背景差分による差分値が最も小さい画像を、初期の動体が含まれていない基準画像となる参照画像１５１として特定することも可能である。また、本実施形態においては、カラー画像から動体を検出する形態を示したが、動体検出装置１は、単色画像から動体を検出する形態であってもよい。また、本実施形態においては、動体検出装置１とカメラ２とが分離した形態を示したが、動体検出装置１とカメラ２とは一体であってもよい。例えば、一体となった動体検出装置１及びカメラ２をスマートフォンで構成してもよい。
【符号の説明】
【００４６】
１  動体検出装置
１０１  ＣＰＵ
１０２  ＲＡＭ
１０４  不揮発性記憶部
１１  処理部
１２  明るさ補正部
１３  動体検出部
１５  記憶部
１５１  参照画像
１５２  入力画像
２  カメラ
３  記録媒体
３１  コンピュータプログラム
【図１】
2018055621.tif 000003
【図２】
2018055621.tif 000004
【図３】
2018055621.tif 000005
【図４】
2018055621.tif 000006
【図５】
2018055621.tif 000007
【図６】
2018055621.tif 000008
【図７】
2018055621.tif 000009
【図８】
2018055621.tif 000010
【図９】
2018055621.tif 000011
【図１０】
2018055621.tif 000012
【図１１】
2018055621.tif 000013
【図１２】
2018055621.tif 000014
【図１３】
2018055621.tif 000015