Respostas no Fórum

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • em resposta a: Resultados da segmentação #47142
    Flávio Santiago
    Participante

      Boa noite,
      Estou fazendo o curso e me deparei com este mesmo problema, mas antes de vir ao fórum, submeti o código ao ChatGPT e ele deu a seguinte solução em um novo código desenhando a máscara manualmente. Testei com a foto do gato no jardim e funcionou, porém não fez a segmentação de parte do guarda chuva que tem na imagem.
      Por enquanto não vou seguir na melhora do código sugerido pelo chat, se alguém quiser continuar o desenvolvimento, segue abaixo:

      import numpy as np
      import cv2

      # Processa os resultados da predição
      resultados = model_seg.predict(source=img, conf=0.6)
      result = resultados[0]

      # Obtém máscaras e caixas delimitadoras
      masks = result.masks.data.cpu().numpy() # Máscaras
      boxes = result.boxes.data.cpu().numpy() # Caixas delimitadoras

      # Aplica máscaras na imagem
      for mask in masks:
      # Redimensiona a máscara para as dimensões da imagem original
      mask_resized = cv2.resize(mask, (img.shape[1], img.shape[0]), interpolation=cv2.INTER_NEAREST)
      mask_binary = (mask_resized > 0.5).astype(np.uint8) * 255 # Binariza a máscara
      color = (0, 255, 0) # Cor da máscara (verde, no exemplo)

      # Cria um overlay colorido
      mask_overlay = np.zeros_like(img, dtype=np.uint8)
      mask_overlay[mask_binary == 255] = color

      # Combina a máscara com a imagem original (transparência)
      alpha = 0.5 # Transparência
      img = cv2.addWeighted(img, 1 – alpha, mask_overlay, alpha, 0)

      # Desenha as caixas delimitadoras na imagem
      resultado_img = funcoes_desenho.desenha_caixas(img, boxes)
      mostrar(resultado_img)

      em resposta a: Erro na aula: Avaliação do classificador com Dlib #46460
      Flávio Santiago
      Participante

        Na verdade com confiança 0.3 ele detecta sim.

        Eu fiz o teste com confiança 0.3 e deu uma acurácia de 91%.
        Veja na tela que anexei no fórum, quando utilizei 9999 ao invés de “Face não detectada”

        em resposta a: Erro na aula: Avaliação do classificador com Dlib #46439
        Flávio Santiago
        Participante

          Para manter o texto ‘Face não identificada’, e evitar um possível conflito de classe com o número 9999, eu alterei o comando de conversão do array saidas_esperadas para tipo str:
          saidas_esperadas = np.array(saidas_esperadas, dtype=str)

          em resposta a: Dúvida StableDiffusion local #43874
          Flávio Santiago
          Participante

            Bom dia,
            pegando carona na dúvida do Edinaldo, também gostaria de instalar em uma máquina local. Meu problema é que tenho apenas GPU com 4 GB.
            Na hora da geração da imagem, acontecem alguns erros à medida que vou mudando os parâmetros, e não consigo nem executar o primeiro exemplo dado no curso. O erro que acontece é:

            Traceback (most recent call last):

            File “/home/flavio/ia/teste0.py”, line 8, in <module>
            pipe = pipe.to(“cuda”)

            File “/opt/anaconda3/envs/ia/lib/python3.10/site-packages/diffusers/pipelines/pipeline_utils.py”, line 884, in to module.to(device, dtype)

            File “/opt/anaconda3/envs/ia/lib/python3.10/site-packages/torch/nn/modules/module.py”, line 1152, in to return self._apply(convert)

            File “/opt/anaconda3/envs/ia/lib/python3.10/site-packages/torch/nn/modules/module.py”, line 802, in _apply module._apply(fn)

            File “/opt/anaconda3/envs/ia/lib/python3.10/site-packages/torch/nn/modules/module.py”, line 802, in _apply module._apply(fn)

            File “/opt/anaconda3/envs/ia/lib/python3.10/site-packages/torch/nn/modules/module.py”, line 802, in _apply module._apply(fn)

            [Previous line repeated 2 more times]

            File “/opt/anaconda3/envs/ia/lib/python3.10/site-packages/torch/nn/modules/module.py”, line 825, in _apply param_applied = fn(param)

            File “/opt/anaconda3/envs/ia/lib/python3.10/site-packages/torch/nn/modules/module.py”, line 1150, in convert return t.to(device, dtype if t.is_floating_point() or t.is_complex() else None, non_blocking)

            torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 30.00 MiB. GPU 0 has a total capacity of 3.81 GiB of which 25.88 MiB is free. Including non-PyTorch memory, this process has 3.75 GiB memory in use. Of the allocated memory 3.67 GiB is allocated by PyTorch, and 34.99 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)

            O estranho é que com o Easy Diffusion(easydiffusion.github.io/), se eu configuro o uso da GPU para LOW
            GPU Memory UsageFaster performance requires more GPU memory (VRAM)
            Balanced: nearly as fast as High, much lower VRAM usage
            High: fastest, maximum GPU memory usage
            Low: slowest, recommended for GPUs with 3 to 4 GB memory

            Porém não quero usar o EasyDiffusion, exatamente pelos motivos apresentado na resposta do Gabriel acima, ou seja, quero deixar “programático

            código que estou inicialmente  executando é:

            import torch
            from diffusers import StableDiffusionPipeline
            sd15 = StableDiffusionPipeline.from_pretrained(“runwayml/stable-diffusion-v1-5”, torch_dtype=torch.float16)
            sd15 = sd15.to(“cuda”)
            sd15.enable_attention_slicing()
            sd15.enable_xformers_memory_efficient_attention()
            pipe = StableDiffusionPipeline.from_pretrained(“runwayml/stable-diffusion-v1-5”, torch_dtype=torch.float16)
            pipe = pipe.to(“cuda”)
            seed = 777
            prompt = “a photo of a terrier wearing sunglasses, on the beach, ocean in the background”
            generator = torch.Generator(“cuda”).manual_seed(seed)
            img = pipe(prompt, generator=generator).images[0]
            img.save(“teste.png”)

            Tenho uma GTX 1630 com 4GB
            32 Gb RAM
            Processador i3 (acredito que 8a Geração)

             

            Obrigado,
            Flávio.

          Visualizando 4 posts - 1 até 4 (de 4 do total)