JP2021081985A - 物体検出装置 - Google Patents

物体検出装置 Download PDF

Info

Publication number
JP2021081985A
JP2021081985A JP2019208773A JP2019208773A JP2021081985A JP 2021081985 A JP2021081985 A JP 2021081985A JP 2019208773 A JP2019208773 A JP 2019208773A JP 2019208773 A JP2019208773 A JP 2019208773A JP 2021081985 A JP2021081985 A JP 2021081985A
Authority
JP
Japan
Prior art keywords
image
object detection
vehicle
block
dnn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019208773A
Other languages
English (en)
Inventor
将幸 山崎
Masayuki Yamazaki
将幸 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2019208773A priority Critical patent/JP2021081985A/ja
Publication of JP2021081985A publication Critical patent/JP2021081985A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Traffic Control Systems (AREA)
  • Image Analysis (AREA)

Abstract

【課題】物体検出処理による物体の検出精度の低下を抑制しつつ、物体検出処理に必要なハードウェアリソースを低減できる物体検出装置を提供する。【解決手段】物体検出装置は、撮像部2により生成された画像の少なくとも一部をニューラルネットワークに入力することで、画像に表された所定の物体を検出する物体検出部31と、画像に対するニューラルネットワークの演算のうち、物体の検出結果に対する影響が無い一部の演算を特定し、特定した演算を省略するようニューラルネットワークの演算を制御する演算制御部32とを有する。【選択図】図3

Description

本発明は、画像に表された物体を検出する物体検出装置に関する。
画像に表された物体を検出する技術が研究されている。近年では、物体を検出するために、いわゆるディープニューラルネットワーク(以下、単にDNNと呼ぶ)を用いることで、検出精度を向上する技術が提案されている。例えば、2段のニューラルネットワークを有し、1段目のセマンティックセグメンテーション用のニューラルネットワークに画像を入力することで得られたセグメンテーションマスクを画像とともに2段目のニューラルネットワークの入力として利用する技術が提案されている(例えば、特許文献1を参照)。
国際公開第2019/066794号
DNNが物体検出用の識別器として利用される場合、検出精度を維持するためには、例えば、演算量及び演算途中の結果を記憶するメモリ容量が膨大となり、必要なハードウェアリソースが非常に大きくなることがある。しかし、DNNを用いた物体検出処理が車両の電子制御ユニットに実装される場合のように、DNNの演算に利用可能なハードウェアリソースが制限されることがある。そこで、検出精度を低下させずに、必要なハードウェアリソースを低減することが求められる。
そこで、本発明は、物体の検出精度の低下を抑制しつつ、物体検出処理に必要なハードウェアリソースを低減できる物体検出装置を提供することを目的とする。
一つの実施形態によれば、物体検出装置が提供される。この物体検出装置は、撮像部により生成された画像の少なくとも一部をニューラルネットワークに入力することで、画像に表された所定の物体を検出する物体検出部と、画像に対するニューラルネットワークの演算のうち、物体の検出結果に対する影響が無い一部の演算を特定し、特定した演算を省略するようニューラルネットワークの演算を制御する演算制御部と、を有する。
本発明に係る物体検出装置は、物体の検出精度の低下を抑制しつつ、物体検出処理に必要なハードウェアリソースを低減できるという効果を奏する。
物体検出装置が実装される車両制御システムの概略構成図である。 物体検出装置の一つの実施形態である電子制御装置のハードウェア構成図である。 物体検出処理を含む車両制御処理に関する、電子制御装置のプロセッサの機能ブロック図である。 識別器として利用されるDNNの構造の一例を示す図である。 演算制御部により実行される演算制御処理の動作フローチャートである。 物体検出処理を含む車両制御処理の動作フローチャートである。
以下、図を参照しつつ、物体検出装置について説明する。この物体検出装置は、画像をDNNに入力することで、画像に表された、検出対象となる所定の物体を検出する。その際、この物体検出装置は、画像に対するDNNの演算のうち、物体の検出結果に対する影響が無い一部の演算を特定し、特定した演算を省略するようDNNの演算を制御する。これにより、この物体検出装置は、物体検出処理による物体の検出精度の低下を抑制しつつ、物体検出処理に必要なハードウェアリソースを低減する。
以下では、物体検出装置を、車両制御システムに適用した例について説明する。この例では、物体検出装置は、車両に搭載されたカメラにより得られた画像に対して物体検出処理を実行することで、車両の周囲に存在する各種の物体、例えば、他の車両、人、道路標識または道路標示などを検出し、その検出結果に基づいて車両を自動運転制御する。
図1は、物体検出装置が実装される車両制御システムの概略構成図である。図2は、物体検出装置の一つの実施形態である電子制御装置のハードウェア構成図である。本実施形態では、車両10に搭載され、かつ、車両10を制御する車両制御システム1は、車両10の周囲を撮影するためのカメラ2と、測距センサ3と、物体検出装置の一例である電子制御装置(ECU)4とを有する。カメラ2と、測距センサ3と、ECU4とは、コントローラエリアネットワークといった規格に準拠した車内ネットワークを介して通信可能に接続される。なお、車両制御システム1は、車両10の自動運転制御に用いられる地図を記憶するストレージ装置をさらに有していてもよい。さらに、車両制御システム1は、GPS受信機といった、衛星測位システムに準拠して車両10の自己位置を測位するための受信機、他の機器と無線通信するための無線端末、及び、車両10の走行予定ルートを探索するためのナビゲーション装置などを有していてもよい。
カメラ2は、撮像部の一例であり、CCDあるいはC-MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する結像光学系を有する。カメラ2は、車両10の前方を向くように、例えば、車両10の車室内に取り付けられる。そしてカメラ2は、所定の撮影周期(例えば1/30秒〜1/10秒)ごとに車両10の前方領域を撮影し、その前方領域が写った画像を生成する。カメラ2により得られた画像は、カラー画像であってもよく、あるいは、グレー画像であってもよい。なお、車両制御システム1は、撮影方向または画角が異なる複数のカメラ2を有していてもよい。
カメラ2は、画像を生成する度に、その生成した画像を、車内ネットワークを介してECU4へ出力する。
測距センサ3は、例えば、LiDERセンサあるいはレーダであり、所定の周期ごとに、各方位について、その方位における、車両10の周囲に存在する他の物体までの距離を測定する。そして測距センサ3は、所定の周期ごとに、方位ごとの他の物体までの距離を表すセンサ信号を、車内ネットワークを介してECU4へ出力する。
ECU4は、車両10を制御する。本実施形態では、ECU4は、カメラ2により得られた時系列の一連の画像から検出された物体に基づいて車両10を自動運転するよう、車両10を制御する。そのために、ECU4は、通信インターフェース21と、メモリ22と、プロセッサ23とを有する。
通信インターフェース21は、通信部の一例であり、ECU4を車内ネットワークに接続するためのインターフェース回路を有する。すなわち、通信インターフェース21は、車内ネットワークを介して、カメラ2及び測距センサ3と接続される。そして通信インターフェース21は、カメラ2から画像を受信する度に、受信した画像をプロセッサ23へわたす。また通信インターフェース21は、測距センサ3から受信したセンサ信号をプロセッサ23へわたす。あるいはまた、通信インターフェース21は、車内ネットワークを介して受信した、ストレージ装置から読み込んだ地図、GPS受信機からの測位情報などを、プロセッサ23へわたす。
メモリ22は、記憶部の一例であり、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。そしてメモリ22は、ECU4のプロセッサ23により実行される各種処理を実現するためのコンピュータプログラム、物体検出処理において使用される各種のデータ、例えば、カメラ2から受信した画像、測距センサ3から受け取ったセンサ信号、物体検出処理で利用される識別器を特定するための各種パラメータなどを記憶する。さらに、メモリ22は、物体検出処理の途中における演算結果を記憶する。
プロセッサ23は、制御部の一例であり、1個または複数個のCPU(Central Processing Unit)及びその周辺回路を有する。プロセッサ23は、論理演算ユニット、数値演算ユニットあるいはグラフィック処理ユニットといった他の演算回路をさらに有していてもよい。そしてプロセッサ23は、車両10が走行している間、カメラ2から画像を受信する度に、受信した画像に対して物体検出処理を含む車両制御処理を実行する。そしてプロセッサ23は、検出された車両10の周囲の物体に基づいて、車両10を自動運転するよう、車両10を制御する。
図3は、物体検出処理を含む車両制御処理に関する、ECU4のプロセッサ23の機能ブロック図である。プロセッサ23は、物体検出部31と、演算制御部32と、運転計画部33と、車両制御部34とを有する。プロセッサ23が有するこれらの各部は、例えば、プロセッサ23上で動作するコンピュータプログラムにより実現される機能モジュールである。あるいは、プロセッサ23が有するこれらの各部は、プロセッサ23に設けられる、専用の演算回路であってもよい。また、プロセッサ23が有するこれらの各部のうち、物体検出部31及び演算制御部32が、物体検出処理を実行する。
物体検出部31は、カメラ2から画像が得られる度に、その画像を識別器として利用されるDNNに入力することで、その画像に表された、車両10の周囲に存在する検出対象となる物体を検出する。なお、検出対象となる物体には、例えば、車または人といった移動物体が含まれる。また、検出対象となる物体には、車線区画線といった道路標示または道路標識、及び信号機といった静止物体がさらに含まれてもよい。
さらに、物体検出部31は、測距センサ3からのセンサ信号といった、カメラ2以外の車両10の周囲の物体を検知するために利用可能な他のセンサにより得られたセンサ信号に基づいて、車両10の周囲の物体を検出してもよい。
この場合、物体検出部31は、他のセンサの種類に応じた物体検出手法に従って車両10の周囲の物体を検出すればよい。あるいは、物体検出部31は、DNNに対して、画像だけでなく、他のセンサにより得られた、画像に表された領域と同じ領域のセンサ信号を入力してもよい。この場合、DNNにおいて、画像が入力される層と、センサ信号が入力される層とは並列に設けられてもよく、あるいは、画像とセンサ信号とが互いに異なるチャネルとしてDNNに入力されてもよい。なお、画像とセンサ信号とが互いに異なるチャネルとしてDNNに入力される場合には、実空間の同じ位置を表す画像上の画素とセンサ信号の成分とが同じフィルタに入力されるように、画像とセンサ信号とが位置合わせされることが好ましい。物体検出部31は、例えば、カメラ2の取り付け位置、撮影方向及び画角と、他のセンサの取り付け位置などに基づいて、画像とセンサ信号とを位置合わせすればよい。
また、本実施形態では、識別器として利用されるDNNは、例えば、Single Shot MultiBox Detector(SSD)、Faster R-CNN、Feature Pyramid Net(FPN)またはRetinaNetといった、コンボリューショナルニューラルネットワーク(CNN)型のアーキテクチャを持つDNNとすることができる。あるいは、識別器として利用されるDNNは、Fully Convolutional Network(FCN)あるいはUnetといった、入力された画像から、その画像の各画素について、その画素に表される可能性の有る物体を識別するセマンティックセグメンテーション用のCNN型のアーキテクチャを持つDNNであってもよい。
すなわち、本実施形態で識別器として利用されるDNNは、画像が入力される入力層と、物体検出の結果を出力する出力層と、入力層と出力層との間に接続される複数の隠れ層とを有する。そして複数の隠れ層には、畳み込み層が含まれる。さらに、複数の隠れ層には、プーリング層、アップサンプリング層あるいは全結合層が含まれてもよい。
図4は、DNNの構造の一例を示す図である。図4に示されるように、DNN400は、いわゆるエンコーダ/デコーダ形式のCNNであり、エンコーダ部410とデコーダ部420とを有する。エンコーダ部410及びデコーダ部420には、それぞれ、1以上のブロックが含まれる。また、エンコーダ部410に含まれるブロック数とデコーダ部420に含まれるブロック数とは等しい。この例では、エンコーダ部410は、入力側から順に4個のブロック411〜414を有し、デコーダ部420は、入力側から順に4個のブロック421〜424を有する。各ブロックは、それぞれ、畳み込み層、プーリング層またはアップリング層といった演算を実行する層を一つ以上、好ましくは複数有する。さらに、エンコーダ部410の最も入力側のブロック411に入力層が含まれ、デコーダ部420の最も出力側のブロック424に出力層が含まれる。
エンコーダ部410では、入力側に近いブロックほど、解像度が高いデータに対する演算を実行する。逆に、デコーダ部420では、出力側に近いブロックほど、解像度が高いデータに対する演算を実行する。そしてエンコーダ部410に含まれる各ブロックは、そのブロックの入力側からの順序とデコーダ部420における出力側からの順序とが等しいデコーダ部420のブロックとペアになる。ペアになるブロック同士は、同じ解像度のデータに対する演算を実行する。この例では、入力側に最も近いブロック411と出力側に最も近いブロック424とがペアとなる。同様に、ブロック412とブロック423とがペアとなり、ブロック413とブロック422とがペアとなり、ブロック414とブロック421とがペアとなる。
すなわち、最も入力側に位置するブロック411は、例えば、入力される画像そのものに対する演算を実行してfeature mapを算出し、そのfeature mapに基づいて、物体検出またはセグメンテーションなどの処理を実行する。例えば、ブロック411は、画素ごとに、かつ、物体の種類ごとに、その物体が表されている確からしさを表す信頼度を算出する。一方、ブロック424は、ブロック411から出力される、画素ごとの各種類の物体の信頼度と、直前のブロック423から出力された演算結果をアップサンプリングすることで入力される画像の解像度と同じ解像度としたものとに基づいて、画素ごとに、その画素に表されている物体を検出する。
また、ブロック411の直後のブロック412は、ブロック411により算出されるfeature mapをダウンサンプリングしたものを入力として、ブロック411と同様の処理を実行することで、画素グループ(例えば、2×2画素のグループ)ごとのfeature map及び各種類の物体の信頼度を算出する。すなわち、ブロック412は、ブロック411が扱うデータよりも解像度が低いデータに対する演算を実行する。さらに、ブロック412とペアになるブロック423は、ブロック412から出力される、画素グループごとの各種類の物体の信頼度と、直前のブロック422から出力された演算結果をアップサンプリングすることでブロック412に入力されるfeature mapの解像度と同じ解像度としたものとに基づいて、画素グループごとに、その画素グループに表されている物体を検出する処理を実行する。
同様に、ブロック412の直後のブロック413は、ブロック412により算出されるfeature mapをダウンサンプリングしたものを入力として、ブロック412と同様の処理を実行することで、より大きな画素グループ(例えば、4×4画素のグループ)ごとのfeature map及び各種類の物体の信頼度を算出する。すなわち、ブロック413は、ブロック412が扱うデータよりも解像度が低いデータに対する演算を実行する。さらに、ブロック413とペアになるブロック422は、ブロック413から出力される、より大きな画素グループごとの各種類の物体の信頼度と、直前のブロック421から出力された演算結果をアップサンプリングすることで、ブロック413に入力されるfeature mapの解像度と同じ解像度としたものとに基づいて、より大きな画素グループごとに、その画素グループに表されている物体を検出する処理を実行する。さらにまた、ブロック413の直後のブロック414は、ブロック413により算出されるfeature mapをダウンサンプリングしたものを入力として、ブロック413と同様の処理を実行する.そしてブロック414とペアになるブロック421は、ブロック414から出力された演算結果に対して、ブロック422と同様の処理を実行する。
本実施形態では、物体検出部31は、画像に対するDNNの演算のうち、演算制御部32により、物体の検出結果に対する影響が無いと判定された一部の演算処理を省略することで、ECU4が有するハードウェアリソースのうち、物体検出処理に利用されるハードウェアリソースの量を低減する。そのため、物体検出部31は、例えば、演算制御部32により省略対象として指定されたDNNの何れかのブロックまたはレイヤによる演算を省略し、あるいは、演算制御部32により省略対象として指定された画像の一部のDNNへの入力、または、画像全体のDNNへの入力を停止する。その上で、物体検出部31は、省略されていない演算処理を実行することで、画像に表された物体を検出する。なお、物体検出部31は、DNNに入力される画像よりも所定フレーム(例えば、1〜3)数だけ前にカメラ2により生成された画像(以下、過去画像と呼ぶことがある)との比較により、DNNへの入力が省略された画像上の領域については、その領域と対応する過去画像上の領域に表された物体と同じ物体が表されているとすればよい。同様に、物体検出部31は、測距センサ3といったカメラ2以外の他のセンサからのセンサ信号により物体が検知されている領域については、その検知された物体が表されているとすればよい。さらに、物体検出部31は、画像全体のDNNへの入力が省略された場合には、直前の画像に対する物体検出の結果と同じ検出結果、あるいは、他のセンサからのセンサ信号に基づく検出結果のみを出力してもよい。
物体検出部31は、演算制御部32により指示された、演算が省略される領域のデータ(例えば、DNNへの入力が省略される画像上の領域、または、DNNによりその領域に対する演算の途中で生成されるfeature map等)をメモリ22に保存しないようにしてもよい。これにより、物体検出処理で使用されるメモリ容量が削減される。
また、DNNによる演算が省略される領域の演算をスキップするようにプロセッサ23のハードウェアを構成できない場合には、物体検出部31は、DNNによるその領域の演算を行う際の各層が有する各ノードの重み係数を0に設定してもよい。この場合でも、演算が省略される領域に関して、各ノードからの出力が全て0になる。そのため、演算処理に必要なメモリの容量が削減され、かつ、プロセッサ23のキャッシュ参照による行列演算を省略することが可能となるので、ハードウェアリソースは少なくて済む。
なお、物体検出部31は、何れかの層またはブロックについて演算が省略されると演算制御部32により指示された領域のうち、その層またはブロック以降の層またはブロックにおける演算にて、その領域の近傍領域の演算に関して参照される部分については、演算の省略対象から外してもよい。
物体検出部31は、検出された物体の種類及び画像上での位置を表す情報を運転計画部33へ出力する。また、物体検出部31は、DNNによる演算の途中で生成されるfeature map等の演算結果を演算制御部32へ出力する。
演算制御部32は、物体検出部31により実行される、画像に対するDNNの演算のうち、物体の検出結果に対する影響が無い一部の演算を特定し、特定した演算を省略するようDNNの演算を制御する。本実施形態では、演算制御部32は、DNNに入力される最新の画像(以下、着目画像と呼ぶこともある)、過去画像、測距センサ3といった、カメラ2と異なる他のセンサにより得られたセンサ信号、及び、画像をDNNに入力したときのDNNの途中演算結果のうちの少なくとも一つに基づいて、物体の検出結果に対する影響が無い一部の演算を特定する。
演算制御部32は、例えば、DNNへの着目画像の一部領域または着目画像全体の入力を省略することで演算を省略する。この場合、例えば、着目画像において、検出対象となる物体が表されていないと想定される領域をDNNへの入力を省略する領域(すなわち、除外領域)として特定する。具体的に、演算制御部32は、画素の輝度値の平均値あるいは中央値が所定の下限閾値(例えば、取り得る輝度値の最小値に、取り得る輝度値の範囲の0.01〜0.05倍に相当するオフセット値を加算して得られる値)以下となる暗黒領域を、DNNへの入力を省略する領域として特定する。また、演算制御部32は、画素の輝度値の平均値あるいは中央値が所定の上限閾値(例えば、取り得る輝度値の最大値から、取り得る輝度値の範囲の0.01〜0.05倍に相当するオフセット値を減算して得られる値)以上となる白飛び領域を、DNNへの入力を省略する領域として特定してもよい。あるいはまた、演算制御部32は、近傍画素間のエッジ強度の平均値または輝度値の分散値が所定値以下となる領域を、DNNへの入力を省略する領域として特定してもよい。
また、演算制御部32は、DNNへの入力対象となる着目画像と、過去画像との比較に基づいて、DNNへの入力を省略する領域を特定してもよい。例えば、着目画像上の着目領域が過去画像上のある領域と類似している場合、着目画像上のその着目領域には、過去画像のその領域(以下、類似領域と呼ぶ)に表された物体と同じ物体が表されている可能性が高い。そのため、演算制御部32は、着目領域には、過去画像上の類似領域に表されている物体と同じ物体が表されているとみなして、着目領域を、DNNへの入力を省略する領域とすることができる。また、着目領域と類似する過去画像上の類似領域に検出対象となる物体が表されていない場合に、着目領域にも検出対象となる物体が表されていないと想定される。そこで、この場合も、演算制御部32は、着目領域を、DNNへの入力を省略する領域とすることができる。
そこで、演算制御部32は、例えば、着目画像と過去画像の対応画素間の輝度値の差の絶対値を算出する。そして演算制御部32は、輝度値の差の絶対値の和が所定値以下となる領域を、DNNへの入力を省略する領域として特定する。その際、演算制御部32は、着目画像を複数のブロックに分割し、ブロックごとに、輝度値の差の絶対値和を算出して、DNNへの入力を省略する領域となるか否かを判定してもよい。
あるいは、演算制御部32は、着目画像を分割した複数のブロックのそれぞれについて、過去画像との間でブロックマッチングを行って、そのブロックと最も一致した過去画像上の類似領域を特定してもよい。その際、演算制御部32は、過去画像の何れの領域についても対応画素間の輝度値の差の絶対値の和が所定値より大きくなる、着目画像上のブロックについては、類似領域が無いと判定してもよい。そして演算制御部32は、着目画像上の複数のブロックのそれぞれについて、そのブロックと対応する過去画像上の類似領域間の動きベクトルの大きさが所定値以下である場合に、そのブロックを、DNNへの入力を省略する領域としてもよい。
また、測距センサ3といった他のセンサからのセンサ信号に基づいて物体が検知されており、かつ、着目画像の生成タイミングとそのセンサ信号の生成タイミングとの差が所定時間内となる場合には、演算制御部32は、その検知された物体が表されていると推定される着目画像上の領域を、DNNへの入力を省略する領域としてもよい。この場合も、上記の例と同様に、既に物体が検出されている領域については、DNNを用いて物体を検出する必要が無いためである。なお、演算制御部32は、カメラ2の取り付け位置、撮影方向及び画角と、他のセンサの取り付け位置及びセンサから検知された物体への方位及び距離に基づいて、検知された物体が表されていると推定される着目画像上の領域を特定すればよい。
逆に、演算制御部32は、着目画像に対する生成タイミングの差が所定時間内となる、他のセンサからのセンサ信号において何の物体も検知されていない空間を表す着目画像上の領域を、DNNへの入力を省略する領域としてもよい。何の物体も検知されていない空間を表す領域には、検出対象となる物体が存在しないと想定されるためである。この場合も、演算制御部32は、カメラ2の取り付け位置、撮影方向及び画角と、他のセンサの取り付け位置及びセンサからその空間への方位に基づいて、何の物体も検知されていない空間を表す着目画像上の領域を特定すればよい。
また、演算制御部32は、DNNによる演算過程の一部を省略してもよい。例えば、DNNによる途中までの演算結果から、それ以降の演算を実行しても検出対象となる物体が検出されないことが想定される場合、あるいは、それ以降の演算を継続しても物体の検出結果が変わらないことが想定される場合に、演算制御部32は、それ以降の演算の一部または全てを省略する。
例えば、演算制御部32は、ある領域について、DNNの途中の層またはブロックから出力されるfeature mapから推定される、その領域に表された物体が検出対象となる物体でない場合、その領域について、その層またはブロック以降の演算を省略するよう、物体検出部31へ指示する。例えば、演算制御部32は、図4に示されるDNN400に関して、エンコーダ部410の何れかのブロックにおいて、領域内の各画素または各画素グループについて算出された、物体の種類ごとの信頼度のうち、検出対象でない物体の信頼度が最も高い場合、あるいは、検出対象となる何れの種類の物体の信頼度も所定の閾値以下である場合、その領域に表された物体は検出対象となる物体でないと判定すればよい。なお、所定の閾値は、物体の種類ごとに、車両10の運転制御における重要度に応じて設定されてもよい。例えば、他の車両あるいは人のように、車両10の運転制御において重要であり、高精度で検出されることが好ましい物体が写っている可能性が有る領域に対しては、DNNによる演算もできるだけ実行されることが好ましい。逆に、車両10の運転制御においてそれほど重要でない物体が写っている可能性が有る領域に対しては、DNNによる演算が省略されることで何らかの不具合が生じる可能性は低い。そこで、車両10の運転制御において重要な物体の種類ほど、上記の所定の閾値は、相対的に低く設定されることが好ましい。そして演算制御部32は、そのブロックよりも出力側の各ブロックの演算を省略するよう、物体検出部31へ指示する。
また、演算制御部32は、処理対象となるデータの解像度が異なる層またはブロックから出力されたfeature map同士の差が所定以下となるか、それらのfeature mapから推定される物体の種類が変化しない領域について、その層またはブロックよりも低解像度のデータを処理対象とするブロック及び層の演算を省略するよう、物体検出部31へ指示してもよい。この場合、演算制御部32は、異なる解像度を持つfeature map同士を比較するために、例えば、解像度が高い方のfeature mapをmax poolingによりダウンサンプリングするか、逆に、解像度が低い方のfeature mapをアップサンプリングする。そして演算制御部32は、比較される二つのfeature mapにおける、対応するfeature同士の差の絶対値の和を、その二つのfeature map間の差として算出すればよい。また、演算制御部32は、例えば、図4に示されるDNN400のエンコーダ部410に含まれる各ブロックのうちの何れか二つについて、同じ種類の物体について最も高い信頼度を算出する場合、推定される物体の種類が変化しないと判断すればよい。例えば、ブロック411が最も高い信頼度を算出した物体の種類と、ブロック412が最も高い信頼度を算出した物体の種類とが同じとなる領域について、演算制御部32は、ブロック413及びブロック414の演算を省略するよう、物体検出部31へ指示する。
さらに、物体検出部31が識別器として使用するDNNが、図4に示されるDNN400のように、エンコード/デコード形式のDNNである場合、演算制御部32は、エンコード部とデコード部とで、同じ解像度のデータを処理対象とするブロックまたは層の演算を省略してもよい。例えば、上記のように、エンコーダ部410のブロック413及びブロック414の演算が省略される場合、ブロック413と同じ解像度のデータを処理対象とする、デコーダ部420のブロック422の演算、及び、ブロック414と同じ解像度のデータを処理対象とする、デコーダ部420のブロック421の演算も省略されてよい。
さらに、演算制御部32は、DNNに入力される画像の領域ごとに、DNNによる演算を省略するか否かの判定に用いられる、上記の何れかの値の一つ以上を算出し、その算出した値を、識別関数あるいは予め学習された判別器に入力することで、DNNによるその領域に関する演算を省略するか否かを判定してもよい。この場合、識別関数は、例えば、多項式またはsoftmax関数とすることができ、演算制御部32は、その識別関数による出力値が所定の閾値以下となった場合に演算を省略すると判定してもよい。また、演算制御部32は、判別器として、サポートベクトルマシンあるいは多層パーセプトロン型のニューラルネットワークを用いることができる。
なお、演算が省略される領域のサイズの単位、または、隣接する領域間のシフト量の単位、すなわち、スキップ単位は、画素単位、演算が省略される層またはブロックにおけるカーネル(フィルタ)のサイズ単位、あるいは、より大きなブロック単位の何れでもよい。
図5は、プロセッサ23の演算制御部32により実行される演算制御処理の動作フローチャートである。演算制御部32は、物体検出部31が画像に対するDNNの演算処理を実行する度に、図5に示される動作フローチャートに従って、演算制御処理を実行すればよい。
演算制御部32は、DNNへの入力対象となる着目画像における各画素の値、着目画像と過去画像との比較、または、測距センサ3といったカメラ2以外の他のセンサによる物体の検知結果に基づいて、着目画像のうちのDNNへの入力を省略する、物体の検出結果に影響の無い領域を特定する(ステップ101)。そして演算制御部32は、着目画像のうちの特定した領域以外の領域をDNNへ入力するよう、物体検出部31へ指示する(ステップ102)。
さらに、演算制御部32は、DNNによる、入力された着目画像上の領域に対する演算の途中結果に基づいて、以降の演算のうち、物体検出の結果に影響の無い演算を特定する(ステップ103)。そして演算制御部32は、以降の演算のうち、特定した演算以外の演算を継続して実行するよう物体検出部31へ指示する(ステップ104)。
ステップS104の後、演算制御部32は、演算制御処理を終了する。
運転計画部33は、各画像から検出された物体に基づいて、車両10の周囲に存在する物体と車両10とが衝突しないように車両10の走行予定経路を1以上生成する。走行予定経路は、例えば、現時刻から所定時間先までの各時刻における、車両10の目標位置の集合として表される。例えば、運転計画部33は、カメラ2から画像を受信する度に、カメラ2についての車両10への取り付け位置などの情報を用いて視点変換処理を実行することで、受信した画像を鳥瞰画像に変換する。そして運転計画部33は、一連の鳥瞰画像に対してKalman Filterなどを用いたトラッキング処理を実行することで、各画像についての検出されている物体を追跡し、その追跡結果により得られた軌跡から、物体のそれぞれの所定時間先までの予測軌跡を推定する。運転計画部33は、追跡中の各物体の予測軌跡に基づいて、何れの物体についても所定時間先までの追跡中の物体のそれぞれと車両10間の距離の予測値が所定距離以上となるように、車両10の走行予定経路を生成する。その際、運転計画部33は、例えば、車両10に搭載されたGPS受信機(図示せず)から得た測位情報に表される車両10の現在位置と、メモリ22に記憶されている地図情報とを参照して、車両10が走行可能な車線の数を確認してもよい。そして運転計画部33は、車両10が走行可能な車線が複数存在する場合には、車両10が走行する車線を変更するように走行予定経路を生成してもよい。その際、運転計画部33は、画像から検出された車線区画線の位置を参照して、車両10が走行中の車線、あるいは変更先の車線と車両10との位置関係を判定してもよい。さらに、運転計画部33は、画像から検出された信号機が一時停止を示している場合には、車両10をその信号機に対応する停止線にて停止させるように走行予定経路を設定してもよい。
なお、運転計画部33は、複数の走行予定経路を生成してもよい。この場合、運転計画部33は、複数の走行予定経路のうち、車両10の加速度の絶対値の総和が最小となる経路を選択してもよい。
運転計画部33は、生成した走行予定経路を車両制御部34へ通知する。
車両制御部34は、車両10が通知された走行予定経路に沿って走行するように車両10の各部を制御する。例えば、車両制御部34は、通知された走行予定経路、及び、車速センサ(図示せず)により測定された車両10の現在の車速に従って、車両10の加速度を求め、その加速度となるようにアクセル開度またはブレーキ量を設定する。そして車両制御部34は、設定されたアクセル開度に従って燃料噴射量を求め、その燃料噴射量に応じた制御信号を車両10のエンジンの燃料噴射装置へ出力する。あるいは、車両制御部34は、設定されたブレーキ量に応じた制御信号を車両10のブレーキへ出力する。
さらに、車両制御部34は、車両10が走行予定経路に沿って走行するために車両10の進路を変更する場合には、その走行予定経路に従って車両10の操舵角を求め、その操舵角に応じた制御信号を、車両10の操舵輪を制御するアクチュエータ(図示せず)へ出力する。
図6は、プロセッサ23により実行される、物体検出処理を含む車両制御処理の動作フローチャートである。プロセッサ23は、カメラ2から画像を受信する度に、図6に示される動作フローチャートに従って車両制御処理を実行する。なお、以下に示される動作フローチャートにおいて、ステップS201〜S202の処理が物体検出処理に対応する。
プロセッサ23の演算制御部32は、図5に示されるフローチャートに従って、物体検出部31において使用されるDNNによる、画像に対する演算のうち、物体検出結果に影響の無い演算を特定する(ステップS201)。そしてプロセッサ23の物体検出部31は、カメラ2から得られた画像をDNNに入力して、特定された演算以外のDNNによる演算処理を実行することで、画像に表された車両10の周囲の物体を検出する(ステップS202)。
プロセッサ23の運転計画部33は、検出されている物体を追跡し、その追跡結果に基づいて推定されるその物体の予測軌跡と所定の距離以上となるように、車両10の走行予定経路を生成する(ステップS203)。そしてプロセッサ23の車両制御部34は、走行予定経路に沿って車両10が走行するように車両10を制御する(ステップS204)。そしてプロセッサ23は、車両制御処理を終了する。
以上に説明してきたように、この物体検出装置は、画像をDNNに入力することで、画像に表された、検出対象となる所定の物体を検出する。その際、この物体検出装置は、画像に対するDNNの演算のうち、物体の検出結果に対する影響が無い一部の演算を特定し、特定した演算を省略するようDNNの演算を制御する。これにより、この物体検出装置は、物体検出処理による物体の検出精度の低下を抑制しつつ、物体検出処理に必要なハードウェアリソースを低減することができる。
上記の実施形態または変形例による物体検出装置は、車両制御システム以外に適用されてもよい。例えば、上記の実施形態または変形例による物体検出装置は、屋外または屋内の所定の領域を監視するために設置される監視装置に適用されてもよい。
また、上記の実施形態または変形例による、物体検出装置のプロセッサ23の各部の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
以上のように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。
1 車両制御システム
2 カメラ
3 測距センサ
4 電子制御装置(物体検出装置)
21 通信インターフェース
22 メモリ
23 プロセッサ
31 物体検出部
32 演算制御部
33 運転計画部
34 車両制御部

Claims (1)

  1. 撮像部により生成された画像の少なくとも一部をニューラルネットワークに入力することで、前記画像に表された所定の物体を検出する物体検出部と、
    前記画像に対する前記ニューラルネットワークの演算のうち、前記物体の検出結果に対する影響が無い一部の演算を特定し、特定した演算を省略するよう前記ニューラルネットワークの演算を制御する演算制御部と、
    を有する物体検出装置。
JP2019208773A 2019-11-19 2019-11-19 物体検出装置 Pending JP2021081985A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019208773A JP2021081985A (ja) 2019-11-19 2019-11-19 物体検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019208773A JP2021081985A (ja) 2019-11-19 2019-11-19 物体検出装置

Publications (1)

Publication Number Publication Date
JP2021081985A true JP2021081985A (ja) 2021-05-27

Family

ID=75965294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019208773A Pending JP2021081985A (ja) 2019-11-19 2019-11-19 物体検出装置

Country Status (1)

Country Link
JP (1) JP2021081985A (ja)

Similar Documents

Publication Publication Date Title
JP7052663B2 (ja) 物体検出装置、物体検出方法及び物体検出用コンピュータプログラム
US10696227B2 (en) Determining a road surface characteristic
JP7388971B2 (ja) 車両制御装置、車両制御方法及び車両制御用コンピュータプログラム
JP2020052695A (ja) 物体検出装置、物体検出方法及び物体検出用コンピュータプログラム
JP7077910B2 (ja) 区画線検出装置及び区画線検出方法
US11721028B2 (en) Motion segmentation in video from non-stationary cameras
JP7359735B2 (ja) 物体状態識別装置、物体状態識別方法及び物体状態識別用コンピュータプログラムならびに制御装置
CN113435237B (zh) 物体状态识别装置、识别方法和计算机可读的记录介质以及控制装置
CN104427255A (zh) 车载相机的图像处理方法和使用该方法的图像处理设备
JP7276282B2 (ja) 物体検出装置、物体検出方法及び物体検出用コンピュータプログラム
JP7226368B2 (ja) 物体状態識別装置
CN114359714A (zh) 基于事件相机的无人体避障方法、装置及智能无人体
US11120292B2 (en) Distance estimation device, distance estimation method, and distance estimation computer program
JP7381388B2 (ja) 信号灯状態識別装置、信号灯状態識別方法及び信号灯状態識別用コンピュータプログラムならびに制御装置
CN116892949A (zh) 地上物检测装置、地上物检测方法以及地上物检测用计算机程序
JP2021081985A (ja) 物体検出装置
JP7348874B2 (ja) 傾斜角検出装置及び制御装置
JP2020067818A (ja) 画像選択装置及び画像選択方法
JP2022079954A (ja) 物体検出装置
KR101511567B1 (ko) 영상 감시 시스템 및 그의 동작 방법
JP2023092183A (ja) 追跡装置、追跡方法及び追跡用コンピュータプログラム
JP2022146384A (ja) 物体検出装置
JP2021163433A (ja) 演算装置
JP2021138338A (ja) 車両制御システム
JP2020077297A (ja) 位置姿勢推定装置