Efectos de las transformaciones de aumento de datos en TorchIO

1. Volteo Aleatorio

RandomFlip invierte aleatoriamente la imagen a lo largo de ejes específicos. axes=(0, 1) indica posibles inversiones en las direcciones izquierda-derecha (LR) y anterior-posterior (AP).

Para imágenes CT:

  • Simula variaciones en la posición del paciente y asimetrías laterales.
  • Mejora la capacidad de generalización espacial del modelo.

Para imágenes PET:

  • Simula diferencias posicionales izquierda-derecha del paciente.
  • Generalmente se usa solo axes=('LR',) (normalmente eje 1).

⚠️ Nota: Si las imágenes CT y PET están registradas, deben aplicarse las mismas inversiones para manetner la correspondencia espacial.
Se puede usar axes=(0,1) o axes=('LR','AP').

ct_volteado = tio.RandomFlip(axes=(0, 1))(ct)
pet_volteado = tio.RandomFlip(axes=(1))(pet)

2. Transformación Afín Aleatoria

RandomAffine aplica transformaciones afines aleatorias incluyendo escalado, rotación y traslación. scales=(0.95, 1.05) indica un rango de escalado entre 0.95 y 1.05. degrees=5 limita la rotación a ±5°.

Para imágenes CT:

  • Simula diferencias en el ángulo del escáner o pequeñas variaciones en la posición del paciente.
  • Mejora la robustez manteniendo la autenticidad anatómica.

Para imágenes PET:

  • Simula errores de registro o diferencias en la reconstrucción.
  • Ayuda a mejorar la generalización espacial del modelo.
ct_afin = tio.RandomAffine(scales=(0.95, 1.05), degrees=5)(ct)
pet_afin = tio.RandomAffine(scales=(0.95, 1.05), degrees=5)(pet)

3. Deformación Elástica Aleatoria

RandomElasticDeformation genera deformaciones elásticas mediante el desplazamiento aleatorio de puntos de control. max_displacement=3 establece un desplazamiento máximo de 3 vóxeles.

Para imágenes CT:

  • Simula deformaciones de tejidos blandos (llenado vesical, movimiento intestinal).
  • Aumenta la robustez del modelo ante cambios morfológicos.

Para imágenes PET:

  • Simula movimiento de órganos o variaciones en la reconstrucción.
ct_elastica = tio.RandomElasticDeformation(max_displacement=3)(ct)
pet_elastica = tio.RandomElasticDeformation(max_displacement=3)(pet)

4. Ruido Aleatorio

RandomNoise añade ruido gaussiano a la imagen. std representa la deesviación estándar del ruido (normalizada respecto al rango de intensidad).

Para imágenes CT:

  • Simula diferencias de ruido en escaneos con distintas dosis.
  • Mejora la adaptabilidad del modelo a imágenes CT de baja calidad.

Para imágenes PET:

  • Simula ruido estadístico por variaciones en tiempo de escaneo, dosis inyectada o algoritmo de reconstrucción.
  • Incrementa la robustez frente a diferentes calidades de imagen.

⚠️ Nota: El ruido en PET debe ser bajo (sensibilidad cuantitativa SUV). Se recomienda std=0.01~0.05.

ct_ruido = tio.RandomNoise(std=0.01)(ct)
pet_ruido = tio.RandomNoise(std=0.03)(pet)

5. Corrección Gamma Aleatoria

RandomGamma ajusta el mapeo no lineal de valores de intensidad (transformación gamma). El valor gamma real varía entre exp(-0.3) y exp(0.3) ≈ 0.74–1.35. log_gamma se usa para controlar suavemente cambios de brillo.

Para imágenes CT:

  • Simula diferencias de contraste por parámetros de escaneo (kVp, kernel de reconstrucción).
  • Ayuda al modelo a mantener robustez ante variaciones en el rango de HU.

⚠️ Nota: No se recomiendan valores grandes (>±0.5) para evitar alterar la relación lineal de los valores HU.

ct_gamma = tio.RandomGamma(log_gamma=(-0.3, 0.3))(ct)

6. Desenfoque Aleatorio

RandomBlur aplica un desenfoque gaussiano para simular reducción de resolución. std indica el radio de desenfoque en vóxeles.

Para imágenes PET:

  • Simula diferentes filtros de reconstrucción (FWHM) o efectos de borrosidad.
  • Mejora la generalización del modelo entre distintos sistemas de escaneo.

⚠️ Nota: Un desenfoque excesivo (>1.5) reduce significativamente la precisión de SUVmax y SUVpeak.

pet_desenfocada = tio.RandomBlur(std=(0, 1))(pet)

Etiquetas: TorchIO augmentation transformaciones Imágenes Médicas CT

Publicado el 9-24 03:32