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

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

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

特許7533402姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体
<>
  • 特許-姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体 図1
  • 特許-姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体 図2
  • 特許-姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体 図3
  • 特許-姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体 図4
  • 特許-姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体 図5
  • 特許-姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体 図6
  • 特許-姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体 図7
  • 特許-姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体
(51)【国際特許分類】
   G01B 11/26 20060101AFI20240806BHJP
【FI】
G01B11/26 H
【請求項の数】 13
(21)【出願番号】P 2021146104
(22)【出願日】2021-09-08
(65)【公開番号】P2023039109
(43)【公開日】2023-03-20
【審査請求日】2023-12-18
(73)【特許権者】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【弁理士】
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100124062
【弁理士】
【氏名又は名称】三上 敬史
(74)【代理人】
【識別番号】100148013
【弁理士】
【氏名又は名称】中山 浩光
(72)【発明者】
【氏名】森中 識至
(72)【発明者】
【氏名】橋本 甲
【審査官】國田 正久
(56)【参考文献】
【文献】特開2015-158461(JP,A)
【文献】国際公開第2015/037178(WO,A1)
【文献】特開2019-125354(JP,A)
【文献】特開2013-37006(JP,A)
【文献】国際公開第2018/135063(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01B 11/00-11/30
(57)【特許請求の範囲】
【請求項1】
マーカの撮影画像から前記マーカを認識し、前記撮影画像における前記マーカの元座標を取得する認識部と、
前記マーカの少なくとも一点の座標を前記元座標からずらすことによってずらし座標を生成する生成部と、
前記元座標を用いた第1姿勢推定結果と、前記ずらし座標を用いた第2姿勢推定結果とを生成する推定部と、
前記第2姿勢推定結果と予め設定された閾値との比較に基づいて、前記第1姿勢推定結果の信頼性の有無を判定する判定部と、
を備えた姿勢推定装置。
【請求項2】
前記生成部は、前記マーカの四隅の座標を前記元座標からずらして複数のずらし座標を生成する、請求項1記載の姿勢推定装置。
【請求項3】
前記生成部は、前記マーカの四隅の座標のそれぞれを前記元座標からX軸の正負方向及びY軸の正負方向にそれぞれ移動させることによって前記複数のずらし座標を生成する、請求項2記載の姿勢推定装置。
【請求項4】
前記生成部は、前記マーカの四隅の座標のそれぞれを1ピクセル分移動させる、請求項3記載の姿勢推定装置。
【請求項5】
前記判定部は、前記第2姿勢推定結果における最大値と最小値との差分を算出し、前記差分と前記閾値とを比較する、請求項2~4のいずれか一項記載の姿勢推定装置。
【請求項6】
前記判定部は、前記第2姿勢推定結果における分散を算出し、前記分散と前記閾値とを比較する、請求項2~4のいずれか一項記載の姿勢推定装置。
【請求項7】
前記判定部は、前記第1姿勢推定結果の信頼性が無いと判定した場合に、前記第2姿勢推定結果のうち前記閾値外の値を除外し、除外後の値の平均値を算出することによってみなし推定結果を生成する、請求項2~6のいずれか一項記載の姿勢推定装置。
【請求項8】
前記判定部は、前記第1姿勢推定結果の信頼性が無いと判定した場合に、前記第1姿勢推定結果を破棄する、請求項1~6のいずれか一項記載の姿勢推定装置。
【請求項9】
前記判定部は、前記第1姿勢推定結果及び前記第2姿勢推定結果と、前記閾値との比較に基づいて、前記第1姿勢推定結果の信頼性の有無を判定する、請求項1~8のいずれか一項記載の姿勢推定装置。
【請求項10】
前記推定部は、ロール角、ピッチ角、ヨー角、及び位置情報の少なくとも一つを前記第1姿勢推定結果及び前記第2姿勢推定結果として生成する、請求項1~9のいずれか一項記載の姿勢推定装置。
【請求項11】
前記マーカを撮影するカメラ及び請求項1~10のいずれか一項に記載の姿勢推定装置を搭載してなる産業車両。
【請求項12】
マーカの撮影画像から前記マーカを認識し、前記撮影画像における前記マーカの元座標を取得するステップと、
前記マーカの少なくとも一点の座標を前記元座標からずらすことによってずらし座標を生成するステップと、
前記元座標を用いた第1姿勢推定結果と、前記ずらし座標を用いた第2姿勢推定結果とを生成するステップと、
前記第2姿勢推定結果と予め設定された閾値との比較に基づいて、前記第1姿勢推定結果の信頼性の有無を判定するステップと、
をコンピュータに実行させる姿勢推定プログラム。
【請求項13】
請求項12に記載の姿勢推定プログラムを記憶した、コンピュータ読み取り可能な記憶媒体。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体に関する。
【背景技術】
【0002】
マーカをカメラによって撮影し、マーカの見かけ上の歪みを基にマーカとカメラとの間の姿勢を推定する姿勢推定方法が知られている。従来の姿勢推定方法では、例えばマーカとカメラとが正対する位置付近でマーカが撮影されると、マーカの見かけ上の歪みが小さくなり、姿勢推定の結果の精度が低下し得る。高精度な姿勢推定の結果を得るための従来の方法として、特許文献1に記載の姿勢推定方法がある。特許文献1に記載のマーカの周囲には、標準可変モアレパターン及び標準可変モアレパターンよりも視線角度の分解能が高い高感度可変モアレパターンが配置されている。この姿勢推定方法では、標準可変モアレパターンを用いて仮決定された視線角度と、高感度可変モアレパターンを用いて求められた視線角度の候補値とに基づいて、視線角度を推定する。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開2018/135063号
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載のマーカでは、2種類の可変モアレパターンとしてレンチキュラーレンズ又はレンズアレイが用いられているため、製造コストが高くなると共にマーカのサイズの拡大が困難である。一方、一般的なマーカを用いた姿勢推定では、姿勢推定の結果の精度が低下し得る課題がなお存在している。
【0005】
本開示は、上記課題の解決のためになされたものであり、製造コストの増大を抑制しつつ、姿勢推定の結果が一定の精度を有することを担保できる姿勢推定装置、姿勢推定装置を搭載した産業車両、姿勢推定プログラム及び姿勢推定プログラムを記憶した記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一側面に係る姿勢推定装置は、マーカの撮影画像からマーカを認識し、撮影画像におけるマーカの元座標を取得する認識部と、マーカの少なくとも一点の座標を元座標からずらすことによってずらし座標を生成する生成部と、元座標を用いた第1姿勢推定結果と、ずらし座標を用いた第2姿勢推定結果とを生成する推定部と、第2姿勢推定結果と予め設定された閾値との比較に基づいて、第1姿勢推定結果の信頼性の有無を判定する判定部と、を備える。
【0007】
この姿勢推定装置では、元座標の少なくとも一部が移動してずらし座標が生成される。ずらし座標によって示されるマーカは、元座標によって示されるマーカよりも見かけ上の歪みが大きくなる。この姿勢推定装置では、このずらし座標を用いた第2姿勢推定結果を閾値と比較することで、第1姿勢推定結果の信頼性の有無を精度良く判定することができる。また、この姿勢推定装置は、ずらし座標の算出と閾値との比較に要する計算コストのみを考慮すればよく、マーカ自体の加工が不要となるため、製造コストの増大を抑制することができる。
【0008】
生成部は、マーカの四隅の座標を元座標からずらして複数のずらし座標を生成してもよい。この場合、マーカの形状(四角形)を特定しやすくなるため、第2姿勢推定結果に要する処理時間の短縮化が図られる。
【0009】
生成部は、マーカの四隅の座標のそれぞれを元座標からX軸の正負方向及びY軸の正負方向にそれぞれ移動させることによって複数のずらし座標を生成してもよい。この場合、マーカの四隅の座標のそれぞれが4方向に移動することによって、多数のずらし座標が生成される。多数の第2姿勢推定結果に基づいて閾値との比較を行うことで、第1姿勢推定結果の信頼性の有無を一層精度良く判定することができる。
【0010】
生成部は、マーカの四隅の座標のそれぞれを1ピクセル分移動させてもよい。この場合、1ピクセル分の歪みの変化が第2姿勢推定結果に反映される。これにより、座標の移動を最小限にしつつ、第1姿勢推定結果の信頼性の有無の判定精度をさらに向上させることができる。
【0011】
判定部は、第2姿勢推定結果における最大値と最小値との差分を算出し、差分と閾値とを比較してもよい。この場合、簡単な演算で第1姿勢推定結果の信頼性の有無の判定精度を担保できる。
【0012】
判定部は、第2姿勢推定結果における分散を算出し、分散と閾値とを比較してもよい。この場合、簡単な演算で第1姿勢推定結果の信頼性の判定精度を担保できる。
【0013】
判定部は、第1姿勢推定結果の信頼性が無いと判定した場合に、第2姿勢推定結果のうち閾値外の値を除外し、除外後の値の平均値を算出することによってみなし推定結果を生成してもよい。この場合、マーカの元座標の再取得を省略しつつ、一定の信頼性が確保されたみなし推定結果によって姿勢推定の結果を得ることができる。
【0014】
判定部は、第1姿勢推定結果の信頼性が無いと判定した場合に、第1姿勢推定結果を破棄してもよい。この場合、信頼性の無い第1姿勢推定結果が姿勢推定の結果として得られることを抑制できる。
【0015】
判定部は、第1姿勢推定結果及び第2姿勢推定結果と、閾値との比較に基づいて、第1姿勢推定結果の信頼性の有無を判定してもよい。第1姿勢推定結果自身を信頼性の有無の判定にさらに用いることにより、第1姿勢推定結果の信頼性の有無の判定精度をさらに向上させることができる。
【0016】
推定部は、ロール角、ピッチ角、ヨー角、及び位置情報の少なくとも一つを第1姿勢推定結果及び第2姿勢推定結果として生成してもよい。この場合、姿勢推定に必要な情報を適切に得ることができる。
【0017】
本開示の一側面に係る産業車両は、マーカを撮影するカメラ及び上記姿勢推定装置を搭載してなる。この産業車両では、元座標の少なくとも一部が移動してずらし座標が生成される。ずらし座標によって示されるマーカは、元座標によって示されるマーカよりも見かけ上の歪みが大きくなる。この産業車両では、このずらし座標を用いた第2姿勢推定結果を閾値と比較することで、第1姿勢推定結果の信頼性の有無を精度良く判定することができる。また、この産業車両は、ずらし座標の算出と閾値との比較に要する計算コストのみを考慮すればよく、マーカ自体の加工が不要となるため、製造コストの増大を抑制することができる。
【0018】
本開示の一側面に係る姿勢推定プログラムは、マーカの撮影画像からマーカを認識し、撮影画像におけるマーカの元座標を取得するステップと、マーカの少なくとも一点の座標を元座標からずらすことによってずらし座標を生成するステップと、元座標を用いた第1姿勢推定結果と、ずらし座標を用いた第2姿勢推定結果とを生成するステップと、第2姿勢推定結果と予め設定された閾値との比較に基づいて、第1姿勢推定結果の信頼性の有無を判定するステップと、をコンピュータに実行させる。また、本開示の一側面に係る記憶媒体は、姿勢推定プログラムを記憶した、コンピュータ読み取り可能な記憶媒体である。
【0019】
この姿勢推定プログラム及び記憶媒体では、元座標の少なくとも一部が移動してずらし座標が生成される。ずらし座標によって示されるマーカは、元座標によって示されるマーカよりも見かけ上の歪みが大きくなる。この姿勢推定プログラム及び記憶媒体では、このずらし座標を用いた第2姿勢推定結果を閾値と比較することで、第1姿勢推定結果の信頼性の有無を精度良く判定することができる。また、この姿勢推定プログラム及び記憶媒体は、ずらし座標の算出と閾値との比較に要する計算コストのみを考慮すればよく、マーカ自体の加工が不要となるため、製造コストの増大を抑制することができる。
【発明の効果】
【0020】
本開示によれば、製造コストの増大を抑制しつつ、姿勢推定の結果が一定の精度を有することを担保できる。
【図面の簡単な説明】
【0021】
図1】姿勢推定装置の構成を示すブロック図である。
図2】マーカの撮影画像の一例を示す図である。
図3】ずらし座標の生成手法の一例を示す図である。
図4】第1姿勢推定結果及び第2姿勢推定結果の一例を示す図である。
図5】第1姿勢推定結果及び第2姿勢推定結果の別の例を示す図である。
図6】姿勢推定装置の動作の一例を示すフローチャートである。
図7】姿勢推定装置の動作の別例を示すフローチャートである。
図8】姿勢推定プログラムの構成及び記憶媒体を示す図である。
【発明を実施するための形態】
【0022】
以下、図面を参照しながら、本開示の一側面に係る姿勢推定装置、産業車両、姿勢推定プログラム、及び記憶媒体の好適な実施形態について詳細に説明する。
【0023】
図1は、本開示の一実施形態に係る姿勢推定装置の構成を示すブロック図である。姿勢推定装置10は、マーカMの撮影画像に基づいて、当該姿勢推定装置10が搭載される産業車両1の姿勢を推定する装置である。マーカMは、例えばARマーカ等の四角形状の平面マーカである(図2参照)。マーカMは、例えば産業車両1の周囲に存在する物体に対し、予め印刷或いは貼り付けによって付与される。姿勢推定装置10が適用される産業車両1としては、例えばフォークリフトが挙げられる。産業車両1は、マーカMを撮影するためのカメラ20を備えている。カメラ20は、マーカMの撮影画像を取得し、該撮影画像のデータを姿勢推定装置10に出力する。
【0024】
姿勢推定装置10は、CPU(Central Processing Unit)、ROM(Read OnlyMemory)、RAM(Random Access Memory)等を有する電子制御ユニットである。姿勢推定装置10では、例えば、ROMに記憶されているプログラムをRAMにロードし、RAMにロードされたプログラムをCPUで実行することにより各種の機能を実現する。姿勢推定装置10は、機能要素として認識部11、生成部12、推定部13、判定部14、及び出力部15を有している。
【0025】
認識部11は、マーカMの撮影画像からマーカMを認識する。例えば、認識部11は、撮影画像に対するパターンマッチング又はエッジ検出等によって、マーカMの有無を検出する。マーカMの認識手法は上記に限定されず、例えば入力画像に対し輪郭抽出及び二値化を行い、その二値化画像から連結成分(ピクセルの集合)を抽出することによってマーカMを認識する手法でもよい。
【0026】
認識部11は、撮影画像におけるマーカMの元座標を取得する。撮影画像における画像の座標系は、例えば撮影画像の左上を原点とするXY座標で表される。画像の座標系はピクセル値で表すこともできる。例えば、認識部11は、撮影画像におけるマーカMの四隅の座標を元座標として取得する。四隅の座標とは、四つの角それぞれの頂点に対応する座標をいう。元座標は、マーカMの形状を特定可能な座標であれば四隅の座標に限定されない。例えば、マーカMは多角形(L字形状等)であってもよい。元座標は、多角形のマーカMを示すピクセルのうち、8方向(上、右上、右、右下、下、左下、左、左上)の頂点に対応する座標であってもよい。
【0027】
生成部12は、マーカMの少なくとも一点の座標を元座標からずらすことによってずらし座標を生成する。「ずらし座標」とは、画像の座標系上で元座標の値を変動させることによって生成した新しい座標である。例えば、生成部12は、マーカMの四隅の座標のそれぞれを元座標からX軸の正負方向及びY軸の正負方向にそれぞれ移動させることによって複数のずらし座標を生成する。このとき、生成部12は、マーカMの四隅の座標のそれぞれを1ピクセル分移動させてもよい。ずらし座標の各々を結ぶことでずらしマーカが形成される。ずらしマーカは、撮影画像におけるマーカMに見かけ上の歪みを追加したものとなる。
【0028】
推定部13は、元座標を用いた第1姿勢推定結果と、ずらし座標を用いた第2姿勢推定結果とを生成する。例えば、推定部13は、ロール角、ピッチ角、ヨー角、及び位置情報の少なくとも一つを第1姿勢推定結果及び第2姿勢推定結果として生成する。
【0029】
判定部14は、第2姿勢推定結果と予め設定された閾値との比較に基づいて、第1姿勢推定結果の信頼性の有無を判定する。判定部14は、例えば1ピクセル分の移動等によるずらし座標の生成手法に応じて予め閾値を算出し、その閾値を保持しておく。判定部14は、第2姿勢推定結果における最大値と最小値との差分を算出し、差分と閾値とを比較してもよい。判定部14は、第2姿勢推定結果における分散を算出し、分散と閾値とを比較してもよい。判定部14は、第1姿勢推定結果及び第2姿勢推定結果と、閾値との比較に基づいて、第1姿勢推定結果の信頼性の有無を判定してもよい。
【0030】
第1姿勢推定結果の信頼性が有る場合には、第1姿勢推定結果が一定の精度を有していることを示す。一方、第1姿勢推定結果の信頼性が無い場合には、第1姿勢推定結果が一定の精度を有していないことを示す。判定部14は、第1姿勢推定結果の信頼性が無いと判定した場合に、第2姿勢推定結果のうち閾値外の値を除外し、除外後の値の平均値を算出することによってみなし推定結果を生成してもよい。判定部14は、第1姿勢推定結果の信頼性が無いと判定した場合に、第1姿勢推定結果を破棄してもよい。
【0031】
出力部15は、第1姿勢推定結果又はみなし推定結果をECU(Electronic Control Unit)、或いは自動走行制御装置等の他の装置に出力する。出力部15は、通信ネットワークを介して他のシステム等に送信してもよい。
【0032】
図2に示される撮影画像Pは、マーカMの撮影画像の一例である。図2に示されるように、マーカMは四角形状であり、白色の領域及び黒色の領域によって構成された平面パターンを有している。撮影画像PにおけるマーカMは、カメラ20とマーカMとの位置関係によって見かけ上の歪みが変化する。図2の撮影画像Pは、カメラ20がマーカMに対しほぼ正面から撮影した例である。
【0033】
撮影画像Pにおける画像の座標系は、左上端が原点であり、右方向がX軸の正方向であり、下方向がY軸の正方向である。認識部11は、撮影画像PにおけるマーカMの四隅の座標を元座標として取得する。例えば、認識部11は点C1(x,y),点C2(x,y),点C3(x,y),及び点C4(x,y)を元座標として取得する。
【0034】
続いて図3を参照しながら、ずらし座標の生成手法の一例について説明する。図3は、四隅の座標のうち、一点の座標をそれぞれ四方向に移動させる例を示す。四方向とは、画像の座標系におけるX軸の正負方向及びY軸の正負方向をいう。破線枠G1,G2,G3,及びG4は、それぞれ元座標のうち点C1のみ、点C2のみ、点C3のみ、又は点C4のみを四方向にずらすパターンを示す。
【0035】
破線枠G1内において、斜線付きの丸印は点C1を示し、矢印は点C1をずらす方向を示し、四角形は点C1をずらすことによって形成されるずらしマーカを示す。点C1を四方向にそれぞれずらすことによって、四つのずらし座標が生成される。破線枠G1内では、四つのずらしマーカが形成されている。
【0036】
破線枠G1で説明したずらし座標の生成手法は、破線枠G2,G3,及びG4にも適用される。例えば破線枠G2内において、点C2のみを四方向にそれぞれずらすことによって四つのずらし座標が生成される。破線枠G3及び破線枠G4も同様の処理によって、合計16個のずらし座標が生成される。
【0037】
図4は、第1姿勢推定結果R1及び第2姿勢推定結果R2の一例を示す図である。推定部13は、元座標を用いた第1姿勢推定結果R1aと、複数のずらし座標を用いた第2姿勢推定結果R2aとを生成する。第1姿勢推定結果R1a及び第2姿勢推定結果R2aは、例えばヨー角の値である。図4の例では、第1姿勢推定結果R1aの値は[2]である。第2姿勢推定結果R2aは16個の値[1,1,5,2,3,2,1,1,3,0,4,2,1,2,3,1]を含んでいる。第2姿勢推定結果R2aのうち、最大値は[5]であり、最小値は[0]である。
【0038】
図5は第1姿勢推定結果R1及び第2姿勢推定結果R2の別の例を示す。推定部13は、元座標を用いた第1姿勢推定結果R1bと、複数のずらし座標を用いた第2姿勢推定結果R2bとを生成する。第1姿勢推定結果R1b及び第2姿勢推定結果R2bは、例えばヨー角の値である。図5の例では、第1姿勢推定結果R1bの値は[2]である。第2姿勢推定結果R2bは16個の値[2,4,8,3,4,8,2,3,3,2,2,5,2,1,3,14]を含んでいる。第2姿勢推定結果R2bのうち、最大値は[14]であり、最小値は[1]である。
【0039】
図6を参照して、姿勢推定装置10の動作の一例を説明する。図6は、姿勢推定装置10の動作を処理フローS1として示すフローチャートである。まず、産業車両1のカメラ20によって、図2に示したマーカMの撮影画像Pが取得される(ステップS11)。
【0040】
認識部11は、マーカMの撮影画像PからマーカMを認識する(ステップS12)。撮影画像P内にマーカMが有る場合(ステップS13においてYES)、処理はステップS14に進む。一方、撮影画像P内にマーカMが無い場合(ステップS13においてNO)、以降の処理は終了する。処理フローS1は、例えば所定の時間経過後に再度実行される。一例では、ステップS11の処理が所定の時間間隔で実行されることにより、処理フローS1が定期的に実行される。
【0041】
認識部11は、撮影画像PにおけるマーカMの元座標を取得する(ステップS14)。例えば、認識部11は点C1(x,y),点C2(x,y),点C3(x,y),及び点C4(x,y)を元座標として取得する。
【0042】
生成部12は、マーカMの少なくとも一点の座標を元座標からずらすことによってずらし座標を生成する(ステップS15)。例えば、生成部12は、マーカMの四隅の座標のそれぞれを元座標からX軸の正負方向及びY軸の正負方向にそれぞれ移動させることによって複数のずらし座標を生成する。生成部12は、マーカMの四隅の座標のそれぞれを1ピクセル分移動させてもよい。一例では、生成部12は、点C1(x,y)をX軸の負方向に1ピクセル分ずらした位置の座標(x-1,y)に移動させる。生成部12は、元座標のうち点C1のみ、点C2のみ、点C3のみ、又は点C4のみをそれぞれ四方向にずらすことにより、16個のずらし座標を生成する。
【0043】
推定部13は、元座標を用いた第1姿勢推定結果R1と、ずらし座標を用いた第2姿勢推定結果R2とを生成する(ステップS16)。推定部13は、ロール角、ピッチ角、ヨー角、及び位置情報の少なくとも一つを第1姿勢推定結果R1及び第2姿勢推定結果R2として生成する。
【0044】
判定部14は、第2姿勢推定結果R2と予め設定された閾値との比較に基づいて、第1姿勢推定結果R1の信頼性の有無を判定する(ステップS17)。判定部14は、予め設定された閾値を保持している。ここでは、閾値は[5]である。判定部14は、第2姿勢推定結果R2と閾値とを比較し、第2姿勢推定結果R2に含まれる値の全てが閾値以下であれば第1姿勢推定結果R1の信頼性が有ると判定し、第2姿勢推定結果R2に含まれる値のいずれか一つでも閾値を超えていれば第1姿勢推定結果R1の信頼性が無いと判定する。
【0045】
ステップS17では、判定部14は、第2姿勢推定結果R2における最大値と最小値との差分を算出し、差分と閾値とを比較してもよい。図4の例では、第2姿勢推定結果R2aにおける最大値[5]と最小値[0]との差分は、[5]と算出される。この例では、差分[5]が閾値[5]以下であるため、判定部14は第1姿勢推定結果R1aの信頼性が有ると判定する。図5の例では、差分[13]が閾値[5]を超えているため、判定部14は第1姿勢推定結果R1bの信頼性が無いと判定する。
【0046】
ステップS17では、判定部14は、第2姿勢推定結果R2における分散を算出し、分散と閾値とを比較してもよい。図4の例では、第2姿勢推定結果R2aの値[1,1,5,2,3,2,1,1,3,0,4,2,1,2,3,1]における分散は、[1.73]と算出される。この例では、分散[1.73]が閾値[5]以下であるため、判定部14は、第1姿勢推定結果R1aの信頼性が有ると判定する。図5の例では、第2姿勢推定結果R2bの値[2,4,8,3,4,8,2,3,3,2,2,5,2,1,3,14]における分散は、[11.05]と算出される。この例では、分散[11.05]が閾値[5]を超えているため、判定部14は、第1姿勢推定結果R1bの信頼性が無いと判定する。
【0047】
ステップS17では、判定部14は、第1姿勢推定結果R1及び第2姿勢推定結果R2と、閾値との比較に基づいて、第1姿勢推定結果R1の信頼性の有無を判定してもよい。換言すると、判定部14は、閾値との比較の際に、第1姿勢推定結果R1をさらに用いてもよい。
【0048】
第1姿勢推定結果R1の信頼性が有る場合(ステップS17においてYES)、処理はステップS18に進む。一方、第1姿勢推定結果R1の信頼性が無い場合(ステップS17においてNO)、処理はステップS19に進む。
【0049】
出力部15は、第1姿勢推定結果R1を他の装置に出力する(ステップS18)。例えば、出力部15は、第1姿勢推定結果R1aを他の装置に出力する。
【0050】
判定部14は、第1姿勢推定結果R1を破棄する(ステップS19)。例えば、判定部14は、第1姿勢推定結果R1bを破棄する。
【0051】
処理フローS1は、例えば所定の時間経過後に再度実行される。一例では、ステップS11の処理が所定の時間間隔で実行されることにより、処理フローS1が定期的に実行される。
【0052】
図7を参照して、姿勢推定装置10の動作の別例を説明する。図7は、姿勢推定装置10の動作を処理フローS2として示すフローチャートである。処理フローS2は、処理フローS1と比較すると、ステップS19に代えてステップS20の処理を備えている点で異なる。以下、処理フローS1と同一のステップについては、説明を省略する。
【0053】
判定部14は、第2姿勢推定結果R2と予め設定された閾値との比較に基づいて、第1姿勢推定結果R1の信頼性の有無を判定する(ステップS17)。判定部14は、予め設定された閾値を保持している。ここでは、閾値は[5]である。判定部14は、第2姿勢推定結果R2と閾値とを比較し、第2姿勢推定結果R2に含まれる値の全てが閾値以下であれば第1姿勢推定結果R1の信頼性が有ると判定し、第2姿勢推定結果R2に含まれる値のいずれか一つでも閾値を超えていれば第1姿勢推定結果R1の信頼性が無いと判定する。図4の例では、最大値[5]が閾値[5]以下であるため、判定部14は第1姿勢推定結果R1aの信頼性が有ると判定する。図5の例では、最大値[14]が閾値[5]を超えているため、判定部14は第1姿勢推定結果R1bの信頼性が無いと判定する。
【0054】
第1姿勢推定結果R1の信頼性が有る場合(ステップS17においてYES)、処理はステップS18に進む。出力部15は、第1姿勢推定結果R1を他の装置に出力する(ステップS18)。例えば、出力部15は、第1姿勢推定結果R1aを他の装置に出力する。
【0055】
第1姿勢推定結果R1の信頼性が無い場合(ステップS17においてNO)、処理はステップS20に進む。判定部14は、第2姿勢推定結果R2に基づいてみなし推定結果を生成する(ステップS20)。例えば、判定部14は、第2姿勢推定結果R2のうち閾値外の値を除外し、除外後の値の平均値を算出することによってみなし推定結果を生成する。図5の例では、第2姿勢推定結果R2bの値[2,4,8,3,4,8,2,3,3,2,2,5,2,1,3,14]のうち、閾値[5]を超える値[8,8,14]が除外される。そして、除外後の値[2,4,3,4,2,3,3,2,2,5,2,1,3]の平均値は[2.77]と算出される。この例では、平均値[2.77]がみなし推定結果となる。そして、出力部15は、みなし推定結果を他の装置に出力する。
【0056】
引き続いて、上述した一連の姿勢推定装置10による処理を実行させるための姿勢推定プログラムを説明する。図8に示すように、姿勢推定プログラム100は、コンピュータに挿入されてアクセスされる、あるいはコンピュータが備える、コンピュータ読み取り可能な記憶媒体110に形成されたプログラム格納領域111内に格納される。記憶媒体110は、非一時的な記憶媒体であってもよい。
【0057】
姿勢推定プログラム100は、認識モジュール101と、生成モジュール102と、推定モジュール103と、判定モジュール104と、出力モジュール105とを備えて構成される。認識モジュール101と、生成モジュール102と、推定モジュール103と、判定モジュール104と、出力モジュール105とを実行させることにより実現される機能は、上述した姿勢推定装置10の認識部11と、生成部12と、推定部13と、判定部14と、出力部15との機能とそれぞれ同様である。
【0058】
姿勢推定プログラム100は、その一部又は全部が、通信回線等の伝送媒体を介して伝送され、他の機器により受信されて記録(インストールを含む)される構成としてもよい。また、姿勢推定プログラム100の各モジュールは、1つのコンピュータでなく、複数のコンピュータのいずれかにインストールされてもよい。その場合、当該複数のコンピュータによるコンピュータシステムよって上述した一連の処理が行われる。
【0059】
以上説明したように、姿勢推定装置10では、元座標の少なくとも一部が移動してずらし座標が生成される。ずらし座標によって示されるマーカMは、元座標によって示されるマーカMよりも見かけ上の歪みが大きくなる。この姿勢推定装置10では、このずらし座標を用いた第2姿勢推定結果R2を閾値と比較することで、第1姿勢推定結果R1の信頼性の有無を精度良く判定することができる。また、この姿勢推定装置10は、ずらし座標の算出と閾値との比較に要する計算コストのみを考慮すればよく、マーカ自体の加工が不要となるため、製造コストの増大を抑制することができる。
【0060】
本実施形態では、生成部12は、マーカMの四隅の座標を元座標からずらして複数のずらし座標を生成している。この場合、マーカMの形状(四角形)を特定しやすくなるため、第2姿勢推定結果R2に要する処理時間の短縮化が図られる。
【0061】
本実施形態では、生成部12は、マーカMの四隅の座標のそれぞれを元座標からX軸の正負方向及びY軸の正負方向にそれぞれ移動させることによって複数のずらし座標を生成している。この場合、マーカMの四隅の座標のそれぞれが4方向に移動することによって、多数のずらし座標が生成される。多数の第2姿勢推定結果R2に基づいて閾値との比較を行うことで、第1姿勢推定結果R1の信頼性の有無を一層精度良く判定することができる。
【0062】
本実施形態では、生成部12は、マーカMの四隅の座標のそれぞれを1ピクセル分移動させている。この場合、1ピクセル分の歪みの変化が第2姿勢推定結果R2に反映される。これにより、座標の移動を最小限にしつつ、第1姿勢推定結果R1の信頼性の有無の判定精度をさらに向上させることができる。
【0063】
本実施形態では、判定部14は、第2姿勢推定結果R2における最大値と最小値との差分を算出し、差分と閾値とを比較している。この場合、簡単な演算で第1姿勢推定結果R1の信頼性の有無の判定精度を担保できる。
【0064】
本実施形態では、判定部14は、第2姿勢推定結果R2における分散を算出し、分散と閾値とを比較している。この場合、簡単な演算で第1姿勢推定結果R1の信頼性の判定精度を担保できる。
【0065】
本実施形態では、判定部14は、第1姿勢推定結果R1の信頼性が無いと判定した場合に、第2姿勢推定結果R2のうち閾値外の値を除外し、除外後の値の平均値を算出することによってみなし推定結果を生成している。この場合、マーカMの元座標の再取得を省略しつつ、一定の信頼性が確保されたみなし推定結果によって姿勢推定の結果を得ることができる。
【0066】
本実施形態では、判定部14は、第1姿勢推定結果R1の信頼性が無いと判定した場合に、第1姿勢推定結果R1を破棄している。この場合、信頼性の無い第1姿勢推定結果R1が姿勢推定の結果として得られることを抑制できる。
【0067】
本実施形態では、判定部14は、第1姿勢推定結果R1及び第2姿勢推定結果R2と、閾値との比較に基づいて、第1姿勢推定結果R1の信頼性の有無を判定している。第1姿勢推定結果R1自身を信頼性の有無の判定にさらに用いることにより、第1姿勢推定結果R1の信頼性の有無の判定精度をさらに向上させることができる。
【0068】
本実施形態では、推定部13は、ロール角、ピッチ角、ヨー角、及び位置情報の少なくとも一つを第1姿勢推定結果R1及び第2姿勢推定結果R2として生成している。この場合、姿勢推定に必要な情報を適切に得ることができる。
【0069】
産業車両1は、マーカMを撮影するカメラ20及び上記姿勢推定装置10を搭載してなる。この産業車両1では、元座標の少なくとも一部が移動してずらし座標が生成される。ずらし座標によって示されるマーカMは、元座標によって示されるマーカMよりも見かけ上の歪みが大きくなる。この産業車両1では、このずらし座標を用いた第2姿勢推定結果R2を閾値と比較することで、第1姿勢推定結果R1の信頼性の有無を精度良く判定することができる。また、この産業車両1は、ずらし座標の算出と閾値との比較に要する計算コストのみを考慮すればよく、マーカ自体の加工が不要となるため、製造コストの増大を抑制することができる。
【0070】
姿勢推定プログラム100は、マーカMの撮影画像からマーカMを認識し、撮影画像におけるマーカMの元座標を取得するステップと、マーカMの少なくとも一点の座標を元座標からずらすことによってずらし座標を生成するステップと、元座標を用いた第1姿勢推定結果R1と、ずらし座標を用いた第2姿勢推定結果R2とを生成するステップと、第2姿勢推定結果R2と予め設定された閾値との比較に基づいて、第1姿勢推定結果R1の信頼性の有無を判定するステップと、をコンピュータに実行させる。また、記憶媒体110は、姿勢推定プログラム100を記憶した、コンピュータ読み取り可能な記憶媒体110である。
【0071】
この姿勢推定プログラム100及び記憶媒体110では、元座標の少なくとも一部が移動してずらし座標が生成される。ずらし座標によって示されるマーカMは、元座標によって示されるマーカMよりも見かけ上の歪みが大きくなる。この姿勢推定プログラム100及び記憶媒体110では、このずらし座標を用いた第2姿勢推定結果R2を閾値と比較することで、第1姿勢推定結果R1の信頼性の有無を精度良く判定することができる。また、この姿勢推定プログラム100及び記憶媒体110は、ずらし座標の算出と閾値との比較に要する計算コストのみを考慮すればよく、マーカ自体の加工が不要となるため、製造コストの増大を抑制することができる。
【0072】
上記実施形態では、生成部12は、マーカMの四隅の座標のそれぞれを1ピクセル分移動させているが、1ピクセル以上(例えば2ピクセル又は3ピクセル等)移動させてもよい。また、上記実施形態では、生成部12は、複数のずらし座標として16個のずらし座標を生成しているが、ずらし座標の個数はこれに限られず、任意の数としてもよい。
【符号の説明】
【0073】
1…産業車両、10…姿勢推定装置、11…認識部、12…生成部、13…推定部、14…判定部、15…出力部、20…カメラ、100…姿勢推定プログラム、110…記憶媒体、101…認識モジュール、102…生成モジュール、103…推定モジュール、104…判定モジュール、105…出力モジュール、M…マーカ、P…撮影画像。
図1
図2
図3
図4
図5
図6
図7
図8