(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-20
(45)【発行日】2024-05-28
(54)【発明の名称】人検出装置、人検出方法及び人検出用コンピュータプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240521BHJP
【FI】
G06T7/00 660B
G06T7/00 350B
G06T7/00 650A
(21)【出願番号】P 2021074272
(22)【出願日】2021-04-26
【審査請求日】2023-05-19
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【氏名又は名称】河野 努
(72)【発明者】
【氏名】山崎 将幸
【審査官】新井 則和
(56)【参考文献】
【文献】特開2015-121905(JP,A)
【文献】特開2021-033374(JP,A)
【文献】国際公開第2012/169119(WO,A1)
【文献】特開2017-027197(JP,A)
【文献】寺田 賢治,解説 セキュリティ 屋外監視カメラを用いた人物同士の重なりを考慮した通行人数計測,画像ラボ 第30巻 第3号,2019年03月10日,pp. 18-24
【文献】Miaopeng Li et al.,Multi-Person Pose Estimation Using Bounding Box Constraint and LSTM,IEEE Transactions on Multimedia VOL. 21 NO. 10,2019年10月31日,https://ieeexplore.ieee.org/document/8662702
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
撮像部により生成された画像から、人が表されている人領域を1以上検出する検出部と、
2以上の前記人領域の重複度合いが所定の閾値以上である場合、2以上の前記人領域のうちの一つを選択することで、あるいは、前記2以上の人領域を含むように一つの統合人領域を設定する統合部と、
前記統合人領域を、人の骨格を検出するように予め学習された骨格検出器に入力することで、前記統合人領域に含まれる一人以上の人のうちの未特定かつ最も手前側の人の骨格を検出する骨格検出部と、
前記最も手前側の人の骨格に基づいて、前記統合人領域内で前記最も手前側の人が表された領域をマスクすることで前記統合人領域を更新するマスク部と、
前記更新された統合人領域に対して、人の骨格が検出されなくなるまで、前記骨格検出部及び前記マスク部の処理を繰り返させるとともに、前記統合人領域から検出された骨格の数を前記統合人領域に表された人の数とする繰り返し制御部と、
を有する人検出装置。
【請求項2】
前記画像よりも前に前記撮像部により生成された時系列の一連の過去画像のそれぞれから検出された人を追跡することで、前記画像上で二人以上の人が表されることが推定される重複推定領域を求める重複推定部をさらに有し、
前記統合部は、前記重複度合いが前記閾値以上となる前記2以上の人領域が前記重複推定領域から外れている場合、前記2以上の人領域のそれぞれに同じ人が表されていると判定する、請求項1に記載の人検出装置。
【請求項3】
前記統合部は、前記重複度合いが前記閾値以上となる前記2以上の人領域が前記重複推定領域から外れている場合、前記2以上の人領域の何れか一つを選択して他の人領域を削除し、一方、前記重複度合いが前記閾値以上となる前記2以上の人領域が前記重複推定領域に含まれる場合、前記2以上の人領域の和集合となる領域を含むように前記統合人領域を設定する、請求項2に記載の人検出装置。
【請求項4】
前記画像よりも前に前記撮像部により生成された時系列の一連の過去画像のそれぞれから検出された人を追跡することで、前記画像上で二人以上の人が表されることが推定される重複推定領域を求める重複推定部をさらに有し、
前記統合部は、前記2以上の人領域が前記重複推定領域に含まれる場合の前記閾値を、前記2以上の人領域が前記重複推定領域から外れる場合の前記閾値よりも低く設定する、請求項1に記載の人検出装置。
【請求項5】
撮像部により生成された画像から、人が表されている人領域を1以上検出し、
2以上の前記人領域の重複度合いが所定の閾値以上である場合、2以上の前記人領域のうちの一つを選択することで、あるいは、前記2以上の人領域を含むように一つの統合人領域を設定し、
前記統合人領域を、人の骨格を検出するように予め学習された骨格検出器に入力することで、前記統合人領域に含まれる一人以上の人のうちの未特定かつ最も手前側の人の骨格を検出し、
前記最も手前側の人の骨格に基づいて、前記統合人領域内で前記最も手前側の人が表された領域をマスクすることで前記統合人領域を更新し、
前記更新された統合人領域に対して、人の骨格が検出されなくなるまで、骨格の検出及び人が表された領域のマスクを繰り返すとともに、前記統合人領域から検出された骨格の数を前記統合人領域に表された人の数とする、
ことを含む人検出方法。
【請求項6】
撮像部により生成された画像から、人が表されている人領域を1以上検出し、
2以上の前記人領域の重複度合いが所定の閾値以上である場合、2以上の前記人領域のうちの一つを選択することで、あるいは、前記2以上の人領域を含むように一つの統合人領域を設定し、
前記統合人領域を、人の骨格を検出するように予め学習された骨格検出器に入力することで、前記統合人領域に含まれる一人以上の人のうちの未特定かつ最も手前側の人の骨格を検出し、
前記最も手前側の人の骨格に基づいて、前記統合人領域内で前記最も手前側の人が表された領域をマスクすることで前記統合人領域を更新し、
前記更新された統合人領域に対して、人の骨格が検出されなくなるまで、骨格の検出及び人が表された領域のマスクを繰り返すとともに、前記統合人領域から検出された骨格の数を前記統合人領域に表された人の数とする、
ことをコンピュータに実行させるための人検出用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像に表された人を検出する人検出装置、人検出方法及び人検出用コンピュータプログラムに関する。
【背景技術】
【0002】
カメラにより得られた画像に表された人を検出する技術が研究されている(例えば、特許文献1~4を参照)。
【0003】
特許文献1に開示された属性決定装置は、人を上方から撮影した画像から人の骨格を規定する点となる制御点の位置を検出し、その検出結果を用いて人の属性を認識する。
【0004】
また、特許文献2に開示された画像処理装置は、画像の第1の領域に対し、特定物体の検出処理を施すことで第1の領域の特定物体の数を推定する。さらに、この画像処理装置は、画像の第2の領域に対し、所定の領域ごとに特定物体の数を推定する回帰処理を施すことで第2の領域の特定物体の数を推定する。そしてこの画像処理装置は、それらの推定の結果を統合する。
【0005】
さらにまた、特許文献3に開示された人物検出装置は、画像から抽出され、所定の物体を含むと識別された複数の部分領域のうち、互いに重複する複数の部分領域の識別結果をその部分領域の奥行き方向の距離に基づいて統合するか否かを判定する。
【0006】
さらにまた、特許文献4に開示されたモニタリング装置は、撮影映像から人物を検出して人物領域に関する位置情報を取得し、その位置情報に基づき、人物領域における人物の状態を表す領域状態を判定する。そしてこのモニタリング装置は、領域状態に対応したマスク画像を設定し、人物領域を領域状態に応じたマスク画像に変更した出力映像を生成して出力する。さらに、このモニタリング装置は、人物ごとの各フレームでの位置情報を取得し、複数の人物が重なり合った状態となるフレームで人物検出が失敗した場合には、そのフレームでの位置情報を、直前の複数のフレームで取得した位置情報から取得する。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2020-98474号公報
【文献】特開2018-22340号公報
【文献】特開2016-95808号公報
【文献】特開2015-222881号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記の技術では、検出対象となる複数の人が画像上で重なって見える場合に、個々の人の検出に失敗することがある。
【0009】
そこで、本発明は、画像上で複数の人が重なっている場合でも、個々の人を検出することが可能な人検出装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
一つの実施形態によれば、人検出装置が提供される。この人検出装置は、撮像部により生成された画像から、人が表されている人領域を1以上検出する検出部と、2以上の人領域の重複度合いが所定の閾値以上である場合、その2以上の人領域のうちの一つを選択することで、あるいは、その2以上の人領域を含むように一つの統合人領域を設定する統合部と、統合人領域を、人の骨格を検出するように予め学習された骨格検出器に入力することで、統合人領域に含まれる一人以上の人のうちの未特定かつ最も手前側の人の骨格を検出する骨格検出部と、最も手前側の人の骨格に基づいて、統合人領域内で最も手前側の人が表された領域をマスクすることで統合人領域を更新するマスク部と、更新された統合人領域に対して、人の骨格が検出されなくなるまで、骨格検出部及びマスク部の処理を繰り返させるとともに、統合人領域から検出された骨格の数を統合人領域に表された人の数とする繰り返し制御部とを有する。
【0011】
この人検出装置は、画像よりも前に撮像部により生成された時系列の一連の過去画像のそれぞれから検出された人を追跡することで、画像上で二人以上の人が表されることが推定される重複推定領域を求める重複推定部をさらに有することが好ましい。この場合において、統合部は、重複度合いが閾値以上となる2以上の人領域が重複推定領域から外れている場合、その2以上の人領域のそれぞれに同じ人が表されていると判定することが好ましい。
【0012】
さらに、統合部は、重複度合いが閾値以上となる2以上の人領域が重複推定領域から外れている場合、2以上の人領域の何れか一つを選択して他の人領域を削除し、一方、重複度合いが閾値以上となる2以上の人領域が重複推定領域に含まれる場合、その2以上の人領域の和集合となる領域を含むように統合人領域を設定することが好ましい。
【0013】
また、この人検出装置は、画像よりも前に撮像部により生成された時系列の一連の過去画像のそれぞれから検出された人を追跡することで、画像上で二人以上の人が表されることが推定される重複推定領域を求める重複推定部をさらに有することが好ましい。この場合において、統合部は、2以上の人領域が重複推定領域に含まれる場合の閾値を、2以上の人領域が重複推定領域から外れる場合の閾値よりも低く設定することが好ましい。
【0014】
他の実施形態によれば、人検出方法が提供される。この人検出方法は、撮像部により生成された画像から、人が表されている人領域を1以上検出し、2以上の人領域の重複度合いが所定の閾値以上である場合、その2以上の人領域のうちの一つを選択することで、あるいは、その2以上の人領域を含むように一つの統合人領域を設定し、統合人領域を、人の骨格を検出するように予め学習された骨格検出器に入力することで、統合人領域に含まれる一人以上の人のうちの未特定かつ最も手前側の人の骨格を検出し、最も手前側の人の骨格に基づいて、統合人領域内で最も手前側の人が表された領域をマスクすることで統合人領域を更新し、更新された統合人領域に対して、人の骨格が検出されなくなるまで、骨格の検出及び人が表された領域のマスクを繰り返すとともに、統合人領域から検出された骨格の数を統合人領域に表された人の数とする、ことを含む。
【0015】
さらに他の実施形態によれば、人検出用コンピュータプログラムが提供される。この人検出用コンピュータプログラムは、撮像部により生成された画像から、人が表されている人領域を1以上検出し、2以上の人領域の重複度合いが所定の閾値以上である場合、その2以上の人領域のうちの一つを選択することで、あるいは、その2以上の人領域を含むように一つの統合人領域を設定し、統合人領域を、人の骨格を検出するように予め学習された骨格検出器に入力することで、統合人領域に含まれる一人以上の人のうちの未特定かつ最も手前側の人の骨格を検出し、最も手前側の人の骨格に基づいて、統合人領域内で最も手前側の人が表された領域をマスクすることで統合人領域を更新し、更新された統合人領域に対して、人の骨格が検出されなくなるまで、骨格の検出及び人が表された領域のマスクを繰り返すとともに、統合人領域から検出された骨格の数を統合人領域に表された人の数とする、ことをコンピュータに実行させる命令を有する。
【発明の効果】
【0016】
本発明に係る人検出装置は、画像上で複数の人が重なっている場合でも、個々の人を検出することができるという効果を奏する。
【図面の簡単な説明】
【0017】
【
図1】人検出装置が実装される車両制御システムの概略構成図である。
【
図2】人検出装置の一実施形態である電子制御装置のハードウェア構成図である。
【
図3】人検出処理を含む車両制御処理に関する、電子制御装置のプロセッサの機能ブロック図である。
【
図5】骨格検出処理及びマスク処理の一例を示す図である。
【
図7】人検出処理を含む車両制御処理の動作フローチャートである。
【発明を実施するための形態】
【0018】
以下、図を参照しつつ、人検出装置及び人検出装置上で実行される人検出方法及び人検出用コンピュータプログラムについて説明する。この人検出装置は、画像に表された人を検出するように予め学習された識別器に画像を入力することで、その画像上で人を含む領域(以下、人領域と呼ぶことがある)を検出する。そしてこの人検出装置は、所定以上重複している2以上の人領域が検出されている場合、それら人領域を統合して一つの統合人領域とする。そしてこの人検出装置は、統合人領域を人の骨格を検出するように予め学習された骨格検出器に入力することで、統合人領域に含まれる一人以上の人のうちの未特定かつ最も手前側の人の骨格を特定する。さらに、この人検出装置は、最も手前側の人の骨格に基づいて、統合人領域内で最も手前側の人が表された画素のそれぞれをマスクし、マスクされた統合人領域を再度骨格検出器に入力する。それ以降、この人検出装置は、統合人領域から人の骨格が検出されなくなるまで、骨格の検出処理及びマスクの処理を繰り返す。これにより、この人検出装置は、画像上で複数の人が重なっている場合でも、個々の人を検出することを可能とする。
【0019】
以下では、人検出装置を、車両制御システムに適用した例について説明する。この例では、人検出装置は、車両に搭載されたカメラにより得られた時系列の一連の画像に対して人検出処理を実行することで、車両の周囲に存在する検出対象物体を検出する。検出対象物体には、車両10の走行に影響を与える物体、例えば、車両10の周囲を走行する他の車両、人、道路標識、信号機、車線区画線などの道路標示、及び、道路上のその他の物体などが含まれる。
【0020】
図1は、人検出装置が実装される車両制御システムの概略構成図である。また
図2は、人検出装置の一つの実施形態である電子制御装置のハードウェア構成図である。本実施形態では、車両10に搭載され、かつ、車両10を制御する車両制御システム1は、車両10の周囲を撮影するためのカメラ2と、人検出装置の一例である電子制御装置(ECU)3とを有する。カメラ2とECU3とは、コントローラエリアネットワークといった規格に準拠した車内ネットワークを介して通信可能に接続される。なお、車両制御システム1は、車両10の自動運転制御に用いられる、地物の位置及び種類、車線区画線などを表す地図情報を記憶するストレージ装置をさらに有していてもよい。さらに、車両制御システム1は、LiDARあるいはレーダといった測距センサ、GPS受信機といった、衛星測位システムに準拠して車両10の自己位置を測位するための受信機、他の機器と無線通信するための無線端末を有していてもよい。さらにまた、車両制御システム1は、車両10の走行予定ルートを探索するためのナビゲーション装置を有していてもよい。
【0021】
カメラ2は、撮像部の一例であり、CCDあるいはC-MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する結像光学系を有する。そしてカメラ2は、車両10の前方を向くように、例えば、車両10の車室内に取り付けられる。そしてカメラ2は、所定の撮影周期(例えば1/30秒~1/10秒)ごとに車両10の前方領域を撮影し、その前方領域が写った画像を生成する。カメラ2により得られた画像は、カラー画像であることが好ましい。なお、車両10には、撮影方向または焦点距離が異なる複数のカメラが設けられてもよい。
【0022】
カメラ2は、画像を生成する度に、その生成した画像を、車内ネットワークを介してECU3へ出力する。
【0023】
ECU3は、車両10を制御する。本実施形態では、ECU3は、カメラ2により得られた時系列の一連の画像から検出された物体に基づいて車両10を自動運転するよう、車両10を制御する。そのために、ECU3は、通信インターフェース21と、メモリ22と、プロセッサ23とを有する。
【0024】
通信インターフェース21は、通信部の一例であり、ECU3を車内ネットワークに接続するためのインターフェース回路を有する。すなわち、通信インターフェース21は、車内ネットワークを介して、カメラ2と接続される。そして通信インターフェース21は、カメラ2から画像を受信する度に、受信した画像をプロセッサ23へわたす。
【0025】
メモリ22は、記憶部の一例であり、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。そしてメモリ22は、ECU3のプロセッサ23により実行される人検出処理を含む車両制御処理において使用される各種のデータ及びパラメータを記憶する。具体的に、メモリ22は、例えば、カメラ2から受信した画像、人検出処理で利用される識別器を特定するための各種パラメータ及び骨格検出器を特定するための各種パラメータ、人領域の統合判定のための重複度合い閾値などを記憶する。さらに、メモリ22は、車両制御処理の途中で生成される各種のデータを一定期間記憶する。さらにまた、メモリ22は、地図情報といった車両10の走行制御に利用される情報を記憶してもよい。
【0026】
プロセッサ23は、制御部の一例であり、1個または複数個のCPU(Central Processing Unit)及びその周辺回路を有する。プロセッサ23は、論理演算ユニット、数値演算ユニットあるいはグラフィック処理ユニット(Graphics Processing Unit, GPU)といった他の演算回路をさらに有していてもよい。そしてプロセッサ23は、車両10が走行している間、カメラ2から画像を受信する度に、受信した画像に対して人検出処理を含む車両制御処理を実行する。そしてプロセッサ23は、検出された車両10の周囲の物体に基づいて、車両10を自動運転するよう、車両10を制御する。
【0027】
図3は、人検出処理を含む車両制御処理に関する、ECU3のプロセッサ23の機能ブロック図である。プロセッサ23は、検出部31と、重複推定部32と、統合部33と、骨格検出部34と、マスク部35と、繰り返し制御部36と、運転計画部37と、車両制御部38とを有する。プロセッサ23が有するこれらの各部は、例えば、プロセッサ23上で動作するコンピュータプログラムにより実現される機能モジュールである。あるいは、プロセッサ23が有するこれらの各部は、プロセッサ23に設けられる、専用の演算回路であってもよい。また、プロセッサ23が有するこれらの各部のうち、検出部31、重複推定部32、統合部33、骨格検出部34、マスク部35及び繰り返し制御部36が、人検出処理に含まれる。なお、車両10に複数のカメラが設けられる場合には、プロセッサ23は、カメラごとに、そのカメラにより得られた画像に基づいて人検出処理を実行してもよい。
【0028】
検出部31は、カメラ2から画像を受信する度に、受信した最新の画像を物体検出用の識別器に入力することで、その画像に表されている検出対象物体を含む物体領域を検出するとともに、その検出対象物体の種類を特定する。本実施形態では、検出対象物体の一つとして人が含まれる。また、検出対象物体には、車両10の走行に影響を与える可能性が有る物体、例えば、他の車両、信号機、道路標示及び道路標識が含まれてもよい。また、人が含まれる物体領域を、上記のように、人領域と呼ぶ。
【0029】
検出部31は、識別器として、画像に表された検出対象物体を含む物体領域を検出し、検出対象物体の種類を識別し、かつ、隠れ信頼度を算出するように予め学習されたDNNを利用する。検出部31が利用するDNNは、例えば、Single Shot MultiBox Detector(SSD)、または、Faster R-CNNといった、コンボリューショナルニューラルネットワーク(以下、単にCNNと呼ぶ)型のアーキテクチャを持つDNNとすることができる。この場合、識別器は、様々な種類の検出対象物体の何れかが表された多数の教師画像を用いて、例えば、誤差逆伝搬法といった学習手法に従って予め学習される。
【0030】
あるいは、検出部31は、識別器として、サポートベクトルマシンあるいはAdaBoostといった、ニューラルネットワーク以外の機械学習手法に基づく識別器を用いてもよい。この場合、識別器は、上記のような多数の教師画像を用いて、適用される機械学習手法に応じた学習手法に従って予め学習されればよい。またこのような識別器が用いられる場合、検出部31は、画像において、様々な位置、様々なサイズあるいは様々なアスペクト比を持つウィンドウを設定する。そして検出部31は、ウィンドウごとに、そのウィンドウから識別器に入力する特徴量(例えば、Haar-like特徴量、HOG特徴量など)を算出し、算出した特徴量を識別器に入力することで、そのウィンドウに検出対象物体が表されているか否かを判定する。そして検出部31は、何れかの種類の検出対象物体が表されていると判定されたウィンドウを物体領域とする。特に、検出部31は、人が表されていると判定されたウィンドウを人領域とする。なお、識別器は、検出対象となる物体の種類ごとに用意されてもよい。
【0031】
検出部31は、検出された各物体領域の画像上での位置及び範囲と、その物体領域に含まれる物体の種類とを、検出物体リストに登録する。そして検出部31は、検出物体リストをメモリ22に記憶する。
【0032】
重複推定部32は、最新の画像よりも前にカメラ2により得られた時系列の一連の過去画像のそれぞれから検出部31により検出された人を追跡することで、その最新の画像上で二人以上の人が表されていることが推定される重複推定領域を特定する。
【0033】
例えば、重複推定部32は、Lucas-Kanade法といった、オプティカルフローに基づく追跡処理を、カメラ2により得られた時系列の一連の過去画像のそれぞれにおける個々の人領域に対して適用することで、その人領域に表された人を追跡する。そのため、重複推定部32は、例えば、直近の過去画像における着目する人領域に対してSIFTあるいはHarrisオペレータといった特徴点抽出用のフィルタを適用することで、その人領域から複数の特徴点を抽出する。そして重複推定部32は、複数の特徴点のそれぞれについて、それ以前の過去画像における人領域における対応する点を、適用される追跡手法に従って特定することで、オプティカルフローを算出すればよい。あるいは、重複推定部32は、画像から検出された移動物体の追跡に適用される他の追跡手法を、時系列の一連の過去画像のそれぞれにおける、個々の領域に対して適用することで、その人領域に表された人を追跡してもよい。
【0034】
重複推定部32は、追跡中の個々の人について、一連の過去画像における追跡結果を利用して、最新の画像におけるその人が表された人領域の位置及び範囲を予測する。その際、重複推定部32は、一連の過去画像における、着目する人の人領域に対してKalman FilterまたはParticle filterなどを用いた予測処理を実行することで、最新の画像におけるその人の人領域の位置及び範囲を予測する。あるいは、重複推定部32は、一連の過去画像における、着目する人の人領域の位置及び範囲の変化の軌跡を外挿することで、最新の画像におけるその人の人領域の位置及び範囲を予測してもよい。
【0035】
重複推定部32は、最新の画像において、2以上の追跡中の人についての人領域の予測位置及び予測範囲が少なくとも部分的に重複する場合、その互いに重複する2以上の推定された人領域を含むように重複推定領域を設定する。例えば、重複推定部32は、その互いに重複する2以上の推定された人領域の和集合となる領域の外接矩形領域、あるいは、その外接矩形領域を所定の画素数だけ水平または垂直方向に広げた領域を重複推定領域とする。そして重複推定部32は、重複推定領域の位置及び範囲を統合部33へ通知する。
【0036】
統合部33は、カメラ2により得られた最新の画像において、2以上の人領域が互いに所定以上重複している場合、その重複している人領域を一つの統合人領域に統合する。本実施形態では、統合部33は、互いに少なくとも部分的に重複する2以上の人領域について、Non-maximum suppression(NMS)処理を実行することで、その2以上の人領域を一つの統合人領域に統合するか否かを判定する。
【0037】
具体的に、統合部33は、互いに少なくとも部分的に重複する2以上の人領域同士の重複度合いを算出し、算出した重複度合いを重複度合い閾値と比較する。統合部33は、例えば、重複度合いとして、互いに少なくとも部分的に重複する2以上の人領域の集合全体の面積に対する、重複している領域の面積の比(Intersection over Union(IoU))を算出する。あるいは、統合部33は、重複度合いとして、互いに少なくとも部分的に重複する2以上の人領域のうちの最大のものの面積に対する、重複している領域の面積の比を算出してもよい。そして統合部33は、重複度合いが重複度合い閾値以上となる場合、その2以上の人領域を一つの統合人領域に統合すると判定する。一方、統合部33は、重複度合いが重複度合い閾値未満となる場合、その2以上の人領域ごとに異なる人が表されていると判定し、それら人領域を統合しない。
【0038】
統合部33は、一つの統合人領域に統合すると判定された2以上の人領域の中から一つの人領域(例えば、大きい方の物体領域)を、統合人領域として選択する。
【0039】
なお、統合部33は、互いに少なくとも部分的に重複する2以上の人領域が重複推定領域に含まれる場合に適用される重複度合い閾値を、それらの人領域が重複推定領域に含まれない場合に以外に適用される重複度合い閾値よりも低い値に設定してもよい。これにより、2以上の人が表されていることが推定される重複推定領域では、相対的に大きな人領域が統合人領域として選択され易くなる。そのため、統合人領域に、2以上の人が含まれる可能性が高くなるので、統合部33は、画像上で重なって見える複数の人の何れかの検出に失敗することを抑制できる。
【0040】
変形例によれば、統合部33は、一つの統合人領域に統合すると判定された2以上の人領域の和集合となる領域、あるいは、その和集合となる領域の外接矩形領域を統合人領域としてもよい。あるいは、統合部33は、一つの統合人領域に統合すると判定された2以上の人領域が重複推定領域に含まれる場合には、それら人領域の和集合となる領域、あるいは、その和種号となる領域の外接矩形領域を統合人領域とする。一方、その2以上の人領域が重複推定領域から外れる場合には、統合部33は、その2以上の人領域のうちの一つを統合人領域としてもよい。
【0041】
図4は、統合人領域の一例を示す図である。
図4の左側に示される画像400において、互いに部分的に重複する二つの人領域411、412が検出されている。この例では、人領域411と人領域412の重複度合いが重複度合い閾値以上であるため、右側の画像401に示されるように、人領域411と人領域412の和集合となる領域の外接矩形領域となる一つの統合人領域421が設定される。
【0042】
統合部33は、統合人領域の位置及び範囲を骨格検出部34へ通知する。
【0043】
骨格検出部34は、カメラ2により得られた最新の画像から統合人領域を切り出す。そして骨格検出部34は、切り出した統合人領域を、人の骨格を検出するように予め学習された骨格検出器に入力することで、その統合人領域に含まれる一人以上の人のうちの未特定かつ最も手前側の人の骨格を検出する。そして骨格検出部34は、骨格が検出される度、統合人領域から検出された骨格の数を1インクリメントする。
【0044】
骨格検出部34は、そのような骨格検出器として、CNN型のアーキテクチャを持つDNNを用いることができる。骨格検出器は、人の骨格が表された多数の教師画像を用いて、例えば、誤差逆伝搬法といった学習手法に従って予め学習される。そして骨格検出器は、頭部、頸部、肩、肘、手、股関節、膝、足といった、骨格を特定するための複数の基準点の位置、及び、人体の構造に従った各基準点の接続関係を表す骨格線を出力する。その際、骨格検出器は、統合人領域内の各画素について、基準点の種別(頭部、頸部など)ごとに、その種別の基準点が表されている確からしさを表す確信度を算出し、その確信度が所定の閾値以上となる位置を、その種別の基準点として出力する。そして骨格検出器は、検出されたそれぞれの基準点のなかから、人体の構造に従って接続したときの確からしさが最大となるように各種別の基準点を選択することで、統合人領域から、未特定の人のうちの最も手前側に位置する一人分の骨格を検出することができる。
【0045】
骨格検出部34は、骨格が検出されたか否かの判定結果を繰り返し制御部36へ通知する。さらに、骨格検出部34は、骨格が検出された場合、検出された骨格の各基準点の位置及び各骨格線を表す骨格情報をマスク部35へ通知する。
【0046】
マスク部35は、骨格検出部34から通知された骨格情報、すなわち、新たに検出された最も手前側の人の骨格線に基づいて、統合人領域内でその最も手前側の人が表された領域をマスクすることで、統合人領域を更新する。本実施形態では、マスク部35は、何れかの骨格線から所定距離以内の領域をマスク領域とする。なお、人の体幹は、手足よりも太いので、マスク部35は、体幹に相当する骨格線からの所定距離を、手足に相当する骨格線からの所定距離も大きくしてもよい。また、統合人領域が小さいほど、カメラ2から離れた位置に人が位置すると推定されるので、マスク部35は、統合人領域が小さいほど、骨格線からの所定距離を小さくしてもよい。あるいは、マスク部35は、頭部に相当する基準点から足に相当する基準点までの距離が小さいほど、骨格線からの所定距離を小さくしてもよい。
【0047】
マスク部35は、マスク領域に含まれる各画素の値を一定値に置換、あるいは、マスク領域が所定の模様あるいはランダムノイズとなるようにマスク領域に含まれる各画素の値を置換することで、マスク領域をマスクする。これにより、マスク領域から骨格の基準点が検出されなくなる。マスク部35は、マスク領域がマスクされることで更新された統合人領域を骨格検出部34へわたす。
【0048】
繰り返し制御部36は、統合人領域から、人の骨格が検出されなくなるまで骨格検出部34及びマスク部35の処理を繰り返させる。本実施形態では、繰り返し制御部36は、骨格検出部34から骨格が検出されたことを表す判定結果を受け取ると、マスク部35に対して、統合人領域内において検出された人が表された領域をマスクさせることで統合人領域を更新させる。そして骨格検出部34に、マスク部35から出力された、更新された統合人領域に対して骨格検出処理を再度実行させる。一方、繰り返し制御部36は、骨格検出部34から骨格が検出されなかったことを表す判定結果を受け取ると、その時点における、骨格検出部34によりカウントされた統合人領域から検出された骨格の数を、その統合人領域に含まれる人の数とする。そして繰り返し制御部36は、その人の数だけ、統合人領域に表された人を、追跡中の人のうちの最新の画像における人領域の推定位置が統合人領域と少なくとも部分的に重複する人に対応付けることで、その人の追跡を継続可能とする。
【0049】
図5は、骨格検出処理及びマスク処理の一例を示す図である。一番上に示される画像500における統合人領域510に対して骨格検出部34により一回目の骨格検出処理が実行されることで、上から2番目の画像501において示されるように、一人目の骨格521が検出される。そして上から3番目の画像502において示されるように、マスク部35によりマスク処理が実行されることで、骨格521を中心とするマスク領域522がマスクされた統合人領域511が得られる。この統合人領域511に対して二回目の骨格検出処理が実行されることで、上から4番目の画像503において示されるように、統合人領域511から二人目の骨格523が検出される。このように、骨格検出処理とマスク処理とが交互に実行されることで、統合人領域に含まれる全ての人の骨格が順に検出される。
【0050】
図6は、プロセッサ23により実行される、人検出処理の動作フローチャートである。プロセッサ23は、カメラ2から画像を受信する度に、
図6に示される動作フローチャートに従って人検出処理を実行する。
【0051】
プロセッサ23の検出部31は、カメラ2から得られた画像を識別器に入力して、その画像に表された一人以上の人を検出する。すなわち、検出部31は、画像上で人を含む人領域を1以上検出する(ステップS101)。
【0052】
プロセッサ23の重複推定部32は、追跡中の個々の人の時系列の一連の過去画像における人領域に基づいて、最新の画像上で少なくとも部分的に重複する2以上の予測される人領域を含むように重複推定領域を設定する(ステップS102)。
【0053】
プロセッサ23の統合部33は、重複推定領域に適用される重複度合い閾値を、重複推定領域外に適用される重複度合い閾値よりも低い値に設定する(ステップS103)。そして統合部33は、互いに少なくとも部分的に重複する2以上の人領域のうち、重複度合いが重複度合い閾値以上となるものを一つの統合人領域に統合する(ステップS104)。
【0054】
プロセッサ23の骨格検出部34は、統合人領域を骨格検出器に入力することで、未検出かつ最も手前側の人の骨格を検出する(ステップS105)。
【0055】
プロセッサ23の繰り返し制御部36は、ステップS105において骨格が検出されたか否か判定する(ステップS106)。骨格が検出されている場合(ステップS106-Yes)、繰り返し制御部36は、プロセッサ23のマスク部35に対して、検出された骨格に基づいて、統合人領域のうち、検出された人が表された領域をマスクさせる(ステップS107)。そして繰り返し制御部36は、検出された人が表された領域がマスクされた統合人領域に対して、ステップS105以降の処理を再度実行させる。
【0056】
一方、骨格が検出されていない場合(ステップS106-No)、繰り返し制御部36は、その時点で統合人領域から検出された骨格の数を、統合人領域に含まれる人の数とする(ステップS108)。そしてプロセッサ23は、人検出処理を終了する。
【0057】
運転計画部37は、検出物体リストを参照して、車両10周囲の物体と車両10とが衝突しないように、車両10の現在位置から所定距離(例えば、500m~1km)先までの所定の区間における車両10の走行予定経路を1以上生成する。走行予定経路は、例えば、所定の区間を車両10が走行する際の各時刻における、車両10の目標位置の集合として表される。
【0058】
運転計画部37は、走行予定経路を生成するために、検出物体リストに登録されている検出対象物体(人を含む。以下、単に物体と呼ぶ)を追跡し、現時刻から所定時間先までの期間における、追跡された物体の軌跡を予測する。
【0059】
例えば、運転計画部37は、重複推定部32において説明したのと同様の追跡処理を、カメラ2により得られた最新の画像における、着目する物体領域及び過去の画像における物体領域に対して適用することで、その物体領域に表された物体を追跡する。
【0060】
運転計画部37は、追跡中の各物体について、カメラ2についての車両10への取り付け位置などの情報を用いて視点変換処理を実行することで、その物体の画像内座標を鳥瞰画像上の座標(鳥瞰座標)に変換する。その際、運転計画部37は、各画像の取得時における、車両10の位置及び姿勢と、検出された物体までの推定距離と、車両10からその物体へ向かう方向とにより、各画像の取得時における、検出された物体の位置を推定できる。なお、運転計画部37は、各画像取得時における車両10の位置及び姿勢を、例えば、車両10に搭載されたGPS受信機(図示せず)から得た車両10の現在位置を表す現在位置情報に基づいて推定できる。あるいは、運転計画部37は、カメラ2により画像が得られる度に、その画像から車両10の左右の車線区画線を検出し、検出された車線区画線とメモリ22に記憶されている地図情報とをマッチングすることで、車両10の位置及び姿勢を推定してもよい。また、運転計画部37は、画像上での検出された物体を含む物体領域の位置及びカメラ2の光軸方向に基づいて、車両10からその物体へ向かう方向を特定することができる。さらに、物体領域の下端の位置は、その物体領域に表される物体の路面に接する位置を表すと想定される。そこで運転計画部37は、物体領域の下端に対応する、カメラ2からの方位と、カメラ2の設置高さとに基づいて、その物体領域に表された物体までの距離を推定できる。そして運転計画部37は、直近の所定期間における一連の鳥瞰座標に対してKalman FilterまたはParticle filterなどを用いた予測処理を実行することで、その物体の所定時間先までの予測軌跡を推定することができる。
【0061】
運転計画部37は、追跡中の各物体の予測軌跡に基づいて、何れの物体についても所定時間先までの追跡中の物体のそれぞれと車両10間の距離の予測値が所定距離以上となり、かつ、目的地までの走行予定ルートに沿うように、車両10の走行予定経路を設定する。その際、運転計画部37は、所定時間先までの各時刻における走行予定経路上の位置に最も近い追跡中の物体までの距離の和の逆数を評価関数として算出する。そして運転計画部37は、その評価関数が最小化されるように、動的計画法あるいは最急降下法といった所定の最適化手法に従って走行予定経路を設定すればよい。
なお、運転計画部37は、複数の走行予定経路を生成してもよい。この場合、運転計画部37は、複数の走行予定経路のうち、車両10の加速度の絶対値の総和が最小となる経路を選択してもよい。
【0062】
運転計画部37は、生成した走行予定経路を車両制御部38へ通知する。
【0063】
車両制御部38は、車両10が通知された走行予定経路に沿って走行するように車両10の各部を制御する。例えば、車両制御部38は、通知された走行予定経路、及び、車速センサ(図示せず)により測定された車両10の現在の車速に従って、車両10の目標加速度を求め、その目標加速度となるようにアクセル開度またはブレーキ量を設定する。そして車両制御部38は、設定されたアクセル開度に従って燃料噴射量を求め、その燃料噴射量に応じた制御信号を車両10のエンジンの燃料噴射装置へ出力する。あるいは、車両制御部38は、設定されたブレーキ量に応じた制御信号を車両10のブレーキへ出力する。
【0064】
さらに、車両制御部38は、車両10が走行予定経路に沿って走行するために車両10の進路を変更する場合には、その走行予定経路に従って車両10の操舵角を求める。そして車両制御部38は、その操舵角に応じた制御信号を、車両10の操舵輪を制御するアクチュエータ(図示せず)へ出力する。
【0065】
図7は、プロセッサ23により実行される、人検出処理を含む車両制御処理の動作フローチャートである。プロセッサ23は、カメラ2から画像を受信する度に、
図7に示される動作フローチャートに従って車両制御処理を実行する。
【0066】
プロセッサ23は、
図6に示される動作フローチャートに従って、カメラ2から得られた画像から一人以上の人を検出する(ステップS201)。さらに、プロセッサ23の検出部31は、画像から人以外の検出対象物体を検出する(ステップS202)。
【0067】
プロセッサ23の運転計画部37は、各検出対象物体を追跡することでその物体の予測軌跡を推定する。そして運転計画部37は、推定した予測軌跡と所定の距離以上となるように、車両10の走行予定経路を生成する(ステップS203)。プロセッサ23の車両制御部38は、走行予定経路に沿って車両10が走行するように車両10を制御する(ステップS204)。そしてプロセッサ23は、車両制御処理を終了する。
【0068】
以上に説明してきたように、この人検出装置は、画像から検出された、所定以上重複している二つ以上の人領域を一つの統合人領域に統合する。そしてこの人検出装置は、統合人領域を人の骨格を検出するように予め学習された骨格検出器に入力することで、統合人領域に含まれる一人以上の人のうちの未特定かつ最も手前側の人の骨格を特定する。さらに、この人検出装置は、最も手前側の人の骨格に基づいて、統合人領域内で最も手前側の人が表された領域をマスクし、マスクされることで更新された統合人領域を再度骨格検出器に入力する。それ以降、この人検出装置は、統合人領域から人の骨格が検出されなくなるまで、骨格検出処理及びマスク処理を繰り返す。これにより、この人検出装置は、画像上で複数の人が重なっている場合でも、個々の人を検出することができる。
【0069】
変形例によれば、互いに少なくとも部分的に重複し、その重複度合いが重複度合い閾値以上となる2以上の人領域が重複推定領域から外れている場合、統合部33は、その2以上の人領域に同じ人が表されていると判定してもよい。そして統合部33は、その2以上の人領域の何れか一つだけを選択し、他の人領域を検出リストから削除してもよい。この場合、その2以上の人領域に対して、骨格検出部34、マスク部35及び繰り返し制御部36の処理は省略されてもよい。これにより、この人検出装置は、過去画像からの追跡結果として複数の人が重なっていると推定される領域に限り、骨格検出処理及びマスク処理を繰り返すことになる。そのため、この人検出装置は、同一の人に対して複数の人領域が検出されたときでも、一人の人を誤って複数の人として誤検出することを抑制できる。この変形例において、統合部33は、重複度合いが重複度合い閾値以上となる2以上の人領域が重複推定領域に含まれる場合、上記の実施形態において説明したように、その2以上の人領域の和集合となる領域を含むように統合人領域を設定してもよい。これにより、この人検出装置は、重複度合いが重複度合い閾値以上となる2以上の人領域が重複推定領域に含まれるか否かで適切に統合人領域を設定することができる。そのため、この人検出装置は、一人の人を誤って複数の人として誤検出することを抑制しつつ、画像上で重なって見える複数の人をそれぞれ正確に検出することができる。
【0070】
上記の実施形態または変形例による人検出装置は、車載機器以外に実装されてもよい。例えば、上記の実施形態または変形例による人検出装置は、屋外または屋内の所定の領域を所定周期ごとに撮影するように設置された監視カメラにより生成された画像から人を検出するように構成されてもよい。そして人検出装置は、一定期間にわたって人が検出された場合、人検出装置と接続されるディスプレイに人が検出されたことを表すメッセージを表示させてもよい。
【0071】
また、上記の実施形態または変形例による、人検出装置のプロセッサ23の各部の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
【0072】
以上のように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。
【符号の説明】
【0073】
1 車両制御システム
2 カメラ
3 電子制御装置(人検出装置)
21 通信インターフェース
22 メモリ
23 プロセッサ
31 検出部
32 重複推定部
33 統合部
34 骨格検出部
35 マスク部
36 繰り返し制御部
37 運転計画部
38 車両制御部