Annotation d'images médicales avec Potato
Bonnes pratiques pour annoter des images médicales dans Potato, affichage DICOM, étiquetage de comptes rendus de radiologie, extraction d'événements indésirables et déploiement auto-hébergé conforme à l'IRB.
Vous pouvez utiliser l'annotation d'images de Potato pour des images médicales telles que des radiographies, des photographies de lésions cutanées ou d'autres images cliniques, à condition qu'elles soient dans un format standard comme PNG ou JPG. Ce guide explique comment bien mettre en place ce type de projet.
Pour les mécanismes sous-jacents de l'annotation d'images, consultez la documentation source.
Avant de commencer
Un projet d'annotation médicale s'accompagne d'obligations qui n'ont rien à voir avec Potato. Supprimez d'abord toutes les PHI des images. Conservez les données sur l'infrastructure sécurisée de votre institution pour le stockage et le traitement. Contrôlez l'accès des annotateurs via le système d'authentification que vous utilisez déjà. Et impliquez tôt vos équipes IRB et conformité afin de respecter les exigences institutionnelles plutôt que de les découvrir après coup.
Une chose à bien comprendre : Potato est un outil d'annotation, pas une plateforme d'imagerie médicale. Il n'a aucune conformité HIPAA intégrée, aucun visualiseur DICOM et aucune fonctionnalité d'imagerie spécialisée. Gérez ces aspects au niveau de l'infrastructure.
Configuration de base de l'annotation d'images médicales
Voici comment configurer Potato pour des images médicales standard :
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"Annotation de radiographies et de photos cliniques
Pour des radiographies ou des photographies cliniques exportées vers des formats d'image standard :
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 de lésions cutanées
Pour les images dermatologiques :
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 d'images rétiniennes
Pour les photographies du fond d'œil et autres images rétiniennes :
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"Format des données
Préparez vos données d'images au format 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"
}
}
]Note : les images doivent être dans des formats compatibles avec le web (PNG, JPG, etc.). Les fichiers DICOM doivent être convertis en formats d'image standard avant d'être utilisés avec Potato.
Bonnes pratiques
Faites appel à des annotateurs disposant d'une véritable formation clinique, car ce travail ne peut pas être confié à n'importe qui. Pré-traitez d'abord les images : convertissez le DICOM et les autres formats spécialisés en formats standard, et vérifiez que les PHI ont bien été supprimées. Faites étiqueter chaque image par plusieurs annotateurs afin de pouvoir mesurer l'accord. Rédigez des consignes propres à votre domaine clinique plutôt que génériques. Glissez des cas de référence pour garder un œil sur la précision. Et tenez votre équipe de conformité informée de la manière dont les données sont traitées.
Limitations
Potato fait de l'annotation d'images généraliste. Il ne vous offre pas de support DICOM natif ni de visualiseur DICOM, pas de visualiseurs d'images de lames entières avec zoom multi-résolution, pas de conformité HIPAA intégrée ni de journalisation d'audit, pas de vérification des accréditations, ni d'outils de fenêtrage radiologique. Si vous avez besoin de ces fonctions, pré-traitez vos données ou placez Potato aux côtés d'une infrastructure d'imagerie médicale dédiée.
Pour en savoir plus sur l'annotation d'images, voir /docs/features/image-annotation.