Skip to content

alocinny/detector-yolo-android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android Object Detector • YOLOv8

Android Kotlin TFLite YOLOv8

Aplicativo nativo para inferência on-device de detecção de objetos (Xícara, Mouse, Celular).
Pipeline completo implementado: Coleta → Treinamento → Exportação → Deploy Mobile.


Sobre o Projeto

Este projeto é uma prova de conceito de engenharia de ML focada em dispositivos móveis. O objetivo foi orquestrar um fluxo de trabalho completo de Visão Computacional, culminando em um aplicativo Android capaz de realizar inferência em tempo real utilizando um modelo YOLOv8 quantizado para TFLite.

O core do desafio técnico foi o pós-processamento do tensor de saída ([1, 7, 5376]) diretamente em Kotlin, sem dependências pesadas de Python no device.


Arquitetura e Pipeline

A estrutura foi modularizada para separar a preparação de dados da lógica de aplicação.

Componente / Módulo Descrição Técnica
Dataset & Anotação Coleta manual (~150 imgs) e bounding box via Roboflow.
Treinamento (Colab) Transfer Learning com yolov8n.pt. 25 épocas.
Conversão de Modelo Export para .tflite (Float32, Input 512x512).
Android Wrapper Integração ActivityResultContracts para I/O de galeria.
Motor de Inferência Parser de Tensor [1, 7, 5376], NMS e normalização de coords.
UI/UX Renderização de Bounding Boxes em Canvas sobreposto.

Tech Stack

Mobile & Core

Machine Learning

Ferramentas


Engenharia: Desafios e Soluções

Nota Técnica: O maior desafio foi a matemática de coordenadas. O modelo YOLOv8 exportado possui um output de shape [1, 7, 5376].

  1. Parsing do Tensor: Foi necessário iterar sobre as 5376 detecções potenciais, filtrando pelo SCORE_THRESHOLD.
  2. Escalonamento: As coordenadas retornadas são relativas ao input do modelo (512x512). Implementada lógica para mapear de volta para a resolução original da imagem (Bitmap) e, subsequentemente, para a densidade de pixels da tela do dispositivo.

Como Executar

Pré-requisitos: Android Studio Ladybug ou superior, JDK 17+.

  1. Clone o repositório
git clone [https://github.com/seu-usuario/android-yolo-detector.git](https://github.com/seu-usuario/android-yolo-detector.git)
  1. Abra o projeto no Android Studio e aguarde o Sync do Gradle
  2. Configure um emulador (Recomendado: API 26+)
  3. Build & Run: O app será instalado no dispositivo virtual/físico.

Dica: Arraste imagens de teste (xícaras, mouses) para o emulador antes de rodar

Uso

  1. Clique em "Carregar Imagem".
  2. Selecione uma foto da galeria.
  3. O app processará o Bitmap e desenhará as caixas de detecção.
Built with 💀 by alocinny

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published