Naviground

Sistema de percepção para veículo autônomo

Naviground é um sistema de navegação implementável em veículos terrestres tripulados e não tripulados. Permite navegar em ambientes estruturados e não estruturados. Participei no desenvolvimento do sistema de percepção, especialmente na detecção do ambiente por meio de câmeras.

Sistema de visão

Embora o sistema de navegação contasse com sensores LIDAR e RADAR, por vários motivos, foi desejado um sistema de percepção formado exclusivamente por câmeras.

  • Embora o preço dos LIDAR e RADAR tenha diminuído muito nos últimos anos, continua sendo mais caro que o das câmeras.
  • Os sensores LIDAR e RADAR são sensores ativos (emitem uma onda eletromagnética e medem a reflexão), por isso, em um ambiente de guerra, fazem com que o veículo possa ser detectado.
  • Como é um veículo autônomo, o processamento não pode ser feito em uma máquina muito poderosa, por isso, se pode eliminar o processamento da quantidade de dados que geram os LIDAR e RADAR, melhor.

Para poder realizar a detecção do ambiente, utilizamos três tipos de redes neurais:

  • Redes de segmentação semântica

    Classificam a que classe pertence cada pixel da imagem, obtendo uma máscara de segmentação.

    Segmentação semântica
  • Redes de classificação de objetos

    Mediante uma YOLO, se podem detectar objetos na imagem

    Classificação de objetos com YOLO
  • Profundidade

    Mediante uma rede neural, se pode estimar a profundidade de cada pixel da imagem, com isso, se pode obter a distância de cada objeto.

    Profundidade

Treinamento

Nosso problema era que como era um veículo para ambientes estruturados e não estruturados, não nos valiam as redes pré-treinadas, por isso, tivemos que fazer treinamentos das redes de segmentação e de classificação de objetos.

Dataset

Como tínhamos horas de vídeos gravados durante testes em ambientes como este, criamos um dataset

Captura de videos de Naviground

Criamos um algoritmo que, mediante um classificador não supervisionado, criou vários clusters de imagens, onde as imagens de cada cluster eram similares entre si. Desta forma, ficávamos com poucas imagens de cada cluster, para ter um dataset com imagens heterogêneas.

Etiquetador

Etiquetar objetos para a YOLO, embora seja pesado, é um processo mais ou menos rápido e fácil

YOLO labeling

Embora seja pesado, etiquetar as imagens para a segmentação semântica, onde tem que etiquetar cada pixel, é um processo lento e tedioso. Como não nos convencia nenhuma ferramenta de etiquetado para segmentação, construímos a nossa própria ferramenta de etiquetado. Foi tão boa que foi reutilizada em outros projetos e até foi falado de comercializá-la.

Geração de imagens de treinamento

Um dos problemas que tínhamos é que todas as imagens de treinamento eram de dia, com sol, sem chuva, etc. Por isso, para tornar as redes mais robustas, precisávamos de mais imagens. Mas isso supõe que alguém tenha que sair à noite, esperar que chova para ter imagens com chuva, esperar que neve, que é mais complicado, etc.

Naquele momento já havia muitas redes de geração de imagens bastante boas, por isso, podíamos gerar imagens com novas condições ambientais, mas o problema era que havia que etiquetá-las, e para a segmentação, isso exigia muito tempo.

Assim, construí um pipeline que, mediante IA generativa, modificava as condições ambientais das imagens que já tínhamos etiquetadas, tendo imagens em diferentes condições ambientais, mas sem perder tempo etiquetando-as.

Otimização com TensorRT

Como isso tinha que funcionar em um veículo, não se podia utilizar um computador com uma GPU potente. Por isso, se utilizava um dispositivo embebido, uma Jetson Orin. Por isso, era importante poder otimizar as redes neurais para que fizessem a inferência o mais rápido possível.

Me encarregue de otimizá-las com TensorRT, fazendo com que em alguns casos executassem até 40% mais rápido.

ASCOD
Naviground system

Continuar lendo

Últimos posts -->

Você viu esses projetos?

Horeca chatbot

Horeca chatbot Horeca chatbot
Python
LangChain
PostgreSQL
PGVector
React
Kubernetes
Docker
GitHub Actions

Chatbot conversacional para cozinheiros de hotéis e restaurantes. Um cozinheiro, gerente de cozinha ou serviço de quarto de um hotel ou restaurante pode falar com o chatbot para obter informações sobre receitas e menus. Mas também implementa agentes, com os quais pode editar ou criar novas receitas ou menus

Naviground

Naviground Naviground

Subtify

Subtify Subtify
Python
Whisper
Spaces

Gerador de legendas para vídeos no idioma que você desejar. Além disso, coloca uma legenda de cor diferente para cada pessoa

Ver todos os projetos -->

Quer aplicar IA no seu projeto? Entre em contato!

Quer melhorar com essas dicas?

Últimos tips -->

Use isso localmente

Os espaços do Hugging Face nos permitem executar modelos com demos muito simples, mas e se a demo quebrar? Ou se o usuário a deletar? Por isso, criei contêineres docker com alguns espaços interessantes, para poder usá-los localmente, aconteça o que acontecer. Na verdade, se você clicar em qualquer botão de visualização de projeto, ele pode levá-lo a um espaço que não funciona.

Flow edit

Flow edit Flow edit

Edite imagens com este modelo de Flow. Baseado em SD3 ou FLUX, você pode editar qualquer imagem e gerar novas

FLUX.1-RealismLora

FLUX.1-RealismLora FLUX.1-RealismLora
Ver todos os contêineres -->

Quer aplicar IA no seu projeto? Entre em contato!

Você quer treinar seu modelo com esses datasets?

short-jokes-dataset

Dataset com piadas em inglês

opus100

Dataset com traduções de inglês para espanhol

netflix_titles

Dataset com filmes e séries da Netflix

Ver mais datasets -->