Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ESCOLA POLITÉCNICA
ENGENHARIA DE COMPUTAÇÃO
SISTEMA DE ANÁLISE BIOMECÂNICA
CURITIBA
2016
GUSTAVO RIBEIRO SIQUEIRA
SISTEMA DE ANÁLISE BIOMECÂNICA Relatório Técnico
_________________________ Prof. Guilherme Nunes Nogueira Neto
Documento apresentado ao curso de Engenharia de Computação (Turma U – Diurno) da Pontifícia Universidade Católica do Paraná como critério de avaliação do programa de Projeto Final Professor orientador: Guilherme Nunes Nogueira Neto.
CURITIBA 2016
1
RESUMO
Sistemas de análise biomecânica vêm sendo muito utilizados por atletas e pessoas com problemas de saúde, esse tipo de técnica auxilia as pessoas a conhecerem seus potenciais e limites, ajudando assim em tratamentos reabilitatórios e, no caso de esportistas, a aumentarem seu desempenho. A principal complicação deste tipo de sistema é que possui um custo exorbitante, inviabilizando assim o seu emprego por clínicas de reabilitação com poucos recursos financeiros. Logo, o projeto aqui apresentado visa o desenvolvimento de um sistema de baixo custo utilizando duas câmeras de monitoração, capazes de registrar as coordenadas das articulações de indivíduos filmados portando marcadores passivos, que sejam detectáveis pelas câmeras, durante a realização de um movimento em um espaço volumétrico definido. Os resultados obtidos foram satisfatórios, é possível fazer uma análise simples dos braços e pernas, mas o paciente/atleta fica limitado ao espaço e precisa manter ao máximo os marcadores no campo de visão das câmeras.
2
SUMÁRIO
1. INTRODUÇÃO …………………………………………………………………………. 4 2. DETALHAMENTO DO PROJETO …………………………………………………… 5
2.1 Marcadores ……………………………………………………………..………… 6 2.2 Etapa 1 ……………………………………………………………………………. 6 2.3 Etapa 2 ……………………………………………………………………………. 7 2.4 Etapa 3 …………………………………………………………………………… 7 2.5 Descrição do Diagrama de Classes …………………………………………... 8 2.6 Diagrama de Sequência ………………………………………………………... 11
3. TESTES E RESULTADOS ………………………………………….………………. 12 3.1 Testes em caixa preta ………………………………………………………….. 13
3.1.1 TESTE DE AQUISIÇÃO DE IMAGEM ……………………………...13 3.1.2 TESTE DE EXTRAÇÃO DE COORDENADAS …………………... 13 3.1.3 TESTE DO CÁLCULO ANGULAR ………………………………… 13
3.2 Testes em caixa branca ……………………………………………………….. 13 3.2.1 TESTE IDENTIFICAÇÃO DOS MARCADORES ………………… 13 3.2.2 TESTE DE INTENSIDADE LUMINOSA …………………………... 13
3.3 Resultados ………………………………………………………………………..14 4. CONCLUSÃO …………………………………………………………………………. 15 5. REFERÊNCIAS BIBLIOGRÁFICAS ………………………………………………... 17
3
1. INTRODUÇÃO
A biomecânica é a área que estuda as partes físicas de sistemas biológicos, consequentemente, responsável pela análise física de movimentos do corpo humano[1]. Por ser uma disciplina que depende muito de resultados experimentais, as técnicas e os métodos de medição são de suma importância. As principais técnicas utilizadas para uma análise biomecânica são: cinemetria, dinamometria, antropometria e a eletromiografia. Para o desenvolvimento desse projeto será utilizado o método de cinemetria.
A cinemetria consiste em utilizar procedimentos de natureza óptica, ou seja, através da aquisição de imagens[2]. Tem como principal objetivo descrever como um corpo se move, não se preocupando assim, em explicar as causas destes movimentos. Suas principais etapas metodológicas são a calibração do equipamento, a captura do movimento em estudo, e a análise feita através da captação dos pontos de referência do individuo, convertendo para coordenadas reais, e por último, são extraídos os dados de interesse[3].
As áreas de aplicação deste tipo de análise são as mais diversas, desde entretenimento até a área da saúde, a biomecânica vem sendo fundamental. Equipes esportistas estudam o comportamento de seus atletas, a ponto de poder acompanhar a evolução dos mesmos. Paralelamente, pessoas que possuem lesão medular, entre outras doenças dos sistemas muscular e neurológico, devem ser submetidas a tratamentos reabilitatórios. Nessa área, sistemas de análise de desempenho e equilíbrio semelhantes aos empregados por atletas para monitoração de movimentos podem também ser empregados. Em ambos os casos, a ideia é que o movimento ao longo do tempo seja registrado e confrontado com outras variáveis, para se observar, entre outras, a velocidade, amplitude do movimento e força.
Sistemas de análise biomecânica para acompanhar atletas e doentes existem e nos mais variados formatos. Clinicamente, terapeutas podem utilizar dispositivos baseados em medidores potenciométricos ligados via cabos à PCs. Tais sistemas, porém, são inviáveis para monitorar um atleta, devido à restrição que os cabos impingem. Por isso, sistemas de monitoração por imagem foram utilizados, sendo o Vicon Systems o exemplo mais lembrado. Câmeras de imagem gravam a imagem infravermelha de marcadores posicionados em articulações de interesse dos pacientes ou atletas. Assim, um sistema computacional identifica as coordenadas dos marcadores no espaço do movimento e realiza os cálculos.
O projeto foi desenvolvido com a utilização de duas câmeras e marcadores passivos, as câmeras foram posicionadas com uma angulação de 90º entre elas, facilitando assim o cálculo do ângulo que os marcadores posicionados na articulação do braço ou perna da pessoa representam. Com essa identificação da posição foram
4
gerados logs que permitem o usuário a fazer uma análise posterior dos dados. A partir destes logs o sistema é capaz de gerar um modelo gráfico para que possa ser visto como estava sendo o movimento do membro, e também gerar gráficos de ângulo por tempo, podendo se analisar a que amplitude o membro conseguia atingir, e assim verificar a evolução de um devido paciente de acordo com a comparação dos dados anteriores e futuros.
Este documento está dividido em seções, as quais serão descritas a seguir: ● Detalhamento do projeto: que apresenta o diagrama com a visão geral do
projeto e a especificação de cada bloco. ● Testes e Resultados: descreve como foram desenvolvidos os testes e a
validação dos diversos módulos que serão desenvolvidos e o resultado geral obtido.
● Conclusão: que apresenta os principais aspectos do projeto, problema, objetivos, solução proposta, tecnologias utilizadas e estratégia de desenvolvimento, dificuldades, resultados e possíveis impactos ambientais.
2. DETALHAMENTO DO PROJETO
O trabalho desenvolvido consiste na elaboração de um sistema para ser utilizado em análises biomecânicas, o qual foi subdivido em 3 etapas principais. No diagrama de bloco (Figura 1), pode ser melhor observado como se dá o desenvolvimento do sistema. E abaixo explicado o funcionamento de cada módulo.
5
Figura 1. Diagrama de blocos
2.1 Marcadores Previamente a primeira etapa do sistema desenvolvido, estão os marcadores de
movimentos passivos, que são pequenas esferas revestidas por uma camada de tinta reflexiva, que são colocados nos pontos de articulação do usuário. A aplicação deste projeto foi desenvolvida para o reconhecimento de 3 marcadores, os quais estarão presentes nas articulações do braço ou da perna da pessoa a ser analisada.
2.2 Etapa 1 A primeira etapa se refere à aquisição de imagem, por meio da utilização das
câmeras e do software desenvolvido. As duas câmeras devem ser posicionadas de modo a formarem um ângulo de 90 graus entre si, o usuário se posicionará em meio ao campo de visão das câmeras para que a captura seja feita, assim o software estará com as imagens de cada frame e pronto para a extração das coordenadas. A câmera
6
deve contar com uma fonte luminosa para que possa refletir nos marcadores passivos. Foi utilizado para auxílio do reconhecimento dos marcadores uma biblioteca que faz rastreamento de laser[4][5].
2.3 Etapa 2 A segunda etapa é apenas de software, com a utilização das imagens é feita a
extração das coordenadas dos marcadores presentes, o reconhecimento dos marcadores ocorre pelo processamento dos pontos em que a imagem possui os maiores brilhos. Esta etapa também é utilizada para a rotina de calibração do equipamento, a qual fará o alinhamento dos pontos entre as duas câmeras.
Para a extração das coordenadas foi feita uma varredura na matriz da imagem em busca dos pontos com maior luminosidade, como são utilizadas duas câmeras, enquanto a primeira câmera ficava responsável pelos eixos x e y, a segunda buscava o eixo z dos marcadores, assim cada marcador possuía os 3 componentes da coordenada.
A etapa de calibração consiste em o usuário deixar o braço esticado para baixo, deixando o sistema identificar os 3 marcadores nas duas câmeras, e poder saber qual ponto se refere ao da outra câmera. Esta etapa também faz o reconhecimento de qual é o ponto central a ser analisado, para se fazer o cálculo do ângulo que se refere a ele.
2.4 Etapa 3 A terceira etapa é reponsável pelos cálculos finais e pela resposta ao usuário, é
subdivida em três blocos: armazenamento de informações, exibição das imagens, visualização dos ângulos e coordenadas. No primeiro bloco os dados gerados à partir da extração das coordenadas são armazenados em um espaço na memória, para que assim, quando desejado, possa ser salvo todos estes dados de uma só vez em um arquivo, evitando dessa forma um acesso à disco a todo instante. Estes dados estarão em ordem temporal no arquivo, para que assim possam ser utilizados mais tarde para uma futura análise, caso necessário. O segundo bloco representa a exibição das imagens obtidas, que serão apresentadas no monitor com uma máscara sobrepondo a mesma, a qual estará mostrando a identificação dos marcadores e traçando uma linha entre os mesmos. Já o terceiro bloco tem como função apresentar na tela os dados dos resultados obtidos, ou seja, o ângulo calculado.
Como o sistema está utilizando duas câmeras, ambas focadas em um mesmo espaço e com um ângulo de 90 graus entre si, obtemos dos marcadores os pontos x, y, z de cada marcador, assim para o cálculo do ângulo representado se fez o uso do produto vetorial, da geometria analítica.
A seguinte equação foi utilizada para calcular o ângulo[6]:
7
os θ c = v.wv .w| | | | Equação 1. Cálculo do ângulo
A seguir está a representação do diagrama de classes do software
desenvolvido.
Figura 2. Diagrama de Classes
2.5 Descrição do Diagrama de Classes 2.5.1 Classe MainForm
O diagrama de classe foi desenvolvido focando nas partes que mais comprometem este sistema, deixando de fora alguns aspectos e características das bibliotecas utilizadas. Esta classe, que é a principal do sistema, é a responsável por ativar as câmeras e criar o MotionDetector, que será explicado na sequência, e adicionálo à câmera. A seguir está a representação visual da janela desenhada por esta classe.
8
Figura 3. MainForm
2.5.2 Interface IMotionDetector
Esta interface cria os métodos de Reset e de ProcessFrame, para que as classes que a herdam façam a execução desses métodos. O Reset serve para reiniciar o detector de movimento, enquanto o método ProcessFrame fica responsável por toda a lógica de pegar a imagem e fazer a identificação dos marcadores, os pontos com maior intensidade luminosa, e de desenhar na imagem captada a identificação dos marcadores conforme na imagem abaixo.
Figura 4. Máscara em torno do ponto com maior intensidade luminosa
9
2.5.3 Classe MotionDetector
Esta classe é que realmente fará todo o processamento do sistema. Ela armazena o tamanho da imagem, para que seja utilizada para identificação dos pontos, a variável calCoor que representa as coordenadas de calibração, e o arquivo de log para guardar os dados das posições obtidas.
Com as coordenadas obtidas, sendo que os pontos X e Y vem da câmera 1 e o Z da câmera 2, é possível determinar o valor do ângulo que o membro está fazendo.
O método writeToLog fica responsável por fazer a escrita no arquivo de log, o qual é de grande interesse para que seja possível uma análise posterior, para algum outro tipo de estudo mais elaborado, ou até como dados para a criação de um modelo em 3d do movimento executado. 2.5.4 Classe Modeling
Esta classe fica responsável por fazer a utilização dos logs salvos para gerar um modelo representativo do que foi o movimento do membro. Ela foi desenvolvida utilizando a biblioteca OpenTK[7] que engloba a OpenGL.
Abaixo está uma imagem representativa do resultado da classe Modeling, após abrir um arquivo de log.
10
Figura 5. Modelagem dos pontos. 2.5.5 Classe PlotGraph
Esta classe ficou responsável por plotar um gráfico representando a variação do ângulo em relação ao tempo, para que assim seja possível fazer a comparação de diferentes logs e verificar a evolução do paciente em questão.
Abaixo está a representação do resultado da classe PlotGraph após abrir um arquivo de log.
Figura 6. Gráfico ângulo X tempo.
2.6 Diagrama de Sequência O diagrama de sequência(Figura 7) mostra como será o fluxo base do software
a ser desenvolvido.
11
Figura 7. Diagrama de Sequência
3. TESTES E RESULTADOS
Este tópico contempla os testes realizados, juntamente com os resultados esperados em cada etapa a ser executada.
3.1 Testes em caixa preta
Esta seção se refere aos testes realizados no ponto de vista do usuário, e quais suas experiências em relação ao sistema.
3.1.1 TESTE DE AQUISIÇÃO DE IMAGEM
Com este teste foi possível validar se após o sistema ligado, as imagens foram exibidas corretamente no monitor. Para isso o usuário teve de posicionar as
12
câmeras, com um ângulo de 90 graus entre elas, na área a ser filmada, e rodar o sistema, com isso se esperava aparecer no monitor a imagem das câmeras.
3.1.2 TESTE DE EXTRAÇÃO DE COORDENADAS
A partir deste teste foi possível observar se os dados estão sendo armazenados e se os mesmos estão corretos. Para isso o usuário teve de ligar o sistema e colocar no campo de visão das câmeras uma pessoa, ou objeto com os marcadores posicionados, clicar para calibrar e após de um tempo clicar para salvar o log, assim o usuário podese verificar a criação do arquivo que guarda as devidas coordenadas e seu conteúdo, como também ver a posição em que se encontra em cada frame.
3.1.3 TESTE DO CÁLCULO ANGULAR
Com este teste o usuário pode verificar a saída final do sistema, para isso basta o sistema estar rodando com um usuário portando os marcadores, os quais devem estar presentes no campo de visão das câmeras, assim pode ser observado o valor do ângulo em cada frame.
3.2 Testes em caixa branca
Nesta seção estão contemplados os testes que são voltados ao ponto de vista do sistema, ou seja, testes que possuam um conhecimento da estrutura interna do programa.
3.2.1 TESTE IDENTIFICAÇÃO DOS MARCADORES
Com este teste é possível observar se o software está reconhecendo os marcadores corretamente, colocando os marcadores no campo de visão das câmeras, os marcadores devem ser reconhecidos, terem suas coordenadas salvas em um arquivo de log, e apresentados na imagem de saída, com uma máscara em seu contorno.
3.2.2 TESTE DE INTENSIDADE LUMINOSA Com este teste foi possível fazer a análise para saber até que quantidade
de luminosidade no ambiente o sistema é capaz de identificar os marcadores sem que haja interferência.
3.3 Resultados Os resultados obtidos para o projeto foram muito satisfatórios. O
reconhecimento dos marcadores funciona perfeitamente, dificilmente há alguma confusão quanto à identificação deles. A maior complicação encontrada foi para
13
analisar e identificar o ponto central (ponto que liga os outros marcadores, por exemplo o cotovelo) e manter esse ponto corretamente durante os movimentos. Para movimentos suaves e sem perder os marcadores da visão das câmeras isso funciona muito bem, mas quando os movimentos são mais bruscos e rápidos e/ou há a perda de marcadores por alguns segundos, isto pode acarretar na troca do ponto central, ou em falha no algoritmo que identifica este mesmo ponto, se tornando necessária uma nova calibração.
A partir dos pontos definidos o cálculo de armazenamento e a exportação para um log de saída funcionam de acordo com esperado. E com os logs foi possível criar uma parte de pós processamento que pode vir a ser útil, a criação do modelo 3D, que acabou ficando limitada por conta de não ser possível mudar o ângulo de visão, e a criação dos gráficos, bastante interessantes para uma análise de evolução de um paciente.
Quanto à luminosidade, como se faz o uso de lanternas não há a necessidade de um ambiente escuro, mas é preciso tomar cuidado com objetos que possam brilhar e estejam no campo de visão da câmera, pois podem afetar e serem reconhecidos no lugar dos marcadores. O programa conta também com uma variável de limite de brilho que o usuário pode alterar para que sejam reconhecidos apenas os objetos com maior brilho no ambiente.
14
4. CONCLUSÃO
Com o atual avanço da tecnologia, o estudo da biomecânica se torna mais fácil e de extrema eficácia, possibilitando assim o desenvolvimento de atletas e tratamento de pessoas debilitadas, conforme visto como foco do projeto, utilizando poucos equipamentos e que apresentam um valor x benefício melhor.
O custo atual de equipamentos usuais para este tipo de detecção, acaba sendo demasiadamente elevado. Contudo, visando neutralizar isso, o Projeto de Análise Biomecânica surge com o intuito de desenvolver um sistema capaz de auxiliar este estudo sem um gasto exorbitante em equipamentos.
O projeto passou por algumas alterações de escopo, as quais podem voltar a ser implementadas para um projeto futuro, e que seja mais abrangente ao estudo de diversos membros e números de marcadores. A principal alteração foi a da utilização de um calibrador, o qual seria necessário para o emprego de múltiplas câmeras dispostas sem uma configuração padrão. Assim com o uso de um calibrador é possível fazer com que câmeras em diferentes pontos de visão, reconheçam o mesmo ângulo. Outro ponto que pode ser levado em conta foi o de limitar a quantidade de marcadores para apenas 3, os quais para um estudo inicial já é o suficiente, mas talvez para uma maior análise não seja. E a última alteração foi a de não fazer a utilzação de refletores infravermelho para a reflexão nos marcadores, como os testes do circuito que seria implementado para criar esses refletores não foram satisfatórios, precisouse utilizar o plano de contingência e partir para uma outra abordagem, o uso de lanternas de alta potência. Outros tópicos que podem ser implementados futuramente como o de criação de um modelo 3D do esqueleto em movimento, análise mais detalhada dos ângulos obtidos em cada etapa, um estudo aprofundado sobre este tipo de análise.
Devido ao projeto ter sido desenvolvido em um curto espaço de tempo, e como alguns desses quesitos não iam ser possíveis de ser desenvolvidos neste período, eles tiveram que ser descartados, mas se tornam de bastante valor para um aperfeiçoamento futuro que possa acontecer seguindo a mesma linha de pesquisa.
As principais dificuldades encontradas se deram no tocante reconhecimento dos marcadores, sem que, independente do movimento feito, perdessem a ordem a qual deveriam se portar, por exemplo, um marcador que está sobre o cotovelo de uma pessoa, deve ser reconhecido como ponto central, e não importa como ela se mexa, o ponto central deve continuar sendo o mesmo, para que assim seja possível o cálculo do ângulo que o braço está fazendo. Outro fator que se fez um pouco trabalhoso, foi o de alinhar os pontos entre as câmeras 1 e 2, o sistema deve saber qual o mesmo ponto em ambas as imagens. O uso de marcadores ativos resolveriam ambas dificuldades, mas como são mais caros e possuem fios, e baterias, podendo atrapalhar
15
determinados movimentos e fogem de uma procura por componentes de baixo custo, logo não foram utilizados para a abordagem deste projeto.
Sendo assim, concluise que, com a utilização de algumas câmeras, um computador e marcadores de movimento, é possível desenvolver um sistema de análise biomecânica, e ajudar assim na evolução não só de desempenho de atletas, mas também realizar um panorama mais específico do quadro de saúde das pessoas que necessitam deste tipo de acompanhamento. Este projeto é viável tanto do ponto de vista tecnológico, quanto do ponto de vista ambiental e econômico. O maior impacto ambiental que este projeto pode apresentar está em relação ao consumo de energia por parte do computador utilizado e da bateria das lanternas, todavia como as baterias são recarregáveis acabam tendo uma duração maior, mas em caso de necessidade de troca das mesmas o descarte correto em local apropriado deve ser efetuado. O projeto já visa possuir um baixo custo, mas pode ser ainda menor com algumas alternativas que podem ser implementadas, como a utilização de câmeras inferiores. As usadas neste projeto possuem qualidade HD, mas não se faz tão necessário o uso de uma qualidade de imagem alta, o importante é apenas identificar os marcadores no espaço, podendo assim ter uma leve economia nesses componentes.
Dentro das limitações e objetivos descritos no conteúdo deste relatório, acreditase que o desenvolvimento do sistema de análise biomecânica com custo mais reduzido pôde iniciarse e cumprir com o os requisitos propostos, podendo auxiliar assim pessoas que eventualmente precisem desta análise.
16
7. REFERÊNCIAS BIBLIOGRÁFICAS [1] Amadio, A. C., Costa, P. H. L., Sacco, I. C. N., Serrão, J. C., Araujo, R. C., Mochizuki, L. e Duarte, M. (1999) Introdução à análise do movimento humano descrição e aplicação dos métodos biomecânicos de medição. Rev. Bras. Fisiot. Vol. 3, No. 2, 4154. Associação Brasileira de Fisioterapia. [2] Cinemetria. Laboratório de Biomecânica do Movimento e Postura Humana FIsioterapia FMUSP. Disponível em: <http://www2.fm.usp.br/fofito/fisio/pessoal/isabel/biomecanicaonline/medicao/cinemetria.php>. Acesso em: 16 de Março de 2016. [3] Sbaraini, F. L., Cinemetria como procedimento metodológico para análise do movimento humano em biomecânica. Disponível em: <http://anais.sepex.ufsc.br/anais_4/trabalhos/292.html>. Acesso em: 20 de Março de 2016. [4] WebCam Based Laser Tracking for Human Computer Interaction. Disponível em: <https://channel9.msdn.com/coding4fun/articles/WebcamBasedLaserTrackingforHumanComputerInteraction>. Acesso em 10 de Abril de 2016. [5] Codigo identificação de laser por webcam. Disponível em: <https://gist.github.com/Krb686/cad6284b2a8ef2bf5b07>. Acesso em: 1 de maio de 2016. [6] da Cruz, L. F., Cálculo Vetorial e Geometria Analítica. Departamento de Matemática UNESP. Disponível em: <http://wwwp.fc.unesp.br/~lfcruz/GA_CAP_04.pdf>. Acesso em: 10 de maio de 2016. [7] The Open Toolkit Library | OpenTK. Disponível em: <http://www.opentk.com>. Acesso em: 20 de maio de 2016.
17