Forum Replies Created

Viewing 15 posts - 121 through 135 (of 425 total)
  • Author
    Posts
  • in reply to: Transformação para passar na rede neural #45593
    Gabriel Alves
    Keymaster

      Olá Victor!

      Para passar para a rede neural as imagens são geralmente convertidas para vetores (um array unidimensional), pois essas camadas trabalham com dados em formato vetorial. Por isso que anteriormente você viu ser feito dessa forma.

      No entanto, para visualização e algumas operações específicas é mais conveniente e necessário trabalhar com imagens no formato matricial (bidimensional). No código que você mencionou, o X_teste[0].reshape(28,28) está convertendo o vetor de volta para uma matriz de 28×28 pixels para que possamos visualizar a imagem original de maneira mais intuitiva. Ou seja, é apenas para visualizarmos a imagem (repare que para isso estamos usando a função plt.imshow, que é justamente usada para exibir a imagem).

      Portanto, essa conversão não é necessária para o processamento na rede neural, mas é útil para a visualização e interpretação dos dados. Então, embora a imagem seja processada internamente como um vetor ao passar pelas camadas densas, ela é reformatada em uma matriz para facilitar a visualização.

      in reply to: Erro ao instalar o Dlib #45592
      Gabriel Alves
      Keymaster

        Olá Cesar!

        Nesse caso você vai precisar instalar antes o CMake, disponível para baixar aqui https://cmake.org/download/

        Em seguida, instale também o compilador Visual studio tools:  https://visualstudio.microsoft.com/visual-cpp-build-tools/. Durante a instalação, certifique-se de selecionar os componentes de desenvolvimento de C++.

        Para evitar alguns erros comuns que podem vir a ocorrer, eu sugiro dar uma olhada nesse artigo, que contém algumas dicas de como evitar os erros, como por exemplo adicionar o CMake às variáveis de ambiente do Windows.

        Gabriel Alves
        Keymaster

          Olá Victor!

          Para fazer uma cópia do arquivo da aula no Colab, selecione a opção “Arquivo > Fazer uma cópia no Drive”, no menu do topo.
          Caso tenha dúvidas, veja a aula “Carregamento e processamento da imagem”, isso é mostrado no minuto 1:33 do vídeo.

          Como alternativa você pode fazer o download do .ipynb dentro da mesma opção Arquivo e depois fazer o upload no Colab, mas desse modo acima acaba sendo mais prático.

          O link para o Colab contendo o código está presente sempre na primeira aula da seção, ou da primeira aula onde aquele código é exibido. E quanto aos demais arquivos que serão usados ao longo do curso, estão no drive da aula “Recursos para download”.

          in reply to: Valores Matriz de confusão #45420
          Gabriel Alves
          Keymaster

            Olá!

            Na verdade está um pouco invertido de acordo com a ordem que você apresentou. O correto seria:

            • Verdadeiro Positivo = 129
            • Falso Positivo = 60  (pois a predição foi ‘isoladores’ e o real era ‘fundo’, portanto é incorretamente marcado como positivo)
            • Falso Negativo = 89  (pois a predição foi ‘fundo’ mas na realidade era ‘isoladores’, portanto é incorretamente marcado como negativo)
            • Verdadeiro Negativo = (não aplicável)

            Portanto, talvez assim estaria mais próxima da ordem que você mencionou estar mais acostumado, embora não exatamente ainda. Aliás, acredito que não deve haver uma forma “correta”, se for pesquisar verá que não há uma unanimidade nesse sentido pois pode-se encontrar diversos materiais e artigos sérios onde tanto o FP quanto o FN estão em cima, ou outros onde segue essa mesma ordem que você passou. No entanto, possivelmente a ordem mais usada é onde o Verdadeiro Positivo esteja no canto superior esquerdo e o Verdadeiro Negativo esteja no canto inferior direito (aliás, se pesquisar em inglês observará que é mais comum ainda seguirem essa mesma ordem que o YOLO usa).

            in reply to: Melhor época de treinamento do modelo #45406
            Gabriel Alves
            Keymaster

              Olá Brenda!

              Para saber qual a época que corresponde ao melhor modelo treinado (o best.pt) você pode consultar o arquivo results.csv que é executado durante o treinamento. Este arquivo registra métricas como precisão, recall, mAP e perda de valor para cada época. Procure a época com melhor desempenho (geralmente a menor perda de validação ou o maior mAP, dependendo de qual best.pt foi selecionado) para identificar a época a que corresponde o seu modelo best.pt. Lembrando que esse arquivo best.pt (contendo os pesos salvos para o melhor resultado) também está acessível dentro do diretório de treinamento, junto ao last.pt (os pesos mais recentes salvos, independente de serem os melhores ou não).

              in reply to: Estimativa de pose #45404
              Gabriel Alves
              Keymaster

                Olá Brenda!

                A estimativa de pose do YOLOv8 pode ser feita usando os recursos implementados nessa seção. Para carregar o modelo você pode usar o mesmo método “YOLO()” porém ao invés de passar como parâmetro o nome do arquivo contendo os pesos do modelo de detecção você vai colocar o nome do modelo de estimativa de pose.

                Para ver um exemplo e mais informações sobre os parâmetros, veja aqui https://docs.ultralytics.com/pt/tasks/pose/#models

                in reply to: Texto Não e reconhecido #45334
                Gabriel Alves
                Keymaster

                  Disponha =)

                  in reply to: Como instalar o automatic1111 (local) com esses plugins? #45333
                  Gabriel Alves
                  Keymaster

                    Olá Arthur!

                    Deve estar mostrando diferente por causa das extensões, para deixar com a configuração mais próxima à do curso eu sugiro executar os comandos listado no bloco dentro do passo 2 (Instalação das bibliotecas e recursos essenciais). Pode deixar na mesma ordem que eles aparecem lá.

                    Nesse bloco é feita a instalação de algumas bibliotecas e de várias extensões diferentes que serão carregadas ao abrir o Automtic1111. Cada linha contendo o git clone corresponde a uma extensão/plugin diferente. Por exemplo, o comando  “!git clone –depth 1 https://github.com/ahgsql/StyleSelectorXL”   irá instalar a extensão de seletor de estilos. Ao executar localmente, a única diferença é que você deve retirar a exclamação do início do comando (já o resto pode deixar igual).

                    in reply to: Valores Matriz de confusão #45332
                    Gabriel Alves
                    Keymaster

                      Olá Francisco!

                      Esse conceito de ‘background’ existe no contexto da matriz de confusão e é usado para indicar previsões falso-positivas do seu modelo quando ele vê objetos inexistentes em segundo plano. Ou seja, o background (fundo) seria aquilo que não é o objeto, desse modo é possível calcular e visualizar melhor os falsos positivos, que são os objetos incorretamente detectados.

                      Os demais conceitos são os mesmos encontrados em qualquer tipo de matriz de confusão. Não sei o quão familiarizado está com esse método de avaliação, mas só para lembrar rapidamente que a matriz de confusão é uma tabela que compara as previsões do modelo com os valores reais, organizada de forma que as linhas representam as classes reais e as colunas representam as classes preditas. Cada célula da matriz contém o número de amostras que correspondem a uma combinação específica de classe real e classe predita. Os valores dentro da matriz são divididos em quatro categorias principais: Verdadeiro Positivo (TP), Verdadeiro Negativo (TN), Falso Positivo (FP) e Falso Negativo (FN). TP indica o número de instâncias em que o modelo corretamente previu a classe positiva; TN é o número de instâncias corretamente identificadas como negativas; FP refere-se às instâncias incorretamente classificadas como positivas; e FN são as instâncias que foram incorretamente classificadas como negativas. O eixo X (horizontal) da matriz de confusão corresponde às classes classes reais, enquanto o eixo Y (vertical) corresponde às preditas.

                      Nesse diagrama aqui é mostrado o processo de criação da matriz de confusão. Se desejar uma explicação bem mais detalhada do processo, recomendo esse artigo.

                      in reply to: Texto Não e reconhecido #45324
                      Gabriel Alves
                      Keymaster

                        Olá, que ótimo!

                        Quanto ao exemplo fornecido, o que pode estar dificultando o reconhecimento é a perspectiva de placa na foto, veja que pelo fato de não estar alinhada o texto fica na diagonal e isso pode dificultar o OCR. Para corrigir isso, você pode usar alguns conjuntos de técnicas de processamento para fazer a correção da perspectiva, veja esse código aqui de exemplo.

                        in reply to: Materiais sobre SSD e Yunet #45323
                        Gabriel Alves
                        Keymaster

                          Olá Jailson!

                          Sobre SSD temos sim, no curso Detecção / Reconhecimento Facial com Python. E agradecemos sua sugestão

                          O YuNet é ótimo realmente, ele por coincidência foi publicado logo junto com o lançamento desse curso então não teria como colocar em sua grade. Mas se busca por técnicas de detecção mais modernas, recomendamos abordagens como o YOLOv8 por exemplo que é abordado no curso dessa técnica (aqui), é ainda mais recente e poderoso.

                          in reply to: Texto Não e reconhecido #45304
                          Gabriel Alves
                          Keymaster

                            Olá Rodrigo!

                            Você já tentou alterar os parâmetros, como o –psm?

                            Outra coisa, apesar de ter detectado você consegue verificar se foi detectada exatamente a região correta da placa? Para isso, retire do comentário a linha de código show_img(processed_plate)

                            Pois nesse código está programado para mostrar que houve a detecção, mas em alguns casos não foi a região certa da placa.

                            Sugiro testar também o EasyOCR, caso não tenha testado ainda, pois ele tem uma tendência a funcionar melhor para imagens em situações inseridas no mundo real (em “cenários naturais”) exigindo menos esforço para se conseguir melhores resultados. Também pode conseguir resultados ótimos com o Tesseract, porém exige um pouco de atenção a mais para as técnicas de pré-processamento de imagem. Por isso, recomendamos explorar todas as citadas na seção “Técnicas para pré-processamento de imagens”.

                            Já se você verificou ali que o problema foi em detectar corretamente a região da placa, então você pode customizar os parâmetros do código de detecção, ou (mais indicado) usar alguma técnica mais moderna baseada em deep learning, como o YOLO, assim garantirá uma detecção mais precisa da placa para as imagens que vier a testar. Você pode encontrar um código completo com a versão mais recente do YOLO nesse repositório.

                            Então se houver dificuldade na detecção da placa eu sugiro usar logo algumas dessas técnicas baseadas em deep learning para garantir maior precisão, exigindo menos tempo para adaptar o algoritmo. Como o foco do curso acaba sendo o OCR então isso não foi abordado, porém visto que essas técnicas modernas de detecção hoje em dia permitem uma implementação mais fácil então eu sugiro usá-las.

                            in reply to: poses com control net #45303
                            Gabriel Alves
                            Keymaster

                              Olá!

                              Referente ao IP Adapter, ele funciona em modelos XL porém tem que usar o modelo IP Adapter próprio para esse tipo de versão, o link pra download está listado no .ipynb mas está com comentário; seria esse link aqui https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl.bin (para face). E no mesmo repositório tem também os demais modelos. Já o modelo IP Adapter “geral” (não focado em faces) está no outro repositório do mesmo autor, aqui https://huggingface.co/h94/IP-Adapter/tree/main/sdxl_models

                              E quanto aos resultados com ControlNet em modelos XL, assim como em versões 1.5 pode ser necessário mexer um poucos nos parâmetros até encontrar um equilíbrio interessante. Você chegou a testar em quais deles? Aliás, pediria que se possível mandar um print da seção de sua interface onde aparece o ControlNet, logo após você testar a imagem e ver que não deu certo (ou seja, mande print dessa parte, com as exatas configurações que testou e que não retornaram um resultado correto, assim como o prompt e parâmetros usados) – desse modo podemos tentar analisar melhor.

                              Outro detalhe que observei após rever sua resposta anterior: você mencionou que está usando o Dream Shaper XL com o scheduler DPM++2M SDE Karras, isso? Sugerimos deixar o DPM++ SDE Karras, sem o 2M, pois ele tende a funcionar bem melhor para esse modelo já que foi treinado desse modo.

                              Gabriel Alves
                              Keymaster

                                Olá Fernando!

                                Isso pode ocorrer em algumas versões mais recentes, portanto para uma maior compatibilidade eu sugiro você se basear no Colab da aula: https://colab.research.google.com/drive/1CEu9aKbtM0jDZMUN2282fMwV4c-fEn5O?usp=sharing

                                ali tem algumas pequenas mudanças, para tornar compatível com as versões mais recentes das bibliotecas, então recomendamos fazer uma cópia desse notebook e fazer as suas alterações a partir dele. Com isso é para dar certo, mas caso ocorra algum outro erro e que te impeça de realizar o treinamento então nos passe aqui mais informações sobre ele para tentarmos ajudar.

                                Gabriel Alves
                                Keymaster

                                  Olá!

                                  Na verdade essas pastas não são criadas com o comando fornecido no print. Essas pastas você cria manualmente, e depois na hora de ler você especifica no comando qual é o diretório exato dentro do seu Drive. Ou seja, você pode ou renomear as pastas e deixar exatamente igual foi feito em aula; ou pode mudar o comando, para colocar o caminho/diretório correspondente a como está em seu Drive. Caso esteja na dúvida, sugerimos deixar o mesmo nome e na mesma localização, assim pode-se usar o mesmo comando.

                                Viewing 15 posts - 121 through 135 (of 425 total)