의료 영상 및 임상 텍스트 어노테이션 도구 비교
무료 및 유료 의료 어노테이션 도구를 DICOM과 슬라이드 형식, 판독자 간 일치도, 환자 영상이 저장되는 곳 면에서 비교합니다.
3D Slicer, ITK-SNAP, QuPath는 전문가 한 명이 CT나 MR 볼륨을 분할하거나 병리 슬라이드의 윤곽을 그리는 무료 데스크톱 프로그램이며, V7과 Encord는 DICOM 뷰어와 합의 검토가 있는 호스팅 플랫폼을 문의 시 견적 가격으로 판매합니다. Potato는 다판독자 연구를 위한 V7과 Encord의 무료 자체 호스팅 대안입니다. Potato는 DICOM과 NIfTI 볼륨, 전체 슬라이드 이미지, 임상 노트를 자체 서버에서 판독자들에게 나누고 판독자의 일치도를 Dice 또는 카파로 보고합니다.
DICOM은 스캐너와 병원 영상 보관 시스템(PACS)이 의료 영상을 저장하는 표준 형식이며, CT나 MR 시리즈는 보통 슬라이스마다 파일 하나가 있는 DICOM 파일 폴더입니다. NIfTI는 볼륨 전체를 .nii 또는 .nii.gz 파일 하나에 저장하며 연구 데이터셋에서 흔합니다. 전체 슬라이드 이미지는 스캔한 병리 슬라이드를 해상도 피라미드로 저장한 것이며 Aperio .svs나 Hamamatsu .ndpi 같은 형식을 씁니다(디지털 병리학 참고). DICOM SEG는 분할을 레이블이 붙은 복셀로 저장합니다. RTSTRUCT는 윤곽을 저장하며 방사선 치료 계획 시스템의 분할 형식입니다. Dice 계수는 두 판독자의 마스크가 얼마나 겹치는지 측정하고, Cohen의 카파는 우연을 보정한 범주형 응답의 일치도를 측정합니다. 비식별화는 파일에서 환자의 이름, ID, 날짜, 기타 식별자를 제거합니다.
이 페이지는 CT와 MR 볼륨, 전체 슬라이드 병리 이미지, 2D 임상 이미지, 임상 텍스트를 다룹니다. 의료 및 임상 어노테이션은 Potato의 의료 기능을 한곳에 모았고, Potato로 하는 의료 영상 어노테이션은 이미지 종류별 설정을 안내하며, 이미지 어노테이션 도구 비교는 범용 컴퓨터 비전 도구를 다룹니다.
비교해 볼 만한 의료 어노테이션 도구
가격과 라이선스는 2026년 10월 기준 각 프로젝트의 자체 페이지에서 가져왔습니다. 두 유료 플랫폼은 가격을 공개하지 않으므로, 표는 대신 각 플랫폼의 가격 책정 방식을 적습니다.
| 도구 | 실행 형태 | 라이선스 | 가격 | 적합한 용도 |
|---|---|---|---|---|
| 3D Slicer | Windows, macOS, Linux용 데스크톱 앱 | BSD 계열 | 무료 | 전문가 한 명이 하는 CT와 MR 볼륨의 세밀한 분할. DICOM 가져오기와 내보내기 |
| ITK-SNAP | Windows, macOS, Linux용 데스크톱 앱 | GPL-3.0 | 무료 | 능동 윤곽을 쓰는 반자동 3D 분할, NVIDIA GPU에서 nnInteractive를 통한 AI 분할 |
| MONAI Label | 3D Slicer, OHIF, QuPath 등의 뷰어에 AI 모델을 더하는 서버 | Apache-2.0 | 무료 | 팀 자체 모델을 쓰는 AI 지원 분할과 능동 학습 |
| OHIF Viewer | DICOMweb 보관소에서 검사를 읽는 웹 뷰어 | MIT | 무료 | PACS나 DICOM 서버에서 바로 브라우저로 검사 보기와 분할 |
| QuPath | Windows, macOS, Linux용 데스크톱 앱 | GPL-3.0 | 무료 | 병리의 한 명이나 과학자 한 명이 하는 전체 슬라이드 이미지 분석과 어노테이션 |
| Cytomine | Docker로 설치하는 자체 서버의 웹 플랫폼 | Apache-2.0 | 무료 | 블라인드 모드가 있는 대형 생의학 이미지의 공유 프로젝트 |
| MedCATtrainer | Docker로 설치하는 자체 서버의 웹 앱 | Apache-2.0 | 무료. UMLS와 SNOMED CT 개념 데이터베이스는 별도 라이선스가 필요 | 임상 텍스트에서 MedCAT 개념 인식 및 연결 모델의 검증과 개선 |
| INCEpTION | 데스크톱 설치 프로그램 또는 자체 서버의 웹 앱 | Apache-2.0 | 무료 | 지식 베이스 연결, 큐레이션, 일치도가 있는 임상 노트를 포함한 텍스트 코퍼스 |
| V7 | 호스팅 웹 플랫폼 | 상용 | 플랫폼 요금, 사용자 라이선스, 데이터 처리에 따른 견적. DICOM과 NIfTI는 Business와 Pro 요금제 | 합의 검토가 있는 DICOM, NIfTI, 전체 슬라이드 이미지의 관리형 레이블링 |
| Encord | 호스팅 웹 플랫폼, 또는 Enterprise 요금제에서 자체 클라우드나 서버 | 상용 | 공개된 가격이 없는 Starter, Team, Enterprise 요금제. DICOM과 NIfTI는 추가 기능 | 합의 워크플로가 있는 DICOM과 NIfTI의 관리형 레이블링 |
| Potato | YAML로 구성하는 Python 웹 서버이며, 자체 서버에서 실행 | GPL-3.0-or-later | 무료 | 볼륨, 슬라이드, 2D 이미지, 임상 노트에 대한 판독자 간 일치도가 있는 다판독자 연구 |
MONAI Label은 서버로 실행되며 어노테이터는 지원되는 뷰어 중 하나에서 작업합니다. PyPI의 최신 MONAI Label 릴리스는 2024년 11월의 0.8.5입니다. 3D Slicer의 문서는 Slicer가 임상 사용을 승인받지 않았으며 연구용이라고 밝히고, QuPath의 사이트는 QuPath가 임상, 진단, 치료 목적을 위한 것이 아니라고 밝힙니다. Potato는 임상이나 규제 인증이 없는 연구용 소프트웨어입니다.
어떤 과제에 어떤 도구를
표는 각 종류의 의료 어노테이션 프로젝트를 그 프로젝트를 위해 만들어진 도구와 짝지어 줍니다.
| 과제 | 적합한 도구 |
|---|---|
| 전문가 한 명이 CT나 MR 볼륨을 세밀하게 분할 | 3D Slicer와 ITK-SNAP |
| 자체 모델을 쓰는 AI 지원 3D 분할 | 3D Slicer 또는 OHIF와 MONAI Label, 그리고 nnInteractive가 있는 ITK-SNAP |
| PACS에서 바로 브라우저로 검사를 분할 | OHIF Viewer |
| 병리의 한 명이 하는 전체 슬라이드 이미지 분석 | QuPath |
| 어노테이터에게 이미지 이름을 숨기는 공유 병리 프로젝트 | Cytomine |
| 임상 개념 추출 모델 검증 | MedCATtrainer |
| 개체 연결과 여러 어노테이터가 있는 임상 텍스트 | INCEpTION과 Potato |
| 공급업체의 지원이 있는 관리형 DICOM 레이블링 | V7과 Encord |
| 사례마다 여러 판독자와 합의 또는 일치도 단계 | V7, Encord, Potato |
| Dice 또는 카파를 보고하는 병원 네트워크 안의 무료 다판독자 연구 | Potato |
| 같은 사례에 이미지, 임상 텍스트, 설문을 함께 두는 판독자 연구 | Potato |
데스크톱 도구는 전문가 한 명이 작업하는 곳에 나오고, 유료 플랫폼은 공급업체가 레이블링 환경을 운영하는 곳에 나옵니다. Potato는 사례가 기관이 운영하는 서버에서 여러 판독자에게 가고 연구가 판독자의 일치도를 보고하는 곳에 나옵니다.
V7과 Encord의 무료 대안
V7과 Encord는 DICOM 뷰어와 합의 검토가 있는 호스팅 어노테이션 플랫폼을 문의 시 견적 가격으로 판매합니다. 이 페이지의 무료 도구는 그 일을 다르게 나눕니다. 3D Slicer, ITK-SNAP, QuPath는 전문가 한 명이 데스크톱 컴퓨터에서 볼륨을 분할하거나 슬라이드의 윤곽을 그리는 데 적합합니다. Potato는 다판독자 연구에 적합하며, DICOM과 NIfTI 볼륨, 전체 슬라이드 이미지, 임상 노트를 자체 서버에서 판독자들에게 나누고 판독자의 일치도를 Dice 또는 카파로 보고합니다. 무료 도구 중 어느 것도 유료 플랫폼의 관리형 호스팅과 공급업체 지원을 제공하지 않습니다.
각 도구가 실행되는 곳
3D Slicer, ITK-SNAP, QuPath는 판독자 자신의 컴퓨터에서 실행되며, 이미지는 판독자의 워크스테이션이 접근하는 저장소에 남습니다. 3D Slicer는 폴더나 질의 및 조회가 가능한 DICOM 서버에서 DICOM을 가져오고, DICOM 네트워킹이나 DICOMweb으로 검사를 보냅니다. QuPath 프로젝트는 QuPath의 데이터와 이미지 경로가 들어 있는 폴더입니다. ITK-SNAP의 AI 분할에는 같은 컴퓨터나 ITK-SNAP이 연결하는 원격 서버의 NVIDIA GPU가 필요합니다.
OHIF Viewer는 브라우저에서 실행되며 DICOMweb을 지원하는 모든 보관소에서 검사를 읽습니다. 병원은 OHIF가 병원 자체 PACS나 연구용 DICOM 서버를 가리키게 할 수 있습니다. MONAI Label은 서버에서 모델을 실행하고 DICOMweb으로 PACS에 접근합니다. Cytomine, MedCATtrainer, INCEpTION은 자체 서버에 설치됩니다. Cytomine과 MedCATtrainer는 Docker Compose로 설치되며, INCEpTION의 서버 배포는 기관의 기존 단일 로그인을 쓸 수 있습니다.
V7은 호스팅 플랫폼으로 실행되며, V7의 요금 페이지는 V7이 GDPR, HIPAA, SOC 2 Type II, ISO 27001 인증과 준수를 받았다고 밝힙니다. Encord의 표준 설정에서 Encord는 Google Cloud에서 플랫폼을 운영하고 파일은 고객 자신의 클라우드 저장소에 남습니다. Encord의 문서는 클라우드 배포가 SOC 2 Type II, HIPAA, GDPR을 준수한다고 나열합니다. Enterprise 요금제에서 Encord는 고객 자신의 AWS, Google Cloud, Azure 계정 안이나 외부 인터넷 접속이 없는 고객의 서버에도 배포합니다.
Potato는 기관 내부 서버에 pip로 설치되며, 모든 판독자는 그 서버에 대해 브라우저로 작업합니다. Potato는 모든 스크립트, 스타일시트, 글꼴, 아이콘을 Potato 패키지에서 제공하며, Potato와 모델 가중치를 설치한 뒤에는 외부로 나가는 경로가 없는 네트워크에서도 인터페이스가 동작합니다. 판독자는 SAML(authentication.method: saml)이나 OAuth 및 OpenID Connect로 기관의 ID 제공자를 통해 로그인할 수 있습니다(SSO와 OAuth). Potato는 구성에 외부 서비스가 명시된 경우에만 외부 서비스로 데이터를 보냅니다. 임상 용어를 UMLS에 연결하는 것이 그런 경우인데, Potato의 UMLS 클라이언트가 인터넷으로 NLM의 UTS 서비스를 검색하기 때문입니다. 에어갭 배포는 Potato가 로컬로 제공하는 것을 나열합니다.
여러 판독자와 판독자 간 일치도
판독자 연구는 각 사례를 여러 판독자에게 주고 판독자의 응답을 비교하며, 관찰자 간 변이를 측정하고 여러 전문가로부터 기준 표준을 만드는 데 모두 쓰입니다. 각 행은 같은 사례에 여러 판독자가 작업하는 도구의 설정과 그 도구가 보고하는 일치도 측정치를 보여 줍니다.
| 도구 | 같은 사례에 여러 판독자 | 보고하는 일치도 |
|---|---|---|
| 3D Slicer | — | — |
| ITK-SNAP | — | — |
| MONAI Label | — | — |
| OHIF Viewer | — | — |
| QuPath | — | — |
| Cytomine | 프로젝트 구성원이 이미지를 공유하며, 제한된 편집 모드, 숨긴 레이어, 블라인드 모드가 있음 | — |
| MedCATtrainer | 프로젝트 그룹, 또는 어노테이터마다 복제한 프로젝트 | 프로젝트 간 지표 보고서. 문서는 내려받은 어노테이션에 대해 Cohen의 카파를 계산하라고 제안함 |
| INCEpTION | 문서마다 여러 어노테이터이며 큐레이션에서 병합 | Cohen의 카파, Fleiss의 카파, Krippendorff의 알파(명목형과 단위화), 감마 |
| V7 | 합의 단계 | V7의 의료 영상 페이지에 따른 어노테이터 간 일치도 |
| Encord | 합의 워크플로 | — |
| Potato | num_annotators_per_item이 각 사례를 보는 판독자 수를 정함 | 볼륨에서는 레이블별 3D Dice. 2D 상자와 다각형에서는 우연 보정 측정치. 선택에서는 Cohen의 카파, Fleiss의 카파, Krippendorff의 알파. 텍스트에서는 스팬 F1과 Krippendorff의 알파 |
대시는 2026-10-28에 확인한 해당 도구의 자체 문서에서 그 칸에 해당하는 내용을 찾지 못했다는 뜻입니다. 틀린 칸이 있으면 알려 주세요.
Dice는 분할 마스크의 일반적인 중첩 측정치입니다. Potato는 볼륨의 모든 판독자 쌍과 모든 레이블에 대해 3D Dice를 보고합니다. 두 판독자 모두 레이블을 칠하지 않은 쌍은 일치로 세지 않고 그 레이블에서 제외되며, 볼륨에 그린 상자는 채점되지 않습니다. Dice는 우연을 보정하지 않습니다. 2D 이미지와 전체 슬라이드 이미지에서 Potato는 상자와 다각형에 대한 우연 보정 일치도도 보고합니다(기하 일치도). 공간 레이블에 대한 우연 보정 일치도를 보고하는 다른 어노테이션 플랫폼은 찾지 못했습니다.
AI 지원 분할
AI 지원 분할에서는 모델이 클릭, 스크리블, 상자를 마스크로 바꾸며, 도구마다 모델이 실행되는 곳이 다릅니다.
- 3D Slicer. Segment Editor의 Grow from seeds와 Fill between slices 효과는 학습된 모델 없이 몇 개의 칠한 시드나 슬라이스에서 분할을 완성합니다. MONAI Label은 Slicer를 딥러닝 모델을 실행하는 서버에 연결합니다.
- ITK-SNAP. 능동 윤곽 분할이 내장되어 있습니다. DLS 확장은 ITK-SNAP을 같은 컴퓨터나 원격 서버의 NVIDIA GPU에서 실행되는 3D 프롬프트 가능 분할 모델 nnInteractive에 연결합니다.
- MONAI Label. 샘플 앱은 영상의학(DeepEdit과 DeepGrow), 병리, 내시경을 다루며 능동 학습이 선택 사항입니다. 팀이 자체적으로 학습한 모델을 서비스할 수도 있습니다.
- OHIF Viewer. 버전 3.10은 Labelmap Assist와 원클릭 3D 도구를 추가했습니다. Labelmap Assist는 Segment Anything 모델로 분할을 다음 슬라이스로 확장하고, 3D 도구는 WebGPU의 브라우저에서 grow-cut 알고리즘을 실행합니다.
- V7과 Encord. V7은 DICOM과 NIfTI에 대해 SAM 기반 Auto-Annotate와 슬라이스 보간을 제공합니다. Encord의 DICOM 편집기는 SAM 2로 다각형을 그립니다.
- Potato. 볼륨 도구는 수동입니다. 어노테이터는 브러시로 칠하거나 다각형으로 영역의 윤곽을 그리고, 칠한 두 슬라이스 사이의 슬라이스는 서버의 형상 기반 보간으로 채웁니다. Potato 2.13.1부터는 다각형을 닫으면 그 슬라이스에서 레이블의 마스크에 영역이 칠해집니다. 슬라이스에 그린 상자는 별도의 도형으로 저장되고 자체
__shapes.json파일로 내보내지므로, 상자는 마스크 복셀을 채우지 않으며 Dice에 반영되지 않습니다. 사례가 RTSTRUCT 파일을 지정하면 Potato는 그 파일의 윤곽을 같은 이름의 레이블에 대한 시작 마스크로 바꿉니다. Potato 2.14부터volume-unet트레이너는 어노테이터가 칠한 마스크에 3D U-Net을 맞추며, 모델의 마스크가 다른 볼륨의 슬라이스 뷰를 미리 채워 어노테이터가 수정하게 합니다. 2D 이미지에서는sam도구가 한 번potato download-models mobile_sam을 실행한 뒤 브라우저에서 MobileSAM을 실행합니다. 임상 텍스트에는 AI 지원이 언어 모델의 제안을 보여 주며,endpoint_type: ollama또는vllm은 모델을 자체 서버에 둡니다.
파일 형식과 마스크 내보내기
의료 영상은 PACS의 DICOM 시리즈, 연구 데이터셋의 NIfTI 파일, 슬라이드 스캐너의 전체 슬라이드 파일로 도착합니다. 마스크는 PACS나 계획 시스템용으로 DICOM SEG 또는 RTSTRUCT로, 학습 파이프라인용으로 NIfTI로 다시 나갑니다.
- 3D Slicer는 DICOM, NRRD, NIfTI-1을 읽고, 분할을 NRRD, NIfTI, STL 또는 OBJ 모델, 또는 핵심 DICOM 내보내기의 DICOM SEG로 씁니다. RTSTRUCT 내보내기에는 SlicerRT 확장이 필요합니다.
- ITK-SNAP은 NIfTI, DICOM, 기타 3D 이미지 형식을 읽습니다.
- OHIF Viewer는 DICOMweb으로 검사를 읽고, RTSTRUCT를 표시하며, 분할을 다운로드로 또는 서버로 DICOM 형식으로 저장합니다.
- QuPath는 Bio-Formats와 OpenSlide로 전체 슬라이드 이미지를 읽습니다.
- V7은
.dcm,.nii,.svs파일을 읽고, 여러 뷰에 걸쳐 만든 어노테이션을 Darwin JSON 2.0 또는 NIfTI로 내보냅니다. - Encord는 브라우저에서 DICOM을 렌더링하고, NIfTI를 읽으며, 볼륨의 축상, 관상, 시상 뷰를 보여 줍니다.
- Potato는 DICOM 시리즈(슬라이스마다 파일 하나, 또는 향상된 다중 프레임 파일 하나), 3D
.nii또는.nii.gz파일, 시작 마스크로서의 RTSTRUCT를 읽습니다. 마스크는 원본 기하를 가진 NIfTI 레이블 볼륨으로 내보내집니다(volume_nifti). DICOM 원본에서는 마스크가 원본 시리즈를 참조하는 DICOM SEG 객체(dicom_seg)로도 내보내지고, Potato 2.13부터는 각 세그먼트의 부피를 기록하는 DICOM SR(TID 1500)이 있는 DICOM SEG(dicom_sr)로도 내보내집니다..svs,.ndpi,.mrxs,.scn,.vms,.vmu,.bif,.svslide슬라이드는 openslide를 통해 딥 줌 뷰어에서 열리며, Potato 2.13부터 슬라이드 영역은 QuPath GeoJSON과 ASAP XML(qupath_geojson,asap_xml)로 가져오고 내보낼 수 있습니다. PNG와 JPEG 이미지는 바로 불러오고, TIFF(16비트 포함), JPEG 2000, HEIC, 카메라 RAW는 첫 요청 때 변환됩니다.
DICOM 시리즈를 3D에서 올바르게 배치할 수 없을 때, 예컨대 시리즈 두 개가 든 폴더, 간격이 고르지 않은 슬라이스, 0.5도를 넘는 갠트리 기울기 같은 경우에 Potato는 이유를 밝히는 메시지와 함께 멈춥니다. DICOM 단일 방사선 사진은 보통 먼저 PNG나 TIFF로 변환해야 합니다. 볼륨 판독기는 환자 위치와 픽셀 간격 필드로 슬라이스를 배치하는데, 많은 CR 및 DX 방사선 사진에는 위치 필드가 없습니다.
환자 정보와 비식별화
DICOM 헤더에는 보통 환자의 이름, ID, 생년월일, 기관이 들어 있습니다. 초음파 이미지와 2차 캡처에는 같은 정보가 픽셀에 새겨져 있는 경우가 많습니다. 어노테이터나 서버 관리자가 식별 데이터를 보면 안 될 때는 업로드 전에 파일을 비식별화하세요.
3D Slicer의 문서는 데이터가 Slicer에 도달하기 전, 이상적으로는 DICOM 라우터에서 비식별화하라고 권하며 DicomCleaner, gdcmanon, RSNA Clinical Trial Processor를 소개합니다. Cytomine의 블라인드 모드는 기여자에게 이미지 이름을 사용자 활동 및 어노테이션 통계와 함께 숨깁니다. Cytomine의 활동 패널은 각 구성원이 마지막으로 본 이미지와 이미지 조회를 프로젝트의 활동 로그와 함께 보여 줍니다.
Potato의 볼륨 뷰어는 어노테이터에게 display_tags에 나열된 헤더 필드만 보여 줍니다. DICOM 기본 비식별화 프로파일 목록에 있는 필드는 allow_identifying_tags도 그 필드를 지정할 때에만 나타나며, 그 목록에는 PatientName, PatientID, 생년월일, 접수 번호, 검사 날짜가 있습니다. 서버는 모든 요청에 필터를 적용하며 브라우저는 다른 필드를 요청할 수 없습니다. 원본 DICOM과 NIfTI 파일은 serve_raw_medical_files가 켜져 있지 않으면 Potato의 미디어 경로에서 403을 받으며, 그 설정을 켜면 파일이 로그인 없이 제공됩니다. BurnedInAnnotation이 YES로 표시된 시리즈는 불러오지 않으며 메시지가 이유를 알려 줍니다.
Potato는 파일을 비식별화하지 않습니다. 파일과 폴더 이름은 브라우저에 도달하고, 픽셀은 BurnedInAnnotation 플래그로만 확인하며, 디스크의 파일은 업로드된 그대로 남습니다. DICOM SEG 내보내기는 DICOM 표준이 요구하는 대로 원본 시리즈의 환자 및 검사 모듈을 복사하므로, SEG 내보내기는 식별 가능한 것으로 다루어야 합니다. Potato에는 HIPAA 준수 기능이 없으며 누가 어떤 환자 이미지를 봤는지에 대한 감사 로그도 남기지 않습니다. PACS 내보내기는 폴더를 환자 이름으로 짓는 경우가 많으므로 사례 폴더에는 case_001/ 같은 가명 이름을 주세요.
Potato에서 판독자 세 명의 CT 분할 연구
아래 구성은 모든 흉부 CT를 판독자 세 명에게 줍니다. 각 판독자는 결절이 보이는지 답하고 각 결절을 칠합니다. radio 응답은 판독자 간 카파를, 마스크는 각 쌍의 Dice를 제공합니다. 볼륨 지원에는 volumes 추가 패키지가 필요합니다.
pip install 'potato-annotation[volumes]'아래 구성은 완전하며 Potato의 검증기를 통과합니다.
annotation_task_name: Lung nodule segmentation, three readers
task_dir: .
output_annotation_dir: annotation_output/
media_directory: media
data_files:
- data/cases.json
item_properties:
id_key: id
text_key: text
user_config:
allow_all_users: true
users: []
# Three readers segment every case, and each reader's masks are kept separately
num_annotators_per_item: 3
annotation_schemes:
- annotation_type: radio
name: nodule_present
description: Is a nodule visible on this scan?
labels: ["Yes", "No", "Uncertain"]
- annotation_type: volume_annotation
name: nodule_mask
description: Paint each nodule on the axial slices where it appears
source_field: volume
labels:
- {name: Nodule, color: "#e6553a", key_value: "1"}
tools: [brush, eraser, polygon]
# NIfTI files have no modality field and get no CT presets, so the study names a lung window
window_presets:
- {name: Nodule review, center: -600, width: 1500}
default_window: Nodule review
display_tags: [Modality, BodyPartExamined, SliceThickness]각 사례는 media/ 아래의 DICOM 시리즈 폴더나 NIfTI 파일을 지정합니다.
[
{"id": "case_001", "volume": "phantom_dicom", "text": "Case 001"},
{"id": "case_002", "volume": "phantom.nii.gz", "text": "Case 002"}
]NIfTI 파일에는 모달리티 필드가 없으며, Potato는 NIfTI 사례에 자동 윈도와 스킴 자체의 프리셋만 제공합니다. Nodule review 프리셋은 두 사례에 같은 폐 윈도를 주고, DICOM CT 시리즈는 연조직, 폐, 뼈, 뇌 프리셋과 파일에 저장된 윈도도 받습니다. display_tags는 모달리티, 신체 부위, 슬라이스 두께를 보여 주며 식별 필드는 보여 주지 않습니다. 판독이 끝나면 마스크와 radio 질문의 일치도를 내보내세요.
python -m potato.export -c config.yaml -f volume_nifti -o ./export/
python -m potato.export -c config.yaml -f dicom_seg -o ./export/
python -m potato.export -c config.yaml -f reliability -o ./export/첫 번째 명령은 판독자와 사례마다 NIfTI 레이블 볼륨 하나를 씁니다. 두 번째는 DICOM 사례에 대해 판독자마다 DICOM SEG 하나를 쓰고 NIfTI 사례는 경고와 함께 건너뜁니다. 세 번째는 nodule_present에 대해 95% 부트스트랩 구간이 있는 Krippendorff의 알파를 쓰며, /admin/iaa의 관리자 대시보드는 각 판독자 쌍의 Dice를 보여 줍니다. 위의 미디어는 릴리스의 examples/image/ct-volume/ 폴더에 있는 합성 CT 팬텀입니다. 이 폴더에는 prefill_rtstruct_field를 시험해 볼 수 있는 팬텀의 RTSTRUCT도 들어 있습니다.
병원 네트워크의 임상 노트
Potato의 임상 텍스트 어노테이션은 스팬 레이블을 쓰며, 각 스팬에서 용어 체계로 가는 선택적 링크가 있습니다. 아래 구성은 각 퇴원 요약을 어노테이터 두 명에게 주고, 강조한 각 스팬을 병원 네트워크 안의 용어 서비스에 연결합니다.
annotation_task_name: Discharge summary problems and medications
task_dir: .
output_annotation_dir: annotation_output/
data_files:
- data/notes.jsonl
item_properties:
id_key: id
text_key: text
user_config:
allow_all_users: true
users: []
num_annotators_per_item: 2
annotation_schemes:
- annotation_type: span
name: entities
description: Highlight each problem, test, and medication
labels: [Problem, Test, Medication]
entity_linking:
enabled: true
knowledge_bases:
# A terminology service inside the hospital network
- name: local_terms
type: rest
base_url: http://terminology.internal:8080
auto_search: true
- annotation_type: radio
name: note_quality
description: Is the note complete enough to annotate?
labels: ["Complete", "Partly missing", "Unusable"]Potato의 서버는 각 검색을 <base_url>/search?q=<text>&limit=10으로 보내고 항목에 id, label, description이 있는 results 목록을 읽습니다. 엔드포인트 경로와 필드 이름은 extra_params에서 바꿀 수 있습니다. 내장 umls 유형은 UMLS API 키로 NLM의 UTS 서비스를 검색하며, 이때 각 검색 문자열은 네트워크를 떠납니다. 어노테이터 두 명 사이의 스팬 일치도는 관리자 대시보드에 토큰 수준 카파, 스팬 F1, 문자 수준 Krippendorff의 알파로 나타납니다(스팬 일치도). 개체 연결은 다른 옵션을 다룹니다.
MedCATtrainer는 MedCAT 모델에서 시작하며, 어노테이터는 모델이 찾은 각 개념을 올바름, 틀림, 대안, 또는 다른 두 상태 중 하나로 표시하고, 프로젝트는 어노테이터가 문서를 제출할 때마다 모델을 다시 학습시킬 수 있습니다. INCEpTION은 SNOMED CT 프로파일을 갖춘 RDF, OWL, OBO, SKOS의 지식 베이스에 언급을 연결하고 큐레이션에서 여러 어노테이터의 작업을 병합합니다. Potato는 노트가 같은 사례에 이미지, 설문, 모델 출력이 있는 더 큰 연구의 일부일 때 적합합니다.
Potato가 의료 어노테이션에서 하지 않는 것
- 비식별화가 없습니다. Potato는 어노테이터에게 DICOM 헤더 필드를 숨기고 원본 다운로드를 막지만, 파일, 파일 이름, 픽셀은 업로드된 그대로 둡니다.
- HIPAA 준수 기능도, 누가 어떤 이미지를 봤는지에 대한 감사 로그도 없습니다. Cytomine의 활동 패널은 각 구성원이 마지막으로 본 이미지를 기록합니다.
- 4D 볼륨, 융합 PET/CT, 사선 재구성이 없습니다. 사선 촬영은 진정한 축상, 관상, 시상 평면이 아니라 가장 가까운 직교 격자로 표시됩니다.
- 볼륨 뷰어에 대화형 AI 도구가 없습니다. 3D 마스크는 브러시, 닫힌 다각형, 보간, RTSTRUCT 윤곽에서 나오며, 버전 2.14부터는 연구 자체의 마스크로 학습시킨
volume-unet모델에서도 나옵니다. MONAI Label, nnInteractive가 있는 ITK-SNAP, OHIF가 대화형 모델 지원 3D 분할을 제공합니다. - 위치 필드가 없는 2D DICOM 방사선 사진은 안 됩니다. CR과 DX 파일은 먼저 PNG나 TIFF로 변환하세요.
- 레이블별 이진 마스크입니다. NIfTI 내보내기에서 겹치는 레이블은 스킴 목록의 뒤쪽 레이블로 정해집니다.
- 슬라이드 내보내기에 마이크론 좌표가 없습니다. 슬라이드 좌표는 전체 해상도 슬라이드의 비율로 저장되며, QuPath GeoJSON과 ASAP XML 내보내기는 레벨 0 픽셀을 씁니다. 변환에는 타일 기술자가 주는 픽셀당 마이크론 값을 사용합니다.
- 임상 훈련 확인이 없습니다. Potato는 어노테이터가 영상의학과 의사나 병리의인지 확인하지 않습니다.
각 프로젝트의 자체 문서와 요금 페이지를 기준으로 2026년 10월에 확인했습니다.
자주 묻는 질문
가장 좋은 무료 의료 영상 어노테이션 도구는?
전문가 한 명이 CT나 MR 볼륨을 분할하는 경우에는 3D Slicer와 ITK-SNAP이 무료 데스크톱 선택지이고, 전체 슬라이드 병리 이미지에는 QuPath가 무료 데스크톱 선택지입니다. MONAI Label은 Slicer, OHIF, QuPath에 AI 지원 분할을 더하고, OHIF Viewer는 DICOMweb 보관소의 검사를 브라우저에서 분할합니다. 같은 사례에 여러 판독자가 있는 경우 Potato는 DICOM, NIfTI, 전체 슬라이드 이미지와 판독자 간 Dice를 갖춘 V7과 Encord의 무료 자체 호스팅 대안입니다. 여기에 언급한 여섯 도구는 모두 무료 오픈 소스입니다.
의료 영상 어노테이션에서 Cohen의 카파는 어떻게 계산하나요?
병변이 있는지, 병변의 등급이 무엇인지처럼 사례마다 범주형 응답에 대해 Cohen의 카파를 계산하고, 두 판독자의 마스크 중첩에는 Dice 계수를 사용하세요. Cohen의 카파는 두 판독자가 같은 사례에 낸 응답을 비교하며 우연으로 기대되는 일치를 보정합니다. Fleiss의 카파와 Krippendorff의 알파는 비교를 판독자 두 명 이상으로 확장합니다. 모든 픽셀이나 복셀에 대해 계산한 카파는 모든 판독자가 비워 둔 배경도 세기 때문에, 마스크에는 레이블별 Dice가 보통의 선택입니다. Potato는 관리자 대시보드에서 radio 질문에 대한 Cohen의 카파, Fleiss의 카파, Krippendorff의 알파를, 볼륨 마스크에 대한 레이블별 3D Dice를 보고합니다. 어떤 도구에서든 내보낸 응답은 일치도 계산기가 브라우저에서 CSV로 카파와 알파를 계산합니다.
3D Slicer로 한 프로젝트의 여러 어노테이터를 관리할 수 있나요?
3D Slicer의 문서에서 같은 사례를 여러 어노테이터에게 배정하거나 어노테이터의 분할을 비교하는 내장 방법은 찾지 못했습니다. Slicer는 데스크톱 프로그램이며, 팀은 파일이나 DICOM 서버로 데이터를 공유합니다. 어노테이터를 관리하는 웹 기반 플러그인을 요청한 Slicer 포럼 글은 문서화되지 않은 확장을 출발점으로 받았습니다. Potato는 다판독자 부분을 브라우저에서 처리하며, num_annotators_per_item이 사례를 배정하고 판독자 간 레이블별 3D Dice를 제공합니다. Potato의 NIfTI 레이블 볼륨은 Slicer에서 작업을 이어 가려는 사람을 위해 Slicer에서 열립니다.
더 읽어 보기
- 의료 및 임상 어노테이션 - Potato의 의료 기능을 한곳에서 보기
- Potato로 하는 의료 영상 어노테이션
- 여러 판독자와 STAPLE로 CT 볼륨 분할하기 - 공개 CT 스캔에 대한 판독자 세 명, 판독자별 Dice, STAPLE 합의
- 딥 줌으로 하는 기가픽셀 이미지 어노테이션
- 내보내기 형식
- 에어갭 어노테이션
- 전문가 대 크라우드 어노테이션
- 어노테이터 간 일치도
- 판정과 불일치
- 이미지 어노테이션 도구 비교
- 텍스트 어노테이션 도구 비교
- 기가픽셀 및 전체 슬라이드 이미지 어노테이션 도구 비교
참고 문헌
- Jurgens, D., Chen, M., & Iyer, L. (2026). Potato 2.0: A Comprehensive Annotation Platform with AI-in-the-Loop Support. Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations), 374-386. https://aclanthology.org/2026.acl-demo.37/