(57)【要約】【課題】物体の位置の検出精度を向上させること。【解決手段】フォークリフトには、物体検出装置が搭載されている。物体検出装置は、ステレオカメラと、画像処理部と、を備える。画像処理部は、ステレオカメラの画像から視差画像を取得し、視差画像を複数の分割領域に分割する。画像処理部は、分割領域毎に視差のヒストグラムを生成する。画像処理部は、ヒストグラムから頻度が閾値以上の視差を抽出する。画像処理部は、頻度が閾値以上の視差のうち最大視差と最大頻度視差とが隣接しているか否かに基づき、最大視差又は最大頻度視差を注目視差として設定する。画像処理部は、注目視差と、注目視差＋１の視差である加算視差から小数点以下桁数が１以上の採用視差を算出し、採用視差を用いて物体の位置を演算する。【選択図】図４
2020057258.tif 000002
【特許請求の範囲】
【請求項１】
ステレオカメラと、
前記ステレオカメラの画像から各画素に視差が対応付けられた視差画像を取得する視差画像取得部と、
前記視差画像を、縦方向に区切られており横方向に並ぶ複数の分割領域に分割する分割部と、
前記複数の分割領域毎に、前記分割領域に含まれる各画素に対応付けられた視差のヒストグラムを生成するヒストグラム生成部と、
前記ヒストグラムから頻度が閾値以上の視差を抽出する抽出部と、
前記抽出部により抽出された視差のうち最も値の大きい視差である最大視差と、最も頻度の多い最大頻度視差とが隣接しているか否かを判定する判定部と、
前記最大視差と前記最大頻度視差とが隣接している場合には前記最大頻度視差を注目視差とし、前記最大視差と前記最大頻度視差とが隣接していない場合には前記最大視差を注目視差とする注目視差設定部と、
前記注目視差に１を加算した視差を加算視差とした場合、以下の（１）式に基づき、小数点以下桁数が１以上である採用視差を算出する採用視差算出部と、
【数１】
2020057258.tif 000012
前記採用視差を用いて、前記複数の分割領域毎に物体の位置を演算する演算部と、を備える物体検出装置。
【請求項２】
予め演算された路面の視差を前記視差画像から除去する路面視差除去部を備える請求項１に記載の物体検出装置。
【請求項３】
前記演算部は、前記分割領域のうち横方向の座標が異なる複数点について物体の位置を演算する請求項１又は請求項２に記載の物体検出装置。
【請求項４】
ステレオカメラの画像から各画素に視差が対応付けられた視差画像を取得し、
前記視差画像を、縦方向に区切られており横方向に並ぶ複数の分割領域に分割し、
前記複数の分割領域毎に、前記分割領域に含まれる各画素に対応付けられた視差のヒストグラムを生成し、
前記ヒストグラムから頻度が閾値以上の視差を抽出し、
抽出された前記閾値以上の視差のうち最も値の大きい視差である最大視差と、最も頻度の多い最大頻度視差とが隣接しているか否かを判定し、
前記最大視差と前記最大頻度視差とが隣接している場合には前記最大頻度視差を注目視差とし、前記最大視差と前記最大頻度視差とが隣接していない場合には前記最大視差を注目視差とし、
前記注目視差に１を加算した視差を加算視差とした場合、以下の（１）式に基づき、小数点以下桁数が１以上である採用視差を算出し、
【数２】
2020057258.tif 000013
前記採用視差を用いて、前記複数の分割領域毎に物体の位置を演算する物体検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体検出装置及び物体検出方法に関する。
【背景技術】
【０００２】
車両などの移動体には物体を検出するための物体検出装置が搭載されている。特許文献１に記載の物体検出装置は、ステレオカメラによって得られた視差画像からステレオカメラによって撮像された物体の位置を検出している。物体検出装置は、視差画像を複数の区分に分割し、区分毎に視差のヒストグラムを生成する。物体検出装置は、ヒストグラムにより得られた視差の分布から閾値以上の頻度の視差に注目して、この視差を用いて物体の位置を演算している。閾値以上の頻度の視差に注目することで、視差画像を分割した区分内に複数の物体が重なって存在している場合に物体毎に位置を検出することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−６４６２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、区分毎に視差のヒストグラムを生成し、視差の頻度を求めているが、物体の位置は閾値以上の視差のうちのいずれかを用いて演算されている。物体の位置の検出精度は１つの視差に依存しており、検出精度が十分に高いとはいえない。
【０００５】
本発明の目的は、物体の位置の検出精度を向上させることができる物体検出装置及び物体検出方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決する物体検出装置は、ステレオカメラと、前記ステレオカメラの画像から各画素に視差が対応付けられた視差画像を取得する視差画像取得部と、前記視差画像を、縦方向に区切られており横方向に並ぶ複数の分割領域に分割する分割部と、前記複数の分割領域毎に、前記分割領域に含まれる各画素に対応付けられた視差のヒストグラムを生成するヒストグラム生成部と、前記ヒストグラムから頻度が閾値以上の視差を抽出する抽出部と、前記抽出部により抽出された視差のうち最も値の大きい視差である最大視差と、最も頻度の多い最大頻度視差とが隣接しているか否かを判定する判定部と、前記最大視差と前記最大頻度視差とが隣接している場合には前記最大頻度視差を注目視差とし、前記最大視差と前記最大頻度視差とが隣接していない場合には前記最大視差を注目視差とする注目視差設定部と、前記注目視差に１を加算した視差を加算視差とした場合、以下の（１）式に基づき、小数点以下桁数が１以上である採用視差を算出する採用視差算出部と、
【０００７】
【数１】
2020057258.tif 000003
前記採用視差を用いて、前記複数の分割領域毎に物体の位置を演算する演算部と、を備える。
【０００８】
これによれば、採用視差を用いて物体の位置は演算される。仮に、視差を小数点以下桁数が１以上である値で表現できたとすると、分割領域内の物体のうちステレオカメラに最も近い物体により生じる視差は、注目視差と加算視差との間の値となる。そして、注目視差の頻度と加算視差の頻度の比率は、視差の小数点以下の値に応じたものとなる。例えば、視差の小数点以下の値が注目視差寄りであれば注目視差の頻度のほうが加算視差の頻度よりも多くなり、視差の小数点以下の値が加算視差寄りであれば加算視差の頻度のほうが注目視差の頻度よりも多くなる。従って、注目視差の頻度と加算視差の頻度との比率から演算された採用視差は、分割領域内の物体のうちステレオカメラに最も近い物体により生じた視差を小数点以下桁数１以上で表現したものと捉えることができる。採用視差は、小数点以下桁数が１以上であるため、整数である視差を用いて物体の位置を演算する場合に比べて、物体の位置の分解能を小さくすることができる。従って、物体の位置の検出精度を向上させることができる。
【０００９】
上記物体検出装置について、予め演算された路面の視差を前記視差画像から除去する路面視差除去部を備えていてもよい。
これによれば、路面の視差の影響により、物体の位置の検出精度が低下することを抑制できる。
【００１０】
上記物体検出装置について、前記演算部は、前記分割領域のうち横方向の座標が異なる複数点について物体の位置を演算してもよい。
分割領域は、横方向の画素を複数含んでいる。横方向の座標が異なる複数点について物体の位置を演算することで、実空間上で物体が占有する幅を認識しやすい。
【００１１】
上記課題を解決する物体検出方法は、ステレオカメラの画像から各画素に視差が対応付けられた視差画像を取得し、前記視差画像を、縦方向に区切られており横方向に並ぶ複数の分割領域に分割し、前記複数の分割領域毎に、前記分割領域に含まれる各画素に対応付けられた視差のヒストグラムを生成し、前記ヒストグラムから頻度が閾値以上の視差を抽出し、抽出された前記閾値以上の視差のうち最も値の大きい視差である最大視差と、最も頻度の多い最大頻度視差とが隣接しているか否かを判定し、前記最大視差と前記最大頻度視差とが隣接している場合には前記最大頻度視差を注目視差とし、前記最大視差と前記最大頻度視差とが隣接していない場合には前記最大視差を注目視差とし、前記注目視差に１を加算した視差を加算視差とした場合、以下の（１）式に基づき、小数点以下桁数が１以上である採用視差を算出し、
【００１２】
【数２】
2020057258.tif 000004
前記採用視差を用いて、前記複数の分割領域毎に物体の位置を演算する。
【００１３】
これによれば、物体の位置の検出精度を向上させることができる。
【発明の効果】
【００１４】
本発明によれば、物体の位置の検出精度を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】物体検出装置が搭載されるフォークリフトの側面図。
【図２】フォークリフト、及び、物体検出装置の概略構成図。
【図３】フォークリフトが用いられる環境の一例を示す図。
【図４】物体検出処理を示すフローチャート。
【図５】視差画像を示す図。
【図６】路面の視差が除去された視差画像を示す図。
【図７】検出範囲と分割領域を示す図。
【図８】分割領域の１つから得られた視差のヒストグラムを示す図。
【図９】複数の物体が重なった状態でステレオカメラによる撮像が行われた場合の視差のヒストグラムを示す図。
【図１０】物体が重なっていない状態でステレオカメラによる撮像が行われた場合の視差のヒストグラムを示す図。
【図１１】物体検出処理によって得られた物体の位置をプロットした図。
【発明を実施するための形態】
【００１６】
以下、物体検出装置及び物体検出方法の一実施形態について説明する。
図１に示すように、フォークリフト１０は、車体１１と、車体１１に設けられた荷役装置１２と、を備える。なお、フォークリフト１０は、自動で走行動作及び荷役動作が行われるものであってもよいし、搭乗者による操作によって走行動作及び荷役動作が行われるものであってもよい。
【００１７】
図２に示すように、フォークリフト１０は、メインコントローラ２０と、走行用モータＭ１と、走行用モータＭ１を制御する走行制御装置２３と、車速センサ２４と、を備える。メインコントローラ２０は、走行動作及び荷役動作に関する制御を行う。メインコントローラ２０は、ＣＰＵ２１と、種々の制御を行うためのプログラムなどが記憶されたメモリ２２と、を備える。
【００１８】
メインコントローラ２０のＣＰＵ２１は、フォークリフト１０の車速が目標速度となるように走行制御装置２３に走行用モータＭ１の回転数の指令を与える。本実施形態の走行制御装置２３は、モータドライバである。本実施形態の車速センサ２４は、走行用モータＭ１の回転数を検出する回転数センサである。車速センサ２４は、走行用モータＭ１の回転数を走行制御装置２３に出力する。走行制御装置２３は、メインコントローラ２０からの指令に基づき、走行用モータＭ１の回転数が指令と一致するように走行用モータＭ１を制御する。
【００１９】
フォークリフト１０には、物体検出装置３０が搭載されている。物体検出装置３０は、ステレオカメラ３１と、ステレオカメラ３１によって撮像された画像の画像処理を行う画像処理部４１と、を備える。図１に示すように、ステレオカメラ３１は、例えば、車体１１の上部などフォークリフト１０の上方からフォークリフト１０の走行する路面を鳥瞰できるように配置されている。なお、車体１１とは、座席や走行に関する部材を備える基台や、座席の上部に設けられるヘッドガードを含む。本実施形態のステレオカメラ３１は、フォークリフト１０の後方を撮像する。従って、物体検出装置３０で検出される物体は、フォークリフト１０の後方の物体となる。
【００２０】
なお、フォークリフト１０の前方を撮像するステレオカメラを用いてフォークリフト１０の前方の物体を検出するようにしてもよい。また、フォークリフト１０の前方及び後方を撮像する個別のステレオカメラを用いてフォークリフト１０の前方及び後方の両側の物体を検出するようにしてもよい。即ち、ステレオカメラの配置を変更することで、任意の方向の物体を検出することが可能である。フォークリフト１０の前方を撮像するステレオカメラを設ける場合、例えば、車体１１の上部や荷役装置１２の上部などにステレオカメラは設けられる。
【００２１】
図２に示すように、ステレオカメラ３１は、２つのカメラ３２，３３を備える。カメラ３２，３３としては、例えば、ＣＣＤイメージセンサや、ＣＭＯＳイメージセンサが用いられる。各カメラ３２，３３は、互いの光軸が平行となるように配置されている。本実施形態において、２つのカメラ３２，３３は、水平方向に並んで配置されている。２つのカメラ３２，３３のうち、一方を第１カメラ３２、他方を第２カメラ３３とする。第１カメラ３２によって撮像された画像を第１画像、第２カメラ３３によって撮像された画像を第２画像とすると、第１画像と第２画像では同一の物体が横方向にずれて写ることになる。詳細にいえば、同一の物体を撮像した場合、第１画像に写る物体と、第２画像に写る物体では、横方向の画素［ｐｘ］にカメラ３２，３３間の距離に応じたずれが生じることになる。第１画像及び第２画像は、画素数が同じであり、例えば、６４０×４８０［ｐｘ］＝ＶＧＡの画像が用いられる。第１画像及び第２画像は、ＲＧＢ形式の画像である。
【００２２】
画像処理部４１は、ＣＰＵ４２と、ＲＡＭ及びＲＯＭ等からなる記憶部４３と、を備える。記憶部４３には、ステレオカメラ３１によって撮像された画像から物体を検出するための種々のプログラムが記憶されている。画像処理部４１は、各種処理のうち少なくとも一部の処理を実行する専用のハードウェア、例えば、特定用途向け集積回路：ＡＳＩＣを備えていてもよい。画像処理部４１は、コンピュータプログラムに従って動作する１つ以上のプロセッサ、ＡＳＩＣ等の１つ以上の専用のハードウェア回路、あるいは、それらの組み合わせを含む回路として構成し得る。プロセッサは、ＣＰＵ、並びに、ＲＡＭ及びＲＯＭ等のメモリを含む。メモリは、処理をＣＰＵに実行させるように構成されたプログラムコードまたは指令を格納している。メモリ、即ち、コンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆるものを含む。
【００２３】
以下、画像処理部４１により行われる物体検出処理について物体検出方法とともに説明する。物体検出処理は、フォークリフト１０が起動状態のときに行われる。起動状態とは、フォークリフト１０に走行動作及び荷役動作を行わせることが可能な状態である。以下の説明では、図３に示す環境をステレオカメラ３１によって撮像した場合の物体検出処理を一例として説明を行う。図３に示す環境では、フォークリフト１０の進行の妨げとなる障害物ＯＢ１，ＯＢ２，ＯＢ３が路面に配置されており、路面の側方には壁Ｗが存在している。画像処理部４１は、障害物ＯＢ１，ＯＢ２，ＯＢ３や壁Ｗなどの物体の位置を検出する。
【００２４】
図４及び図５に示すように、ステップＳ１において、画像処理部４１は、視差画像ｄｐを取得する。視差画像ｄｐは、画素に対して視差［ｐｘ］を対応付けた画像である。視差は、第１画像と、第２画像とを比較し、各画像に写る同一特徴点について第１画像と第２画像の画素数の差を算出することで得られる。なお、特徴点とは、物体のエッジなど、境目として認識可能な部分である。特徴点は、輝度情報などから検出することができる。
【００２５】
画像処理部４１は、ステレオカメラ３１によって撮像されている映像から同一フレームの第１画像及び第２画像を取得する。画像処理部４１は、各画像を一時的に格納するＲＡＭを用いて、ＲＧＢからＹＣｒＣｂへの変換を行う。なお、画像処理部４１は、歪み補正、エッジ強調処理などを行ってもよい。画像処理部４１は、第１画像の各画素と第２画像の各画素との類似度を比較して視差を算出するステレオ処理を行う。なお、ステレオ処理としては、画素毎に視差を算出する手法を用いてもよいし、各画像を複数の画素を含むブロックに分割してブロック毎の視差を算出するブロックマッチング法を用いてもよい。各画素の類似度の比較には、例えば、SAD：Sum of Absolute Difference、SSD：Sum of Squared Differenceなどが用いられる。画像処理部４１は、第１画像を基準画像、第２画像を比較画像として視差画像ｄｐを取得する。画像処理部４１は、第１画像の画素毎に、最も類似する第２画像の画素を抽出し、第１画像の画素と、当該画素に最も類似する画素の横方向の画素数の差を視差として算出する。これにより、基準画像である第１画像の各画素に視差が対応付けられた視差画像ｄｐを取得することができる。なお、視差画像ｄｐとは、必ずしも表示を要するものではなく、視差画像ｄｐにおける各画素に視差が対応付けられたデータのことを示す。本実施形態では、画像処理部４１が、視差画像取得部として機能しているといえる。
【００２６】
図５には、第１画像と第２画像から得られた視差画像ｄｐを示す。図５に示す視差画像ｄｐでは、視差の大小を濃淡で表現している。視差は、ステレオカメラ３１に近い位置ほど大きくなり、ステレオカメラ３１から離れるほど小さくなる。以下、視差画像ｄｐの横方向の座標をＸ座標とし、視差画像ｄｐの縦方向の座標をＹ座標とする。Ｘ座標は横方向の画素位置を示し、Ｙ座標は縦方向の画素位置を示す。例えば、視差画像ｄｐが６４０×４８０［ｐｘ］であれば、視差画像ｄｐの中心座標Ｏは、Ｘ座標３２０，Ｙ座標２４０と表すことができる。中心座標ＯのＸ座標は、フォークリフト１０の幅方向の中央に対応している。
【００２７】
図４及び図６に示すように、ステップＳ２において、画像処理部４１は、視差画像ｄｐから路面の視差を除去する。路面とは、フォークリフト１０が存在している面である。路面の視差は、以下の（２）式によって予め求められる。
【００２８】
【数３】
2020057258.tif 000005
Ｍ０（ｙ）は路面により生じる視差である。ｙは、視差画像ｄｐにおけるＹ座標である。Ｂは第１カメラ３２と第２カメラ３３との離間距離＝基線長であり、詳細にいえば、第１カメラ３２の光軸と第２カメラ３３の光軸との離間距離である。Ｈはステレオカメラ３１の設置高さであり、詳細にいえば、路面からステレオカメラ３１までの距離である。θは、ステレオカメラ３１の設置角度であり、ステレオカメラ３１の光軸が水平方向に延びている場合を０°とした場合の角度である。Ｆは焦点距離である。（２）式によって求められた路面の視差は、記憶部４３に記憶されている。
【００２９】
図６に示すように、画像処理部４１は、視差画像ｄｐから路面の視差を除去することで、路面の視差が除去された視差画像ｄｐを取得することができる。即ち、路面よりも高い位置に存在する物体により生じる視差を抽出した視差画像ｄｐを得ることができる。本実施形態では、画像処理部４１が路面視差除去部として機能している。
【００３０】
図４及び図７に示すように、ステップＳ３において、画像処理部４１は、視差画像ｄｐを複数の分割領域Ａ１に分割する。本実施形態では、視差画像ｄｐのうち物体の検出を行う検出範囲Ａが定められており、この検出範囲Ａの分割が行われる。検出範囲Ａは、横方向の画素数が視差画像ｄｐの横方向の画素数と同一であり、縦方向の画素数が視差画像ｄｐの縦方向の画素数よりも少ない範囲である。視差画像ｄｐには、検出範囲Ａ外の領域が含まれることになり、検出範囲Ａ外の領域については物体の検出が行われない。検出範囲Ａ外の領域は、ステレオカメラ３１から過剰に近い位置と、ステレオカメラ３１から過剰に離れた領域である。検出範囲Ａは、フォークリフト１０の進行に際して、物体の検出を行うべき範囲である。
【００３１】
分割領域Ａ１とは、視差画像ｄｐを縦方向に区切った領域である。各分割領域Ａ１は、複数の画素を含んだ領域であり、各画素に対応付けられた複数の視差を含んだ領域であるといえる。分割領域Ａ１同士は、横方向に隣り合っている。本実施形態では、画像処理部４１が分割部として機能している。
【００３２】
図４に示すように、ステップＳ４において、画像処理部４１は、複数の分割領域Ａ１のうち物体の位置の検出を行った分割領域Ａ１が最後の分割領域Ａ１か否かを判定する。画像処理部４１は、ステップＳ５以降の処理で、分割領域Ａ１毎に物体の位置の検出を行う。ステップＳ５以降の処理で物体の位置の検出を行った後にステップＳ４の処理を行い、ステップＳ４の判定結果が否定となると、画像処理部４１は物体の検出を終えていない分割領域Ａ１について、ステップＳ５以降の処理を行う。即ち、各分割領域Ａ１について、順次、物体の位置の検出が行われていくことになる。全ての分割領域Ａ１について、物体の位置の検出が行われるまで、ステップＳ４の判定結果は否定となる。ステップＳ４の判定結果が肯定の場合、画像処理部４１は、ステップＳ１の処理を行う。これにより、物体の検出は、所定のフレーム毎に繰り返し行われることになる。
【００３３】
ステップＳ５において、画像処理部４１は、分割領域Ａ１に含まれる画素に対応付けられた視差のヒストグラムを生成する。例えば、図８に示すように、分割領域Ａ１の１つについて視差のヒストグラムを生成すると、視差毎の頻度＝視差の出現頻度の分布を得ることができる。第１画像における分割領域Ａ１に対応する部分に物体が存在する場合、物体により視差が生じる。同一物体で生じる視差は、物体までの距離、物体の大きさ、物体の形状、視差の算出精度などに起因して若干のばらつきが生じるものの、略同一の値となる。従って、第１画像における分割領域Ａ１に対応する部分に物体が写っている場合、当該物体により生じる視差の頻度が多くなる。本実施形態では、画像処理部４１がヒストグラム生成部として機能している。
【００３４】
図４に示すように、ステップＳ６において、画像処理部４１は、ヒストグラムから頻度が閾値以上である視差を抽出する。図８に示す例では、視差６［ｐｘ］、視差７［ｐｘ］が閾値以上の視差となる。なお、閾値としては、視差により物体が存在していると判断できる値に設定される。物体が存在していない場合であってもステレオ処理の精度などにより視差が現れたり、僅かな大きさの物体により視差が現れる場合がある。このような場合、視差は存在するものの、フォークリフト１０の走行の妨げになる物体は存在しないとみなせるように閾値を設定している。本実施形態では、画像処理部４１が抽出部として機能している。
【００３５】
ステップＳ７において、画像処理部４１は、頻度が閾値以上の視差のうち値の最も大きい最大視差を抽出する。図８に示す例では、７［ｐｘ］が最大視差として抽出されることになる。
【００３６】
ステップＳ８において、画像処理部４１は、頻度が閾値以上の視差のうち頻度の最も多い最大頻度視差を抽出する。図８に示す例では、６［ｐｘ］が最大頻度視差として抽出される。
【００３７】
画像処理部４１は、ステップＳ９において、最大視差と最大頻度視差が隣接しているか否かの判定を行う。視差は整数として算出されるため、画像処理部４１は、最大視差から最大頻度視差を減算した値の絶対値が１の場合、最大視差と最大頻度視差は隣接していると判断することができる。本実施形態において、画像処理部４１が判定部として機能している。
【００３８】
前述したように、視差はステレオカメラ３１に近いほど大きくなるため、最大視差は分割領域Ａ１内の物体のうちステレオカメラ３１に最も近い物体によって生じた視差といえる。
【００３９】
図９に示すように、最大視差と最大頻度視差とが隣接していない場合、最大視差と最大頻度視差とは異なる物体により生じた視差であると判断できる。各カメラ３２，３３によって撮像された画像に、奥行き方向に重なる複数の物体が写っている場合、ステレオカメラ３１から各物体までの距離差に起因して、ヒストグラムには複数の極大値が生じ得る。ヒストグラムに複数の極大値が生じると、最大視差と最大頻度視差とが隣接しなくなる。
【００４０】
図１０に示すように、最大視差と最大頻度視差とが隣接している場合、最大視差と最大頻度視差とは同一の物体により生じた視差であるとみなすことができる。仮に、最大視差を生じさせた物体と、最大頻度視差を生じさせた物体とが異なっていた場合であっても、最大視差と最大頻度視差が隣接していれば、両物体は近接して配置されているといえる。従って、両物体を同一の物体とみなしたとしても実用上の支障は生じないと考えられる。
【００４１】
図４に示すように、ステップＳ９の判定結果が肯定の場合、画像処理部４１は、ステップＳ１０において、注目視差として最大頻度視差を設定する。注目視差とは、ステレオカメラ３１に最も近い物体により生じた視差のうちの代表的な視差である。ステップＳ９の判定結果が肯定の場合、最大視差と最大頻度視差とは、ステレオカメラ３１に最も近い物体により生じた視差と判断できる。このため、ステレオカメラ３１に最も近い物体により生じた視差のうち支配的である最大頻度視差を注目視差とする。
【００４２】
ステップＳ９の判定結果が否定の場合、画像処理部４１は、ステップＳ１１において、注目視差として最大視差を設定する。ステップＳ９の判定結果が否定の場合、分割領域Ａ１内には複数の物体により生じた視差が含まれていると判断できる。この場合、フォークリフト１０の進行の妨げになるのはステレオカメラ３１に最も近い物体である。このため、ステップＳ９の判定結果が否定の場合には、最大視差を注目視差とすることで、ステレオカメラ３１に最も近い物体の位置の検出を行う。本実施形態において、画像処理部４１は、注目視差設定部として機能している。
【００４３】
ステップＳ１２において、画像処理部４１は、注目視差＋１の視差である加算視差の頻度を抽出する。図８の例では、加算視差は、７［ｐｘ］となる。
ステップＳ１３において、画像処理部４１は、以下の（１）式から採用視差［ｐｘ］を算出する。なお、採用視差とは、物体の位置の演算に用いられる視差である。採用視差の小数点以下桁数は１以上である。なお、本実施形態では、採用視差の小数点以下桁数を１としている。
【００４４】
【数４】
2020057258.tif 000006
図８に示す例では、注目視差＝６［ｐｘ］、加算視差＝７［ｐｘ］、注目視差の頻度＝１００、加算視差の頻度＝８０である。算出される採用視差は、６．４４４≒６．４となる。本実施形態において、画像処理部４１は、採用視差算出部として機能している。
【００４５】
ステップＳ１４において、画像処理部４１は、採用視差を用いて、ステレオカメラ３１から物体までの距離、即ち、物体の位置を演算する。なお、採用視差は、ステレオカメラ３１に最も近い物体により生じた視差を用いて求められたものであり、採用視差を用いて演算される物体の位置とは、各分割領域Ａ１内の物体のうちステレオカメラ３１に最も近い物体とステレオカメラ３１との相対位置となる。採用視差を用いて演算される物体の位置は、各分割領域Ａ１を１つの画素とみなした場合に、当該画素に写る物体の位置ともいえる。画像処理部４１は、以下の（３）式から、水平方向のうち光軸の延びる方向に対する物体の位置Ｙｗを演算する。本実施形態では、水平方向のうち光軸の延びる方向はフォークリフト１０の後方向となる。
【００４６】
【数５】
2020057258.tif 000007
焦点距離は、ステレオカメラ３１の固有の値であり、記憶部４３に記憶されている。なお、位置Ｙｗは、視差画像ｄｐ中のＹ座標を実空間上の座標＝ワールド座標に変換した値ともいえる。
【００４７】
画像処理部４１は、以下の（４）式から水平方向のうち光軸に直交する方向に対する物体の位置Ｘｗを演算する。本実施形態では、水平方向のうち光軸に直交する方向はフォークリフト１０の左右方向となる。なお、左右とは、ステレオカメラ３１が向いている方向を前とした場合の左右である。
【００４８】
【数６】
2020057258.tif 000008
ｕは視差画像ｄｐ中における分割領域Ａ１のＸ座標＝横方向の画素位置である。ｕ０は視差画像ｄｐにおける中心座標ＯのＸ座標である。なお、位置Ｘｗは、視差画像ｄｐ中のＸ座標を実空間上の座標＝ワールド座標に変換した値ともいえる。分割領域Ａ１には、複数の横方向の画素が含まれているため、ｕの取り得る範囲は、分割領域Ａ１の横方向の画素数と同一となる。ｕは分割領域Ａ１に含まれるＸ座標から任意の値とすることができるが、ｕを１つのみとした場合、フォークリフト１０の左右方向に対する物体の位置がｕの値によって変化する。詳細にいえば、分割領域Ａ１は、横方向の画素を複数含んでいるため、分割領域Ａ１に含まれる物体は、最大で横方向の画素数に対応する幅を実空間上で占有する。しかしながら、ｕを１つのみとした場合、分割領域Ａ１のＸ座標のうち１点のみしか位置の演算が行われず、分割領域Ａ１の全てのＸ座標について位置の演算を行う場合に比べて、実空間上で物体が占有する幅を認識しにくい。これは、ステレオカメラ３１から離れるほど、即ち、採用視差が小さくなるほど顕著となる。
【００４９】
本実施形態では、ｕを複数とし、複数点について物体の位置の演算を行う。詳細にいえば、図８に示すように、分割領域Ａ１に含まれるＸ座標のうち中心のＸ座標をｕｍ、分割領域Ａ１の両端のＸ座標のうち右端のＸ座標をｕｒ、左端のＸ座標をｕｌとする。そして、（４）式のｕ＝ｕｍ、ｕｒ、ｕｌとした以下の（５）式、（６）式及び（７）式から物体の位置を演算する。
【００５０】
【数７】
2020057258.tif 000009
【００５１】
【数８】
2020057258.tif 000010
【００５２】
【数９】
2020057258.tif 000011
位置Ｘｗｍは、分割領域Ａ１内の物体の左右方向での中心部分の実空間上の位置Ｘｗである。位置Ｘｗｒは、分割領域Ａ１内の物体の右端部分の実空間上の位置Ｘｗである。位置Ｘｗｌは、分割領域Ａ１内の物体の左端部分の実空間上の位置Ｘｗである。位置Ｘｗｒは分割領域Ａ１の右端、位置Ｘｗｌは分割領域Ａ１の左端であるため、位置Ｘｗｍと位置Ｘｗｌは、物体が実空間上で占有する最大の幅を再現していると捉えることができる。位置Ｘｗｍ，Ｘｗｒ，Ｘｗｌが負の値の場合、位置Ｘｗはフォークリフト１０の幅方向の中心よりも左側に位置しているといえる。位置Ｘｗｍ，Ｘｗｒ，Ｘｗｌが正の値の場合、物体の位置はフォークリフト１０の幅方向の中心よりも右側に位置しているといえる。本実施形態において、画像処理部４１は、演算部として機能している。上記したように、画像処理部４１で実現される視差画像取得部、路面視差除去部、分割部、ヒストグラム生成部、抽出部、判定部、注目視差設定部、採用視差算出部及び演算部は、画像処理部４１のＣＰＵ４２が所定のプログラムを実行することで実現されているといえる。
【００５３】
図１１に示すように、視差画像ｄｐの各分割領域Ａ１について、位置Ｙｗと位置Ｘｗを求めた結果をプロットすると、鳥瞰プロットが得られる。図１１は、原点をフォークリフト１０の現在位置、縦軸をフォークリフト１０の後方向に対する距離［ｍ］、横軸をフォークリフト１０の左右方向に対する距離［ｍ］とする座標系である。図中の丸はＸｗｌ、四角はＸｗｍ、菱形はＸｗｒを示す。分割領域Ａ１毎に３つの点がプロットされるため、プロットされる点の数は、分割領域Ａ１の数×３である。なお、説明の便宜上、図７では分割領域Ａ１の数を過少に表現したが、図１１は、分割領域Ａ１の数を図７に示す分割領域Ａ１よりも多くした場合に得られる鳥瞰プロットを示している。
【００５４】
図１１から把握できるように、フォークリフト１０の３［ｍ］後方付近には障害物ＯＢ１、フォークリフト１０の５［ｍ］後方であり３［ｍ］左方付近には障害物ＯＢ２、フォークリフトの１１［ｍ］後方であり３［ｍ］左方付近には障害物ＯＢ３が存在することを検出できる。また、フォークリフト１０の右方には、後方に向けて延びる壁Ｗが存在していることを検出できる。
【００５５】
物体検出処理により物体の位置が検出されると、画像処理部４１は、物体の位置の検出結果、即ち、物体の座標をメインコントローラ２０に送信する。メインコントローラ２０は、物体の座標を把握しながら、フォークリフト１０と物体との距離に応じて、フォークリフト１０の減速処理を行う。減速処理としては、フォークリフト１０を停止させる処理、フォークリフト１０の速度を現在速度から段階的に低下させる処理、フォークリフト１０の速度に制限を課し、制限速度を上回る速度での走行を規制する処理など、様々な処理が挙げられる。
【００５６】
本実施形態の作用について説明する。
物体検出装置３０は、各分割領域Ａ１に含まれる物体のうちフォークリフト１０に最も近い物体の位置を検出する。視差は、フォークリフト１０に近いほど大きくなるため、頻度が閾値以上の視差のうち最大視差を利用することで、フォークリフト１０に最も近い物体の位置を検出できる。
【００５７】
ここで、フォークリフト１０に最も近い物体の位置を検出するために、最大視差のみを用いて物体の位置を演算する場合、（３）式及び（４）式の分母である採用視差を最大視差に置き換えた式で物体の位置が演算される。視差は、整数として算出されるため、整数である最大視差を用いて物体の位置が演算されることになる。仮に、実空間上で物体が視差６．５相当の位置に存在しているとすると、最大視差は６［ｐｘ］あるいは７［ｐｘ］となり、この最大視差を用いて物体の位置が演算されることになる。（３）式及び（４）式から把握できるように、視差が物体の位置の検出精度に与える影響は大きく、整数である視差を用いる場合には、物体の位置＝物体までの距離の分解能が大きく、物体の位置の検出精度が低い。
【００５８】
仮に、視差を小数点以下桁数が１以上である値で表現できたとすると、分割領域Ａ１内の物体のうちステレオカメラ３１に最も近い物体の視差は、注目視差と加算視差との間の値となる。そして、注目視差の頻度と加算視差の頻度の比率は、視差の小数点以下の値に応じたものとなる。例えば、視差の小数点以下の値が注目視差寄りであれば注目視差の頻度のほうが加算視差の頻度よりも多くなり、視差の小数点以下の値が加算視差寄りであれば加算視差の頻度のほうが注目視差の頻度よりも多くなる。実空間上での物体の位置が視差６．５相当であれば、視差６［ｐｘ］の頻度と、視差７［ｐｘ］の頻度とは５：５に近似すると考えられる。同様に、物体の位置が視差６．３相当であれば、視差６［ｐｘ］の頻度と、視差７［ｐｘ］の頻度とは７：３に近似すると考えられる。即ち、視差の小数点以下の値が、隣接する視差の頻度の比率となって現れると考えられる。
【００５９】
従って、注目視差の頻度と加算視差の頻度との比率から演算された採用視差は、分割領域Ａ１内の物体のうち最もステレオカメラ３１に近い物体により生じた視差を小数点以下桁数１以上で表現したものと捉えることができる。
【００６０】
本実施形態の効果について説明する。
（１）採用視差は、小数点以下桁数が１以上であるため、整数である視差を用いて物体の位置を演算する場合に比べて、物体の位置の分解能を小さくすることができる。従って、物体の位置の検出精度を向上させることができる。
【００６１】
なお、視差画像ｄｐの各画素を細分化するサブピクセル化処理を行うことで、物体の位置を検出することも考えられる。しかしながら、サブピクセル化処理は、物体検出装置３０にかかる負荷が大きくなる。本実施形態のように、視差のヒストグラムから演算された採用視差を用いることで、物体検出装置３０の負荷が増大することを抑制しつつ、物体の位置の検出精度を向上させることができる。
【００６２】
（２）視差画像ｄｐから路面の視差を除去して、路面の視差を除去した後の視差画像ｄｐを用いて視差のヒストグラムを生成している。路面の視差を含んだ視差画像ｄｐからヒストグラムを生成した場合、路面の視差の頻度が支配的となるおそれがあり、物体により生じる視差が注目視差とならないおそれがある。これに対して、路面の視差を除去した後の視差画像ｄｐを用いることで、適切に注目視差を設定することができる。
【００６３】
（３）分割領域Ａ１のうちＸ座標が異なる３点を用いて物体の位置を演算している。仮に、分割領域Ａ１のうち１点についてのみ物体の位置を演算すると、実空間上で物体が占有する幅を認識しにくくなる。分割領域Ａ１毎に３点について物体の位置を演算することで、実空間上で物体が占有する幅を認識しやすい。
【００６４】
実施形態は、以下のように変更して実施することができる。実施形態及び以下の変形例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
○分割領域Ａ１の１つのＸ座標のみについて物体の位置を演算してもよい。この場合、分割領域Ａ１内の物体の位置が１点のみ演算されるため、物体の左右位置はＸ座標に依存することになり、実空間上で物体が占有する幅を認識しにくくなるおそれがある。このため、演算された物体の位置から所定範囲については物体が存在すると判断するなど、物体の幅を考慮することが好ましい。例えば、Ｘ座標としてｕｍを用いて分割領域Ａ１の物体の位置を演算した場合、演算された物体の座標の左右両側の所定範囲に亘って物体が存在していると判断することが好ましい。
【００６５】
○画像処理部４１は、路面の視差が除去されていない視差画像ｄｐからヒストグラムを生成してもよい。路面は、平坦であるため、路面の視差はステレオカメラ３１から離れるにつれて徐々に小さくなっていく。従って、路面の視差の頻度は予め予測することができる。これを考慮して、視差の頻度の閾値を設定することで、路面の視差が除去されていない視差画像ｄｐから物体の位置を演算することができる。
【００６６】
○画像処理部４１は、検出範囲Ａを定めず、視差画像ｄｐの全体を複数の分割領域Ａ１に分割してもよい。即ち、画像処理部４１は、視差画像ｄｐの全体に亘って物体の位置の検出を行ってもよい。
【００６７】
○視差画像取得部、路面視差除去部、分割部、ヒストグラム生成部、抽出部、判定部、注目視差設定部、採用視差算出部及び演算部は、それぞれ、個別の制御装置によって構成されていてもよい。
【００６８】
○第１カメラ３２と第２カメラ３３は、鉛直方向に並んで配置されていてもよい。
○第１画像の画素数と第２画像の画素数とは異なっていてもよい。例えば、比較画像である第２画像の画素数を視差画像の画素数と同一とし、基準画像である第１画像の画素数を第２画像の画素数よりも多くしてもよい。
【００６９】
○ステレオカメラ３１は、３つ以上のカメラを備えていてもよい。
○フォークリフト１０は、エンジンの駆動によって走行するものでもよい。この場合、走行制御装置は、エンジンへの燃料噴射量などを制御する装置となる。
【００７０】
○物体検出装置３０は、建設機械、自動搬送車、トラックなどフォークリフト１０以外の産業車両や乗用車などの移動体に搭載されていてもよい。物体検出装置３０が乗用車に搭載される場合、物体検出装置３０は、検出された物体の位置を、例えば、アクティブ・サスペンションシステム、自動ブレーキシステムなどを制御する制御装置に送信するようにしてもよい。物体検出装置３０が自動搬送車に搭載される場合、物体検出装置３０は、検出された物体の位置を、例えば、マッピングを行う制御装置や、走行経路を生成する制御装置に送信してもよい。このように、物体検出装置３０によって検出された物体の位置は、様々な処理に用いることができる。
【符号の説明】
【００７１】
３０…物体検出装置、３１…ステレオカメラ、４１…画像処理部（視差画像取得部、路面視差除去部、分割部、ヒストグラム生成部、抽出部、判定部、注目視差設定部、採用視差算出部及び演算部）。
【図１】
2020057258.tif 000014
【図２】
2020057258.tif 000015
【図３】
2020057258.tif 000016
【図４】
2020057258.tif 000017
【図５】
2020057258.tif 000018
【図６】
2020057258.tif 000019
【図７】
2020057258.tif 000020
【図８】
2020057258.tif 000021
【図９】
2020057258.tif 000022
【図１０】
2020057258.tif 000023
【図１１】
2020057258.tif 000024