sistema de visiÓn para modelado de trayectoria de
TRANSCRIPT
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
Dedicatoria
Dedico este trabajo a mi familia, quienes siempre me han motivado, aconsejado y apoyado
en todo lo que me he propuesto.
i
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
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
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
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
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
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
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
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
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.
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.
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
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.
CAPITULO 2. ANTECEDENTES 6
Figura 2.2: Plataforma movil.
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
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.
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:
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.
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
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.
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.
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.
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,
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.
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).
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)
3.3. METODOS MATEMATICOS 19
Figura 3.10: Calculo de la distancia entre dos puntos
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
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
4.1. ARQUITECTURA DEL SISTEMA PROPUESTO 22
Figura 4.3: Diagrama de flujo.
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
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
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.
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.
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.
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.
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.
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.
4.2. EXPERIMENTOS Y RESULTADOS 31
Figura 4.13: Prueba final.
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
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
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);
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
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];
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);
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;
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());
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);
}
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);
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
{
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 );
}
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
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.