Skip to content

labproufpa/contagem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contagem de pessoas

O código disponibilizado aqui faz a contagem de pessoas usando YOLO. As detecções são enviadas para um servidor Thingsboard.

A solução é ideal para captura em uma sala. O código supõe o uso de uma câmera anexada ao equipamento de captura, bem como um servidor Thingsboard em funcionamento.

O código é baseado no trabalho desenvolvido por Nimbus

Requisitos

  • Web Cam ou Raspberry Pi Cam
  • Caso executando em uma Raspberry Pi, utilizar o modelo versão 4 ou superior
  • Acesso a um servidor Thingsboard

Instalação

Instale as dependências usando pip install -r requirements.txt

Configuração

Renomeie o arquivo config-exemplo.yaml para config.yaml.

Adicione ao arquivo o host do Thingsboard que será usado para envio das informações e o Token de Acesso do dispositivo criado no respectivo servidor do Thingsboard. Por favor, verifique a documentação do Thingsboard para detalhes sobre a criação de serviços e configuração de dispositivos.

O arquivo dashboard.json é um exemplo de dashboard. Para usá-lo basta importar o arquivo no servidor Thingsboard. Após isso, deve-se configurar cada widget selecionando o dispositivo criado para receber a telemetria.

Atenção: Caso esteja usando o servidor de demonstração do Thingsboard, o envio de imagens pode não funcionar devido a uma limitação deste servidor quanto ao tamanho do JSON de telemetria enviado. Neste caso, recomendamos usar uma versão on premises do Thingsboard.

Modos de operação

No config.yaml escolha o modo de operação dentre as opções disponíveis:

  • dev neste modo não ocorre o envio de dados ao Thinsgboard e a frequência de captura é bastante intensa (ideal para ambientes de desenvolvimento)
  • cv2 é o modo que assume o uso de uma câmera USB
  • pi é o modo para uso com uma câmera Raspberry Pi Cam em uma Raspberry Pi

Intervalos de captura

Por padrão a captura no modo cv2 é feita a cada 4 segundos e o número de pessoas detectadas pelo modelo YOLO é armazenada. Uma média do número de pessoas detectadas é enviada a cada 60 segundos. Desta forma, suaviza-se os efeitos da variação de detecção causados pela movimentação no ambiente.

No modo pi a captura é feita, por padrão, a cada 30 segundos e os envios a cada 60 segundos. Os tempos de captura e envio, exceto no modo dev, podem ser modificados. Para isso, modifique o arquivo config.yaml.

Envio da imagem

O código permite o envio da última imagem adquirida pela câmera para o Thingsboard. Para uso desta funcionalidade use a opção sendImage como true no arquivo de configuração.

Instruções de uso

python3 main.py

About

Contagem de pessoas

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages