Skip to content

BayesTheory/Vehicle-Color-Detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚗 Vehicle Color Detection System

Python 3.11+ FastAPI YOLO11 License

Sistema avançado de detecção e rastreamento de veĂ­culos com classificação de cores usando YOLOv11 e ByteTrack. Detecta mĂșltiplos carros simultaneamente e classifica suas cores com alta precisĂŁo.

✹ Características Principais

Detecção Multi-Car

  • Detecta todos os carros na imagem/vĂ­deo (nĂŁo apenas o maior)
  • Rastreamento persistente com ByteTrack
  • Classificação individual de cada veĂ­culo detectado
  • Confiança configurĂĄvel para detecção e classificação

Classificação de Cores

  • 10 cores suportadas: azul, branco, cinza, marrom, prata, preto, rosa, verde, vermelho, amarelo
  • Modelos treinados especificamente para veĂ­culos brasileiros
  • Confiança ajustĂĄvel via interface web
  • Visualização colorida com numeração automĂĄtica

API Completa

  • Interface web interativa com upload de arquivos
  • Processamento assĂ­ncrono com progresso em tempo real
  • MĂșltiplos formatos suportados (MP4, JPG, PNG)
  • HistĂłrico completo de processamentos

đŸ—ïž Arquitetura do Sistema

Vox/
├── 📋 requirements.txt              # DependĂȘncias Python
├── 📊 config.json                   # ConfiguraçÔes principais
├── 📁 src/
│   ├── ⚙ main_uni.py               # CĂłdigo fonte
│   ├── 🌐 api/main_api.py          # API FastAPI multi-car
│   ├── 🎯 tracking/track.py        # Motor de tracking otimizado
│   ├── 🎓 train/train.py           # Pipeline de treinamento (desativado)
│   ├── 🔧 utils/utils.py           # Utilitários
│   └── 📊 cli/commands.py          # Comandos CLI
├── 📂 runs/                         # Modelos treinados
│   ├── yolo11n_detection_detect3/weights/best.pt
│   ├── yolo11n_classification_colors_n3/weights/best.pt
│   ├── yolo11s_classification_colors_s3/weights/best.pt
│   └── yolo11s_detection_detect3/weights/best.pt
└── 📁 outras configs/               # ConfiguraçÔes adicionais
    ├── full config.json
    └── gpu config.json

🚀 Quick Start com Poetry

1. Clone e Configure

git clone <repository>
cd Vox

2. Ative o ambiente Conda e Instale o Poetry

conda create -n vox python=3.10 -y
conda activate vox
pip install poetry

3. Instale dependĂȘncias

poetry install --no-root
poetry add requests[use_chardet-on-py3]
poetry install --no-root
poetry run python -c "import requests; print(requests.__version__)"
poetry install --no-root

4. Como Executar

#Modo Interativo 
poetry run python src/main_uni.py
#Modo API 
poetry run uvicorn src.api.main_api:app --host 127.0.0.1 --port 8000 --reload

📩 Instalação Manual

Pré-requisitos

  • Python 3.11+
  • CUDA 11.8+ (opcional, para GPU)
  • FFmpeg
  • Git

1. Instalar DependĂȘncias

# Criar ambiente virtual
python -m venv venv
source venv/bin/activate  # Linux/Mac
# ou
venv\Scripts\activate     # Windows

# Instalar dependĂȘncias
pip install -r requirements.txt

2. Verificar Modelos

# Modelos disponĂ­veis no projeto
runs/yolo11n_detection_detect3/weights/best.pt       # Detector nano
runs/yolo11s_detection_detect3/weights/best.pt       # Detector small
runs/yolo11n_classification_colors_n3/weights/best.pt # Classifier nano
runs/yolo11s_classification_colors_s3/weights/best.pt # Classifier small

3. Executar

# API Web
python main_uni.py api

# Modo interativo
python main_uni.py

# Processar vĂ­deo direto
python main_uni.py track \
  --video input.mp4 \
  --det-weights runs/yolo11n_detection_detect3/weights/best.pt \
  --cls-weights runs/yolo11n_classification_colors_n3/weights/best.pt

📊 Performance

Benchmarks Atuais (Sistema do Desenvolvedor)

  • Detector: YOLO11n (320px) - ~15ms por frame
  • Classificador: YOLO11n/s (128px) - ~8ms por crop
  • Throughput: 45-55 FPS com frame_stride 2-3
  • Memory Usage: ~1.5GB RAM
  • CPU: 12 threads otimizadas

ConfiguraçÔes de Performance

{
  "performance": {
    "frame_stride": 2,           // Processa 1 a cada 2 frames
    "detection_interval": 3,     // Detecta a cada 3 frames
    "batch_size": 10,           // Classifica 10 carros por vez
    "num_threads_cpu": 12,      // MĂĄximo paralelismo CPU
    "enable_cache": true,       // Cache inteligente ativo
    "cache_size": 500,          // 500 classificaçÔes em cache
    "cache_ttl": 20             // Cache expira em 20 frames
  }
}

OtimizaçÔes Implementadas

  • ✅ Smart Caching - Reduz classificaçÔes redundantes em 40-60%
  • ✅ Batch Processing - Processa mĂșltiplos carros simultaneamente
  • ✅ Frame Striding - Processa 1 a cada N frames
  • ✅ ONNX Fallback - InferĂȘncia otimizada quando disponĂ­vel
  • ✅ Multi-threading - Paralelização CPU otimizada
  • ✅ Async Processing - Processamento nĂŁo-bloqueante
  • ✅ Memory Pooling - Reutilização eficiente de buffers
  • ✅ Detection Interval - Detecção espaçada para performance build-gpu, make run-gpu, make up-gpu`
  • UtilitĂĄrios: make logs, make status, make health, make shell
  • Testes: make test, make lint, make format
  • Limpeza: make clean, make clean-all

📝 Status Atual

v2.0.0 (Atual - Modo Produção)

  • ✅ Multi-car detection - Detecta todos os carros
  • ✅ Web interface - UI completa e intuitiva
  • ✅ Async processing - Processamento nĂŁo-bloqueante
  • ✅ Smart caching - Performance otimizada (45-55 FPS)
  • đŸš« Training disabled - Modo produção (CI/CD planejado)

📈 Roadmap

v2.1 (PrĂłxima Release)

  • Suporte a Treino/Retreino fechando o ciclo CI/CD
  • Suporte a streaming em tempo real
  • Dashboard de analytics avançado
  • Exportação para banco de dados
  • API de estatĂ­sticas histĂłricas

đŸ€ Suporte

InformaçÔes do Projeto

  • Nome: Vehicle Color Detection System
  • VersĂŁo: 2.0.0
  • Modo: Produção (Treinamento Desativado)
  • Framework: YOLOv11 + ByteTrack
  • API: FastAPI + Interface Web

Suporte Técnico

Para questÔes técnicas, consulte:

  • 📚 Documentação: /docs endpoint da API
  • 🔧 Config: Arquivo config.json centralizadoFIRST

📄 Licença

Este projeto estå licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

🙏 Agradecimentos

  • Ultralytics - YOLO11 implementation
  • ByteTrack - Multi-object tracking
  • FastAPI - Modern web framework
  • PyTorch - Deep learning framework

🚗 Vehicle Color Detection System - Built with ❀ for automotive AI

Performance Models

About

Intelligent Vehicle Detection, Tracking & Color Classification - Supports 10 vehicle colors with 90%+ accuracy

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages