(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-21
(45)【発行日】2022-11-30
(54)【発明の名称】物体検出装置
(51)【国際特許分類】
G06T 7/593 20170101AFI20221122BHJP
G06T 7/00 20170101ALI20221122BHJP
G08G 1/16 20060101ALI20221122BHJP
【FI】
G06T7/593
G06T7/00 660B
G06T7/00 650B
G08G1/16 C
(21)【出願番号】P 2019030461
(22)【出願日】2019-02-22
【審査請求日】2021-05-20
(73)【特許権者】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】三歩一 卓人
(72)【発明者】
【氏名】石▲崎▼ 将崇
【審査官】佐田 宏史
(56)【参考文献】
【文献】特開2007-316856(JP,A)
【文献】特開2014-081871(JP,A)
【文献】特開2006-113738(JP,A)
【文献】特開2001-351193(JP,A)
【文献】特開2017-083326(JP,A)
【文献】特表2015-520433(JP,A)
【文献】特開2005-259173(JP,A)
【文献】笹谷 聡、外3名,“監視向けステレオカメラを用いた高精度かつ遮蔽ロバストな人物追跡”,SSII2015 第21回 画像センシングシンポジウム 講演論文集,日本,画像センシング技術研究会,2015年06月10日,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00,7/00-7/90
G06V 10/00-10/98
G08G 1/16
H04N 7/18
G01B 11/00-11/30
(57)【特許請求の範囲】
【請求項1】
ステレオカメラと、
前記ステレオカメラによる撮像が行われた画像から各画素に視差が対応付けられた視差画像を取得する視差画像取得部と、
前記視差が取得された特徴点について、実空間上での位置を表す三次元座標系での座標を算出する座標算出部と、
前記三次元座標系の水平面を俯瞰した俯瞰図であって複数のエリアに分割された俯瞰図を得る俯瞰図取得部と、
前記俯瞰図において物体が存在する座標を算出する物体座標算出部と、
前記俯瞰図における前記物体の座標から、前記画像において前記物体が存在する領域を抽出する領域抽出部と、
前記領域に対して人検出処理を行うことで、前記物体が人か否かを判定する人判定部と、を備え、
前記俯瞰図取得部は、前記複数のエリア毎に、前記三次元座標系での座標を表す特徴点を高さの範囲で分けた区分毎に計数し、
前記物体座標算出部は、
前記複数のエリア毎に、当該エリアに存在している物体の高さを前記区分に基づいて設定し、
前記複数のエリアのうち、設定された物体の高さが同一であって互いに隣接したエリアに存在している物体は、同一物体であると判定し、
前記同一物体と判定された物体毎に、前記俯瞰図において物体が存在する座標を算出する物体検出装置。
【請求項2】
前記画像における前記領域の大きさから、前記領域の物体が人候補か否かを判定する人候補判定部を備え、
前記人判定部は、前記人候補判定部によって人候補が存在すると判定された前記領域に対して前記人検出処理を行う請求項
1に記載の物体検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体検出装置に関する。
【背景技術】
【0002】
車両などの移動体には人や、障害物などの物体を検出するための物体検出装置が搭載されている。特許文献1に記載の物体検出装置は、ステレオカメラによって撮像された画像から得られた視差画像に基づきステレオカメラによって撮像された物体の位置を検出している。物体検出装置は、視差画像を左右方向に分割して得られる各領域について視差の頻度分布を算出する。物体検出装置は、視差画像のX軸方向の位置と、間引き視差との関係から画像に写る環境を俯瞰したマップを得ることができる。間引き視差とは、視差を距離に応じた間引き率で変換したものである。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、物体検出装置では、画像から人を検出する人検出処理が行われる場合がある。人検出処理は、例えば、HOG:Histograms of Oriented Gradients等の特徴量抽出法により行われる。人の検出を行う際に、画像の全体に亘って人検出処理を行うと、人を検出するのに要する時間が長くなる。
【0005】
本発明の目的は、人の検出に要する時間を短縮できる物体検出装置を提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決する物体検出装置は、ステレオカメラと、前記ステレオカメラによる撮像が行われた画像から各画素に視差が対応付けられた視差画像を取得する視差画像取得部と、前記視差が取得された特徴点について、実空間上での位置を表す三次元座標系での座標を算出する座標算出部と、前記三次元座標系の水平面を俯瞰した俯瞰図を得る俯瞰図取得部と、前記俯瞰図において物体が存在する座標を算出する物体座標算出部と、前記俯瞰図における前記物体の座標から、前記画像において前記物体が存在する領域を抽出する領域抽出部と、前記領域に対して人検出処理を行うことで、前記物体が人か否かを判定する人判定部と、を備える。
【0007】
俯瞰図は、三次元座標系の水平面を俯瞰したものであるため、俯瞰図における物体の座標は、実空間上の座標といえる。従って、俯瞰図における物体の座標から、画像において物体が存在する領域を抽出することができる。人判定部は、物体が存在している領域に対して人検出処理を行えばよいため、画像の全体に対して人検出処理を行う場合に比べて、人の検出に要する時間を短縮できる。
【0008】
上記物体検出装置について、前記画像における前記領域の大きさから、前記領域の物体が人候補か否かを判定する人候補判定部を備え、前記人判定部は、前記人候補判定部によって人候補が存在すると判定された前記領域に対して前記人検出処理を行ってもよい。
【0009】
人判定部は、人候補と判定された物体に対して人検出処理を行えばよいため、人の検出に要する時間を更に短縮できる。
【発明の効果】
【0010】
本発明によれば、人の検出に要する時間を短縮できる。
【図面の簡単な説明】
【0011】
【
図1】物体検出装置が搭載されるフォークリフトの側面図。
【
図2】フォークリフト及び物体検出装置の概略構成図。
【
図4】物体検出装置が行う処理を示すフローチャート。
【
図6】特徴点がプロットされたプロットエリアを示す図。
【
図7】プロットエリアのうち物体が存在するエリアを示す図。
【
図8】物体が存在する領域を抽出した第1画像を示す図。
【
図9】第1画像において人候補が存在する領域を示す図。
【
図10】第1画像において人が存在する領域を示す図。
【発明を実施するための形態】
【0012】
以下、物体検出装置の一実施形態について説明する。
図1に示すように、フォークリフト10は、車体11と、車体11に設けられた荷役装置12と、を備える。なお、フォークリフト10は、自動で走行動作及び荷役動作が行われるものであってもよいし、搭乗者による操作によって走行動作及び荷役動作が行われるものであってもよい。
【0013】
図2に示すように、フォークリフト10は、メインコントローラ20と、走行用モータM1と、走行用モータM1を制御する走行制御装置23と、車速センサ24と、を備える。メインコントローラ20は、走行動作及び荷役動作に関する制御を行う。メインコントローラ20は、CPU21と、種々の制御を行うためのプログラムなどが記憶されたメモリ22と、を備える。
【0014】
メインコントローラ20のCPU21は、フォークリフト10の車速が目標速度となるように走行制御装置23に走行用モータM1の回転数の指令を与える。本実施形態の走行制御装置23は、モータドライバである。本実施形態の車速センサ24は、走行用モータM1の回転数を検出する回転数センサである。車速センサ24は、走行用モータM1の回転数を走行制御装置23に出力する。走行制御装置23は、メインコントローラ20からの指令に基づき、走行用モータM1の回転数が指令と一致するように走行用モータM1を制御する。
【0015】
フォークリフト10には、物体検出装置30が搭載されている。物体検出装置30は、ステレオカメラ31と、ステレオカメラ31によって撮像された画像の画像処理を行う画像処理部41と、を備える。
図1に示すように、ステレオカメラ31は、例えば、車体11の上部などフォークリフト10の上方からフォークリフト10の走行する路面を鳥瞰できるように配置されている。なお、車体11とは、座席や走行に関する部材を備える基台や、座席の上部に設けられるヘッドガードを含む。本実施形態のステレオカメラ31は、フォークリフト10の後方を撮像する。従って、物体検出装置30で検出される物体は、フォークリフト10の後方の物体となる。
【0016】
なお、フォークリフト10の前方を撮像するステレオカメラを用いてフォークリフト10の前方の物体を検出するようにしてもよい。また、フォークリフト10の前方及び後方を撮像する個別のステレオカメラを用いてフォークリフト10の前方及び後方の両側の物体を検出するようにしてもよい。即ち、ステレオカメラの配置を変更することで、任意の方向の物体を検出することが可能である。フォークリフト10の前方を撮像するステレオカメラを設ける場合、例えば、車体11の上部や荷役装置12の上部などにステレオカメラは設けられる。
【0017】
図2に示すように、ステレオカメラ31は、2つのカメラ32,33を備える。カメラ32,33としては、例えば、CCDイメージセンサや、CMOSイメージセンサが用いられる。各カメラ32,33は、互いの光軸が平行となるように配置されている。本実施形態において、2つのカメラ32,33は、水平方向に並んで配置されている。2つのカメラ32,33のうち、一方を第1カメラ32、他方を第2カメラ33とする。第1カメラ32によって撮像された画像を第1画像、第2カメラ33によって撮像された画像を第2画像とすると、第1画像と第2画像では同一物体が横方向にずれて写ることになる。詳細にいえば、同一物体を撮像した場合、第1画像に写る物体と、第2画像に写る物体では、横方向の画素[px]にカメラ32,33間の距離に応じたずれが生じることになる。第1画像及び第2画像は、画素数が同じであり、例えば、640×480[px]=VGAの画像が用いられる。第1画像及び第2画像は、RGB形式の画像である。
【0018】
画像処理部41は、CPU42と、RAM及びROM等からなる記憶部43と、を備える。記憶部43には、ステレオカメラ31によって撮像された画像から物体を検出するための種々のプログラムが記憶されている。画像処理部41は、各種処理のうち少なくとも一部の処理を実行する専用のハードウェア、例えば、特定用途向け集積回路:ASICを備えていてもよい。画像処理部41は、コンピュータプログラムに従って動作する1つ以上のプロセッサ、ASIC等の1つ以上の専用のハードウェア回路、あるいは、それらの組み合わせを含む回路として構成し得る。プロセッサは、CPU、並びに、RAM及びROM等のメモリを含む。メモリは、処理をCPUに実行させるように構成されたプログラムコードまたは指令を格納している。メモリ、即ち、コンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆるものを含む。
【0019】
以下、画像処理部41により行われる物体検出処理について説明する。物体検出処理は、フォークリフト10が起動状態のときに繰り返し行われる。起動状態とは、フォークリフト10に走行動作及び荷役動作を行わせることが可能な状態である。以下の説明では、一例として、
図3に示す環境をステレオカメラ31によって撮像した場合の物体検出処理について説明する。
図3は、フォークリフト10の周辺を撮像することで得られた第1画像I1である。第1画像I1から把握できるように、フォークリフト10の周辺には、人や、人以外の物体が存在している。人以外の物体とは、フォークリフト10の進行の妨げとなる障害物である。
【0020】
図4及び
図5に示すように、ステップS1において、画像処理部41は、視差画像dpを取得する。視差画像dpは、画素に対して視差[px]を対応付けた画像である。視差は、第1画像I1と、第2画像とを比較し、各画像に写る同一特徴点について第1画像I1と第2画像の画素数の差を算出することで得られる。なお、特徴点とは、物体のエッジなど、境目として認識可能な部分である。特徴点は、輝度情報などから検出することができる。
【0021】
画像処理部41は、ステレオカメラ31によって撮像されている映像から同一フレームの第1画像I1及び第2画像を取得する。画像処理部41は、各画像を一時的に格納するRAMを用いて、RGBからYCrCbへの変換を行う。なお、画像処理部41は、歪み補正、エッジ強調処理などを行ってもよい。画像処理部41は、第1画像I1の各画素と第2画像の各画素との類似度を比較して視差を算出するステレオ処理を行う。なお、ステレオ処理としては、画素毎に視差を算出する手法を用いてもよいし、各画像を複数の画素を含むブロックに分割してブロック毎の視差を算出するブロックマッチング法を用いてもよい。各画素の類似度の比較には、例えば、SAD:Sum of Absolute Difference、SSD:Sum of Squared Differenceなどが用いられる。画像処理部41は、第1画像I1を基準画像、第2画像を比較画像として視差画像dpを取得する。画像処理部41は、第1画像I1の画素毎に、最も類似する第2画像の画素を抽出し、第1画像I1の画素と、当該画素に最も類似する画素の横方向の画素数の差を視差として算出する。これにより、基準画像である第1画像I1の各画素に視差が対応付けられた視差画像dpを取得することができる。なお、視差画像dpとは、必ずしも表示を要するものではなく、視差画像dpにおける各画素に視差が対応付けられたデータのことを示す。ステップS1の処理を行うことで、画像処理部41は、視差画像取得部として機能する。
【0022】
図5には、第1画像I1と第2画像から得られた視差画像dpを示す。
図5に示す視差画像dpでは、視差の大小を濃淡で表現している。視差は、ステレオカメラ31に近い位置ほど大きくなり、ステレオカメラ31から離れるほど小さくなる。以下、視差画像dpの横方向=X軸方向の座標をX座標Xiとし、視差画像dpの縦方向=Y軸方向の座標をY座標Yiとする。なお、視差画像dpは第1画像I1を基準画像として取得された画像であるため、X座標Xi及びY座標Yiは第1画像I1の座標ともいえる。X座標Xiは横方向の画素位置を示し、Y座標Yiは縦方向の画素位置を示す。例えば、視差画像dpが640×480[px]であれば、視差画像dpの中心座標は、(Xi:320,Yi:240)と表すことができる。
【0023】
図4に示すように、ステップS2において、画像処理部41は、視差画像dpから路面の視差を除去する。路面とは、フォークリフト10が存在している面である。路面の視差は、以下の(1)式によって予め求められる。
【0024】
【数1】
(1)式におけるM
0(y)は路面により生じる視差である。yは、視差画像dpにおけるY座標Yiである。Bは第1カメラ32と第2カメラ33との離間距離=基線長[mm]であり、詳細にいえば、第1カメラ32の光軸と第2カメラ33の光軸との離間距離である。Hはステレオカメラ31の設置高さ[mm]であり、詳細にいえば、路面からステレオカメラ31までの距離である。θは、ステレオカメラ31の設置角度であり、ステレオカメラ31の光軸が水平方向に延びている場合を0°とした場合の角度である。Fは焦点距離[mm]である。(1)式によって求められた路面の視差は、記憶部43に記憶されている。画像処理部41は、視差画像dpから路面の視差を除去することで、路面の視差が除去された視差画像dpを取得することができる。即ち、路面よりも高い位置に存在する物体により生じる視差を抽出した視差画像dpを得ることができる。
【0025】
ステップS3において、画像処理部41は、ワールド座標系における特徴点の座標を算出する。まず、画像処理部41は、カメラ座標系における特徴点の座標を算出する。カメラ座標系は、光軸をZ軸とし、光軸に直交する2つの軸のそれぞれをX軸、Y軸とする3軸直交座標系である。カメラ座標系における特徴点の座標は、カメラ座標系におけるZ座標Zc、X座標Xc及びY座標Ycで表わすことができる。Z座標Zc、X座標Xc及びY座標Ycは、それぞれ、以下の(2)式~(4)式を用いて算出することができる。
【0026】
【0027】
【0028】
【数4】
(2)式~(4)式におけるBは基線長[mm]、fは焦点距離[mm]、dは視差[px]である。xpは視差画像dp中の任意のX座標Xiであり、x’は視差画像dpの中心座標のX座標Xiである。ypは視差画像dp中の任意のY座標Yiであり、y’は視差画像dpの中心座標のY座標Yiである。
【0029】
xpを視差画像dp中の特徴点のX座標Xiとし、ypを視差画像dp中の特徴点のY座標Yiとし、dを特徴点の座標に対応付けられた視差とすることで、カメラ座標系における特徴点の座標が算出される。
【0030】
ここで、フォークリフト10の進行方向に延びる軸をY軸、鉛直方向に延びる軸をZ軸、Y軸及びZ軸に直交する軸をX軸とする3軸直交座標系での座標を実空間上での三次元座標系であるワールド座標系とする。ワールド座標系での特徴点の座標は、ワールド座標系におけるX座標Xw、Y座標Yw、Z座標Zwで表わすことができる。
【0031】
画像処理部41は、以下の(5)式を用いてカメラ座標系をワールド座標系に変換するワールド座標変換を行う。
【0032】
【数5】
ここで、(5)式におけるHはワールド座標系におけるステレオカメラ31の設置高さ[mm]であり、θはカメラ32,33の光軸と、水平面とがなす角+90°の角度である。
【0033】
ワールド座標変換で得られたワールド座標のうちX座標Xwは、フォークリフト10の左右方向に対するフォークリフト10から特徴点までの距離を示す。なお、左右とは、ステレオカメラ31が向いている方向を前とした場合の左右である。Y座標Ywは、フォークリフト10の進行方向に対するフォークリフト10から特徴点までの距離を示す。Z座標Zwは、路面から特徴点までの高さを示す。ステップS3の処理を行うことで、画像処理部41は、座標算出部として機能する。
【0034】
次に、
図4及び
図6に示すように、ステップS4において、画像処理部41は、ワールド座標系における水平面を表す座表面であるXY平面を複数のエリアA1に分割して、プロットエリアA2とする。プロットエリアA2は、横方向をX軸方向、縦方向をY軸方向とし、1つのエリアA1を1つの画素とみなした画像と捉えることができる。プロットエリアA2のうちY座標Ywが最小であり、X座標XwがプロットエリアA2の中心である座標をプロットエリアA2の原点Oとする。原点Oは、フォークリフト10の位置、詳細にいえば、ステレオカメラ31の位置といえる。原点OからX軸方向に離れるほど、左右方向に対してフォークリフト10から離れており、原点OからY軸方向に離れるほど、前後方向に対してフォークリフト10から離れている。原点Oを(Xw:0,Yw:0)とし、原点Oより左側のX座標Xwは-の値とし、原点Oより右側のX座標Xwは+の値とする。即ち、X座標Xwの-と+は、フォークリフト10に対して左右いずれの方向かを示すものである。プロットエリアA2は、特徴点をプロットしたワールド座標系を俯瞰した俯瞰図である。言い換えれば、プロットエリアA2は、ステレオカメラ31によって撮像された環境を俯瞰した俯瞰図といえる。
【0035】
各エリアA1は、同一の大きさであり、例えば、一辺を500[mm]とする正方形である。本実施形態では、直立した人を俯瞰した場合に、人の水平方向への寸法の取り得る最大値を考慮してエリアA1の大きさは設定される。直立した人の水平方向への寸法の取り得る最大値とは、例えば、人の肩幅である。人の肩幅としては、例えば、成人の平均値を採用することができる。
【0036】
次に、ステップS5において、画像処理部41は、エリアA1毎に含まれる特徴点を計数する。画像処理部41は、各特徴点のX座標Xw及びY座標Ywから各特徴点がいずれのエリアA1に位置しているかを判定し、エリアA1毎に特徴点を計数する。プロットエリアA2はXY平面であるため、特徴点の座標からは特徴点の高さ情報であるZ座標Zwが失われる。画像処理部41は、特徴点の計数を行う際に、特徴点の高さの範囲で分けた区分毎に特徴点を計数する。なお、X座標Xw及びY座標Ywが同一であり、Z座標Zwのみが異なる複数の特徴点が存在する場合、プロットエリアA2では、同一座標に複数の特徴点が存在することになる。この場合、同一座標に存在する複数の特徴点毎に個別に計数を行う。
【0037】
特徴点の高さの範囲で分けた区分とは、隣接した物体同士を区別できるように設定されている。好ましくは、ステレオカメラ31の撮像範囲に人と、当該人に隣り合う物体とが存在する場合、人と物体とを別々の物体と区別できるように区分が設定される。本実施形態では、特徴点の高さの範囲は、500[mm]以上1000[mm]未満、1000[mm]以上1500[mm]未満、1500[mm]以上2000[mm]未満、2000[mm]以上の4つの区分に分けられている。以下、500[mm]以上1000[mm]未満の範囲を第1区分、1000[mm]以上1500[mm]未満の範囲を第2区分、1500[mm]以上2000[mm]未満の範囲を第3区分、2000[mm]以上の範囲を第4区分として説明を行う。
【0038】
次に、
図4及び
図7に示すように、ステップS6において、画像処理部41は、物体が存在しているエリアA1を検出する。画像処理部41は、ステップS5での計数によって、特徴点の総和が閾値を越えたエリアA1には、物体が存在していると判定する。なお、特徴点の総和とは、区分毎に計数された特徴点の数の合計である。閾値としては、ステレオ処理の精度等を原因として生じる僅かな特徴点が存在するエリアA1に、物体が存在していると判定されないような値に設定される。即ち、物体が存在していないにも関わらず、物体が存在していると判定されないように閾値は設定されている。
図7には、物体が存在していると判定されたエリアA1をプロットしている。ステップS4~ステップS6の処理を行うことで、画像処理部41は俯瞰図取得部として機能する。
【0039】
なお、ステレオカメラ31から離れた位置ほど視差が小さくなるため、視差が1変化したときに算出される特徴点の座標はY座標Ywが大きくなるほど、即ち、原点Oから離れるほど大きく変化する。結果として、Y座標Ywが大きくなるほど特徴点は離散的になり、Y座標Ywが大きいエリアA1ほど、物体が存在していると判定されにくくなる。しかしながら、Y座標Ywが大きいエリアA1ほどフォークリフト10から離れたエリアA1であり、フォークリフト10に近いエリアA1に比べて、フォークリフト10から離れたエリアA1の物体を検出する必要性は低い。また、物体検出処理は繰り返し行われるため、フォークリフト10の進行に伴い物体とフォークリフト10が近付けば、距離を原因として検出されなかった物体も検出されるようになる。このため、Y座標Ywが大きいエリアA1ほど物体が存在していると判定されにくい場合であっても、実用上の支障は来さないと考えられる。
【0040】
次に、
図4及び
図7に示すように、ステップS7において、画像処理部41は、エリアA1毎に検出された物体から同一物体を検出する。プロットエリアA2では、同一物体がエリアA1毎に分離されているため、同一物体が存在していると予測されるエリアA1を抽出して、分離された物体を1つの物体として処理を行えるようにする。各エリアA1に存在する物体が同一物体か否かは、種々の手法により判定することができる。本実施形態では、エリアA1の位置及び物体の高さ情報から各エリアA1に存在する物体が同一物体か否かを判定する。
【0041】
画像処理部41は、各エリアA1に存在する物体の高さを設定する。物体の高さとは、特徴点の高さの範囲を表す各区分のいずれかである。画像処理部41は、第1区分を含む複数の区分に特徴点が存在している場合であり、かつ、第1区分から連続して区分に特徴点が存在する場合、第1区分から連続して特徴点が存在する区分のうち最も高い区分を物体の高さとして設定する。例えば、第1区分、第2区分及び第4区分のそれぞれに特徴点が存在しており、第3区分に特徴点が存在していないエリアA1であれば、第1区分から連続して特徴点が存在する区分は第2区分までとなるため、物体の高さは第2区分になる。なお、特徴点が存在する区分とは、ステップS5での特徴点の計数によって、特徴点が計数された区分である。画像処理部41は、計数された特徴点の数に計数閾値を設定し、計数された特徴点の数が計数閾値を超えた区分には特徴点が存在していると判定してもよい。即ち、特徴点の数が計数閾値に満たない区分には、特徴点が存在していないと判定してもよい。
【0042】
画像処理部41は、第1区分を含む複数の区分に特徴点が存在している場合で、かつ、第1区分に連続した区分に特徴点が存在しない場合には第1区分を物体の高さとして設定する。例えば、第1区分及び第3区分に特徴点が存在し、第2区分に特徴点が存在しない場合、物体の高さとして第1区分が設定される。
【0043】
画像処理部41は、第1区分を除く複数の区分に特徴点が存在している場合には、複数の区分のうち最も高い区分を物体の高さとして設定する。例えば、第2区分及び第3区分に特徴点が存在しており、第1区分及び第4区分に特徴点が存在していない場合、物体の高さとして第3区分が設定される。画像処理部41は、いずれか1つの区分に特徴点が存在している場合、当該区分を物体の高さとして設定する。例えば、第2区分にのみ特徴点が存在している場合、物体の高さとして第2区分が設定される。
図7では、物体が存在するエリアA1の濃淡によって、物体の高さを表している。
【0044】
物体が路面上に位置している場合、特徴点は、第1区分のみ、あるいは、第1区分から連続する区分に存在することになる。従って、第1区分に特徴点が存在しているにも関わらず、特徴点が存在しない区分よりも高い区分に特徴点が存在しているエリアA1には、飛行体など路面から浮いた物体が存在していると推測できる。この場合には、路面から浮いている物体は存在しないとみなし、路面から浮いている物体の下方に存在する物体のみを物体として認識する。
【0045】
画像処理部41は、同一の高さの物体のうち隣接したエリアA1に存在している物体を同一物体であると判定する。なお、互いに隣接したエリアA1とは、Y軸方向及びX軸方向に隣り合う4つのエリアA1に加えて、斜めに隣り合う4つのエリアA1を含むものである。即ち、各エリアA1と、当該エリアA1を囲む八方のエリアA1は、互いに隣接したエリアA1といえる。同一物体が存在するエリアA1は、1又は複数のエリアA1から構成される。
【0046】
次に、ステップS8において、画像処理部41は、同一物体と判定された物体毎に、プロットエリアA2での座標を算出する。プロットエリアA2は、ワールド座標系のXY平面であるため、プロットエリアA2での座標は、ワールド座標といえる。物体が存在するエリアA1は、少なくとも1つのエリアA1により構成されているため、物体は複数の座標に跨がって存在しているといえる。プロットエリアA2上の物体のうち、いずれの位置の座標を算出するかは任意に設定することができる。例えば、X座標Xwは、物体の中心座標とし、Y座標Ywは物体のうち最も原点Oに近い座標としてもよい。また、物体のうち最も原点Oに近い位置のX座標Xw及びY座標Ywと、物体のうち最も原点Oから離れた位置のX座標Xw及びY座標Ywとを算出する等、複数の座標を算出してもよい。物体のX座標Xwは、X軸方向に対する原点Oからの距離によって算出することができる。物体のY座標Ywは、Y軸方向に対する原点Oからの距離によって算出することができる。ステップS8の処理を行うことで、画像処理部41は、物体座標算出部として機能する。
【0047】
次に、画像処理部41は、
図4及び
図8に示すように、ステップS9において、第1画像I1での物体の領域F1~F5を抽出する。まず、画像処理部41は、ステップS8で算出された物体のワールド座標をカメラ座標に変換する。ワールド座標からカメラ座標への変換は、以下の(6)式を用いて行うことができる。
【0048】
【数6】
(6)式のX座標Xw、Y座標Yw、Z座標ZwをステップS8で算出された物体のワールド座標とすることで、物体のカメラ座標を算出することができる。Z座標Zwとしては、0としてもよいし、物体の高さとして設定された区分から任意の値を採用してもよい。
【0049】
次に、画像処理部41は、以下の(7)式及び(8)式を用いて、カメラ座標から第1画像I1上での物体の座標を算出する。
【0050】
【0051】
【数8】
(7)式及び(8)式のX座標Xc、Y座標Yc、Z座標Zcを物体のカメラ座標とすることで、物体の第1画像I1上での座標を算出することができる。画像処理部41は、物体の第1画像I1上での座標から、第1画像I1において物体が存在する領域F1~F5を抽出する。
図8に示すように、第1画像I1からは5つの領域F1~F5が抽出される。画像処理部41は、第1画像I1上の物体の座標を一箇所のみ算出した場合、当該座標から領域F1~F5を抽出する。例えば、Z座標Zwを0とし、第1画像I1における物体の最下部の座標を算出した場合、算出された座標から第1画像I1のY軸方向に物体が延びている。このため、算出された座標からY軸方向に拡がる領域F1~F5を抽出する。また、プロットエリアA2で物体が占有するエリアA1の数に応じて領域F1~F5の広さを設定してもよい。画像処理部41は、第1画像I1上での物体の縁となる複数の座標を算出した場合、算出した座標同士の間を領域F1~F5としてもよい。即ち、領域F1~F5は、算出した第1画像I1上での座標を用いて、種々の態様で抽出することができる。ステップS9の処理を行うことで、画像処理部41は、領域抽出部として機能する。
【0052】
次に、
図4、
図8及び
図9に示すように、ステップS10において、画像処理部41は、領域F1~F5に存在する物体が人候補か否かを判定する。物体が人候補か否かの判定は、領域F1~F5の大きさを用いて判定される。なお、領域F1~F5の大きさには、領域F1~F5の縦方向=X軸方向の寸法、領域F1~F5の横方向=Y軸方向の寸法及び領域F1~F5の広さが含まれる。領域F1~F5に存在する物体が人候補か否かは、領域F1~F5の縦横比から判定されてもよい。直立した人を水平方向から撮像した場合の縦横比は、2:1~4:1の範囲に収まると推測される。このため、縦横比が2:1~4:1となる物体を人候補と判定してもよい。また、領域F1~F5に存在する物体が人候補か否かの判定は、ステレオカメラ31からの距離=Y座標Ywに対する領域F1~F5の広さから判定されてもよい。直立した人を水平方向から撮像した場合に領域F1~F5の広さが取り得る範囲は推測することができる。また、ステレオカメラ31から離れるほど領域F1~F5は小さくなる。このため、Y座標Ywに応じて予め設定された範囲内に、領域F1~F5の広さが収まるか否かによって物体が人候補か否かを判定してもよい。なお、領域F1~F5の広さとは、領域F1~F5の縦方向の寸法×横方向の寸法で表される面積であってもよいし、領域F1~F5の画素数であってもよい。
【0053】
画像処理部41は、領域F1~F5に存在する物体が人候補か否かの判定を、領域F1~F5の縦横比から判定してもよいし、領域F1~F5の広さから判定してもよい。また、画像処理部41は、領域F1~F5の縦横比及び領域F1~F5の広さの両方から領域F1~F5に存在する物体が人候補か否かの判定を行ってもよい。この場合、画像処理部41は、領域F1~F5の縦横比が予め定められた範囲に収まる第1条件及び領域F1~F5の広さが予め定められた範囲に収まる第2条件のうちいずれかが成立した場合に、領域F1~F5に存在する物体が人候補であると判定してもよい。また、画像処理部41は、第1条件及び第2条件の両方が成立した場合に領域F1~F5に存在する物体が人候補であると判定してもよい。即ち、領域F1~F5に存在する物体が人候補か否かの判定は、種々の態様で行うことができる。
【0054】
また、ステレオカメラ31の設置高さやステレオカメラ31の設置角度によって、人の写り方は異なり、これにより、領域F1~F5の大きさも変化する。具体的にいえば、ステレオカメラ31の設置高さが高いほど領域F1~F5は狭くなる。カメラ32,33の光軸の延びる方向が鉛直方向に近付くほど領域F1~F5の縦方向の寸法は短くなる。従って、ステレオカメラ31の設置高さやステレオカメラ31の設置角度によって、物体が人候補か否かを判定するための縦横比の範囲や領域F1~F5の広さの範囲を変更してもよい。具体的にいえば、ステレオカメラ31の設置高さが高いほど、物体が人候補か否かを判定するための領域F1~F5の広さについて、範囲の下限値と上限値を小さくしてもよい。また、カメラ32,33の光軸の延びる方向が鉛直方向に近いほど、物体が人候補か否かを判定するための領域F1~F5の縦横比の範囲について、範囲の下限値と上限値を小さくしてもよい。
【0055】
人の年齢や、性別によっても領域F1~F5の大きさは異なり、人の姿勢によっても領域F1~F5の大きさは異なる。このため、どのような人を検出対象とするかによって、物体が人候補か否かを判定するための縦横比の範囲や領域F1~F5の広さの範囲を変更してもよい。
図9に示すように、第1画像I1では、領域F1~F5のうち領域F1,F2,F4に存在する物体が人候補と判定される。画像処理部41は、ステップS10の処理を行うことで、人候補判定部として機能する。
【0056】
次に、
図4、
図9及び
図10に示すように、ステップS11において、画像処理部41は、第1画像I1において人候補が存在していると判定された領域F1,F2,F4に対して人検出処理を行う。人検出処理は、第1画像I1から特徴量を抽出する特徴量抽出法により行われ、例えば、HOG:Histograms of Oriented Gradientsや、SIFT:Scale Invariant Feature Transformを用いて行われる。これにより、画像処理部41は、ステップS10で検出された人候補が人か人以外の物体かを判定することができる。
図10に示すように、第1画像I1では、領域F1,F2,F4のうち領域F1,F4に存在する物体が人であると判定される。なお、フォークリフト10と人との位置関係は、ステップS9で予め算出しているため、画像処理部41は、フォークリフト10と人との位置関係を把握することができる。ステップS11の処理を行うことで、画像処理部41は、人判定部として機能する。
【0057】
本実施形態の作用について説明する。
プロットエリアA2は、ワールド座標系のXY平面を俯瞰したものであるため、画像処理部41は、物体のプロットエリアA2上での座標から第1画像I1における領域F1~F5を抽出することができる。そして、画像処理部41は、領域F1~F5に対して人検出処理を行うことで、第1画像I1から人を検出することができる。
【0058】
フォークリフト10では、検出した物体が人の場合、物体が人以外の場合とは異なる処理が行われる場合がある。例えば、搭乗者の操作により動作するフォークリフト10の場合、物体検出装置30によって人が検出されると、メインコントローラ20は搭乗者に対して近くに人がいる旨の報知を行う。報知は、表示によって報知を行う表示器や、音によって報知を行うブザー等を用いて行われる。また、メインコントローラ20は、フォークリフト10の周辺の人に対して、フォークリフト10が近くにいることを認識させるための報知を行ってもよい。自動で動作するフォークリフト10の場合、物体が人の場合と、物体が人以外の場合とで、走行経路や車速を変更する場合がある。例えば、メインコントローラ20は、物体の回避を行う場合、物体が人以外の場合に比べて、物体が人の場合のほうが回避距離を大きくしたり、物体が人の場合の方が近くを走行するときの車速を低くする。
【0059】
本実施形態の効果について説明する。
(1)画像処理部41は、第1画像I1において物体が存在している領域F1~F5を抽出し、抽出した領域F1~F5に対して人検出処理を行う。領域F1~F5に対して人検出処理を行えばよいため、第1画像I1の全体に対して人検出処理を行う場合に比べて、人の検出に要する時間を短縮できる。
【0060】
(2)画像処理部41は、領域F1~F5の大きさから物体が人候補か否かを判定し、人候補が存在すると判定された領域F1,F2,F4に対して人検出処理を行う。物体が人候補か否かは、領域F1~F5の大きさから判定できるため、短時間で判定を行うことができる。従って、全ての領域F1~F5に対して人検出処理を行う場合に比べて、人の検出に要する時間を短縮できる。
【0061】
実施形態は、以下のように変更して実施することができる。実施形態及び以下の変形例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
○物体が人候補か否かの判定を行うことなく、全ての領域F1~F5に対して人検出処理を行ってもよい。
【0062】
○画像処理部41は、特徴点が存在する区分同士の間に、特徴点が存在しない区分が存在するか否かに関わらず、特徴点が存在する区分のうち最も高い区分を物体の高さとして設定してもよい。即ち、画像処理部41は、路面から浮いている物体が存在すると推測される場合、路面から浮いている物体によって生じた特徴点を考慮して物体の高さを設定してもよい。
【0063】
○画像処理部41は、第1区分を除く複数の区分に特徴点が存在している場合であり、かつ、特徴点が存在する区分同士の間に特徴点が存在しない区分が介在している場合、低い方の区分を物体の高さとして設定してもよい。例えば、第2区分及び第4区分に特徴点が存在しており、第3区分に特徴点が存在していない場合、物体の高さとして第2区分を設定してもよい。第2区分及び第4区分に特徴点が存在しており、第3区分に特徴点が存在していない場合、上下に向かい合う2つの物体が同一エリアA1に存在しているといえる。この場合、特徴点が存在する区分のうち最も高い区分とは、上下に向かい合う2つの物体のうち下方の物体によって生じた特徴点のみを考慮した区分である。
【0064】
○特徴点の高さの区分は、4つ以上に分けられていてもよい。例えば、実施形態の区分に加えて、0[mm]以上500[mm]未満の区分を第5区分として追加してもよい。
○画像処理部41は、エリアA1に物体が存在しているか否かを判定する際の閾値をプロットエリアのY座標Ywに応じて変更してもよい。画像処理部41は、Y軸方向に対して原点Oから離れたエリアA1ほど、閾値を低くする。これにより、Y軸方向に対して原点Oから離れたエリアA1ほど、特徴点の総和が低くても物体が存在していると判定されることになる。実施形態に記載したように、Y座標Ywが大きくなるほど特徴点は離散的になる。このため、Y軸方向に対して原点Oから離れたエリアA1ほど、閾値を低くすることで、特徴点が離散しやすいエリアA1でも物体の検出を行うことができる。即ち、フォークリフト10から離れている物体であっても検出が可能になる。
【0065】
○画像処理部41は、特徴点の計数を行う際に、X座標Xw及びY座標Ywが同一であり、Z座標Zwのみが異なる複数の特徴点が存在する場合、Z座標Zwが最も大きい特徴点のみを計数してもよい。
【0066】
○物体が人か否かの判定は、教師有り学習モデルによる機械学習を行った人判定部に対して第1画像I1を入力することで行われてもよい。詳細にいえば、学習済みの人判定部に対して、第1画像I1のうち物体が写っている領域F1~F5を入力することで、物体が人か否かを判定させてもよい。人判定部としては、例えば、サポートベクタマシン、ニューラルネットワーク、ナイーブベイズ、決定木等の教師有り学習器を採用することが可能である。機械学習に用いる教師データとしては、画像から抽出された人の形状要素や、外観要素などの画像固有成分が用いられる。形状要素として、例えば、人の大きさや輪郭などが挙げられる。外観要素としては、例えば、光源情報、テクスチャ情報、カメラ情報などが挙げられる。光源情報には、反射率や、陰影等に関する情報が含まれる。テクスチャ情報には、カラー情報等が含まれる。カメラ情報には、画質、解像度、画角等に関する情報が含まれる。
【0067】
○俯瞰図として、複数のエリアA1に分割されたプロットエリアA2以外を用いてもよい。例えば、特許文献1に記載された俯瞰図であってもよい。
○三次元座標系は、直交座標系に限られず、極座標系としてもよい。この場合、極座標系のうち水平面を表す座表面は、座標面の原点を中心として扇状のエリアA1に分割される。
【0068】
○ステレオカメラ31によって撮像された画像のうち第2画像から人を検出するようにしてもよい。この場合、画像処理部41は、プロットエリアA2の原点Oと物体との位置関係から第2画像上での人候補の座標を算出するが、第2画像は比較画像であるため、基線長に応じたずれが生じる。このため、画像処理部41は、基線長に応じて第2画像上での人候補の座標を補正し、補正した座標から物体が存在している領域を抽出する。
【0069】
○画像処理部41は、視差画像dpから路面の視差を除去する際に、ハフ変換などの直線抽出法を用いて路面を検出してもよい。路面は、平坦であるため、路面の視差はステレオカメラ31から離れるにつれて徐々に小さくなっていく。従って、視差画像dpのY座標Yiと、路面の視差との二次元座標系に視差をプロットすると、路面の視差が直線状になって現れる。画像処理部41は、この直線の視差を路面の視差として除去する。
【0070】
○画像処理部41は、路面の視差を除去しなくてもよい。路面は、高さが低いため、視差画像dpから視差を除去しない場合であっても、第1区分には含まれず、実施形態と同様の効果が得られる。
【0071】
○視差画像取得部、座標算出部、俯瞰図取得部、物体座標算出部、領域抽出部、人判定部、及び人候補判定部は、それぞれ、個別の制御装置によって構成されていてもよい。
○カメラ座標からワールド座標への変換はテーブルデータによって行われてもよい。テーブルデータは、Y座標YcとZ座標Zcの組み合わせにY座標Ywを対応させたテーブルデータと、Y座標YcとZ座標Zcとの組み合わせにZ座標Zwを対応させたテーブルデータである。これらのテーブルデータを画像処理部41のROMなどに記憶しておくことで、カメラ座標系におけるY座標YcとZ座標Zcから、ワールド座標系におけるY座標Yw及びZ座標Zwを求めることができる。同様に、ワールド座標からカメラ座標への変換についてもテーブルデータによって行われてもよい。
【0072】
○第1カメラ32と第2カメラ33は、鉛直方向に並んで配置されていてもよい。
○第1画像I1の画素数と第2画像の画素数とは異なっていてもよい。例えば、比較画像である第2画像の画素数を視差画像の画素数と同一とし、基準画像である第1画像I1の画素数を第2画像の画素数よりも多くしてもよい。
【0073】
○ステレオカメラ31は、3つ以上のカメラを備えていてもよい。
○フォークリフト10は、エンジンの駆動によって走行するものでもよい。この場合、走行制御装置は、エンジンへの燃料噴射量などを制御する装置となる。
【0074】
○物体検出装置30は、建設機械、自動搬送車、トラックなどフォークリフト10以外の産業車両や乗用車などの移動体に搭載されていてもよい。
【符号の説明】
【0075】
30…物体検出装置、31…ステレオカメラ、41…視差画像取得部、座標算出部、俯瞰図取得部、物体座標算出部、領域抽出部、人判定部、及び人候補判定部して機能する画像処理部。