본문 바로가기

카테고리 없음

Slicer 플러그인으로 인체를 segmentation 하고 3D visualization 하기

3D Slicer의 플러그 인을 이용하여 인체를 segmentation해주는 방법을 소개하겠습니다 

 

0. 환경 설정

NVIDIA GPU가 설치되어 있는 PC 환경이라면 플러그인의 인공지능 모델을 GPU를 사용하여 Inference하기 위해 CUDA와 Cudnn을 설치해 주자 

CUDA 설치

https://developer.nvidia.com/cuda-12-0-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local

 

CUDA Toolkit 12.0 Downloads

 

developer.nvidia.com

 

원하는 버전을 다운로드 한다.

주어진 환경을 설정하고 (필자의 경우 윈도우 10으로 설정)

설치 파일을 다운 받아서 설치해 준다 

(리눅스의 경우 설치 파일을 받아도 되고 패키지를 yum, apt-get으로 설치 할 수도 있다. 개인적으로는 설치 파일이 더 편했던것 같다)

Cudnn 설치

https://developer.nvidia.com/cudnn-downloads?target_os=Windows&target_arch=x86_64&target_version=Agnostic&cuda_version=11

 

cuDNN 9.3.0 Downloads

 

developer.nvidia.com

cudnn 또한 원하는 버전을 다운로드 한다 (cudnn 버전에 따라 지원하는 cuda 버전이 다르기 때문에 주의하자)

여기서 자신이 설치한 CUDA 버전을 확인하고 설정해 준다

설치 파일을 다운로드 하고 설치해 주자

 

위의 과정은 CPU만 사용할 계획이라면 생략 해도 좋다

 

1. 프로그램 다운로드

https://download.slicer.org/

 

Download 3D Slicer

3D Slicer is a free, open source software for visualization, processing, segmentation, registration, and analysis of medical, biomedical, and other 3D images and meshes; and planning and navigating image-guided procedures.

download.slicer.org

위의 링크로 들어가서 원하는 운영체제에 맞춰서 Stable Release를 다운로드 받습니다 

 

다운로드 받은 프로그램을 설치해 줍니다 

 

설치하면 아래와 같은 화면이 나오게 됩니다 

여기서 사용할 샘플 데이터를 다운로드 합니다 

2. 데이터 다운로드

여기서 CT 간 데이터를 클릭해서 다운로드 합니다 

다운로드 받으면 아래와 같이 CT 가 나오게 됩니다 

 

각 윈도우를 마우스 가운데 휠을 움직이면서 이어진 데이터 인지 확인해 봅니다 

혹은 가운데로 되어 있는 바를 움직이면서 확인해 봅니다 

 

3. 플러그인 설치

먼저 view 메뉴 -> 확장 관리(extentions manager) 로 들어 간다.

extention manager가 팝업으로 뜨면

아래와 같이 install extentions 에가서 totalsegmentator를 검색하고 install 버튼을 눌러서 설치해 준다 

(필자는 이미 설치해서 오른쪽 처럼 파란색으로 되어 있을 install 버튼을 누르면 된다)

 

그리고 같이 실험해볼 MONAI 프로젝트의 Auto3DSeg도 같이 설치해 보자.

아래와 같이 install extentions 에가서 Auto3DSeg를 검색하고 install 버튼을 눌러서 설치해 준다 

(필자는 이미 설치해서 오른쪽 처럼 파란색으로 되어 있을 install 버튼을 누르면 된다)

 

 

NVIDIA의 MONAI 프로젝트에 대해 자세히 알고 싶다면 아래 페이지를 방문해 보자 

https://monai.io/

 

MONAI - Home

 

monai.io

 

4. Total Segmentator 사용하기

Module Finder를 열어서 메뉴를 찾아 보자 

(Modules의 segmenation 메뉴에서도 변경이 가능하다)

Total Segmentator를 검색해서 Switch to module 해준다

 

Modules의 segmenation 메뉴에서도 변경이 가능하다

 

UI를 동작 시키면 아래와 같이 화면이 나오게 되고

Apply를 적용하면 긴 동작 시간이 걸리면서 

아래와 같이 콘솔에 로그가 나오면서 segmenation이 된 것을 확인 할 수 있다.

show3D 버튼을 눌러서 3차원으로 재 구성된 segmenation 을 확인해 보자 

뷰가 맞지 않으면 표시한 버튼을 눌러서 가운데 뷰로 맞춰 주자

전체 화면 버튼을 통해 전체화면으로 만들어서 봐도 좋다

마우스 왼쪽 드래그로 회전을 

마우스 가운데 드래그로 이동을

마우스 오른쪽 드래그로 크기를 (혹은 가운데 휠로)

조정하면서 결과를 확인 할 수 있다

Segment Editor를 통해 화면에 나타난 장기를 visible/invisible 보이게/안 보이게 할 수 있다.

간과 위, 소장을 꺼서 화면에서 보이지 않게 해 보았다.

 

TotalSegmentator는 github 페이지가 있으며 command나 python API 형태로도 모델을 사용할 수 있다

각 종 학습 데이터와 알고리즘 관련 내용은 아래 링크를 참고해 보자

https://github.com/wasserth/TotalSegmentator/

 

GitHub - wasserth/TotalSegmentator: Tool for robust segmentation of >100 important anatomical structures in CT and MR images

Tool for robust segmentation of >100 important anatomical structures in CT and MR images - wasserth/TotalSegmentator

github.com

 

5. MONAI Auto3DSeg 사용하기

동일하게 Module Finder를 이용하여 Auto3DSeg 를 불러와 보자

 

Modules의 segmenation 메뉴에서도 변경이 가능하다

 

 

사용자 화면은 아래와 같다

여기서 TotalSegmentator와 달라진 점은 알고리즘과 분석 범위를 설정할 수 있다는 점이다 

우리는 Whole body segmentation TS2 - quick 을 사용해 보자

Whole body segmentation TS2 - quickWhole body segmentation TS2 의 차이점은 모델의 크기와 분석 해상도 차이이다. 그리고 실행 속도가 10배 정도 차이 날 수 있다

그리고 기기에 따라 다르겠지만 GPU 자원을 사용할 수 없다면 30분 이상의 시간이 소요 되기도 한다. 

 

동일하게 Show3D를 통해 3차원의 결과를 확인 할 수 있다.

quick 버전을 사용했긴 떄문에 total segmentator보다 성능이 좋지 않다 

더 좋은 성능을 원하는 사람은 quick 버전이 아닌 것을 사용하자 

동일하게 Segment Editor를 통해 화면에 나타난 장기를 visible/invisible 보이게/안 보이게 할 수 있다.

해당 내용은 중복되니 생략한다

 

Auto3DSeg의 경우 다른 알고리즘을 사용할 수 있으니 다양한 모델을 실험해 봐도 좋을 것 같다 

6. 마치며

이렇게 3D slicer를 이용한 인체 segmentation하는 플러그인을 알아 봤다 

다음에는 Auto3DSeg 에서 제공하는 모델 외에 MONAI model zoo에서 사용할 수 있는 모델들을 3D slicer에서 어떻게 사용할 수 있는 지 포스팅 해 볼 예정이다 (물론 해당 사항은 monai youtube를 통해 쉽게 확인 할 수도 있다)