(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-22
(45)【発行日】2024-01-30
(54)【発明の名称】物体検出装置、物体検出システム、物体検出方法、プログラムおよび記録媒体
(51)【国際特許分類】
G06T 7/00 20170101AFI20240123BHJP
【FI】
G06T7/00 350C
(21)【出願番号】P 2021520655
(86)(22)【出願日】2020-04-15
(86)【国際出願番号】 JP2020016569
(87)【国際公開番号】W WO2020235268
(87)【国際公開日】2020-11-26
【審査請求日】2022-12-23
(31)【優先権主張番号】P 2019096590
(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
(57)【特許請求の範囲】
【請求項1】
入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出部と、
予め複数のクラスが定義された第2のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別部と、
前記物体位置領域検出部の検出結果と前記クラス識別部の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力部とを備え、
前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少なく、
前記第2のクラス定義で定義された複数のクラスは、前記第1のクラス定義で定義された複数のクラスの一部を集めて
構成されており、
前記物体位置領域検出部は、ニューラルネットワークで構成されており、
前記クラス識別部は、ニューラルネットワークで構成されている、物体検出装置。
【請求項2】
前記第2のクラス定義で定義された複数のクラスは、
前記第1のクラス定義で定義された複数のクラスの一部と同一のクラスと、
前記第1のクラス定義で定義された複数のクラスにおける他の2以上のクラスをまとめたクラスとを含む、請求項1に記載の物体検出装置。
【請求項3】
前記クラス識別部は、前記物体位置領域検出部による前記位置領域の検出後、前記クラスを識別する、請求項1または2に記載の物体検出装置。
【請求項4】
前記クラス識別部は、前記物体位置領域検出部による前記位置領域の検出と同時に、前記クラスを識別する、請求項1から3のいずれかに記載の物体検出装置。
【請求項5】
請求項1から4のいずれかに記載の物体検出装置と、
前記物体検出装置に入力される前記画像を取得する撮像部とを備えている、物体検出システム。
【請求項6】
入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出工程と、
予め複数のクラスが定義された第2のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別工程と、
前記物体位置領域検出工程の検出結果と前記クラス識別工程の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力工程とを含み、
前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少なく、
前記第2のクラス定義で定義された複数のクラスは、前記第1のクラス定義で定義された複数のクラスの一部を集めて構成されており、
前記物体位置領域検出工程では、ニューロ演算により、前記位置領域を検出し、
前記クラス識別工程では、ニューロ演算により、前記クラスを識別する、物体検出方法。
【請求項7】
前記第2のクラス定義で定義された複数のクラスは、
前記第1のクラス定義で定義された複数のクラスの一部と同一のクラスと、
前記第1のクラス定義で定義された複数のクラスにおける他の2以上のクラスをまとめたクラスとを含む、請求項6に記載の物体検出方法。
【請求項8】
前記クラス識別工程を、前記物体位置領域検出工程の後に行う、請求項6または7に記載の物体検出方法。
【請求項9】
前記クラス識別工程を、前記物体位置領域検出工程と同時に行う、請求項6から8のいずれかに記載の物体検出方法。
【請求項10】
請求項6から9のいずれかに記載の物体検出方法をコンピュータに実行させるためのプログラム。
【請求項11】
請求項10に記載のプログラムを記録した、コンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力される画像から、その画像に含まれる物体を検出する物体検出装置、物体検出システム、物体検出方法、プログラムおよび記録媒体に関する。
【背景技術】
【0002】
従来から、入力される画像に含まれる物体を検出する技術が開発されている。物体検出は、ロボットの目としての機能を実現する上で重要な技術である。物体検出に関する研究は、画像から顔を検出したり、人物を検出するなど、検出対象を特定した物体検出から行われてきている。近年では、機械学習や深層学習(Deep Learning)を利用して、物体を検出する技術も提案されている(例えば特許文献1~5参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-16298号公報
【文献】特開2013-12163号公報
【文献】特開2011-138387号公報
【文献】特表2018-526723号公報
【文献】特表2018-513491号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、機械学習を利用する場合、画像に含まれる物体の位置領域を検出する物体位置領域検出部と、上記物体のクラス(種類)を識別するクラス識別部とを、多種(多クラス)のデータを用いて予め学習させておくことにより、推論時には、多クラスの物体を検出することが可能となる。しかし、位置領域の検出およびクラスの識別を両方とも多クラスで行うようにすると、特定のクラスの識別性能が低下する問題がある。
【0005】
例えば、物体として、人、車、トラック、バス、自転車、自動二輪の6クラスのみを識別対象とするアプリケーションを想定したとする。このようなアプリケーションにおいて、物体の位置領域の検出およびクラスの識別を両方とも80クラスについて行えるようにすると、クラス識別部に対して、6クラスのみを識別対象としているにもかかわらず、80クラスを識別するための学習を行うことが必要となる。この場合、クラス識別部の規模(処理容量)を一定としたときに、クラス識別部の識別性能が、識別対象である6クラス以外の74クラスにも割かれることになり、その結果、識別対象(6クラス)の識別性能が低下する。
【0006】
一方、識別対象の識別性能の低下を回避すべく、物体位置領域検出部の学習とクラス識別部の学習とを両方とも、6クラス分のデータを用いて行うと、物体位置領域検出部およびクラス識別部が、限られた6クラスの特徴のみを学習することによって、過学習に陥りやすくなり、汎化性能が低下しやすくなる。例えば識別対象のクラスと似た特徴をもつ別クラスの物体を誤検出しやすくなる(例えば画像に含まれる「列車」を「バス」と検出する場合がある)。このような汎化性能の低下は、物体の検出性能の低下につながる。
【0007】
そこで、特定のクラスについての識別性能の低下を回避するとともに、汎化性能の低下による物体の検出性能の低下を回避する技術が必要となるが、このような技術は、特許文献1~5を含めて未だ提案されていない。
【0008】
本発明は、上記の問題点を解決するためになされたもので、その目的は、特定のクラスについての識別性能を向上させるとともに、汎化性能を向上させて物体の検出性能を向上させることができる物体検出装置、物体検出システム、物体検出方法、プログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【0009】
本発明の一側面に係る物体検出装置は、入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出部と、予め複数のクラスが定義された第2のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別部と、前記物体位置領域検出部の検出結果と前記クラス識別部の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力部とを備え、前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少なく、前記第2のクラス定義で定義された複数のクラスは、前記第1のクラス定義で定義された複数のクラスの一部を集めて構成されている。
【0010】
本発明の他の側面に係る物体検出システムは、前記物体検出装置と、前記物体検出装置に入力される前記画像を取得する撮像部とを備えている。
【0011】
本発明のさらに他の側面に係る物体検出方法は、入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出工程と、予め複数のクラスが定義された第2のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別工程と、前記物体位置領域検出部の検出結果と前記クラス識別部の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力工程とを含み、前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少なく、前記第2のクラス定義で定義された複数のクラスは、前記第1のクラス定義で定義された複数のクラスの一部を集めて構成されている。
【0012】
本発明のさらに他の側面に係るプログラムは、上記物体検出方法をコンピュータに実行させるためのプログラムである。
【0013】
本発明のさらに他の側面に係る記録媒体は、上記プログラムを記録した、コンピュータ読取可能な記録媒体である。
【発明の効果】
【0014】
第1のクラス定義で定義されたクラスの数は、第2のクラス定義で定義されたクラスの数よりも相対的に多いため、第1のクラス定義に基づき、画像中の物体の位置領域の検出を多クラスについて行うことができる。これにより、汎化性能を向上させて物体の検出性能を向上させることができる。また、クラスの識別については、第2のクラス定義に基づいて特定の少クラスで識別を行い、それ以外のクラスの識別を不要とすることができるため、特定の少クラスについての識別性能を向上させることができる。
【図面の簡単な説明】
【0015】
【
図1】本発明の実施の一形態の物体検出システムの全体の構成を模式的に示すブロック図である。
【
図2】上記物体検出システムにおける学習時の処理の流れを示す説明図である。
【
図3】上記物体検出システムにおける推論時の処理の一例を示す説明図である。
【
図4】上記物体検出システムにおける推論時の処理の他の例を示す説明図である。
【発明を実施するための形態】
【0016】
本発明の実施の一形態について、図面に基づいて説明すれば、以下の通りである。
【0017】
〔1.物体検出システムの構成〕
図1は、本実施形態の物体検出システム1の全体の構成を模式的に示すブロック図である。物体検出システム1は、撮像部2と、物体検出装置3とを含んで構成される。撮像部2は、物体を撮影して画像を取得するカメラで構成されている。上記画像は、例えば動画であるが、静止画であってもよい。物体検出システム1に含まれる撮像部2の台数は特に制限されず、1台であってもよいし、複数台であってもよい。
【0018】
撮像部2は、有線ケーブルやLAN(Local Area Network)などの通信回線を介して物体検出装置3と通信可能に接続されている。なお、撮像部2は、物体検出装置3と無線通信可能に構成されていてもよい。いずれにしても、撮像部2での撮影によって取得された画像のデータは、通信回線を介して物体検出装置3に送られる。
【0019】
物体検出装置3は、例えばパーソナルコンピュータ(PC)で構成されている。この物体検出装置3は、物体位置領域検出部11と、クラス識別部12と、物体検出結果出力部13と、記憶部14と、入力部15と、表示部16と、通信部17と、読取部18と、制御部19とを有している。制御部19は、物体検出装置3の各部の動作を制御する中央演算処理装置(CPU;Central Processing Unit)で構成されており、記憶部14のプログラム記憶部14aに記憶された動作プログラムに従って動作する。
【0020】
物体位置領域検出部11は、入力される画像から、その画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する。ここで、「入力される画像」とは、例えば、撮像部2から物体検出装置3に入力される画像を考えることができるが、この画像に限定されるわけではなく、その他にも、外部の端末装置やサーバーから通信回線を介して物体検出装置3に入力される画像を考えることもできる。
【0021】
物体位置領域検出部11は、例えばGPU(Graphics Processing Unit)で構成されている。GPUは、リアルタイムな画像処理に特化した演算装置(プロセッサ)である。物体位置領域検出部11をGPUで構成することにより、GPUにおいて畳み込み型ニューラルネットワーク(CNN;Convolutional Neural Network)などの機械学習が可能なニューラルネットワークを構築し、このニューラルネットワークを物体位置領域検出部11として機能させることが可能となる。
【0022】
本実施形態では、上記第1のクラス定義として、例えば80個のクラスが定義されている。上記80個のクラスには、例えば“Person”、“Bicycle”、“Car”、“Motorcycle”、“Airplane”、“Bus”、“Train”、“Truck”、“Boat”、“Traffic light”、などのクラスが含まれている。物体位置領域検出部11は、入力画像から、第1のクラス定義で定義されたクラスに属する可能性のある物体の位置領域を検出するように、予め学習されている(CNNを構成する各ノードのパラメータ(重み)が予め設定されている)。これにより、物体位置領域検出部11は、実際に外部から画像が入力されたときに、第1のクラス定義に基づき、入力された画像から、“Person”らしい物体、“Bicycle”らしい物体等の位置領域を検出することが可能となる。
【0023】
クラス識別部12は、予め複数のクラスが定義された第2のクラス定義に基づいて、入力された画像に含まれる物体が複数のクラスのいずれに属するかを識別する。このようなクラス識別部12は、物体位置領域検出部11と同様に、GPUで構成されている。これにより、GPUにおいてCNNなどの機械学習が可能なニューラルネットワークを構築し、このニューラルネットワークをクラス識別部12として機能させることが可能となる。
【0024】
本実施形態では、上記第2のクラス定義として、例えば5個のクラスが定義されている。上記5個のクラスは、例えば“Person”、“Car”、“Bus”、“Truck”、“Others”である。つまり、第2のクラス定義で定義されたクラスの数は、第1のクラス定義で定義されたクラスの数よりも少ない。
【0025】
ここで、第2のクラス定義で定義された複数のクラスのうち、“Person”、“Car”、“Bus”、“Truck”は、第1のクラス定義で定義されたクラスと同一である。また、第2のクラス定義で定義された“Others”は、ここでは、第1のクラス定義で定義された複数のクラスのうち、“Person”、“Car”、“Bus”、“Truck”以外のクラスをまとめたクラスを指す。したがって、第2のクラス定義で定義された複数のクラスは、第1のクラス定義で定義された複数のクラスの一部と同一のクラス(上記の例では、“Person”、“Car”、“Bus”、“Truck”)と、第1のクラス定義で定義された複数のクラスにおける他の2以上のクラスをまとめたクラス(上記の例では、“Others”)とを含むと言える。
【0026】
また、第2のクラス定義で定義された複数のクラス(“Person”、“Car”、“Bus”、“Truck”、“Others”)は、第1のクラス定義で定義された80個のクラスの一部(“Person”、“Car”、“Bus”、“Truck”、他の2以上のクラス)を集めて構成されている。つまり、第2のクラス定義で定義された複数のクラスは、第2のクラス定義で定義された複数のクラスの一部の集合(部分集合)である。
【0027】
クラス識別部12は、入力画像に含まれる物体が属するクラスを第2のクラス定義に基づいて識別するように、予め学習されている(CNNを構成する各ノードのパラメータ(重み)が予め設定されている)。これにより、クラス識別部12は、実際に外部から画像が入力されたときに、第2のクラス定義に基づいて、入力画像に含まれる物体(物体位置領域検出部11によって位置領域が既に検出された物体を含む)が第2のクラス定義で定義されたクラスのいずれに属するかを識別することが可能となる。
【0028】
本実施形態では、クラス識別部12はCNNで構成されているため、クラス識別部12からは、物体が属するクラスの識別結果だけでなく、そのクラスの尤度(確からしさ)を示すスコアも出力される。例えば、物体が“Person”である確からしさは0.8であり、“Car”である確からしさは0.2である、などの情報(スコア付きクラス情報)が、クラス識別部12から出力される。
【0029】
物体検出結果出力部13は、物体位置領域検出部11の検出結果とクラス識別部12の識別結果とに基づいて、物体の検出結果を出力する。例えば、物体位置領域検出部11で検出された位置領域にある物体について、その物体が“Person”である確からしさは0.8であり、“Car”である確からしさは0.2である、という情報がクラス識別部12から出力されたとき、物体検出結果出力部13は、上記位置領域の情報と、上記位置領域にある物体が(“Car”ではなく)“Person”であるという識別結果とを物体の検出結果として出力する。このような物体検出結果出力部13は、例えば制御部19と同一の、または別個のCPUで構成されている。
【0030】
記憶部14は、各種の情報を記憶するメモリであり、例えばハードディスクで構成されるが、RAM(Random Access Memory)、ROM(Read Only Memory)などをさらに含んで構成されてもよい。この記憶部14は、プログラム記憶部14aと、入力画像記憶部14bと、クラス定義記憶部14cと、パラメータ記憶部14dとを有している。
【0031】
プログラム記憶部14aは、物体検出装置3の各部を動作させるための動作プログラムを記憶する。入力画像記憶部14bは、例えば撮像部2で取得され、物体検出装置3に入力された画像のデータを一次的に記憶する。なお、入力画像記憶部14bは、外部の端末装置やサーバーから物体検出装置3に画像データが入力されたときに、上記画像データを一時的に記憶してもよい。また、物体検出装置3に入力される画像は、入力画像記憶部14bに記憶されることなく、物体位置領域検出部11に直接入力される構成であってもよい。
【0032】
クラス定義記憶部14cは、上述した第1のクラス定義(例えば20個のクラス)および第2のクラス定義(例えば5個のクラス)を記憶する。なお、クラス定義記憶部14cに記憶させる第1のクラス定義および第2のクラス定義は、後述する入力部15によって変更(更新)することが可能である。上記した物体位置領域検出部11は、クラス定義記憶部14cにアクセスすることにより、第1のクラス定義に基づいて物体の位置領域を検出することが可能となる。また、クラス識別部12は、クラス定義記憶部14cにアクセスすることにより、第2のクラス定義に基づいて物体のクラスを識別することが可能となる。
【0033】
パラメータ記憶部14dは、物体位置領域検出部11およびクラス識別部12を構成するCNNの各ノードのパラメータ(重み)を記憶する。上記のパラメータは、CNNの学習ごとに更新され、パラメータ記憶部14dに記憶される。
【0034】
入力部15は、例えばキーボード、マウス、タッチパッド、タッチパネルなどで構成され、ユーザによる各種の指示入力を受け付ける。表示部16は、各種の情報を表示するデバイスであり、例えば液晶表示装置で構成される。通信部17は、撮像部2および外部端末(例えば他の端末装置(スマートフォンなどの携帯端末を含む)、サーバー)と通信するためのインターフェースである。この通信部17は、入出力ポートのほか、アンテナ、送受信回路、変調回路、復調回路などを含んで構成される。読取部18は、記録媒体Rに記録された情報を読み取る装置であり、例えばディスクドライブで構成される。なお、記録媒体Rが可搬型の不揮発性メモリである場合、上記不揮発性メモリの接続部が指し込まれる接続ポートも読取部18に含まれるとする。
【0035】
〔2.物体検出システムの動作〕
次に、本実施形態の物体検出システム1の動作について、学習時と推論時(物体検出時)とに分けて説明する。なお、以下での説明において、第1のクラス定義としては、上述の80クラス(例えば“Person”、“Bicycle”、“Car”、“Motorcycle”、“Airplane”、“Bus”、“Train”、“Truck”、“Boat”、“Traffic light”など)が定義されており、第2のクラス定義としては、上述の5クラス(例えば“Person”、“Car”、“Bus”、“Truck”、“Others”)が定義されているとする。
【0036】
(学習時の動作)
図2は、物体検出システム1における学習時の処理の流れを示す説明図である。まず、学習に先立って、学習用のデータセットを用意する(S1)。上記データセットは、物体を含む画像のデータと、その物体の正解クラスを示すラベルとがセットになったものである。ここでは、80クラスの画像のデータを含むデータセットを用意するが、正解クラスの定義として、上記した第1のクラス定義と第2のクラス定義との2種類が存在する。したがって、例えば“Person”の画像に対する正解クラスは、第1のクラス定義でも第2のクラス定義でも“Person”であるが、“Bicycle”の画像に対する正解クラスは、第1のクラス定義では“Bicycle”であり、第2のクラス定義では“Others”である。なお、80クラスのそれぞれについて、データセットを複数用意してもよい。例えば、80クラスのうちの1クラスを構成する“Person”について、画像の異なる複数のデータセットを用意してもよい。
【0037】
学習用のデータセットの画像を物体検出装置3に入力すると(S2)、物体位置領域検出部11は、上記画像から、第1のクラス定義に基づき、80個のクラスのいずれかに属する可能性のある物体の位置領域をCNNでのニューロ演算によって検出する(S3)。そして、クラス識別部12は、物体位置領域検出部11によって検出された位置領域にある物体のクラスが、第2のクラス定義で定義された5個のクラスのいずれに属するかを、CNNでのニューロ演算によって識別する(S4)。
【0038】
その後、制御部19は、クラス識別部12から出力される情報に基づき、誤差逆伝播法(バックプロパゲーション)を用いて、物体位置領域検出部11およびクラス識別部12を構成するCNNの各ノードのパラメータを更新する(S5)。より詳しくは、制御部19は、第1のクラス定義で定義された正解クラスの物体について位置領域を検出するように、物体位置領域検出部11の各ノードのパラメータを更新するとともに、物体位置領域検出部11で検出された位置領域にある物体のクラスの識別結果として、第2のクラス定義で定義された正解クラスを出力するように、クラス識別部12の各ノードのパラメータを更新する。
【0039】
(推論時の動作)
図3は、物体検出システム1における推論時の処理の一例を示す説明図である。例えば、撮像部2で取得された画像が物体検出装置3に入力されると(S11)、物体位置領域検出部11は、上記画像から、第1のクラス定義に基づき、80個のクラスのいずれかに属する可能性のある物体の位置領域を、CNNでのニューロ演算によって検出する(S12;物体位置領域検出工程)。
【0040】
次に、クラス識別部12は、物体位置領域検出部11によって検出された位置領域にある物体のクラスが、第2のクラス定義で定義された5個のクラス(例えば“Person”、“Car”、“Bus”、“Truck”、“Others”)のいずれに属するかを、CNNでのニューロ演算によって識別し、識別したクラスの情報を、スコア付きで出力する(S13;クラス識別工程)。
【0041】
物体検出結果出力部13は、クラス識別部12から出力されるクラス情報の中からスコアの最も高い物体のクラスを選択し、選択したクラスと、物体位置領域検出部11で検出された位置領域の情報とを、物体の検出結果として出力する(S14;物体検出結果出力工程)。物体検出結果出力部13から出力される物体の検出結果(位置領域の情報、クラス情報)については、例えば表示部16で表示させてもよいし、通信部17を介して外部に送信してもよい。
【0042】
〔3.効果〕
本実施形態では、物体位置領域検出部11が第1のクラス定義に基づいて入力画像に含まれる物体の位置領域を検出し、クラス識別部12が第2のクラス定義に基づいて上記物体のクラスを識別する。この構成において、第2のクラス定義で定義されたクラスの数(例えば5個)は、第1のクラス定義で定義されたクラスの数(例えば80個)よりも少ない。また、第2のクラス定義で定義された複数のクラスは、第1のクラス定義で定義された複数のクラスの一部を集めて構成されている。
【0043】
このように第1のクラス定義および第2のクラス定義が定義されているため、物体位置領域検出部11による位置領域の検出を、第1のクラス定義に基づいて多クラス(上記の例では80クラス)で行うことができる。これにより、画像から多様な物体の存在を検出することが可能となり、汎化性能を向上させて物体の検出性能を向上させることが可能となる。
【0044】
また、クラス識別部12によるクラスの識別については、第2のクラス定義に基づき、第1のクラス定義で定義された複数のクラスのうちの特定の少クラス(上記の例では“Person”、“Car”、“Bus”、“Truck”、“Others”の5クラス)で行うことができる。このため、クラス識別部12の識別性能を、特定のクラス以外のクラスの識別のために割く必要がなくなる。その結果、上記特定のクラスについての識別性能を向上させることができる。逆に、クラス識別部12の識別性能を一定とする場合は、クラス識別部12の規模(例えばGPUの処理能力)を(多クラスの物体を識別可能とする構成に比べて)縮小させることが可能となる。
【0045】
また、第2のクラス定義で定義された複数のクラスは、第1のクラス定義で定義された複数のクラスの一部と同一のクラス(上記の例では“Person”、“Car”、“Bus”、“Truck”の4クラス)と、第1のクラス定義で定義された複数のクラスにおける他の2以上のクラスをまとめたクラス(例えば“Others”)とを含む。この場合、クラス識別部12が第2のクラス定義に基づいて識別するクラスを、第1のクラス定義で定義された複数のクラスの一部と同一のクラスに絞って、そのクラスの識別性能を向上させることができる。また、第1のクラス定義で定義された複数のクラスにおける他の2以上のクラスについては、それらを1つのクラスとして識別するため、互いの区別(例えば“Bicycle”と“Motorcycle”との区別)を不要とすることができ、互いのクラスを区別するための学習も不要とすることができる。
【0046】
また、物体位置領域検出部11は、ニューラルネットワークで構成されている。この場合、物体位置領域検出部11を機械学習させることにより、入力画像をもとに物体の位置領域をニューロ演算によって検出することが可能となる。また、機械学習によってニューラルネットワークのパラメータ(各ノードの重み)を更新することにより、位置領域の検出精度、つまり、物体の存在の有無の検出精度を向上させることが可能となる。
【0047】
また、クラス識別部12は、ニューラルネットワークで構成されている。この場合、クラス識別部12を機械学習させることにより、物体のクラスをニューロ演算によって識別することが可能となる。また、機械学習によってニューラルネットワークのパラメータ(各ノードの重み)を更新することにより、クラスの識別精度を向上させることが可能となる。
【0048】
また、本実施形態では、クラス識別部12は、物体位置領域検出部11による位置領域の検出後、クラスを識別している(
図3参照)。この場合、クラス識別部12は、物体位置領域検出部11によって位置領域が検出された物体について、そのクラスを識別することができるため(物体らしいものについてのみクラスの識別ができるため)、物体の検出性能をさらに向上させることができる。
【0049】
〔4.変形例〕
図4は、物体検出システム1における推論時の処理の他の例を示す説明図である。
図4では、物体位置領域検出部11による位置領域の検出と同時に、クラス識別部12が画像に含まれる物体のクラスを識別する点以外は、
図3と同様である。この構成では、クラス識別部12がクラスを識別する対象となる物体は、画像内で特定の位置領域に存在する物体ではなく、入力画像のどこかに存在する物体となるが、この場合でも、クラス識別部12を予め機械学習させておくことにより、推論時に入力画像内のどこかに位置する物体(位置領域が特定されていない物体)のクラスを識別することが可能となる。
【0050】
このように、物体位置領域検出部11による位置領域の検出と、クラス識別部12による物体のクラスの識別とを同時に行うことにより、
図3のようにそれらの処理を連続的に行う場合に比べて迅速な物体検出(検出結果の出力)を行うことが可能となる。
【0051】
〔5.プログラムおよび記録媒体〕
上述した本実施形態の物体検出装置3は、例えば、所定のプログラム(アプリケーションソフトウェア)をインストールしたコンピュータ(PC)で構成することができる。上記プログラムをコンピュータ(例えばCPUとしての制御部19)が読み取って実行することにより、物体検出装置3の各部を動作させて上述した各処理(各工程)を実行させることができる。このようなプログラムは、例えばネットワークを介して外部からダウンロードすることによって取得されてプログラム記憶部14aに記憶される。また、上記プログラムは、例えばCD-ROM(Compact Disk-Read Only Memory)などのコンピュータ読取可能な記録媒体Rに記録され、この記録媒体Rから上記プログラムをコンピュータが読み取ってプログラム記憶部14aに記憶する形態であってもよい。
【0052】
〔6.その他〕
以上の各実施の形態で説明した物体検出装置、物体検出システム、物体検出方法、プログラムおよび記録媒体は、以下のように表現されてもよい。
【0053】
1.入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出部と、
予め複数のクラスが定義された第2のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別部と、
前記物体位置領域検出部の検出結果と前記クラス識別部の識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力部とを備え、
前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少なく、
前記第2のクラス定義で定義された複数のクラスは、前記第1のクラス定義で定義された複数のクラスの一部を集めて構成されていることを特徴とする物体検出装置。
【0054】
2.前記第2のクラス定義で定義された複数のクラスは、
前記第1のクラス定義で定義された複数のクラスの一部と同一のクラスと、
前記第1のクラス定義で定義された複数のクラスにおける他の2以上のクラスをまとめたクラスとを含むことを特徴とする前記1に記載の物体検出装置。
【0055】
3.前記物体位置領域検出部は、ニューラルネットワークで構成されていることを特徴とする前記1または2に記載の物体検出装置。
【0056】
4.前記クラス識別部は、ニューラルネットワークで構成されていることを特徴とする前記1から3のいずれかに記載の物体検出装置。
【0057】
5.前記クラス識別部は、前記物体位置領域検出部による前記位置領域の検出後、前記クラスを識別することを特徴とする前記1から4のいずれかに記載の物体検出装置。
【0058】
6.前記クラス識別部は、前記物体位置領域検出部による前記位置領域の検出と同時に、前記クラスを識別することを特徴とする前記1から4のいずれかに記載の物体検出装置。
【0059】
7.前記1から6のいずれかに記載の物体検出装置と、
前記物体検出装置に入力される前記画像を取得する撮像部とを備えていることを特徴とする物体検出システム。
【0060】
8.入力される画像から、前記画像に含まれる物体の位置領域を、予め複数のクラスが定義された第1のクラス定義に基づいて検出する物体位置領域検出工程と、
予め複数のクラスが定義された第2のクラス定義に基づいて、前記物体が前記複数のクラスのいずれに属するかを識別するクラス識別工程と、
前記物体位置領域検出工程での検出結果と前記クラス識別工程での識別結果とに基づいて、前記物体の検出結果を出力する物体検出結果出力工程とを含み、
前記第2のクラス定義で定義されたクラスの数は、前記第1のクラス定義で定義されたクラスの数よりも少なく、
前記第1のクラス定義で定義された各クラスは、前記第2のクラス定義で定義された各クラスのいずれかに含まれることを特徴とする物体検出方法。
【0061】
9.前記第2のクラス定義で定義された複数のクラスは、
前記第1のクラス定義で定義された複数のクラスの一部と同一のクラスと、
前記第1のクラス定義で定義された複数のクラスにおける他の2以上のクラスをまとめたクラスとを含むことを特徴とする前記8に記載の物体検出方法。
【0062】
10.前記物体位置領域検出工程では、ニューロ演算により、前記位置領域を検出することを特徴とする前記8または9に記載の物体検出方法。
【0063】
11.前記クラス識別工程では、ニューロ演算により、前記クラスを識別することを特徴とする前記8から10のいずれかに記載の物体検出方法。
【0064】
12.前記クラス識別工程を、前記物体位置領域検出工程の後に行うことを特徴とする前記8から11のいずれかに記載の物体検出方法。
【0065】
13.前記クラス識別工程を、前記物体位置領域検出工程と同時に行うことを特徴とする前記8から11のいずれかに記載の物体検出方法。
【0066】
14.前記8から13のいずれかに記載の物体検出方法をコンピュータに実行させるためのプログラム。
【0067】
15.前記14に記載のプログラムを記録した、コンピュータ読取可能な記録媒体。
【0068】
以上、本発明の実施形態について説明したが、本発明の範囲はこれに限定されるものではなく、発明の主旨を逸脱しない範囲で拡張または変更して実施することができる。
【産業上の利用可能性】
【0069】
本発明は、入力される画像から、その画像に含まれる物体を検出するシステムに利用可能である。
【符号の説明】
【0070】
1 物体検出システム
2 撮像部
3 物体検出装置
11 物体位置領域検出部
12 クラス識別部
13 物体検出結果出力部