MONAI Label과 AWS, 그리고 실제 임상 – “의사 대신 그려주는 똑똑한 펜” 사용법 전체 정리[pe]
MONAI Label과 AWS, 그리고 실제 임상 – “의사 대신 그려주는 똑똑한 펜” 사용법 전체 정리[pe]
(3D Slicer + MONAI Label 튜토리얼 + AWS 인프라 + 폐/뇌출혈/척추 사례 통합)
──────────────────
목차
왜 지금 “의료영상 AI + MONAI Label”인가?
MONAI Label 한 방에 이해하기
3D Slicer + MONAI Label 실습 튜토리얼 (로컬/클라우드 공통 흐름)
AWS에서 MONAI Label 돌리기: 인프라와 워크숍 구조
임상 현장 실제 사례 3가지
5-1. 폐 CT 분석: Long CT Analyzer와 전체 폐 분석
5-2. 뇌출혈 정량화: “연구용 툴이 임상으로 내려온 순간”
5-3. 척추·암 사례(스파인/암 세그멘테이션) – 개념과 활용 방향지금 당장 따라 할 수 있는 실행 플랜 7단계
참고 사이트와 참고문헌
요약 정리
태그검색
──────────────────
왜 지금 “의료영상 AI + MONAI Label”인가?
MONAI Label은 “의사가 직접 쓸 수 있는 의료영상 AI 주방” 같은 도구다.
예전에는 연구실에서만 가능하던 CT/MRI 세그멘테이션이, 이제는 3D Slicer와 MONAI Label, 그리고 AWS 클라우드만 있으면 개인 연구자·임상의도 직접 돌려볼 수 있는 시대가 되었다.
재미있는 포인트 인용¹
“예전엔 하루 종일 마우스로 장기 테두리만 그리다 퇴근했다면, 이제는 AI가 대신 그려주고 우리는 결과를 ‘까다롭게’ 평가하는 쪽으로 역할이 바뀌고 있다.” (추가 설명용 창작 인용)
──────────────────
2. MONAI Label 한 방에 이해하기
MONAI / MONAI Label이 뭔가?
MONAI: 의료영상 딥러닝을 위해 NVIDIA와 커뮤니티가 만든 오픈소스 프레임워크(파이토치 기반).
MONAI Label: “라벨링 + 모델 학습 + 추론”을 통합해 주는 서버–클라이언트 시스템으로,
서버: 학습·추론을 담당하는 MONAI Label 서버
클라이언트: 3D Slicer, OHIF, QuPath 등 뷰어 플러그인이 붙는다.
핵심 포인트
파이썬 pip install monailabel 한 줄로 기본 설치 가능.
Radiology(CT/MR), Pathology(조직 슬라이드), Endoscopy 등 각 분야에 맞는 앱 구조가 준비되어 있다.
구조를 아주 쉽게 요약하면
MONAI Label 서버
모델 앱들(예: Radiology 앱)과 deep learning 네트워크(UNet, DynUNet, SegResNet 등)를 담고 있다.
데이터 스토어(로컬 폴더, DICOMWeb, NIfTI 폴더 등)와 연결된다.
뷰어(3D Slicer 등)
사용자는 Slicer에서 CT/MR을 열고 ‘MONAI Label’ 패널에서
추론(inference) 실행
결과를 수정(수정 라벨 저장)
필요하면 학습 재시작까지 할 수 있다.
어떤 사람이 쓰면 좋은가? (공식 발표에서도 두 부류 언급)
연구자 타입
“새 모델을 만들고 싶다”, “새 데이터셋으로 파인튜닝 하고 싶다”, “액티브 러닝 실험 해 보고 싶다.”
임상의 타입
“모델은 복잡해도 상관 없고, 나는 ‘빨리, 정확하게’ 세그멘테이션만 나오면 된다.”
──────────────────
3. 3D Slicer + MONAI Label 실습 튜토리얼 (로컬/클라우드 공통)
여기서는 “기본 Radiology 앱으로 CT 세그멘테이션 모델을 만든다”는 시나리오로 설명한다.
[실행 가능한 튜토리얼]
환경 준비
Python 환경 준비
Anaconda 또는 Miniconda 설치 후, 가상환경 생성.
예: conda create -n monai python=3.x (명령 예시는 사용자의 환경에 맞게 조정)
MONAI Label 설치
가상환경 활성화 후
pip install monailabel
필요 시 MONAI, PyTorch, CUDA 버전은 공식 문서 참고.
3D Slicer 설치
https://www.slicer.org 에서 OS에 맞는 버전 다운로드 후 설치.
Slicer Extension Manager에서 “MONAI Label” 확장 설치.
MONAI Label Radiology 앱 구조 이해
Radiology 앱 폴더 안에는 대략 다음 요소들이 있다.
main.py: 서버 실행 진입점(서버 모드/스크립트 모드 공통).
configs/
datalist, 네트워크 구조, 라벨 정의 등을 담은 설정 파일(예: segmentation.py).
tasks/
inference(추론)와 training(학습) 관련 스크립트.
데이터셋 정리 (중요)
예시: TotalSegmentator 같은 whole-body CT 세그멘테이션 데이터셋을 MONAI Label용 구조로 바꾸기.
원본 구조(예시)
케이스별 폴더 안에 CT 이미지 1개 + 104개 세그멘트 마스크 파일.
MONAI Label용 재구성
root/
images/ → 각 케이스의 CT 볼륨(NIfTI 등)
labels/
final/ → 각 케이스의 최종 라벨(여러 세그멘트를 하나의 멀티라벨 마스크로 합친 파일)
마스크 합치기
TotalSegmentator 저장소에 이미 “여러 라벨을 하나의 멀티라벨 NIfTI로 합치는” 스크립트 예시가 있다.
이 스크립트를 실행해, 104개 개별 마스크를 하나의 멀티클래스 마스크로 병합한다.
“어떤 장기만 학습할지” 정하기
configs/segmentation.py (또는 유사 파일)에서 label_names와 index를 정의.
예:
label_names = { “liver”: 1, “spleen”: 6, … }
TotalSegmentator는 1~24 순서가 아니라 1,2,3,4,5,6,7,14,16,… 식으로 띄엄띄엄 번호가 배정되어 있다.
관심 있는 장기만 추려서 1~20개 정도로 줄여도 되고, 그대로라도 된다.
MONAI Label 서버 실행
가상환경에서 Radiology 앱 폴더로 이동 후,
python main.py 또는 monailabel start ... 형식으로 서버 실행.
서버가 뜨면 “MONAI Label server started at http://localhost:8000” 같은 메시지가 나온다.
3D Slicer에서 연결
Slicer 실행 → Modules → MONAI Label 선택.
서버 주소에 http://localhost:8000 입력.
연결 성공 후,
“App” 목록에서 Radiology 앱 선택.
“Inference” → 특정 모델(예: segmentation, deepedit 등) 선택.
라벨링–학습–액티브 러닝 루프
1단계: 추론
CT 볼륨을 열고, Inference 실행 → 초기 세그멘테이션 결과 얻기.
2단계: 수정
Slicer의 Segment Editor로 틀린 부분 수정.
3단계: 저장
MONAI Label 패널에서 “Save Label” 또는 학습용으로 업로드.
4단계: 재학습(Active Learning 전략 활용)
모델이 “가장 어려워하는” 케이스를 우선 추천해 주고,
사람이 그 케이스만 집중 수정 → 다시 학습.
이 과정을 반복하면, 점점 적은 수의 라벨로도 모델 성능을 빠르게 올릴 수 있다.
──────────────────
4. AWS에서 MONAI Label 돌리기: 인프라와 워크숍 구조
이제 같은 MONAI Label을 “클라우드 GPU 서버”에서 돌리는 구조를 정리하자. 여기에는 두 가지 축이 있다.
EC2 + 직접 접속 방식 (개인 연구자용)
AppStream 2.0 + 가상 데스크톱 방식 (워크숍·다수 사용자용)
EC2 상에서 MONAI Label 서버 구축 (개인 연구자/임상의 시나리오)
예시: G4dn.xlarge 또는 g4dn.4xlarge GPU 인스턴스 요청.
NVIDIA T4 GPU, 16~24GB GPU 메모리, 충분한 CPU/RAM.
절차 개요
EC2 인스턴스 생성 (Ubuntu 등)
Conda/Python 환경 구성 후 MONAI Label 설치
Radiology 앱 설정
서버 실행 (예: http://EC2_IP:8000)
로컬 PC/Mac의 3D Slicer에서 EC2 서버 주소로 연결
실제 사례: 호주 시드니의 신경과 전문의 K. Butcher 교수는
로컬에 고성능 GPU가 없어서,
EC2 G4 인스턴스에 MONAI Label을 올리고,
집/병원/노트북 어디서든 로컬 Slicer에서 해당 서버로 접속해 뇌출혈 모델을 학습·추론했다.
AppStream 2.0 + 워크숍용 구조
AWS 측 발표에서 제시한 구조 요약:
AppStream 2.0
브라우저만으로 원격 GPU 데스크톱(Windows/Linux)을 사용할 수 있게 해 주는 서비스.
사용자는 Chrome/Firefox/Safari에서 접속만 하면,
그 안에 이미 3D Slicer + MONAI Label 환경이 셋업된 상태로 이용 가능.
워크숍용 아키텍처
미리 Linux 서버에 3D Slicer + MONAI Label을 설치하고 “골든 이미지”로 저장.
AppStream이 이 이미지를 기반으로 각 참가자에게 동일한 환경의 가상 서버를 자동 생성.
인스턴스 타입: g4dn.4xlarge (T4 GPU, 16 vCPU, 64GB RAM).
전 세계(미국/유럽/아시아 태평양) 리전에 분산 배치하여, 각 참가자를 가장 가까운 리전에 연결해 지연을 최소화.
참가자 입장에서의 접속 플로우
AppStream에서 자동 발송된 초대 이메일(로그인 링크, 임시 비밀번호)을 받는다.
브라우저로 접속 → 비밀번호 변경 → “3D Slicer” 아이콘 선택.
이미 서버와 모델이 설정된 상태에서 실습 진행.
장점
개인 PC에 아무것도 설치하지 않아도 된다.
GPU 리소스를 사용자별로 독립 제공(공유 아님).
──────────────────
5. 임상 현장 실제 사례 3가지
5-1. 폐 CT 분석: Long CT Analyzer와 MONAI Label 결합
스위스의 Rudolph Blum 팀이 사용한 사례.
사용 도구
3D Slicer의 Lung CT Analyzer 확장
TotalSegmentator, lungmask, MONAI Label 등 다양한 AI 도구 통합.
주요 기능
폐·엽(lobe)·기도(airway)를 자동 세그멘테이션,
무기폐/침윤/정상 폐포 등을 색으로 표시하여 정량 분석 가능.
성능
150초 안팎의 시간에 폐와 기도 세그멘테이션을 “완전 자동”으로 수행.
COVID-19 CT 데이터셋 80여 명(81명, 93 CT)을 3시간 정도에 일괄 분석(batch) 완료.
재미있는 결과 인용²
한 COVID 데이터셋에서, AI가 측정한 폐 침범 정도(%)와 20년 경력 방사선과 전문의의 시각적 점수 사이의 상관계수는 약 0.85 수준으로, 매우 높은 일치도를 보였다.
또한
상·중·하엽별 침범 정도를 비교하면, 하엽이 더 많이 침범되는 전형적 양상이 자동으로 드러난다.
중증도(집중치료실 입실 여부)에 따라 AI가 측정한 폐 침범률이 통계적으로 유의하게 차이를 보여, 예후 예측 지표 가능성도 시사한다.
5-2. 뇌출혈 정량화: “연구 툴 → 임상 툴”로 내려온 순간
호주의 Ken Butcher 교수 사례.
임상 문제
뇌실질내 출혈(ICH) 환자에서 혈종(hematoma) 부피는 사망률과 예후를 예측하는 중요한 지표다.
그러나 수작업 플라니메트리(세그멘테이션)는
시간이 많이 들고,
주로 연구에서만 사용되고,
실제 응급/임상 현장에서는 “큰/작은 출혈” 같은 정성적 표현으로 대체되는 경우가 많았다.
MONAI Label을 이용한 해결
Butcher 교수는 G4 GPU EC2 인스턴스에 MONAI Label을 설치하고, CT 뇌출혈 세그멘테이션용 DeepEdit 모델을 구성했다.
deepedit 앱의 설정 파일에서 기존 장기 라벨 대신 “출혈, 뇌실 내 출혈, 기타 병변” 등을 라벨로 재정의.
약 72케이스로 80/20 학습–검증 분할, 100 에폭 정도 학습.
작업 흐름
CT를 로딩하고 inference 실행.
AI가 제안한 혈종 세그멘테이션(초록색)과 뇌실 내 출혈(노란색)을 확인.
경계가 틀린 영역을 사람이 조금 수정.
Slicer에서 자동으로 부피(ml)를 계산하여 리포트.
관찰된 성능
큰 혈종의 경우, 자동 세그멘테이션 후 계산된 부피는 수작업 골드 스탠다드 대비 몇 mL 이내 오차 수준.
출혈이 없는 CT에서는 “아무것도 라벨링하지 않는 것”이 잘 작동해, 임상 워크플로우에 넣어도 거짓 양성으로 스트레스를 주지 않는다.
Butcher 교수의 인상적인 고백³
“수백, 수천 시간을 들여 손으로 라벨링했던 작업이, 이제는 AI와의 협업으로 임상 워크플로우 안으로 들어올 수 있게 됐다.” (내용 요지 요약, 추가 설명)
5-3. 척추·암(스파인/종양) 사례 – 개념과 활용 방향
워크숍 전체에서는 폐, 뇌출혈, 척추/암 등 다양한 임상 영역이 예시로 등장한다.
척추와 암 세그멘테이션은
종양 볼륨 추적,
방사선 치료 계획,
수술 전 planning 등에 활용 가능하다.
구조는 동일하다.
기존 spine/암 세그멘테이션 데이터셋을 MONAI Label 형식으로 정리,
Radiology 앱에서 label_names를 척추체, 추간판, 종양 등으로 정의,
액티브 러닝을 통해 어려운 케이스 위주로 전문가가 수정 → 모델 재훈련.
──────────────────
6. 지금 당장 따라 할 수 있는 실행 플랜 7단계
[실행 가능한 내용]
나의 “사용자 타입” 정하기
연구자 중심: 모델 구조, 데이터셋, 액티브 러닝 전략이 관심이라면,
“로컬 + 소규모 EC2”로 시작해서 실험 위주로.임상의 중심: 세그멘테이션 결과와 워크플로우 통합이 중요하다면,
“클라우드(EC2/AppStream) + PACS 연동” 장기 그림을 상정.
주력 데이터 한 가지 고르기
폐 CT, 뇌출혈 CT, 뇌 MRI, 간 CT 등 본인이 가장 많이 다루는 하나를 선택.
공개 데이터셋(TotalSegmentator, COVID CT, BraTS 등)도 충분히 시범용으로 좋다.
로컬에서 3D Slicer + MONAI Label 먼저 익히기
Slicer 설치 → MONAI Label 확장 설치 → Radiology 앱으로 작은 데이터셋에 추론만 몇 번 돌려 본다.
“추론 → 수정 → 저장” 루틴을 손에 익힌다.
데이터 구조 정리·스크립트 작성
현재 가지고 있는 데이터 폴더를 “images / labels/final” 구조로 재정리.
필요하면 NIfTI 변환, 라벨 병합 스크립트를 짧게 작성(또는 기존 TotalSegmentator 스크립트 활용).
EC2 기반 실험 환경 만들기
AWS 계정이 있다면, g4dn.xlarge 또는 g4dn.4xlarge 인스턴스를 만들어 MONAI Label 서버를 구성.
로컬 Slicer에서 해당 서버 주소로 접속해, “원격 GPU + 로컬 뷰어” 조합으로 실험.
액티브 러닝 루프 체험
초기 모델로 몇 케이스 추론 → “가장 자신 없어 하는 케이스” 위주로 수정 → 재학습.
다시 성능 비교하면서, “수작업 100건 vs AI+전문가 협업 20건”의 시간·품질 차이를 체감해 보기.
임상/업무용 PoC(Proof of Concept) 설계
실제 병원/연구실 워크플로우에서
PACS → MONAI Label 서버 → Slicer 뷰어 → 리포트
구조의 연동 가능성을 스케치.
AWS 블로그와 공개 워크숍 자료를 참고해, 작은 범위(예: 한 과, 한 질환)부터 PoC를 기획해 본다.
──────────────────
7. 참고 사이트와 참고문헌
[공식/튜토리얼]
MONAI Label GitHub
https://github.com/Project-MONAI/MONAILabelMONAI Label 워크숍(YouTube – Project Week 38)
https://www.youtube.com/watch?v=KtPE8m0LvcQAI-assisted Medical Image Annotation Workshop (AWS + MONAI)
https://catalog.us-east-1.prod.workshops.aws/workshops/ (검색: “AI assisted medical image annotation”)
[AWS 관련]
3D Slicer on AWS Cloud Server 설정 가이드 (Project Week 페이지 내 링크)
Amazon AppStream 2.0: 원격 가상 데스크톱 서비스 개요
https://aws.amazon.com/appstream2/
[폐 CT / Long CT Analyzer / TotalSegmentator]
TotalSegmentator 공개 데이터셋 및 도구
https://github.com/wasserth/TotalSegmentatorLung CT Analyzer (3D Slicer extension, COVID 이후 발전된 폐 분석 도구) – Project Week 자료 및 Slicer Extensions
[임상 사례 – 뇌출혈]
Butcher 교수의 MONAI Label ICH 세그멘테이션 사례는 위 워크숍 비디오 내 발표 내용으로, 본 글은 그 핵심을 요약·정리한 것임 (추가 설명).
──────────────────
8. 요약 정리
MONAI Label은 3D Slicer와 결합하여 “의료영상 AI 세그멘테이션을 누구나 만들고 쓸 수 있게 해 주는 플랫폼”으로, 라벨링–학습–추론–액티브 러닝까지 한 번에 다룰 수 있다.
AWS EC2와 AppStream 2.0을 활용하면 GPU 자원이 없는 개인·병원도 클라우드에서 MONAI Label을 돌리며, 폐 CT, 뇌출혈, 척추/암 등 다양한 임상 영역에서 실제로 ‘수작업 세그멘테이션을 임상 워크플로우로 끌어내리는’ 변화를 만들 수 있다.
──────────────────
9. 태그검색
#MONAILabel #3DSlicer #의료영상AI #의료영상세그멘테이션 #AWS클라우드 #EC2 #AppStream #TotalSegmentator #LungCTAnalyzer #뇌출혈세그멘테이션 #ICHVolume #액티브러닝 #의료AI워크숍 #딥러닝의료영상 #파이썬의료AI
──────────
주
“역할이 바뀌었다” 비유는 워크숍 전체 취지를 정리한 창작 인용으로, 실제 발표자의 직설 인용문은 아니다. (추가 설명)
상관계수 0.85 수치는 워크숍 발표에서 제시된 그래프·설명을 요약한 것으로, 정밀 수치는 원 데이터 분석에 따라 약간 차이가 있을 수 있다. (추가 설명)
Butcher 교수의 고백 부분은 영상에서 반복적으로 언급된 메시지를 요약·재구성한 표현이며, 직역 인용이 아니라 내용 요약이다. (추가 설명)
댓글
댓글 쓰기