(57)【要約】  情報処理装置（２０００）は、画像データ（１０）内の複数の部分領域（１２）それぞれについて確度データを生成する。確度データは、画像データ（１０）上の位置と大きさに対応づけて、その位置にあるその大きさの画像領域に対象物体が存在する確からしさを示すデータである。情報処理装置（２０００）は、各部分領域（１２）について生成された確度データの総和を算出することで、位置と大きさに対する対象物体の存在確度の分布（PHD: Probability Hypothesis Density）を算出する。情報処理装置（２０００）は、この PHD から、それぞれが１つの対象物体に対応する部分分布を抽出する。情報処理装置（２０００）は、抽出した部分分布ごとに、その部分分布の統計値に基づいて、その部分分布が表す対象物体の位置及び大きさを出力する。
2019229979.tif 000002
【特許請求の範囲】
【請求項１】
画像データを取得し、その画像データに含まれる複数の部分領域それぞれについて、位置と大きさに対する対象物体の存在の確からしさを表す確度データを生成する生成部と、
各前記部分領域について生成された確度データの総和を算出することで、位置と大きさに対する前記対象物体の存在の確からしさの分布を算出し、前記算出した分布から、それぞれが１つの前記対象物体に対応する１つ以上の部分分布を抽出する抽出部と、
前記抽出した部分分布ごとに、その部分分布の統計値に基づいて、その部分分布に対応する対象物体の位置及び大きさを出力する出力部と、を有する情報処理装置。
【請求項２】
前記生成部は、画像データに含まれる複数の部分領域それぞれについて前記確度データを出力するニューラルネットワークを含み、そのニューラルネットワークに前記取得した画像データを入力することで、その画像データに含まれる複数の部分領域それぞれについて前記確度データを生成する、請求項１に記載の情報処理装置。
【請求項３】
前記確度データは、部分領域の位置及び大きさに対してその位置及び大きさの部分領域に物体が存在する確からしさを示す分布を、所定のモデルに従った分布で表し、
前記ニューラルネットワークは、前記部分領域ごとに、その部分領域に対象物体が存在する確からしさと前記所定のモデルのパラメータ値を出力する、請求項２に記載の情報処理装置。
【請求項４】
前記抽出部は、
前記確度データの総和で表される分布の積分値に基づいて、前記画像データに含まれる物体の個数を算出し、
前記確度データの総和で表される分布から、前記個数の前記部分分布を抽出する、請求項１乃至３いずれか一項に記載の情報処理装置。
【請求項５】
前記抽出部は、前記確度データの総和で表される分布から、それぞれ積分値が１である前記部分分布を抽出する、請求項１乃至４いずれか一項に記載の情報処理装置。
【請求項６】
前記生成部は、それぞれ異なる種類の前記対象物体ごとに前記確度データを生成し、
前記抽出部は、それぞれ異なる種類の前記対象物体ごとに、前記対象物体の存在の確からしさの分布の算出、及びその分布からの前記部分分布の抽出を行い、
前記出力部は、各前記部分分布に対応する対象物体の位置及び大きさを、その部分分布に対応する前記対象物体の種類と共に出力する、請求項１乃至５いずれか一項に記載の情報処理装置。
【請求項７】
コンピュータによって実行される制御方法であって、
画像データを取得し、その画像データに含まれる複数の部分領域それぞれについて、位置と大きさに対する対象物体の存在の確からしさを表す確度データを生成する生成ステップと、
各前記部分領域について生成された確度データの総和を算出することで、位置と大きさに対する前記対象物体の存在の確からしさの分布を算出し、前記算出した分布から、それぞれが１つの前記対象物体に対応する１つ以上の部分分布を抽出する抽出ステップと、
前記抽出した部分分布ごとに、その部分分布の統計値に基づいて、その部分分布に対応する対象物体の位置及び大きさを出力する出力ステップと、を有する制御方法。
【請求項８】
前記生成ステップにおいて、画像データに含まれる複数の部分領域それぞれについて前記確度データを出力するニューラルネットワークを含み、そのニューラルネットワークに前記取得した画像データを入力することで、その画像データに含まれる複数の部分領域それぞれについて前記確度データを生成する、請求項７に記載の制御方法。
【請求項９】
前記確度データは、部分領域の位置及び大きさに対してその位置及び大きさの部分領域に物体が存在する確からしさを示す分布を、所定のモデルに従った分布で表し、
前記ニューラルネットワークは、前記部分領域ごとに、その部分領域に対象物体が存在する確からしさと前記所定のモデルのパラメータ値を出力する、請求項８に記載の制御方法。
【請求項１０】
前記抽出ステップにおいて、
前記確度データの総和で表される分布の積分値に基づいて、前記画像データに含まれる物体の個数を算出し、
前記確度データの総和で表される分布から、前記個数の前記部分分布を抽出する、請求項７乃至９いずれか一項に記載の制御方法。
【請求項１１】
前記抽出ステップにおいて、前記確度データの総和で表される分布から、それぞれ積分値が１である前記部分分布を抽出する、請求項７乃至１０いずれか一項に記載の制御方法。
【請求項１２】
前記生成ステップにおいて、それぞれ異なる種類の前記対象物体ごとに前記確度データを生成し、
前記抽出ステップにおいて、それぞれ異なる種類の前記対象物体ごとに、前記対象物体の存在の確からしさの分布の算出、及びその分布からの前記部分分布の抽出を行い、
前記出力ステップは、各前記部分分布に対応する対象物体の位置及び大きさを、その部分分布に対応する前記対象物体の種類と共に出力する、請求項７乃至１１いずれか一項に記載の制御方法。
【請求項１３】
請求項７乃至１２いずれか一項に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像から物体を検出する技術に関する。
【背景技術】
【０００２】
画像データから物体を検出する技術が開発されている。例えば特許文献１は、ディープニューラルネットワークを利用して物体検出を行う技術を開示している。特許文献１のシステムは、畳み込みニューラルネットワークを利用して画像データの特徴マップを生成し、生成した特徴マップを region proposal network（RPN）と呼ばれるニューラルネットワークに入力することで、内部に物体が含まれる矩形領域の候補（region proposal）を多数出力する。さらにこのシステムは、box-classification layer という層でクラス分類を行うことで、候補の矩形領域に含まれる物体のクラスを推定する。また、このシステムは、box-regression convolutional layer という層で回帰を行うことで、候補の矩形領域の位置と大きさを調整する。【０００３】
また、非特許文献１のシステムは、畳み込みニューラルネットワークを利用して複数の特徴マップを生成し、それぞれの特徴マップから多数の物体候補を出力する。前記それぞれの物体候補としては矩形座標と物体クラスの確からしさを含む。【０００４】
特許文献１の手法も非特許文献１の手法も、上記出力には正解ではない多数の誤出力が含まれる。そのため、non-maximum surpressionと呼ばれる近接して重なりが大きい矩形候補を削減する処理を行うことで、多数の物体候補から最終的に出力する検出結果を得る。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１７／０２０６４３１号明細書
【非特許文献１】Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott E. Reed, Cheng-Yang Fu and Alexander C. Berg, “Single Shot MultiBox Detector,” ECCV 2016.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１や非特許文献１では、物体同士の重なりが大きい場合を誤検出として排除するため、逆に重なりが大きくなるケースが考慮されておらず、このようなケースでは重なっている複数の物体が１つの物体として誤って検出されてしまうと考えられる。【０００７】
本願発明は上記の課題に鑑みてなされたものであり、画像データにおいて物体同士が重なっていても、各物体を区別して検出できる技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、１）画像データを取得し、その画像データに含まれる複数の部分領域それぞれについて、位置と大きさに対する対象物体の存在の確からしさを表す確度データを生成する生成部と、２）各部分領域について生成された確度データの総和を算出することで、位置と大きさに対する対象物体の存在の確からしさの分布を算出し、算出した分布から、それぞれが１つの対象物体に対応する１つ以上の部分分布を抽出する抽出部と、３）抽出した部分分布ごとに、その部分分布の統計値に基づいて、その部分分布に対応する対象物体の位置及び大きさを出力する出力部と、を有する。【０００９】
本発明の制御方法は、コンピュータによって実行される。当該制御方法は、１）画像データを取得し、その画像データに含まれる複数の部分領域それぞれについて、位置と大きさに対する対象物体の存在の確からしさを表す確度データを生成する生成ステップと、２）各部分領域について生成された確度データの総和を算出することで、位置と大きさに対する対象物体の存在の確からしさの分布を算出し、算出した分布から、それぞれが１つの対象物体に対応する１つ以上の部分分布を抽出する抽出ステップと、３）抽出した部分分布ごとに、その部分分布の統計値に基づいて、その部分分布に対応する対象物体の位置及び大きさを出力する出力ステップと、を有する。【００１０】
本発明のプログラムは、コンピュータに、本発明の制御方法が有する各ステップを実行させる。
【発明の効果】
【００１１】
本発明によれば、画像データにおいて物体同士が重なっていても、各物体を区別して検出できる技術が提供される。
【図面の簡単な説明】
【００１２】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１３】
【図１】本実施形態の情報処理装置が行う処理を概念的に示す図である。
【図２】対象物体同士の重なりが大きい画像データを例示する図である。
【図３】実施形態１の情報処理装置の機能構成を例示する図である。
【図４】情報処理装置を実現するための計算機を例示する図である。
【図５】実施形態１の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図６】スライディングウインドウを利用して部分領域を抽出する方法を例示する図である。
【図７】確度データの生成に用いるニューラルネットワークを例示する図である。
【図８】確からしさ Li に基づいて生成される確度データを概念的に示す図である。
【図９】確度データが示す正規分布のパラメータを出力するニューラルネットワークを例示する図である。
【図１０】PHD の最大値を基準として部分分布を抽出する処理の流れを例示するフローチャートである。
【図１１】部分分布に基づいて特定された対象物体の位置及び大きさを例示する図である。
【図１２】ニューラルネットワークの学習を行う機能を有する情報処理装置を例示するブロック図である。
【図１３】理想の PHD を例示する図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００１５】
［実施形態１］
＜概要＞
図１は、本実施形態の情報処理装置２０００が行う処理を概念的に示す図である。情報処理装置２０００は、画像データ１０を取得し、画像データ１０から対象物体を検出する。対象物体の検出とは、画像データ１０の中から、対象物体が含まれる画像領域（例えば外接矩形）の位置と大きさを特定することを意味する。ここで、任意の物体が対象物体として扱われるようにしてもよいし、特定の種類の物体のみ（例えば人のみ）が対象物体として扱われるようにしてもよい。
【００１６】
情報処理装置２０００は、以下で説明する方法によって物体の検出を行う。まず情報処理装置２０００は、画像データ１０内の複数の部分領域１２それぞれについて確度データを表すパラメータを生成する。確度データは、画像データ１０上の位置と大きさに対応づけて、その位置にあるその大きさの画像領域に対象物体が存在する確からしさの分布を示すデータである。具体的には、あらかじめ定められた積分が１となる確率密度関数f、生成されるパラメータをLとすると、確度データはL×fで表現される。
【００１７】
前記確率密度関数fとしては、例えば部分領域それぞれに応じて位置や分散の異なる正規分布を用いても良いし、あるいはまた、それぞれ特定の位置のみの存在を表現するためにδ関数を用いても良いし、他の確率密度関数を採用しても良い。ここで、δ関数とは特定の値のみ無限大となり、そのほかの値では０であり、かつ積分すると１となる関数を表す。
【００１８】
確度データL×fは、積分値が生成されたパラメータLの値に一致する。図１における確度データは、このような分布を示している。確度データのこれ以上の詳細については後述する。
【００１９】
情報処理装置２０００は、各部分領域１２について生成された確度データの総和を算出することで、位置と大きさに対する対象物体の存在確度の分布を算出する。この分布は、いわゆる Probability Hypothesis density（PHD）となる。PHD は積分した値が存在する物体の数に一致するという特徴を持つ分布関数である。情報処理装置２０００は、この PHD から、それぞれが１つの対象物体に対応する部分的な分布（以下、部分分布）を抽出する。理想的には、前記部分分布の積分値が１になるように抽出し、それぞれが、１つの対象物体に対応する。
【００２０】
図１では、PHD から３つの部分分布が抽出されている。PHD の積分した値が３であり、それぞれの部分分布の積分が１になるように抽出される。なお、図１では３つの部分分布はそれぞれ重複がないように抽出されているが、それぞれの部分分布に重複があるよう抽出してもかまわない。例えば部分分布の形状として正規分布に限定すれば、それぞれの積分値は１になるが、部分分布の和と PHD との誤差が最小になるように部分分布を決定しても良い。あるいはそれぞれの部分分布として正規分布×重みに限定しても良い。前記限定の場合は積分値が重みに一致するので、部分分布の和と PHD との誤差と、重み値と１との誤差の総和を最小になるよう部分分布を決定しても良い。あるいは限定する分布形状として正規分布以外を採用しても良い。
【００２１】
情報処理装置２０００は、抽出した部分分布ごとに、その部分分布の平均値などの統計値に基づいて、その部分分布が表す対象物体の位置及び大きさを出力する。対象物体の位置は、例えば対象物体を表す外接矩形の所定の位置（例えば左上端）の座標で表される。対象物体の大きさは、例えば対象物体を表す矩形領域の幅と高さで表すことができる。
【００２２】
なお、図１に示す各分布は、図示の都合上２次元（横軸：位置・大きさ×縦軸：角度）で描画されているが、実際には３次元以上の空間上の分布になる。例えば、画像領域の位置を座標で表し、画像領域の形状を矩形にしてその大きさを幅と高さで表すとする。この場合、図１に示す各分布は、５次元（X 座標、Y 座標、幅、高さ×確度）の空間上で表現される。
【００２３】
＜作用効果＞
本実施形態の情報処理装置２０００によれば、前述したように、部分領域ごとに算出した確度データを積算することで PHD を算出し、そこから１つの対象物体を表す部分分布を抽出するという方法で、対象物体が検出される。この方法によれば、対象物体同士の重なりが大きい場合であっても、これらを高い精度で区別し、それぞれ別の対象物体として検出することができる。以下、その理由を、図２を参照して説明する。
【００２４】
図２は、対象物体同士の重なりが大きい画像データ１０を例示する図である。画像データ１０は、二人の人物がすれ違っている様子が撮像されたものである。画像データ１０から正しく人物を検出すると、二人の人物が検出される。しかしながら既存の手法では、このように物体同士の重なりが大きい人物を区別して検出することが難しく、二人の人物をまとめて一人の人物として検出してしまう蓋然性が高い。
【００２５】
この点、本実施形態の情報処理装置２０００は、部分領域１２ごとに生成した確度データを積算して得られる PHD を生成する。この PHD は、任意の区間で積分した値がその区間の対象物体の数を表す。このように、情報処理装置２０００では、各部分領域１２から得られた情報を統合した情報である PHD の中に、対象物体の数に関する情報が含まれることになる。このように対象物体の数に関する情報を含む PHD の積分値を確認することで、対象物体同士の重なりが大きい画像データからも、各対象物体を精度良く検出することができる。
【００２６】
具体的には、PHD から積分値が１となる部分分布を抽出する。これにより、対象物体同士の重なりが大きかったとしても、それらの対象物体を切り離して、各対象物体に対応する画像領域の位置及び大きさの確率分布を得ることができる。例えば図２では、PHD から、斜線で塗られた部分分布とドット柄で塗られた部分分布が抽出されている。そして、抽出された部分分布ごとに対象物体の位置及び大きさを特定することで、各対象物体を検出することができる。
【００２７】
なお、図１や図２を参照した上述の説明は、情報処理装置２０００の理解を容易にするための例示であり、情報処理装置２０００の機能を限定するものではない。以下、本実施形態の情報処理装置２０００についてさらに詳細に説明する。
【００２８】
＜情報処理装置２０００の機能構成の例＞
図３は、実施形態１の情報処理装置２０００の機能構成を例示する図である。情報処理装置２０００は、生成部２０２０、抽出部２０４０、及び出力部２０６０を有する。生成部２０２０は、画像データ１０を取得し、その画像データ１０に含まれる複数の部分領域１２それぞれについて確度データを生成する。抽出部２０４０は、各部分領域１２について生成された確度データの総和を算出することで PHD を算出する。抽出部２０４０は、算出した PHDから、それぞれが１つの対象物体に対応する１つ以上の部分分布を抽出する。出力部２０６０は、抽出した部分分布ごとに、その部分分布の統計値に基づいて、その部分分布が表す対象物体の位置及び大きさを出力する。
【００２９】
＜情報処理装置２０００のハードウエア構成＞
情報処理装置２０００の各機能構成部は、各機能構成部を実現するハードウエア（例：ハードワイヤードされた電子回路など）で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ（例：電子回路とそれを制御するプログラムの組み合わせなど）で実現されてもよい。以下、情報処理装置２０００の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【００３０】
図４は、情報処理装置２０００を実現するための計算機１０００を例示する図である。計算機１０００は任意の計算機である。例えば計算機１０００は、Personal Computer（PC）やサーバマシンなどである。計算機１０００は、情報処理装置２０００を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【００３１】
計算機１０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０を有する。バス１０２０は、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ１０４０などを互いに接続する方法は、バス接続に限定されない。
【００３２】
プロセッサ１０４０は、CPU（Central Processing Unit）、GPU（Graphics Processing Unit）、FPGA（Field-Programmable Gate Array）などの種々のプロセッサである。メモリ１０６０は、RAM（Random Access Memory）などを用いて実現される主記憶装置である。ストレージデバイス１０８０は、ハードディスク、SSD（Solid State Drive）、メモリカード、又は ROM（Read Only Memory）などを用いて実現される補助記憶装置である。
【００３３】
入出力インタフェース１１００は、計算機１０００と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース１１００には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。ネットワークインタフェース１１２０は、計算機１０００を通信網に接続するためのインタフェースである。この通信網は、例えば LAN（Local Area Network）や WAN（Wide Area Network）である。ネットワークインタフェース１１２０が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
【００３４】
ストレージデバイス１０８０は、情報処理装置２０００の各機能構成部を実現するプログラムモジュールを記憶している。プロセッサ１０４０は、これら各プログラムモジュールをメモリ１０６０に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
【００３５】
＜処理の流れ＞
図５は、実施形態１の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。生成部２０２０は、画像データ１０を取得する（Ｓ１０２）。生成部２０２０は、画像データ１０に含まれる複数の部分領域１２ごとに確度データを生成する（Ｓ１０４）。抽出部２０４０は、各確度データが表す確度を積算して PHD を算出する（Ｓ１０６）。抽出部２０４０は、PHD から１つ以上の部分分布を抽出する（Ｓ１０８）。出力部２０６０は、各部分分布ごとに、部分分布に対応する対象物体の位置及び大きさを出力する（Ｓ１１０）。
【００３６】
情報処理装置２０００が図５に示す一連の処理を実行する契機は任意である。例えば情報処理装置２０００は、画像データ１０が入力されたことに応じて上記一連の処理を実行する。その他にも例えば、情報処理装置２０００は、ユーザからの所定の入力操作に応じて、上記一連の処理を実行してもよい。
【００３７】
＜画像データ１０の取得：Ｓ１０２＞
生成部２０２０は画像データ１０を取得する（Ｓ１０２）。画像データ１０としては、任意の画像データを利用できる。例えば画像データ１０は、カメラによって生成された撮像画像である。このカメラは、スチルカメラであってもよいしビデオカメラであってもよい。なお、「カメラによって生成された撮像画像」は、カメラによって生成された撮像画像そのものであってもよいし、カメラによって生成された撮像画像に何らかの加工が加えられたものであってもよい。
【００３８】
画像データ１０として撮像画像を利用する場合、情報処理装置２０００は、その画像データ１０を生成するカメラの内部で実現されてもよい。例えば監視カメラの内部で情報処理装置２０００を実現することにより、監視カメラによって生成される監視映像からリアルタイムで物体を検出することができる。このように内部に情報処理装置２０００の機能を持たせるカメラとしては、例えば、インテリジェントカメラ、IP（Internet Protocol）カメラ、ネットワークカメラなどと呼ばれる種類のカメラを利用することができる。
【００３９】
生成部２０２０が画像データ１０を取得する方法は任意である。例えば生成部２０２０は、画像データ１０が記憶されている記憶装置から画像データ１０を取得する。画像データ１０が記憶されている記憶装置は、情報処理装置２０００の内部に設けられていてもよいし、外部に設けられていてもよい。その他にも例えば、情報処理装置２０００は、ユーザによる入力操作によって入力される画像データ１０を取得する。その他にも例えば、生成部２０２０は、他の装置によって送信される画像データ１０を受信することで、画像データ１０を取得する。
【００４０】
＜部分領域１２について＞
部分領域１２は、画像データ１０に含まれる部分的な画像領域である。部分領域１２は、その位置及び大きさの少なくとも一方について、他の部分領域１２と互いに異なる。
【００４１】
生成部２０２０は、画像データ１０に含まれる各部分領域１２を抽出し、抽出した部分領域１２を解析することで、各部分領域１２についての確度データを生成する。部分領域１２は、例えばスライディングウインドウを利用して抽出することができる。図６は、スライディングウインドウを利用して部分領域１２を抽出する方法を例示する図である。情報処理装置２０００は、所定の大きさ（幅：Ws、高さ：Hs）のスライディングウインドウを所定のストライド d で移動させる。各位置のスライディングウインドウからは、大きさが異なる複数の画像領域を抽出され、それぞれが部分領域１２として扱われる。こうすることで、位置と大きさが様々な部分領域１２を抽出することができる。なお、このようにして抽出する部分領域１２としては、例えば特許文献１に開示されている Anchor box を用いた手法を利用できる。
【００４２】
部分領域１２は、画像データ１０から直接抽出されるのではなく、画像データ１０から生成した特徴マップから抽出されてもよい。この場合、後述するニューラルネットワーク２０は、例えば、画像データ１０から特徴マップを抽出する層（畳み込みニューラルネットワークにおける畳み込み層など）と、その層から出力される特徴マップから部分領域１２を抽出して確度データを生成する層とで構成される。
【００４３】
ここで、部分領域１２の形状は必ずしも矩形に限定されない。例えば、部分領域１２の形状を正円にする場合、部分領域１２は、中心座標と半径の長さで表すことができる。また、部分領域１２を頂点の集合で表すようにすれば、任意の形状の多角形を部分領域１２として扱うことができる。この場合、部分領域１２の頂点の集合により、部分領域１２の位置及び大きさの双方が定まる。
【００４４】
＜確度データの生成：Ｓ１０４＞
生成部２０２０は、画像データ１０に含まれる複数の部分領域１２ごとに確度データを表すパラメータを生成し、確度データを生成する（Ｓ１０４）。例えば確度データを表すパラメータは、ニューラルネットワークを利用して生成される。図７は、確度データを表すパラメータ生成に用いるニューラルネットワークを例示する図である。ニューラルネットワーク２０は、画像データ１０が入力されたことに応じ、画像データ１０に含まれる各部分領域１２について、その位置及び大きさの画像領域に対象物体が存在する確からしさ Li を出力する。Li は、ｉ番目の部分領域１２について出力される確からしさである。
【００４５】
例えば生成部２０２０は、確からしさ Li に基づいて定まる分布を確度データとして設定する。
【００４６】
図８は、確からしさ Li に基づいて生成される確度データを概念的に示す図である。図８の上段において、確度データは、確からしさ Li に基づいて生成される、分散が０の分布である。この分布は、δ関数を用い、Li×δ関数と表される。
【００４７】
一方、図８の下段における確度データは、分散が０ではない分布を表す。例えば、基準とする分布（以下、基準分布）として、正規分布などの所定のモデルに従った分布を予め定めておく。正規分布を利用する場合、例えば基準分布は、積分値が１であり、平均が部分領域１２の位置及び大きさであり、分散が所定の値である分布とすることができる。分散に設定しておく値は任意である。
【００４８】
生成部２０２０は、基準分布に確からしさ Li を乗算することで、確度データを生成する。例えば図８の下段では、基準分布のモデルが正規分布である。そして、部分領域１２の位置（xi, yi）と部分領域１２の大きさ（wi, hi）に基づき、基準分布の平均が（xi, yi, wi, hi）となっている。また、基準分布の分散は vi である。このことから、基準分布は N((xi, yi, wi, hi), vi) である。さらに、ニューラルネットワーク２０から出力された確度が Li である。そこで、生成部２０２０は、基準分布に Li を乗算することで、確度データが示す分布を生成している。得られた確度データの分布は積分値がLiになっている。
【００４９】
ここで、分布モデルに従った基準分布を予め定めておくのではなく、分布モデルのパラメータがニューラルネットワーク２０から出力されるようにしてもよい。例えば正規分布を利用する場合、分布モデルのパラメータは、前述した平均と分散である。そこで、ニューラルネットワーク２０が、部分領域１２ごとに平均や分散を出力するようにする。
【００５０】
図９は、確度データが示す正規分布のパラメータを出力するニューラルネットワーク２０を例示する図である。図９では、部分領域１２ごとに「確からしさ Li、正規分布の平均を表す（xiu, yiu, wiu, hiu）、正規分布の分散 vi」が出力されている。そこで生成部２０２０は、部分領域１２ごとに、ニューラルネットワーク２０から出力された平均と分散で定まる正規分布に確からしさ Li を乗算することで、確度データが示す分布を生成する。
【００５１】
ここで、ニューラルネットワーク２０から出力される位置（xi, yi）は、対応するｉ番目の部分領域１２の元々の位置とは異なってもよい。同様に、ニューラルネットワーク２０から出力される大きさ（wi, hi）も、対応するｉ番目の部分領域１２の元々の大きさとは異なってもよい。これは、後述するように、理想の PHD を出力するようにニューラルネットワーク２０を学習させることにより、ニューラルネットワーク２０が部分領域１２の中に対象物体が含まれる確度を高くするように部分領域１２の位置及び大きさを調整して出力するようになるためである。
【００５２】
なお、ニューラルネットワーク２０は必ずしも分布モデルのパラメータの全てを出力する必要はなく、その一部のみを出力してもよい。例えば、正規分布の平均がニューラルネットワーク２０から出力され、分散については予め定めておいた値を利用する。
【００５３】
ニューラルネットワーク２０が上述した動作を行うようにするためには、そのような動作が行われるようにニューラルネットワーク２０を予め学習させておく必要がある。ニューラルネットワーク２０の学習方法については後述する。なお、ニューラルネットワークの内部構造（層の数と順序、各層の種類、及び各層の結合関係など）は任意である。例えば、ニューラルネットワーク２０の構造には、非特許文献１に記載されている region proposal network（RPN）と同じものを採用できる。あるいは非特許文献１に記載されているネットワークを利用しても良い。
【００５４】
なお、確度データの生成は必ずしもニューラルネットワークを用いて行われる必要はなく、画像データの中の複数の部分領域それぞれについて、その部分領域に対象の物体が含まれる確度を算出する既存の他の手法を利用することもできる。
【００５５】
＜部分分布の抽出：Ｓ１０８＞
抽出部２０４０は、PHD から１つ以上の部分分布を抽出する。部分分布は、その内部に１つの対象物体を含む部分領域について、その部分領域の位置及び大きさに対する対象物体の存在確率を表す確率分布である。部分分布は確率分布であり、その積分値は１である。
【００５６】
まず抽出部２０４０は、PHD に基づいて、画像データ１０に含まれる対象物体の個数を算出する。具体的には、抽出部２０４０は、PHD の積分値を算出し、算出した積分値を、画像データ１０に含まれる対象物体の個数とする。ただし、誤差等により、PHD の積分値が対象物体の数と完全には一致せず、自然数とならないことも考えられる。そこでこの場合、抽出部２０４０は、PHD の積分値の概算値（例えば１未満の値を切り捨てた値）を、対象物体の個数として扱う。
【００５７】
抽出部２０４０は、算出した個数の部分分布を PHD から抽出する。例えば抽出部２０４０は、PHD の最大値を基準として、PHD から部分分布を抽出していく。図１０は、PHD の最大値を基準として部分分布を抽出する処理の流れを例示するフローチャートである。図１０のフローチャートが示すループ処理は、カウンタ i が PHD の積分値 S 未満である間繰り返し実行される。カウンタ i は、最初に０に初期化され、ループ処理が実行されるごとに１ずつインクリメントされる。この場合、部分分布の個数は S 以下の最大の整数となる。
【００５８】
Ｓ２０２において、抽出部２０４０は、カウンタ i が S 未満であるか否かを判定する。 i が S 未満であれば、図１０の処理はＳ２０４に進む。一方、i が S 以上であれば、図１０の処理は終了する。
【００５９】
抽出部２０４０は、PHD の最大値に対応する位置及び大きさを特定する（Ｓ２０４）。抽出部２０４０は、その位置及び大きさを中心とし、積分値が１となる部分分布を、PHD から抽出する（PHD から取り除く）（Ｓ２０６）。Ｓ２０８はループ処理の終端であるため、処理はＳ２０２に戻る。
【００６０】
ここで、PHD から部分分布を抽出する方法には、図１０に示した方法だけでなく、任意の空間クラスタリングの手法を利用できる。例えばそれぞれの出力結果を Li とし、あらかじめ設定された確率密度関数を fi とすると、PHDは出力結果の総和としてΣi(Li×fi)と書くことができる。すべての出力結果 fi が表す位置の距離を計算し、距離が小さいもの同士を足して総数を所定の数まで減らしていく階層的クラスタリングを採用しても良い。この時、なるべく Li は1に近くなるようにすることが望ましいことから、例えば出力 i と出力 i’を足す際に、「(1-Li)の２乗と(1-Li’)の２乗の平均」と「Li+Li’と１との差の２乗」とを比較して、前者のほうが小さい場合には足す処理を行わない、といった処理を行っても良い。あるいはさまざまなクラスタリング手法を実施して、その中から 1-Li の2乗の総和が最も小さくなるような結果を選択しても良い。
【００６１】
＜結果の出力：Ｓ１１０＞
出力部２０６０は、抽出した部分分布ごとに、その部分分布が表す対象物体の位置及び大きさを出力する（Ｓ１１０）。具体的には、出力部２０６０は、部分分布の統計値によって、対象物体の位置及び大きさを特定する。例えば出力部２０６０は、部分分布の平均を、対象物体の位置及び大きさとする。その他にも例えば、出力部２０６０は、部分分布の最大値に対応する位置及び大きさを、対象物体の位置及び大きさとしてもよい。そして、出力部２０６０は、特定した位置及び大きさを部分分布ごとに出力する。
【００６２】
図１１は、部分分布に基づいて特定された対象物体の位置及び大きさを例示する図である。図１１では、PHD から２つの部分分布 D1 と D2 が抽出されている。出力部２０６０は、部分分布 D1 に基づいて、対象物体の位置（x1, y1）と大きさ（w1, h1）を特定している。同様に、出力部２０６０は、部分分布 D2 に基づいて、対象物体の位置（x2, y2）と大きさ（w2, h2）を特定している。このことから、位置（x1, y1）にある幅 w1 かつ高さ h1 の画像領域と、位置（x2, y2）にある幅 w2 かつ高さ h2 の画像領域がそれぞれ、対象物体を表している。
【００６３】
ここで出力部２０６０が対象物体の位置及び大きさを出力する態様は様々である。例えば出力部２０６０は、「対象物体に割り当てた識別子、その対象物体の位置、その対象物体の大きさ」という組み合わせを対象物体ごとに示すデータ（例えばリスト）を、画像データ１０に対応づけて記憶装置に記憶させる。なお、画像データから検出された物体に識別子を割り当てる方法は任意である。
【００６４】
その他にも例えば、出力部２０６０は、図１１に示したように、特定された対象物体の位置及び大きさを表す表示（例えば枠）を画像データ１０に重畳させて出力してもよい。この出力先は任意であり、例えば記憶装置やディスプレイ装置などとすることができる。
【００６５】
なお、出力部２０６０は、対象物体の個数をさらに出力してもよい。対象物体の個数の算出方法については、前述した通りである。
【００６６】
＜ニューラルネットワーク２０の学習＞
前述したように、ニューラルネットワーク２０は事前に学習させておく必要がある。ここで、ニューラルネットワーク２０の学習は、情報処理装置２０００によって行われてもよいし、情報処理装置２０００以外の装置によって行われてもよい。ここでは、情報処理装置２０００がニューラルネットワーク２０の学習を行うと仮定して説明を行う。図１２は、ニューラルネットワーク２０の学習を行う機能を有する情報処理装置２０００を例示するブロック図である。情報処理装置２０００の学習は、学習部２０８０によって実行される。
【００６７】
学習部２０８０は、ニューラルネットワーク２０の実際の出力に基づく PHD と理想の PHD との間の予測損失を算出する。理想のPHDは正解の物体を表す矩形の位置を中心としたあらかじめ分散を指定してある正規分布の和として表現すれば良い。あるいは分散を０にしたδ関数として扱っても良いし、他の関数を用いても良い。次に前記予測損失に基づいてニューラルネットワーク２０の学習を行う。より具体的には、学習部２０８０は、算出した予測損失をニューラルネットワーク２０の出力ノードから逆順に伝播させていく（バックプロパゲーションする）ことで、ニューラルネットワーク２０のパラメータ（重みやバイアスの値）を更新することにより、ニューラルネットワーク２０の学習を行う。ここで、予測損失に基づくバックプロパゲーションによってニューラルネットワークの学習を行う方法には、勾配降下法など、既存の種々の方法を利用できる。以下では、ニューラルネットワーク２０の学習に利用する予測損失の定め方及びその算出方法を説明する。
【００６８】
学習部２０８０は、学習用の画像データ（以下、学習画像データ）をニューラルネットワーク２０に入力することで得られる実際の出力を用いて、実際の出力に対応する PHD を算出する。さらに学習部２０８０は、実際の出力に対応する PHD と、学習画像データに基づいて予め定まる理想の PHD との間で、予測損失を算出する。例えば予測損失は、これらの間の二乗誤差を用いれば良い。あるいは積分値で除算すれば積分値が１の確率密度関数として扱えるため、確率密度関数の誤差として扱える任意の手法を用いても良い。例えば、理想の確率密度関数と実際の出力に対応する確率密度関数の積のマイナス値を損失としても良い。あるいは積分値の誤差を損失として扱っても良いし、前記いくつかの損失を組み合わせても良い。
【００６９】
より具体的な例としては、実際の出力に対応する PHD は、それぞれの出力結果を Li とし、あらかじめ設定された確率密度関数を fi とすると、Σi(Li×fi) と書くことができる。また、理想的な PHD としては、正解となるそれぞれの物体の矩形の位置を yj とし、PHD を計算するためのベースとなる分布を gj とすると、Σj(gj) と書くことができる。両者の誤差を小さくする手法として、あらかじめそれぞれの正解 j に対して近い出力 i を１つないし複数割り当てる。前記割り当てた数を Nj とすると、割り当てた i に対する Li と (1/Nj) との誤差、例えば (Li-1/Nj) の２乗を最小化しても良い。これは積分値が一致するように Li を学習する１つの手法である。
【００７０】
理想の PHD は、学習画像データにおいて対象物体が存在する各画像領域について、その画像領域の位置及び大きさの位置において確度が１であって分散が０の分布（δ関数）を示す。図１３は理想の PHD を例示する図である。図１３において、学習画像データ３０には、２つの画像領域４０−１と４０−２に対象物体が含まれている。画像領域４０−１の位置は（x1, y1）で、大きさは（w1, h1）である。そのため、理想の PHD は、(x1, y1, w1, h1）がピークとなるδ関数を示している。また、画像領域４０−２の位置は（x2, y2）で、大きさは（w2, h2）である。そのため、理想の PHD は、(x2, y2, w2, h2）がピークとなるδ関数を示している。
【００７１】
学習画像データに対応する理想の PHD は、例えば、人手で予め生成しておき、学習画像データと対応づけて記憶装置に記憶させておく。学習部２０８０は、このように用意されている学習画像データと理想の PHD との組み合わせを１つ以上用いて、ニューラルネットワーク２０の学習を行う。
【００７２】
［実施形態２］
実施形態２の情報処理装置２０００は、複数種類の対象物体を区別して扱う。そのために、実施形態２の生成部２０２０は、それぞれ異なる種類の対象物体ごとに、確度データを生成する。そのため、１つの部分領域１２について、対象物体の種類ごとに確度データが生成される。
【００７３】
また、実施形態２の抽出部２０４０は、PHD を対象物体の種類ごとに生成する。これは、確度データの積算を対象物体の種類ごとに行うことで実現する。そして抽出部２０４０は、各 PHD から部分分布を抽出する。
【００７４】
実施形態２の出力部２０６０は、各部分分布に対応する対象物体の位置及び大きさを出力する。ここで、各部分分布は、いずれかの種類の対象物体に対応する。そこで出力部２０６０は、部分分布に対応する対象物体の位置及び大きさを、その対象物体の種類と共に出力する。
【００７５】
ニューラルネットワーク２０を利用して情報処理装置２０００を実現する場合、例えば情報処理装置２０００は、対象物体の種類ごとにニューラルネットワーク２０を有する。各ニューラルネットワーク２０は、対応する種類の対象物体を検出するように予め学習させておく。例えば、対象物体として人を扱うニューラルネットワーク２０については、理想の PHD が、学習画像データにおいて人を表す画像領域の位置及び大きさに対して確度１を示し、その他の画像領域（物体が存在しないか、又は人以外の物体が存在する画像領域）の位置及び大きさに対して確度０を示すようにする。
【００７６】
このことから、学習画像データに対し、対象物体の種類ごとに理想の PHD が用意される。学習部２０８０は、或る種類の対象物体を検出するためのニューラルネットワーク２０を、「学習画像データ、その種類の対象物体についての理想の PHD」との組み合わせを用いて学習させる。
【００７７】
＜ハードウエア構成の例＞
実施形態２の情報処理装置２０００を実現する計算機のハードウエア構成は、実施形態１と同様に、例えば図４によって表される。ただし、本実施形態の情報処理装置２０００を実現する計算機１０００のストレージデバイス１０８０には、本実施形態の情報処理装置２０００の機能を実現するプログラムモジュールがさらに記憶される。
【００７８】
＜作用効果＞
本実施形態の情報処理装置２０００によれば、対象物体をその種類ごとに検出することができる。よって、互いに異なる種類の対象物体の位置を、その種類も含めて把握することができるようになる。
【００７９】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【図１】
2019229979.tif 000003
【図２】
2019229979.tif 000004
【図３】
2019229979.tif 000005
【図４】
2019229979.tif 000006
【図５】
2019229979.tif 000007
【図６】
2019229979.tif 000008
【図７】
2019229979.tif 000009
【図８】
2019229979.tif 000010
【図９】
2019229979.tif 000011
【図１０】
2019229979.tif 000012
【図１１】
2019229979.tif 000013
【図１２】
2019229979.tif 000014
【図１３】
2019229979.tif 000015
【手続補正書】
【提出日】令和2年11月12日(2020.11.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像データを取得し、その画像データに含まれる複数の部分領域それぞれについて、位置と大きさに対する対象物体の存在の確からしさを表す確度データを生成する生成部と、
各前記部分領域について生成された確度データの総和を算出することで、位置と大きさに対する前記対象物体の存在の確からしさの分布を算出し、前記算出した分布から、それぞれが１つの前記対象物体に対応する１つ以上の部分分布を抽出する抽出部と、
前記抽出した部分分布ごとに、その部分分布の統計値に基づいて、その部分分布に対応する対象物体の位置及び大きさを出力する出力部と、を有する情報処理装置。
【請求項２】
前記生成部は、画像データに含まれる複数の部分領域それぞれについて前記確度データを出力するニューラルネットワークを含み、そのニューラルネットワークに前記取得した画像データを入力することで、その画像データに含まれる複数の部分領域それぞれについて前記確度データを生成する、請求項１に記載の情報処理装置。
【請求項３】
前記確度データは、部分領域の位置及び大きさに対してその位置及び大きさの部分領域に物体が存在する確からしさを示す分布を、所定のモデルに従った分布で表し、
前記ニューラルネットワークは、前記部分領域ごとに、その部分領域に対象物体が存在する確からしさと前記所定のモデルのパラメータ値を出力する、請求項２に記載の情報処理装置。
【請求項４】
前記抽出部は、
前記確度データの総和で表される分布の積分値に基づいて、前記画像データに含まれる物体の個数を算出し、
前記確度データの総和で表される分布から、前記個数の前記部分分布を抽出する、請求項１乃至３いずれか一項に記載の情報処理装置。
【請求項５】
前記抽出部は、前記確度データの総和で表される分布から、それぞれ積分値が１である前記部分分布を抽出する、請求項１乃至４いずれか一項に記載の情報処理装置。
【請求項６】
前記生成部は、それぞれ異なる種類の前記対象物体ごとに前記確度データを生成し、
前記抽出部は、それぞれ異なる種類の前記対象物体ごとに、前記対象物体の存在の確からしさの分布の算出、及びその分布からの前記部分分布の抽出を行い、
前記出力部は、各前記部分分布に対応する対象物体の位置及び大きさを、その部分分布に対応する前記対象物体の種類と共に出力する、請求項１乃至５いずれか一項に記載の情報処理装置。
【請求項７】
コンピュータによって実行される制御方法であって、
画像データを取得し、その画像データに含まれる複数の部分領域それぞれについて、位置と大きさに対する対象物体の存在の確からしさを表す確度データを生成する生成ステップと、
各前記部分領域について生成された確度データの総和を算出することで、位置と大きさに対する前記対象物体の存在の確からしさの分布を算出し、前記算出した分布から、それぞれが１つの前記対象物体に対応する１つ以上の部分分布を抽出する抽出ステップと、
前記抽出した部分分布ごとに、その部分分布の統計値に基づいて、その部分分布に対応する対象物体の位置及び大きさを出力する出力ステップと、を有する制御方法。
【請求項８】
請求項７に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【国際調査報告】
2019229979.tif 000016
2019229979.tif 000017
2019229979.tif 000018
2019229979.tif 000019