Support tasks
Etiquetar con labelme
Segmentar imagenes y convertirlas a formato voc.
https://github.com/wkentaro/labelme/tree/main/examples/semantic_segmentation
Probar modelo con CBIS-DDSM
Construir dataset para CBIS-DDSM
Necesitamos construir el dataset usando Tensorflow como el ejemplo de abajo tal que nos permita entrenar rapidamente un modelo de Deep Learning cuya Base de datos sea CBIS-DDSM y que sea suficientemente flexible para futuros datasets (en particular, para el proporcionado por el hospital).
import tensorflow as tf
import tensorflow_datasets as tfds
# Buscar por defecto en el dataset
# Descargar (vía HTTP) y guardar en el directorio actual
# Cargar en el directorio actual
# El dataset debe permitir cargar diferentes ángulos
# ds: tf.Dataset
ds = tfds.load('cbis-ddsm', split='train', shuffle_files=True)
ds = ds.shuffle(1024).batch(32).prefetch(tf.data.AUTOTUNE)
for example in ds.take(1):
image, label = example["image"], example["label"]
Lazy loading
El dataset debe permitir la carga de información en memoria de manera perezosa.
tf.data.Dataset.from_generator(
generate_from_df,
args=[index],
output_signature=(
(tf.TensorSpec(shape=shape, dtype=tf.int32),
tf.TensorSpec(shape=shape, dtype=tf.int32)),
tf.TensorSpec(shape=(), dtype=tf.int32),
)
).batch(32)
Grid plot
Necesitamos rápidamente visualizar las mamografías listadas tanto como función para Notebook como CLI.
Ejemplo de salida:
Ejemplo de código:
from PIL import Image
import cv2
import requests
import io
import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.axes_grid1 import ImageGrid
from skimage.morphology import disk
fig = plt.figure(figsize=(25., 25.))
grid = ImageGrid(fig, 111,nrows_ncols=(4, 4),axes_pad=0.75,)
files = 'experiment-1-preprocessed-mammograms-with-sam/*.npy'
for ax, case in zip(grid, glob.glob(files)):
try:
ax.set_title(case)
ax.imshow(cv2.cvtColor(load_numpy(case), cv2.COLOR_BGR2RGB))
except Exception as e:
print(case, " Error: ",str(e))
Aumento de datos
Aumentar datos en deep learning.
data_augmentation = tf.keras.Sequential([
layers.RandomFlip("horizontal_and_vertical"),
layers.RandomRotation(0.2),
])
Referencias
https://www.tensorflow.org/datasets/catalog/curated_breast_imaging_ddsm
https://github.com/sanchezcarlosjr/breast-cancer-toolkit/tree/main