1
resposta

Duvida sobre tamanho das imagens

Pessoal eu estou tentando utilizar estas tecnicas para verificar cancer de mama em animais domésticos, mas minhas imagens são mariores com relação a tamanho, como faço para redimensionar para redimensionar e manter a qualidade das imagens as minhas são do tamanho de 768, 1024, 3, alguem consegue me dizer como posso resolver isso no codigo pelo colab mesmo? Eu preciso redimensionar todas ou isso é feito em memoria pelo colab?

1 resposta

Olá, Julian! Tudo bem?

Que projeto nobre e tecnicamente desafiador! Utilizar Deep Learning para a detecção de câncer de mama em animais é uma aplicação de impacto real.

Sua dúvida é muito comum em projetos de visão computacional. Imagens de alta resolução (como as suas de 1024x768) contêm muitos detalhes, mas processá-las diretamente em uma rede convolucional (CNN) exigiria uma memória de GPU gigantesca e um tempo de treinamento inviável.

Aqui estão os pontos principais para resolver isso no Google Colab:

1. Redimensionar em memória ou no disco?

O ideal é que o redimensionamento seja feito em memória durante o carregamento dos dados. Fazer isso manualmente imagem por imagem e salvar no disco ocuparia muito espaço desnecessário. O TensorFlow possui ferramentas otimizadas para isso.

2. Como fazer no código (TensorFlow/Keras)

Se você estiver usando o método image_dataset_from_directory (que é o padrão moderno do Keras), você define o tamanho final diretamente no carregamento. O TensorFlow aplicará o redimensionamento (geralmente por interpolação bilinear) de forma eficiente.

import tensorflow as tf

# Definindo o tamanho que a sua rede espera (ex: 224x224 ou 256x256)
img_height = 224 
img_width = 224
batch_size = 32

train_ds = tf.keras.utils.image_dataset_from_directory(
  directory_path,
  image_size=(img_height, img_width), # Aqui a mágica acontece!
  batch_size=batch_size
)

3. O dilema da Qualidade vs. Tamanho

Em diagnósticos médicos (mesmo veterinários), a "qualidade" é vital. Ao reduzir de 1024 para 224, você perde pixels que podem conter microcalcificações ou detalhes do tumor.

Sugestões para manter a assertividade:

  • Interpolação de Alta Qualidade: Se o redimensionamento padrão ficar "serrilhado", você pode usar interpolation='lanczos5' (se disponível na sua versão) ou processar via biblioteca PIL/Pillow antes de converter para tensor.
  • Técnica de Patches (Recortes): Em vez de esmagar a imagem de 1024 para 224, você pode recortar a imagem original em vários quadrados de 224x224. Assim, você mantém a resolução original dos tecidos, apenas analisa a imagem em "pedaços".
  • Data Augmentation: Use camadas de RandomZoom e RandomContrast no Keras. Isso ajuda a rede a focar nos detalhes importantes mesmo com a resolução reduzida.

4. Limite de Memória no Colab

O Colab tem limites de RAM (geralmente 12GB ou 15GB na versão gratuita). Se você tentar carregar todas as imagens de 1024x768 sem redimensionar, o kernel vai dar "Crash". Por isso, o image_size dentro do carregador de dados é a sua melhor defesa.

Julian, você já definiu qual arquitetura de rede vai usar? Se estiver usando uma MobileNet ou ResNet, elas costumam exigir tamanhos fixos como 224x224.