B-Spline FFD with Plastimatch

Plastimatchを用いると, DIRが可能です. ただしコマンドラインでの実行になります.

DIRは細かなパラメータがたくさんありますので, コマンドラインでの指定はなかなか大変なためか, Platimatchも, いちいちすべてのパラメータをコマンドラインで入力しなくていいように, コマンドファイル(command_file.txt)を作成し, そこにパラメータは記載し下のように実行します.

“>plastimatch registrer command_file.txt”

plastimatch: コマンド

register: 第1パラメータ, させたい処理を指定. 他に”add”, “compare”, “segment”, “threshold”などなど一般的な画像処理用のパラメータもあるようです.

command_file.txt: うえで述べた(今回だと)DIRの処理のパラメータを記載したファイル. 名前に .txtと付いているところで分かるように, テキスト形式のファイルです. command_fileのところは, 間違わなければ何でも構いません.

B-splineでDIRさせる際には, Demonsと比べ割と簡単なパラメータ設定で可能なようです. 下がcommand_file.txtの中身です. とは言っても, これはPlastimatchのサイトのドキュメントにあるサンプルそのままです.

 

# command_file.txt
[GLOBAL]
fixed=deojohn250.mha       #基準画像のファイル
moving=deojohn165.mha   #変形される画像ファイル
img_out=deojohn_bspline_warped.mha  #変形後の画像を出力するさいのファイル名
xform_out=deojohn_bspline_coefficients.mha  #今回の結果を元に再度実行する際にxform_inにこのファイルを指定することで, 今回の結果を修正するように実行できる.
vf_out=deojohn_bslpine_vf.mha  #Deformatin vectorのデータ

[STAGE] #粗い解像度から始めて3段階(3Stage)でDIRする設定.そのため[Stage]の設定が3つある. 下に行くほど細かく解像度も上げている.
xform=bspline  #B-splineの指定
impl=plastimatch  #ITKの実装(itkと指定)とplastimatchの実装が使えます.
threading=openmp #マルチコアなCPUを使う際に指定.
max_its=30  #最大繰り返し回数
regularization_lambda=0.005  #正規化の重み係数
grid_spac=100 100 100  #FFDのコントロールポイントのグリッド配置(各軸100 pix ごと)
res=4 4 2 #解像度を x,y,z 軸それぞれ 4 pix, 4 pix, 2 pixをまとめ1 pixにする.

[STAGE]
max_its=30
grid_spac=80 80 80
res=2 2 1

[STAGE]
max_its=30
grid_spac=60 60 60
res=1 1 1

入力ファイル, 出力ファイルともに3DSlicerでサポートされている mha形式にしました. DICOM形式の画像はそのままでは指定できませんので, 3D Slicerなどで読み込んだあとmha形式で保存して使うのがいいかもしれません.