Índice:
- Etapa 1: Materiais
- Etapa 2: Instale o Linaro no Dragonboard 410c
- Etapa 3: Etapa 2: instalar bibliotecas e baixar o código-fonte do GitHub
- Etapa 4: Configurando AWS IoT Core, DynamoDB
- Etapa 5: Configurar APIs Twilio e Dweet
- Etapa 6: Desafios
- Etapa 7: Resultados e trabalho futuro
- Etapa 8: Referências
Vídeo: Cambus - Sistema de Coleta de Dados em Ônibus Urbanos: 8 Passos
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Dentre os problemas e dificuldades conhecidos no transporte público, a população carece de informações em tempo real e com o mínimo de assertividade. A superlotação dos ônibus de transporte coletivo afasta os usuários, que preferem usar seus próprios veículos, mesmo estando no trânsito por horas. Se informações em tempo real, como o número de ônibus, estiverem facilmente disponíveis para o usuário, ele pode escolher se deseja aguardar o próximo ônibus ou se locomover de ônibus ou usar um veículo próprio. O poder de escolha torna o transporte público uma opção mais atraente para o usuário.
Contar ou estimar pessoas em ambientes fechados pode ser feito de várias maneiras, entre as quais as mais comumente empregadas são:
- Imagens térmicas;
- Visão computacional;
- Contador facial;
Entre as várias dificuldades para estimar pessoas em um ambiente usando visão computacional, as principais são:
- Oclusões de pessoas;
- Iluminação invertida;
- Oclusão estática, ou seja, pessoas atrás de objetos;
- Ângulo da câmera para o ambiente;
Um desafio para este projeto é saber o ângulo correto da câmera que melhor auxiliará na subtração do fundo da imagem, bem como a luminosidade variável durante o dia dentro do ônibus.
O principal objetivo da proposta é criar um modelo robusto e configurável para estimar a superlotação e disponibilizar os resultados à população por meio de smartphones.
Etapa 1: Materiais
O material necessário para o projeto é o seguinte:
1 x Dragon Board 410c;
1 x câmera USB;
1 x Smartphone Android;
Etapa 2: Instale o Linaro no Dragonboard 410c
Siga as instruções no link abaixo para instalar o Linaro 17.09 no DragonBoard 410c. Recomendamos a instalação do Linaro 17.09 para suporte de kernel para GPS.
www.96boards.org/documentation/consumer/dr…
Etapa 3: Etapa 2: instalar bibliotecas e baixar o código-fonte do GitHub
Cambus tem uma arquitetura modular e design de código. É possível codificar seu próprio algoritmo de aprendizado de máquina, mudar para outro serviço de nuvem e criar seus próprios aplicativos de usuário.
Para executar o projeto cambus, primeiro você precisa baixar o código-fonte do github (https://github.com/bmonteiro00/cambus). Instale o python (Cambus foi o modo de execução na versão 2.7 e> 3.x) e as seguintes bibliotecas usando 'pip' (sudo apt-get install python-pip). Será necessário instalar várias bibliotecas no sistema Linaro (Além disso, é recomendável criar um ambiente virtual - pip install virtualenv - para isolar o sistema Cambus do SO). Por favor, instale as seguintes bibliotecas:
- pip install paho-mqtt
- pip install numpy
- pip install opencv-python
- pip install opencv-contrib-python
- pip instalar twilio
- pip instalar matplotlib
O programa principal foi dividido em classes:
- CamBus - a classe principal;
- Sensor - uma classe para obter dados como posição GPS, temperatura, Co2.
- Contador - classe com algoritmo de processamento de imagem.
Certifique-se de que todas as bibliotecas foram instaladas e execute python CamBus_v1.py.
Etapa 4: Configurando AWS IoT Core, DynamoDB
Usamos o núcleo AWS IoT como um corretor MQTT com TLS e X509 e NoSQL e DynamoDB para registrar dados. Você terá que criar uma conta em https://aws.amazon.com/free.). A seguir, você terá que seguir os passos abaixo para criar uma coisa e integrar com o Dynamo:
docs.aws.amazon.com/iot/latest/developergu…
Etapa 5: Configurar APIs Twilio e Dweet
O serviço Twilio SMS também foi instalado. Consulte o URL abaixo para obter instruções para concluir esta etapa:
www.twilio.com/docs/iam/api/account
A integração entre o app android e o sistema foi feita por meio de REST na plataforma Dweet. Não é necessário cadastro.
dweet.io/
Etapa 6: Desafios
Durante nosso desenvolvimento, muitos desafios enfrentamos, desde as técnicas OpenCV até a plataforma AWS. Decidimos codificar com Python para economizar tempo de desenvolvimento em C / C ++. Durante o nosso desenvolvimento, apenas os métodos básicos do Opencv, como:
• cv2. GaussianBlur (..)
• cv2.threshold (..)
• cv2.morphologyEx (..)
• cv2.contourArea (..)
• cv2.findContours (..)
Esses métodos básicos não foram suficientes para alcançar uma boa qualidade na detecção de pessoas. Cenários com vídeo instável ML (Aprendizado de Máquina) foi usado. Então, decidimos usar a biblioteca de aprendizado de máquina OpenCV e tivemos outro problema porque encontrar uma boa entrada de dados para o algoritmo de ML era um problema que levamos muitos dias. Usamos o algoritmo OpenCV SVM, mas não funcionou. Usamos OpenCV Naive Bayses e este funcionou bem. Tentamos usar as redes neurais Tensorflow e CNN, mas não fizemos isso por agora. A CNN usa muito poder de processamento, algo que não tínhamos. Usar o OpenCV ML e os métodos básicos do OpenCV nos ajudou a atingir uma boa taxa de detecção de pessoas. Porém, para cada tipo de vídeo temos que adaptar os parâmetros do OpenCV de forma a atingir um bom índice de detecção de pessoas e evitar falsos positivos. No meio desses dois meses desenvolvemos nossa primeira ideia de fazer um centro de coleta de dados não apenas o número de passageiros e localização GPS. Decidimos não coletar dados por meio de outros sensores como temperatura e assim por diante. Criamos um arquivo.ini para parametrizar a aplicação e torná-la configurável. No arquivo Cambus.ini você pode configurar o aplicativo de várias maneiras.
Etapa 7: Resultados e trabalho futuro
Como você pode ver no vídeo, o contador está funcionando com precisão. As linhas azuis marcam o limite de entrada e a linha vermelha o limite de saída. Nesse caso, um vídeo foi usado para simular, pois não foi possível implantá-lo em um barramento.
Lembre-se de que alguma mudança deve ser feita em sua condição sobre o tamanho do vídeo, ângulo da câmera, luminosidade, etc. Cada tipo de vídeo tem que ser sua própria adaptação de parâmetros, como opencv kernel suctraction background e assim por diante.
Altere também as variáveis em cambus.ini, indicando o corretor MQTT e assim por diante.
Consideramos em futuras implementações adicionar sensores, por exemplo, temperatura, umidade e CO2 no sistema. A ideia é conseguir dados das cidades disponibilizando-os para a comunidade.
A seguir, enumeramos as próximas etapas que você pode fazer para melhorar o projeto:
- Reescreva o código usando C / C ++;
- Melhorar o algoritmo de ML;
- Re-fatorar o código python;
- Implantação em um ônibus;
Gostaríamos de agradecer à Embarcados e à Qualcomm por todo o apoio prestado.
Colaboradores:
Bruno Monteiro - [email protected]
Kleber Drobowok - [email protected]
Vinicius de Oliveira - [email protected]
Etapa 8: Referências
[1]
[2]
[3]
[4]
[5]
Recomendado:
Faça lindos gráficos a partir de dados do Arduino ao vivo (e salve os dados no Excel): 3 etapas
Faça lindos gráficos a partir de dados do Arduino ao vivo (e salve os dados no Excel): Todos nós gostamos de brincar com nossa função P … lotter no IDE do Arduino. No entanto, embora possa ser útil para aplicativos básicos, os dados são apagados conforme mais pontos são adicionados e não é particularmente agradável aos olhos. A plotadora IDE Arduino não
Como fazer um gravador de dados em tempo real de umidade e temperatura com o Arduino UNO e o cartão SD - Simulação de registrador de dados DHT11 em Proteus: 5 etapas
Como fazer um gravador de dados em tempo real de umidade e temperatura com o Arduino UNO e o cartão SD | Simulação DHT11 Data-logger em Proteus: Introdução: oi, aqui é Liono Maker, aqui está o link do YouTube. Estamos fazendo projetos criativos com Arduino e trabalhamos em sistemas embarcados.Data-Logger: Um data logger (também data-logger ou gravador de dados) é um dispositivo eletrônico que grava dados ao longo do tempo w
EAL - Coleta de dados GPS da indústria 4.0 no carro Rc: 4 etapas
EAL - Industry 4.0 GPS Data Collection on Rc Car: Neste Instructable, vamos falar sobre como configuramos um módulo GPS em um RC car e postamos os dados coletados em uma página da web para facilitar o monitoramento. Fizemos anteriormente uma instrução de como fabricamos nosso carro RC, que pode ser encontrada aqui. Isso está usando
Exibição de temperatura e umidade e coleta de dados com Arduino e processamento: 13 etapas (com imagens)
Exibição e coleta de dados de temperatura e umidade com Arduino e processamento: Introdução: Este é um projeto que usa uma placa Arduino, um sensor (DHT11), um computador Windows e um programa de processamento (um download gratuito) para exibir dados de temperatura, umidade em formato digital e forma de gráfico de barras, exibe hora e data e executa uma contagem de tempo
Centro de coleta de dados de sensor habilitado para IoT com ESP8266 e PubNub: 9 etapas (com imagens)
Centro de coleta de dados de sensor habilitado para IoT com ESP8266 e PubNub: a maioria dos tutoriais sobre ESP8266 está no nível de novato (piscando remotamente um led) ou muito complexo para alguém que está procurando algo para melhorar e atualizar suas habilidades de piscar de led. instructable visa preencher essa lacuna para criar