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

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

<図1>
  • -深度推定方法、深度推定装置 図1
  • -深度推定方法、深度推定装置 図2
  • -深度推定方法、深度推定装置 図3
  • -深度推定方法、深度推定装置 図4
  • -深度推定方法、深度推定装置 図5
  • -深度推定方法、深度推定装置 図6
  • -深度推定方法、深度推定装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023035903
(43)【公開日】2023-03-13
(54)【発明の名称】深度推定方法、深度推定装置
(51)【国際特許分類】
   G06T 7/50 20170101AFI20230306BHJP
【FI】
G06T7/50
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022129542
(22)【出願日】2022-08-16
(31)【優先権主張番号】P 2021139951
(32)【優先日】2021-08-30
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】505277358
【氏名又は名称】株式会社モルフォ
(74)【代理人】
【識別番号】100093687
【弁理士】
【氏名又は名称】富崎 元成
(74)【代理人】
【識別番号】100168468
【弁理士】
【氏名又は名称】富崎 曜
(74)【代理人】
【識別番号】110001759
【氏名又は名称】弁理士法人よつ葉国際特許事務所
(72)【発明者】
【氏名】角田 良太朗
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA02
5L096CA27
5L096DA01
5L096DA02
5L096EA02
5L096EA04
5L096EA05
5L096FA66
5L096GA02
(57)【要約】
【課題】高品質な深度マップを取得するための技術を提供することである。
【解決手段】複数の深度マップを取得することと、該複数の深度マップに含まれる距離値をそのまま用いる場合と比べて、隣接する画素の距離値の差の平均を減少させつつ該複数の深度マップを合成して、1つの出力深度マップを出力することと、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数の深度マップを取得することと、
前記複数の深度マップに含まれる距離値をそのまま用いる場合と比べて、隣接する画素の距離値の差の平均を減少させつつ前記複数の深度マップを合成して、1つの出力深度マップを出力することと、を備えた深度推定方法。
【請求項2】
前記出力深度マップの画素における距離値は、前記複数の深度マップの対応する画素における距離値と異なる、請求項1に記載の深度推定方法。
【請求項3】
前記複数の深度マップは第1深度マップと第2深度マップを含み、
測距センサを用いて前記第1深度マップを取得することと、
撮像デバイスを用いて前記第2深度マップを取得することと、を備えた請求項1に記載の深度推定方法。
【請求項4】
前記複数の深度マップは第1深度マップと第2深度マップを含み、
前記第1深度マップは一部の画素において距離値が欠損した深度マップであり、
前記第2深度マップは距離値の欠損がない深度マップである、請求項1に記載の深度推定方法。
【請求項5】
ステレオマッチングで第1深度マップを取得することと、
画像から推論することで得られた第2深度マップを取得することと、
前記第1深度マップと前記第2深度マップを含む複数の深度マップを合成して出力深度マップを出力することと、を備えた深度推定方法。
【請求項6】
前記第1深度マップの有効画素数は、前記第2深度マップの有効画素数より小さい、請求項5に記載の深度推定方法。
【請求項7】
前記画像は広角カメラで撮影する請求項5に記載の深度推定方法。
【請求項8】
前記出力深度マップの中央部分の距離値は前記第1深度マップから取り込まれ、前記出力深度マップの前記中央部分を囲む周辺部分は前記第2深度マップから取り込まれた、請求項6に記載の深度推定方法。
【請求項9】
ToFセンサによって得られた第3深度マップを取得することを備え、
前記出力深度マップは前記第1深度マップと前記第2深度マップと前記第3深度マップを合成して得られる、請求項5に記載の深度推定方法。
【請求項10】
測定対象領域に対して測距センサによって取得された第1の深度マップと、前記測定対象領域の画像から生成された第2の深度マップとを取得する取得部と、
コスト関数に従って前記第1の深度マップと前記第2の深度マップとから第3の深度マップを導出する導出部と、を有し、
前記コスト関数は、
注目画素に対応する距離値が前記第1の深度マップに存在する場合、前記第3の深度マップにおける前記注目画素の距離値を前記第1の深度マップの距離値に近づけるための第1の制約と、
前記注目画素に対応する距離値が前記第1の深度マップに存在しない場合、前記第3の深度マップにおける前記注目画素の距離値を前記第2の深度マップの距離値に近づけるための第2の制約と、
前記注目画素の距離値を前記注目画素の近傍画素の距離値に近づけるための第3の制約と、
を含む、深度推定装置。
【請求項11】
前記導出部は、前記コスト関数の値が最小になるように前記第3の深度マップを導出する請求項10に記載の深度推定装置。
【請求項12】
前記コスト関数は、前記第1の深度マップ又は前記第2の深度マップにおける距離値が不連続である部分では、前記第3の制約を弱めるよう規定される、請求項10に記載の深度推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、深度推定方法と深度推定装置に関する。
【背景技術】
【0002】
カメラ等の撮像デバイスによって撮像された画像は、被写体の輝度情報を表す一方、ToF(Time of Flight)センサ、LiDAR(Light Detection and Ranging)等の測距センサによって検知された深度マップ(深度画像とも呼ばれる)は、測距センサと被写体との間の距離又は奥行き情報を表す。このような深度マップは、例えば、撮像した画像に対する写真加工、車両やロボット等の自律動作のための物体検出などに利用されうる。
【0003】
AI(Artificial Intelligence)技術の進化によって、撮像デバイスから取得された画像から、被写体と撮像デバイスとの間の距離、すなわち、奥行きを表す深度マップを推定する深度推定モデルが開発されている。例えば、MiDaS(https://github.com/intel-isl/MiDaS)、DPT(https://github.com/intel-isl/DPT)などが、単眼画像に対する深度推定モデルとして知られている。
【0004】
一方、近年のスマートフォン、タブレット等のモバイル端末の高機能化に伴って、ToF(Time of Flight)センサ、LiDAR(Light Detection and Ranging)センサ等の測距センサが、モバイル端末に備えられるようになってきている。例えば、特許文献1には、ToFセンサとステレオカメラとによって取得された深度マップに対して位置合わせを行って、最適化された深度マップを出力する処理システムが開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2020-042772号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、ToFセンサで取得された深度マップは、典型的には、正確な距離値を有する一方、多くの欠損画素を含みうる。一方、ディープニューラルネットワークに基づく深度推定モデルは、全体的に一貫性のある深度マップを出力する一方、正確な距離値を取得できず、また、細かいテクスチャを読み取ることができないケースがある。
【0007】
このため、特許文献1の手法のように、カメラから取得された深度マップによって欠損画素を単に補完するだけでは、ToFセンサで取得された距離値を有する画素領域と、それ以外の画素領域との境界が不自然に目立ってしまう。つまり、高品質な深度マップを取得することができない。
【0008】
上記問題点に鑑み、本開示の1つの課題は、高品質な深度マップを取得するための技術を提供することである。
【課題を解決するための手段】
【0009】
本開示の一態様は、複数の深度マップを取得することと、前記複数の深度マップに含まれる距離値をそのまま用いる場合と比べて、隣接する画素の距離値の差の平均を減少させつつ前記複数の深度マップを合成して、1つの出力深度マップを出力することと、を備える。
【発明の効果】
【0010】
本開示によれば、高品質な深度マップを取得するための技術を提供することができる。
【図面の簡単な説明】
【0011】
図1】本開示の一実施例による深度推定処理を示す概略図である。
図2】本開示の一実施例による深度推定システムを示すブロック図である。
図3】本開示の一実施例による深度マップを示す図である。
図4】本開示の一実施例による深度推定装置のハードウェア構成を示すブロック図である。
図5】本開示の一実施例による深度推定装置の機能構成を示すブロック図である。
図6】本開示の一実施例による深度推定処理を示すフローチャートである。
図7】本開示の他の実施例による深度推定処理を示す概略図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本開示の実施の形態を説明する。
【0013】
以下の実施例では、測定対象領域の画像(例えば、RGB画像)から深度推定モデルによって推論された深度マップ又は深度画像(以降、深度マップと総称する)と、測距センサから取得された深度マップとを、後述される制約を含むコスト関数に従って合成する深度推定装置が開示される。例えば、本開示の深度推定装置は、測距センサによって取得された深度マップをRGB画像と同等な画像レベルまで補完するDepth Completionを実現するのに利用されうる。なお、本明細書を通じて、深度マップとは、画素毎に距離値を有する2次元データである。
【0014】
[概略]
後述される本開示の一実施例を概略すると、図1に示されるように、深度推定装置100は、測定対象領域に対してToFセンサによって取得された深度マップTと、訓練済み深度推定モデルによって当該測定対象領域のRGB画像から推論された深度マップPとを合成し、合成された深度マップOを生成する。このとき、深度推定装置100は、コスト関数を利用して、深度マップOの各画素について、対応する画素の距離値が深度マップTに存在する場合には当該深度マップTの距離値を深度マップOの距離値に一致させ、対応する画素の距離値が深度マップTに存在しない場合には当該深度マップOの距離値を深度マップPの距離値に一致させるように、また、深度マップOの当該画素の距離値を隣接画素の距離値に近づけるように、深度マップOを構成する。
【0015】
このような合成を実現するため、深度推定装置100は、
(制約1)注目画素に対応する距離値が深度マップTに存在する場合、深度マップOにおける注目画素の距離値を深度マップTの距離値に近づける。
(制約2)注目画素に対応する距離値が深度マップTに存在しない場合、深度マップOにおける注目画素の距離値を深度マップPの距離値に近づける。
(制約3)注目画素の距離値を当該注目画素の近傍画素の距離値に近づける。
という3つの制約を含むコスト関数に従って深度マップTと深度マップPとを合成する。
【0016】
後述される実施例の深度推定装置100によると、深度マップTにおいて距離値が欠損していない画素については、深度マップTの距離値を利用し、深度マップTにおいて距離値が欠損している画素については、深度マップPの距離値を利用して深度マップOを構成する。この結果、大域的に高精度な深度マップOを取得できる。また、深度マップOの各画素の距離値を隣接画素の距離値に近づけるように深度マップOを構成するため、隣接画素間で平滑化された深度マップOを取得することができる。
【0017】
[深度推定システム]
まず、図2~4を参照して、本開示の一実施例による深度推定システムを説明する。図2は、本開示の一実施例による深度推定システムを示すブロック図である。
【0018】
図2に示されるように、深度推定システム10は、カメラ20、ToFセンサ30、前処理装置40及び深度推定装置100を有する。
【0019】
カメラ20は、測定対象領域を撮像し、当該測定対象領域のRGB画像を生成する。例えば、カメラ20は、単眼カメラであってもよく、被写体を含む測定対象領域の単眼のRGB画像を生成する。生成されたRGB画像は、前処理装置40にわたされる。しかしながら、本開示による深度推定システムは、カメラ20に限定されず、測定対象領域を撮像する他の何れかのタイプの撮像デバイスを備えてもよい。また、本開示による深度推定システムは、RGB画像に限定されず、前処理装置40及び推論エンジン41によって深度マップに変換可能な他の形式の画像データを取得又は処理してもよい。
【0020】
ToFセンサ30は、測定対象領域における各被写体とToFセンサ30との間の距離(奥行き)を検知し、ToFデータ又はToF画像(以降、ToFデータと総称する)を生成する。生成されたToFデータは、前処理装置40にわたされる。しかしながら、本開示による深度推定システムは、ToFセンサ30に限定されず、LiDARセンサなど、深度マップを生成可能な他の何れか適切なタイプの測距センサを備えてもよく、備えられた測距センサのタイプに対応する測距データを取得してもよい。
【0021】
前処理装置40は、カメラ20から取得したRGB画像を前処理し、推論エンジン41による推論結果としての深度マップPを取得する。ここで、推論エンジン41は、入力としてRGB画像を受け付け、測定対象領域の各被写体とカメラ20との間の距離(奥行き)を示す深度マップPを出力する。例えば、推論エンジン41は、MiDaS、DPTなどの既存の深度推定モデルであってもよいし、あるいは、何れか1つ以上の既存の深度推定モデルから訓練(例えば、蒸留)されたモデルであってもよい。また、推論エンジン41は、前処理装置40に搭載されてもよいし、あるいは、外部のサーバ(図示せず)に搭載され、推論結果がネットワークを介し前処理装置40にわたされてもよい。
【0022】
具体的には、取得したRGB画像に対して、前処理装置40は、当該RGB画像を推論エンジン41に入力し、推論結果として深度マップPを取得する。典型的には、深度マップPは、全体的に一貫性があるが、正確な距離値を表しているとは限らず、また、細かいテクスチャも表していない可能性がある。そして、前処理装置40は、深度マップPをToFデータTのサイズと整合するようにリスケーリングしてもよい。
【0023】
他方、取得したToFデータに対して、前処理装置40は、ノイズ除去等の前処理を実行してもよい。例えば、前処理装置40は、ToFデータに対してオープニング処理を実行し、孤立した画素を除去する。これは、孤立した距離値を有する画素はノイズである可能性が高いためである。また、前処理装置40は、ToFデータの遠景画素を深度マップPに近づけるよう前処理してもよい。一般に、ToFセンサ30によって好適に測距可能
な範囲は数メートルの範囲であり、ToFデータの遠景部分は、推論エンジン41によって取得された深度マップPの対応する部分の距離値に近くなるよう補正されてもよい。
【0024】
また、前処理装置40は、ToFデータを参照して推論結果の中央付近を適応的に近景に寄せるようにしてもよい。ToFデータは、典型的に超近景又は特定色の物体をキャプチャできないという特徴を有する。このため、前処理することなくToFデータTと深度マップPとを合成すると、深度マップOは遠景部分にスケール合わせされ、中央部分の被写体が遠景になってしまうためである。前処理装置40は、このようにして前処理されたToFデータT及び深度マップPを深度推定装置100にわたす。
【0025】
深度推定装置100は、前処理装置40から取得したToFデータT及び深度マップPをコスト関数に従って合成し、合成された深度マップOを生成する。本開示の一実施例によるコスト関数は、
(制約1)注目画素に対応する距離値がToFデータTに存在する場合、深度マップOにおける注目画素の距離値をToFデータTの距離値に近づける。
(制約2)注目画素に対応する距離値がToFデータTに存在しない場合、深度マップOにおける注目画素の距離値を深度マップPの距離値に近づける。
(制約3)注目画素の距離値を当該注目画素の近傍画素の距離値に近づける。
という3つの制約を含むものであってもよい。すなわち、深度推定装置100は、ToFデータTにおいて距離値が欠損していない画素については、深度マップTの距離値を利用し、深度マップTにおいて距離値が欠損している画素については、深度マップPの距離値を利用して深度マップOを構成する。さらに、深度推定装置100は、深度マップOの各画素の距離値を隣接画素の距離値に近づけるように深度マップOを構成する。これにより、大域的に高い精度を有し、平滑化された深度マップOを取得することができる。
【0026】
例えば、図3に示されるように、測定対象領域に対して、推論された深度マップPと測距されたToFデータTとが取得された場合、深度推定装置100は、上述したコスト関数に従って、図示されるような合成された深度マップOを取得することができる。図3から観察できるように、深度マップOは、ToFデータTと深度マップPとのどちらよりも測定対象領域の各オブジェクトの深度又は奥行きをより良好に再現していると考えられる。
【0027】
ここで、深度推定装置100は、スマートフォン、タブレット、パーソナルコンピュータ等の計算装置によって実現され、例えば、図4に示されるようなハードウェア構成を有してもよい。すなわち、深度推定装置100は、バスBを介し相互接続される記憶装置101、プロセッサ102、ユーザインタフェース(UI)装置103及び通信装置104を有する。
【0028】
深度推定装置100における後述される各種機能及び処理を実現するプログラム又は指示は、ネットワークなどを介し何れかの外部装置からダウンロードされてもよいし、CD-ROM(Compact Disk-Read Only Memory)、フラッシュメモリ等の着脱可能な記憶媒体から提供されてもよい。
【0029】
記憶装置101は、ランダムアクセスメモリ、フラッシュメモリ、ハードディスクドライブなどの1つ以上の非一時的な記憶媒体(non-transitory storage medium)によって実現され、インストールされたプログラム又は指示と共に、プログラム又は指示の実行に用いられるファイル、データ等を格納する。
【0030】
プロセッサ102は、1つ以上のプロセッサコアから構成されうる1つ以上のCPU(Central Processing Unit)、GPU(Graphics Pr
ocessing Unit)、処理回路(processing circuitry)等によって実現されてもよい。プロセッサ102は、記憶装置101に格納されたプログラム、指示、当該プログラム若しくは指示を実行するのに必要なパラメータなどのデータ等に従って、後述される深度推定装置100の各種機能及び処理を実行する。
【0031】
ユーザインタフェース(UI)装置103は、キーボード、マウス、カメラ、マイクロフォン等の入力装置、ディスプレイ、スピーカ、ヘッドセット、プリンタ等の出力装置、タッチパネル等の入出力装置から構成されてもよく、ユーザと深度推定装置100との間のインタフェースを実現する。例えば、ユーザは、ディスプレイ又はタッチパネルに表示されたGUI(Graphical User Interface)をキーボード、マウス等を操作し、深度推定装置100を操作する。
【0032】
通信装置104は、外部装置、インターネット、LAN(Local Area Network)等の通信ネットワークとの通信処理を実行する各種通信回路により実現される。
【0033】
しかしながら、上述したハードウェア構成は単なる一例であり、本開示による深度推定装置100は、他の何れか適切なハードウェア構成により実現されてもよい。例えば、カメラ20、ToFセンサ30及び前処理装置40の一部又は全てが、深度測定装置100に組み込まれてもよい。
【0034】
[深度推定装置]
次に、図5を参照して、本開示の一実施例による深度推定装置100を説明する。図5は、本開示の一実施例による深度推定装置100の機能構成を示すブロック図である。
【0035】
図5に示されるように、深度推定装置100は、取得部110及び導出部120を有する。
【0036】
取得部110は、測定対象領域に対して測距センサによって取得された第1の深度マップと、訓練済み推論エンジンによって測定対象領域の画像から推論された第2の深度マップとを取得する。すなわち、取得部110は、前処理装置40からToFデータTと深度マップPとを取得し、導出部120にわたす。
【0037】
ここで、ToFデータTは、ToFセンサ30の検知結果に対して前処理装置40によって前処理されたデータであってもよい。例えば、前処理としては、ノイズを除去するためのオープニング処理、遠景部分に対する補正処理などであってもよい。
【0038】
また、深度マップPは、カメラ20によって撮像されたRGB画像に対する推論エンジン41の推論結果を、ToFデータTのサイズに一致するようリサイジングしたデータであってもよい。例えば、ToFデータT及び深度マップPは、幅224ピクセルと高さ168ピクセルとの2次元データにリサイジングされてもよい。
【0039】
導出部120は、コスト関数に従って第1の深度マップと第2の深度マップとから第3の深度マップを導出する。ここで、コスト関数は、
注目画素に対応する距離値が第1の深度マップに存在する場合、第3の深度マップにおける注目画素の距離値を第1の深度マップの距離値に近づけるための第1の制約と、
注目画素に対応する距離値が第1の深度マップに存在しない場合、第3の深度マップにおける注目画素の距離値を第2の深度マップの距離値に近づけるための第2の制約と、
注目画素の距離値を注目画素の近傍画素の距離値に近づけるための第3の制約と、
を含む。
【0040】
具体的には、導出部120は、第1~3の制約を含むコスト関数に従ってToFデータTと深度マップPとを合成し、合成された深度マップOを生成する。一実施例では、コスト関数は、
【数1】
として定式化されうる。ここで、xは深度マップOであり、TはToFデータTであり、Pは深度マップPであり、IはRGB画像である。また、w,w,ε,Mはパラメータであり、∇は勾配を求める演算子である。導出部120は、式(1)を最小化する深度マップxを求め、これを深度マップOとする。
【0041】
ここで、式(1)の右辺の第1項
【数2】
は、第1の制約に関するものであり、ToFデータTに距離値が存在する画素については、最終出力xの当該画素がToFデータTの距離値に一致することを要請するものである。
【0042】
また、式(1)の右辺の第2項
【数3】
は、第2の制約に関するものであり、ToFデータTに距離値が欠損している画素については、最終出力xの当該画素が深度マップPの距離値に一致することを要請するものである。
【0043】
そして、式(1)の右辺の第3項
【数4】
は、第3の制約に関するものであり、分子は、最終出力xの注目画素と当該注目画素の隣接画素との距離値が近くなること、すなわち、平滑化を要請するものである。なお、分母は、撮像された被写体と背景部分との間のエッジ領域における分子の平滑化の効果を弱めるためのものである。
【0044】
パラメータw,wは、3つの項の影響度をバランスさせるための正の重みである(特に、wは推論された深度マップPよりもToFデータTを重視するよう1未満に設定されてもよい)。また、パラメータMは、エッジ領域でどの程度平滑化効果を弱めるかを規定する正の重みである。さらに、パラメータεは、ゼロ除算を回避するための微小な正定数である。なお、(∇I)は、RGBの各チャネルで微分画像を求め、それらをチャネル方向に平均化することとして定義されうる。
【0045】
導出部120は、式(1)を最小にするxを以下のように求めることができる。説明の簡単化のため、
【数5】
とすると、Gはxに依存しないため、予め計算可能である。このとき、式(1)のコスト関数は、以下のように書き換えることができる。
【数6】
式(2)は1次式の2乗和の形式を有するため、E(x)を最小にするxを線形方程式の最小二乗解として以下のように厳密に求めることができる。
【0046】
ここで、E(x)=0を満たすxの条件を考える。これは、E(x)の各項の1次式がゼロである場合に成り立つ。従って、任意の画素(i,j)に対して、
【数7】
が成り立てばよい。ただし、
【数8】
であり、画素(i,j)が2次元データの右端又は下端にあって、xi,j+1又はxi+1,jが定義されない状況では、その未定義変数が出現する1次の項はゼロとされる。
【0047】
式(3)は、
【数9】
の行列表現として表すことができる。ここで、xの画素は、ラスタスキャン順に1次元配列される。この線形方程式は、変数の数よりも条件式の数が多く、over-determinedな系となっており、厳密解は存在せず、最小二乗解を求めることが妥当である
。この最小二乗解は、E(x)を最小(ゼロ)にする厳密解に一致する。従って、導出部120は、式(4)の最小二乗解を求めることによって、コスト関数E(x)を最小にするxを求めることができる。
【0048】
具体例として、以下のToFデータT、深度マップP、係数G及び最終出力xが与えられているケースを考える。
【数10】
ここで、最終出力xの距離値は未定である。また、T1,2及びT2,1がブランクになっているが、これは、当該画素の距離値が欠損していることを意味する。
【0049】
これらの入力に対して、式(2)のコスト関数の右辺第1項は、
【数11】
となる。また、w=0.01と設定されている場合、第2項は、
【数12】
となる。さらに、第3項は、
【数13】
となる。
【0050】
これらをまとめると、コスト関数E(x)は、以下のようになる。
【数14】
すなわち、コスト関数E(x)は、xに関する1次式の2乗和になっていることがわかる。このため、以下の線形方程式の最小二乗解によってコストを最小化する厳密解xを導出することができる。
【数15】
【0051】
式(5)の最小二乗解は特異値分解などによって容易に求められる。このようにして、導出部120は、式(5)の最小二乗解を求めることによって、妥当な計算時間によってコスト関数E(x)を最小にするxを導出することができ、ToFデータTと深度マップPとから合成された深度マップOを取得することができる。
【0052】
[深度推定処理]
次に、図6を参照して、本開示の一実施例による深度推定処理を説明する。当該深度推定処理は、上述した深度推定装置100によって実行され、より詳細には、深度推定装置100の1つ以上のプロセッサ102が1つ以上の記憶装置101に格納された1つ以上のプログラム又は指示を実行することによって実現されてもよい。例えば、当該深度推定処理は、深度推定装置100のユーザが当該処理に係るアプリケーション等を起動することによって開始されうる。
【0053】
図6は、本開示の一実施例による深度推定処理を示すフローチャートである。
【0054】
図6に示されるように、ステップS101において、深度推定装置100は、測定対象領域のRGB画像Iから推論された深度マップP及びToFデータTを取得する。具体的には、カメラ20が測定対象領域を撮像し、RGB画像Iを取得し、また、ToFセンサ30が当該測定対象領域を測定し、ToFセンサ30と測定対象領域の各物体との間の距離を示すToFデータを取得する。
【0055】
次に、前処理装置40は、取得したToFデータを前処理し、ToFデータTを取得する。また、前処理装置40は、推論エンジン41を利用して、RGB画像Iから深度マップPを生成する。例えば、ToFデータTは、ToFセンサ30から取得されたToFデータに対してオープニング処理、補正処理などを実行することによって取得されてもよい。また、深度マップPは、推論エンジン41の推論結果に対してToFデータTのサイズと一致するようにリサイジング処理を実行することによって取得されてもよい。
【0056】
このようにして取得されたToFデータT及び深度マップPが、深度推定装置100に提供される。
【0057】
ステップS102において、深度推定装置100は、コスト関数に従ってToFデータT及び深度マップPを合成し、合成された深度マップOを導出する。例えば、コスト関数は、
(制約1)注目画素に対応する距離値がToFデータTに存在する場合、深度マップOにおける注目画素の距離値をToFデータTの距離値に近づける。
(制約2)注目画素に対応する距離値がToFデータTに存在しない場合、深度マップOにおける注目画素の距離値を深度マップPの距離値に近づける。
(制約3)注目画素の距離値を当該注目画素の近傍画素の距離値に近づける。
という3つの制約を含むものであってもよい。
【0058】
具体的には、コスト関数は、
【数16】
として定式化されてもよい。ここで、xは深度マップOであり、TはToFデータTであり、Pは深度マップPであり、IはRGB画像である。また、w,w,ε,Mはパラメータであり、∇は勾配を求める演算子である。深度推定装置100は、コスト関数E(x)を最小化する深度マップxを深度マップOとする。ここで、コスト関数E(x)を最小化する深度マップxは、E(x)=0とした場合に得られる線形方程式の最小二乗解として求めることができる。
【0059】
上述した実施例によると、深度推定装置100は、
(制約1)注目画素に対応する距離値が深度マップTに存在する場合、深度マップOにおける注目画素の距離値を深度マップTの距離値に近づける。
(制約2)注目画素に対応する距離値が深度マップTに存在しない場合、深度マップOにおける注目画素の距離値を深度マップPの距離値に近づける。
(制約3)注目画素の距離値を当該注目画素の近傍画素の距離値に近づける。
という3つの制約を含むコスト関数を利用して、測距センサから取得した深度マップTと、撮像デバイスからの画像から推論された深度マップPとを合成し、合成された深度マップOを構成する。これにより、大域的に高い精度を有し、隣接画素間で平滑化された深度マップOを取得することができる。
【0060】
[その他の実施例]
上述の実施形態では、3つの制約を含むコスト関数を利用して、測距センサから取得した深度マップTと、撮像デバイスからの画像から推論された深度マップPを合成し、合成された深度マップOを構成する態様について説明した。しかしながら、合成対象となる深度マップは、上述の組み合わせでなくてもよい。一例として、深度推定装置100は、撮像デバイスからの画像を訓練されたモデルを用いて深度マップPを推論する手法ではなく、ステレオカメラが撮像した画像に基づき深度マップPを生成してもよい。ステレオカメラによって撮像された2枚以上の画像は、視点(撮像地点)間の視差に基づき、三角測量の原理を用いて、カメラから被写体までの距離(奥行)情報を取得できることが知られている。本実施例では、図7に示されるように、深度推定装置100は、ステレオカメラで撮像された画像に基づき、画素ごとに距離値を有する深度マップPを生成する。生成された深度マップPは、上述の3つの制約を含むコスト関数を利用して、測距センサから取得された深度マップTと合成され、最終的に合成された深度マップOが出力される。
【0061】
前述のとおり、式(1)の右辺の第3項は、簡単に言えばある画素における距離値と、その画素に隣接する画素における距離値とを近づけることを要請するものである。すなわち、画素間の距離値の平滑化が要請されている。一例によれば、式(1)のコスト関数を最小化する距離値を求めることで、入力深度マップの距離値から大きく離れることを抑制しつつ隣接する複数画素の距離値を平滑化する。ここで平滑化というのは例えば1つの被写体に含まれる複数の距離値を平滑化することである。ある隣接する2つの画素における距離値の差を小さくし、別の隣接する2つの画素における距離値の差を大きくすることで、全体の距離値を平滑化する場合がある。したがって、平滑化によって全ての隣接画素における距離値の差が縮小するとは限らない。一例によれば、平滑化処理は、隣接距離値(隣接する2つの画素における距離値)の差の平均を減少させる処理である。一例によれば、ある被写体に着目したとき、その被写体に含まれる隣接距離値の差の平均を減少させる。別の例によれば、深度マップ全体に着目したとき、その深度マップ全体に含まれる隣接距離値の差の平均を減少させる。いくつかの例によれば、出力深度マップの画素における距離値は、複数の複数の深度マップの対応する画素におけるどの距離値とも異なる。
【0062】
ここで、ある画素(以後、第1画素と称する)と、その画素に隣接する画素(以後、第2画素と称する)とが、両方とも1つの被写体に関連する場合について考える。この場合、以下(A)(B)(C)が成り立つ。
(A)第1画素の距離値と第2画素の距離値がともに深度マップPから得られたのであればこれらの距離値の差は小さく、式(1)の右辺の第3項によってこれらを平滑化する効果は小さい。
(B)第1画素の距離値と第2画素の距離値がともに深度マップTから得られたのであればこれらの距離値の差は小さく、式(1)の右辺の第3項によってこれらを平滑化する効果は小さい。
(C)しかしながら、第1画素の距離値と第2画素の距離値のうち一方が深度マップPから得られ他方が深度マップTから得られた場合には、これらの距離値の差は比較的大きくなり得るので、その場合には式(1)の右辺の第3項による平滑化の効果は大きくなり得る。
【0063】
上記1つの被写体について、単に深度マップTをベースとしつつ深度マップTの欠損部分を深度マップPで補うと、隣接距離値の差の平均は大きい値になる。深度マップ全体についても同様である。隣接距離値の差の平均が大きいと画素間の境界が不自然に目立ってしまう。
【0064】
これに対し、本実施形態では上述のとおり距離値の平滑化処理を施すので、1つの被写体又は深度マップ全体について、隣接距離値の差の平均が小さくなる。一例によれば、合成された深度マップにおける複数の被写体のそれぞれについて、上述の距離値を平滑化する処理が施されている。なお、式(1)以外の演算方法によって、隣接距離値の差の平均を小さくすることができる。
【0065】
ところで、第1画素がある被写体に関し、第2画素が背景部分に関する場合、第1画素と第2画素はエッジ領域を構成する。この場合、第1画素の距離値と第2画素の距離値との間に相当の差がある。そして、被写体の距離値と背景部分の距離値の差は維持されるべきである。そこで、エッジ領域においては、式(1)の第3項の分母によって距離値の平滑化の効果を弱めることとした。これにより、エッジ領域における距離値の差を過度に小さくすることなく、適切に維持することができる。
【0066】
一例によれば、演算処理の簡単化のために、被写体における距離値の平滑化の程度と、エッジ領域における距離値の平滑化の程度を一致させることができる。この場合、式(1)の右辺の第3項における分母を省略できる。この場合、例えば式(1)の右辺第3項のw1を比較的小さい値にしておくことで、エッジ領域において距離値が過度に平滑化されることを防止できる。別の例によれば、式(1)で示されるとおり、被写体の中では距離値を平滑化する効果を高め、エッジ領域では距離値を平滑化する効果を弱めることができる。
【0067】
深度推定装置100という名称は、2つの深度マップを単に合成するのではなく、上述のとおり平滑化して距離値を推定するので「推定」との言葉を含む。深度推定装置100は、深度マップ合成装置と言い換えたり、深度マップ生成装置と言い換えたりすることができる。
【0068】
深度推定装置100に入力される深度マップとして、RGB画像から推論して得られた深度マップPと、測距センサで得られた深度マップTを例示した。別の例によれば、別の深度マップを深度測定装置100に入力することができる。入力用深度マップの限定されない変形例を以下に示す。
【0069】
[例1]
例えば、ステレオマッチングで得られた深度マップSと、広角カメラの画像から推論された深度マップWと、を深度推定装置100に入力することができる。ステレオマッチングでは、オクルージョン領域を除き、比較的正確な距離値を算出することができる。しかし、ステレオマッチングでは、望遠カメラ相当の距離値(depth)しか算出できず、広角カメラにおける画像端付近の距離値は算出できない。他方、広角カメラのsingle camera depth estimationによれば、画像全面において距離値を推定することができる。つまり、深度マップSの有効画素数は、深度マップWの有効画素数より小さい。そこで、深度推定装置100は、以下の3つの制約を含むコスト関数に従って深度マップSと深度マップWとを合成し、深度マップOを作成することができる。
(制約1)注目画素に対応する距離値が深度マップSに存在する場合、深度マップOにおける注目画素の距離値を深度マップSの距離値に近づける。
(制約2)注目画素に対応する距離値が深度マップSに存在しない場合、深度マップOにおける注目画素の距離値を深度マップWの距離値に近づける。
(制約3)注目画素の距離値を当該注目画素の隣接画素の距離値に近づける。
こうして、全面、つまり全画素に距離値を有する深度マップOを生成することができる。一例によれば、広角カメラと望遠カメラを併用することで、この深度マップOの生成に必要な撮像データを提供できる。別の例によれば、別の方法で深度マップを合成できる。例えば、深度マップSに距離値が存在する場合はその距離値を用い、深度マップSに距離値が存在しない部分については深度マップWの距離値を用いることで、出力深度マップを合成してもよい。一例によれば、出力深度マップの中央部分の距離値は深度マップSの距離値から取り込み、出力深度マップの上記中央部分を囲む周辺部分の距離値は深度マップWから取り込むことができる。
【0070】
[例2]
例2では、例1の深度マップSと深度マップWに加えて、ToFセンサなどの測距センサによって得られた深度マップTを入力深度マップとする。つまり、3つの深度マップを深度推定装置100に入力する。そして、深度推定装置100では、入力深度マップの信頼度に基づいて、3つの入力深度マップを合成する。一例によれば、深度推定装置100は、以下の4つの制約を含むコスト関数に基づいて深度マップOを合成することができる。
(制約1)注目画素に対応する距離値が深度マップTに存在する場合、深度マップOにおける注目画素の距離値を深度マップTの距離値に近づける。
(制約2)注目画素に対応する距離値が深度マップTに存在しない場合、深度マップOにおける注目画素の距離値を深度マップSの距離値に近づける。
(制約3)注目画素に対応する距離値が深度マップTにも深度マップSにも存在しない場合、深度マップOにおける注目画素の距離値を深度マップWの距離値に近づける。
(制約4)注目画素の距離値を当該注目画素の隣接画素の距離値に近づける。
この例では、深度マップTの距離値の信頼度が高く、深度マップSの距離値が次に信頼度が高く、深度マップWの距離値は信頼度が低い、との前提をおいている。このように深度マップの信頼度に基づいて、複数の深度マップを合成して深度マップOを生成することができる。別の例によれば、別の入力深度マップを採用することができる。別の例によれば、別の方法で深度マップを合成できる。例えば、深度マップTに距離値が存在する場合はその距離値を用い、深度マップTに距離値が存在しない部分については深度マップSの距離値を用い、深度マップTにも深度マップSにも距離値が存在しない部分については深度マップWの距離値を用いることで、出力深度マップを合成してもよい。
【0071】
[例3]
入力深度マップとして、デュアルカメラ視差推定によって得られた深度マップDと、ToFセンサなどの測距センサによって得られた深度マップTを、深度推定装置100に入力することができる。デュアルカメラ視差推定では、オクルージョン領域のマッチングが出来ないため、そこは一般に無効領域になる。この無効領域の周囲の距離値に基づいて無効領域の距離値を埋めると、無効領域は距離値の信頼度が低い領域となる。また、繰り返しパターンの領域、又はテクスチャがない領域が存在すると一点から複数箇所にマッチしてしまい、得られる距離値の精度が落ちる場合もある。
つまり、深度マップDは、
・領域D1:(信頼度が低い)オクルージョン領域、
・領域D2:(信頼度が低い)繰り返しパターンの領域、又は、テクスチャがない領域(平坦領域)、
・領域D3:(信頼度が高い)領域D1、D2以外の領域、
に分類することができる。
他方、ToFセンサなどの測距センサによって得られた深度マップTは、
・領域T1:(信頼度が低い)画像の位置合わせにより発生したオクルージョン領域、
・領域T2:(信頼度が低い)赤外線が届かない箇所(例えば遠景)、
・領域T3:(信頼度が低い)繰り返しパターンの領域、又は、テクスチャがない領域、
・領域T4:(信頼度が高い)領域T1、T2、T3以外の領域
を含む。なお、基準画像とToFまたは参照画像の方向が異なると、オクルージョンの位置が別方向になるので、相補関係にあるということができる。
このように、深度マップD、Tには、それぞれ信頼度が高い領域と信頼度が低い領域がある。そこで、深度推定装置100は、以下の3つの制約を含むコスト関数に基づいて深度マップOを合成することができる。
(制約1)注目画素に対応する距離値が領域D3又は領域T4に存在する場合、深度マップOにおける注目画素の距離値をこれらのいずれかの距離値に近づける。
(制約2)注目画素に対応する距離値が領域D3又は領域T4に存在しない場合、深度マップOにおける注目画素の距離値を領域D1、D2、T1、T2、T3のいずれかの距離値に近づける。
(制約3)注目画素の距離値を当該注目画素の隣接画素の距離値に近づける。
これにより、複数の入力深度マップの信頼度が高い領域を優先的に深度マップOに反映させて、精度の高い深度マップを合成できる。
【0072】
上記の例3では1つの入力深度マップについて、距離値の信頼度が高い領域と、距離値の信頼度が低い領域の2つに分類した。別の例によれば、1つの入力深度マップについて、信頼度の異なる3つ以上の領域に分割することができる。例えば、深度マップDは、信頼度の高い領域D3、領域D3より信頼度が低い領域D2、領域D2より信頼度が低い領域D1に分割される。例えば深度マップTは、信頼度の高い領域T4、領域T4より信頼度が低い領域T3、領域T3より信頼度が低い領域T2、領域T2より信頼度が低い領域T1、に分割される。一例によれば、ToFセンサなどの測距センサにより取得された深度マップTについては、距離値とともに信頼度のマップが入手される。他方、深度マップDについては、例えば前処理装置で、各領域について信頼度スコアを割り当てる。例えば、深度推定装置100には、各画素について、距離値と、その距離値の信頼度スコアと、が割り当てられたデータが、入力深度マップとして入力される。深度マップD、Tを入力深度マップとする場合、一例によれば、信頼度が高い順に、領域T4、D3、T3、T2、T1、D2、D1であり、深度推定装置100は、前述のコスト関数を用いた方法と同等の方法によって、信頼度が高いものから順に深度マップOに反映させていく。
入力深度マップの領域毎に信頼度を割り当て、信頼度の高いものを優先して出力深度マップに反映させるようにすることで、さらに高品質な深度マップを提供することができる。
【符号の説明】
【0073】
10 深度推定システム
20 カメラ
30 ToFセンサ
40 前処理装置
100 深度推定装置
110 取得部
120 導出部
図1
図2
図3
図4
図5
図6
図7