VIDEO OBJECT DETECTIONS BY IA INTERFACE

Vite
React.Js
Typescript
Shadcn Ui
Vitest
Python
Flask
YOLOv8
Open CV
Postgres SQL
REST API

Esse projeto é o desenvolvimento de uma interface para o usuário detectar objetos e pessoas dentro de um video utilizando inteligência artificial utilizando o modelo Yolo v8. Na interface o usuário pode configurar os principais parâmetros do modelo, obter o video com as detecções e receber os resultados em uma tabela. Veja o video no final para mais informações.

Na segunda figura, temos o esquema do fluxo de informações do app. O sistema é divido em três áreas distintas: Frontend, Backend e banco de dados, cada uma desempenhando um papel fundamental no funcionamento do projeto. Vamos dar uma olhada nas tecnologias que utilizamos em cada uma delas:

Tecnologias da interface da interface do usuário:

No frontend, optei por:

  • React com Vite para uma experiência de desenvolvimento ágil.
  • Typescript para um código mais robusto e seguro.
  • Shadcn Ui para componentes visuais consistentes e modernos.
  • Tailwind CSS para facilitar a estilização e o design responsivo.
  • ViTest para testes automatizados e garantia de qualidade.

Tecnologias do servidor:

Para o Backend, escolhi:

  • React com Vite para uma experiência de desenvolvimento ágil.
  • Python como linguagem principal devido à sua versatilidade e poder.
  • Flask como framework web, oferecendo uma estrutura leve e flexível.
  • Pytest para testes unitários e de integração, garantindo a estabilidade do sistema.
  • Open CV para manipular os frames do video e desenhar a detecação do objeto
  • SQL Alchemy para a comunicação eficiente com o banco de dados e manipulação de dados.
  • E, é claro, YOLOv8 para a detecção de objetos com precisão e rapidez.

Tecnologias do banco de dados:

No banco de dados, utilizamos:

  • Docker para criar ambientes isolados e facilitar a implantação.
  • Postgres SQL para armazenar e gerenciar os dados de forma eficiente e confiável.

Considerações

Este projeto representou um verdadeiro desafio para mim, pois tive que lidar com diferentes tecnologias e arquiteturas, além de aprender a integrá-las de forma coesa. Desde a estruturação do frontend e do backend até a comunicação com o banco de dados, cada etapa foi uma oportunidade para aprimorar meus conhecimentos em arquitetura de software e práticas de Clean Code. Além disso, a experiência de trabalhar com Flask para construir uma API robusta e eficiente, juntamente com a integração de um modelo de IA como uma ferramenta no processo, foi extremamente enriquecedora.

Aprendi muito sobre como gerenciar erros, planejar rotas e garantir uma comunicação eficaz entre o servidor e o cliente. Não posso deixar de mencionar minha jornada com Docker, onde adquiri habilidades para criar imagens personalizadas e gerenciar ambientes de desenvolvimento de forma eficiente, utilizando o docker-compose.

Project Image
Project Image