IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社豊田自動織機の特許一覧

<>
  • 特許-物体検出装置 図1
  • 特許-物体検出装置 図2
  • 特許-物体検出装置 図3
  • 特許-物体検出装置 図4
  • 特許-物体検出装置 図5
  • 特許-物体検出装置 図6
  • 特許-物体検出装置 図7
  • 特許-物体検出装置 図8
  • 特許-物体検出装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-19
(45)【発行日】2023-06-27
(54)【発明の名称】物体検出装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230620BHJP
   G06T 1/00 20060101ALI20230620BHJP
   E02F 9/24 20060101ALI20230620BHJP
   B66F 9/24 20060101ALI20230620BHJP
【FI】
G06T7/00 660B
G06T1/00 340B
E02F9/24 B
B66F9/24 L
【請求項の数】 4
(21)【出願番号】P 2019183767
(22)【出願日】2019-10-04
(65)【公開番号】P2021060720
(43)【公開日】2021-04-15
【審査請求日】2022-01-18
(73)【特許権者】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】石▲崎▼ 将崇
【審査官】宮島 潤
(56)【参考文献】
【文献】特開2012-46079(JP,A)
【文献】特開2009-231938(JP,A)
【文献】特開2007-316790(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
G06T 1/00
E02F 9/00 - 9/18
E06F 9/24 - 9/28
B66F 9/00 - 11/04
(57)【特許請求の範囲】
【請求項1】
車両に搭載される物体検出装置であって、
水平方向のうち前記車両の車幅方向に延びる軸をX軸、水平方向のうち前記X軸に直交する軸をY軸とする実空間上の座標系であるワールド座標系において、前記車両の周囲に存在する物体であって人を含む物体の一部を表す特徴点の集合である点群をセンサから取得したデータから前記物体として抽出する物体抽出部と、
予め定められた検出範囲のうち前記車両と前記Y軸の延びる方向に向かい合う領域であって、その領域の前記X軸に沿う寸法が前記車両の前記X軸に沿う寸法に基づいて規定される正面領域については前記X軸に沿う寸法よりも前記Y軸に沿う寸法の方が長い第1ブロックが位置し、前記検出範囲のうち前記正面領域と前記X軸の延びる方向に隣り合う旋回領域については前記X軸に沿う寸法よりも前記Y軸に沿う寸法の方が短い第2ブロックが前記Y軸の延びる方向に複数並んで位置するように区画された前記ワールド座標系のXY平面において、前記第1ブロック及び前記第2ブロック毎に各ブロックに存在する前記物体であって前記物体抽出部により抽出された前記物体のうち前記車両に最も近い前記物体である近傍物体を抽出する近傍物体抽出部と、
前記ワールド座標系での前記近傍物体の座標を、前記ワールド座標系とカメラによって撮像された画像上の座標との相関に基づいて、前記カメラによって前記物体を撮像た画像上の座標に変換する座標変換部と、
前記画像上での前記近傍物体の座標に対して前記近傍物体が人か否かを判定する処理であって前記画像の一部の領域に対して行われる人検出処理を行う人判定部と、を備える物体検出装置。
【請求項2】
前記ワールド座標系において、前記正面領域は、前記X軸の延びる方向に並んだ複数の前記第1ブロックが位置するように区画されている請求項1に記載の物体検出装置。
【請求項3】
前記物体抽出部は、
ステレオカメラによって前記物体を撮像した第1画像及び第2画像から前記第1画像及び前記第2画像での前記物体の前記特徴点の画素数の差を視差として算出するとともに、各画素に視差が対応付けられた視差画像を取得する視差画像取得部と、
前記視差画像から前記ワールド座標系での前記特徴点の座標を導出する座標導出部と、を含み、
前記座標変換部は、前記ワールド座標系での前記近傍物体の座標を、前記カメラとして前記ステレオカメラによって撮像された画像上での座標に変換する請求項1又は請求項2に記載の物体検出装置。
【請求項4】
前記人検出処理を行うことが可能な前記近傍物体の数には上限が設定されており、
前記人判定部は、前記第1ブロックの前記近傍物体に前記人検出処理を行った後に、前記第2ブロックの前記近傍物体であって前記車両に最もい前記近傍物体から前記車両に近い順に前記人検出処理を行う請求項1~請求項3のうちいずれか一項に記載の物体検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体検出装置に関する。
【背景技術】
【0002】
車両には、人や障害物などの物体を検出するための物体検出装置が搭載されている。特許文献1に記載の物体検出装置は、撮像装置の画像を複数の領域に分割し、各領域を対象として識別処理対象画像を抽出している。物体検出装置は、識別処理対象画像に対して人検出処理を行う。識別処理対象画像の抽出は、輝度勾配や、ハフ変換などに基づき行われる。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-151815号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、人検出処理を行う領域が大きく物体検出装置の処理負荷が大きい。
本発明の目的は、処理負荷を軽減することができる物体検出装置を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決する物体検出装置は、車両に搭載される物体検出装置であって、水平方向のうち前記車両の車幅方向に延びる軸をX軸、水平方向のうち前記X軸に直交する軸をY軸とする実空間上の座標系であるワールド座標系において、物体の一部を表す点の集合である点群を前記物体として抽出する物体抽出部と、前記車両と前記Y軸の延びる方向に向かい合う正面領域については前記X軸に沿う寸法よりも前記Y軸に沿う寸法の方が長い第1ブロックが位置し、前記正面領域と前記X軸の延びる方向に隣り合う旋回領域については前記X軸に沿う寸法よりも前記Y軸に沿う寸法の方が短い第2ブロックが前記Y軸の延びる方向に複数並んで位置するように区画された前記ワールド座標系のXY平面において、前記第1ブロック及び前記第2ブロック毎に各ブロックに存在する前記物体のうち前記車両に最も近い前記物体である近傍物体を抽出する近傍物体抽出部と、前記ワールド座標系での前記近傍物体の座標を、カメラによって撮像された画像上の座標に変換する座標変換部と、前記画像上での前記近傍物体の座標に対して前記近傍物体が人か否かを判定する処理である人検出処理を行う人判定部と、を備える。
【0006】
車両が直進している場合、車両はY軸の延びる方向に正面領域を通過する。正面領域に第1ブロックが位置するようにXY平面を区画し、第1ブロックの近傍物体が人か否かを判定することで、物体検出装置は、車両が直進している場合に車両の進行の妨げとなる人が存在するか否かを検出できる。即ち、車両が直進している場合に通過する経路については、車両の前後に人が存在するか否かが検出される。車両が旋回している場合、車両はX軸及びY軸に交差する方向に旋回領域を通過する。このため、車両が旋回している場合、X軸の延びる方向及びY軸の延びる方向の両方に人が存在するか否かを検出できるようにする必要がある。旋回領域については、Y軸の延びる方向に複数の第2ブロックが位置するようにXY平面を区画し、第2ブロックの近傍物体が人か否かを判定することで、物体検出装置は、車両が旋回している場合に車両の進行の妨げとなり得る人が存在するか否かを検出できる。即ち、車両が旋回している場合に通過し得る経路については、車両の前後左右に人が存在するか否かが検出される。このように、車両が通過する経路に合わせたブロックが位置するようにXY平面を区画することで、車両の進行の妨げとなり得る人を検出することができる。ワールド座標系での近傍物体の座標をカメラによって撮像された画像上での座標に変換し、画像上での座標に対して人検出処理を行うことで、画像の全体に対して人検出処理を行う場合に比べて人検出処理を行う領域が少なく、物体検出装置の処理負荷を軽減することができる。
【0007】
上記物体検出装置について、前記ワールド座標系において、前記正面領域は、前記X軸の延びる方向に並んだ複数の前記第1ブロックが位置するように区画されていてもよい。
正面領域を複数の第1ブロックが位置するように区画することで、複数の第1ブロック毎に近傍物体を抽出することができる。正面領域を1つの第1ブロックにした場合に比べて正面領域に人がいるか否かを細かく判定することができる。
【0008】
上記物体検出装置について、前記物体抽出部は、ステレオカメラによる撮像が行われた画像から各画素に視差が対応付けられた視差画像を取得する視差画像取得部と、前記視差画像から前記ワールド座標系での前記点の座標を導出する座標導出部と、を含み、前記座標変換部は、前記ワールド座標系での前記近傍物体の座標を、前記カメラとして前記ステレオカメラによって撮像された画像上での座標に変換してもよい。
【0009】
視差画像は、ステレオカメラによって撮像された画像から得られる。従って、視差画像から得られたワールド座標系での座標と、画像上での座標とは相互に変換することができる。従って、ステレオカメラによって撮像された画像を用いて画像上での近傍物体の座標を導出することで、画像上での近傍物体の座標の精度を向上させることができる。
【0010】
上記物体検出装置について、前記人検出処理を行うことが可能な前記近傍物体の数には上限が設定されており、前記人判定部は、前記第1ブロックの前記近傍物体に前記人検出処理を行った後に、前記車両に近い前記第2ブロックの前記近傍物体から順に前記人検出処理を行ってもよい。
【0011】
人検出処理を行う近傍物体の数に上限を設定することで、人検出処理に要する時間が過剰に長くなることを抑制できる。
【発明の効果】
【0012】
本発明によれば、処理負荷を軽減することができる。
【図面の簡単な説明】
【0013】
図1】物体検出装置が搭載されるフォークリフトの斜視図。
図2】フォークリフト及び監視装置の概略構成図。
図3】第1画像を示す図。
図4】物体検出装置が行う物体検出処理を示すフローチャート。
図5】中央領域処理を示すフローチャート。
図6】XY平面での物体の位置を示す図。
図7】複数のブロックに分割されたXY平面を模式的に示す図。
図8】第1画像のうち人検出処理が行われる領域を説明するための図。
図9】物体検出処理の変形例を説明するための図。
【発明を実施するための形態】
【0014】
以下、物体検出装置の一実施形態について説明する。
図1に示すように、車両としてのフォークリフト10は、車体11と、車体11の前下部に配置された駆動輪12と、車体11の後下部に配置された操舵輪14と、荷役装置16と、を備える。車体11は、運転席の上部に設けられたヘッドガード15を備える。本実施形態のフォークリフト10は、搭乗者による操作によって走行動作及び荷役動作が行われるものである。
【0015】
図2に示すように、フォークリフト10は、メインコントローラ20と、走行用モータM1と、走行用モータM1を制御する走行制御装置23と、車速センサ24と、を備える。メインコントローラ20は、走行動作及び荷役動作に関する制御を行う。メインコントローラ20は、CPU21と、種々の制御を行うためのプログラムなどが記憶された記憶部22と、を備える。メインコントローラ20は、各種処理のうち少なくとも一部の処理を実行する専用のハードウェア、即ち、特定用途向け集積回路:ASICを備えてもよい。処理回路であるメインコントローラ20は、コンピュータプログラムに従って動作する1つ以上のプロセッサ、ASIC等の1つ以上の専用のハードウェア回路、或いは、それらの組み合わせを含み得る。プロセッサは、CPU、並びに、RAM及びROM等のメモリを含む。メモリは、処理をCPUに実行させるように構成されたプログラムコードまたは指令を格納している。メモリすなわちコンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。
【0016】
メインコントローラ20のCPU21は、フォークリフト10の車速が目標車速となるように走行制御装置23に走行用モータM1の回転数の指令を与える。本実施形態の走行制御装置23は、モータドライバである。本実施形態の車速センサ24は、走行用モータM1の回転数を検出する回転数センサである。車速センサ24は、走行用モータM1の回転数を走行制御装置23に出力する。走行制御装置23は、メインコントローラ20からの指令に基づき、走行用モータM1の回転数が指令と一致するように走行用モータM1を制御する。
【0017】
フォークリフト10には、監視装置30が搭載されている。監視装置30は、カメラとしてのステレオカメラ31と、ステレオカメラ31によって撮像された画像から物体の検出を行う物体検出装置41と、を備える。ステレオカメラ31は、フォークリフト10の上方からフォークリフト10の走行する路面を鳥瞰できるように配置されている。本実施形態のステレオカメラ31は、フォークリフト10の後方を撮像する。従って、物体検出装置41で検出される物体は、フォークリフト10の後方の物体となる。図1に示すように、ステレオカメラ31は、例えば、ヘッドガード15に配置される。
【0018】
図2に示すように、ステレオカメラ31は、第1カメラ32と、第2カメラ33と、を備える。第1カメラ32及び第2カメラ33としては、例えば、CCDイメージセンサや、CMOSイメージセンサが用いられる。第1カメラ32及び第2カメラ33は、互いの光軸が平行となるように配置されている。本実施形態において、第1カメラ32及び第2カメラ33は、互いに水平方向に並んで配置されている。第1カメラ32によって撮像された画像を第1画像、第2カメラ33によって撮像された画像を第2画像とすると、第1画像と第2画像では同一物体が横方向にずれて写ることになる。詳細にいえば、同一物体を撮像した場合、第1画像に写る物体と、第2画像に写る物体では、横方向の画素[px]に第1カメラ32と第2カメラ33との間の距離に応じたずれが生じることになる。第1画像及び第2画像は、画素数が同じであり、例えば、640×480[px]=VGAの画像が用いられる。第1画像及び第2画像は、RGB信号で表される画像である。
【0019】
物体検出装置41は、CPU42と、RAM及びROM等からなる記憶部43と、を備える。記憶部43には、ステレオカメラ31によって撮像された画像から物体を検出するための種々のプログラムが記憶されている。物体検出装置41は、各種処理のうち少なくとも一部の処理を実行する専用のハードウェア、即ち、特定用途向け集積回路:ASICを備えてもよい。処理回路である物体検出装置41は、コンピュータプログラムに従って動作する1つ以上のプロセッサ、ASIC等の1つ以上の専用のハードウェア回路、或いは、それらの組み合わせを含み得る。プロセッサは、CPU、並びに、RAM及びROM等のメモリを含む。メモリは、処理をCPUに実行させるように構成されたプログラムコードまたは指令を格納している。メモリすなわちコンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。
【0020】
以下、物体検出装置41により行われる物体検出処理について説明する。物体検出処理は、例えば、フォークリフト10が起動状態のときであり、かつ、フォークリフト10が後進するときに所定の制御周期で繰り返し行われる。起動状態とは、フォークリフト10に走行動作及び荷役動作を行わせることが可能な状態である。
【0021】
以下の説明では、一例として、図3に示す環境をステレオカメラ31によって撮像した場合の物体検出処理について説明する。図3は、フォークリフト10の後方を撮像することで得られた第1画像I1である。第1画像I1から把握できるように、フォークリフト10の後方には、人や、人以外の物体が存在している。なお、説明の便宜上、物体が存在する第1画像I1上の座標を枠AAで示しているが、実際の第1画像I1には枠AAは存在しない。
【0022】
図4に示すように、ステップS1において、物体検出装置41は、ステレオカメラ31によって撮像されている映像から同一フレームの第1画像I1及び第2画像を取得する。
次に、ステップS2において、物体検出装置41は、ステレオ処理を行うことで、視差画像を取得する。視差画像は、画素に対して視差[px]を対応付けた画像である。視差は、第1画像I1と、第2画像とを比較し、各画像に写る同一特徴点について第1画像I1と第2画像の画素数の差を算出することで得られる。なお、特徴点とは、物体のエッジなど、境目として認識可能な部分である。特徴点は、輝度情報などから検出することができる。
【0023】
物体検出装置41は、各画像を一時的に格納するRAMを用いて、RGBからYCrCbへの変換を行う。なお、物体検出装置41は、歪み補正、エッジ強調処理などを行ってもよい。物体検出装置41は、第1画像I1の各画素と第2画像の各画素との類似度を比較して視差を算出するステレオ処理を行う。なお、ステレオ処理としては、画素毎に視差を算出する手法を用いてもよいし、各画像を複数の画素を含むブロックに分割してブロック毎の視差を算出するブロックマッチング法を用いてもよい。物体検出装置41は、第1画像I1を基準画像、第2画像を比較画像として視差画像を取得する。物体検出装置41は、第1画像I1の画素毎に、最も類似する第2画像の画素を抽出し、第1画像I1の画素と、当該画素に最も類似する画素の横方向の画素数の差を視差として算出する。これにより、基準画像である第1画像I1の各画素に視差が対応付けられた視差画像を取得することができる。視差画像とは、必ずしも表示を要するものではなく、視差画像における各画素に視差が対応付けられたデータのことを示す。なお、物体検出装置41は、視差画像から路面の視差を除去する処理を行ってもよい。ステップS2の処理を行うことで、物体検出装置41は、視差画像取得部となる。
【0024】
次に、ステップS3において、物体検出装置41は、ワールド座標系における特徴点の座標を導出する。まず、物体検出装置41は、カメラ座標系における特徴点の座標を導出する。カメラ座標系は、光軸をZ軸とし、光軸に直交する2つの軸のそれぞれをX軸、Y軸とする3軸直交座標系である。カメラ座標系における特徴点の座標は、カメラ座標系におけるZ座標Zc、X座標Xc及びY座標Ycで表わすことができる。Z座標Zc、X座標Xc及びY座標Ycは、それぞれ、以下の(1)式~(3)式を用いて導出することができる。
【0025】
【数1】
【0026】
【数2】
【0027】
【数3】
(1)式~(3)式におけるBは基線長[mm]、fは焦点距離[mm]、dは視差[px]である。xpは視差画像中の任意のX座標であり、x’は視差画像の中心座標のX座標である。ypは視差画像中の任意のY座標であり、y’は視差画像の中心座標のY座標である。
【0028】
xpを視差画像中の特徴点のX座標とし、ypを視差画像中の特徴点のY座標とし、dを特徴点の座標に対応付けられた視差とすることで、カメラ座標系における特徴点の座標が導出される。
【0029】
ここで、水平方向のうちフォークリフト10の車幅方向に延びる軸をX軸、水平方向のうちX軸に直交する方向に延びる軸をY軸、X軸及びY軸に直交する軸をZ軸とする3軸直交座標系を実空間上での三次元座標系であるワールド座標系とする。ワールド座標系のY軸は、フォークリフト10の進行方向であるフォークリフト10の前後方向に延びる軸ともいえる。ワールド座標系のZ軸は、鉛直方向に延びる軸ともいえる。ワールド座標系での特徴点の座標は、ワールド座標系におけるX座標Xw、Y座標Yw及びZ座標Zwで表わすことができる。
【0030】
物体検出装置41は、以下の(4)式を用いてカメラ座標をワールド座標に変換するワールド座標変換を行う。
【0031】
【数4】
ここで、(4)式におけるHはワールド座標系におけるステレオカメラ31の設置高さ[mm]であり、θは第1カメラ32及び第2カメラ33の光軸と、水平面とがなす角+90°の角度である。
【0032】
ワールド座標変換で得られたワールド座標のうちX座標Xwは、フォークリフト10の車幅方向に対するフォークリフト10から特徴点までの距離を示す。Y座標Ywは、フォークリフト10の進行方向に対するフォークリフト10から特徴点までの距離を示す。Z座標Zwは、路面から特徴点までの高さを示す。特徴点は、物体の一部を表す点である。ステップS3の処理を行うことで、物体検出装置41は座標導出部となる。
【0033】
次に、ステップS4において、物体検出装置41は、ワールド座標系に存在する物体を抽出する。物体検出装置41は、物体の一部を表す複数の特徴点のうち同一物体を表していると想定される特徴点の集合を1つの点群とし、当該点群を物体として抽出する。例えば、物体検出装置41は、ステップS3で導出された特徴点のワールド座標から、所定範囲内に位置する特徴点を1つの点群とみなすクラスタ化を行う。物体検出装置41は、クラスタ化された点群を1つの物体とみなす。なお、ステップS4で行われる特徴点のクラスタ化は種々の手法で行うことができる。ステップS1~ステップS4の処理を行うことで、物体検出装置41はワールド座標系に存在する物体を抽出する物体抽出部となる。物体抽出部には、視差画像取得部及び座標導出部が含まれる。
【0034】
次に、ステップS5において、物体検出装置41は、ステップS4で抽出された物体の位置を導出する。なお、物体の位置とは、ワールド座標系のXY平面における物体の座標である。ステップS5の処理を行うことで、図6に示すように、ワールド座標系のXY平面での物体Oの座標を導出することができる。物体検出装置41は、クラスタ化された点群を構成する特徴点のワールド座標から物体Oのワールド座標を認識できる。例えば、クラスタ化された点群のうち端に位置する複数の特徴点のX座標Xw、Y座標Yw及びZ座標Zwを物体OのX座標Xw、Y座標Yw及びZ座標Zwとしてもよいし、点群の中心となる特徴点のX座標Xw、Y座標Yw及びZ座標Zwを物体のX座標Xw、Y座標Yw及びZ座標Zwとしてもよい。即ち、ワールド座標系の物体Oの座標は、物体O全体を表すものであってもよいし、物体Oの一点を表すものであってもよい。
【0035】
図6に示すように、物体検出装置41は、物体OのX座標Xw、Y座標Yw及びZ座標Zwをワールド座標系のXY平面に投影することで、ワールド座標系におけるXY平面での物体OのX座標Xw及びY座標Ywを導出する。即ち、物体検出装置41は、物体OのX座標Xw、Y座標Yw及びZ座標ZwからZ座標Zwを除去することで、水平方向における物体OのX座標Xw及びY座標Ywを導出する。なお、本実施形態のワールド座標系は、フォークリフト10の後端であってフォークリフト10の車幅方向の中心を原点OPとしている。
【0036】
次に、図4に示すように、ステップS6において、物体検出装置41は、人検出処理数をリセットすることで、人検出処理数を0にする。人検出処理数とは、1回の制御周期で人検出処理を行うことが可能な回数であり、言い換えれば、人検出処理を行う対象となる物体Oの数である。
【0037】
ステップS7以降の処理で、物体検出装置41は、ワールド座標系の水平面を表すXY平面から人を検出する。物体検出装置41は、ステップS4で抽出した物体Oが人か否かの判定を行う人検出処理を行うことで、XY平面に存在する人を検出する。本実施形態では、ワールド座標系のXY平面のうち人の検出を行う検出範囲が定められており、物体検出装置41は検出範囲内に存在する人の検出を行う。なお、以下の説明において、ワールド座標系のX軸の延びる方向をX方向、ワールド座標系のY軸の延びる方向をY方向として説明を行う。
【0038】
図7に示すように、本実施形態の検出範囲DAは、フォークリフト10の後方に拡がる四角状の領域である。なお、前述したように、フォークリフト10の後端をワールド座標系の原点OPとしているが、説明の便宜上、図7ではフォークリフト10と原点OPとをY方向に離間させて図示している。検出範囲DAのX方向の中心位置と、フォークリフト10のX方向の中心位置とは同一となっている。検出範囲DAのX方向の寸法、及び検出範囲DAのY方向の寸法は、監視装置30による人検出が可能な範囲内で任意の値を設定することができる。検出範囲DAのX方向の寸法は、フォークリフト10の左右方向=フォークリフト10の旋回方向に対して人の検出を行う範囲を規定している。検出範囲DAのX方向の寸法を調整することで、フォークリフト10の左右方向に対してどこまで人を検出するかを調整することができる。検出範囲DAのY方向の寸法は、フォークリフト10の後方=フォークリフト10の進行方向に対して人の検出を行う範囲を規定している。検出範囲DAのY方向の寸法を調整することで、フォークリフト10の後方に対してどこまで人を検出するかを調整することができる。
【0039】
検出範囲DAは、正面領域Fと、旋回領域CR,CLに分けられている。
正面領域Fは、フォークリフト10の進行方向のうちフォークリフト10の正面となる領域である。フォークリフト10とY方向に向かい合う領域が正面領域Fといえる。正面領域Fは、フォークリフト10が後方に直進した場合に、フォークリフト10の少なくとも一部が通過する領域である。正面領域Fは、1つの中央領域Aと、2つの左右領域BR,BLと、を含む。中央領域Aは、フォークリフト10のX方向の中心位置とY方向に向かい合う領域である。中央領域Aは、X方向の全体に亘ってフォークリフト10とY方向に向かい合う。左右領域BR,BLは、中央領域Aを間に挟んで位置する領域である。2つの左右領域BR,BLは、それぞれ、中央領域AとX方向に隣り合う領域といえる。左右領域BR,BLは、X方向の一部がフォークリフト10とY方向に向かい合う領域である。以下の説明において、適宜、2つの左右領域BR,BLのうちの一方を第1左右領域BR、他方を第2左右領域BLと称する。第1左右領域BRは、フォークリフト10の右方に位置する左右領域であり、第2左右領域BLはフォークリフト10の左方に位置する左右領域である。
【0040】
旋回領域CR,CLは、正面領域Fとは異なる領域である。旋回領域CR,CLは、フォークリフト10とY方向に向かい合わない領域である。旋回領域CR,CLは、フォークリフト10の後進中にフォークリフト10を旋回させた場合にフォークリフト10が通過する領域である。言い換えれば、旋回領域CR,CLは、フォークリフト10が後方に直進している場合にフォークリフト10が通過しない領域である。2つの旋回領域CR,CLは、正面領域Fを間に挟んで位置する領域である。2つの旋回領域CR,CLは、それぞれ、正面領域FとX方向に隣り合う領域である。以下の説明において、適宜、2つの旋回領域CR,CLのうちの一方を第1旋回領域CR、他方を第2旋回領域CLと称する。第1旋回領域CRは、フォークリフト10の右方に位置する旋回領域であり、第2旋回領域CLはフォークリフト10の左方に位置する旋回領域である。
【0041】
ワールド座標系におけるXY平面の検出範囲DAは、複数のブロックF1~F3,CR1~CR12,CL1~CL12が位置するように区画されている。
正面領域Fは、正面領域FをX方向に分割することで3個の第1ブロックF1,F2,F3に区画されている。第1ブロックF1~F3は、中央領域A及び左右領域BR,BL毎に設けられているといえる。全ての第1ブロックF1~F3は、同一の大きさである。第1ブロックF1~F3は、ワールド座標系のX軸に沿う寸法よりもワールド座標系のY軸に沿う寸法の方が長い四角状の領域である。第1ブロックF1~F3のX軸に沿う寸法は、任意の値に設定することができる。本実施形態において第1ブロックF1~F3のX軸に沿う寸法は、人を検出することを想定して設定されており、例えば、人の幅よりも若干大きい寸法に設定される。第1ブロックF1~F3のX軸に沿う寸法は、例えば、400[mm]~1500[mm]に設定される。第1ブロックF1~F3のY軸に沿う寸法は、任意の値に設定することができる。本実施形態において、第1ブロックF1~F3のY軸に沿う寸法は、検出範囲DAのY方向の寸法と同一である。
【0042】
2つの旋回領域CR,CLは、それぞれの旋回領域CR,CLをY方向に分割することで複数の第2ブロックCR1~CR12,CL1~CL12に分割されている。第1旋回領域CRは、12個の第2ブロックCR1~CR12に分割されている。第2旋回領域CLは、12個の第2ブロックCL1~CL12に分割されている。全ての第2ブロックCR1~CR12,CL1~CL12は同一の大きさである。第2ブロックCR1~CR12,CL1~CL12は、ワールド座標系のX軸に沿う寸法よりもワールド座標系のY軸に沿う寸法の方が短い四角状の領域である。第2ブロックCR1~CR12,CL1~CL12のX軸に沿う寸法は、任意の値に設定することができる。本実施形態において、第2ブロックCR1~CR12,CL1~CL12のX軸に沿う寸法は、旋回領域CR,CLのX軸に沿う寸法と同一である。第2ブロックCR1~CR12,CL1~CL12のY軸に沿う寸法は任意に設定することができる。本実施形態において、第2ブロックCR1~CR12,CL1~CL12のY軸に沿う寸法は、人を検出することを想定して設定されており、例えば、人の幅よりも若干大きい寸法に設定される。第2ブロックCR1~CR12,CL1~CL12のY軸に沿う寸法は、例えば、400[mm]~1500[mm]に設定される。
【0043】
検出範囲DAは、フォークリフト10との位置関係に応じて、X方向、あるいは、Y方向のいずれかに分割されているといえる。正面領域Fについては第1ブロックF1~F3が位置し、旋回領域CR,CLについては第2ブロックCR1~CR12,CL1~CL12が位置するようにXY平面の検出範囲DAは区画されている。上記したように分割されたワールド座標系のXY平面に物体Oを投影することで、物体検出装置41は各物体OがいずれのブロックF1~F3,CR1~CR12,CL1~CL12に存在するかを認識可能である。なお、物体Oが複数のブロックF1~F3,CR1~CR12,CL1~CL12に跨がっている場合、物体検出装置41は物体Oの中心座標から物体OがいずれのブロックF1~F3,CR1~CR12,CL1~CL12に存在するかを判定してもよい。また、物体Oが複数のブロックF1~F3,CR1~CR12,CL1~CL12に跨がっている場合、物体検出装置41は、物体Oが複数のブロックF1~F3,CR1~CR12,CL1~CL12に存在していると判定してもよい。このように、物体OがいずれのブロックF1~F3,CR1~CR12,CL1~CL12に存在しているかの判定は、任意の手法で行うことができる。
【0044】
物体検出装置41は、図4に示すステップS7以降の処理で、上記のように区画されたブロックF1~F3,CR1~CR12,CL1~CL12毎に、人が存在するか否かを判定する。
【0045】
図4に示すように、ステップS7において、物体検出装置41は、正面領域Fのうち中央領域Aに人が存在するか否かの判定を行う中央領域処理に移行する。物体検出装置41は、中央領域処理に移行すると、図5に示すステップS31~S34の処理を行う。
【0046】
図5に示すように、ステップS31において、物体検出装置41は、中央領域Aの第1ブロックF1に物体Oが存在するか否かを判定する。ステップS31の判定結果が肯定の場合、物体検出装置41はステップS32の処理を行う。一方で、ステップS31の判定結果が否定の場合、物体検出装置41は中央領域処理を終了する。
【0047】
ステップS32において、物体検出装置41は、人検出処理数に1を加算するインクリメント処理を行う。
次に、ステップS33において、物体検出装置41は、第1ブロックF1に存在する物体Oのうちフォークリフト10に最も近い物体Oを近傍物体O1として抽出する。フォークリフト10に最も近い物体Oとは、第1ブロックF1に単数の物体Oが存在する場合には、当該物体Oであり、第1ブロックF1に複数の物体Oが存在する場合には、複数の物体OのうちY座標Ywが最も原点OPに近い物体Oである。なお、複数の物体Oのうちフォークリフト10に最も近い物体Oは、原点OPからのユークリッド距離が最も短い物体Oとしてもよい。近傍物体O1とは、近傍物体O1とは異なる物体Oよりも優先して人検出処理が行われる物体である。
【0048】
次に、ステップS34において、物体検出装置41は、近傍物体O1が人か否かの判定を行う人検出処理を行う。近傍物体O1が人か否かの判定は、以下の処理によって行うことができる。まず、物体検出装置41は、近傍物体O1のワールド座標をカメラ座標に変換する。ワールド座標からカメラ座標への変換は、以下の(5)式を用いて行うことができる。
【0049】
【数5】
(5)式のX座標Xw、Y座標Yw及びZ座標Zwを近傍物体O1のワールド座標とすることで、近傍物体O1のカメラ座標を導出することができる。なお、本実施形態では、近傍物体O1のワールド座標をXY平面での座標としているため、Z座標Zwは0となる。
【0050】
次に、物体検出装置41は、以下の(6)式及び(7)式を用いて、カメラ座標から第1画像I1上の近傍物体O1の座標を導出する。
【0051】
【数6】
【0052】
【数7】
(6)式及び(7)式のX座標Xc、Y座標Yc及びZ座標Zcを近傍物体O1のカメラ座標とすることで、近傍物体O1の第1画像I1上の座標を導出することができる。
【0053】
物体検出装置41は、第1画像I1上での近傍物体O1の座標に対して人検出処理を行うことで、近傍物体O1が人か否かを判定する。なお、第1画像I1上での近傍物体O1の座標とは、(6)式及び(7)式で導出された座標に加えて、当該座標の周辺の座標を含んでいてもよい。人検出処理は、第1画像I1から特徴量を抽出する特徴量抽出法により行われ、例えば、HOG:Histograms of Oriented Gradientsや、SIFT:Scale Invariant Feature Transformを用いて行われる。これにより、物体検出装置41は、近傍物体O1が人か人以外の物体Oかを判定することができる。なお、フォークリフト10と近傍物体O1との位置関係は、ステップS5で導出しているため、物体検出装置41は、フォークリフト10と近傍物体O1との位置関係を把握することができる。上記したように、ステップS31~ステップS34の処理を行うことで、物体検出装置41は、中央領域Aに人が存在するか否かを判定することができる。
【0054】
図4に示すように、ステップS8において、物体検出装置41は、第1左右領域BRに人が存在するか否かの判定を行う第1左右領域処理に移行する。ステップS8における第1左右領域処理は、中央領域処理と同様の処理によって行うことができる。詳細にいえば、中央領域処理において中央領域Aの第1ブロックF1に対して行った処理を、第1左右領域BRの第1ブロックF3に対して行えばよい。これにより、物体検出装置41は、第1左右領域BRに人が存在するか否かを判定することができる。
【0055】
次に、ステップS9において、物体検出装置41は、第2左右領域BLに人が存在するか否かの判定を行う第2左右領域処理に移行する。ステップS9における第2左右領域処理は、中央領域処理と同様の処理によって行うことができる。詳細にいえば、中央領域処理において中央領域Aの第1ブロックF1に対して行った処理を、第2左右領域BLの第1ブロックF2に対して行えばよい。これにより、物体検出装置41は、第2左右領域BLに人が存在するか否かを判定することができる。
【0056】
次に、ステップS10において、物体検出装置41は、検出距離をリセットすることで、検出距離を1にする。検出距離とは、複数の第2ブロックCR1~CR12,CL1~CL12のうちいずれの第2ブロックCR1~CR12,CL1~CL12を処理の対象とするかを規定するものである。複数の第2ブロックCR1~CR12,CL1~CL12のうちフォークリフト10に最も近い第2ブロックCR1,CL1を1番目、フォークリフト10に2番目に近い第2ブロックCR2,CL2を2番目…のように、フォークリフト10に近い第2ブロックから順に番号を付す。この場合に、検出距離の値に対応する第2ブロックCR1~CR12,CL1~CL12がステップS12以降の処理の対象となる。例えば、検出距離が1であれば、フォークリフト10に最も近い第2ブロックCR1,CL1が処理の対象となる。検出距離が12であれば、フォークリフト10から最も遠い第2ブロックCR12,CL12が処理の対象となる。
【0057】
次に、ステップS11において、物体検出装置41は、検出距離が最大値以下か否かを判定する。物体検出装置41は、ステップS12~ステップS22の処理で、フォークリフト10に最も近い第2ブロックCR1,CL1から順番に人が存在するか否かの判定を行っていく。本実施形態では、第2ブロックCR1~CR12,CL1~CL12の数は、旋回領域CR,CL毎に12個ずつなので、検出距離の最大値は12となる。ステップS11では、全ての第2ブロックCR1~CR12,CL1~CL12について人が存在するか否かの判定が行われたかを判定しているといえる。ステップS11の判定結果が肯定の場合、物体検出装置41は、ステップS12の処理を行う。一方で、ステップS11の判定結果が否定の場合、物体検出装置41は物体検出処理を終了する。
【0058】
ステップS12において、物体検出装置41は、第1旋回領域CRの第2ブロックCR1~CR12に物体Oが存在するか否かを判定する。ステップS12において物体Oが存在するか否かが判定される第2ブロックCR1~CR12は、検出距離に対応する順番の第2ブロックCR1~CR12である。前述したように、検出距離が1であればフォークリフト10に最も近い第2ブロックCR1、検出距離が2であればフォークリフト10から2番目に近い第2ブロックCR2に物体Oが存在するか否かが判定される。ステップS12の判定結果が肯定の場合、物体検出装置41は、ステップS13の処理を行う。一方で、ステップS12の判定結果が否定の場合、物体検出装置41は、ステップS17の処理を行う。
【0059】
ステップS13において、物体検出装置41は、ステップS12で第2ブロックCR1~CR12に存在すると判定された物体Oのうちフォークリフト10に最も近い物体Oを近傍物体O1として抽出する。フォークリフト10に最も近い物体Oとは、第2ブロックCR1~CR12に単数の物体Oが存在する場合には、当該物体Oであり、第2ブロックCR1~CR12に複数の物体Oが存在する場合には、複数の物体OのうちX座標Xwが最も原点OPに近い物体Oである。なお、複数の物体Oのうちフォークリフト10に最も近い物体Oは、原点OPからのユークリッド距離が最も短い物体Oとしてもよい。
【0060】
次に、ステップS14において、物体検出装置41は、ステップS13で抽出された近傍物体O1が人か否かの判定を行う人検出処理を行う。ステップS14で行われる処理は、ステップS34で行われる処理と同様の処理である。即ち、物体検出装置41は、ステップS13で抽出された近傍物体O1のワールド座標を第1画像I1上での近傍物体O1の座標に変換し、当該座標に対して人検出処理を行う。
【0061】
次に、ステップS15において、物体検出装置41は、人検出処理数に1を加算するインクリメント処理を行う。
次に、ステップS16において、物体検出装置41は、人検出処理数が予め定められた最大値未満か否かを判定する。予め定められた最大値は、制御周期内で人検出処理を行うことが可能な数に設定されている。検出範囲DA内の全ての近傍物体O1に対して人検出処理を行うと、制御周期が過剰に長くなるおそれがあるため、人検出処理を行う対象となる近傍物体O1の数を制限することで、制御周期が過剰になることを抑制している。ステップS16の判定結果が肯定の場合、物体検出装置41は、ステップS17の処理を行う。一方で、ステップS16の判定結果が否定の場合、物体検出装置41は、物体検出処理を終了する。ステップS12~ステップS16の処理を行うことで、物体検出装置41は、第1旋回領域CRの各第2ブロックCR1~CR12に人が存在するか否かを判定することができる。
【0062】
ステップS17~ステップS21の処理は、ステップS12~ステップS16で行った処理と同様の処理を第2旋回領域CLに対して行う処理である。ステップS17では、第2旋回領域CLの第2ブロックCL1~CL12に対して、ステップS12と同様の処理を行うことで、物体検出装置41は、第2旋回領域CLの第2ブロックCL1~CL12に物体Oが存在するか否かを判定する。ステップS17の判定結果が肯定の場合、物体検出装置41はステップS18の処理を行う。一方で、ステップS17の判定結果が否定の場合、物体検出装置41はステップS22の処理を行う。
【0063】
ステップS18では、第2旋回領域CLの第2ブロックCL1~CL12に対してステップS13と同様の処理を行うことで、物体検出装置41は、第2旋回領域CLの第2ブロックCL1~CL12に存在する物体Oのうちフォークリフト10に最も近い物体Oを近傍物体O1として抽出する。ステップS13,S18,S33の処理を行うことで、物体検出装置41は近傍物体抽出部となる。
【0064】
ステップS19は、ステップS14と同様の処理であり、物体検出装置41は、ステップS18で抽出された近傍物体O1に対して人検出処理を行う。ステップS14,S19,S34の処理を行うことで、物体検出装置41は、座標変換部及び人判定部となる。ステップS20はステップS15と同一の処理である。ステップS21はステップS16と同一の処理である。ステップS21の判定結果が肯定の場合、物体検出装置41は、ステップS22の処理を行う。一方で、ステップS21の判定結果が否定の場合、物体検出装置41は物体検出処理を終了する。
【0065】
ステップS22において、物体検出装置41は、検出距離に1を加算するインクリメント処理を行う。次に、物体検出装置41は、ステップS11の処理を行う。従って、ステップS11の判定結果が否定になるまで、ステップS12~ステップS22の処理が繰り返し行われることになる。
【0066】
物体検出処理を行うことで、各ブロックF1~F3,CR1~CR12,CL1~CL12のそれぞれに存在する物体Oのうち最もフォークリフト10に近い近傍物体O1に対して人検出処理が行われる。即ち、物体検出装置41は、第1ブロックF1~F3及び第2ブロックCR1~CR12,CL1~CL12毎に、各ブロックF1~F3,CR1~CR12,CL1~CL12に存在する近傍物体O1を抽出し、当該近傍物体O1が人か否かを判定している。図8には、第1画像I1のうち近傍物体O1が存在する座標を一点鎖線の枠A1で示している。
【0067】
図8に示すように、物体検出装置41は、枠A1内の領域に対して人検出処理を行うことになる。これにより、第1画像I1において近傍物体O1が存在する座標に対して人検出処理が行われることになる。本実施形態では、近傍物体O1のみに対して人検出処理が行われ、近傍物体O1とは異なる物体Oに対しては人検出処理が行われない。物体検出装置41は、近傍物体O1とは異なる物体Oよりも近傍物体O1を優先して、第1画像上での座標に対して人検出処理を行うといえる。「優先」とは、上記したように、近傍物体O1が存在する第1画像I1上の座標のみに対して人検出処理を行う態様を含む。
【0068】
上記したように、物体検出装置41は、予め定められたプログラムが実行されることで機能する機能要素として、物体抽出部、近傍物体抽出部、座標変換部、及び人判定部を備えているといえる。
【0069】
本実施形態の作用について説明する。
フォークリフト10が直進している場合、フォークリフト10はY方向に正面領域Fを通過する。フォークリフト10が直進する場合、フォークリフト10の通過する経路は、物体検出処理を行った時点でのY方向に延びる経路になるといえる。正面領域Fに第1ブロックF1~F3が位置するようにXY平面を区画し、第1ブロックF1~F3の近傍物体O1が人か否かを判定することで、物体検出装置41は、フォークリフト10が直進している場合にフォークリフト10の進行の妨げとなり得る人が存在するか否かを検出できる。即ち、フォークリフト10が直進している場合に通過する経路については、フォークリフト10の後方に人が存在するか否かが検出される。
【0070】
フォークリフト10が旋回している場合、フォークリフト10はX方向及びY方向に交差する方向に旋回領域CR,CLを通過する。フォークリフト10が旋回する場合、フォークリフト10の通過する経路は、物体検出処理を行った時点でのY方向から、X方向にずれていくことになる。これにより、フォークリフト10が旋回する場合、フォークリフト10の通過する経路は、物体検出処理を行った時点でのX方向及びY方向に交差する方向に延びる経路になるといえる。
【0071】
仮に、XY平面の検出範囲DAの全体を第1ブロックに分割した場合、各旋回領域CR,CLの第1ブロック毎に、Y方向に対してフォークリフト10に最も近い物体が近傍物体として抽出される。しかしながら、上記したようにフォークリフト10が旋回している場合、フォークリフト10の通過する経路は、Y方向に対してX方向にずれた経路となるため、Y方向に対してフォークリフト10に最も近い物体を近傍物体とすると、フォークリフト10の進行の妨げにならない物体が近傍物体として抽出され得る。すると、フォークリフト10の進行の妨げにならない物体に対して人検出処理が行われる一方で、フォークリフト10の進行の妨げになる物体に対して人検出処理が行われない場合が生じる。このため、フォークリフト10が旋回している場合、フォークリフト10に対してX方向及びY方向の両方に人が存在するか否かを検出できるようにする必要がある。
【0072】
本実施形態では、旋回領域CR,CLについては、Y方向に複数の第2ブロックCR1~CR12,CL1~CL12が位置するようにワールド座標系のXY平面を区画している。第2ブロックCR1~CR12,CL1~CL12の近傍物体O1が人か否かを判定することで、物体検出装置41は、フォークリフト10が旋回している場合にフォークリフト10の進行の妨げとなり得る人が存在するか否かを検出できる。詳細にいえば、X方向に並んで複数の人が存在していた場合には、第2ブロックCR1~CR12,CL1~CL12のうち最もフォークリフト10に近い物体Oである近傍物体O1に対して人検出処理が行われることで、X方向への進行の妨げとなり得る人を検出することができる。Y方向に並んで複数の人が存在していた場合には、Y方向に複数の第2ブロックCR1~CR12,CL1~CL12を配置することで、第2ブロックCR1~CR12,CL1~CL12毎に人検出処理が行われるため、Y方向への進行の妨げとなり得る人を検出することができる。即ち、フォークリフト10が旋回している場合に通過し得る経路については、フォークリフト10の後方に加えて左右方向に人が存在するか否かが検出される。このように、フォークリフト10が通過する経路に合わせたブロックF1~F3,CR1~CR12,CL1~CL12が位置するようにXY平面を区画することで、フォークリフト10の進行と妨げとなり得る人を検出することができる。
【0073】
物体検出装置41は、ブロックF1~F3,CR1~CR12,CL1~CL12毎に別々に近傍物体O1を抽出し、近傍物体O1が人か否かの判定を行っている。フォークリフト10に最も近い近傍物体O1は、フォークリフト10の走行に際して、直近で進行の妨げとなるおそれがある物体Oである。これに対し、近傍物体O1とは異なる物体Oは、近傍物体O1よりもフォークリフト10から離れていることに加えて、フォークリフト10の走行によって近傍物体O1を通過した後には、近傍物体O1になり得る。従って、近傍物体O1とは異なる物体Oは、フォークリフト10の進行の妨げとなり得る場合、次回以降の制御周期で人検出処理が行われることになり、近傍物体O1に比べれば人検出処理を行う優先度は低い。このため、近傍物体O1を抽出して、近傍物体O1が人か否かを判定することで、近傍物体O1とは異なる物体Oについては、人検出処理を行わなくても実用上での支障は生じないと考えられる。
【0074】
フォークリフト10では、人が検出された場合、人以外の物体Oが検出された場合とは異なる処理が行われる場合がある。例えば、監視装置30が報知部を備えている場合、物体検出装置41は、人を検出すると、報知部によってフォークリフト10の搭乗者に対して近くに人がいる旨の報知を行う。報知部としては、例えば、表示によって報知を行う表示器や、音によって報知を行うブザーを用いることができる。また、物体検出装置41は、人を検出すると、フォークリフト10の周辺の人に対して、フォークリフト10が近くにいることを認識させるための報知を行ってもよい。物体検出装置41の検出結果がメインコントローラ20に出力されている場合、メインコントローラ20は人が検出された場合にはフォークリフト10を減速させたり、車速上限を設定する等、車速制限を行ってもよい。
【0075】
ここで、物体検出処理は、所定の制御周期毎に繰り返し行われる。物体検出処理のうち物体Oが人か否かを判定する人検出処理は、物体検出装置41の処理負荷が大きい。第1画像I1の全ての領域に対して人検出処理を行うと処理負荷が大きくなる。フォークリフト10は、乗用車に比べて急旋回が行われる頻度が多く、乗用車に搭載されるステレオカメラよりも画角の広いステレオカメラ31が用いられることが多い。従って、フォークリフト10に搭載される物体検出装置41は人検出処理を行う領域が特に多くなりやすく、処理負荷が大きくなりやすい。
【0076】
処理負荷が大きいと、制御周期内に全ての物体Oに対して人検出処理を行えない場合がある。仮に、フォークリフト10に近い物体Oから順に全ての物体Oに対して人検出処理を行う場合、フォークリフト10の進行の妨げとなる物体Oよりも先に進行の妨げとならない物体Oに対して人検出処理が行われることが生じ得る。すると、制御周期内にフォークリフト10の進行の妨げとなる物体Oに対して人検出処理を行うことができず、進行の妨げとなる人を検出できなかったり、進行の妨げとなる人の検出が遅くなる場合がある。制御周期を維持したまま第1画像I1上の全ての物体Oに対して人検出処理を行おうとすると、処理能力の高い物体検出装置を用いる必要があり、製造コストの増加を招く。また、物体検出装置41の処理能力を維持したまま制御周期内に全ての物体Oに対して人検出処理を行おうとすると、制御周期を長くする必要があり、進行の妨げとなる人の検出が遅くなる。
【0077】
本実施形態では、進行の妨げとなり得る近傍物体O1をブロックF1~F3,CR1~CR12,CL1~CL12毎に抽出し、近傍物体O1が人か否かを判定している。物体検出装置41は、少なくとも近傍物体O1が人か否かを判定すればよいため、全ての物体Oに対して人検出処理を行う場合に比べて処理負荷が小さくなる。また、制御周期は、近傍物体O1が人か否かを判定できるように設定すればよいため、全ての物体Oに対して人検出処理を行う場合に比べて制御周期が長くなることを抑制することができる。
【0078】
なお、物体検出装置41は、操舵角やハンドル角等の操舵情報をメインコントローラ20から取得できれば、フォークリフト10の通過する経路を予め把握することも可能である。この場合、フォークリフト10の通過する経路上に位置する物体Oを近傍物体O1として抽出することができる。しかしながら、メインコントローラ20と物体検出装置41とが接続されていない場合等、物体検出装置41が操舵情報を取得できない場合には、フォークリフト10の通過する経路から近傍物体O1を抽出することができない。そして、近傍物体O1を抽出できない場合、全ての物体Oが人か否かを判定する必要があり、物体検出装置41の処理負荷が大きくなる。
【0079】
これに対し、本実施形態では、ワールド座標系のXY平面を複数のブロックF1~F3,CR1~CR12,CL1~CL12に分割し、ブロックF1~F3,CR1~CR12,CL1~CL12毎に近傍物体O1を抽出している。フォークリフト10が直進する場合の経路と、フォークリフト10が旋回する場合の経路とで異なるブロックF1~F3,CR1~CR12,CL1~CL12を配置している。これにより、フォークリフト10が直進する場合にフォークリフト10の進行の妨げとなり得る近傍物体O1と、フォークリフト10が旋回する場合にフォークリフト10の進行の妨げとなり得る近傍物体O1と、を抽出することができる。このため、メインコントローラ20から操舵情報を得られない場合であっても、複数の物体Oのうち人検出処理を行うべき近傍物体O1を抽出することができる。
【0080】
本実施形態の効果について説明する。
(1)フォークリフト10が通過する経路に応じて、ワールド座標系のXY平面を第1ブロックF1~F3と第2ブロックCR1~CR12,CL1~CL12に区画している。これにより、物体検出装置41は、フォークリフト10の進行の妨げとなり得る近傍物体O1を抽出することができる。物体検出装置41は、近傍物体O1が人か否かを判定することで、人の検出を行うことができる。仮に、単眼カメラで撮像された画像から人検出処理を行う場合、画像の全領域に対して人検出処理を行った後に、人が検出された領域のワールド座標系での座標を導出する。この場合、人検出処理を行う領域が大きく、物体検出装置41の処理負荷が大きくなる。これに対し、ワールド座標系での近傍物体O1の座標をステレオカメラ31によって撮像された第1画像I1上での座標に変換し、第1画像I1上での座標に対して人検出処理を行うことで、第1画像I1の全体に対して人検出処理を行う場合に比べて人検出処理を行う領域が少なく、物体検出装置41の処理負荷を軽減することができる。
【0081】
(2)正面領域Fは、複数の第1ブロックF1~F3に区画されている。正面領域Fを複数の第1ブロックF1~F3に区画することで、第1ブロックF1~F3毎に近傍物体O1を抽出することができる。正面領域Fを1つの第1ブロックにした場合に比べて正面領域Fに人が存在するか否かを細かく判定することができる。
【0082】
(3)物体検出装置41は、ステレオカメラ31による撮像が行われた画像から視差画像を取得し、視差画像からワールド座標系での特徴点の座標を導出している。視差画像から得られたワールド座標系での特徴点の座標と、第1画像I1上での座標とは相互に変換することができる。従って、ステレオカメラ31によって撮像された画像を用いて近傍物体O1を抽出することで、第1画像I1上での近傍物体O1の座標の精度を向上させることができる。
【0083】
(4)物体検出装置41は、旋回領域CR,CLよりも先に正面領域Fに人が存在するか否かを判定している。正面領域Fに存在する人は、旋回領域CR,CLに存在する人に比べてフォークリフト10の進行を妨げる可能性が高い。旋回領域CR,CLよりも優先して正面領域Fに人が存在するか否かを判定することで、フォークリフト10の進行の妨げとなる人を逸早く検出することができる。
【0084】
実施形態は、以下のように変更して実施することができる。実施形態及び以下の変形例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
○人検出処理を行うことが可能な近傍物体O1の数には上限が設定されていてもよい。上限は、例えば、制御周期に応じて定められた値であり、制御周期内で人検出処理を行うことが可能な数に設定される。この場合、物体検出装置41は、第1ブロックF1~F3の近傍物体O1に人検出処理をした後に、第2ブロックのうちフォークリフト10に近い第2ブロックの近傍物体O1から順に人検出処理を行う。即ち、物体検出装置41は、正面領域Fを優先して人が存在するか否かを判定した後に、旋回領域CR,CLに人が存在するか否かを判定する。
【0085】
図9に示す例では、上限が15に設定されている。3個の第1ブロックF1~F3、及び各旋回領域CR,CLにおけるフォークリフト10から近い6個の第2ブロックCR1~CR6,CL1~CL6に物体Oが存在すると、物体検出装置41はこれらのブロックに存在する近傍物体O1が人か否かを判定することになる。一方で、3個の第1ブロックF1~F3、及び12個の第2ブロックCR1~CR6,CL1~CL6のうちの1つに物体Oが存在しない場合、物体検出装置41は旋回領域CR,CLの第2ブロックのうちフォークリフト10から7番目に近い第2ブロックの近傍物体O1に人検出処理を行う。図9に示す例では、第1旋回領域CRの第2ブロックのうちフォークリフト10から4番目に近い第2ブロックCR4に物体Oが存在しないため、第2旋回領域CLのうちフォークリフト10から7番目に近い第2ブロックCL7の近傍物体O1が人か否かの判定が行われることになる。図9に示す例では、第2旋回領域CLのうちフォークリフト10から7番目に近い第2ブロックCL7の近傍物体O1が人か否かの判定が行われるが、第1旋回領域CRの第2ブロックCR7の近傍物体O1が人か否かの判定が行われてもよい。
【0086】
このように、人検出処理を行う近傍物体O1の数に上限を設定することで、物体検出装置41による人検出処理に要する時間が過剰に長くなることを抑制できる。また、物体Oが存在するブロックが少ない場合には、遠方まで人が存在するか否かの判定を行うことができる。
【0087】
○物体検出装置41は、制御周期内であれば、近傍物体O1以外の物体Oについても人検出処理を行ってもよい。「優先」とは、近傍物体O1とは異なる物体Oよりも先に近傍物体O1に対して人検出処理を行う態様を含む。即ち、物体検出装置41は、少なくとも近傍物体O1が人か否かを判定できればよく、各ブロックF1~F3,CR1~CR12,CL1~CL12に存在する物体Oのうち、近傍物体O1と、近傍物体O1の次にフォークリフト10に近い物体Oとが人か否かを判定してもよい。
【0088】
○監視装置30は、ステレオカメラ31に代えて、レーザーレンジファインダと、単眼カメラと、を備えていてもよい。レーザーレンジファインダとしては、水平方向への照射角度を変更しながらレーザーを照射する二次元のレーザーレンジファインダが用いられる。レーザーが当たった部分を照射点とすると、レーザーレンジファインダは照射点までの距離を照射角度に対応付けて測定可能である。即ち、レーザーレンジファインダを原点とした場合の照射点の座標を測定可能である。レーザーレンジファインダにより測定される座標は、実空間上の座標系であるワールド座標系の座標である。レーザーレンジファインダは、測定結果を物体検出装置41に出力する。レーザーレンジファインダを用いる場合、照射点が物体Oの一部を表す点となる。
【0089】
物体検出装置41は、照射点の集合である点群を物体Oとして抽出する。物体Oの抽出は、特徴点を用いた物体Oの抽出と同様の手法で行うことができる。即ち、物体検出装置41は、複数の照射点をクラスタ化することで得られた点群を物体Oとして抽出する。物体検出装置41は、物体Oから近傍物体O1を抽出する。近傍物体O1の抽出は、実施形態と同様の手法で行うことができる。このように、物体検出装置41は、ステレオカメラ31により撮像された画像に代えて、レーザーレンジファインダの測定結果から物体Oを抽出し、物体Oから近傍物体O1を抽出することができる。
【0090】
物体検出装置41は、近傍物体O1を抽出すると、ワールド座標系での近傍物体O1の座標を、カメラとしての単眼カメラによって撮像された画像上の座標に変換する。ワールド座標系の座標と、画像上の座標には相関がある。従って、ワールド座標系の座標と画像上との相関を予め把握し、マップ等を作成することで、ワールド座標系の座標を単眼カメラによる画像上の座標に変換することができる。物体検出装置41は、近傍物体O1の画像上の座標に対して人検出処理を行う。これにより、近傍物体O1が人か否かを判定することができる。
【0091】
監視装置30は、物体検出装置41により、フォークリフト10の周辺に存在する物体を点群として検出可能なセンサを備えていればよく、レーザーレンジファインダに代えて、ミリ波レーダー等のレーダーを備えていてもよい。また、3次元のレーザーレンジファインダを用いてもよい。
【0092】
○物体検出装置41は、正面領域Fよりも先に旋回領域CR,CLに人が存在するか否かを判定してもよい。また、物体検出装置41は、正面領域F及び旋回領域CR,CLに人が存在するか否かを同時に判定するようにしてもよい。
【0093】
○物体検出処理は、ブロックF1~F3,CR1~CR12,CL1~CL12毎に人が存在するか否かを判定できればよく、物体検出装置41により行われる物体検出処理の手順や処理内容は適宜変更してもよい。例えば、物体検出装置41は、ブロックF1~F3,CR1~CR12,CL1~CL12の全てについて近傍物体O1を抽出した後に、抽出された近傍物体O1が人か否かの判定を行ってもよい。実施形態では、ブロックF1~F3,CR1~CR12,CL1~CL12から近傍物体O1を抽出する度に人検出処理を行っていたのに対し、全てのブロックF1~F3,CR1~CR12,CL1~CL12の近傍物体O1が抽出された後に、人検出処理が行われることになる。また、第1旋回領域CRよりも先に第2旋回領域CLに人が存在するか否かが判定されるようにしてもよい。
【0094】
○物体検出処理からステップS6,S15,S16、S20,S21,S32を省略してもよい。この場合、物体検出装置41は、全てのブロックF1~F3,CR1~CR12,CL1~CL12に人が存在するか否かを判定することになる。
【0095】
○正面領域Fは、3個の第1ブロックF1~F3に分割されていなくてもよい。この場合、正面領域Fの全体が1つの第1ブロックとなる。
○第1ブロックの数は適宜変更してもよい。同様に、第2ブロックの数は、適宜変更してもよい。
【0096】
○検出範囲DAは定められていなくてもよい。この場合であっても、ワールド座標系のXY平面を第1ブロックF1~F3と第2ブロックCR1~CR12,CL1~CL12に区画することで、実施形態と同様の効果を得ることができる。
【0097】
○物体検出処理は、フォークリフト10が起動状態のときに常に行われていてもよい。即ち、フォークリフト10が前進しているときにも物体検出処理は行われてもよい。
○監視装置30は、フォークリフト10の前方の人を検出するものであってもよい。この場合、ステレオカメラ31は、フォークリフト10の前方を撮像するように配置される。物体検出装置41は、フォークリフト10が前進するときに物体検出処理を行う。また、監視装置30は、フォークリフト10の前方及び後方の両側の人を検出するものであってもよい。この場合、ステレオカメラ31は、フォークリフト10の前方を撮像するものと、フォークリフト10の後方を撮像するものの両方が設けられる。
【0098】
○物体Oが人か否かの判定は、教師有り学習モデルによる機械学習を行った人判定部を用いて行ってもよい。人判定部としては、例えば、サポートベクタマシン、ニューラルネットワーク、ナイーブベイズ、ディープラーニング、決定木等の教師有り学習器を採用することが可能である。機械学習に用いる教師データとしては、画像から抽出された人の形状要素や、外観要素などの画像固有成分が用いられる。形状要素として、例えば、人の大きさや輪郭などが挙げられる。外観要素としては、例えば、光源情報、テクスチャ情報、カメラ情報などが挙げられる。光源情報には、反射率や、陰影等に関する情報が含まれる。テクスチャ情報には、カラー情報等が含まれる。カメラ情報には、画質、解像度、画角等に関する情報が含まれる。
【0099】
○実施形態では、ワールド座標系のXY平面の物体Oの座標から物体Oが近傍物体O1か否かを判定したが、3軸直交座標系の座標から物体Oが近傍物体O1か否かを判定してもよい。3軸直交座標系での物体Oの座標は、Z座標Zwを含む。
【0100】
○フォークリフト10としては、自動で走行動作及び荷役動作が行われるものであってもよい。自動で走行動作及び荷役動作が行われるフォークリフト10の場合、物体Oが人か否かで、経路や車速を変更してもよい。例えば、メインコントローラ20は、物体Oの回避を行う場合、人以外の場合に比べて、人の場合のほうが回避距離を大きくしたり、物体Oが人の場合の方が近くを走行するときの車速を低くしてもよい。また、フォークリフト10は、自動での操作と手動での操作とを切り替えられるものでもよい。
【0101】
○ワールド座標系は、直交座標系に限られず、極座標系としてもよい。
○ワールド座標系は、ステレオカメラ31のX方向の中心を原点OPとする座標系であってもよい。
【0102】
○物体検出装置41は、ステレオカメラ31によって撮像された画像のうち第2画像から人を検出するようにしてもよい。物体検出装置41は、第2画像上での近傍物体O1の座標を導出するが、第2画像は比較画像であるため、近傍物体O1のワールド座標から画像上での近傍物体O1の座標を導出すると、基線長に応じたずれが生じる。このため、物体検出装置41は、基線長に応じて第2画像上での近傍物体O1の座標を補正し、補正した座標に対して人検出処理を行う。
【0103】
○物体検出装置41は、CAN:Controller Area NetworkやLIN:Local Interconnect Networkなどの車両用の通信プロトコルに従った通信を行うことで、メインコントローラ20とデータの送受信を行うことが可能であってもよい。この場合、物体検出処理の検出結果に応じた処理をメインコントローラ20に行わせることができる。例えば、実施形態で記載したように、メインコントローラ20が車速制限を行う場合や、メインコントローラ20により報知部が作動される場合には、物体検出装置41とメインコントローラ20は通信可能に構成される。一方で、監視装置30が報知部を備えており、物体検出装置41によって報知部が作動される場合には、物体検出装置41とメインコントローラ20は通信可能に構成されていなくてもよい。
【0104】
○物体抽出部、近傍物体抽出部、座標変換部、人判定部、視差画像取得部、及び座標導出部は、それぞれ、別々の装置であってもよい。
○カメラ座標からワールド座標への変換はテーブルデータによって行われてもよい。テーブルデータは、Y座標YcとZ座標Zcの組み合わせにY座標Ywを対応させたテーブルデータと、Y座標YcとZ座標Zcとの組み合わせにZ座標Zwを対応させたテーブルデータである。これらのテーブルデータを物体検出装置41のROMなどに記憶しておくことで、カメラ座標系におけるY座標YcとZ座標Zcから、ワールド座標系におけるY座標Yw及びZ座標Zwを求めることができる。同様に、ワールド座標からカメラ座標への変換についてもテーブルデータによって行われてもよい。
【0105】
○第1カメラ32と第2カメラ33は、鉛直方向に並んで配置されていてもよい。
○第1画像I1の画素数と第2画像の画素数とは異なっていてもよい。例えば、比較画像である第2画像の画素数を視差画像の画素数と同一とし、基準画像である第1画像I1の画素数を第2画像の画素数よりも多くしてもよい。
【0106】
○ステレオカメラ31は、3つ以上のカメラを備えていてもよい。
○ステレオカメラ31は、荷役装置16等、どのような位置に取り付けられていてもよい。
【0107】
○フォークリフト10は、エンジンの駆動によって走行するものでもよい。この場合、走行制御装置は、エンジンへの燃料噴射量などを制御する装置となる。
○物体検出装置41は、建設機械、自動搬送車、トラックなどフォークリフト10以外の産業車両や乗用車などの車両に搭載されていてもよい。
【符号の説明】
【0108】
10…車両としてのフォークリフト、31…カメラとしてのステレオカメラ、41…物体抽出部、近傍物体抽出部、座標変換部、人判定部、視差画像取得部、及び座標導出部としての物体検出装置、F…正面領域、F1~F3…第1ブロック、CR,CL…旋回領域、CR1~CR12,CL1~CL12…第2ブロック。
図1
図2
図3
図4
図5
図6
図7
図8
図9