Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌳 Sistema de Detecção de Árvores PXG v2.0

Sistema otimizado para detectar árvores no PXG (Pokémon X Gen) em movimento, usando visão computacional.

🚀 Novidades da Versão 2.0

⚡ Performance Drasticamente Melhorada

Característica Versão Antiga Versão 2.0 Melhoria
FPS ~10 FPS 25+ FPS 2.5x mais rápido
Detecção em movimento ❌ Não funciona ✅ Funciona voando Agora funciona!
Processamento Sequencial Paralelo (threading) Muito mais eficiente
Área processada Tela inteira ROI (região central) 60% menos processamento
Escalas 5 escalas 3 escalas 40% menos cálculos
Templates Processados em tempo real Pré-processados (cache) Zero overhead

🎯 Principais Otimizações

  1. Threading Multi-core - Processa múltiplos templates em paralelo
  2. ROI (Region of Interest) - Foca apenas na área central (onde você voa)
  3. Cache de Templates - Templates são pré-processados e armazenados
  4. NMS Eficiente - Elimina duplicatas de forma inteligente
  5. Threshold Ajustado - Mais sensível (0.55) para detectar em movimento
  6. Código Modular - Separado em módulos para fácil manutenção

📁 Nova Estrutura do Projeto

pxg/
├── src/
│   ├── __init__.py          # Pacote principal
│   ├── config.py            # Configurações centralizadas
│   ├── detector.py          # Motor de detecção otimizado
│   └── overlay.py           # Interface overlay
├── tree_training_data/      # Templates de árvores
├── main.py                  # Versão antiga (backup)
├── main_refactored.py       # 🆕 Versão 2.0 otimizada
├── requirements.txt         # Dependências
└── README.md               # Este arquivo

📦 Instalação

1. Instalar dependências

pip install -r requirements.txt

2. Executar

# Versão 2.0 otimizada (RECOMENDADO)
python main_refactored.py

# Versão antiga (backup)
python main.py

🎮 Como Usar

Atalhos (Numpad)

  • NUMPAD [-] - Modo captura (marcar nova árvore)
  • NUMPAD [+] - Ativar/Pausar detecção
  • NUMPAD [*] - Sair

Passo a Passo

  1. Capturar Templates

    • Aperte NUMPAD [-]
    • Arraste um quadrado em volta de uma árvore
    • Solte para capturar
    • Capture várias árvores diferentes (quanto mais, melhor!)
  2. Ativar Detecção

    • Aperte NUMPAD [+]
    • O sistema começará a detectar árvores automaticamente
    • Agora você pode VOAR que ele detecta! 🎉
  3. Ajustar (se necessário)

    • Edite src/config.py para ajustar:
      • SIMILARITY_THRESHOLD - Sensibilidade (0.50-0.70)
      • FPS_TARGET - FPS desejado (20-30)
      • ROI_PADDING - Tamanho da área de detecção
      • USE_THREADING - Ativar/desativar threading

⚙️ Configurações Avançadas

Edite src/config.py:

# Sensibilidade (menor = mais sensível)
SIMILARITY_THRESHOLD = 0.55

# FPS desejado
FPS_TARGET = 25

# ROI (região de interesse)
USE_ROI = True           # Usar apenas área central
ROI_PADDING = 0.3        # 30% padding (processa 60% central)

# Performance
USE_THREADING = True     # Processamento paralelo
MAX_WORKERS = 4          # Threads simultâneas

# Escalas para detecção
SCALES = [0.9, 1.0, 1.1]  # Reduzido de 5 para 3

🔧 Troubleshooting

"Não está detectando nada"

  • Capture mais templates (pelo menos 3-5 árvores diferentes)
  • Reduza o SIMILARITY_THRESHOLD em config.py (ex: 0.50)
  • Certifique-se de que os templates estão em tree_training_data/

"Muitos falsos positivos"

  • Aumente o SIMILARITY_THRESHOLD (ex: 0.65)
  • Capture templates mais específicos
  • Ajuste DUPLICATE_DISTANCE para filtrar melhor

"Está lento ainda"

  • Reduza FPS_TARGET (ex: 20)
  • Aumente ROI_PADDING (ex: 0.4 = processa só 20% central)
  • Ative DOWNSAMPLE_FACTOR = 0.8 para reduzir resolução
  • Reduza SCALES para apenas [1.0]

"Não funciona voando"

  • Certifique-se de estar usando main_refactored.py
  • Reduza SIMILARITY_THRESHOLD para 0.50-0.55
  • Aumente FPS_TARGET para 30
  • Verifique se USE_ROI = True

📊 Estatísticas de Performance

Durante a execução, você verá:

  • FPS atual - Frames por segundo
  • FPS médio - Média da sessão
  • Detecções agora - Árvores detectadas no frame atual
  • Total sessão - Total de detecções desde que ativou

🎯 Área de Detecção (ROI)

Quando a detecção está ativa e USE_ROI = True, você verá um retângulo azul tracejado indicando a área que está sendo processada. Árvores fora dessa área não serão detectadas, mas isso torna o sistema muito mais rápido.

Ajuste ROI_PADDING se precisar de uma área maior/menor.

🐛 Problemas Conhecidos

  • Em telas com muitas árvores (>10), pode ter lentidão
  • Templates muito pequenos (<20x20) podem dar falsos positivos
  • Funciona melhor com boa iluminação no jogo

📝 Changelog

v2.0.0 (2024)

  • ⚡ Threading para processamento paralelo
  • 🎯 ROI para otimização de área
  • 💾 Cache de templates preprocessados
  • 🚀 Aumento de FPS de ~10 para 25+
  • 🧹 Refatoração completa em módulos
  • Funciona em movimento/voando!

v1.0.0 (Original)

  • Sistema básico de detecção
  • Funciona apenas parado
  • ~10 FPS

🤝 Contribuindo

Sinta-se livre para fazer melhorias! Sugestões:

  • Usar deep learning (YOLO, SSD) para detecção mais robusta
  • Adicionar auto-clique nas árvores detectadas
  • Interface gráfica para configurações
  • Salvar logs de detecção

⚠️ Aviso

Este é um projeto educacional. Use por sua conta e risco.


Feito com 💚 para a comunidade PXG

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages