Forum Replies Created

Viewing 15 posts - 301 through 315 (of 415 total)
  • Author
    Posts
  • in reply to: Detecção por Raspbarry #35874
    Gabriel Alves
    Keymaster

      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
      Keymaster

        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”.

        in reply to: Treinamento Personalizado no DeepLab #35872
        Gabriel Alves
        Keymaster

          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).

          in reply to: Dúvida sobre arquitetura #35871
          Gabriel Alves
          Keymaster

            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)

            in reply to: Segmentação panóptica – Introdução #35869
            Gabriel Alves
            Keymaster

              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.

              in reply to: Dúvida sobre arquitetura #35833
              Gabriel Alves
              Keymaster

                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

                in reply to: Segmentação panóptica – Introdução #35775
                Gabriel Alves
                Keymaster

                  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).

                  in reply to: Imagens microscópicas 3 #35774
                  Gabriel Alves
                  Keymaster

                    Olá Lucas!

                    Isso, na verdade essa forma que você sugere inicialmente é para manter os elementos separados e portanto seria para Segmentação de Instâncias. Nesse caso nós estamos concatenando máscaras das imagens do dataset pois queremos fazer a Segmentação Semântica. Já se a ideia é fazer a segmentação de instâncias (e diferenciar cada instância do objeto) então o caminho seria não juntar as máscaras, mas sim mantê-las separadas para cada anotação individual.

                    in reply to: cannot open resource frame #35732
                    Gabriel Alves
                    Keymaster

                      Olá Daiana!

                      Após executar o comando “!pip install Pillow==9.1.0” clique no botão [Restart Runtime] que irá aparecer na tela, na saída da célula onde esse comando foi executado (ou selecione manualmente a opção “Reiniciar ambiente de execução” no menu ao topo) e após aguardar poucos segundos você pode executar normalmente o restante do código, na ordem como está no Colab. Eu fiz aqui nesse seu Colab que você mandou e funcionou tudo certinho.

                      in reply to: Pose de mais de uma pessoa #35665
                      Gabriel Alves
                      Keymaster

                        Olá Júlio!

                        É possível sim. Um maneira de fazer isso e provavelmente garantir maior confiabilidade seria fazer a detecção da pessoa antes (através de um detector de objetos robusto como o YOLO) – em seguida, através das coordenadas retornadas você irá extrair a região de interesse (ROI) de cada pessoa e para cada região será feita a estimação de pose. Ou seja, será passado para a rede neural a imagem da região de interesse apenas – e a região de cada pessoa. Para isso basta fazer um laço de repetição para percorrer cada detecção/pessoa (pode usar o mesmo usado para desenhar a caixa delimitadora sobre a imagem) e para cada iteração passar a imagem da região para a rede fazer o pose-estimation; assim, ao final vai garantir que será feito para cada pessoa presente na imagem/frame (caso tenha dúvidas de como extrair certa região de interesse da imagem a partir das coordenadas veja aqui).

                        Outra maneira (se deseja mesmo um código meio pronto) poderia ser feita assim: https://github.com/nicknochnack/MultiPoseMovenetLightning/blob/main/MultiPose%20MoveNet%20Tutorial.ipynb

                        in reply to: Detecção de mancha de óleo #35392
                        Gabriel Alves
                        Keymaster

                          Olá!

                          Isso mesmo, uma abordagem nesse caso seria treinar a rede neural para que ela seja capaz de detectar na imagem (classificação+localização) o objeto que você deseja – para isso, você deve fornecer à rede imagens de treinamento, com anotações informando qual coordenada na imagem o objeto está presente.

                          No entanto, esse problema que você busca resolver é um pouco mais complexo mesmo devido ao fato do “objeto” a ser detectado possuir uma possibilidade de assumir infinitas formas. No entanto, mesmo assim as manchas possuem um certo padrão em seu formato, claro que uma pode não ser idêntica à outra mas ainda assim algumas vão se assemelhar bastante. Então pode ser que usando essa abordagem você consiga bons resultados, só seria necessário reunir um dataset bem grande (o máximo que você conseguir, eu diria pelo menos 2500 amostras). Para fazer a criação do set e anotação, qualquer dúvida veja o curso sobre Detecção de Objetos com YOLO, lá mostramos todo o processo de criação de um dataset.

                          Mas talvez antes de reunir as imagens você queira testar com uma abordagem diferente, como a detecção com Blobs, que por um lado não necessita horas de treinamento de uma rede neural, porém pode ser necessário alguns ajustes para ‘calibrar’ bem o algoritmo. Dê uma olhada aqui nesse artigo que mostra já uma maneira boa de como aplicar essa técnica: https://towardsdatascience.com/image-processing-with-python-blob-detection-using-scikit-image-5df9a8380ade

                          Acredito que com essa abordagem você poderia conseguir resultados até melhores do que treinando com uma rede neural. Além dessa detecção por blob, sugiro dar uma olhada em técnicas de segmentação de imagem, mostramos todas as principais no curso Segmentação de Imagens com Python. Com essas você poderia também conseguir bons resultados, basta definir um bom limiar e usar o conjunto certo de técnicas de pré-processamento.

                          in reply to: Rastreamento #35389
                          Gabriel Alves
                          Keymaster

                            Olá Breno!

                            Para resolver isso você pode usar em conjunto ao tracking um detector de objetos preciso como o YOLO. Usando um detector de objetos você consegue filtrar bem qual a classe do objeto que deseja fazer o tracking e evitar que apareça objetos distintos.

                            Aliás, para facilitar tem um repositório que já implementa essas duas técnicas juntas, dê uma olhada: https://github.com/ankit16-py/YOLOv3-KCF-Fast-Object-Tracker

                            in reply to: Como usar o PointRend em um modelo personalizado #35168
                            Gabriel Alves
                            Keymaster

                              Opa que ótimo =)

                              Disponha!

                              in reply to: Como usar o PointRend em um modelo personalizado #35113
                              Gabriel Alves
                              Keymaster

                                Olá! Depende das configurações que você usou, qual dos materiais que você usou como referência?

                                Pode também estar ocorrendo devido a algum erro na versão que você baixou, mas antes recomendo revisar as configurações que você definiu para treinamento e também testar outros valores (como por exemplo aqui).

                                Como esse é um erro bem específico acho que talvez não encontre uma solução que resolva ele de modo fácil, portanto o que você pode fazer além de tentar outra versão (se isso não ajudar) é alterar manualmente o código e fazer algumas pequenas modificações necessárias para que não ocorra esse problema e assim consiga prosseguir com o treinamento. Para esse erro em específico, talvez isso aqui seja o suficiente para evitar o problema.

                                in reply to: Criação de um modelo customizado de pilha de madeira #35111
                                Gabriel Alves
                                Keymaster

                                  Olá! A cada 1000 iterações treinadas o darknet salva os pesos em um arquivo .weights dentro daquele diretório que você especificou para salvar o backup do modelo treinado. Então se você treinou 3000 iterações é para ter lá yolov4_custom_1000.weights, yolov4_custom_2000.weights e yolov4_custom_3000.weights (por exemplo, considerando que definiu o nome do arquivo como “yolov4_custom”) – e além disso tem o “_last.weights” (com os ultimos pesos salvos) e o “_best.weights” (contendo os pesos da iteração onde o darknet definiu como os que obtiveram melhores resultados).

                                  Quantos arquivos diferentes foram salvos para você? É assim que você vai saber até quantas iterações foi treinado.

                                  Se não apareceu o bounding box de nada mesmo diminuindo consideravelmente o threshold então parece que ocorreu algum problema na definição do treinamento, pode ter sido na etapa onde define-se as configurações do modelo treinado ou até mesmo na criação do dataset. Mas antes, sugiro você fazer um teste, montando um dataset com outros 2 objetos (exatamente como mostramos em aula, usando o dataset OID) e assim fazer o passo a passo lá, fazendo isso verifique se ele vai treinar certinho ou não. Seria só para fins de teste mesmo, pois provavelmente é algum detalhezinho na criação do dataset ou nas configurações do arquivo .cfg (por isso veja se definiu os valores seguindo aquelas fórmulas que mostramos em aula).

                                  Fazendo esses testes acredito que vai descobrir onde está o problema, mas caso não consiga é só avisar.

                                Viewing 15 posts - 301 through 315 (of 415 total)