Logo AfroPython Conf 2025

O Poder da Visão Computacional Multimodal

Extraindo Informações de Vídeos com Python e LLMs

Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

center

Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Mauricio Souza Menezes

  • Bacharel em Sistemas de Informação - UnEB
  • Pesquisador em Computação e Bioinformática (G2BC)
  • Arquiteto/Desenvolvedor de Software (Renova)
  • Mestrando em Ciência da Computação - UFBA

  • mau-me.github.io/maume_page
  • mauriciosm95@gmail.com
  • linkedin.com/in/mau-me
  • github.com/mau-me
Objetivos Apresentação
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Objetivos da Apresentação

  • Apresentar conceitos de visão computacional
  • Explorar o uso de LLMs multimodais
  • Entender o treinamento do YOLO para detecção de objetos (placas veiculares)
  • Analisar desafios do OCR e justificar uso de LLM multimodal
  • Demonstrar o pipeline de processamento de vídeos (Python + YOLO + API LLMs)
  • Exibir resultados práticos, métricas de desempenho e considerações finais
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Problema a Ser Resolvido

Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Problema a Ser Resolvido

  • Extrair informações de placas de veículos em vídeos ao vivo.
  • Conseguir identificar placas no formato antigo (LLL-NNNN) e no novo formato Mercosul (LLL-NLNN)
  • Necessidade de uma solução rápida e precisa.
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Soluções Propostas

Python, Visão Computacional e LLMs
center
Logo AfroPython Conf 2025
Python, Visão Computacional e LLMs
center
Logo AfroPython Conf 2025
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Introdução à Visão Computacional

Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

O que é Visão Computacional?

  • Ramo da inteligência artificial que habilita computadores a interpretarem imagens e vídeos
  • Principais tarefas: detecção de objetos, segmentação, reconhecimento de padrões e análise de vídeo
  • Aplicações: vigilância, direção autônoma, automação industrial (Szeliski, 2010)
Visão Computacional
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Treinamento de YOLO para Placas Veiculares

Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

O que é YOLO(You Only Look Once)?

  • Arquitetura de detecção de objetos em tempo real
  • Utiliza uma rede neural convolucional (CNN) para extrair características da imagem
  • Divide a imagem em grades e prevê bounding boxes e classes de objetos simultaneamente
  • Alta velocidade e precisão, ideal para aplicações em tempo real
Arquitetura YOLO
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Treinamento de YOLO para Placas Veiculares

Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Pipeline de Treinamento

  • Coleta de dados: Conjunto de imagens de placas veiculares brasileiras já rotuladas em bases públicas
  • Ferramenta de treinamento: Retreinamento do modelo YOLOv8 com o dataset específico
  • Objetivo: Construir um modelo capaz de detectar a localização de placas veiculares nas imagens
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Dataset Utilizado

Busca realizada: "Brazilian License Plates Dataset"

Kaggle Dataset Roboflow Dataset
Figura 1: Exemplo de dataset no Kaggle Figura 2: Exemplo do dataset no Roboflow
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Formato do Dataset

data.yaml
├── train: caminho para o diretório de treinamento
├── val: caminho para o diretório de validação
├── nc: número de classes (placas veiculares)
└── names: lista de nomes das classes (placas veiculares)
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Treinamento do YOLOv8

# Instalação do Ultralytics YOLOv8
pip install ultralytics==8.3.39
# Treinamento do modelo YOLOv8 com o dataset de placas veiculares
yolo train model=yolov8n.pt data=combined/data.yaml epochs=100 imgsz=640

Ajustes de hiperparâmetros:

  • epochs: número de épocas de treinamento
  • imgsz: tamanho da imagem de entrada

Ao final do treinamento, o modelo é salvo no diretório runs/detect/train/weights/best.pt

Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Extração de Placas Veiculares com YOLOv8

from ultralytics import YOLO

# Carrega o modelo treinado a partir de um arquivo .pt
model = YOLO('caminho/para/seu/best.pt')

# Executa a inferência no frame, o filtro de confiança já é aplicado aqui
results = model(frame, conf=0.70, device='cpu')

# Itera sobre as detecções
for result in results:
    for box in result.boxes:
        # Extrai as coordenadas da caixa delimitadora
        x1, y1, x2, y2 = map(int, box.xyxy[0])

        # Recorta a imagem da placa detectada
        cropped_box = frame[y1:y2, x1:x2]
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Introdução aos Modelos de Linguagem (LLMs)

Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

O que são LLMs?

  • Modelos de linguagem treinados em grandes volumes de texto
  • Capazes de gerar, resumir e traduzir texto, responder perguntas e realizar tarefas complexas de linguagem natural
  • Exemplos: GPT-3, BERT, T5
Modelos de Linguagem
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

LLMs Multimodais

  • Modelos que combinam texto e imagens para tarefas mais complexas
  • Capazes de entender e gerar respostas que envolvem múltiplas modalidades de dados
  • Exemplos: CLIP, DALL-E, GPT-4o
Modelos Multimodais
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Comparação entre APIs de LLMs

Recurso OpenAI API (gpt-4o) Google AI Studio (gemini-1.5-flash)
Modalidade de Entrada Texto, Imagem e Áudio Áudio, Imagem, Vídeo e Texto
Modalidade de Saída Texto Texto
Gratuito para Uso Básico Não Sim
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

OCR de Placas Veiculares com LLMs (OpenAI)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    """
                    text": "A imagem contém uma placa de um veículo brasileiro.
                    A sua resposta deve ser APENAS o texto contido na placa.
                    Extraia e retorne APENAS os 7 caracteres da placa. Os formatos válidos no Brasil são LLLNNNN (formato antigo)
                    ou LLLNLNN (formato Mercosul),onde L é uma letra e N é um número.
                    """,
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{base64_image}"
                    },
                },
            ],
        }
    ],
)
text = response.choices[0].message.content
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

OCR de Placas Veiculares com LLMs (Google)

model = genai.GenerativeModel('gemini-1.5-flash-latest')

prompt_texto = (
                "A imagem contém uma placa de um veículo brasileiro. "
                "A sua resposta deve ser APENAS o texto contido na placa. "
                "As placas brasileiras estão somente em dois formatos LLLLNNN ou LLLNLNN. "
                "Sendo L uma letra e N um número. "
                "Extraia e retorne APENAS os 7 caracteres da placa."
            )
response = model.generate_content([prompt_texto, image])
text = response.text.strip()
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Desafios do OCR vs. Vantagens do LLM

  • Limitações do OCR Tradicional (ex: Tesseract)

    • Confusão entre caracteres similares (ex: 'B' e '8', 'O' e '0').
    • Alta sensibilidade a variações de ângulo, iluminação e resolução.
    • Baixo desempenho com placas danificadas ou parcialmente obstruídas.
  • Por que usar um LLM Multimodal?

    • Inferência Contextual: Consegue ler caracteres distorcidos ou ilegíveis.
    • Compreensão de Padrões: Entende os formatos válidos (LLLNNNN, LLLNLNN) para autocorrigir a leitura.
    • Robustez: É mais resiliente a variações de qualidade da imagem.
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Aplicações Futuras da Visão Computacional Multimodal

  • Segurança Pública: Monitoramento de tráfego, reconhecimento de veículos suspeitos.
  • Transporte e Logística: Rastreamento de frotas, otimização de rotas.
  • Automação Residencial: Sistemas de segurança inteligentes, reconhecimento de visitantes.
  • Saúde: Análise de imagens médicas, monitoramento de pacientes.
  • Agronegócio: Monitoramento de colheitas, identificação de pragas.
  • Educação: Ferramentas de aprendizado interativas, análise de vídeos educacionais.
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

Aplicação Prática: Reconhecimento de Placas Veiculares

center

Python, Visão Computacional e LLMs
center
Logo AfroPython Conf 2025
Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

OBRIGADO❣️

Python, Visão Computacional e LLMs
Logo AfroPython Conf 2025

DÚVIDAS QUE O CHATGPT NÃO RESPONDA

Python, Visão Computacional e LLMs

Esta seção descreve o problema que a apresentação busca resolver, destacando a importância de extrair informações de placas veiculares em vídeos.

Esta seção apresenta as soluções propostas para resolver o problema de extração de informações de placas veiculares em vídeos.

Esta seção apresenta o pipeline inicial proposto para resolver o problema de extração de informações de placas veiculares em vídeos.

Esta seção apresenta a arquitetura final do pipeline, destacando as melhorias e ajustes feitos em relação à proposta inicial.

Esta seção introduz o conceito de visão computacional, suas aplicações e a importância de modelos multimodais.

Esta seção apresenta os conceitos básicos de LLMs, suas características e exemplos de uso.

Tabela Comparativa entre Chatgpt e Gemini