"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Guia para iniciantes em detecção de objetos em Python

Guia para iniciantes em detecção de objetos em Python

Publicado em 2024-11-02
Navegar:831

A Beginner’s Guide to Object Detection in Python

A detecção de objetos é uma das áreas mais interessantes da visão computacional, permitindo que máquinas reconheçam e localizem objetos em imagens ou vídeos. Este guia apresentará a detecção de objetos usando Python, ajudando você a implementar um pipeline de detecção básico com bibliotecas populares. Quer você seja um iniciante ou queira desenvolver suas habilidades existentes, este tutorial fornecerá informações essenciais para começar.


O que é detecção de objetos? ?

A detecção de objetos envolve duas tarefas principais:

  1. Classificação da imagem: Determinar qual objeto está presente na imagem.
  2. Localização do objeto: Encontrando a posição do objeto usando caixas delimitadoras.

Isso o torna mais complexo do que a simples classificação de imagens, onde o modelo apenas prevê rótulos de classe. A detecção de objetos requer a previsão da classe e da localização do objeto na imagem.


Algoritmos populares de detecção de objetos?

1. YOLO (você só olha uma vez)

  • Conhecido pela velocidade, YOLO é um sistema de detecção de objetos em tempo real que prevê caixas delimitadoras e probabilidades de classe simultaneamente.

2. SSD (detector MultiBox de disparo único)

  • O SSD detecta objetos em uma única passagem e é excelente na detecção de objetos em diferentes escalas usando mapas de recursos.

3. R-CNN mais rápido

  • Um modelo de dois estágios que primeiro gera propostas de regiões e depois as classifica. É mais preciso, mas mais lento que YOLO e SSD.

Configurando seu ambiente Python ?️

Para iniciar a detecção de objetos em Python, você precisará de algumas bibliotecas.

Etapa 1: instale o Python

Acesse python.org e baixe a versão mais recente do Python (3.8).

Etapa 2: instalar as bibliotecas necessárias

Usaremos OpenCV para processamento de imagens e TensorFlow para detecção de objetos.

pip install opencv-python tensorflow

Opcionalmente, instale o Matplotlib para visualizar os resultados da detecção.

pip install matplotlib

Modelos pré-treinados para detecção de objetos?

Em vez de treinar do zero, use modelos pré-treinados da API de detecção de objetos do TensorFlow ou do PyTorch. Modelos pré-treinados economizam recursos aproveitando conjuntos de dados como COCO (Common Objects in Context).

Para este tutorial, usaremos o ssd_mobilenet_v2 do TensorFlow, um modelo pré-treinado rápido e preciso.


Detecção de objetos com TensorFlow e OpenCV ?‍?

Veja como implementar um pipeline simples de detecção de objetos.

Etapa 1: carregar o modelo pré-treinado

import tensorflow as tf

# Load the pre-trained model
model = tf.saved_model.load("ssd_mobilenet_v2_fpnlite_320x320/saved_model")

Você pode baixar o modelo do zoológico de modelos do TensorFlow.

Etapa 2: carregar e processar a imagem

import cv2
import numpy as np

# Load an image using OpenCV
image_path = 'image.jpg'
image = cv2.imread(image_path)

# Convert the image to a tensor
input_tensor = tf.convert_to_tensor(image)
input_tensor = input_tensor[tf.newaxis, ...]

Etapa 3: realizar a detecção de objetos

# Run inference on the image
detections = model(input_tensor)

# Extract relevant information like bounding boxes, classes, and scores
num_detections = int(detections.pop('num_detections'))
detections = {key: value[0, :num_detections].numpy() for key, value in detections.items()}
boxes = detections['detection_boxes']
scores = detections['detection_scores']
classes = detections['detection_classes'].astype(np.int64)

Etapa 4: visualize os resultados

# Draw bounding boxes on the image
for i in range(num_detections):
    if scores[i] > 0.5:  # Confidence threshold
        box = boxes[i]
        h, w, _ = image.shape
        y_min, x_min, y_max, x_max = box

        start_point = (int(x_min * w), int(y_min * h))
        end_point = (int(x_max * w), int(y_max * h))

        # Draw rectangle
        cv2.rectangle(image, start_point, end_point, (0, 255, 0), 2)

# Display the image
cv2.imshow("Detections", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Este código carrega uma imagem, detecta objetos e os visualiza com caixas delimitadoras. O limite de confiança é definido como 50%, filtrando as detecções de baixa confiança.


Tópicos Avançados?

Pronto para levar suas habilidades de detecção de objetos para o próximo nível?

  • Detecção de objetos personalizados: treine um modelo personalizado em seu próprio conjunto de dados usando TensorFlow ou PyTorch.
  • Detecção em tempo real: aplique a detecção de objetos em transmissões de vídeo ao vivo para aplicações como segurança ou direção autônoma.
  • Implantação de dispositivos Edge: otimize modelos de detecção de objetos para dispositivos móveis e IoT.

Conclusão?

A detecção de objetos em Python abre um mundo de possibilidades em setores como saúde, segurança e direção autônoma. Com ferramentas como TensorFlow e OpenCV, você pode implementar rapidamente pipelines de detecção usando modelos pré-treinados como YOLO ou SSD. Quando estiver familiarizado com o básico, você poderá explorar tópicos mais avançados, como detecção em tempo real e treinamento de modelo personalizado.

Onde você aplicará a detecção de objetos a seguir? Vamos discutir nos comentários abaixo!


Palavras-chave: detecção de objetos, Python, visão computacional, OpenCV, TensorFlow, YOLO, SSD, Faster R-CNN

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/abhinowww/a-beginners-guide-to-object-detection-in-python-5ahp?1 Se houver alguma violação, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3