Respostas no Fórum

Visualizando 15 posts - 346 até 360 (de 393 do total)
  • Autor
    Posts
  • em resposta a: Could not initialize tesseract. #30074
    Gabriel Alves
    Moderador

      Olá Daniel!

      O arquivo “por.traineddata” (e outros, caso esteja usando também outros idiomas) se encontram dentro desse diretório “tessdata“?

      Aliás, você mencionou que isso ocorre quando usa a função image_to_string, se usar a image_to_data funciona normal sem erros?

      Verifique também, se ao remover o “–tessdata-dir tessdata” do “config_tesseract” roda sem erros.

      em resposta a: Cade o codigo #30053
      Gabriel Alves
      Moderador

        Olá Breno! O código dessa aula está no Colab dessa seção, clique aqui para acessar. Lembrando na primeira aula de cada seção tem o link pro Colab, dentro da aba “Materiais”.

        Para facilitar, basta você clicar aqui que vai abrir o Colab na parte exata do código que você precisa.

        em resposta a: Matrix Confusion YOLO #29906
        Gabriel Alves
        Moderador

          Olá Rafael! Primeiramente, ficamos felizes que esteja gostando do curso =)

          Sobre sua dúvida, há como sim, embora não seja tão usado no caso do YOLO. Esse artigo explica porque é menos intuitivo.

          Há inclusive um repositório para facilitar a implementação com o YOLO, dê uma olhada aqui, creio que vai te auxiliar bastante no processo.

          em resposta a: Existe algum dataset/modelo treinado só de animais (zoologico) #29865
          Gabriel Alves
          Moderador

            Olá Antonio!

            Recomendo muito dar uma olhada no Open Images Dataset (OID), ele é comentado mais pra frente no curso, na parte onde é abordado como treinar seu próprio modelo. No OID eu sei que tem todos esses animais que você citou de exemplo e muitos outros, talvez já tenha todos os que você precise.  Então você pode fazer o download dessas classes (no caso, os animais) específicos usando aquela ferramenta que mostramos em aula, basta especificar o nome das classes e será feito apenas o download das imagens delas e depois fazer o treinamento. Já que você comentou que queria um modelo pronto (talvez por não poder treinar) sugiro dar uma olhada no modelo pra YOLOv3 que foi treinado em cima desse dataset (então vai conter essas classes que você precisa), basta baixar aqui (para mais informações veja o README do darknet). Se ao testar você notar que está faltando algum animal ou se não tiver a precisão necessária então recomendo treinar um novo modelo para o v4 do YOLO, basta fazer o download das imagens conforme explicado e seguir para as etapas de treinamento.

            Caso não tenha algum animal importante nesse dataset eu recomendo procurar por outros datasets específicos para animais de zoológico no Kaggle, como por exemplo esse.

            em resposta a: Reconhecimento de texto em várias linhas #29663
            Gabriel Alves
            Moderador

              Olá Guilherme! Primeiramente, ficamos felizes que esteja gostando do curso!

              Sobre sua dúvida, você poderia usar uma função do Python para substituir por espaço (” “) os caracteres que determinam uma nova linha em sua string. Talvez o modo mais simples seria usando a função replace(), cujo primeiro parâmetro é o “alvo” que você quer substituir e o segundo parâmetro é o que você quer que fique no lugar.

              Por exemplo, vamos assumir que seu texto esteja em uma variável chamada “texto” (que é populada com o retorno da função que fez o OCR). Caso você tenha usado a função image_to_string() do Pytesseract o texto vem com a formatação que ele identificou na imagem, ou seja, incluindo as quebras de linha. Então para colocar espaço no lugar das quebras de linha basta fazer assim:

              texto = texto.replace("\n", " ")

              como resultado você terá

              '515 097'

              Caso use a função image_to_data() para fazer o OCR será fácil também, você pode primeiro inicializar uma nova variável com uma string vazia

              texto_completo = “”

              obs: você coloca isso antes do for que percorrerá cada resultado retornado pela função de OCR.

              E dentro do for, pra cada iteração, você vai deixar assim

              for i in range(0, len(resultado["text"])):
              
                  ....
              
                  texto = resultado["text"][i]
              
                  texto_completo = texto_completo + texto + " "

              ao final, a variável texto_completo conterá esse resultado “515 097”

              Se você está utilizando uma abordagem que detecta antes o texto na imagem então para fazer isso que você quer vai ser um pouco mais complexo e exige uma codificação mais específica. Caso esteja usando um detector específico para textos (como o EAST por exemplo) provavelmente será um pouco mais fácil, já que ele deve agrupar os caracteres que estejam lado a lado (igual ao image_to_data), assim:

              “515”  “097”

              ou seja, são duas detecções separadas na imagem. Basta fazer um for para percorrer os resultados e concatenar cada bloco de texto, conforme nesse ultimo código que te passei acima (e também, antes de fazer o for, de preferência agrupe pela coordenada x e y onde a bounding box inicia, para evitar que o texto final fique na ordem errada).

              E caso esteja utilizando a técnica para detectar cada caractere individualmente será um pouquinho ainda mais trabalhoso e chato, mas o conceito é igual. Você terá que agrupar cada caractere próximo a partir da coordenada x (onde inicia a bounding box do caractere) e então programar um modo de separar os caracteres cuja coordenada y (do inicio da bounding box) esteja muito acima ou muito abaixo, o que configura como uma nova linha (já que se estivesse em uma nova linha teria a coordenada y bem próxima, lembrando que o y corresponde à “altura” do ponto de início dentro da imagem).

              Obs: pelo que vejo você deseja fazer a detecção de texto em cenários naturais, buscando texto em lugares que são “comuns” e esperados (no caso, postes). Sugiro considerar a possibilidade de criar um detector de objetos (com a técnica YOLO por exemplo) para que antes de realizar o OCR seja detectada a região de interesse do objeto na imagem que você quer realizar o reconhecimento de texto, e assim, após detectada a região é possível realizar o OCR apenas dentro da área da caixa delimitadora. Ou, se não for usar um detector, utilize técnicas de processamento para considerar apenas a área que você deseja realizar o OCR (igual no exemplo do projeto para deteçcão de placas de carros), pois caso contrário o Tesseract vai ter muita dificuldade de reconhecer  (já com o EasyOCR vai ser um pouco mais fácil). Isso é interessante para descartar tudo o que estiver fora da região de interesse na imagem – o que no seu exemplo seria o próprio poste – pois talvez em algumas das fotos tiradas haja a presença de texto em outros lugares, que não seja dentro do poste (por exemplo, a foto tirada pode conter ao fundo o número da casa ou outro número que não é de seu interesse detectar) e isso vai atrapalhar mais ainda seus resultados.

              • Esta resposta foi modificada 3 anos, 9 meses atrás por Gabriel Alves.
              Gabriel Alves
              Moderador

                Olá Kezia!

                De cara eu recomendaria pelo menos 1500 imagens para cada classe se você deseja obter uma precisão boa, mas no geral vai depender muito das próprias características do objeto, da complexidade de sua forma. Além disso, depende um pouco da qualidade das imagens de treinamento. Em todo o caso, o autor do repositório darknet recomenda 2000 para cada classe.

                Essa quantidade para cada classe também pode depender do seu cenário, por exemplo, pode ser que algumas classes para o seu caso sejam muito mais importante de detectar do que outras, se for esse o caso então não precisa necessariamente igualar a quantidade de imagens para essas que não são tão fundamentais detectar (mas se possível deixe a quantidade igual pois é o recomendado).

                em resposta a: Duvida sobre detecção de obejetos e separação por cores #29637
                Gabriel Alves
                Moderador

                  Olá Felix!

                  O que eu mais recomendo para o seu caso seria então fazer uma detecção de cor posteriormente à detecção do objeto. Ou seja, não treinar o modelo para reconhecer bolas de cores diferentes como classes individuais (ex: 1 = bola vermelha; 2 = bola azul, etc.) mas sim treiná-lo para reconhecer o objeto independente da cor (ex: classe 1 = bola).

                  Ou seja, até aí seria exatamente como está sendo agora, utilizar o YOLO para detectar o(s) objeto(s) na imagem. Após fazer essa detecção, você pode implementar uma técnica que irá extrair qual é a cor mais predominante, para cada uma das regiões de interesse (área dentro da caixa delimitadora do objeto localizado).

                  Tem esse tutorial aqui que explica muito bem como fazer essa detecção de cor.

                  Encontrei também esse código completo se você quiser implementar: https://pastebin.com/WVhfmphS

                  • Esta resposta foi modificada 3 anos, 9 meses atrás por Gabriel Alves.
                  em resposta a: Curso de detecção de Audio #29636
                  Gabriel Alves
                  Moderador

                    Olá Pedro! Por enquanto não possuímos tal curso, porém está em nosso planejamento lançar um curso sobre reconhecimento de áudios ainda no segundo semestre desse ano.

                    Caso você precise implementar essa técnica, recomendo a leitura desse artigo: https://letscode.com.br/blog/speech-recognition-com-python

                    em resposta a: Base treinamento minúscula #29633
                    Gabriel Alves
                    Moderador

                      Olá! Tudo bem?

                      Infelizmente não temos como dizer como a SS 5520 funciona exatamente por não ser uma informação pública (até onde sei), além disso o código do software usado por ela não é aberto. Portanto, se quiser descobrir mais informações sobre qual algoritmo e técnica ela utiliza teria que consultar talvez o manual ou, mais provavelmente, tentar buscar a informação em uma fonte que não seja tão pública (pelo que pude pesquisar na internet não foi encontrado nada a respeito do seu funcionamento).

                      Hoje em dia existem técnicas melhores que essas do OpenCV, que inclusive são muito mais precisas quando há apenas uma foto a disposição. As melhores para essa tarefa são as técnicas baseadas em Deep Learning, que são até mais robustas e portanto tendem a obter melhores resultados em cenários mais desafiadores (como por exemplo é o caso de locais onde a iluminação não é tão boa, conforme você comentou). Principalmente nas versões mais recentes, o OpenCV tem focado bastante no módulo DNN, que permite implementar essas técnicas de Deep Learning. Por isso, o que muitos acabam fazendo hoje para obter bons resultados é utilizar o OpenCV em conjunto com a biblioteca Dlib para fazer o reconhecimento facial. Recomendo esse artigo que explica mais detalhes sobre a técnica e como fazer a implementação:  https://www.pyimagesearch.com/2018/09/24/opencv-face-recognition/

                      Outra técnica muito boa para reconhecimento facial é a FaceNet, você pode saber mais sobre ela aqui: https://machinelearningmastery.com/how-to-develop-a-face-recognition-system-using-facenet-in-keras-and-an-svm-classifier/

                      Há também um projeto open source baseado em FaceNet, chamado OpenFace: https://cmusatyalab.github.io/openface/

                      • Esta resposta foi modificada 3 anos, 9 meses atrás por Gabriel Alves.
                      em resposta a: Material detecção de objetos com yolo e opencv faltando #29485
                      Gabriel Alves
                      Moderador
                        em resposta a: arquivo tutorial Linux #29484
                        Gabriel Alves
                        Moderador

                          Olá Pedro Ivo!

                          O pdf com o tutorial para instalar no Linux é esse aqui: https://drive.google.com/file/d/1Fd7j44781xCOHe-4XWvoWMokmR4eu38y/view?usp=sharing

                          em resposta a: compartilhar haarcascade de mascara. #29483
                          Gabriel Alves
                          Moderador

                            Olá Pedro,

                            Infelizmente não possuímos. Se for usar o haarcascade para isso creio que teria que procurar em repositórios na internet ou criar um do zero.

                            Porém aqui na plataforma há uma seção dentro de “Conteúdo” (que você pode acessar a partir do menu ao topo) que explica bem como você pode implementar uma técnica muito boa para detectar se a pessoa está utilizando máscara ou não: https://iaexpert.academy/conteudo-assinatura/detector-de-mascaras-com-python/ recomendo dar uma olhada pois talvez sirva para o seu caso.

                            em resposta a: script para gerar imagens de combinação #29147
                            Gabriel Alves
                            Moderador

                              Olá!

                              Essas imagens de combinação que você diz são referentes às amostras criadas a partir da imagem do objeto, usado para o treinamento do haarcascade personalizado? Se sim, você pode gerar elas através do comando opencv_createsamples. Tudo isso é mais explicado no curso “Detecção de Objetos com Python e OpenCV”.

                              em resposta a: download do artigo original do algoritmo Viola-Jones #29144
                              Gabriel Alves
                              Moderador

                                Olá!

                                O artigo original do Haar cascade pode ser baixado aqui: https://www.cs.cmu.edu/~efros/courses/LBMV07/Papers/viola-cvpr-01.pdf

                                em resposta a: Duvida sobre Estudo de detecção de Faces com OpenCV #29143
                                Gabriel Alves
                                Moderador

                                  Olá Pedro Ivo, seja bem-vindo à plataforma!
                                  Para a detecção de faces com o OpenCV, a técnica mais utilizada é a haarcascade, que é ensinada nesse mesmo curso sobre detecção de faces.

                                  Apesar de ser relativamente antiga, essa técnica é ainda preferida por muitos pois ela é muito leve e rápida de processar, e na grande maioria das situações obtém uma precisão boa, então acaba sendo bastante escolhida.
                                  Para detecção de faces há outras técnicas mais precisas hoje em dia, porém verá que o custo computacional delas é bem maior. Outra técnica muito boa (e que no geral oferece melhores resultados) é a que utiliza a biblioteca Dlib, aliás tem curso aqui na IA Expert também explicando sobre ela, é o “Reconhecimento de Faces e de Objetos com Python e Dlib”.

                                  Tem uma outra técnica que é mais precisa ainda, baseada em Deep Learning, que aliás pode ser implementada pelo próprio OpenCV através do módulo DNN. Saiba mais sobre ela aqui: https://www.pyimagesearch.com/2018/02/26/face-detection-with-opencv-and-deep-learning/

                                  A decisão sobre qual escolher vai depender muito do seu hardware e qual é o FPS mínimo que seria tolerável pro seu sistema, então se possui um hardware bem limitado terá que optar provavelmente pela haarcascade mesmo, mas também recomendo testar com o dlib pois dependendo da resolução do vídeo pode ter um custo-benefício melhor.

                                  Sobre o material que você perguntou, eu tenho alguns que posso te passar. São três estudos comparativos que falam sobre essas técnicas, onde é analisado tanto a precisão quanto o custo computacional de cada uma, acredito que esses artigos ajudem mais ainda a tomar sua decisão:

                                  https://towardsdatascience.com/face-detection-models-which-to-use-and-why-d263e82c302c

                                  http://datahacker.rs/017-face-detection-algorithms-comparison/

                                  https://rupeshthetech.medium.com/face-detection-models-and-their-performance-comparison-eb8da55f328c

                                Visualizando 15 posts - 346 até 360 (de 393 do total)