Leonardo Lira Guimarães
<leonardo.guimaraes@ipdec.org>Localização indoor na Feira do
Polo Digital de Manaus
LEONARDO
Sou formado em Engenharia de Computação (UFAM), tenho mestrado em Informática (UFAM) e hoje trabalho como Engenheiro de Software no IPDEC
INSTITUTO IPDEC
Somos uma organização privada sem fins lucrativos dedicada à pesquisa, ao desenvolvimento e à inovação de soluções fundamentadas na
computação. Os nossos clientes são instituições públicas, privadas e entidades do terceiro setor.
CONTEÚDO
A FEIRA ..
.. do Polo Digital de Manaus
LOCALIZAÇÃO
INDOOR
Introdução de conceitos e as principais abordagens da área
01
03
02
04
05
06
O APP
Requisitos, funcionalidades e desafiosNOSSA SOLUÇÃO
Arquitetura e detalhes do funcionamentoDIFICULDADES E
MELHORIAS
Problemas a serem superados e ideias a serem avaliadas em breve
CONCLUSÃO
Últimas palavras e agradecimentos
A FEIRA ..
01
MANAUS INTELIGENTE
Esta foi a segunda edição da feira do polo digital de Manaus, e tinha como objetivo reunir os atores do ecossistema de Pesquisa e Desenvolvimento
(P&D) na região para discutir conceitos e soluções para uma cidade inteligente.
PRA QUEM NÃO FOI
O evento contou com mais de 50 estandes de empresas de TI, universidades, startups, incubadoras, aceleradoras, institutos públicos e privados, agências e
associações que apoiam e fazem parte do ecossistema de inovação digital de Manaus. Também foram apresentadas mais de 60 palestras com temas variados ao longo dos 3 dias do evento.
Além disso, foram realizadas competições de programação, oficinas práticas, tutoriais de desenvolvimento e reuniões de negócios nas quatro
arenas do evento.
LOCALIZAÇÃO INDOOR
02
LOCALIZAÇÃO INDOOR
ÁREAS DE APLICAÇÃO
EDUCAÇÃO E SAÚDE
Segurança e gerenciamento de pessoas
INDÚSTRIA E COMÉRCIO
Inventário e controle de recursos
AMBIENTES INTELIGENTES
Automação, inferência e predição de contexto
LOCALIZAÇÃO INDOOR
ÁREAS DE APLICAÇÃO
EDUCAÇÃO E SAÚDE
Segurança e gerenciamento de pessoas
INDÚSTRIA E COMÉRCIO
Inventário e controle de recursos
AMBIENTES INTELIGENTES
Automação, inferência e predição de contexto
LOCALIZAÇÃO INDOOR
ÁREAS DE APLICAÇÃO
EDUCAÇÃO E SAÚDE
Segurança e gerenciamento de pessoas
INDÚSTRIA E COMÉRCIO
Inventário e controle de recursos
AMBIENTES INTELIGENTES
Automação, inferência e predição de contexto
A posição pode levar em conta um ou mais referenciais. Neste caso, para determinar a localização absoluta é necessário conhecer a posição dos
referenciais
LOCALIZAÇÃO INDOOR
INFORMAÇÕES DE LOCALIZAÇÃO
FÍSICA
Pode ser expressa como uma coordenada que representa um
ponto no mundo real.
SIMBÓLICA
É apresentada em linguagem natural e indica um lugar simbólico
ABSOLUTA
A posição de todos os objetos é definida dentro de um conjunto de
coordenadas compartilhado e pré-estabelecido.
LOCALIZAÇÃO INDOOR
PRINCIPAIS TOPOLOGIAS
AUTO-POSICIONAMENTO
O dispositivo monitora o ambiente e é capaz de determinar a sua própria posição.
POSICIONAMENTO REMOTO
O dispositivo é monitorado e localizado a partir de outros dispositivos.
POSICIONAMENTO INDIRETO
Independentemente de quem determina a posição do indivíduo, a informação é compartilhada.
LOCALIZAÇÃO INDOOR
PRINCIPAIS CATEGORIAS DE
ALGORITMOS EM REDES SEM FIO
TRIANGULAÇÃO
Estima distâncias entre os nós e usa as propriedades geométricas dos triângulos para estimar a localização de um objeto.
ANÁLISE DE CENA
Coletam previamente características (fingerprints) do ambiente em determinadas posições, e as utilizam para determinar a posição atual do objeto
PROXIMIDADE
Retorna informações de localização simbólicas de acordo com a proximidade a um nó cuja posição é conhecida.
O APP
03
Outra demanda foi o desenvolvimento de um app para controlar os acessos às palestras.
O APP
PRINCIPAIS REQUISITOS
ENTREGANDO OUTRAS
FUNCIONALIDADES ÚTEIS
Inicialmente pensamos em disponibilizar outras informações referentes ao evento (e.g. horários e a programação do evento, palestrantes, feed de notícias, etc).
SISTEMA DE LOCALIZAÇÃO INDOOR
.. para que os participantes da feira pudessem ter em mãos o mapa do evento com o seu posicionamento em tempo real.
COMO FAZER AS PESSOAS
INSTALAREM O APP?
CREDENCIAMENTO
A organização da feira demonstrou interesse na proposta apresentada e sugeriram o credenciamento pelo app da feira.
Aplicativo da Feira: Tela de Login
O APP
CREDENCIAMENTO
Aplicativo da Feira: Tela de Credencial Aplicativo da Feira: Tela Inicial após loginO APP
ACESSO ÀS PALESTRAS
Aplicativo dos voluntários: Tela de configuração para controle de acesso às palestras
Aplicativo dos voluntários: Tela de leitura do QR Code para registro do checkin nas palestras
Aplicativo da Feira: Tela do Mapa
O APP
LOCALIZAÇÃO E OUTRAS FUNCIONALIDADES
Aplicativo da Feira: Tela de Palestrantes
Aplicativo da Feira: Tela de Programação
O APP
SISTEMA DE LOCALIZAÇÃO INDOOR
O MAPA DO EVENTO
NOSSA SOLUÇÃO
04
NOSSA SOLUÇÃO
QUAL CATEGORIA DE ALGORITMO
USAR?
TRIANGULAÇÃO
A triangulação dependeria do conhecimento prévio das posições dos beacons, e de uma estimativa de distância eficaz.
ANÁLISE DE CENA
PROXIMIDADE
Para obter uma precisão satisfatória precisaríamos de muitos dispositivos espalhados pelo evento, com um alcance bem pequeno. Ainda assim não
teríamos localizações absolutas, mas sim simbólicas.
O uso de fingerprints exigiria menos beacons espalhados no local do evento. O posicionamento dos beacons poderia ser feito de forma mais flexível e não dependeria da estimativa de distâncias.
NOSSA SOLUÇÃO
QUAL CATEGORIA DE ALGORITMO
USAR?
TRIANGULAÇÃO
A triangulação dependeria do conhecimento prévio das posições dos beacons, e de uma estimativa de distância eficaz.
ANÁLISE DE CENA
PROXIMIDADE
Para obter uma precisão satisfatória precisaríamos de muitos dispositivos espalhados pelo evento, com um alcance bem pequeno. Ainda assim não
teríamos localizações absolutas, mas sim simbólicas.
O uso de fingerprints exigiria menos beacons espalhados no local do evento. O posicionamento dos beacons poderia ser feito de forma mais flexível e não dependeria da estimativa de distâncias.
Um dos requisitos era que o usuário pudesse se localizar durante o evento. Esse requisito não poderia ser atendido se a localização não fosse compartilhada.
Teríamos que conhecer a priori todo o cenário do sistema de localização e embarcar uma solução com muita antecedência no app.
NOSSA SOLUÇÃO
QUAL TOPOLOGIA USAR?
AUTO-POSICIONAMENTO
POSICIONAMENTO REMOTO
POSICIONAMENTO INDIRETO
Como o auto-posicionamento era inviável, optamos por estimar as posições em um servidor remoto e compartilhar a informação com os usuários.
Um dos requisitos era que o usuário pudesse se localizar durante o evento. Esse requisito não poderia ser atendido se a localização não fosse compartilhada.
Teríamos que conhecer a priori todo o cenário do sistema de localização e embarcar uma solução com muita antecedência no app.
NOSSA SOLUÇÃO
QUAL TOPOLOGIA USAR?
AUTO-POSICIONAMENTO
POSICIONAMENTO REMOTO
POSICIONAMENTO INDIRETO
Como o auto-posicionamento era inviável, optamos por estimar as posições em um servidor remoto e compartilhar a informação com os usuários.1 r equest/sec N requests/sec
NOSSA SOLUÇÃO
A ARQUITETURA
beacons device server internet 20 pckts/sec database sa ve locations locations / undefined location / undefinedNOSSA SOLUÇÃO
FUNCIONAMENTO
BEACONS
O dispositivo usado como beacon foi o ESP-32. Que é um dispositivo IoT composto por um microprocessador de baixa potência, com memória flash integrada e antena embutida (wi-fi e bluetooth 4.2).
A programação desses dispositivos pode ser feita tanto em LUA como pela IDE do arduino.
Os ESPs foram espalhados pelos ambientes da feira, e ficavam conectados a tomada enviando pacotes bluetooth
Os pacotes dos ESPs continham um mesmo nome: ‘PDM’. E a identificação dos ESPs era feita no servidor a partir dos endereços MAC.
NOSSA SOLUÇÃO
FUNCIONAMENTO
DEVICE
A aplicação Android possuía uma WebView, e monitorava sinais bluetooth e o compasso do dispositivo.
Os RSSI’s (potência dos sinais) eram armazenados por 1 segundo. Em seguida, era montado um vetor de características (fingerprint) contendo o maior RSSI, a média aritmética e a média móvel para cada beacon ouvido.
Por fim, o dispositivo enviava o fingerprint ao servidor para obter a localização.
A informação de localização retornada era uma posição absoluta (mapa 2D do evento). Esta posição era o ponto de treino cujo vetor de característica mais se aproximava das cenas treinadas
NOSSA SOLUÇÃO
FUNCIONAMENTO
SERVER
O servidor de localização foi desenvolvido em python, usando o framework CherryPy para disponibilizar os serviços de WEB / API.
A análise de cenas utiliza o algoritmo de aprendizagem de máquina random-forest (biblioteca scikit-learn).
O serviço de classificação era iniciado juntamente com o servidor, o qual era responsável por treinar o classificador (random-forest) e executar as chamadas de predição a fim de determinar a localização dos dispositivos.
API
CLASSIFIER
RANDOM-FOREST
CLIENT
HTTP.POST RESPONSE FEATURES FEATURES LOCATION LOCATIONForam coletados aproximadamente 150 fingerprints por ponto de treino.
Haviam pelo menos 120 pontos a serem coletados e ensinados para o classificador.
Ao todo foram posicionados 34 beacons no local do evento.
NOSSA SOLUÇÃO
TREINAMENTO DO CLASSIFICADOR
Durante o treinamento o aplicativo coleta e monta os vetores de características, da mesma forma como no monitoramento.
Os vetores coletados são rotulados com a posição X,Y absoluta de cada ponto de treino do mapa, e salvos em arquivos ‘.csv’.
Esses arquivos são carregados pelo serviço de classificação e usados para treinar o classificador, tendo em vista os rótulos dados aos diferentes fingerprints.
Para cada dispositivo localizado era
armazenado o identificador do dispositivo, a localização, a data/hora, e os RSSIs ouvidos.
Os dados armazenados foram utilizados para a exibição do dashboard com todos os dispositivos localizados durante a feira.
DATABASE
NOSSA SOLUÇÃO
NOSSA SOLUÇÃO
TREINAMENTO DO CLASSIFICADOR
Coleta de dados de treino se estendendo pela manhã do primeiro dia de Feira
NOSSA SOLUÇÃO
DIFICULDADES E
MELHORIAS
05
DIFICULDADES E MELHORIAS
PRINCIPAIS DIFICULDADES
TEMPO
# treinamento
# avaliação
# validação
CENÁRIO
# estandes
# pessoas
# celulares
ESTRUTURA
# internet / rede
# energia
# beacons
DIFICULDADES E MELHORIAS
POSSÍVEIS MELHORIAS
TEMPO
# treinamento
# avaliação
# validação
NÃO CONTROLAMOS O TEMPO ..
.. mas é importante investir tempo com pesquisa para
analisar os dados coletados, validar hipóteses e
avaliar os resultados.
FAZER PESQUISA ..
.. e buscar soluções ainda mais eficazes, que sejam
adaptáveis aos diversos cenários e que exijam menos
recursos humanos, materiais e de tempo.
DIFICULDADES E MELHORIAS
POSSÍVEIS MELHORIAS
CENÁRIO
# estandes
# pessoas
# celulares
# beacons
PÓS-PROCESSAMENTO
Criar e avaliar técnicas de
pós-processamento que minimizem erros
de classificação
MELHORAR OS DADOS
DE TREINAMENTO
Considerar cenários de treino mais
próximos da realidade, aumentar a
variedade de aparelhos e quantidade de
dados coletados.
CLASSIFICAÇÃO
Avaliar o desempenho e acurácia usando
DIFICULDADES E MELHORIAS
POSSÍVEIS MELHORIAS
ESTRUTURA
# internet / rede
# energia
AUTO-POSICIONAMENTO
Para não depender de internet / rede seria necessário
desenvolver uma solução para que o próprio
dispositivo fosse capaz de se localizar
BATERIAS E RETREINO
As baterias ajudariam em um cenário como o da feira,
mas uma outra solução seria detectar a falha dos
beacons instalados e retreinar o classificador.
CONCLUSÃO
06
É possível inferir as posições do usuário, mesmo em um cenário incerto. Contudo, é importante tomar alguns cuidados para que os dados coletados sejam realmente significativos para o classificador.
CONCLUSÃO
CONCLUSÃO
ANÁLISE DE CENA
Nos permitiu ganhar tempo e publicar uma aplicação mais simples. Mas também tornou a aplicação dependente da infra-estrutura de comunicação.
APRENDIZAGEM
DE MÁQUINA
AUTO-POSICIONAMENTO
INDIRETO
Foi uma abordagem interessante no contexto da feira, uma vez que a triangulação sofreria com as oscilações e atenuação do sinal bluetooth dos beacons.
A pesquisa é a chave para que possamos melhorar ainda mais a acurácia do sistema de localização desenvolvido.
CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, and infographics & images by Freepik.