anÁlise e reconhecimento de imagem aplicada ao...

6
Congresso de Inovação, Ciência e Tecnologia do IFSP - 2016 ANÁLISE E RECONHECIMENTO DE IMAGEM APLICADA AO ENSINO DE CINEMÁTICA BRUNO A. CARDOSO 1 , ANA C. S. SILVA 2 , GUSTAVO V. ATZINGEN 3 , 1 Graduando em Engenharia Mecânica, Bolsista PIBIFSP, IFSP, Campus Piracicaba, [email protected] 2 Professora de Física, USP, Campus Pirassununga, [email protected] 3 Professor Física, IFSP, Campus Piracicaba, [email protected] Área do conhecimento 1.05.01.06.1 (cnpq). Apresentado no 7° Congresso de Iniciação Científica e Tecnológica do IFSP 29 de novembro a 02 de dezembro de 2016 - Matão-SP, Brasil RESUMO: No ensino de física, unir os experimentos reais com simulações e softwares ajuda muito no processo de aprendizagem, além de reduzir os custos com equipamentos e laboratórios. O presente trabalho tem como objetivo o desenvolvimento de um software de apoio ao ensino de física que capture e mostre a posição, a velocidade e a aceleração de objetos conhecidos através de dispositivos eletrônicos como notebooks com câmera digital ou smartphones. Foi desenvolvido um algoritmo na linguagem Python2.7 capaz de captar vídeos da câmera de dispositivos eletrônicos e, utilizando técnicas de visão computacional (através da biblioteca OpenCV), reconhecer os objetos pré- determinados para que o movimento destes possam ser estudados em tempo real. Foram realizados experimentos de cinemática com lançamentos oblíquos e os vídeos destes experimentos foram processados, gerando as posições, as velocidades e as acelerações destes objetos. Os resultados estão de acordo com as equações de lançamento oblíquo em duas dimensões. Futuramente este algoritmo será transformado em um software com interface gráfica intuitiva e disponibilizado de forma open source para que professores e alunos possam o utilizar nas disciplinas de Física. PALAVRAS-CHAVE: visão computacional; processamento de imagem; física; opencv; python. ANALYSIS AND RECOGNITION OF VISUAL DATA APPLIED TO THE TEACHING OF KINEMATICS ABSTRACT: In the teaching of physics, unite real experiments with simulations and software helps a lot at the learning process, it also reduces the total cost of equipments and laboratory. This work has as its objective the development of a software to aid the teaching of physics, that captures and show the position, velocity and acceleration of known objects using electronic devices like notebook with a digital camera and smartphones. Algorithms that are capable of capturing camera videos of electronic devices were programmed, and by using computational vision technics (OpenCV library), also alorithms capable of recognizing predetermined objects so the movement of these could be analysed at real time. Kinematics experiment such as oblique launching were conducted and the generated videos were processed, generating the positions, velocities and accelerations of these objects. The results are close to the values obtained by the used of the two dimensions physics equations. In the future, these algorithms will be turned into a software with a intuitive graphical user interface and will be avaible as an open source code so teachers and students could use it in physics classes. KEYWORDS: computational vision; image processing; physics; opencv; python.

Upload: others

Post on 02-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANÁLISE E RECONHECIMENTO DE IMAGEM APLICADA AO …mto.ifsp.edu.br/images/CPI/Anais/IC/1731.pdfANALYSIS AND RECOGNITION OF VISUAL DATA APPLIED TO THE TEACHING OF KINEMATICS ABSTRACT:

Congresso de Inovação, Ciência e Tecnologia do IFSP - 2016

ANÁLISE E RECONHECIMENTO DE IMAGEM APLICADA AO ENSINODE CINEMÁTICA

BRUNO A. CARDOSO1, ANA C. S. SILVA2, GUSTAVO V. ATZINGEN3,

1 Graduando em Engenharia Mecânica, Bolsista PIBIFSP, IFSP, Campus Piracicaba, [email protected] Professora de Física, USP, Campus Pirassununga, [email protected] Professor Física, IFSP, Campus Piracicaba, [email protected]Área do conhecimento 1.05.01.06.1 (cnpq).

Apresentado no7° Congresso de Iniciação Científica e Tecnológica do IFSP

29 de novembro a 02 de dezembro de 2016 - Matão-SP, Brasil

RESUMO: No ensino de física, unir os experimentos reais com simulações e softwares ajuda muitono processo de aprendizagem, além de reduzir os custos com equipamentos e laboratórios. O presentetrabalho tem como objetivo o desenvolvimento de um software de apoio ao ensino de física quecapture e mostre a posição, a velocidade e a aceleração de objetos conhecidos através de dispositivoseletrônicos como notebooks com câmera digital ou smartphones. Foi desenvolvido um algoritmo nalinguagem Python2.7 capaz de captar vídeos da câmera de dispositivos eletrônicos e, utilizandotécnicas de visão computacional (através da biblioteca OpenCV), reconhecer os objetos pré-determinados para que o movimento destes possam ser estudados em tempo real. Foram realizadosexperimentos de cinemática com lançamentos oblíquos e os vídeos destes experimentos foramprocessados, gerando as posições, as velocidades e as acelerações destes objetos. Os resultados estãode acordo com as equações de lançamento oblíquo em duas dimensões. Futuramente este algoritmoserá transformado em um software com interface gráfica intuitiva e disponibilizado de forma opensource para que professores e alunos possam o utilizar nas disciplinas de Física.

PALAVRAS-CHAVE: visão computacional; processamento de imagem; física; opencv;python.

ANALYSIS AND RECOGNITION OF VISUAL DATA APPLIED TO THE TEACHINGOF KINEMATICS

ABSTRACT: In the teaching of physics, unite real experiments with simulations and software helps alot at the learning process, it also reduces the total cost of equipments and laboratory. This work has asits objective the development of a software to aid the teaching of physics, that captures and show theposition, velocity and acceleration of known objects using electronic devices like notebook with adigital camera and smartphones. Algorithms that are capable of capturing camera videos of electronicdevices were programmed, and by using computational vision technics (OpenCV library), alsoalorithms capable of recognizing predetermined objects so the movement of these could be analysed atreal time. Kinematics experiment such as oblique launching were conducted and the generated videoswere processed, generating the positions, velocities and accelerations of these objects. The results areclose to the values obtained by the used of the two dimensions physics equations. In the future, thesealgorithms will be turned into a software with a intuitive graphical user interface and will be avaible asan open source code so teachers and students could use it in physics classes.

KEYWORDS: computational vision; image processing; physics; opencv; python.

Page 2: ANÁLISE E RECONHECIMENTO DE IMAGEM APLICADA AO …mto.ifsp.edu.br/images/CPI/Anais/IC/1731.pdfANALYSIS AND RECOGNITION OF VISUAL DATA APPLIED TO THE TEACHING OF KINEMATICS ABSTRACT:

INTRODUÇÃOUnir os experimentos reais com os softwares é uma tendência que vem ocorrendo,

principalmente devido ao grande aumento do poder computacional e acesso a dispositivos eletrônicos.Muitos kits de laboratório de física já vem com sensores que se conectam a computadores comsoftwares próprios, garantindo melhor visualização e precisão nos experimentos, porém a um custoque dificulta o uso em larga escala.

Uma maneira barata e viável de integrar experimentos reais com softwares para o ensino defísica é utilizando as técnicas de processamento de imagens e reconhecimento de padrões para queexperimentos de cinemática possam ser feitos apenas utilizando uma câmera comum. O objetivo destetrabalho é desenvolver um software livre e multiplataforma (Windows®/Linux®/MacOS®/Android®) que possa analisar em tempo real o movimento de objetos para o estudo dacinemática por alunos de cursos de Física do Ensino Médio, Técnico e Superior.

MATERIAIS E MÉTODOSO software foi desenvolvido utilizando apenas plataformas e bibliotecas open source,

centradas no desenvolvimento através da linguagem Python2.7, que foi escolhida por ter todos osrequisitos de funcionalidades e bibliotecas necessárias para o trabalho, além de se tratar de umalinguagem de rápida curva de aprendizagem e de alto nível, facilitando o desenvolvimento do projetopor parte do aluno (VAN ROSSUM, 2007).

Para a maior parte do processamento e reconhecimento de imagens foi utilizada a bibliotecaOpenCV na versão 3.1, que é uma biblioteca livre desenvolvida originalmente pela Intel para alinguagem C++ (BRADSKI, 2000) mas que hoje em dia se tornou líder em Visão Computacional commódulos disponíveis para várias linguagens de programação. Os procedimentos mais específicos doprocesso que não possuiam alguma função ou método pronto da biblioteca OpenCV foram escritoscomo funções em Python com a ajuda da biblioteca NumPy - uma biblioteca para cálculo numéricocom várias rotinas de operação vetorial otimizadas (NUMPY, 2015). A biblioteca Matplotlib(HUNTER, 2007), que possibilita mostrar gráficos científicos precisos em tempo real e salvar oresultado em planilhas e banco de dados, foi utilizada.

A interface gráfica desenvolvida (Fig. 1) tem o objetivo de facilitar o uso do software, inclusivepossibilitando que alunos e professores que não possuem conhecimento avançado de programaçãopossam operar o software. Na UI (User Interface, Interface do Usuário) estão todos os comandos paraescolha da forma de captação da imagem e das variáveis do experimento, que podem mudar de acordocom o laboratório e equipamentos de cinemática. Também pela UI, pode ser escolhido o tipo de objetoa ser rastreado, dimensões e o tipo de experimento (que incialmente são apenas experimentos decinemática de queda livre e lançamento oblíquo). Toda a interface gráfica foi desenvolvida utilizandoo framework Qt4, com a biblioteca PyQt4 (SUMMERFIELD, 2007). A parte de design da interface foifeita utilizando o Qt Designer.

FIGURA 1. Interface gráfica para controle do software.

Page 3: ANÁLISE E RECONHECIMENTO DE IMAGEM APLICADA AO …mto.ifsp.edu.br/images/CPI/Anais/IC/1731.pdfANALYSIS AND RECOGNITION OF VISUAL DATA APPLIED TO THE TEACHING OF KINEMATICS ABSTRACT:

Após o desenvolvimento do algoritmo base e da interface gráfica, foram realizadosexperimentos de queda livre e lançamento oblíquo, ambos com esferas de aço de 40 mm de diâmetro.Nestes experimentos, a câmera ficou fixa e não houve movimento externo ao experimento parafacilitar a análise das imagens. Todas as dimensões envolvidas no experimento foram medidas e olayout do experimento pode ser observado na Figura 2.

(a) (b)

FIGURA 2. Visão frontal do experimento - Ponto de vista da câmera (a). Visão superior doexperimento (b).

Como nos vídeos dos experimentos a câmera estava fixa, aplicando os filtros necessários, aúnica alteração entre as imagens é devida ao movimento do projétil. Desta forma, após a imagem tersido convertida do formato RGB para escala de cinza (0-255), foi feita uma subtração de dois framessucessivos para remover o fundo e se obter na imagem apenas o projétil. Também foram aplicadosfiltros de média para remover ruídos devido a câmera e finalmente a imagem foi binarizada aplicandoum filtro limiar gaussiano. A imagem final foi submetida a um detector de blob do opencv, que retornao valor da coordenada do pixel central para o objeto encontrado.

Conhecendo a posição da câmera em relação ao experimento, altura da mesa e FOV da câmera,foi feita uma função para converter a posição do objeto da imagem para uma posição em metros real.

RESULTADOS E DISCUSSÕESApós os testes com os parâmetros do processamento da imagem ligados ao filtro e valor para o

limiar binário, foi possível isolar apenas o objeto de interesse na imagem, removendo o fundo e ruídosda imagem. Os parâmetros para detecção e teste da região encontrada também foram ajustados paraevitar falsas detecções, levando em consideração o formato e área do objeto encontrado. Um resumodo processamento da imagem pode ser encontrado da Figura 3, onde são apresentadas as etapasprincipais de detecção até o objetivo final (Figura 3-f).

Page 4: ANÁLISE E RECONHECIMENTO DE IMAGEM APLICADA AO …mto.ifsp.edu.br/images/CPI/Anais/IC/1731.pdfANALYSIS AND RECOGNITION OF VISUAL DATA APPLIED TO THE TEACHING OF KINEMATICS ABSTRACT:

FIGURA 3. (a) Imagem pura adquirida pela câmera. (b) Conversão para tons de cinza mais blur. (c)Subtração de 2 frames sequenciais já em tom de cinza. (d) Binarização da imagem em tons de cinza,

com Limiar adaptativo gaussino mais erosão e extrusão. (e) reconhecimento do objeto a partir daimagem binária. (f) trajetória total do objeto.

Uma vez encontrados os parâmetros corretos, o algoritmo foi capaz de reconhecer com precisãoa posição do objeto em todo par de frame. Com a detecção, além de uma marca identificadora noobjeto, foi gerado uma tabela de dados com a posição do pixel central em cada instante de tempo. Atransformação geométrica também foi aplicada resultando na posição real do objeto em um planoperpendicular ao FOV (Field of View – campo de visão) da câmera, sendo que esta posição real emmetros também foi adicionada a tabela.

Os dados de posição e tempo foram dispostos em um gráfico da posição horizontal e vertical emfunção do tempo. Como pode ser observado na Figura 4 (a) e (b), os resultados estão de acordo com oesperado, sendo um Movimento Uniforme no eixo horizontal e um Movimento UniformementeVariado no eixo vertical. Além disso, o valor de g (gravidade) pode ser determinado pelo gráfico daFig. (4 c), procurando a melhor equação polinomial de segunda ordem que se enquadra nos dados (jáque na direção vertical teremos um Movimento Uniformemente Variado (MUV)), sendo que o valorencontrado através da Fig. (4 c) foi de 9,9248 m/s2, mostra que o software pode ajudar muito naprecisão dos experimentos além de trabalhar conceitos importantes de separação de eixos nacinemática.

Page 5: ANÁLISE E RECONHECIMENTO DE IMAGEM APLICADA AO …mto.ifsp.edu.br/images/CPI/Anais/IC/1731.pdfANALYSIS AND RECOGNITION OF VISUAL DATA APPLIED TO THE TEACHING OF KINEMATICS ABSTRACT:

FIGURA 4. (a) Posição no eixo X – horizontal em função do tempo. (b) Posição no eixo Y – verticalem função do tempo. (c) Posição no eixo Y (em metros) em função do tempo.

CONCLUSÕESO resultado dos processamentos mostra que a técnica utilizada é viável para localizar e obter

resultados com alto grau de precisão em experimentos de cinemática. A separação do movimento emhorizontal e vertical reforça os conceitos didáticos de cinemática e mostra que realmente não existeforça resultante na componente horizontal, levando a um movimento uniforme (uma reta no gráfico dey em função de t) e que o movimento vertical realmente é um MUV, levando a possibilidade dedeterminação experimental de g. Para flexibilizar o uso em sala de aula, novos módulos dereconhecimento para abranger outros experimentos serão adicionados para então o programa serdisponibilizado.

Page 6: ANÁLISE E RECONHECIMENTO DE IMAGEM APLICADA AO …mto.ifsp.edu.br/images/CPI/Anais/IC/1731.pdfANALYSIS AND RECOGNITION OF VISUAL DATA APPLIED TO THE TEACHING OF KINEMATICS ABSTRACT:

REFERÊNCIASBRADSKI, G. The opencv library. Doctor Dobbs Journal, v. 25, n. 11, p. 120-126, 2000.NUMPY. Scientific computing tools for python-numpy. Disponível em: <

http://www.numpy.org/ >. Acesso em 15 de agosto de 2015.HUNTER, J. D. Matplotlib: A 2D graphics environment. Computing in Science & Engineering,

v. 9, n. 3, p. 0090-95, 2007.PYTHON Software Foundation. PyQt4 4.11.4. Disponível em: <

https://pypi.python.org/pypi/PyQt4 >. Acesso em 14 de agosto de 2015.SUMMERFIELD, M. Rapid GUI programming with Python and Qt: the definitive guide to

PyQt programming. Pearson Education, 2007.VAN ROSSUM, G. Python Programming Language. Proceedings of the 2007 USENIX Annual

Technical Conference, June 17-22, 2007, Santa Clara, CA, USA. USENIX 2007, 2007.