·
Engenharia da Computação ·
Linguagens de Programação
Send your question to AI and receive an answer instantly
Recommended for you
34
Recursividade em Codigos de Alta Performance - Guia e Exemplos
Linguagens de Programação
FIAP
22
Arvore - Conceitos-Gerais-Algoritmos-de-Alta-Performance
Linguagens de Programação
FIAP
27
Busca Sequencial e Binaria em Arranjos-Metodos de Busca em Codigos de Alta Performance
Linguagens de Programação
FIAP
53
Recursividade e Percurso em Árvores Binárias - Algoritmos de Alta Performance
Linguagens de Programação
FIAP
9
Trabalho em Java
Linguagens de Programação
FIAP
22
Arvores Binarias e Arvore de Busca Binaria - Conceitos e Algoritmos
Linguagens de Programação
FIAP
22
Arvores Binarias e Arvore de Busca Binaria - Conceitos e Algoritmos
Linguagens de Programação
FIAP
19
Arvore de Decisão e Busca Binaria - Conceitos e Aplicações
Linguagens de Programação
FIAP
1
Programa Python Calculo Comparativo Consumo Veiculo Eletrico vs Combustao
Linguagens de Programação
FIAP
1
Cálculo do Consumo Médio de Carros Elétricos
Linguagens de Programação
FIAP
Preview text
Introdução O formato de saída dos modelos da família Ultralytics YOLO incluindo YOLOv5 YOLOv6 YOLOv7 e YOLOv8 segue um padrão específico que normalmente é consistente mas pode variar um pouco dependendo da versão do modelo e da configuração específica Quando você realiza uma inferência com um modelo YOLO da Ultralytics ele retorna as detecções como uma matriz tensor onde cada linha representa uma detecção Cada detecção possui as seguintes informações em um vetor xcenter Coordenada x do centro da bounding box ycenter Coordenada y do centro da bounding box width Largura da bounding box height Altura da bounding box confidence Confiança da detecção indicando a probabilidade de que um objeto foi detectado classscores Confiança para cada classe dependendo do número de classes no modelo você pode ter vários valores aqui Criar classid para objetos usando YOLO envolve a definição de classes para o seu modelo e em seguida o treinamento do modelo para detectar essas classes Após decidir quais objetos se deseja que o modelo YOLO detecte Cada classe de objeto deve receber um classid único começando em 0 e incrementando para cada nova classe por exemplo 0 fósforo 1 pasta de dente 2 sabonete 3 suco 4 molho No formato de anotação YOLO TXT cada imagem terá um arquivo txt correspondente com o mesmo nome da imagem O arquivo txt contém uma linha para cada objeto na imagem com o seguinte formato classid xcenter ycenter width height Supondo que em uma imagem gere um arquivo txt contendo 0 05 05 002 003 1 07 08 002 015 Isso significa Uma caixa de fósforo com o centro da caixa em 05 05 e dimensões 002 003 Uma caixa de pasta dentes com o centro da caixa em 07 08 e dimensões 002 015 1 Situação a ser simulada Suponha que a área onde objetos devem ser detectados são feitas uma sequência de fotos gerando várias imagens Será gerada uma imagem a cada novo objeto posicionado nesta área É solicitado que no processo de posicionamento de objetos possa ser realizada uma operação equivalente ao desfazer de editores de texto ou seja é possível retirar objetos na ordem inversa a que foram inseridos Ao final desta etapa de posicionamento deve ser apresentada a descrição de todos os objetos que permanecem na área deve ser apresentada Nessa apresentação ao invés de apresentar a classid do objeto deve ser apresentada a classe por exemplo se classid for 1 deve ser apresentado pasta de dente xcenter07 ycenter 08 width 002 height 015 Sendo assim um vetor contendo classid e sua correspondente categoria deve ser criada antes do início do processo de posicionamento de objetos na área Projeto a ser Elaborado em JAVA Elabore um projeto JAVA que crie uma classe denominada ObjDetectado Essa classe possui como atributos classid xcenter ycenter width e height Depois usando como base a classe PilhaInt elaborada em aula modifique para que cada elemento da pilha armazene um objeto da classe ObjDetectado Lembrese que por exemplo para realizar a operação push o que deve ser passado como parâmetro é objeto da classe ObjDetectado Antes de iniciar o processo de posicionamento de objetos um vetor categoria com seu respectivo classid deve ser iniciado O programa deve conter um menu com as seguintes opções 0 Encerrar posicionamento 1 Ler descrição de um objeto detectado na imagem cada imagem gerada possui um novo objeto posicionado 2 Apresentar lista de objetos presentes na área 3 Realizar a operação de desfazer retirando objetos detectados Após a conclusão do posicionamento dos objetos na área o programa deve apresentar a lista de objetos presentes na área removendo da pilha cada um dos objetos Critérios da Avaliação e Instruções para Entrega Critérios da Avaliação 1 10 Criação do vetor classCategoria onde cada categoria e classid fica relacionado Esse vetor tem que ter no mínimo as categorias usadas no exemplo apresentadas na seção de introdução 2 15 Implementação da classe ObjDetectado com os atributos descritos 3 25 Alteração da classe PilhaInt implementada em aula para que passe a empilhar objetos da classe ObjDetectado obrigatoriamente adaptada na implementação estudada assunto12PilhasSequencias 4 Elaborar um método main que 1 30 Implemente o menu de opções descritas anteriormente 10 para cada opção 1 2 e 3 2 20 Após a finalização do loop do menu esvazie a pilha de objetos apresentando cada objeto removido conforme solicitado previamente A seção seguinte apresenta exemplo de funcionamento da aplicação gerada Apresentação da tela de saída da execução da aplicação solicitada 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 2 Informe xcenter 03 Informe ycenter 02 Informe largura do objeto 002 Informe altura do objeto01 Objeto empilhado ObjDetectado classid2 xcenter03 ycenter02 width002 height01 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 4 Informe xcenter 04 Informe ycenter 04 Informe largura do objeto 005 Informe altura do objeto004 Objeto empilhado ObjDetectado classid4 xcenter04 ycenter04 width005 height004 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 0 Informe xcenter 07 Informe ycenter 08 Informe largura do objeto 007 Informe altura do objeto01 Objeto empilhado ObjDetectado classid0 xcenter07 ycenter08 width007 height01 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 2 ObjDetectado classid2 xcenter03 ycenter02 width002 height01 ObjDetectado classid4 xcenter04 ycenter04 width005 height004 ObjDetectado classid0 xcenter07 ycenter08 width007 height01 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 3 Ultimo objeto inserido ObjDetectado classid0 xcenter07 ycenter08 width007 height01 Deseja remover digite z para simz Ultimo objeto inserido ObjDetectado classid4 xcenter04 ycenter04 width005 height004 Deseja remover digite z para simz Ultimo objeto inserido ObjDetectado classid2 xcenter03 ycenter02 width002 height01 Deseja remover digite z para simn 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 2 ObjDetectado classid2 xcenter03 ycenter02 width002 height01 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 0 Informe xcenter 01 Informe ycenter 08 Informe largura do objeto 01 Informe altura do objeto009 Objeto empilhado ObjDetectado classid0 xcenter01 ycenter08 width01 height009 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 2 Informe xcenter 05 Informe ycenter 02 Informe largura do objeto 02 Informe altura do objeto001 Objeto empilhado ObjDetectado classid2 xcenter05 ycenter02 width02 height001 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 0 Encerrado o processo de posicionamento de objetos Lista de objetos que permanecem na area sabonete xcenter 05 ycenter 02 width 02 height 001 fosforo xcenter 01 ycenter 08 width 01 height 009 sabonete xcenter 03 ycenter 02 width 002 height 01
Send your question to AI and receive an answer instantly
Recommended for you
34
Recursividade em Codigos de Alta Performance - Guia e Exemplos
Linguagens de Programação
FIAP
22
Arvore - Conceitos-Gerais-Algoritmos-de-Alta-Performance
Linguagens de Programação
FIAP
27
Busca Sequencial e Binaria em Arranjos-Metodos de Busca em Codigos de Alta Performance
Linguagens de Programação
FIAP
53
Recursividade e Percurso em Árvores Binárias - Algoritmos de Alta Performance
Linguagens de Programação
FIAP
9
Trabalho em Java
Linguagens de Programação
FIAP
22
Arvores Binarias e Arvore de Busca Binaria - Conceitos e Algoritmos
Linguagens de Programação
FIAP
22
Arvores Binarias e Arvore de Busca Binaria - Conceitos e Algoritmos
Linguagens de Programação
FIAP
19
Arvore de Decisão e Busca Binaria - Conceitos e Aplicações
Linguagens de Programação
FIAP
1
Programa Python Calculo Comparativo Consumo Veiculo Eletrico vs Combustao
Linguagens de Programação
FIAP
1
Cálculo do Consumo Médio de Carros Elétricos
Linguagens de Programação
FIAP
Preview text
Introdução O formato de saída dos modelos da família Ultralytics YOLO incluindo YOLOv5 YOLOv6 YOLOv7 e YOLOv8 segue um padrão específico que normalmente é consistente mas pode variar um pouco dependendo da versão do modelo e da configuração específica Quando você realiza uma inferência com um modelo YOLO da Ultralytics ele retorna as detecções como uma matriz tensor onde cada linha representa uma detecção Cada detecção possui as seguintes informações em um vetor xcenter Coordenada x do centro da bounding box ycenter Coordenada y do centro da bounding box width Largura da bounding box height Altura da bounding box confidence Confiança da detecção indicando a probabilidade de que um objeto foi detectado classscores Confiança para cada classe dependendo do número de classes no modelo você pode ter vários valores aqui Criar classid para objetos usando YOLO envolve a definição de classes para o seu modelo e em seguida o treinamento do modelo para detectar essas classes Após decidir quais objetos se deseja que o modelo YOLO detecte Cada classe de objeto deve receber um classid único começando em 0 e incrementando para cada nova classe por exemplo 0 fósforo 1 pasta de dente 2 sabonete 3 suco 4 molho No formato de anotação YOLO TXT cada imagem terá um arquivo txt correspondente com o mesmo nome da imagem O arquivo txt contém uma linha para cada objeto na imagem com o seguinte formato classid xcenter ycenter width height Supondo que em uma imagem gere um arquivo txt contendo 0 05 05 002 003 1 07 08 002 015 Isso significa Uma caixa de fósforo com o centro da caixa em 05 05 e dimensões 002 003 Uma caixa de pasta dentes com o centro da caixa em 07 08 e dimensões 002 015 1 Situação a ser simulada Suponha que a área onde objetos devem ser detectados são feitas uma sequência de fotos gerando várias imagens Será gerada uma imagem a cada novo objeto posicionado nesta área É solicitado que no processo de posicionamento de objetos possa ser realizada uma operação equivalente ao desfazer de editores de texto ou seja é possível retirar objetos na ordem inversa a que foram inseridos Ao final desta etapa de posicionamento deve ser apresentada a descrição de todos os objetos que permanecem na área deve ser apresentada Nessa apresentação ao invés de apresentar a classid do objeto deve ser apresentada a classe por exemplo se classid for 1 deve ser apresentado pasta de dente xcenter07 ycenter 08 width 002 height 015 Sendo assim um vetor contendo classid e sua correspondente categoria deve ser criada antes do início do processo de posicionamento de objetos na área Projeto a ser Elaborado em JAVA Elabore um projeto JAVA que crie uma classe denominada ObjDetectado Essa classe possui como atributos classid xcenter ycenter width e height Depois usando como base a classe PilhaInt elaborada em aula modifique para que cada elemento da pilha armazene um objeto da classe ObjDetectado Lembrese que por exemplo para realizar a operação push o que deve ser passado como parâmetro é objeto da classe ObjDetectado Antes de iniciar o processo de posicionamento de objetos um vetor categoria com seu respectivo classid deve ser iniciado O programa deve conter um menu com as seguintes opções 0 Encerrar posicionamento 1 Ler descrição de um objeto detectado na imagem cada imagem gerada possui um novo objeto posicionado 2 Apresentar lista de objetos presentes na área 3 Realizar a operação de desfazer retirando objetos detectados Após a conclusão do posicionamento dos objetos na área o programa deve apresentar a lista de objetos presentes na área removendo da pilha cada um dos objetos Critérios da Avaliação e Instruções para Entrega Critérios da Avaliação 1 10 Criação do vetor classCategoria onde cada categoria e classid fica relacionado Esse vetor tem que ter no mínimo as categorias usadas no exemplo apresentadas na seção de introdução 2 15 Implementação da classe ObjDetectado com os atributos descritos 3 25 Alteração da classe PilhaInt implementada em aula para que passe a empilhar objetos da classe ObjDetectado obrigatoriamente adaptada na implementação estudada assunto12PilhasSequencias 4 Elaborar um método main que 1 30 Implemente o menu de opções descritas anteriormente 10 para cada opção 1 2 e 3 2 20 Após a finalização do loop do menu esvazie a pilha de objetos apresentando cada objeto removido conforme solicitado previamente A seção seguinte apresenta exemplo de funcionamento da aplicação gerada Apresentação da tela de saída da execução da aplicação solicitada 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 2 Informe xcenter 03 Informe ycenter 02 Informe largura do objeto 002 Informe altura do objeto01 Objeto empilhado ObjDetectado classid2 xcenter03 ycenter02 width002 height01 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 4 Informe xcenter 04 Informe ycenter 04 Informe largura do objeto 005 Informe altura do objeto004 Objeto empilhado ObjDetectado classid4 xcenter04 ycenter04 width005 height004 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 0 Informe xcenter 07 Informe ycenter 08 Informe largura do objeto 007 Informe altura do objeto01 Objeto empilhado ObjDetectado classid0 xcenter07 ycenter08 width007 height01 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 2 ObjDetectado classid2 xcenter03 ycenter02 width002 height01 ObjDetectado classid4 xcenter04 ycenter04 width005 height004 ObjDetectado classid0 xcenter07 ycenter08 width007 height01 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 3 Ultimo objeto inserido ObjDetectado classid0 xcenter07 ycenter08 width007 height01 Deseja remover digite z para simz Ultimo objeto inserido ObjDetectado classid4 xcenter04 ycenter04 width005 height004 Deseja remover digite z para simz Ultimo objeto inserido ObjDetectado classid2 xcenter03 ycenter02 width002 height01 Deseja remover digite z para simn 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 2 ObjDetectado classid2 xcenter03 ycenter02 width002 height01 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 0 Informe xcenter 01 Informe ycenter 08 Informe largura do objeto 01 Informe altura do objeto009 Objeto empilhado ObjDetectado classid0 xcenter01 ycenter08 width01 height009 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 1 Digite classid do objeto detectado 2 Informe xcenter 05 Informe ycenter 02 Informe largura do objeto 02 Informe altura do objeto001 Objeto empilhado ObjDetectado classid2 xcenter05 ycenter02 width02 height001 0 Encerrar 1 Ler descricao de um objeto detectado na imagem 2 Apresentar lista de objetos presentes na area 3 Realizar a operacao de desfazer retirando objetos detectados 0 Encerrado o processo de posicionamento de objetos Lista de objetos que permanecem na area sabonete xcenter 05 ycenter 02 width 02 height 001 fosforo xcenter 01 ycenter 08 width 01 height 009 sabonete xcenter 03 ycenter 02 width 002 height 01