SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

56
InstitutoTecnológicode LaPaz INSTITUTO TECNOLÓGICO DE LA PAZ DIVISIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN MAESTRÍA EN SISTEMAS COMPUTACIONALES SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE EXTREMIDADES EN MARCHA BÍPEDA TESIS QUE PARA OBTENER EL GRADO DE MAESTRO EN SISTEMAS COMPUTACIONALES PRESENTA: LUIS ALBERTO PACHECO VEGA DIRECTOR DE TESIS: M.S.C. JOSÉ LUÍS GÓMEZ TORRES LA PAZ, BAJA CALIFORNIA SUR, MÉXICO, AGOSTO 2018. Blvd. Forjadores de B.C.S. #4720, Col. 8de Oct. 1era. Sección C.P. 23080 La Paz, B.C.S. Conmutador (612) 121-04-24, Fax: (612) 121-12-95 www.itlp.edu.mx

Transcript of SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Page 1: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Instituto Tecnológico de La Paz

INSTITUTO TECNOLÓGICO DE LA PAZDIVISIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN

MAESTRÍA EN SISTEMAS COMPUTACIONALES

SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DEEXTREMIDADES EN MARCHA BÍPEDA

T E S I S

QUE PARA OBTENER EL GRADO DEMAESTRO EN SISTEMAS COMPUTACIONALES

PRESENTA:LUIS ALBERTO PACHECO VEGA

DIRECTOR DE TESIS:M.S.C. JOSÉ LUÍS GÓMEZ TORRES

LA PAZ, BAJA CALIFORNIA SUR, MÉXICO, AGOSTO 2018.

Blvd. Forjadores de B.C.S. #4720, Col. 8 de Oct. 1era. Sección C.P. 23080La Paz, B.C.S. Conmutador (612) 121-04-24, Fax: (612) 121-12-95

www.itlp.edu.mx

Page 2: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...
Page 3: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...
Page 4: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Dedicatoria

Dedico este trabajo a mi familia, quienes siempre me han motivado, aconsejado y apoyado

en todo lo que me he propuesto.

i

Page 5: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Agradecimientos

Agradezco a mi familia, quienes me supieron apoyar, alentar y motivar en la vida, permi-

tiendome cumplir una meta mas.

Agradezco a CONACyT y al Instituto Tecnologico de La Paz, por brindarme la oportunidad

de desarrollarme academicamente.

Agradezco a mi director de tesis MSC. Jose Luis Gomez Torres, quien me supo guiar y sobre

todo por su paciencia durante este proceso; y de quien pude aprender ademas de conocimiento

para el desarrollo del proyecto, muchas otras cualidades como persona que me permitieron salir

adelante.

De igual manera a mi comite tutorial( Dr. Saul Martınez Dıaz, Dr. Israel Marcos Santillan

Mendez), por compartir su tiempo, consejos y aprendizaje que me guiaron por el sendero ade-

cuado.

Agradezco a mis companeros de maestrıa, con quienes compartı buenos y gratos momentos

ası como trabajos y tareas que nos ayudaron a conocernos mejor.

Agradezco a mis amigos que me apoyaron en la realizacion de pruebas del sistema, quienes

sin su participacion no hubiera sido posible obtener los resultados del proyecto. De igual forma

a todos a quellos quienes me alentaron e incitaron, para iniciar y hasta concluir con este logro.

Un agradecimiento especial a la MSC. Iliana Castro Liera, por toda su ayuda a lo largo

de la maestrıa, y a quien agradezco sus consejos y llamadas de atencion que me motivaron y

permitiron concluir satisfactoriamente.

POR SER MI SOPORTE Y MOTIVACION, GRACIAS.

ii

Page 6: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Resumen

El presente trabajo consiste en el diseno de un sistema de Vision Artificial para detectar

y rastrear marcadores. Para tal efecto el sistema utiliza etiquetas circulares de color rojo que

brindan una rapida colocacion y deteccion, practicamente sin interferencia al movimiento a pa-

rametrizar.

Estos marcadores son ubicados en las articulaciones de una persona, con el fin de parame-

trizar sus trayectorias durante la marcha y obtener sus patrones de movimiento, ademas de

permitir estimar los angulos de las articulaciones de la trayectoria bıpeda. Buscando que los

movimientos sean similares a la marcha humana, con miras a ser replicados mediante el control

de un robot bıpedo.

El proceso para obtener la informacion se basa en imagenes captadas por dos camaras, co-

locadas en los planos laterales de la persona bajo estudio y una tercer camara en el plano

frontal.

iii

Page 7: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Abstract

The present work consists in the design of an Artificial Vision system to detect and track

markers. For this purpose, the system uses red circular labels that provide rapid positioning

and detection, practically without interference to the movement to be parameterized.

These markers are located in the joints of a person, in order to parameterize their trajecto-

ries during the march and obtain their movement patterns, in addition to estimating the angles

of the joints of the bipedal trajectory. Seeking that the movements are similar to the human

march, with a view to being replicated through the control of a biped robot.

The process to obtain the information is based on images captured by two cameras, placed

in the lateral planes of the person under study and a third camera in the frontal plane.

iv

Page 8: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Indice general

1. Introduccion 1

1.1. Descripcion del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.2. Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4. Limitaciones y alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4.1. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4.2. Alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Antecedentes 4

3. Marco teorico 7

3.1. Caminata o marcha bıpeda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1.1. Fisiologıa Articular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1.2. Analisis y Dinamica de la Marcha . . . . . . . . . . . . . . . . . . . . . . 8

3.1.3. Medicion de articulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2. Vision Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.2.1. Modelos de Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.2. Geometrıa Descriptiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2.3. Geometrıa Proyectiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2.4. Dilatacion Binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2.5. Seguimiento de trayectoria . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3. Metodos Matematicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

v

Page 9: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

INDICE GENERAL vi

3.3.1. Ley del coseno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3.2. Distancia Euclidiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4. Metodologıa 20

4.1. Arquitectura del Sistema Propuesto . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.1.1. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.1.2. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.2. Experimentos y Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5. Conclusiones 32

5.0.1. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6. Apendice 33

Page 10: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Indice de figuras

2.1. Evaluacion de la marcha de un paciente con paralisis cerebral en un laboratorio

clınico de marcha. Las camaras infrarrojas en el techo y las paredes capturan la

luz reflejada de los marcadores esfericos reflectantes montados en ambos lados del

cuerpo. (Foto cortesıa de The Gait Analysis Laboratory, Connecticut Children’s

Medical Center, Hartford, CT.). . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2. Plataforma movil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1. Grafico segun la cronofotografıa A) Fase de Apoyo. B) Fase de balanceo. . . . . 8

3.2. Fases de la caminata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3. Esquema de procesos en Vision Artificial . . . . . . . . . . . . . . . . . . . . . . 12

3.4. Modelo de Color RGB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.5. Modelo de Color HSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.6. Representacion de la geometrıa proyectiva. . . . . . . . . . . . . . . . . . . . . . 16

3.7. Tipos de elementos estructurantes. . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.8. Ejemplo grafico de dilatacion binaria. . . . . . . . . . . . . . . . . . . . . . . . . 17

3.9. Etapas del modelado: A) Uso de marcadores, B) Deteccion de marcadores, C)

Implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.10. Calculo de la distancia entre dos puntos . . . . . . . . . . . . . . . . . . . . . . 19

4.1. Posicion de marcadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.2. Esquema para la obtencion de datos de la marcha bıpeda. . . . . . . . . . . . . 21

4.3. Diagrama de flujo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.4. Escala de colores para el modelo RGB. . . . . . . . . . . . . . . . . . . . . . . . 23

4.5. Angulo de la rodilla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

vii

Page 11: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

INDICE DE FIGURAS viii

4.6. Esquema de captura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.7. Camara web Logitech C525 HD. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.8. Velocımetro inalambrico marca Specialized. . . . . . . . . . . . . . . . . . . . . . 27

4.9. Marcador colocado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.10. Caminadora electrica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.11. Tratamiento de la imagen: A) Imagen original con puntos de referencia senalados,

B) Imagen despues de invertir los colores, C) Conversion de RGB a HSV. . . . . 29

4.12. Identificacion de marcadores: a) Imagen binaria con la deteccion del color rojo y

senalando los puntos de referencia, b) Imagen con los centroides de los marcadores

y sus coordenadas 2D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.13. Prueba final. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Page 12: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Capıtulo 1

Introduccion

Durante anos el campo de la robotica se ha centrado en el diseno y desarrollo de automatas.

En la busqueda de desarrollar robots con la capacidad de realizar tareas de manera autonoma y

segura, capaz de asistir a los seres humanos en diferentes ambitos [1], se han derivado diversos

problemas, uno de ellos la bipedestacion.

La bipedestacion o bipedismo es la capacidad de caminar con postura erguida sobre dos ex-

tremidades inferiores [2]. Al buscar dotar a los robots con esta capacidad se ha identificado que

implica una severa inestabilidad al quedar soportado en una sola pierna durante ciertos periodos

de tiempo.

Una de las areas de interes al dotar con esta capacidad a robots es la asistencia medica a

personas que presentan algun tipo de discapacidad motriz. Actualmente existen diferentes dis-

positivos para que estas personas puedan trasladarse de un lugar a otro, como son las sillas de

ruedas, muletas, bastones, etc. sin embargo, estos dispositivos tienen una movilidad limitada

en terrenos irregulares o en terrenos regulares con obstaculos como pueden ser las escaleras. Lo

que conlleva a buscar soluciones que permitan recrear los movimientos de una manera concisa y

congruente a la marcha bıpeda, ante estas circunstancias. Al intentar parametrizar la marcha se

debe llevar a cabo con una mınima intromision al movimiento, tomando ası relevancia la tecni-

ca de medicion a utilizar, que puede ser directa o por otros medios como la Vision Artificial,

considerando esta ultima la menos invasiva.

1

Page 13: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

1.1. DESCRIPCION DEL PROBLEMA 2

1.1. Descripcion del problema

Al buscar la implementacion de control en un robot o exoesqueleto con la funcion de inter-

actuar de forma segura con usuarios, surge la necesidad de desarrollar un sistema que emule

los movimientos de la marcha y que a su vez sea lo menos invasivo con esta, al momento de

realizar la captura de imagenes y parametrizacion de cada articulacion que intervenga en dicho

movimiento, con el fin de reproducirlo de la manera mas fiel posible; brindando seguridad en un

dispositivo de esta ındole. Ya que se pretende que interactue de manera directa con el usuario,

deben evitarse los movimientos erraticos. Fuera de los lımites fısicos del usuario; pues podrıan

lastimar, agravar o poner en peligro al usuario.

1.2. Objetivos

1.2.1. Objetivo general

Disenar un sistema de Vision Artificial que parametrice la trayectoria de extremidades de

marcha bıpeda humana.

1.2.2. Objetivos especıficos

1. Disenar un sistema para reconocer objetos y estimar su posicion en el espacio.

2. Definir las articulaciones involucradas en la marcha bıpeda humana.

3. Hacer pruebas de parametrizacion de la marcha bıpeda.

4. Acotar el numero mınimo de articulaciones que permitan una marcha bıpeda de aspecto

natural.

1.3. Justificacion

El diseno del sistema permitira obtener mediciones de movimiento de apariencia natural pa-

ra un mejor desempeno de los exoesqueletos basados en este modelo, evitando de esta manera

que el exoesqueleto pueda llegar a provocar lesiones al usuario.

Page 14: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

1.4. LIMITACIONES Y ALCANCE 3

El sistema propuesto servira tambien como base para el calculo de trayectorias de futuros

prototipos de robots y/o exoesqueletos con capacidad de marcha bıpeda.

1.4. Limitaciones y alcance

1.4.1. Limitaciones

1. El sistema funciona con marcadores colocados en las articulaciones del usuario.

2. La deteccion de la marcha bıpeda se realiza en un ambiente con condiciones de iluminacion

controlada.

3. El sistema propuesto unicamente considera la cadera y extremidades inferiores, en marcha

lineal.

1.4.2. Alcances

El presente trabajo servira como plataforma para el estudio de la marcha bıpeda en el ambito

de la robotica y Vision Artificial.

Se realiza un primer prototipo de caminadora electrica para mantener una perspectiva fija

de la captura de video.

Page 15: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Capıtulo 2

Antecedentes

Al buscar trabajos relacionados a la parametrizacion de la marcha bıpeda uno de los rele-

vantes es el elaborado por David A. Winter [3], donde se puede encontrar un sistema de Vision

Artificial basado en camaras detectoras de luz infrarroja para identificar los puntos de interes del

sujeto de estudio por medio de marcadores que reflejan este tipo de luz, como se puede observar

en la Figura 2.1. Dicho trabajo se realizo con el objetivo de llenar el vacıo de informacion en el

area de ciencias del movimiento humano donde la ciencia y la tecnologıa moderna se integran

con la anatomıa, la fisiologıa muscular y la electromiografıa para evaluar y comprender la mar-

cha humana, con enfasis en el movimiento dinamico y los datos captados en vivo. Obteniendo

una relacion congruente entre los datos obtenidos y los esperados. Por lo cual toma relevancia

en el sistema propuesto la forma y metodos utilizados en la deteccion y parametrizacion de la

marcha bıpeda, buscando simplificarlo y adaptarlo a las necesidades presentes.

Un trabajo tomado como referencia a la hora de seleccionar el metodo de deteccion es el ela-

borado por Veronica Lopez Airam [4], donde se desarrolla el prototipo de sistema autonomo

mostrado en la Figura 2.2, capaz de transitar, reconocer y clasificar diferentes objetos por medio

de Vision Artificial, en un entorno controlado (caracterısticas de espacio e iluminacion constan-

tes). La deteccion de objetos se realizo en imagenes obtenidas por una camara web USB de

baja resolucion (352x288), utilizando diversos metodos para el procesamiento de las mismas:

Umbralizacion por histograma, binarizacion de la imagen, mejora de la imagen por metodos en

el dominio espacial y de la frecuencia, deteccion de contornos y calculo de momentos de Hu

4

Page 16: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 2. ANTECEDENTES 5

Figura 2.1: Evaluacion de la marcha de un paciente con paralisis cerebral en un laboratorio

clınico de marcha. Las camaras infrarrojas en el techo y las paredes capturan la luz reflejada

de los marcadores esfericos reflectantes montados en ambos lados del cuerpo. (Foto cortesıa de

The Gait Analysis Laboratory, Connecticut Children’s Medical Center, Hartford, CT.).

invariantes a la traslacion, rotacion y escalamiento. El mayor problema en un sistema como el

propuesto es la baja resolucion de los imagenes obtenidas, ademas de elevar considerablemente

el costo computacional al ejecutar todos los metodos mencionados para camaras de alta defini-

cion, principalmente en el filtrado de imagen y deteccion de objetos por su forma.

Otro trabajo que ayudo en la busqueda de una solucion eficaz para seleccionar una imagen

por filtrado de colores, es el trabajo elaborado por Jorge Paramo Fonseca [5]. En donde se reali-

zan pruebas a diversos metodos existentes para la deteccion de color, ayudando ası a descartar

algunos de ellos, ya que las condiciones y/o resultados no cumplen con el objetivo planteado.

Page 17: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 2. ANTECEDENTES 6

Figura 2.2: Plataforma movil.

Page 18: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Capıtulo 3

Marco teorico

3.1. Caminata o marcha bıpeda

La locomocion humana normal se ha descrito como una serie de movimientos alternantes,

rıtmicos, de las extremidades y del tronco que determinan un desplazamiento hacia delante del

centro de gravedad [6]. Mas especıficamente, la locomocion humana normal puede describirse

enumerando algunas de sus caracterısticas. Aunque existen pequenas diferencias entre la mar-

cha de una persona y otra, estas diferencias caen dentro de pequenos rango de desplazamiento

vertical y horizontal.

La marcha es el medio mecanico de locomocion del ser humano. Varios estudios de la marcha

han sido realizados por numerosos investigadores [7, 8, 9], sin embargo, hay limitada informacion

sobre las caracterısticas del cambio de direccion durante la marcha, que resultan en movimientos

unicos de cadera.

3.1.1. Fisiologıa Articular

Estudio clınico del aparato locomotor orientado al analisis de movimientos basicos como son

los articulares, la postura. considerando por ejemplo los grados de libertad articular, posicion

de eslabones corporales, rangos de movimientos entre otras [10].

7

Page 19: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.1. CAMINATA O MARCHA BIPEDA 8

Figura 3.1: Grafico segun la cronofotografıa A) Fase de Apoyo. B) Fase de balanceo.

3.1.2. Analisis y Dinamica de la Marcha

El ciclo de la marcha comienza cuando el pie contacta con el suelo y termina con el siguiente

contacto con el suelo del mismo pie [11]. Los dos mayores componentes del ciclo de la marcha

son: la fase de apoyo y la fase de balanceo. Una pierna esta en fase de apoyo cuando esta en

contacto con el suelo y esta en fase de balanceo cuando no contacta con el suelo como se puede

ver en la Figura 3.1.

La cantidad relativa de tiempo utilizado en cada fase del ciclo de la marcha, se distribuye de

la siguiente manera (a una velocidad normal), ası como tambien se puede ver en la Figura 3.2:

1. Fase de apoyo: 60% del ciclo.

2. Fase de balanceo: 40% del ciclo.

3. Doble apoyo: 20% del ciclo.

Teniendo en cuenta la duracion de cada una de las fases, se puede mostrar que sumando

los ciclos que se estan produciendo de manera simultanea en ambos miembros inferiores, en

algun momento ambos pies se encuentran en contacto con el suelo. A este nuevo periodo se le

denomina fase de doble apoyo.

Centro de gravedad: Se consigue un mınimo gasto de energıa, cuando el cuerpo se mueve

en lınea recta sin que el centro de gravedad se desvıe.

Page 20: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.1. CAMINATA O MARCHA BIPEDA 9

Figura 3.2: Fases de la caminata.

Desplazamiento vertical: con una rango de movimiento de aproximado de 5 cm.

Desplazamiento horizontal: con una rango aproximado de movimiento de 5 cm.

3.1.3. Medicion de articulaciones

La medicion se define como la comparacion de una magnitud con su unidad de medida, con

el fin de averiguar cuantas veces contiene la primera medida a la segunda medida.

3.1.3.1. Medicion directa

Goniometro: Un goniometro o transportador de angulos es un instrumento de medicion

de angulos (agudos 90o>, llanos 180o u obtusos >180o) con forma de semicırculo o cırculo

graduado (de grado en grado), en 180o o 360o, utilizado para medir o construir angulos. Este

instrumento permite medir angulos entre dos objetos. Hoy dıa se pueden encontrar en distintas

formas y fabricados de distintos materiales, desde acero aleado, hasta de aluminio [12]. Durante

la medicion, un brazo del goniometro esta unido a un segmento de la extremidad, el otro al

segmento de la extremidad adyacente, y el eje del goniometro esta alineado con el eje de la

articulacion.

Ventajas:

Page 21: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.1. CAMINATA O MARCHA BIPEDA 10

Los valores de salida pueden ser inmediatamente registrados o enviados a una computado-

ra.

Simplicidad del sistema.

Desventajas:

Se proporcionan datos angulares relativos, no angulos absolutos, lo que limita severamente

el valor de evaluacion de los datos.

Pueden requerir un tiempo excesivo para ajustarse y alinearse, y la alineacion sobre la

grasa y el tejido muscular puede variar a lo largo del movimiento.

Si hay necesidad de medir varias articulaciones, el movimiento puede ser obstaculizado

por las correas y los cables.

Conlleva un mayor grado de error de medicion por colocacion, si no es realizado por un

experto.

Acelerometro: Es un dispositivo que mide la aceleracion. La mayorıa de los acelerometros

no son mas que transductores de fuerza disenados para medir las fuerzas de reaccion asociadas

con una aceleracion dada.

Ventajas:

Los valores de salida al igual que el goniometro pueden ser inmediatamente registrados o

enviados a una camputadora.

Desventajas:

La aceleracion es relativa a su posicion en el segmento de la extremidad.

El costo de los acelerometros puede ser excesivo si se usa un gran numero; tambien el

costo de la grabadora o del convertidor analogico a digital puede ser alto.

Si se usa un gran numero de ellos, pueden obstaculizar el movimiento.

Son bastante sensibles a los golpes y ruidosos en su funcionamiento.

Page 22: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.2. VISION ARTIFICIAL 11

3.1.3.2. Medicion indirecta o por comparacion

Es la medicion realizada con un instrumento de medida capaz de detectar la variacion exis-

tente entre la magnitud de un patron y la magnitud de la pieza a medir. De acuero a la naturaleza

y complejidad que representa la mayorıa de los movimientos, se facilita el uso de un sistema

controlado por Vision Artificial capaz de capturar de mejor manera el comportamiento de las

articulaciones. Dada la tarea adicional de describir una actividad dinamica, donde el reto mayor

es tener que capturar la mayor cantidad de imagenes a intervalos regulare durante el ciclo de la

marcha.

Ventajas:

Todos los puntos se presentan en un mismo sistema de referencia respecto a la camara.

El sistema no esta limitado en cuanto a la cantidad de marcadores utilizados.

No existe obstruccion al movimiento para la mayorıa de los sistemas que usan marcadores

reflectantes livianos, y el tiempo para colocar los marcadores es mınimo.

Desventajas:

El tiempo de procesamiento puede ser un problema, por lo que se debe considerar el

numero de imagenes por segundo capaz de capturar y la resolucion.

Los marcadores pueden ser obstruidos por otras extremidades como los brazos.

3.1.3.3. Error de colocacion

3.2. Vision Artificial

La Vision Artificial es una rama de la Inteligencia Artificial que tiene por objetivo modelar

los procesos de percepcion visual en los seres vivos y generar programas que permitan simular

estas capacidades visuales en una computadora [13]. La Vision Artificial permite la deteccion

automatica de la estructura y propiedades de objetos en 3 dimensiones a partir de una o varias

imagenes bidimensionales. Las imagenes pueden ser monocromaticas o a color; capturadas por

una o varias camaras, y cada camara puede ser estacionaria o movil. La estructura y propiedades

Page 23: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.2. VISION ARTIFICIAL 12

del mundo tridimensional que se intentan deducir en la Vision Artificial incluyen no solo pro-

piedades geometricas (tamanos, formas, localizacion de objetos, etc.), sino tambien propiedades

del material (sus colores, sus texturas, la composicion, etc.) y la luminosidad u oscuridad de las

superficies [14] en etapas de procesamiento como se muestra en la Figura 3.3.

Figura 3.3: Esquema de procesos en Vision Artificial

Procesos en Vision Artificial:

Adquisicion de imagenes: Etapa inicial donde se busca obtener las imagenes de interes

para el estudio, a traves de camaras.

Procesamiento: Una vez obtenida la imagen, esta pasa por diversos procesos que ayu-

dan a mejorarla, como puede ser reducir el ruido digital o resaltar caracterısticas para una

mejor deteccion de las zonas de interes.

Segmentacion: En esta etapa se busca filtrar de forma optima las zonas con el fin de

encontrar el objeto de interes.

Page 24: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.2. VISION ARTIFICIAL 13

Representacion y descripcion: Una vez filtradas y obtenido los objetos lo siguiente es

realizar una interpretacion de los datos ya sea numericos o por medio de una representa-

cion visual.

Reconocimiento e interpretacion: Esta ultima etapa es una recapitulacion de las

representaciones a traves del tiempo del tiempo en ejecucion donde el sistema muestra

comportamiento del objeto bajo estudio.

Base de conocimiento: De principo a fin es necesario tener referencias validas en cual

se pueda basar el sistema; estas pueden ser de forma variada como una base de datos o

incluso la experiencia misma del investigador.

Utilizando un sistema de Vision Artificial es posible generar una representacion digital de

un objeto del mundo real como se muestra en la Figura 3.9.

3.2.1. Modelos de Color

Debido a las caracterısticas del ojo humano y a la teorıa tricromatica, todos los colores que

podemos reconocer en una imagen son una combinacion de los llamados colores primarios: R

(Red/Rojo), G (Green/Verde) y B (Blue/Azul). El objetivo de un modelo de color es facilitar

la especificacion de los colores de una forma normalizada y aceptada genericamente.

3.2.1.1. Modelo RGB

Espacio de color RGB. Es un modelo de color basado en la sıntesis aditiva, con el que es

posible representar un color mediante la mezcla por adicion de los tres colores de luz primarios.

El modelo de color RGB no define por sı mismo lo que significa exactamente rojo, verde o azul,

por lo que los mismos valores RGB pueden mostrar colores notablemente diferentes en distintos

dispositivos que usen este modelo de color [15]. Aunque utilicen un mismo modelo de color, sus

espacios de color pueden variar considerablemente.

Page 25: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.2. VISION ARTIFICIAL 14

En el modelo RGB cada color aparece en sus componentes espectrales primarias: rojo, verde

y azul. Este modelo esta basado en el sistema de coordenadas cartesianas. El subespacio de

color de interes es el tetraedro mostrado en la Figura 3.4, en el cual los valores RGB estan en

tres vertices; cian, magenta y amarillo se situan en otros tres vertices, el negro corresponde al

origen y el blanco se situa en el vertice mas alejado del origen. En este modelo, la escala de

grises ese extiende desde el negro al blanco a lo largo de la diagonal que une esos dos puntos, y

los colores son puntos dentro del tetraedro definidos por los vectores desde el origen.

Figura 3.4: Modelo de Color RGB.

3.2.1.2. Modelo HSV

Espacio de color HSV. Representacion tridimensional del color basado en los componentes

de tinte, matiz o tonalidad (hue, en ingles), saturacion (saturation) y brillo o valor (value) como

se muestra en la Figura 3.5.

El matiz (Hue) corresponde a un grado de angulo cuyos valores posibles van de 0o a 359o

(aunque para algunas aplicaciones se normalizan del 0 al 100%). Cada valor corresponde a un

color. Ejemplos: 0o es rojo, 60o es amarillo y 120o es verde.

La saturacion (Saturation) corresponde a la distancia al eje oscuridad-luz. Los valores po-

sibles van del 0 al 100%. A este parametro tambien se le suele llamar “pureza” por la analogıa

con la pureza de excitacion y la pureza de color. Cuanto menor sea la saturacion de un color,

mayor tonalidad grisacea habra y mas decolorado estara.

Page 26: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.2. VISION ARTIFICIAL 15

La luminosidad (Brightness, Value) corresponde a la altura en el eje oscuridad-luz. Los valores

posibles van del 0 al 100%.

Figura 3.5: Modelo de Color HSV.

3.2.2. Geometrıa Descriptiva

La geometrıa descriptiva es una ciencia aplicada de caracter multidisciplinario, cuyo objetivo

consiste en resolver graficamente problemas representables, relacionados con las areas afines a

la medicion, el diseno, y la construccion [16]; esta permite localizar, comprender, y analizar

los elementos geometricos situados en el espacio para relacionarlos entre sı; posteriormente,

interpretar y manejar dicha informacion en un medio bidimensional.

3.2.3. Geometrıa Proyectiva

La geometrıa proyectiva se ocupa de resultados geometricos que se pueden enunciar y de-

mostrar sin utilizar angulos ni distancias [17]. Mas precisamente, la geometrıa proyectiva parte

de unas figuras elementales: puntos, rectas, planos, etc., a las que llamamos subespacios y una

relacion entre ellas, la relacion de incidencia, que es el nombre geometrico que designa indistin-

tamente a las expresiones conjuntistas [18]. Una forma de visualizar el calculo que se realiza es

al momento que la luz del objeto llega al ojo del observador, pasando por el plano del dibujo. La

geometrıa proyectiva analiza esto matematicamente, estudiando las propiedades de incidencia,

Page 27: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.2. VISION ARTIFICIAL 16

como se ve en la Figura 3.6.

Figura 3.6: Representacion de la geometrıa proyectiva.

3.2.4. Dilatacion Binaria

La dilatacion binaria se basa en operaciones de teorıa de conjuntos, mas especıficamente en

la combinacion de dos conjuntos usando adicion de vectores de los elementos del conjunto. Fue

utilizada por primera vez por Herman Minkowski, en matematicas es conocida como la suma

de Minkowski.

La dilatacion da como resultado un conjunto de elementos donde al menos algun elemento de

B (Conjunto estructurante Figura 3.7) este en el conjunto A. La dilatacion tambien se interpreta

como el vector maximo del entorno de vecindad definido por el elemento estructurante [20], lo

que permite un crecimiento de regiones y a su ves eliminacion de pequenos espacios aislados,

como se muetra en la Figura 3.8.

Figura 3.7: Tipos de elementos estructurantes.

Page 28: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.3. METODOS MATEMATICOS 17

Figura 3.8: Ejemplo grafico de dilatacion binaria.

3.2.5. Seguimiento de trayectoria

El seguimiento de objetivos se ha convertido en un area de interes en los ultimos anos.

El seguimiento de objetivos puede ampliar la perspectiva y la vista de la camara estatica para

rastrear un objetivo, proporcionar funciones basicas de inteligencia artificial para robots y servir

como plataforma para fines de vigilancia. Un sistema de seguimiento se limita a una vision

monocular que limita gran parte de la informacion que esta disponible en una imagen [21], Que

al combinarse otro, se logra visualizar a un sistema fısico como un sistema datos y con base de

procesamiento realizar una conexion entre lo abstracto y la realidad, como se ve en la Figura

3.9.

3.3. Metodos Matematicos

3.3.1. Ley del coseno

En un triangulo el cuadrado de cada lado es igual a la suma de los cuadrados de los otros

dos menos el doble producto del producto de ambos por el coseno del angulo que forman [22].

a2 = b2 + c2 � 2bc cosA Teorema

a2�b

2�c2

�2bc = cosA Despejando Coseno de A

A = arc cos(a2�b

2�c2

�2bc ) Despejando el angulo A

(3.1)

Este teorema es aplicable a triangulos oblicuangulos, cuando los datos conocidos son:

Dos lados y el angulo entre ellos (L-A-L) .

Los tres lados (L-L-L).

Page 29: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.3. METODOS MATEMATICOS 18

Figura 3.9: Etapas del modelado: A) Uso de marcadores, B) Deteccion de marcadores, C)

Implementacion

3.3.2. Distancia Euclidiana

La distancia Euclidiana se deriva del teorema de Pitagoras que permite el calculo de la

hipotenusa en un triangulo rectangulo como se ve en la ecuacion 3.2:

h =p

(CAdyacente)2 + (COpuesto)2 Teorema de Pitagoras (3.2)

Utilizada esta referencia para la obtencion de la distancia absoluta entre dos puntos, como en

la Figura 3.10 donde se obtiene por medio de la siguiente ecuacion 3.3:

Para los puntos A(x1, y1), B(x2, y2)

d(A,B) =p

(x1 � x2)2 + (y1 � y2)2 Distancia Euclidiana

(3.3)

Page 30: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

3.3. METODOS MATEMATICOS 19

Figura 3.10: Calculo de la distancia entre dos puntos

Page 31: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Capıtulo 4

Metodologıa

4.1. Arquitectura del Sistema Propuesto

Los puntos seleccionados para la colocacion de los marcadores propuestos pueden observarse

en la Figura 4.1 obteniendo de ellos coordenadas (x,y) de las articulaciones para cada imagen

capturada en video a intervalos de 200 ms, con la esquina superior izquierda de la imagen como

su origen. Posteriormente las coordenadas se trasladan a otro sistema coordenado, con origen

en la cadera obteniendo un punto de referencia en el espacio, ası como calcular el angulo de las

articulaciones, como se observa en la Figura 4.2.

Figura 4.1: Posicion de marcadores.

20

Page 32: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.1. ARQUITECTURA DEL SISTEMA PROPUESTO 21

Figura 4.2: Esquema para la obtencion de datos de la marcha bıpeda.

4.1.1. Software

El algoritmo representado en el diagrama de flujo de la Figura 4.3 fue programado en C++

con el uso de la librerıa OpenCV para la captura de video y la estimacion de coordenadas de

cada articulacion, por medio de marcadores captados en las imagenes de tres camara. Siendo

procesada cada camara en forma paralela, buscando agilizar y sincronizar la captura de las

imagenes.

4.1.1.1. Deteccion de marcadores

Una de las tareas fundamentales es realizar una precisa deteccion de marcadores y entre las

diversas formas de llevarlo a cabo esta el detectar marcadores que representen la posicion de

las articulaciones, de forma sencilla como lo es filtrar la imagen por color. En este caso se opto

por el color rojo, que es un color primario en el modelo RGB y menos utilizado en vestimentas

(en comparacion a los demas), ası como tambien en interiores y exteriores ampliando con esto

las opciones en donde llevar acabo la captura de la marcha a parametrizar.

En el modelo RGB, el color rojo esta dado una combinacion de valores de 0 a 255 en las

Page 33: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.1. ARQUITECTURA DEL SISTEMA PROPUESTO 22

Figura 4.3: Diagrama de flujo.

Page 34: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.1. ARQUITECTURA DEL SISTEMA PROPUESTO 23

tres variables, como se puede ver en la Figura 4.4, la cual permite observar que para una com-

pleta seleccion del color rojo es necesario realizar dos operaciones de seleccion al encontrarse los

complementos de dicho color en lados opuestos de la escala, lo que implica realizar la operacion

de seleccion para cada una de estas franjas y posteriormente unir las selecciones obtenidas.

Figura 4.4: Escala de colores para el modelo RGB.

Por lo anterior, se propone invertir los colores de la imagen capturada a fin de reducir los

tiempos de procesamiento. Al realizar esta operacion el color rojo se cambia por el color cian

que se localiza en una unica franja en las escalas de color, facilitando obtener de esta manera

los parametros de seleccion ademas de reducir el tiempo de procesamiento aproximadamente un

9% de lo que implicarıa una doble seleccion y su posterior union de areas.

Una vez capturada e invertida la imagen, se pasa del modelo RGB a el modelo HSV, el cual

beneficia al poder variar de mejor manera el matiz y la saturacion de color, permitiendo rescatar

la mayor cantidad de informacion de color en condiciones poco deseables como lo es una baja

iluminacion o altos contrastes en la imagen capturada; Traduciendose en una seleccion optima

de color.

La seleccion del color nos brinda una imagen binaria de ceros y unos. Donde uno represen-

ta el color detectado y cero la ausencia del mismo. Y debido a la velocidad la deteccion del color

puede arrojar puntos distantes del mismo marcador, por esta razon se procede a unir los puntos

cercanos por medio de la dilatacion binaria, resultando en una forma solida como se muestra en

la Figura 3.8, capaz de calcular su centroide y por lo tanto su posicion de forma mas precisa.

Una forma de filtrar que los puntos encontrados pertenezcan a los marcadores colocados es

por medio del area que ocupa cada uno de estos grupos de puntos, utilizando para ello un area

umbral definida de 15 a 30 pixeles, con lo cual se descartan puntos dispersos no correspondientes

Page 35: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.1. ARQUITECTURA DEL SISTEMA PROPUESTO 24

a los marcadores.

Una vez seleccionados y filtrados los marcadores, se procede a calcular los centroides, preci-

sando con esto las coordenadas, de las formas detectadas.

Una manera de buscar la correspondencia de puntos es por medio de la distancia que exis-

te entre cada uno de ellos, ya que esta no varia durante el movimiento de la persona; dando la

oportunidad de identificar y seguir la trayectoria, por lo que se calcula y compara la distancia

de los puntos con respecto a los punto iniciales con una variacion de 0.5 cm.

Algoritmo 1: Deteccion de marcadores

1 Inversion de los colores de la imagen.

2 Conversion de la imagen del modelo RGB al modelo HSV.

3 Binarizacion de la imagen con la seleccion de color de los marcadores (Cyan: HL=70,

HH=95, SL=90, SH=255, VL=113, VH=255).

4 Se realiza la operacion de dilatacion binaria.

5 Seleccion de las figuras con area umbral superior a 15 px.

6 Obtencion de las coordenadas de los centroides para cada marcador detectado.

7 Seguimiento de los marcadores.

4.1.1.2. Calculo de angulos y punto de referencia

El proceso de calculo de angulos es de importancia al momento de entrenar una red neuronal,

en procesos posteriores al alcance del sistema propuesto. Lo que servira para la reproduccion

del movimiento por medio de un modelo de cinematica inversa.

El primer paso para obtener los angulos, es normalizar los datos utilizando de referencia dos

puntos en la imagen capturada, con una distancia predefinida de 10 cm entre ellos. Convirtiendo

ası las distancias de pixeles a centımetros en las tres camaras.

Una vez normalizadas las distancias, se prosigue a calcular los angulos pertinentes para ca-

da articulacion en ese instante, esto se logra con la utilizacion de la ley de cosenos, a la cual

Page 36: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.1. ARQUITECTURA DEL SISTEMA PROPUESTO 25

Figura 4.5: Angulo de la rodilla.

se le proporciona la distancia entre tres puntos que formen el angulo a calcular; por ejemplo

para la rodilla se toman los puntos de la cadera y tobillo como extremos dejando el punto de la

rodilla como el punto del vertice Como se ve en la Figura 4.5, con esto en cuenta se calcula la

distancia Euclidiana para estos puntos; por ejemplo la distancia de la rodilla a la cadera, de la

rodilla al tobillo y por ultimo del tobillo a la cadera. Estas distancias obtenidas son utilizadas

en la ley de cosenos para triangulos oblicuangulos a fin de obtener el angulo de dicho vertice en

este caso de la articulacion de la rodilla.

Los puntos P1, P4 y P7 de la cadena cinematica son excluidos del calculo de angulos por no

ser necesario, como se observa en la Figura 4.2.

Otro dato adicional para la cinematica inversa es tener un punto de origen y posicion final

de la cadena cinematica, siendo la posicion final el marcador correspondiente a la punta del pıe

y el punto origen la cadera que servirıa como base para el calculo, como se observa en la Figura

4.2.

Algoritmo 2: Calculo de angulos y punto de referencia

1 Obtencion de las coordenadas X y Y para cada marcador detectados en las camaras

laterales.

2 Normalizacion de parametros en las diferentes imagenes obtenidas por las camaras.

3 Obtencion de angulos por ley de cosenos.

4 Obtencion de un punto de referencia.

5 Se almacenan los valores obtenidos en archivo de texto.

Page 37: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.1. ARQUITECTURA DEL SISTEMA PROPUESTO 26

4.1.2. Hardware

Se propone utilizar el siguiente hardware para la deteccion y parametrizacion de marcha

bıpeda, basado en el esquema 4.6.

Figura 4.6: Esquema de captura.

4.1.2.1. Computadora

La captura y procesamiento se llevo en un equipo de computo de las siguientes caracterısticas:

3.60 GHz Intel Core i7-4790 (Haswell) 8GB of 1600 MHz DDR3L RAM Integrated Intel Haswell

Desktop 1 TB Hard Drive ubuntu 14.04 LTS 64-bit

4.1.2.2. Camaras

La adquisicion de imagenes se realizo con tres camaras web marca Logitech modelo C525 HD

(1280 x 720 px) Figura 4.7, utilizadas a 25 fps y conecada por USB. Colocadas a una distancia

de dos metros y medio, distribuidas de la siguiente manera: una en el plano frontal y dos para

captar los planos laterales, como se muestra en la Figura 4.6.

Page 38: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.1. ARQUITECTURA DEL SISTEMA PROPUESTO 27

Figura 4.7: Camara web Logitech C525 HD.

4.1.2.3. Velocımetro

El control y medicion de la velocidad se llevo acabo por medio de un velocımetro inalambrico

marca Specialized modelo 4811-1350 Figura 4.8.

Figura 4.8: Velocımetro inalambrico marca Specialized.

4.1.2.4. Marcadores

El sistema propuesto para la parametrizacion consta de marcadores circulares adhesivos de

19 mm de diametro de un color especıfico, como se muestra en la Figura 4.9 posicionados en las

articulaciones consideradas mas relevantes en la marcha humana.

Figura 4.9: Marcador colocado.

Page 39: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.2. EXPERIMENTOS Y RESULTADOS 28

4.1.2.5. Caminadora electrica

La caminata se realiza sobre una banda electrica como la mostrada en la Figura 4.10. La cual

se mueve a una velocidad promedio de 1.38 m/s, con la finalidad de mantener los marcadores

en un area acotada al campo visual de las camaras.

Figura 4.10: Caminadora electrica.

4.2. Experimentos y Resultados

Al termino de las pruebas del sistema, se obtuvieron imagenes con reconocimiento de 100%

en ambientes controlados e intensidad lumınica uniforme. Siendo afectado en condiciones de poca

luz o altos contrastes de luz ambiental, como se muestra en la Figura 4.11, donde al aplicar los

algoritmos de deteccion se obtuvieron como resultado un reconocimiento de marcadores del 85%

y alcanzando el 93% al compensar la saturacion de color(SL=65) en estas condiciones de alto

contraste.

Ademas de los puntos para las articulaciones, se detectan dos marcadores mas como puntos

para una referencia de distancia separados a 10 cm entre ellos; en marcados por las siluetas

rojas mostradas en la Figura 4.12, utilizada esta rreferencia en la conversion de coordenadas

para obtener distancias normalizadas en las imagenes, dando una estimacion precisa de las

distancias entre capturas.

Page 40: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.2. EXPERIMENTOS Y RESULTADOS 29

Figura 4.11: Tratamiento de la imagen: A) Imagen original con puntos de referencia senalados,

B) Imagen despues de invertir los colores, C) Conversion de RGB a HSV.

El uso de una tercer camara en el plano frontal permitira estimar la marcha respecto a un

punto fijo.

Obtenida una prueba satisfactoria se realizo el experimento en mejores condiciones de ilumina-

cion para la captura. Obteniendo una identificacion y seguimiento completo, como se ve en la

Figura 4.13.

Page 41: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.2. EXPERIMENTOS Y RESULTADOS 30

Figura 4.12: Identificacion de marcadores: a) Imagen binaria con la deteccion del color rojo

y senalando los puntos de referencia, b) Imagen con los centroides de los marcadores y sus

coordenadas 2D.

Page 42: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

4.2. EXPERIMENTOS Y RESULTADOS 31

Figura 4.13: Prueba final.

Page 43: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Capıtulo 5

Conclusiones

El algoritmo cumple con la funcion de detectar los marcadores, considerando la intensidad

de luz ambiental y la velocidad de marcha normal en promedio 1.83 m/s.

Al ser realizadas las pruebas en personas de 23 - 27 anos en buen estado de salud, permite

establecer una referencia intermedia para proximos estudios.

Se consigue realizar un seguimiento de marcadores proporcionando una la trayectoria.

Se realizo el diseno prototipo de una banda caminadora electrica con la funcion de man-

tener el sujeto de prueba dentro de la misma zona de captura, lo que permite ademas

de mantener la perspectiva de la imagen tambien evitar el traslape de marcadores de los

planos laterales y frontales.

5.0.1. Trabajo Futuro

Se buscara optimizar el tiempo de respuesta a fin de poder ser implementado y obtener

la parametrizacion necesaria en tiempo real.

Se propone la implementacion de modelo de cinematica inversa del pie con respecto a la

cadera, como puede ser la implementacion de redes neuronales para obtener el modelo de

la trayectoria.

Se propone la elaboracion de banda electrica de velocidad ajustable.

32

Page 44: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Capıtulo 6

Apendice

// Libreiras Utilizadas

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <iostream>

#include <stdio.h>

#include <stdlib.h>

#include <pthread.h>

#include <math.h>

using namespace std;

using namespace cv;

//************************************** Funcion para capturar video ejecutada en paralelo *********************

struct param{

char *titulo; //Nombre de la camara

char *archivo; //Archivo del video a guardar

int nport; //Numero de puerto de la camara en el PC

};

33

Page 45: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 34

void* captura(void* params)

{

struct param* parametro = (struct param*) params;

bool bandera=true;

char *file=parametro->archivo;

char *titulo =parametro->titulo;

int nport=parametro->nport;

VideoWriter Video;

// Carga el archivo o abre la camara especifica

VideoCapture vc(nport);

vc.set(3,1280);

vc.set(4,720);

// Carga el video *************************************************************************

// verificar si se ha podio cargar el video

if(vc.isOpened())

{

int codec = static_cast<int>(vc.get(CV_CAP_PROP_FOURCC));

Size resolucion = Size((int) vc.get(CV_CAP_PROP_FRAME_WIDTH), // Obtiene la resolucion de la camara

(int) vc.get(CV_CAP_PROP_FRAME_HEIGHT));

double fps = 25; // Asigna los cuadros por segundo

Video.open(file, CV_FOURCC(’M’,’P’,’4’,’2’), fps, resolucion, true);

// Inicia la lectura y el procesamiento ********************************************************

namedWindow( titulo, CV_WINDOW_NORMAL);

Page 46: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 35

wX+=350;

moveWindow(titulo, wX, 10);

// Reproduce el video *****************************************************************

Mat frame;

while (true)

{

// cargar el siguiente cuadro de video

vc >> frame;

// Termina el procesamiento de imagen *************************************************

if(g)

Video << frame;

//Video.write(frame);

imshow(titulo, frame);

waitKey(1);

if(t) break;

}

destroyWindow(titulo);

}

}

//*************************** Funciones para la deteccion de marcadores *********************

// Valores al seleccionar el color Cian en HSV

Page 47: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 36

int HL = 70,HH = 94,

SL = 80,SH = 170,

VL = 165,VH = 240;

#define nH 3 //Define el numero de camaras e hilos a utilizar

struct tPunto{

int x,y;

float d;

};

struct tPlano{

tPunto punto[7];

};

struct tRef{

int x1,y1,

x2,y2;

double d,dPix;

};

struct param{

char *titulo;

char *archivo;

int ncam;

};

VideoCapture vc[nH];

Mat frame[nH];

tRef pRef[nH];

Page 48: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 37

tPlano pMus[3], pCap[nH];

int ref=0;

int mus=0;

int cap=0;

bool bRef=false;

bool bmus=false;

float d0[nH]={0,0,0};

//***************** Calcula la distancia usando los pixeles como unidad *************

double distanciaPix(float x1,float y1,float x2,float y2)

{

return sqrt(pow((x2-x1), 2) +pow((y2-y1), 2) );

}

//***************** Calcula la distancia entre dos puntos convirtiendo el resultado en cm *******

double distancia(float x1,float y1,float x2,float y2, int ncam)

{

return sqrt(pow((x2-x1), 2) +pow((y2-y1), 2) )*10/d0[ncam];

}

//***************** Calcula el angulo entre tres puntos dados *******

double angulo(float x1, float y1,float x2, float y2,float x3, float y3)

{

float ang,a,b,c;

a = distancia(x1,y1,x3,y3);

b = distancia(x2,y2,x3,y3);

c = distancia(x1,y1,x2,y2);

Page 49: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 38

ang = acos((pow(a,2)-pow(b,2)-pow(c,2))/(-2*b*c));

return ang;

}

//***************** Verifica si el punto es un punto de referencia o de articulacion *******

bool puntoR(int n,float x,float y)

{

bool resultado=false;

if(d0!=0)

{

if(distancia(x,y,pRef[n].x1,pRef[n].y1)<1) {resultado=true;}

else { if(distancia(x,y,pRef[n].x2,pRef[n].y2)<1) resultado=true;}

}

return resultado;

}

int umbralArea = 10; //Area minima de un punto para conciderarlo marcador

int inicio=1;

//*************************** Funcion para la deteccion de color ejecutada en paralelo *********************

void* Detecta(void* params)

{

struct param* parametro = (struct param*) params;

Page 50: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 39

bool bandera=true;

char *titulo =parametro->titulo;

int nCam=parametro->ncam;

Mat hsv, finv;

Mat mask=Mat::zeros(frame[nCam].size(), CV_8UC3);

finv = ~frame[nCam];

imshow("Invertido",finv);

namedWindow( "Panel de Control", CV_WINDOW_NORMAL);

cvtColor(finv, hsv, CV_BGR2HSV);

inRange(hsv, Scalar(HL, SL, VL), Scalar(HH, SH, VH), mask);

///*************************************

Mat element = getStructuringElement( MORPH_ELLIPSE,

Size( 5,5 ),

Point( 1, 1 ) );

dilate( mask, mask, element );

// Identifica los circulos como se~nales

vector<vector<Point> > contornos; //Variable para almacenar los contornos encontrados en la imagen.

vector<Vec4i> jerarquia; //Variable auxiliar para organizar los contornos encontrados.

findContours(mask, contornos, jerarquia, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0,0));

//Variables para almacenar los momentos y centros de masa de los contornos en la imagen binarizada.

vector<Moments> mu = vector<Moments>(contornos.size());

vector<Point2f> mc = vector<Point2f>(contornos.size());

Page 51: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 40

Mat drawing = Mat::zeros(frame[nCam].size(), CV_8UC3);

cout <<titulo <<": " << contornos.size()<<endl; // Reporta el numero de objetos encontrados

if(ref)

{

//Obtener los momentos de cada contorno en la imagen binaria para los punto de referencia.

Scalar color = Scalar(0, 255, 0); //Blue=0, Green=0, Red=255.

int i=0;

int n=0;

while(n<2)

{

mu[i] = moments(contornos[i], true);

//Solo desplegar contornos y calcular invariantes de objetos mayores a cierta area

if(mu[i].m00 >= umbralArea)

{

mc[i] = Point2f(mu[i].m10/mu[i].m00, mu[i].m01/mu[i].m00);

circle(drawing, mc[i], 4, color, -1, 8, 0);//Dibujar centros de masa.

if(n==0)

{

pRef[nCam].x1 = mc[i].x;

pRef[nCam].y1 = mc[i].y;

}

else

{

color = Scalar(0, 0, 0);

pRef[nCam].x2 = mc[i].x;

pRef[nCam].y2 = mc[i].y;

pRef[nCam].d = 10;

pRef[nCam].dPix = distanciaPix(pRef[nCam].x1,pRef[nCam].y1,pRef[nCam].x2,pRef[nCam].y2);

}

Page 52: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 41

n++;

}

i++;

}

}

else

{

if(mus)

{

int j=0;

int i=contornos.size()-1;

while(j<=6)

{

//Obtener los momentos de cada contorno en la imagen binaria.

mu[i] = moments(contornos[i], true);

//Solo desplegar contornos y calcular objetos mayores a cierta area

if(mu[i].m00 >= umbralArea)

{

//Obtener los centros de masa.

mc[i] = Point2f(mu[i].m10/mu[i].m00, mu[i].m01/mu[i].m00);

//Asigna el centroide de los puntos de muestra.

if(!(bRef & puntoR(nCam,mc[i].x,mc[i].y)))

{

pMus[nCam].punto[j].x = mc[i].x;

pMus[nCam].punto[j].y = mc[i].y;

pMus[nCam].punto[j].d = 0;

if(j>0)

{

pMus[nCam].punto[j-1].d = distancia(pMus[nCam].punto[j-1].x,pMus[nCam].punto[j-1].y,mc[i].x,mc[i].y);

Page 53: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 42

}

j++;

}

}

i--;

}

}

else

{

int j = 0;

int i = contornos.size()-1;

while((i>=0) & (((!inicio)&(j <= 8))||((inicio)&(j <= 1))))

{

//Obtener los momentos de cada contorno en la imagen binaria.

mu[i] = moments(contornos[i], true);

//Solo desplegar contornos y calcular invariantes de objetos mayores a cierta area

if(mu[i].m00 >= umbralArea)

{

//Obtener los centros de masa.

mc[i] = Point2f(mu[i].m10/mu[i].m00, mu[i].m01/mu[i].m00);

Scalar color;

//Dibujar contornos y centro de masa en cada objeto (contorno) encontrado.

if(bRef & puntoR(nCam,mc[i].x,mc[i].y))

{

color = Scalar(0, 255, 0); //Blue=0, Green=0, Red=255.

}

else

{

Page 54: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

CAPITULO 6. APENDICE 43

color = Scalar(0, 0, 255); //Blue=0, Green=0, Red=255.

// drawContours(drawing, contornos, i, color, 4, 8, jerarquia, 0, Point()); //Dibujar contornos

Point centro(mc[i].x,mc[i].y);

putText(drawing,format("%d",j+1), centro, FONT_HERSHEY_COMPLEX_SMALL, 1.00, CV_RGB(30, 255, 206), 1, CV_AA);

j++;

}

circle(drawing, mc[i], 4, color, -1, 8, 0);//Dibujar centros de masa.

}

i--;

}

}

}

drawing = frame[nCam] + drawing;

imshow(titulo, drawing );

}

Page 55: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

Bibliografıa

[1] Carlos Alberto Guevara Guillen, Juan Antonio Martinez Chavelas, Diseno de Sistema de

Locomocion Bıpeda Basada en Marcha Humana,. Instituto Tecnologico de La Paz, La Paz,

B. C. S., Mexico, 2016.

[2] Alberto Gomez Castanedo, Origen y causas del bipedismo de los homınidos,. Cantabria,

Espana, 2002.

[3] David A Winter, Biomechanics and Motor Control of Human Movement, 4ta ed. Waterloo,

Ontario, Canada, 2009.

[4] Veronica Lopez Airam, Deteccion de trayectorias y reconocimiento de objetos regulares para

el control por Vision Artificial de un robot movil, 2da ed. Mexico, 2007.

[5] Jorge Paramo Fonseca, Revision sobre la deteccion del color rojo en imagenes digitales in-

dependiente de su luminosidad y tonalidad, Bogota, Colombia. 2016.

[6] J.C. Munoz, F. Cesti, Influencia del balanceo de los miembros superiores en la amplitud

vertical de oscilacion del centro de gravedad corporal durante la marcha humana normal,

Buenos Aires, Argentina. 2014.

[7] Christopher L Vaughan, Brian L Davis, Jeremy C O’Connor, Dynamics of human gait,

Cape Town, South Africa. 1999.

[8] Jesus Camara,, Analisis de la marcha: sus fases y variables espacio-temporales, Espana,

2011.

[9] Jose Henry Osorio, Mauricio Hernando Valencia, Bases para el entendimiento del proceso

de la marcha humana, Manizales, Colombia. 2013.

44

Page 56: SISTEMA DE VISIÓN PARA MODELADO DE TRAYECTORIA DE ...

BIBLIOGRAFIA 45

[10] Claudio San Martın Barra, Introduccion fisiologıa articular MMSS, Universidad Pedro de

Valdivia, Santiago de Chile. 2017.

[11] A. I. Kapandji, Fisiologıa Articular, 6ta ed. Tomo 2. Parıs, Francia, 2012.

[12] Vicente Capote Luna; Instrumentos de medicion y verificacion, Num. 12 Andalucıa,

Espana 2011.

[13] Hector Cepeda Juarez, Optimizacion del flujo optico usando programacien genetica multi-

arbol, Ensenada, Baja California, Mexico 2017.

[14] Jorge Estarita, Andres Jimenez, Jaime Brochero, Hugo Escobar, Silvia Moreno, Sistema

de Reconocimiento de objetos en tiempo real, Barranquilla, Colombia 2017.

[15] Jorge Gonzalez, Formacion de colores, (https://sites.google.com/site/660formaciondecolor/home/como-

obtiene-los-colores-un-televisor-o-monitor/modelo-de-color-rgb) Santa Fe, Argentina 2011.

[16] German Valencia Garcıa, Geometrıa descriptiva. Paso a paso, 0.5em minus 0.4emEspana,

2009.

[17] J.-V. Poncelet, Traite des proprietes projectives des figures, 0.5em minus 0.4emParis, Fran-

cia 1994 Reedicion de un original de 1865.

[18] J. M. Aroca, M. J. Fernandez Bermejo, Geometrıa Proyectiva, 0.5em minus 0.4emBarcelo-

na, Espana, 2009.

[19] Robert M. Haralick, Shapiro Linda G., Computer and Robot Vision, 0.5em minus 0.4em-

Boston, USA, 1992.

[20] Carlos Platero, Apuntes de Vision Artificial, 0.5em minus 0.4emMadrid, Espana, 2005.

[21] Lee Chong Wan, Patrick Sebastian, Yap Vooi Voon, Stereo Vision Tracking System, (In-

ternational Conference on Future Computer and Communication) 2009.

[22] Jorge Cardeno Espinosa, Teorema de los senos y de los cosenos, 0.5em minus 0.4emMe-

dellın, Colombia, 2012.