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

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

▶ センターライン バイオメディカル,インコーポレイテッドの特許一覧

特許7579403空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション
<>
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図1
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図2
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図3A
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図3B
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図4
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図5
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図6
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図7
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図8
  • 特許-空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-29
(45)【発行日】2024-11-07
(54)【発明の名称】空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション
(51)【国際特許分類】
   G06T 19/00 20110101AFI20241030BHJP
   G06F 3/0346 20130101ALI20241030BHJP
【FI】
G06T19/00 600
G06F3/0346 422
【請求項の数】 14
【外国語出願】
(21)【出願番号】P 2023137443
(22)【出願日】2023-08-25
(62)【分割の表示】P 2021559272の分割
【原出願日】2020-04-06
(65)【公開番号】P2023175709
(43)【公開日】2023-12-12
【審査請求日】2023-09-25
(31)【優先権主張番号】62/829,394
(32)【優先日】2019-04-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/838,027
(32)【優先日】2019-04-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521199579
【氏名又は名称】センターライン バイオメディカル,インコーポレイテッド
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】ホラデイ,マシュー
(72)【発明者】
【氏名】ゴール,ヴィカッシュ
【審査官】松永 隆志
(56)【参考文献】
【文献】特開2017-153827(JP,A)
【文献】特開2016-213663(JP,A)
【文献】特開2017-106959(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/0346
(57)【特許請求の範囲】
【請求項1】
互いに空間的に離れて配置され、拡張現実デバイスの空間座標系に対する固定された位置および向きが既知である複数のカメラから、複数の画像を取得する工程、を含む方法であって、
取得された複数の前記画像は、マルチモーダルマーカーデバイスの少なくとも1つの第1トラッキングセンサーに対してそれぞれ固定された既知の空間位置を有する前記マルチモーダルマーカーデバイスの複数の所定部分を含み、前記少なくとも1つの第1トラッキングセンサーはトラッキングシステムの座標系において検出可能な3次元位置を有し、
前記方法はさらに、
取得された前記画像の各々と、前記拡張現実デバイスの前記空間座標系に対する前記複数のカメラの前記既知の位置および向きと、に基づいて、前記拡張現実デバイスの前記空間座標系に対する前記マルチモーダルマーカーデバイスの複数の前記所定部分それぞれの3次元位置を推定する工程と、
前記マルチモーダルマーカーデバイスの複数の前記所定部分それぞれの前記推定された3次元位置と、前記マルチモーダルマーカーデバイスの前記少なくとも1つのトラッキングセンサーに対する、前記マルチモーダルマーカーデバイスの複数の前記所定部分それぞれの前記既知の各空間位置と、に基づいて、前記トラッキングシステムの前記座標系を、前記拡張現実デバイスの前記空間座標系にあるディスプレイの視覚空間に対応付けるように構成されたアフィン変換を計算する工程と、
オブジェクトに取り付けられ、かつ、患者の体に対して移動可能であって、トラッキングシステムの座標系において検出可能である3次元位置を有している少なくとも1つの第2トラッキングセンサーのトラッキングデータを受信する工程と、
前記少なくとも1つの第2トラッキングセンサーの位置および向きを、前記拡張現実デバイスの前記空間座標系にある前記ディスプレイの前記視覚空間に対応付けるために、少なくとも1つの第2トラッキングセンサーの前記トラッキングデータに前記アフィン変換を適用する工程と、
前記アフィン変換を前記少なくとも1つの第2トラッキングセンサーの前記トラッキングデータに適用することに基づいて、前記ディスプレイの前記視覚空間に重ね合わされた前記オブジェクトのグラフィック表現を含むグラフィック出力を、前記ディスプレイの前記視覚空間に表示する工程と、
を含む方法。
【請求項2】
前記アフィン変換が第1アフィン変換である請求項1に記載の方法であって、
モデル空間の3次元座標系を前記トラッキングシステムの前記空間座標系に対応付けるように構成されている第2アフィン変換をメモリに格納する工程と、
前記モデル空間内の解剖学的内部構造についての前記患者のアナトミーの少なくとも1つの3次元モデルを表すために、解剖学的モデルデータを前記メモリに格納する工程と、
前記解剖学的内部構造についての前記患者のアナトミーの前記少なくとも1つの3次元モデルを、前記ディスプレイの前記視覚空間に整合させるために、前記解剖学的モデルデータに前記第1アフィン変換および前記第2アフィン変換を適用する工程と、をさらに含み、
前記グラフィック出力は、前記少なくとも1つのモデルのグラフィカル表示と、適用された前記第1アフィン変換と前記第2アフィン変換それぞれと、に基づいて、前記ディスプレイの前記視覚空間に両方が重ね合わされた前記オブジェクトの前記グラフィカル表示を含む、請求項1に記載の方法。
【請求項3】
前記第1アフィン変換を計算する工程は、前記マルチモーダルマーカーデバイスの複数の前記所定部分に対する前記複数のカメラの相対的な移動に対応するように前記第1アフィン変換を更新するために、前記複数のカメラによって取得される画像フレームに対して繰り返し実行され、
繰り返し計算された前記第1アフィン変換と、前記第2アフィン変換と、に基づいて、前記ディスプレイの前記視覚空間の前記グラフィック出力がリアルタイムに更新される、請求項2に記載の方法。
【請求項4】
前記マルチモーダルマーカーデバイスの複数の前記所定部分それぞれの座標は、取得された前記複数の画像の各々における前記所定部分のピクセルの位置に基づいて決定され、
前記マルチモーダルマーカーデバイスは、前記複数のカメラによって取得された少なくともいくつかの画像内に見えるフィデューシャルマーカーを含み、
前記フィデューシャルマーカーは、前記複数のカメラによって取得された前記画像内で識別され、
前記マルチモーダルマーカーデバイスの複数の前記所定部分の前記座標は、識別されたフィデューシャルマーカーごとに決定される、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記フィデューシャルマーカーは長方形の境界線を含み、前記長方形の境界線には、その辺同士が交わる箇所にそれぞれの角があり、前記マルチモーダルマーカーデバイスの複数の前記所定部分が前記境界線の前記それぞれの角に対応する、請求項4に記載の方法。
【請求項6】
前記複数のカメラは、前記拡張現実デバイスの前記ディスプレイに対して既知の位置にあり、視野が重なり、かつ互いに平行ではない画像を含むように前記複数の画像を取得するように構成されていて、
前記拡張現実デバイスは、前記複数のカメラと、前記ディスプレイと、を含むヘッドセットを含み、前記ディスプレイは、ユーザーの視野内で前記ディスプレイ上にホログラフの画像を重ねるように構成された頭部装着ディスプレイである、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記モデル空間は、先行する3次元術前医用イメージングモダリティの3次元空間座標系を含み、前記第2アフィン変換を決定する工程は、
術中医用イメージングモダリティの座標系を、前記モデル空間を定義する3次元医用イメージングモダリティの座標系に対応付けるための第3の変換を計算する工程と、
前記マルチモーダルマーカーデバイスの複数の前記所定部分それぞれの前記推定された位置と、前記少なくとも1つのトラッキングセンサーと前記マルチモーダルマーカーデバイスの前記所定部分それぞれとの既知の関係と、に基づいて、前記トラッキングシステムの3次元座標系を前記術中医用イメージングモダリティの前記3次元座標系に対応付けるための第4のアフィン変換を計算する工程と、をさらに含む、請求項2に記載の方法。
【請求項8】
平行移動、回転、および拡大縮小のうち少なくとも1つを前記アフィン変換に適用するように構成された補正行列を適用することによって、ユーザーインプットに応答して前記アフィン変換を補正する工程と、をさらに含む、請求項1に記載の方法。
【請求項9】
請求項1~8のいずれか1項に記載の方法を実行するようにプログラムされた、1つ以上の非一過性のコンピュータ読み取り可能な媒体。
【請求項10】
それぞれの視野に対する画像を取得する複数のカメラを含む拡張現実デバイスと、
各トラッキングセンサーの位置および向きを示すセンサートラッキングデータを提供するように構成されたトラッキングシステムと、
データと、プロセッサによって実行可能な命令と、を格納するための1つ以上の非一過性のコンピュータ読み取り可能な媒体と、を含むシステムであって、
前記データは、前記複数のカメラによって取得された画像に対する拡張現実画像データを含み、各カメラは前記拡張現実デバイスの空間座標系に対して既知の位置および向きを有し、前記拡張現実画像データは、マルチモーダルマーカーデバイスの少なくとも1つの第1トラッキングセンサーに対する固定された既知の空間位置を有する前記マルチモーダルマーカーデバイスの複数の所定部分を含み、前記少なくとも1つの第1トラッキングセンサーは、その3次元位置が前記トラッキングシステムの座標系で検出可能であり、
前記命令は、
取得された前記拡張現実画像データと、前記拡張現実デバイスの前記空間座標系に対する前記複数のカメラの前記既知の位置および向きと、に基づいて、前記拡張現実デバイスの前記空間座標系に対する前記マルチモーダルマーカーデバイスの複数の前記所定部分の3次元位置を生成するコードと、
前記マルチモーダルマーカーデバイスの複数の前記所定部分それぞれの前記3次元位置と、前記少なくとも1つの第1トラッキングセンサーに対する、前記マルチモーダルマーカーデバイスの複数の前記所定部分の前記既知の空間位置および向きと、に基づいて、前記トラッキングシステムの前記座標系を前記拡張現実デバイスの前記空間座標系にあるディスプレイの視覚空間に対応付けるためのアフィン変換を計算するためのコードと、
可動のオブジェクトに取り付けられ、前記トラッキングシステムの座標系で検出可能な3次元位置を有する、少なくとも1つの第2トラッキングセンサーの位置および向きを、前記拡張現実デバイスの前記空間座標系における前記ディスプレイの前記視覚空間に対応付けるために、前記少なくとも1つの第2トラッキングセンサーのトラッキングデータに前記アフィン変換を適用するためのコードと、
グラフィック出力は、前記少なくとも1つの第2トラッキングセンサーの前記トラッキングデータに前記アフィン変換を適用することに基づいて、前記ディスプレイの前記視覚空間に重ね合わされた前記オブジェクトのグラフィカル表示を含む、前記ディスプレイの前記視覚空間に前記グラフィック出力を表示するためのコードと、
を含むシステム。
【請求項11】
前記アフィン変換は第1アフィン変換であり、前記命令は、モデル空間の3次元座標系を前記トラッキングシステムの前記座標系に対応付けるための少なくとも1つの第2アフィン変換を計算するコードをさらに含み、前記データは、前記モデル空間の解剖学的内部構造に関する患者のアナトミーの少なくとも1つの3次元モデルを表すために格納された解剖学的モデルデータをさらに含み、
前記命令は、前記解剖学的内部構造についての前記患者のアナトミーの少なくとも1つの3次元モデルを前記拡張現実デバイスの前記空間座標系にある前記ディスプレイの前記視覚空間に位置同期させるために、前記第1アフィン変換と前記第2アフィン変換を前記解剖学的モデルデータに適用するためのコードをさらに含み、
前記グラフィック出力は、前記少なくとも1つのモデルのグラフィカル表示と、前記第1アフィン変換と前記第2アフィン変換それぞれと、に基づいて、前記ディスプレイの前記視覚空間に両方が重ね合わされた前記オブジェクトの前記グラフィカル表示を含む、請求項10に記載のシステム。
【請求項12】
前記第2アフィン変換を計算する前記コードは、
術中医用イメージングモダリティの座標系を、前記モデル空間を定義する3次元医用イメージングモダリティの座標系に対応付けるための第3の変換を計算するためのコードと、
前記マルチモーダルマーカーデバイスの複数の前記所定部分それぞれの推定された位置と、前記少なくとも1つの第1トラッキングセンサーと前記マルチモーダルマーカーデバイスの複数の前記所定部分それぞれとの既知の関係と、に基づいて、前記トラッキングシステムの3次元座標系を前記術中医用イメージングモダリティの前記3次元座標系に対応付けるための第4のアフィン変換を計算するためのコードと、をさらに含む、請求項11に記載のシステム。
【請求項13】
前記複数のカメラは、前記拡張現実デバイスの前記ディスプレイに対して既知の位置にあり、視野が重なり、かつ互いに平行ではない画像として、前記画像を取得するように構成されている、請求項10、11または12に記載のシステム。
【請求項14】
前記アフィン変換を計算する前記コードは、前記マルチモーダルマーカーデバイスの複数の前記所定部分に対する前記複数のカメラの相対的な移動に対応するように前記アフィン変換を更新するために、前記複数のカメラによって取得される画像フレームに対して前記アフィン変換を繰り返し計算するようにプログラムされている、請求項10、11、12または13に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願へのクロスリファレンス
本出願は、2019年4月24日に出願され、発明の名称を「REGISTRATION OF SPATIAL TRACKING SYSTEM WITH AUGMENTED REALITY DISPLAY(空間トラッキングシステムと拡張現実ディスプレイとのレジストレーション)」とする米国特許仮出願第62/838,027号と、2019年4月4日に出願され、発明の名称を「SPATIAL REGISTRATION OF TRACKING SYSTEM WITH AN IMAGE USING TWO-DIMENSIONAL IMAGE PROJECTIONS(2次元画像投影を用いた、トラッキングシステムと画像との空間レジストレーション)」とする米国特許仮出願第62/829,394号の優先権を主張するものであり、これらの出願各々の全体を本明細書に援用する。
【0002】
技術分野
本開示は、トラッキングシステムを拡張現実システムに対応付けるためのシステムおよび方法に関する。
【背景技術】
【0003】
拡張現実(または複合現実)とは、現実世界に存在するオブジェクトが、建設的または破壊的な感覚情報を重ねるなどして、コンピュータで作り出された知覚情報によって「拡張」された、現実世界の環境のインタラクティブな体験である。建設的な感覚情報の例としては、拡張現実(AR)ヘッドセットを使用して、コンピュータが作り出した映像を現実の物理的な環境に重ね合わせ、現実の環境に没入したように感じさせることがあげられる。しかしながら、ヘッドセットはユーザーに固定されているため、コンピュータが作り出した映像を、その場で、その環境の物理的な景色に対応付ける必要がある。これは、対応付けられる映像が、その環境で視認可能なオブジェクトを表したものではない場合に、より複雑になる。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示は、トラッキングシステムを拡張現実システムに対応付けるレジストレーションするためのシステムおよび方法に関する。
【0005】
一例として、本方法は、それぞれ拡張現実デバイスの空間座標系に対する位置および向きが既知である複数のカメラから画像を取得する工程を含む。取得された画像は、マルチモーダルマーカーデバイスの少なくとも1つのトラッキングセンサーに対する固定の空間位置が既知である、マルチモーダルマーカーデバイスの複数の所定部分を含んでもよい。
少なくとも1つのトラッキングセンサーは、その3次元位置がトラッキングシステムの座標系で検出可能である。また、本方法は、それぞれの取得された画像の各々と、拡張現実デバイスの空間座標系に対する複数のカメラの既知の位置および向きとに基づいて、拡張現実デバイスの空間座標系に対するマルチモーダルマーカーデバイスの複数の所定部分の3次元位置を推定する工程を含む。また、本方法は、マルチモーダルマーカーデバイスのそれぞれの所定部分の推定された3次元位置と、少なくとも1つのトラッキングセンサーに対する、マルチモーダルマーカーデバイスの複数の所定部分の既知の空間位置とに基づいて、トラッキングシステムの座標系を、拡張現実デバイスの空間座標系にあるディスプレイの視覚空間に対応付けるように構成されたアフィン変換を計算する工程を含む。
【0006】
別の例として、システムは、それぞれの視野に対する画像を取得する複数のカメラを含む拡張現実デバイスを含む。1つ以上の非一過性のコンピュータ読み取り可能な媒体が、データと、プロセッサによって実行可能な命令と、を格納するように構成されている。データは、複数のカメラによって取得された画像に対する拡張現実画像データを含み、各カメラは、拡張現実デバイスの空間座標系に対して位置および向きが既知である。拡張現実画像データは、マルチモーダルマーカーデバイスの少なくとも1つのトラッキングセンサーに対する固定の空間位置が既知である、マルチモーダルマーカーデバイスの複数の所定部分を含んでもよく、少なくとも1つのトラッキングセンサーは、その3次元位置がトラッキングシステムの座標系で検出可能である。命令は、取得された拡張現実画像データと、拡張現実デバイスの空間座標系に対する複数のカメラの既知の位置および向きと、に基づいて、拡張現実デバイスの空間座標系に対するマルチモーダルマーカーデバイスの複数の所定部分の3次元位置を生成するためのコードを含む。また、命令は、マルチモーダルマーカーデバイスのそれぞれの所定部分の3次元位置と、少なくとも1つのトラッキングセンサーに対する、マルチモーダルマーカーデバイスの所定部分の既知の空間位置および向きと、に基づいて、トラッキングシステムの座標系を拡張現実デバイスの空間座標系にあるディスプレイの視覚空間に対応付けるためのアフィン変換を計算するコードをさらに含む。
【図面の簡単な説明】
【0007】
図1図1は、トラッキングシステムのセンサーを拡張現実ディスプレイの空間座標系に対応付ける方法の一例を示す流れ図である。
図2図2は、マーカーデバイスの一例を示す図である。
図3A図3Aは、マルチモーダルマーカーデバイスの一例を示す図である。
図3B図3Bは、マルチモーダルマーカーデバイスの一例を示す図である。
図4図4は、視覚空間の2次元画像を取得するカメラを含む拡張現実デバイスの例を示す。
図5図5は、アフィン変換を生成するためのシステムの一例を示す。
図6図6は、1つ以上のアフィン変換の使用または修正を制御するレジストレーションマネージャの一例を示す図である。
図7図7は、解剖学的構造の位置同期されたモデルに隣接するマルチモーダルマーカーを含む拡張現実デバイスの各々のカメラからの画像である。
図8図8は、解剖学的構造の位置同期されたモデルに隣接するマルチモーダルマーカーを含む拡張現実デバイスの各々のカメラからの画像である。
図9図9は、図1に示す方法で実行されたレジストレーションに基づいて作り出された拡張現実の視覚化の一例を示す。
【発明を実施するための形態】
【0008】
本開示は、広義には、頭部装着ディスプレイなどのARディスプレイデバイスに映し出される拡張現実(AR)の視野に、1つ以上のモデルの組とトラッキングシステムとを対応付けるための方法およびシステムに関するものである。この方法では、2以上のモダリティで検出可能なフィデューシャルマーカーを含むマーカーデバイス(例えば、マルチモーダルマーカー)を利用する。例えば、マーカーデバイスは、視覚空間(例えば、AR視野)に対して位置が固定された一組のカメラによって生成される画像で見えるパターンを提供するための第1のフィデューシャルマーカーと、3次元空間トラッキングシステムによって検出可能な1つ以上の別の一組のマーカーとを含む。
【0009】
一例として、ARデバイスのフレームに沿って互いに離れた前向きのカメラとして、2台以上のカメラ(例えば、デジタルグレースケールカメラ)が取り付けられる。このため、カメラは、重なる視野についての2次元画像を提供するように構成されている。このように、カメラの視野はARデバイスの視野を含み、マルチモーダルマーカーデバイスの1つ以上のフィデューシャルマーカーを含むことができる。人間の目には見えない場合もあるがカメラのスペクトルには見える1つ以上のフィデューシャルマーカーに加えて、マーカーデバイスは、3次元空間トラッキングシステムによって検出可能な1つ以上の第2のフィデューシャルマーカー(例えば、1つ以上のトラッキングセンサー)も含む。第2のフィデューシャルマーカーは各々、カメラによって取得されたそれぞれの画像(例えば、リアルタイム画像)で識別可能な第1のフィデューシャルマーカーに対して所定の空間位置および向きで配置されている。
【0010】
別の例として、カメラは各々、マーカーデバイスの第1のフィデューシャルマーカーに対応するマーカーパターンを含む視野を含む画像を取得する。それぞれの画像は、各画像に含まれるパターンの所定部分(例えば、長方形の印刷されたマークの角)の位置を特定して識別するように処理される。ARデバイスに対する各カメラの既知の(例えば、固定された)位置を使用して、マーカーパターンの識別された部分(例えば、点または領域)を、ARシステムの3次元空間座標系すなわち、AR視野内の対応する3次元位置に変換する。
【0011】
フィデューシャルマーカーに対する1つ以上のトラッキングセンサーの位置と向きが、さらにトラッキング位置データとしてメモリに格納される。また、1つ以上のアフィン変換を事前に計算し、トラッキングセンサーを座標系と整合させることが可能であり、これも(例えば、トラッキングからモデルシステムへの変換として)メモリに格納される。一例では、事前に計算された変換は、トラッキング座標系を先行する3次元(3D)画像スキャン(例えば、施術前のスキャン)に対応付けるために事前に計算された1つ以上のアフィン変換の組である。先行する3D画像スキャンは、コンピュータ断層撮影(CT)スキャン、磁気共鳴イメージング(MRI)などの高解像度のイメージング技術であってもよく、これらは、処置の数時間前、数日前あるいは数週間前に実施されることもある。管状の解剖学的構造の中心線モデルおよび/またはメッシュモデルなど、先行する3D画像スキャンから、1つ以上のモデルを作成し、この1つ以上のモデルを、先行する3D画像の座標系に空間的に対応付けることができる。本明細書では、事前に計算されるアフィン変換を計算して、各トラッキングセンサーの位置と向きを、先行する3D画像と共通の座標系に対応付けることができる。
【0012】
別のアフィン変換(本明細書では、ARアライメント変換またはゼロ変換行列とも呼ばれる)を計算し、トラッキングシステムの座標系をAR座標系に整合させる。例えば、ARアライメント変換は、トラッキング位置データ、AR画像データおよびトラッキングセンサー変換に基づいて決定される。トラッキングセンサー変換は、トラッキングセンサーと、マルチモーダルマーカーデバイスに統合されて空間的なオフセットが固定された1つまたは複数のフィデューシャルとの間の所定の空間的関係を定義してもよく、トラッキングシステムの座標空間におけるマーカーの所定の空間位置部分を決定できるようにする。
よって、ARアライメント変換は、システムおよび方法が、トラッキングシステムによって提供される、各トラッキングセンサーの位置および向きの情報と、ARシステムモダリティの座標系とを対応付けられるようにする。本明細書で開示する追加の変換をさらに利用して、他の空間ドメインからAR座標系に変換し、ARディスプレイで同時にレンダリングするようにしてもよい。本明細書で開示するように、ARディスプレイデバイスおよびトラッキングセンサーは、患者の身体に対して相対的に移動してもよく、システムは、そのような時間の経過とともに変化するAR画像データおよびトラッキングセンサーデータに基づいて、連続的に(例えば、リアルタイムで)変換を再計算することができる。
【0013】
図1は、ARデバイスのARビジュアルディスプレイの座標系に3次元座標系を対応付けるための方法100の一例を示す流れ図である。一例では、方法100は、メモリ101に格納されたデータに基づいて当該方法を実行するプロセッサデバイスが実行可能な、一組の機械読取可能な命令である。文脈上、方法100は、空間的な位置と向きが別の座標系で既知である1つ以上のオブジェクト(物理的および/または仮想的なオブジェクト)を、ARディスプレイの座標系と整合させるのに使用される。オブジェクトには、ARデバイスの視野内で見えないオブジェクト(例えば、センサーおよび/または解剖学的内部構造を表すモデル)が含まれていてもよい。例えば、1つ以上のセンサーが、3次元トラッキングシステムで検出可能な位置と向きを有する。これらのセンサーは患者の体内に配置されているなど視界から外れている場合もあれば、マーカーデバイスの一部となっている(例えば、マーカーに埋め込まれている)場合もある。また、ARデバイスの視野内で見えるオブジェクトが、ARディスプレイに含まれていてもよい。
【0014】
114で示すように、トラッキングセンサーをモデル座標系と整合させるための1つ以上の変換114を事前に計算し、メモリ101に(例えば、センサー/モデル空間変換として)格納しておくことができる。例えば、先行する3D医用画像(例えば、術前のCTスキャン)の3次元空間座標系と共通の座標系にトラッキング座標系を対応付けるようにプログラムされたセンサー/モデル空間アフィン変換を、変換114とすることができる。術前の医用画像から着目領域についての1つ以上の解剖学的モデルを作成し、先行する3D画像の共通座標系内に対応付けることができる。本明細書で開示するように、モデルには、血管系の中心線モデルおよび表面モデルならびに、着目される他の解剖学的構造が含まれていてもよい。
【0015】
別の例として、術前CTスキャンを実施して、患者の着目領域(例えば、患者の胴体)の3次元画像データを生成する。この画像データを、DICOM画像または他の既知のフォーマットとしてメモリに格納することができる。画像データを処理(例えば、セグメンテーションおよび抽出)し、本明細書で開示するモデルなど、1つ以上のモデルを作成する対象となる着目領域を含むセグメント化画像ボリュームを提供することができる。例えば、所定の患者について、3次元医用イメージングモダリティで、先行する3次元画像を術前に取得することができる。一例として、術前画像データを、対応する手術の数週間または数ヶ月前に取得し得るなど、患者の着目領域についての術前動脈CTスキャンに対応させることができる。また、MRI、超音波検査、陽電子放出断層撮影など、他のイメージングモダリティを用いて3次元画像データを提供することもできる。このようなスキャンは、プロテーゼの大きさを決定し、手術やその他の介入について計画するための手術のワークフローにおける術前計画では一般的なことである。
【0016】
いくつかの例では、術前画像データに取り込まれた1つ以上の解剖学的構造を、術前画像の座標系におけるそれぞれの3次元モデルに変換してもよい。一例として、モデルは、管状の解剖学的構造(例えば、患者の血管)を数学的に記述する非明示的モデルであり、例えば、管状構造の中心線と表面とを含む。非明示的モデルは、細長い解剖学的構造に対するロフテッドBスプライン(基底スプライン)関数に対応するなどの小さなパラメータセットを含むことができる。一例として、本明細書に援用する、発明の名称が「Automated Centerline Extraction Method and Generation of Corresponding Analytical Expression and Use Thereof」である米国特許公開第2011/0026793号の開示内容に従って非明示的モデルデータを計算するように、解剖学的モデル作成装置をプログラムすることができる。管状の解剖学的構造に対する非明示的モデルを作成する別の例がAnalytical centerline extraction and surface fitting using CT scans for aortic aneurysm repair, Goel, Vikash R, Master's Thesis, Cornell University (2005)に開示されており、これも本明細書に援用する。他のタイプの幾何学表現を利用して、非明示的モデルを提供することも可能である。例えば、ロフト処理した楕円や三角メッシュを表すパラメータを生成し、3次元座標系で患者の着目される解剖学的構造を表す解剖学的モデルデータを提供することができる。(術前医用イメージングモダリティによって取得された3次元先行画像データに基づいて)生成された3次元メッシュを、術前イメージングモダリティによって取得された3次元画像に加えて、またはこれに代えて、メモリ101に格納してもよい。メッシュは、静的な(例えば、固定された)メッシュであってもよいし、例えば、被験者の心拍や呼吸に合わせて経時的に変化するものであってもよい。例えば、メッシュモデルは、呼吸や(例えば、EKGで検出される)心拍数などの生体機能に合わせるなどして経時的に変化する3次元構成を持つように、(モデル空間内で)4次元モデルとして生成される。
【0017】
取得された術中画像データに基づいて、術中レジストレーションフェーズが実行される。術中データは、処置前に取得されたものであっても処置中に取得されたものであってもよく、術中コーンビームCT(CBCT)スキャンまたは他の術中放射線スキャン(例えば、先に援用した米国出願第62/829394号に開示されている非CBCTレジストレーション法など)で得られるものなど、2D画像データまたは3D画像データを含んでもよい。術中レジストレーション(例えば、CBCTレジストレーションまたは非CBCTレジストレーション)は、処置の直前または最中など、マーカーデバイス(例えば、トラッキングパッド)が患者に装着されている間に実行される。例えば、マーカーデバイスは、1つ以上のトラッキングセンサーに対する位置と向きが既知である1つ以上の放射線不透過性のオブジェクトをトラッキングパッドに含み、これを用いてレジストレーション空間でのトラッキングセンサーの位置を決定することができる。すなわち、マーカーデバイスは、トラッキングシステム空間を術中レジストレーション空間に空間的に整合させるための変換(例えば、トラッキングシステム/術中変換;本明細書では、第1の変換行列とも称する)を決定できるようにする。術中レジストレーション空間とは、処置がなされる際に患者が存在する座標系であり、処置の間にARデバイスとトラッキングシステムがそれぞれARデータとトラッキングデータを同時に取得するのに使用される座標系である。
【0018】
術中画像の座標系を術前CTスキャンと空間的に整合させるために、別の変換が決定される(例えば、術中/術前変換;本明細書では、第2の変換行列とも称する)。例えば、CBCTスキャンの骨を術前のCTスキャンの骨に合わせるために、手動でレジストレーションが行われる。あるいは、自動化または半自動化されたレジストレーション処理を行ってもよい。このように、術中/術前変換を行うことで、術中の画像空間と術前のCT座標空間とを空間的にマッピングすることができる。術中/術前変換を(例えば、行列の乗法によって)トラッキングシステム/術中変換と組み合わせ、トラッキングシステムの座標系から術前画像の座標系への空間的なレジストレーションを可能にするトラッキングシステム/術前変換114を提供してもよい。例えば、トラッキングシステム空間内の任意のセンサーの位置と向き(例えば、トラッキングシステムからのトラッキングセンサーデータ120)を、まずは(例えば、トラッキングシステム/術中変換を使用して)トラッキングシステム空間から術中空間にマッピングし、次に(術中/術前変換を使用して)術中空間から術前空間にマッピングすることが可能である。上述したように、トラッキングシステム/術中変換と術中/術前変換を組み合わせ、トラッキングシステム/術前変換114を提供することができる。
【0019】
本明細書で開示するように、マルチモーダルマーカーデバイスは、共通の固定構造に統合された、1つ以上の「見える」フィデューシャルマーカー(例えば、図2参照)と、1つ以上のトラッキングセンサー(例えば、図3Aおよび図3B参照)とを含む。マーカーデバイスの固定構造は、フィデューシャルマーカーとトラッキングセンサーとが3次元空間で既知の空間的関係と向き(例えば、固定の空間オフセット)になるようにするものである。この関係については、112で示したトラッキングセンサーデータとして、メモリに格納可能である。マルチモーダルマーカーのフィデューシャルマーカーは、ARデバイスに対して位置が固定されたそれぞれのカメラ(例えば、図4参照)によって取得される画像で見える1つ以上のマーカーパターン(例えば、図2参照)を含む。これらの画像は、可視光スペクトルでのものであってもよいし、102でカメラが取得した画像にとらえることができる可視光スペクトル以外の別のスペクトル(例えば、赤外線)でのものであってもよい。ARデバイスの座標に対する各カメラの位置と向きを、108で示されるカメラ位置データとして、メモリ101に格納可能である。一例として、カメラを、ARデバイスのディスプレイのフレームのそれぞれの定位置(例えば、頭部装着ディスプレイの前面に沿って互いに離れた位置)に取り付けられた一組の前向きカメラとして実装することができる。
【0020】
別の例として、マーカーデバイスは、トラッキングシステムの座標系における3次元位置を示すように構成された1つ以上のセンサーを含む。例えば、トラッキングシステムは、電磁場を発生させる電磁トラッキングシステムである。各センサーは、電磁場に基づいてセンサー信号を提供し、このセンサー信号が各センサーの位置と向きの情報に変換される。電磁場トラッキングシステムの一例が、カナダ国オンタリオ州のNorthern Digital, Inc.から市販されている。トラッキングシステムは、各センサーがセンサー位置を実質的にリアルタイムで決定する(例えば、センサーの位置と向きとを記述するベクトルを提供する)のに十分な出力サンプルレート(例えば、60サンプル/秒)で、トラッキングデータを提供することができる。このように、トラッキングシステムは、トラッキングデータの各フレームを、このトラッキングデータがトラッキングシステムで取得されるリアルタイムのトラッキングデータを同じように表すことができるような方法で、処理することができる。これは、本明細書で開示するようなイメージングシステムの座標系に対応付けることが可能なものである。いくつかの例では、各センサーをトラッキングシステムで検出し、センサーを5または6の自由度で追跡できるようにすることができる。他の例では、他のタイプのセンサーとトラッキングシステムを使用してもよい。
【0021】
この例示的な文脈では、102において、本方法は、ARデバイス(例えば、ARヘッドセット308)に取り付けられたカメラの各々から画像を取得することを含む。カメラは各々、重なり合った視野についてそれぞれの画像を取得するように構成されてもよい。
例えば、ARデバイスが2つのカメラを含む場合、第1および第2の画像を取得する。カメラのネイティブサンプルレートまたはその倍数に相当するイメージングサンプルレートで、時間の経過とともに画像を取得し、継続的に更新してもよい。この例の目的のために、102で取得された画像には、マルチモーダルマーカーの少なくとも1つのフィデューシャルマーカーが含まれ、そのマーカーは、患者の身体に隣接して配置されているか、または取り付けられていると推定される。
【0022】
104では、102で取得された各々の画像でフィデューシャルマーカーを識別するために、(例えば、マーカー識別機能444によって)画像処理を実行する。サンプル時間ごとの画像の総数はいくつでもよく、各カメラ1つである。一例として、「見える」フィデューシャルマーカーは、ArUcoマーカー(例えば、Open Source Computer Vision Library: http://opencv.orgを参照のこと)の形態で、マーカーデバイスの表面に設けられる。このようなフィデューシャルマーカーの例を、図2図3A図4に示す。このように、画像処理アルゴリズム(例えば、OpenCVライブラリのdetectMarkers()関数)をインプリメントし、104でそのようなフィデューシャルマーカーをそれぞれ検出して識別してもよい。異なるタイプのマーカーを使用する例では、他の画像処理技術を使用してマーカーの位置を特定してもよい。104でのマーカーの識別は、完全自動であってもよいし、マーカーを識別するユーザー入力に応答するユーザーインタラクティブなものであってもよい。識別されたマーカー(例えば、それぞれの画像におけるピクセル位置)を、後の処理のためにメモリ101に格納してもよい。
【0023】
106では、ARデバイスの座標系に対して、フィデューシャルマーカーのそれぞれの所定部分の3次元位置を(例えば、マーカー点生成器446によって)推定する。3次元位置は、それぞれの画像(104で決定)におけるそのような所定部分の位置に基づいて、また、ARカメラ位置データ108に基づいて決定される。なお、102でカメラから取得された画像に表現されるフィデューシャルマーカーは、長方形状(または他の識別可能な形状)でその辺同士が交わる箇所に角があるマーカー境界線を含むパターンであってもよい。また、カメラから見えるArUcoタイプのマーカーを含む組合せマーカーの例では、各マーカーの角のそれぞれについて、空間座標すなわち、各トラッキングセンサーを囲む一組の4つの点の座標を生成することができる。さらに、ArUcoタイプのフィデューシャルマーカーの表現を含む各画像でのそれぞれの角の位置を、本明細書で開示するようにして決定することができる(例えば、図4に関連する説明を参照のこと)。図4および対応する説明は、そのようなフィデューシャルマーカーのそれぞれの角の位置を、AR空間の3次元座標でどのように特定するかという一例を示すものである。
【0024】
110では、トラッキングシステムの座標系をAR座標系に合わせるために、(例えば、ゼロ変換計算器462によって)アフィン変換を計算する。110で計算された変換を、(例えば、ゼロ変換行列410に対応する)メモリ101に格納してもよい。このように、110で生成されたアフィン変換を直接適用し、トラッキングシステム空間のトラッキングデータをAR座標空間に対応付けるおよび/またはAR座標空間のARデータをトラッキングシステム空間に対応付けるようにしてもよい。110で決定されたアフィン変換は、106で決定されたマーカーの所定部分に対する推定位置と、トラッキングセンサーデータ112とに基づいて作成することが可能なものである。上述したように、トラッキングセンサーデータ112は、マーカーデバイスのトラッキングセンサーとマーカーの所定部分との間の固定された既知の3次元空間的関係を表すことができる。一例として、マーカーの所定部分とセンサーとの間の固定された関係を製造時に決定し、マーカーに印刷してもよい。別の例として、関係を測定し、110で変換を決定するようにプログラムされたコンピュータに(例えば、ユーザーインタフェースを介して)入力してもよい。
【0025】
116では、110で決定されたアフィン変換だけでなく1つ以上の他の変換114を1つ以上のモデル(例えば、3Dメッシュ構造)と(1つ以上のセンサーの)トラッキング位置データに適用し、そのようなモデルとセンサーをARディスプレイの座標系に配置する。高解像度の術前CTスキャンからモデルを得るときの例では、ARデバイスで使用される各モデル(例えば、中心線モデル、表面メッシュモデル)は、当然に術前の座標空間で表現される。このようなモデルを、ARディスプレイで現実世界のオブジェクトと重なるように適切な位置に配置するために、110で決定されたアフィン変換を1つ以上の他の変換114と組み合わせ、ARデバイスが現在使用されているAR座標系にマッピングする。他の変換114には、術中画像の座標系とトラッキングシステムの座標空間との間で対応付けを行うようにプログラムされた第1の変換(例えば、第1の変換行列412)を含んでもよい。これに加えてまたはこれに代えて、他の変換114には、術中画像の座標系と先行する3D画像の座標系(例えば、術前画像空間)との間で対応付けを行うようにプログラムされた第2の変換(例えば、第2の変換行列414)を含んでもよい。方法100が116で変換110と114の各々を適用する(またはその逆)特定の方法は、最終的な視覚空間と、そのような視覚空間に位置同期されるデータのドメインとに依存する。ドメインは、ドメインを記述するデータまたはメタデータの種類に基づくなどして自動的に認識されてもよいおよび/またはユーザー入力に応答してユーザーが指定してもよい。以下の例では、視覚空間がAR座標系であることを前提としている。
【0026】
118では、AR視野をARディスプレイに表示する。これは、方法100をモデルと他の入力データに適用することで決定された3D空間位置にある現実世界のオブジェクトと重なる(例えば、グラフィカルに重ね合わされる)位置にある、コンピュータが作成したモデルを含んでもよい。本方法は118から102に戻り、102で取得された画像の変化に基づいて110でアフィン変換を更新すべく繰り返される。このように、AR視野(例えば、ホログラム)がリアルタイムで継続的に更新されるため、患者の体内の解剖学的構造が実際には見えない場合であっても、ARディスプレイで生成されるホログラムが、そのような構造と空間的および時間的に整合する。本明細書で開示するように、例えば、方法100は、(現実世界では見えない)解剖学的内部構造を、患者の身体に対して移動している可能性があるARディスプレイの空間座標系で、患者の身体と整合させるように動作する。好都合なことに、方法100を実施することによって、110で計算された変換は、102で取得された画像の変化する情報に応じて変化するが、他の変換(変換114を含む)については、付随する計算をリアルタイムでより効率的に実行できるように変化させなくてもよい。
【0027】
一例として、118での出力の視覚化をAR空間ドメインでレンダリングするにあたり、複数の変換(例えば、inv(T0)*inv(T1)*inv(T2))を適用して骨と血管系のモデル(例えば、先行する3D画像空間から作られたもの)をARディスプレイにレンダリングすることができる。EM空間で追跡されるもの(カテーテル、ガイドワイヤーなど)には、単一の変換(例えば、inv(T0))が適用されることになろう。一例として、先行する3D画像空間で視覚化をレンダリングする場合、骨と血管系のモデル(術前のCT画像空間にある)には変換を適用する必要がないのに対し、トラッキングシステム空間で追跡されるもの(例えば、カテーテル、ガイドワイヤーなど、1つ以上のトラッキングセンサーを有するオブジェクト)には、適用される変換が2つある(例えば、T1*T2)ことになろう。例えば、本明細書で開示するように、ある空間ドメインから別の空間ドメインにデータをマッピングするために、行列の乗法による変換を適用してもよい。
【0028】
別の例として、ARデバイス(例えば、ARデバイス308)を、ARヘッドセット(例えば、Microsoft社のHololensまたはHololens2、あるいは他のスマートグラス)として実装しもよい。そのようなARヘッドセットでは、ARデバイスは、周囲の環境のマップを常に精緻なものとしている。その結果、AR視野で生成されるホログラムが元の位置から「ドリフト」する傾向がある。この「ドリフト」は、医療用途など、正確な位置合わせが必要な場合に問題となることがある。したがって、方法100は、ARヘッドセットの前向きのカメラから画像ストリームとして提供される102での取得画像に基づいて、110での変換を継続的に更新する。さらに、平行ではない2つのカメラを使用することで、計算効率の高い三角測量によって(CPU負荷を低減して)マーカーの角の位置を正確に推定し、常に更新することができる。これによって、再レジストレーションを必要とせずに「ドリフト」を補正することができる。
【0029】
図2は、フィデューシャルマーカー200の一例を示す。この例に示すように、このマーカーは黒と白の色(例えば、二値)を含み、周縁全体の各辺に沿って太くて黒い長方形(例えば、正方形)の境界線202を含む(例えば、ピクセル1つ以上の厚さなどの厚さ「t」を有する)。マーカー200には、内側に、ArUcoライブラリによるものなど、マーカーと関連付けられる向きおよび/または他の識別的な特徴を定義するのに使用できる白色の記号204および206が含まれる。
【0030】
図3Aおよび図3Bは、マルチモーダルマーカーデバイス250の一例を示す。マルチモーダルマーカーデバイス250は、(例えば、102での)第1の画像および第2の画像の取得時に、患者の近く(例えば、患者の隣または患者の上)に配置することができるものである。例えば、マルチモーダルマーカーデバイス250を、施術時に、目視で邪魔にならない面(例えば、病院のベッドの上)に配置したり、患者の身体に取り付けたりすることが可能である。図3Aは、フィデューシャルマーカー(例えば、図2のマーカー)254を白色の境界線256より内側に配置して、白い境界線とフィデューシャルマーカーの太くて黒い境界線258(例えば、点線と白い境界線256との間にある)との間にコントラストを持たせたマーカー250の一方の側面252を示している。記号260および262は、黒い境界線258から離れてフィデューシャルマーカー上にある。
【0031】
図3Bの例は、他の側面268を示す同じマーカー250からの図である。図3Bでは、1つ以上のトラッキングセンサー(例えば、電磁センサー)270が、フィデューシャルマーカー254の角264に対して既知の位置と向きで、マーカーデバイス250に取り付けられている。一例では、1つ以上のセンサー270は、それぞれ複数の自由度(DOF)を空間的に検知することができる。例えば、1つ以上のセンサー270を、6つのDOFを検知するように構成することができる。一例では、本明細書で開示するような電磁トラッキングシステムを使用して、センサー270の位置を特定することができる。トラッキングシステムを用いることで、電磁場に応答してセンサーからトラッキングシステムに提供されるものなどのセンサー信号に基づいて、各センサー270の位置と向きを決定することができるようになる。
【0032】
図4は、平行ではない複数の視野角からフィデューシャルマーカー302の2次元画像を取得するのに使用できるカメラシステム300の概略例を示す。例えば、カメラシステム300は、ARヘッドセット308のフロントパネルに組み込まれた一対の前向きのカメラ304および306を含む。例えば、スペクトルの可視部分でオブジェクトの画像を取得するために、カメラ304および306をデジタルグレースケールカメラとして実装してもよい。他の例では、カメラ304および306が可視スペクトルの外側の画像を取得してもよく、フィデューシャルマーカー302は、ユーザーの目に見えなくてもよい。
カメラ304と306がヘッドセットまたは他のポータブルデバイス308に取り付けられているため、それぞれのカメラによって取得された画像が、ユーザーの動きに応じて時間の経過とともに変化する可能性がある。例えば、ARヘッドセット308を装着したままユーザーの頭が動くと、視野角もそれに応じて動くため、それぞれの画像におけるフィデューシャルマーカーの位置が変化する。
【0033】
例として、レジストレーションは、カメラ304および306を各々理想的なピンホールカメラとしてモデリングすること(例えば、歪みがないと仮定するなど)によって行われる。このとき、以下のような透視変換を用いて3D点を画像平面に投影することによって、得られる画像の各ピクセルが形成される。
[数1]
ここで、X、Y、Zは、共通座標系における3D点の座標である。
uおよびvは、カメラ画像内の投影点の座標をピクセルで表したものである。
fxおよびfyは、ピクセル単位での焦点距離である。
cxおよびcyは、ピクセル単位での画像中心である。
r##およびt#は、共通座標系におけるカメラの位置と向きをそれぞれ定義する。
【0034】
ベクトルv1またはv2を作成するために、フィデューシャルマーカー302(例えば、ArUcoタイプのマーカー)の角がuおよびvとして画像内に配置される。式の残りの値については、すでにわかっている空間位置に基づいて埋めることができ、焦点距離(例えば、カメラとそれぞれの角の位置との間の距離)でXとYについて式の解が求められる。その上で、この新しい位置からカメラの位置(p1またはp2)を減算することで、ベクトルが計算される。例えば、点p1およびp2は、ヘッドセット308の位置に基づいて定義される。カメラの焦点距離は、デバイスのキャリブレーション時に測定される。
【0035】
次に、2つのベクトルv1とv2の交点(または最接近)を見つけることで、マーカー302の角の3D位置を計算することができる。共通の座標系におけるArUcoマーカーの位置と向きについては、それぞれの画像でフィデューシャルマーカーに対して識別された4つの角の位置すべてについて、このプロセスを繰り返すことによって計算される。
例として、2つのベクトルの交点(または最接近)を、以下の擬似コードで計算することができる。
[数2]
vector ClosestPoint(vector p1, vector v1, vector p2, vector v2)
{
// 方向ベクトルを正規化
v1 = normalize(v1);
v2 = normalize(v2);

// ベクトルが一致しない(平行でない)ことを確認
float projDir = dot_product(v1, v2);
if (absolute_value(projDir) > 0.9999f)
{
// ベクトルがほぼ一致(平行)
return p1;
}

// 最も近い点を計算
float proj1 = dot_product(p2 - p1, v1);
float proj2 = dot_product(p2 - p1, v2);
float dist1 = (proj1 - (projDir * proj2)) / (1 - (projDir * projDir));
float dist2 = (proj2 - (projDir * proj1)) / ((projDir * projDir) - 1);
vector pointOnLine1 = p1 + (dist1 * v1);
vector pointOnLine2 = p2 + (dist2 * v2);
return linear_interpolate(pointOnLine1, pointOnLine2, 0.5f);
}
【0036】
このように、マーカーの角の推定位置(例えば、106で決定される)とそれぞれの変換(例えば、110で決定される)とを使用して、ARの視野内で1つ以上の視覚化をレンダリングできるようにすることができる。
【0037】
一例として、本明細書で開示するように生成された変換を、レジストレーションエンジン(例えば、レジストレーションマネージャ494)によって実現し、1つ以上のトラッキングセンサーからのトラッキングデータをAR視覚座標系に対応付けて、対応付けられたトラッキングデータを提供することができる。ARデバイスまたはARデバイスがリンクされているコンピュータで実行される出力生成器(例えば、出力生成器512)は、対応付けられたトラッキングデータとモデルデータとを使用して、ディスプレイ(例えば、ディスプレイ510)にグラフィカルにレンダリングされる対応した出力視覚化を提供することができる。その際、モデルは、患者の身体の上に位置するAR視覚空間でホログラフィックオーバーレイとして視覚化される。
【0038】
図5は、アフィン変換を生成するためのシステム400の一例を示す。この例では、アフィン変換は、本明細書で開示するように、トラッキングデータ、モデルおよび画像データを対応付けるための変換行列410、412および414として示されている。システム400は、データおよび命令の文脈で説明されており、プロセッサは、データにアクセスし、命令を実行して、本明細書で開示する機能を実行することができる。このシステムを実装するために、すべての機能が必要になるとは限らないことを理解されたい。例えば、異なる変換行列をそれぞれ別に生成してもよい。これによって、イメージングモダリティが変更されたり、別の手段で置き換えられたりしたときに、システム全体を変更する必要がないという利点が得られる。
【0039】
図5の例では、システム400は、ゼロ変換行列(T0)410を生成するプログラムコードを実行するように構成されている。変換行列T0は、トラッキングシステム424のトラッキングシステム座標系からARデバイスのAR座標系および/またはAR座標系からトラッキング座標系へ変換するように構成されてもよい。本明細書で開示するように、ARデバイスは、2台以上のARカメラ440を含む。例として、ARデバイスは、ARヘッドセット、スマートフォン、タブレットコンピュータまたは他のモバイルデバイスとして実装されてもよい。カメラ440は、ARデバイスに組み込まれていてもよいし、そうでなければ結合されていてもよいし、ARデバイスに対して既知の位置にあってもよい。各カメラ440は、マルチモーダルマーカーデバイス(例えば、マーカーデバイス250)の少なくとも1つのARマーカー436であってもよいなど、それぞれの視野443に対してAR画像データを提供する。トラッキングシステム424は、1つ以上のマーカートラッキングセンサー434および/またはオブジェクトトラッキングセンサー438の位置と向きを表すトラッキングデータ426を提供するように構成されている。
【0040】
例えば、組合せマーカーシステム432(例えば、図3A図3Bまたは図4の1つ以上のマルチモーダルマーカーデバイスを含む)を、患者の身体430に取り付けるか、患者の身体の近くに配置することができる。図5の例では、組合せマーカーシステム432は、トラッキングシステム424の座標系で各々のマーカーデバイスの位置と向きを表すマーカートラッキングデータを提供する1つ以上のマーカートラッキングセンサー434を含むことができる。一例では、1つ以上のオブジェクトセンサー438を、患者の身体430の中で移動可能なオブジェクトに対して貼り付けて、トラッキングシステムの座標系における当該センサーの位置を識別することができる。例えば、各マーカートラッキングセンサー434は、トラッキングシステム424のフィールドジェネレータが発生させる電磁場に応答する信号(例えば、誘導電流)を提供する。このようなオブジェクトセンサー438を各々、患者の身体430の中で移動可能なオブジェクト(例えば、ガイドワイヤー、カテーテルなど)に貼り付けてもよい。このように、オブジェクトトラッキングセンサー438は、信号をトラッキングシステム424に提供することもでき、それに基づいて、トラッキングシステム424がトラッキングシステム座標系における当該センサー(およびそれが取り付けられているオブジェクト)の位置と向きを表す対応のトラッキングデータを計算することができる。上述したように、トラッキングデータ426は、マルチモーダルマーカーシステム432のマーカートラッキングセンサー434の位置と向きのみならず、それぞれのオブジェクトトラッキングセンサー438の位置と向きも表す。
【0041】
例として、トラッキングシステム424は、428で示される非電離場を提供する送信機(例えば、電磁場発生器)を含むことができる。この電磁場は、対応するセンサー信号をトラッキングシステムに提供するために、各センサー434および438によって検出される。例示的なトラッキングシステム424のひとつに、カナダ国オンタリオ州のNorthern Digital, Inc.から市販されているAURORA空間測定システムがある。トラッキングシステム424は、各センサーがセンサー位置を実質的にリアルタイムで決定できるようにする(例えば、センサーの位置と向きを記述するベクトルを提供する)のに十分な出力サンプルレート(例えば、60サンプル/秒)で、トラッキングデータ426を提供することができる。本明細書で開示するように、生成された変換410、412および/または414のうちの1つ以上を適用して所与の空間ドメインでグラフィカルな表現を作り出すことができるようにすることで、別の座標系に対応付けが可能なトラッキングシステムによって取得されるリアルタイムのトラッキングデータを、トラッキングデータによって同様に表すことができるように、トラッキングデータの各フレームをシステム424のトラッキング処理サブシステムによって処理することができる。トラッキングシステム424は、センサーが取り付けられているオブジェクトのみならず組合せマーカーシステムについても視覚化とリアルタイムの位置決めの計算を可能にするために、トラッキングデータ426を出力サンプルレートで提供することができる。
【0042】
ゼロセンサー変換460は、トラッキングデータ426を、本明細書で開示するようなそれぞれのマーカーデバイスに実装されたARマーカー436の位置に変換するように構成されている。変換460は、各々の位置を、トラッキングシステムの座標空間における3D空間座標として提供し、マーカーデバイスがトラッキング空間で移動しない場合には固定のままであってもよく、マーカーデバイスがトラッキング空間で移動する場合には時間の経過とともに変化してもよい。例えば、トラッキング座標系において、所定のマーカーデバイスのARマーカーは各々、マーカーシステム432の所定のマーカーデバイスの一部であるマーカートラッキングセンサー434の位置から、決まった既知のオフセット(例えば、3Dベクトル)のところにある。上述したように、マーカーシステムは、ArUcoタイプ(例えば、デバイス250)などの複数のマルチモーダルマーカーデバイス、あるいは本明細書で開示するような他のマーカー構成を含んでもよい。
【0043】
一例として、センサー変換460は、トラッキングデータ426と、所定のマーカー位置に対する各トラッキングセンサーの既知のオフセットとに基づいて、トラッキングシステム空間内の点(例えば、マーカー位置の3D座標)を計算するように構成されている。
ArUcoタイプのマルチモーダルマーカーデバイスの例では、本明細書で開示するような、マーカーの角にある一組の4つの点(例えば、emPoint_1, emPoint_2, emPoint_3, emPoint_4)をマーカー位置にすることができる。例えば、所定のマーカーデバイスに対して、以下のようにして、トラッキングセンサーの3D座標を含むセンサー変換(TS)とそれぞれのオフセットとを乗算することによって、トラッキングデータ426を提供するセンサーを有するArUcoタイプのマーカーデバイスの一組のマーカー位置について、トラッキングシステム空間内の点を計算すればよい。
[数3]
emPoint_1 = mult(TS, offset_1),
emPoint_2 = mult(TS, offset_2),
emPoint_3 = mult(TS, offset_3),
emPoint_4 = mult(TS, offset_4)
ARマーカー436についてセンサー変換460によって決定された点を、それぞれのマーカーデバイス(複数のマーカーデバイスがある場合)についての一組の点に配置してもよいし、すべての点を含む単一の組として配置してもよい。
【0044】
上述したように、各ARカメラ440は、AR視野443についてのARカメラデータ442を提供する。例えば、AR視野443には、1つ以上のマーカートラッキングセンサー434も含むマルチモーダルマーカーデバイスの露出面にあるような、1つ以上のARマーカー436が含まれていてもよい。このようにして、センサー変換460は、ARカメラデータ442によって表される画像で見える同一のARマーカー上の点について、トラッキング座標系における3D空間座標を提供する。
【0045】
別の例として、システム400は、AR画像データ442で提供される各画像フレームにおける各マーカー(例えば、ArUcoマーカーまたは他のタイプのマーカー)の位置を特定するように構成されたマーカー識別機能444(例えば、104での識別に対応するような実行可能な命令)を含む。ArUcoタイプのマーカーを含む組合せマーカーの例では、機能444は、ArUco検出機能を呼び出して、それぞれのマーカーの位置を特定することができる。ArUcoタイプのマーカー以外のマーカーを含む組合せマーカーの例では、AR画像442の画像ピクセルに適用される画像閾値のみならず他の画像処理技術(例えば、特徴抽出)も用いて、当該マーカーの周辺または他の特徴の位置を特定すればよい。マーカー識別機能444は、完全自動であってもよい。識別されたマーカー(例えば、それぞれの画像内のピクセル位置)を、後の処理のためにメモリに格納してもよい。
【0046】
マーカー点生成器446は、画像データ442によって提供される(例えば、2つ以上の)画像で識別される各マーカーの部分に対する空間座標を生成するようにプログラムされている。ArUcoタイプのマーカーを含むマーカーデバイスの例では、各マーカーの角についての空間座標すなわち、一組の4つの(例えば、トラッキングセンサーに対して既知の相対的な位置を囲むか、そうでなければ有する)点の座標を生成することができる。一例として、例えばマーカー点生成器は、本明細書で開示するような最近接点関数(例えば、ClosestPoint()関数)を実行し、マーカーデバイスのそれぞれのトラッキングセンサーの周囲にある一組の点の位置を特定するようにプログラムされている。所与のARマーカー436についての各組の点を、それぞれのマーカートラッキングセンサー434とリンクさせて関連付け、変換行列410の生成を容易にすることができる。
【0047】
ゼロ変換計算器462は、AR空間ドメインでマーカー点生成器446によって提供された点(空間座標)とトラッキング空間ドメインでゼロセンサー変換機能460によって提供された点(空間座標)とに基づいて、ゼロ変換行列410を計算するようにプログラムされている。このように、これらの点は、異なる座標系でARマーカーの同一の部分を表す。例えば、変換計算器462は、空間座標系の各々で測定された複数組の点を位置合わせする(例えば、位置同期させる)ようにプログラムされている。それぞれのドメイン(例えば、トラッキングシステム座標系およびAR座標系)の点を位置同期させるために変換計算器462によって実現されるそのような位置同期アルゴリズムの例には、誤差最小化関数または基底変換関数が含まれていてもよい。
【0048】
一例として、変換計算器462は、誤差最小化関数をインプリメントするようにプログラムされている。順序付けられた一組の点が与えられると、変換計算器478は、投影されるAR位置と実測位置との間の距離を最小化する未知の変換T0を決定することになる。例えば、T1について、変換計算器462は、以下のように、点間の距離を最小化する変換を見つけるようにプログラムされている。
[数4]
sum(n = 1..i, distance(mult(T1, arPoint_n), emPoint_n)^2)
ここで、nは、i個の点のうち、所与の1つを示す(iは、所与のマルチモーダルマーカーの点の数である)。
arPoint_nは、点nのAR画像空間における空間座標である。
emPoint_nは、点nのトラッキング空間における空間座標である。
一例として、単一値分解または任意の数の誤差最小化アルゴリズムによって、誤差最小化の解を得ることができる。
【0049】
別の例として、変換計算器462は、基底変換関数をインプリメントしてゼロ変換行列410を導くようにプログラムされている。ARマーカーがArUcoマーカーである例では、ARマーカーの角は、一組の基底ベクトル(座標空間を定義するx,y,z単位のベクトル)を生成できるように配置されている。例えば、変換計算器462は、誤差を最小化するのではなく、両方の座標系で基底ベクトルを求め、これらを共通の点に適用するようにプログラムされている。これは、上述した誤差最小化手法よりも計算効率がよいが、点を特定の配置にしなければならない。
【0050】
例えば、基底ベクトルを明確に定めるのに必要な配置は、90度の角度をなす3つの点であり、どの点がどれであるかを識別できる十分な追加情報(例えば、3つの点によって作られる三角形の辺の長さが異なるなど)が必要である。図2図3A図4に示すArUcoタイプのマーカーには、このような基底変換関数を利用できるだけの点の配置がある。
【0051】
各座標系において、変換計算器462は、3つの点から基底ベクトルを構築する。例えば、point_1、point_2、point_3(例えば、直角三角形の頂点)が与えられると、point_2からpoint_1への1つのセグメントと、point_2からpoint_3への別のセグメントの2つのセグメントが提供される。これらのセグメントは、直角三角形の辺である。これらの点と線分から、以下の基底ベクトルが得られる。
[数5]
basis_z = normalize(point_1 - point_2)
basis_x = normalize(point_3 - point_2)
basis_y = cross(basis_x, basis_z)
【0052】
基底ベクトルから、変換計算器162は、point_2の位置と向きを定義する行列(例えば、4×4行列)を以下のように生成するようにプログラムされている。
[数6]
[ basis_x.x, basis_y.x, basis_z.x, point_2.x,
basis_x.y, basis_y.y, basis_z.y, point_2.y,
basis_x.z, basis_y.z, basis_z.z, point_2.z,
0, 0, 0, 1]
【0053】
各座標系でその行列が定義された状態で、変換計算器462は、2つの座標系の間の変換行列410を計算することができる。例えば、変換行列T0について、
ar_Matrixは、AR座標系の基底ベクトルから定義される行列であり、
em_Matrixは、トラッキング座標系の基底ベクトルから定義される行列である。
以上より、変換計算器462は、基底ベクトルのトラッキング行列(em_Matrix)と基底ベクトルのAR行列の逆行列(inv(ar_Matrix))とを乗算することで、例えば以下のように変換行列(T0)410を決定することができる。
[数7]
T0 = mult(em_Matrix, inv(im_Matrix))
変換行列410をメモリに格納し、トラッキングシステム空間からARディスプレイ空間への変換に使用してもよい。例えば、トラッキングデータの位置と向きの情報に変換T0を適用することによって、トラッキングデータ426によって表される、患者の体内にあるオブジェクトセンサー438の位置を、AR空間に対応付けることができる。上述したように、変換T0については、ARマーカーに対するARカメラの視野の動きを補償するようにおよび/またはマルチモーダルマーカーが(例えば、患者の身体またはARカメラに対して)移動した場合に、リアルタイムで継続的に更新することができる。いくつかの例では、システム400は、追加の変換行列412および/または414を生成し、ARディスプレイの座標系のみならず他の座標系でも追加のデータの位置同期と視覚化を可能にするように構成されてもよい。他の例では、他の変換行列412および/または414を事前に計算してもよいし、生成しなくてもよい。
【0054】
図5の例では、システムは、第1の変換行列(T1)412を生成するように構成されている。変換行列T1は、トラッキングシステム424のトラッキングシステム座標系から医用イメージングモダリティ456の座標系(例えば、フルオロスコピーやX線などの2Dイメージングシステム)へおよび/または医用イメージングモダリティの座標系からトラッキング座標系へと変換するように構成されてもよい。一例では、マーカーシステム432は、マーカートラッキングセンサー434を含む1つ以上のマーカーデバイスを含み、これを、トラッキングシステム424が当該トラッキングセンサーのトラッキングデータ426を計算し、トラッキングシステム424の座標系における患者の身体430の動きに対応することができるように患者の身体430に取り付けることができる。
【0055】
いくつかの例では、例えば変換行列410および/または変換行列412を生成する目的で、オブジェクトトラッキングセンサー438および対応するトラッキングデータ426を無視(または省略)してもよい。他の例では、オブジェクトトラッキングセンサー438を、患者の身体430に対して既知の位置(例えば、患者の体内または体外の既知の解剖学的ランドマーク)に配置し、(例えば、トラッキングデータ426によって提供される)トラッキングシステム空間ドメインと、(例えば、術中画像データ472の)1つ以上のイメージングモダリティの空間ドメインの両方で追加のデータポイントを提供してもよい。ただし、センサーが配置されている場所が、そのようなデータを生成するモダリティによって提供される生成された画像内で見える場合に限る。一例では、術中医用イメージングモダリティ(例えば、フルオロスコピーまたは他のX線)が、変換行列(T1)412の生成を容易にするのに使用できる画像データ472(例えば、オブジェクトトラッキングセンサー438の既知の位置を含む)を提供する。
【0056】
第1のセンサー変換470は、トラッキングデータ426を、本明細書で開示するようなそれぞれのマーカーデバイスに実装された放射線不透過性のオブジェクトの位置に変換するように構成されている。各々の位置は、トラッキングシステムの座標空間における3D空間座標であり、マーカーデバイスがトラッキング空間で移動しない場合には一定のままであってもよく、マーカーデバイスがトラッキング空間で移動する場合には時間の経過ととともに変化してもよい。例えば、トラッキング座標系において、所定のマーカーデバイスの放射線不透過性マーカーは各々、マーカーシステム432の所定のマーカーデバイスの一部であるトラッキングセンサー434の位置から、決まった既知のオフセット(例えば、3Dベクトル)のところにある。上述したように、マーカーシステムは、ArUcoタイプ(例えば、デバイス250)または本明細書で開示するような他のマーカー構成(例えば、ARデバイス308)などの複数のマルチモーダルマーカーデバイスを含んでもよい。このように、マルチモーダルマーカーデバイスは、画像データ472で見える放射線不透過性の要素と、AR画像データ442で見えるAR要素と、トラッキングシステムで検出可能なトラッキングセンサーとを含むことができる。放射線不透過性の要素は、放射線不透過性のArUcoタイプのマーカーの形態であってもよいおよび/または図3Bに示すような放射線不透過性の球体272としてもよい。
【0057】
このため、センサー変換470は、トラッキングデータ426と、所定のマーカー位置に対する各トラッキングセンサーの既知のオフセットとに基づいて、トラッキングシステム空間内の点(例えば、マーカー位置の3D座標)を計算するように構成されている。ArUcoタイプのマルチモーダルマーカーデバイスの場合、センサー変換460に関して本明細書で開示するような、マーカーの角にある一組の4つの点(例えば、emPoint_1, emPoint_2, emPoint_3, emPoint_4)をマーカー位置にすることができる。
【0058】
球状の放射線不透過性マーカーが配置されたマーカーデバイスの例(例えば、図3Bのマーカーデバイス250の場合)では、既知のオフセットの3つの球状マーカーが各トラッキングセンサー270の周りに分散している。したがって、センサー変換470によって、マーカーシステム432の各マーカーデバイスに対して3つの点が生成される。例えば、変換470は、以下のように、それぞれの変換をトラッキングセンサーの位置(例えば、3D点)とそれぞれの放射線不透過性オブジェクトとの間の既知のオフセット(例えば、3Dオフセットベクトル)と乗算することに基づいて、各々の球状マーカーの中心に位置する点(例えば、emPoint_1, emPoint_2, emPoint_3)にマーカー位置を決定することができる。
[数8]
emPoint_1 = mult(Ts, offset_1),
emPoint_2 = mult(Ts, offset_2),
emPoint_3 = mult(Ts, offset_3)
他の例では、放射線不透過性マーカーに関連する固定オフセットを有する他の確定的な位置を用いてもよい。いくつかの例では、点を、各マーカーデバイスについての一組の点に配置してもよいし、すべての点を含む単一の組として配置してもよい。
【0059】
画像データ472を、イメージングモダリティの視野475内のオブジェクトを表す2Dまたは3Dデータとして生成することもできる。例えば、イメージングモダリティは、コーンビームCT、X線スキャナまたは他の医療イメージングモダリティを含んでもよい。一例では、画像データ472は、患者の身体430に対して異なる視野角で取得される少数(例えば、少なくとも2つ、3つまたは4つ)の2D投影画像の2D画像データである。いくつかの例では、患者の身体の領域は、外科手術の一部など、オブジェクトセンサー438が移動される着目領域であってもよい。
【0060】
マーカー識別機能474については、画像データ472における各々の放射線不透過性マーカー(例えば、ArUcoマーカーおよび/または他のオブジェクトマーカー)の位置を特定するように構成することができる。放射線不透過性マーカーは、イメージングモダリティ456によって放出される電離放射線を通さないため、画像では見えるようになる。ArUcoタイプのマーカーを含む組合せマーカーの例では、マーカー識別機能474は、ArUco検出機能を呼び出して、それぞれのマーカーの位置を特定することができる。ArUcoタイプのマーカー以外の放射線不透過性のオブジェクトを含む組合せマーカーの例では、画像ピクセルの値に適用される画像閾値のみならず他の画像処理技術も用いて、当該各マーカーの周辺の位置を特定すればよい。マーカー識別機能474は、完全自動であってもよいおよび/またはマーカーを識別するユーザー入力に応答するユーザーインタラクティブなものであってもよい。識別されたマーカー(例えば、それぞれの画像におけるピクセル位置)を、後の処理のためにメモリに格納してもよい。
【0061】
マーカー点生成器476は、マーカー識別機能474が画像データ472で識別した各マーカーに対する空間座標を生成するようにプログラムされている。放射線不透過性のArUcoタイプのマーカーを含む組合せマーカーの例では、各マーカーの角のそれぞれについての空間座標すなわち、各トラッキングセンサーを囲む一組の4つの点の座標を生成することができる。球状の放射線不透過性マーカーの場合、各マーカーの空間座標は、マーカーシステム432に対する視野475によって提供される視野角についての各2D画像における円形投影の中心(例えば、マーカー識別機能474によって識別される周縁)の2D座標として提供される。所与のマーカーデバイスに対して3つの球状マーカーが各々のトラッキングセンサーを囲む例では、マーカー点生成器476は、所与のマーカーデバイスに対する一組の3つの点の座標を提供するようにプログラムされている。放射線不透過性マーカーのタイプと構成にかかわらず、マーカー点生成器476は、例えば、本明細書で開示するような最近接点関数を実行し、マーカーデバイスに対する各々のトラッキングセンサーの周囲にある一組の点の位置を特定するようにプログラムされている。このようにして、各組の点を、それぞれ一緒にトラッキングセンサーの1つとリンクさせて関連付け、第1の変換行列412の生成を容易にすることができる。
【0062】
第1の変換計算器478は、マーカー点生成器476によって提供された点とセンサー変換機能470によって提供された点とに基づいて、第1の変換行列412を計算するようにプログラムされている。例えば、変換計算器478を適用し、空間座標系で測定された一組の点を整合させる。それぞれのドメイン(例えば、トラッキングシステム座標系および医用イメージング座標系)の点を位置同期させるためのそのような位置同期アルゴリズムの例には、本明細書で開示するような、誤差最小化関数または基底変換関数を含んでもよい。
【0063】
一例として、変換計算器478は、誤差最小化関数をインプリメントするようにプログラムされている。順序付けられた一組の点が与えられると、変換計算器478は、投影される位置と実測位置との間の距離を最小化する未知の変換T1を決定することになる。例えば、T1について、例えば以下のように、点間の距離を最小化する変換を求めたい。
[数9]
sum(n = 1..i, distance(mult(T1, imPoint_n), emPoint_n)^2)
ここで、nは、i個の点のうち、所与の1つを示す(iは、所与のマルチモーダルマーカーの点の数である)。
imPoint_nは、点nの画像空間における空間座標である。
emPoint_nは、点nのトラッキング空間における空間座標である。
一例として、単一値分解または任意の数の誤差最小化アルゴリズムによって、誤差最小化の解を得ることができる。
【0064】
別の例として、変換計算器478は、変換計算器462に関して本明細書で開示するような基底変換関数をインプリメントするようにプログラムされている。上述したように、該当する場合、変換計算器478は、基底変換関数をインプリメントするようにプログラムされており、これは、上述した誤差最小化手法よりも計算面で効率的である。図3Aおよび図3BのArUcoタイプのマーカーは、いずれもそのような基底変換関数を使用できるようにするのに十分な点の配置を有する。注意しなければならないのは、図3Bの放射線不透過性マーカーデバイスでは、各マーカーデバイスの3点の各組が別々に扱われることである。各々の座標系で定義されたその行列を用いて、変換計算器478は、2つの座標系間の変換412を計算することができる。例えば、変換行列T1の場合、次のようになる。
im_Matrixは、医用イメージング(例えば、術中)座標系の基底ベクトルから定義される行列である。
em_Matrixは、トラッキング座標系の基底ベクトルから定義される行列である。
以上より、変換計算器478は、基底ベクトルトラッキング行列(em_Matrix)と、基底ベクトルイメージング行列の逆行列(inv(im_Matrix))とを乗算することによって、例えば以下のように変換行列(T1)412を決定することができる。
[数10]
T1 = mult(em_Matrix, inv(im_Matrix))
この変換行列をメモリに格納し、トラッキングシステム空間から医用イメージング空間への変換に使用してもよい。例えば、トラッキングデータの位置と向きの情報に変換T1を適用することによって、トラッキングデータ426によって表される、患者の体内にあるオブジェクトセンサー438の位置を、医用イメージング空間に対応付けることができる。
【0065】
また、上述したように、システム400は、術中画像データ472用の医用イメージング座標系と先行する3D画像データ480の座標系との間での変換に用いられる第2の変換(T2)414を生成するように構成されている。例えば、先行する3D画像データ480を、(例えば、DICOM画像セットとして)メモリに格納することができ、これには、医用イメージングモダリティ456がその画像データ472を生成するより前の時間(例えば、102および104で取得された画像に対応するような術中)に実行される、患者の身体430の術前スキャン(例えば、CTスキャン)からの3D画像を含んでいてもよい。
【0066】
術中画像データが少数の2D画像投影として提供されるようないくつかの例では、システムは、投影計算器482を含む。投影計算器482は、2D画像データ472で提供される画像(例えば、2つの画像)各々について、3D画像データ480からそれぞれの投影を生成するようにプログラムされている。投影計算器482は、3D画像空間からの点を2次元平面にマッピングする機能を実現している。例えば、投影計算器は、2D画像データ472の画像の視野角に合わせた順投影を作成する。3D投影の各々に対する投影角度のレジストレーションは、手動で整合されてもよいおよび/または自動でなされてもよい。一例では、2D画像の各々の角度を記述する画像データ472の画像メタデータ(2D画像データ472から投影計算器482への矢印に含まれるものとして示される)に基づくなどして、自動で整合がなされてもよい。例えば、メタデータは、Cアームの角度から既知である場合があるおよび/またはイメージングモダリティ456が画像データ472を取得する際にユーザー入力に応じて提供される場合があるものなど、AP、LAO、RAOなどの投影角度を指定するデータを含む。
【0067】
いくつかの例では、本明細書で開示するように、3D画像データは、血管の表面に対応する3Dメッシュの形などで、1つ以上の解剖学的構造のモデルを含んでもよい。本明細書で開示するように、術前画像480から生成されたメッシュに、3D投影行列(例えば、透視投影行列または平行投影行列)を適用してもよい。各々の術中画像についてCアームの角度がわかっている場合、術中画像ごとにその角度に一致させてメッシュの1つを3D投影する。Cアームの角度がわからない場合、異なる角度で複数の3D投影を行うことができ、それぞれの3D投影とそれぞれの2次元画像との間の「ベストフィット」マッチを手動または自動で選択することができる。
【0068】
点生成器484は、(画像データ472によって提供される)2D画像および(投影計算器482によって提供される)3D画像の対応する投影の各々において空間点を生成するようにプログラムされている。球体またはマーカーの角を扱うのではなく、2D画像データ472と3D画像データ480の両方で見える特徴として、点が選択される。他の例では、術中画像データ472は、コーンビームCTまたは他の術中3Dイメージングモダリティによって取得されるものなどの3Dデータとして取得されてもよい。そのような例では、点生成器484が画像データセット472および480の両方から提供される3D空間内の点のそれぞれの組を識別して生成できるようにするために、投影計算器を省略してもよい。
【0069】
別の例として、特徴は、背骨上の骨のランドマーク、両方のタイプの画像で見える小さな石灰化、あるいは、両方の画像に造影剤を使用する例では血管上の点などの構造を含む。他の例では、他の特徴またはフィデューシャルポイントを使用してもよい。いくつかの例では、自動化された方法(例えば、特徴抽出)で、一組の共通の特徴の位置を特定してもよい。これに加えてまたはこれに代えて、1つ以上のそのような特徴を、点生成器に提供される各々の画像および投影と相互作用するグラフィカルユーザーインタフェースなどのユーザーインタフェース486を介して提供されるユーザー入力に応答して選択してもよい。例えば、ユーザーは、異なる断像から視認可能な共通の構造を見て、各断像でそれを(例えば、マウス、キーボード、ジェスチャーまたは他の入力によって)選択/タグ付けすることができる。よって、点生成器484は、所定の特徴および/またはユーザーが選択した特徴ごとに点を生成する。このように、点生成器は、異なる一組のランドマークを使用するだけで、マーカー点生成器476と同様に動作する。画像データ480は3Dであるので、いくつかの例では、ユーザーは、画像データ480の3D画像の一組の直交する断像(例えば、横断像、冠状断像、矢状断像)を使用して、選択された点を(ユーザーインタフェース486を介して)識別し、画像データ480の3D座標系におけるx,y,zの位置を直接測定することができる。術中画像データが2D空間にある例では、これらの位置を各々2次元座標に変換し、そのようなものとして、投影計算器482によって提供される順投影で提供してもよい。点生成器484は、本明細書で開示する最近接点関数など、2D画像に適用されるベクトル交差関数を使用するなどして、2D画像データにおける同一の点の位置を特定するようにプログラムされている。術中画像データが3D空間にある他の例では、点生成器484は、自動的にまたはユーザーインタフェース486を介したユーザー入力の補助などにより、両方の画像群の3D座標で点の位置を特定することができる。
【0070】
それぞれの画像で得られた点は、変換行列414を生成するために第2の変換計算器488に提供される。変換計算器488は、点生成器484によって提供された共通の点に基づいて、画像データ472の画像を3D画像データ480と整合させるための変換行列を計算するようにプログラムされている。例えば、変換計算器488は、第1の変換計算器478に関して説明した単一値分解など、共通点の一組の点に関する誤差最小化関数をインプリメントすることによって、変換行列(T2)414を構築する。他の例では、他の誤差最小化関数を使用してもよい。
【0071】
いくつかの例では、システム400は、補正ユーザーインタフェース492を介して提供される命令に基づいて1つ以上の変換行列を手動補正するようにプログラムされた、変換補正機能490を含む。手動補正は、T1またはT2変換の推定がすでに行われた場合であっても適用することができる。例えば、レジストレーションを実行するために機能する十分に定義された(例えば、背骨または他の解剖学的構造上の)一組の測定点が画像データ480および/または472に含まれていない場合、システムは、変換T2の初期推定値あるいは、いくつかの例では、任意のT2変換(例えば、「アイデンティティ」行列)を定義して、ユーザーが補正機能490によって補正を行い、最終的なT2変換414を生成できるようにしてもよい。
【0072】
別の例として、レジストレーションマネージャ494は、それぞれの変換行列410、412、および414の適用を選択および制御するようにプログラムされている。例えば、1つ以上の出力視覚空間のための空間ドメインを、自動的にまたはユーザー入力に応答して設定することができる。各出力視覚空間について、レジストレーションマネージャは、画像とモデルが各々の出力空間で適切にレンダリングされるようにするために適用する1つ以上の一組の変換を定義することができる。例えば、出力空間は、ARディスプレイ、モバイルデバイスやコンピュータのディスプレイを含んでもよい。各ディスプレイには、トラッキングシステム、術中画像データ、ARディスプレイまたは先行する3D画像のいずれかの空間ドメインを含む、異なる視覚化をそれぞれ表示できる複数のウィンドウ(例えば、スクリーンパーティション)が含まれていてもよい。したがって、レジストレーションマネージャ494は、一組の変換行列を定義し、それらを適用して、所望の空間ドメインで正しい出力画像をレンダリングすることができる。
【0073】
別の例として、図6を参照すると、レジストレーションマネージャ494を使用して、変換410、412および414のうちの1つ以上の適用を制御してもよく、そのような変換のうちの1つ以上に対するユーザー補正を制御してもよい。レジストレーションマネージャ494は、図示のように、図5のシステム400の一部として実装されてもよいし、別個の機能として実装されてもよい。したがって、一貫性を保つために、図5で導入した機能とデータについては、同一の参照符号を使用して図6に示してある。そのような機能とデータに関する詳細な情報については、図5および対応する説明に戻って参照することができる。
【0074】
レジストレーションマネージャ494は、変換補正機能490と、第1の変換行列412および第2の変換行列414とを含む。この例では、変換行列412および414の一方または両方が補正を必要としている可能性があるとする。補正の必要性は、変換を適用して2つ以上のドメインを対応付け、得られる視覚化をディスプレイ510上で提供することによって、ユーザーに明らかにされてもよい。例えば、出力生成器512は、ARデバイス440の座標系、トラッキングシステム424の座標系、術中画像データ472の座標系または先行する3D画像データ480の座標系であってもよいなど、選択されたドメインで視覚化をレンダリングするように構成されている。
【0075】
一例では、マネージャ494は、ユーザーインタフェース520を介して受信したユーザー入力命令に基づいて、出力の視覚化がレンダリングされているドメインを選択するようにプログラムされたドメインセレクタ514を含む。さらに、選択されたドメインに基づいて、レジストレーションマネージャは、それに応じて、変換T0、T1またはT2のうちの1つ以上を適用する。一例として、以下の表は、出力生成器512によって出力の視覚化がレンダリングされている選択されたドメインごとに、画像データ472、480またはトラッキングデータ426に、どの1つ以上の変換が適用されるかについての説明ならびに、それぞれの座標系で生成された可能性のあるモデルを提供する。さらに、表に記載したような行列の乗法で1つ以上の変換またはそのような変換の逆数を適用することなどにより、レジストレーションマネージャ494を使用してそれぞれの変換の適用を制御し、選択されたドメインで視覚化を提供することができる。
【表1】
【0076】
別の例として、変換412または414のいずれかに対する手動補正は、それぞれの変換行列T0、T1またはT2に、以下のような補正行列を乗じることによって提供することができる。
[数11]
correctedT0 = mult(correctionMatrix, T0),
correctedT1 = mult(correctionMatrix, T1)または
correctedT2 = mult(correctionMatrix, T2)
一例として、サポートされている補正の種類には、以下のように行列の形で適用されるような、平行移動、回転および拡大縮小がある。
[数12]
translationMatrix =
[ 1, 0, 0, translation.x,
0, 1, 0, translation.y,
0, 0, 1, translation.z,
0, 0, 0, 1]

scalingMatrix =
[ scale, 0, 0, 0,
0, scale, 0, 0,
0, 0, scale, 0,
0, 0, 0, 1]

rotationMatrix =(回転軸に依存)
【0077】
別の例として、ユーザーは、ユーザーインタフェース516を介して、マウスダウン/ドラッグ/マウスアップアクションまたは他のアクションを使用して、補正を開始する。
補正行列で使用される値は、ディスプレイ510にビューポートを表示するのに使用される投影行列に基づいて設定されてもよい。例えば、APビューから開始される平行移動では、XおよびYのマウスの動きがtranslation.xおよびtranslation.zの値の設定に使用されることになる(translation.yは0となる)。このような変換により、ユーザーは、単一の画像のビューを変更したり、複数の画像の配置を変更したりすることができる。
【0078】
別の例として、例えば変換T2の補正を実施する場合、ドメインレジストレーションマネージャ494は、変換T2を画像データ472に適用し、出力生成器512は、変換T2に基づいて3D画像で対応付けられた2D画像を視覚化する。ディスプレイ510に表示されるように、ランドマークが適切に配置されている場合、補正が必要ない場合もある。しかしながら、2D画像内のランドマークの位置が3D画像内のそれぞれの位置と整合しない場合、T2に補正が必要な場合がある。したがって、ユーザーは、ユーザーインタフェース516を介して、3D画像(またはその順投影)に対する2D画像のアライメントを調整することができる。上述したように、この調整には、入力装置(例えば、マウスまたはキーボード)を用いてユーザーインタフェースを介して入力された命令に応答してなされる、2次元での平行移動、回転および/または拡大縮小を含んでもよい。出力生成器512は、(例えば、リアルタイムで)各々の調整に応答し、ディスプレイに表示される視覚化を更新して、画像の対応付けを示すようにしてもよい。所望のアライメントが視覚化されると、ユーザーは、ユーザーインタフェース516を用いて変換T2に補正を適用してこれを保存し、更新されたT2を後で適用するためにメモリに格納することができる。同様のタイプの調整を、第1の変換行列412に対して行ってもよい。
【0079】
図7および図8は、ARヘッドセットの各々の前向きカメラから取得された画像600および602の例を示す。この例では、マルチモーダルマーカー(例えば、対応するマーカー250、302)604が、シミュレートされた臓器610を含む患者の身体の物理的モデル608に隣接してテーブル606上に配置されている。実際の人間では、体内の臓器は見えないであろうが、本明細書で開示するシステムおよび方法に基づいて生成される変換の精度を示すのに役立つように臓器が示されていることが、理解される。図8では、画像602は、わずかに異なる視野角からのものであり、ARマーカー604と、ユーザー(例えば、ARデバイスを使用する個人)の手612とを含む。
【0080】
画像600および602に示すように、マーカー604は、ARディスプレイの座標系で(例えば、機能444および446によって)識別される部分(例えば、角)を含む。
本明細書で開示するように、時変変換行列(例えば、行列410)を生成できるようにマーカートラッキングセンサー(例えば、センサー434)によって生成されたセンサーデータに基づいて、トラッキング座標系でマーカー604の同一の点の位置が特定される。
本明細書で開示するように、他の変換行列(例えば、行列412および414)を生成し、他の座標系ならびにそのような他の座標系で生成された可能性のある画像および/またはモデルを整合させることができる。
【0081】
図9は、シミュレーションされた臓器610)に重ねられたメッシュモデル652のホログラフィックオーバーレイを含む、図7および図8に類似のAR画像650を示す。図7および図8で用いたのと同一の参照符号を、図9でも同様の部分を示すのに使用する。
オーバーレイは、(例えば、図1の方法100およびシステム400に従って)メッシュモデル652に一組の変換を適用することに基づいて、ARディスプレイ画像650内の患者のアナトミー(臓器610)と整合される。例えば、メッシュモデル652が3D先行画像の座標系で生成される場合、各変換T0、T1、T2の逆数(例えば、本明細書の表に示すようなinv(T0)*inv(T1)*inv(T2))をメッシュモデルに適用することにより、モデルをAR座標系で位置同期させてもよい。
【0082】
いくつかの例では、(例えば、オブジェクトトラッキングセンサー438が取り付けられている)オブジェクトからターゲットサイトまでの距離および投影された角度などの追加情報をユーザーに提供するために、出力の視覚化にアノテーション654が示されている。さらに、ユーザー入力(例えば、ユーザー入力デバイス、音声コマンドまたはジェスチャーコマンド)に応答してビューを変更(例えば、強調)してもよい。例えば、ARディスプレイ上にホログラフによる視覚化を生成する出力エンジンが、患者の身体に重ねられている現在のビューを、実際の視野でズームまたは拡大してもよい。上記に加えてまたは上記に代えて、ユーザーがコマンドを入力して視野角を変更することもできる。いくつかの例では、イネーブルの場合など、出力の視覚化でマーカー604(またはその他の部分)の角に照明をあてるか、これを他の方法で区別して、マーカーのそのような部分が適切に対応付けられていることを確認してもよい。他の画像の強調も可能である。
【0083】
上述した構造的および機能的な説明を考慮すると、本明細書で開示するシステムおよび方法の一部を、方法、データ処理システムまたは非一過性のコンピュータ読み取り可能な媒体などのコンピュータプログラム製品として実現してもよいことを、当業者であれば理解するであろう。したがって、本明細書に開示する手法のこれらの部分は、完全にハードウェアの実施形態、(例えば、1つ以上の非一過性の機械読み取り可能な媒体において)完全にソフトウェアの実施形態またはソフトウェアとハードウェアを組み合わせた実施形態の形をとることができる。さらに、本明細書で開示するシステムおよび方法の一部は、コンピュータ読み取り可能なプログラムコードを有するコンピュータで利用できる記憶媒体に格納されたコンピュータプログラム製品であってもよい。静的記憶装置および動的記憶装置、ハードディスク、光学記憶装置および磁気記憶装置を含むがこれらに限定されるものではない、任意の適切なコンピュータ読み取り可能な媒体を用いることができる。
【0084】
以上、いくつかの実施形態について、方法、システムおよびコンピュータプログラム製品のブロック図を参照して、本明細書で説明してきた。図示のブロックおよび図示のブロックの組み合わせを、コンピュータで実行可能な命令によって実施できることが、理解されるであろう。これらのコンピュータで実行可能な命令を、汎用コンピュータ、専用コンピュータまたは他のプログラム可能なデータ処理装置(または装置と回路の組み合わせ)の1つ以上のプロセッサに提供し、このプロセッサを介して実行される命令が1つ以上のブロックで指定された機能を実現するようなマシンを作ることができる。
【0085】
これらのコンピュータで実行可能な命令を、コンピュータまたは他のプログラム可能なデータ処理装置に特定の方法で機能するように指示することができるコンピュータ読み取り可能なメモリに格納し、コンピュータ読み取り可能なメモリに格納された命令が、1つ以上のフローチャートブロックで指定された機能を実現する命令を含む製品となるようにすることもできる。また、コンピュータプログラム命令を、コンピュータまたは他のプログラム可能なデータ処理装置にロードし、コンピュータまたは他のプログラム可能な装置上で一連の動作ステップを実行させ、コンピュータ実装プロセスを生成して、コンピュータまたは他のプログラム可能な装置で実行される命令が、1つ以上のフローチャートブロックで指定された機能を実現するためのステップを提供するようにすることができる。
【0086】
以上説明したものは例である。もちろん、考えられるすべての構成要素または方法論の組み合わせを説明することは不可能であるが、当業者であれば、さらに多くの組み合わせや並べ替えが可能であることを認識するであろう。したがって、本発明は、添付の特許請求の範囲を含めて、本願の範囲内に包含されるそのような変更、改変および変形をすべて包含することを意図している。本明細書で使用する場合、「含む(includes)」という表現は、含むがこれに限定されるものではないことを意味する。「基づく」という表現は、少なくとも部分的に基づくことを意味する。さらに、本開示または特許請求の範囲に「a(1つの)」、「an(1つの)」、「a first(第1の)」、「another(別の)」要素またはそれらの等価物が記載されている場合、2以上のそのような要素を要求することも除外することもなく、1以上のそのような要素を含むと解釈されるべきである。
図1
図2
図3A
図3B
図4
図5
図6
図7
図8
図9