(57)【要約】【課題】人の検出に要する時間を短縮すること。【解決手段】フォークリフトには、物体検出装置が搭載されている。物体検出装置は、ステレオカメラと、画像処理部と、を備える。画像処理部は、ステレオカメラによって撮像された画像を俯瞰したプロットエリアから物体を検出する。画像処理部は、プロットエリアにおける物体の座標を算出する。画像処理部は、プロットエリアにおける物体の座標から第１画像において物体が存在する領域を抽出する。画像処理部は、抽出された領域に対して人検出処理を行う。【選択図】図４
2020135616.tif 000002
【特許請求の範囲】
【請求項１】
ステレオカメラと、
前記ステレオカメラによる撮像が行われた画像から各画素に視差が対応付けられた視差画像を取得する視差画像取得部と、
前記視差が取得された特徴点について、実空間上での位置を表す三次元座標系での座標を算出する座標算出部と、
前記三次元座標系の水平面を俯瞰した俯瞰図を得る俯瞰図取得部と、
前記俯瞰図において物体が存在する座標を算出する物体座標算出部と、
前記俯瞰図における前記物体の座標から、前記画像において前記物体が存在する領域を抽出する領域抽出部と、
前記領域に対して人検出処理を行うことで、前記物体が人か否かを判定する人判定部と、を備える物体検出装置。
【請求項２】
前記画像における前記領域の大きさから、前記領域の物体が人候補か否かを判定する人候補判定部を備え、
前記人判定部は、前記人候補判定部によって人候補が存在すると判定された前記領域に対して前記人検出処理を行う請求項１に記載の物体検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体検出装置に関する。
【背景技術】
【０００２】
車両などの移動体には人や、障害物などの物体を検出するための物体検出装置が搭載されている。特許文献１に記載の物体検出装置は、ステレオカメラによって撮像された画像から得られた視差画像に基づきステレオカメラによって撮像された物体の位置を検出している。物体検出装置は、視差画像を左右方向に分割して得られる各領域について視差の頻度分布を算出する。物体検出装置は、視差画像のＸ軸方向の位置と、間引き視差との関係から画像に写る環境を俯瞰したマップを得ることができる。間引き視差とは、視差を距離に応じた間引き率で変換したものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２０６８０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、物体検出装置では、画像から人を検出する人検出処理が行われる場合がある。人検出処理は、例えば、HOG：Histograms of Oriented Gradients等の特徴量抽出法により行われる。人の検出を行う際に、画像の全体に亘って人検出処理を行うと、人を検出するのに要する時間が長くなる。
【０００５】
本発明の目的は、人の検出に要する時間を短縮できる物体検出装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決する物体検出装置は、ステレオカメラと、前記ステレオカメラによる撮像が行われた画像から各画素に視差が対応付けられた視差画像を取得する視差画像取得部と、前記視差が取得された特徴点について、実空間上での位置を表す三次元座標系での座標を算出する座標算出部と、前記三次元座標系の水平面を俯瞰した俯瞰図を得る俯瞰図取得部と、前記俯瞰図において物体が存在する座標を算出する物体座標算出部と、前記俯瞰図における前記物体の座標から、前記画像において前記物体が存在する領域を抽出する領域抽出部と、前記領域に対して人検出処理を行うことで、前記物体が人か否かを判定する人判定部と、を備える。
【０００７】
俯瞰図は、三次元座標系の水平面を俯瞰したものであるため、俯瞰図における物体の座標は、実空間上の座標といえる。従って、俯瞰図における物体の座標から、画像において物体が存在する領域を抽出することができる。人判定部は、物体が存在している領域に対して人検出処理を行えばよいため、画像の全体に対して人検出処理を行う場合に比べて、人の検出に要する時間を短縮できる。
【０００８】
上記物体検出装置について、前記画像における前記領域の大きさから、前記領域の物体が人候補か否かを判定する人候補判定部を備え、前記人判定部は、前記人候補判定部によって人候補が存在すると判定された前記領域に対して前記人検出処理を行ってもよい。
【０００９】
人判定部は、人候補と判定された物体に対して人検出処理を行えばよいため、人の検出に要する時間を更に短縮できる。
【発明の効果】
【００１０】
本発明によれば、人の検出に要する時間を短縮できる。
【図面の簡単な説明】
【００１１】
【図１】物体検出装置が搭載されるフォークリフトの側面図。
【図２】フォークリフト及び物体検出装置の概略構成図。
【図３】第１画像を示す図。
【図４】物体検出装置が行う処理を示すフローチャート。
【図５】視差画像を示す図。
【図６】特徴点がプロットされたプロットエリアを示す図。
【図７】プロットエリアのうち物体が存在するエリアを示す図。
【図８】物体が存在する領域を抽出した第１画像を示す図。
【図９】第１画像において人候補が存在する領域を示す図。
【図１０】第１画像において人が存在する領域を示す図。
【発明を実施するための形態】
【００１２】
以下、物体検出装置の一実施形態について説明する。
図１に示すように、フォークリフト１０は、車体１１と、車体１１に設けられた荷役装置１２と、を備える。なお、フォークリフト１０は、自動で走行動作及び荷役動作が行われるものであってもよいし、搭乗者による操作によって走行動作及び荷役動作が行われるものであってもよい。
【００１３】
図２に示すように、フォークリフト１０は、メインコントローラ２０と、走行用モータＭ１と、走行用モータＭ１を制御する走行制御装置２３と、車速センサ２４と、を備える。メインコントローラ２０は、走行動作及び荷役動作に関する制御を行う。メインコントローラ２０は、ＣＰＵ２１と、種々の制御を行うためのプログラムなどが記憶されたメモリ２２と、を備える。
【００１４】
メインコントローラ２０のＣＰＵ２１は、フォークリフト１０の車速が目標速度となるように走行制御装置２３に走行用モータＭ１の回転数の指令を与える。本実施形態の走行制御装置２３は、モータドライバである。本実施形態の車速センサ２４は、走行用モータＭ１の回転数を検出する回転数センサである。車速センサ２４は、走行用モータＭ１の回転数を走行制御装置２３に出力する。走行制御装置２３は、メインコントローラ２０からの指令に基づき、走行用モータＭ１の回転数が指令と一致するように走行用モータＭ１を制御する。
【００１５】
フォークリフト１０には、物体検出装置３０が搭載されている。物体検出装置３０は、ステレオカメラ３１と、ステレオカメラ３１によって撮像された画像の画像処理を行う画像処理部４１と、を備える。図１に示すように、ステレオカメラ３１は、例えば、車体１１の上部などフォークリフト１０の上方からフォークリフト１０の走行する路面を鳥瞰できるように配置されている。なお、車体１１とは、座席や走行に関する部材を備える基台や、座席の上部に設けられるヘッドガードを含む。本実施形態のステレオカメラ３１は、フォークリフト１０の後方を撮像する。従って、物体検出装置３０で検出される物体は、フォークリフト１０の後方の物体となる。
【００１６】
なお、フォークリフト１０の前方を撮像するステレオカメラを用いてフォークリフト１０の前方の物体を検出するようにしてもよい。また、フォークリフト１０の前方及び後方を撮像する個別のステレオカメラを用いてフォークリフト１０の前方及び後方の両側の物体を検出するようにしてもよい。即ち、ステレオカメラの配置を変更することで、任意の方向の物体を検出することが可能である。フォークリフト１０の前方を撮像するステレオカメラを設ける場合、例えば、車体１１の上部や荷役装置１２の上部などにステレオカメラは設けられる。
【００１７】
図２に示すように、ステレオカメラ３１は、２つのカメラ３２，３３を備える。カメラ３２，３３としては、例えば、ＣＣＤイメージセンサや、ＣＭＯＳイメージセンサが用いられる。各カメラ３２，３３は、互いの光軸が平行となるように配置されている。本実施形態において、２つのカメラ３２，３３は、水平方向に並んで配置されている。２つのカメラ３２，３３のうち、一方を第１カメラ３２、他方を第２カメラ３３とする。第１カメラ３２によって撮像された画像を第１画像、第２カメラ３３によって撮像された画像を第２画像とすると、第１画像と第２画像では同一物体が横方向にずれて写ることになる。詳細にいえば、同一物体を撮像した場合、第１画像に写る物体と、第２画像に写る物体では、横方向の画素［ｐｘ］にカメラ３２，３３間の距離に応じたずれが生じることになる。第１画像及び第２画像は、画素数が同じであり、例えば、６４０×４８０［ｐｘ］＝ＶＧＡの画像が用いられる。第１画像及び第２画像は、ＲＧＢ形式の画像である。
【００１８】
画像処理部４１は、ＣＰＵ４２と、ＲＡＭ及びＲＯＭ等からなる記憶部４３と、を備える。記憶部４３には、ステレオカメラ３１によって撮像された画像から物体を検出するための種々のプログラムが記憶されている。画像処理部４１は、各種処理のうち少なくとも一部の処理を実行する専用のハードウェア、例えば、特定用途向け集積回路：ＡＳＩＣを備えていてもよい。画像処理部４１は、コンピュータプログラムに従って動作する１つ以上のプロセッサ、ＡＳＩＣ等の１つ以上の専用のハードウェア回路、あるいは、それらの組み合わせを含む回路として構成し得る。プロセッサは、ＣＰＵ、並びに、ＲＡＭ及びＲＯＭ等のメモリを含む。メモリは、処理をＣＰＵに実行させるように構成されたプログラムコードまたは指令を格納している。メモリ、即ち、コンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆるものを含む。
【００１９】
以下、画像処理部４１により行われる物体検出処理について説明する。物体検出処理は、フォークリフト１０が起動状態のときに繰り返し行われる。起動状態とは、フォークリフト１０に走行動作及び荷役動作を行わせることが可能な状態である。以下の説明では、一例として、図３に示す環境をステレオカメラ３１によって撮像した場合の物体検出処理について説明する。図３は、フォークリフト１０の周辺を撮像することで得られた第１画像Ｉ１である。第１画像Ｉ１から把握できるように、フォークリフト１０の周辺には、人や、人以外の物体が存在している。人以外の物体とは、フォークリフト１０の進行の妨げとなる障害物である。
【００２０】
図４及び図５に示すように、ステップＳ１において、画像処理部４１は、視差画像ｄｐを取得する。視差画像ｄｐは、画素に対して視差［ｐｘ］を対応付けた画像である。視差は、第１画像Ｉ１と、第２画像とを比較し、各画像に写る同一特徴点について第１画像Ｉ１と第２画像の画素数の差を算出することで得られる。なお、特徴点とは、物体のエッジなど、境目として認識可能な部分である。特徴点は、輝度情報などから検出することができる。
【００２１】
画像処理部４１は、ステレオカメラ３１によって撮像されている映像から同一フレームの第１画像Ｉ１及び第２画像を取得する。画像処理部４１は、各画像を一時的に格納するＲＡＭを用いて、ＲＧＢからＹＣｒＣｂへの変換を行う。なお、画像処理部４１は、歪み補正、エッジ強調処理などを行ってもよい。画像処理部４１は、第１画像Ｉ１の各画素と第２画像の各画素との類似度を比較して視差を算出するステレオ処理を行う。なお、ステレオ処理としては、画素毎に視差を算出する手法を用いてもよいし、各画像を複数の画素を含むブロックに分割してブロック毎の視差を算出するブロックマッチング法を用いてもよい。各画素の類似度の比較には、例えば、SAD：Sum of Absolute Difference、SSD：Sum of Squared Differenceなどが用いられる。画像処理部４１は、第１画像Ｉ１を基準画像、第２画像を比較画像として視差画像ｄｐを取得する。画像処理部４１は、第１画像Ｉ１の画素毎に、最も類似する第２画像の画素を抽出し、第１画像Ｉ１の画素と、当該画素に最も類似する画素の横方向の画素数の差を視差として算出する。これにより、基準画像である第１画像Ｉ１の各画素に視差が対応付けられた視差画像ｄｐを取得することができる。なお、視差画像ｄｐとは、必ずしも表示を要するものではなく、視差画像ｄｐにおける各画素に視差が対応付けられたデータのことを示す。ステップＳ１の処理を行うことで、画像処理部４１は、視差画像取得部として機能する。
【００２２】
図５には、第１画像Ｉ１と第２画像から得られた視差画像ｄｐを示す。図５に示す視差画像ｄｐでは、視差の大小を濃淡で表現している。視差は、ステレオカメラ３１に近い位置ほど大きくなり、ステレオカメラ３１から離れるほど小さくなる。以下、視差画像ｄｐの横方向＝Ｘ軸方向の座標をＸ座標Ｘｉとし、視差画像ｄｐの縦方向＝Ｙ軸方向の座標をＹ座標Ｙｉとする。なお、視差画像ｄｐは第１画像Ｉ１を基準画像として取得された画像であるため、Ｘ座標Ｘｉ及びＹ座標Ｙｉは第１画像Ｉ１の座標ともいえる。Ｘ座標Ｘｉは横方向の画素位置を示し、Ｙ座標Ｙｉは縦方向の画素位置を示す。例えば、視差画像ｄｐが６４０×４８０［ｐｘ］であれば、視差画像ｄｐの中心座標は、（Ｘｉ：３２０，Ｙｉ：２４０）と表すことができる。
【００２３】
図４に示すように、ステップＳ２において、画像処理部４１は、視差画像ｄｐから路面の視差を除去する。路面とは、フォークリフト１０が存在している面である。路面の視差は、以下の（１）式によって予め求められる。
【００２４】
【数１】
2020135616.tif 000003
（１）式におけるＭ０（ｙ）は路面により生じる視差である。ｙは、視差画像ｄｐにおけるＹ座標Ｙｉである。Ｂは第１カメラ３２と第２カメラ３３との離間距離＝基線長［ｍｍ］であり、詳細にいえば、第１カメラ３２の光軸と第２カメラ３３の光軸との離間距離である。Ｈはステレオカメラ３１の設置高さ［ｍｍ］であり、詳細にいえば、路面からステレオカメラ３１までの距離である。θは、ステレオカメラ３１の設置角度であり、ステレオカメラ３１の光軸が水平方向に延びている場合を０°とした場合の角度である。Ｆは焦点距離［ｍｍ］である。（１）式によって求められた路面の視差は、記憶部４３に記憶されている。画像処理部４１は、視差画像ｄｐから路面の視差を除去することで、路面の視差が除去された視差画像ｄｐを取得することができる。即ち、路面よりも高い位置に存在する物体により生じる視差を抽出した視差画像ｄｐを得ることができる。
【００２５】
ステップＳ３において、画像処理部４１は、ワールド座標系における特徴点の座標を算出する。まず、画像処理部４１は、カメラ座標系における特徴点の座標を算出する。カメラ座標系は、光軸をＺ軸とし、光軸に直交する２つの軸のそれぞれをＸ軸、Ｙ軸とする３軸直交座標系である。カメラ座標系における特徴点の座標は、カメラ座標系におけるＺ座標Ｚｃ、Ｘ座標Ｘｃ及びＹ座標Ｙｃで表わすことができる。Ｚ座標Ｚｃ、Ｘ座標Ｘｃ及びＹ座標Ｙｃは、それぞれ、以下の（２）式〜（４）式を用いて算出することができる。
【００２６】
【数２】
2020135616.tif 000004
【００２７】
【数３】
2020135616.tif 000005
【００２８】
【数４】
2020135616.tif 000006
（２）式〜（４）式におけるＢは基線長［ｍｍ］、ｆは焦点距離［ｍｍ］、ｄは視差［ｐｘ］である。ｘｐは視差画像ｄｐ中の任意のＸ座標Ｘｉであり、ｘ’は視差画像ｄｐの中心座標のＸ座標Ｘｉである。ｙｐは視差画像ｄｐ中の任意のＹ座標Ｙｉであり、ｙ’は視差画像ｄｐの中心座標のＹ座標Ｙｉである。
【００２９】
ｘｐを視差画像ｄｐ中の特徴点のＸ座標Ｘｉとし、ｙｐを視差画像ｄｐ中の特徴点のＹ座標Ｙｉとし、ｄを特徴点の座標に対応付けられた視差とすることで、カメラ座標系における特徴点の座標が算出される。
【００３０】
ここで、フォークリフト１０の進行方向に延びる軸をＹ軸、鉛直方向に延びる軸をＺ軸、Ｙ軸及びＺ軸に直交する軸をＸ軸とする３軸直交座標系での座標を実空間上での三次元座標系であるワールド座標系とする。ワールド座標系での特徴点の座標は、ワールド座標系におけるＸ座標Ｘｗ、Ｙ座標Ｙｗ、Ｚ座標Ｚｗで表わすことができる。
【００３１】
画像処理部４１は、以下の（５）式を用いてカメラ座標系をワールド座標系に変換するワールド座標変換を行う。
【００３２】
【数５】
2020135616.tif 000007
ここで、（５）式におけるＨはワールド座標系におけるステレオカメラ３１の設置高さ［ｍｍ］であり、θはカメラ３２，３３の光軸と、水平面とがなす角＋９０°の角度である。
【００３３】
ワールド座標変換で得られたワールド座標のうちＸ座標Ｘｗは、フォークリフト１０の左右方向に対するフォークリフト１０から特徴点までの距離を示す。なお、左右とは、ステレオカメラ３１が向いている方向を前とした場合の左右である。Ｙ座標Ｙｗは、フォークリフト１０の進行方向に対するフォークリフト１０から特徴点までの距離を示す。Ｚ座標Ｚｗは、路面から特徴点までの高さを示す。ステップＳ３の処理を行うことで、画像処理部４１は、座標算出部として機能する。
【００３４】
次に、図４及び図６に示すように、ステップＳ４において、画像処理部４１は、ワールド座標系における水平面を表す座表面であるＸＹ平面を複数のエリアＡ１に分割して、プロットエリアＡ２とする。プロットエリアＡ２は、横方向をＸ軸方向、縦方向をＹ軸方向とし、１つのエリアＡ１を１つの画素とみなした画像と捉えることができる。プロットエリアＡ２のうちＹ座標Ｙｗが最小であり、Ｘ座標ＸｗがプロットエリアＡ２の中心である座標をプロットエリアＡ２の原点Ｏとする。原点Ｏは、フォークリフト１０の位置、詳細にいえば、ステレオカメラ３１の位置といえる。原点ＯからＸ軸方向に離れるほど、左右方向に対してフォークリフト１０から離れており、原点ＯからＹ軸方向に離れるほど、前後方向に対してフォークリフト１０から離れている。原点Ｏを（Ｘｗ：０，Ｙｗ：０）とし、原点Ｏより左側のＸ座標Ｘｗは−の値とし、原点Ｏより右側のＸ座標Ｘｗは＋の値とする。即ち、Ｘ座標Ｘｗの−と＋は、フォークリフト１０に対して左右いずれの方向かを示すものである。プロットエリアＡ２は、特徴点をプロットしたワールド座標系を俯瞰した俯瞰図である。言い換えれば、プロットエリアＡ２は、ステレオカメラ３１によって撮像された環境を俯瞰した俯瞰図といえる。
【００３５】
各エリアＡ１は、同一の大きさであり、例えば、一辺を５００［ｍｍ］とする正方形である。本実施形態では、直立した人を俯瞰した場合に、人の水平方向への寸法の取り得る最大値を考慮してエリアＡ１の大きさは設定される。直立した人の水平方向への寸法の取り得る最大値とは、例えば、人の肩幅である。人の肩幅としては、例えば、成人の平均値を採用することができる。
【００３６】
次に、ステップＳ５において、画像処理部４１は、エリアＡ１毎に含まれる特徴点を計数する。画像処理部４１は、各特徴点のＸ座標Ｘｗ及びＹ座標Ｙｗから各特徴点がいずれのエリアＡ１に位置しているかを判定し、エリアＡ１毎に特徴点を計数する。プロットエリアＡ２はＸＹ平面であるため、特徴点の座標からは特徴点の高さ情報であるＺ座標Ｚｗが失われる。画像処理部４１は、特徴点の計数を行う際に、特徴点の高さの範囲で分けた区分毎に特徴点を計数する。なお、Ｘ座標Ｘｗ及びＹ座標Ｙｗが同一であり、Ｚ座標Ｚｗのみが異なる複数の特徴点が存在する場合、プロットエリアＡ２では、同一座標に複数の特徴点が存在することになる。この場合、同一座標に存在する複数の特徴点毎に個別に計数を行う。
【００３７】
特徴点の高さの範囲で分けた区分とは、隣接した物体同士を区別できるように設定されている。好ましくは、ステレオカメラ３１の撮像範囲に人と、当該人に隣り合う物体とが存在する場合、人と物体とを別々の物体と区別できるように区分が設定される。本実施形態では、特徴点の高さの範囲は、５００［ｍｍ］以上１０００［ｍｍ］未満、１０００［ｍｍ］以上１５００［ｍｍ］未満、１５００［ｍｍ］以上２０００［ｍｍ］未満、２０００［ｍｍ］以上の４つの区分に分けられている。以下、５００［ｍｍ］以上１０００［ｍｍ］未満の範囲を第１区分、１０００［ｍｍ］以上１５００［ｍｍ］未満の範囲を第２区分、１５００［ｍｍ］以上２０００［ｍｍ］未満の範囲を第３区分、２０００［ｍｍ］以上の範囲を第４区分として説明を行う。
【００３８】
次に、図４及び図７に示すように、ステップＳ６において、画像処理部４１は、物体が存在しているエリアＡ１を検出する。画像処理部４１は、ステップＳ５での計数によって、特徴点の総和が閾値を越えたエリアＡ１には、物体が存在していると判定する。なお、特徴点の総和とは、区分毎に計数された特徴点の数の合計である。閾値としては、ステレオ処理の精度等を原因として生じる僅かな特徴点が存在するエリアＡ１に、物体が存在していると判定されないような値に設定される。即ち、物体が存在していないにも関わらず、物体が存在していると判定されないように閾値は設定されている。図７には、物体が存在していると判定されたエリアＡ１をプロットしている。ステップＳ４〜ステップＳ６の処理を行うことで、画像処理部４１は俯瞰図取得部として機能する。
【００３９】
なお、ステレオカメラ３１から離れた位置ほど視差が小さくなるため、視差が１変化したときに算出される特徴点の座標はＹ座標Ｙｗが大きくなるほど、即ち、原点Ｏから離れるほど大きく変化する。結果として、Ｙ座標Ｙｗが大きくなるほど特徴点は離散的になり、Ｙ座標Ｙｗが大きいエリアＡ１ほど、物体が存在していると判定されにくくなる。しかしながら、Ｙ座標Ｙｗが大きいエリアＡ１ほどフォークリフト１０から離れたエリアＡ１であり、フォークリフト１０に近いエリアＡ１に比べて、フォークリフト１０から離れたエリアＡ１の物体を検出する必要性は低い。また、物体検出処理は繰り返し行われるため、フォークリフト１０の進行に伴い物体とフォークリフト１０が近付けば、距離を原因として検出されなかった物体も検出されるようになる。このため、Ｙ座標Ｙｗが大きいエリアＡ１ほど物体が存在していると判定されにくい場合であっても、実用上の支障は来さないと考えられる。
【００４０】
次に、図４及び図７に示すように、ステップＳ７において、画像処理部４１は、エリアＡ１毎に検出された物体から同一物体を検出する。プロットエリアＡ２では、同一物体がエリアＡ１毎に分離されているため、同一物体が存在していると予測されるエリアＡ１を抽出して、分離された物体を１つの物体として処理を行えるようにする。各エリアＡ１に存在する物体が同一物体か否かは、種々の手法により判定することができる。本実施形態では、エリアＡ１の位置及び物体の高さ情報から各エリアＡ１に存在する物体が同一物体か否かを判定する。
【００４１】
画像処理部４１は、各エリアＡ１に存在する物体の高さを設定する。物体の高さとは、特徴点の高さの範囲を表す各区分のいずれかである。画像処理部４１は、第１区分を含む複数の区分に特徴点が存在している場合であり、かつ、第１区分から連続して区分に特徴点が存在する場合、第１区分から連続して特徴点が存在する区分のうち最も高い区分を物体の高さとして設定する。例えば、第１区分、第２区分及び第４区分のそれぞれに特徴点が存在しており、第３区分に特徴点が存在していないエリアＡ１であれば、第１区分から連続して特徴点が存在する区分は第２区分までとなるため、物体の高さは第２区分になる。なお、特徴点が存在する区分とは、ステップＳ５での特徴点の計数によって、特徴点が計数された区分である。画像処理部４１は、計数された特徴点の数に計数閾値を設定し、計数された特徴点の数が計数閾値を超えた区分には特徴点が存在していると判定してもよい。即ち、特徴点の数が計数閾値に満たない区分には、特徴点が存在していないと判定してもよい。
【００４２】
画像処理部４１は、第１区分を含む複数の区分に特徴点が存在している場合で、かつ、第１区分に連続した区分に特徴点が存在しない場合には第１区分を物体の高さとして設定する。例えば、第１区分及び第３区分に特徴点が存在し、第２区分に特徴点が存在しない場合、物体の高さとして第１区分が設定される。
【００４３】
画像処理部４１は、第１区分を除く複数の区分に特徴点が存在している場合には、複数の区分のうち最も高い区分を物体の高さとして設定する。例えば、第２区分及び第３区分に特徴点が存在しており、第１区分及び第４区分に特徴点が存在していない場合、物体の高さとして第３区分が設定される。画像処理部４１は、いずれか１つの区分に特徴点が存在している場合、当該区分を物体の高さとして設定する。例えば、第２区分にのみ特徴点が存在している場合、物体の高さとして第２区分が設定される。図７では、物体が存在するエリアＡ１の濃淡によって、物体の高さを表している。
【００４４】
物体が路面上に位置している場合、特徴点は、第１区分のみ、あるいは、第１区分から連続する区分に存在することになる。従って、第１区分に特徴点が存在しているにも関わらず、特徴点が存在しない区分よりも高い区分に特徴点が存在しているエリアＡ１には、飛行体など路面から浮いた物体が存在していると推測できる。この場合には、路面から浮いている物体は存在しないとみなし、路面から浮いている物体の下方に存在する物体のみを物体として認識する。
【００４５】
画像処理部４１は、同一の高さの物体のうち隣接したエリアＡ１に存在している物体を同一物体であると判定する。なお、互いに隣接したエリアＡ１とは、Ｙ軸方向及びＸ軸方向に隣り合う４つのエリアＡ１に加えて、斜めに隣り合う４つのエリアＡ１を含むものである。即ち、各エリアＡ１と、当該エリアＡ１を囲む八方のエリアＡ１は、互いに隣接したエリアＡ１といえる。同一物体が存在するエリアＡ１は、１又は複数のエリアＡ１から構成される。
【００４６】
次に、ステップＳ８において、画像処理部４１は、同一物体と判定された物体毎に、プロットエリアＡ２での座標を算出する。プロットエリアＡ２は、ワールド座標系のＸＹ平面であるため、プロットエリアＡ２での座標は、ワールド座標といえる。物体が存在するエリアＡ１は、少なくとも１つのエリアＡ１により構成されているため、物体は複数の座標に跨がって存在しているといえる。プロットエリアＡ２上の物体のうち、いずれの位置の座標を算出するかは任意に設定することができる。例えば、Ｘ座標Ｘｗは、物体の中心座標とし、Ｙ座標Ｙｗは物体のうち最も原点Ｏに近い座標としてもよい。また、物体のうち最も原点Ｏに近い位置のＸ座標Ｘｗ及びＹ座標Ｙｗと、物体のうち最も原点Ｏから離れた位置のＸ座標Ｘｗ及びＹ座標Ｙｗとを算出する等、複数の座標を算出してもよい。物体のＸ座標Ｘｗは、Ｘ軸方向に対する原点Ｏからの距離によって算出することができる。物体のＹ座標Ｙｗは、Ｙ軸方向に対する原点Ｏからの距離によって算出することができる。ステップＳ８の処理を行うことで、画像処理部４１は、物体座標算出部として機能する。
【００４７】
次に、画像処理部４１は、図４及び図８に示すように、ステップＳ９において、第１画像Ｉ１での物体の領域Ｆ１〜Ｆ５を抽出する。まず、画像処理部４１は、ステップＳ８で算出された物体のワールド座標をカメラ座標に変換する。ワールド座標からカメラ座標への変換は、以下の（６）式を用いて行うことができる。
【００４８】
【数６】
2020135616.tif 000008
（６）式のＸ座標Ｘｗ、Ｙ座標Ｙｗ、Ｚ座標ＺｗをステップＳ８で算出された物体のワールド座標とすることで、物体のカメラ座標を算出することができる。Ｚ座標Ｚｗとしては、０としてもよいし、物体の高さとして設定された区分から任意の値を採用してもよい。
【００４９】
次に、画像処理部４１は、以下の（７）式及び（８）式を用いて、カメラ座標から第１画像Ｉ１上での物体の座標を算出する。
【００５０】
【数７】
2020135616.tif 000009
【００５１】
【数８】
2020135616.tif 000010
（７）式及び（８）式のＸ座標Ｘｃ、Ｙ座標Ｙｃ、Ｚ座標Ｚｃを物体のカメラ座標とすることで、物体の第１画像Ｉ１上での座標を算出することができる。画像処理部４１は、物体の第１画像Ｉ１上での座標から、第１画像Ｉ１において物体が存在する領域Ｆ１〜Ｆ５を抽出する。図８に示すように、第１画像Ｉ１からは５つの領域Ｆ１〜Ｆ５が抽出される。画像処理部４１は、第１画像Ｉ１上の物体の座標を一箇所のみ算出した場合、当該座標から領域Ｆ１〜Ｆ５を抽出する。例えば、Ｚ座標Ｚｗを０とし、第１画像Ｉ１における物体の最下部の座標を算出した場合、算出された座標から第１画像Ｉ１のＹ軸方向に物体が延びている。このため、算出された座標からＹ軸方向に拡がる領域Ｆ１〜Ｆ５を抽出する。また、プロットエリアＡ２で物体が占有するエリアＡ１の数に応じて領域Ｆ１〜Ｆ５の広さを設定してもよい。画像処理部４１は、第１画像Ｉ１上での物体の縁となる複数の座標を算出した場合、算出した座標同士の間を領域Ｆ１〜Ｆ５としてもよい。即ち、領域Ｆ１〜Ｆ５は、算出した第１画像Ｉ１上での座標を用いて、種々の態様で抽出することができる。ステップＳ９の処理を行うことで、画像処理部４１は、領域抽出部として機能する。
【００５２】
次に、図４、図８及び図９に示すように、ステップＳ１０において、画像処理部４１は、領域Ｆ１〜Ｆ５に存在する物体が人候補か否かを判定する。物体が人候補か否かの判定は、領域Ｆ１〜Ｆ５の大きさを用いて判定される。なお、領域Ｆ１〜Ｆ５の大きさには、領域Ｆ１〜Ｆ５の縦方向＝Ｘ軸方向の寸法、領域Ｆ１〜Ｆ５の横方向＝Ｙ軸方向の寸法及び領域Ｆ１〜Ｆ５の広さが含まれる。領域Ｆ１〜Ｆ５に存在する物体が人候補か否かは、領域Ｆ１〜Ｆ５の縦横比から判定されてもよい。直立した人を水平方向から撮像した場合の縦横比は、２：１〜４：１の範囲に収まると推測される。このため、縦横比が２：１〜４：１となる物体を人候補と判定してもよい。また、領域Ｆ１〜Ｆ５に存在する物体が人候補か否かの判定は、ステレオカメラ３１からの距離＝Ｙ座標Ｙｗに対する領域Ｆ１〜Ｆ５の広さから判定されてもよい。直立した人を水平方向から撮像した場合に領域Ｆ１〜Ｆ５の広さが取り得る範囲は推測することができる。また、ステレオカメラ３１から離れるほど領域Ｆ１〜Ｆ５は小さくなる。このため、Ｙ座標Ｙｗに応じて予め設定された範囲内に、領域Ｆ１〜Ｆ５の広さが収まるか否かによって物体が人候補か否かを判定してもよい。なお、領域Ｆ１〜Ｆ５の広さとは、領域Ｆ１〜Ｆ５の縦方向の寸法×横方向の寸法で表される面積であってもよいし、領域Ｆ１〜Ｆ５の画素数であってもよい。
【００５３】
画像処理部４１は、領域Ｆ１〜Ｆ５に存在する物体が人候補か否かの判定を、領域Ｆ１〜Ｆ５の縦横比から判定してもよいし、領域Ｆ１〜Ｆ５の広さから判定してもよい。また、画像処理部４１は、領域Ｆ１〜Ｆ５の縦横比及び領域Ｆ１〜Ｆ５の広さの両方から領域Ｆ１〜Ｆ５に存在する物体が人候補か否かの判定を行ってもよい。この場合、画像処理部４１は、領域Ｆ１〜Ｆ５の縦横比が予め定められた範囲に収まる第１条件及び領域Ｆ１〜Ｆ５の広さが予め定められた範囲に収まる第２条件のうちいずれかが成立した場合に、領域Ｆ１〜Ｆ５に存在する物体が人候補であると判定してもよい。また、画像処理部４１は、第１条件及び第２条件の両方が成立した場合に領域Ｆ１〜Ｆ５に存在する物体が人候補であると判定してもよい。即ち、領域Ｆ１〜Ｆ５に存在する物体が人候補か否かの判定は、種々の態様で行うことができる。
【００５４】
また、ステレオカメラ３１の設置高さやステレオカメラ３１の設置角度によって、人の写り方は異なり、これにより、領域Ｆ１〜Ｆ５の大きさも変化する。具体的にいえば、ステレオカメラ３１の設置高さが高いほど領域Ｆ１〜Ｆ５は狭くなる。カメラ３２，３３の光軸の延びる方向が鉛直方向に近付くほど領域Ｆ１〜Ｆ５の縦方向の寸法は短くなる。従って、ステレオカメラ３１の設置高さやステレオカメラ３１の設置角度によって、物体が人候補か否かを判定するための縦横比の範囲や領域Ｆ１〜Ｆ５の広さの範囲を変更してもよい。具体的にいえば、ステレオカメラ３１の設置高さが高いほど、物体が人候補か否かを判定するための領域Ｆ１〜Ｆ５の広さについて、範囲の下限値と上限値を小さくしてもよい。また、カメラ３２，３３の光軸の延びる方向が鉛直方向に近いほど、物体が人候補か否かを判定するための領域Ｆ１〜Ｆ５の縦横比の範囲について、範囲の下限値と上限値を小さくしてもよい。
【００５５】
人の年齢や、性別によっても領域Ｆ１〜Ｆ５の大きさは異なり、人の姿勢によっても領域Ｆ１〜Ｆ５の大きさは異なる。このため、どのような人を検出対象とするかによって、物体が人候補か否かを判定するための縦横比の範囲や領域Ｆ１〜Ｆ５の広さの範囲を変更してもよい。図９に示すように、第１画像Ｉ１では、領域Ｆ１〜Ｆ５のうち領域Ｆ１，Ｆ２，Ｆ４に存在する物体が人候補と判定される。画像処理部４１は、ステップＳ１０の処理を行うことで、人候補判定部として機能する。
【００５６】
次に、図４、図９及び図１０に示すように、ステップＳ１１において、画像処理部４１は、第１画像Ｉ１において人候補が存在していると判定された領域Ｆ１，Ｆ２，Ｆ４に対して人検出処理を行う。人検出処理は、第１画像Ｉ１から特徴量を抽出する特徴量抽出法により行われ、例えば、HOG：Histograms of Oriented Gradientsや、SIFT：Scale Invariant Feature Transformを用いて行われる。これにより、画像処理部４１は、ステップＳ１０で検出された人候補が人か人以外の物体かを判定することができる。図１０に示すように、第１画像Ｉ１では、領域Ｆ１，Ｆ２，Ｆ４のうち領域Ｆ１，Ｆ４に存在する物体が人であると判定される。なお、フォークリフト１０と人との位置関係は、ステップＳ９で予め算出しているため、画像処理部４１は、フォークリフト１０と人との位置関係を把握することができる。ステップＳ１１の処理を行うことで、画像処理部４１は、人判定部として機能する。
【００５７】
本実施形態の作用について説明する。
プロットエリアＡ２は、ワールド座標系のＸＹ平面を俯瞰したものであるため、画像処理部４１は、物体のプロットエリアＡ２上での座標から第１画像Ｉ１における領域Ｆ１〜Ｆ５を抽出することができる。そして、画像処理部４１は、領域Ｆ１〜Ｆ５に対して人検出処理を行うことで、第１画像Ｉ１から人を検出することができる。
【００５８】
フォークリフト１０では、検出した物体が人の場合、物体が人以外の場合とは異なる処理が行われる場合がある。例えば、搭乗者の操作により動作するフォークリフト１０の場合、物体検出装置３０によって人が検出されると、メインコントローラ２０は搭乗者に対して近くに人がいる旨の報知を行う。報知は、表示によって報知を行う表示器や、音によって報知を行うブザー等を用いて行われる。また、メインコントローラ２０は、フォークリフト１０の周辺の人に対して、フォークリフト１０が近くにいることを認識させるための報知を行ってもよい。自動で動作するフォークリフト１０の場合、物体が人の場合と、物体が人以外の場合とで、走行経路や車速を変更する場合がある。例えば、メインコントローラ２０は、物体の回避を行う場合、物体が人以外の場合に比べて、物体が人の場合のほうが回避距離を大きくしたり、物体が人の場合の方が近くを走行するときの車速を低くする。
【００５９】
本実施形態の効果について説明する。
（１）画像処理部４１は、第１画像Ｉ１において物体が存在している領域Ｆ１〜Ｆ５を抽出し、抽出した領域Ｆ１〜Ｆ５に対して人検出処理を行う。領域Ｆ１〜Ｆ５に対して人検出処理を行えばよいため、第１画像Ｉ１の全体に対して人検出処理を行う場合に比べて、人の検出に要する時間を短縮できる。
【００６０】
（２）画像処理部４１は、領域Ｆ１〜Ｆ５の大きさから物体が人候補か否かを判定し、人候補が存在すると判定された領域Ｆ１，Ｆ２，Ｆ４に対して人検出処理を行う。物体が人候補か否かは、領域Ｆ１〜Ｆ５の大きさから判定できるため、短時間で判定を行うことができる。従って、全ての領域Ｆ１〜Ｆ５に対して人検出処理を行う場合に比べて、人の検出に要する時間を短縮できる。
【００６１】
実施形態は、以下のように変更して実施することができる。実施形態及び以下の変形例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
○物体が人候補か否かの判定を行うことなく、全ての領域Ｆ１〜Ｆ５に対して人検出処理を行ってもよい。
【００６２】
○画像処理部４１は、特徴点が存在する区分同士の間に、特徴点が存在しない区分が存在するか否かに関わらず、特徴点が存在する区分のうち最も高い区分を物体の高さとして設定してもよい。即ち、画像処理部４１は、路面から浮いている物体が存在すると推測される場合、路面から浮いている物体によって生じた特徴点を考慮して物体の高さを設定してもよい。
【００６３】
○画像処理部４１は、第１区分を除く複数の区分に特徴点が存在している場合であり、かつ、特徴点が存在する区分同士の間に特徴点が存在しない区分が介在している場合、低い方の区分を物体の高さとして設定してもよい。例えば、第２区分及び第４区分に特徴点が存在しており、第３区分に特徴点が存在していない場合、物体の高さとして第２区分を設定してもよい。第２区分及び第４区分に特徴点が存在しており、第３区分に特徴点が存在していない場合、上下に向かい合う２つの物体が同一エリアＡ１に存在しているといえる。この場合、特徴点が存在する区分のうち最も高い区分とは、上下に向かい合う２つの物体のうち下方の物体によって生じた特徴点のみを考慮した区分である。
【００６４】
○特徴点の高さの区分は、４つ以上に分けられていてもよい。例えば、実施形態の区分に加えて、０［ｍｍ］以上５００［ｍｍ］未満の区分を第５区分として追加してもよい。
○画像処理部４１は、エリアＡ１に物体が存在しているか否かを判定する際の閾値をプロットエリアのＹ座標Ｙｗに応じて変更してもよい。画像処理部４１は、Ｙ軸方向に対して原点Ｏから離れたエリアＡ１ほど、閾値を低くする。これにより、Ｙ軸方向に対して原点Ｏから離れたエリアＡ１ほど、特徴点の総和が低くても物体が存在していると判定されることになる。実施形態に記載したように、Ｙ座標Ｙｗが大きくなるほど特徴点は離散的になる。このため、Ｙ軸方向に対して原点Ｏから離れたエリアＡ１ほど、閾値を低くすることで、特徴点が離散しやすいエリアＡ１でも物体の検出を行うことができる。即ち、フォークリフト１０から離れている物体であっても検出が可能になる。
【００６５】
○画像処理部４１は、特徴点の計数を行う際に、Ｘ座標Ｘｗ及びＹ座標Ｙｗが同一であり、Ｚ座標Ｚｗのみが異なる複数の特徴点が存在する場合、Ｚ座標Ｚｗが最も大きい特徴点のみを計数してもよい。
【００６６】
○物体が人か否かの判定は、教師有り学習モデルによる機械学習を行った人判定部に対して第１画像Ｉ１を入力することで行われてもよい。詳細にいえば、学習済みの人判定部に対して、第１画像Ｉ１のうち物体が写っている領域Ｆ１〜Ｆ５を入力することで、物体が人か否かを判定させてもよい。人判定部としては、例えば、サポートベクタマシン、ニューラルネットワーク、ナイーブベイズ、決定木等の教師有り学習器を採用することが可能である。機械学習に用いる教師データとしては、画像から抽出された人の形状要素や、外観要素などの画像固有成分が用いられる。形状要素として、例えば、人の大きさや輪郭などが挙げられる。外観要素としては、例えば、光源情報、テクスチャ情報、カメラ情報などが挙げられる。光源情報には、反射率や、陰影等に関する情報が含まれる。テクスチャ情報には、カラー情報等が含まれる。カメラ情報には、画質、解像度、画角等に関する情報が含まれる。
【００６７】
○俯瞰図として、複数のエリアＡ１に分割されたプロットエリアＡ２以外を用いてもよい。例えば、特許文献１に記載された俯瞰図であってもよい。
○三次元座標系は、直交座標系に限られず、極座標系としてもよい。この場合、極座標系のうち水平面を表す座表面は、座標面の原点を中心として扇状のエリアＡ１に分割される。
【００６８】
○ステレオカメラ３１によって撮像された画像のうち第２画像から人を検出するようにしてもよい。この場合、画像処理部４１は、プロットエリアＡ２の原点Ｏと物体との位置関係から第２画像上での人候補の座標を算出するが、第２画像は比較画像であるため、基線長に応じたずれが生じる。このため、画像処理部４１は、基線長に応じて第２画像上での人候補の座標を補正し、補正した座標から物体が存在している領域を抽出する。
【００６９】
○画像処理部４１は、視差画像ｄｐから路面の視差を除去する際に、ハフ変換などの直線抽出法を用いて路面を検出してもよい。路面は、平坦であるため、路面の視差はステレオカメラ３１から離れるにつれて徐々に小さくなっていく。従って、視差画像ｄｐのＹ座標Ｙｉと、路面の視差との二次元座標系に視差をプロットすると、路面の視差が直線状になって現れる。画像処理部４１は、この直線の視差を路面の視差として除去する。
【００７０】
○画像処理部４１は、路面の視差を除去しなくてもよい。路面は、高さが低いため、視差画像ｄｐから視差を除去しない場合であっても、第１区分には含まれず、実施形態と同様の効果が得られる。
【００７１】
○視差画像取得部、座標算出部、俯瞰図取得部、物体座標算出部、領域抽出部、人判定部、及び人候補判定部は、それぞれ、個別の制御装置によって構成されていてもよい。
○カメラ座標からワールド座標への変換はテーブルデータによって行われてもよい。テーブルデータは、Ｙ座標ＹｃとＺ座標Ｚｃの組み合わせにＹ座標Ｙｗを対応させたテーブルデータと、Ｙ座標ＹｃとＺ座標Ｚｃとの組み合わせにＺ座標Ｚｗを対応させたテーブルデータである。これらのテーブルデータを画像処理部４１のＲＯＭなどに記憶しておくことで、カメラ座標系におけるＹ座標ＹｃとＺ座標Ｚｃから、ワールド座標系におけるＹ座標Ｙｗ及びＺ座標Ｚｗを求めることができる。同様に、ワールド座標からカメラ座標への変換についてもテーブルデータによって行われてもよい。
【００７２】
○第１カメラ３２と第２カメラ３３は、鉛直方向に並んで配置されていてもよい。
○第１画像Ｉ１の画素数と第２画像の画素数とは異なっていてもよい。例えば、比較画像である第２画像の画素数を視差画像の画素数と同一とし、基準画像である第１画像Ｉ１の画素数を第２画像の画素数よりも多くしてもよい。
【００７３】
○ステレオカメラ３１は、３つ以上のカメラを備えていてもよい。
○フォークリフト１０は、エンジンの駆動によって走行するものでもよい。この場合、走行制御装置は、エンジンへの燃料噴射量などを制御する装置となる。
【００７４】
○物体検出装置３０は、建設機械、自動搬送車、トラックなどフォークリフト１０以外の産業車両や乗用車などの移動体に搭載されていてもよい。
【符号の説明】
【００７５】
３０…物体検出装置、３１…ステレオカメラ、４１…視差画像取得部、座標算出部、俯瞰図取得部、物体座標算出部、領域抽出部、人判定部、及び人候補判定部して機能する画像処理部。
【図１】
2020135616.tif 000011
【図２】
2020135616.tif 000012
【図３】
2020135616.tif 000013
【図４】
2020135616.tif 000014
【図５】
2020135616.tif 000015
【図６】
2020135616.tif 000016
【図７】
2020135616.tif 000017
【図８】
2020135616.tif 000018
【図９】
2020135616.tif 000019
【図１０】
2020135616.tif 000020