APLICACIÓN MÓVIL PARA EL CONTROL Y MONITORIZACIÓN DE
LA EVOLUCIÓN DE LA DEGENERACIÓN MACULAR ASOCIADA
A LA EDAD (DMAE)
TRABAJO FIN DE GRADO
CURSO 2022-2023
DANIEL CASTRO LÓPEZ, ÍÑIGO ROLANDO GARCÍA, SONIA MARCOS DE
BENITO, VÍCTOR DE LA FUENTE SABALETE
JOAQUÍN RECAS PIORNO, MARÍA GUIJARRO MATA-GARCÍA
GRADO EN INGENIERÍA DE SOFTWARE Y COMPUTADORES
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
APLICACIÓN MÓVIL PARA EL CONTROL Y MONITORIZACIÓN DE
LA EVOLUCIÓN DE LA DEGENERACIÓN MACULAR ASOCIADA
A LA EDAD (DMAE)
TRABAJO DE FIN DE GRADO EN INGENIERÍA DE SOFTWARE Y COMPUTADORES
DANIEL CASTRO LÓPEZ, ÍÑIGO ROLANDO GARCÍA, SONIA MARCOS DE
BENITO, VÍCTOR DE LA FUENTE SABALETE
JOAQUÍN RECAS PIORNO, MARÍA GUIJARRO MATA-GARCÍA
CONVOCATORIA: JUNIO 2023
GRADO EN INGENIERÍA DE SOFTWARE Y COMPUTADORES
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
DÍA DE MES DE AÑO
RESUMEN
Nues o abajo de in de g ado consis e en desa olla una aplicación And oid que
median e la cáma a del elé ono pe mi e en iempo eal, g aba y econoce ges os ealizados
con la mano po el usua io. La aplicación mues a en pan alla la imagen ecogida po la cáma a
y pe mi e modi ica la mane a en la que dicha imagen es p esen ada (modi icando el alo del
zoom, con as e o b illo).
En conc e o, es a aplicación puede esul a ú il pa a pe sonas que padecen DMAE
(Degene ación Macula Asociada a la Edad), una en e medad que p oduce una degene ación
de la mácula. Las pe sonas que padecen DMAE expe iencian como su isión se uel e menos
ní ida y el aumen o de un campo bo oso en el cen o de su isión. De al mane a, les esul a á
complicado in e ac ua de o ma habi ual con un disposi i o mó il.
Es e p oyec o si e como p ueba de concep o de una aplicación de ealidad aumen ada
que pe mi a al usua io in e ac ua con el sis ema median e ges os, sin necesidad de usa o os
mé odos de en ada como puedan se bo ones y/o comandos de oz.
Palab as cla e
And oid, MediaPipe, Py hon, Ja a, cáma a, ges o, econocimien o, IA
ABSTRACT
Ou inal deg ee p ojec consis s o de eloping an And oid applica ion ha uses he
phone's came a o eco d and ecognize hand ges u es made by he use in eal ime. The
applica ion displays on sc een he image collec ed by he came a and allows use s o modi y
he way in which he image is p esen ed (modi ying he zoom, con as o b igh ness).
In pa icula , his applica ion can be use ul o people su e ing om AMD (Age-Rela ed
Macula Degene a ion), a disease ha causes degene a ion o he macula. People su e ing
om AMD expe ience how hei ision becomes less sha p and he inc ease o a blu ed ield in
he cen e o hei ision. As such, hey will ind i di icul o in e ac on a egula basis wi h a
mobile de ice.
This p ojec se es as a p oo o concep o an augmen ed eali y applica ion ha allows
he use o in e ac wi h he sys em h ough ges u es, wi hou he need o use o he inpu
me hods such as bu ons and/o oice commands.
Keywo ds
And oid, MediaPipe, Py hon, Ja a, came a, ges u e, ecogni ion, AI
ÍNDICE DE CONTENIDOS
1 In oducción 1
1.1. Mo i ación 1
1.2. Obje i os 1
1.3. Plan de abajo 3
2. Es ado de la cues ión 10
A Sma Wa ch-based Ges u e Recogni ion Sys em o Assis ing People wi h Visual
Impai men s 11
Lea ning Pla o m o Visually Impai ed Child en h ough A i icial In elligence and Compu e
Vision 11
S a ic Hand Ges u e Recogni ion using an And oid De ice 12
Vision-based Ges u e T acking o Teleope a ing Mobile Manipula o s 13
Sma Con ol o Home Appliances Using Hand Ges u e Recogni ion in an IoT-Enabled
Sys em 14
MediaPipe Hands 15
OpenPose 16
OpenCV 16
Came aX 16
Chacuopy 17
Tenso Flow 17
3. Desa ollo de la aplicación 17
3.1. Ges ión de iesgos 17
3.2. Plan de p uebas 22
3.3. I e aciones del p oyec o 25
3.3.1. Fase de in es igación 25
3.3.2. I e ación 1 29
3.3.3. I e ación 2 37
3.3.4. I e ación 3 39
4. Resul ados 45
4.1. Manual de usua io 45
4.2. Aplicación 50
4.3. Análisis é ico 54
4.3.1. Licencias de so wa e 54
4.3.2. Uso de la aplicación: es icciones y soluciones implemen adas 55
5. Conclusiones y abajo u u o 57
Apéndice A - P uebas p ime a i e ación 84
Apéndice B - P uebas segunda i e ación 88
Apéndice C - P uebas e ce a i e ación 91
ÍNDICE DE FIGURAS
Imagen 1.3.1: C onog ama de la i e ación inicial 6
Imagen 1.3.2: P ime a pa e del c onog ama de la i e ación 1 7
Imagen 1.3.3: Segunda pa e del c onog ama de la i e ación 1 7
Imagen 1.3.4: C onog ama de la i e ación 2 8
Imagen 1.3.5: C onog ama de la i e ación 3 9
Imagen 1.3.6: G á ico de po cen ajes de iempo in e idos en cada ipo de a ea 10
Imagen 3.1.1: Ma iz de p obabilidades y impac o de los iesgos 18
Imagen 3.3.2.1. Lis a de co espondencia en e la e sión And oid y el de API 29
Imagen 3.3.2.2: Pun os de la mano que usa el obje o de la lib e ía MediaPipe 32
Imagen 3.3.2.3: Resul ado isual de la lib e ía MediaPipe con una mano eal 32
Imagen 3.3.3.1: Pan alla inicial de la aplicación con el bo ón de in o mación y pan alla de
manual de usua io 38
Imagen 3.3.4.1: Ges o es ablece 41
Imagen 3.3.4.2: Diálogo pa a pedi los pe misos de la cáma a en la aplicación And oid 42
Imágen 3.3.4.3: Ven ana pa a modi ica los ajus es del sis ema 43
Imagen 3.3.4.4: Diálogo modal con la explicación de acceso a los pe misos 45
Imagen 3.3.4.5: mensaje de no pode edi a el b illo en la aplicación 45
Imagen 4.1.1: Ges o B illo 46
Imagen 4.1.2: Ges o Con as e 47
Imagen 4.1.3: Ges o Zoom 47
Imagen 4.1.4: Ges o Aumen a 48
Imagen 4.1.5: Ges o Disminui 49
Imagen 4.2.1: Ma iz de con usión 52
Imagen 4.2.2 In o me de clasi icación 52
Figu a 4.2.3 : Po cen aje de acie o de los dis in os ges os 54
Figu e 1.3.1: Timeline o he ini ial i e a ion 63
Figu e 1.3.2: I e a ion 1 imeline 64
Figu e 1.3.3: Timeline o i e a ion 2 65
Figu e 1.3.4: Timeline o i e a ion 3 66
Figu e 1.3.5: G aph o pe cen ages o ime spen on each ype o ask 66
ÍNDICE DE TABLAS
Tabla 3.1.1: Iden i icación de los iesgos 19
Tabla 3.1.2: Desc ipción de las soluciones de los iesgos 22
Tabla 3.2.1: Plan de p uebas 25
Tabla 4.2.1: Obje i os uncionales 50
Tabla 4.2.2: Obje i os de accesibilidad 51
Tabla 4.2.3: Obje i os é icos 51
1 In oducción
1.1. Mo i ación
Exis e una amplia a iedad de p og amas y aplicaciones que son capaces de iden i ica
ges os, sin emba go, la mayo ía de es as he amien as ienen como obje i o p incipal
o os ines dis in os al de ayuda a soluciona p oblemas pa a pe sonas con
discapacidad isual o mejo a su calidad de ida.
Conc e amen e, es e p oyec o a en ocado a mejo a el día a día de pe sonas que
padecen DMAE (Degene ación Macula Asociada a la Edad), una en e medad que
p oduce una degene ación de la mácula. En consecuencia, las pe sonas que padecen
DMAE expe iencian como su isión se uel e menos ní ida y el aumen o de un campo
bo oso en el cen o de su isión, po lo que modi ica la o ma en la que en el mundo
puede o o ga les una g an ayuda a la ho a de desen ol e se en sus a eas co idianas.
Además, conside amos que esul a ía sumamen e bene icioso y opo uno el uso de
ges os como medio de in e acción con las ga as, ya que ac ualmen e, las pe sonas con
discapacidad isual suelen depende de disposi i os ex e nos pa a egis a las
acciones que desean ealiza .
Además, es a inicia i a ep esen a un p oyec o al amen e in e esan e, que puede se i
como una excelen e opo unidad pa a demos a el eno me po encial que poseen las
ecnologías basadas en in eligencia a i icial pa a esol e necesidades muy especí icas
y mejo a la calidad de ida de pe sonas con discapacidades.
1.2. Obje i os
Pa a de ini los p incipales obje i os de es e p oyec o, dis ingui emos en e es ipos
di e enciados: obje i os uncionales (que pe mi i án que la aplicación econozca ges os
en el meno iempo posible pa a ealiza la acción asociada al mismo), obje i os de
accesibilidad (que pe mi i án a un usua io de la aplicación in e ac ua con la misma sin
ningún p oblema) y obje i os é icos (que pe mi i án al usua io oma decisiones sob e el
uso de la cáma a den o de la aplicación).
En cuan o a los obje i os uncionales encon amos:
1
● Sis ema empo ado sin necesidad de conexión a in e ne : la aplicación pod á se
usada como una aplicación de las p opias ga as de ealidad aumen ada y el
usua io pod á usa la sin necesidad de es a conec ado a in e ne , ya que se a a
de una aplicación en ocada a mejo a la accesibilidad de las ga as pa a
pe sonas con p oblemas de isión, la conec i idad no debe es ingi su uso.
● El sis ema pod á se usado como aplicación And oid en un sma phone y como
aplicación And oid en las ga as de ealidad aumen ada. En consecuencia,
p ime o se desa olla á la aplicación And oid pa a consegui la de ección de los
ges os y más a de se aslada á la implemen ación a las ga as.
● De ección de ges os: la aplicación de ec a á una se ie de ges os que es a án
asociados a una ca ac e ís ica de la imagen (b illo, zoom y con as e), una ez
de ec ado se pod á aumen a o disminui dicha ca ac e ís ica median e la
ealización de o o ges o.
● Tiempo de espues a: dado que es una aplicación que de ec a ges os y ealiza
acciones en base a es o, el iempo de espues a debe se lo su icien emen e
bajo como pa a supone una mejo a sob e la ealización de es as acciones de
o ma manual median e el uso de un mando. El obje i o de es e p oyec o es
pode de ec a un ges o con un iempo de espues a máximo de es segundos.
Con elación a los obje i os de accesibilidad:
● De ección de ges os: asociado al obje i o uncional pa a de ec a ges os y
ealiza una acción en base al mismo, se indica á de mane a cla a qué ges o ha
sido de ec ado pa a que el usua io sepa qué ca ac e ís ica de la imágen a a se
modi icada. Además, en caso de no pode econoce el ges o se in o ma á al
usua io.
● Manual de usua io: la aplicación con a á con un manual de usua io que pod á
se consul ado en caso de exis i alguna duda con la uncionalidad de la app.
Es e manual se á lo más sencillo posible pa a que una pe sona con el mínimo
conocimien o en Tecnologías de la in o mación y comunicación (TIC) pueda
en ende el uncionamien o de la aplicación.
● Na ado : debido a que la aplicación es á des inada a pe sonas con p oblemas
de isión, se inco po a á un na ado a odas las acciones mencionadas
2
Una ez inalizado el desa ollo se ealiza on las p uebas asociadas y se co igie on los
e o es encon ados
Se puede e un c onog ama de la i e ación 3 en la imagen 1.3.4.
Imagen 1.3.5: C onog ama de la i e ación 3
Po úl imo, se ha c eado un diag ama ci cula que ep esen a el po cen aje de iempo
que se ha dedicado a cada ipo de a ea, es o se e leja en la imágen 1.3.5.
9
Imagen 1.3.6: G á ico de po cen ajes de iempo in e idos en cada ipo de a ea
2. Es ado de la cues ión
Con el in de pode es udia o os abajos elacionados con la ma e ia, se ealizó una
in es igación con dos obje i os p incipales, po un lado, encon a soluciones simila es
pa a pe sonas con p oblemas de isión y, po o o, p oyec os que implemen a an
ecnologías que pudie an se de u ilidad pa a la de ección de ges os.
Es a p ime a ap oximación se ía de u ilidad a la ho a de conc e a los obje i os del
p oyec o, di e enciándose de cualquie o o exis en e, además de conoce las lib e ías
más impo an es en la de ección de ges os y acili a la elección de las más ap opiadas
pa a el p oyec o.
En p ime luga , se explican los p oyec os que se encon a on en elación al obje i o
p incipal de es e p oyec o, ayuda a pe sonas con p oblemas de isión:
10
A Sma Wa ch-based Ges u e Recogni ion Sys em o Assis ing People
wi h Visual Impai men s
Es e p oyec o[4] nace de los incon enien es que su gen cuando una pe sona con
p oblemas de isión debe u iliza las uncionalidades de un sma phone. Ac ualmen e, la
solución alcanzada pa a las pe sonas que no pueden usa la in e acción ác il de es os
sma phones es in e ac ua a a és de comandos de oz, sin emba go, al como se
explica en es e p oyec o es a solución puede no se la más adecuada pa a odos los
en o nos (po ejemplo, en o nos con mucho uido).
Es po es o que en es e p oyec o se plan ea la posibilidad de usa un sma wa ch jun o
con un sma phone (median e conexión Blue oo h), de al mane a que el sma wa ch se
enca gue de de ec a la acción que quie e lle a a cabo el usua io (median e la
ealización de un ges o especí ico) y el sma phone de e ec ua la.
Pa a ealiza la de ección de ges os se u iliza la in o mación ob enida del acele óme o
del sma wa ch, que es pos e io men e en iada al sma phone y es e. Usando la imágen
cap u ada median e dis in as écnicas de clasi icación de Suppo Vec o Machine
(SVM), se á capaz de econoce obje os ele an es como pueden se señales de suelo
mojado o dis in os logos.
El in del p oyec o es simila al obje i o p incipal de nues o abajo, ya que, median e el
econocimien o de ges os, es capaz de ealiza acciones que ayudan a pe sonas con
p oblemas de isión. Sin emba go, en es e p oyec o la de ección de ges os supone el
uso de un disposi i o ha dwa e adicional, lo que equie e una conexión en e los dos
disposi i os que puede llega a causa p oblemas al a a de ealiza un escalado de la
aplicación, además de eque i una lógica mucho más compleja.
Lea ning Pla o m o Visually Impai ed Child en h ough A i icial
In elligence and Compu e Vision
Es e abajo[5] consis e en una aplicación en ocada a niños con p oblemas de isión, su
obje i o p incipal es ayuda les a comp ende los obje os que hay a su al ededo . Pa a
11
ello, es capaz de iden i ica obje os y en unción de los ges os del usua io un na ado
lee el nomb e del obje o seleccionado.
Es e p oyec o hace uso de una Red Con olucional pa a log a la de ección an o de los
ges os del usua io como de los obje os que le odean, ob eniendo un esul ado
sumamen e posi i o.
Es impo an e des aca que se ealiza una di e enciación en e en o nos al ai e lib e y
ce ados, es o se debe a que los en o nos ce ados pueden a a se de un en o no
mucho más complicado pa a la de ección de ges os y obje os, ya que pueden se
luga es de baja luminosidad. Cuando la aplicación se u iliza en ex e io es, el usua io
pod á indica el obje o apun ándole, mien as que, en un en o no in e io , debe á
aga a lo.
Es e p oyec o gua da elación con nues o p oyec o ya que se u iliza pa a acili a el día
a día de pe sonas con p oblemas de isión, el p oyec o se en oca conc e amen e en la
educación de niños con p oblemas de isión. Es in e esan e ya que ayuda a en ende
o o pun o de is a a ene en cuen a pa a nues o p oyec o, la di icul ad de de ec a
ges os median e una cáma a en en o nos de baja luminosidad y la posibilidad de
di e encia los ges os en unción de si el usua io se encuen a en espacio in e io o
ex e io .
Los abajos lis ados a con inuación ienen obje i os écnicos simila es al de es e
p oyec o, pe o no se cen an en sus en a ayuda a pe sonas con p oblemas de isión:
S a ic Hand Ges u e Recogni ion using an And oid De ice
El p ime abajo[6] que se encon ó elacionado con la emá ica p incipal del p oyec o ue
un es udio elacionado con la de ección de ges os es á icos en And oid. En es e
p oyec o se ealiza una p edicción de ges os en base una imagen median e es ases:
p ep ocesamien o, ex acción de ca ac e ís icas y clasi icación.
En la p ime a e apa se ealiza un p ep ocesamien o de la imagen o iginal pa a que al
ealiza el en enamien o y p edicción se minimicen aquellas ca ac e ís icas que no sean
necesa ias (como puede se la iluminación o el ángulo desde el que se ha omado la
12
o o), es o se consigue ans o mando la imagen a una escala de g ises, ealizando una
eo ien ación de la imagen en base a la posición de la mano, co ando odos los
elemen os innecesa ios pa a queda se solo con la imagen de la mano y po úl imo
no malizando los da os de la imagen.
La segunda e apa es á basada en la écnica P incipal Componen Analysis (PCA) que
en base a una imagen ob iene sólo las ca ac e ís icas p incipales y necesa ias pa a el
en enamien o y la clasi icación. Es a écnica hace que las imágenes pesen mucho
menos op imizando así la aplicación And oid.
Po úl imo, se ealiza la clasi icación de la imagen que se había p ocesado en las
e apas an e io es. Pa a es a clasi icación se usa un modelo de clasi icación conocido
como Suppo Vec o Machines (SVM) combinado con el modelo de á boles de decisión.
Usando es os dos mé odos ob iene un po cen aje de p ecisión muy ele ado y consigue
de ec a los 5 ges os con los que se ha en enado el sis ema usando las imágenes
ob enidas con un disposi i o And oid.
Es e p oyec o es muy in e esan e ya que explica de o ma bas an e esumida como se
ha ealizado el p oceso de clasi icación de los ges os median e una imágen, sin
emba go, nues o p oyec o no iene cómo obje i o sólo el econocimien o de ges os,
sino el uso de es e econocimien o como ía pa a ealiza cie as acciones que cambien
las ca ac e ís icas de la cáma a en iempo eal.
Vision-based Ges u e T acking o Teleope a ing Mobile Manipula o s
En es e abajo[7] se ealiza un es udio de la iabilidad de la lib e ía MediaPipe pa a el
econocimien o de ges os. Es a aplicación se cen a en un obje i o muy dis in o al de
nues o p oyec o (ya que a a de pode asocia acciones de un obo a ges os pa a
educi el cos e de eleope ación) pe o aun así si e como ejemplo pa a e el uso de
es a lib e ía.
Pa a asocia los landma ks que usa MediaPipe a un ges o conc e o se u iliza una ed
neu onal básica con es capas. Cabe des aca que es a aplicación iene un endimien o
de 15 o og amas po segundo en la simulación que se ealiza, aunque es iman un
mayo endimien o ue a de la misma, es o en nues o p oyec o debe ene se muy en
cuen a y mejo a se odo lo posible. En e e encia a es e endimien o ambién hay que
13
ene en cuen a que se es á ealizando en un o denado y no en un mó il po lo que
dependiendo de la implemen ación de es a lib e ía pa a dis in os lenguajes se pod án
ene p oblemas u u os en la op imización de la aplicación.
Aun así, pa ece que es a lib e ía da un esul ado muy bueno en la de ección de las
manos y que es un mé odo iable pa a la de ección de ges os po lo que pa a el
desa ollo de nues o p oyec o se es ablece es a lib e ía como un eje undamen al.
Sma Con ol o Home Appliances Using Hand Ges u e Recogni ion in an
IoT-Enabled Sys em
Es e p oyec o[8], al igual que el que se ha explicado an e io men e, ambién usa la
lib e ía MediaPipe pa a la de ección de ges os en una aplicación And oid. Al igual que la
an e io el obje i o de es e p oyec o es conec a una aplicación And oid con un sis ema
enca gado de ealiza cambios en un sis ema, en es e caso, cambia el es ado de unos
leds: si es á encendido o no y el colo asociado, sin emba go, di ie e con el nues o. Aun
así, mues a la conexión en e la aplicación And oid donde se de ec an los ges os
median e el uso de MediaPipe y un ha dwa e enca gado de ealiza las acciones
eque idas median e wi i.
Aunque la idea p incipal de nues a aplicación sea un sis ema empo ado sin ningún ipo
de eque imien o de conexión, es e abajo ap oxima una posible implemen ación que
quizás pod ía ene se en cuen a en caso de que no se puedan cumpli los obje i os
p incipales.
El sis ema es á o mado po 4 módulos:
Los dos p ime os módulos se encuen an en la aplicación Ja a. El p ime o de es os
módulos es el enca gado de cap u a las imágenes de la cáma a y en ia cada
o og ama cap u ado al segundo módulo, es e segundo módulo ecibe y analiza las
imágenes u ilizando la lib e ía Mediapipe con el obje i o de de ec a una mano, en cuyo
caso se en ía la ma iz gene ada con los landma ks de la mano al e ce módulo,
si uado en la aplicación Py hon, en el cual haciendo uso de CNN y la lib e ía Tenso Flow
se asocia la ma iz de los landma ks con el iden i icado de uno de los ges os exis en es
14
o en caso de no supe a el po cen aje de acie o mínimo es ablecido, se asocia al
iden i icado de ges o no de ec ado, es e iden i icado se en ía al cua o y úl imo
módulo, si uado nue amen e en la aplicación Ja a, donde se ealiza la acción asociada
al ges o.
Pa a la implemen ación de es os módulos y en base a lo es udiado en los p oyec os
explicados an e io men e se han decidido usa las siguien es lib e ías:
MediaPipe Hands
MediaPipe hands[9] es una biblio eca de código abie o desa ollada po Google que
u iliza écnicas de ap endizaje au omá ico pa a gene a a pa i de una imagen de una
mano 21 pun os de e e encia (landma ks).
MediaPipe se des aca de o os en oques exis en es ac ualmen e ya que pe mi e un
endimien o a iempo eal en disposi i os mó iles e incluso se adap a a a ias manos de
mane a simul ánea.
MediaPipe u iliza una canalización de Machine Lea ning que se compone po a ios
modelos que abajan conjun amen e:
● Modelo de de ección de manos: Es e modelo se u iliza pa a de ec a la p esencia
de manos en una imagen o ideo. Pa a ello se u iliza una ed neu onal
con olucional (CNN) con la que es posible p edeci la p obabilidad de que haya
una mano en la imagen. El modelo ha sido p e iamen e en enado con un g an
conjun o de imágenes que con ienen manos.
● Modelo de landma ks: Es e modelo se u iliza pa a localiza los pun os cla e de
cada mano en la imagen. El modelo u iliza una ed neu onal con olucional pa a
p edeci la ubicación de 21 pun os cla e en cada mano, conocidos como
landma ks, que se u ilizan pa a as ea y es ima la posición de las manos en
iempo eal.
● Modelo de seguimien o de la mano: Es e modelo se u iliza pa a ealiza un
seguimien o de las manos en iempo eal a medida que se mue en en el ideo.
El modelo u iliza los landma ks de la mano de ec ados po el modelo an e io
como en ada y u iliza écnicas de seguimien o óp ico pa a es ima la posición y
o ien ación de las manos en el cuad o ac ual.
15
● Modelo de il ado de landma ks: Es e modelo se u iliza pa a sua iza y
es abiliza la posición y o ien ación de las manos es imadas po el modelo de
seguimien o de la mano. El modelo u iliza un il o de Kalman pa a es ima la
posición y elocidad de las manos y educi el uido y las luc uaciones en las
es imaciones.
● Fil o de Kalman[10]: es un algo i mo ma emá ico que si e pa a iden i ica un
sis ema dinámico lineal. Al a a se de un algo i mo ecu si o puede u iliza se en
iempo eal u ilizando únicamen e la en ada ac ual, el es ado p e io y su ma iz
de ince idumb e.
Es a lib e ía se usa en a ios de los p oyec os que se han encon ado elacionados con
la de ección de ges os po lo que es la p incipal he amien a que se usa á pa a es o.
OpenPose
Es a lib e ía[11] es pa ecida a MediaPipe pe o es á en ocada p incipalmen e en la
de ección y seguimien o de cue pos en iempo eal. También pe mi e la in eg ación con
dis in as he amien as de p ocesamien o de imágenes po lo que puede esul a muy ú il
en es e p oyec o. Aun así, al no cen a se en la de ección de manos puede ene un
peo endimien o que MediaPipe, se es udia án ambas a la ho a de c ea el p oyec o y
se decidi á cuál es la mejo .
OpenCV
OpenCV[12] es una biblio eca de so wa e lib e y código abie o que se u iliza pa a el
desa ollo de p ocesamien o de imágenes en iempo eal. Pa a ello u iliza algo i mos de
p ocesamien o de imagen y écnicas de ap endizaje au omá ico pa a analiza y p ocesa
imágenes y ideos.
Es a lib e ía se puede usa en dis in os sis emas ope a i os usando a ios lenguajes po
lo que puede se ú il en el p ocesamien o de la imagen en el p oyec o.
Came aX
Came aX[13] pe mi e accede y modi ica ca ac e ís icas a anzadas de la cáma a, como
pueden se el con ol de la exposición o el zoom.
16
Es una lib e ía de And oid que se pod á usa pa a la ges ión de las acciones (zoom,
con as e y b illo) asociadas a cada ges o.
Chacuopy
Chacuopy[14] es una in e az de lenguaje Ja a/Py hon, que pe mi e accede desde Ja a
a Py hon y ice e sa. Pe mi e ealiza una in eg ación comple a median e el sis ema de
compilación G adle es ánda de And oid S udio.
Incluye además una g an a iedad de paque es Py hon de e ce os como OpenCV o
Tenso Flow.
Es a lib e ía nos pe mi i á conec a una aplicación Py hon enca gada de la In eligencia
A i icial pa a la de ección de ges os con la aplicación And oid.
Tenso Flow
Tenso Flow[15] es una lib e ía de código lib e u ilizada en p oyec os de ap endizaje
au omá ico.
Es u ilizada po MediaPipe Hands pa a de ec a y as ea las manos en iempo eal.
3. Desa ollo de la aplicación
A con inuación, se analiza el p oceso de c eación de la aplicación And oid. Explicando
el p oceso p e io de ges ión de iesgos, plani icación del plan de p uebas e
in es igación, además del p oceso ealizado pa a el desa ollo del código de la
aplicación.
3.1. Ges ión de iesgos
Pa a la ges ión de iesgos se ha ealizado un es udio clásico en el desa ollo del
so wa e basándose en una abla de elaciones en e p obabilidad de que ocu a el
iesgo y la g a edad del mismo, al como se puede obse a en la imagen 3.1.1. En es a
abla se an a clasi ica es ipos dis in os de iesgo: al o, medio y bajo.
17
Imagen 3.1.1: Ma iz de p obabilidades y impac o de los iesgos[16]
Además de es a clasi icación en los dis in os ipos de iesgos se ha añadido una
desc ipción del mismo. Aunque en un p incipio se iban a de alla sólo aquellos iesgos
clasi icados como iesgo al o o medio, dado que ob u imos un núme o bas an e limi ado
y es e p oyec o iene una g an impo ancia pa a odos los in eg an es del equipo se
decidie on analiza odos, a ando de soluciona cualquie p oblema que su gie a en el
anscu so del p oyec o. La abla 3.1.1 mues a el es udio de los iesgos asociados a
es e abajo con un iden i icado único y en la abla 3.1.2 asocia cada uno de es os
iesgos a dos ipos de soluciones: una solución pa a p e eni el iesgo y o a pa a ac ua
en caso de que el iesgo se haga ealidad.
ID
DESCRIPCIÓN DEL RIESGO
PROBABILIDAD
IMPACTO
1
Uno de los in eg an es del abajo de in de g ado deja el
p oyec o debido a la imposibilidad pa a compagina lo con o as
asigna u as, haciendo que haya que ol e a plani ica el
p oyec o y da una mayo ca ga de abajo a los demás
in eg an es del g upo.
Excepcional
Mayo
2
Exis e una al a de in o mación con la que documen a se pa a
desa olla las dis in as uncionalidades del p oyec o, haciendo
que las ases de in es igación du en más iempo y
comp ome iendo la en ega del p oyec o en la p ime a
Poco F ecuen e
Ca as ó ico
18
32
G aba pan alla
Pe misos
Al in en a g aba la pan alla de la aplicación se mues a un
mensaje de que no se pe mi e ealiza es a acción.
33
Bloqueo au omá ico
In e acción
El disposi i o no se bloquea de o ma au omá ica, aunque pase el
iempo de inac i idad es ablecido.
34
Ro a pan alla
In e acción
La aplicación unciona de mane a co ec a al o a la pan alla.
35
Manual de usua io
Manual
Al pulsa el bo ón de la pan alla p incipal se edi ige a la pan alla
del manual de usua io donde se mues a el mismo de mane a
co ec a. Si se pulsa sob e el bo ón de a ás se edi igi á de o ma
co ec a a la pan alla p incipal de nue o.
Tabla 3.2.1: Plan de p uebas
Tal como emos en la abla, odas las p uebas se han ealizado de mane a manual y no
se ha usado ningún sis ema pa a au oma iza las. Es o se debe a que oda la
uncionalidad de la aplicación es á asociada a la cáma a y la de ección de ges os po lo
que se ía mucho más complejo y eque i ía mucho más iempo implemen a p uebas
au omá icas que ealiza las de mane a manual.
3.3. I e aciones del p oyec o
3.3.1. Fase de in es igación
En la ase de in es igación nos cen amos en el econocimien o de ges os.
Es u imos in es igando sob e la lib e ía OpenPose, que se puede u iliza pa a el
econocimien o de ges os, además iene o as u ilidades como as ea o de ec a
cue pos humanos a a és de imágenes y ídeos. Es a biblio eca des aca po su
p ecisión a la ho a de ealiza la de ección de manos y los mo imien os que se ealizan.
Además, o ece una al a compa ibilidad con muchos lenguajes de p og amación como
C++, Py hon, Ma lab y Ja a. U iliza algunos ma cos de ap endizaje p o undo como
Tenso Flow lo que pe mi e una in eg ación ácil y ápida en p oyec os que u ilizan es os
ma cos de abajo.
25
El p incipal p oblema de i ado del uso de es a lib e ía es el eque imien o de un al o
cos o compu acional, una g an can idad de ecu sos pa a el p ocesamien o de la
in o mación, po lo que se ía necesa io un ha dwa e muy po en e pa a pode u iliza esa
lib e ía ob eniendo un endimien o adecuado. Teniendo en cuen a que el en o no de
ejecución de nues a aplicación es un sis ema ope a i o And oid, el uso de es a lib e ía
pod ía aca ea p oblemas de endimien o. Además, pa a en ena es a lib e ía se ía
necesa io dispone de una g an can idad de da os de p ueba, lo que conlle a ía un
mayo iempo dedicado al en enamien o. Además, pod ía implica p oblemas en la
de ección de ges os en escena ios de baja iluminación o con un ondo poco dis inguible
de la mano.
Du an e la in es igación de la lib e ía MediaPipe se comp obó su capacidad de análisis
y p ocesamien o de da os mul imedia en casos como la de ección de manos,
seguimien o de ges os y signos ealizados. Es a lib e ía al igual que OpenPose cuen a
con un al o po cen aje de acie o en la de ección de manos y ges os, pe mi e una amplia
pe sonalización y es posible la inclusión de ges os y casos de p ueba p opios. Es
compa ible con lenguajes de p og amación como C++, Py hon, Ja a y Ja asc ip .
También u iliza ma cos de ap endizaje p o undo como Tenso Flow.
Finalmen e se decidió u iliza MediaPipe pa a el desa ollo del p oyec o, ya que además
de aho a una g an can idad de ecu sos con espec o a OpenPose, pe mi ía una
mayo adap abilidad a los equisi os de nues o p oyec o, con aba con una g an
can idad de documen ación y una amplia a iedad de p oyec os que hacían uso de la
misma y además no eque ía de una conexión a In e ne pa a su uso.
T as ealiza una in es igación sob e las di e sas opciones de lenguaje que pe mi ie a
p og ama una in eligencia a i icial, se conside ó Py hon la opción más ac ible, debido
la lexibilidad del lenguaje, acilidad de uso y la disponibilidad de una g an a iedad de
biblio ecas de código abie o exis en es, muchas de ellas elacionadas con el desa ollo
de IAs. Además, es un lenguaje con el que odos los in eg an es del p oyec o es án
amilia izados y po lo que se p e eía un b e e pe iodo de adap ación.
Pa a el desa ollo de la aplicación And oid se op ó po una implemen ación Ja a debido
a su popula idad en el uso de aplicaciones mó iles. O a al e na i a e a hace uso de
26
Ko lin, opción que ue desca ada debido a la nula expe iencia de los miemb os del
p oyec o.
Conside ando que e a necesa io el uso de un na ado enca gado de lee al usua io la
in o mación cla e de la aplicación, se alo a on las di e en es lib e ías capaces de
ealiza es a uncionalidad en And oid. Se concluyó que la opción más iable e a el uso
de Tex ToSpeech, un módulo in eg ado en And oid que pe mi e aplica es a
uncionalidad de mane a muy sencilla.
T as conclui con la ase de in es igación se decidió oma como una de las p incipales
e e encias el ideo[17] c eado po I an Goncha o , en el que se expone de mane a
de allada el p oceso de cons ucción de un sis ema capaz de econoce ges os en
iempo eal a pa i de los o og amas de la cáma a de un o denado en Py hon.
En p ime luga , el ideo abo da una de las p incipales cues iones a a a en nues o
p oyec o, la adquisición de los o og amas. Pa a ello se hace uso de la biblio eca
OpenCV, que o ece un amplio abanico de he amien as pa a el a amien o de
imágenes y ídeos en Py hon. A a és de es a biblio eca, se puede accede a la
cáma a del disposi i o y ob ene los o og amas necesa ios.
Una ez ob enidos los o og amas, es necesa io su p ocesamien o y pos e io ex acción
de la in o mación ele an e pa a el econocimien o de ges os. Pa a ello, se ecu e al
uso de écnicas de ap endizaje au omá ico, en pa icula de ap endizaje p o undo (Deep
Lea ning), haciendo uso de edes neu onales con olucionales(CNN), un ipo especial de
ed neu onal diseñada pa a abaja especí icamen e con imágenes.
La idea cen al del en oque del ap endizaje p o undo u ilizado es la conside ación de
cada o og ama como una ma iz RGB[18], que con iene oda la in o mación necesa ia
pa a la iden i icación de ges os sa is ac o ia. Es a ma iz es analizada median e una ed
neu onal con olucional, dicha ed neu onal con olucional p ocesa la ma iz RGB y
ex ae las ca ac e ís icas más ele an es pa a el econocimien o de ges os.
T as es e en oque inicial el ideo cen a su con enido en la explicación del código[19]
implemen ado o iginalmen e po Kazuhi o Takashi y aducido po Kini i que median e el
uso de MediaPipe ealiza un econocimien o sa is ac o io de ges os es ablecidos po el
27
usua io. Usando la ma iz RGB mencionada an e io men e y MediaPipe se ob end án
los espec i os landma ks asociados a un o og ama que luego se u iliza án en la ed
neu onal con olucional.
Es e código o ece la posibilidad de ajus a el núme o máximo de manos a de ec a en
un mismo o og ama median e el pa áme o "max_num_hands". La con igu ación inicial
se encon aba de inida pa a la de ección de una única mano.
Una de las p incipales en ajas que o ece es e código es la posibilidad de ag ega
ges os pe sonalizados de iniendo ejemplos de en enamien o desde la p opia
aplicación, simplemen e ejecu ando la aplicación en modo “debug” y pulsando en el
eclado el núme o asociado con el ges o a en ena , lo que de i a en el gua dado de los
landma ks asociados al ges o en cues ión.
El ídeo explica ambién de mane a de allada la in eg ación en e las lib e ías de
OpenC y MediaPipe en Py hon pe o en el caso de nues a aplicación no es necesa io,
ya que se u ilizan los o og amas cap u ados desde un disposi i o And oid usando Ja a.
Pa a consegui que la aplicación Py hon econociese los ges os necesa ios se lle ó a
cabo el p oceso de adición de nue os ges os desc i o an e io men e. Pa a ello se u ilizó
la aplicación And oid D oidCam[20], que pe mi e la conexión emo a a una cáma a de un
disposi i o And oid desde un o denado median e el uso de una di ección IP. Usando
es a he amien a, se c ea on ap oximadamen e cien ejemplos de en enamien o po
cada ges o y po cada in eg an e del equipo con el obje i o de ob ene un
econocimien o de ges os lo más p eciso posible. T as es o se combina on odos es os
da os en un mismo iche o cs y se en enó a la IA pa a que ue a capaz de de ec a los
ges os pe sonalizados.
Fue necesa ia la modi icación del código pa a ajus a los po cen ajes de acie o
mínimos pa a conside a un ges o como de ec ado co ec amen e ya que los
po cen ajes p ees ablecidos e an demasiado bajos, lo que conlle aba que el modelo
de ec a a un ges o inco ec amen e de o ma habi ual an es que simplemen e, no
de ec a el ges o. Es o supone un p oblema ya que se de ec a ían ges os no
in encionados po pa e del usua io de o ma ecuen e. Además, se ealizó o a
modi icación sob e el código en el que se ealiza la de ección de manos pa a de ec a la
28
exis encia de una mano sin ningún ges o conocido po la IA, que pos e io men e se á
u ilizado en la ase de desa ollo pa a de ec a si el usua io es á a ando de ealiza un
ges o y no es á siendo de ec ado.
3.3.2. I e ación 1
Comple ado el es udio necesa io pa a el desa ollo de la aplicación se p ocedió a la
c eación de un en p oyec o de And oid S udio eniendo en cuen a las ca ac e ís icas
so wa e que necesi a ía la aplicación en un u u o.
Conside ando que pos e io men e la idea es aslada la aplicación mó il a una
aplicación uncional den o de unas ga as de ealidad aumen ada (que poseen un
so wa e bas an e ac ualizado) po lo que se decidió usa una e sión de api 31 como
mínimo y una e sión de api 33 como a ge , es as e siones de api co esponden a la
e sión 12 y a la e sión Ti amisú espec i amen e, al como se mues a en la imagen
3.3.2.1 ob enida del p opio And oid S udio. Es po es o que es a aplicación pod á usa se
sin p oblemas en cualquie disposi i o And oid ac ual. No se añadió ninguna
con igu ación adicional en un inicio debido a que pod ía de i a en cie as
incompa ibilidades con las di e en es lib e ías a u iliza .
Imagen 3.3.2.1. Lis a de co espondencia en e la e sión And oid y el de API
Una ez se subió el código al ges o de eposi o ios escogido (Gi hub) se ealizó un
es udio de las dis in as lib e ías que pudie an se ú iles pa a ealiza la conexión en e la
aplicación And oid y la aplicación Py hon.
29
T as ba aja las dis in as opciones se concluyó que la lib e ía que más encajaba con los
equisi os de la aplicación e a Chacuopy, ya que el es o de soluciones[21] se en ocaban
p incipalmen e en la in e az g á ica, la cual no es eque ida pa a el desa ollo de
nues a aplicación. Es a lib e ía pe mi e la ins alación de dependencias Py hon desde
un eposi o io p i ado que se añaden pos e io men e en el paque e de aplicación
And oid (APK), además de inclui la posibilidad de ealiza llamadas a código de Py hon
desde código ja a. Pa a su con igu ación ue necesa ia la especi icación de la e sión
de Py hon a usa (3.10) y la u a has a el ejecu able de Py hon. Una ez con igu ada se
c eó un ejemplo simple pa a p oba el co ec o uncionamien o de la lib e ía, que
consis ía en suma dos alo es que ecibía po pa áme os y de ol e el esul ado,
comp obando que se ealiza co ec amen e el en ío y ecepción de da os del código
Py hon. Dado que pa a in oca al código de de ección de ges os en p incipio se usa ía
una implemen ación muy pa ecida (en iando la in o mación necesa ia de cada
o og ama y ob eniendo el ges o asociado) se subió al eposi o io como código de
ejemplo de uso de es a lib e ía.
Una ez ue posible ealiza la llamada a un código Py hon desde la aplicación And oid,
se omó como idea inicial la eu ilización del código Py hon. Pa a ello e a p eciso
ges iona la cáma a desde And oid y se capaces de en ia cada poco iempo la imagen
ob enida.
Debido al conocimien o p e io sob e las lib e ías u ilizadas en el p oyec o Py hon pa a la
ges ión de la cáma a, se a ó busca es as mismas lib e ías en su e sión pa a And oid.
Una de las lib e ías cla e den o del lujo de la aplicación Py hon e a OpenCV, una
lib e ía cuya uncionalidad pe mi ía ealiza la ges ión de la cáma a. Al añadi la al
p oyec o And oid se p ocedió a la c eación de una pan alla simple pa a p oba que el
uso de la cáma a del disposi i o e a el espe ado. Tomando como e e encia la
documen ación o icial de OpenCV pa a And oid se c ea on los mé odos básicos del lujo
de la aplicación y se man u ie on en el p oyec o pa a p oba la conexión en e ambas
aplicaciones.
P e iamen e a comp oba el buen uncionamien o de la aplicación Py hon desde
nues a aplicación se debían ins ala las lib e ías necesa ias pa a la misma, es as se
añaden di ec amen e a la con igu ación del p oyec o And oid al ealiza la compilación
de la aplicación, ya que Chaquopy se enca ga de desca ga las desde su eposi o io
30
p i ado. La lis a de lib e ías que se necesi aban pa a pode ejecu a el código Py hon
(siendo la mayo ía lib e ías des inadas el p ocesamien o de da os y en enamien o de
un modelo de p edicción) es la siguien e: Wheel, OpenCV, Tenso Flow, Sciki -lea n,
Scipy, Ma plo lib, Pandas, Seabo n y MediaPipe. Al a a de ins ala dichas lib e ías
su gió el p ime incon enien e, no exis ía la posibilidad de ins ala MediaPipe como
lib e ía ya que no se encon aba p esen e en la biblio eca p i ada de Chaquopy y
ampoco es aba plan eada una u u a adición, al como se especi ica en una incidencia
del eposi o io de Gi hub o icial de la lib e ía [22].
Es o conlle ó la modi icación de la plani icación o iginal del p oyec o, pues al asumi que
es a solución pod ía unciona , se había planeado que se pod ía comenza a inco po a
la uncionalidad de los dis in os ges os en un co o pe iodo de iempo y inaliza una
p ime a e sión de la aplicación. Es e cambio p o ocó que ue a necesa io plan ea
dis in as soluciones que se discu ie on con los u o es du an e una eunión en la que se
expuso el incon enien e exis en e y se llegó a la conclusión de que la solución más
iable e a añadi la lib e ía de MediaPipe a nues o p oyec o de And oid, pa a p ocesa
la imagen y pasa es e esul ado al código Py hon. Es o eque ía no sólo añadi es a
nue a lib e ía sino que se ía necesa io modi ica el código Py hon pa a que acep a a el
esul ado ob enido po MediaPipe, un obje o que especi ica las coo denadas de los
dis in os pun os de la mano al como se ep esen a en la imagen 3.3.2.2.
Imagen 3.3.2.2: Pun os de la mano que usa el obje o de la lib e ía MediaPipe[23]
Pa a con o ma es a nue a solución en p ime luga se es udia on los dis in os ejemplos
p opo cionados po la p opia lib e ía de MediaPipe, con el obje i o de comp ende el
31
uncionamien o in e no de la lib e ía y el lujo del obje o que con iene las landma ks pa a
adap a lo a nues o p oyec o y ealiza el en ío co ec amen e a la aplicación Py hon.
Du an e dicha búsqueda se analizó un eposi o io de Gi hub con a ios ejemplos de
aplicaciones que u ilizaban MediaPipe en ocada a di e sas á eas, en nues o caso se
in es igó el eposi o io de la aplicación pa a la de ección de manos dónde se
encon aba un p oyec o And oid[24] que pe mi ía p ocesa imágenes es á icas, ídeos e
incluso el p ocesamien o en s eaming conec ado a la p opia cáma a del disposi i o. La
aplicación pe mi e mos a en iempo eal la imagen e lejada en la igu a 3.3.2.3 donde
se dis inguen los dis in os landma ks.
Imagen 3.3.2.3: Resul ado isual de la lib e ía MediaPipe con una mano eal [25]
Se omó es e p oyec o como e e encia y ap o echando que pe mi ía el p ocesamien o
en s eaming se modi icó pa a que, po cada o og ama p ocesado, en caso de habe
de ec ado una mano, se en ia á el obje o que con iene las landma ks pa a se
p ocesado po el código Py hon.
Es e p oceso ue algo complejo ya que exis ían incompa ibilidades en e los obje os de
Ja a y Py hon y los e o es imp esos en la consola no e an lo su icien emen e
desc ip i os como pa a segui la aza de los e o es. Se elimina on a ias unciones del
iche o “app.py” que no se ían necesa ias p o ocado po el uso de la lib e ía MediaPipe
en la aplicación And oid, pe o se p oducía un e o al in en a i e a sob e los pun os del
obje o Ja a que se había ob enido en la aplicación And oid. T as a ias p uebas
32
cambiando los ipos de lis as que con enían es os pun os a lis as i e ables y cambiando
las dis in as unciones que i e an sob e es os pun os se llegó a la conclusión de que los
ipos e an simplemen e incompa ibles y que se debe ían o ma ea an es de pasa los a
la aplicación Py hon.
Pa a ob ene un o ma o uni e sal a odos los lenguajes se decidió con e i el obje o
Ja a con las coo denadas a un obje o JSON. Se usó la lib e ía GSON pa a Ja a que
pe mi e hace es a con e sión de mane a bas an e sencilla. Además, se modi icó el
código de Py hon pa a lee y con e i es e obje o a un obje o Py hon sob e el que ue a
posible i e a . Fue necesa io ambién ealiza cie as modi icaciones en el código ya que
algunos nomb es de a iables no coincidían con los nomb es de inidos en el código
o iginal (po ejemplo, en Ja a los nomb es de las coo denadas enían una ba a baja al
inal: x_, mien as que en el código Py hon no).
Una ez ealizados es os ajus es ue posible ealiza una conexión sa is ac o ia en e las
dos aplicaciones y ob ene en Ja a el iden i icado del ges o a p ocesa .
Dado que en es e pun o ya e a posible ob ene el ges o de ec ado se p ocedió a
in es iga la posibilidad de modi icación de las p opiedades de la cáma a (zoom, b illo y
con as e). La mayo ía de soluciones que se encon a on e e enciaban a un ipo
Came a, el cual en la ac ualidad es á obsole o ya que había sido sus i uido po los ipos
Came a2 y Came aX. T as ealiza una in es igación sob e el ipo usado den o del
ejemplo ob enido del eposi o io de MediaPipe (que había sido modi icado pa a ecibi el
iden i icado de los ges os) se encon ó que u ilizaba una implemen ación del ipo
Came a2 pe o con sus p opios mé odos. Al in en a modi ica los alo es nos dimos
cuen a de que odas es as ca ac e ís icas es aban c eadas de mane a in e na en la
biblio eca y sus alo es e an de solo lec u a, y po lo an o, no edi ables, de al o ma
que no ue posible con inua el desa ollo u ilizando es a solución y e a p eciso busca
una al e na i a dónde e a necesa ia la c eación de la ins ancia de Came a2 o Came aX
pa a ene el con ol sob e la misma y edi a sus pa áme os.
Tal como se ha explicado an e io men e, es e ejemplo con iene es mé odos de
p ocesamien o: imagen, ídeo y s eaming. Dado que el s eaming usaba di ec amen e
una cáma a no edi able se llegó a la conclusión de que se ía necesa io c ea una
ins ancia de la cáma a y añadi un lis ene que se ac i a a cada o og ama pa a en ia la
in o mación de la imagen a la aplicación Py hon. Pa a pode implemen a es a solución
33
se debía p ime o escoge en e las dos opciones disponibles de obje os pa a ges iona
la cáma a: Came a2 y Came aX. T as ealiza una in es igación se llegó a la conclusión
de que la p ime a solución añadía mucha más complejidad en la inicialización pe o
pe mi ía una mayo pe sonalización y la segunda p oponía simpli icación de la p ime a
con algo menos de pe sonalización pe o con las unciones básicas que se ían
su icien es pa a cumpli con los obje i os de la aplicación, po es e mo i o se decidió
usa Came aX.
Came aX iene a ios modos de uncionamien o de los que podemos des aca
p e isualización (p e iew) y análisis (analysis), la p ime a es á diseñada pa a hace
ope aciones muy básicas (como po ejemplo una cap u a de pan alla) y la segunda
añade una capa de complejidad pa a pe mi i o as ope aciones. T as in es iga sob e
es as dos implemen aciones se llegó a la conclusión de que ambas enían
uncionalidades que necesi ábamos: nos in e esaba la simplicidad de p e iew pa a
ob ene un mapa de bi s de la imagen de mane a muy sencilla (median e la unción de
ge Bi map) y las unciones que añadía el modelo de análisis, como la posibilidad de
añadi un lis ene que se ejecu a a cada o og ama pa a pode llama a la aplicación de
Py hon. Es po es o, que se decidió usa una combinación de ambas, usando la
p e isualización pa a mos a la imagen (debido a que al ene una uncionalidad mucho
más básica el núme o de o og amas po segundo e a mucho mayo y lo ácil que e a
ob ene el mapa de bi s) y la de análisis pa a pode c ea un lis ene que se ejecu e a
cada o og ama.
Una ez c eada es a uncionalidad ue añadido en el lis ene la llamada al mé odo de
análisis de imágenes mencionado an e io men e, pasando po pa áme os un mapa de
bi s ep esen ando la imagen ac ual. Se modi ica on cie os pa áme os ya que el
mé odo de p ocesamien o de imágenes además de de ol e el obje o con las
coo denadas de los pun os de la mano ambién c eaba una nue a imagen donde se
mos aban de mane a isual es os pun os, al como se ha explicado an e io men e, es a
uncionalidad no e a necesa ia pa a nues a aplicación. La aplicación Py hon se
compo aba de la misma mane a que con la uncionalidad de s eaming, ecibía el
obje o de coo denadas (que aho a se ob enía del p ocesamien o que MediaPipe ealiza
sob e el mapa de bi s mencionado an e io men e) y de ol ía un iden i icado
ep esen ando el ges o indicado.
34
Imagen 3.3.4.1: Ges o es ablece
De o ma pa alela a es a implemen ación se desa olla on odas las uncionalidades
elacionadas con la é ica de la aplicación: no pe mi i las cap u as ni g aba la aplicación
y explica al en a a la aplicación po p ime a ez pa a qué se necesi an los pe misos
que se solici an.
En p ime luga se deshabili a on la posibilidad de ealiza cap u as y g aba la pan alla
den o de la aplicación, es o se ealizó median e la ac i ación de un lag llamado
FLAG_SECURE en odas las pan allas de la aplicación (la pan alla p incipal donde se
mues a la cáma a y la pan alla de manual de usua io). Una ez añadido es e lag, cada
ez que se in en a á ealiza una cap u a de pan alla, se mos aba un mensaje
explicando al usua io que la aplicación no pe mi e es a ope ación.
T as es o se es udió el mecanismo de solici ud de pe misos ac ual en la aplicación. El
pe miso de acceso a la cáma a es solici ado po de ec o en And oid pa a cualquie
aplicación que haga uso de la misma y dado que se solici a de una mane a cla a, al
como se mues a en la imagen 3.3.4.2 no se añadió ninguna explicación adicional.
41
Imagen 3.3.4.2: Diálogo pa a pedi los pe misos de la cáma a en la aplicación And oid
El caso del pe miso pa a cambia el b illo del disposi i o es algo di e en e, ya que po
de ec o al eque i es e pe miso la aplicación edi ige al usua io a una pes aña de
ajus es en la que es posible concede los pe misos necesa ios a la aplicación. Tal como
mues a la imagen 3.3.4.3, es a pes aña es algo con usa y no explica con cla idad las
acciones que debe oma el usua io: desplaza se has a la aplicación, pulsa sob e ella y
concede le los pe misos.
42
Imagen 3.3.4.3: Ven ana pa a modi ica los ajus es del sis ema
Es po es o que se decidió añadi un diálogo modal con una b e e explicación ace ca de
cómo concede los pe misos a la aplicación y una ez que se hubie a leído y pulsado el
bo ón de con i ma se mos a ía es a pes aña de ajus es pa a que el usua io pudie a
concede los pe misos, es e diálogo se puede e en la imagen 3.3.4.4. Pa a cambia
es a uncionalidad ue necesa io eo ganiza mínimamen e el lujo de la aplicación ya
que en un inicio se daba es e pe miso en la unción inicial (y po an o nada más ab i la
aplicación edi igía al usua io a es a pes aña de ajus es sin llega a e el diálogo
modal). Po es e mo i o el pe miso de la cáma a se man u o en es a unción p incipal,
pe o el de los ajus es ue necesa io modi ica el o den de apa ición pa a que se ejecu e
al ce a el diálogo modal y modi ica algunas unciones del lujo p incipal elacionadas
con el b illo pa a que sólo uncionen en caso que el usua io concedie a dicho pe miso.
Cabe des aca que al a a se de un ajus e que pe mi e modi ica a ios pa áme os del
43
sis ema, se deja a elección del usua io la concesión o no dicho pe miso. En caso de que
decida no concede lo, la aplicación unciona á igual, pe o al econoce el ges o del b illo
en caso de que se quie a aumen a o disminui se mos a á un mensaje a isando al
usua io de que pa a modi ica es e pa áme o es necesa io o o ga pe misos a la
aplicación al como se puede obse a en la imagen 3.3.4.5.
44
Imagen 3.3.4.4: Diálogo modal con la explicación de acceso a los pe misos
Imagen 3.3.4.5: mensaje de no pode edi a el b illo en la aplicación
Po úl imo, se ealiza on las p uebas desc i as en el plan de p uebas y cuyos esul ados
se pod án encon a en el apéndice C al inal del documen o.
4. Resul ados
4.1. Manual de usua io
El obje i o de es e manual es ayuda al usua io a en ende el uncionamien o de la
aplicación median e indicaciones simples acompañadas de imágenes y un b e e
ejemplo de uso.
Los equisi os pa a u iliza la aplicación son:
45
● Disposi i o And oid con And oid Ti amisú o supe io .
● Na ado en español (opcional)*.
● Pe miso a los ajus es (pa a edi a el b illo del disposi i o).
● Acceso a la cáma a** (pa a de ec a los ges os).
* En caso de usa el na ado el usua io escucha á en iempo eal el ges o de ec ado.
** Aunque se enga acceso a la cáma a, po mo i os é icos no se pueden ealiza
cap u as o g abaciones de pan alla.
El uncionamien o de la aplicación consis e en el econocimien o de ges os pa a lle a a
cabo acciones pa a ayuda al usua io.
Se dispone de 3 ges os undamen ales pa a selecciona la ca ac e ís ica a modi ica :
● B illo:
Imagen 4.1.1: Ges o B illo
● Con as e:
46
Imagen 4.1.2: Ges o Con as e
● Zoom:
Imagen 4.1.3: Ges o Zoom
47
T as ealiza cualquie a de es os ges os es posible aumen a o disminui el alo
median e los siguien es ges os:
● Aumen a :
Imagen 4.1.4: Ges o Aumen a
● Disminui :
48
Imagen 4.1.5: Ges o Disminui
Cabe des aca que los ges os se econocen cada dos segundos, po lo que si se
man iene el ges o de aumen a du an e 4 segundos se p oduci á dos eces el aumen o
po ejemplo (ocu e igual pa a odos los ges os disponibles).
Además, exis e un úl imo ges o cuya unción es es ablece los ajus es de b illo, zoom y
con as e a su alo p ede inido:
Imagen 4.1.6: Ges o es ablece
Es impo an e menciona que al ce a la aplicación se gua da la con igu ación ac ual y
se ca ga á au omá icamen e al ol e a usa la aplicación.
A con inuación, se desc ibe un b e e ejemplo de uso:
1. El usua io ab e la aplicación.
2. Realiza el ges o de con as e (el con as e es á seleccionado).
3. Realiza el ges o de aumen a (el con as e aumen a).
4. Realiza el ges o de b illo (el b illo es á seleccionado).
5. Realiza el ges o de disminui (el b illo disminuye).
6. Realiza el ges o de zoom (el zoom es á seleccionado).
49
7. Realiza el ges o de aumen a (el zoom aumen a).
8. Man iene el ges o de aumen a (el zoom aumen a).
9. Realiza el ges o de es ablece (los ni eles de zoom, b illo y con as e se
es ablecen).
En esumen, el usua io ha aumen ado el con as e, ha disminuido el b illo, ha
aumen ado el zoom dos eces y inalmen e ha es ablecido los ajus es.
4.2. Aplicación
Pa a pode e alua los obje i os log ados con el desa ollo de nues a aplicación se
p ocede a analiza cuáles de los obje i os iniciales hemos conseguido cumpli :
Obje i o
Análisis
Sis ema empo ado sin necesidad de conexión
a In e ne
Cumplido, es posible usa la aplicación sin conexión a
In e ne
El sis ema pod á se usado como aplicación
And oid en un sma phone y como aplicación
And oid en las ga as de ealidad aumen ada.
Solo se han ealizado p uebas de la aplicación en un
sma phone
De ección de ges os
Cumplido, la aplicación de ec a los ges os con un
po cen aje de éxi o del 90%
Tiempo de espues a meno a 3 segundos
Cumplido, la aplicación econoce los ges os a iempo
eal, cada 2 segundos puede econoce ges os
nue os
Tabla 4.2.1: Obje i os uncionales
En cuan o a los obje i os de accesibilidad que habíamos p opues o:
Obje i o
Análisis
De ección de ges os
Cumplido, la aplicación indica de mane a cla a el
ges o econocido, median e un ex o en la pan alla o si
no se ha econocido ninguno
50
5. Conclusiones y abajo u u o
Como conclusión del p oyec o ealizado se puede ap ecia que la aplicación inal
cumple con la mayo ía de equisi os p opues os, al como se ha explicado en las
secciones an e io es. Es a aplicación es un p ime paso pa a mejo a la calidad de ida
de los usua ios de ga as de ealidad aumen ada que padecen de dis in os p oblemas de
isión. Aun así, hay cie os concep os que se ía in e esan e implemen a en un u u o
pa a pode mejo a la aplicación: aumen a el b illo median e p ocesamien o de
so wa e, pasa de mane a co ec a la aplicación a unas ga as de ealidad aumen ada,
op imiza los iempos lo máximo posible y een ena odos los ges os.
Ac ualmen e pa a pode cambia al b illo se debe concede a la aplicación pe misos
pa a cambia cualquie ajus e del sis ema, además de que el b illo que se cambia es el
del disposi i o y no el de la imagen que se es á iendo. Aunque se haya in en ado
minimiza es e p oblema explicando de mane a b e e a los usua ios po qué se usa es e
pe miso y pe mi i usa la aplicación, aunque no se conceda, se ía in e esan e busca
una solución al e na i a y debido a que el p oceso de busca una solución so wa e a
es e p oblema es muy cos oso se plan ea como abajo u u o. Median e el
p ocesamien o so wa e de la imagen no se eque i ía concede an os pe misos a la
aplicación, lo que educi ía los p oblemas é icos asociados a la misma e incluso si se
consigue implemen a pod ía se i como base pa a añadi o o ipo de il os a la
imagen, que puedan ayuda a los usua ios de la aplicación.
Tal como se ha explicado en a ias ocasiones en es e documen o, el obje i o inal de
es e p oyec o es el de u iliza la aplicación en unas ga as de ealidad aumen ada. Es e
p oyec o es solo la p ime a ase de es e p oceso ya que simula el uncionamien o ga as
median e un sma phone. Como abajo u u o se plan ea el, usando es a aplicación
como base, p oba su uncionamien o en unas ga as de ealidad aumen ada y cambia
odo lo necesa io pa a op imiza la expe iencia de usua io en es as ga as.
Además, al a a se de una aplicación que es á analizando ges os en iempo de
ejecución, es p obable que añadi nue as uncionalidades a la aplicación conlle e un
de e io o en el endimien o de la misma. Es po es o mismo que se debe ía ealiza una
e isión exhaus i a de la implemen ación, pa a asegu a se de que se ha desa ollado
57
de la o ma más óp ima posible, cen ándose sob e odo en las nue as adiciones y
cómo es as pueden gene a cie as incompa ibilidades con las uncionalidades
p esen adas en es e p oyec o.
Po úl imo, siemp e exis i á un ma gen de e o a la ho a de la de ección de los ges os
ya que se ealiza median e una IA y que depende á del en enamien o ecibido, pa a
p opo ciona mejo es o peo es esul ados. En es e p oyec o el núme o de da os que se
han usado son bas an e limi ados y se han u ilizado p incipalmen e pa a un uso
es ánda de la aplicación, sin emba go, aún se siguen encon ando cie os allos en la
de ección que pod ían se moles os pa a una pe sona que usa á la aplicación
dia iamen e y que se pod án sol en a con un en enamien o con muchos más da os de
p ueba de los que se han usado en el p oyec o.
58
In oduc ion
Mo i a ion
The e is a wide a ie y o p og ams and applica ions ha a e able o iden i y ges u es,
howe e , mos o hese ools ha e as hei main objec i e o he han helping o sol e
p oblems o people wi h isual impai men o imp o e hei quali y o li e.
Speci ically, his p ojec is ocused on imp o ing he daily li e o people su e ing om
AMD (Age-Rela ed Macula Degene a ion), a disease ha causes degene a ion o he
macula. As a esul , people wi h AMD expe ience blu ed ision and an inc ease in a
blu ed ield in he cen e o hei ision, so changing he way hey see he wo ld can
g ea ly help hem in hei daily asks.
In addi ion, we belie e ha he use o ges u es as means o in e ac ion wi h he glasses
would be ex emely bene icial and imely, as cu en ly, isually impai ed people o en ely
on ex e nal de ices o eco d he ac ions hey wish o pe o m.
Fu he mo e, his ini ia i e ep esen s a highly in e es ing p ojec , which can se e as an
excellen oppo uni y o demons a e he eno mous po en ial o a i icial
in elligence-based echnologies o sol e e y speci ic needs and imp o e he quali y o
li e o people wi h disabili ies.
Goals
To de ine he main objec i es o his p ojec , we will dis inguish be ween h ee di e en
ypes: unc ional objec i es ( ha will allow he applica ion o ecognize ges u es in he
sho es possible ime o pe o m he ac ion associa ed wi h i ), accessibili y objec i es
( ha will allow a use o he applica ion o in e ac wi h i wi hou any p oblem) and e hical
objec i es ( ha will allow he use o make decisions abou he use o he came a wi hin
he applica ion).
As o he unc ional objec i es we ind:
59
● Embedded sys em wi hou he need o in e ne connec ion: he applica ion will
be able o be used as an applica ion o he augmen ed eali y glasses hemsel es
and he use will be able o use i wi hou he need o be connec ed o he
in e ne , since i is an applica ion ocused on imp o ing he accessibili y o he
glasses o people wi h ision p oblems, connec i i y should no es ic i s use.
● The sys em will be able o be used as an And oid applica ion on a sma phone
and as an And oid applica ion on he augmen ed eali y glasses. Consequen ly,
i s he And oid applica ion will be de eloped o achie e ges u e de ec ion and
la e he implemen a ion will be mo ed o he glasses.
● Ges u e de ec ion: he applica ion will de ec a se ies o ges u es ha will be
associa ed wi h a cha ac e is ic o he image (b igh ness, zoom and con as ),
once de ec ed i will be possible o inc ease o dec ease ha cha ac e is ic by
pe o ming ano he ges u e.
● Response ime: since i is an applica ion ha de ec s ges u es and pe o ms
ac ions based on his, he esponse ime should be low enough o be an
imp o emen o e pe o ming hese ac ions manually using a emo e con ol. The
objec i e o his p ojec is o be able o de ec a ges u e wi h a maximum
esponse ime o h ee seconds.
In ela ion o he accessibili y objec i es:
● Ges u e de ec ion: associa ed wi h he unc ional objec i e o de ec ges u es and
pe o m an ac ion based on i , i will be clea ly indica ed which ges u e has been
de ec ed so ha he use knows which ea u e o he image is going o be
modi ied. In addi ion, i he ges u e canno be ecognized, he use will be
in o med.
● Use manual: he applica ion will ha e a use manual ha can be consul ed in
case he e is any doub abou he unc ionali y o he app. This manual will be as
simple as possible so ha a pe son wi h minimal knowledge in In o ma ion and
Communica ion Technologies (ICT) can unde s and how he applica ion wo ks.
● Na a o : since he applica ion is in ended o isually impai ed people, a na a o
will be inco po a ed o all he ac ions men ioned abo e (ges u e de ec ion,
e o s...) so ha a blind pe son can use he applica ion wi hou any p oblem.
60
● Tex cus omiza ion: he use will be able o change bo h he ypog aphy and he
on size o be able o use he applica ion wi hou p oblems. These se ings will
be sa ed so ha he nex ime he applica ion is opened hey will be a ailable.
Finally, ega ding he e hical objec i es we ind:
● Rega ding he came a: as he applica ion makes use o he came a i will be
allowed ha he use can e oke he use o he came a a any ime. In addi ion,
sc eensho s will no be allowed wi hin he applica ion i sel and no eco d o he
images used o he de ec ion o ges u es will be sa ed.
● Rega ding he so wa e license: since i is an applica ion o a ce ain complexi y
and wi h a lo o oom o imp o emen , all he so wa e c ea ed will ha e a ee
so wa e license. In his way, his applica ion can be used as a basis o mul iple
applica ions wi h he aim o helping people wi h ision p oblems.
Wo k plan
Fo he de elopmen o he p ojec an i e a i e and inc emen al me hodology has been
used, he p ojec is di ided in o se e al i e a ions o sho wo k cycles, ob aining a
g adual p og ess in he de elopmen . Each i e a ion is di ided in o se e al p ocesses:
planning, design, de elopmen , es ing and deli e y. These i e a ions a e epea ed un il
he p ojec is comple ed.
The ad an ages o using his me hodology a e mainly he acili y o adap he
de elopmen o changing equi emen s as mo e in o ma ion is ob ained, in addi ion o
ha ing con inuous deli e ies allows o de ec and co ec e o s in ea ly s ages o
de elopmen which ansla es in o an imp o emen in he quali y o he inal p oduc .
Rega ding wo k low managemen , Kanban, a isual managemen echnique ha aims o
inc ease he e iciency and quali y o so wa e de elopmen , has been used. Fo his
pu pose, a Kanban boa d is used o ep esen he wo k low and he s a us o he asks.
This boa d is di ided in o se e al columns: "Pending", "In De elopmen ", "Tes ing" and
"Finished".
Pending: The ask is de ined bu has no ye s a ed o be de eloped, he e o e, no eam
membe has ha ask assigned o i .
61
In De elopmen : The ask has been assigned o one o mo e membe s o he
de elopmen eam, he ask will emain a his s age un il i has been comple ed.
Tes ing: Once he ask has been de eloped i mus be es ed be o e being inalized, he
es s mus always be pe o med by a di e en pe son han he one who has pe o med
he de elopmen o he ask, a e he comple ion o he es s he ask can be inalized o ,
in case i has no passed he es s, i mus be sen back o he "In de elopmen " s a us o
p oceed o ix he bugs ound. Fo esea ch asks he es ing phase is no necessa y and
is e mina ed once he necessa y in o ma ion has been ob ained and documen ed.
Comple ed: Upon success ul comple ion o he es ing o a ask, he s a us o he ask
becomes "Comple ed".
To ep esen he s a us o he di e en asks we ha e used he Asana ool, which allows
he c ea ion o i ual Kanban boa ds. Membe s o he de elopmen eam can mo e he
asks be ween he di e en columns as hey p og ess h ough he di e en s ages.
Fo e sion con ol he ool used has been Gi Hub, a main b anch was c ea ed o upload
comple ed asks and addi ionally, i any ask equi ed ce ain es s, a new b anch was
enabled o his.
In he speci ic case o ou p ojec , i has been di ided in o 3 main i e a ions and an ini ial
esea ch phase p io o de elopmen , o none o hem a comple ion o deli e y da e has
been de e mined excep o he las i e a ion ha had o be comple ed wi hin he
deadlines indica ed by he Complu ense Uni e si y o Mad id o he deli e y o he
p ojec .
Du ing he ini ial phase o esea ch phase, he de elopmen eam conduc ed a s udy o
exis ing esea ch o p ojec s on he main subjec o he p ojec , in addi ion o analyzing
he ad an ages and disad an ages o di e en echnologies ha could be used in he
de elopmen o he p ojec . The objec i e o his ini ial phase was o de ine mo e
p ecisely he scope o he p ojec and o sea ch o he mos sui able echnology o mee
he p oposed objec i es.
Ini ial phase:
In he i s ins ance, he de elopmen eam was dedica ed o he s udy o exis ing
p ojec s and applica ions simila o ou p ojec , o his pu pose di e en s udies ela ed
62
o he use o a i icial in elligence o help isually impai ed people we e analyzed. This
s udy helped he de elopmen eam o know he pending esea ch and o be able o
de ine mo e p ecisely he equi emen s o he inal applica ion.
Once he exis ing applica ions we e known and ha ing a pano amic iew o he pending
esea ch, he nex s ep would be o in es iga e he echnologies ha could be used o
he de elopmen o he p ojec .
Finally, ha ing a lis o exis ing echnologies and knowing he p os and cons o each one,
small unc ionali y es s we e pe o med on each o he echnologies o decide which o
hem was he mos op imal o he cha ac e is ics o he p ojec .
A imeline o he ini ial phase can be seen in image 1.3.1.
Figu e 1.3.1: Timeline o he ini ial i e a ion
I e a ion 1:
The i s i e a ion o he p ojec was aimed a inalizing he basic unc ionali ies o he
applica ion, among which we e he de ec ion o he zoom, b igh ness, con as , zoom in
and zoom ou ges u es, and he unc ionali y o hese, modi ying he necessa y came a
pa ame e s.
This i s i e a ion was undoub edly he mos ambi ious o he p ojec , since i no only
equi ed he implemen a ion o he de ec ion o he ges u es desc ibed abo e and he
modi ica ion o he came a con igu a ion, bu also, as i was ou i s con ac wi h he
p ojec , i was necessa y o ca y ou esea ch pa allel o he de elopmen , which mean
ha his i e a ion was also he mos ex ended in ime. Bu i allowed us o es ablish a
solid unc ional base on which o de elop he ollowing i e a ions.
63
To inish he i e a ion, he equi ed es s we e ca ied ou and he e o s ha a ose om
hem we e co ec ed.
A imeline o i e a ion 1 can be seen in image 1.3.2.
Figu e 1.3.2: I e a ion 1 imeline
I e a ion 2:
The goal o his i e a ion was he de elopmen o wo new unc ionali ies, he access o
a use manual om he applica ion i sel and he implemen a ion o he oice na a o .
Bo h unc ionali ies we e implemen ed in pa allel and a unc ionali y o a oid sc een
locking while he applica ion is in use was added. Once inalized a new unc ionali y was
added ha sa ed he cu en con igu a ion when closing he applica ion, his way he
sa ed pa ame e s would be loaded when es a ing he applica ion.
Finally, all he necessa y es s we e pe o med and he esul ing bugs we e ixed.
A imeline o i e a ion 2 can be seen in image 1.3.3.
64
Figu e 1.3.3: Timeline o i e a ion 2
I e a ion 3:
The goal o he hi d and las i e a ion consis ed o implemen ing a se ies o wa nings
and limi a ions wi h he objec i e o gua an eeing he maximum e hical in eg i y o he
applica ion. In addi ion, a new ges u e was included ha allowed ese ing he
con igu a ion o he alues de ined by de aul , adding his new ges u e did no in ol e a
g ea e o since he applica ion had been designed o be scalable in e ms o de ec ing
new ges u es.
Once he de elopmen was inished, he associa ed es s we e ca ied ou and he e o s
ound we e co ec ed.
A imeline o i e a ion 3 can be seen in image 1.3.4.
65
Figu e 1.3.4: Timeline o i e a ion 3
Finally, a pie cha has been c ea ed o ep esen he pe cen age o ime spen on each
ype o ask, as shown in Figu e 1.3.5.
Figu e 1.3.5: G aph o pe cen ages o ime spen on each ype o ask
66
de ellos con sus espec i os casos de aumen a y disminui . Desa olló la uncionalidad
de aumen a y disminui el zoom, g acias a que la lib e ía u ilizada Came aX con aba
con un pa áme o exis en e pa a modi ica lo. Tan solo ue necesa io aumen a o
disminui el alo de ese pa áme o y de ini un alo adecuado pa a el ac o de
aumen o o disminución, de mane a que cada cambio ue a ap eciable, pe o pe mi ie a
ajus a es a con igu ación de la mejo mane a posible.
Realizó las p uebas asociadas a la p ime a i e ación especi icadas en el plan de
p uebas jun o con su compañe o Íñigo Rolando pa a comp oba el co ec o desempeño
de la uncionalidad desa ollada en es a i e ación.
T as acaba de hace las p uebas de la p ime a i e ación se de ec ó que la pan alla del
disposi i o And oid se apagaba debido a la inac i idad. Lo cual no e a un
compo amien o adecuado pa a nues a aplicación ya que es á diseñada pa a que el
usua io no enga que in e eni du an e su uncionamien o ocando el disposi i o.
Po ello e a necesa io con igu a la aplicación pa a que se man u ie a encendida.
And oid con empla el uso de una lag especí ica que conlle a que el disposi i o no se
bloquee, aunque pasen la gos pe iodos de inac i idad. Es a lag se ac i a al inicio del
lujo de la aplicación And oid y pe mi e que siga uncionando con no malidad.
Jun o con su compañe o Íñigo Rolando se enca gó de ealiza las co ecciones
asociadas a las dis in as p uebas que se hicie on en la segunda i e ación, cen ándose
sob e odo en las co ecciones asociadas al na ado (como po ejemplo, añadiendo el
na ado en algunos nue os e o es p opios de es a i e ación).
T as co egi los e o es de la segunda i e ación, se decidió que se ía ú il implemen a
una nue a uncionalidad asociada a un nue o ges o, que se enca gase de einicia la
con igu ación a los alo es p ede e minados de b illo, con as e y zoom. Además eligió
unos alo es p ede e minados que conside ó óp imos. Pa a ello u ilizó el mismo lujo
que el es o de ges os de la aplicación.
Finalmen e, jun o con odos sus compañe os se enca gó de ealiza las p uebas
asociadas a la e ce a y úl ima i e ación pa a comp oba que la aplicación uncionaba de
73
mane a co ec a en base a los equisi os iniciales y se enca gó de pequeños a eglos
que su gie on en base a es as p uebas.
74
Víc o de la Fuen e Sabale e
En p ime luga , ealizó de o ma pa alela una in es igación del es ado del a e jun o con
sus compañe os. Debido a que la emá ica del p oyec o cambió en los p ime os meses,
si ió pa a amilia iza se con las dis in as ecnologías a usa y luego se compa ió dicha
in o mación en euniones pa a p opone dis in as soluciones a los p oblemas que se
plan eaban en un inicio (como e a el p opio ema del p oyec o y las ecnologías que se
debe ían aplica ). T as habe in es igado jun o con odos sus compañe os y decidi usa
una aplicación de py hon ya hecha pa a la de ección de ges o, al como se decidió en
una eunión, ealizó su pa e co espondien e pa a el en enamien o de los dis in os
ges os, usando la aplicación de py hon gene ó un iche o cs con los da os de
en enamien o asociados a cada uno de los ges os (100 casos po cada ges o y po
cada mano) y subió el iche o a un eposi o io común. Una ez subidos odos los
iche os ue el enca gado de uni ica los y en ena la ed neu onal con el iche o
uni icado.
Al comenza la p ime a i e ación, du an e la ins alación de las lib e ías necesa ias pa a
ealiza la compilación del p oyec o, su gió un p oblema, ya que Chaquopy no con aba
con MediaPipe en e sus lib e ías ins alables.
Realizó una in es igación sob e las al e na i as exis en es adap ables al p oyec o que
no equi ie an una emodelación signi ica i a de la es uc u a del p oyec o. Jun o a su
compañe a Sonia Ma cos in es igó una posible o ma de modi ica Chaquopy pa a
pode añadi MediaPipe a sus lib e ías ins alables.
T as conclui la in es igación, jun o con Sonia Ma cos, decidió que la solución más
iable se ía añadi la lib e ía MediaPipe al p oyec o And oid, que se enca ga ía de
p ocesa las imágenes y en ia el lis ado de landma ks a la aplicación Py hon.
Es o a su ez gene ó a ios p oblemas de i ados ya que ue necesa io analiza de
mane a exhaus i a el código de MediaPipe y conoce cómo se gua daban y gene aban
los alo es de los landma ks pa a pode en ia los a la aplicación Py hon.
75
Conocimien o el uncionamien o de MediaPipe pa a la c eación de los landma ks y
con e idos los mismos en un obje o JSON pa a se u ilizados en And oid, implemen ó
con la ayuda de Íñigo Rolando un lis ene en la aplicación And oid que en ía a cada
o og ama es e obje o con la in o mación de la imagen al código de Py hon.
Una ez implemen ado el lis ene se p ocedió a la implemen ación de la uncionalidad
pa a los es ges os exis en es en ese momen o en la aplicación, cada uno de ellos con
sus espec i os casos de aumen a y disminui .
Desa olló la uncionalidad de aumen a y disminui el con as e, g acias a que la lib e ía
u ilizada Came aX con aba con un pa áme o exis en e pa a modi ica el con as e, an
solo ue necesa io aumen a o disminui el alo de ese pa áme o.
También es ableció un alo adecuado pa a el ac o de aumen o o disminución, de
mane a que cada cambio ue a ap eciable, pe o pe mi ie a ajus a es a con igu ación de
una mane a óp ima.
Pa alelamen e a la ealización de las p uebas de la i e ación 1, ealizó jun o con Daniel
Cas o una limpieza y ees uc u ación del código comple o de la aplicación, ya que
quedaban a ias unciones no u ilizadas, o con posibilidad de se op imizadas. También
eliminó y edi ó a ios a chi os del código en py hon con el obje i o de que solamen e
queda án los a chi os es ic amen e elacionados con el econocimien o de ges os y no
con el en enamien o de la in eligencia a i icial, con lo que se consiguió educi el
amaño de la aplicación.
Realizó la c eación de un bo ón si uado en la esquina supe io de echa. El bo ón se
añadió con un ondo anspa en e y con un amaño adecuado pa a que pudie a se is o
con acilidad, pe o lo su icien emen e pequeño pa a no en o pece la isión del usua io.
Al pulsa sob e el bo ón se edi ige al usua io a una pan alla donde se mues a el
manual de usua io c eado po Daniel Cas o, una ez es e es u ie a c eado, leyéndolo
di ec amen e de un a chi o pa a e i a ene que modi ica el código de es a pan alla
an e una posible ac ualización del manual.
Realizó las p uebas asociadas a la i e ación 2 desc i as en el plan de p uebas con la
ayuda de Víc o de la Fuen e.
76
Du an e el desa ollo de la e ce a i e ación de ec ó un p oblema con uso del na ado
en español en caso de que es e no es u ie a ya ins alado en el disposi i o. Po ello,
implemen ó un a iso pa a in o ma al usua io en caso de que en el disposi i o no se
encuen e ins alado el na ado en español de que es a uncionalidad se encon a á
deshabili ada mien as no se ins alen los paque es necesa ios. T as la con i mación de
es e a iso el usua io puede segui usando la aplicación con el es o de uncionalidades
disponibles.
77
Íñigo Rolando Ga cía
En p ime luga , ealizó de o ma pa alela una in es igación del es ado del a e jun o con
sus compañe os. Debido a que la emá ica del p oyec o cambió en los p ime os meses,
si ió pa a amilia iza se con las dis in as ecnologías a usa y luego se compa ió dicha
in o mación en euniones pa a p opone dis in as soluciones a los p oblemas que se
plan eaban en un inicio (como e a el p opio ema del p oyec o y las ecnologías que se
debe ían aplica ). Den o de es a in es igación se cen ó sob e odo en las dis in as
lib e ías exis en es en And oid que se necesi a ían pa a cumpli con éxi o los obje i os
iniciales de la aplicación y que luego se enca ga ía de in eg a en el p opio p oyec o de
And oid. T as habe in es igado jun o con odos sus compañe os y decidi usa una
aplicación de Py hon ya hecha pa a la de ección de ges os, al como se decidió en una
eunión, ealizó su pa e co espondien e pa a el en enamien o de los dis in os ges os,
usando la aplicación de Py hon gene ó un iche o cs con los da os de en enamien o
asociados a cada uno de los ges os (100 casos po cada ges o y po cada mano) y
subió el iche o a un eposi o io común.
T as es o se enca gó de la c eación del p oyec o And oid eniendo en cuen a las
ca ac e ís icas ha dwa e que se habían es ablecido en las euniones an e io es (como
po ejemplo el núme o de e sión de And oid) y de subi es e p oyec o al eposi o io
compa ido en Gi Hub de mane a co ec a (añadiendo odos los iche os cla es de la
aplicación And oid como puede se el iche o build.g adle). Además, se enca gó de
añadi a es a aplicación las lib e ías necesa ias pa a el uncionamien o de la misma:
Chacuopy y MediaPipe. Se enca gó de con igu a es as lib e ías pa a la e sión de
And oid que se es aba usando y en el caso de Chacuopy es udió de mane a exhaus i a
el cómo se con igu aban las dis in as lib e ías de Py hon necesa ias pa a la conexión
en e la aplicación And oid y la aplicación Py hon. Es o supuso un g an p oblema debido
a que Chacuopy usa su p opio eposi o io de lib e ías Py hon y es o gene a cie as
incompa ibilidades en e algunas lib e ías. Al añadi es a lib e ía y en ende bien el
uncionamien o de la misma ambién ealizó una in es igación en cómo in eg a la
aplicación de de ección de ges os en Py hon con la aplicación And oid y jun o con su
compañe o Daniel Cas o se implemen a on dis in as soluciones pa a pode lle a a
78
cabo es a conexión, cen ándose en g an medida en cómo pode pasa el obje o de
landma ks ob enido del p ocesamien o de la imagen de MediaPipe al código de Py hon.
Una ez en endido de mane a co ec a el uncionamien o de es e obje o landma ks y
habiendo implemen ado la o ma co ec a de pasa lo a la IA en Py hon (median e un
o ma o JSON con la lib e ía GSON), implemen ó con la ayuda de Víc o de la Fuen e
un lis ene en la aplicación And oid que en ía a cada o og ama es e obje o con la
in o mación de la imagen al código de Py hon.
Realizó las p uebas asociadas a la p ime a i e ación especi icadas en el plan de
p uebas jun o con su compañe a Sonia Ma cos pa a de e mina el co ec o desempeño
de la uncionalidad desa ollada en es a i e ación.
T as es o se enca gó de la implemen ación del na ado en la aplicación, as una
pequeña in es igación inicial decidió usa Tex ToSpeech, una uncionalidad añadida
di ec amen e en And oid y que pod ía aplica el na ado de mane a muy sencilla. Hizo
que es e na ado se ejecu a á cada ez que se de ec a a un ges o y cada ez que se
ob u ie a un e o en la aplicación.
Median e el uso de Sha edP e e ences añadió la posibilidad de gua da los alo es de
zoom, b illo y con as e que cambia el usua io pa a que cuando la aplicación se ab a de
nue o se puedan ca ga es os alo es. Es o ha ía que la aplicación ue a mucho más
ú il pa a el usua io ya que no end á que cambia las ca ac e ís icas en cada uso.Pa a
ello p ime o in en ó gua da es as p e e encias sólo cuando se ce a a la aplicación pe o
debido a que es o daba cie os p oblemas al ce a se de o ma inespe ada inalmen e
implemen ó es e gua dado cada ez que se cambiaba el alo de uno de los pa áme os
mencionados an e io men e. Además, en caso de habe algún e o al ca ga la
in o mación añadió un alo po de ec o a odas es as ca ac e ís icas.
Jun o con su compañe a Sonia Ma cos se enca gó de ealiza las pequeñas
co ecciones asociadas a las dis in as p uebas que se hicie on en la segunda i e ación,
cen ándose sob e odo en las co ecciones asociadas al na ado (como po ejemplo,
añadiendo el na ado en algunos nue os e o es p opios de es a i e ación).
79
Debido a los obje i os é icos que se p opusie on al inicio del p oyec o se enca gó de
busca una solución a las cap u as de pan alla den o de la aplicación. And oid pe mi e
añadi o elimina pe misos median e la ac i ación de dis in as lags po lo que se
enca gó de añadi es a lag a la aplicación And oid pa a que no se pe mi ie an hace
cap u as ni g aba la pan alla mien as es u ie a es a aplicación en p ime plano.
Po úl imo, jun o con odos sus compañe os se enca gó de ealiza las p uebas
asociadas a la e ce a y úl ima i e ación pa a co obo a que la aplicación uncionaba de
mane a co ec a en base a los equisi os iniciales y se enca gó de pequeños a eglos
que su gie on en base a es as p uebas.
80
BIBLIOGRAFÍA
[1]
¿Po qué u iliza la Me odología kanban?mé odo básico y P incipios Kanban pa a
ayuda le a empeza . Me odología Kanban | Kanban Tool. (n.d.).
h ps://kanban ool.com/es/me odologia-kanban
[2]
Asana. (n.d.-a). Ges iona el T abajo, Los P oyec os y las a eas de u equipo en
línea • asana. Asana. h ps://asana.com/es
[3]
Rolando, I., Cas o, D., de la Fuen e, V., & Ma cos, S. (n.d.).
Inigo olando/TFG_DMAE. Gi Hub. h ps://gi hub.com/InigoRolando/TFG_DMAE
[4]
Po zi, L., Messelodi, S., Modena, C. M., & Ricci, E. (n.d.). A sma wa ch-based
ges u e ecogni ion sys em o assis ing people ...
h ps://www. esea chga e.ne /p o ile/Lo enzo-Po zi/publica ion/262233058_A_sma _
wa ch-based_ges u e_ ecogni ion_sys em_ o _assis ing_people_wi h_ isual_impai
men s/links/54 082a20c 24eb87940ba1e/A-sma -wa ch-based-ges u e- ecogni ion-s
ys em- o -assis ing-people-wi h- isual-impai men s.pd
[5]
Balasu iya, B. K., Lokuhe ia achchi, N. P., Ranasinghe, A. R. M. D. N., Shiwan ha,
K. D. C., & Jayawa dena, C. (n.d.). Lea ning pla o m o isually impai ed child en
h ough a i icial ...
h ps://www. esea chga e.ne /p o ile/Chandimal-Jayawa dena/publica ion/323281352
_Lea ning_pla o m_ o _ isually_impai ed_child en_ h ough_a i icial_in elligence_a
nd_compu e _ ision/links/63681d5c431b1 530076e6c9/Lea ning-pla o m- o - isuall
y-impai ed-child en- h ough-a i icial-in elligence-and-compu e - ision.pd ?o igin=pub
lica ion_de ail
81
[6]
Tejash i J. Joshi, N. Z. Ta apo e, Shi a Kuma , & Vi ek Mohile. (2015, June 21).
S a ic hand ges u e ecogni ion using an And oid de ice - esea chga e.
h ps://www. esea chga e.ne /p o ile/Vi ek-Mohile/publica ion/281415512_S a ic_Ha
nd_Ges u e_Recogni ion_using_an_And oid_De ice/links/619cded1d7d1a 224b1b3
3a4/S a ic-Hand-Ges u e-Recogni ion-using-an-And oid-De ice.pd
[7]
Wang, T., Wan, Y., Pee s, C., Sun, J., & Zhou, C. (2022, July 20). Vision-based
ges u e acking o eleope a ing mobile manipula o s. Whi e Rose Resea ch Online.
h ps://ep in s.whi e ose.ac.uk/189808/
[8]
au ho s, A., Yang, C.-Y., Addi ional in o ma ionFundingThis wo k was suppo ed by
he Minis y o Science and Technology, & Re e encesRelay. [Online] A ailable:
h ps:// u o ials.webduino.io/zh- w/docs/basic/componen / elay.h ml. May 2022a.
[Google Schola ]Alemuda. (2022, May 1). Sma con ol o home appliances using
hand ges u e ecogni ion in an IOT-enabled sys em. Taylo & F ancis.
h ps://www. and online.com/doi/ ull/10.1080/08839514.2023.2176607
[9]
Hand landma ks de ec ion guide. (s. .). Google De elope s.
h ps://de elope s.google.com/MediaPipe/solu ions/ ision/hand_landma ke
[10]
colabo ado es de Wikipedia. (2023). Fil o de Kalman. Wikipedia, la enciclopedia
lib e. h ps://es.wikipedia.o g/wiki/Fil o_de_Kalman
[11]
CMU-Pe cep ual-Compu ing-Lab. (n.d.). CMU-Pe cep ual-Compu ing-Lab/openpose:
OpenPose: Real- ime mul i-pe son keypoin de ec ion lib a y o body, ace, hands,
and oo es ima ion. Gi Hub.
h ps://gi hub.com/CMU-Pe cep ual-Compu ing-Lab/openpose
[12]
OpenCV. (2023, 26 ab il). Home - OpenCV. h ps://openc .o g/
82
17
Disminui b illo más del
mínimo
OK
15
Aumen a con as e más
del máximo
OK
18
Disminui con as e más
del mínimo
OK
19
Res ablece la
con igu ación comple a
OK
20
Res ablece la
con igu ación (zoom)
OK
21
Res ablece la
con igu ación (b illo)
OK
22
Res ablece la
con igu ación (con as e)
OK
23
Gua da con igu ación
an e io ( odos los
pa áme os)
OK
24
Gua da con igu ación
an e io (zoom)
OK
25
Gua da con igu ación
an e io (con as e)
OK
26
Gua da con igu ación
an e io (b illo)
OK
27
Modal pe miso de
cáma a
-
No aplica
28
Modal pe miso b illo
-
No aplica
29
Rechazo pe miso
cáma a
-
No aplica
89
30
Rechazo pe miso b illo
-
No aplica
31
Cap u a de pan alla
-
No aplica
32
G aba pan alla
-
No aplica
33
Bloqueo au omá ico
OK
34
Ro a pan alla
OK
35
Manual de usua io
OK
90
Apéndice C - P uebas e ce a i e ación
ID
NOMBRE DE LA
PRUEBA
Resul ado
Obse aciones
1
Ges o de zoom
OK
2
Ges o de b illo
OK
3
Ges o de con as e
OK
4
Ges o de aumen a
OK
5
Ges o de disminui
OK
6
Ges o de es ablece
OK
7
Aumen a zoom
OK
10
Disminui zoom
OK
8
Aumen a b illo
OK
11
Disminui b illo
OK
9
Aumen a con as e
OK
12
Disminui con as e
OK
13
Aumen a zoom más del
máximo
OK
16
Disminui zoom más del
mínimo
OK
14
Aumen a b illo más del
máximo
OK
17
Disminui b illo más del
mínimo
OK
15
Aumen a con as e más
del máximo
OK
91
18
Disminui con as e más
del mínimo
OK
19
Res ablece la
con igu ación comple a
OK
20
Res ablece la
con igu ación (zoom)
OK
21
Res ablece la
con igu ación (b illo)
OK
22
Res ablece la
con igu ación (con as e)
OK
23
Gua da con igu ación
an e io ( odos los
pa áme os)
OK
24
Gua da con igu ación
an e io (zoom)
OK
25
Gua da con igu ación
an e io (con as e)
OK
26
Gua da con igu ación
an e io (b illo)
OK
27
Modal pe miso de
cáma a
OK
28
Modal pe miso b illo
OK
29
Rechazo pe miso
cáma a
OK
30
Rechazo pe miso b illo
OK
31
Cap u a de pan alla
OK
32
G aba pan alla
OK
92
33
Bloqueo au omá ico
OK
34
Ro a pan alla
OK
35
Manual de usua io
OK
93