ボリューム可視化技術

コーンビームCT装置で撮影した複数枚の2次元透視画像からCT再構成を行う場合、 そのCT再構成結果は3次元画像と呼ばれる3次元スカラー場であり、 それを表示するための可視化手法はボリュームレンダリングと呼ばれています。 ボリュームレンダリングは、 ボリュームデータ全体の様子を容易に把握できる高画質画像が得られるため、 工学・医学・ゲームなどの分野で幅広く利用されています。 しかし、膨大な計算量とメモリを必要とするため、計算時間が長くなり、 従来の市販パソコン用ボリュームレンダリングソフトは、カメラの位置、 方向などを変化するとき、描画画質が下がるという問題点があります。 それに比較して、弊社のGPUによるレンダリング方法は描画速度が速いので、 画質が落ちないままスムーズに描画できる特徴があります。

レイキャスティング

直接レンダリング法であるレイキャスティング法は、レンダリング方程式から直接に派生された方法で、 最高の画像品質を提供することができます。ボリュームレンダリングでは、 右図に示したように、半透明表示を行うことによって内部を可視化します。すなわち、 各ボクセルx のCT値 s(x) によってボクセル毎に色(RGB値)と不透明度(α値)を与えることで実現しています。 表示対象に対応するボクセルの不透明度αを大きくすることで、 その対象を不透明に近く強調して描画することが可能となっています。 レイキャスティングでは順次各ボクセルの色(RGB値)と不透明度αとの積を加算していき、 不透明度αの総和が1となるか、またはレイが対象としているボリュームから抜け出たとき、 その画素に対する処理を終了し、加算結果をその画素の値として表示します。

視点からの光線に沿った距離をλ、ボリューム内の位置を x(λ) とすると、 描画面上の画素値I

レンダリング方程式

で求められます。ここで、c(・)は各点で放出される色(RGB値)を表す関数、 α(・)は各点にの不透明度を表す関数であります。 これらを用いて、 ボリュームデータとして与えられるCT値 s(x)に表示色を割り当てます。 通常、c(・)とα(・)は s(x)の関数として定義されるが、 実の計算は次の2つの段階を経て行われます。 まず、最初にCT値s(x) から色(RGB値)と不透明度(α値)への変換関数(伝達関数と呼ぶ)を通すことで、 各点のCT値による色の寄与を決定します(クラシフィケーション)。 これは、ボリュームの各点から放出される光の効果に相当します。 伝達関数は、ユーザーによって定義され、視点には依存せず一定であるが、 レンダリングの途中でも変更可能であります。次に、 各点および各点の法方向と光源の位置関係から与えられる色情報を付加します(シェーディング)。 これには光の拡散反射や鏡面反射の成分が含まれており、 クラシフィケーションの効果とシェーディングの効果は個別に計算して、 加算により合成することが可能であります。 入力のCT値の分布をそのまま可視化する場合には、 クラシフィケーションだけを使って描画することもできますが、 物体の幾何形状を表示する際には3次元の空間を正確に認識するためにシェーディングが必要であります。

TomoShop® のボリューム可視化機能では、CUDA技術を用いて上述のレイキャスティング法を実装し、 市販のパソコンでもボリューム可視化がリアルタイムで描画できるようにしています。 TomoShop® は、シェーディング種類によって、次のように、 三つのボリューム可視化方法と多断面表示を可能としています。

render_image

i. 最大値投影法(MIP)

最大値投影法では、ボリュームに対して任意のレイ方向に投影処理を行い、 投影経路中のCT値が最大なボクセルの色を描画面の画素値としています。

ii. ボリュームレンダリング(VR)

ボリュームレンダリング法では、 あるCT値範囲に連続的に変化する不透明度を設定し、 光の透過と反射を計算してシェーディングづけを行い、 より実体感をもたせます。

iii. 局部エッジレンダリング(LER)

局部エッジレンダリング法では、 物体の区域ごとのエッジ部分に不透明度を設定し、 区域内部は透明に設定します。数学的に言うと、 あるボクセルの法線ベクトルの大きさが閾値以下の場合、 ボクセルの不透明度を0に設定することによって、 物体の局部エッジを表示することができます。

iv. 多断面変換(MPR)

多断面変換表示法は、 ボリュームの任意断面を抽出して表示する方法であります。

iv. 厚み付き断面像

厚み付き断面像は、 ボリュームの任意断面を抽出し、その断面前後のいくつかの断層の情報をまとめて表示する方法であります。

厚みなし 厚み付き
厚みなし 厚み付き

TomoShop® は、簡単にボリューム可視化操作ができるようにするため、 レンダリング方向、カメラ種類(透視投影、正射影)、 切り出しボックスと切り出し円柱、 材質などのパラメータが簡単に変えるようにし、 マウス操作によるカメラ位置・ 方向なども容易に変えるようなツール関数を用意しています。 そして、座標系・切り出しボックス・計測結果を描画面に表示できます。



切り出し(3Dで任意曲線)

ボックスと円柱の切り出し機能に加えて、指定した任意曲線で3D画像を切り出すことができます。 この機能は、TomoShop Viewer Lab 以上で使用可能です。

3D画像 任意曲線を描いた3D画像 任意曲線で切り出した3D画像
3D画像 任意曲線を描いた3D画像 任意曲線で切り出した3D画像

デュプリケート ウィンドウ(マルチモニター対応)

デュプリケート ウィンドウ は、同じボリュームデータを同じ位置と姿勢のままで多数のウィンドウ画面で表示する技術です。 各ウィンドウ画面は、別々のモニターで表示出来ます。 例えば、主モニターで多断面変換(MPR)の断面像を観察しながら、別モニターでボリュームレンダリング(VR)画面を表示出来ます。

ボリュームデータのタイトルからコンテキストメニュー
『デュプリケート ウィンドウで表示』をクリックして、
同じ位置と姿勢で元のボリュームデータを
デュプリケート ウィンドウでを表示します
デュプリケート ウィンドウ

立体視レンダリング技術(3D視覚)

立体視レンダリング(3D視覚)とは、CT再構成したボリュームを立体的な視覚でレンダリングする方法です。 立体感は人が物を見る時、右目と左目の両眼視差によって得ることができます。 両眼視差とは、下図の左に示したように、右目と左目で見える像の位置あるいは視方向における 差異によって起きる両眼像のずれのことです。この両眼視差から奥行きを知覚することができます。

両眼視差 立体視レンダリングの例
両 眼 視 差 立体視レンダリングの例

上図の右に示したのは、立体視レンダリングの一つの例です。この例において、 赤部分は左目で見えた画像で、青い部分は右目で見えた画像です。 実際の立体視レンダリング結果は、左目像と右目像を高速に交換して表示しますが、 この例では左目像と右目像に色を付けて合成像として表示しました。

弊社の立体視レンダリングは、現在入手可能なうち最高の3D PC体験を実現するために NVIDIA® 3D Vision™ テクノロジーを用いて実装しましたので、夢中になるような3D体験を お客さんのワークステーションへお届けします。

TomoShop® ソフトで立体視レンダリングを得るシステム要件として、

1) TomoShop® のシステム要件

  • OS:  Windows Vista / 7 の 32ビット/64ビット版

  • メモリ: 4GB以上

  • GPU:  NVIDIA GeForce GTX 480 以上

2) 3D Vision対応ディスプレイ

  • 垂直リフレッシュレート120Hz液晶ディスプレイ

3) NVIDIA® 3D Vision™キット

  • IRエミッター

  • ワイヤレスグラス