Contagem de Objetos em Diferentes Regiões usando Ultralytics YOLO 🚀
O que é a Contagem de Objetos em Regiões?
A contagem de objetos em regiões com Ultralytics YOLO11 envolve determinar precisamente o número de objetos dentro de áreas especificadas usando visão computacional avançada. Essa abordagem é valiosa para otimizar processos, aprimorar a segurança e melhorar a eficiência em várias aplicações.
Ver: Contagem de Objetos em Diferentes Regiões usando Ultralytics YOLO11 | Soluções Ultralytics 🚀
Vantagens da Contagem de Objetos em Regiões?
- Precisão e Exatidão: A contagem de objetos em regiões com visão computacional avançada garante contagens precisas e exatas, minimizando erros frequentemente associados à contagem manual.
- Melhoria de Eficiência: A contagem automatizada de objetos aumenta a eficiência operacional, fornecendo resultados em tempo real e otimizando processos em diferentes aplicações.
- Versatilidade e Aplicação: A versatilidade da contagem de objetos em regiões torna-a aplicável em vários domínios, desde a manufatura e vigilância até ao monitoramento de tráfego, contribuindo para a sua utilidade e eficácia generalizadas.
Aplicações no Mundo Real
Retalho | Ruas do Mercado |
---|---|
![]() |
![]() |
Contagem de Pessoas em Diferentes Regiões usando Ultralytics YOLO11 | Contagem de Multidões em Diferentes Regiões usando Ultralytics YOLO11 |
Exemplos de utilização
Contagem de região usando Ultralytics YOLO
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Pass region as list
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
# Pass region as dictionary
region_points = {
"region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
"region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
}
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("region_counting.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize region counter object
regioncounter = solutions.RegionCounter(
show=True, # display the frame
region=region_points, # pass region points
model="yolo11n.pt", # model for counting in regions i.e yolo11s.pt
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = regioncounter(im0)
# print(results) # access the output
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
Código de Exemplo da Ultralytics
O módulo de contagem de regiões Ultralytics está disponível em nossa seção de exemplos. Você pode explorar este exemplo para personalização de código e modificá-lo para se adequar ao seu caso de uso específico.
RegionCounter
Argumentos
Aqui está uma tabela com o RegionCounter
argumentos:
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
model |
str |
None |
Caminho para o arquivo do modelo Ultralytics YOLO. |
region |
list |
'[(20, 400), (1260, 400)]' |
Lista de pontos que definem a região de contagem. |
O RegionCounter
solução permite o uso de parâmetros de rastreamento de objetos:
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Especifica o algoritmo de rastreamento a ser usado, por exemplo, bytetrack.yaml ou botsort.yaml . |
conf |
float |
0.3 |
Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos. |
iou |
float |
0.5 |
Define o limite de Intersecção sobre União (IoU) para filtrar detecções sobrepostas. |
classes |
list |
None |
Filtra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas. |
verbose |
bool |
True |
Controla a exibição dos resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados. |
device |
str |
None |
Especifica o dispositivo para inferência (por exemplo, cpu , cuda:0 ou 0 ). Permite aos utilizadores selecionar entre CPU, um GPU específico, ou outros dispositivos de computação para a execução do modelo. |
Adicionalmente, as seguintes configurações de visualização são suportadas:
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
show |
bool |
False |
Se True apresenta as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste. |
line_width |
None or int |
None |
Especifica a largura da linha das caixas delimitadoras. Se None A largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza. |
show_conf |
bool |
True |
Apresenta a pontuação de confiança para cada deteção ao lado da etiqueta. Dá uma ideia do grau de certeza do modelo para cada deteção. |
show_labels |
bool |
True |
Apresenta etiquetas para cada deteção na saída visual. Proporciona uma compreensão imediata dos objectos detectados. |
FAQ
O que é a contagem de objetos em regiões específicas usando Ultralytics YOLO11?
A contagem de objetos em regiões específicas com Ultralytics YOLO11 envolve a detecção e a contagem do número de objetos dentro de áreas definidas usando visão computacional avançada. Este método preciso aumenta a eficiência e a precisão em várias aplicações, como manufatura, vigilância e monitoramento de tráfego.
Como executar o script de contagem de objetos baseada em região com Ultralytics YOLO11?
Siga estas etapas para executar a contagem de objetos no Ultralytics YOLO11:
-
Clone o repositório Ultralytics e navegue até o diretório:
git clone https://github.com/ultralytics/ultralytics cd ultralytics/examples/YOLOv8-Region-Counter
-
Execute o script de contagem de região:
python yolov8_region_counter.py --source "path/to/video.mp4" --save-img
Para mais opções, visite a seção Exemplos de Uso.
Por que devo usar Ultralytics YOLO11 para contagem de objetos em regiões?
Usar o Ultralytics YOLO11 para contagem de objetos em regiões oferece diversas vantagens:
- Processamento em Tempo Real: A arquitetura do YOLO11 permite inferência rápida, tornando-o ideal para aplicações que exigem resultados de contagem imediatos.
- Definição de Região Flexível: A solução permite que você defina várias regiões personalizadas como polígonos, retângulos ou linhas para atender às suas necessidades específicas de monitoramento.
- Suporte Multi-classe: Conte diferentes tipos de objetos simultaneamente dentro das mesmas regiões, fornecendo análises abrangentes.
- Capacidades de Integração: Integre-se facilmente com os sistemas existentes através da API python Ultralytics ou da interface de linha de comando.
Explore benefícios mais profundos na seção Vantagens.
Quais são algumas aplicações do mundo real da contagem de objetos em regiões?
A contagem de objetos com Ultralytics YOLO11 pode ser aplicada a inúmeros cenários do mundo real:
- Análise de Varejo: Conte os clientes em diferentes seções da loja para otimizar o layout e o pessoal.
- Gestão de Tráfego: Monitore o fluxo de veículos em segmentos de estrada ou cruzamentos específicos.
- Manufatura: Rastreie produtos que se movem por diferentes zonas de produção.
- Operações de Armazém: Conte os itens do inventário nas áreas de armazenamento designadas.
- Segurança Pública: Monitore a densidade de multidões em zonas específicas durante eventos.
Explore mais exemplos na seção Aplicações no Mundo Real e na solução TrackZone para capacidades adicionais de monitoramento baseado em zona.