Esse artigo faz parte da revista SQL Magazine edição 63. Clique aqui para ler todos os artigos desta edição
o de vídeo e imagens. Dentre as principais aplicações que envolvem a manipulação de imagens e vídeo podemos citar o uso de câmeras para o rastreamento de objetos e/ou pessoas, que tem o objetivo de monitorar e analisar o que aconteceu em um local em um dado momento. Além do rastreamento podemos utilizar o vídeo capturado em diversas situações, como o reforço da segurança de um determinado local, a contagem e enumeração automática de elementos em movimento, o reconhecimento de padrões em tempo real ou a análise da trajetória de objetos.
Com base neste contexto, este artigo apresentará a modelagem de um banco de dados para uma aplicação que faz a detecção de elementos em movimento a partir da captura de vídeo de uma WebCam. O modelo de dados apresentado contém tabelas e relacionamentos que armazenarão não apenas a localização do vídeo, mas também dados relacionados aos elementos rastreados, alertas programados e o histórico de gravações.
Capturando o vídeo
As aplicações que fazem uso de vídeo geralmente dependem de um hardware para a captura do mesmo. Apesar de ser possível trabalhar com arquivos de vídeo já armazenados, a principal funcionalidade das aplicações que trabalham com detecção de informações em tempo real depende de uma câmera conectada a um computador. Atualmente este requisito de hardware é acessível e não requer um computador topo de linha e nem uma câmera muito cara. Isto quer dizer que com uma simples WebCam e um computador com configuração modesta é possível montar uma aplicação que trabalha com a detecção em tempo real de elementos em um vídeo.
Para se trabalhar com vídeo em tempo real em uma aplicação precisamos utilizar uma câmera compatível que possa ser conectada a um computador. Isso inclui WebCams que geralmente são conectadas por meio de uma porta USB ou uma conexão Firewire. Existem também adaptadores que podem receber o vídeo a partir de filmadoras, que geralmente possuem uma qualidade de vídeo melhor. Infelizmente a maioria das câmeras digitais não trabalha bem com vídeo, pois a sua principal função é a fotografia. Porém, se houver como capturar um vídeo em tempo real e enviar este vídeo para o computador as câmeras digitais podem ser utilizadas sem maiores problemas.
Antes de começar a desenvolver o software que fará a captura de vídeo, o desenvolvedor deve primeiro se certificar que a câmera foi reconhecida corretamente pelo sistema operacional e que ela está pronta para ser utilizada. O segundo passo é escolher uma biblioteca ou componente que permita a captura, gravação e a manipulação de vídeo de acordo com o objetivo da aplicação e do ambiente de desenvolvimento escolhido. A princípio, trabalhar com manipulação de vídeo pode parecer uma tarefa complicada, mas atualmente existem diversas bibliotecas, componentes e frameworks que facilitam o uso das câmeras em diversas plataformas.
Apenas a título de exemplo podemos citar a biblioteca de código livre OpenCV, produzida pela Intel, baseada mas linguagens C e C++ e disponível em várias plataformas. Outra biblioteca interessante é a API para Java, chamada JMF (Java Media Framework), que permite a manipulação de áudio, vídeo e imagens. Para quem prefere a plataforma .NET uma boa pedida é a biblioteca Aforge.NET, que traz um conjunto grande de funções para captura, manipulação de vídeo e detecção de elementos em tempo real.