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

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

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許7446320画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法
<>
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図1
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図2
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図3
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図4
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図5
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図6
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図7
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図8
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図9
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図10
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図11
  • 特許-画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-29
(45)【発行日】2024-03-08
(54)【発明の名称】画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法
(51)【国際特許分類】
   G06T 7/593 20170101AFI20240301BHJP
   G01B 11/00 20060101ALI20240301BHJP
【FI】
G06T7/593
G01B11/00 H
【請求項の数】 25
(21)【出願番号】P 2021545194
(86)(22)【出願日】2020-08-24
(86)【国際出願番号】 JP2020031819
(87)【国際公開番号】W WO2021049281
(87)【国際公開日】2021-03-18
【審査請求日】2023-07-04
(31)【優先権主張番号】P 2019166087
(32)【優先日】2019-09-12
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【弁理士】
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【弁理士】
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【弁理士】
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】大塚 活志
【審査官】山田 辰美
(56)【参考文献】
【文献】特開2019-86419(JP,A)
【文献】特開2014-235600(JP,A)
【文献】特開2016-75615(JP,A)
【文献】特開2019-96294(JP,A)
【文献】特開2019-36146(JP,A)
【文献】特開2019-121136(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G01B 11/00
(57)【特許請求の範囲】
【請求項1】
カメラから撮影画像のデータを取得する画像取得部と、
前記撮影画像に写る像の特徴点を抽出する特徴点抽出部と、
複数の撮影画像における同じ像の特徴点の対応づけを行う特徴点照合部と、
対応づけられた特徴点の、撮影画像における位置関係に基づき、前記カメラを含む実空間の情報を取得する空間情報取得部と、
を備え、
前記特徴点抽出部は、前記撮影画像のフレームより小さい部分画像の単位で、各撮影画像における特徴点を抽出し、その結果を前記特徴点照合部に順次供給し、
前記特徴点の抽出および前記特徴点の対応づけに必要な補正を、前記撮影画像のフレームより小さい部分画像の単位で施し、その結果を前記特徴点抽出部に順次供給する画像補正部をさらに備えたことを特徴とする画像処理装置。
【請求項2】
前記特徴点照合部は、前記特徴点の対応づけの結果を順次ローカルメモリに格納し、
前記空間情報取得部は、前記ローカルメモリと直結するインターフェースを介して、前記対応づけの結果を読み出すことを特徴とする請求項に記載の画像処理装置。
【請求項3】
前記特徴点照合部は、前記複数の撮影画像のうち一つの撮影画像における特徴点の対応先の探索範囲を他方の撮影画像に定め、当該探索範囲における探索の結果得られた前記特徴点の対応情報を、前記ローカルメモリに順次格納することを特徴とする請求項に記載の画像処理装置。
【請求項4】
前記特徴点照合部は、前記他方の撮影画像における前記探索範囲の特徴点のデータが得られた時点で、対応する特徴点の探索処理を開始することを特徴とする請求項に記載の画像処理装置。
【請求項5】
前記特徴点照合部は、特徴点が表された処理対象の画像を縮小することにより複数の解像度の画像を生成し、低解像度の画像から探索していくことにより探索範囲を限定して、前記特徴点の対応づけを行うことを特徴とする請求項1からのいずれかに記載の画像処理装置。
【請求項6】
前記空間情報取得部は、前記特徴点照合部との協働により、前記特徴点の対応情報を最適化することを特徴とする請求項1からのいずれかに記載の画像処理装置。
【請求項7】
前記空間情報取得部は、前記特徴点照合部における特徴点の対応づけの処理と並行して、自ら特徴点の対応づけの処理を実施し、それらを統合することにより最終的な特徴点の対応情報を得るか、前記特徴点照合部における特徴点の対応づけの処理の前または後に、当該特徴点の対応づけに係る所定の処理を実施することを特徴とする請求項に記載の画像処理装置。
【請求項8】
前記画像取得部、前記特徴点抽出部、前記特徴点照合部、および前記空間情報取得部は、外部のメインメモリが接続されたバスと異なるバスを介して前記ローカルメモリにアクセスすることを特徴とする請求項からのいずれかに記載の画像処理装置。
【請求項9】
前記カメラを含む筐体の動きを計測するモーションセンサから計測値を取得するセンサ情報取得部をさらに備え、
前記空間情報取得部は、前記カメラの撮影タイミングと前記モーションセンサの計測タイミングとを同一の時間軸で比較することにより、前記特徴点の位置関係から得られる情報と前記計測値から得られる情報を統合し、前記筐体の位置姿勢を取得することを特徴とする請求項1からのいずれかに記載の画像処理装置。
【請求項10】
前記特徴点照合部は、複数のカメラで同時に撮影された複数の画像における特徴点の対応づけ、および、同じカメラで撮影された動画像の複数フレームにおける特徴点の対応づけの双方、または一方を行うことを特徴とする請求項1からのいずれかに記載の画像処理装置。
【請求項11】
前記特徴点照合部は、ZNCC(Zero means Normalized Cross Correlation)により特徴点の対応づけを行うことを特徴とする請求項1から10のいずれかに記載の画像処理装置。
【請求項12】
前記画像取得部は、撮影画像のフレームより小さい部分画像の単位で所定の処理を行い、その結果を前記画像補正部に順次供給することを特徴とする請求項に記載の画像処理装置。
【請求項13】
前記画像取得部は、画素値として複数の波長帯の光の輝度を含む前記撮影画像のデータを取得し、前記実空間の情報の取得を含む複数の用途に応じて前記撮影画像のデータを分離することにより、所定の波長帯の光の輝度を画素値とする複数の撮影画像のデータを生成することを特徴とする請求項1から12のいずれかに記載の画像処理装置。
【請求項14】
前記画像取得部は、分離後の撮影画像の1行分の画素列を決定するのに必要な範囲の画素列が取得された時点で、分離処理を開始することを特徴とする請求項13に記載の画像処理装置。
【請求項15】
前記画像補正部は、前記撮影画像を補正する際に必要な画素の変位量および変位方向を表す変位ベクトルを画像平面に表した変位ベクトルマップを参照して補正を行うことを特徴とする請求項に記載の画像処理装置。
【請求項16】
前記画像補正部は、前記カメラのレンズによる歪みを除去する補正および、複数のカメラで同時に撮影された複数の画像のレクティフィケーションを行うことを特徴とする請求項15に記載の画像処理装置。
【請求項17】
前記画像補正部は、前記撮影画像が表す原色ごとに、異なる前記変位ベクトルマップを参照して補正を行うことを特徴とする請求項15または16に記載の画像処理装置。
【請求項18】
前記画像補正部は、フレーム内で撮影時間差を有するローリングシャッターカメラにより撮影された画像に対し、当該時間差におけるカメラの動きによる像の歪みを除去する補正を行うことを特徴とする請求項15から17のいずれかに記載の画像処理装置。
【請求項19】
前記カメラを含む筐体の動きを計測するモーションセンサから計測値を取得するセンサ情報取得部をさらに備え、
前記画像補正部は、前記モーションセンサによる計測値に基づき、前記カメラの動きによる像の歪みの除去に必要な画素の変位量および変位方向を計算し、前記変位ベクトルに合成することを特徴とする請求項18に記載の画像処理装置。
【請求項20】
前記画像補正部は、前記変位ベクトルマップにおいて変位ベクトルが設定されている離散的な位置の画素の変位先を求めたうえ、その中間にある画素の変位先を、先に変位先を求めた画素を補間することにより求めることを特徴とする請求項15から19のいずれかに記載の画像処理装置。
【請求項21】
前記画像補正部は、補正後の画像の1行分の画素列を決定するのに必要な範囲の画素列が取得された時点で、補正処理を開始することを特徴とする請求項15から20のいずれかに記載の画像処理装置。
【請求項22】
前記特徴点抽出部は、1つの特徴点抽出を行うのに必要な範囲の画素列が取得された時点で、当該特徴点の抽出処理を開始することを特徴とする請求項1から21のいずれかに記載の画像処理装置。
【請求項23】
請求項1から22のいずれかに記載の画像処理装置と、
前記撮影画像を撮影するカメラと、
前記実空間の情報を用いて生成された画像を表示するパネルと、
を備えたことを特徴とするヘッドマウントディスプレイ。
【請求項24】
カメラから撮影画像のデータを取得するステップと、
前記撮影画像に写る像の特徴点を抽出するステップと、
複数の撮影画像における同じ像の特徴点の対応づけを行うステップと、
対応づけられた特徴点の、撮影画像における位置関係に基づき、前記カメラを含む実空間の情報を取得するステップと、
を含み、
前記特徴点を抽出するステップは、前記撮影画像のフレームより小さい部分画像の単位で、各撮影画像における特徴点を抽出し、その結果を順次、前記対応づけを行うステップで用い
前記特徴点の抽出および前記特徴点の対応づけに必要な補正を、前記撮影画像のフレームより小さい部分画像の単位で施すステップをさらに含み、その結果を順次、前記特徴点を抽出するステップで用いることを特徴とする画像処理装置による空間情報取得方法。
【請求項25】
カメラから撮影画像のデータを取得する機能と、
前記撮影画像に写る像の特徴点を抽出する機能と、
複数の撮影画像における同じ像の特徴点の対応づけを行う機能と、
対応づけられた特徴点の、撮影画像における位置関係に基づき、前記カメラを含む実空間の情報を取得する機能と、
をコンピュータに実現させ、
前記特徴点を抽出する機能は、前記撮影画像のフレームより小さい部分画像の単位で、各撮影画像における特徴点を抽出し、その結果を、前記対応づけを行う機能に順次供給し、
前記特徴点の抽出および前記特徴点の対応づけに必要な補正を、前記撮影画像のフレームより小さい部分画像の単位で施し、その結果を前記特徴点を抽出する機能に順次供給する機能を、前記コンピュータにさらに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、撮影画像から実空間情報を取得する画像処理装置、ヘッドマウントディスプレイ、および空間情報取得方法に関する。
【背景技術】
【0002】
対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ヘッドマウントディスプレイを装着したユーザの視線方向に応じた画像が表示されるようにしたシステムが開発されている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させたりすることができる。また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、映像として表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。
【0003】
上記技術を実現するには、ヘッドマウントディスプレイを装着したユーザの頭部の動きに連動する視野で画像を表示させ続ける必要がある。そのための一つの手段として、ヘッドマウントディスプレイにカメラを搭載し、その撮影画像を解析することによりヘッドマウントディスプレイの位置や姿勢を取得することが考えられる。撮影画像をリアルタイムで解析することにより、自己位置を推定したり周囲の環境地図を作成したりする技術は、モバイル機器、自動車、ロボット、無人航空機など幅広い分野で利用されている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2008-304268号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記技術は多くの場合、自己位置などの情報を正確かつ即時に導出することが求められる。一方、適用範囲を広げるには、解析装置のサイズ、重量、消費電力を抑えることも求められる。例えばヘッドマウントディスプレイ内部で解析を行う場合、ユーザの装着感や連続使用時間などの観点から、それらのパラメータに対する制約が大きくなる。そのような制約のため解析を簡略化すると、得られる情報の精度が落ちユーザ体験が劣化するというジレンマが生じる。解析装置を、ヘッドマウントディスプレイなどカメラを搭載する装置と分けることにより、十分なリソースを用いて高精度な情報を得ることができるが、装置間のデータの送受に時間を要し、応答性が悪化しやすくなる。
【0006】
本発明はこうした課題に鑑みてなされたものであり、その目的は、撮影画像を用いた空間情報の取得を、低遅延、低消費電力で行う技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様は画像処理装置に関する。この画像処理装置は、カメラから撮影画像のデータを取得する撮影画像取得部と、撮影画像に写る像の特徴点を抽出する特徴点抽出部と、複数の撮影画像における同じ像の特徴点の対応づけを行う特徴点照合部と、対応づけられた特徴点の、撮影画像における位置関係に基づき、カメラを含む実空間の情報を取得する空間情報取得部と、を備え、特徴点抽出部は、撮影画像のフレームより小さい部分画像の単位で、各撮影画像における特徴点を抽出し、その結果を特徴点照合部に順次供給することを特徴とする。
【0008】
本発明の別の態様はヘッドマウントディスプレイに関する。このヘッドマウントディスプレイは、上記画像処理装置と、撮影画像を撮影するカメラと、実空間の情報を用いて生成された画像を表示するパネルと、を備えたことを特徴とする。
【0009】
本発明のさらに別の態様は空間情報取得方法に関する。この空間情報取得方法は画像処理装置が、カメラから撮影画像のデータを取得するステップと、撮影画像に写る像の特徴点を抽出するステップと、複数の撮影画像における同じ像の特徴点の対応づけを行うステップと、対応づけられた特徴点の、撮影画像における位置関係に基づき、カメラを含む実空間の情報を取得するステップと、を含み、特徴点を抽出するステップは、撮影画像のフレームより小さい部分画像の単位で、各撮影画像における特徴点を抽出し、その結果を順次、前記対応づけを行うステップで用いることを特徴とする。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、撮影画像を用いた空間情報の取得を、低遅延、低消費電力で行うことができる。
【図面の簡単な説明】
【0012】
図1】本実施の形態のヘッドマウントディスプレイの外観例を示す図である。
図2】本実施の形態を適用できるコンテンツ処理システムの構成例を示す図である。
図3】、本実施の形態におけるヘッドマウントディスプレイの内部回路のうち、実空間情報の取得に用いる回路の構成を示す図である。
図4】本実施の形態における画像処理装置の機能ブロックの構成を示す図である。
図5】本実施の形態の画像補正部および特徴点抽出部が撮影画像に対して行う処理の内容を説明するための図である。
図6】本実施の形態における、ローリングシャッター方式のカメラによって撮影された画像の補正について説明するための図である。
図7】本実施の形態において画素値決定部が行う補正処理の手順の例を説明するための図である。
図8】本実施の形態において画像取得部、画像補正部、特徴点抽出部、特徴点照合部が実施する処理の流れを示す図である。
図9】本実施の形態において特徴点照合部が特徴点を照合する処理の手順を説明するための図である。
図10】本実施の形態において空間情報取得部が実施する実空間取得処理の手順を示すフローチャートである。
図11】本実施の形態における画像取得部の処理の詳細を説明するための図である。
図12】空間情報取得部による処理を含めた、本実施の形態の画像処理装置における各フレームに対する処理の流れを例示する図である。
【発明を実施するための形態】
【0013】
本実施の形態はカメラによる撮影画像を解析することにより、当該カメラを含む筐体の位置、姿勢、動きや、カメラを含む実空間にある物、その位置などの少なくともいずれかの情報を取得する技術に関する。この限りにおいて、カメラを搭載する物や装置は限定されず、ヘッドマウントディスプレイなどのウェアラブルディスプレイ、モバイル機器、自動車、ロボット、無人航空機などのいずれでもよい。また撮影画像を解析して情報を得る画像処理装置は、カメラが搭載された装置に内蔵されていてもよいし、当該装置と通信接続可能な状態で別に設けてもよい。以下、ヘッドマウントディスプレイ100にカメラと画像処理装置を設ける態様を主に説明する。
【0014】
図1は、ヘッドマウントディスプレイ100の外観例を示す。この例においてヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。
【0015】
筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、画像を拡大して見せる接眼レンズを備える。またヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。
【0016】
ヘッドマウントディスプレイ100はさらに、筐体108の前面にステレオカメラ110、中央に広視野角の単眼カメラ111、左上、右上、左下、右下の四隅に広視野角の4つのカメラ112を備え、ユーザの顔の向きに対応する方向の実空間を動画撮影する。ある態様においてヘッドマウントディスプレイ100は、ステレオカメラ110が撮影した動画像を即時表示させることにより、ユーザが向いた方向の実空間の様子をそのまま見せるシースルーモードを提供する。
【0017】
またヘッドマウントディスプレイ100はさらに、ステレオカメラ110、単眼カメラ111、4つのカメラ112による撮影画像の少なくともいずれかを解析することにより、ヘッドマウントディスプレイ100自体の位置や姿勢、ひいてはユーザ頭部の位置や姿勢、および周囲にある物の存在や形状、位置などの少なくともいずれかの情報を所定のレートで取得する画像処理装置を備える。以後、これらの情報を「実空間情報」と総称する。
【0018】
撮影画像などのセンシング結果を解析することにより実空間情報を得る技術として、SLAM(Simultaneous Localization and Mapping)がある。撮影画像を用いたSLAMは、複数視点からの撮影画像に写る同じ実物体の像の位置関係から当該実物体の3次元での位置を推定する処理と、位置が推定された実物体の像の撮影画像上での位置に基づきカメラの位置や姿勢を推定する処理とを繰り返すことにより、環境地図を作成しながらカメラの位置や姿勢を取得していく手法である。
【0019】
以後、SLAMを用いて実空間情報を得ることを想定するが、複数の撮影画像から特徴点を抽出し、その対応関係を利用して実空間情報が得られれば、具体的なアルゴリズムは特に限定されない。そのようにして撮影画像から得られた実空間情報は、ヘッドマウントディスプレイ100に表示させる画像の視野を決定するのに用いたり、周囲の物への接近を検知しユーザに警告を与えたりするのに用いることができる。その他、実空間情報を用いてなされる情報処理が様々に考えられることは当業者には理解されるところである。
【0020】
ヘッドマウントディスプレイ100はまた、内部に加速度センサ、ジャイロセンサ、地磁気センサなど、ヘッドマウントディスプレイ100の位置、姿勢、動きを導出するためのモーションセンサのいずれかを備えてよい。モーションセンサの計測値は、画像処理装置において実空間情報を得る際に利用できる。具体的には、撮影画像の補正や特徴点の対応づけなどに利用することで、それらの処理の精度を高めることができる。また、撮影画像から得られた位置や姿勢の情報を、モーションセンサの計測値に基づき外挿し、撮影レートより高い頻度で実空間情報を生成することもできる。
【0021】
図2は、本実施の形態を適用できるコンテンツ処理システムの構成例を示す。ヘッドマウントディスプレイ100は、無線通信またはUSB Type-Cなどの周辺機器を接続するインターフェース300によりコンテンツ処理装置200に接続される。コンテンツ処理装置200には平板型ディスプレイ302が接続される。コンテンツ処理装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションをコンテンツ処理装置200に提供してもよい。
【0022】
コンテンツ処理装置200は基本的に、コンテンツのプログラムを処理し、表示画像を生成してヘッドマウントディスプレイ100や平板型ディスプレイ302に送信する。ヘッドマウントディスプレイ100および平板型ディスプレイ302は、当該表示画像のデータを受信し、コンテンツの画像として表示する。この際、コンテンツ処理装置200は、ヘッドマウントディスプレイ100の位置や姿勢の情報を所定のレートでヘッドマウントディスプレイ100から取得し、それに基づきユーザの視点の位置や視線の方向を特定したうえ、対応する視野で表示画像を生成、送信してよい。
【0023】
あるいはコンテンツ処理装置200は、ユーザの周囲にある物やその位置、形状などの情報をヘッドマウントディスプレイ100から取得し、対応する位置に仮想オブジェクトを描画した画像を生成、送信してもよい。例えば送信された仮想オブジェクトを、ヘッドマウントディスプレイ100においてステレオカメラ110の撮影画像と合成して表示することにより、拡張現実や複合現実を実現してもよい。
【0024】
ただしヘッドマウントディスプレイ100が取得した実空間情報を利用する目的は特に限定されない。例えばコンテンツ処理装置200は、ヘッドマウントディスプレイ100の動きをユーザのジェスチャとして取得し、それに応じて電子ゲームを進捗させてもよい。いずれにしろヘッドマウントディスプレイ100の内部で実空間情報を取得しておくことにより、撮影画像を送信するよりコンテンツ処理装置200へ送信すべきデータのサイズを格段に軽減させることができる。
【0025】
なお図示するコンテンツ処理システムの構成は一例に過ぎず、例えば平板型ディスプレイ302は含まなくてもよい。またコンテンツ処理装置200の少なくとも一部の機能を、ヘッドマウントディスプレイ100に搭載してもよい。さらに上述のように、実空間情報を取得する機能を、コンテンツ処理装置200に設けてもよい。
【0026】
またコンテンツ処理装置200とヘッドマウントディスプレイ100の距離や通信方式は限定されない。例えばコンテンツ処理装置200は、個人が所有するゲーム装置などのほか、クラウドゲームなど各種配信サービスを提供する企業などのサーバや、任意の端末にデータを送信する家庭内サーバなどでもよい。したがってコンテンツ処理装置200とヘッドマウントディスプレイ100の間の通信は上述した例のほか、インターネットなどの公衆ネットワークやLAN(Local Area Network)、携帯電話キャリアネットワーク、街中にあるWi-Fiスポット、家庭にあるWi-Fiアクセスポイントなど、任意のネットワークやアクセスポイントを経由して実現してもよい。
【0027】
図3は、本実施の形態におけるヘッドマウントディスプレイ100の内部回路のうち、実空間情報の取得に用いる回路の構成を示している。上述のとおりヘッドマウントディスプレイ100は、ステレオカメラ110、単眼カメラ111、4つのカメラ112、モーションセンサ120、撮影画像から実空間情報を取得する画像処理装置130、および外部メモリ152を備える。なお画像処理装置130は、CPUを含む様々な機能モジュールを搭載したシステムオンチップとして実装することができる。
【0028】
なお本実施の形態において、実空間の取得に用いるカメラの数は限定されないが、以後は簡単のため、ステレオカメラ110の撮影画像を利用するケースについて説明する。画像処理装置130は画像処理用の集積回路である。このうちCPU134は、画像信号、センサ信号などの信号や、命令やデータを処理して出力するメインプロセッサであり、他の回路を制御する。イメージ信号処理回路136はISP(Image Signal Processor)と同義であり、ステレオカメラ110のイメージセンサから撮影画像のデータを所定のレートで取得し、それぞれにデモザイク処理などの必要な処理を施す。
【0029】
ここでイメージ信号処理回路136は、ステレオカメラ110が同じタイミングで撮影したフレームの対の画素列のデータを、走査順に並列に取得したうえ必要な処理を施す。この際、イメージ信号処理回路136は、カメラのイメージセンサが検出対象とする複数の波長帯の光のうち、実空間情報の取得に用いる光の輝度画像と、その他の用途に用いる光の輝度画像とを分離する処理も行ってよい。
【0030】
イメージ信号処理回路136は、画素値が決定した画素列順に、各撮影画像のデータをローカルメモリ138に格納する。ローカルメモリ138はSRAM(Static Random Access Memory)などで実現され、処理に用いる複数の撮影画像のそれぞれに対し、1フレームより小さい部分画像のデータを格納する記憶領域を有する。例えばステレオカメラ110による撮影画像を処理対象とするとき、ローカルメモリ138は、部分画像のデータを格納する記憶領域を2つ備える。
【0031】
補正回路140は、ローカルメモリ138に格納された各部分画像に、必要な補正処理を施す。具体的には補正回路140は、ステレオカメラ110のレンズによる画像の歪みを除去したり、エピポーラ線を平行化するレクティフィケーションを行ったりする。補正回路140は、補正後の画素値が決定した画素列順に、そのデータをローカルメモリ142に格納する。
【0032】
ローカルメモリ142もローカルメモリ138と同様、複数の撮影画像のそれぞれに対し、1フレームより小さい部分画像のデータを格納する記憶領域を有する。特徴点抽出器144は、ローカルメモリ142に格納された補正後の部分画像から特徴点を抽出し、その位置座標を取得する。特徴点を抽出するためのアルゴリズムには様々なものがあり、本実施の形態ではそのいずれを用いてもよい。特徴点抽出器144は、抽出した特徴点を画像平面に表したデータを、特徴点の位置情報として大容量ローカルメモリ154に格納する。
【0033】
図示するように本実施の形態では、イメージ信号処理回路136、補正回路140、特徴点抽出器144を、ローカルメモリ138、142を介して直列に接続する。特徴点照合器146は、特徴点抽出器144が抽出した特徴点の位置情報を大容量ローカルメモリ154から読み出し、同じ被写体の同じ箇所を表す特徴点を対応づける。この際、特徴点照合器146は、異なるカメラが撮影した複数の画像間での空間方向の対応づけと、同じカメラが撮影した異なる時刻の画像間での時間方向の対応づけを行う。
【0034】
なお特徴点照合器146は、各撮影画像のうち照合に必要な領域、すなわち探索範囲の特徴点の位置情報が大容量ローカルメモリ154に格納されたら、それを用いて対応づけを開始してよい。特徴点照合器146は対応づけの結果を、大容量ローカルメモリ154に格納する。算術演算器148はDSP(Digital Signal Processor)で実現され、大容量ローカルメモリ154に格納された、特徴点の対応情報に基づき、SLAMなど所定のアルゴリズムにより実空間情報を取得する。
【0035】
算術演算器148はさらに、特徴点抽出器144が抽出した特徴点の位置情報を大容量ローカルメモリ154から読み出し、特徴点照合器146と同様の処理も行ってよい。このように、特徴点を対応づける処理を行う主体を二重に設けておくことにより、処理効率を上げたり、処理時間を増やすことなく照合の精度を上げたりすることができる。算術演算器148は取得した実空間情報を、大容量ローカルメモリ154や外部メモリ152に格納し、必要に応じてコンテンツ処理装置200に送信できるようにする。周辺機器インターフェース150は、モーションセンサ120から、その計測値を所定のレートで取得し大容量ローカルメモリ154に格納する。
【0036】
大容量ローカルメモリ154は、SRAM(Static Random Access Memory)などで実現され、特徴点抽出器144が抽出した特徴点の位置情報、特徴点照合器146が取得した特徴点の対応情報、算術演算器148がSLAMの処理において取得する中間データ、処理の結果得られた実空間情報などを格納する。外部メモリ152はDRAM(Dynamic Random Access Memory)で実現され、CPU134の動作を規定するプログラムや、処理に必要な各種データ、およびSLAMによって得られた実空間情報などを格納する。
【0037】
図示するように本実施の形態では、各処理を専門に行うイメージ信号処理回路、補正回路、特徴点抽出器、特徴点照合器、算術演算器を設ける。またイメージ信号処理回路、補正回路、特徴点抽出器、特徴点照合器はそれぞれ、前段での処理が1フレーム分終わるまで待つことなく部分画像の単位で処理を進捗させる。これらの構成により、画素値の取得から実空間情報の取得までを高速に実施できる。
【0038】
また部分画像単位の処理により、1フレーム分のデータを格納するメモリへの書き込みや読み出しの必要性が少なくなり、中間データの一時的な格納先を、SRAMなど容量の小さい高速アクセス可能なメモリにできる。このため当該メモリを各回路の近傍に設けることが容易であり、配線の引き回しや消費電力の点で有利となる。さらに図示するように本実施の形態の画像処理装置130は、各回路と外部メモリ152とのデータの送受に用いるバス156のほかに、各回路と大容量ローカルメモリ154とのデータの送受に用いる専用のバス155を備える。
【0039】
これにより、メインのバス156の使用状況によらずデータを行き来させ、実空間情報の処理を進捗させることができる。他の処理と共有される、メインのバス156や外部メモリ152を利用する頻度を下げることで、転送遅延や消費電力を削減できる。なおバス155は実際には、マルチレイヤ型、クロスバー型、ツリー型など、実用化されている様々な構造のいずれとしてもよい。
【0040】
さらに本実施の形態の画像処理装置130において、算術演算器148と大容量ローカルメモリ154との間には、それらを直結させる、低遅延、広帯域の専用インターフェース158を設ける。これにより、SLAMにおける自己位置推定や環境地図生成などの処理の過程で比較的高い頻度で発生する、算術演算器148と大容量ローカルメモリ154の間のデータの行き来を、その他の回路による大容量ローカルメモリ154へのアクセスと独立に、1ステップで行える。
【0041】
図4は、本実施の形態における画像処理装置130の機能ブロックの構成を示している。同図に示す各機能ブロックは、ハードウェア的には図3で示したCPU、各種回路、算術演算器、各種メモリなどで実現でき、ソフトウェア的には、記録媒体からロードした、情報処理機能、画像解析機能、データ入出力機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0042】
画像処理装置130は、撮影画像のデータを取得する画像取得部170、撮影画像を補正する画像補正部172、モーションセンサ120の計測値を取得するセンサ情報取得部174、撮影画像から特徴点を抽出する特徴点抽出部176、複数の撮影画像における特徴点の対応関係を取得する特徴点照合部178、および特徴点の対応関係に基づき実空間情報を取得する空間情報取得部180を備える。
【0043】
画像取得部170は図3のCPU134、イメージ信号処理回路136、ローカルメモリ138で実現され、ステレオカメラ110から撮影画像のデータを取得する。上述のとおり画像取得部170は、ステレオカメラ110のイメージセンサから出力される画素列順に画素値のデータを取得し、当該撮影画像のフレームより小さい部分画像の単位で所定の処理を行い、その結果を画像補正部172に順次供給する。ここで画像取得部170は、取得した画像に黒レベル補正、欠陥補正、デモザイク処理、平滑化処理、ノイズ除去、クロッピングなど必要な処理を施す。ただしカメラのレンズ歪みを除去する補正は行わなくてよい。
【0044】
また画像取得部170は、イメージセンサから出力されるデータが、画素値として複数の波長帯の光の輝度を含む場合、実空間の情報の取得を含む複数の用途に応じて、当該データを分離することにより、所定の波長帯の光の輝度を画素値とする複数の撮影画像のデータを生成してもよい。例えばグレースケールの輝度を検出する画素と赤外線の輝度を検出する画素が混在するイメージセンサの場合、画像取得部170はグレースケールの画像と赤外線の画像に分離し、前者を実空間情報の取得に用いる。このとき画像取得部170は、分離後の画像の1行分の画素列を決定するのに必要な範囲の画素列が取得された時点で分離処理を開始する。なおこの場合の画像取得部170の構成については後に述べる。
【0045】
画像補正部172は図3のCPU134、補正回路140およびローカルメモリ142で実現され、画像取得部170が部分画像のデータを取得する都度、後段の特徴点の抽出および対応づけに必要な補正を部分画像の単位で施す。具体的には画像補正部172は、カメラのレンズによる歪みを除去する補正および、ステレオカメラ110で同時に撮影された画像のレクティフィケーションを行う。
【0046】
レクティフィケーションは、光軸が平行でない複数のカメラが撮影した画像のエピポーラ線を同じ水平位置に揃える平行化により、対応点の探索範囲を当該水平線上に限定できるようにする処理である(例えば特開2004-258266号公報参照)。詳細には画像補正部172は、変位ベクトルマップ取得部182および画素値決定部184を備える。変位ベクトルマップ取得部182は、補正する際に必要な画素の変位量および変位方向を表す変位ベクトルを画像平面に表した変位ベクトルマップを取得する。
【0047】
すなわち変位ベクトルマップ取得部182は、補正前の画像における各画素が、補正後の画像においてどの位置に変位するかを計算し、前者を始点、後者を終点とする変位ベクトルを画像平面に表す。この際、カメラのレンズによる歪みを除去する補正で必要な変位ベクトルと、レクティフィケーションにおいて必要な変位ベクトルを計算し、両者を合成することにより、2種類の補正のための変位を1つの変位ベクトルで表せる。またこれらの補正は事前の計算が可能なため、変位ベクトルマップ取得部182は実際には、内部で保持している変位ベクトルマップを読み出せばよい。
【0048】
なお撮影画像が赤、緑、青の3原色で表現されている場合、それらの波長帯によってカメラのレンズの屈折率が異なるため色収差が生じる。そこで撮影画像が表す原色ごとに異なる変位ベクトルマップを準備しておき、変位ベクトルマップ取得部182はそれらを読み出してもよい。画素値決定部184は変位ベクトルマップを参照し、画像取得部170から取得した部分画像に含まれる画素ごとに変位先を求め、当該変位先の画素値を変位元の画素値とすることにより補正後の部分画像を生成する。
【0049】
変位ベクトルマップにより、画素値決定部184は画素ごとに独立に、レンズ歪みを除去する補正とレクティフィケーションの双方を同時に実施できる。補正前の部分画像から生成できる補正後の画像は、その面積が変化することがあり得る。画素値決定部184は、補正後の部分画像のデータを生成するのに必要な範囲の、補正前の部分画像のデータが取得された時点で、変位ベクトルマップを参照した補正処理を開始する。これにより、補正後の画像についても部分画像単位での処理が可能になる。
【0050】
撮影画像が赤、緑、青の3原色で表現されている場合、画素値決定部184は、撮影画像が表す原色成分ごとに異なる変位ベクトルマップを用いてそれぞれを補正する。画素値決定部184は、補正後の部分画像のデータを、画素値を決定した順にローカルメモリ142に格納することにより、特徴点抽出部176に順次供給する。
【0051】
なおステレオカメラ110がローリングシャッターを採用している場合、画素値決定部184は同時に、フレーム内での撮影時間差によって生じる画像の歪みを解消する補正も行ってよい。ローリングシャッターは、露光自体を画像の最上段から順に行う方式のシャッターであり、必然的に最上段の画素列から下に向かうほど、撮像時刻が遅れる。そのため1フレームを撮影している期間におけるステレオカメラ110の動きに依存して像が歪む。
【0052】
そこで変位ベクトルマップ取得部182は、ヘッドマウントディスプレイ100のモーションセンサ120の計測値に基づきステレオカメラ110の動きを取得し、それに起因した像の歪み量を計算する。そして変位ベクトルマップ取得部182は、当該歪み量を解消するための変位ベクトルを求め、あらかじめ準備された、レンズによる歪みの除去やレクティフィケーションのための変位ベクトルに合成する。この場合、変位ベクトルマップは変位ベクトルマップ取得部182により所定のレートで更新される。そして画素値決定部184は、最新の変位ベクトルマップを参照して補正を行う。
【0053】
センサ情報取得部174は図3のCPU134、周辺機器インターフェース150および大容量ローカルメモリ154で実現され、モーションセンサ120から所定のレートで計測値を取得し、画像補正部172、特徴点照合部178、空間情報取得部180に適宜供給する。画像補正部172では供給された計測値を、上述したローリングシャッターによる歪みの補正に用いる。特徴点照合部178では、特徴点の動きを予測し探索範囲を決定するのに用いる。空間情報取得部180では、SLAMにより得られた実空間情報に統合することによりセンサフュージョンを実現する。
【0054】
特徴点抽出部176は図3のCPU134、特徴点抽出器144、大容量ローカルメモリ154で実現され、画像補正部172が補正した画像のデータを部分画像ごとに取得する。そして特徴点抽出部176は、当該単位で特徴点を抽出し、その結果を特徴点照合部178に供給する。画像における特徴点の抽出アルゴリズムには様々なものがあり、特徴点抽出部176はそのいずれを採用してもよい。特徴点抽出部176は例えば、ハリスのコーナー検出アルゴリズムを利用して特徴点を抽出する。
【0055】
このアルゴリズム自体は、オープンソースのライブラリであるOpenCVのcv2.cornerHarris()などで公開されている一般的なものである。すなわち画素位置の移動に対する画素値の変化を求め、全方向で大きな変化が観測される領域をコーナーとして検出する。この処理は基本的に、対象画素近傍の領域のみで判定が可能なため、部分画像の単位で独立に特徴点を抽出できる。したがって、特徴点抽出部176は、1つの特徴点抽出を行うのに必要な範囲の部分画像が取得された時点で、特徴点の抽出処理を開始してよい。
【0056】
特徴点照合部178は図3のCPU134、特徴点照合器146、大容量ローカルメモリ154で構成され、複数の撮影画像における同じ像の特徴点の対応づけを行う。例えば特徴点照合部178は、対応づけを行う一方の画像において設定した所定サイズの領域をテンプレート画像として、それとの類似度が高い領域を、他方の画像において探索するテンプレートマッチングによって、対応する特徴点を検出する。
【0057】
複数の画像における特徴点を対応づけるアルゴリズムには様々なものがあり、特徴点照合部178はそのいずれを採用してもよい。例えば特徴点照合部178は、ZNCC(Zero means Normalized Cross Correlation)により特徴点の対応づけを行う。ZNCCはテンプレートマッチングの一手法であり、ゼロ平均正規化相互相関と呼ばれる統計量で類似度を評価する。探索先の画像の画素値をI(x,y)、テンプレート画像の画素値をT(x,y)とすると、位置座標(dx,dy)を左上の頂点とする探索窓におけるZNCCの値は次のように計算される。
【0058】
【数1】
【0059】
ここで(w、h)はテンプレート画像の幅および高さであり、Taveはテンプレート画像の画素値平均、Iaveは探索窓の画素値平均である。特徴点照合部178はZNCCの値が最大となる探索窓を検出することにより対応する特徴点を特定する。ZNCCは比較する画像の輝度レンジの差に影響を受けないため、明るさなどの変化に対し高い頑健性を有する。特徴点照合部178はこのようなパターンマッチングにより、複数のカメラで同時に撮影された複数の画像における特徴点の対応づけ、および、同じカメラで撮影された動画像の複数フレームにおける特徴点の対応づけの双方、または一方を行う。
【0060】
この際、特徴点照合部178は、探索先の画像における探索範囲の特徴点のデータが得られた時点で、対応する特徴点の探索を行ってよい。空間方向の対応づけにおいては、画像補正部172がレクティフィケーションを行っておくことにより、探索範囲を水平方向に限定できる。また水平方向の視差の上限は、ステレオカメラ110の間の距離によっておよそ定まる。したがって特徴点照合部178は、探索範囲を限定的に設定できる。
【0061】
時間方向の対応づけにおいては、特徴点の動く範囲はステレオカメラ110、ひいてはユーザの動きに依存する。そのため特徴点照合部178は、特徴点が表された処理対象の画像を縮小することにより複数の解像度の画像を生成し、低解像度の画像から探索していくことにより、高解像度の画像における探索範囲を限定できるようにしてもよい。特徴点照合部178はまた、モーションセンサ120の計測値に基づきステレオカメラ110の動きに対応する特徴点の動きを予測することで、探索範囲を限定してもよい。
【0062】
特徴点照合部178はさらに、空間方向の対応づけの結果を利用して、被写体の距離を求めてもよい。ステレオカメラ110が撮影した一対の画像における、特徴点の水平方向のずれ量から、三角測量の原理により被写体の距離を求める手法は広く知られている。特徴点照合部178は、取得した特徴点の対応情報や距離の情報を、大容量ローカルメモリ154に順次格納する。
【0063】
空間情報取得部180は図3のCPU134、算術演算器148および大容量ローカルメモリ154で実現され、対応づけられた特徴点の、撮影画像における位置関係に基づき、SLAMなどのアルゴリズムにより実空間情報を取得する。例えば、拡張カルマンフィルタなどを併用して、対応づけられた特徴点から最新のカメラ視点の位置や姿勢の推定を行うことで、実空間情報を取得する。
【0064】
この際、空間情報取得部180は、大容量ローカルメモリ154に格納された特徴点の対応情報や距離の情報を、専用インターフェース158を介して高速に読み出す。また空間情報取得部180は、専用インターフェース158を用いて、大容量ローカルメモリ154に対する中間データの書き込みや読み出し、最終的に得られた実空間情報の書き込みなども高速に行う。
【0065】
空間情報取得部180は、特徴点照合部186および情報取得部188を含む。特徴点照合部186は、複数の撮影画像における同じ像の特徴点の対応づけを行う。すなわち特徴点照合部186は、特徴点照合部178と同様の情報を取得する。本実施の形態では、空間情報取得部180を算術演算器148で実現することを利用し、下記のような様々な態様を実現できるようにする。
【0066】
1.特徴点照合部178、186のどちらか一方のみでZNCCにより対応づけを行う
2.特徴点照合部178、186の双方でZNCCによる対応づけを行うが、処理対象とする画像や方向(空間と時間)を分担することにより処理の並列性を上げる
3.特徴点照合部178、186の双方で、同じ画像についてZNCCによる対応づけを行い、その際、特徴点照合部186においては追加処理や変則処理を行い、結果を比較して差がある場合は良い方の結果を採用する
4.特徴点照合部178、186で、同じ画像についてZNCCとそれ以外の手法により対応づけを行い、良い方の結果を採用する(追加処理の有無も比較してよい)
5.特徴点照合部186のみで、ZNCCによる対応づけを行い、追加処理や変則処理も行う
6.特徴点照合部186のみで、ZNCC以外の手法で対応づけを行う
7.まず特徴点照合部178がZNCCによる対応づけを行い、その結果に基づき、特徴点照合部186が、必要な追加処理や変則処理を行う2段階処理とする
8.まず特徴点照合部186が必要な前処理や変則処理を行い、その結果に基づき、特徴点照合部178が、ZNCCによる対応づけを行う2段階処理とする
【0067】
空間情報取得部180は、上述のとおりCPU134、算術演算器148を構成に含み、ソフトウェアによるプログラマビリティが高い。よって特徴点照合部178と比べて、特徴点照合部186は、特徴点の対応づけにおいて特定の指標が所定値を超えた時のみ行う例外処理の追加、特徴点に対する前処理、情報取得部188との複合処理、それらの処理のための同期処理・処理順序の入れ替え・処理粒度の変更、などの追加処理や変則処理を柔軟に行える特徴がある。
【0068】
したがって上記1~8の態様のいずれかを選択できるようにしておくことで、特徴点照合部178との協働で、あるいはどちらか単独で、画像の内容や撮影環境などに対し最適な手法により、特徴点の対応情報を得ることができる。なおZNCC以外のテンプレートマッチングの手法として、一般にはSSD(Sum of Squared Difference)、SAD(Sum of Absolute Difference)、NCC(Normalized Cross Correlation)などが知られている。特徴点照合部186はZNCCに加え、それらの実用化されているアルゴリズムを選択肢としてそのいずれかを選択し、対応情報を取得したうえで必要に応じて特徴点照合部178が取得した結果と比較することにより、特徴点の対応情報を最適化する。
【0069】
なお空間情報取得部180に、深層学習を用いた推論モデルが含まれてもよい。このとき特徴点照合部186は推論モデルを用いて、特徴点照合部178が出力した特徴点の事前選別、ZNCCによる対応づけの事後選別、ZNCCを用いない特徴点の対応づけ、などを実行してもよい。いずれにしろ実空間情報の取得において、これまで述べたようにして特徴点照合部186を併用することにより、特徴点照合部178は、ハード・ワイヤードのメリットである高効率な処理に特化させることができる。
【0070】
ただし特徴点照合部186を省略し、特徴点照合部178の結果をそのまま用いるようにしてもよい。情報取得部188は、そのようにして得られた特徴点の対応情報を用いて空間情報を取得する。情報取得部188はまた、ステレオカメラ110の撮影タイミングとモーションセンサ120の計測タイミングを同一の時間軸で比較することにより、特徴点の位置関係から得られる実空間情報と、計測値から得られる実空間情報を統合してもよい。
【0071】
例えばSLAMにより得られた、ヘッドマウントディスプレイ100の位置姿勢の情報を、それより高いレートでモーションセンサ120が計測する加速度、角加速度に基づき外挿する。これより、撮影周期より短い周期で位置姿勢情報を取得できる。そのようにして得られた結果は、環境地図の生成にも反映させることができる。情報取得部188は取得した実空間情報を大容量ローカルメモリ154に書き出し、次の撮影画像における実空間情報の取得に用いる。また情報取得部188は、実空間情報を外部メモリ152に格納するなどして、コンテンツ処理装置200などに送信できるようにする。
【0072】
図5は、画像補正部172および特徴点抽出部176が撮影画像に対して行う処理の内容を説明するための図である。同図は、左側に撮影環境190の模式図を示すように、物が置かれたテーブルを左視点Aと右視点Bからステレオカメラ110で撮影した画像を処理対象としている。ただし上述のとおりカメラの数、ひいては並行して撮影、処理する画像の数は限定されない。まず(a)は、画像取得部170が取得した状態の撮影画像でありテーブルの像192が写っている。
【0073】
詳細には左視点Aの画像は、右視点Bの画像より、テーブルの像192が右に寄っている。また両者とも、カメラのレンズに起因して、テーブルの像192が樽型に歪んでいる。さらに撮影環境190に示すように、左視点Aのスクリーン198aに対し右視点Bのスクリーン198bが傾いているため、テーブルの像192が左右で平行でない。
【0074】
一般的な技術では、まずレンズによる歪みを除去する補正をし、(b)に示すような歪みのない画像を生成する。ここで元の画像における位置座標(x,y)の画素が、補正後の画像における位置座標(x+Δx,y+Δy)へ補正されるとすると、その変位ベクトル(Δx,Δy)は次の一般式で表せる。
【0075】
【数2】



【0076】
ここでrは、画像平面におけるレンズの光軸から対象画素までの距離、(Cx,Cy)はレンズの光軸の位置である。またk、k、k、・・・はレンズ歪み係数でありレンズの設計に依存する。次数の上限は特に限定されない。なお本実施の形態において補正に用いる式を上式に限定する趣旨ではない。
【0077】
次に、レンズによる歪みが除去された画像に対しレクティフィケーションを行う。すなわちキャリブレーションにより事前に得られたカメラパラメータに基づき回転変換をかけることにより、(c)に示すように、水平方向のエピポーラ線194が同一の高さにある画像対を得る。そして、そのように補正された画像に対し特徴点抽出処理を施すことにより、(d)に示すように各画像に対し特徴点の位置情報が得られる。
【0078】
本実施の形態の画像補正部172は上述のとおり、変位ベクトルマップ196を参照し、1フレームより小さい部分画像単位で、(a)の画像から(c)の画像を即時に生成する(矢印C)。変位ベクトルマップ196に表される変位ベクトルは、上述したレンズによる歪み除去のための変位ベクトル(Δx,Δy)に、レクティフィケーションのための変位ベクトルを合成したものである。変位ベクトルマップは図示するように左視点A、右視点Bのそれぞれに対し準備する。
【0079】
またカラーの撮影画像を処理対象とする場合、赤、緑、青の原色ごとに変位ベクトルマップを準備する。これにより画像補正部172は色収差補正も同時に行える。さらに上述のとおり、ローリングシャッター方式のカメラを採用する場合、変位ベクトルマップ取得部182が、モーションセンサ120の計測値に基づき変位ベクトルをリアルタイムで更新していくことにより、1フレームの撮影時間で生じた動きによる歪みを同時に補正する。このように補正された各画像に対し、特徴点抽出部176は部分画像単位で、ハリスのコーナー検出などのアルゴリズムを用いて特徴点を抽出する。
【0080】
図6は、ローリングシャッター方式のカメラによって撮影された画像の補正について説明するための図である。(a)は説明で想定する撮影環境を模式的に示しており、縦長の物体210を撮影対象としている。物体210を撮影している1フレーム分の撮影期間に、ヘッドマウントディスプレイ100を装着したユーザが移動し、カメラのスクリーン212が、図の左から右へ移動したとする。
【0081】
(b)に示すようにローリングシャッターは、画像214の最上段から下方向へ走査しながら輝度を検出していくため、画像214の上方にある像と下方にある像では撮影時刻が異なる。その結果、図示するように本来は垂直方向に長い物体210が、斜めに長い物体に写ってしまう。当然、カメラの動きによって歪み方は様々となる。そこで変位ベクトルマップ取得部182は、当該歪みを補正するための変位ベクトルを求め、レンズによる歪みの除去やレクティフィケーションのための変位ベクトルに合成することで変位ベクトルマップを更新する。
【0082】
例えば変位ベクトルマップ取得部182は、フレームの最上段の画素列が走査される時刻を基準時刻として設定する。基準時刻からn番目の段の画素列が走査されるまでの遅延時間Δt(n)はフレームレートによって定まる。モーションセンサによる計測値から得られるカメラの速度ベクトルをスクリーン212に射影してなるベクトルのうち水平成分の速度v(t)を取得すれば、n番目の段の画素の補正量Δx(n)は次のように求められる。
【0083】
【数3】




【0084】
図7は、画素値決定部184が行う補正処理の手順の例を説明するための図である。(a)は補正前の画像、(b)は補正後の画像の平面を示している。補正前の画像平面におけるS00、S01、S02・・・は変位ベクトルマップにおいて変位ベクトルを設定する位置を表す。例えば画像平面の水平方向、垂直方向に離散的に(例えば、8画素あるいは16画素ごとなど等間隔に)変位ベクトルを設定する。
【0085】
補正後の画像平面におけるD00、D01、D02、・・・はそれぞれ、S00、S01、S02、・・・の変位先の位置を表す。図では一例として、S00からD00への変位ベクトル(Δx,Δy)を白抜き矢印で示している。画素値決定部184は、変位ベクトルを設定する画素を頂点とする最小の三角形の単位で、補正前の画像を補正後の画像にマッピングする。例えば補正前の画像のS00、S01、S10を頂点とする三角形を、補正後の画像のD00、D01、D10を頂点とする三角形にマッピングする。
【0086】
ここで三角形の内部の画素は、D00、D01、D10との距離に応じて線形に、あるいはバイリニア、トライリニアなどにより補間した位置に変位させる。そして画素値決定部184は、接続されたローカルメモリに格納された、補正前の部分画像の対応する画素の値を読み出すことにより、補正後の画像の画素値を決定する。この際、画素値決定部184は、補正前の画像における読み出し先の位置から所定範囲内にある複数の画素の値を、バイリニア、トライリニアなどにより補間することで、補正後の画像の画素値を導出する。これにより画素値決定部184は、補正前の画像の三角形の変位先である三角形の単位で、補正後の画像を画素列順に描画していくことができる。
【0087】
図8は、本実施の形態において画像取得部170、画像補正部172、特徴点抽出部176、特徴点照合部178が実施する処理の流れを示している。図の横方向は時間経過を表し、画像取得部170、画像補正部172、特徴点抽出部176、特徴点照合部178が部分画像ごとに行う処理の時間を、「画像取得」、「補正」、「特徴点抽出」、「特徴点照合」として矢印で示している。処理内容の末尾に示す数字は、処理対象の部分画像の番号を昇順で示している。
【0088】
この例では、図の左側に示すように処理対象の2つの撮影画像220の画像平面をそれぞれ所定行数ずつ水平方向に分割することで部分画像(1)、(2)、(3)、(4)、・・・を生成しているが、部分画像の分割規則を限定する趣旨ではない。まず画像取得部170が、各撮影画像の1番目の部分画像のデータを取得し終えたら、画像補正部172は当該部分画像に対応する変位ベクトルマップを取得し、それを参照して補正を施す。その期間に、画像取得部170は、各撮影画像の2番目の部分画像のデータを取得している。
【0089】
1番目の部分画像がそれぞれ補正されたら、特徴点抽出部176は各部分画像から特徴点を抽出する。その期間に画像補正部172は各撮影画像の2番目の部分画像に補正を施し、画像取得部170は各撮影画像の3番目の部分画像のデータを取得する。1番目の部分画像からそれぞれ特徴点が抽出されたら、特徴点照合部178はそれらを照合し、2つの撮影画像における1番目の部分画像の、特徴点の対応関係を取得する。特徴点照合部178はさらに、同じカメラが撮影した前のフレームとの特徴点の対応関係も取得する。
【0090】
その期間に、特徴点抽出部176は各撮影画像の2番目の部分画像から特徴点を抽出し、画像補正部172は3番目の部分画像に補正を施す。また画像取得部170は各撮影画像の4番目の部分画像のデータを取得する。以後、同様に処理を進捗させることにより、必要な処理が並列化され、特徴点の対応関係取得を高速化できる。なお図示する例は理解を容易にするため、各処理の時間を等しく割り当てているが、処理の開始タイミングや終了タイミングをこれに限定する趣旨ではない。
【0091】
例えば画像補正部172は、補正後の画像の1行分の画素列を決定するのに必要な範囲の画素列が取得された時点で補正処理を開始してもよい。また特徴点抽出部176は、1つの特徴点抽出を行うのに必要な範囲の画素列が取得された時点で、当該特徴点の抽出処理を開始してもよい。また、図では全ての処理が1番目の部分画像、2番目の部分画像、・・・といった同じ領域内で完結しているが、処理を開始するのに必要な部分画像の領域は、処理の内容に応じて異なっていてよい。
【0092】
さらに特徴点照合部178は、空間方向、時間方向で特徴点の対応づけを行い、かつ複数の解像度の画像を処理対象とする場合もある。これらを処理する順序や、並列に実行するか否かは、探索範囲の特徴点のデータ入手状況および、後続の処理との同期時期に応じて適切に設定してよい。
【0093】
図9は、特徴点照合部178が特徴点を照合する処理の手順を説明するための図である。同図は図5と同様、左視点と右視点のカメラで撮影した画像を処理対象としているが、カメラの数は限定されない。図の縦方向が時間経過を表し、時刻t1、t2、t3において各カメラが撮影した画像を対応づけて示している。特徴点照合部178は、複数のカメラが同時に撮影したフレーム間の特徴点の対応情報(空間方向の対応情報)P1、P2、P3、・・・と、同じカメラで異なる時刻に撮影された複数のフレーム間の特徴点の対応情報(時間方向の対応情報)M1、M2、・・・を取得する。
【0094】
空間方向の対応情報を得る際、特徴点照合部178は例えば、左視点の画像に8×8画素程度のテンプレート画像の領域230を特徴点ごとに設定する。そして右視点の画像に、対応する探索範囲232を設定し、テンプレート画像と同じサイズの探索窓をずらしながらZNCCの値を取得していく。特徴点照合部178は、ZNCCが最高値となった探索窓において、テンプレート画像の領域230と同じ位置にある特徴点を、テンプレート画像の領域230の特徴点と対応づける。この処理を、左視点の画像における特徴点ごとに繰り返すことにより、画像全体の特徴点の対応関係が得られる。
【0095】
ここで両画像は画像補正部172によるレクティフィケーションによって平行化されているため、探索範囲232は限定された領域となる。そのため特徴点照合部278は、例えば左視点の画像において設定したテンプレート画像の領域(例えば領域230)に対応する、右視点の画像の探索範囲(例えば探索範囲232)の特徴点のデータが取得された段階で、マッチング処理を開始する。これにより前段までの処理と並行して対応づけの処理を進捗させることができる。
【0096】
特徴点照合部178はさらに、そのようにして得られた特徴点の対応関係に基づき、特徴点として表されている被写体の箇所までの距離を取得する。すなわち左視点の画像と右視点の画像における対応する特徴点の、画像平面における水平方向の位置ずれに基づき、三角測量の原理で距離を求める。この距離の情報は、ステレオカメラ110に対する被写体の3次元空間での位置の特定に用いられるほか、特徴点の誤対応の検出にも利用できる。
【0097】
時間方向の対応情報を得る際も、特徴点照合部178は、例えば左視点の時刻t1の画像に、8×8画素程度のテンプレート画像の領域230を特徴点ごとに設定する。そして時刻t2の画像に、対応する探索範囲234を設定し、テンプレート画像と同じサイズの探索窓をずらしながらZNCCの値を取得していく。ただしこの場合、特徴点の変位方向はユーザの動きに依存して様々となるため、画像平面の縦方向を含め、比較的広い探索範囲を設定する必要がある。
【0098】
そこで特徴点照合部178は前処理として、特徴点を画像平面に表した画像を縮小することにより、複数の解像度の画像(例えば画像236a、236b、236c)を準備し、探索処理を効率化してもよい。すなわち特徴点照合部178は、まず最小解像度の画像同士でマッチングを行い、およその対応関係を取得したら、探索範囲をその近傍に限定して、その次の解像度の画像同士でマッチングを行う、というように、徐々に情報の詳細度を上げていく。これにより、大きな動きが生じていても探索範囲を絞り込むことができる。
【0099】
あるいは特徴点照合部178は、モーションセンサ120の計測値を取得することで、カメラの動きを予測してもよい。すなわちカメラの3次元空間での速度ベクトルに基づき、次のフレームにおいて特徴点がどのように変位するかを予測する。このようにしても探索範囲を絞り込むことができる。特徴点照合部178は、複数解像度の画像による絞り込みと、モーションセンサ120の計測値に基づく絞り込みの双方を行ってもよいし、どちらか一方のみを行ってもよい。
【0100】
いずれにしろ特徴点照合部178は、上述したのと同様に、例えば左視点の画像において設定したテンプレート画像に対応する、右視点の画像の探索範囲のデータが取得された段階で、マッチング処理を開始する。これにより前段までの処理と並行して対応づけの処理を進捗させることができる。
【0101】
図10は、空間情報取得部180が実施する実空間取得処理の手順を示すフローチャートである。このフローチャートは、新たな撮影画像(フレーム)の特徴点の対応情報が取得される都度、実行される。まず空間情報取得部180の特徴点照合部186は、特徴点抽出部176が抽出した特徴点の情報に基づき、複数の撮影画像における特徴点の対応づけを行う(S10)。特徴点照合部186は基本的に、図9で示したのと同様のテンプレートマッチングを行うことにより、空間方向および時間方向で対応情報を取得する。
【0102】
この際、特徴点照合部186は上述の1~8のいずれかに対応する処理を行う。例えば特徴点照合部186は、特徴点照合部178と処理対象の画像を分担して同じアルゴリズムにより対応づけを行ってもよいし、特徴点照合部178と異なるアルゴリズムで対応づけを行ってもよい。また特徴点照合部186のみが処理を行ってもよいし、特徴点照合部178が行う対応づけに対する前処理、追加処理、変則処理のいずれかを行ってもよい。あるいは特徴点照合部178が取得した対応情報をそのまま利用し、S10の処理を省略してもよい。
【0103】
次に特徴点照合部186は、最終的に用いる対応情報を決定する(S12)。すなわち特徴点照合部178と処理を分担している場合は、その結果を統合する。特徴点照合部178と異なるアルゴリズムで対応づけを行った場合は、特徴点照合部178が取得した対応情報と比較し、精度が高いと推定される方を採用する。特徴点照合部186が前処理を行ったか否かに関わらず、特徴点照合部178が取得した対応情報をそのまま採用する場合は、特徴点照合部186は当該情報を読み出す。特徴点照合部178が取得した対応情報に追加処理や変則処理を行う場合、特徴点照合部186はそれらの処理を経て結果を取得する。
【0104】
ここで得られる対応情報とは、図9における空間方向の対応関係P1、P2、P3、・・・と、それらから得られる被写体の距離値、および時間方向の対応関係M1、M2、・・・を、基準となるカメラによる撮影画像(例えば左視点の画像)における特徴点ごとに対応づけたデータである。次に情報取得部188は、そのような対応情報のうち誤対応を検出して除外する(S14)。例えば被写体の表面において特徴点として表れる複数の箇所の、実空間での相対的な位置関係は、カメラがどのように移動しても変化しない。そのため、そのような拘束条件から外れている対応関係は誤対応として対応情報から除外する。
【0105】
そのほか、誤対応を検出する規則として様々に考えられることは当業者には理解されるところである。また情報取得部188は、実空間情報を得るための対応関係として適切でないデータも除外してよい。情報取得部188は、動きのない被写体の像を基準とすることにより、相対的にカメラの位置や姿勢を取得することを基本とする。そのため動いている被写体の像を処理対象から除外することにより、実空間情報の取得精度を高めることができる。
【0106】
例えば情報取得部188は、対応づけがなされた特徴点を含む像の色や形状に基づき、人、動物、ロボットなど、動くと推定される物の特徴点を対応情報から除外する。動く物の推定規則は、あらかじめ人手により設定してもよいし、それを教師データとして機械学習や深層学習により最適化していってもよい。次に情報取得部188は、残った対応情報を用いて実空間情報を取得する(S16)。例えば推定したカメラの位置や姿勢で写るべき像の特徴点と、時間方向の対応関係により得られた実際の像の特徴点とを比較し、その差が最小となる位置や姿勢を取得する。
【0107】
S16において情報取得部188は、ステレオカメラ110の撮影時刻に対して得られる位置や姿勢の情報を、モーションセンサ120による計測値に基づき外挿することにより、センサフュージョンを実現してもよい。情報取得部188はまた、そのように取得されたステレオカメラ110、ひいてはヘッドマウントディスプレイ100の位置や姿勢と、空間方向の対応関係により得られた被写体までの距離に基づき、環境地図を生成してもよい。前述のとおり、空間情報取得部180には深層学習を用いた推論モデルが含まれてもよい。このとき、情報取得部188は、対応づけられた特徴点やモーションセンサ120による計測値から、最新のカメラ視点の位置や姿勢を推定したり環境地図を生成したりする際に、推論モデルを用いてもよい。
【0108】
図11は、画像取得部170の処理の詳細を説明するための図である。(a)は、ステレオカメラ110などのイメージセンサにおける画素配列を例示している。上段の画素配列250aは、2×2画素の4画素のうち3画素でグレースケール(「B/W」と表記)の輝度を検出し、1画素で赤外線(「IR」と表記)の輝度を検出する。このような画素を縦横双方向に配列させることにより、グレースケールの輝度と赤外線の輝度の2次元配列が得られる。
【0109】
(a)の下段の画素配列250bは、4×4の16画素のうち緑(「G」と表記)と赤外線(「IR」と表記)の輝度をそれぞれ縦横双方向に1画素おきの画素で検出し、残りの4画素のうち斜め方向にある2画素の対で赤(「R」と表記)および青(「B」と表記)の輝度をそれぞれ検出する。このような画素を縦横双方向に配列させることにより、3原色の輝度と赤外線の輝度の2次元配列が得られる。
【0110】
(b)は、画像取得部170の詳細な機能ブロックを示している。画像取得部170は前処理部260、画素分離部262、第1後処理部264a、第2後処理部264bを備える。画像取得部170に対する入力は、(a)で示したように、画素値として複数の波長帯の光の輝度を含む撮影画像のデータである。前処理部260は、当該データを走査順に取得し、黒レベル補正、欠陥補正などの前処理を施す。画素分離部262は、前処理が施された画素列のデータを順次取得し、(a)で示したような画素配列に基づき用途別に分離する。
【0111】
例えば画素配列250aの場合、グレースケールの輝度の2次元配列と、赤外線の輝度の2次元配列に分離する。画素配列250bの場合は、赤、緑、青の輝度の2次元配列と、赤外線の輝度の2次元配列に分離する。画素分離部262は分離したデータを、画素列順に第1後処理部264a、第2後処理部264bにそれぞれ入力する。なお3つ以上のデータに分離する場合、後処理部もその数だけ設ける。第1後処理部264aおよび第2後処理部264bは、入力されたデータに対し必要に応じて、デモザイク処理、平滑化処理、ノイズ除去、クロッピングなどの後処理を施す。
【0112】
これにより、分離により値が欠落した画素についても適宜画素値が補間され、用途に応じた波長帯の光を表す第1画像、第2画像のデータが、第1後処理部264a、第2後処理部264bからそれぞれ出力される。例えば画素配列250aを有するカメラの場合、グレースケールの画像と赤外線の画像のデータが出力される。画素配列250bを有するカメラの場合、カラー画像と赤外線の画像のデータが出力される。この場合、本実施の形態では、グレースケールの画像、あるいはカラー画像のデータを後段の処理に渡すことで、実空間情報が得られる。なおイメージセンサが有する画素配列と、画像取得部170が分離する波長帯の種別は上記した例に限らない。
【0113】
以上述べた本実施の形態によれば、撮影画像から実空間情報を得る技術において、1フレーム分の画素列のデータを取得するより前に、それより小さい部分画像の単位で画像の補正、特徴点抽出、特徴点照合の処理を順次進捗させる。またこれらの処理を、専用ハード・ワイヤード・ロジックと専用データフロー構成で行う。これにより、カメラによる撮影から実空間情報取得までの遅延時間を短縮でき、処理の応答性を高められる。また消費電力を抑えられるため、充電池による作動であっても連続使用時間を延ばすことができる。
【0114】
また画像の補正において、レンズ歪みの除去、レクティフィケーション、ローリングシャッターによる歪みの補正、などを加味した変位ベクトルを求め、それを画像平面に表した変位ベクトルマップを参照することで、それらの補正を一度に実施する。これにより、補正に要する時間を増大させることなく、後段の処理において少ない処理負荷で高精度な情報が得られる。
【0115】
なお本実施の形態は、グレースケールの撮影画像であっても適用できる。この場合、画像補正部172において、原色ごとに異なる変位ベクトルマップを用意する必要がない。また実空間情報を取得するまでの処理全体として演算やデータの量が削減され、遅延や消費電力をよりいっそう削減できる。撮影画像がカラー画像であっても、画像取得部170が輝度成分のみを取り出し、以降の処理はグレースケールとして行うことで、同様の効果を得ることもできる。
【0116】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0117】
例えば本実施の形態では、汎用プロセッサに代わり専用のハード・ワイヤード・ロジックと専用データフローの構成により画像処理を進捗させた。これにより最も効果的に低遅延、低消費電力での実空間情報取得を実現できるが、一連の処理は汎用プロセッサによっても実現可能である。すなわち外部メモリ152にロードしたコンピュータプログラムにより、専らCPUが各プロセスを発生させ、パイプライン処理することによっても、実空間情報を低遅延で得ることができる。
【0118】
また本実施の形態は、撮影画像が赤外線画像であっても適用可能である。この場合、別途、赤外線プロジェクタから被写空間に赤外線を照射したり、赤外線を発する光源を被写空間に設置したりしてもよい。このとき赤外線プロジェクタからの照射光が、構造化光(structured light)方式でパターンを有していてもよい。このとき特徴点抽出部176は、当該パターンを利用して特徴点を検出してもよい。
【0119】
また図10で示した空間情報取得部180による処理は、撮影画像のフレーム単位で実施してよい。図12は、空間情報取得部180による処理を含めた、画像処理装置130における各フレームに対する処理の流れを例示している。図8と同様、図の横方向は時間経過を表す。最上段に示すように、ステレオカメラ110はそれぞれの視点でフレーム1、フレーム2、・・・の画像対を撮影していく(S100)。これと並行して、画像処理装置130の画像取得部170、画像補正部172、特徴点抽出部176は、各フレームの画像取得、補正、および特徴点抽出を実施する(S102)。すなわち図8で示したように、1フレームより小さい部分画像の単位で各種処理を順次進捗させる。
【0120】
1フレーム分の特徴点抽出処理が完了する都度、空間情報取得部180は、当該フレームに対し図10で示した処理を開始する。すなわち、まず特徴点照合部186が、抽出された特徴点の情報に基づき、複数の撮影画像における特徴点の対応づけを行う(S10)。ここで特徴点照合部186は初期処理として、拡張カルマンフィルタなどの時系列解析フィルタにより、最新の特徴点分布を取得してよい。次に特徴点照合部186は、空間方向および時間方向で特徴点の対応情報を取得する。
【0121】
ただし空間方向の対応情報は、空間情報取得部180外の特徴点照合部178が行い、空間情報取得部180の特徴点照合部186は時間方向の対応情報を取得する、といったように処理を分担してもよい。このようにすると、図示するように空間方向の対応情報取得と時間方向の対応情報取得を並列に行え、短時間で双方の情報が得られる。その他、2つの特徴点照合部178、特徴点照合部186による分担が様々に考えられることは上述したとおりである。
【0122】
空間方向の対応情報を取得する際、特徴点照合部178または特徴点照合部186は、1/16の縮小画像、1/4の縮小画像、1/1の画像、というように低解像度の画像から順にマッチングを行うことで探索範囲を絞り込み、処理を効率化してもよい。また時間方向の対応情報を取得する際、特徴点照合部186は、大容量ローカルメモリ154に格納済みの、過去のフレームも参照してよい。特徴点照合部186を算術演算器148で実現し、ZNCCなどの演算を実行する専用命令を準備することにより、特徴点照合部186は対応情報を高速に取得できる。
【0123】
そして特徴点照合部186は、特徴点照合部178や自らの処理によって得られた対応情報に基づき、最終的に用いる対応情報をフレーム単位で決定する(S12)。続いて情報取得部188は上述のとおり、当該対応情報のうち誤対応を検出して除外したうえ(S14)、残った対応情報を用いて実空間情報を取得する(S16)。以上の処理により、上述したとおり高速かつ高精度に実空間情報を取得できる。
【産業上の利用可能性】
【0124】
以上のように本発明は、画像処理装置、ウェアラブルディスプレイ、ゲーム装置、モバイル機器、自動車、ロボット、無人航空機など各種装置や、それらのいずれかを含むシステムなどに利用可能である。
【符号の説明】
【0125】
100 ヘッドマウントディスプレイ、 110 ステレオカメラ、 120 モーションセンサ、 130 画像処理装置、 134 CPU、 136 イメージ信号処理回路、 138 ローカルメモリ、 140 補正回路、 142 ローカルメモリ、 144 特徴点抽出器、 146 特徴点照合器、 148 算術演算器、 150 周辺機器インターフェース、 152 外部メモリ、 154 大容量ローカルメモリ、 170 画像取得部、 172 画像補正部、 174 センサ情報取得部、 176 特徴点抽出部、 178 特徴点照合部、 180 空間情報取得部、 182 変位ベクトルマップ取得部、 184 画素値決定部、 186 特徴点照合部、 188 情報取得部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12