(57)【要約】【課題】計算コストの増大を抑制しつつ、画像に写る対象物の位置を算出すること。【解決手段】画像処理装置は、撮像装置によって撮像された画像から視差画像を取得する。視差画像とは、画素毎に視差が対応付けられた画像である。画像処理装置は、視差画像を複数のエリアＡに分割する。分割された各エリアＡは、複数の画素を含む。画像処理装置は、エリアＡに含まれる画素に対応付けられた視差に基づいて、代表視差を求める。画像処理装置は、代表視差を用いて、対象物の位置を算出する。【選択図】図２
2019091295.tif 000002
【特許請求の範囲】
【請求項１】
ステレオカメラによって撮像された画像を画像処理して、前記画像に写る対象物の位置を算出する画像処理装置であって、
前記画像から、画素毎に視差が対応付けられた視差画像を取得する取得手段と、
前記視差画像を複数の画素を含んだエリアに分割する分割手段と、
前記エリアに含まれる複数の画素に対応付けられた視差に基づいて、エリア毎に代表視差を導出する代表視差導出手段と、
前記代表視差から前記画像に写る対象物の位置を算出する位置算出手段と、を備える画像処理装置。
【請求項２】
前記代表視差導出手段は、前記エリアに含まれる各画素に対応付けられた視差についての分布を求め、最も頻度の高い視差を前記代表視差とする請求項１に記載の画像処理装置。
【請求項３】
前記代表視差導出手段は、前記エリアに含まれる各画素に対応付けられた視差についての分布を求め、頻度の高い上位複数の視差のうち、最も大きい値の視差を代表視差とする請求項１に記載の画像処理装置。
【請求項４】
前記分割手段は、前記エリアを前記エリアよりも細分化された細分化エリアに分割可能であり、
前記代表視差導出手段は、前記細分化エリアの代表視差を導出可能である請求項１〜請求項３のうちいずれか一項に記載の画像処理装置。
【請求項５】
前記分割手段は、前記視差画像において、前記ステレオカメラから離れた前記エリアほど含まれる画素が少なくなるように分割を行う請求項１〜請求項４のうちいずれか一項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
ステレオカメラによって撮像された画像を画像処理して、画像に写った対象物の位置を算出する画像処理装置としては、例えば、特許文献１に記載されている。
特許文献１の画像処理装置は、ステレオカメラによって撮像された画像から視差画像を取得し、視差画像から画像に写った先行車を検出している。自動車の場合、高さ１ｍ〜１．５ｍ付近に側縁が存在するため、画像処理装置は、画像において高さ１ｍに相当する部分のみ画像処理を行っている。即ち、位置を算出する対象物を自動車の側縁に限定することで、画像の特定部分のみしか画像処理を行わなくても、先行車を検出できるようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−３１５２９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、画像に写る障害物など、先行車以外の物体を検出したい場合、画像における特定部分とは異なる部分についても、対象物の位置を算出する必要がある。しかしながら、画像の全体に対して画像処理を行うと、画像の特定部分とは異なる部分に写る対象物の位置も算出できる一方で、計算コストが増大する。
【０００５】
本発明の目的は、計算コストの増大を抑制しつつ、画像に写る対象物の位置を算出することができる画像処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決する画像処理装置は、ステレオカメラによって撮像された画像を画像処理して、前記画像に写る対象物の位置を算出する画像処理装置であって、前記画像から、画素毎に視差が対応付けられた視差画像を取得する取得手段と、前記視差画像を複数の画素を含んだエリアに分割する分割手段と、前記エリアに含まれる複数の画素に対応付けられた視差に基づいて、エリア毎に代表視差を導出する代表視差導出手段と、前記代表視差から前記画像に写る対象物の位置を算出する位置算出手段と、を備える。
【０００７】
これによれば、視差画像を複数のエリアに分割し、エリア毎に対応付けられた代表視差から画像に写る対象物の位置を算出することができる。エリアは、複数の画素を含んでいるため、視差画像の画素毎に対象物の位置を算出する場合に比べて、画像処理装置の計算コストを低減することができる。また、位置算出手段は、視差画像を分割したエリア毎に対象物の位置を算出するため、視差画像の全体に亘って対象物の位置の算出が行われることになる。したがって、計算コストの増大を抑制しつつ、画像に写る対象物の位置を検出することができる。
【０００８】
上記画像処理装置について、前記代表視差導出手段は、前記エリアに含まれる各画素に対応付けられた視差についての分布を求め、最も頻度の高い視差を前記代表視差としてもよい。
【０００９】
これによれば、代表視差は、エリアに含まれる視差のうち最も頻度の高い視差となる。最も頻度の高い視差を代表視差とすることで、代表視差と、エリアに含まれる各画素の視差との差とを小さくすることができる。これにより、代表視差から算出され対象物の位置の精度を向上させることができる。
【００１０】
上記画像処理装置について、前記代表視差導出手段は、前記エリアに含まれる各画素に対応付けられた視差についての分布を求め、頻度の高い上位複数の視差のうち、最も大きい値の視差を代表視差としてもよい。
【００１１】
ステレオカメラによって撮像された画像から視差画像を取得すると、ステレオカメラに近い画素ほど、対応付けられる視差が大きくなる。頻度の高い上位複数の視差のうち、最も大きい値の視差を代表視差とすることで、ステレオカメラに近い対象物の位置を優先して算出することができる。
【００１２】
上記画像処理装置について、前記分割手段は、前記エリアを前記エリアよりも細分化された細分化エリアに分割可能であり、前記代表視差導出手段は、前記細分化エリアの代表視差を導出可能であってもよい。
【００１３】
これによれば、位置算出手段は、細分化エリアの代表視差から対象物の位置を算出することができる。対象物の位置精度を向上させたいエリアについては、エリアよりも細分化された細分化エリアの代表視差から対象物の位置を算出することで、対象物の位置精度を向上させることができる。
【００１４】
上記画像処理装置について、前記分割手段は、前記視差画像において、前記ステレオカメラから離れた前記エリアほど含まれる画素が少なくなるように分割を行ってもよい。
視差は、ステレオカメラに近いほど大きくなり、ステレオカメラから離れるほど小さくなる。すると、視差画像を均等なエリアに分割した場合、ステレオカメラから離れたエリアほど、代表視差の値の変化によって、算出される対象物の位置が大きく変化する。即ち、ステレオカメラから離れたエリアほど、対象物の位置精度が低くなりやすい。ステレオカメラから離れたエリアほど含まれる画素を少なくすることで、ステレオカメラから離れたエリアにおける対象物の位置精度を向上させることができる。対象物の位置精度が低くなりにくいエリアと、対象物の位置精度が低くなりやすいエリアで含まれる画素数を変更することで、計算コストの増大を抑制しつつ、対象物の位置精度の低下を抑制できる。
【発明の効果】
【００１５】
本発明によれば、計算コストの増大を抑制しつつ、画像に写る対象物の位置を算出することができる。
【図面の簡単な説明】
【００１６】
【図１】フォークリフト、及び、障害物検出装置の概略構成図。
【図２】第１実施形態におけるエリアを示す概略図。
【図３】第１実施形態におけるエリアに含まれる各画素と頻度との関係を示すヒストグラム。
【図４】（ａ）〜（ｃ）は第１実施形態における画像処理装置によって検出された障害物をＸＹ平面にプロットした図を示す概略図。
【図５】第２実施形態におけるエリアと、細分化エリアとを示す概略図。
【図６】第３実施形態におけるエリアを示す概略図。
【図７】変形例におけるエリアに含まれる各画素と頻度との関係を示すヒストグラム。
【発明を実施するための形態】
【００１７】
（第１実施形態）
以下、画像処理装置の第１実施形態について説明する。
図１に示すように、フォークリフト１０は、メインコントローラ２０と、走行用モータＭ１を制御する走行制御装置２３と、車速センサ２４と、を備える。メインコントローラ２０は、走行動作、及び、荷役動作に関する制御を行う。メインコントローラ２０は、ＣＰＵ（演算部）２１と、種々の制御を行うためのプログラムなどが記憶されたメモリ２２と、を備える。
【００１８】
メインコントローラ２０のＣＰＵ２１は、フォークリフト１０の車速が目標速度となるように走行制御装置２３に走行用モータＭ１の回転数の指令を与える。メインコントローラ２０は、走行制御装置２３に走行用モータＭ１を回転させる方向の指令を与えることで、フォークリフト１０を進行させる方向（前進又は後進）を制御する。
【００１９】
本実施形態の走行制御装置２３は、モータドライバである。本実施形態の車速センサ２４は、走行用モータＭ１の回転数を検出する回転数センサである。車速センサ２４は、走行用モータＭ１の回転数を走行制御装置２３に出力する。走行制御装置２３は、メインコントローラ２０からの指令に基づき、走行用モータＭ１の回転数が指令と一致するように走行用モータＭ１を制御する。走行制御装置２３は、走行用モータＭ１の回転方向がメインコントローラ２０からの指令と一致するように走行用モータＭ１を制御する。なお、フォークリフト１０は、自動で走行動作及び荷役動作が行われるものであってもよいし、搭乗者（オペレータ）による操作によって走行動作及び荷役動作が行われるものであってもよい。
【００２０】
フォークリフト１０には、障害物検出装置３０が搭載されている。障害物検出装置３０は、２つの撮像装置３１，４１を備える。２つの撮像装置３１，４１のうちの一方は、前方撮像装置３１であり、他方は後方撮像装置４１である。前方撮像装置３１は、フォークリフト１０の前方を撮像するステレオカメラである。後方撮像装置４１は、フォークリフト１０の後方を撮影するステレオカメラである。
【００２１】
前方撮像装置３１は、２つのカメラ３２，３３を備える。カメラ３２，３３としては、例えば、ＣＣＤイメージセンサや、ＣＭＯＳイメージセンサが用いられる。各カメラ３２，３３は、互いの光軸が平行となるように配置されている。なお、各カメラ３２，３３の光軸は、水平であってもよいし、水平でなくてもよい。２つのカメラ３２，３３のうち、一方を第１カメラ３２とし、他方を第２カメラ３３とする。後方撮像装置４１は、前方撮像装置３１と同一構成であり、第１カメラ４２と、第２カメラ４３と、を備える。本実施形態において、各カメラ３２，３３，４２，４３によって撮像される画像の画素数は、同一である。画像としては、例えば、ＶＧＡ（６４０×４８０ピクセル）が用いられる。以下の説明において、第１カメラ３２，４２によって撮像された画像を第１画像、第２カメラ３３，４３によって撮像された画像を第２画像として説明を行う。
【００２２】
障害物検出装置３０は、各撮像装置３１，４１によって撮像された画像を画像処理して、画像に写る対象物の位置を算出する画像処理装置５０を備える。画像処理装置５０は、ＣＰＵ、ＲＡＭ、ＲＯＭ等から構成されている。
【００２３】
以下、画像処理装置５０の行う画像処理について作用とともに説明する。
画像処理装置５０は、撮像装置３１，４１によって撮像された画像から、視差を算出する。視差は、撮像装置３１，４１のそれぞれについて第１画像と、第２画像とを比較し、各画像に写る同一の対象物について第１画像と第２画像の画像位置（ピクセル）の差を算出することで得られる。画像位置の差は、第１画像に写る対象物と、第２画像に写る対象物との画素（ピクセル）数の差［ｐｘ］である。本実施形態において、視差は視差画像として得られる。視差画像とは、撮像装置３１，４１によって撮像された画像に写る対象物と、当該対象物の視差とを対応付けた画像である。視差画像には、画素毎に視差が対応付けられている。視差画像の画素数は、第１画像（第２画像）の画素数と同一である。なお、視差画像とは、必ずしも表示を要するものではなく、視差画像における各画素（視差画像におけるＸ座標及びＹ座標）に視差が対応付けられたデータのことを示す。画像処理装置５０は、視差画像を取得する取得手段を備えているといえる。
【００２４】
なお、対象物とは、各画像に含まれる特徴部分であり、例えば、物体のエッジなど、境目として認識可能な部分である。対象物は、輝度情報などから検出することができ、画像処理装置５０は、対象物から視差を算出することができる。
【００２５】
図２に示すように、本実施形態の視差画像Ｉは、視差を濃淡によって表わしたものである。視差は、撮像装置３１，４１から近いほど大きくなり、撮像装置３１，４１から離れるほど小さくなる。視差画像Ｉは、視差の大きい画素ほど濃く、視差の小さい画素ほど薄くなるように表現されている。
【００２６】
画像処理装置５０は、視差画像Ｉを複数のエリアＡに分割する。本実施形態の画像処理装置５０は、全てのエリアＡの画素数が同一となるように視差画像Ｉを均等に分割する。分割された各エリアＡは、複数の画素を含む。したがって、各エリアＡは、複数の画素に対応付けられた視差を含んでいるといえる。画像処理装置５０は、分割手段を備えているといえる。
【００２７】
画像処理装置５０は、エリアＡ毎に代表視差を求める。代表視差とは、エリアＡに対応付けられる視差である。上記したように、エリアＡは、複数の画素を含んでいるため、画像処理装置５０は、各画素に対応付けられた視差に基づき、代表視差を導出する。代表視差とは、エリアＡを１つの画素としてみなした場合に、当該画素に対応付けられる視差であるといえる。本実施形態において、画像処理装置５０は、各エリアＡの視差のうち最も頻度の高い視差を代表視差とする。
【００２８】
例えば、各エリアＡのうちの１つのエリアＡ１（図２において破線で囲まれたエリアＡ）について、値の異なる視差毎に計数を行うと、図３に示すように、視差と頻度との関係を示す分布（ヒストグラム）が求められる。
【００２９】
図３から把握できるように、画像処理装置５０は、視差についての分布を求めることで、エリアＡ１において、最も頻度の高い（割合の大きい）視差を導出することができる。画像処理装置５０は、最も頻度の高い視差を代表視差として、エリアＡ１に対応付ける。画像処理装置５０は、視差画像Ｉを分割した全てのエリアＡについて代表視差を対応付ける。画像処理装置５０は、代表視差導出手段を備えているといえる。
【００３０】
画像処理装置５０は、代表視差からフォークリフト１０の周囲に存在する対象物の位置を算出する。まず、画像処理装置５０は、視差画像Iからカメラ座標系における対象物の位置を算出する。カメラ座標系は、光軸をＺ軸とし、光軸に直交する２つの軸のそれぞれをＸ軸、Ｙ軸とする３軸直交座標系である。カメラ座標系における対象物の位置は、カメラ座標系におけるＺ座標Ｚｃ、Ｘ座標Ｘｃ、Ｙ座標Ｙｃで表わすことができる。Ｚ座標Ｚｃ、Ｘ座標Ｘｃ、及び、Ｙ座標Ｙｃは、それぞれ、以下の（１）式〜（３）式を用いて算出することができる。
【００３１】
【数１】
2019091295.tif 000003
【００３２】
【数２】
2019091295.tif 000004
【００３３】
【数３】
2019091295.tif 000005
ここで、Ｂは各撮像装置３１，４１の眼間距離［ｍ］、ｆは焦点距離［ｍ］、ｄは代表視差［ｐｘ］である。ｘｐは視差画像中の任意のエリアＡの中心Ｘ座標（任意のエリアＡにおける横ピクセルの中心）、ｘ’は視差画像中の中心Ｘ座標である。ｙｐは視差画像中の任意のエリアＡの中心Ｙ座標（任意のエリアＡにおける縦ピクセルの中心）、ｙ’は視差画像中の中心Ｙ座標である。視差画像中の全てのエリアＡについて、上記した（１）式〜（３）式の計算は行われる。
【００３４】
ここで、フォークリフト１０の進行方向に延びる軸をＹ軸、鉛直方向に延びる軸をＺ軸、Ｙ軸及びＺ軸に直交する軸をＸ軸とする３軸直交座標系（ワールド座標系）での座標を実空間上での座標（ワールド座標）とする。実空間上での対象物の位置は、実空間上におけるＸ座標Ｘｗ、Ｙ座標Ｙｗ、Ｚ座標Ｚｗで表わすことができる。
【００３５】
各カメラ３２，３３，４２，４３の光軸が水平（鉛直方向と直交）となるように撮像装置３１，４１が設置されている場合、Ｘｃ＝Ｘｗ、Ｙｃ＝Ｚｗ、Ｚｃ＝Ｙｗとなる。即ち、カメラ座標系における対象物の位置が実空間上での対象物の位置となる。
【００３６】
一方で、各カメラ３２，３３、４２，４３の光軸が水平（鉛直方向と直交）ではない場合、画像処理装置５０は、以下の（４）式を用いて座標変換（ワールド座標変換）を行う。
【００３７】
【数４】
2019091295.tif 000006
ここで、Ｈはワールド座標系における撮像装置３１，４１の取り付け高さであり、θはカメラ３２，３３、４２，４３の光軸と、水平面とがなす角＋９０°の角度である。画像処理装置５０は、位置算出手段を備えているといえる。
【００３８】
画像処理装置５０は、実空間上での位置（座標）が算出された対象物のうち、所定の高さ以上のものをＸＹ平面にプロットする。所定の高さは、フォークリフト１０の走行に際して障害となり得る高さであり、例えば、１００［ｍｍ］である。対象物が所定の高さ以上か否かは、対象物のＺ座標Ｚｗから判断することができる。
【００３９】
ＸＹ平面に対象物をプロットすると、フォークリフト１０の走行の障害となり得る障害物を俯瞰した場合の位置情報を得ることができる。
ここで、代表視差を用いて算出された対象物の位置は、エリアＡを１つの画素とみなして算出したものである。このため、視差画像Ｉの全ての画素に対応付けられた視差から対象物の位置を算出する場合に比べると、対象物の位置精度は低くなる。具体的にいうと、実際の対象物の位置と、算出される対象物の位置との差が大きくなる。
【００４０】
図４（ａ）は視差画像Ｉを１００画素（１０×１０画素）のエリアＡに分割した場合に、ＸＹ平面にプロットされる対象物を示している。図４（ｂ）は視差画像Ｉを２５画素（５×５画素）のエリアＡに分割した場合にＸＹ平面にプロットされる対象物を示している。図４（ｃ）は視差画像Ｉを分割しない場合にＸＹ平面にプロットされる対象物を示している。なお、図４（ａ）〜図４（ｃ）は、視差画像ＩにおけるエリアＡ１、及び、エリアＡ１の周辺のエリアＡから対象物の位置を算出した場合のＸＹ平面を示している。
【００４１】
図４（ｃ）から把握できるように、視差画像Ｉの全ての画素について対象物の位置の算出を行うと、対象物のプロットが密となる。画像処理装置５０は、プロットが集中している部分が障害物Ｂであると判断することができる。これにより、画像処理装置５０により、障害物Ｂの検出が行われる。
【００４２】
図４（ａ）及び図４（ｂ）に示すように、視差画像Ｉの分割数を増やすと、対象物のプロットが疎となる。図４（ｃ）に比べると、障害物Ｂの形状を精度良く検出することはできないが、おおまかな形状は把握することができる。このため、視差画像Ｉを複数のエリアＡに分割した場合であっても、画像処理装置５０は、障害物Ｂを検出することができる。
【００４３】
画像処理装置５０は、障害物Ｂを検出すると、フォークリフト１０の現在位置と、障害物Ｂとの相対位置とを算出する。そして、画像処理装置５０は、フォークリフト１０と障害物Ｂとの相対距離をメインコントローラ２０に出力する。
【００４４】
メインコントローラ２０は、フォークリフト１０と障害物Ｂとの相対距離が所定値以下の場合、減速処理を行う。所定値とは、例えば、フォークリフト１０の最高速度や、制動性能などに基づき定められる値である。減速処理としては、フォークリフト１０を停止させる処理、フォークリフト１０の速度を現在速度から段階的に低下させる処理、フォークリフト１０の速度に制限を課し、制限速度を上回る速度での走行を規制する処理など、様々な処理が挙げられる。
【００４５】
したがって、上記実施形態によれば、以下の効果を得ることができる。
（１−１）画像処理装置５０は、エリアＡ毎に対応付けられた代表視差から対象物の位置を算出し、これに基づき、障害物Ｂを検出している。エリアＡは、複数の画素を含んでいるため、代表視差から対象物の位置を算出することで、視差画像Ｉの画素毎に対象物の位置を算出する場合に比べて、計算コストが低減される。例えば、視差画像Ｉに含まれるエリアＡの数を視差画像Ｉの全ての画素数の１／１００にした場合、視差画像Ｉの全ての画素について座標計算（対象物の位置の算出）を行う場合に比べて、座標計算を行う回数が１／１００となる。同様に、視差画像Ｉに含まれるエリアＡの数を視差画像Ｉの全ての画素数の１／２５にした場合、視差画像Ｉの全ての画素について座標計算を行う場合に比べて座標計算を行う回数が１／２５となる。
【００４６】
また、視差画像Ｉを分割した各エリアＡの代表視差から対象物の位置を算出しているため、カメラ３２，３３，４２，４３によって撮像された画像に写る対象物の全てについて位置を算出することができる。したがって、視差画像Ｉの特定部分のみについて対象物の位置を算出する場合に比べて、広範囲に亘って対象物の位置を算出することができる。
【００４７】
（１−２）エリアＡに含まれる画素に対応付けられた視差のうち、最も頻度の高い視差を代表視差としている。最も頻度の高い視差を代表視差とすることで、代表視差と、エリアＡに含まれる各画素の視差との差とを小さくすることができる。これにより、代表視差から算出される対象物の位置の精度を向上させることができる。
【００４８】
（第２実施形態）
以下、画像処理装置の第２実施形態について説明する。なお、以下の説明において、第１実施形態と同様の部分については記載を省略する。
【００４９】
第２実施形態の画像処理装置５０は、視差画像Ｉを分割した複数のエリアを更に分割可能である。
図５に示すように、画像処理装置５０は、視差画像ＩをエリアＡ１０に分割し、エリアＡ１０毎に代表視差を算出する。画像処理装置５０は、エリアＡ１０の代表視差から対象物の位置を算出する。画像処理装置５０は、代表視差によって得られた対象物の位置から、障害物Ｂが存在すると推定されるエリアＡ１０を特定する。なお、障害物Ｂが存在すると推定されるエリアＡ１０は、単数であってもよいし、複数であってもよい。
【００５０】
本実施形態では、一例として、障害物Ｂが存在すると推定されるエリアとして、４つの隣接するエリアＡ１０が特定された場合について説明する。画像処理装置５０は、障害物Ｂが存在すると推定された４つのエリアＡ１０を、エリアＡ１０よりも細分化された細分化エリアＡ１１に分割する。本実施形態において、細分化エリアＡ１１は、エリアＡ１０を４分割したエリアとなっている。したがって、細分化エリアＡ１１に含まれる画素は、エリアＡ１０に含まれる画素の１／４となる。
【００５１】
画像処理装置５０は、細分化エリアＡ１１について、代表視差を導出する。代表視差は、エリアＡ１０の代表視差と同様の方法で求めることができる。画像処理装置５０は、細分化エリアＡ１１の代表視差から対象物の位置を算出する。これにより、細分化エリアＡ１１については、エリアＡ１０の代表視差によって算出された対象物の位置に比べて、対象物の位置精度を向上させることができる。即ち、ＸＹ平面にプロットされる対象物が密となり、障害物Ｂが検出されやすくなる。
【００５２】
したがって、上記実施形態によれば、第１実施形態の各効果に加えて、以下の効果を得ることができる。
（２−１）画像処理装置５０は、視差画像Ｉを分割したエリアＡ１０を更に分割することができる。障害物Ｂが存在すると推定されるエリアＡ１０については、対象物の位置精度を向上させることで、障害物Ｂの検出精度を向上させることができる。また、障害物Ｂが存在すると推定されるエリアＡ１０についてのみ細分化エリアＡ１１に分割を行うことで、全てのエリアＡ１０について細分化エリアＡ１１に分割を行う場合に比べて、計算コストを削減できる。したがって、計算コストの増大を抑制しつつ、障害物Ｂの検出精度を向上させることができる。
【００５３】
（第３実施形態）
以下、画像処理装置の第３実施形態について説明する。なお、以下の説明において、第１実施形態と同様の部分については記載を省略する。
【００５４】
図６に示すように、画像処理装置５０は、視差画像Ｉを分割する際に、含まれる画素数の異なるエリアＡ２１、及び、エリアＡ２２に視差画像Ｉを分割する。エリアＡ２２は、エリアＡ２１よりも含まれる画素数が少ない。エリアＡ２２は、エリアＡ２１よりも細分化されたエリアといえる。
【００５５】
視差画像Ｉは、視差画像Ｉの二次元座標（ＸＹ座標）において、所定のＹ座標（縦ピクセル）を境として、エリアＡ２１に分割される部分と、エリアＡ２２に分割される部分に分かれている。視差画像Ｉにおける下側の部分は、エリアＡ２１に分割されており、視差画像Ｉにおける上側の部分はエリアＡ２２に分割されている。画像処理装置５０は、エリアＡ２１の代表視差、エリアＡ２２の代表視差のそれぞれから、対象物の位置を算出する。エリアＡ２２は、エリアＡ２１よりも含まれる画素が少ないため、視差画像Ｉにおいては、下側に比べて上側のほうが対象物の位置精度を向上させているといえる。
【００５６】
視差画像Ｉにおいては、下側ほど撮像装置３１，４１に近い位置となる。視差は、撮像装置３１，４１に近いほど大きくなり、撮像装置３１，４１から離れるほど小さくなる。すると、対象物の位置を算出するに際して、代表視差が与える影響は、撮像装置３１，４１に近いエリアＡ２１ほど小さく、撮像装置３１，４１から離れたエリアＡ２２ほど大きくなる。
【００５７】
詳細にいうと、撮像装置３１，４１に近いエリアＡ２１は、撮像装置３１，４１から離れたエリアＡ２２に比べて、対応付けられる代表視差が大きくなる。（１）式から把握できるように、代表視差が１変化した場合のＺ座標Ｚｃの変化は、代表視差が大きいほど小さくなる。即ち、視差画像Ｉを均等なエリアに分割した場合、撮像装置３１，４１から離れたエリアほど、代表視差の値の変化によって、算出される対象物の位置が大きく変化する。
【００５８】
これに対して、撮像装置３１，４１から離れたエリアＡ２２ほど含まれる画素を少なくすることで、撮像装置３１，４１から離れたエリアＡ２２における対象物の位置精度を向上させることができる。
【００５９】
したがって、上記実施形態によれば、第１実施形態の各効果に加えて、以下の効果を得ることができる。
（３−１）対象物の位置精度が低くなりにくいエリアＡ２１と、対象物の位置精度が低くなりやすいエリアＡ２２とで含まれる画素を変更することで、計算コストの増大を抑制しつつ、対象物の位置精度の低下を抑制できる。
【００６０】
なお、実施形態は以下のように変更してもよい。
○各実施形態において、代表視差の導出方法を変更してもよい。例えば、図７に示すように、画像処理装置５０は、各エリアに含まれる各画素についての分布を求め、頻度の高い上位複数の視差のうち、最も大きい値の視差を代表視差としてもよい。図７では、各画素に対応付けられた視差のうち、頻度の多い上位３つの視差が抽出される。画像処理装置５０は、抽出された上位３つの視差のうち、最も大きい視差を代表視差とする。なお、上位として抽出される視差は、３つより多くてもよいし、２つであってもよい。
【００６１】
また、代表視差は、各エリアに含まれる各画素に対応付けられた視差の平均値であってもよいし、頻度の多い上位複数の視差の平均値であってもよい。
○第２実施形態において、エリアＡ１０の代表視差の導出方法と、細分化エリアＡ１１の代表視差の導出方法を異なるものにしてもよい。例えば、エリアＡ１０の代表視差は、最も頻度の高い視差とし、細分化エリアＡ１１の代表視差は、頻度の高い上位複数の視差のうち、最も値の大きい視差としてもよい。また、第３実施形態において、エリアＡ２１の代表視差の導出方法と、エリアＡ２２の代表視差の導出方法とを異なるものにしてもよい。
【００６２】
○第３実施形態において、視差画像Ｉを分割するエリアとして、含まれる視差の数が異なる３種類以上のエリアを用いてもよい。例えば、視差画像Ｉにおいて、撮像装置３１，４１から離れるにつれて、３段階に亘ってエリアに含まれる視差の数が少なくなってもよい。
【００６３】
○第２実施形態の画像処理と、第３実施形態の画像処理とを組み合わせてもよい。画像処理装置５０は、エリアＡ２１の代表視差と、エリアＡ２２の代表視差から対象物の位置を算出し、障害物Ｂが存在すると推定されるエリアＡ２１，Ａ２２を特定する。画像処理装置５０は、障害物Ｂが存在すると推定されるエリアＡ２１，Ａ２２を細分化エリアに分割して、細分化エリアの代表視差から対象物の位置を算出する。
【００６４】
○各実施形態において、撮像装置３１，４１として、３つ以上のカメラを備えるものを用いてもよい。
○各実施形態において、前方撮像装置３１と、後方撮像装置４１とは同一構成でなくてもよい。
【００６５】
○各実施形態において、障害物検出装置３０は、撮像装置３１，４１のうちいずれか一方のみを備える構成でもよい。
○各実施形態において、障害物Ｂの検出は、画像処理装置５０以外の装置によって行われてもよい。
【００６６】
○各実施形態において、画像処理装置５０は、画像に写る対象物の位置（座標）を算出することができればよく、対象物の位置から障害物の検出を行わなくてもよい。例えば、画像処理装置５０は、画像に写る物体の寸法の計測や、物体までの距離計測に用いられてもよい。
【００６７】
○各実施形態において、画像処理装置５０は、乗用車、建設機械、自動搬送車、トラックなどの車両や、二足歩行式のロボットなどの移動体に搭載されてもよいし、移動しない装置に搭載されてもよい。
【００６８】
○各実施形態において、走行駆動装置として、エンジンが用いられてもよい。すなわち、フォークリフト１０は、エンジンの駆動によって走行してもよい。この場合、走行制御装置は、エンジンへの燃料噴射量などを制御する装置となる。
【００６９】
○各実施形態において、座標変換は、（４）式に代えて、テーブルデータによって行われてもよい。テーブルデータは、Ｙ座標ＹｃとＺ座標Ｚｃの組み合わせにＹ座標Ｙｗを対応させたテーブルデータと、Ｙ座標ＹｃとＺ座標Ｚｃとの組み合わせにＺ座標Ｚｗを対応させたテーブルデータである。これらのテーブルデータを画像処理装置５０のＲＯＭなどに記憶しておくことで、カメラ座標系におけるＹ座標ＹｃとＺ座標Ｚｃから、ワールド座標系におけるＹ座標Ｙｗ及びＺ座標Ｚｗを求めることができる。これにより、画像処理装置５０の計算コストを更に低減させることができる。なお、実施形態では、カメラ座標系におけるＸ座標Ｘｃと、ワールド座標系におけるＸ座標Ｘｗとは一致するため、Ｘ座標Ｘｗを求めるためのテーブルデータは記憶されない。
【符号の説明】
【００７０】
Ａ，Ａ１０，Ａ２１，Ａ２２…エリア、Ａ１１…細分化エリア、３１，４１…撮像装置（ステレオカメラ）、５０…画像処理装置（取得手段、分割手段、代表視差導出手段、及び、位置算出手段）。
【図１】
2019091295.tif 000007
【図２】
2019091295.tif 000008
【図３】
2019091295.tif 000009
【図４】
2019091295.tif 000010
【図５】
2019091295.tif 000011
【図６】
2019091295.tif 000012
【図７】
2019091295.tif 000013