O blog da AWS

Mapeamento de Comportamento do Cliente com Visão Computacional na AWS

Por Breno Silva, Arquiteto de Soluções na AWS; Andre Mello, Arquiteto de Soluções na AWS;  Welenton Webler, Arquiteto de Soluções na AWS; Danilo Silveira, Arquiteto de Soluções Sênior na AWS; Manoel P. de Lima Jr., Enterprise Solutions Architect na AWS e Thiago Couto é Principal Solutions Architect na AWS.

Introdução

Se você pudesse saber tudo sobre o comportamento dos seus clientes em sua loja física, que desafios de negócio resolveria?

Em um mundo onde os dados impulsionam decisões de negócios, muitas lojas físicas ainda estão operando sem informações precisas, quando se trata de entender o comportamento de seus clientes. Diferentemente do e-commerce, onde cada clique pode ser rastreado, os estabelecimentos físicos frequentemente dependem de observações manuais ou contagens básicas de tráfego, enfrentando o desafio da falta de dados sobre como os clientes se movimentam e interagem com o espaço.

Neste post, discutiremos como o Amazon Rekognition – People Pathing pode transformar esse desafio em oportunidade. Com os resultados retornados, poderemos criar mapas de calor e obter insights valiosos sobre o fluxo de clientes em ambientes físicos. Esses dados são essenciais para tomar decisões informadas sobre diversos aspectos do negócio, tais como:

  1. Otimização do layout das lojas
  2. Planejamento da quantidade de caixas e atendentes
  3. Mensuração do impacto de mudanças implementadas
  4. Aprimoramento da experiência do cliente

Ao adotar essa abordagem baseada em dados, as lojas físicas podem alinhar-se às práticas modernas de análise de negócios, permitindo uma compreensão mais profunda e acionável do comportamento do cliente no ambiente de varejo.

Aproveitando Recursos Existentes

A boa notícia é que muitas lojas já possuem câmeras de segurança instaladas. Essas câmeras capturam constantemente imagens e vídeos do ambiente físico. Com o Amazon Rekognition, podemos transformar esse recurso subutilizado em dados para análise.

Vantagens de usar equipamentos existentes:

  • Economia de custos, sem necessidade de investimento em novo hardware
  • Implementação rápida, aproveitando a infraestrutura atual
  • Análise retrospectiva, usando gravações históricas

Retail Media

A criação de mapas de calor em lojas físicas, utilizando serviços de machine learning e visão computacional, permite que os varejistas capturem dados valiosos sobre o comportamento dos clientes no ambiente de compras. Esses mapas revelam padrões de movimento e áreas de maior interesse, identificando zonas com maior tráfego ou tempo de permanência. Com essas informações, as empresas podem otimizar seus espaços de retail media, posicionando displays digitais, promoções e produtos em locais estratégicos para maximizar a visibilidade e o engajamento dos clientes. Além disso, os dados possibilitam ajustes dinâmicos de campanhas, tornando a comunicação mais precisa e aumentando a conversão de vendas.

Utilizando Machine Learning para Análise das Gravações

O Amazon Rekognition é um serviço gerenciado para visão computacional em imagem e vídeo. O serviço tem a funcionalidade de People Pathing, para identificar e seguir o movimento de pessoas em uma série de quadros de vídeo. Isso permite a criação de mapas de calor que mostram as áreas mais e menos frequentadas da loja, ajudando a entender o comportamento do cliente com detalhes.

Com o Amazon Rekognition também podemos descrever trajetória das pessoas detectadas durante o vídeo. Com este dado, é possível entender melhor qual é o caminho que os clientes traçam dentro do espaço físico.

Neste blog, mostramos como funciona a solução de People Pathing, assim como técnicas para otimizar custos e maximizar resultados.

Implementação: Chamada da API de Processamento de Vídeo

A implementação aqui demonstrada tem o objetivo de ser um guia para extração de dados, e não contempla o desenvolvimento de uma interface/front-end para interação do usuário final.

Os principais recursos usados nesta solução são:

  • Armazenamento: Utilizamos o Amazon Simple Storage Service (S3) para armazenar os vídeos capturados.
  • Processamento de informações: Com o AWS Lambda, é possível iniciar o processamento dos vídeos de forma automática, baseado no evento de upload para o
  • Amazon S3. As funções Lambda também são usadas para o pós processamento das informações extraídas do vídeo.
  • Processamento do vídeo: O Amazon Rekognition processa esses vídeos, detectando e rastreando pessoas ao longo do tempo.

Os principais passos para a implementação são:

  1. Upload dos vídeos para o Amazon S3. Para uploads de vídeo em grande escala, é recomendado usar soluções como o AWS Direct Connect ou o AWS Snowball. Para o exemplo, estamos fazendo upload pela Internet.
  2. Chamada da API do Rekognition para iniciar a análise. É possível configurar uma função Lambda para ser ativada no momento do upload do vídeo. Exemplo de código usando a SDK em Python:
import boto3

rekognition = boto3.client('rekognition')

response = rekognition.start_person_tracking(
    Video={
        'S3Object': {
            'Bucket': 'seu-bucket',
            'Name': 'seu-video.mp4'
        },
        NotificationChannel={
            'SNSTopicArn': 'SNS-ARN',
            'RoleArn': 'RekognitionSNS-serviceRole-ARN'
        }
    }
)

job_id = response['JobId']
  1. Quando o processamento se completa, o Amazon Rekognition posta uma mensagem em um tópico do Amazon Simple Notification Service (SNS) se tiver sido definido na chamada anterior. Esta mensagem também pode ser um gatilho para a execução de outra função Lambda, para pós processamento. Recupere os resultados:
response = rekognition.get_person_tracking(JobId=job_id, SortBy='TIMESTAMP
  1. Processe o JSON de retorno para criar um mapa de calor. No exemplo usamos as bibliotecas numpy para processamento matemático do mapa de calor, e matplotlib para desenhar as escalas:
import numpy as np
import matplotlib.pyplot as plt

def create_heatmap(tracking_results, width, height):
    heatmap = np.zeros((height, width))
    
    for person_timestamp in tracking_results['Persons']:
        person = person_timestamp['Person']
        if ('BoundingBox' in person):
            box = person['BoundingBox']
            bb_width = int(box['Width'] * width)
            bb_height = int(box['Height'] * height)
            x = int(box['Left'] * width)
            y = int(box['Top'] * height)
            heatmap[y:y+bb_height, x:x+bb_width] += 1
    
    plt.imshow(heatmap, cmap='hot', interpolation='nearest')
    plt.colorbar()
    plt.title('Mapa de Calor de Movimento de Clientes')
    plt.show()
    plt.savefig('mapa.png')

create_heatmap(response, 1920, 1080)  # Ajuste as dimensões conforme necessário

O código acima gera uma imagem como a seguinte:

Outro tipo de visualização sobrepondo os dados de posicionamento com os frames do vídeo, diretamente:

O exemplo acima cria um mapa de calor básico baseado na frequência de detecções em cada pixel da imagem. O mapa de calor gerado terá a mesma perspectiva do vídeo capturado pela câmera. Para aprimorar a visualização e facilitar análises posteriores, é recomendado aplicar uma transformação no mapa, removendo distorções inerentes à imagem original. Esse processamento permite criar uma representação vista de cima da loja, como se observada por um ponto de vista superior. Com essa visão de topo, torna-se possível realizar um mapeamento preciso do mapa de calor com o planograma da loja, permitindo uma análise detalhada do comportamento e fluxo dos clientes em relação ao layout e disposição dos produtos no estabelecimento. Esta transformação não está coberta neste blog, mas existem bibliotecas populares que podem ser usadas para a conversão de perspectiva, como OpenCV (findHomography) e Scikit-image (projective transforms).

Considerações de Custos da Solução

O uso da API People Pathing do Amazon Rekognition para criar mapas de calor em lojas físicas pode ser uma ferramenta poderosa para entender o comportamento dos clientes. No entanto, em muitos casos é necessário processar vídeos de múltiplas câmeras, de múltiplas lojas. Como o serviço cobra por minuto de vídeo processado, é importante otimizar seu uso para manter os custos otimizados. Aqui estão algumas estratégias para otimizar custos:

1. Aumento da velocidade / Redução da taxa de quadros

Em vez de processar todos os quadros do vídeo, considere reduzir a taxa de quadros. Por exemplo, analisar um quadro a cada segundo ou a cada dois segundos pode ainda fornecer dados suficientes para criar mapas de calor precisos, reduzindo significativamente o volume de dados processados. Neste caso, é necessário um pré-processamento dos vídeos antes do armazenamento na nuvem.

2. Processamento Seletivo de Horários

Identifique os horários de pico e de menor movimento na loja. Concentre o processamento nos períodos de maior atividade, onde os dados serão mais valiosos, e reduza ou elimine o processamento durante horários e dias de pouco movimento.

3. Pré-processamento Local

Muitos sistemas de câmeras já realizam a gravação seletiva dos vídeos, baseado em detecção de movimento. Isso também ajuda a retirar os segmentos de vídeo onde não tem ninguém dentro do quadro, que não traria nenhuma informação a mais no processamento.

4. Amostragem Estratégica

Implemente uma estratégia de amostragem, processando apenas uma porção representativa dos vídeos disponíveis. Por exemplo, analise um dia completo por semana ou algumas horas específicas por dia, rotacionando os períodos analisados para obter uma visão abrangente ao longo do tempo.

5. Otimização da Resolução do Vídeo

Utilize resoluções mais baixas dos vídeos para processamento. Isto não impacta nos custos do Amazon Rekognition, que tem a cobrança baseada apenas no tempo de vídeo processado, mas tem outros impactos: uma resolução mais baixa, mas ainda adequada para detecção de pessoas, pode diminuir significativamente o tamanho do arquivo e, consequentemente, o tempo de upload e custo de armazenamento.

6. Otimização do Posicionamento das Câmeras

Revise e otimize o posicionamento das câmeras para maximizar a cobertura com menos equipamentos. Câmeras bem posicionadas podem reduzir a sobreposição e a necessidade de processar múltiplos ângulos da mesma área.

Outras considerações

O vídeo deve ser codificado usando o codec H.264. Os formatos de arquivo com suporte são MPEG-4 e MOV. Um codec é um software ou hardware que compacta os dados para realizar uma entrega mais rápida e descompacta os dados recebidos para a forma original. O codec H.264 é normalmente usado para gravação, compactação e distribuição de conteúdo de vídeo. Um formato de arquivo de vídeo pode conter um ou mais codecs. Se o arquivo de vídeo no formato MOV ou MPEG-4 não funcionar com o Rekognition Video, verifique se o codec usado para codificar o vídeo é H.264.

Outras informações podem ser encontradas nas FAQs do serviço.

Conclusão

O Amazon Rekognition oferece uma solução de simples implementação para lojas físicas que buscam entender melhor o comportamento de seus clientes. Ao aproveitar a infraestrutura existente e combinar com as capacidades de Machine Learning da AWS, é possível obter insights valiosos que antes eram pouco explorados.

Com esses dados em mãos, as lojas podem:

  • Otimizar o layout para melhorar o fluxo de clientes
  • Identificar áreas de alto e baixo tráfego
  • Informar as decisões de layout da loja macro, como onde colocar mídias de varejo ou promoções com base na densidade do tráfego
  • Medir o impacto de mudanças no layout da loja
  • Melhorar a experiência de compra e o tamanho da cesta
  • Precificar os espaços da loja com base em dados
  • Ter conhecimento da produtividade e ociosidade geral da equipe, entendendo horários de pico
  • Identificar as áreas de maior tráfego para priorizar a limpeza e reabastecimento
  • Planejar o posicionamento de displays e conteúdo para Retail Media
  • Ter visibilidade dos tempos de espera na finalização da compra e de outras filas para identificar gargalos

Implementando as estratégias descritas, é possível obter dados e gerar insights sobre o comportamento dos clientes em sua loja. Lembre-se que como em qualquer trabalho com Machine Learning, a chave é encontrar o equilíbrio entre a qualidade dos dados e a eficiência do processamento, garantindo que você obtenha as informações necessárias sem gastos excessivos.

Ao implementar essa solução, as lojas físicas podem competir mais efetivamente na era digital, oferecendo experiências personalizadas e eficientes baseadas em dados concretos sobre o comportamento do cliente.

Sobre os Autores

Breno Silva é Arquiteto de Soluções na AWS, atendendo o setor Enterprise. Atuou com soluções para clientes de Varejo, Bens de Consumo, Manufatura e Automotivo. Faz parte de comunidades de Cyber-Security e de IoT. No tempo livre gosta de automatizar sua casa e praticar esportes ao ar livre.
Andre Mello é Arquiteto de Soluções na AWS.

Welenton Webler é Arquiteto de Soluções na AWS.

 

Danilo Silveira é Arquiteto de Soluções Sênior na AWS, com mais de 20 anos de experiência em TI. Hoje, trabalha com os clientes da AWS apoiando na jornada de adoção da nuvem e transformação com a construção de aplicações modernas seguindo as melhores práticas da AWS.
Manoel P. de Lima Jr. é Enterprise Solutions Architect na AWS, com mais de 30 anos trabalhando com engenharia de desenvolvimento de software e mais de 8 anos exclusivamente dedicado a segurança de aplicativos, o que lhe deu oportunidade de desenvolver ou conduzir várias projetos de plataformas de alta escala, como em segurança (identidade, controle de acesso, autenticação, autorização), integração & transações financeiras, processamento de eventos complexos, atendimento digital & marketing digital, CI/CD, entre outras.
Thiago Couto é Principal Solutions Architect na AWS e atua no segmento Enterprise auxiliando clientes de Retail e CPG em suas jornadas para nuvem. Possui mais de 15 anos de experiência atuando em arquiteturas inovadoras e é especializado em soluções que englobam AI/ML.