IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コニカミノルタ株式会社の特許一覧

特許7491308物体検出装置、物体検出方法、プログラムおよび記録媒体
<>
  • 特許-物体検出装置、物体検出方法、プログラムおよび記録媒体 図1
  • 特許-物体検出装置、物体検出方法、プログラムおよび記録媒体 図2
  • 特許-物体検出装置、物体検出方法、プログラムおよび記録媒体 図3
  • 特許-物体検出装置、物体検出方法、プログラムおよび記録媒体 図4
  • 特許-物体検出装置、物体検出方法、プログラムおよび記録媒体 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-20
(45)【発行日】2024-05-28
(54)【発明の名称】物体検出装置、物体検出方法、プログラムおよび記録媒体
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240521BHJP
   G06T 7/70 20170101ALI20240521BHJP
   G06N 20/00 20190101ALI20240521BHJP
   G06N 3/02 20060101ALI20240521BHJP
   G06F 16/55 20190101ALI20240521BHJP
【FI】
G06T7/00 350C
G06T7/70 A
G06N20/00
G06N3/02
G06F16/55
【請求項の数】 18
(21)【出願番号】P 2021520656
(86)(22)【出願日】2020-04-15
(86)【国際出願番号】 JP2020016570
(87)【国際公開番号】W WO2020235269
(87)【国際公開日】2020-11-26
【審査請求日】2022-12-23
(31)【優先権主張番号】P 2019096592
(32)【優先日】2019-05-23
(33)【優先権主張国・地域又は機関】JP
【前置審査】
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】110001933
【氏名又は名称】弁理士法人 佐野特許事務所
(72)【発明者】
【氏名】田路 文平
【審査官】山田 辰美
(56)【参考文献】
【文献】国際公開第2015/147333(WO,A1)
【文献】特開2019-036167(JP,A)
【文献】特開2019-032773(JP,A)
【文献】特開2019-049604(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06N 20/00
G06N 3/02
G06F 16/55
(57)【特許請求の範囲】
【請求項1】
入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出部と、
前記第1のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別部と、
前記物体位置領域検出部の検出結果と前記クラス識別部の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力部とを備え、
前記物体検出結果出力部は、前記物体の位置領域の情報を前記物体の検出結果として出力するとともに、予め複数のクラスが定義され、前記第1のクラス定義と紐づいた第2のクラス定義に基づいて、前記物体のクラス情報を前記物体の検出結果として出力し、
前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少なく、
前記物体位置領域検出部および前記クラス識別部は、ニューラルネットワークで構成されている、物体検出装置。
【請求項2】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを細分化して定義されている、請求項1に記載の物体検出装置。
【請求項3】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスの階層構造に基づいて定義されている、請求項2に記載の物体検出装置。
【請求項4】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、共通の特徴を持つ個々のクラスに細分化して定義されている、請求項2または3に記載の物体検出装置。
【請求項5】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、学習時の前記クラス識別部の識別結果に基づいて細分化して定義されている、請求項1から4のいずれかに記載の物体検出装置。
【請求項6】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、学習時の識別が成功したクラスと、学習時の識別が失敗して新たに割り当てたクラスとを含む複数の クラスに細分化して定義されている、請求項5に記載の物体検出装置。
【請求項7】
前記クラス識別部は、前記物体位置領域検出部による前記位置領域の検出後、前記クラスを識別する、請求項1から6のいずれかに記載の物体検出装置。
【請求項8】
前記クラス識別部は、前記物体位置領域検出部による前記位置領域の検出と同時に、前記クラスを識別する、請求項1から6のいずれかに記載の物体検出装置。
【請求項9】
入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出工程と、
前記第1のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別工程と、
前記物体位置領域検出工程の検出結果と前記クラス識別工程の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力工程とを含み、
前記物体検出結果出力工程では、前記物体の位置領域の情報を前記物体の検出結果として出力するとともに、予め複数のクラスが定義され、前記第1のクラス定義と紐づいた第2のクラス定義に基づいて、前記物体のクラス情報を前記物体の検出結果として出力し、
前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少なく、
前記物体位置領域検出工程では、ニューロ演算によって前記位置領域を検出し、
前記クラス識別工程では、ニューロ演算によって前記クラスを識別する、物体検出方法。
【請求項10】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを細分化して定義されている、請求項9に記載の物体検出方法。
【請求項11】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスの階層構造に基づいて定義されている、請求項10に記載の物体検出方法。
【請求項12】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、共通の特徴を持つ個々のクラスに細分化して定義されている、請求項10または11に記載の物体検出方法。
【請求項13】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、学習時の前記クラス識別工程の識別結果に基づいて細分化して定義されている、請求項9から12のいずれかに記載の物体検出方法。
【請求項14】
前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、学習時の識別が成功したクラスと、学習時の識別が失敗して新たに割り当てたクラスとを含む複数のクラスに細分化して定義されている、請求項13に記載の物体検出方法。
【請求項15】
前記クラス識別工程を、前記物体位置領域検出工程の後に行う、請求項9から14のいずれかに記載の物体検出方法。
【請求項16】
前記クラス識別工程を、前記物体位置領域検出工程と同時に行う、請求項9から14のいずれかに記載の物体検出方法。
【請求項17】
請求項9から16のいずれかに記載の物体検出方法をコンピュータに実行させるためのプログラム。
【請求項18】
請求項17に記載のプログラムを記録した、コンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力される画像から、その画像に含まれる物体を検出する物体検出装置、物体検出方法、プログラムおよび記録媒体に関する。
【背景技術】
【0002】
従来から、入力される画像に含まれる物体を検出する技術が開発されている。物体検出は、ロボットの目としての機能を実現する上で重要な技術である。物体検出に関する研究は、画像から顔を検出したり、人物を検出するなど、検出対象を特定した物体検出から行われてきている。近年では、機械学習や深層学習(Deep Learning)を利用して、物体を検出する技術も提案されている(例えば特許文献1~5参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-16298号公報
【文献】特開2013-12163号公報
【文献】特開2011-138387号公報
【文献】特表2018-526723号公報
【文献】特表2018-513491号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、機械学習を利用する場合、画像に含まれる物体の位置領域を検出する物体位置領域検出部と、上記物体のクラス(種類)を識別するクラス識別部とを、多種(多クラス)のデータを用いて予め学習させておくことにより、推論時には、多クラスの物体を検出することが可能となる。しかし、多クラスの物体の検出結果をそのまま出力することは、用途によっては有効とならない場合がある。
【0005】
例えば、道路を撮影した画像に基づく交通量調査において、道路を通る物体として、“Person”、“Vehicle”、“Animal”のそれぞれを計数することだけを目的とする場合、“Person”、“Vehicle”、“Animal”という大きなクラスの検出が必要であり、そのときに、例えば“Vehicle”の小クラスである“Car”、“Bus”、“Truck”の区別は不要である。したがって、このような用途では、細かい多クラスの物体についての検出結果(上記の例では“Car”、“Bus”等の情報)を出力することは有効ではない。
【0006】
一方、上記の物体位置領域検出部とクラス識別部とを、クラス数の少ないデータを用いて予め学習させておくことにより、推論時に、少ないクラスについて物体を検出し、その検出結果を出力することができる。このような学習方法は、細かい多クラスの物体の検出結果を必要としない上記の用途に好適であるとも考えられる。しかし、この場合は、学習時のデータのクラス数が少ないため、推論時の物体の検出性能が低下する。
【0007】
例えば、入力される画像から、“Person”、“Vehicle”、“Animal”の3クラスを検出するように、物体位置領域検出部およびクラス識別部を学習させる場合を考える。この場合、例えば“Bird”と“Dog”とを同じ“Animal”のクラスとして学習させることが必要である。しかし、“Bird”と“Dog”とでは共通する特徴が少ないため、“Bird”と“Dog”とを同じ“Animal”のクラスとして学習させることが困難となる。このため、推論時に、“Bird”と“Dog”とを同じ“Animal”のクラスとして認識(識別)することが困難となり、その結果、物体の検出性能が低下する。
【0008】
そこで、細かい多クラスの物体の検出結果を必要としない用途では、大雑把な少クラスでの物体検出を可能としつつ、共通する特徴の少ない物体の検出性能を向上させる技術が必要となる。しかし、このような技術は、特許文献1~5を含めて未だ提案されていない。
【0009】
本発明は、上記の問題点を解決するためになされたもので、その目的は、位置領域の検出およびクラス識別に基づく物体検出を細かい多クラスで行って、物体の検出性能を向上させることができる一方で、細かい多クラス単位での物体の検出結果を必要としない用途に好適となる物体検出装置、物体検出方法、プログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【0010】
本発明の一側面に係る物体検出装置は、入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出部と、前記第1のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別部と、前記物体位置領域検出部の検出結果と前記クラス識別部の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力部とを備え、前記物体検出結果出力部は、予め複数のクラスが定義され、前記第1のクラス定義と紐づいた第2のクラス定義に基づいて、前記物体のクラス情報を前記物体の検出結果として出力し、前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少ない。
【0011】
本発明の他の側面に係る物体検出方法は、入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出工程と、前記第1のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別工程と、前記物体位置領域検出部の検出結果と前記クラス識別部の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力工程とを含み、前記物体検出結果出力工程では、予め複数のクラスが定義され、前記第1のクラス定義と紐づいた第2のクラス定義に基づいて、前記物体のクラス情報を前記物体の検出結果として出力し、前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少ない。
【0012】
本発明のさらに他の側面に係るプログラムは、上記物体検出方法をコンピュータに実行させるためのプログラムである。
【0013】
本発明のさらに他の側面に係る記録媒体は、上記プログラムを記録した、コンピュータ読取可能な記録媒体である。
【発明の効果】
【0014】
第1のクラス定義で定義された複数のクラスの数は、第2のクラス定義で定義されたクラスの数よりも相対的に多く、第1のクラス定義では、複数のクラスが細かく定義される。このため、第1のクラス定義に基づいて、物体の位置領域の検出およびクラスの識別を、細かい多クラスで行うことが可能となる。これにより、物体検出を細かい多クラスで行って物体の検出性能を向上させることが可能となる。
【0015】
また、第2のクラス定義は、第1のクラス定義と紐づいて関連しており、第2のクラス定義で定義されたクラスの数は、第1のクラス定義で定義されたクラスの数よりも少ない。このため、第2のクラス定義に基づいて、少ないクラス単位で物体の検出結果を出力することが可能となる。したがって、細かい多クラス単位での検出性能を重視しない用途に好適な物体検出装置または物体検出方法を実現することができる。
【図面の簡単な説明】
【0016】
図1】本発明の実施の一形態の物体検出システムの全体の構成を模式的に示すブロック図である。
図2】上記物体検出システムにおける学習時の処理の流れを示す説明図である。
図3】上記物体検出システムにおける推論時の処理の一例を示す説明図である。
図4】各クラスの階層構造を模式的に示す説明図である。
図5】上記物体検出システムにおける推論時の処理の他の例を示す説明図である。
【発明を実施するための形態】
【0017】
本発明の実施の一形態について、図面に基づいて説明すれば、以下の通りである。
【0018】
〔1.物体検出システムの構成〕
図1は、本実施形態の物体検出システム1の全体の構成を模式的に示すブロック図である。物体検出システム1は、撮像部2と、物体検出装置3とを含んで構成される。撮像部2は、物体を撮影して画像を取得するカメラで構成されている。上記画像は、例えば動画であるが、静止画であってもよい。物体検出システム1に含まれる撮像部2の台数は特に制限されず、1台であってもよいし、複数台であってもよい。
【0019】
撮像部2は、有線ケーブルやLAN(Local Area Network)などの通信回線を介して物体検出装置3と通信可能に接続されている。なお、撮像部2は、物体検出装置3と無線通信可能に構成されていてもよい。いずれにしても、撮像部2での撮影によって取得された画像のデータは、通信回線を介して物体検出装置3に送られる。
【0020】
物体検出装置3は、例えばパーソナルコンピュータ(PC)で構成されている。この物体検出装置3は、物体位置領域検出部11と、クラス識別部12と、物体検出結果出力部13と、記憶部14と、入力部15と、表示部16と、通信部17と、読取部18と、制御部19とを有している。制御部19は、物体検出装置3の各部の動作を制御する中央演算処理装置(CPU;Central Processing Unit)で構成されており、記憶部14のプログラム記憶部14aに記憶された動作プログラムに従って動作する。
【0021】
物体位置領域検出部11は、入力される画像から、その画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する。ここで、「入力される画像」とは、例えば、撮像部2から物体検出装置3に入力される画像を考えることができるが、この画像に限定されるわけではなく、その他にも、外部の端末装置やサーバーから通信回線を介して物体検出装置3に入力される画像を考えることもできる。
【0022】
物体位置領域検出部11は、例えばGPU(Graphics Processing Unit)で構成されている。GPUは、リアルタイムな画像処理に特化した演算装置(プロセッサ)である。物体位置領域検出部11をGPUで構成することにより、GPUにおいて畳み込み型ニューラルネットワーク(CNN;Convolutional Neural Network)などの機械学習が可能なニューラルネットワークを構築し、このニューラルネットワークを物体位置領域検出部11として機能させることが可能となる。
【0023】
本実施形態では、上記第1のクラス定義として、例えば10個のクラスが定義されている。上記10個のクラスは、例えば、“Person (with Head)”(頭部のある人物)、“Person (without Head)”(頭部のない(頭部が隠れた)人物)、“Car”、“Bus”、“Truck”、“Dog”、“Cat”、“Horse”、“Bear”、“Bird”、である。物体位置領域検出部11は、入力画像から、第1のクラス定義で定義されたクラスに属する可能性のある物体の位置領域を検出するように、予め学習されている(CNNを構成する各ノードのパラメータ(重み)が予め設定されている)。これにより、物体位置領域検出部11は、実際に外部から画像が入力されたときに、第1のクラス定義に基づき、入力された画像から、例えば“Car”らしい物体の位置領域を検出することが可能となる。
【0024】
クラス識別部12は、上記の第1のクラス定義に基づいて、入力された画像に含まれる物体が複数のクラスのいずれに属するかを識別する。このようなクラス識別部12は、物体位置領域検出部11と同様に、GPUで構成されている。これにより、GPUにおいてCNNなどの機械学習が可能なニューラルネットワークを構築し、このニューラルネットワークをクラス識別部12として機能させることが可能となる。
【0025】
クラス識別部12は、入力画像に含まれる物体が属するクラスを第1のクラス定義に基づいて識別するように、予め学習されている(CNNを構成する各ノードのパラメータ(重み)が予め設定されている)。これにより、クラス識別部12は、実際に外部から画像が入力されたときに、第1のクラス定義に基づいて、入力画像に含まれる物体(物体位置領域検出部11によって位置領域が既に検出された物体を含む)が第1のクラス定義で定義されたクラスのいずれに属するかを識別することが可能となる。
【0026】
本実施形態では、クラス識別部12はCNNで構成されているため、クラス識別部12からは、物体が属するクラスの識別結果だけでなく、そのクラスの尤度(確からしさ)を示すスコアも出力される。例えば、物体が“Person (with Head)”である確からしさは0.8である、などの情報(スコア付きクラス情報)が、クラス識別部12から出力される。
【0027】
物体検出結果出力部13は、物体位置領域検出部11の検出結果とクラス識別部12の識別結果とに基づいて、物体の検出結果を出力する。例えば、物体検出結果出力部13は、物体位置領域検出部11によって検出された物体の位置領域の情報と、クラス識別部12によって識別されたクラスの情報とを出力する。このような物体検出結果出力部13は、例えば制御部19と同一の、または別個のCPUで構成されている。
【0028】
本実施形態では、物体検出結果出力部13は、予め複数のクラスが定義された第2のクラス定義に基づいて、物体のクラス情報を物体の検出結果として出力する。
【0029】
ここで、上記第2のクラス定義では、例えば3個のクラスが定義されている。上記3個のクラスは、例えば“Person”、“Vehicle”、“Animal”である。したがって、第2のクラス定義で定義されたクラスの数(3個)は、第1のクラス定義で定義されたクラスの数(10個)よりも少ない。
【0030】
また、第2のクラス定義で定義された“Person”は、第1のクラス定義で定義された“Person (with Head)”および“Person (without Head)”を包括したクラス(上位概念のクラス)である。また、第2のクラス定義で定義された“Vehicle”は、第1のクラス定義で定義された“Car”、“Bus”および“Truck”を包括したクラスである。さらに、第2のクラス定義で定義された“Animal”は、第1のクラス定義で定義された“Dog”、“Cat”、“Horse”、“Bear”、“Bird”を包括したクラスである。したがって、第1のクラス定義で定義された各クラスと、第2のクラス定義で定義された各クラスとは紐づいており(関連付けられており)、第1のクラス定義と第2のクラス定義とは紐づいている、と言える。
【0031】
物体検出結果出力部13は、第2のクラス定義に基づいて、物体のクラス情報を物体の検出結果として出力するため、クラス識別部12から例えば物体が“Person (with Head)”である確からしさは0.8であり、“Car”である確からしさは0.2である、という情報が出力されたとき、上記物体のクラスは(“Person (with Head)”の包括概念である)“Person”であるというクラス情報を物体の検出結果として出力することになる。
【0032】
記憶部14は、各種の情報を記憶するメモリであり、例えばハードディスクで構成されるが、RAM(Random Access Memory)、ROM(Read Only Memory)などをさらに含んで構成されてもよい。この記憶部14は、プログラム記憶部14aと、入力画像記憶部14bと、クラス定義記憶部14cと、パラメータ記憶部14dとを有している。
【0033】
プログラム記憶部14aは、物体検出装置3の各部を動作させるための動作プログラムを記憶する。入力画像記憶部14bは、例えば撮像部2で取得され、物体検出装置3に入力された画像のデータを一次的に記憶する。なお、入力画像記憶部14bは、外部の端末装置やサーバーから物体検出装置3に画像データが入力されたときに、上記画像データを一時的に記憶してもよい。また、物体検出装置3に入力される画像は、入力画像記憶部14bに記憶されることなく、物体位置領域検出部11に直接入力される構成であってもよい。
【0034】
クラス定義記憶部14cは、上述した第1のクラス定義(例えば10個のクラス)および第2のクラス定義(例えば3個のクラス)を記憶する。なお、クラス定義記憶部14cに記憶させる第1のクラス定義および第2のクラス定義は、後述する入力部15によって変更(更新)することが可能である。上記した物体位置領域検出部11は、クラス定義記憶部14cにアクセスすることにより、第1のクラス定義に基づいて物体の位置領域を検出することが可能となる。また、クラス識別部12は、クラス定義記憶部14cにアクセスすることにより、第1のクラス定義に基づいて物体のクラスを識別することが可能となる。さらに、物体検出結果出力部13は、クラス定義記憶部14cにアクセスすることにより、第2のクラス定義に基づいて、物体のクラス情報を物体の検出結果として出力することが可能となる。
【0035】
パラメータ記憶部14dは、物体位置領域検出部11およびクラス識別部12を構成するCNNの各ノードのパラメータ(重み)を記憶する。上記のパラメータは、CNNの学習ごとに更新され、パラメータ記憶部14dに記憶される。
【0036】
入力部15は、例えばキーボード、マウス、タッチパッド、タッチパネルなどで構成され、ユーザによる各種の指示入力を受け付ける。表示部16は、各種の情報を表示するデバイスであり、例えば液晶表示装置で構成される。通信部17は、撮像部2および外部端末(例えば他の端末装置(スマートフォンなどの携帯端末を含む)、サーバー)と通信するためのインターフェースである。この通信部17は、入出力ポートのほか、アンテナ、送受信回路、変調回路、復調回路などを含んで構成される。読取部18は、記録媒体Rに記録された情報を読み取る装置であり、例えばディスクドライブで構成される。なお、記録媒体Rが可搬型の不揮発性メモリである場合、上記不揮発性メモリの接続部が指し込まれる接続ポートも読取部18に含まれるとする。
【0037】
〔2.物体検出システムの動作〕
次に、本実施形態の物体検出システム1の動作について、学習時と推論時(物体検出時)とに分けて説明する。なお、以下での説明において、第1のクラス定義としては、上述の10クラス(例えば“Person (with Head)”、“Person (without Head)”、“Car”、“Bus”、“Truck”、“Dog”、“Cat”、“Horse”、“Bear”、“Bird”)が定義されており、第2のクラス定義としては、上述の3クラス(例えば“Person”、“Vehicle”、“Animal”)が定義されているとする。
【0038】
(学習時の動作)
図2は、物体検出システム1における学習時の処理の流れを示す説明図である。まず、学習に先立って、学習用のデータセットを用意する(S1)。上記データセットは、物体を含む画像のデータと、その物体の正解クラスを示すラベルとがセットになったものである。ここでは、上記の第1のクラス定義に基づいて、10クラスの画像のデータを含むデータセットを用意する。なお、10クラスのそれぞれについて、データセットを複数用意してもよい。例えば、10クラスのうちの1クラスを構成する“Person (with Head)”について、画像の異なる複数のデータセットを用意してもよい。
【0039】
学習用のデータセットの画像を物体検出装置3に入力すると(S2)、物体位置領域検出部11は、上記画像から、第1のクラス定義に基づき、10個のクラスのいずれかに属する可能性のある物体の位置領域をCNNでのニューロ演算によって検出する(S3)。そして、クラス識別部12は、物体位置領域検出部11によって検出された位置領域にある物体のクラスが、第1のクラス定義で定義された10個のクラスのいずれに属するかを、CNNでのニューロ演算によって識別する(S4)。
【0040】
その後、制御部19は、クラス識別部12から出力される情報に基づき、誤差逆伝播法(バックプロパゲーション)を用いて、物体位置領域検出部11およびクラス識別部12を構成するCNNの各ノードのパラメータを更新する(S5)。より詳しくは、位置領域の検出が、入力画像に対応する正解クラス(第1のクラス定義のクラス)の物体について行われるように、物体位置領域検出部11の各ノードのパラメータを更新するとともに、物体位置領域検出部11で検出された位置領域にある物体のクラスの識別結果として、第1のクラス定義で定義された正解クラスを出力するように、クラス識別部12の各ノードのパラメータを更新する。
【0041】
(推論時の動作)
図3は、物体検出システム1における推論時の処理の一例を示す説明図である。例えば、撮像部2で取得された画像が物体検出装置3に入力されると(S11)、物体位置領域検出部11は、上記画像から、第1のクラス定義に基づき、10個のクラスのいずれかに属する可能性のある物体の位置領域を、CNNでのニューロ演算によって検出する(S12;物体位置領域検出工程)。
【0042】
次に、クラス識別部12は、物体位置領域検出部11によって検出された位置領域にある物体のクラスが、第1のクラス定義で定義された10個のクラスのいずれに属するかを、CNNでのニューロ演算によって識別し、識別したクラスの情報を、スコア付きで出力する(S13;クラス識別工程)。
【0043】
物体検出結果出力部13は、クラス識別部12から出力されるクラス情報の中からスコアの最も高い物体のクラスを選択し、選択したクラスを包括するクラスを第2のクラス定義に基づいて決定する。そして、物体検出結果出力部13は、決定したクラスの情報と、物体位置領域検出部11で検出された位置領域の情報とを、物体の検出結果として出力する(S14;物体検出結果出力工程)。物体検出結果出力部13から出力される物体の検出結果(位置領域の情報、クラス情報)については、例えば表示部16で表示させてもよいし、通信部17を介して外部に送信してもよい。
【0044】
〔3.効果〕
本実施形態では、第1のクラス定義で定義されたクラスの数(例えば10個)は、第2のクラス定義で定義されたクラスの数(例えば3個)よりも多く、第1のクラス定義では、複数のクラスが細かく定義される。このため、物体位置領域検出部13は、第1のクラス定義に基づいて、例えば同じ“Animal”として共通していても、共通する特徴の少ない各物体(例えば“Bird”と“Dog”)の位置領域を区別して検出することが可能となる。そして、クラス識別部12は、第1のクラス定義に基づいて、共通する特徴の少ない物体(例えば“Bird”と“Dog”)を別々のクラスで識別することが可能となる。したがって、物体の検出を細かい多クラスで行うことが可能となり、物体の検出性能を向上させることができる。
【0045】
また、物体検出結果出力部13は、物体位置領域検出部11の検出結果とクラス識別部12の識別結果とに基づいて物体の検出結果を出力するにあたり、第1のクラス定義と紐づいた第2のクラス定義に基づいて、物体のクラス情報を出力する。第2のクラス定義で定義された複数のクラスの数は、第1のクラス定義で定義されたクラスの数よりも少ないため、物体検出結果出力部13は、例えば“Bird”と“Dog”とをまとめたクラスの情報(例えば“Animal”の情報)を出力することができる。したがって、物体の位置領域の検出時およびクラス識別時よりも少ないクラス単位で物体の検出結果を出力することができるため、細かい多クラス単位での検出性能を重視しない用途やアプリケーションに好適な物体検出装置3および物体検出方法を実現することができる。例えば、本実施形態の物体検出装置3および物体検出方法は、屋外に設置されたカメラで撮影された画像を用いる監視や統計調査のほか、通過した物体の計数だけを目的とし、上記物体の詳細な識別を不要とする調査や分析を行う用途やアプリケーションに好適となる。
【0046】
また、本実施形態において、第1のクラス定義の“Person (with Head)”および“Person (without Head)”は、第2のクラス定義で定義された“Person”の下位概念のクラス、つまり、上記“Person”を細分化したクラスである。同様に、第1のクラス定義の“Car”、“Bus”および“Truck”は、第2のクラス定義で定義された“Vehicle”を細分化したクラスである。さらに、第1のクラス定義の“Dog”、“Cat”、“Horse”、“Bear”および“Bird”は、第2のクラス定義で定義された“Animal”を細分化したクラスである。
【0047】
このように、第1のクラス定義は、第2のクラス定義で定義された各クラスを細分化して定義されているため、第1のクラス定義に基づいて、物体の検出を細かい多クラスで行うことができる。これにより、物体の検出性能を確実に向上させることができる。また、物体検出結果出力部13は、第1のクラス定義に基づいて識別された2以上のクラス(例えば“Dog”と“Bird”)を、第2のクラス定義で定義された1つのクラス(例えば“Animal”)にまとめ、その情報をクラス情報として出力することができる。したがって、物体検出結果出力部13は、物体の位置領域の検出時およびクラス識別時よりも少ないクラス単位で物体の検出結果を出力することが確実に可能となる。
【0048】
また、第1のクラス定義の“Person (with Head)”および“Person (without Head)”は、“Person”として共通の特徴を持つ。また、第1のクラス定義の“Car”、“Bus”および“Truck”は、“Vehicle”として共通の特徴を持つ。さらに、第1のクラス定義の“Dog”、“Cat”、“Horse”、“Bear”および“Bird”は、“Animal”として共通の特徴を持つ。
【0049】
このことから、第1のクラス定義は、第2のクラス定義で定義された各クラスを、共通の特徴を持つ個々のクラスに細分化して定義されていると言える。この場合、物体位置領域検出部11は、第1のクラス定義に基づき、共通の特徴を持つ個々のクラスに属する可能性のある物体の各位置領域を互いに区別して検出することが可能となる。また、クラス識別部12は、第1のクラス定義に基づき、共通の特徴を持つ個々のクラスを別々に識別することが可能となる。したがって、共通の特徴を持つ個々のクラス間でも、物体を区別して検出することが可能となり、物体の検出性能を確実に向上させることができる。
【0050】
また、本実施形態では、物体位置領域検出部11およびクラス識別部12は、ニューラルネットワークで構成されている。この場合、物体位置領域検出部11およびクラス識別部12を機械学習させることにより、入力画像をもとに物体の位置領域をニューロ演算によって検出したり、物体のクラスをニューロ演算によって識別することが可能となる。また、機械学習によってニューラルネットワークのパラメータ(各ノードの重み)を更新することにより、物体の位置領域の検出精度(物体の存在の有無の検出精度)およびクラス識別の精度を向上させることが可能となる。
【0051】
また、本実施形態では、クラス識別部12は、物体位置領域検出部11による位置領域の検出後、クラスを識別している(図3参照)。この場合、クラス識別部12は、物体位置領域検出部11によって位置領域が検出された物体について、そのクラスを識別することができるため(物体らしいものについてのみクラスの識別ができるため)、物体の検出性能をさらに向上させることができる。
【0052】
〔4.学習によるクラスの細分化について〕
図4は、第2のクラス定義で定義された各クラスの階層構造を模式的に示す説明図である。第1のクラス定義は、第2のクラス定義で定義された各クラスの階層構造に基づいて定義されていてもよい。同図では、第2のクラス定義で定義された各クラスを、学習時のクラス識別部12の識別結果に基づいて細分化することで上記階層構造を実現し、この階層構造に基づいて第1のクラス定義の各クラスを定義した例を示している。
【0053】
より具体的には、第2のクラス定義で定義された各クラスが、“Person”と“Vehicle”との2クラスであるとする。これらの各クラスについて、学習用のデータセット(画像+正解ラベル)を用意する。このとき、各クラスについて、画像の異なるデータセットを複数用意する。そして、上述の方法で物体位置領域検出部11およびクラス識別部12を学習させる。すなわち、例えば“Person”のデータセットの画像を入力して、物体位置領域検出部11での物体の位置領域の検出およびクラス識別部12でのクラス識別を行い、その識別結果(識別されたクラスのスコア)を出力する。そして、誤差逆伝播法を用いて物体位置領域検出部11およびクラス識別部12の各ノードのパラメータを更新する。
【0054】
このとき、“Person”のデータセットにおいて、クラス識別部12によって識別されたクラス(スコアが閾値以上のクラス)と、正解ラベルが示すクラス(例えば“Person”)とが一致している場合には、物体の検出が成功したとし、クラス識別部12で識別されたクラス(例えば“Person”)をそのまま残す。一方、“Person”のデータセットにおいて、クラス識別部12によって識別されたクラス(スコアが閾値以上のクラス)と、正解ラベルが示すクラス(例えば“Person”)とが不一致の場合には、物体の検出が失敗したとし、クラス識別部12で識別されたクラスを新しいクラス(例えば“Person 2”)として設定する。そして、用いたデータセットの画像(物体の検出が失敗した画像)に含まれる物体を“Person 2”として識別するように、誤差逆伝播法によって物体位置領域検出部11およびクラス識別部12の各ノードのパラメータを更新する。
【0055】
次に、“Person 2”のデータセットの画像を入力して、物体位置領域検出部11での物体の位置領域の検出およびクラス識別部12でのクラス識別を行い、その識別結果(識別されたクラスのスコア)を出力し、上記と同様の処理を行う。つまり、クラス識別部12によって識別されたクラス(スコアが閾値以上のクラス)と、正解ラベルが示すクラス(例えば“Person 2”)とが一致している場合には、物体の検出が成功したとし、クラス識別部12で識別されたクラス(例えば“Person 2”)をそのまま残す。一方、“Person 2”のデータセットにおいて、クラス識別部12によって識別されたクラス(スコアが閾値以上のクラス)と、正解ラベルが示すクラス(例えば“Person 2”)とが不一致の場合には、物体の検出が失敗したとし、クラス識別部12で識別されたクラスを新しいクラス(例えば“Person 3”)として設定する。そして、用いたデータセットの画像(物体の検出が失敗した画像)に含まれる物体を“Person 3”として識別するように、誤差逆伝播法によって物体位置領域検出部11およびクラス識別部12の各ノードのパラメータを更新する。
【0056】
以上の処理により、“Person”のクラスは、クラス識別部12での識別結果に基づいて、“Person”と“Person 2”の各クラスに細分化され、“Person 2”のクラスは、クラス識別部12での識別結果に基づいて、“Person 2”と“Person 3”の各クラスにさらに細分化される。その結果、“Person”を最上層とした階層構造が実現される。つまり、クラス識別部12での識別結果に基づいて、最上層のクラスである“Person”を、下層のクラス(“Person”、“Person 2”、“Person 3”)に細分化した階層構造が得られる。
【0057】
なお、“Vehicle”についても、“Vehicle”のデータセットを用いて上記と同様の方法で物体位置領域検出部11およびクラス識別部12を学習させることにより、クラス識別部12での識別結果に基づいて、“Vehicle”の階層構造を得ることができる。つまり、クラス識別部12での識別結果に基づいて、最上層のクラスである“Vehicle”を、下層のクラス(“Vehicle”、“Vehicle 2”、“Vehicle 3”)に細分化した階層構造を得ることができる。
【0058】
したがって、“Person”および“Vehicle”を第2のクラス定義の各クラスとして定義すると、第2のクラス定義で定義された“Person”および“Vehicle”の階層構造に基づいて、第1のクラス定義を定義することができる。つまり、第2のクラス定義で定義された2クラス(“Person”、“Vehicle”)の階層構造の最上層以外の層に属するクラス、つまり、“Person”、“Person 2”、“Person 3”、“Vehicle”、“Vehicle 2”、“Vehicle 3”(6クラス)を、第1のクラス定義として定義することができる。
【0059】
このように、第1のクラス定義を、第2のクラス定義で定義された各クラスの階層構造に基づいて定義することにより、第1のクラス定義を、第2のクラス定義と紐づいた多クラスで細かく設定することが確実に可能となる。これにより、物体位置領域検出部11およびクラス識別部12での物体の位置領域の検出およびクラス識別を、第1のクラス定義に基づいて細かい多クラスで確実に行うことが可能となる。また、物体検出結果出力部13は、第2のクラス定義に基づき、上記階層構造の最上層のクラスの情報を出力することで、物体の検出結果として出力するクラス数を確実に少なくすることができる。
【0060】
また、上記のように、第2のクラス定義で定義された各クラスを、学習時のクラス識別部12の識別結果に基づいて細分化して、第1のクラス定義を定義することにより、推論時に、クラス識別部12が第1のクラス定義に基づいてクラスを識別するときの識別精度を確実に向上させることができる。つまり、上記の例では、推論時に、入力画像に含まれる人物が、“Person”、“Person 2”、“Person 3”のいずれであるか、または入力画像に含まれる乗り物が、“Vehicle”、“Vehicle 2”、“Vehicle 3”のいずれであるかを確実に精度よく識別することができる。
【0061】
また、上記のように、第2のクラス定義で定義された各クラスを、学習時の識別が成功したクラス(例えば“Person”、“Person 2”)と、学習時の識別が失敗して新たに割り当てたクラス(例えば“Person 3”)とを含む複数のクラスに細分化して、第1のクラス定義を定義することにより、学習時に識別が失敗したクラス(例えば“Person 3”)についても、推論時には、第1のクラス定義に基づいて、物体がそのクラス(例えば“Person 3”)に属するか否かを判断(識別)することが可能となる。
【0062】
〔5.変形例〕
図5は、物体検出システム1における推論時の処理の他の例を示す説明図である。図4では、物体位置領域検出部11による位置領域の検出と同時に、クラス識別部12が画像に含まれる物体のクラスを識別する点以外は、図3と同様である。この構成では、クラス識別部12がクラスを識別する対象となる物体は、画像内で特定の位置領域に存在する物体ではなく、入力画像のどこかに存在する物体となるが、この場合でも、クラス識別部12を予め機械学習させておくことにより、推論時に入力画像内のどこかに位置する物体(位置領域が特定されていない物体)のクラスを識別することが可能となる。
【0063】
このように、物体位置領域検出部11による位置領域の検出と、クラス識別部12による物体のクラスの識別とを同時に行うことにより、図3のようにそれらの処理を連続的に行う場合に比べて迅速な物体検出(検出結果の出力)を行うことが可能となる。
【0064】
〔6.プログラムおよび記録媒体〕
上述した本実施形態の物体検出装置3は、例えば、所定のプログラム(アプリケーションソフトウェア)をインストールしたコンピュータ(PC)で構成することができる。上記プログラムをコンピュータ(例えばCPUとしての制御部19)が読み取って実行することにより、物体検出装置3の各部を動作させて上述した各処理(各工程)を実行させることができる。このようなプログラムは、例えばネットワークを介して外部からダウンロードすることによって取得されてプログラム記憶部14aに記憶される。また、上記プログラムは、例えばCD-ROM(Compact Disk-Read Only Memory)などのコンピュータ読取可能な記録媒体Rに記録され、この記録媒体Rから上記プログラムをコンピュータが読み取ってプログラム記憶部14aに記憶する形態であってもよい。
【0065】
〔7.その他〕
以上の各実施の形態で説明した物体検出装置、物体検出方法、プログラムおよび記録媒体は、以下のように表現されてもよい。
【0066】
1.入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出部と、
前記第1のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別部と、
前記物体位置領域検出部の検出結果と前記クラス識別部の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力部とを備え、
前記物体検出結果出力部は、予め複数のクラスが定義され、前記第1のクラス定義と紐づいた第2のクラス定義に基づいて、前記物体のクラス情報を前記物体の検出結果として出力し、
前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少ないことを特徴とする物体検出装置。
【0067】
2.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを細分化して定義されていることを特徴とする前記1に記載の物体検出装置。
【0068】
3.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスの階層構造に基づいて定義されていることを特徴とする前記2に記載の物体検出装置。
【0069】
4.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、共通の特徴を持つ個々のクラスに細分化して定義されていることを特徴とする前記2または3に記載の物体検出装置。
【0070】
5.前記物体位置領域検出部および前記クラス識別部は、ニューラルネットワークで構成されていることを特徴とする前記1から4のいずれかに記載の物体検出装置。
【0071】
6.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、学習時の前記クラス識別部の識別結果に基づいて細分化して定義されていることを特徴とする前記5に記載の物体検出装置。
【0072】
7.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、学習時の識別が成功したクラスと、学習時の識別が失敗して新たに割り当てたクラスとを含む複数のクラスに細分化して定義されていることを特徴とする前記6に記載の物体検出装置。
【0073】
8.前記クラス識別部は、前記物体位置領域検出部による前記位置領域の検出後、前記クラスを識別することを特徴とする前記1から7のいずれかに記載の物体検出装置。
【0074】
9.前記クラス識別部は、前記物体位置領域検出部による前記位置領域の検出と同時に、前記クラスを識別することを特徴とする前記1から7のいずれかに記載の物体検出装置。
【0075】
10.入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出工程と、
前記第1のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別工程と、
前記物体位置領域検出部の検出結果と前記クラス識別部の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力工程とを含み、
前記物体検出結果出力工程では、予め複数のクラスが定義され、前記第1のクラス定義と紐づいた第2のクラス定義に基づいて、前記物体のクラス情報を前記物体の検出結果として出力し、
前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少ないことを特徴とする物体検出方法。
【0076】
11.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを細分化して定義されていることを特徴とする前記10に記載の物体検出方法。
【0077】
12.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスの階層構造に基づいて定義されていることを特徴とする前記11に記載の物体検出方法。
【0078】
13.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、共通の特徴を持つ個々のクラスに細分化して定義されていることを特徴とする前記11または12に記載の物体検出方法。
【0079】
14.前記物体位置領域検出工程では、ニューロ演算によって前記位置領域を検出し、
前記クラス識別工程では、ニューロ演算によって前記クラスを識別することを特徴とする前記10から13のいずれかに記載の物体検出方法。
【0080】
15.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、学習時の前記クラス識別部の識別結果に基づいて細分化して定義されていることを特徴とする前記14に記載の物体検出方法。
【0081】
16.前記第1のクラス定義は、前記第2のクラス定義で定義された各クラスを、学習時の識別が成功したクラスと、学習時の識別が失敗して新たに割り当てたクラスとを含む複数のクラスに細分化して定義されていることを特徴とする前記15に記載の物体検出方法。
【0082】
17.前記クラス識別工程を、前記物体位置領域検出工程の後に行うことを特徴とする前記10から16のいずれかに記載の物体検出方法。
【0083】
18.前記クラス識別工程を、前記物体位置領域検出工程と同時に行うことを特徴とする前記10から16のいずれかに記載の物体検出方法。
【0084】
19.前記10から18のいずれかに記載の物体検出方法をコンピュータに実行させるためのプログラム。
【0085】
20.前記19に記載のプログラムを記録した、コンピュータ読取可能な記録媒体。
【0086】
また、本実施形態の物体検出システムは、以下のように表現されてもよい。
【0087】
21.前記1から9のいずれかに記載の物体検出装置と、
前記物体検出装置に入力される前記画像を取得する撮像部とを備えていることを特徴とする物体検出システム。
【0088】
以上、本発明の実施形態について説明したが、本発明の範囲はこれに限定されるものではなく、発明の主旨を逸脱しない範囲で拡張または変更して実施することができる。
【産業上の利用可能性】
【0089】
本発明は、入力される画像から、その画像に含まれる物体を検出するシステムに利用可能である。
【符号の説明】
【0090】
1 物体検出システム
2 撮像部
3 物体検出装置
11 物体位置領域検出部
12 クラス識別部
13 物体検出結果出力部
図1
図2
図3
図4
図5