Detecção de objetos com YOLOv8
YOLO da ultralytics, model.predict(), caixas delimitadoras, filtragem por confiança e treinamento personalizado.
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 ultralyticsCarregando 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 onesLendo 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] rowsClasses 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 frameTreinamento 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: vestVerificaçã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.
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
- Tensores PyTorch e Autograd
- Conjuntos de dados e DataLoaders personalizados
- Construção e treinamento de CNNs com PyTorch
- Detecção de objetos com YOLOv8