Forum Replies Created

Viewing 15 posts - 361 through 375 (of 415 total)
  • Author
    Posts
  • in reply to: Arquivo Yalefaces.zip do curso “Reconhecimento facial #30684
    Gabriel Alves
    Keymaster

      Disponha! =)

      in reply to: Duvida no corte da regiao #30671
      Gabriel Alves
      Keymaster

        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.

        in reply to: Arquivo Yalefaces.zip do curso “Reconhecimento facial #30670
        Gabriel Alves
        Keymaster

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

          in reply to: Artigo Original de Viola-Jones. #30215
          Gabriel Alves
          Keymaster

            Olá, tudo bem?

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

            in reply to: Material do curso #30155
            Gabriel Alves
            Keymaster

              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.

               

              in reply to: Could not initialize tesseract. #30153
              Gabriel Alves
              Keymaster

                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)

                 

                in reply to: Utilização do ‘Yolo’ #30151
                Gabriel Alves
                Keymaster

                  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.

                  in reply to: Could not initialize tesseract. #30074
                  Gabriel Alves
                  Keymaster

                    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.

                    in reply to: Cade o codigo #30053
                    Gabriel Alves
                    Keymaster

                      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.

                      in reply to: Matrix Confusion YOLO #29906
                      Gabriel Alves
                      Keymaster

                        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.

                        Gabriel Alves
                        Keymaster

                          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.

                          in reply to: Reconhecimento de texto em várias linhas #29663
                          Gabriel Alves
                          Keymaster

                            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.

                            Gabriel Alves
                            Keymaster

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

                              in reply to: Duvida sobre detecção de obejetos e separação por cores #29637
                              Gabriel Alves
                              Keymaster

                                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

                                in reply to: Curso de detecção de Audio #29636
                                Gabriel Alves
                                Keymaster

                                  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

                                Viewing 15 posts - 361 through 375 (of 415 total)