YOLO na prática: detectar, rastrear e treinar

Uma câmera filma um pátio e o programa diz quantas pessoas diferentes passaram por ali. Quem faz isso é o YOLO, uma rede que olha a imagem inteira de uma vez e devolve caixas com o que encontrou.

São quatro notebooks curtos. Cada um abre no Google Colab, instala o que precisa e roda com vídeos de menos de 10 MB. Não precisa instalar nada no seu computador.

São 24 exercícios, seis por aula, e cada um tem um notebook próprio. Você escreve a resposta, roda a célula e o notebook diz na hora se acertou. Ver os 24 exercícios.

As aulas

Ônibus e pessoas detectados com caixas e confiança
AULA 1

Detecção em imagem

Uma linha de código e a foto volta com caixas, classes e confiança. Depois você lê esses números como dados e vê o que muda quando sobe o limite de confiança.

CPU · cerca de 1 minuto · 6 exercícios
Abrir no Colab
AULA 2

Detecção em vídeo

Vídeo é uma sequência de fotos. O laço é ler o quadro, detectar, desenhar e gravar. No fim, o vídeo anotado toca no próprio notebook e você baixa o arquivo.

CPU · cerca de 2 minutos · 6 exercícios
Abrir no Colab
AULA 3

Rastreamento e contagem de pessoas

O rastreador dá a cada pessoa um ID que se mantém entre os quadros. Com isso dá para contar gente diferente e quem cruzou uma linha. E também ver quando o ID falha.

CPU · cerca de 3 minutos · 6 exercícios
Abrir no Colab
model = YOLO("yolov8n.pt")

model.train(
    data="coco8.yaml",
    epochs=5,
    imgsz=320,
)

melhor = YOLO("best.pt")
AULA 4

Treino com dataset próprio

Como é um dataset no formato YOLO, como treinar a partir de pesos prontos e onde ficam as métricas. Oito fotos servem para entender o processo; um modelo bom pede centenas.

GPU T4 recomendada · cerca de 3 minutos · 6 exercícios
Abrir no Colab

Os 24 exercícios

Cada exercício tem um notebook só dele, que já vem executado do começo ao fim. Ele prepara os dados da aula, deixa uma célula para você tentar e mostra uma solução conferida. É só clicar em Abrir no Colab.

01Aula 1 · Imagem · exercício 1

Contar pessoas

Quantas pessoas o modelo encontrou em resultado? A classe person tem índice 0.

Abrir no Colab
02Aula 1 · Imagem · exercício 2

Classes encontradas

Monte um conjunto (set) com os nomes das classes que apareceram na imagem.

Abrir no Colab
03Aula 1 · Imagem · exercício 3

A detecção mais segura

Qual é a maior confiança entre todas as caixas? Responda com um número entre 0 e 1.

Abrir no Colab
04Aula 1 · Imagem · exercício 4

A maior caixa

Qual é a área, em pixels, da maior caixa? Área é largura vezes altura, e xyxy dá os dois cantos.

Abrir no Colab
05Aula 1 · Imagem · exercício 5

Só pessoas

Rode o modelo de novo na mesma imagem, mas pedindo só pessoas com classes=[0]. Quantas caixas vieram?

Abrir no Colab
06Aula 1 · Imagem · exercício 6

Recortar o ônibus

Recorte só o ônibus da imagem original. Leia a foto com cv2.imread, ache a caixa da classe bus e fatie o array. A resposta é o recorte.

Abrir no Colab
07Aula 2 · Vídeo · exercício 1

Duração do vídeo

Quantos segundos tem o vídeo inteiro? Use o total de quadros e o FPS do arquivo.

Abrir no Colab
08Aula 2 · Vídeo · exercício 2

A classe campeã

Qual classe teve mais detecções no vídeo processado? Responda com o nome.

Abrir no Colab
09Aula 2 · Vídeo · exercício 3

Pular quadros

Processar todo quadro é caro. Nos primeiros 50 quadros, rode o modelo só em 1 a cada 5 (quadros 0, 5, 10...) e some quantas cadeiras (chair) foram detectadas.

Abrir no Colab
10Aula 2 · Vídeo · exercício 4

Quadros com cadeira

Em quantos dos primeiros 60 quadros aparece pelo menos uma cadeira?

Abrir no Colab
11Aula 2 · Vídeo · exercício 5

Vídeo só com plantas

Grave um vídeo novo com os primeiros 60 quadros, desenhando só as detecções de potted plant. A resposta é o caminho do arquivo. Descubra o índice da classe em model.names.

Abrir no Colab
12Aula 2 · Vídeo · exercício 6

Média por quadro

Em média, quantas cadeiras o modelo detectou por quadro no vídeo processado?

Abrir no Colab
13Aula 3 · Rastreamento · exercício 1

Pico de movimento

Qual foi o maior número de pessoas rastreadas ao mesmo tempo num quadro?

Abrir no Colab
14Aula 3 · Rastreamento · exercício 2

Quando foi o pico

Em qual quadro (índice começando em 0) esse pico aconteceu pela primeira vez?

Abrir no Colab
15Aula 3 · Rastreamento · exercício 3

Lotação média

Quantas pessoas, em média, estavam em cena por quadro?

Abrir no Colab
16Aula 3 · Rastreamento · exercício 4

Quem não cruzou

Quantos IDs apareceram no vídeo mas não cruzaram a linha?

Abrir no Colab
17Aula 3 · Rastreamento · exercício 5

Quem ficou em cena

Rastreie de novo os primeiros 100 quadros com um modelo novo (YOLO("yolov8n.pt"), para os IDs começarem do zero). Quantas pessoas apareceram em pelo menos 50 desses quadros?

Abrir no Colab
18Aula 3 · Rastreamento · exercício 6

Linha horizontal

Troque a linha vertical por uma horizontal no meio da imagem (y = altura // 2). Rastreando os primeiros 100 quadros com um modelo novo, quantas pessoas cruzaram essa linha?

Abrir no Colab
19Aula 4 · Treino · exercício 1

Tamanho do treino

Quantas imagens há na pasta de treino do coco8?

Abrir no Colab
20Aula 4 · Treino · exercício 2

Objetos rotulados

Quantos objetos rotulados existem, somando todos os arquivos .txt do treino? Cada linha é um objeto.

Abrir no Colab
21Aula 4 · Treino · exercício 3

Classe mais rotulada

Qual classe mais aparece nos rótulos de treino? Responda com o nome, não com o número.

Abrir no Colab
22Aula 4 · Treino · exercício 4

De volta para pixels

Pegue a primeira linha do rótulo 000000000009.txt e converta para pixels no formato (x1, y1, x2, y2), usando o tamanho real da imagem 000000000009.jpg.

Abrir no Colab
23Aula 4 · Treino · exercício 5

A melhor época

Em qual época a train/box_loss foi a menor?

Abrir no Colab
24Aula 4 · Treino · exercício 6

Validar o modelo

Rode a validação do modelo treinado com melhor.val(data="coco8.yaml", imgsz=320) e responda com o mAP50.

Abrir no Colab

Como rodar

  1. Clique em Abrir no Colab e entre com sua conta Google.
  2. Menu Ambiente de execução → Executar tudo. Na aula 4, antes, troque o tipo de ambiente para T4 GPU.
  3. Se o Colab avisar que o notebook não é do Google, confirme em Executar mesmo assim.
  4. Nos exercícios, rode primeiro a célula Preparação dos exercícios. Depois troque resposta = None pela sua resposta e rode a célula. No fim, placar() mostra quantos você acertou.
  5. Para guardar suas alterações, use Arquivo → Salvar uma cópia no Drive.