- Conte os valores de cada classe.
brain_df['mascarar'].valor_contas()
- Exibir aleatoriamente uma imagem de ressonância magnética do conjunto de dados.
image = cv2.imread(brain_df.image_path[1301]) plt.imshow(imagem)
Image_path armazena o caminho de ressonância magnética do cérebro para que possamos exibir a imagem usando matplotlib.
Sugestão: a parte esverdeada da imagem acima pode ser considerada como o tumor.
- O que mais, mostrar a imagem de máscara correspondente.
image1 = cv2.imread(brain_df.mask_path[1301]) plt.imshow(imagem1)
Agora, você pode ter percebido o que a máscara realmente é. A máscara é a imagem da parte do cérebro afetada por um tumor a partir da imagem de ressonância magnética correspondente. Aqui, a máscara é da ressonância magnética do cérebro mostrada acima.
- Analise os valores de pixel da imagem da máscara.
cv2.imread(brain_df.mask_path[1301]).max()
Partida: 255
O valor máximo de pixels na imagem da máscara é 255, o que a cor branca indica.
cv2.imread(brain_df.mask_path[1301]).min()
Partida: 0
O valor mínimo de pixels na imagem da máscara é 0, o que a cor preta indica.
- Visualização de ressonância magnética do cérebro, la máscara correspondiente y la resonancia magnética con la máscara.
contagem = 0 FIG, axs = plt.subplots(12, 3, figsize = (20, 50)) para eu no alcance(len(brain_df)): if brain_df['mascarar'][eu] ==1 and count <5: img = io.imread(brain_df.image_path[eu]) machados[contar][0].title.set_text('Brain MRI') machados[contar][0].imshow(img) mask = io.imread(brain_df.mask_path[eu]) machados[contar][1].title.set_text('Mask') machados[contar][1].imshow(mascarar, cmap = 'gray') img[máscara == 255] = (255, 0, 0) #Red color axs[contar][2].title.set_text('MRI with Mask') machados[contar][2].imshow(img) count+=1 fig.tight_layout()
- Elimine la identificación, ya que no es necesaria para su procesamiento.
# Drop the patient id column brain_df_train = brain_df.drop(colunas = ['patient_id']) brain_df_train.shape
Obtendrá el tamaño del marco de datos en la salida: (3929, 3)
- Convierta los datos en la columna de máscara de formato entero a formato de cadena, ya que necesitaremos los datos en formato de cadena.
brain_df_train['mascarar'] = brain_df_train['mascarar'].Aplique(lambda x: str(x)) brain_df_train.info()
Como você pode ver, ahora cada característica tiene el tipo de datos como objeto.
- Divida los datos en conjuntos de prueba y de tren.
# split the data into train and test data from sklearn.model_selection import train_test_split train, test = train_test_split(brain_df_train, test_size = 0.15) |
- Aumente más datos con ImageDataGenerator. ImageDataGenerator genera lotes de datos de imágenes de tensores con aumento de datos en tiempo real.
Referir aqui para obtener más información sobre ImageDataGenerator y los parámetros en detalle.
Crearemos un train_generator y validation_generator a partir de los datos del tren y un test_generator a partir de los datos de prueba.
# create an image generator from keras_preprocessing.image import ImageDataGenerator #Create a data generator which scales the data from 0 para 1 and makes validation split of 0.15 datagen = ImageDataGenerator(rescale=1./255., validation_split = 0.15) train_generator=datagen.flow_from_dataframe( dataframe=train, directory= './', x_col="caminho_da_imagem", y_col="mascarar", subconjunto ="Treinamento", batch_size=16, shuffle = True, class_mode="categórico", target_size=(256,256)) valid_generator=datagen.flow_from_dataframe( dataframe=train, directory= './', x_col="caminho_da_imagem", y_col="mascarar", subconjunto ="validation", batch_size=16, shuffle = True, class_mode="categórico", target_size=(256,256)) # Create a data generator for test images test_datagen=ImageDataGenerator(rescale=1./255.) test_generator=test_datagen.flow_from_dataframe( dataframe=test, directory= './', x_col="caminho_da_imagem", y_col="mascarar", batch_size=16, shuffle = False, class_mode="categórico", target_size=(256,256))