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

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

▶ 株式会社東芝の特許一覧 ▶ 東芝デバイス&ストレージ株式会社の特許一覧

特許7451456運動推定装置及びそれを用いた運動推定方法
<>
  • 特許-運動推定装置及びそれを用いた運動推定方法 図1
  • 特許-運動推定装置及びそれを用いた運動推定方法 図2
  • 特許-運動推定装置及びそれを用いた運動推定方法 図3
  • 特許-運動推定装置及びそれを用いた運動推定方法 図4
  • 特許-運動推定装置及びそれを用いた運動推定方法 図5
  • 特許-運動推定装置及びそれを用いた運動推定方法 図6
  • 特許-運動推定装置及びそれを用いた運動推定方法 図7
  • 特許-運動推定装置及びそれを用いた運動推定方法 図8
  • 特許-運動推定装置及びそれを用いた運動推定方法 図9
  • 特許-運動推定装置及びそれを用いた運動推定方法 図10
  • 特許-運動推定装置及びそれを用いた運動推定方法 図11
  • 特許-運動推定装置及びそれを用いた運動推定方法 図12
  • 特許-運動推定装置及びそれを用いた運動推定方法 図13
  • 特許-運動推定装置及びそれを用いた運動推定方法 図14
  • 特許-運動推定装置及びそれを用いた運動推定方法 図15
  • 特許-運動推定装置及びそれを用いた運動推定方法 図16
  • 特許-運動推定装置及びそれを用いた運動推定方法 図17
  • 特許-運動推定装置及びそれを用いた運動推定方法 図18
  • 特許-運動推定装置及びそれを用いた運動推定方法 図19
  • 特許-運動推定装置及びそれを用いた運動推定方法 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-08
(45)【発行日】2024-03-18
(54)【発明の名称】運動推定装置及びそれを用いた運動推定方法
(51)【国際特許分類】
   G06T 7/571 20170101AFI20240311BHJP
   G06T 7/00 20170101ALI20240311BHJP
   G06T 7/593 20170101ALI20240311BHJP
   G01B 11/14 20060101ALI20240311BHJP
【FI】
G06T7/571
G06T7/00 350B
G06T7/593
G01B11/14 H
【請求項の数】 8
(21)【出願番号】P 2021047735
(22)【出願日】2021-03-22
(65)【公開番号】P2022146659
(43)【公開日】2022-10-05
【審査請求日】2023-01-27
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】山田 裕
(72)【発明者】
【氏名】小田 雄一
(72)【発明者】
【氏名】西山 学
(72)【発明者】
【氏名】大木 豊
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】特開2019-011971(JP,A)
【文献】特開2006-337075(JP,A)
【文献】特表2021-502626(JP,A)
【文献】Chao Liu, et al.,Neural RGB D Sensing: Depth and Uncertainty From a Video Camera,2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR),2019年06月20日,https://ieeexplore.ieee.org/document/8953381
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 ー 7/90
G06V 10/00 - 20/90
G01B 11/14
(57)【特許請求の範囲】
【請求項1】
第1カメラから第1入力フレームを受信する第1受信回路と、
前記第1入力フレームに基づいて運動推定処理を行う演算回路と
を備え、
前記演算回路は、前記運動推定処理において、
前記第1入力フレームの各画素の情報に基づいて、前記各画素における前記第1カメラから被写体までの距離の推定、及び前記各画素における前記距離の信頼度の作成を行い、
前記第1入力フレームの前記各画素の中から第1特徴点を検出し、
前記第1特徴点における前記信頼度が第1基準値以上である場合、前記第1特徴点を第2特徴点として選択し、
前記第2特徴点と、前記第1入力フレームの受信前に登録されたキーフレームの第3特徴点とをマッチングし、
前記第2特徴点と前記第3特徴点とがマッチしなかった場合、前記第2特徴点を第4特徴点として選択し、
前記第4特徴点が前記第1入力フレームの予め設定された領域にある場合、前記第4特徴点を、前記第1入力フレームの移動点として検出する
運動推定装置。
【請求項2】
前記演算回路は、前記運動推定処理において更に、
前記第4特徴点が前記第1入力フレームの前記予め設定された領域にない場合、前記第4特徴点を、前記第1入力フレームの非移動点として検出し、
前記第2特徴点と前記第3特徴点とがマッチした場合、前記第2特徴点を、前記第1入力フレームの前記非移動点として検出し、
前記非移動点における前記第1カメラから前記被写体までの距離を算出する、請求項記載の運動推定装置。
【請求項3】
前記演算回路は、前記運動推定処理において更に、
前記推定した前記第1入力フレームの前記各画素における前記距離と、前記算出した前記第1入力フレームの前記非移動点における前記距離とを比較する、請求項記載の運動推定装置。
【請求項4】
前記演算回路は、前記運動推定処理において、
前記第1入力フレームの前記各画素の前記情報と、機械学習データとに基づいて、前記各画素における前記距離の推定、及び前記各画素における前記距離の前記信頼度の作成を行う、請求項1乃至のいずれか1項記載の運動推定装置。
【請求項5】
前記第1入力フレームは、撮像画像であり、
前記第1入力フレームの前記各画素の前記情報は、ボケの形状であり、
前記機械学習データは、前記撮像画像の距離毎のボケの形状を学習した学習データセットである、請求項記載の運動推定装置。
【請求項6】
前記第1入力フレームは、フルカラー画像であり、
前記第1入力フレームの前記各画素の前記情報は、画素値であり、
前記機械学習データは、前記フルカラー画像の距離毎の画素値を学習した学習データセットである、請求項記載の運動推定装置。
【請求項7】
第2カメラから第2入力フレームを受信する第2受信回路をさらに有し、
前記演算回路は、前記運動推定処理において、
前記第1入力フレームの前記各画素の情報に加えて、前記第2入力フレームの各画素の情報に基づいて、前記第1入力フレームの前記各画素における前記第1カメラから被写体までの距離の推定、並びに前記第1入力フレームの前記各画素における前記距離の信頼度の作成を行う、請求項1乃至のいずれか1項記載の運動推定装置。
【請求項8】
カメラから受信した入力フレームの各画素の情報に基づいて、前記各画素における前記カメラから被写体までの距離を推定することと、
前記各画素の前記情報に基づいて、前記各画素における前記距離の信頼度を作成することと
前記入力フレームの前記各画素の中から第1特徴点を検出すること、
前記第1特徴点における前記信頼度が第1基準値以上である場合、前記第1特徴点を第2特徴点として選択することと、
前記第2特徴点と、前記入力フレームの受信前に登録されたキーフレームの第3特徴点とをマッチングすることと、
前記第2特徴点と前記第3特徴点とがマッチしなかった場合、前記第2特徴点を第4特徴点として選択することと、
前記第4特徴点が前記入力フレームの予め設定された領域にある場合、前記第4特徴点を、前記入力フレームの移動点として検出することと
を備える、運動推定装置による運動推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、運動推定装置及びそれを用いた運動推定方法に関する。
【背景技術】
【0002】
カメラで撮影された画像に基づいて、自己位置推定と環境地図作成とを同時に行うVisual SLAM(Visual Simultaneous Localization and Mapping)技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第5965293号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
運動推定の精度を向上できる運動推定装置及びそれを用いた運動推定方法を提供する。
【課題を解決するための手段】
【0005】
実施形態に係る運動推定装置は、第1カメラから第1入力フレームを受信する第1受信回路と、第1入力フレームに基づいて運動推定処理を行う演算回路とを備える。演算回路は、運動推定処理において、第1入力フレームの各画素の情報に基づいて、各画素における第1カメラから被写体までの距離の推定、及び各画素における距離の信頼度の作成を行い、第1入力フレームの各画素の中から第1特徴点を検出し、第1特徴点における信頼度が第1基準値以上である場合、第1特徴点を第2特徴点として選択し、第2特徴点と、第1入力フレームの受信前に登録されたキーフレームの第3特徴点とをマッチングし、第2特徴点と第3特徴点とがマッチしなかった場合、第2特徴点を第4特徴点として選択し、第4特徴点が第1入力フレームの予め設定された領域にある場合、第4特徴点を、第1入力フレームの移動点として検出する
【図面の簡単な説明】
【0006】
図1図1は、第1実施形態に係る運動推定装置の全体構成の一例を示すブロック図である。
図2図2は、第1実施形態に係る運動推定装置に含まれる受信回路の一例を示すブロック図である。
図3図3は、第1実施形態に係る運動推定装置に含まれるアクセラレータのハードウェア構成の一例を示すブロック図である。
図4図4は、第1実施形態に係る運動推定装置に含まれるアクセラレータの機能構成の一例を示すブロック図である。
図5図5は、第1実施形態に係る運動推定装置で作成される信頼度の一例を説明するための簡易的な図である。
図6図6は、第1実施形態に係る運動推定装置で検出される特徴点の一例を説明するための簡易的な図である。
図7図7は、第1実施形態に係る運動推定装置における特徴点選択の一例を説明するための簡易的な図である。
図8図8は、第1実施形態に係る運動推定装置における特徴点マッチングの一例を説明するための簡易的な図である。
図9図9は、第1実施形態に係る運動推定装置における移動点検出の一例を説明するための簡易的な図である。
図10図10は、第1実施形態に係る運動推定装置で記憶されるマップ情報の一例を示す図である。
図11図11は、第1実施形態に係る運動推定装置の運動推定動作を示すフローチャートである。
図12図12は、第1実施形態に係る運動推定装置の運動推定動作を示すフローチャートである。
図13図13は、第2実施形態に係る運動推定装置に含まれるアクセラレータの機能構成の一例を示すブロック図である。
図14図14は、第3実施形態に係る運動推定装置の全体構成の一例を示すブロック図である。
図15図15は、第3実施形態に係る運動推定装置に含まれるアクセラレータの機能構成の一例を示すブロック図である。
図16図16は、第4実施形態に係る運動推定装置に含まれるアクセラレータのハードウェア構成の一例を示すブロック図である。
図17図17は、第4実施形態に係る運動推定装置に含まれるアクセラレータの機能構成の一例を示すブロック図である。
図18図18は、第3変形例に係る運動推定装置に含まれるアクセラレータの機能構成の一例を示すブロック図である。
図19図19は、第4変形例に係る運動推定装置に含まれるアクセラレータの機能構成の一例を示すブロック図である。
図20図20は、第5変形例に係る運動推定装置に含まれるアクセラレータの機能構成の一例を示すブロック図である。
【発明を実施するための形態】
【0007】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【0008】
1.第1実施形態
第1実施形態に係る運動推定装置について説明する。本実施形態に係る運動推定装置は、例えば画像認識を行うプロセッサに組み込まれ、車両、ロボット、AGV(Automatic Guided Vehicle)及びドローン等に応用可能である。以下、運動推定装置が車両に搭載されている場合について説明する。
【0009】
1.1 構成
1.1.1 運動推定装置の全体構成
本実施形態に係る運動推定装置の全体構成について、図1を用いて説明する。図1は、本実施形態に係る運動推定装置の全体構成の一例を示すブロック図である。
【0010】
運動推定装置1は、受信回路10、CPU(Central Processing Unit)20、アクセラレータ30、ROM(Read Only Memory)40、及びRAM(Random Access Memory)50を含む。運動推定装置1は、例えば運動推定装置1と同じ車両に搭載された外部のカメラ2で撮影されたフレーム(画像)を、バスを介して受信する。本実施形態において、カメラ2は単眼カメラである。カメラ2としては、例えばカラーカメラ、モノクロカメラ、またはNIR(Near-InfraRed)カメラ等が用いられる。運動推定装置1は、カメラ2から受信したフレーム(以下、「入力フレーム」と称する)に基づいて、自己の運動推定を行う。本明細書において、「自己」とは、カメラ2を意味する。なお、例えば1個以上のカメラ2が搭載された車両を、「自己」と定義してもよい。運動推定装置1は、運動推定の結果を、バスを介して外部の制御装置3に送信する。制御装置3は、例えば運動推定の結果に基づいて、車両の動作の決定及び制御を行う装置である。
【0011】
受信回路10は、カメラ2から入力フレームを受信する。受信回路10は、受信した入力フレームをRAM50に送信する。受信回路10の詳細については、後述する。
【0012】
CPU20は、運動推定装置1全体の動作を制御する。CPU20は、様々な演算を行う。なお、CPU20は、マルチプロセッサであってもよい。また、CPU20は、例えばDSP(Digital Signal Processor)やGPU(Graphics Processing Unit)等であってもよい。
【0013】
アクセラレータ30は、入力フレームを用いて運動推定処理を行う専用回路である。アクセラレータ30の詳細については、後述する。
【0014】
ROM40は、不揮発性メモリである。ROM40は、例えばCPU20が種々の動作を実行するためのファームウェア(プログラム)を記憶する。
【0015】
RAM50は、CPU20の作業領域として使用される。RAM50は、例えばDRAMやSRAM等の半導体メモリである。RAM50は、例えば上述のファームウェア、入力フレーム、及びCPU20による種々の動作実行時のデータ等を一時的に記憶する。上述のファームウェアは、例えば運動推定装置1のパワーオン直後に、CPU20によりROM40からRAM50にロードされる。
【0016】
1.1.2 受信回路10の構成
受信回路10の構成について、図2を用いて説明する。図2は、本実施形態に係る運動推定装置1に含まれる受信回路10の一例を示すブロック図である。
【0017】
受信回路10は、ISP(Image Signal Processor)11を含む。受信回路10は、カメラ2から受信した入力フレームの画像(以下、「撮像画像」と称する)、及びISP11により画像処理された画像(以下、「被処理画像」と称する)をRAM50に送信する。
【0018】
本明細書において、カメラ2としてカラーカメラを用いる場合、「撮像画像」とは、カメラ2が撮像素子(イメージセンサ)のフォトダイオードで受光した光を、ベイヤー配列のカラーフィルタアレイを通してサンプリングした画像を意味する。「被処理画像」とは、撮像画像の各画素の情報を、R(赤)、G(緑)及びB(青)で規定されるフルカラーに変換した画像(以下、「フルカラー画像」と称する)を意味する。なお、イメージセンサは、ベイヤー配列のカラーセンサに限定されるものではなく、他の方式のカラーセンサであってもよい。
【0019】
本明細書において、カメラ2としてモノクロカメラやNIRカメラを用いる場合、「撮像画像」とは、カメラ2が撮像素子のフォトダイオードで受光した光の量に相関のある信号値で規定される画像を意味する。以下、撮像画像における、フォトダイオードで受光した光に相関のある信号値を、単に「撮像画像の信号値」と表記する。「被処理画像」とは、撮像画像に対してノイズ削除等の画質調整を行った画像を意味する。なお、撮像画像をそのまま被処理画像として用いてもよい。
【0020】
以下では、撮像画像と被処理画像とを区別する場合は、それぞれ撮像画像、被処理画像と表記し、区別しない場合は、単にフレームと表記する。
【0021】
ISP11は、カメラ2から撮像画像を受信する。カメラ2としてカラーカメラを用いる場合、ISP11は、受信した撮像画像をフルカラー画像に変換する。ISP11は、変換したフルカラー画像を被処理画像として出力する。カメラ2としてモノクロカメラやNIRカメラを用いる場合、ISP11は、例えば受信した撮像画像をそのまま被処理画像として出力する、または撮像画像に対してノイズ削除等の画質調整を行った画像を被処理画像として出力する。
【0022】
1.1.3 アクセラレータ30のハードウェア構成
アクセラレータ30のハードウェア構成について、図3を用いて説明する。図3は、本実施形態に係る運動推定装置1に含まれるアクセラレータ30のハードウェア構成の一例を示すブロック図である。
【0023】
アクセラレータ30は、制御部31、ディープニューラルネットワーク(Deep Neural Network:DNN)演算器35、及び通信部36を含む。
【0024】
制御部31は、CPU32、ROM33、及びRAM34を含む。制御部31は、アクセラレータ30全体の動作を制御する。
【0025】
CPU32は、運動推定処理に関する様々な演算を行う。なお、CPU32は、マルチプロセッサであってもよい。また、CPU32は、例えばDSP、GPU、またはアクセラレータ等であってもよい。運動推定処理に関する様々な演算は、CPU20で行われてもよい。
【0026】
ROM33は、不揮発性メモリである。ROM33は、例えばアクセラレータ30で実行される運動推定処理プログラム330を記憶する。運動推定処理プログラム330は、後述する距離推定、信頼度作成、特徴点検出、特徴点選択、特徴点マッチング、移動点検出、キーフレーム判定、ポーズ推定、キーフレーム登録、ローカルマッピング、距離チェック、グローバルマップ作成判定、及びグローバルマップ作成等の運動推定処理を、アクセラレータ30に実行させるためのプログラムである。
【0027】
RAM34は、CPU32の作業領域として使用される。RAM34は、例えばDRAMやSRAM等の半導体メモリである。RAM34は、例えば運動推定処理プログラム330、入力フレーム、運動推定処理で得られるマップ情報340、及びCPU32による運動推定処理実行時のデータ等を一時的に記憶する。図3では、マップ情報340以外は省略されている。運動推定処理プログラム330は、例えば運動推定装置1のパワーオン直後に、制御部31によりROM33からRAM34にロードされる。マップ情報340の詳細については、後述する。
【0028】
DNN演算器35は、様々な学習用データに基づいて機械学習データ350を作成する。機械学習データ350は、機械学習アルゴリズムを用いて作成されたデータセットである。なお、機械学習データ350は、DNN演算器35により作成される場合に限定されず、運動推定装置1の外部デバイス(サーバ等)で作成されてもよい。外部デバイスにより作成された学習データはネットワークを介して提供されてもよいし、フラッシュメモリなどの外部ストレージを介してオフラインで提供されてもよい。DNN演算器35は、機械学習データ350に基づいて様々な解析(推論)及びデータの算出を行う。
【0029】
通信部36は、アクセラレータ30と、CPU20及びRAM50を含む外部との通信を司る通信インタフェースである。通信部36は、例えば入力フレームを外部から受け、RAM34に記憶する。また、通信部36は、運動推定処理プログラム330の実行により得られた運動推定の結果を外部に出力する。
【0030】
1.1.4 アクセラレータ30の機能構成
アクセラレータ30の機能構成について、図4を用いて説明する。図4は、本実施形態に係る運動推定装置1に含まれるアクセラレータ30の機能構成の一例を示すブロック図である。以下では、カメラ2としてカラーカメラが用られる場合を例に挙げて説明するが、カメラ2としてモノクロカメラやNIRカメラが用いられてもよい。
【0031】
制御部31は、ROM33に記憶された運動推定処理プログラム330をRAM34にロードする。制御部31は、RAM34にロードされた運動推定処理プログラム330をCPU32により解釈及び実行して、アクセラレータ30の各機能の構成要素を制御する。
【0032】
アクセラレータ30は、入力フレームFに基づいて、運動推定処理を実行する際、距離推定部301、特徴点検出部302、特徴点選択部303、特徴点マッチング部304、移動点検出部305、キーフレーム判定部306、ポーズ推定部307、キーフレーム登録部308、ローカルマッピング部309、距離チェック部310、グローバルマップ作成判定部311、及びグローバルマップ作成部312を含むコンピュータとして機能する。
【0033】
以下では、アクセラレータ30の各機能の構成要素について、入力フレームFの撮影時に、カメラ2が過去のキーフレームの撮影時から左に移動する場合を例に挙げて説明する。本明細書において、「キーフレーム」とは、カメラ2から入力されるフレームのうち、後述する特徴点マッチング等に用いられるフレームを意味する。「過去のキーフレーム」とは、入力フレームFの撮影よりも前にマップ情報340に登録されたキーフレームを意味する。なお、本実施形態では、過去のキーフレームの撮影から入力フレームFの撮影までの時間間隔は数百ms~数秒とする。入力フレームFは、被写体として、表示物(例えば標識や看板等)、人物、車両、木、及び太陽を含み得る。
【0034】
(距離推定部301)
距離推定部301は、受信回路10から入力フレームFの撮像画像IMGRawを受信する。距離推定部301は、受信した撮像画像IMGRawをRAM34に記憶する。距離推定部301は、受信した撮像画像IMGRawをDNN演算器35に送信する。DNN演算器35は、距離推定部301から撮像画像IMGRawを受信する。DNN演算器35は、受信した撮像画像IMGRawの各画素について、機械学習データ350との対応関係を解析して距離を算出する。本明細書において、「距離」とは、カメラ2から被写体までの距離(カメラ2から見た被写体の奥行き)を意味する。本実施形態では、距離は、入力フレームFの2次元座標上の点と、カメラ2からの距離とで表される。なお、距離は、カメラ2に対する3次元座標上の点(x,y,z)または極座標上の点(r,θ,φ)で表されてもよい。
【0035】
機械学習データ350として、撮像画像の距離毎のボケの形状を学習した学習データセットが用いられる場合、DNN演算器35は、撮像画像IMGRawの各画素について、ボケの形状と、機械学習データ350のボケの形状との対応関係(例えば、完全一致または部分一致等)を解析して距離を算出する。本明細書において、「ボケ」とは、被写体までの距離や画像の位置で異なるレンズ収差による画像のボケ情報(収差マップ)を意味する。以下では、算出された1個以上の距離の集まりを「距離グループDPG」と表記する。
【0036】
DNN演算器35は、距離推定部301に、算出した入力フレームFの距離グループDPGを送信する。距離推定部301は、DNN演算器35から距離グループDPGを受信する。距離推定部301は、撮像画像IMGRawの各画素について、受信した距離グループDPGの距離を、推定した距離とする。これにより、撮像画像IMGRawの各画素について、距離が推定される。距離推定部301は、受信した距離グループDPGをRAM34に記憶する。距離推定部301は、距離チェック部310に、入力フレームFの距離グループDPGを送信する。
【0037】
また、DNN演算器35は、撮像画像IMGRawの各画素について、機械学習データ350との対応関係を解析して距離の信頼度(尤度)を算出する。本明細書において、「信頼度(尤度)」とは、距離の確からしさを意味する。本実施形態では、信頼度は、入力フレームFの2次元座標上の点と、距離の確からしさを示す確率(%)とで表される。
【0038】
機械学習データ350として、撮像画像の距離毎のボケの形状を学習した学習データセットが用いられる場合、DNN演算器35は、撮像画像IMGRawの各画素について、ボケの形状と、機械学習データ350のボケの形状との近さを解析して距離の信頼度を算出する。撮像画像IMGRawの対応するボケの形状が、機械学習データ350の対応するボケの形状に近いと解析した場合、DNN演算器35は、高い信頼度を算出する。他方で、撮像画像IMGRawの対応するボケの形状が、機械学習データ350の対応するボケの形状に近くないと解析した場合、DNN演算器35は、低い信頼度を算出する。信頼度が高いほど信頼度を示す数値(%)は高くなり、信頼度が低いほど信頼度を示す数値(%)は低くなる。以下では、算出された1個以上の信頼度の集まりを「信頼度グループRLG」と表記する。
【0039】
DNN演算器35は、距離推定部301に、算出した入力フレームFの信頼度グループRLGを送信する。距離推定部301は、DNN演算器35から信頼度グループRLGを受信する。距離推定部301は、撮像画像IMGRawの各画素について、受信した信頼度グループRLGの信頼度を、作成した信頼度とする。これにより、撮像画像IMGRawの各画素について、信頼度が作成される。距離推定部301は、受信した信頼度グループRLGをRAM34に記憶する。距離推定部301は、特徴点選択部303に、入力フレームFの信頼度グループRLGを送信する。
【0040】
信頼度の一例について、図5を用いて説明する。図5は、本実施形態に係る運動推定装置1で作成される信頼度の一例を説明するための簡易的な図である。図5は、入力フレームFの信頼度グループRLGの各信頼度が、基準値(以下、「基準値RV1」と称する)に基づいて分類された例である。分類の結果、入力フレームFの信頼度グループRLGの各信頼度は、例えば領域Ra~Rcで表される。領域Raは、例えば表示物を含む。領域Rbは、例えば人物、車両、及び木の幹を含む。領域Rcは、例えば木の葉及び太陽を含む。入力フレームFの領域Ra及びRbは、信頼度が高い領域を示している。すなわち、領域Ra及びRb内の各画素は、信頼度が高い。入力フレームFの領域Rcは、信頼度が低い領域を示している。すなわち、領域Rc内の各画素は、信頼度が低い。なお、信頼度は、図5に示すように、信頼度が高い領域と信頼度が低い領域とに分けられないこともある。例えば、被写体のエッジ部分では信頼度が高く、エッジ部分の周辺では信頼度が低いこともある。また、被写体のエッジ部分では信頼度が低く、エッジ部分の周辺では信頼度が高いこともある。
【0041】
(特徴点検出部302)
特徴点検出部302は、受信回路10から入力フレームFの被処理画像IMGCnvを受信する。特徴点検出部302は、受信した被処理画像IMGCnvに基づいて、特徴点を検出する。本明細書において、「特徴点」とは、入力フレームFにおいて、ビルの角や標識等のような位置を特定しやすい点を意味する。本実施形態では、特徴点は、2次元座標上の点として表される。なお、特徴点として、例えばORB(Oriented FAST and Rotated BRIEF)特徴量等を用いてもよい。ORBとは、FAST特徴点検出とBRIEF特徴量記述子とを合わせたものである。特徴点検出部302は、例えばコーナー検出(Harris-corner)や特徴点検出(SIFT(Scale Invariant Feature Transform)やSURF(Speeded Up Robust Features))等のアルゴリズムを用いて、被処理画像IMGCnvの各画素の画素値に基づいて、特徴点を検出する。以下では、検出された1個以上の特徴点の集まりを「特徴点グループFPG」と表記する。特徴点検出部302は、特徴点選択部303に、入力フレームFの特徴点グループFPGを送信する。
【0042】
特徴点の一例について、図6を用いて説明する。図6は、本実施形態に係る運動推定装置1で検出される特徴点の一例を説明するための簡易的な図である。図6は、入力フレームFの特徴点グループFPGが、特徴点FP1~FP13を含む例である。特徴点FP1~FP4は、表示物について検出された特徴点である。特徴点FP1~FP4は、例えば表示物の各コーナーに対応する。特徴点FP5は、人物について検出された特徴点である。特徴点FP5は、例えば人物の首に対応する。特徴点FP6~FP9は、車両について検出された特徴点である。特徴点FP6~FP9は、例えば車両の各コーナーに対応する。特徴点FP10~FP12は、木について検出された特徴点である。特徴点FP10は、例えば木の枝の付け根に対応する。特徴点FP11及びFP12は、例えば木の葉の端部に対応する。特徴点FP13は、太陽について検出された特徴点である。なお、入力フレームFの特徴点グループFPGは、特徴点検出のアルゴリズムによっては図6の例と異なることもある。
【0043】
なお、特徴点検出部302は、距離推定部301から距離グループDPGを受信してもよい。この場合、特徴点検出部302は、例えば受信した距離グループDPGに基づいて特徴点を検出し、被処理画像IMGCnvに基づいて特徴点を検出し、これらの検出の結果に基づいて、特徴点グループFPGを検出することができる。
【0044】
(特徴点選択部303)
特徴点選択部303は、距離推定部301から受信した入力フレームFの信頼度グループRLGに基づいて、特徴点検出部302から受信した入力フレームFの特徴点グループFPGの特徴点のうち、信頼度が高い特徴点を選択する。例えば、特徴点選択部303は、特徴点グループFPGの特徴点のうち、信頼度が基準値RV1以上である特徴点を選択し、信頼度が基準値RV1未満である特徴点を選択しない。以下では、選択された1個以上の特徴点の集まりを「特徴点グループFPGsl」と表記する。
【0045】
特徴点選択の一例について、図7を用いて説明する。図7は、本実施形態に係る運動推定装置1における特徴点選択の一例を説明するための簡易的な図である。なお、信頼度が高い領域Ra及びRbは、信頼度が基準値RV1以上であるものとする。信頼度が低い領域Rcは、信頼度が基準値RV1未満であるものとする。特徴点選択部303は、入力フレームFの特徴点グループFPGslとして、特徴点グループFPGの特徴点FP1~FP13のうち、信頼度が高い領域Ra及びRbに含まれる特徴点FP1~FP10を選択する。他方で、特徴点選択部303は、入力フレームFの特徴点グループFPGslとして、特徴点グループFPGの特徴点FP1~FP13のうち、信頼度が低い領域Rcに含まれる特徴点FP11~FP13を選択しない。特徴点選択部303は、特徴点マッチング部304に、入力フレームFの特徴点グループFPGslを送信する。
【0046】
(特徴点マッチング部304)
特徴点マッチング部304は、マップ情報340から過去のキーフレームFkn(入力フレームFのnフレーム(nは1以上の自然数)前のキーフレーム)の特徴点グループFPGknを取得する。特徴点マッチング部304は、特徴点選択部303から受信した入力フレームFの特徴点グループFPGslと、特徴点グループFPGknとを比較する。比較の結果、特徴点マッチング部304は、特徴点グループFPGslの特徴点のうち、特徴点グループFPGknのいずれかの特徴点に対応する特徴点を、対応特徴点と判定する。特徴点マッチング部304は、特徴点グループFPGslの特徴点のうち、特徴点グループFPGknのいずれの特徴点にも対応しない特徴点を、非対応特徴点と判定する。以下では、対応特徴点と判定された1個以上の特徴点の集まりを「対応特徴点グループFPGmt」と表記する。非対応特徴点と判定された1個以上の特徴点の集まりを「非対応特徴点グループFPGumt」と表記する。
【0047】
特徴点マッチングの一例について、図8を用いて説明する。図8は、本実施形態に係る運動推定装置1における特徴点マッチングの一例を説明するための簡易的な図である。なお、過去のキーフレームFknの特徴点グループFPGknは、表示物についての特徴点FP3’及びFP4’、並びに木についての特徴点FP10’を含むものとする。
【0048】
特徴点マッチング部304は、特徴点グループFPGsl(特徴点FP1~FP10)と、特徴点グループFPGkn(特徴点FP3’、FP4’及びFP10’)とを比較する。比較の結果、特徴点マッチング部304は、特徴点FP3と特徴点FP3’、特徴点FP4と特徴点FP4’、及び特徴点FP10と特徴点FP10’がそれぞれ対応すると判定する。すなわち、特徴点マッチング部304は、特徴点グループFPGslの特徴点FP1~FP10のうち、特徴点FP3、FP4及びFP10を対応特徴点と判定する。他方で、特徴点マッチング部304は、特徴点グループFPGslの特徴点FP1~FP10のうち、特徴点FP1、FP2、及びFP5~FP9を非対応特徴点と判定する。特徴点マッチング部304は、移動点検出部305に、入力フレームFの対応特徴点グループFPGmt及び非対応特徴点グループFPGumtを送信する。
【0049】
(移動点検出部305)
移動点検出部305は、特徴点マッチング部304から受信した入力フレームFの非対応特徴点グループFPGumtに基づいて、移動点を検出する。本明細書において、「移動点」とは、入力フレームFの特徴点のうち、過去のキーフレームFknの撮影時から、カメラ2の移動に関係なく移動した特徴点を意味する。
【0050】
また、移動点検出部305は、特徴点マッチング部304から受信した入力フレームFの対応特徴点グループFPGmt及び非対応特徴点グループFPGumtに基づいて、非移動点を検出する。本明細書において、「非移動点」とは、入力フレームFの特徴点のうち、移動点ではない特徴点、及び過去のキーフレームFknのいずれかの特徴点に対応する特徴点を意味する。
【0051】
移動点検出の一例について、図9を用いて説明する。図9は、本実施形態に係る運動推定装置1における移動点検出の一例を説明するための簡易的な図である。なお、車両は、過去のキーフレームFknの撮影時から左に移動している。
【0052】
入力フレームFの左端(破線で囲まれた部分)の特徴点は、過去のキーフレームFknではフレーム外の点である。過去のキーフレームFknの右端(破線で囲まれた部分)は、入力フレームFではフレーム外となる。
【0053】
これに対して、過去のキーフレームFknの撮影から入力フレームFの撮影までの時間間隔が短い(数百ms~数秒)場合、過去のキーフレームFknから入力フレームFまでのカメラ2の移動距離は短いため、入力フレームFの中央付近(一点鎖線で囲まれた部分)の特徴点は、過去のキーフレームFkn内にも存在すると考えられる。入力フレームFの中央付近は、例えば入力フレームFの端部(上端、下端、左端、及び右端)以外の領域である。よって、移動点検出部305は、非対応特徴点グループFPGumtの特徴点FP1、FP2、及びFP5~FP9のうち、入力フレームFの中央付近の特徴点FP6~FP9を移動点と判定する。これにより、入力フレームFの特徴点のうちの移動点が検出される。他方で、移動点検出部305は、非対応特徴点グループFPGumtの特徴点FP1、FP2、及びFP5~FP9のうち、入力フレームFの左端にある特徴点FP1、FP2及びFP5(過去のキーフレームFknではフレーム外であった特徴点)を、非移動点と判定する。また、移動点検出部305は、対応特徴点グループFPGmtの特徴点FP3、FP4及びFP10も非移動点と判定する。これにより、入力フレームFの特徴点のうちの非移動点が検出される。以下では、移動点として検出された1個以上の特徴点の集まりを「移動特徴点グループFPGmv」と表記する。非移動点として検出された1個以上の特徴点の集まりを「非移動特徴点グループFPGumv」と表記する。移動点検出部305は、ポーズ推定部307及びローカルマッピング部309に、入力フレームFの非移動特徴点グループFPGumvを送信する。
【0054】
なお、移動特徴点グループFPGmvを検出する代わりに、非対応特徴点グループFPGumtの特徴点のうちの移動点と判定された特徴点に、移動点であることを示すラベルを付けてもよい。
【0055】
非移動点と判定する入力フレームFの端部は、カメラ2が過去のキーフレームFknの撮影時から移動する方向に応じて変えることができる。例えば、カメラ2が過去のキーフレームFknの撮影時から上に移動する場合、入力フレームFの上端にある特徴点を、非移動点と判定することができる。カメラ2が過去のキーフレームFknの撮影時から右に移動する場合、及び下に移動する場合についても同様である。
【0056】
また、カメラ2が過去のキーフレームFknの撮影時から前方に移動した場合、過去のキーフレームFknの上端、下端、左端、及び右端は、入力フレームFではフレーム外となる。他方で、カメラ2が過去のキーフレームFknの撮影時から後方に移動した場合、入力フレームFの上端、下端、左端、及び右端は、過去のキーフレームFknではフレーム外の点である。これらの場合も同様に、非対応特徴点グループFPGumtの特徴点のうち、入力フレームFの中央付近の特徴点を移動点と判定し、入力フレームFの上端、下端、左端、及び右端の特徴点を非移動点と判定することができる。
【0057】
入力フレームFの端部は、固定の画素数で設定することができる。車両の動きの方向に基づいて、入力フレームFの端部の画素数を設定してもよい。カメラ2が過去のキーフレームFknの撮影時から左に移動する場合、入力フレームFの左端の画素数を大きく設定してもよい。過去のキーフレームFknから入力フレームFまでのカメラ2の移動距離(画素数)に基づいて、入力フレームFの端部の画素数を設定してもよい。
【0058】
(キーフレーム判定部306)
キーフレーム判定部306は、入力フレームFをキーフレームとするかどうかを判定する。例えば、キーフレーム判定部306は、mフレーム(mは1以上の自然数)毎に、入力フレームFをキーフレームとすると判定することができる。
【0059】
なお、キーフレーム判定部306は、特徴点マッチング部304から入力フレームFの対応特徴点グループFPGmtを受信してもよい。この場合、キーフレーム判定部306は、例えば対応特徴点グループFPGmt内の特徴点の数が1個以上である場合、入力フレームFをキーフレームとすると判定し、対応特徴点グループFPGmt内の特徴点の数が0個である場合、入力フレームFをキーフレームとしないと判定することができる。
【0060】
(ポーズ推定部307)
ポーズ推定部307は、マップ情報340から過去のキーフレームFknのポーズPSkn及び特徴点グループFPGknを取得する。本明細書において、「ポーズ」とは、被写体に対するカメラ2の位置を意味する。本実施形態では、「ポーズ」は、3次元座標上の点で表される。ポーズ推定部307は、移動点検出部305から受信した非移動特徴点グループFPGumv、並びにポーズPSkn及び特徴点グループFPGknに基づいて、入力フレームFのポーズPSを推定する。例えば、ポーズ推定部307は、非移動特徴点グループFPGumvの各特徴点について、過去のキーフレームFknからの移動距離(移動した画素数)を算出する。ポーズ推定部307は、算出した移動距離と、ポーズPSkとに基づいて、入力フレームFのポーズPSを推定する。ポーズ推定部307は、ローカルマッピング部309に、入力フレームFのポーズPSを送信する。
【0061】
(キーフレーム登録部308)
キーフレーム登録部308は、入力フレームFをキーフレームとして登録する。例えば、キーフレーム登録部308は、入力フレームFと、入力フレームFの非移動特徴点グループFPGumvと、入力フレームFのポーズPSと、入力フレームFの移動特徴点グループFPGmv(非対応特徴点グループFPGumt中の移動点にラベルを付けた場合は非対応特徴点グループFPGumt)と、他のキーフレームとの関係とをマップ情報340に登録する。入力フレームFは、フレームFknとして登録される。非移動特徴点グループFPGumvは、特徴点グループFPGknとして登録される。ポーズPSは、ポーズPSknとして登録される。移動特徴点グループFPGmvは、移動点グループFPGmvknとして登録される。他のキーフレームとの関係も登録される。
【0062】
(ローカルマッピング部309)
ローカルマッピング部309は、マップ情報340から過去のキーフレームFknのポーズPSkn及び特徴点グループFPGknを取得する。ローカルマッピング部309は、ポーズ推定部307から受信したポーズPS、及び移動点検出部305から受信した非移動特徴点グループFPGumv、並びにポーズPSkn及び特徴点グループFPGknに基づいて、例えば三角測量により、入力フレームFの非移動特徴点グループFPGumvの各特徴点における距離を算出する。以下では、算出された1個以上の距離の集まりを「距離グループDPGlm」または「ローカルマップLM」と表記する。ローカルマッピング部309は、算出した距離グループDPGlmをマップ情報340に登録する。距離グループDPGlmは、特徴点のローカルマップLMknとして登録される。ローカルマッピング部309は、距離チェック部310に、入力フレームFの距離グループDPGlmを送信する。
【0063】
(距離チェック部310)
距離チェック部310は、ローカルマッピング部309から受信した距離グループDPGlmと、距離推定部301から受信した距離グループDPGとを比較する。比較の結果、対応する特徴点における距離が異なる場合、距離チェック部310は、距離グループDPGlm及び距離グループDPGのいずれかが妥当ではないと判定する。この場合、例えば距離チェック部310は、次の入力フレームにおける距離チェックの結果を考慮して妥当性を判定してもよい。なお、距離チェック部310は、ローカルマップLMknとして登録された距離グループDPGlmをマップ情報340から削除してもよい。また、距離チェック部310は、距離グループDPGを信頼して、距離グループDPGをローカルマップLMknとしてマップ情報340に登録してもよい。他方で、対応する特徴点における距離が同じ場合、距離チェック部310は、距離チェックを終了する。
【0064】
(グローバルマップ作成判定部311)
グローバルマップ作成判定部311は、グローバルマップGMの作成を行うかどうかを判定する。本明細書において、「グローバルマップ」とは、ローカルマップLMで表される特徴点を探索空間全体で表したものを意味する。グローバルマップは、例えば3次元座標上の点で表される。例えば、グローバルマップ作成判定部311は、1秒毎にグローバルマップGMの作成を行うと判定することができる。なお、グローバルマップ作成判定部311は、mフレーム(mは1以上の自然数)毎にグローバルマップGMの作成を行うと判定してもよい。また、グローバルマップ作成判定部311は、ローカルマップLMが一定サイズ作成された場合や演算リソースに余裕がある場合にグローバルマップGMの作成を行うと判定してもよい。
【0065】
(グローバルマップ作成部312)
グローバルマップ作成部312は、マップ情報340から、入力フレームFを含む直近の2個以上のキーフレームFknのローカルマップLMknを取得する。グローバルマップ作成部312は、これらのローカルマップLMknの対応する特徴点を位置合わせして、対応する特徴点の位置の誤差を抑えるようにグローバルマップGMを作成する。グローバルマップGMは、例えばループクロージング等のアルゴリズムにより作成される。グローバルマップ作成部312は、作成したグローバルマップGMをマップ情報340に登録する。グローバルマップGMは、特徴点のグローバルマップGMknとしてマップ情報340に登録される。
【0066】
(マップ情報340)
マップ情報340の一例について、図10を用いて説明する。図10は、本実施形態に係る運動推定装置1で記憶されるマップ情報340の一例を示す図である。マップ情報340は、キーフレーム判定部306によりキーフレームとすると判定された入力フレームFの情報を、キーフレーム情報として記憶する。キーフレーム情報は、フレームFkn、特徴点グループFPGkn、ポーズPSkn、移動点FPGmvkn、特徴点のローカルマップLMkn、特徴点のグローバルマップGMkn、及び他のキーフレームとの関係等を含む。
【0067】
1.2 運動推定動作
本実施形態に係る運動推定装置1の運動推定動作について、図11及び図12を用いて説明する。図11及び図12は、本実施形態に係る運動推定装置1の運動推定動作を示すフローチャートである。
【0068】
運動推定装置1は、S10においてカメラ2から入力フレームFを取得する。
【0069】
運動推定装置1が入力フレームFを取得した後、制御部31は、距離推定部301として機能し、S11において上述のように距離推定を行い、S12において上述のように信頼度作成を行う。これにより、入力フレームFについて、距離グループDPGが推定され、信頼度グループRLGが作成される。
【0070】
距離推定及び信頼度作成を実行した後、制御部31は、特徴点検出部302として機能し、S13において上述のように特徴点検出を行う。これにより、入力フレームFの特徴点グループFPGが検出される。
【0071】
特徴点検出を実行した後、制御部31は、特徴点選択部303として機能し、S14において上述のように特徴点選択を行う。これにより、入力フレームFの特徴点グループFPGslが選択される。
【0072】
特徴点選択を実行した後、制御部31は、特徴点マッチング部304として機能し、S15において上述のように特徴点マッチングを行う。これにより、入力フレームFの対応特徴点グループFPGmt及び非対応特徴点グループFPGumtが得られる。
【0073】
特徴点マッチングを実行した後、制御部31は、移動点検出部305として機能し、S16において上述のように移動点検出を行う。これにより、入力フレームFの移動特徴点グループFPGmv及び非移動特徴点グループFPGumvが検出される。
【0074】
移動点検出を実行した後、制御部31は、キーフレーム判定部306として機能し、S17において上述のようにキーフレーム判定を行う。
【0075】
入力フレームFをキーフレームとすると判定した場合(S17_Yes)、制御部31は、ポーズ推定部307として機能し、S18において上述のようにポーズ推定を行う。これにより、入力フレームFのポーズPSが推定される。入力フレームFのポーズPSは、通信部36により制御装置3に転送される。
【0076】
ポーズ推定を実行した後、制御部31は、キーフレーム登録部308として機能し、S19において上述のようにキーフレーム登録を行う。これにより、入力フレームFと、入力フレームFの非移動特徴点グループFPGumvと、入力フレームFのポーズPSと、入力フレームFの移動特徴点グループFPGmv(非対応特徴点グループFPGumt中の移動点にラベルを付けた場合は非対応特徴点グループFPGumt)と、他のキーフレームとの関係とがマップ情報340に登録される。
【0077】
キーフレーム登録を実行した後、制御部31は、ローカルマッピング部309として機能し、S20において上述のようにローカルマッピングを行う。これにより、入力フレームFの距離グループDPGlmが作成される。距離グループDPGlmは、上述のようにマップ情報340に登録される。
【0078】
ローカルマッピングを実行した後、制御部31は、距離チェック部310として機能し、S21において上述のように距離チェックを行う。
【0079】
距離チェックを実行した後、制御部31は、グローバルマップ作成判定部311として機能し、S22において上述のようにグローバルマップ作成判定を行う。
【0080】
グローバルマップGMの作成を行うと判定した場合(S22_Yes)、制御部31は、グローバルマップ作成部312として機能し、S23において上述のようにグローバルマップGMの作成を行う。これにより、入力フレームFのグローバルマップGMが得られる。入力フレームFのグローバルマップGMは、上述のようにマップ情報340に登録される。また、入力フレームFのグローバルマップGMは、通信部36により制御装置3に転送される。
【0081】
制御部31がグローバルマップGMの作成を実行した後、運動推定装置1は、S24において終了判定を行う。ユーザからの終了指示を受けた場合、運動推定装置1は、終了すると判定する。例えば、アプリケーションを終了する場合、システムを停止する(車両のエンジンを切る、並びにロボット、AGV及びドローンの電源を切る)場合、ロボット等が目的地に到着した場合、及び車両が一時停止する(車両のパーキングブレーキを踏む)場合に、運動推定装置1は、終了すると判定することができる。なお、ロボット等が目的地に到着した場合、及び車両が一時停止する場合には、その後も作成したグローバルマップGMを利用することがあり得るため、運動推定装置1は、終了すると判定しなくてもよい。
【0082】
終了しないと判定した場合(S24_No)、運動推定装置1は、前述のS10に進む。他方で、終了すると判定した場合(S24_Yes)、運動推定装置1は、処理を終了する。
【0083】
入力フレームFをキーフレームとしないと判定した場合(S17_No)、制御部31は、前述のS24に進む。
【0084】
グローバルマップGMの作成を行わないと判定した場合(S22_No)、制御部31は、前述のS24に進む。
【0085】
1.3 効果
本実施形態に係る構成では、入力フレームFの各画素における距離推定、及び入力フレームFの特徴点検出に加えて、入力フレームFの各画素における距離の信頼度を作成する。作成した信頼度に基づいて、検出した入力フレームFの特徴点の中から信頼度が高い特徴点を選択する。更に、本実施形態に係る構成では、選択した入力フレームFの特徴点のうち、過去のキーフレームのいずれの特徴点にも対応しない特徴点の中から移動点を検出することができる。よって、信頼度が高く、且つ移動点を除いた特徴点に基づいてポーズPSを推定することができるため、運動推定の精度を向上させることができる。また、信頼度が高く、且つ移動点を除いた特徴点で表される、ローカルマップLM及びグローバルマップGMを作成することができる。
【0086】
2.第2実施形態
第2実施形態に係る運動推定装置1について説明する。運動推定装置1の全体構成は、第1実施形態で示した図1と同じである。本実施形態に係る運動推定装置1では、距離推定及び信頼度作成が第1実施形態と異なる。なお、アクセラレータ30のハードウェア構成は、第1実施形態で示した図3と同じである。運動推定動作を示すフローチャートは、第1実施形態で示した図11及び図12と同じである。以下では、第1実施形態と異なる点を中心に説明する。
【0087】
2.1 アクセラレータ30の機能構成
アクセラレータ30の機能構成について、図13を用いて説明する。図13は、本実施形態に係る運動推定装置1に含まれるアクセラレータ30の機能構成の一例を示すブロック図である。図13に示すアクセラレータ30の機能構成は、距離推定部301が入力フレームFの被処理画像IMGCnvを用いて距離推定及び信頼度作成を行う点において、第1実施形態で示した図4と異なる。アクセラレータ30の他の機能構成は、第1実施形態で示した図4と同じである。以下では、カメラ2としてカラーカメラが用られる場合を例に挙げて説明するが、カメラ2としてモノクロカメラやNIRカメラが用いられてもよい。
【0088】
(距離推定部301)
距離推定部301は、受信回路10から入力フレームFの被処理画像IMGCnvを受信する。距離推定部301は、受信した被処理画像IMGCnvをRAM34に記憶する。距離推定部301は、受信した被処理画像IMGCnvをDNN演算器35に送信する。DNN演算器35は、距離推定部301から被処理画像IMGCnvを受信する。DNN演算器35は、受信した被処理画像IMGCnvの各画素について、機械学習データ350との対応関係を解析して距離を算出する。
【0089】
機械学習データ350として、被処理画像の距離毎の画素値を学習した学習データセットが用いられる場合、DNN演算器35は、被処理画像IMGCnvの各画素について、画素値と、機械学習データ350の画素値との対応関係(例えば、3つの画素成分が全て一致、あるいは1つまたは2つの画素成分が一致等)を解析して距離を算出する。
【0090】
DNN演算器35は、距離推定部301に、算出した入力フレームFの距離グループDPGを送信する。距離推定部301は、DNN演算器35から距離グループDPGを受信する。距離推定部301は、被処理画像IMGCnvの各画素について、受信した距離グループDPGの距離を、推定した距離とする。これにより、被処理画像IMGCnvの各画素について、距離が推定される。距離推定部301は、受信した距離グループDPGをRAM34に記憶する。距離推定部301は、距離チェック部310に、入力フレームFの距離グループDPGを送信する。
【0091】
また、DNN演算器35は、被処理画像IMGCnvの各画素について、機械学習データ350との対応関係を解析して距離の信頼度を算出する。機械学習データ350として、被処理画像の距離毎の画素値を学習した学習データセットが用いられる場合、DNN演算器35は、被処理画像IMGCnvの各画素について、画素値と、機械学習データ350の画素値との近さを解析して距離の信頼度を算出する。被処理画像IMGCnvの対応する画素値が、機械学習データ350の対応する画素値に近いと解析した場合、DNN演算器35は、高い信頼度を算出する。他方で、被処理画像IMGCnvの対応する画素値が、機械学習データ350の対応する画素値に近くないと解析した場合、DNN演算器35は、低い信頼度を算出する。
【0092】
DNN演算器35は、距離推定部301に、算出した入力フレームFの信頼度グループRLGを送信する。距離推定部301は、DNN演算器35から信頼度グループRLGを受信する。距離推定部301は、被処理画像IMGCnvの各画素について、受信した信頼度グループRLGの信頼度を、作成した信頼度とする。これにより、被処理画像IMGCnvの各画素について、信頼度が作成される。距離推定部301は、受信した信頼度グループRLGをRAM34に記憶する。距離推定部301は、特徴点選択部303に、入力フレームFの信頼度グループRLGを送信する。
【0093】
2.2 効果
本実施形態に係る構成によれば、第1実施形態と同様の効果を奏する。
【0094】
3.第3実施形態
第3実施形態に係る運動推定装置1について説明する。本実施形態に係る運動推定装置1は、受信回路60を更に備える。また、本実施形態に係る運動推定装置1では、距離推定及び信頼度作成が第1及び第2実施形態と異なる。なお、アクセラレータ30のハードウェア構成は、第1実施形態で示した図3と同じである。運動推定動作を示すフローチャートは、第1実施形態で示した図11及び図12と同じである。以下では、第1及び第2実施形態と異なる点を中心に説明する。
【0095】
3.1 運動推定装置1の全体構成
本実施形態に係る運動推定装置1の全体構成について、図14を用いて説明する。図14は、本実施形態に係る運動推定装置1の全体構成の一例を示すブロック図である。
【0096】
運動推定装置1は、受信回路60を更に備える。運動推定装置1は、例えば運動推定装置1と同じ車両に搭載された外部のカメラ4で撮影されたフレーム(画像)を、バスを介して更に受信する。本実施形態において、カメラ4は、カメラ2と同じ単眼カメラである。カメラ4としては、例えばカラーカメラ、モノクロカメラ、またはNIRカメラ等が用いられる。カメラ2及び4によりステレオカメラが構成される。受信回路60は、カメラ4から入力フレームを受信する。受信回路60は、受信した入力フレームをRAM50に送信する。受信回路60は、受信回路10と同じ構成を有する。運動推定装置1の他の構成は、第1実施形態で示した図1と同じである。
【0097】
3.2 アクセラレータ30の機能構成
アクセラレータ30の機能構成について、図15を用いて説明する。図15は、本実施形態に係る運動推定装置1に含まれるアクセラレータ30の機能構成の一例を示すブロック図である。図15に示すアクセラレータ30の機能構成は、受信回路10から受信した入力フレームFrの被処理画像IMGCnvrと、受信回路60から受信した入力フレームFlの被処理画像IMGCnvlとを用いて距離推定及び信頼度作成を行う点において、第1実施形態で示した図4と異なる。アクセラレータ30の他の機能構成は、第1実施形態で示した図4と同じである。なお、距離推定及び信頼度作成では、例えば入力フレームFrが基準フレームとして採用され、入力フレームFrの被処理画像IMGCnvrの各画素について、距離の推定及び距離の信頼度の作成が行われる。また、特徴点検出、特徴点選択、特徴点マッチング、移動点検出、キーフレーム判定、ポーズ推定、キーフレーム登録、ローカルマッピング、距離チェック、グローバルマップ作成判定、及びグローバルマップ作成では、例えば入力フレームFrが基準フレームとして採用され、入力フレームFrについて、入力フレームFrの被処理画像IMGCnvrに基づいて、第1実施形態と同様に行われる。以下では、カメラ2及び4としてカラーカメラが用られる場合を例に挙げて説明するが、カメラ2及び4としてモノクロカメラやNIRカメラが用いられてもよい。
【0098】
(距離推定部301)
距離推定部301は、受信回路10から入力フレームFrの被処理画像IMGCnvrを受信する。距離推定部301は、受信回路60から入力フレームFlの被処理画像IMGCnvlを受信する。距離推定部301は、受信した被処理画像IMGCnvr及びIMGCnvlをRAM34に記憶する。距離推定部301は、受信した被処理画像IMGCnvr及びIMGCnvlをDNN演算器35に送信する。DNN演算器35は、距離推定部301から被処理画像IMGCnvr及びIMGCnvlを受信する。DNN演算器35は、受信した被処理画像IMGCnvr及びIMGCnvlの各画素について機械学習データ350との対応関係を解析して、被処理画像IMGCnvrの各画素について被処理画像IMGCnvlの対応する画素を算出する。
【0099】
機械学習データ350として、被処理画像の距離毎の画素値を学習した学習データセットが用いられる場合、DNN演算器35は、被処理画像IMGCnvr及びIMGCnvlの各画素について、画素値と、機械学習データ350の画素値との対応関係(例えば、3つの画素成分が全て一致、あるいは1つまたは2つの画素成分が一致等)を解析して、被処理画像IMGCnvrの各画素について、被処理画像IMGCnvlの対応する画素を算出する。以下では、算出された1組以上の対応する画素の集まりを「対応画素グループPXG」と表記する。
【0100】
DNN演算器35は、距離推定部301に、算出した対応画素グループPXGを送信する。距離推定部301は、DNN演算器35から対応画素グループPXGを受信する。距離推定部301は、受信した対応画素グループPXGをRAM34に記憶する。距離推定部301は、DNN演算器35から受信した対応画素グループPXGと、カメラ2とカメラ4との間隔とに基づいて、例えば三角測量により、被処理画像IMGCnvrの各画素における距離を算出する。距離推定部301は、被処理画像IMGCnvrの各画素について、算出した距離を、推定した距離とする。これにより、被処理画像IMGCnvrの各画素について、距離が推定される。距離推定部301は、推定した距離グループDPGをRAM34に記憶する。距離推定部301は、DNN演算器35及び距離チェック部310に、入力フレームFrの距離グループDPGを送信する。
【0101】
また、DNN演算器35は、被処理画像IMGCnvrの各画素について、機械学習データ350との対応関係を解析して距離の信頼度を算出する。機械学習データ350として、被処理画像の距離毎の画素値を学習した学習データセットが用いられる場合、DNN演算器35は、第2実施形態と同様に、被処理画像IMGCnvrの各画素について、画素値と、機械学習データ350の画素値との近さを解析して距離の信頼度を算出する。
【0102】
DNN演算器35は、距離推定部301に、算出した入力フレームFrの信頼度グループRLGを送信する。距離推定部301は、DNN演算器35から信頼度グループRLGを受信する。距離推定部301は、被処理画像IMGCnvrの各画素について、受信した信頼度グループRLGの信頼度を、作成した信頼度とする。これにより、被処理画像IMGCnvrの各画素について、信頼度が作成される。距離推定部301は、受信した信頼度グループRLGをRAM34に記憶する。距離推定部301は、特徴点選択部303に、入力フレームFrの信頼度グループRLGを送信する。
【0103】
3.3 効果
本実施形態に係る構成によれば、第1実施形態と同様の効果を奏する。
【0104】
4.第4実施形態
第4実施形態に係る運動推定装置1について説明する。運動推定装置1の全体構成は、第3実施形態で示した図14と同じである。本実施形態に係る運動推定装置1では、距離推定及び信頼度作成が第3実施形態と異なる。アクセラレータ30は、第1実施形態で示した図3からDNN演算器35が廃され、ステレオマッチング部37が設けられた構成を有する。なお、運動推定動作を示すフローチャートは、第1実施形態で示した図11及び図12と同じである。以下では、第3実施形態と異なる点を中心に説明する。
【0105】
4.1 アクセラレータ30のハードウェア構成
アクセラレータ30のハードウェア構成について、図16を用いて説明する。図16は、本実施形態に係る運動推定装置1に含まれるアクセラレータ30のハードウェア構成の一例を示すブロック図である。
【0106】
アクセラレータ30は、制御部31、ステレオマッチング部37、及び通信部36を含む。
【0107】
ステレオマッチング部37は、入力フレームFrの各画素と入力フレームFlの各画素とのマッチングを行う。ステレオマッチング部37は、マッチングの結果に基づいて、例えば入力フレームFrの各画素における距離の信頼度を算出する。アクセラレータ30の他のハードウェア構成は、第1実施形態で示した図3と同じである。
【0108】
4.2 アクセラレータ30の機能構成
アクセラレータ30の機能構成について、図17を用いて説明する。図17は、本実施形態に係る運動推定装置1に含まれるアクセラレータ30の機能構成の一例を示すブロック図である。図17に示すアクセラレータ30の機能構成は、ステレオマッチング部37を用いて距離推定及び信頼度作成を行う点において、第3実施形態で示した図15と異なる。アクセラレータ30の他の機能構成は、第3実施形態で示した図15と同じである。以下では、カメラ2及び4としてカラーカメラが用られる場合を例に挙げて説明するが、カメラ2及び4としてモノクロカメラやNIRカメラが用いられてもよい。
【0109】
(距離推定部301)
距離推定部301は、受信回路10から入力フレームFrの被処理画像IMGCnvrを受信する。距離推定部301は、受信回路60から入力フレームFlの被処理画像IMGCnvlを受信する。距離推定部301は、受信した被処理画像IMGCnvr及びIMGCnvlをRAM34に記憶する。距離推定部301は、受信した被処理画像IMGCnvr及びIMGCnvlをステレオマッチング部37に送信する。ステレオマッチング部37は、距離推定部301から被処理画像IMGCnvr及びIMGCnvlを受信する。ステレオマッチング部37は、例えばSGM(Semi-Global-Matching)等のアルゴリズムを用いて、画素値に基づいて、被処理画像IMGCnvrの各画素について、被処理画像IMGCnvlの対応する画素を算出する。
【0110】
ステレオマッチング部37は、距離推定部301に、算出した対応画素グループPXGを送信する。距離推定部301は、ステレオマッチング部37から対応画素グループPXGを受信する。距離推定部301は、受信した対応画素グループPXGをRAM34に記憶する。距離推定部301は、ステレオマッチング部37から受信した対応画素グループPXGと、カメラ2とカメラ4との間隔とに基づいて、第3実施形態と同様に、被処理画像IMGCnvrの各画素における距離を算出する。距離推定部301は、被処理画像IMGCnvrの各画素について、算出した距離を、推定した距離とする。これにより、被処理画像IMGCnvrの各画素について、距離が推定される。距離推定部301は、推定した距離グループDPGをRAM34に記憶する。距離推定部301は、ステレオマッチング部37及び距離チェック部310に、入力フレームFrの距離グループDPGを送信する。
【0111】
また、ステレオマッチング部37は、被処理画像IMGCnvrの各画素について、距離の信頼度を算出する。例えば、SGMを用いた場合、ステレオマッチング部37は、被処理画像IMGCnvrの各画素について、画素毎のコスト関数に基づいて距離の信頼度を算出する。
【0112】
ステレオマッチング部37は、距離推定部301に、算出した入力フレームFrの信頼度グループRLGを送信する。距離推定部301は、ステレオマッチング部37から信頼度グループRLGを受信する。距離推定部301は、被処理画像IMGCnvrの各画素について、受信した信頼度グループRLGの信頼度を、作成した信頼度とする。これにより、被処理画像IMGCnvrの各画素について、信頼度が作成される。距離推定部301は、受信した信頼度グループRLGをRAM34に記憶する。距離推定部301は、特徴点選択部303に、入力フレームFrの信頼度グループRLGを送信する。
【0113】
4.3 効果
本実施形態に係る構成によれば、第1実施形態と同様の効果を奏する。
【0114】
5.変形例等
上記のように、実施形態に係る運動推定装置は、第1入力フレーム(F)を受信する第1受信回路(10)と、第1入力フレームに基づいて運動推定処理を行う演算回路(30)とを備える。演算回路は、運動推定処理において、第1入力フレームの各画素の情報(ボケの形状/画素値/撮像画像の信号値)に基づいて、各画素における距離の推定、及び各画素における距離の信頼度の作成を行う。
【0115】
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
【0116】
5.1 第1変形例
第1変形例として、第1実施形態の変形例に係る運動推定装置1について説明する。運動推定装置1の全体構成は、第1実施形態で示した図1と同じである。本変形例に係る運動推定装置1では、距離推定及び信頼度作成が第1実施形態と異なる。なお、アクセラレータ30のハードウェア構成は、第1実施形態で示した図3と同じである。アクセラレータ30の機能構成は、第2実施形態で示した図13と同じである。運動推定動作を示すフローチャートは、第1実施形態で示した図11及び図12と同じである。以下では、第1実施形態と異なる点を中心に説明する。
【0117】
5.1.1 アクセラレータ30の機能構成
アクセラレータ30の機能構成について、図13を用いて説明する。以下では、カメラ2としてカラーカメラが用られる場合を例に挙げて説明するが、カメラ2としてモノクロカメラやNIRカメラが用いられてもよい。
【0118】
(距離推定部301)
距離推定部301は、受信回路10から入力フレームFの被処理画像IMGCnvを受信する。距離推定部301は、受信した被処理画像IMGCnvをRAM34に記憶する。距離推定部301は、受信した被処理画像IMGCnvをDNN演算器35に送信する。DNN演算器35は、距離推定部301から被処理画像IMGCnvを受信する。DNN演算器35は、受信した被処理画像IMGCnvの各画素について、機械学習データ350との対応関係を解析して距離を算出する。
【0119】
機械学習データ350として、被処理画像の距離毎のボケの形状を学習した学習データセットが用いられる場合、DNN演算器35は、第1実施形態と同様に、被処理画像IMGCnvの各画素について、ボケの形状と、機械学習データ350のボケの形状との対応関係(例えば、完全一致または部分一致等)を解析して距離を算出する。
【0120】
距離推定部301は、第1実施形態と同様に、DNN演算器35から、算出された入力フレームFの距離グループDPGを受信し、距離チェック部310に、距離グループDPGを送信する。
【0121】
また、DNN演算器35は、被処理画像IMGCnvの各画素について、機械学習データ350との対応関係を解析して距離の信頼度を算出する。機械学習データ350として、被処理画像の距離毎のボケの形状を学習した学習データセットが用いられる場合、DNN演算器35は、第1実施形態と同様に、被処理画像IMGCnvの各画素について、ボケの形状と、機械学習データ350のボケの形状との近さを解析して距離の信頼度を算出する。
【0122】
距離推定部301は、第1実施形態と同様に、DNN演算器35から、算出された入力フレームFの信頼度グループRLGを受信し、特徴点選択部303に、信頼度グループRLGを送信する。
【0123】
5.1.2 効果
本変形例に係る構成によれば、第1実施形態と同様の効果を奏する。
【0124】
5.2 第2変形例
第2変形例として、第2実施形態の変形例に係る運動推定装置1について説明する。運動推定装置1の全体構成は、第1実施形態で示した図1と同じである。本変形例に係る運動推定装置1では、距離推定及び信頼度作成が第2実施形態と異なる。なお、アクセラレータ30のハードウェア構成は、第1実施形態で示した図3と同じである。アクセラレータ30の機能構成は、第1実施形態で示した図4と同じである。運動推定動作を示すフローチャートは、第1実施形態で示した図11及び図12と同じである。以下では、第1実施形態と異なる点を中心に説明する。
【0125】
5.2.1 アクセラレータ30の機能構成
アクセラレータ30の機能構成について、図4を用いて説明する。以下では、カメラ2としてモノクロカメラが用られる場合を例に挙げて説明するが、カメラ2としてNIRカメラやカラーカメラが用いられてもよい。
【0126】
(距離推定部301)
距離推定部301は、受信回路10から入力フレームFの撮像画像IMGRawを受信する。距離推定部301は、受信した撮像画像IMGRawをRAM34に記憶する。距離推定部301は、受信した撮像画像IMGRawをDNN演算器35に送信する。DNN演算器35は、距離推定部301から撮像画像IMGRawを受信する。DNN演算器35は、受信した撮像画像IMGRawの各画素について、機械学習データ350との対応関係を解析して距離を算出する。
【0127】
機械学習データ350として、撮像画像における距離毎の撮像画像の信号値を学習した学習データセットが用いられる場合、DNN演算器35は、撮像画像IMGRawの各画素について、撮像画像の信号値と、機械学習データ350の撮像画像の信号値との対応関係(例えば、完全一致または部分一致等)を解析して距離を算出する。
【0128】
距離推定部301は、第2実施形態と同様に、DNN演算器35から、算出された入力フレームFの距離グループDPGを受信し、距離チェック部310に、距離グループDPGを送信する。
【0129】
また、DNN演算器35は、撮像画像IMGRawの各画素について、機械学習データ350との対応関係を解析して距離の信頼度を算出する。機械学習データ350として、撮像画像における距離毎の撮像画像の信号値を学習した学習データセットが用いられる場合、DNN演算器35は、撮像画像IMGRawの各画素について、撮像画像の信号値と、機械学習データ350の撮像画像の信号値との近さを解析して距離の信頼度を算出する。撮像画像IMGRawにおいて対応する撮像画像の信号値が、機械学習データ350の対応する撮像画像の信号値に近いと解析した場合、DNN演算器35は、高い信頼度を算出する。他方で、撮像画像IMGRawにおいて対応する撮像画像の信号値が、機械学習データ350の対応する撮像画像の信号値に近くないと解析した場合、DNN演算器35は、低い信頼度を算出する。
【0130】
距離推定部301は、第2実施形態と同様に、DNN演算器35から、算出された入力フレームFの信頼度グループRLGを受信し、特徴点選択部303に、信頼度グループRLGを送信する。
【0131】
5.2.2 効果
本変形例に係る構成によれば、第1実施形態と同様の効果を奏する。
【0132】
5.3 第3変形例
第3変形例として、第3実施形態の変形例に係る運動推定装置1について説明する。運動推定装置1の全体構成は、第3実施形態で示した図14と同じである。本変形例に係る運動推定装置1では、距離推定及び信頼度作成が第3実施形態と異なる。なお、アクセラレータ30のハードウェア構成は、第1実施形態で示した図3と同じである。運動推定動作を示すフローチャートは、第1実施形態で示した図11及び図12と同じである。以下では、第3実施形態と異なる点を中心に説明する。
【0133】
5.3.1 アクセラレータ30の機能構成
アクセラレータ30の機能構成について、図18を用いて説明する。図18は、本変形例に係る運動推定装置1に含まれるアクセラレータ30の機能構成の一例を示すブロック図である。図18に示すアクセラレータ30の機能構成は、距離推定部301が入力フレームFrの撮像画像IMGRawr及び入力フレームFlの撮像画像IMGRawlを用いて距離推定及び信頼度作成を行う点において、第3実施形態で示した図15と異なる。アクセラレータ30の他の機能構成は、第3実施形態で示した図15と同じである。以下では、カメラ2及び4としてモノクロカメラが用られる場合を例に挙げて説明するが、カメラ2及び4としてNIRカメラやカラーカメラが用いられてもよい。
【0134】
(距離推定部301)
距離推定部301は、受信回路10から入力フレームFrの撮像画像IMGRawrを受信する。距離推定部301は、受信回路60から入力フレームFlの撮像画像IMGRawlを受信する。距離推定部301は、受信した撮像画像IMGRawr及びIMGRawlをRAM34に記憶する。距離推定部301は、受信した撮像画像IMGRawr及びIMGRawlをDNN演算器35に送信する。DNN演算器35は、距離推定部301から撮像画像IMGRawr及びIMGRawlを受信する。DNN演算器35は、受信した撮像画像IMGRawr及びIMGRawlの各画素について機械学習データ350との対応関係を解析して、撮像画像IMGRawrの各画素について撮像画像IMGRawlの対応する画素を算出する。
【0135】
機械学習データ350として、撮像画像における距離毎の撮像画像の信号値を学習した学習データセットが用いられる場合、DNN演算器35は、撮像画像IMGRawr及びIMGRawlの各画素について、撮像画像の信号値と、機械学習データ350の撮像画像の信号値との対応関係(例えば、完全一致または部分一致等)を解析して、撮像画像IMGRawrの各画素について、撮像画像IMGRawlの対応する画素を算出する。
【0136】
距離推定部301は、第3実施形態と同様に、DNN演算器35から、算出された対応画素グループPXGを受信し、受信した対応画素グループPXGと、カメラ2とカメラ4との間隔とに基づいて、入力フレームFrの距離グループDPGを算出する。距離推定部301は、第3実施形態と同様に、DNN演算器35及び距離チェック部310に、算出した距離グループDPGを送信する。
【0137】
また、DNN演算器35は、撮像画像IMGRawrの各画素について、機械学習データ350との対応関係を解析して距離の信頼度を算出する。機械学習データ350として、撮像画像における距離毎の撮像画像の信号値を学習した学習データセットが用いられる場合、DNN演算器35は、第2変形例と同様に、撮像画像IMGRawrの各画素について、撮像画像の信号値と、機械学習データ350の撮像画像の信号値との近さを解析して距離の信頼度を算出する。
【0138】
距離推定部301は、第3実施形態と同様に、DNN演算器35から、算出された入力フレームFrの信頼度グループRLGを受信し、特徴点選択部303に、信頼度グループRLGを送信する。
【0139】
5.3.2 効果
本変形例に係る構成によれば、第1実施形態と同様の効果を奏する。
【0140】
5.4 第4変形例
第4変形例として、第4実施形態の変形例に係る運動推定装置1について説明する。運動推定装置1の全体構成は、第3実施形態で示した図14と同じである。本変形例に係る運動推定装置1では、距離推定及び信頼度作成が第4実施形態と異なる。なお、アクセラレータ30のハードウェア構成は、第4実施形態で示した図16と同じである。運動推定動作を示すフローチャートは、第1実施形態で示した図11及び図12と同じである。以下では、第4実施形態と異なる点を中心に説明する。
【0141】
5.4.1 アクセラレータ30の機能構成
アクセラレータ30の機能構成について、図19を用いて説明する。図19は、本変形例に係る運動推定装置1に含まれるアクセラレータ30の機能構成の一例を示すブロック図である。図19に示すアクセラレータ30の機能構成は、距離推定部301が入力フレームFrの撮像画像IMGRawr及び入力フレームFlの撮像画像IMGRawlを用いて距離推定及び信頼度作成を行う点において、第4実施形態で示した図17と異なる。アクセラレータ30の他の機能構成は、第4実施形態で示した図17と同じである。以下では、カメラ2及び4としてモノクロカメラが用られる場合を例に挙げて説明するが、カメラ2及び4としてNIRカメラやカラーカメラが用いられてもよい。
【0142】
(距離推定部301)
距離推定部301は、受信回路10から入力フレームFrの撮像画像IMGRawrを受信する。距離推定部301は、受信回路60から入力フレームFlの撮像画像IMGRawlを受信する。距離推定部301は、受信した撮像画像IMGRawr及びIMGRawlをRAM34に記憶する。距離推定部301は、受信した撮像画像IMGRawr及びIMGRawlをステレオマッチング部37に送信する。ステレオマッチング部37は、距離推定部301から撮像画像IMGRawr及びIMGRawlを受信する。ステレオマッチング部37は、例えばSGM等のアルゴリズムを用いて、撮像画像の信号値に基づいて、撮像画像IMGRawrの各画素について、撮像画像IMGRawlの対応する画素を算出する。
【0143】
距離推定部301は、第4実施形態と同様に、ステレオマッチング部37から、算出された対応画素グループPXGを受信し、受信した対応画素グループPXGと、カメラ2とカメラ4との間隔とに基づいて、入力フレームFrの距離グループDPGを算出する。距離推定部301は、第4実施形態と同様に、ステレオマッチング部37及び距離チェック部310に、算出した距離グループDPGを送信する。
【0144】
また、ステレオマッチング部37は、撮像画像IMGRawrの各画素について、距離の信頼度を算出する。例えば、SGMを用いた場合、ステレオマッチング部37は、第4実施形態と同様に、撮像画像IMGRawrの各画素について、画素毎のコスト関数に基づいて、距離の信頼度を算出する。
【0145】
距離推定部301は、第4実施形態と同様に、ステレオマッチング部37から、算出された入力フレームFrの信頼度グループRLGを受信し、特徴点選択部303に、信頼度グループRLGを送信する。
【0146】
5.4.2 効果
本変形例に係る構成によれば、第1実施形態と同様の効果を奏する。
【0147】
5.5 第5変形例
第5変形例として、第1実施形態の変形例に係る運動推定装置1について説明する。運動推定装置1の全体構成は、第1実施形態で示した図1と同じである。本変形例に係る運動推定装置1では、特徴点検出が第1実施形態と異なる。なお、アクセラレータ30のハードウェア構成は、第1実施形態で示した図3と同じである。運動推定動作を示すフローチャートは、第1実施形態で示した図11及び図12と同じである。以下では、第1実施形態と異なる点を中心に説明する。
【0148】
5.5.1 アクセラレータ30の機能構成
アクセラレータ30の機能構成について、図20を用いて説明する。図20は、本変形例に係る運動推定装置1に含まれるアクセラレータ30の機能構成の一例を示すブロック図である。図20に示すアクセラレータ30の機能構成は、特徴点検出部302が入力フレームFの撮像画像IMGRawを用いて特徴点検出を行う点において、第1実施形態で示した図4と異なる。アクセラレータ30の他の機能構成は、第1実施形態で示した図4と同じである。以下では、カメラ2としてモノクロカメラが用られる場合を例に挙げて説明するが、カメラ2としてNIRカメラやカラーカメラが用いられてもよい。
【0149】
(特徴点検出部302)
特徴点検出部302は、受信回路10から入力フレームFの撮像画像IMGRawを受信する。特徴点検出部302は、受信した撮像画像IMGRawに基づいて、特徴点を検出する。特徴点検出部302は、例えばSIFTやSURF等のアルゴリズムを用いて、撮像画像IMGRawの各画素における撮像画像の信号値に基づいて、特徴点を検出する。
【0150】
特徴点検出部302は、第1実施形態と同様に、特徴点選択部303に、検出した入力フレームFの特徴点グループFPGを送信する。
【0151】
5.5.2 効果
本変形例に係る構成によれば、第1実施形態と同様の効果を奏する。もちろん、本変形例は、第2乃至第4実施形態、及び第1乃至第4変形例に適用することもできる。
【0152】
5.6 他の変形例
機械学習データ350は、上述したデータセットに限定されない。
【0153】
また、DNN演算器35の機能は、距離推定部301に含まれていてもよい。
【0154】
上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることができる。距離推定(S11)と信頼度作成(S12)とは逆の順序でもよい。また、距離推定(S11)、信頼度作成(S12)、及び特徴点検出(S13)は、並列に実行可能である。距離チェック(S21)は省略されてもよい。
【0155】
また、カメラ2及び4を用いる場合、入力フレームFrの特徴点グループの検出に加えて、入力フレームFlの特徴点グループの検出を行ってもよい。この場合、これらの検出の結果に基づいて、入力フレームFrの特徴点グループFPGを検出することができる。
【0156】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0157】
1…運動推定装置、2、4…カメラ、3…制御装置、10、60…受信回路、11…ISP、20、32…CPU、30…アクセラレータ、31…制御部、33、40…ROM、34、50…RAM、35…DNN演算器、36…通信部、37…ステレオマッチング部、301…距離推定部、302…特徴点検出部、303…特徴点選択部、304…特徴点マッチング部、305…移動点検出部、306…キーフレーム判定部、307…ポーズ推定部、308…キーフレーム登録部、309…ローカルマッピング部、310…距離チェック部、311…グローバルマップ作成判定部、312…グローバルマップ作成部、330…運動推定処理プログラム、340…マップ情報、350…機械学習データ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20