IT

Freesurfer를 이용한 Brain MRI 영상 처리(feat. mri_synthstrip)

투어벗 2023. 9. 15. 13:01
반응형

이번에 Brain MRI를 이용한 AI 모델을 연구 중에 있다. Brain MRI의 경우 기존 이미지 영상에서 Brain에 해당 되는 부분만 추출(Skull Stripping)이 필요한데 여러 이러한 역할을 해주는 여러 툴들이 있지만 최근에 발표된 SynthStrip: Skull-Stripping for Any Brain Image]을 사용하여 Skull Stripping을 진행한 예제 코드를 소개하겠다.
(SynthStrip에 대한 자세한 설명은 관련 논문 내용 참조)

설치 방법

해당 알고리즘은 Freesurfer를 통해서 수행되도록 구현되어있다. 따라서 서버에 Freesurfer를 설치하고 해당 Tool을 실행하면 된다.

환경

  • os : ubuntu 20.04
  • python : 3.11.4
  • freesurfer : 7.4 (mri_synthstrip은 7.3.0 이후 버전을 사용해야함)

Freesurfer 설치

Freesurfer 설치 방법을 간단 요약하면 설치파일 다운로드 > 압축해제 > .bash 등록

 

1. Freesurfer 다운로드(https://surfer.nmr.mgh.harvard.edu/fswiki/rel7downloads)

os 환경에 맞는 버전 다운로드
필자는 freesurfer-linux-ubuntu20_amd64-7.4.0.tar.gz 을 다운로드후 FTP로 서버에 전송한 다음 압축을 풀어 사용하였다.

 

2.압축해제

$HOME 디렉토리에 파일을 옮겨 논후 압축해제


3. freesurfer 경로에서 SetUpFreeSurfer.sh 실행후 사용

4. ssh 접속시 마다 자동으로 셋업을 하려면 bash에 등록이 필요하다.vi로 home에 있는 .bashrc를 수정한다.

vi $HOME/.bashrc

-----------------
#freesurfer
export FREESURFER_HOME=$HOME/freesurfer
source $FREESURFER_HOME/SetUpFreeSurfer.sh

5. 설치 확인

mri_synthstrip -h

 

사용방법

Freesurfer를 셋업하면 커맨드라인에서 mri_synthstrip 명령어가 수행가능하다.

mri_synthstrip -i 인풋파일경로+파일명 -o 출력파일경로+파일명 -m 출력마스크파일경로+파일명
GPU 사용 mri_synthstrip -i 인풋파일경로+파일명 -o 출력파일경로+파일명 -m 출력마스크파일경로+파일명 -g

 mri_synthstrip -i sample_input.nii.gz -o output/output.nii.gz -m masked/masked.nii.gz
 
 mri_synthstrip -i sample_input.nii.gz -o output/output.nii.gz -m masked/masked.nii.gz -g

 

1. CPU 사용

2. GPU 사용

 

Skull Stripping 결과

  • 입력 파일
  • 출력 파일

 

후기

Freesurfer의 mri_synthstrip을 이용한 Skull Stripping을 진행해 보았다. 위에 예시 코드는 파일 한 건을 수행하는 방법이다. 실제 연구를 진행하다 보면 대량의 파일을 병력처리를 통해 일괄적으로 전환을 진행하게 될 것이다.
다음 포스팅에서는 python의 멀티프로세싱을 이용하여 병렬로 mri_synthstrip을 수행하는 방법을 소개하겠다.

반응형