Potato로 의료 영상 어노테이션하기
Potato에서 의료 영상을 어노테이션하는 모범 사례, DICOM 표시, 영상의학 판독문 라벨링, 이상반응 추출, IRB 준수 자체 호스팅 배포를 다룹니다.
PNG나 JPG 같은 표준 형식이라면 X선, 피부 병변 사진, 그 밖의 임상 영상 같은 의료 영상에 Potato의 이미지 어노테이션을 사용할 수 있습니다. 이 가이드에서는 이런 프로젝트를 제대로 구성하는 방법을 다룹니다.
이미지 어노테이션의 기본 동작 방식은 원본 문서를 참고하십시오.
시작하기 전에
의료 어노테이션 프로젝트에는 Potato와 무관한 의무가 따릅니다. 먼저 이미지에서 모든 PHI(보호 대상 건강 정보)를 제거하십시오. 데이터는 저장과 처리 모두 기관의 보안 인프라에 두십시오. 이미 운영 중인 인증 체계를 통해 어노테이터의 접근을 통제하십시오. 그리고 나중에 요구사항을 뒤늦게 발견하기보다 기관의 요건을 충족할 수 있도록 IRB 및 컴플라이언스 팀을 일찍 참여시키십시오.
한 가지 분명히 해 둘 점이 있습니다. Potato는 어노테이션 도구이지 의료 영상 플랫폼이 아닙니다. HIPAA 준수 기능이 내장되어 있지 않고, DICOM 뷰어도 없으며, 전문 영상 기능도 없습니다. 그런 부분은 인프라 수준에서 처리하십시오.
기본 의료 영상 어노테이션 설정
표준 의료 영상을 위해 Potato를 구성하는 방법은 다음과 같습니다.
annotation_task_name: "Medical Image Annotation"
data_files:
- path: data/medical_images.json
type: json
annotation_schemes:
- annotation_type: bounding_box
name: lesions
allow_multiple: true
labels:
- name: primary
color: "#EF4444"
description: "Primary finding"
- name: secondary
color: "#F97316"
description: "Secondary finding"
- name: artifact
color: "#6B7280"
description: "Artifact or noise"
- annotation_type: radio
name: image_quality
question: "Overall image quality?"
options:
- name: diagnostic
label: "Diagnostic Quality"
- name: limited
label: "Limited Quality"
- name: non_diagnostic
label: "Non-Diagnostic"X선 및 임상 사진 어노테이션
표준 이미지 형식으로 내보낸 X선이나 임상 사진의 경우:
annotation_task_name: "X-Ray Findings Annotation"
data_files:
- path: data/xray_images.json
type: json
annotation_schemes:
- annotation_type: polygon
name: abnormalities
allow_multiple: true
labels:
- name: opacity
color: "#EF4444"
description: "Pulmonary opacity"
- name: consolidation
color: "#F97316"
description: "Consolidation"
- name: nodule
color: "#EAB308"
description: "Pulmonary nodule"
- name: effusion
color: "#3B82F6"
description: "Pleural effusion"
- annotation_type: multiselect
name: findings
question: "Select all findings present"
options:
- name: normal
label: "No acute findings"
- name: pneumonia
label: "Pneumonia"
- name: atelectasis
label: "Atelectasis"
- name: pneumothorax
label: "Pneumothorax"
- name: fracture
label: "Fracture"피부 병변 어노테이션
피부과 영상의 경우:
annotation_task_name: "Dermoscopy Annotation"
data_files:
- path: data/skin_lesions.json
type: json
annotation_schemes:
- annotation_type: polygon
name: lesion_boundary
labels:
- name: lesion
color: "#EF4444"
description: "Lesion boundary"
- annotation_type: multiselect
name: dermoscopic_features
question: "Select all features present"
options:
- name: pigment_network
label: "Pigment Network"
- name: dots_globules
label: "Dots/Globules"
- name: streaks
label: "Streaks"
- name: blue_white_veil
label: "Blue-White Veil"
- name: regression
label: "Regression Structures"
- name: vascular
label: "Vascular Structures"
- annotation_type: radio
name: diagnosis
question: "Most likely diagnosis?"
options:
- name: benign_nevus
label: "Benign Nevus"
- name: seborrheic_keratosis
label: "Seborrheic Keratosis"
- name: basal_cell
label: "Basal Cell Carcinoma"
- name: melanoma
label: "Melanoma"
- name: other
label: "Other"
- annotation_type: likert
name: confidence
question: "Diagnostic confidence"
size: 5
min_label: "Low"
max_label: "High"망막 영상 어노테이션
안저 사진과 그 밖의 망막 영상의 경우:
annotation_task_name: "Fundus Image Annotation"
data_files:
- path: data/fundus_images.json
type: json
annotation_schemes:
- annotation_type: polygon
name: anatomical_structures
labels:
- name: optic_disc
color: "#FDE68A"
description: "Optic disc boundary"
- name: fovea
color: "#A78BFA"
description: "Fovea region"
- name: macula
color: "#93C5FD"
description: "Macular region"
- annotation_type: polygon
name: pathology
allow_multiple: true
labels:
- name: hemorrhage
color: "#EF4444"
description: "Retinal hemorrhage"
- name: exudate
color: "#FCD34D"
description: "Hard/soft exudate"
- name: microaneurysm
color: "#F97316"
description: "Microaneurysm"
- annotation_type: radio
name: dr_grade
question: "Diabetic retinopathy grade"
options:
- name: none
label: "No DR"
- name: mild
label: "Mild NPDR"
- name: moderate
label: "Moderate NPDR"
- name: severe
label: "Severe NPDR"
- name: proliferative
label: "PDR"데이터 형식
이미지 데이터를 JSON으로 준비하십시오.
[
{
"id": "case_001",
"image": "images/case_001.png",
"metadata": {
"body_part": "chest",
"modality": "xray"
}
},
{
"id": "case_002",
"image": "images/case_002.png",
"metadata": {
"body_part": "chest",
"modality": "xray"
}
}
]참고: 이미지는 웹 호환 표준 형식(PNG, JPG 등)이어야 합니다. DICOM 파일은 Potato에서 사용하기 전에 표준 이미지 형식으로 변환해야 합니다.
모범 사례
이 작업은 아무에게나 맡길 수 있는 일이 아니므로, 실제 임상 교육을 받은 어노테이터를 활용하십시오. 먼저 이미지를 전처리하십시오. DICOM과 그 밖의 전문 형식을 표준 형식으로 변환하고, PHI가 제거되었는지 확인하십시오. 일치도를 측정할 수 있도록 각 이미지를 한 명 이상의 어노테이터가 라벨링하게 하십시오. 일반적인 지침이 아니라 해당 임상 영역에 맞는 구체적인 지침을 작성하십시오. 정확도를 점검할 수 있도록 골드 스탠더드 사례를 섞어 넣으십시오. 그리고 데이터가 어떻게 처리되는지에 대해 컴플라이언스 팀과 계속 소통하십시오.
한계
Potato는 범용 이미지 어노테이션을 수행합니다. 네이티브 DICOM 지원이나 DICOM 뷰어, 다중 해상도 확대가 가능한 전체 슬라이드 영상 뷰어, 내장 HIPAA 준수 또는 감사 로깅, 자격 검증, 영상의학 윈도잉 도구는 제공하지 않습니다. 이런 기능이 필요하다면 데이터를 전처리하거나 Potato를 전용 의료 영상 인프라와 함께 배치하십시오.
이미지 어노테이션에 대한 자세한 내용은 /docs/features/image-annotation을 참고하십시오.