Respostas no Fórum

Visualizando 15 posts - 331 até 345 (de 393 do total)
  • Autor
    Posts
  • em resposta a: OCR em videos usando o easyOCR, erro no while. #30844
    Gabriel Alves
    Moderador

      Olá Pedro,

      Primeiro tente trocar o while (cv2.waitKey(1) < 0):   por   while (True):

      e caso não rode como esperado coloque cv2.waitKey(1)   acima de   saida_video.write(frame)

      Você está rodando direto na sua máquina isso? E seu sistema operacional é Windows? Esse problema pode ocorrer as vezes, se o problema ainda assim continuar a recomendação nesse caso é desinstalar o OpenCV e instalar novamente. Você pode fazer isso através do comando pip

      pip uninstall opencv-python
      pip install opencv-python

      (ou opencv-contrib-python caso esteja usando a versão com +contrib)

       

      Caso não funcione, utilize esses comandos:

      pip uninstall opencv-python-headless -y
      pip install opencv-python --upgrade
      em resposta a: Detecção apenas de Números com EASYOCR ou EAST e OCR #30843
      Gabriel Alves
      Moderador

        Olá Pedro!

        Você pode nesse caso tentar usar a função allowlist, em readtext()

        Assim por exemplo:

        reader.readtext(‘sua_imagem.jpg’, allowlist =’0123456789′)
        Porém ouvi algumas reclamações quanto ao suporte desse filtro de caracteres/dígitos nesse caso, portanto se não funcionar bem para você talvez seja melhor fazer uma função própria que filtre caracteres indesejados e libere apenas dígitos (talvez com regex mesmo).

         

        Gabriel Alves
        Moderador

          Olá Bruno!

          Nesse caso creio que terá que converter para valor de ponto flutuante antes de passar pro int(), ou seja, usar a função float() antes.

          Então ficaria assim:  confianca = int(float(resultado[‘conf’] [i]))

          Se o erro persistir avise!

          em resposta a: TesseractError #30829
          Gabriel Alves
          Moderador

            Olá Fernando,

            Verifique se o vídeo foi baixado corretamente, pois esse erro pode ocorrer quando há algum problema para ler algum frame do vídeo. Verifique também se todas as células do Colab foram executadas. Caso esteja tudo ok, faça o seguinte: “Runtime > Factory reset runtime”  (se o seu estiver em português fica: “Ambiente de Execução > Redefinir o ambiente de execução para a configuração original”)

            E execute seu código novamente.

            Caso o erro permaneça, peço que compartilhe aqui seu Colab para poder auxiliar melhor.

            Mas de preferência compare antes o seu código com esse aqui: https://colab.research.google.com/drive/1a8iChq_1_vgbokpk5VXPWzjTe2lhdqJj?usp=sharing

            em resposta a: Desenvolvimento com interface gráfica utilizando Pyqt5 #30786
            Gabriel Alves
            Moderador
              em resposta a: TesseractError #30785
              Gabriel Alves
              Moderador

                Olá Fernando!

                Acredito que tenha ocorrido algum problema para baixar o arquivo de tradução (por.traineddata), provavelmente foi feito o download mas não do arquivo bruto (pode acontecer as vezes)
                veja quanto pesa o arquivo por.traineddata, ele tem que pesar aproximadamente 14mb

                Se ainda estiver com problemas para baixar então substitua em seu código (na linha do !wget) o link abaixo

                de:
                https://github.com/tesseract-ocr/tessdata/blob/master/por.traineddata?raw=true

                para:
                https://github.com/tesseract-ocr/tessdata/blob/main/por.traineddata?raw=true

                 

                Ou seja, o comando ficará assim

                !wget -O ./tessdata/por.traineddata https://github.com/tesseract-ocr/tessdata/blob/main/por.traineddata?raw=true

                 

                Após baixar esse arquivo e substituir o que baixou anteriormente faça os testes novamente.

                em resposta a: Junção entre função e darknet/prompt #30761
                Gabriel Alves
                Moderador

                  Olá Daniel!

                  Qual erro exatamente aparece para você (relacionado ao darknet.dll)? Ah e você está tentando no windows mesmo ou seria outro sistema operacional?

                  O Darknet deveria aceitar os comandos via linha de comandos normalmente (documentação), mas caso você esteja tendo muitas dificuldades de implementar dessa forma eu sugiro como possível solução ao seu problema você usar a implementação com o módulo DNN do OpenCV, que mostramos no curso. Seria viável para você? Pois assim você não precisa usar diretamente o darknet, você pode fazer a inferência carregando o modelo e passando para a função do módulo DNN.

                  em resposta a: Reconhecedores Eigenfaces e fisherfaces #30752
                  Gabriel Alves
                  Moderador

                    Olá Diogenes!

                    Desculpe a demora na resposta, mas precisaria que você me informasse qual erro está aparecendo para você, assim podemos te ajudar melhor pois podem ocorrer inúmeros tipos de erros durante a execução. Preciso que me passe a mensagem de erro caso tenha e a descrição do problema (se por exemplo é a imagem da webcam que não aparece, se ele dá erro na hora de reconhecer a face, se ele não reconhece nenhum rosto cadastrado, etc.)

                    Também sugiro comparar com o código da aula. Se achar melhor, pode baixar o código fonte completo na aula “Recursos” ou visualizar o código por aqui (pro caso do Eigenfaces e fisherfaces são os arquivos reconhecedor-eigenfaces.py e reconhecedor-fisherfaces.py, respectivamente).

                    Notei que no seu código está com algumas coisas um poucos diferentes, no caso o cv2.VideoCapture em seu código não tem o 0, está apenas cv2.VideoCapture(). Primeiramente faça esse ajuste e deixe cv2.VideoCapture(0) pois as vezes você pode estar com problema para capturar as imagens da sua webcam por esse motivo, já que dependendo da versão o OpenCV exige que você passe esse parâmetro (isso caso o seu problema realmente seja na aquisição das imagens, por isso é importante descrever qual tipo de problema exatamente você está tendo).

                    No caso de outros alunos que tiveram problemas para executar esses algoritmos 99% das vezes é relacionado à instalação OpenCV (quando não é um erro de digitação no código, o que é mais comum). Mas se você conseguiu executar sem erros o código de treinamento e gerou os arquivos .yml sem problemas então sua instalação deve estar Ok, caso contrário você teria algum erro ali na hora de usar as funções relacionadas ao reconhecimento facial (com eigen, fisher ou LBPH no nome) e não poderia gerar o arquivo .yml.

                    Outra coisa importante: verifique se a indentação do seu código está toda correta, conforme mostrado em aula.

                    Fazendo essas verificações provavelmente você conseguirá executar, mas caso não consiga peço por favor que me avise e me informe com detalhes qual mensagem de erro você está tendo e se possível a descrição do problema (Caso necessário, ou se não tiver alguma mensagem de erro).

                    • Esta resposta foi modificada 3 anos, 7 meses atrás por Gabriel Alves.
                    em resposta a: Arquivo Yalefaces.zip do curso “Reconhecimento facial #30684
                    Gabriel Alves
                    Moderador

                      Disponha! =)

                      em resposta a: Duvida no corte da regiao #30671
                      Gabriel Alves
                      Moderador

                        Olá Eduardo!

                        Na verdade não tem um motivo exato, quem desenvolveu poderia ter feito para considerar o eixo X antes do Y nesse caso, assim como em outras ocasiões você deve observar que precisa informar o parâmetro do eixo X antes. Isso é uma característica da biblioteca ou linguagem (e até mesmo pode variar de alguma função para outra dentro da mesma biblioteca), em alguns você pode ver que o X se considera por primeiro e outros o Y.

                        Embora não exista uma regra que defina que o X deva sempre ser antes nesse caso, por convenção esperamos que seja assim já que isso pode ser definido por muitos como um padrão. No próprio OpenCV por exemplo tem mais alguns detalhes que fazem ele ser um pouco diferente (ou “ao contrário”) de coisas que poderiam ser consideradas padrão também, como por exemplo o fato de carregar as imagens no canal de cor BGR e não RGB, invertendo assim o canal B (azul) e R (vermelho). Digamos que é assim pois quem desenvolveu escolheu que fosse assim, geralmente tem um motivo por trás (pode ser que acharam que fosse mais conveniente ser dessa forma) mas na verdade isso é um mero detalhe e nada impede que fosse de outro jeito também.

                        em resposta a: Arquivo Yalefaces.zip do curso “Reconhecimento facial #30670
                        Gabriel Alves
                        Moderador

                          Olá! Tudo bem?

                          Tente baixar novamente agora, pois eu fiz um teste de download aqui mas no meu ele baixou e descompactou todos os arquivos corretamente. Não sei qual erro apareceu para você, mas já que por aqui baixou normal então deve ter sido um problema local que ocorreu aí na hora do download mesmo.

                          Portanto peço que tente baixar novamente, mas caso não consiga resolver pode baixar nesse link aqui também (testado e funcionando).

                          em resposta a: Artigo Original de Viola-Jones. #30215
                          Gabriel Alves
                          Moderador

                            Olá, tudo bem?

                            Sim, claro! O artigo original se encontra aqui: https://www.cs.cmu.edu/~efros/courses/LBMV07/Papers/viola-cvpr-01.pdf

                            em resposta a: Material do curso #30155
                            Gabriel Alves
                            Moderador

                              Olá Elias!

                              Verifique na seção de introdução em Recursos para Download (acesse aqui), lá tem o link onde você pode fazer o download dos arquivos.

                               

                              em resposta a: Could not initialize tesseract. #30153
                              Gabriel Alves
                              Moderador

                                Olá, esse “–tessdata-dir tessdata“ é para indicar ao Tesseract que queremos usar os pacotes de linguagem que estão localizados na pasta “tessdata”. Durante o curso usamos esse método pois achamos melhor gerenciar os arquivos através desse diretório, pois além de funcionar melhor oferece mais controle. Mas na verdade é opcional, se você já fez a instalação do Tesseract pelo método tradicional então não é necessário indicar esse parâmetro, ao invés disso você pode instalar os pacotes das linguagens para OCR usando o comando !apt-get install tesseract-ocr-[codigo da linguagem]

                                no caso para instalar o pacote para português ficaria !apt-get install tesseract-ocr-por

                                (e pode usar !tesseract –list-langs para listar todos os pacotes instalados)

                                 

                                em resposta a: Utilização do ‘Yolo’ #30151
                                Gabriel Alves
                                Moderador

                                  Olá Daniel!

                                  Para fins didáticos, no projeto 3 é utilizado uma abordagem que não faz o uso de machine learning, é usado um conjunto de técnicas de processamento de imagem para detectar a região do retângulo na placa. Se sua intenção é reconhecer a escrita em placas eu recomendo mesmo usar o YOLO para a detecção.

                                  Sobre usar o EAST para a detecção dos textos na imagem, é possível sim e inclusive é abordado no curso, explicamos bem certinho lá como usar. Só não entendi muito bem o que você disse sobre “usar a base de dados do YOLO”, acredito que se refira a usar a técnica YOLO para detecção (no exemplo desse projeto, detecção de placas). O uso do YOLO para detecção é extremamente recomendável quando você sabe em que tipo de objeto o texto que você quer detectar vai estar. Nesse caso como vai estar dentro de placas podemos usar o YOLO (que é excelente para detecção) para detectar o objeto e assim extrair apenas região de interesse (dentro da caixa delimitadora do objeto detectado), desse modo podemos executar o OCR apenas nessa área onde o objeto se encontra na imagem e assim evitar outros elementos que vão atrapalhar o reconhecimento.

                                  A respeito da performance, se tal abordagem é apropriada ou não vai depender do tipo de sua aplicação. Por exemplo, se ela precisa funcionar em tempo real ou não. Para tempo real você vai ter uma opção menor de técnicas caso tenha um hardware muito limitado, mas ainda assim a maioria delas da para usar. Além disso, outro detalhe fundamental é o hardware que você possui disponível, por exemplo se possui GPU ou não (se possuir, melhor ainda, da para processar essas técnicas mais modernas em tempo real a uma boa taxa de FPS). Por isso o que recomendo é testar essas técnicas e verificar o tempo de inferência (tempo que demora para fazer a detecção), assim você decide qual fica melhor para a sua situação.

                                Visualizando 15 posts - 331 até 345 (de 393 do total)