Respostas no Fórum

Visualizando 15 posts - 271 até 285 (de 393 do total)
  • Autor
    Posts
  • em resposta a: Implementação fora da Nuvem #35985
    Gabriel Alves
    Moderador

      Olá Jean!

      É possível rodar tudo em sua máquina local sim. Aliás, se você usa linux é até mais fácil pois pode usar os mesmos comandos que usamos no Colab (que roda Ubuntu) então provavelmente será compatível para você. Sugiro usar os mesmos comandos, mas caso encontre algum erro durante a instalação podemos te ajudar também (caso tenha dúvidas, veja aqui).

      O único detalhe é que com o Colab temos disponíveis GPUs para realizar o treinamento do modelo, o que acaba acelerando bastante o processo, até por esse motivo que ele acaba sendo muito útil. Portanto, caso você tenha uma GPU que seja suportada pelas bibliotecas então fica melhor ainda, pois você pode configurar e ter uma velocidade tão boa quanto (ou até superior) à vista no Colab. Mas caso não tenha (ou não seja compatível) não tem problema, dá para ter ótimo desempenho também (será melhor que o processamento por CPU no Colab, já que a usada lá é bem simples).

       

      E obrigado, tenha igualmente uma ótima semana!

      em resposta a: Semantic segementation com imagens categorizadas #35983
      Gabriel Alves
      Moderador

        Olá Felix!

        Seria recomendável que a estrutura de pastas seja semelhante à mostrada pois assim ficará mais fácil de gerenciar e até mesmo alterar o dataset no futuro, caso seja necessário. É assim pelo seguinte motivo: podem haver imagens que contenham dois objetos (ou mais) de classes diferentes que você marcou, então nesse caso não teria como fazer essa divisão de imagens em pastas já que essa imagem só poderia estar em uma única pasta nomeada pela classe (a não ser que você duplicasse a imagem por exemplo e copiasse essa mesma para a outra pasta, mas depois seria muito pior de gerenciar o dataset caso queira excluir ou adicionar imagens, e sem falar que é ruim ter imagens desnecessariamente duplicadas lá se não precisa).

        Caso você usasse um arquivo de anotações então não precisaria mais nada pois nele já está informado essa relação de classe<->imagem para o algoritmo, por isso é mais usado quando se deseja segmentar múltiplas classes. Mas se você pretende usar máscaras binarizadas para a anotação, poderia usar essa estrutura que você comentou sim, basta adaptar o código para que na hora da leitura consiga ler a máscara e saiba exatamente qual classe ela está associada (da para fazer isso modificando o laço de repetição) e uma forma seria ler o nome do subdiretório mesmo. De qualquer forma, sugiro dar uma olhada na seção “Segmentação Semântica” onde é mostrado como treinar o U-net. Mas para múltiplas classes é um pouco diferente e você irá precisar customizar o código para atender ao seu dataset, então minha recomendação é dar uma olhada nesse exemplo aqui que mostra uma forma como pode ser feito.

        E no que você comentou sobre dizer a qual classe pertence aquele objeto, isso é possível já sem nenhuma modificação pois um dos parâmetros retornados pela rede é a classe detectada, qualquer dúvida veja as aulas onde é testado os resultados com o Mask R-CNN.

        • Esta resposta foi modificada 2 anos, 9 meses atrás por Gabriel Alves.
        em resposta a: Mask sem json #35982
        Gabriel Alves
        Moderador

          Olá Felix!

          Sim, se você tiver uma imagem para fazer o mascaramento do objeto ou da instância (aquela imagem onde a cor branca indica a presença do objeto e a cor preta indica a não-presença) então não precisa do .json, pois ele é uma outra forma de representar as annotations. Se quiser fazer dessa forma, veja a seção “Segmentação Semântica” (logo no início, onde é mostrado como fazer o treinamento do modelo U-net), lá é mostrado um exemplo de base de imagens que contém apenas as masks, além claro da imagem original.

          em resposta a: Detecção por Raspbarry #35981
          Gabriel Alves
          Moderador

            Olá! Esse arquivo é usado para informar ao YOLO quais são os nomes das classes associadas ao modelo (para o COCO são 80 classes, portanto 80 nomes, 1 por linha. veja o conteúdo aqui). Para editar esse arquivo você pode usar qualquer programa de editor de textos. Recomendo dar uma olhada na aula “Criação da base de imagens 4”, onde é mostrado exatamente como editar esse arquivo com extensão .names (é mostrado para o modelo customizado que estamos criando, mas pode ser feito para o COCO da mesma forma já que se trata de apenas editar os nomes).

            em resposta a: Erro em OCR – Reconhecimento de Texto #35938
            Gabriel Alves
            Moderador

              Olá Jonas,

              Parece ser um problema do módulo ao ler essa imagem em png. Ocorre apenas com essa imagem? Tente primeiro trocar o nome da imagem (na linha onde você define o caminho/nome da imagem) de “.png” para “.PNG” (ou vice versa) e verifique se a imagem não está corrompida ou algo assim – uma maneira de testar é mostrar a imagem na tela antes. Se não funcionar, tente carregar a imagem através da biblioteca PIL mesmo, usando a função Image.open (exemplo aqui). Outra solução também poderia ser converter para jpg e testar ver se funciona, já que com essa extensão não deve ocorrer tal erro.

              em resposta a: Medida de área #35937
              Gabriel Alves
              Moderador

                Olá Matheus!

                Sim é possível, você poderia implementar algum algoritmo próprio por exemplo (basta procurar por algoritmos para cálculo de perímetro de formas/objetos usando python) ou, para facilitar, você pode usar o módulo measure da biblioteca scikit-image (skimage). Veja a documentação, lá verá que tem por exemplo uma função própria para calcular o perímetro (skimage.measure.perimeter).

                Ou você pode usar a função regionprops() que retorna uma lista extensa de propriedades, incluindo o perímetro. Assim você tem acesso aos valores necessários para determinar o comprimento e largura (para saber isso você pode simplesmente usar as medidas da caixa delimitadora, ou seja, o valor associado ao bbox). Caso queira um exemplo de como implementar, confira aqui.

                 

                em resposta a: Detecção por Raspbarry #35936
                Gabriel Alves
                Moderador

                  Para exemplo de código recomendo verificar o primeiro link na minha resposta anterior, lá tem um código pronto para usar e mostra certinho como rodar em tempo real.

                  em resposta a: Segmentação panóptica – implementação 2 #35875
                  Gabriel Alves
                  Moderador

                    Olá! Sim consegue. Para a segmentação panóptica pode ser um pouco mais difícil comparado aos outros pois é uma técnica mais nova e possui ainda pouca documentação e exemplos prontos de como treinar um modelo customizado, mas usando o Detectron2 é bem mais fácil de fazer o treinamento, dê uma olhada aqui:  https://www.celantur.com/blog/panoptic-segmentation-in-detectron2/

                    em resposta a: Detecção por Raspbarry #35874
                    Gabriel Alves
                    Moderador

                      Olá! Consegue sim, quanto a rodar YOLO no Raspberry Pi também sugiro dar uma olhada nesse artigo, que pode ser bem útil. Só tem que ver se ele vai rodar a uma boa taxa de FPS, na verdade isso vai depender totalmente do tipo de sua aplicação (especialmente se ela exige processar tudo em tempo real e se depende de uma taxa alta de FPS), por isso é bom testar e ver qual vai ser o tempo de inferência. Caso a taxa de FPS seja muito baixa sugiro treinar com o Tiny-YOLO.

                      Gabriel Alves
                      Moderador

                        Olá Jardel!

                        Para fazer isso você pode simplesmente juntar de maneira manual com o dataset que você baixou com o OID, ou seja deixar na mesma pasta, lembrando de deixar a estrutura das subpastas e padrão de nomeação dos arquivos exatamente como mostramos, pois tem que estar tudo no mesmo formato. Se você não tiver feito a anotação das imagens ainda, veja a aula “Criação do seu dataset de imagens manualmente”.

                        em resposta a: Treinamento Personalizado no DeepLab #35872
                        Gabriel Alves
                        Moderador

                          Olá Renato!

                          Sim é possível treinar um modelo personalizado com o DeepLab, não mostramos no curso pois a arquitetura escolhida para mostrar como treinar um modelo personalizado para segmentação semântica foi o U-Net. Mas se deseja saber como fazer sugiro dar uma olhada nesse artigo aqui: https://rockyshikoku.medium.com/train-deeplab-v3-with-your-own-dataset-13f2af958a75 (e tem um Colab com código mais detalhado aqui, creio que vai ajudar).

                          em resposta a: Dúvida sobre arquitetura #35871
                          Gabriel Alves
                          Moderador

                            Opa interessante, boa sorte em seus estudos. Sobre esse tema, recomendo dar uma olhada nessa abordagem também que é usada para detecção de leucócitos: https://github.com/mikeszabi/WBC/blob/master/WBC_detection.ipynb

                            (e tem essa outra abordagem mais simples com equalização de histograma e canny edge, parecido com o que fizemos: https://www.geeksforgeeks.org/python-blood-cell-identification-using-image-processing/  e depois aplicar o watershed)

                            em resposta a: Segmentação panóptica – Introdução #35869
                            Gabriel Alves
                            Moderador

                              Olá Wesley, para qual aula exatamente está acontecendo isso? Na de introdução também? E para todas as demais carregou normal?

                              Experimente fazer um recarregamento forçado (ctrl+shift+R) e tentar esvaziar o cache da página, mas caso não funcione nos avise.

                              em resposta a: Dúvida sobre arquitetura #35833
                              Gabriel Alves
                              Moderador

                                Olá Lucas!

                                Além da detecção você precisa segmentar o objeto também, isso? Ou apenas a detecção? Acredito que poderia usar a R-CNN mesmo ou algum modelo baseado ainda em alguma CNN mais complexa como o Xception, que é recomendada para imagens microscópicas inclusive. Na verdade depende também quais as características das imagens microscópicas vocês irá trabalhar. Mas quanto a usar o watershed para segmentar e enviar para a rede, é bem interessante e já li sobre alguns projetos que fizeram isso para obter melhores resultados. Sobre isso aliás, se quiser ver uma pipeline de como poderia ficar essa implementação: https://www.researchgate.net/figure/Pipeline-of-the-proposed-method-combining-CNN-and-watershed-The-method-has-three-steps_fig1_324120625

                                em resposta a: Segmentação panóptica – Introdução #35775
                                Gabriel Alves
                                Moderador

                                  Olá Lucas,

                                  Verifique se não é algum problema na conexão de internet, que pode atrasar o carregamento e fazer com que certos elementos não carreguem (ou demorem muito para carregar e pareça que não está carregando).

                                Visualizando 15 posts - 271 até 285 (de 393 do total)