scieee Open visual document viewer

Aplicación móvil para el control y monitorización de la evolución de la degeneración macular asociada a la edad (DMAE)

Castro López, Daniel; Rolando García, Íñigo; Marcos de Benito, Sonia; De la Fuente Sabalete, Víctor

Abstract

Nuestro trabajo de fin de grado consiste en desarrollar una aplicación Android que mediante la cámara del teléfono permite en tiempo real, grabar y reconocer gestos realizados con la mano por el usuario. La aplicación muestra en pantalla la imagen recogida por la cámara y permite modificar la manera en la que dicha imagen es presentada (modificando el valor del zoom, contraste o brillo). En concreto, esta aplicación puede resultar útil para personas que padecen DMAE (Degeneración Macular Asociada a la Edad), una enfermedad que produce una degeneración de la mácula. Las personas que padecen DMAE experiencian como su visión se vuelve menos nítida y el aumento de un campo borroso en el centro de su visión. De tal manera, les resultará complicado interactuar de forma habitual con un dispositivo móvil. Este proyecto sirve como prueba de concepto de una aplicación de realidad aumentada que permita al usuario interactuar con el sistema mediante gestos, sin necesidad de usar otros métodos de entrada como puedan ser botones y/o comandos de voz.

Full text

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