(57)【要約】【課題】画像に表された対象物体の位置及びサイズが誤って認識されてしまうことを抑制する。【解決手段】物体検出装置は、取得された画像から、その画像に表された対象物体の外形のうち所定の一部がその画像に表された他の物体に隠れているか否かを検出する第１検出部３１と、対象物体の外形のうち所定の一部が隠れていることが検出されたときに、対象物体の外形のうち他の物体に隠れている一部の位置に基づいて、対象物体の位置及び／又は大きさを検出する第２検出部３２と、を備える。【選択図】図３
2020086545.tif 000002
【特許請求の範囲】
【請求項１】
取得された画像から、該画像に表された対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れているか否かを検出する第１検出部と、
前記対象物体の外形のうち所定の一部が隠れていることが検出されたときに、前記対象物体の外形のうち前記他の物体に隠れている一部の位置に基づいて、前記対象物体の位置及び／又は大きさを検出する第２検出部と、を備える物体検出装置。
【請求項２】
前記第２検出部は、前記隠れている一部の位置に基づいて、前記対象物体全体が隠れていないと仮定したときの前記対象物体の前記外形を推定し、該推定された外形に基づいて前記対象物体の位置及び／又は大きさを検出する、請求項１に記載の物体検出装置。
【請求項３】
前記第２検出部は、前記隠れている一部の位置に基づいて、前記画像よりも前に取得された過去画像であって前記対象物体の外形が他の物体に隠れていないときの過去画像を用いて、前記対象物体全体が隠れていないと仮定したときの前記対象物体の前記外形を推定する、請求項２に記載の物体検出装置。
【請求項４】
前記第１検出部は、前記画像に表された前記対象物体に外接する図形の外形線を複数の部位に区切ったときに、区切られた一つの部位全体が前記他の物体に外接する図形内又は該図形の外形線上に位置する場合に、対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れていると判定する、請求項１〜３のいずれか１項に記載の物体検出装置。
【請求項５】
前記第１検出部は、前記画像を入力すると前記対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れているか否かを出力するように予め学習されたニューラルネットワークに前記画像を入力することで、前記対象物体の外形のうち所定の一部が他の物体に隠れているか否かを検出する、請求項１〜４のいずれか１項に記載の物体検出装置。
【請求項６】
取得された画像から、該画像に表された対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れているか否かを検出することと、
前記対象物体の外形のうち所定の一部が隠れていることが検出されたときに、前記対象物体の外形のうち前記他の物体に隠れている一部の位置に基づいて、前記対象物体の位置及び／又は大きさを検出することと、を含む物体検出方法。
【請求項７】
取得された画像から、該画像に表された対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れているか否かを検出することと、
前記対象物体の外形のうち所定の一部が隠れていることが検出されたときに、前記対象物体の外形のうち前記他の物体に隠れている一部の位置に基づいて、前記対象物体の位置及び／又は大きさを検出することと、をコンピュータに実行させる物体検出用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体を検出する物体検出装置、物体検出方法及び物体検出用コンピュータプログラムに関する。
【背景技術】
【０００２】
従来から、カメラ等によって生成された画像に表された物体を検出する技術が知られている。近年では、ニューラルネットワークを用いて物体の検出を行うことで、物体の検出精度を向上させる技術が提案されている（例えば、非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Wei Liu他、「SSD: Single Shot MultiBox Detector」、ECCV2016、2016年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述したような物体検出技術を用いた場合、検出された物体の画像サイズ等に基づいて、カメラに対する物体の位置や物体の大きさを検出することができる。したがって、例えば、車両に搭載したカメラによって生成された画像に表された物体の画像サイズ等に基づいて、車両に対する物体（例えば、他の車両）の位置や画像内におけるその物体の大きさを検出することができる。
【０００５】
ところが、カメラ等によって生成された画像では、必ずしも物体同士が離れて位置しているとは限らず、一部の物体はその一部が他の物体に隠れていることも多い。このように、物体の一部が隠れている場合、その物体全体が画像に表れている場合に比べて、物体の画像サイズが小さくなる。したがって、この場合、画像サイズに基づいて車両に対する物体の位置や物体の大きさ等を検出していると、その物体の位置や大きさが誤って認識されてしまう。
【０００６】
本発明は、上記課題に鑑みてなされたものであって、その目的は、画像に表された対象物体の位置及び大きさが誤って認識されてしまうことを抑制することにある。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するためになされたものであり、その要旨は以下のとおりである。
【０００８】
（１）取得された画像から、該画像に表された対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れているか否かを検出する第１検出部と、前記対象物体の外形のうち所定の一部が隠れていることが検出されたときに、前記対象物体の外形のうち前記他の物体に隠れている一部の位置に基づいて、前記対象物体の位置及び／又は大きさを検出する第２検出部と、を備える物体検出装置。
【０００９】
（２）前記第２検出部は、前記隠れている一部の位置に基づいて、前記対象物体全体が隠れていないと仮定したときの前記対象物体の前記外形を推定し、該推定された外形に基づいて前記対象物体の位置及び／又は大きさを検出する、上記（１）に記載の物体検出装置。
【００１０】
（３）前記第２検出部は、前記隠れている一部の位置に基づいて、前記画像よりも前に取得された過去画像であって前記対象物体の外形が他の物体に隠れていないときの過去画像を用いて、前記対象物体全体が隠れていないと仮定したときの前記対象物体の前記外形を推定する、上記（２）に記載の物体検出装置。
【００１１】
（４）前記第１検出部は、前記画像に表された前記対象物体に外接する図形の外形線を複数の部位に区切ったときに、区切られた一つの部位全体が前記他の物体に外接する図形内又は該図形の外形線上に位置する場合に、対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れていると判定する、上記（１）〜（３）のいずれか１つに記載の物体検出装置。
【００１２】
（５）前記第１検出部は、前記画像を入力すると前記対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れているか否かを出力するように予め学習されたニューラルネットワークに前記画像を入力することで、前記対象物体の外形のうち所定の一部が他の物体に隠れているか否かを検出する、上記（１）〜（４）のいずれか１つに記載の物体検出装置。
【００１３】
（６）取得された画像から、該画像に表された対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れているか否かを検出することと、前記対象物体の外形のうち所定の一部が隠れていることが検出されたときに、前記対象物体の外形のうち前記他の物体に隠れている一部の位置に基づいて、前記対象物体の位置及び／又は大きさを検出することと、を含む物体検出方法。
【００１４】
（７）取得された画像から、該画像に表された対象物体の外形のうち所定の一部が前記画像に表された他の物体に隠れているか否かを検出することと、前記対象物体の外形のうち所定の一部が隠れていることが検出されたときに、前記対象物体の外形のうち前記他の物体に隠れている一部の位置に基づいて、前記対象物体の位置及び／又は大きさを検出することと、をコンピュータに実行させる物体検出用コンピュータプログラム。
【発明の効果】
【００１５】
本発明によれば、画像に表された対象物体の位置及び大きさが誤って認識されてしまうことが抑制される。
【図面の簡単な説明】
【００１６】
【図１】図１は、本実施形態に係る車両制御システムの構成を概略的に示す図である。
【図２】図２は、ＥＣＵのハードウェア構成図である。
【図３】図３は、車両制御処理に関するＥＣＵの機能ブロック図である。
【図４】図４は、ＤＮＮを利用した識別器の構成の一例を示す図である。
【図５】図５は、入力される画像の一例を示している。
【図６】図６は、入力される画像の一例を示す、図５と同様な図である。
【図７】図７は、画像に表された二つの物体（車両）と、これら物体に外接するバウンディングボックスとを概略的に示す図である。
【図８】図８は、物体検出処理及び車両制御処理を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、一つの実施形態に係る物体検出装置、物体検出方法及び物体検出用コンピュータプログラムについて説明する。なお、以下の説明では、同様な構成要素には同一の参照番号を付す。
【００１８】
＜車両制御システム＞
図１は、本実施形態に係る物体検出装置が実装される車両制御システムの構成を概略的に示す図である。車両制御システム１は、車両１０に搭載され、車両１０を制御する。本実施形態では、車両制御システム１は車両の自動運転を実行する。
【００１９】
車両制御システム１は、カメラ２及び電子制御ユニット（ＥＣＵ）３を備える。カメラ２とＥＣＵ３とは、ＣＡＮ（Controller Area Network）等の規格に準拠した車内ネットワーク４を介して互いに通信可能に接続される。
【００２０】
カメラ２は、所定範囲を撮影してその範囲の画像を生成する。カメラ２は、レンズ及び撮像素子を含み、例えばＣＭＯＳ（相補型金属酸化膜半導体）カメラ又はＣＣＤ（電荷結合素子）カメラである。
【００２１】
本実施形態では、カメラ２は、車両１０に設けられ、車両１０の周囲を撮影する。具体的には、カメラ２は、車両１０の内部に設けられ、車両１０の前方領域を撮影する。例えば、カメラ２は車両１０のルームミラーの背面に設けられる。カメラ２は、車両１０のイグニッションスイッチがオンである間、所定の撮影間隔（例えば１／３０秒〜１／１０秒）毎に車両１０の前方領域を撮影し、前方領域の画像を生成する。カメラ２によって生成された画像は、カメラ２から車内ネットワーク４を介してＥＣＵ３に送信される。カメラ２によって生成される画像はカラー画像であってもよいし、グレー画像であってもよい。
【００２２】
ＥＣＵ３は、カメラ２によって生成された画像に表された物体を検出する物体検出処理を実行する物体検出装置として機能すると共に、本実施形態では検出された物体に基づいて車両１０が自律的に運転されるように車両１０を制御する。
【００２３】
図２は、ＥＣＵ３のハードウェア構成図である。ＥＣＵ３は、通信インターフェース２１と、メモリ２２と、プロセッサ２３とを有する。通信インターフェース２１及びメモリ２２は信号線を介してプロセッサ２３に接続されている。
【００２４】
通信インターフェース２１は、ＥＣＵ３を車内ネットワーク４に接続するためのインターフェース回路を有する。すなわち、通信インターフェース２１は車内ネットワーク４を介してカメラ２に接続される。そして、通信インターフェース２１は、カメラ２から画像を受信し、受信した画像をプロセッサ２３に伝達する。
【００２５】
メモリ２２は、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。メモリ２２は、プロセッサ２３によって各種処理が実行されるときに使用される各種データ等を記憶する。例えば、メモリ２２は、カメラ２から受信した画像、地図情報等を記憶する。また、メモリ２２は、プロセッサ２３によって各種処理を実行するためのコンピュータプログラムを記憶する。
【００２６】
プロセッサ２３は、一つ又は複数のＣＰＵ（Central Processing Unit）及びその周辺回路を有する。プロセッサ２３は、更にＧＰＵ（Graphics Processing Unit）を有していてもよい。プロセッサ２３は、車両１０のイグニッションスイッチがオンである間、カメラ２から画像を受信する度に、物体検出処理を含む車両制御処理を実行する。そしてプロセッサ２３は、検出された車両１０の周囲の物体に基づいて、車両１０が自律的に運転されるように車両１０を制御する。なお、プロセッサ２３は、論理演算ユニット又は数値演算ユニットのような他の演算回路を更に有していてもよい。
【００２７】
図３は、車両制御処理に関するＥＣＵ３の機能ブロック図である。ＥＣＵ３は、物体検出処理を実行する物体検出部３０と、運転計画部３３と、車両制御部３４とを有する。ＥＣＵ３のこれら機能ブロックは、例えば、プロセッサ２３上で動作するコンピュータプログラムにより実現される機能モジュールである。なお、これら機能ブロックは、プロセッサ２３に設けられた専用の演算回路であってもよい。
【００２８】
＜物体検出処理＞
物体検出処理は、ＥＣＵ３の機能ブロックのうち、第１検出部３１及び第２検出部３２によって行われる。物体検出処理では、カメラ２から取得された画像に表された物体の位置及び／又は大きさが検出される。特に、本実施形態では、画像に表された対象物体の外形の一部がこの画像の表された他の物体に隠れている場合であっても、その対象物体の位置及び／又は大きさが検出される。
【００２９】
第１検出部３１は、カメラ２から取得した画像に表されている各物体の位置及び領域を検出する位置領域検出部３１１と、カメラ２から取得した画像に表されている各物体の種類を検出する種類検出部３１２と、カメラ２から取得した画像に表されている各物体の外形の所定の一部がこの画像に表された他の物体に隠れているか否かを検出する隠れ検出部３１３とを備える。
【００３０】
本実施形態では、第１検出部３１の位置領域検出部３１１、種類検出部３１２及び隠れ検出部３１３は、ニューラルネットワーク（以下、「ＮＮ」とも称する）を用いた識別器として構成される。特に、本実施形態では、ニューラルネットワークとして、入力層と出力層との間に複数の中間層を有するディープニューラルネットワーク（以下、「ＤＮＮ」とも称する）が利用される。
【００３１】
図４は、第１検出部３１において用いられる、ＤＮＮを利用した識別器４０の構成の一例を示す図である。図４に示したように、識別器４０は、主幹ＤＮＮ４００、位置領域検出ＤＮＮ４０１、種類検出ＤＮＮ４０２及び隠れ検出ＤＮＮ４０３を有する。
【００３２】
主幹ＤＮＮ４００は、カメラ２にて撮影された画像が入力される。位置領域検出ＤＮＮ４０１、種類検出ＤＮＮ４０２及び隠れ検出ＤＮＮ４０３は、いずれも、主幹ＤＮＮ４００よりも下流側（出力側）において主幹ＤＮＮ４００に直列に接続される。
【００３３】
主幹ＤＮＮ４００は、カメラ２にて撮影された画像が入力される入力層を有するベースネットワークである。主幹ＤＮＮ４００は、例えば、入力側から出力側へ向けて直列に接続される複数の畳み込み層を有するコンボリューションニューラルネットワーク（ＣＮＮ）として構成される。この場合、主幹ＤＮＮ４００は、１又は複数の畳み込み層毎に設けられたプーリング層を備えていてもよい。また、主幹ＤＮＮ４００は、１以上の全結合層を備えていてもよい。具体的には、主幹ＤＮＮ４００は、例えば、非特許文献１に記載されたSingle Shot MultiBox Detector（ＳＳＤ）のベースネットワークであるＶＧＧ１６と同様の構成を有する。或いは、主幹ＤＮＮ４００は、ＲｅｓＮｅｔ（Residual Networks）、ＡｌｅｘＮｅｔ等の他のＣＮＮアーキテクチャと同様の構成を有していてもよい。
【００３４】
主幹ＤＮＮ４００は、画像が入力されると、その画像に対して各層での演算を実行することで、その画像から算出した特徴マップ（feature map）を出力する。位置領域検出ＤＮＮ４０１、種類検出ＤＮＮ４０２及び隠れ検出ＤＮＮ４０３には、それぞれ、主幹ＤＮＮ４００から出力された特徴マップが入力される。
【００３５】
位置領域検出ＤＮＮ４０１、種類検出ＤＮＮ４０２及び隠れ検出ＤＮＮ４０３は、例えば、入力側から出力側へ向けて直列に接続される複数の畳み込み層を有するコンボリューションニューラルネットワーク（ＣＮＮ）として構成される。この場合、位置領域検出ＤＮＮ４０１、種類検出ＤＮＮ４０２及び隠れ検出ＤＮＮ４０３は、１又は複数の畳み込み層毎に設けられたプーリング層を備えていてもよい。また、位置領域検出ＤＮＮ４０１、種類検出ＤＮＮ４０２及び隠れ検出ＤＮＮ４０３は、１以上の全結合層を備えていてもよい。
【００３６】
位置領域検出ＤＮＮ４０１は、画像内の各物体の位置領域を出力する出力層を有する。本実施形態では、位置領域検出ＤＮＮ４０１の出力層は、各物体に外接する矩形であって各物体の位置領域を示すバウンディングボックス（bounding box）を出力する。具体的には、位置領域検出ＤＮＮ４０１の出力層は、例えば、バウンディングボックスの中心座標（ｘ、ｙ）、幅ｗ及び高さｈを出力する。あるいは、位置領域検出ＤＮＮ４０１の出力層は、例えば、バウンディングボックスの左上の頂点座標（ｘ、ｙ）、幅ｗ及び高さｈを出力してもよいし、バウンディングボックスの左上の頂点座標（ｘ、ｙ）及びバウンディングボックスの右下の頂点座標（ｘ、ｙ）を出力してもよい。位置領域の検出や物体の種類の検出に上述したＳＳＤが用いられる場合、位置領域検出ＤＮＮ４０１の出力層は、画像上の様々な位置、様々なサイズ及び様々なアスペクト比の領域（デフォルトボックス（default box））に対する差分を出力する。位置領域検出ＤＮＮ４０１の出力層では、活性化関数として、例えば恒等関数が用いられる。
【００３７】
なお、位置領域検出ＤＮＮ４０１は、各物体に外接する矩形のバウンディングボックスを出力している。しかしながら、位置領域検出ＤＮＮ４０１は、各物体に外接する図形であれば、矩形以外の図形によって各物体の位置領域を示してもよい。具体的には、位置領域検出ＤＮＮ４０１は、例えば、円形、五角形等の多角形によって各物体の位置領域を示してもよい。
【００３８】
種類検出ＤＮＮ４０２は、画像に表されている物体の種類を出力する出力層を有する。例えば、種類検出ＤＮＮ４０２は、画像上の様々な位置、様々なサイズ及び様々なアスペクト比の領域毎に、検出対象となる物体の種類のそれぞれの確信度を出力する出力層を有する。種類検出ＤＮＮ４０２では、具体的には、予め用意された多数の物体の種類（例えば、乗用車、バス、バイク、標識、信号機、等）のそれぞれについての確信度が出力される。したがって、対象となる領域に乗用車が表されている場合には、乗用車の確信度を表すノードから高い値が出力されると共に他の物体の確信度を表すノードから低い値が出力される。種類検出ＤＮＮ４０２では、活性化関数として、例えばソフトマックス関数が用いられる。
【００３９】
隠れ検出ＤＮＮ４０３は、画像に表されている各物体の外形のうち所定の一部が他の物体に隠れているか否かを出力する出力層を有する。例えば、隠れ検出ＤＮＮ４０３は、画像上の様々な位置、様々なサイズ及び様々なアスペクト比の領域毎に、その領域に含まれている物体が他の物体に隠れているか否かを出力する出力層を有する。
【００４０】
具体的には、隠れ検出ＤＮＮ４０３は、各物体に外接するバウンディングボックスのうち、各辺全体が他の物体に外接するバウンディングボックス内又はこのバウンディングボックスの外形線上に位置するか否かを出力する。或る物体に外接するバウンディングボックスの一つの辺全体が他の物体に外接するバウンディングボックス内又はバウンディングボックスの外形線上に位置する場合には、その或る物体のうち所定の一部が他の物体に隠れているとみなされる。
【００４１】
あるいは、隠れ検出ＤＮＮ４０３は、各物体に外接するバウンディングボックスのうち、各辺全体が他の物体の画像内領域に完全に包含されているか否かを出力する。或る物体に外接するバウンディングボックスの一つの辺全体が他の物体の画像内領域に完全に包含されている場合には、その或る物体のうち所定の一部が他の物体に隠れているとみなされる。
【００４２】
隠れ検出ＤＮＮ４０３は、各物体の各部分それぞれに対し、他の物体に隠れているかどうかの確信度を０以上１以下の数値として出力してもよい（隠れ確信度）。隠れ確信度が小さいと、その部分が隠れていない可能性が高く、隠れ確信度が大きいと、その部分が隠れている可能性が高いことを示す。この場合、隠れ検出部３１３は、隠れ確信度が或る閾値以上のときにその部分が隠れていると判定し、この閾値未満のときにその部分が隠れていないと判定する。
【００４３】
図５は、入力される画像の一例を示している。図５は、画像５００に表された物体である多数の車両がバウンディングボックスによって囲われている状態を示している。図５の画像５００には、５台の車両（物体）５０１〜５０５が表されている。このうち、第１車両５０１及び第５車両５０５は、他の車両に隠れることなく画像５００上に表されている。したがって、第１車両５０１に外接する第１バウンディングボックス５０１’は第１車両５０１全体を囲っており、よって第１バウンディングボックスの幅ｗや高さｈから第１車両５０１の位置又は大きさを正確に推定するこができる。同じことは、第５車両５０５に外接する第５バウンディングボックス５０５’についても言える。
【００４４】
一方、第２車両５０２は、その左側が第１車両５０１に隠れ、その右側が第３車両５０３に隠れている。したがって、第２車両５０２に外接する第２バウンディングボックス５０２’は第２車両５０２全体を囲っておらず、よって第２バウンディングボックスの幅ｗや高さｈから第２車両５０２の位置又は大きさを正確に推定することは困難である。また、第３車両５０３及び第４車両５０４は、その右側がそれぞれ第４車両５０４及び第５車両に隠れている。したがって、第３バウンディングボックス５０３’及び第４バウンディングボックス５０４’から第３車両５０３及び第４車両５０４の位置又は大きさを正確に推定することは困難である。
【００４５】
図６は、入力される画像の一例を示す、図５と同様な図である。図６では、隠れ検出ＤＮＮ４０３によって、各物体に外接する各バウンディングボックスを構成する辺のうち他の物体に外接するバウンディングボックス内又はこのバウンディングボックスの外形線上に位置する辺が破線で示されている。
【００４６】
第２車両５０２に外接する第２バウンディングボックス５０２’の左辺全体は第１車両５０１に外接する第１バウンディングボックス５０１’内に位置する。このため、隠れ検出ＤＮＮ４０３は、第２車両５０２に外接する第２バウンディングボックス５０２’の左辺全体が他の物体に外接するバウンディングボックス内に位置すると判定する。換言すると、隠れ検出ＤＮＮ４０３は、第２車両のうち左側の一部が他の物体に隠れていると判定する。隠れ検出ＤＮＮ４０３は、第２車両５０２の右側の一部、第３車両５０３の右側の一部、第４車両の右側の一部についても、同様に他の物体に隠れていると判定する。
【００４７】
なお、上述したように、各物体は、矩形のバウンディングボックスの代わりに、矩形以外の図形によって位置領域が示されても良い。この場合には、隠れ検出ＤＮＮ４０３は、画像に表された対象物体に外接する図形の外形線を複数の部位に区切ったときに、区切られた一つの部位全体が他の物体に外接する図形内又は該図形の外形線上に位置する場合に、対象物体の外形のうち所定の一部が画像に表された他の物体に隠れていると判定することになる。例えば、多角形によって各物体の位置領域が示される場合、隠れ検出ＤＮＮ４０３は、各辺全体が他の物体に外接する多角形内に位置するときに、対象物体の外形のうち所定の一部が画像に表された他の物体に隠れていると判定することになる。
【００４８】
第１検出部３１の位置領域検出部３１１は、主幹ＤＮＮ４００及び位置領域検出ＤＮＮ４０１を含むＤＮＮによって構成される。また、第１検出部３１の種類検出部３１２は、主幹ＤＮＮ４００及び種類検出ＤＮＮ４０２によって構成される。加えて、第１検出部３１の隠れ検出部３１３は、主幹ＤＮＮ４００及び隠れ検出ＤＮＮ４０３によって構成される。これら位置領域検出部３１１、種類検出部３１２及び隠れ検出部３１３を構成するＤＮＮは、物体の検出精度が高く且つ物体の検出速度が速くなるように、ＳＳＤ、Faster R-CNN、You Only Look Once（ＹＯＬＯ）等と同等の構成を有してもよい。
【００４９】
位置領域検出部３１１、種類検出部３１２及び隠れ検出部３１３を構成するＤＮＮは、それぞれ学習によって検出精度が高められる。学習では、正解データや正解ラベルが付与された画像が教師データとして用いられる。正解データには、画像内の物体の位置領域が含まれ、正解ラベルには物体の種類、各物体のうち各部分が他の物体に隠れているか否かのデータが含まれる。各物体のうち各部分が他の部分に隠れているか否かの教師データとして、例えば、アノテーション作業者が画像を目視することで、あるいは自動アノテーションツールに学習対象画像をインプットすることで、他の物体に隠れていない場合には０、他の物体に隠れている場合には１である０／１のラベルが、各物体のうちの各部分毎にラベリングされる。
【００５０】
位置領域検出部３１１、種類検出部３１２及び隠れ検出部３１３を構成するＤＮＮの学習は、多数の教師データを用いて、誤差逆伝搬法などの学習手法によって行われる。誤差逆伝搬法では、各ＤＮＮの出力が正解データ又は正解ラベルに近づくように、すなわち損失関数の値が小さくなるように、各ＤＮＮにおける重みが繰り返し更新される。例えば、隠れ検出部３１３の損失関数としては、各物体のうち各部分が他の物体に隠れているか否かの０／１の教師データラベルと、隠れ検出ＤＮＮ４０３の出力する隠れ確信度との間のクロスエントロピーが用いられる。
【００５１】
したがって、第１検出部３１の位置領域検出部３１１は、画像を入力すると各物体の位領域を出力するように予め学習されたニューラルネットワークに画像を入力することで、各物体の位置領域を検出する。また、第１検出部３１の、種類検出部３１２は、画像を入力すると各物体の種類を出力するように予め学習されたニューラルネットワークに画像を入力することで、各物体の種類を検出する。さらに、第１検出部３１の隠れ検出部３１３は、画像を入力すると対象物体の外形のうち他の物体に隠れている部分を出力するように予め学習されたニューラルネットワークに画像を入力することで、前記対象物体の外形のうち所定の一部が他の物体に隠れているか否かを検出する。
【００５２】
第２検出部３２は、第１検出部３１によって対象物体の外形のうち所定の一部が隠れていることが検出されたときに、この対象物体の外形のうち他の物体に隠れている一部の位置に基づいて、対象物体の位置及び／又は大きさを検出する。特に、本実施形態では、第２検出部は、対象物体のうち隠れている一部の位置に基づいて、対象物体全体が隠れていないと仮定したときの対象物体の外形を推定し、推定された外形に基づいて対象物体の位置及び／又は大きさを検出する。
【００５３】
具体的には、第２検出部３２は、対象物体のうち隠れている一部の位置に基づいて、今回の画像よりも前に取得された過去画像であって対象物体の外形が他の物体に隠れていないときの過去画像を用いて、対象物体全体が隠れていないと仮定したときの対象物体の外形を推定する。
【００５４】
図７は、画像に表された二つの物体（車両）と、これら物体に外接するバウンディングボックスとを概略的に示す図である。図７（Ａ）は、各車両が他の車両に隠れていない状態を示している。したがって、図７（Ａ）に示した状態では、第１検出部３１の隠れ検出部３１３において、第１車両５０１及び第２車両５０２の外形の所定の一部は他の物体に隠れていないと判定される。このとき、各車両５０１、５０２に外接するバウンディングボックス５０１’及び５０２’の幅ｗと高さｈとの関係が算出される。
【００５５】
図７（Ｂ）は、図７（Ａ）に示した状態の後に各車両との相対位置が変化して、第２車両５０２の一部が第１車両５０１に隠れている状態を示している。したがって、図７（Ｂ）に示した状態では、第１検出部３１の隠れ検出部３１３において、第１車両５０１の外形の所定の一部は他の物体に隠れていないと判定されるが、第２車両５０２の外形の一部は他の物体に隠れていると判定される。
【００５６】
特に、図７（Ｂ）に示した状態では、第１検出部３１では、第２車両５０２に外接するバウンディングボックス５０２’の左辺全体が第１車両５０１（他の物体）に外接するバウンディングボックス５０１’内に位置すると判定される。したがって、バウンディングボックス５０２’の左辺の上下に位置する頂点ａ、ｃは第２車両５０２の位置又は大きさを推定するのに用いることはできない。一方、第２車両５０２に外接する５０２’の右辺全体は第１車両５０１（他の物体）に外接するバウンディングボックス５０１’内又はこのバウンディングボックス５０１’上には位置しないと判定される。したがって、バウンディングボックス５０２’の右辺の上下に位置する頂点ｂ、ｄは第２車両５０２の位置又は大きさを推定するのに用いることができる。
【００５７】
そこで、本実施形態では、第２検出部３２は、第２車両５０２のうち隠れてない部分である第２車両５０２の右辺の上下に位置する頂点ｂ、ｄから、第２車両５０２の高さｈを算出する。加えて、第２検出部３２は、図７（Ｂ）に示した今回の画像よりも前に取得された過去画像であって第２車両５０２の外形が他の物体に隠れていないときの過去画像（図７（Ａ）に示したような画像）に基づいて、第２車両５０２の幅ｗと高さｈとの関係を算出する。このようにして算出された第２車両５０２の幅ｗと高さｈとの関係と、図７（Ｂ）に示した第２車両５０２に外接するバウンディングボックス５０２’の高さｈとに基づいて、第２車両５０２の左辺の上下に位置する頂点ａ、ｃの位置が補正される。図７（ｃ）は、第２車両５０２の左辺の上下に位置する頂点ａ、ｃが補正された後の頂点ａ’、ｃ’を用いた補正後の第２車両５０２を表すバウンディングボックス５０２’’を示している。この結果、第２検出部３２は、第２車両５０２の一部が第１車両５０１に隠れているにもかかわらず、第２車両５０２を表すバウンディングボックス５０２’’の位置及び大きさを適切に推定することができる。換言すると、第２検出部３２は、第２検出部３２は、第２車両５０２の一部が第１車両５０１に隠れているにもかかわらず、第２車両５０全体が隠れていないと仮定したときの第２車両５０２の外形を適切に推定することができる。したがって、本実施形態によれば、画像に表された対象物体の位置や大きさが誤って認識されてしまうことが抑制される。そして、このようにして推定されたバウンディングボックス５０２’’の位置及び大きさに基づいて、すなわち推定された第２車両の外形に基づいて対象物体の位置及び／又は大きさが検出される。
【００５８】
なお、本実施形態では、第２検出部３２は、過去画像を用いて対象物体全体が隠れていないと仮定したときの対象物体の外形を推定している。しかしながら、第２検出部３２は、過去画像以外のデータに基づいて対象物体の外形を推定してもよい。例えば、現存する多くの車両の画像データをメモリ２２に記憶させておくと共に、物体の隠れていない部分の画像とこの画像データとを対比して物体の種類（例えば、車種）を特定し、その物体の種類に基づいてその物体の外形を推定するようにしてもよい。この場合、例えば、メモリ２２には車種毎に幅ｗと高さｈとの関係が記憶されており、車両の隠れていない部分から車種が特定されるとその車両の高さｈと幅ｗとの関係を求めることができ、よって隠れている辺の両頂点の位置をこの関係に基づいて補正することができる。
【００５９】
また、本実施形態の第２検出部３２では、対象物体の外形を推定した後に推定された外形に基づいて対象物体の位置及び／又は大きさが検出される。しかしながら、第２検出部３２は、対象物体の外形を推定せずに、対象物体の外形のうち他の物体に隠れている一部の位置に基づいて、対象物体の位置及び／又は大きさを直接検出してもよい。この場合には、対象物体の位置及び／又は大きさは、例えば、一部が隠れている物体に外接するバウンディングボックス内の画像を入力するとその物体の位置及び／又は大きさを出力するように予め学習されたニューラルネットワークに、斯かる画像を入力することによって検出される。
【００６０】
＜車両制御処理＞
車両制御処理は、ＥＣＵ３の機能ブロックのうち、運転計画部３３及び車両制御部３４によって行われる。車両制御処理では、物体検出部３０によって検出された各画像に表されている各物体の位置や大きさに基づいて、車両１０の周囲に存在する物体と車両１０とが衝突しないように車両１０の運転が制御される。
【００６１】
運転計画部３３は、各画像について求められた各物体の位置や大きさを参照して、車両１０の周囲に存在する物体と車両１０とが衝突しないように車両１０の走行予定経路を１以上生成する。走行予定経路は、例えば、現時刻から所定時間先までの各時刻における車両１０の目標位置の集合として表される。例えば、運転計画部３３は、カメラ２から画像を受信する度に、一連の画像に対してカルマンフィルタ（Kalman Filter）などを用いたトラッキング処理を実行することで、各画像に表された物体を追跡し、その追跡結果により得られた軌跡から、物体のそれぞれの所定時間先までの予測軌跡を推定する。
【００６２】
運転計画部３３は、追跡中の各物体の予測軌跡に基づいて、何れの物体についても所定時間先までの追跡中の物体のそれぞれと車両１０との間の距離の予測値が所定距離以上となるように、車両１０の走行予定経路を生成する。その際、運転計画部３３は、例えば、車両１０に搭載されたＧＰＳ受信機（図示せず）から得た車両１０の現在位置情報と、メモリ２２に記憶されている地図情報とを参照して、車両１０が走行可能な車線の数を確認してもよい。そして運転計画部３３は、車両１０が走行可能な車線が複数存在する場合には、追跡中の物体のそれぞれと車両１０との間の距離が所定距離以上となるように、車両１０が走行する車線を変更するような走行予定経路を生成してもよい。運転計画部３３は、生成した走行予定経路を車両制御部３４へ通知する。
【００６３】
なお、運転計画部３３は、複数の走行予定経路を生成してもよい。この場合、運転計画部３３は、複数の走行予定経路のうち、車両１０の加速度の絶対値の総和が最小となる経路を選択してもよい。
【００６４】
車両制御部３４は、車両１０が通知された走行予定経路に沿って走行するように車両１０の各部を制御する。例えば、車両制御部３４は、通知された走行予定経路、及び、車速センサ（図示せず）により測定された車両１０の現在の車速に従って、車両１０の加速度を算出する。次いで、車両制御部３４は、その加速度となるようにアクセル開度またはブレーキ量を設定する。そして車両制御部３４は、設定されたアクセル開度に応じた駆動力が生じるように、車両１０の駆動装置として用いられる内燃機関又はモータへ制御信号を出力する。あるいは、車両制御部３４は、設定されたブレーキ量に応じた制御信号を車両１０のブレーキへ出力する。
【００６５】
さらに、車両制御部３４は、車両１０が走行予定経路に沿って走行するために車両１０の進路を変更する場合には、その走行予定経路に従って車両１０の操舵角を求め、その操舵角に応じた制御信号を、車両１０の操舵輪を制御するアクチュエータ（図示せず）へ出力する。
【００６６】
＜具体的な処理＞
次に、図８を参照して、物体検出処理及び車両制御処理について説明する。図８は、物体検出処理及び車両制御処理を示すフローチャートである。図８に示した物体検出処理及び車両制御処理は、ＥＣＵ３のプロセッサ２３によって所定の実行間隔で繰り返し実行される。所定の実行間隔は、例えば、カメラ２からＥＣＵ３に画像が送信される間隔である。なお、図８に示したフローチャートにおいて、ステップＳ１１〜Ｓ１９において物体検出処理が実行され、ステップＳ２０〜Ｓ２１において車両制御処理が実行される。
【００６７】
まず、ステップＳ１１において、第１検出部３１は、カメラ２から画像を取得する。取得した画像は、第１検出部３１の位置領域検出部３１１、種類検出部３１２及び隠れ検出部３１３に入力される。
【００６８】
ステップＳ１２では、位置領域検出部３１１が、主幹ＤＮＮ４００及び位置領域検出ＤＮＮ４０１を用いて、画像に表された各物体の位置領域を検出する。具体的には、位置領域検出部３１１は、主幹ＤＮＮ４００に画像を入力して、位置領域検出ＤＮＮ４０１から各物体の位置領域を出力させる。
【００６９】
次いで、ステップＳ１３では、種類検出部３１２が、主幹ＤＮＮ４００及び種類検出ＤＮＮ４０２を用いて、画像に表された各物体の種類を検出する。具体的には、種類検出部３１２は、主幹ＤＮＮ４００に画像を入力して、画像上の様々な位置、様々なサイズ及び様々なアスペクト比の領域毎に、検出対象となる物体の種類のそれぞれの確信度を種類検出ＤＮＮ４０２から出力させる。
【００７０】
次いで、ステップＳ１４では、隠れ検出部３１３が、主幹ＤＮＮ４００及び隠れ検出ＤＮＮ４０３を用いて、画像に表されている各物体の外形のうち所定の一部が他の物体に隠れているか否かを検出する。具体的には、隠れ検出部３１３は、主幹ＤＮＮ４００に画像を入力して、画像上の様々な位置、様々なサイズ及び様々なアスペクト比の領域毎に、その領域に含まれている物体の外形のうち所定の一部が他の物体に隠れているか否かを隠れ検出ＤＮＮ４０３から出力する。
【００７１】
特に、本実施形態では、隠れ検出部３１３は、画像に表されている各物体に外接するバウンディングボックスのうち、右辺全体が他の物体に外接するバウンディングボックス内又はこのバウンディングボックスの外形線上に位置する場合には、右辺隠れフラグを出力する。同様に隠れ検出部３１３は、画像に表されている各物体に外接するバウンディングボックスのうち、左辺全体、上辺全体及び下辺全体が他の物体に外接するバウンディングボックス内等に位置する場合には、それぞれ左辺隠れフラグ、上辺隠れフラグ及び下辺隠れフラグを出力する。一方、隠れ検出部３１３は、画像に表されている各物体に外接するバウンディングボックスのいずれの辺についても辺全体が他の物体に外接するバウンディングボックス内等に位置しない場合いは、いずれの隠れフラグも出力しない。
【００７２】
ステップＳ１５では、第２検出部３２が、ステップＳ１１で取得された画像に表されている任意の一つの対象物体について、ステップＳ１４において隠れフラグが出力されているか否かを判定する。ステップＳ１４において、その対象物体について隠れフラグが出力されていないと判定された場合には、制御フローはステップＳ１９へと進む。一方、ステップＳ１５において、対象物体について隠れフラグが出力されていると判定された場合には、制御フローはステップＳ１６へと進む。
【００７３】
ステップＳ１６では、第２検出部３２が、隠れフラグが出力されている対象物体に外接するバウンディングボックスを補正可能であるか否かが判定される。例えば、或る物体に外接するバウンディングボックスの三つの辺に隠れフラグが出力されている場合、バウンディングボックスを補正する際に基準となる線や辺が存在しなくなることから、そのバウンディングボックスを補正することは不可能であると判定される。また、例えば、対象物体の過去画像を用いて補正を行う場合、対象物体の過去画像が存在しないときにもその対象物体のバウンディングボックスを補正することは不可能であると判定される。ステップＳ１６において、バウンディングボックスを補正可能であると判定された場合には、制御フローはステップＳ１７へと進む。
【００７４】
ステップＳ１７では、第２検出部３２が、隠れフラグが出力されている対象物体に外接するバウンディングボックスを補正する。バウンディングボックスの補正は、例えば、出力されている隠れフラグの種類（すなわち、右辺隠れフラグ、左辺隠れフラグ、上辺隠れフラグ及び下辺隠れフラグのうちどの隠れフラグが出力されているか）と、過去画像における対象物体の幅ｗと高さｈとの関係とに基づいて行われる。すなわち、バウンディングボックスの補正は、対象物体の外形のうち他の物体に隠れている一部の位置と、過去画像のおける対象物体の幅ｗと高さｈとの関係とに基づいて行われる。
【００７５】
一方、ステップＳ１６において、バウンディングボックスを補正不可能であると判定された場合には、制御フローはステップＳ１８へと進む。ステップＳ１８では、対象物体について補正不可フラグが設定される。補正不可フラグは、ステップＳ２０にて走行予定経路を作成する際に考慮される。
【００７６】
ステップＳ１９では、ステップＳ１１で取得された画像に表されている全ての物体について、ステップＳ１５〜Ｓ１８の処理が行われたか否かが判定される。残っている物体がある場合には、ステップＳ１５〜Ｓ１８の処理が繰り返し行われる。一方、ステップＳ１９において、全ての物体について処理が行われたと判定された場合には、制御ルーチンはステップＳ２０へと進む。
【００７７】
ステップＳ２０では、運転計画部３３が、ステップＳ１２で検出された各物体のバウンディングボックス及びステップＳ１７で補正された各物体のバウンディングボックスに基づいて、各画像に表された各物体の予測軌跡を推定する。その後、運転計画部３３は、各物体の予測軌跡に基づいて、各物体と車両１０との間の距離が所定距離以上となるように、車両１０の走行予定経路を生成する。
【００７８】
次いで、ステップＳ２１では、車両制御部３４が、走行予定経路にそって車両１０が走行するように、車両１０を制御する。具体的には、車両制御部３４は、車両１０の各種アクチュエータ（スロットル弁、モータ、ステアリングシステム、ブレーキアクチュエータ等）を操作して、車両１０の加速、操舵、制動を制御する。
【００７９】
なお、ＥＣＵ３の各機能ブロックの機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体又は光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されもよい。
【００８０】
また、上記実施形態に係る物体検出装置は、車両以外に実装されてもよい。例えば、物体検出装置は、サーバ等に実装され、屋内又は屋外に設置された監視カメラ又はドローンに搭載されたカメラによって生成された画像から物体を検出するように構成されてもよい。
【符号の説明】
【００８１】
１    車両制御システム
２    カメラ
３    電子制御ユニット（ＥＣＵ）
１０    車両
３０    物体検出部
３１    第１検出部
３１１    位置領域検出部
３１２    種類検出部
３１３    及び隠れ検出部
３２    第２検出部
３３    運転計画部
３４    車両制御部
【図１】
2020086545.tif 000003
【図２】
2020086545.tif 000004
【図３】
2020086545.tif 000005
【図４】
2020086545.tif 000006
【図５】
2020086545.tif 000007
【図６】
2020086545.tif 000008
【図７】
2020086545.tif 000009
【図８】
2020086545.tif 000010