Respostas no Fórum
- AutorPosts
- 6 de dezembro de 2024 às 10:40 em resposta a: Mensurar o tamanho (largura e altura) em imagens 2D. #46811
Olá Julio!
Para medir com precisão o tamanho de um objeto em uma imagem eu sugiro você utilizar um algoritmo específico para isso. Existem várias heurísticas hoje bem definidas feitas para chegar a esse resultado, mas talvez uma das mais confiáveis usam esse artigo como referência. Além disso, o autor também fornece já o código completo para fazer isso no próprio OpenCV.
Esse processo exige atenção para alguns detalhes, então recomendo ver com calma o artigo pois lá explica bem certo. É importante seguir as recomendações para deixar o algoritmo bem calibrado, como por exemplo ajustar bem o objeto de referência para medir do modo mais preciso possível (isso é explicado detalhadamente no artigo).
Olá José! Respondi lá no outro tópico que criou, mas já que perguntou neste tópico deixo a resposta aqui também:
Para fazer a leitura de um RG ou outro documento o segredo está em incorporar as técnicas de pré-processamento de imagem para que possa extrair o textos nas regiões específicas nesse documento, focando em antes extrair as localizações desses textos (regiões de interesse). Se desejar, pode antes fazer o teste com detectores de texto como o EAST para detectar as regiões onde os textos estão localizados, ou também testar com o EasyOCR (que já faz a detecção+reconhecimento).
Em um dos projetos do curso é mostrado como fazer o scan de documentos, o que funciona para o caso desse tipo de documento também. Como adicional, você precisa apenas incorporar outras técnicas de pré-processamento de imagem para que possa extrair o textos nas regiões específicas nesse documento.
A minha recomendação mesmo é seguir a lógica mostrada nesse artigo aqui, que explica exatamente uma maneira de como você pode criar um programa para ler melhor os campos de documentos (além disso, é disponibilizado o código fonte completo). Nesse exemplo do artigo ele usa uma CNH mas pode ser adaptado para RG pois o princípio é o mesmo, apenas alguns nomes e localizações de campos que mudam.
Olá José!
Para fazer a leitura de um RG ou outro documento o segredo está em incorporar as técnicas de pré-processamento de imagem para que possa extrair o textos nas regiões específicas nesse documento, focando em antes extrair as localizações desses textos (regiões de interesse). Se desejar, pode antes fazer o teste com detectores de texto como o EAST para detectar as regiões onde os textos estão localizados, ou também testar com o EasyOCR (que já faz a detecção+reconhecimento).
Em um dos projetos do curso é mostrado como fazer o scan de documentos, o que funciona para o caso desse tipo de documento também. Como adicional, você precisa apenas incorporar outras técnicas de pré-processamento de imagem para que possa extrair o textos nas regiões específicas nesse documento.
A minha recomendação mesmo é seguir a lógica mostrada esse artigo aqui, que explica exatamente uma maneira de como você pode criar um programa para ler melhor os campos de documentos (além disso, é disponibilizado o código fonte completo). Nesse exemplo do artigo ele usa uma CNH mas pode ser adaptado para RG pois o princípio é o mesmo, apenas alguns nomes e localizações de campos que mudam.
Olá! Caso não tenha funcionado esse comando o que eu recomendo é usar o Ollama para rodar a LLM localmente. Aliás, creio que vai ser melhor fazer desse modo mesmo que funcionasse esse comando que te passei, já que você está usando localmente eu sugiro que carregue usando o módulo do Ollama no LangChain pois ele é mais otimizado e vai te causar menos problemas mais tarde.
Para fazer isso use o método ChatOllama(), que é mostrado bem certo na aula “Execução local com Ollama” dentro da seção “LLM com LangChain”.
Olá Anderson!
Você tentou usar o comando pip install -U bitsandbytes e mesmo após reiniciar a execução não funcionou, correto?
Recomendo desinstalar e instalar a biblioteca, mas agora de outro modo usando esse comando:
python -m pip install bitsandbytes --prefer-binary --extra-index-url=https://jllllll.github.io/bitsandbytes-windows-webui
Qual versão do pytorch você está usando aliás? Instalou pelo mesmo comando recomendado em aula?
Olá Rodrigo!
A escolha de hardware e software dependerá das configurações específicas e das técnicas que serão utilizadas. Se você estiver utilizando apenas o YOLO, basta seguir as configurações recomendadas pelo repositório oficial, o que geralmente é suficiente para a maioria das aplicações.
As recomendações:
Python 3.8+; PyTorch 1.10+; GPU da NVIDIA com CUDA 11.2+; 8GB+ RAM; 50GB de espaço em disco (para armazenamento do dataset e treinamento).Ter GPU é extremamente importante para rodar em tempo real. Uma RTX 3060 com 12GB tende a ser uma boa de início, se possível uma superior (16GB ou 24GB, mas depende realmente da escala e complexidade dos seus conjuntos de dados e modelos); porém, no geral, essa é recomendada pela comunidade e considerada uma ótima placa de início.
Para as câmeras, a escolha dependerá do ambiente e do tipo de aplicação. Câmeras industriais com resolução mínima de 1080p e taxas de quadros de 30 fps são ideais para detecção em tempo real. Modelos com suporte a GigE Vision ou USB 3.0 facilitam a integração em redes industriais. Se o ambiente for externo ou exigir maior durabilidade, opte por modelos com proteção IP65 ou IP67.
A infraestrutura de rede também deve ser dimensionada para garantir desempenho contínuo. Switches gerenciáveis com portas Gigabit Ethernet são recomendados para lidar com o fluxo de dados das câmeras. Caso as câmeras sejam alimentadas via PoE (Power over Ethernet), utilize switches compatíveis para simplificar a instalação.
Quanto ao software, YOLO pode ser executado pela própria biblioteca de Ultralytics, que é mostrada na última seção do curso de Detecção com YOLO. Você também consegue otimizar bastante salvando em formatos eficientes (veja aqui). Uma dica bônus seria você procurar por frameworks como DeepStream da NVIDIA, que é otimizado para aplicações industriais. Em caso de aplicações mais complexas, o uso de TensorRT pode otimizar ainda mais a inferência.
Ah sim entendi, se não funcionasse eu iria nesse caso recomendar criar um ambiente separado e fazer a instalação das bibliotecas lá
Mas que ótimo saber que já deu certo! =)
Olá Raquel!
Esse erro ocorre apenas ao executar o comando pip pro dotenv? Para todas as outras bibliotecas foi instalado com sucesso e sem erros?
A propósito, qual a versão do Python que você está usando?
Experimente rodar esse comando abaixo e me diga se funciona pra você, ou qual mensagem que ocorre
pip install -U python-dotenv
Ah sim entendo, mas sem problemas! São linguagens bem diferentes mesmo então o melhor é ir calma e no seu ritmo
Abraços
Olá, verifiquei aqui o seu código e descobri o problema, estava faltando fazer uma conversão para int nessa linha:
id = os.path.split(path)[1].split(‘.’)[0].replace(‘subject’,”)
ou seja, tem que ficar assim
id = int(os.path.split(path)[1].split(‘.’)[0].replace(‘subject’,”))
(na dúvida, pode verificar no colab da aula, nesse trecho aqui)
Após fazer esse ajuste eu rodei esse mesmo Colab que você compartilhou e funcionou aqui
Olá Elaine!
Esse erro passou a ocorrer bem recentemente devido a um bug na biblioteca pytube, que ainda não foi resolvido pelos desenvolvedores. Ele ocorre somente ao usar o parâmetro “add_video_info = True”, então caso não seja essencial obter essas informações agora pode deixar “= False” (ou não passar o parâmetro, já que esse é o valor padrão).
Um modo de tentar resolver é executar novamente a célula de código (primeiramente a anterior a essa e depois a seguinte, que é a que gerou o erro). Isso funcionou para nós algumas vezes mas parece que nem sempre está funcionando, portanto não é certeza.
Se mesmo assim o erro continuar, sugiro usar esse outro método para obter informações do vídeo de modo automático:
import requests from bs4 import BeautifulSoup def get_video_title(url): r = requests.get(url) soup = BeautifulSoup(r.text) link = soup.find_all(name="title")[0] title = str(link) title = title.replace("<title>","") title = title.replace("</title>","") return title video_url = "https://www.youtube.com/watch?v=########" video_title = get_video_title(video_url) print(video_title)
Este código busca o conteúdo HTML de uma página de vídeo do YouTube usando a função requests.get() e em seguida analisa-o com a biblioteca BeautifulSoup, usado para carregar dados de páginas na internet. Ele procura a tag usando soup.find_all(), que retorna uma lista de tags correspondentes. O título do vídeo é extraído pegando o primeiro elemento, convertendo-o em uma string e, em seguida, removendo o <title> e as tags com replace(). Por fim, ele imprime o título “limpo” (se quiser também pode usar a função de replace para remover o “- YouTube” ao final do título).
- Esta resposta foi modificada 8 meses, 1 semana atrás por
Gabriel Alves.
Opa aqui o Colab está com acesso restrito, se puder mudar o compartilhamento para ser acessível pelo link, ou aprovar a solicitação que mandei.
Outra coisa (se quiser testar antes) é voltar uma versão do OpenCV, para mim está funcionando aqui corretamente com a versão que atribuiu automaticamente ao meu Colab, mas talvez pra você foi associado uma versão diferente e que está com algum bug ao rodar esse método. Por isso, pode tentar executar o seguinte comando no início do seu Colab (antes de todo o resto)
!pip install opencv-contrib-python==4.8.0.76
E em seguida continuar a execução do restante do código, na ordem
Olá José,
Esse erro ocorre quando é passado um parâmetro incorreto, geralmente a imagem em um formato que a função não estava esperando. Verifique se você carregou corretamente as fotos e carregou corretamente as variáveis. Cheque se todas os blocos de códigos anteriores a esse foram executados na ordem correta, e se nenhum deles gerou alguma mensagem de erro.
Eu rodei aqui o código do Colab oficial dessa seção do curso (link aqui) e para mim rodou tudo conforme o esperado. Portanto, teste novamente e verifique se foi carregado corretamente as imagens usadas para treinamento. Se o erro persistir, peço que compartilhe seu Colab aqui, já que deve ter outra coisa em seu código interferindo.
Disponha!
24 de outubro de 2024 às 01:29 em resposta a: Erro na aula: Avaliação do classificador com Dlib #46471Ah sim ele consegue detectar faces com esse limiar, porém o que eu me referi na resposta anterior na verdade era quanto ao momento da gravação da aula, pois no vídeo (minuto 3:02) perceba que após mudar para essa nível de confiança nenhuma das faces exibidas na célula de saída foram detectadas, então por isso quis dizer que passou despercebido.
- Esta resposta foi modificada 8 meses, 1 semana atrás por
- AutorPosts