Learn AI with Python · Aula

Detecção de objetos com YOLOv8

YOLO da ultralytics, model.predict(), caixas delimitadoras, filtragem por confiança e treinamento personalizado.

Aula 4 de 413 etapas

Detecção de objetos com YOLOv8 é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Classificação versus detecção

A classificação de imagens informa o que está em uma imagem. A detecção de objetos vai além: encontra onde cada objeto está, desenhando caixas delimitadoras e rótulos. YOLO é o detector em tempo real mais popular.

O que é YOLO?

YOLO (You Only Look Once) detecta todos os objetos em uma única passagem direta, o que o torna rápido o suficiente para vídeos. O YOLOv8, da Ultralytics, oferece uma API Python simples para inferência e treinamento.

pip install ultralytics

Carregando um modelo pré-treinado

Importe YOLO e carregue um ponto de verificação. yolov8n.pt é o modelo nano: pequeno e rápido. As variantes maiores (s, m, l, x) trocam velocidade por precisão. Os pesos são baixados automaticamente na primeira utilização.

from ultralytics import YOLO

model = YOLO("yolov8n.pt")

Executando a inferência

Chame model.predict (ou simplesmente model(image)) usando um caminho de imagem, uma URL ou uma matriz. O resultado é uma lista de resultados, um para cada imagem de entrada.

results = model.predict("street.jpg", conf=0.5)

O limite de conf

O parâmetro conf define a confiança mínima necessária para manter uma detecção. Aumente-o para descartar caixas incertas (menos falsos positivos); diminua-o para encontrar mais objetos, com o risco de incluir ruído.

results = model.predict("street.jpg", conf=0.25)  # more detections
results = model.predict("street.jpg", conf=0.7)   # only confident ones

Lendo as caixas

Cada resultado tem um objeto boxes. boxes.xyxy fornece os cantos da caixa delimitadora como [x1, y1, x2, y2] (coordenadas de pixels do canto superior esquerdo e do canto inferior direito).

r = results[0]
print(r.boxes.xyxy)  # tensor of [x1, y1, x2, y2] rows

Classes e confiança

Junto com as caixas, você obtém boxes.cls (índices das classes) e boxes.conf (pontuações de confiança). Associe os índices aos nomes com model.names.

for box in r.boxes:
    cls_id = int(box.cls)
    conf = float(box.conf)
    name = model.names[cls_id]
    print(name, round(conf, 2))

Visualizando os resultados

results[0].plot() retorna uma matriz de imagem anotada, com caixas e rótulos desenhados sobre ela, pronta para ser exibida ou salva. É ótima para verificar rapidamente as detecções.

annotated = results[0].plot()

import cv2
cv2.imwrite("output.jpg", annotated)

Detectando em vídeo

Passe um arquivo de vídeo ou um índice de webcam, e o YOLO processará cada quadro. Com stream=True, ele produz resultados quadro a quadro, mantendo baixo o uso de memória em vídeos longos.

for result in model.predict("clip.mp4", stream=True):
    boxes = result.boxes
    # process each frame

Treinamento personalizado

Para detectar suas próprias classes de objetos, treine com um conjunto de dados rotulado descrito por um arquivo YAML. Chame model.train com a configuração dos dados, o número de épocas e o tamanho da imagem. O YOLO ajusta os pesos pré-treinados.

model = YOLO("yolov8n.pt")
model.train(
    data="my_dataset.yaml",
    epochs=50,
    imgsz=640
)

O YAML de dados

O YAML do conjunto de dados lista as pastas de imagens de treinamento e validação, além dos nomes das classes. O YOLO espera que cada imagem tenha um arquivo de rótulo correspondente, com coordenadas de caixas normalizadas para cada objeto.

# my_dataset.yaml
# train: images/train
# val: images/val
# names:
#   0: helmet
#   1: vest

Verificação rápida

Teste seu conhecimento sobre YOLOv8.

Recapitulação: detecção de objetos com YOLOv8

Você carregou um detector pré-treinado com YOLO("yolov8n.pt"), executou model.predict(img, conf=0.5) e leu as detecções em results[0].boxes.xyxy, .cls e .conf. Visualizou os resultados com results[0].plot() e ajustou o modelo para classes personalizadas por meio de model.train com um YAML de dados.

Grátis para começar

Aprenda Python com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
53
Aulas
225

Perguntas Frequentes

A aula “Detecção de objetos com YOLOv8” é grátis?

Sim — o texto completo de “Detecção de objetos com YOLOv8” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Detecção de objetos com YOLOv8”?

YOLO da ultralytics, model.predict(), caixas delimitadoras, filtragem por confiança e treinamento personalizado. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Detecção de objetos com YOLOv8”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Tensores PyTorch e Autograd
  2. Conjuntos de dados e DataLoaders personalizados
  3. Construção e treinamento de CNNs com PyTorch
  4. Detecção de objetos com YOLOv8
← Voltar para Learn AI with Python