Buscar

Artigo Científico Sérgio Jacob

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aplicações de controle através de processamento de imagens 
 
 
Sérgio Augusto Jacob Doveinis 
Munif Gebara Junior 
 
RESUMO 
 
Com o objetivo de criar uma nova técnica de controle de dispositivos mecatrônicos, 
desenvolveu-se um software que será capaz de controlar equipamentos a partir da 
visão computacional. 
Esse software será baseado em uma tecnologia de processamento de imagens em 
tempo real chamada OpenCV, que a partir da imagem capturada pela câmera 
conectada ao computador, rastreará um ponto selecionável específico e com isso 
fará com que este ponto selecionado se torne uma referência para controlar o 
dispositivo desejado. 
Utilizando uma técnica de "tracking and motion" aliada a divisão da imagem em 
coordenadas cartesianas, será possível controlar o equipamento desejado sem a 
utilização de qualquer botão, tornando este ato muito mais intuitivo. 
 
 
Palavras-chave: interatividade, rastreamento, movimento. 
 
 
Control applications using image processing 
 
ABSTRACT 
 
Aiming to create a new control technique for mechatronic devices, has developed a 
software that will be able to control equipment from computer vision. 
This software is based on a technology of real time image processing called 
OpenCV, which from the image captured by the camera connected to your computer, 
will track a specific point selectable and it will make this point selected becomes a 
reference to control desired device. 
Using a "tracking and motion" technique combined with division of the image in 
Cartesian coordinates, you can control the equipment you want without using any 
button, and this act become much more intuitive 
 
Keywords: interactivity, tracking, motion. 
 
 
 Discente do curso de Engenharia de Controle e Automação do Centro Universitário de Maringá. e-
mail: sergio_jacob@hotmail.com 
 Docente do curso de Engenharia de Controle e Automação do Centro Universitário de Maringá – 
CESUMAR. e-mail: munif@cesumar.br 
1 INTRODUÇÃO 
 
 
Nos dias de hoje, a necessidade por novas tecnologias de controle é muito 
grande, devido ao desenvolvimento de novos dispositivos e equipamentos a todo 
instante. 
 
Novos robôs são desenvolvidos com o intuito de aprimorar as atividades 
realizadas por homens nas mais diversas áreas de atuação, desde aplicações 
industriais e siderúrgicas até setores aeroespaciais e hospitalares. E cada vez mais 
aumenta a necessidade de que os mais variados dispositivos interajam de forma 
harmônica e intuitiva com as pessoas, sempre reduzindo a quantidade de botões e 
aumentando a de sensores. 
 
Como exemplo, a nova geração de videogames já possuí suporte para 
controles sem fio, onde movimentos realizados pelo jogador são captados por um 
sensor e transferidos para o console, de forma que os movimentos são copiados 
pelo próprio jogo. 
 
Mas tecnologias de comando desta natureza não estão presentes somente 
em videogames. A agência aeroespacial norte-americana (NASA) está 
desenvolvendo robôs para exploração que utilizam câmeras que filmam partes do 
operador, como o braço e a mão, e fazem com que o robô repita os movimentos de 
forma idêntica aos movimentos do operador. Com isso, ações complexas para 
serem realizadas com botões, como por exemplo o controle de uma mão 
inteiramente articulada e que realize os mesmos movimentos da mão humana, se 
tornam viáveis através do controle por câmeras. 
 
Com o intuito de desenvolver uma nova forma de controle baseada no 
controle por câmera, criou-se um software que utiliza linguagem C e a biblioteca 
OpenCV para controlar um dispositivo qualquer através das imagens capturadas e 
processadas por uma câmera. 
 
 
2 REVISÃO BIBLIOGRÁFICA 
 
 
 Para que o sistema de controle funcione perfeitamente, desenvolveu-se um 
software utilizando a tecnologia OpenCV (Open Source Computer Vision) capaz de 
rastrear no campo de visão da câmera uma área pré-selecionada, e detectar se ela 
é ou não o objeto controlador. 
 
 A seguir, uma breve explicação sobre as principais vertentes contidas no 
software. 
 
 
2.1 OPEN SOURCE COMPUTER VISION 
 
 
 Mais conhecido como OpenCV, é uma biblioteca de softwares desenvolvidos 
em C pela Intel, com código de fonte aberto, de forma que qualquer pessoa possa 
alterar o conteúdo dos softwares com fins acadêmicos ou comerciais. 
 
 Segundo Gary Bradski e Adrian Kaehler, um dos objetivos do OpenCV é 
prover uma infra-estrutura de visão computacional simples de se utilizar para ajudar 
no desenvolvimento de aplicações de visão bastante sofisticadas rapidamente. A 
biblioteca OpenCV contém mais de 500 funções que abrangem diversas áreas da 
visão, incluindo inspeção de produtos, imagens médicas, segurança, interface de 
usuário, calibração de câmeras, visão estéreo e robótica. 
 
 Apesar de ser uma tecnologia fascinante, a maioria dos softwares contidos 
na biblioteca OpenCV é muito sensível e em alguns momentos instáveis também, 
por isso, para sua utilização são necessários alguns ajustes finos nos códigos fonte 
de acordo com a aplicação desejada para se obter uma precisão ideal. 
 
 
 
 
2.2 LINGUAGEM C 
 
 
 "A linguagem C foi primeiramente criada por Dennis M. Ritchie e Ken 
Thompson no laboratório Bell em 1972, baseada na linguagem B de Thompson que 
era uma evolução da antiga linguagem BCPL." (MIZRAHI, 2005, p.2). 
 
 A linguagem C foi desenvolvida para que o usuário possa planejar programas 
estruturados e modulares, de forma que o mesmo programa possa ser desenvolvido 
por pessoas distintas em partes separadas e depois unidos em um produto final de 
forma legível e documentada. 
 
 A linguagem C é considera de alto nível, devido a sua semelhança com a 
linguagem humana e de sua complexidade. Ela é uma linguagem muito poderosa, 
capaz de realizar as mais diversas tarefas, além de possuir uma grande 
portabilidade, ou seja, pode ser utilizada nos mais diversos tipos de equipamentos e 
dispositivos de forma igualmente eficaz. 
 
 
2.3 HISTOGRAMAS 
 
 
 "Os histogramas são ferramentas de processamento de imagens que 
possuem grande aplicação prática. Os histogramas são determinados a partir de 
valores de intensidade dos pixels. Entre as principais aplicações dos histogramas 
estão na melhoria da definição de uma imagem, a compressão de imagens, a 
segmentação de imagens ou ainda a descrição de uma imagem"(MARENGONI, 
2009). 
 
 A estrutura de dados do histograma é capaz de representar histogramas em 
uma ou várias dimensões, e contém todos os dados necessários para acompanhar 
binários tanto em tamanho uniforme como em tamanhos não uniformes. 
 
 Histogramas podem ser utilizados em uma grande variedade de aplicações, 
como por exemplo a distribuição das cores de uma imagem, o gradiente de bordas 
de um objeto ou a localização hipotética do objeto. Essas aplicações são muito 
importantes e amplamente utilizadas na visão computacional. Eles são utilizados 
para identificar um ponto de interesse na imagem, associando a esses pontos uma 
marcação tag, que consiste no histograma de recursos nas proximidades do ponto. 
Histogramas das bordas, cantos, cores e assim por diante, formam um tipo de 
identificação geral que é passada para que os classificadores realizem o 
reconhecimento. 
 
 Histogramas são uma contagem de coletas de dados subjacentes agrupados 
em um conjunto pré-definido de binários. Eles podem ser agrupados a partir da 
contagem dos recursos presentes nos dados, tais como gradientes de magnitude, 
direções, cores, ou qualquer outra característica. Em qualquer caso, eles são 
usados para se obter um quadro estatísticoda distribuição de dados subjacentes. 
 
 
Figura 1 - Exemplo de Histograma 
Fonte: Learning OpenCV, 2008, p.195 
 
 
 
2.4 RASTREAMENTO E MONITORAMENTO 
 
 
 Para compreender o movimento de um objeto qualquer, necessitamos de dois 
componentes básicos, identificação e modelagem. 
 
 Identificação equivale a encontrar o objeto de interesse de um quadro em 
uma imagem posterior ao quadro do fluxo de vídeo. Técnicas como "Momentos" e 
"Histogramas de cor" ajudam a identificar o objeto desejado no campo de visão da 
câmera. Rastrear objetos não identificados é um problema, porém isso é importante 
quando queremos determinar o que é interessante com base em seu movimento ou 
quando o movimento de um objeto é precisamente o que o torna interessante. 
(BRADSKI, KAEHLER, 2008, p.316) 
 
 Técnicas para o rastreamento de objetos não identificados normalmente 
envolvem acompanhamento visual de pontos-chave ao invés de objetos extensos. 
OpenCV fornece dois métodos para isso, as técnicas Lucas-Kanade e Horn-
Schunck, que representam o que é muitas vezes referida como fluxo ótico esparso 
ou denso, respectivamente. (BRADSKI, KAEHLER, 2008, p.316) 
 
 A modelagem nos ajuda a lidar com o fato de que essas técnicas somente 
nos fornece posições ruidosas da posição real do objeto. Muitas técnicas 
matemáticas foram desenvolvidas para estimar a trajetória de um objeto de forma 
menos ruidosa. Esses métodos são aplicáveis aos modelos bidimensionais ou 
tridimensionais dos objetos e suas localizações. (BRADSKI, KAEHLER, 2008, 
p.316). 
 
 
2.5 TÉCNICAS "MEANSHIFT" E "CAMSHIFT" 
 
 
 São duas outras técnicas de rastreamento, sendo que camshift significa 
"meanshift continuamente adaptativa". A primeira é uma técnica geral para análise 
de dados em diversas aplicações, das quais a visão computacional é apenas uma 
forma. A outra técnica, camshift, baseia-se na meanshift para permitir o 
rastreamento de objetos cujo tamanho pode variar conforme a sequência de vídeo. 
(BRADSKI, KAEHLER, 2008, p.337) 
 
 O algoritmo meanshift é um método robusto de encontrar um local de 
densidade extrema em um conjunto de dados. É um processo fácil para distribuições 
continuas, onde o contexto é essencialmente picos de densidade aplicados a um 
histograma de densidade de dados. (BRADSKI, KAEHLER, 2008, p.338) 
 
 Já o algoritmo camshift difere de meanshift, quando a janela de busca se 
ajusta ao tamanho desejado, ou seja, se tivermos distribuições bem segmentadas 
(características de um rosto que ficam compactas), então este algoritmo irá se 
ajustar automaticamente para o tamanho do rosto quando a pessoa se aproximar ou 
afastar da câmera. (BRADSKI, KAEHLER, 2008, p.341) 
 
 
3 DESENVOLVIMENTO 
 
 
Para o desenvolvimento do software, foram utilizadas duas técnicas de 
programação de visão computacional, histogramas de densidade e meanshift. 
 
Utilizando como base o programa contido na biblioteca de aplicativos 
OpenCV 1.0, que após a seleção de uma área qualquer da imagem da câmera com 
o mouse, este rastreia a área selecionada até que a mesma se perca ou se torne 
irreconhecível, realizou-se algumas mudanças para otimizar seu funcionamento de 
acordo com a necessidade de desenvolver uma nova técnica de controle. 
. 
 
3.1 APLICAÇÃO DO HISTOGRAMA 
 
 
O histograma do software gera a partir da imagem da câmera um gráfico que 
reflete a densidade das cores por pixel de acordo com a seleção feita pelo mouse, e 
conforme o valor dessa densidade rastreia a área selecionada até que o seu padrão 
se torne diferente do selecionado. 
 
Utilizando este recurso de forma que um determinado padrão de cores e 
densidade já determinados se tornem a ferramenta de controle, temos então uma 
forma de encontrar através da imagem da câmera o objeto controlador que será 
utilizado pelo usuário. 
 
Em outras palavras, a partir da seleção realizada pelo usuário, o software irá 
analisar o histograma daquela área selecionada, e caso o padrão seja igual ou muito 
parecido a um pré-determinado irá concluir se aquela área selecionada contém o 
objeto controlador. 
 
Analisando a figura 2, nota-se as diferenças entre os padrões de um objeto 
controlador selecionado (esquerda) e um objeto qualquer selecionado (direita). 
Através dessa analise o software será capaz de reconhecer quando o objeto 
selecionado irá realizar alguma ação, conforme o histograma de densidade da área 
selecionada em questão. 
 
 
 
 
Figura 2 Histogramas de identificação de objetos 
Fonte: Autor 
 
 
 
 
 
3.2 RASTREAMENTO DO CONTROLADOR 
 
 
 A técnica meanshift empregada no software, utiliza algumas equações para 
calcular o centro de massa [1] e o momento de inércia [2] dos pixels distribuídos na 
imagem selecionada. 
[1] 
 
 
[2] 
 
 A partir destas equações e juntamente com o histograma da área 
selecionada, teremos uma equação meanshift em x [3] e em y capaz de dizer o 
ponto central da concentração dos pixels da imagem. 
 
[3] 
 
 A figura 3 mostra que a partir do histograma de densidade pode -se calcular o 
centro de massa dos pontos na imagem selecionada. O vetor meanshift neste caso 
descreve que a imagem deve ser re-centralizada de acordo com o centro de massa 
calculado. Este movimento vai mudar o que está sob a área selecionada, e assim 
repetimos este processo de re-centralização. O centro de massa antigo (ponto cinza) 
deve ser deslocado para o novo centro de massa (ponto branco), e assim 
sucessivamente. 
 
Figura 3 Vetor meanshift 
Fonte: Learning OpenCV 2008, p.339 
 
 Essa recentralização contínua sempre converge para o vetor meanshift de 
valor zero, onde não será mais possível mover o centro. A partir do momento em 
que o vetor assume o valor zero, concluí-se que não há mais movimento. 
 
 
3.3 DIVISÃO EM COORDENADAS CARTESIANAS 
 
 
 Para que se possa controlar algum dispositivo, dividiu-se a imagem gerada 
pela câmera em pixels x e y, conforme um plano cartesiano. Com isso será possível 
realizar no mínimo duas ações com o controlador de forma simples. 
 
 Um exemplo de controle de dispositivo com cinco ações, onde valores 
combinados de x e y resultam em diferentes ações, onde: 
 
Figura 4 Exemplo de aplicação 
Fonte: Autor 
 Através da atribuição do ponto x e y do centro de massa da área selecionada, 
será possível realizar as ações definidas no software e controlá-lo conforme sua 
posição espacial. 
 
 Esta técnica de controle é simples, porém muito eficaz em diversas 
aplicações, por isso será utilizada no software desenvolvido. 
 
 
3.4 VISÃO GERAL 
 
 
 Para que possamos rastrear um ponto específico, deve-se primeiramente 
atribuir os valores de densidade de cores e borda do objeto a ser atribuído como 
controlador, e especificá-los no software, de forma que ele identifique quando estiver 
rastreando o controlador ou quando estiver rastreando um objeto desconhecido. 
 
 Após a atribuição de valores do objeto controlador, o software irá analisar o 
histograma de densidade gerado pela câmera, e de acordo com o centro de massa 
do objeto selecionado em cada instante de tempo, irá rastreá-lo de acordo com a 
equação do vetor meanshift. 
 
 O software poderá rastrear qualquer objeto selecionado, por isso é necessário 
pré-estabelecer quais os padrões de objetos controladores. Qualquer outro objeto 
rastreado que não seja o objeto controlador não realizará nenhuma ação, limitando 
com isso a possibilidade de que objetos não desejados interfiram no controle do 
dispositivo. 
 
A lógicado programa seguirá o seguinte algoritmo, de acordo com o 
exemplo citado de controle com cinco ações: 
 
Fluxograma 1 Algoritmo do software 
Fonte: Autor 
 
 Para outras aplicações, a mudança ocorrerá nas ações respectivas aos 
valores x e y, podendo ser modificados tanto a quantidade de ações quanto a 
localização dos pontos cartesianos que executam as respectivas ações.
4 CONSIDERAÇÕES FINAIS 
 
 
A tecnologia OpenCV apesar der ser uma ferramenta para tratamento de 
imagens muito poderosa, ainda é bastante instável e requer cautela para uma 
correta utilização. Ajustes finos são necessários para que ela se torne aplicável 
comercialmente conforme a necessidade. 
 
Pode-se ainda citar novas formas de melhorar essa tecnologia de controle, 
como através do aperfeiçoamento do software controlador para que mais comandos 
possam ser transferidos da câmera para o dispositivo, do desenvolvimento de outros 
tipos de controladores, e do aumento da precisão dos histogramas de analise para 
que o rastreamento seja mais eficaz e preciso. 
 
Pode-se dizer que esta será uma nova ferramenta capaz de controlar e 
manipular dispositivos mecatrônicos de uma forma inovadora, pois realizará diversos 
movimentos e comandos distintos apenas com poucas imagens capturadas, ou seja, 
eliminará os botões necessários para controlar os dispositivos e tornará este ato 
muito mais intuitivo. 
 
Logo, reunindo as novas tecnologias de software disponíveis será possível 
que máquinas reproduzam fielmente os movimentos de uma pessoa sem a 
necessidade de sensores ou fios presos a ela, utilizando apenas as imagens 
capturadas por uma câmera. Isso cria a possibilidade do desenvolvimento de novas 
tecnologias em diversas áreas, desde o entretenimento, com novos brinquedos e 
videogames, na exploração de locais inacessíveis ou perigosos para seres 
humanos, e até no auxílio as pessoas portadores de necessidades especiais. 
 
 
REFERÊNCIAS 
 
 
BRADSKI, Gary; KAEHLER, Adrian. Learning OpenCV. 1 ed. O'Reilly, 2008. 
 
JAMSA, Kris; KLANDER, Lars. Programando em C/C++ "A bíblia". São Paulo: 
Makron Books, 1999. 
 
MARENGONI, Maurício; STRINGHINI, Denise. Tutorial: Introdução à visão Computacional 
usando OpenCV. São Paulo: Rita, 2009. 
 
MIZRAHI, Victorine Viviane. Treinamento em linguagem C. São Paulo: Paerson 
Markon Books, 2005. 
 
ROSÁRIO, João Maurício. Princípios da Mecatrônica. São Paulo: Prentice Hall, 
2005.

Outros materiais