Respostas no Fórum
- AutorPosts
- 13 de fevereiro de 2024 às 15:43 em resposta a: Pasta “Treinamento YOLO.zip” não aparece para mim #43872
Olá Abraão!
Tem como sim. Para rodar no Pycharm, basicamente você só precisar copiar os códigos e reunir num único arquivo e só cuidar quando for “converter” de .ipynb (formato usado pelo Colab, que é baseado no Jupyter Notebook) para .py. Você pode fazer isso manualmente, é bem simples, só precisa se atentar à algumas funções que são usadas no Colab, como o cv2_imshow, que ficará cv2.imshow em .py. Ou ainda, você pode simplesmente baixar o código já em .py direto pelo Colab. Para isso, selecione a opção do menu: Arquivo > Download > Download .py
Se for usar a implementação com OpenCV pelo módulo DNN você precisa apenas instalar as bibliotecas necessárias (mostradas em aula) e importá-las corretamente em sua IDE, já que não estará utilizando o Darknet então não precisa executar aqueles procedimentos para compilar.
Caso use a implementação com Darknet, você precisa executar os comandos pelo Terminal / prompt de comando, então sugiro usar a IDE apenas pra executar os scripts em python. Para compilar no Windows você precisa fazer isso usando o CMake, conforme é explicado aqui (ou também pode usar esse método).
Olá Anderson!
Esse botão só libera quando conclui a aula. Ou seja, precisa chegar até o fim do vídeo e aí sim pode marcar como concluído. Eu tentei acessar aqui essa mesma aula desse curso e deu certo.
Portanto verifique se o botão continua cinza (e não clicável), avance a até chegar ao final do vídeo e verifique então se o botão se torna verde e clicável. Se isso não acontecer, aí pode ser alguma outra coisa realmente, mas a princípio deveria estar ok e é só esse pequeno detalhe que impede de clicar nele.
Olá Rafael!
Para a detecção apenas eu acho que você poderia incorporar as técnicas de pré-processamento de imagem para extrair regiões específicas nesse documento. Mas também pode ser interessante treinar uma rede neural só para essa detecção, se houver muita variedade nas imagens testadas.
Eu recomendo dar uma olhada nesse artigo pois é mostrado exatamente como fazer essa extração das regiões de interesse na imagem (no exemplo ele usa uma CNH, mas pode ser adaptado para qualquer tipo de documento), e além disso ele aborda o reconhecimento do texto (OCR).
18 de janeiro de 2024 às 13:02 em resposta a: Trocar nomes dos objetos encontrados na segme panoptica por nomes em português. #43545Olá Carlos! Esse é um assunto realmente mais desafiador, mas aos poucos você vai pegando a intuição geral do assunto e tudo fará mais sentido. Embora seja explicado a parte mais técnica, ela não é necessária para se implementar, se quisesse poderia apenas considerar a parte prática (pegar e executar o código), mas se você quiser customizar e entender como realmente funciona é importante sim essa explicação mais teórica.
Mas caso não tenha entendido algo sobre o assunto, fique à vontade para enviar sua mensagem aqui.
E quanto sua dúvida, para trocar o nome das classes para português é necessário fazer uma modificação manual da função draw_panoptic_seg_predictions(), que é responsável por desenhar a segmentação sobre a imagem (e escrever os nomes das classes dentro de cada segmento). São duas listas que contém os nomes dos objetos, que são acessíveis por meta.stuff_classes e meta.thing_classes, informando esses valores durante a execução do programa você consegue visualizar todas as classes. Esses nomes são carregados através do pacote “MetadataCatalog” da biblioteca Detectron2, e infelizmente no momento ele não permite sobrescrever esses valores direto pelo próprio programa (atribuindo por exemplo ao valor de meta.stuff_classes para que seja = à uma lista que você criou, essa que conteria os nomes traduzidos) então acredito que o jeito de traduzir esses nomes seria modificando a função draw_panoptic_seg_predictions(). Dentro dessa função, você poderia por exemplo passar um dicionário Python (mais detalhes aqui), com ele você pode facilmente mapear os nomes das classes (inglês->português) e assim definir para que antes de escrever o texto seja substituído o termo em inglês pelo português.
15 de janeiro de 2024 às 11:10 em resposta a: Pasta “Treinamento YOLO.zip” não aparece para mim #43531Olá Francisco!
O arquivo .zip mencionado nessa aula seria o TreinamentoYOLO.zip, que se encontra dentro da pasta /recursos no Drive oficial do curso (link aqui https://drive.google.com/drive/folders/1pI0ImWiFNpSqaKXAqbDXXV30EueF3LGP).
Dentro desse .zip vai ter os scripts utilizados para fazer os processamentos e conversões na base de dados.
Olá Francisco, primeiramente ficamos felizes por estar gostando do conteúdo!
Quanto à dúvida, o que você deseja é filtrar a detecção com base na classe, isso? Por exemplo, só detectar e exibir a caixa delimitadora para objetos da classe “cachorro” (e ignorar objetos de outras classes, como “pessoas” ou “carros”). Para isso, veja a aula “Detecção somente de objetos específicos”, onde é mostrado como fazer exatamente. Se quiser conferir direto o código pelo Colab, é esse trecho aqui https://colab.research.google.com/drive/190Xm4YdjQg_WA6mdWxdJSo8n0qPtHFIj?usp=sharing#scrollTo=1jKBfDS-nkbn
Já se deseja filtrar qual a instância detectada (ou seja, um objeto específico dentro todo os objetos detectados, seja da mesma classe ou outras classes diferentes) aí você precisa modificar o loop for, assim você pode configurar para que seja exibida a caixa delimitadora somente para uma detecção específica, e para as demais ignore.
- Esta resposta foi modificada 1 ano, 3 meses atrás por
Gabriel Alves.
Olá Carlos!
Para isso você pode usar o DeepLab, que é mostrado na seção “Segmentação Semântica” (a partir da aula “DeepLab – intuição”). Inclusive, nessa implementação é disponibilizado um modelo pré-treinado que faz a detecção desse cenário que você comentou, ele já é treinado para detectar ruas, calçadas, carros, e outros objetos comuns nesse tipo de ambiente a ser analisado.
Porém esses modelos já pré-treinados talvez não sejam capaz de segmentar certos objetos mais específicos que você queira (tipo boca de lobo), então caso não ache nos repositórios um modelo já preparado para detectar/segmentar tudo o que precisa então você terá que treinar um novo, fornecendo as imagens desse(s) objeto(s) durante o treinamento.
Você pode treinar com o Mask R-CNN (segmentação de instâncias) ou U-Net (segmentação semântica), cujos passos de treinamento são mostrados no curso. Mas para esse tipo de cena, acho interessante testar o treinamento com o Detectron2, que demonstrou melhores resultados nesses cenários. Você pode conferir aqui uma explicação de como treinar um modelo para segmentar qualquer objeto customizado que queira.
8 de janeiro de 2024 às 08:10 em resposta a: imagem com id diferente solicitado no código, aparece para mim #43496Olá Francisco!
Isso na verdade é esperado, pois a ordem dos IDs é diferente da ordem alfabética. Nessa imagem que você mandou por exemplo, a amostra com id 7 é a 15º na ordem alfabética.
Se você quer acessar uma imagem específica através do nome, você pode usar a função cv2.imread() do OpenCV, onde você deve fornecer como parâmetro o caminho da imagem. Em alternativa à essa função do OpenCV, para facilitar mais ainda a exibição no Colab pode usar a função de carregamento da biblioteca Pillow. Pegando como exemplo a primeira imagem na ordem alfabética, o código fica assim:
from PIL import Image
imagem = Image.open(“balloon/train/10464445726_6f1e3bbe6a_k.jpg”)
imagemOlá Alexandre!
Com as técnicas mostradas nesse curso (e também em outros da Trilha de Visão Computacional) você consegue sim.
Na verdade, a criação de um programa assim envolveria várias etapas e pode ser um projeto bastante complexo e nada óbvio já que teria uma possibilidade infinita de caminhos a seguir, pois vai depender totalmente do que você classificaria como “melhores momentos” por exemplo, quais condições para entrar nessa lista.
Vou deixar alguns passos gerais que você poderia seguir:
Detecção de Eventos de Interesse: Primeiro precisaria ter o modelo de detecção de objetos treinado para identificar jogadores, bola, árbitros, etc (caso não consiga achar um modelo treinado para isso, terá que treinar o seu, usando um dataset apropriado para os vídeos onde você rodará o programa). Em seguida, tendo esse modelo você consegue implementar a lógica para identificar eventos importantes, como gols, cartões, jogadas emocionantes, etc.
Outra ideia que poderia facilitar: treinar um modelo para detectar exatamente a presença da bola dentro do gol, assim quando ocorrer isso você consegue determinar no programa o tempo exato que ocorreu (e o ideal seria voltar um pouco o número de frames para começar a gravação antes, já que não faz sentido começar a gravar só quando a bola já está no gol).
Avaliação da Importância dos Eventos: basicamente, seria associar pontuações a diferentes eventos com base em sua importância.
Por exemplo, um gol pode ter uma pontuação mais alta do que uma jogada/passe comum.Registro do Tempo: para registrar os tempos exatos em que cada evento ocorre, você pode usar o numero de frames como unidade de medida. assim consegue manipular lá para começar a gravar o momento a partir do frame numero x e terminar no frame número y (quando a bola deixa de ser detectada, por exemplo).
Edição de Vídeo: use uma biblioteca de edição de vídeo para facilitar na hora de cortar os melhores momentos. Você pode usar a biblioteca moviepy para manipulação de vídeo em Python.
Transmissão ao Vivo: Para transmissões ao vivo, você precisará integrar a detecção de eventos em tempo real. A própria biblioteca OpenCV (que é bastante usadas nesses cursos aqui) tem a função cv2.VideoCapture que possui suporte para captura em tempo real.
19 de dezembro de 2023 às 11:44 em resposta a: Não encontro a pasta “Visão Computacional Guia Completo” no meu Colab. #43232Olá Fernando!
Como a opção de montar só pode exibir os arquivos dentro do seu Drive (e não os “compartilhados comigo”) então você precisaria passar eles para sua conta. E parece que o Drive não disponibiliza mesmo um botão que automaticamente faz uma cópia de uma pasta completa para seu Drive (essa opção aparece apenas ao tentar copiar arquivos individuais), mas nesse caso você pode simplesmente fazer do modo normal, que é bastante simples: basta baixar (clicando sobre o nome da pasta principal e selecionando a opção “Fazer download”) e então após terminar de baixar em sua máquina você faz o upload para o seu Drive, colocando dentro do diretório desejado (igual quando você faz o upload normal de uma arquivo por lá). Ao baixar pelo drive o arquivo é compactado em um .zip, então você pode descompactar em sua máquina antes de subir, ou descompactar durante a execução do Colab se preferir (usando o comando !unzip).
É basicamente só isso, mas caso fique alguma dúvida é só avisar.Olá Adriel!
O que você precisaria é apenas englobar o que já existe em um laço de repetição que irá percorrer todas essas pastas (que possuem train e test como subpasta). Então, esse laço de repetição será responsável por percorrer todas essas subpastas e executar o código atual (esse trecho aqui) de modo que a variável caminho nessa função seja atualizada com base no valor daquela iteração.
Ou seja, na parte que chama a função carregar_dataset() ao invés de passar como parâmetro diretamente o “drive_dataset” pro valor de path_dataset, você vai passar uma lista contendo os nomes de cada uma das pastas (ex: Pasta 1, Pasta 2, …). Essa lista você pode obter de modo automático (usando os métodos da biblioteca glob, conforme os exemplos que foram mostrados nessa e nas outras aulas) ou escrevendo manualmente o nome de cada pasta e colocando numa lista (ex: lista_pastas = “Pasta1”, “Pasta2”).
Então ficaria assim a estrutura de diretórios:
diretório principal > diretório contendo “pasta 1”, “pasta 2″… > subdiretórios (train e test)
E o modo como vai juntar essas imagens no final pode depender um pouco também se essas imagens separadas em pastas diferentes são da mesma classe ou de classes diferente; se for da mesma você pode simplesmente unificar numa mesma lista e não exigiria fazer mais nada.
Olá Fagner!
Realmente o Triton no momento apresenta problemas de suporte ao Windows, porém descobri que algumas pessoas estão conseguindo usar. Para isso, utilizaram o seguinte comando:
pip install https://huggingface.co/r4ziel/xformers_pre_built/resolve/main/triton-2.0.0-cp310-cp310-win_amd64.whl
Há também uma thread atual aqui que aborda exatamente essas questão, se quiser dar uma olhada e testar em sua máquina.
Porém acredito que esse repositório que foi usado pro curso não exija o triton, portanto poderia simplesmente pular o comando de instalação dele e continuar executando o restante normal.
Mas caso se depare com algum problema no processo, peço que compartilhe aqui a mensagem de erro para que eu possa tentar ajudar melhor.
Olá Márcia!
A opção é essa mesma que mostra em sua imagem, a T4 GPU. Basta selecionar e clicar em Salvar. Depois disso, será reiniciado o ambiente de execução e você pode executar o código conforme mostrado em aula. Se aparecer alguma mensagem na hora de executar o código e que esteja te impedindo de prosseguir, peço que envie foto da mensagem exata que aparece.
Caso apareça a mensagem dizendo que excedeu o limite de uso, significa que você está usando o plano gratuito e usou por muito tempo seguido até o ponto de estourar a quota gratuita de uso (free tier), portanto se quiser usar mais GPU de imediato terá que pagar pelo Colab Pro; ou, se você puder aguardar algumas horas para poder continuar rodando novamente então não precisa pagar, basta aguardar um pouco e então você conseguirá utilizar a GPU de novo normalmente de forma gratuita.
O Colab até que disponibiliza uma quota bem interessante para uso gratuito da GPU, mas caso esteja fazendo um uso muito frequente e ver que está ficando sem acesso à GPU pode usar outros serviços também que oferecem acesso grátis à GPU, como o SageMaker Studio Lab.
Olá Raphael!
Para resolver esse erro no anaconda, execute o seguinte comando no prompt:
-m pip install –upgrade transformers
Esse mesmo comando deve resolver o problema, mas caso ainda assim continue peço que informe mais detalhes, como por exemplo a versão do diffusers que você instalou.
Olá Lara!
Pela imagem parece que é extremamente parecido com o “Modo detalhado” que desenvolvemos pro curso. Esse código foi feito para vídeos, mas se precisar usar em fotos também pode ser usado (até porque o código processa o vídeo em frames individuais – ou seja, imagens). Veja a aula BÔNUS 3: Reconhecimento de emoções em vídeos, o código no Colab pode ser acessado pelo link “Colab2” na aba “Materiais.
Link aqui: https://colab.research.google.com/drive/16bRqVnWpeoeacrF5_VFuwLobaOrOLrHN
Qualquer dúvida é só avisar!
- Esta resposta foi modificada 1 ano, 3 meses atrás por
- AutorPosts