Yolo Vision Shenzhen
Shenzhen
Junte-se agora

As 8 melhores ferramentas e algoritmos de código aberto para rastreamento de objetos

Explore as 8 principais ferramentas de código aberto para rastreamento de objetos para análise de vídeo em tempo real. Veja como cada uma funciona e como escolher a mais adequada para o seu projeto.

Quando um carro passa um semáforo vermelho e uma multa automática é enviada ao motorista, ou quando um jogador de futebol dribla pelo campo e a câmara acompanha suavemente a jogada, a IA está a trabalhar silenciosamente em segundo plano. Em particular, esses sistemas dependem da visão computacional, um subcampo da IA que permite que as máquinas vejam, interpretem e compreendam informações visuais do mundo.

Na visão computacional, uma das principais tarefas por trás dessas aplicações é o rastreamento de objetos. Ele é usado para identificar objetos em cada quadro de um vídeo e, em seguida, acompanhar esses objetos à medida que se movem, se sobrepõem a outros ou mudam de direção.

Atualmente, existem muitas ferramentas e algoritmos de rastreamento de objetos disponíveis, cada um projetado para diferentes casos de uso, necessidades de desempenho e níveis de complexidade. Alguns se concentram na velocidade e podem track de objetos em tempo real, enquanto outros priorizam a precisão ou a estabilidade a longo prazo em condições desafiadoras, como oclusão, movimento rápido ou pouca iluminação.

Especificamente, os projetos de código aberto têm desempenhado um papel importante no avanço dessa área. Como o seu código é abertamente acessível, os programadores e investigadores podem estudar como eles funcionam, melhorar os métodos existentes e adaptá-los a novas aplicações. Essa abertura ajudou o rastreamento de objetos a evoluir rapidamente e a se tornar mais fácil de integrar em sistemas do mundo real.

Neste artigo, exploraremos oito ferramentas e algoritmos populares de código aberto para rastreamento de objetos. Vamos começar!

O que é rastreamento de objetos?

Considere um cenário em que um segurança está a assistir às imagens de CCTV de um parque de estacionamento. Ele decide ficar de olho num carro vermelho. À medida que o vídeo é reproduzido, ele marca mentalmente esse carro e continua a segui-lo para onde quer que ele vá, mesmo quando outros carros passam ou pessoas caminham à sua frente.

O rastreamento de objetos com tecnologia de IA é semelhante, mas funciona automaticamente e em grande escala. Em outras palavras, o rastreamento de objetos é o processo de acompanhar um objeto enquanto ele se move pelos quadros de um vídeo e manter a sua identidade consistente de um quadro para o outro. 

Em muitos sistemas, isso começa com a deteção de objetos, que localiza e identifica objetos como pessoas, veículos ou sinais de trânsito em cada quadro. Em seguida, à medida que esses objetos se movem, aparecem, desaparecem ou se sobrepõem, o sistema de rastreamento vincula as deteções entre os quadros para saber qual objeto é qual e para onde cada um vai ao longo do tempo.

Fig. 1. Uma visão geral do rastreamento de objetos (Fonte)

Existem dois tipos comuns de rastreamento: rastreamento de objeto único (SOT), que se concentra em um objeto principal (como rastrear apenas a bola em um vídeo desportivo), e rastreamento de múltiplos objetos (MOT), que segue muitos objetos ao mesmo tempo e atribui a cada um um ID exclusivo (como rastrear todos os carros em um cruzamento movimentado). 

Independentemente do tipo de rastreamento, a maioria dos sistemas depende de três componentes principais: um detetor para encontrar objetos em cada quadro, um modelo de movimento para prever como esses objetos provavelmente se moverão e uma etapa de correspondência para conectar novas deteções com objetos rastreados anteriormente. Essas partes transformam o vídeo bruto em informações significativas sobre como os objetos se movem e interagem ao longo do tempo.

A necessidade de ferramentas de rastreamento de objetos de código aberto

Antes de entrarmos em detalhes, talvez esteja a perguntar-se: o que torna as ferramentas e os algoritmos de rastreamento de objetos de código aberto tão especiais?

As ferramentas de código aberto têm desempenhado um papel importante em tornar o rastreamento de objetos mais fácil de usar e mais amplamente disponível. Como o código é aberto, os programadores e investigadores podem ver exatamente como um rastreador funciona, aprender com ele e adaptá-lo aos seus próprios projetos, em vez de tratá-lo como uma caixa preta.

Elas também se beneficiam de comunidades fortes. Muitas ferramentas de rastreamento de código aberto são mantidas por colaboradores ativos que adicionam novos recursos, melhoram a velocidade e a precisão, corrigem bugs e mantêm as ferramentas alinhadas com as pesquisas mais recentes. Essa colaboração contínua ajuda a mantê-las confiáveis e úteis em diferentes aplicações.

O custo é outra razão importante pela qual elas são importantes. Como as ferramentas de código aberto são gratuitas, estudantes, startups e pequenas equipas podem experimentar, criar protótipos e construir sistemas reais sem se preocupar com taxas de licença ou custos de assinatura.

As 8 melhores ferramentas e algoritmos de código aberto para rastreamento de objetos

Hoje em dia, existe uma grande variedade de opções de código aberto disponíveis para a criação de sistemas de rastreamento. Algumas são algoritmos ou modelos de rastreamento que podem ser conectados diretamente ao seu pipeline, enquanto outras são bibliotecas e estruturas que facilitam a execução, o gerenciamento e a integração desses modelos. Juntas, elas cobrem tudo, desde a lógica central de rastreamento até as ferramentas necessárias em um projeto real. 

A seguir, vamos dar uma olhada em oito ferramentas e algoritmos populares de código aberto para rastreamento de objetos.

1.YOLO Ultralytics e oPython Ultralytics

Uma das opções mais fáceis e práticas para rastreamento de objetos é usar os YOLO Ultralytics YOLO em combinação com o Python Ultralytics Python .YOLO Ultralytics YOLO como Ultralytics YOLO11 e o próximo Ultralytics são modelos de visão computacional que suportam uma variedade de tarefas de visão, incluindo deteção de objetos, segmentação de instâncias, estimativa de pose e rastreamento de objetos.

Fig. 2. Um exemplo da utilização YOLO11 detect track . (Fonte)

Curiosamente, os próprios modelos não track entre quadros. Em vez disso, oPython Ultralytics Python , uma biblioteca que simplifica a execução e a implementaçãoYOLO Ultralytics YOLO , torna o rastreamento possível combinando as detecções quadro a quadro YOLOcom algoritmos dedicados de rastreamento de múltiplos objetos, como BoT-SORT e ByteTrack. 

Com a sua capacidade de rastreamento integrada, o Ultralytics eYOLO Ultralytics YOLO podem ser usados para detect em cada quadro e, em seguida, atribuir IDs consistentes para que possam ser acompanhados à medida que se movem, se sobrepõem, saem do quadro e voltam a entrar mais tarde. Esta abordagem está a ser cada vez mais adotada em setores como o de manufatura e retalho, permitindo aplicações como fluxos de trabalho de inspeção de defeitos, rastreamento de fluxo de inventário e rastreamento de clientes na loja.

2. OpenCV

OpenCV é uma vasta biblioteca de visão computacional que inclui uma coleção de algoritmos de rastreamento de objetos. Esta biblioteca tem sido desenvolvida e mantida pela OpenCV desde 1999. 

Em vez de depender do aprendizado profundo, a maioria desses rastreadores usa métodos tradicionais de visão computacional, como filtros de correlação e técnicas baseadas em kernel (que seguem um objeto combinando sua aparência visual, como cor e textura, de um quadro para o outro, em vez de aprender características usando redes neurais). 

Ao utilizar esses algoritmos, normalmente pode primeiro selecionar o objeto que deseja track, e o rastreador procura continuamente a região visual mais semelhante nos quadros subsequentes à medida que o objeto se move. 

Fig. 3. Rastreamento de objetos usando OpenCV Fonte)

Embora esses métodos possam não ser tão robustos quanto os modernos sistemas de rastreamento baseados em deep learning em cenas complexas ou lotadas, eles ainda são amplamente utilizados porque são leves, rápidos e fáceis de executar. Além disso, como esses rastreadores funcionam de forma eficiente em CPUs e geralmente não requerem uma GPU, eles funcionam bem para experiências rápidas, aprendizagem em sala de aula e projetos de hobby. 

3. ByteTrack

O ByteTrack é um dos algoritmos de código aberto mais populares para rastreamento de múltiplos objetos. Em vez de corresponder apenas as detecções das quais o modelo tem certeza, ele também utiliza detecções de menor confiança que muitos sistemas normalmente ignoram. 

Isso ajuda a track objetos que são difíceis de ver por um breve período, como quando estão parcialmente bloqueados, distantes ou se movendo rapidamente. Por ser rápido e confiável, o ByteTrack é comumente usado em aplicações como análise de tráfego, rastreamento de pedestres e monitoramento de varejo, onde o desempenho em tempo real e IDs consistentes são importantes. 

Como mencionado anteriormente, se estiver a utilizarYOLO Ultralytics YOLO para deteção, é fácil ativar o ByteTrack através doPython Ultralytics Python . Mas ele também pode ser usado de forma independente em pipelines personalizados, tornando-o adequado para tudo, desde protótipos de pesquisa até sistemas de produção escritos em C++.

4. DeepSORT

Outro algoritmo amplamente utilizado para rastreamento de múltiplos objetos é o DeepSORT, abreviação de Deep Simple Online and Real-Time Tracking (Rastreamento Profundo Simples Online e em Tempo Real). É uma versão avançada do SORT, que significa Simple Online and Real-Time Tracking (Rastreamento Simples Online e em Tempo Real).

Semelhante ao ByteTrack, o SORT segue uma abordagem de rastreamento por detecção. No entanto, o SORT depende de um filtro Kalman, um modelo matemático que estima a posição futura de um objeto com base no seu movimento passado, para prever para onde cada objeto provavelmente se moverá a seguir.

Em seguida, ele compara novas detecções com faixas existentes, principalmente com base na posição e na sobreposição da caixa delimitadora. Isso torna o SORT rápido e leve, mas ele pode ter dificuldades quando os objetos se sobrepõem, cruzam caminhos ou desaparecem brevemente de vista.

O DeepSORT melhora o SORT ao adicionar informações de aparência ao processo de rastreamento. Além do movimento e da posição, ele usa um modelo de reidentificação ou re-id baseado em aprendizagem profunda que aprende como os objetos se parecem. Isso permite que o rastreador reconheça o mesmo objeto em vários quadros, mesmo quando o movimento não é suficiente para distingui-lo dos outros.

Por isso, o DeepSORT é comumente usado em aplicações como vigilância e monitoramento de multidões, onde as pessoas frequentemente se sobrepõem ou ficam brevemente ocultas. No entanto, ele é considerado uma base clássica hoje em dia, e métodos de rastreamento mais recentes costumam ter um desempenho melhor em cenários mais desafiadores.

5. Norfair

A Norfair é uma biblioteca de rastreamento leve, projetada para ser flexível, em vez de forçar o utilizador a seguir um pipeline de rastreamento fixo. Ela pode adicionar rastreamento a praticamente qualquer detetor, desde que as saídas do detetor possam ser representadas como um conjunto de pontos, tais como centros de caixas delimitadoras, pontos-chave ou dados de coordenadas personalizados.

Fig. 4. Rastreamento de objetos do mundo real usando Norfair (Fonte)

Essa flexibilidade torna-a especialmente impactante para projetos que envolvem entradas incomuns ou padrões de movimento dinâmicos, nos quais as ferramentas padrão de rastreamento de múltiplos objetos podem ser insuficientes. A biblioteca também fornece funções de distância integradas para controlar como as detecções são combinadas entre os quadros. 

Essas funções de distância medem a semelhança entre dois pontos ou objetos, dando aos utilizadores controle total sobre a lógica de rastreamento. O Norfair é frequentemente usado em robótica, análise de movimentos esportivos, navegação de drones e aplicações que dependem fortemente do rastreamento de pontos de referência ou pontos-chave.

6. MMTracking

MMTracking é uma caixa de ferramentas de rastreamento de código aberto da equipa OpenMMLab, que também está por trás de bibliotecas de visão computacional amplamente utilizadas, como MMDetection. Construída com base no MMDetection, ela fornece uma estrutura flexível para desenvolver e experimentar sistemas de rastreamento.

Um dos seus maiores pontos fortes é o seu design modular. Em vez de limitar o utilizador a um único pipeline, o MMTracking permite configurar e trocar diferentes componentes, como detetores, módulos de rastreamento e, em algumas configurações, modelos de reidentificação. Devido a essa flexibilidade, ele é especialmente popular em projetos de pesquisa e avançados, nos quais as equipas desejam comparar métodos, testar novas ideias ou ajustar pipelines de rastreamento.

7. FairMOT

O FairMOT é uma estrutura de rastreamento de múltiplos objetos projetada para track objetos ao mesmo tempo. Ao contrário dos pipelines tradicionais de rastreamento por detecção, que executam primeiro a detecção e, em seguida, vinculam os objetos entre os quadros como uma etapa separada, o FairMOT aprende a detecção e a reidentificação juntas em uma única rede. 

Fig. 5. Como funciona a estrutura FairMOT (Fonte)

Essa configuração conjunta ajuda a manter identidades mais consistentes, especialmente em cenas lotadas, onde as pessoas frequentemente se sobrepõem ou se movem rapidamente. O FairMOT é comumente usado em cenários como rastreamento de pedestres e monitoramento de multidões, e também é aplicado em configurações como análise de varejo e monitoramento de tráfego, onde é importante rastrear muitos alvos em tempo real.

8. SiamMask

O SiamMask é um método de rastreamento de objeto único que vai além de muitos rastreadores, produzindo uma máscara de segmentação juntamente com uma caixa delimitadora. Em termos simples, ele não se limita a desenhar um retângulo ao redor do alvo. Ele também delineia a forma do objeto ao nível do pixel, o que pode ser útil quando o alvo muda de forma, gira ou fica parcialmente oculto. 

Fig. 6. Rastreamento e segmentação de um objeto usando SiamMask (Fonte)

Esta abordagem utiliza um design de rastreamento siamês, que envolve o rastreador primeiro a obter uma pequena visualização de referência do alvo a partir do primeiro quadro, frequentemente chamado de modelo. Em seguida, em cada novo quadro, ele pesquisa uma região maior e encontra o ponto com maior semelhança com esse modelo. 

O SiamMask baseia-se nessa ideia de correspondência. Ele também prevê uma máscara em nível de pixel para o alvo, para que você obtenha a localização do objeto e um contorno mais preciso à medida que o vídeo é reproduzido.

Fatores-chave na escolha de uma ferramenta de rastreamento de objetos

Com várias opções de ferramentas de rastreamento de objetos de código aberto disponíveis atualmente no espaço de IA, a melhor opção para o seu projeto de visão computacional depende do que o seu caso de uso específico requer. Aqui estão alguns fatores a serem considerados:

  • Precisão: isso é mais significativo em cenas com muita gente ou visualmente complexas, onde o sistema de visão precisa manter IDs estáveis mesmo durante sobreposições, oclusões ou movimentos rápidos.
  • Velocidade: Para aplicações em tempo real, como robótica, monitoramento de tráfego e análise desportiva, a capacidade de resposta pode ser mais importante do que a precisão perfeita.
  • Facilidade de integração: algumas ferramentas de rastreamento de objetos são fáceis de conectar e usar e funcionam com apenas algumas linhas de código, enquanto outras exigem mais configuração, ajustes ou trabalho personalizado no pipeline.
  • Restrições de implementação: o ambiente de destino, como GPU , dispositivos de ponta ou hardware móvel, pode determinar qual abordagem de rastreamento é prática.
  • Escalabilidade: se o seu sistema precisa track objetos ao mesmo tempo ou processar vários fluxos de vídeo, o rastreador deve ser escalável de forma eficiente, sem grande queda no desempenho.

Cada ferramenta ou algoritmo de rastreamento de objetos tem uma finalidade diferente. Em última análise, a escolha certa depende dos seus requisitos específicos, restrições de tempo de execução, métricas de desempenho e do grau de personalização que o seu projeto exige da abordagem de rastreamento. 

Principais conclusões

O rastreamento de objetos evoluiu das técnicas artesanais iniciais para os sistemas de aprendizagem profunda de última geração atuais, que interpretam movimentos, identidades e comportamentos com uma precisão impressionante. As ferramentas de código aberto têm sido uma força motriz por trás desse progresso. Elas democratizam o acesso a algoritmos poderosos, incentivam a experimentação e permitem que os investigadores criem pipelines de rastreamento sofisticados sem licenças restritivas ou infraestruturas pesadas. 

Confira a nossa comunidade e o repositório GitHub para saber mais sobre IA. Explore as nossas páginas de soluções sobre IA na agricultura e visão computacional na indústria. Descubra as nossas opções de licenciamento e comece a construir o seu próprio modelo de visão.

Vamos construir o futuro
da IA juntos!

Comece sua jornada com o futuro do aprendizado de máquina

Comece gratuitamente