Forum Replies Created

Viewing 15 posts - 331 through 345 (of 415 total)
  • Author
    Posts
  • in reply to: Overfitining #33090
    Gabriel Alves
    Keymaster

      Olá Rafael!

      Na verdade isso é uma coisa que depende muito do dataset com o qual você está trabalhando, pois está ligado às “características” do seu set de treinamento. Primeiramente, qual dataset você está tentando fazer transfer learning? E quantas imagens ele possui (pra treinamento e validação)?

      Pois em alguns conjuntos é necessário ajustes mais complexos já que isso depende das características dos próprios dados (nesse caso, imagens).

      Outra coisa: é possível aumentar a quantidade de imagens em seu dataset? Se sim, sugiro fazer esse experimento e realizar o treinamento novamente. Se a acurácia do set de validação está ruim significa que o modelo não está conseguindo aprender com os dados e extrair as features relevantes necessárias para ter um bom desempenho.

      Revise o dataset e garanta que as imagens de treinamento sejam uma boa referência para que o modelo consiga prever o set de validação, pois não adianta as imagens de validação serem muito diferentes também e esperar que com poucos ajustes o modelo vai aprender a identificar bem esses padrões. Caso não possa capturar mais imagens, pode usar a técnica de Data Augmentation.

      Minha recomendação então é fazer mais experimentos nessas camadas conforme você está fazendo – deixo como sugestão a leitura desse guia aqui que acho que vai te ajudar.

      Além disso, o que vai melhorar os resultados é descongelar (unfreeze) as camadas do modelo. Esse método de manter as camadas congeladas garante uma melhora incrivel na velocidade de treinamento, porém fica muito limitado à acurácia, então se precisa melhorar essa acurácia – especialmente porque a precisão no set de validação está ruim – o mais indicado é testar isso (ou seja, diminuir as camadas congeladas e aumentar camadas treináveis).

      in reply to: PySerial #33002
      Gabriel Alves
      Keymaster

        Olá Israel!

        Infelizmente não possuimos nenhum curso que aborde essa área, porém vou deixar abaixo alguns materiais que podem te ajudar. E a posição dos objetos você pode obter através das coordenadas das caixas delimitadoras, retornadas pela função que faz a predição na implementação com OpenCV.

        in reply to: Dúvidas de treinamento do modelo #32817
        Gabriel Alves
        Keymaster

          Opa, então seria em média umas 85 fotos para cada classe. Isso se o dataset estiver bem balanceado, pois se tiver por exemplo classes com uma quantidade de fotos bem abaixo dessa média (ex: 10 fotos) isso será ainda outro problema, o ideal é que esteja bem distribuído e se tiver classes com poucas fotos será necessário completar com mais fotos (ou gerar amostras através de técnicas de sintetização de novas imagens) pois se não vai ocorrer muitas detecções incorretas para essas classes especialmente.

          Como está sendo treinado uma quantidade de classes muito elevada (140 é até bem acima do MS COCO, que já tem bastante) então pode esperar que seja necessário treinar por mais tempo ainda para conseguir resultados melhores. Pois é conforme eu comentei, 17.000 embora pareça muito nesse caso é pouco considerando o número de classes (não há uma quantidade “certa” pois depende de algumas coisas como a complexidade dos objetos).

          Enfim, a sugestão continua sendo treinar por mais tempo. Treine o máximo de tempo que for possível e use daquela dica que comentei para evitar um possível overfitting.

          Se tiver muita disposição você poderia fazer um teste mais tarde: escolha apenas umas 5 classes e faça o treinamento do modelo com elas apenas. E depois compare os resultados obtidos, para verificar se a precisão melhora mesmo com uma quantidade de iterações menor (5.000 pelo menos), o que é o esperado. Se ainda assim continuar com resultados ruins então o problema é outro e não adianta treinar o modelo de 140 classes por mais tempo. Não creio que seja isso pois você seguiu as formulas para definir os valores do arquivo de config e imagino que as imagens de treinamento são boas e abrangentes, mas se por um acaso no teste com 5 classes continuar com uma assertividade próxima dessa sua atual então tem que verificar com mais calma o que mais pode ser; rever os passos e se as imagens de treinamento são o suficiente para o modelo aprender a detectar bem esses mesmos objetos nos cenários reais que você está testando (pois se for muito diferente em ambiente/iluminação/ângulo então a rede não entregará resultados tão bons como esperado).

          Gabriel Alves
          Keymaster

            Olá Gerson!

            Os parâmetros -w e -h do comando opencv_createsamples para geração do vetor servem para definir o tamanho final das imagens do cascade. Na etapa anterior você pode ter usado por exemplo outros tamanhos de largura e altura para a criação das amostras (também com o comando opencv_createsamples), pois você poderia por exemplo criar amostras com tamanhos maiores, só que ao treinar pode ter preferido usar um tamanho um pouco menor, já que você pode querer reduzir esse tamanho para demorar menos tempo no treinamento. Então você poderia fazer isso, embora recomendamos definir um tamanho inicial e usar ele com os 3 comandos.

            Ou seja, nessa etapa da criação do vetor o tamanho escolhido através dos parâmetros -w e -h é definido com o tamanho final do cascade e portanto esses valores devem ser o mesmos usados na etapa seguinte (com o comando de treinamento).

            in reply to: Dúvidas de treinamento do modelo #32804
            Gabriel Alves
            Keymaster

              Olá Bismarck!

              Antes de tudo seria bom saber mais ou menos quantas imagens de treinamento pra cada classe você adquiriu e está usando no treinamento. Embora 17.000 iterações possam parecer muito temos que lembrar que você está trabalhando com mais de 100 classes diferentes, que pro padrão já é algo bem elevado, então o número de iterações é relativamente pequeno se for considerar esse detalhe. Portanto pode deixar treinando por mais tempo se possível, enquanto notar que o mAP continua melhorando (no geral) e o loss diminuir pode deixar treinando.
              Como será treinado com um número de iterações bastante elevado recomendo você testar o modelo não só com os pesos que foi treinado por mais tempo mas também com os penúltimos, já que é sempre bom verificar se não está ocorrendo overfitting de algum modo.

              Quanto aos parâmetros do arquivo de configuração (ex: filters, etc.), confirme se você definiu os valores usando aquelas fórmulas que mostramos em aula, ou se não então informe quais valores você usou.

               

              in reply to: Arquivos #32744
              Gabriel Alves
              Keymaster

                Olá Emerson!

                Você quer testar com outras imagens de treinamento, isso?

                Para imagens de faces sugiro dar uma olhada nesse artigo https://analyticsindiamag.com/10-face-datasets-to-start-facial-recognition-projects/ – ele contém 10 bases de imagens de faces, que podem ser usadas para projetos de detecção ou de reconhecimento facial.

                Já se procura datasets de imagens diversas (não de faces) então deixo abaixo mais dois artigos contendo alguns conjunto de imagens bastante interessantes

                in reply to: Treinamento da RN #32398
                Gabriel Alves
                Keymaster

                  Olá!

                  Deveria aparecer sim, porém em alguns casos pode ser que nos primeiros ele não apareça e depois ele comece a mostrar logo nos próximos. Quando você executa, ele ficando atualizando os valores ou ele para? Tem que aparecer também as informações de cada iteração, conforme mostrado em aula.

                  in reply to: Curso do Zero para Detecção de Objetos #32383
                  Gabriel Alves
                  Keymaster

                    Olá!

                    Esse mesmo curso (Detecção de Objetos com YOLO, Darknet, OpenCV e Python) mostra como fazer tudo isso, depois dê uma olhada na grade dele.

                    Mais especificamente, para saber como fazer a anotação (annotation) das suas próprias imagens veja a aula “Criação do seu dataset de imagens manualmente”. Essa aula está mais pro final do curso, mas antes disso já é mostrado detalhadamente como fazer todo o processo de conversão e criação do weights usando conjuntos de imagens já prontos. Caso deseje usar o dataset seu personalizado basta substituir as imagens usadas nas aulas por essas imagens geradas após a anotação.

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

                      Olá Nycole!

                      Esse erro ocorre quando o arquivo da fonte do texto (“calibri.ttf”) não foi devidamente carregado, ou ocorreu algum problema ao ler o arquivo. Verifique se o caminho fornecido para esse arquivo está correto e se ele se encontra exatamente no diretório especificado. Caso não consiga resolver me avise e mande o seu código completo de ambas as funções (ou melhor, se possível compartilhe o seu Colab pois pode haver outra coisa interferindo).

                      in reply to: Data Augmentation #31843
                      Gabriel Alves
                      Keymaster

                        Olá Rafael!

                        Sobre o data augmentation com YOLO, só um comentário antes: a minha recomendação é sempre antes tentar buscar mais imagens do seu objeto, seja buscando em datasets de imagens na internet (como o ImageNet ou Open Images Dataset), ou, se o seu objeto for muito difícil de encontrar imagens (ou até mesmo “único”),  recomenda-se tirar novas fotos – o que realmente pode ser trabalhoso. Na verdade buscar novas imagens no geral pode ser trabalhoso, mas com certeza compensa pois assim o modelo terá uma melhor acurácia e estará mais preparado para detectar o objeto em situações mais diferenciadas.

                        No entanto, caso buscar mais imagens não seja uma opção, então usar Data Augmentation pode ajudar muito. O bom é que o Darknet por padrão já usa essa técnica em seu funcionamento, em algumas etapas do treinamento do modelo pra YOLOv4. Tem mais informações sobre isso nesse artigo. Porém há uma coisa que ele não faz (a princípio) e você pode querer implementar à parte, que é a transformação por rotação.

                        Deixarei abaixo mais dois materiais sobre como poderia usar data augmentation em conjunto com o YOLO:

                        https://medium.com/predict/data-augmentation-for-custom-object-detection-15674966e0c8

                        https://colab.research.google.com/github/joheras/CLoDSA/blob/master/notebooks/CLODSA_YOLO.ipynb – Colab com código de exemplo, que mostra um modo como fazer o augmentation já no formato usado pelo YOLO (para as coordenadas das caixas delimitadoras do arquivo de anotação).

                        in reply to: padrao_data #31693
                        Gabriel Alves
                        Keymaster

                          Olá Nycole!

                          Você conseguiria passar a mensagem de erro completa? Porque na verdade no seu print infelizmente falta a parte da mensagem que mostraria o erro de fato, está mostrando apenas a linha de código onde ocorreu o erro. Se puder passar a mensagem completa vou conseguir te auxiliar melhor. Mas talvez nem precise, dê uma olhada no Colab oficial da seção: https://colab.research.google.com/drive/1mS01T2ljMRsh00_gN7OQPdXFdM6urPrj?usp=sharing

                          Esse código em questão está lá onde diz “Buscando informações específicas na imagem”. Eu acabei de testar aqui e executou sem problemas. Se após conferir você ver que o código da função “escreve_texto” está igual ao código da aula e mesmo assim o erro persistir então acredito que a melhor hipótese para a causa do erro seja algum problema ao ler o arquivo “calibri.ttf”, então dê uma olhada se ele foi colocado no diretório corretamente. Se mesmo assim não conseguir resolver me avise e se possível mande a mensagem de erro completa.

                          in reply to: Arquivo de exemplo aula: BÔNUS 6: Transfer Learning com VGG16 #31614
                          Gabriel Alves
                          Keymaster

                            Disponha!

                            in reply to: Não consigo usar o Cmder #31613
                            Gabriel Alves
                            Keymaster

                              Olá Diogenes!

                              Para acessar um diretório você precisa colocar o comando “cd” antes de informar o nome da pasta, por isso ele dá erro de comando não reconhecido.

                              Ou seja, basta digitar “cd [nome do diretório]”. Aí você escolhe se vai informar o caminho relativo ou absoluto. Se quiser saber mais sobre o cd e outros comandos sugiro dar uma olhada aqui: https://www.infowester.com/tutdos.php

                              Sobre não conseguir baixar o notepad++, qual erro aparece para você?

                              in reply to: Arquivos – aula “instalação de ferramentas #31123
                              Gabriel Alves
                              Keymaster

                                Olá Diogenes!

                                Essa versão que você se refere creio que seria do próprio OpenCV. Na verdade, o que parece é que nessas versões mais recentes realmente não ta vindo os executáveis do createsamples e traincascade dentro dessa pasta bin.

                                Até resolverem essa questão (se resolverem, pois pelo jeito foi descontinuado) eu recomendo você baixar uma versão anterior como a 3.4.6. Você pode baixar ela aqui: https://sourceforge.net/projects/opencvlibrary/files/3.4.6/opencv-3.4.6-vc14_vc15.exe/download

                                Nessa versão certamente vai ter os arquivos necessários.

                                Aí se mais tarde por algum motivo você precisar que sua aplicação use a versão 4.1, você pode usar essa versão 3.4.6 apenas para criar os cascades e utilizá-los normalmente na versão 4 (pois essa versão do OpenCV que está sendo baixado agora será para fazer o treinamento e gerar o .xml, e para executar esses cascades você pode usar qualquer versão já que não há problema de incompatibilidade entra elas quanto ao .xml). E também não haveria problema já que da para ter mais de uma versão do OpenCV instalada ao mesmo tempo.

                                in reply to: Make usando Gitbash #31122
                                Gabriel Alves
                                Keymaster

                                  Olá Giovanni,

                                  Por um acaso se você não fizer as modificações no arquivo Makefile ele executa a etapa seguinte normal? Ou o erro apenas ocorre caso seja feita a modificação?

                                  E só pra conferir, você baixou exatamente esse repositório aqui né? => https://github.com/AlexeyAB/darknet

                                  Pois tem o repositório darknet do pjreddie (que antigamente era o oficial) e que possui menos suporte.

                                  Aliás, nesse repositório há um checklist com os requisitos para rodar o darknet no Windows, recomendo dar olhada também só pra conferir mesmo: https://github.com/AlexeyAB/darknet#requirements-for-windows-linux-and-macos

                                Viewing 15 posts - 331 through 345 (of 415 total)