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

 
 
 

Contributors

Languages