SHELF TRACKER

Participantes:

Sergio Renato Steinkirch de Souza
Walter Luiz Steinkirch de Souza
Andrea Bittencourt de Souza

Resumo do projeto:

A Solução SHELF TRACKER é uma aplicação de computador orientada para automaticamente identificar produtos em uma gôndola de supermercado a partir de uma imagem digital.

Descrição do projeto:

Uma imagem pode ser definida como sendo uma função f(x, y), onde o valor nas coordenadas espaciais x e y corresponde ao brilho (intensidade) da imagem nessa coordenada.

A única forma de se representar uma imagem em um modelo computacional é quando ela está digitalizada tanto no domínio espacial como no das amplitudes.

A Solução SHELF TRACKER faz isso comparando características selecionadas de cada produto exposto (imagem alvo) com um banco de dados de produtos previamente cadastrados (imagem padrão) através da utilização de algoritmos matemáticos.

O processo de detecção da imagem padrão pressupõe o armazenamento prévio de suas características. Uma vez conhecidas tais características, essas são utilizadas como referência no processo de detecção.

Na Solução SHELF TRACKER as características da imagem padrão são armazenadas utilizando um processo de detecção de referência espectral, desta forma obtém-se invariância à posição da imagem alvo.

Com a solução SHELF TRACKER tem-se, em tempo real, todas as disposições dos produtos em todos os setores, informando quando há produtos fora do lugar determinado, deixando a loja sempre organizada e abastecida de forma confiável, ágil e precisa.

Histórico do desenvolvimento:

Inicialmente a modelagem do software seguia uma linha de requisitos que achávamos ideal para o sucesso da solução SHELF TRACKER.

Nesta linha, estudamos vários tipos de imagens geradas por câmeras com sensor CMOS e CCD para definir qual seria o modelo mais eficaz no quesito custo/resultado.

Em paralelo, estávamos utilizando algoritmos para reconhecimento de padrões na imagem dentro do que chamamos de domínio no espaço, ou seja, tendo como base o processamento das coordenadas de posição (x,y) de cada imagem.

Neste cenário definimos um modelo de câmera fixa que nos trouxesse a imagem quadro a quadro para evitar as variações na posição, no ângulo de rotação e no grau de escalonamento tanto da matriz da imagem padrão (assinatura digital normalizada) como da matriz imagem que está sendo comparada.

Nos causou frustração descobrir que a câmera que atende ao que estávamos desenhando como gerador de imagem, além de muito cara, inviabiliza o modelo que estávamos desenvolvendo de software (domínio no espaço).

Estamos então refazendo o nosso modelo de software para operar com algoritmos no domínio frequência que utiliza o espectro da imagem obtido através do conceito de Transformada Rápida de Fourier (Fast Fourier Transform – FFT). Desta forma a informação de posição está contida no espectro de fase da imagem e a informação de formato está contida no espectro de módulo da imagem com base nestes parâmetros podemos detectar a existência do padrão geométrico.

Este método permite detectar a existência do padrão na imagem alvo, a sua localização, o seu grau de escalonamento e o seu ângulo de rotação. Este conceito é o de Redes Neurais Artificiais (RNA).

 


Status do Projeto utilizando Dragom Board 410

  • Placa sistema operacional LINUX
  • Acessórios utilizados
    • Câmera USB
    • Lâmpada LED (modulo de LED vermelho)
    • Sensor de Toque (modulo de sensor de toque)
    • Botão (modulo botão)
    • WIFI
  • Servidor Windows para retaguarda
  • Descritivo das funções
    • Cadastramento
      • Posiciona a câmera no objeto a ser cadastrado usa o sensor de toque para enviar a fotografia para o servidor, envia arquivo texto para o servidor setado para função “cadastro”,
      • O servidor pesquisa na base de dados se o produto já existe,
        • Senão não existir cadastra solicitando o descritivo e retorna a “placa” o status code “cadastrado”,
        • Se existir retorna o status code “já existe”.
      • A “placa” aguarda o status code:
        • Se “cadastrado” pisca o LED uma vez;
        • Se “já existe” pisca o LED duas vezes.
      • Consulta
        • Posiciona a câmera no objeto a ser cadastrado usa o sensor de toque para enviar a fotografia para o servidor, envia arquivo texto para o servidor setado para função “busca”,
        • O servidor pesquisa na base de dados se o produto já existe,
          • Senão não existir cadastra solicitando o descritivo e retorna a “placa” o status code “não encontrado”,
          • Se existir retorna o status code “encontrado”.
        • A “placa” aguarda o status code:
          • Se “não encontrado” pisca o LED uma vez;
          • Se “encontrado” pisca o LED duas vezes.

 

Hardware:

SERVIDOR

• Processador: Intel® Xeon® E5-2420 v2 2.20GHz, 15M Cache, 7.2GT/s QPI, Turbo, 6C, 80W, Mem 1600MHz;
• Memory DIMM Type and Speed: 1600MT/s UDIMMS;
• Memória: 4GB, 1600MT/s (1x4Gb), UDIMM;
• Hard Disk: 500GB SATA, 7.2K RPM de 3.5″;
• Gerenciamento Integrado: iDRAC 7 Express;
• Add-in Network Adapter: Placa On-Board;

CÂMERA DOME PARA TESTE

• Câmera móvel IP Megapixel com compressão H.264;
• Dispositivo MOS de 1/3” com mínimo de 768×494 pixels;
• Resolução de 1280×960; 1280×720;
• Intensidade luminosa mínima de 0,004 lux para visualização;
• Suportar relação de aspecto 4:3 e 16:9.
• Sistema de sensibilidade eletrônica para aumentar em até 16 vezes;
• Possuir movimentação de Pan/Tilt/Zoom;
• Zoom óptico 18 vezes (4,7~84,6mm) com 12 digital, Auto Iris e foco automático;
• Controle automático de ganho (AGC);
• Compensação de luz de fundo (BLC) e sistema digital de compensação com range dinâmico de 100 vezes;
• Dois níveis de redução digital de ruído (DNR); função “Day/Night”.
• Possuir interface de rede 10Base-T/100Base-TX para monitoramento remoto via PC, com compressão JPEG, MPEG4 e H.264 com transmissão no modo Unicast e Multicast;
• Suportar até 3 streams simultâneamente.
• Taxa de captura de 30ips em 1280×960; 800×600; 1280×720; 640×480; 640×360;
• Movimento horizontal (PAN) em 360º, através da função “auto flip”.
• Movimento vertical (TILT) de -30° a 90º;
• Velocidade mínima de 300°/seg na horizontal (PAN) e 100°/seg na vertical (TILT);
• Capacidade de programar no mínimo 60 pré-ajustes (“presets”) e fazer sequenciamento dos preset;
• Inclusão de no mínimo 8 zonas de privacidade;
• Função de detecção de objeto em movimento com a busca do objeto (Auto-track);
• Alimentação 12Vdc ou através de cabo UTP (Poe – Power over Ethernet – no padrão IEEE802.3af).

Software/Firmware:

A avaliação do algoritmo implementado será feita a partir da análise da execução do aplicativo ProductDetection.exe alternando os locais onde o produto está posicionado para realizar a detecção do produto em locais distintos.

Referências: