前回の記事ではCTから顎骨・歯のSTLデータを切り出しました。
このデータを活用するため、今回は口腔内スキャンのデータとの重ね合わせをしていこうと思います。
マッチング(重ね合わせ)とは?
STLデータについて軽く説明
さて、STLというファイル形式は現在3Dの分野で広く使用されているフォーマットで、物体(3Dオブジェクト)の表面座標を三角形の集合として表現しています。 より詳しい説明は、興味があれば以下のサイトからどうぞ↓ programming-surgeon.com (今回口腔内スキャンのデータは.plyを使ってるしもともとは.dxdじゃねーかっていうツッコミができる人は是非お友達になりましょう)
形状と座標
STLは三角形の座標で表されているので、たとえば同じ形をもつものでも、座標が違えば違うデータになります。 まさに口腔内スキャンではバイトスキャンを用いて上顎データと下顎データの座標を合わせているわけです。
どうやって重ね合わせているのか(脱線)
アルゴリズムについて(クリックで展開)
形状が同じで、座標が異なる2つの物体を重ね合わせるアルゴリズムに、ICP(Intercuspal positionではなくIterative Closest Point)というものがあります。
これは
・いろいろな座標変換(移動・回転など)を行い、その中で一番近いものを選択
という操作を何度も繰り返して座標を一致させるものです。
・どうやって「一番近い」を評価するか
・どんな操作をするか
・一度の操作で何種類試すか
・局所解にハマらないために、悪化する選択肢も受け入れる(山登り法→焼きなまし法)
みたいなところを工夫して性能を高めていくことを、ヒューリスティックといいます。
これを競うコンテストがあり、著者はどっぷりハマっていました。興味がある方はぜひお友達に(略)(脱線おわり)
Medit designを使ったマッチング
ここからが本題です。i700などのスキャナに付属するmedit linkというアプリなのですが、なんと、データの移行など多少の使い勝手の悪さはあるものの、 基本的には他社のスキャナからも無料で使うことができるのです!
さっそくインストールしてみましょう!
Medit linkの登録
support.medit.com こちらが公式の説明です。かいつまんで説明します。
https://www.meditlink.com/へアクセスし、右上のlogin
をクリック
Don't have an account? sign upをクリックして新規登録画面へ
ここで、4種類のアカウントがありますが、上段を選んでください(左:歯科医院、右:技工所)
(メンバーアカウント(下段)は基本的に同じ施設で2つ目以降のアカウントが対象です)
アカウントの種類の選択につまづきやすそうですが、以降は指示の通りフォームを埋めていけば、登録できるはずです。
(質問、要望あればここも詳しく追記しますね!)
Medit linkのインストール
ログインしたら、左下のダウンロードボタンをクリックします。
ここから先は公式が詳しいのでリンクを御覧ください!
[Medit Link v3.3.0] Windowsへのインストール – Medit Help Center
[Medit Link v3.3.0] macOS へのインストール – Medit Help Center
Medit designのインストール
Medit linkをインストール、起動したら
左段のApp box
をクリックし、アプリの一覧からUtilityのMedit design
を探し、インストールします
データの取り込み
患者の登録
Save
で記録します
ケースの登録
登録した患者をクリック
画面右上new case
から症例を登録
必要であれば症例に名前をつけて、Register
をクリック
(Register & Scan
はi700などを持っている方むけです)
サンプルファイル
私の顎骨と口腔内を大公開!!!
match_sample(Onedrive共有フォルダへのリンク)
フォルダ内のファイルは以下の通りで、すべて使用しますのでお好きなフォルダにダウンロードしてください。
match_sample ├── ios_lower.ply 口腔内スキャナ下顎 ├── ios_upper.ply 口腔内スキャナ上顎 ├── seg_lower_teeth.stl CT下顎歯列 ├── seg_mandible.stl CT下顎骨 ├── seg_maxilla.stl CT上顎骨 └── seg_upper_teeth.stl CT上顎歯列
データの取り込み
ケース名(今回はmatching's case
)をクリック
今回は制作物種類・部位などの入力が必要ないのでFile viewer
をクリック
ファイルをFinderやエクスプローラからドラッグアンドドロップするか、
右上クリップのマーク、attach
からファイルを選択して必要なデータを取り込み
今回はmatch_sampleフォルダ内のすべてのファイルを読み込みます 取り込み完了!!
medit designについて
medit designの起動
medit linkではインストールされているアプリのアイコンが右上に並んでいます。
その中で今回は道具箱のアイコン、medit designを起動しましょう!
起動すると公式Webサイトによるアプリの使い方動画へ誘導する画面が出ます。
Learn More About the App
をクリックすると飛べます。いろいろな操作方法が学べます。私は未視聴です。あれ?
今回はContinue Workingをクリックしましょう。
データの選択
ポチポチとクリックして、サンプルデータ6つをすべて読み込みます。Confirm
をクリックします。
操作説明
画面左に取り込んだファイルたちが表示されます
ここで表示/非表示や、不透明度(透け具合)の設定ができます。
右クリックメニューの解説です。
マッチング!
上段一番左のアライメントモードをクリックして、起動します
すると、取り込んだファイルの中から、マッチングさせるファイルを選択する画面が出てきます。
語感から、「ターゲット」に合わせるイメージがありますが、
Reference
のモデルにTarget
のモデルを合わせる作業をします。
Reference
は動きません Target
は動きます
下に3種類のマッチング(Meditではアライメントと呼ばれてます、)が表示されています
左から
①Automatic alignment: 自動アライメント おまかせでマッチングします かなりいい位置にreference
とtarget
が近づいていないと成功しません
②Manual alignment: 手動アライメント それぞれのモデルの共通するところを何点か選んでマッチングさせます 一番使う機能です。
③Align Selected Areas: 領域に合わせてアライメント 選択した領域が一致するようにマッチングさせます たとえばフルブリッジの支台歯模型とプロビの模型の口蓋で合わせる場合に便利です
基本的に②か③でおおまかに合わせる→①で微調整してもらう、という使い方をすることが多いです。
では、実際に 口腔内スキャナの上顎のモデルをCTに合わせてみましょう!
モデルの観察
まずは合わせたいモデルの一致していそうな点を探します
特に今回CTデータは結構歪んでいるように見えるので、特徴的な点を探しましょう。
可能なら3点、可能ならできるだけ離れた点の方が正確にマッチングできます。
今回は
①左上4番 遠心隅角
②右上1番 切縁近心隅角
③右上3番 尖頭咬耗部
の3点で合わせてみました。
どちらにせよあとで微調整するので、そこまで時間をかけなくても大丈夫です。
マッチング
それぞれのモデルでポイントを選択します
同じ順番で選ぶことに注意です
間違った場所を選択した場合、左下のundo
をクリックして取り消すことができます。
まっちんぐ pic.twitter.com/rVgE0baIeW
— ラクラミ (@lacramydent) 2024年8月2日
Manual Alignmentが終わったら、Automatic Alignmentをクリックして微調整してもらいます。
ズレの確認
画面上部左から2番目、Deviation Display Modeをクリックするとこの画面になり
各部どのぐらいのずれがあるか確認することができます 今回、CTの臼歯部はインレーのアーチファクトの影響で歪んでいるため、大きく歪んでいますが、歯列全体で見ると歪んでいないので、うまくマッチングできていると判断します。 ここで納得いかない場合、マッチングポイントを変更したり、画面上部左から5番目Transformation Modeで手動で合わせることになります(今回は割愛させてください)
マッチングの精度について(読み飛ばし可能)
STLデータを作る方法は色々あり、それぞれの特徴について知り、考察することが大事です
(言い訳)引用している文献はさらっと探した一部で、報告により数値はかなりばらつきがあることに注意、だってレビューだと元の文献が10年前とかで機種が古いからあてにならなくて…(言い訳終わり)
口腔内スキャナについては補綴学会のこれが一番よくまとまっている気がします。
doi.org
口腔内スキャナ
一度の撮影範囲が狭いため、重ね合わせのエラーによって歪みが生じる可能性があり、テクニックセンシティブである。
自分でスキャンしたデータであれば、硬組織でスキャンパスを通せたかどうかを覚えておく。(可動する軟組織が映り込むと正確性に劣る)
細部の再現性は最も高く、裂溝なども再現される。
○細部の再現性が高い ○アンダーカットも読み込める ✖️大きな範囲のスキャンでは歪む
真度40μm 精度50μm(オムニカム)*1
ラボ用スキャナ
固定してスキャンするため、真度はもっとも高いと思われる。つまり歪みが少ない。
一方で撮影角度が限られるため、アンダーカットとなる部分など、細部の再現性に劣る。
○精度が高い ○歪みが少ない ✖️細部の再現性が低い 真度20μm 精度30μm*2 機種によりもっと正確になる。
CBCT ○CTと比較すると細部の再現性が高い ✖️照射野の端では像が歪む ✖️アーチファクト 正確性は数百μmのオーダー*3※私はこの文献、ざっと目を通しただけで、ちゃんと読んでないのに引用しましたすみません!!!!!!!!!!
以上から、例えば、
- ラボ用スキャナと口腔内スキャナを重ね合わせ分析した際に咬合面や歯間部のエラーに関しては無視できる、左右大臼歯間距離が異なる場合はラボスキャナを信用する
- CBCTと口腔内スキャナの重ね合わせでは、口腔内スキャンした状況によりどちらが信用できるか判断する
- 口腔内スキャン同士の比較で大きく歪む場合、スキャンパスの通し方を見直す
みたいなことが言えるのではないでしょうか。
このあたり、コメントやツイートなどでご意見いただけたら非常に嬉しいです。
結果の保存
画面上部右端のCompleteをクリックすると結果を保存することができます。
今回の操作では口腔内スキャンの上顎モデルの座標を変更しました。
Overwrite
上顎モデルの座標を上書き保存します。元の位置は失われます。
Export
座標を動かした上顎モデルに名前をつけて保存します。
今回はExport
を選びましょう。
ファイル名を入力する画面が出てくるので、入力しConfirm
をクリックします。
つぎに出てくるこの画面は、今回行った作業自体を保存するか聞かれています。
例えば読み込んだファイルの情報などが保存されています。ここで保存しなければ、また読み込むファイルを選択するところから作業をスタートすることになります。
Exit Program After Saving→Save asでプロジェクト名を入力しSave
をクリックすれば今回の作業は完了です!!!!!!!
お疲れ様でした!!!
次回は、マッチングの続き、複数モデルのマッチングを行うことで咬合時の顎骨の位置関係を再現したいと思います。 2記事目、なんとか1万字以下におさえることができました、ツイッターアカウントの凍結を食らったりしましたが私は元気です。 これからもどうぞよろしくお願い申し上げます!!
*1:Zimmermann M, Ender A, Mehl A. Local accuracy of actual intraoral scanning systems for single-tooth preparations in vitro. J Am Dent Assoc. 2020;151:127-35. https://doi.org/10.1016/j.adaj.2019.10.022, PMID:31883705
*2:Shota Fukazawa, Chikayuki Odaira, Hisatomo Kondo,Investigation of accuracy and reproducibility of abutment position by intraoral scanners, Journal of Prosthodontic Research;61-4;450-459.https://doi.org/10.1016/j.jpor.2017.01.005
*3:Fokas G, Vaughn VM, Scarfe WC, Bornstein MM. Accuracy of linear measurements on CBCT images related to presurgical implant treatment planning: A systematic review. Clin Oral Impl Res. 2018; 29(Suppl. 16): 393–415. https://doi.org/10.1111/clr.13142