scieee Open visual document viewer

Técnicas de Machine Learning para conducción

Cruz Casado, Álvaro de la; Oreja Valverde, Manuel; Pascua Piña, Alejandro; Robles Palencia, Marcos

Abstract

Este trabajo tiene como objetivo principal trabajar con un tema tan de moda como la inteligencia artificial aplicada a la conducción autónoma. Este campo es bastante amplio y existen multitud de problemas que se pueden resolver a través de la inteligencia artificial. En nuestro caso nos hemos centrado concretamente en el problema del cálculo de la profundidad de los elementos existentes en un campo visual. Para resolver dicho problema existen multitud de arquitecturas de redes neuronales convolucionales, todas ellas basadas en el procesamiento de un par de imágenes en estéreo. De este procesamiento se obtiene un mapa de disparidad que se puede traducir en una imagen que representa la distancia existente del coche a cada uno de los píxeles que la representa. Además, hemos tenido como objetivo utilizar OpenVINO, una herramienta que acelera la velocidad con la que se puede realizar inferencia sobre una red neuronal. Esto implica que todos los problemas que requieran de inteligencia artificial puedan tener una respuesta lo más rápida posible, uno de los puntos más críticos en este campo. Por otro lado, utilizar esta tecnología junto a elementos de cómputo vectorial de bajo consumo energético, como puede ser Movidius, puede ser una buena combinación para solventar el problema del consumo de energía por los elementos de cómputo hardware a bordo del vehículo. Teniendo en cuenta estos objetivos, nuestro trabajo primeramente trata sobre el estado del arte en cuanto a inteligencia artificial y sus subramas, conducción autónoma y tecnologías software que se utilizan para afrontar estos temas. Posteriormente presentamos el trabajo previo con redes neuronales de clasificación como primer acercamiento a nuestro objetivo principal. A continuación se expone el trabajo realizado con redes neuronales para cálculo de disparidad, sus resultados y uso con OpenVINO. Finalmente se realiza una conclusión acerca de los resultados obtenidos.

Full text

Técnicas de Machine Lea ning pa a Conducción Ál a o De La C uz Casado Manuel O eja Val e de Alejand o Pascua Piña Ma cos Robles Palencia Facul ad de In o má ica Depa amen o de A qui ec u a de Compu ado es y Au omá ica Uni e sidad Complu ense de Mad id T abajo Fin de G ado en Ingenie ía In o má ica Cu so 2018-2019 Di ec o es Ca los Ga cía Sánchez Guille mo Bo ella Juan 1 Es e documen o se dis ibuye bajo licencia C ea i e Commons A ibución-NoCome cial 4.0 In e nacional (CC BY-NC 4.0) Us ed es lib e de: - Compa i — copia y edis ibui el ma e ial en cualquie medio o o ma o - Adap a — emezcla , ans o ma y cons ui a pa i del ma e ial La licencian e no puede e oca es as libe ades en an o us ed siga los é minos de la licencia, bajo los siguien es é minos: - A ibución — Us ed debe da c édi o de mane a adecuada, b inda un enlace a la licencia, e indica si se han ealizado cambios. Puede hace lo en cualquie o ma azonable, pe o no de o ma al que sugie a que us ed o su uso ienen el apoyo de la licencian e. - NoCome cial — Us ed no puede hace uso del ma e ial con p opósi os come ciales. - No hay es icciones adicionales — No puede aplica é minos legales ni medidas ecnológicas que es injan legalmen e a o as a hace cualquie uso pe mi ido po la licencia. 2 Ag adecimien os A nues os di ec o es, D . Ca los Ga cía Sánchez y D . Guille mo Bo ella Juan, po deja nos la libe ad de elegi po noso os mismos las di ec ices el p oyec o que que íamos ealiza ,y deposi a la con ianza necesa ia en noso os pa a log a lo, así como su ayuda y dedicación du an e es os meses. 3 ÍNDICE Ag adecimien os 3 ÍNDICE 4 1.- In oducción 6 1.- In oduc ion 7 2.- Lis a de palab as cla e 8 3.- An eceden es 9 3.1.- In eligencia A i icial 9 3.2.- Deep Lea ning 11 3.3.- Redes Neu onales 13 3.4.- Conducción au ónoma 19 4.- Obje i os y plan de abajo 21 4.1.- Familia ización con edes neu onales 24 4.2.- Redes neu onales de clasi icación y de ección de obje os 26 4.2.1.- AlexNe 26 4.2.2.- VGG16 28 4.2.3.- GoogleNe 28 4.2.4.- Incep ion- 3 29 4.2.5.- ResNe 30 4.2.6.- ResNeX 31 4.2.7.- RCNN 31 4.2.8.- YOLO 32 4.2.9.- En enamien o e in e encia con edes neu onales pa a clasi icación de obje os 32 4.3.- KITTI 36 4.4.- Redes de p edicción de dispa idad 38 4.4.1. - SegS e eo y CRL 40 4.4.2.- PSMNe 43 4.4.3.- MADNe 56 4.5.- Po abilidad y op imización del iempo de in e encia 62 4.5.1- PSMNET 64 4.5.2- MADNe 65 4.5.3- SegS e eo y CRL 66 4.5.4- Redes p e-en enadas de clasi icación de obje os 67 4.5.5- Red de clasi icación de obje os con ine- une 71 5.- Conclusiones y abajo u u o 73 4 5.- Conclusions and u u e wo k 75 6.- T abajo ealizado po cada in eg an e del g upo 77 Ál a o de la C uz Casado 77 Manuel O eja Val e de 79 Alejand o Pascua Piña 81 Ma cos Robles Palencia 83 7.- Anexos I Tecnologías u ilizadas 85 7.1.- Py hon 85 7.2.- Ca e 86 7.3.- Ke as 87 7.4.- Py o ch 88 7.5.- Tenso Flow 89 7.6.- Tenso RT 90 7.7.- CUDA 92 7.8.- OpenCL 94 8.- Bibliog a ía 95 5 1.- In oducción Es e abajo iene como obje i o p incipal abaja con un ema an de moda como la in eligencia a i icial aplicada a la conducción au ónoma. Es e campo es bas an e amplio y exis en mul i ud de p oblemas que se pueden esol e a a és de la in eligencia a i icial. En nues o caso nos hemos cen ado conc e amen e en el p oblema del cálculo de la p o undidad de los elemen os exis en es en un campo isual. Pa a esol e dicho p oblema exis en mul i ud de a qui ec u as de edes neu onales con olucionales, odas ellas basadas en el p ocesamien o de un pa de imágenes en es é eo. De es e p ocesamien o se ob iene un mapa de dispa idad que se puede aduci en una imagen que ep esen a la dis ancia exis en e del coche a cada uno de los píxeles que la ep esen a. Además, hemos enido como obje i o u iliza OpenVINO, una he amien a que acele a la elocidad con la que se puede ealiza in e encia sob e una ed neu onal. Es o implica que odos los p oblemas que equie an de in eligencia a i icial puedan ene una espues a lo más ápida posible, uno de los pun os más c í icos en es e campo. Po o o lado, u iliza es a ecnología jun o a elemen os de cómpu o ec o ial de bajo consumo ene gé ico, como puede se Mo idius, puede se una buena combinación pa a sol en a el p oblema del consumo de ene gía po los elemen os de cómpu o ha dwa e a bo do del ehículo. Teniendo en cuen a es os obje i os, nues o abajo p ime amen e a a sob e el es ado del a e en cuan o a in eligencia a i icial y sus sub amas, conducción au ónoma y ecnologías so wa e que se u ilizan pa a a on a es os emas. Pos e io men e p esen amos el abajo p e io con edes neu onales de clasi icación como p ime ace camien o a nues o obje i o p incipal. A con inuación se expone el abajo ealizado con edes neu onales pa a cálculo de dispa idad, sus esul ados y uso con OpenVINO. Finalmen e se ealiza una conclusión ace ca de los esul ados ob enidos. 6 1.- In oduc ion The main objec i e o his wo k is o wo k wi h a opic as ashionable as a i icial in elligence applied o au onomous d i ing. This ield is qui e b oad and he e a e many p oblems ha can be sol ed h ough a i icial in elligence. In ou case, we ha e ocused speci ically on he p oblem o calcula ing he dep h o he exis ing elemen s in a isual ield. To sol e his p oblem he e a e a mul i ude o con olu ional neu al ne wo k a chi ec u es, all based on he p ocessing o a pai o images in s e eo. F om his p ocessing a dispa i y map is ob ained ha can be ansla ed in o an image ha ep esen s he exis ing dis ance o he ca o each o he pixels ha ep esen s i . In addi ion, we ha e aimed o use OpenVINO, a ool ha accele a es he speed wi h which in e ence can be made o e a neu al ne wo k. This implies ha all he p oblems ha equi e a i icial in elligence can ha e an answe as quickly as possible, one o he mos c i ical poin s in his ield. On he o he hand, using his echnology oge he wi h elemen s o ec o compu ing o low ene gy consump ion, such as Mo idius, can be a good combina ion o sol e he p oblem o ene gy consump ion by he elemen s o ha dwa e compu a ion on boa d he ehicle. In conside a ion o hese objec i es, ou wo k will i s alk abou he s a e o he a in e ms o a i icial in elligence and i s sub-b anches, au onomous d i ing and so wa e echnologies ha a e used o ace hese issues. La e we p esen he p e ious wo k wi h neu al ne wo ks o classi ica ion as he i s app oach o ou main objec i e. Nex , he wo k done wi h neu al ne wo ks o dispa i y calcula ion, i s esul s and use wi h OpenVINO is exposed and inally a inal conclusion abou he ob ained esul s is made. 7 2.- Lis a de palab as cla e ● Ap endizaje P o undo - Deep Lea ning ● Red Neu onal - Neu al Ne wo k ● KITTI (Ka ls uhe Ins i u e o Technology and Toyo a Technological Ins i u e) ● Conducción Au ónoma - Au onomous D i ing ● Dispa idad - Dispa i y ● In e encia - In e ence ● OpenVINO - OpenVINO ● Redes Con olucionales - Con olu ional Neu al Ne wo ks ● Clasi icación - Classi ica ion ● Conjun o de Da os de En enamien o - T aining Da ase 8 Imagen de un pe cep ón mul icapa 3 Aun con los pe cep ones mul icapa, e a necesa io i ajus ando los pesos de cada neu ona a mano, lo cual e a bas an e complicado. Pa a pode consegui que los pesos se ue an ajus ando au omá icamen e y la ed ap endie a po sí misma, ue necesa io el empleo del algo i mo de p opagación hacia a ás. En él, cuando se p oduce un allo al en ena (no se ha de ec ado como pe sona a una imagen de una pe sona), e basas en las salidas ob enidas y se ealizan cambios en los pesos de las neu onas de es a capa pa a que se ajus e a la salida espe ada, con es os nue os pesos, se ajus an los pesos de la capa an e io , y así sucesi amen e. Aun con el algo i mo de p opagación hacia a ás, esul aba muy cos oso ajus a los pesos de las neu onas, pues hay que eco da , que los pe cep ones ienen salidas bina ias y se ac i an a pa i de un de e minado umb al, po lo que los posibles alo es de los pesos pa a que se ob enga la salida deseada, son muy nume osos. Es o se acili ó en g an medida g acias a un ipo de neu ona, las neu onas sigmoide, que en ez de p oduci salidas bina ias, p oducían salidas eales en el in e alo [0, 1], siendo menos complejo el i ajus ando los pesos. 3   h ps://es.wikipedia.o g/wiki/A chi o:RedNeu onalA i icial.png 15 G á ica de un sigmoide 4 Las edes neu onales con olucionales son un ipo de edes neu onales empleadas p incipalmen e en la isión po compu ado . Se dis inguen del es o po que son capaces de busca ca ac e ís icas comunes en conjun os pequeños de en adas, lo que pe mi e en e o as cosas, educi el núme o de neu onas necesa ias. En las edes neu onales con olucionales hay dis in as capas: ● Capa de con olución: Se enca ga de ex ae ca ac e ís icas de la imagen, espe a la elación espacial en e los píxeles. Pa a ello se aplica un il o sob e un conjun o de píxeles y se ex aen las ca ac e ís icas. 4   h ps://es.wikipedia.o g/wiki/A chi o:Funci%C3%B3n_sigmoide_01.s g 16 Imagen capa de con olución 5 ● Rec i icado (ReLU): Es a capa, que se suele coloca después de las capas de con oluciones, si e pa a ec i ica algunos alo es, se suele emplea la unción (x) = max (0, x), que sus i uye los alo es nega i os po ce o. Con ello se consigue mejo a el uncionamien o de la ed. Aunque és a es la unción ReLU más empleada po se la más ápida, se pueden emplea o as unciones como la angen e hipe bólica o la sigmoide. ● Capa de educción: En es e paso se educe el núme o de “píxeles”. Se puede hace educción de a ias mane as, como el máximo, la media, suma… Siendo el máximo el más empleado, ya que ha demos ado se el que mejo endimien o iene. La educción empleando el máximo consis e en di idi la imagen en secciones más pequeñas, y queda se con el elemen o máximo (se ha ía de igual modo si se emplean los mé odos de la media o suma). 5   h ps://commons.wikimedia.o g/wiki/File:3D_Con olu ion_Anima ion.gi 17 Imagen capa de educción empleando el máximo 6 ● Capa de clasi icación: En es e paso se emplea una comple amen e conec ada, es deci odas las salidas de la capa an e io se conec an con odas las neu onas de es a capa. En es a capa hab á una neu ona po cada posible clase que pueda iden i ica la ed. 6 h ps://commons.wikimedia.o g/wiki/File:Max_pooling.png 18 3.4.- Conducción au ónoma La conducción au ónoma es un ema muy en auge ac ualmen e. Es di ícil no habe oído habla de coches au ónomos, aquellos que son capaces de conduci se sin in e acción humana. Pa a consegui es o, hacen al a di e en es senso es y he amien as capaces de p ocesa oda esa in o mación. Cabe des aca que los ehículos a con ol emo o, no se conside an au ónomos, ya que necesi an de la in e acción de un humano (aunque es e no se encuen e den o del ehículo) pa a ealiza cualquie acción. Es impo an e sabe que hay di e en es ni eles de au onomía y qué ca ac e iza a cada uno, ya que cuando piensas en un coche au ónomo, segu amen e le enga a la cabeza uno de ni el 4 o 5, pe o hay más a iedad. Según la SAE (Sociedad de Ingenie os de Au omoción), una sociedad que se enca ga de c ea es ánda es pa a odo ipo de ehículos, pueden exis i 6 ni eles de au onomía en los ehículos. ● Ni el 0, Sin au oma ización: El conduc o se enca ga de maneja el ehículo en odo momen o, aunque haya sis emas de ale a. ● Ni el 1, Asis encia al conduc o : El conduc o maneja el ehículo, pe o hay sis emas que pueden con ola la di ección o la elocidad en algunas si uaciones (Po ejemplo un sis ema que man iene la elocidad del ehículo a 120 km/h). ● Ni el 2, Au oma ización pa cial: El conduc o maneja el ehículo, pe o hay sis emas que pueden con ola la di ección y la elocidad en algunas si uaciones (Po ejemplo un coche capaz de apa ca solo). ● Ni el 3, Au oma ización condicional: El ehículo es capaz de conduci se au omá icamen e en cie as condiciones, pe o el conduc o ha de es a ale a po si las condiciones cambian y ha de oma el con ol (Po ejemplo el ehículo pod á conduci se solo si se ci cula po una au opis a con poco á ico, pe o el conduc o end á que oma el con ol si es á ci culando po una calle en ob as). ● Ni el 4, Al a au oma ización: El ehículo es capaz de conduci se au ónomamen e en p ác icamen e cualquie si uación, siendo capaz de de ec a lo que le odea, como pea ones, y ac ua en consecuencia, aunque puede necesi a la in e ención del conduc o , es capaz de con inua incluso si el conduc o no eacciona. ● Ni el 5, Au oma ización comple a: El ehículo es capaz de se conducido au omá icamen e en odos los aspec os como si lo hicie a un conduc o , y no se eque i á su in e ención en ningún momen o. 19 Pod ía deci se que el p ecu so de los coches au ónomos u o luga sob e la década de 1920, cuando en Es ados Unidos, la emp esa Houdina Radio Con ol hizo ci cula un ehículo sin conduc o . Aunque es o oda ía no se conside a conducción au ónoma, ya que el ehículo es aba con olado po con ol emo o median e adio po el coche que iba de ás, despe ó aún más el in e és po los ehículos au onomos. En 1939, No man Bel Geddes p esen ó en la Exposición Uni e sal de Nue a Yo k una maque a con su idea sob e cómo se ía una ciudad en el u u o, en la que había mul i ud de coches eléc icos que ci culaban de o ma au ónoma po las ca e e as. A pesa de se solo una ida, hizo que muchas emp esas se in e esa an e in i ie an en el a ance de la conducción au ónoma. Ya en 1986, E ns Dickmanns, un ingenie o ae oespacial y p o eso uni e si a io en Munich, que había dedicado los úl imos años a in en a consegui que los ehículos pudie an “ e ”, diseñó y cons uyó el p ime ehículo au ónomo. Se a aba de una u gone a Me cedes a la que había ins alado cáma as, senso es y o denado es pa a ealiza dicha a ea. Tan solo un año más a de, y as las exi osas p uebas, consiguió el pe miso pa a que su u gone a au ónoma ci cula a po una ca e e a acía en Alemania. Ocho años más a de, en 1994 y g acias a los a ances de E ns en es e campo, consiguió el pe miso de las au o idades de F ancia pa a ealiza una demos ación de sus a ances, es a ez ealizando las modi icaciones sob e un Me cedes 500 SEL, el cual cí culo más de 1000 kilóme os po una ca e e a de ci cun alación gala llegando a alcanza los 130 km/h, consiguió que el ehículo ci cula a po una ca e e a ansi ada e incluso adelan e a o os coches. Desde en onces, mul i ud de emp esas han a anzado en es e campo y han p obado su mejo as, sin emba go, aún queda mucho que a anza y mucho po hace , an o a ni el écnico, pa a que los ehículos sean capaces de ealiza un mayo núme o de a eas o ealicen de mane a más e inada aquellas que ya hacen, como a ni el legisla i o. En 2018 u o luga el p ime a opello mo al p oducido po un coche au ónomo, cuando una pe sona c uzaba po mi ad de una ca e e a de noche (haciéndolo de mane a inadecuada, no po un paso de ceb a). Es o no solo hizo que se e i a an pe misos pa a p uebas de ehículos au ónomos en di e sos luga es, sino que ea i ó nume osas cues iones legales que aún no es án con oladas, como cuál es el esponsable en caso de a opello, ¿es el ocupan e del ehículo?, ¿lo es la emp esa que lo ab icó?, o ¿cómo debe ía eacciona el ehículo si ha de oma una opción que pone en iesgo idas humanas?, si po ejemplo ci cula en sen ido con a io o o ehículo con 4 pasaje os y la única o ma de e i a lo es in adi el ca il con iguo en el que hay un ehículo con 1 solo pasaje o, ¿debe el coche au ónomo busca e i a el mayo núme o de mue es?, ¿debe choca con a el ehículo que ci cula en sen ido con a io (pues es el que ha come ido la in acción, a di e encia del ehículo de ca il con iguo que ci cula de mane a adecuada)?, o ¿debe oma la decisión en la que más p obabilidades enga de sob e i i su ocupan e?. 20 4.- Obje i os y plan de abajo La conducción au ónoma y la in eligencia a i icial son unos de los mayo es ho opics de los úl imos años. Poco a poco es án pasando a se las ecnologías del p esen e, y lo que no nos cabe duda es que se án las ecnologías del u u o. Como se puede e en la cu a de Ga ne , ac ualmen e es á en el máximo de las expec a i as. Po ello nos ha pa ecido muy in e esan e o ien a nues o abajo sob e es os dos emas al mismo iempo, eniendo en cuen a que la conducción au ónoma no se pod ía en ende sin in eligencia a i icial y los g andes a ances ealizados el la úl ima década. Cu a de de Ga ne 7 La in eligencia a i icial aplicada a la conducción au ónoma se u iliza pa a esol e múl iples p oblemas, como po ejemplo, la de ección de pea ones. En nues o caso conc e o, nos hemos cen ado en la clasi icación de obje os, necesa ia pa a que el ehículo sea capaz de asocia lo que pe cibe con obje os conc e os, y en el p oblema del cálculo de la p o undidad de los elemen os que apa ecen en las imágenes cap u adas po un pa de cáma as es é eo. Es o nos pe mi e conoce la dis ancia a la que se encuen an del coche los obje os cap ados po las cáma as, in o mación necesa ia pa a pode ealiza omas de decisiones po pa e del ehículo. Pa a esol e es e p oblema exis en nume osas edes neu onales que a pa i de un pa de imágenes ob enidas po un pa de cáma as en es é eo p edicen la dispa idad, que es la dis ancia exis en e en e un elemen o que apa ece en la imágen izquie da espec o la ubicación en la que se encuen a en la imágen de la de echa, o ice e sa. De es a dis ancia podemos calcula la p o undidad y así ob ene la dis ancia a la que se encuen a del coche. Po an o nues o p ime obje i o es amilia iza nos con las edes 7 h ps://medium.com/machine-lea ning-in-p ac ice/deep-lea nings-pe manen -peak-on-ga ne -s-hype-cycle-96157a1736e 21 neu onales de clasi icación de obje os y las edes neu onales de dispa idad de imágenes en es é eo, como base pa a pode desa olla el es o del abajo. Se plan ean 2 líneas de abajo: KITTI es la pla a o ma e e encia u ilizada po los desa ollado es de in eligencia a i icial aplicada a la conducción au ónoma. En ella podemos encon a nume osas edes neu onales que esuel en los di e sos p oblemas an e io men e comen ados, en e ellos la p edicción de la dispa idad. Además de se i de eposi o io, es a pla a o ma si e como benchma k, p opo cionando di e sos ankings di ididos en di e en es ca ego ías, siendo una de ellas la de dispa idad en es é eo, en el que las mejo es edes se o denan con o me al e o que ealizan al calcula la dispa idad. Se p opo cionan las he amien as necesa ias pa a ealiza su benchma k y apa ece en el anking con una posición según los esul ados ob enidos en él. Teniendo en cuen a es o, uno de los obje i os es es udia y ep oduci el abajo ealizado sob e las di e en es edes neu onales pa a p edicción de dispa idad más angua dis as, las cuales es án en es a pla a o ma. Incluyendo el en enamien o sob e es as y la ejecución del benchma k del KITTI. Ya que en los ehículos au ónomos es necesa io clasi ica los obje os que se de ec an pa a pode oma decisiones en consecuencia, nos in e esa e cómo unciona es a pa e, po lo que amos a ep oduci el uncionamien o de alguna ed neu onal de clasi icación de obje os y compa a en e sí an o el iempo empleado como los esul ados a la ho a de decidi a qué clase pe enece un obje o en una imagen pa a pode oma las decisiones opo unas. Po o o lado, debido a que es un campo ela i amen e nue o, hay a ios amewo ks en los que se desa ollan las edes, y oda ía no hay es ánda es, esul a complicado pode usa cualquie ed desde u disposi i o, ya que cada amewo k iene sus necesidades y dependencias, po an o necesi as en o nos dispa es dependiendo del amewo k. Po o o lado, la u ilización de edes neu onales aplicadas a la conducción au ónoma equie en de una g an capacidad de cálculo, la cual no es posible ene en un coche, pues su consumo de ene gía es muy ele ado. Sin emba go, sin una capacidad de cálculo ele ada es di ícil consegui ob ene la p o undidad de los elemen os de una imagen en iempos de in e encia muy educidos, uno de los equisi os necesa ios pa a que el ehículo sea capaz de eacciona a iempo en e a cualquie si uación. Vamos a u iliza OpenVINO, que cub e ambos aspec os mencionados: Po un lado, pasa las edes a un o ma o es ánda en el que se pueden po a a dis in os ipos de ha dwa e de In el como CPU, GPU, FPGA y disposi i os de bajo consumo como Mo idius, indis in amen e de en qué amewo k se hayan c eado; y po o o lado op imiza los modelos pa a educi el iempo de in e encia. Es o úl imo es bas an e in e esan e debido al equisi o an e io men e explicado ace ca de la necesidad de una elocidad de in e encia muy al a. Po ello, o o de nues os obje i os es u iliza las edes neu onales pa a clasi icación de obje os y pa a cálculo de dispa idad publicadas en el KITTI sob e es a ecnología, lo cual, pa a es as úl imas, aún nadie ha ealizado, y así medi su mejo a de elocidad de in e encia con OpenVINO. Además se u iliza á Mo idius jun o con OpenVINO, pe mi iéndonos ambién en en a nos al equisi o del limi ado uso de ene gía disponible pa a cómpu o, g acias a que Mo idius pe mi e ealiza 22 cálculos ec o iales con una po encia meno que una GPU pe o con un meno consumo de ene gía. A con inuación se enume a de una o ma esumida los obje i os p e iamen e explicados: 1. Toma de con ac o con Deep Lea ning y edes neu onales a a és de la ealización de cu sos y documen ación online. 2. In e encia y en enamien o con edes neu onales pa a clasi icación de imágenes, con el obje i o de amilia iza nos con el p oceso de en enamien o y ob ención de esul ados as la clasi icación de una imagen. 3. Rep oducción del abajo ealizado po los desa ollado es de las edes neu onales pa a p edicción de dispa idad publicadas en KITTI, incluyendo en enamien o de las mismas y ealización de la in e encia en cada una de ellas pa a ob ene esul ados compa ables según las mé icas del KITTI. 4. U ilización de OpenVINO sob e edes neu onales pa a clasi icación de obje os y p edicción de dispa idad. 23 4.1.- Familia ización con edes neu onales Se ealizan cu sos de deep lea ning pa a clasi icación y de ección de obje os pa a comp ende mejo en qué se basan las ecnologías que amos a u iliza . En es os cu sos se cub en aspec os undamen ales como: desc ip o es, clasi icado es, búsqueda y e inamien o, y la e aluación del endimien o. El p ocedimien o de de ec a un obje o en una imagen consis e en busca en la imagen aquellas á eas que pueden se el obje o que se busca, y compa a las con un modelo de ese obje o que comp uebe si se pa ece lo su icien e a él o no. Pa a ello, hay que c ea un modelo que sea capaz de dis ingui en e di e en es ipos de obje os. Pa a que es e modelo uncione co ec amen e, ha de se capaz de de ec a obje os que pe enecen a una misma clase, aunque sean un poco dis in os en e sí, po ejemplo, si se es án de ec ando pe sonas, debe ía se capaz de hace lo independien emen e de su amaño, colo de piel, ipo de opa… Es o iene que hace se independien emen e de las ca ac e ís icas del en o no en el que es á el obje o. Po ejemplo, si hay más o menos luz, una pe sona sigue siendo una pe sona. Una ez enemos ese modelo, hay que busca odas las posibles apa iciones en la imagen. Es e puede se un p oceso la go, po lo que hay que a a de mejo a la e iciencia de la búsqueda odo lo posible. Du an e la búsqueda, se ex aen ca ac e ís icas y se gene an posibles candida os del obje o que es amos buscando, se clasi ican esos candida os pa a desca a aquellos que e dade amen e no se adap an al modelo, y pos e io men e se e ina es a decisión pa a ob ene sólo aquellos que lo hacen con una al a p obabilidad. Como es amos abajando con imágenes, es impo an e sabe cómo es án compues as, po píxeles. En una imagen a colo , un píxel iene 3 canales (RGB), el ojo, el e de y el azul, po lo an o iene asociados 3 alo es (uno pa a cada canal) que an en e 0 y 255. Es os alo es, y po an o el colo del píxel, pueden a ia de acue do con el colo de la luz, que a ía dependiendo de las longi udes de onda que la componen, de las supe icies que apa ecen en la imagen, que abso ben y e lejan en dis in as p opo ciones las longi udes de onda de la luz, y de la sensibilidad de la cáma a, la cual iene 3 senso es, uno pa a cada canal RGB y dependiendo de cómo es én calib ados el colo puede a ia . Pa a ex ae las ca ac e ís icas se emplean desc ip o es, que nos indican si han encon ado o no las ca ac e ís icas p opias del modelo, buscadas en la imagen. Es impo an e que es os desc ip o es uncionen bien en odos los casos posibles. Pa a ello hay que ene en cuen a que la in ensidad puede cambia , y si no se a a adecuadamen e, puede hace que nues o desc ip o no uncione co ec amen e. Una o ma sencilla de hace es o, es usa las coo denadas c omá icas, que consis e en di idi cada canal RGB, po la in ensidad (la suma de los canales). O a posibilidad es que el haya cambios de colo p oducidos po la luz o la cáma a, es o se puede minimiza haciendo que la imagen sea una imagen canónica, que simula que la imagen se ha omado con una luz con olada. Pa a ello hay que aplica un il o la imagen an es analiza la. Uno de es os algo i mos es el whi e pa ch, que asume que el colo máximo en cada canal se co esponde con el blanco, y adap a el es o en 24 4.2.6.- ResNeX ResNeX se conside a el es ado del a e en cuan o a econocimien o de obje os. En la siguien e imagen se obse a la compa a i a en e ResNe , la ed an e io men e comen ada, y ResNeX (izquie da y de echa espec i amen e): Imagen de compa ación en e ResNe y ResNeX 14 4.2.7.- RCNN RCNN (Region Based CNN) ealiza la de ección de obje os de la siguien e mane a: aza una se ie de á eas den o de la imagen, y después in en a econoce los obje os que hay en cada una de las mismas. En la siguien e imagen se puede obse a su uncionamien o: Funcionamien o ed RCNN 15 14 h ps://www.analy ics idhya.com/blog/2017/08/10-ad anced-deep-lea ning-a chi ec u es-da a-scien is s/ 15 h ps://www.analy ics idhya.com/blog/2017/08/10-ad anced-deep-lea ning-a chi ec u es-da a-scien is s/ 31 4.2.8.- YOLO YOLO di ide la imagen en celdas, y después analiza cada celda pa a iden i ica a qué pe enece. Una ez ha clasi icado las celdas, las a usionando pa a o ma celdas más g andes que ep esen en los obje os inales iden i icados. Su uncionamien o es el siguien e: Funcionamien o ed YOLO 16 4.2.9.- En enamien o e in e encia con edes neu onales pa a clasi icación de obje os El abajo con edes neu onales pa a clasi icación de obje os consis e en en ena e in e i di e en es edes. Es e abajo es ealizado sob e una máquina Debian, 8 co es AMD Op e on y 16GB de RAM, la cual no dispone de GPU. En ella hay con igu ada un ambien e p o eído p incipalmen e de Py hon y Ke as, que u iliza con backend Tenso Flow. La e sión de Tenso low que se ins ala po de ec o emplea el conjun o de ins ucciones SSE4.1. Debido a es a limi ación, pues o que el p ocesado empleado no sopo a ese epe o io de ins ucciones, como solución se u iliza una e sión de Tenso Flow que no u ilice dichas ins ucciones, como es la 1.5. Po un lado, en cuan o en el en enamien o, se u iliza una implemen ación de AlexNe sob e Ke as u ilizando 100 épocas. Las épocas son el núme o de eces que se ealiza el en enamien o de una ed u ilizando una única ez cada imagen del da ase . A mayo núme o de épocas, se ob iene una ed en enada con una p ecisión supe io , debido a que se uel e a ealiza un ajus e de los pesos que hacen que la ed se adap e mejo a la ho a de in e i sob e el da ase empleado. Empleando es as 100 épocas con un amaño de lo e o ba ch size de 128, siendo el iempo de inalización excesi o, implica consegui el 10% del o al en dos días. Pa a sol en a es o, el p oceso de en enamien o cons a de 10 épocas y 16 h ps://www.analy ics idhya.com/blog/2017/08/10-ad anced-deep-lea ning-a chi ec u es-da a-scien is s/ 32 un ba ch-size de 16, educiendo así conside ablemen e el iempo eque ido a dos días. T as inaliza el p oceso de en enamien o, se lle a a cabo una e aluación de la ed y el gua dado de la opología y pesos, pe mi iéndonos ol e a ca ga y usa la ed sin necesidad de ol e a en ena . Además, el modelo u ilizado es una modi icación en la que su úl ima capa iene 10 salidas, debido a que el da ase que a a se u ilizado cons a únicamen e de 10 clases. Ejemplo de una secuencia de en enamien o pa a 5 épocas Pa a el en enamien o se u iliza el da ase CIFAR-10. Es o es debido a que en el ambien e de desa ollo u iliza o os da ase s an g andes como Imagene supond ía un aumen o en el iempo necesa io y una mayo ocupación de disco du o no disponible. Siendo 150 GB el amaño eque ido pa a ImageNe , mien as que CIFAR-10 equie e de 170 MB. Dicho da ase cons a de 60000 imágenes de amaño 32x32 a colo , di ididas en 10 clases, con un o al de 6000 imágenes po clase. De en e odas es as imágenes, hay 50000 pa a en ena las edes neu onales, y 10000 pa a ealiza el pos e io es eo de la e icacia de las mismas. Las 50000 o os de en enamien o se di iden en 5 lo es de 10000. Hay 10 clases de imágenes: A iones, Au omó iles, Pája os, Ga os, Cie os, Pe os, Ranas, Caballos, Ba cos y Camiones. No odas las ca ego ías son aplicables a la conducción au ónoma, que es el campo que nos compe e, pe o pa a una p ime a oma de con ac o nos pa eció un da ase muy comple o. El lo e de imágenes pa a es ea las edes con iene 1000 elegidas alea o iamen e de cada clase, mien as que los lo es de en enamien o con ienen las imágenes no seleccionadas, en o den alea o io. 33 Cap u a de la web de CIFAR10 con las ca ego ías exis en es y 10 imágenes alea o ias de cada ca ego ía 17 Po o o lado, en cuan o a la in e encia se u ilizan edes neu onales p e-en enadas sob e Imagene y p opo cionadas po Ke as, como es el caso de VGG-16. Además de es as edes p e-en enadas, e in ie e adicionalmen e sob e la ed en enada an e io men e, u ilizando la opología y pesos p e iamen e ob enidos. Pa a la ealización de in e encia se u ilizan imágenes alea o ias, no pe enecien es a ningún da ase en conc e o. En cuan o a los esul ados, al habe es ado en enados sob e da ase di e en es, debido a la limi ación de iempo y espacio p e iamen e explicada, no podemos compa a la p ecisión con la que clasi ican, pe o sí la elocidad a la que lo hacen y la especi icidad con la que lo hacen. Los esul ados en cuan o a iempos de in e encia son los siguien es: Red Tiempo de in e encia sob e una imagen (en segundos) VGG-16 1.330 AlexNe 0.670 17 h ps://alexisbcook.gi hub.io/2017/using- ans e -lea ning- o-classi y-images-wi h-ke as/ 34 Podemos obse a que, a pesa de que VGG-16 es una ed que pod ía es a op imizada pa a Ke as, debido a que es á implemen ada po sus p opios desa ollado es, iene unos iempos de in e encia muy in e io es espec o a AlexNe , la cual ha sido desa ollada a pa i de una implemen ación no o icial. Es o es p oducido po la p opia na u aleza y a qui ec u a de la ed. VGG-16 es á compues a po un núme o de capas igual a 16 y más complejas que AlexNe , que dispone de la mi ad de capas y siendo es as más simples. Es o da luga a que AlexNe sea más ápida. En cuan o a la especi icidad de la ed, VGG-16 es supe io a AlexNe , debido a que ha sido en enada sob e ImageNe , que cons a de 1000 clases, mien as que CIFAR-10 sólo de 10. Pa a la siguien e imagen, VGG-16 es capaz de de ec a que es un coche depo i o, mien as que AlexNe sólo de ec a que se a a de un au omó il. Imagen u ilizada pa a el es eo de las edes 18 18   h ps://www.elmundo.es/mo o /2018/07/30/5b5e 0ee22601d5b158b459e.h ml 35 4.3.- KITTI 19 KITTI es una sui e de da ase s ecopilados po una pla a o ma de conducción au ónoma llamada Annieway, un p oyec o del Ins i u o de Tecnología Ka ls uhe y el Ins i u o Tecnológico de Chicago. Dichos da ase s se pueden emplea en isión en s e eo, op ical low, isual odome y, 3D objec de ec ion and 3D acking (empleamos los é minos en inglés ya que es os é minos son usados en español ambién). Po o o lado, las imágenes son omadas desde un coche equipado con dos cáma as de ídeo de al a esolución en colo y en escala de g ises. Pa a p opo ciona una mayo e acidad en cuan o a la dis ancia del suelo, se emplea un láse Velodyne y un sis ema GPS de localización. Todas las imágenes se oman en la ciudad de Ka ls uhe, en á eas u ales y en au opis as. En cada imagen se pueden encon a has a un máximo de 15 coches y 30 pea ones. Apa e de p opo ciona odas las imágenes en b u o, ambién se p opo cionan benchma ks especí icos pa a cada a ea, añadiendo ambién mé icas de e aluación y una web pa a e alua lo ob enido. Plano del coche u ilizado en la ecolección de imágenes del da ase 20 19 h p://www.c libs.ne /da ase s/ki i/ 20   h p://www.c libs.ne /da ase s/ki i/se up.php 36 Imágen del coche u ilizado pa a la ecolección de imágenes del da ase 21 Decidimos p o undiza ambién en el concep o de la dispa idad an es de me e nos en ma e ia. 21   h p://www.c libs.ne /da ase s/ki i/se up.php 37 4.4.- Redes de p edicción de dispa idad Los se es humanos enemos un sis ema isual capaz de e en es dimensiones. Es o es posible g acias a la isión binocula . Dicha isión es gene ada debido a que nues os ojos mi an a un mismo obje o desde ángulos lige amen e dis in os (debido a la pequeña sepa ación que exis e en e ellos). Como esul ado, se ob ienen dos imágenes muy pa ecidas, pe o no iguales. La dispa idad binocula es la di e encia en e los dos pun os de is a de ambos ojos. Dicha di e encia es la que pe mi e c ea imágenes 3D en supe icies llanas. Hablando de dispa idad, podemos encon a dos ipos: c uzada y no c uzada: En la dispa idad c uzada el obje o que e el ojo es á más ce ca que el pun o de ijación, mien as que en la no c uzada el obje o es á más alejado que dicho pun o. De es os concep os, nace la es imación de la p o undidad de obje os en una escena, pa iendo de un pa de imágenes (es é eo). De es as dos imágenes podemos calcula la dispa idad pa a así ob ene la p o undidad, u ilizando la ó mula desc i a en la imágen in e io . Es a dispa idad calculada p opo ciona la p o undidad de cada píxel en cada una de las imágenes. Dicho cálculo se ealiza de ec ando qué píxeles de la imagen de la izquie da co esponde con los pixeles de la de echa, o ice e sa, pa a así calcula la dis ancia en e ambos, la llamada dispa idad. A es e p oblema se le conoce como S e eo Ma ching. A pa i de la dispa idad y o os pa áme os cuyo alo es ya conocemos, como la dis ancia ocal o la línea base, podemos es ima la p o undidad. Los algo i mos que calculan dicha dispa idad, asumen que las imágenes es án ec i icadas, lo que signi ica que los planos de ambas imágenes son pa alelos en e sí y a la di ección en la que exis e el desplazamien o de las imágenes. Es o es ga an izado en la o ma de ob ene las imágenes. Pe o puede da se el caso de que exis an oclusiones, pun os o egiones que se en en una imagen y no en la o a po es a apadas po un obje o. Es as oclusiones son uen e de e o es en muchos algo i mos, pe o a su ez pueden se usadas pa a ecupe a la es uc u a de la escena y da nos mucha in o mación esencial sob e la misma. 38 Cálculo de la dispa idad y elación con línea base (B), dis ancia ocal ( ) y p o undidad (z) 22 Una ez ealizado odo es o, pasamos a ealiza uno de los obje i os de es e abajo: ealiza el en enamien o e in e encia de dis in as edes con es e p opósi o. En el apa ado de S e eo E alua ion 2015 de la web de KITTI (h p://www.c libs.ne /da ase s/ki i/e al_scene_ low.php?benchma k=s e eo) encon amos las edes neu onales más ac uales en cuan o a isión en es é eo se e ie e. De ellas se han desca ado aquellas sin ninguna e e encia a páginas del desa ollado , y aquellas cuyo código no es á accesible en un eposi o io público, pues o que nues o obje i o es e alua las mismas. Nos quedamos con 30 edes un 15% de las 200 edes que apa ecen, de las cuales no odas publican el código pa a en ena la ed (algunas emplean capas desa olladas po emp esas p i adas y no quie en hace público el código) o no ienen una implemen ación pa a ealiza la in e encia. A con inuación se de allan las edes con las que pudimos abaja . 22 h ps://answe s.openc .o g/ques ion/187734/de i a ion- o -pe spec i e- ans o ma ion-ma ix -q/ 39 4.4.1. - SegS e eo y CRL La p ime a ed obje o de es udio es SegS e eo. Pues o 37 KITTI-S e eo (du an e el desa ollo del abajo). Dicha ed emplea ca ac e ís icas semán icas de segmen ación pa a que su implemen ación mejo e la p ecisión de la p edicción en mapas de dispa idad. Según se puede obse a en su pape , es una ed que alcanza esul ados buenos den o del es ado del a e con el benchma k S e eo del KITTI, y ambién lo han p obado con los da ase s de Ci yScapes y FlyingThings3D ob eniendo esul ados decen es. U ilizan ResNe (de la cual hablamos an e io men e) con ope ación de co elación como codi icado , y a ios bloques decon olucionales como decodi icado pa a ol e a un mapa de dispa idad de oda la imagen. La ope ación de co elación es á diseñada pa a calcula los pesos de coincidencias basándose en pa es de mapas de ca ac e ís icas. Emplean además una sub ed de segmen ación pa a ex ae ca ac e ís icas semán icas de la dispa idad. Tan o la e aluación semán ica como la dispa idad semán ica son o almen e con olucionales. Su modelo pe mi e an o en enamien o supe isado como no supe isado. En el ap endizaje no supe isado, la pé dida de consis encia o omé ica y la semán ica se calculan y se p opagan hacia a ás en la ed. En el ap endizaje supe isado, emplean la pé dida de eg esión supe isada en luga de la pé dida de consis encia o omé ica no supe isada, consiguiendo así los esul ados en el KITTI an es comen ados. Emplean un ine une (en enamien o de una ed pa iendo de pesos ya exis en es) pa a ealiza los es s después con los da ase s de Ci yScapes y FlyingThings3D. Su implemen ación es á hecha en Ca e, y de en e sus capas, no odas son o iginales suyas, ya que emplean dos capas de la FlowNe 2.0 (la de co ela ion y co ela ion1d) y una de PSPNe (la de in e polación). Así mismo, la he amien a pa a dispa idad es del Toolki de Op icalFlow de li uo eng  (h ps://gi hub.com/li uo eng/Op icalFlowToolki ) El p oyec o de SegS e eo se puede encon a en Gi hub. Dicho p oyec o dispone de un sc ip en Py hon pa a e alua la dispa idad de la ed. A dicho sc ip se le pasan como pa áme o los pesos de la ed en enada, los cuales podemos encon a en a ios enlaces a Google D i e que apa ecen en el eposi o io; el modelo de la ed, que podemos encon a den o de la ca pe a models/ y en el di ec o io de la ed co espondien e; el di ec o io con las imágenes a e alua (las cuales no se p opo cionan di ec amen e en el eposi o io); el di ec o io pa a olca la salida; y o os pa áme os adicionales. Pa a pode en ena la ed y llega a ealiza la in e encia, es necesa io ene Ca e ins alado en su e sión GPU, pues o que a ias de sus capas no es án sopo adas en la e sión del 40 Basic 50 0 0.344629 0.226702 0.326991 Basic 100 0 0.300079 0.185429 0.282932 Basic 150 0 0.327358 0.200405 0.308371 Basic 200 0 0.304922 0.186698 0.287240 Basic 200 20 0.030800 0.042024 0.032479 Basic 200 60 0.027524 0.026481 0.027368 Basic 200 100 0.023689 0.021512 0.023364 S ackedhou glass 10* 0 0.588933 0.658463 0.599332 S ackedhou glass 10* 1000 0.009653 0.001704 0.008464 E o p omedio de dispa idad sob e KITTI sin ene en cuen a oclusión Modelo N.º de épocas u ilizadas pa a en enamien o N.º de épocas u ilizadas pa a ine une FG BG ALL Basic 50 0 0.340618 0.220339 0.322851 Basic 100 0 0.296492 0.176746 0.278804 Basic 150 0 0.322555 0.189452 0.302894 Basic 200 0 0.300126 0.176827 0.281913 Basic 200 20 0.029239 0.036111 0.030254 Basic 200 60 0.026123 0.023112 0.025678 Basic 200 100 0.022499 0.017337 0.021736 S ackedhou glass 10* 0 0.586312 0.650923 0.595856 S ackedhou glass 10* 1000 0.008916 0.001490 0.007819 *El núme o de épocas ealizadas en es as edes es sob e SceneFlow comple o, no sob e el subda ase D i ing de SceneFlow como hemos ealizado con el modelo básico. 47 A con inuación se mues a una g á ica de la compa ación pa a PSMNe de los esul ados ob enidos con oclusión y sin oclusión. PSMNe Leyenda Signi icado Basic 50 epoch PSMNe en enada con su modelo básico con 50 épocas sob e el subda ase SceneFlow llamado D i ing. Basic 100 epoch PSMNe en enada con su modelo básico con 100 épocas sob e el subda ase SceneFlow llamado D i ing. Basic 150 epoch PSMNe en enada con su modelo básico con 150 épocas sob e el subda ase SceneFlow llamado D i ing. Basic 200 epoch PSMNe en enada con su modelo básico con 200 épocas sob e el subda ase SceneFlow llamado D i ing. Basic ine uned 20 epoch PSMNe as hace ine- une con 20 épocas sob e la ed en enada con 200 épocas sob e el modelo básico u ilizando el da ase del KITTI. Basic ine uned 60 epoch PSMNe as hace ine- une con 60 épocas sob e la ed en enada con 200 épocas sob e el modelo básico u ilizando el da ase del KITTI. Basic ine uned 100 epoch PSMNe as hace ine- une con 100 épocas sob e la ed en enada con 200 épocas sob e el modelo básico u ilizando el da ase del KITTI. S ackedhou glass (da ase SceneFlow) PSMNe en enada con su modelo S acked-Hou glass con 10 épocas sob e el da ase SceneFlow comple o. S ackedhou glass (da ase KITTI) PSMNe as hace ine- une con 1000 épocas sob e la ed en enada con 10 épocas sob e el modelo S acked-Hou glass u ilizando el da ase del KITTI. 48 Resul ados gene ales con oclusión. En el eje x se disponen las di e en es edes u ilizadas y en el eje el e o medio de p edicción de dispa idad con oclusión. Resul ados gene ales sin oclusión. En el eje x se disponen las di e en es edes u ilizadas y en el eje el e o medio de p edicción de dispa idad sin oclusión. 49 Resul ados pa a o eg ound con oclusión. En el eje x se disponen las di e en es edes u ilizadas y en el eje el e o medio de p edicción de dispa idad con oclusión en p ime plano de la imagen. Resul ados pa a o eg ound sin oclusión. En el eje x se disponen las di e en es edes u ilizadas y en el eje el e o medio de p edicción de dispa idad sin oclusión en p ime plano de la imagen. 50 Resul ados pa a backg ound con oclusión. En el eje x se disponen las di e en es edes u ilizadas y en el eje el e o medio de p edicción de dispa idad con oclusión en el ondo de la imagen. Resul ados pa a backg ound sin oclusión. En el eje x se disponen las di e en es edes u ilizadas y en el eje el e o medio de p edicción de dispa idad sin oclusión en el ondo de la imagen. 51 Resul ados pa a oda la imagen con oclusión. En el eje x se disponen las di e en es edes u ilizadas y en el eje el e o medio de p edicción de dispa idad con oclusión oda la imagen. Resul ados pa a oda la imagen sin oclusión. En el eje x se disponen las di e en es edes u ilizadas y en el eje el e o medio de p edicción de dispa idad sin oclusión oda la imagen. Teniendo en cuen a los esul ados ob enidos con las edes PSMNe , an o pa a el modelo S ackHou glass como pa a el modelo Básico, se puede obse a cómo hay una g an di e encia en e las edes sob e las que se ha ealizado un ine- une con el da ase del KITTI, mejo ando los esul ados sob e el mismo signi ica i amen e. Po o o lado, dado las limi aciones su gidas, no ha sido posible en ena en igualdad de condiciones la ed en enada Básica y la ed p e-en enada S ackHou glass. Po ello, compa a ambas edes 52 de una o ma impa cial es imposible, sin emba go, se puede comp oba que la ed Básica p esen a un e o p omedio de dispa idad algo supe io a los de S ackHou glass, debido a que no se ha ealizado an as épocas sob e el da ase KITTI y p obablemen e ambién a que la ed es más simple. A pesa de habe ealizado un mayo núme o de épocas, como el da ase de en enamien o sob e SceneFlow no ha sido el mismo, los esul ados no hab ían sido compa ables de igual modo. Sin emba go, se apo a algo nue o, que son esul ados de la ed Básica con los di e sos en enamien os y ine- une sob e KITTI eniendo en cuen a nues as limi aciones. Además se p opo cionan edes PSMNe con modelo Básico ya en enadas. Es as edes es án en enadas con un mayo núme o de épocas en SceneFlow, en compa ación con la ed S ackHou glass p e-en enada y publicada en su eposi o io, po lo que se iene una ed no en enada sob e el KITTI con mejo es esul ados cuando pos e io men e se in ie e sob e un da ase elacionado con la conducción, como es el KITTI. Teniendo en cuen a los esul ados con y sin oclusión, se puede comp oba que sin oclusión el e o disminuye, algo o almen e lógico, ya que no iene en cuen a las zonas en las que una cáma a del pa es é eo no es capaz de isualiza y la o a sí. En cuan o a la di e encia en e el e o en e el ondo de la imágen y el p ime plano, en es e úl imo es meno en odos los casos. Ambos compo amien os po odas las edes publicadas en el KITTI. Po o o lado, los iempos de in e encia en cada modelo son di e en es. Analiza es os iempos puede se in e esan e pa a comp oba cómo de ápido son y si es iable u iliza los en un caso eal. Los esul ados son: ● Con el modelo S ackedHou glass se consigue un iempo o al de 111.69 segundos segundos, lo que quie e deci que ha a dado una media de 0.5545 segundos en cada imagen. Implicando una asa de ames de 1.8034 FPS. ● Con el modelo Básico se consigue un iempo o al de 89.72 segundos segundos, lo que quie e deci que ha a dado una media de 0.4486segundos en cada imagen. Implicando una asa de ames de 2,2291 FPS. Con es os esul ados se puede conclui que el modelo básico mejo a espec o del modelo S acked Hou glass, siendo un 1,2448 más len o que el modelo básico, es deci , el modelo Básico es un 24 % más ápido. Po es o, se puede conclui que el modelo Básico es supe io en cuan o a elocidad de in e encia. En cuan o a la asa de ames, como se puede obse a , ninguno de los dos modelos son iables sob e nues o en o no de p uebas pa a casos eales, necesi ando un mínimo de 16 FPS. 1.8034 y 2.2291 es án muy dis anciados del mínimo necesa io. A con inuación se adjun a una abla esumen con los esul ados de los iempo ob enidos du an e la in e encia con los modelos de la ep oducción. 53 Modelo Tiempo o al (segundos) Tiempo po imágen F ames po segundo (FPS) S acked-Hou glass 111.69 0.5545 1.8034 Basic 89.72 0.4486 2,2291 Finalmen e se p esen a los esul ados publicados po el KITTI y se compa a con los esul ados ob enidos p e iamen e en nues a ep oducción. En es e caso sólo se iene en cuen a la ed Básica y S ackHou glass ep oducidas con mejo los esul ados. Es as co esponden a las que ue on aplicadas un ine- une de mayo épocas. Resul ados publicados en KITTI sob e PSMNe y ep oducidos Modelo Tiempo de in e encia po imagen (segundos) Ambien e E o p omedio de in e encia sob e la imágen comple a (con oclusión) S acked-Hou glass (Publicado en KITTI) 0.41 N idia GTX Ti an Xp 0.0232 S acked-Hou glass (Rep oducido) 0.5545 N idia GTX 1080 0.008464 Basic (Rep oducido) 0.4486 N idia GTX 1080 0.023364 Como se puede obse a , los esul ados de dispa idad ep oducidos sob e S ackHou glass son mucho mejo es que los publicados en el KITTI, igualando p ác icamen e la ed Básica ep oducida a la ed S ackHou glass publicada. Supe a sus esul ados sólo se ía posible si la ed p e-en enada usada en la ep oducción y la usada po KITTI pa a el benchma k son las mismas en cuan o a qui ec u a pe o no han sido en enadas de igual o ma. Po ello el benchma k ealizado po KITTI debe ene alguna limi ación du an e el en enamien o. Teniendo en cuen a los esul ados ob enidos as ealiza ine- une du an e la ep oducción y la g an mejo a que es o p oduce, se iene la hipó esis de que pa a publica esul ados en el KITTI, las edes no pueden es a ajus adas o en enadas sob e el mismo da ase del benchma k, lo cual pa ece cohe en e, a pesa que se u ilice pa a es os casos un subconjun o del conjun o o al de imágenes. U iliza el mismo da ase pa a en enamien o y es eo no es aconsejable, pues los esul ados no e lejan la ealidad. Limi ando el en enamien o de es a o ma los benchma ks debe ían se más obje i os. En cuan o a los iempos de in e encia, los iempos publicados en el KITTI son muy supe io es debido al ambien e u ilizado, el cual es mucho más po en e po su mayo 54 capacidad de cómpu o. A endiendo a la elocidad de in e encia, se ob iene una asa de ames de ap oximadamen e 2.44 FPS, no pudiendo se u ilizada en un caso eal, conside ando 16 FPS una asa acep able. 55 4.4.3.- MADNe Pues o 135 KITTI-S e eo (du an e el desa ollo del abajo). MADne es o a ed o ien ada al cálculo de la dispa idad, en es e caso, implemen ada sob e Tenso Flow. Como ca ac e ís ica undamen al, es una ed p epa ada pa a el ap endizaje on-line, es deci , es capaz de ap ende dinámicamen e a a és de un S eam de pa es de imágenes con inuo eniendo en cuen a lo ap endido an e io men e, eó icamen e p opo cionando un mejo esul ado que en enamien os y ine unes ba ch clásicos cuando se en en an a da ase muy di e en es a los que han sido en enados. Es o equie e que la ed ap enda de o ma no supe isada e in ie a ápidamen e un pa de imágenes pa a que pueda ol e a ealiza lo con el siguien e pa de imágenes a una asa de ap oximadamen e 15 FPS. A pesa de ello, es a ca ac e ís ica no e a impo an e pa a noso os, pues el obje i o p incipal e a pode u iliza la a a és de un ba ch de imágenes y no a a és de las imágenes es é eo ob enidas po un coche en la ida eal. O a ca ac e ís ica de la ed es la capacidad de en ena po módulos, es deci , po po ciones ed ed, de ahí su nomb e MADne (Modula ly ADap i e Ne wo k). Desc ipción esquemá ica de la a qui ec u a MADne p opues a (a), cada cí culo en e una F  K y la D  K  co espondien e ep esen a una de o mación y una capa de co elación (b). Cada pa (F  I  , D  I  ) compone un módulo M  I  , adap able de o ma independien e po medio de la MAD ( lecha azul) mucho más ápido en compa ación con la ealización de la pa e pos e io comple a ( lecha oja) 25 Una ez ep oducido el en enamien o, in e encia y benchma ks con PSMNe , el obje i o es abaja con MADNe . En es e caso, es e abajo consis e en ep oduci el abajo ealizado po sus desa ollado es de o ma simila a PSMNe . Sin emba go en es e caso no se ealiza el en enamien o pa a aho a iempo, is o que es un p oceso bas an e la go y que ya hemos sido capaces de ealiza con PSMNe . 25 h ps://gi hub.com/CVLAB-Unibo/Real- ime-sel -adap i e-deep-s e eo 56 Pe mi e un acceso muy sencillo a odo el conjun o de opciones ha dwa e de In el pa a mejo a el endimien o, educi el consumo de ene gía y maximiza la u ilización del ha dwa e, con la in ención de pode hace más con menos ecu sos y ab i nue as posibilidades de diseño: ● In e encia de úl ima gene ación de Deep Lea ning basada en Redes Neu onales ● Ejecución dis ibuida con APIS compa idas sob e sis emas he e ogéneos de In el como: ○ CPUs, GPUs, NCSs (Mo idius Neu al Compu e S ick 1 y 2) y FPGAs. ○ Acele ación de los iempos de desa ollo has a el despliegue inal g acias a las biblio ecas de unciones y núcleos p e-op imizados. ○ Llamadas op imizadas a OpenCV y OpenVX. ○ U ilización del conjun o de he amien as In el® Deep Lea ning Deploymen Toolki . ○ Acele ación de los esul ados de la in e encia del ap endizaje p o undo. El conjun o de he amien as de In el Deep Lea ning Deploymen es á o mado po : ● Mo o de in e encia con plugins pa a dis in as pla a o mas ha dwa e de mane a indi idual (CPU, GPU, VPU, y FPGA), pe o ambién o mando sis emas he e ogéneos con cualquie combinación de ellas. ● Op imizado de modelos capaz de oma como en ada desc ipciones de en o nos de deep lea ning como Ca e y Tenso Flow y gene a ep esen aciones in e medias (IR) sob e las que pode abaja . Como OpenVINO pe mi e adqui i la po abilidad y la op imización en los iempos de in e encia que se buscan en es e abajo, se aspi a a ealiza lo con las cua o edes disponibles en el KITTI con las que abajamos. Aunque oda ía OpenVINO sólo es capaz de op imiza di ec amen e modelos de algunos amewo ks como Ca e y Tenso Flow, es capaz de soluciona es o y pode acep a edes p o enien es de o os en o nos a a és de ONNX. ONNX es un o ma o abie o que p e ende se un es ánda pa a pe mi i , con algunas limi aciones, expo a edes de unos amewo ks de desa ollo a o os, pe mi iendo a los desa ollado es de In eligencia A i icial pode expo a e impo a sus modelos más ácilmen e en e he amien as de Deep Lea ning. 63 4.5.1- PSMNET El p ime abajo con OpenVINO se ealiza con PSMNe . Pa a pode u iliza lo en OpenVINO se necesi a pasa la ed en enada a un o ma o de ed llamado ONNX, como se ha explicado an e io men e. Es o es necesa io po que OpenVINO no es compa ible di ec amen e con edes en enadas en PyTo ch, pe o sí lo es con edes ONNX. A la ho a de ealiza la ans o mación de la ed a ONNX pa a pode se op imizada pos e io men e en OpenVINO, no es posible. T as in es iga el uso de es e o ma o de ed, la hipó esis inicial es que se debe a la incompa ibilidad en alguna de las capas de PSMNe , que no es aba sopo ada po ONNX. Sc ip c eado pa a in en a gene a la ed ONNX de PSMNe Pa a asegu a que el sc ip es aba co ec amen e desa ollado y que el e o no esidía en el código c eado, se desa olla un sc ip simila pa a expo a una ed de clasi icación p e-en enada en o ma o ONNX. En es e caso se usa una ed VGG-16, con e ida con éxi o del o ma o PyTo ch al o ma o ONNX. Sc ip c eado pa a gene a la ed ONNX de una ed de clasi icación de obje os ya en enada (VGG16), el cual sí uncionó. Debido a es o, se puede asegu a que el allo al pasa la ed a ONNX se debe a que algunas de las capas empleadas po PSMNET aún no es án sopo adas en ONNX. 64 4.5.2- MADNe A con inuación se abaja con MADNe . En es e caso la ed es á implemen ada con Tenso low, el cual se puede pasa a OpenVINO di ec amen e sin necesidad de pasa lo a ONNX. Es o implica que no hay que ealiza ninguna ans o mación a un o ma o de ed in e media. Pa a es e p oceso hay que u iliza una u ilidad que OpenVINO p opo ciona en Py hon o en C, la cual ejecu ándola y añadiendo como pa áme os la ed expo ada de Tenso low en o ma o me a-g a o sin congela , jun o con algunos o os pa áme os, nos gene a la ed op imizada lis a pa a usa en OpenVINO. Sin emba go, u iliza es a u ilidad con MADNe no es posible. Dependiendo de el o ma o de la ed in oducido en la u ilidad pa a ans o ma la ed, las causas que lo imposibili an son di e en es. En el caso de que el o ma o sea me a-g a o, sin congela la ed, OpenVINO no es capaz de de ec a cie as a iables de Tenso Flow que sí es án inicializadas. En el módulo de en enamien o  ain.py se puede obse a cómo se inicializan las a iables que pos e io men e OpenVINO no de ec a. d Código pe enecien e al sc ip de en enamien o de MADNe Po o o lado, en el caso de que el o ma o sea una ed congelada, congelando únicamen e el nodo de salida de la ed deno ado como “model/ esize_image_wi h_c op_o _pad/con ol_dependency_3”  , no es posible debido a que no iene de inido placeholde s y OpenVINO no es capaz de de ec a los. Es a causa es debida a la p opia na u aleza li e-in e ence de la a qui ec u a de la ed explicada p e iamen e. Pa a pode isualiza los nodos de la ed y ob ene el nomb e de los nodos salida se u iliza la he amien a web Tenso Boa d, la cual mues a en el na egado la ep esen ación del g a o de la ed. 65 4.5.3- SegS e eo y CRL SegS e eo y CRL es án en Ca e, que es sopo ado di ec amen e po OpenVINO, sin necesidad de ene que hace pasos in e medios. Sin emba go, a pesa de segui los pasos pa a ans o ma edes de Ca e a OpenVINO, con el in de pode e la mejo a que se ob enía, no es posible ealiza la con e sión debido a un e o en las capas sopo adas. OpenVINO solo sopo a 27 capas de inidas en Ca e, la al a de compa ibilidad de algunas de las capas empleadas en la desc ipción de la opología de las edes SegS e eo y CRL, como po ejemplo las capas de ipo: co ela ion_1d  ,cons an  , o silence  , hacen que no sea posible el po a las a OpenVINO. Imagen ob enida de una p esen ación de In el. En ella se mues a cuáles son las capas sopo adas pa a la ans o mación a OpenVINO dependiendo del ha dwa e al que aya a es a des inada la ed. 66 4.5.4- Redes p e-en enadas de clasi icación de obje os El obje i o de es e apa ado es comp oba que OpenVINO es una solución eal pa a la po abilidad y mejo a en el iempo de in e encia de edes de clasi icación de obje os de inidas sob e di e en es amewo ks. Pa a ello se con ie en las dis in as edes a o ma o OpenVINO, ob eniendo el XML y el bina io. Es e paso se ealiza con una ed AlexNe y o a VGG-16 sob e dos amewo ks dis in os, Ca e, que puede se ans o mada di ec amen e a OpenVINO, y Ke as, que iene que se ans o mada p ime o a ONNX y pos e io men e ealiza la con e sión a OpenVINO. La ans o mación se ealiza pa a cada ed dos eces, una pa a CPU y o a pa a Mo idius, un disposi i o de bajo consumo de In el, c eado especialmen e pa a ealiza una g an can idad de cálculos en un iempo bajo, lo cual es ideal pa a un ehículo au ónomo. Pa a pode ealiza la con e sión a CPU, es necesa io que se ealice una op imización del modelo pa a que abaje con ope aciones de FP32. En cambio, pa a pode se empleado en Mo idius, se ha de ealiza la op imización del modelo pa a que abaje con ope aciones de FP16. Es o se indica en un a gumen o al ans o ma lo. Mos amos como ejemplo la ans o mación a OpenVINO de una ed AlexNe que es aba en Ke as y ha sido pasada a ONNX. El comando pa a la ans o mación a CPU con FP32 es el siguien e: py hon3 /op /in el/comppu e _ ision_sdk/deplymen _ ools/model_op imize /mo.py --inpu _model alexne .onnx Gene ando la salida siguien e: Con e sión de AlexNe en Ke as a OpenVINO FP32 EL Comando pa a la ans o mación pa a el uso de Mo idius con FP16: py hon3 /op /in el/compu e _ ision_sdk/deploymen _ ools/model_op imize /mo.py --inpu _model alexne .onnx --da a_ ype FP16 67 Gene ando la salida siguien e: Con e sión de AlexNe en Ke as a OpenVINO FP16 Una ez ob enido el modelo op imizado y dado que la in ención es e si se p oducen mejo as a la ho a de hace in e encia en la clasi icación de imágenes, odas las edes han clasi icado la misma imagen de un coche. Imagen u ilizada pa a el es eo de las edes con OpenVINO 28 A con inuación se mues an los esul ados de los iempos de in e encia al clasi ica es a imagen en las edes de AlexNe y VGG-16 en los amewo k de Ca e y Ke as, usando solo la CPU sin la op imización que e p oduce OpenVINO, y usando las op imizaciones de OpenVINO an o pa a CPU, como pa a el disposi i o Mo idius. 28   h ps://www.elmundo.es/mo o /2018/07/30/5b5e 0ee22601d5b158b459e.h ml 68 Tiempos de in e encia(ms) F amewo k Ca e Ke as Red AlexNe VGG-16 AlexNe VGG-16 Pa a CPU sin Op imiza 350 2970 670 1330 Op imizada pa a CPU 31,5 212,9 37,8 211 Op imizada pa a Mo idius 86,2 717,3 79 776,7 Los alo es de los iempos es án en milisegundos. En es a abla se puede obse a los siguien es esul ados pa a una misma ed implemen ada en un amewo k conc e o: ● Pa a la ed AlexNe pa a Ca e, se consigue en o no a un 1100% de mejo a al op imiza el modelo pa a CPU, y una mejo a de ap oximadamen e un 400% al ealiza la op imización pa a Mo idius. Aunque con la op imización pa a CPU se consigue un 270% de mejo a con espec o a la de Mo idius. ● Pa a la ed VGG-16 pa a Ca e se consigue en o no a un 1400% de mejo a al op imiza el modelo pa a CPU, y una mejo a de ap oximadamen e un 415% al ealiza la op imización pa a Mo idius. Aunque con la op imización pa a CPU se consigue un 335% de mejo a con espec o a la de Mo idius. ● Pa a la ed AlexNe pa a Ke as, se consigue en o no a un 1770% de mejo a al op imiza el modelo pa a CPU, y una mejo a de ap oximadamen e un 850% al ealiza la op imización pa a Mo idius. Aunque con la op imización pa a CPU se consigue un 210% de mejo a con espec o a la de Mo idius. ● Pa a la ed VGG-16 pa a Ke as se consigue más de un 630% de mejo a al op imiza el modelo pa a CPU, y una mejo a de ap oximadamen e un 170% al ealiza la op imización pa a Mo idius. Aunque con la op imización pa a CPU se consigue un 370% de mejo a con espec o a la de Mo idius. Hay que ene en cuen a que Mo idius es un disposi i o de bajo consumo y que aun así ha conseguido educi en g an medida los iempos o iginales, a pesa de no educi los iempos más que la op imización pa a CPU. Po o o lado, se pueden obse a los siguien es esul ados a endiendo a las dis in as op imizaciones: 69 ● Pa a CPU sin op imiza , los iempos en las edes AlexNe son bas an e meno es que los iempos de las edes VGG-16, ya que la opología de la VGG-16 es mucho más compleja. Po o o lado llama la a ención que en Ca e la ed AlexNe a da ap oximadamen e la mi ad de iempo en clasi ica que su homóloga en Ke as, sin emba go, la ed VGG-16 a da ap oximadamen e la mi ad de iempo en clasi ica en Ke as que en Ca e. ● Pa a la op imización con OpenVINO, an o pa a CPU como pa a Mo idius es muy llama i o que aunque las di e encias en in e encia de las edes en los dis in os amewo ks e an di e en es, al se op imizadas, cada ed pasa a ene unos iempos de in e encia muy simila es, independien emen e del amewo k en el que hubiesen sido implemen adas. Cabe des aca que al medi los iempos de in e encia pa a comp oba si hay una mejo a, se ha comp obado que al ealiza la op imización, no solo mejo a el iempo, sino la p ecisión de la clasi icación, como puede obse a se en es e ejemplo de la VGG-16: P obabilidades o denadas de mayo a meno pa a VGG-16 pa a CPU sin op imiza : 1. 0.2419953 label 436: 'beach wagon, s a ion wagon, wagon, es a e ca , beach waggon, s a ion waggon, waggon', 2. 0.1655973 label 817: 'spo s ca , spo ca ', 3. 0.1615566 label 751: ' ace , ace ca , acing ca ', 4. 0.1043116 label 717: 'pickup, pickup uck', 5. 0.1040226 label 468: 'cab, hack, axi, axicab', P obabilidades o denadas de mayo a meno pa a VGG-16 pa a CPU op imizada: 1. 0.3889190 label 751: ‘ ace , ace ca , acing ca ’, 2. 0.1899234 label 817: ‘spo s ca , spo ca ’, 3. 0.1435201 label 436: 'beach wagon, s a ion wagon, wagon, es a e ca , beach waggon, s a ion waggon, waggon', 4. 0.0781002 label 468: ‘cab, hack, axi, axicab’, 5. 0.0765963 label 717: 'pickup, pickup uck', Se obse a una mejo a signi ica i a de la p ecisión al clasi ica la imagen, ya que la p obabilidad de que sea un coche de ca e as, o depo i o al 58% y una u gone a al 14% desc iben mucho mejo la imagen del coche empleada que el se una u gone a al 24% y un coche de ca e as o depo i o al 32%. 70 4.5.5- Red de clasi icación de obje os con ine- une P e iamen e se han ealizado p uebas con edes en enadas sob e ImageNe , un da ase que dis ingue 1000 clases y no es á ocalizado exclusi amen e en la conducción. Pa a ace ca más el abajo al mundo de la conducción, en es e apa ado se usa una ed Incep ion- 3 (explicada an e io men e) la cual se adap a pa a clasi ica los coches más obados en Es ados Unidos. El p oceso del en enamien o y congelación se ealiza empleando el amewo k Ke as, pa a inalmen e ans o ma la ed a o ma o OpenVINO y pode ealiza la clasi icación y compa a los esul ados. Dicho p oceso es ealizado bajo el mismo ambien e con OpenVINO u ilizado con el es o de edes. Aunque el p ime paso es en ena la ed, en nues o caso se ha decidido u iliza una ed p e-en enada sob e ImageNe pa a agiliza el p oceso de en enamien o, sob e la cual se ealiza un ine- une con un da ase p opio, un conjun o de imágenes con los 9 modelos de los coches más obados en Es ados Unidos. Con es o se consigue adap a la ed de p opósi o gene al a nues o obje i o mucho más conc e o. Honda Ci ic (1997): coche más obado en Es ados Unidos. Imágenes pe enecien es al da ase pa a ine- une. El p oceso pa a consegui es o consis e en ca ga la ed con los pesos de ImageNe sin añadi las capas inales, ya que el núme o de clases que se an a in e i no son 1000 como ocu e en ImageNe , sino que el núme o de clases es á de inido po el nue o da ase empleado pa a el ine- une, en es e caso 9 clases. Po lo an o hay que añadi manualmen e las úl imas capas, con el núme o de salidas igual al nue o núme o de clases que se an a iden i ica . T as adap a la ed pa a clasi ica las nue as clases en las que nos amos a cen a , es necesa io compila la ed an es de ealiza el ine- une y gua da la ed con los nue os pesos. Se ha decidido ealiza es e mismo p oceso de ine- une una ez más sob e oda la 71 ed gene ada, pe o con un a io de ap endizaje meno , pa a no modi ica d ás icamen e el esul ado an e io y que man enga un g an po cen aje de ajus es de pesos sob e ImageNe . An es de pode con e i la ed a o o o ma o es necesa io congela la, c eando un g a o cuyas a iables de los nodos de salida se ans o man en cons an es. Dado que Ke as u iliza como backend Tenso Flow, es posible expo a la ed a un o ma o congelado de ed congelada Tenso Flow, pe mi iéndose así ans o ma lo di ec amen e al o ma o op imizado de OpenVINO sin ealiza ans o maciones p e ias como sucede con PyTo ch, explicado an e io men e. py hon3 /op /in el/comppu e _ ision_sdk/deplymen _ ools/model_op imize /mo.py --inpu _model=s uden s-wo kpsace/ _model/ op_laye s.i 3.pb --inpu _shape=[1,299,299,3]. Resul ado exi oso de la ans o mación de Incep ion al modelo op imizado pa a OpenVINO A pa i del modelo op imizado pa a OpenVINO y el modelo sin op imiza se ealiza el p oceso de in e encia. Es e p oceso se ealiza en CPU con y sin OpenVINO y además se u iliza el disposi i o Mo idius de bajo consumo ene gé ico con OpenVINO. Tiempos de in e encia(ms) Red Pa a CPU sin Op imiza Op imizada pa a CPU Op imizada pa a Mo idius Incep ion- 3 1084 127 338 Los alo es de los iempos es án en milisegundos. En compa ación con la in e encia sob e la misma ed sin OpenVINO y con OpenVINO, se obse a una mejo a de iempo de in e encia bas an e g ande. Mien as que sin OpenVINO en CPU ob enemos al ededo de 1,08 segundos, con OpenVINO ob enemos 0.127 segundos. Es o implica una mejo a del 750% mejo , es deci , casi 9 eces más ápida. Incluso en Mo idius la mejo a ha sido de un 220%, es deci , más de 3 eces más ápida. 72 Manuel O eja Val e de Du an e es e abajo he ealizado las siguien es a eas en el siguien e o den c onológico: 1. Ap endizaje sob e in eligencia a i icial, clasi icación y de ección de obje os a a és de la documen ación y ídeos disponibles en los cu sos de in eligencia a i icial de la Uni e sidad Au ónoma de Ba celona (UAB). 2. T abajo con Ke as sob e edes neu onales con olucionales. En es e abajo comencé con la simple u ilización de edes neu onales pa a clasi icación de obje os que Ke as disponía, con el in de ealiza in e encia sob e di e en es imágenes y comp oba sus esul ados. Pos e io men e abajé con edes neu onales no disponibles en Ke as, como AlexNe , y que se podían de ini a a és de la de inición de sus capas median e es e mismo amewo k. Es o implica, además de de ini su a qui ec u a, en ena las con da ase s como CIFAR10. Además se e alué, gua dé y ca gué los modelos en enados gene ados. 3. T abajo con edes neu onales o ien adas al cálculo de la dispa idad. Es a ase ha sido la más la ga debido a que u imos que encon a y p oba edes disponibles en el KITTI que u iesen publicado su código en eposi o ios y que además diesen la opo unidad de en ena e in e i , pa a pos e io men e se e aluadas con las u ilidades disponibles en el De elopmen Ki de KITTI. En mi caso abajé con a ias edes: a. P ime amen e con PSMNe sob e PyTo ch. Du an e el p ime in en o no la pude p oba , ya que no eníamos una máquina con GPU. La causa e a que, a pesa de que la ed iene p epa ada pa a se usada sob e una CPU, no uncionó, a pesa de que ealicé pequeñas modi icaciones pa a o za a que el modelo uese compa ible con CPU. Du an e el segundo in en o, ya con una máquina con GPUs al ed uncionó, pe o no sin habe sol en ado an e io men e las limi aciones de memo ia de GPUs, almacenamien o en disco y iempo, explicadas an e io men e. Una ez la ed dejó de en ena y gene ó odos los checkpoin s de las 200 épocas ejecu é el código de in e encia sob e el da ase de KITTI. Pa a mejo a aún más las in e encia, ealicé 100 épocas de ine- une sob e el da ase de KITTI con sus espec i os checkpoin s.T as comp oba que las imágenes pa ecían es a bien gene adas u ilicé el De elopmen Ki del KITTI. Pos e io men e lo ejecu é pa a ealiza las e aluaciones sob e a ios conjun os de imágenes in e idas de di e en es checkpoin s de nues o en enamien o. Finalmen e ambién epe í es e p oceso con las edes p e-en enadas disponibles en el eposi o io pa a compa a esul ados con las que en enamos. 79 Una ez ob enido los esul ados in en e gene a el modelo op imizado de PSMNe pa a ealiza la in e encia sob e OpenVINO y así medi la mejo a de elocidad que p opo ciona. Como OpenVino no sopo a edes PyT och, si que emos usa modelos PyTo ch enemos que con e i los a ONNX p e iamen e. P ime amen e hice p uebas con edes simples como AlexNe a a és de edes ya p e-en enadas p opo cionadas po PyTo ch. Una ez conseguido, ealicé lo mismo conPSMNe pe o no ue posible. b. T as habe ob enido el an e io esul ado quisimos u iliza o a ed en o o amewo k que pudiese se in e ida con y sin OpenVINO pa a medi la mejo a de elocidad de in e encia. MADNe ue la escogida, implemen ada sob e Tenso Flow. Pa a comenza su in e encia an es gene é un .cs con las u as a las imágenes del da ase de KITTI a pa i de un sc ip de bash. T as es o gene é las imágenes in e idas y las e alué con el De elopmen Ki de KITTI, p e iamen e adap ado. Finalmen e se expo ó la ed a la máquina 7Picos que disponía de OpenVINO. Allí ejecu é el sc ip de con e sión a modelo op imizado pa a OpenVINO sin éxi o, y as no encon a solución e minamos de abaja con la ed. c. Po úl imo abajé con la ed Incep ion- 3. La inalidad e a ealiza sob e la ed un en enamien o/ ine- une pa a pos e io men e congela la y ans o ma la al o ma o op imizado pa a OpenVINO con obje i o de in e i sob e la misma. 4. Documen ación del abajo, especialmen e en ocándose en la documen ación de esul ados y conclusiones de las edes con las que abajé. 80 Alejand o Pascua Piña A lo la go de es e abajo he ealizado las siguien es ac i idades: 1. Visualización de ídeos y lec u a de documen os de la Uni e sidad Au ónoma de Ba celona (UAB) sob e el ap endizaje con in eligencia a i icial y la clasi icación y de ección de obje os. 2. Toma de con ac o con edes neu onales sencillas como AlexNe , ealiza en enamien o y clasi icación con ellas. 3. Es udio de Ca e sob e el uncionamien o de cómo en ena edes neu onales y cómo usa las pos e io men e pa a ealiza clasi icación de obje os. a. Siendo necesa ios el en enamien o: i. La a qui ec u a de la ed, un ain.p o o x ii. Un sol e pa a pode en ena lo, un sol e .p o o x Du an e el en enamien o se an p oduciendo dis in os a chi os que an gua dando los a ances p oducidos en el en enamien o, los .sol e s a e, así si, si pa as el en enamien o o és e acaba epen inamen e po alguna azón (co e de luz po ejemplo), puedes ol e a pone la ed a en ena desde el úl imo “pun o de gua dado”. Finalmen e ob ienes un a chi o con los pesos pa a la ed, necesa io pa a u iliza la, los .ca emodel. b. Siendo necesa ios pa a la clasi icación: i. Un deploy del modelo, un deploy.p o o x ii. Los pesos an e io men e ob enidos, el .ca emodel. Pa a ob ene el deploy, es necesa io qui a las capas de da os del modelo y añadi una capa de en ada. Una ez engas es o ealizado, ya puedes ealiza in e encia sob e o as o os con u ed. 4. En lo e e en e al KITTI, me cen e en las edes SegS e eo y CRL, ya que es aban implemen adas con Ca e. Con ellas ealicé: a. Es udio de las edes y del código p opo cionado pa a pode usa las. b. T a a de compila una ama de Ca e p opo cionada po las edes (cada una la suya), ya que no es aban sopo adas po la ama p incipal de Ca e. Es o lle ó a soluciona di e en es p oblemas sob e lib e ías, y lidia con o os que no uimos capaces de esol e . 81 c. T a a de emplea Docke pa a e i a los p oblemas elacionados con la compilación de las a ian es de Ca e p opo cionadas po las edes, aunque sin éxi o. 5. OpenVino: a. Pasa edes que habían sido p e iamen e p obadas en Ca e a OpenVino pa a comp oba si se p oducía una mejo a en el iempo de in e encia. i. Pasa el modelo de Ca e a OpenVINO con GPU, pe o sin posibilidad de ealiza la in e encia al no dispone de una GPU In el. ii. Pasa el modelo de Ca e a OpenVINO con CPU pa a las edes VGG-16 y AlexNe , p obando la in e encia y comp obando que los iempos ob enidos al ealiza la in e encia con él, son mucho meno es. iii. Pasa el modelo de Ca e de las edes an e io es a OpenVINO con FP16, pa a pode ealiza la in e encia en el Mo idius, un disposi i o cen ado en el bajo consumo. i . T a a de comp oba los iempos de in e encia con un modelo de FP16 sob e CPU sin éxi o, ya que al pa ece , solo acep a FP32. 6. En la memo ia: a. Redes Neu onales b. Conducción Au ónoma c. P ime os Pasos d. OpenVINO desde Ca e 82 Ma cos Robles Palencia Du an e es e abajo he ealizado las siguien es ac i idades: 1. Ap endizaje a a és de la isualización de ideos y lec u a de documen os de la Uni e sidad Au ónoma de Ba celona (UAB), sob e in eligencia a i icial, clasi icación y de ección de obje os. Es o ue de g an u ilidad pa a inicia me en es e mundo an en auge, pues o que me ayudó a abaja con modelos, ealiza medidas de endimien o, conoce el uncionamien o del a amien o de los píxeles de la imagen pa a pode clasi ica los y sabe a qué clase pe enecen. Ap endizaje sob e machine lea ning, edes neu onales y su aplicación en la conducción au ónoma. 2. T abajo con edes de clasi icación de obje os: a. Ob ene in o mación de es e ipo de edes, a a és de sus pape s, pa a conoce su uncionamien o. b. P epa ación del en o no pa a ejecu a las dis in as edes neu onales con olucionales, buscando in o mación de cada amewo k en el cual es aban desa olladas. Muchas me die on e o es, y al inal conseguí en ena y es ea las siguien es: i. Una implemen ación de AlexNe en Ke as, pa a la cual u e que in o ma me sob e el da ase de CIFAR10 y cómo consegui que es a ed pudiese ene es e da ase de en ada, pa a en ena y es ea la pos e io men e. ii. Una implemen ación de una ed p een enada de VGG-16 de Ke as pa a su in e encia con el da ase de CIFAR10. iii. Finalmen e, almacene los pesos y la opología de las edes pa a pos e io men e usa las pa a la in e encia en OpenVINO. 3. T abajo con edes o ien adas al cálculo de dispa idad: a. Busque in o mación en la página de KITTI, pa a usa su da ase , sob e odo el de imágenes de s e eo sob e conducción y de las edes de dispa idad que se p opo cionaban, pa a ello in es igue las edes de p edicción de dispa idad. En es e paso u e especial di icul ad, po las pocas edes con código disponible y uncional. Me cen é en abaja sob e las siguien es edes: 83 i. T abajo con la ed de dispa idad PSMNe . Lo p ime o ue in o ma me sob e el da ase SceneFlow, pa a inalmen e usa de los 3 da ase exis en es el de conducción, po los p oblemas de espacio que u e en la máquina, explicados en la memo ia. Una ez esuel os es os p oblemas, me dispuse a en ena la con di e en es épocas, pa a pos e io men e e alua los cambios de endimien o. Conseguí ejecu a es e en enamien o en a ias GPUs. Realice p uebas de in e encia sob e el da ase del KITTI2015 y ejecu é el es udio pa a calcula el e o de dispa idad, que e p o ee la página, y de es a o ma ob ene los esul ados mos ados an e io men e. ii. T abajo con la ed de dispa idad MADNe . En es a ed conseguí ealiza la in e encia sob e el da ase del KITTI2015 y ejecu é el es udio pa a calcula el e o de dispa idad, que e p o ee la página, y de es a o ma ob ene los esul ados mos ados an e io men e. 4. T abajo con OpenVINO: a. In en é pasa las edes PSMNe y MADNe pa a su ejecución en las he amien as de OpenVINO, con los esul ados nega i os, al p oduci se los e o es de con e sión mos ados an e io men e. b. Sob e las edes de clasi icación de obje os con las que abajé al p incipio (AlexNe y VGG-16): i. Las ans o mé a o ma o ONNX y ejecu é los sc ip s pa a pode consegui los a chi os necesa ios pa a la in e encia. ii. Realicé la in e encia en CPU u ilizando OpenVINO y de ahí saqué los esul ados de iempos y clases, con mayo p obabilidad ob enida, de cada ed. iii. Op imicé el modelos de las edes con FP16, pa a ealiza la in e encia en el disposi i o Mo idius, y de ahí saqué los esul ados de iempos y clases, con mayo p obabilidad ob enida de cada ed. 5. Documen ación del abajo: El abajo que he ealizado en la memo ia ha sido: po ada no malizada, in oducción, ecnologías u ilizadas, edes de clasi icación de obje os, explicación de las a eas ealizadas con PSMNe y MADNe , incluyendo g á icas, abajo con OpenVINO y conclusiones. 84 7.- Anexos I Tecnologías u ilizadas 7.1.- Py hon 29 Logo de Py hon 30 Py hon es un lenguaje de p og amación mul ipa adigma, sopo a o ien ación a obje os, p og amación impe a i a y p og amación uncional. Es un lenguaje in e p e ado, usa ipado dinámico y es mul ipla a o ma. Es adminis ado po la Py hon So wa e Founda ion. Posee una licencia de código abie o, que es compa ible con la Licencia pública gene al de GNU a pa i de la e sión 2.1.1. Exis en múl iples lib e ías de código abie o en ocadas a su uso pa a Deep Lea ning en lenguaje Py hon. Las más impo an es son: Tenso Flow, Theano, Ke as, Ca e, Lasagne, DSSTNE, P e yTenso , To ch, mxne , DL4J, y Mic oso Cogni i e Toolki . Py hon o ece lib e ías de he amien as cien í icas, numé icas, he amien as de análisis y es uc u as de da os, y algo i mos de Machine Lea ning como NumPy, SciPy, Ma plo lib, Pandas o PyB ain. También o ece en o nos in e ac i os de p og amación o ien ados a Da a Science. 29 h ps://www.py hon.o g/ 30   h ps://es.wikipedia.o g/wiki/A chi o:Py hon.s g 85 7.2.- Ca e 31 Logo de Ca e 32 Ca e es uno de los amewo ks más an iguos, ue desa ollado po Be keley Al Resea ch (BAIR) y posee una licencia de código abie o BSD 2-Clause license. En e las p incipales ca ac e ís icas se encuen an: a qui ec u a que omen a la inno ación, código expandible que omen a el desa ollo ac i o, elocidad pa a la ealización de in es igaciones y una comunidad in e esada. Ca e sopo a di e en es ipos de a qui ec u a de deep lea ning pa a clasi icación de imágenes y segmen ación de imágenes. Sopo a CNN, RCNN, LSTM y edes neu onales o almen e conec adas. Ca e sopo a acele ación de cálculos basados en GPU. No es un amewo k de p opósi o gene al. Se cen a únicamen e en la isión a i icial. Los incon enien es que imos es que no e a nada lexible y la documen ación es bas an e pob e. Uno de los pun os lacos que iene es la di icul ad de ins alación. Tiene muchas dependencias que esol e . P opo ciona una API de p og amación pa a Py hon y Ma lab pa a cambios sencillos, aunque si se quie e in oduci cambios signi ica i os deben de se p og amados en C++ o en CUDA. 31 h ps://ca e.be keley ision.o g/ 32   h ps://maxchama.blogspo .com/2019/03/ca e-deep-lea ning- amewo k.h ml 86 7.3.- Ke as 33 Logo de Ke as 34 Ke as es una biblio eca de Redes Neu onales de Código Abie o esc i a en Py hon. Es capaz de ejecu a se sob e Tenso Flow. Es á diseñada sob e odo pa a posibili a la expe imen ación en más o menos poco iempo con edes de deep lea ning. Sus p incipales ca ac e ís icas se cen an en se amigable pa a el usua io, modula y ex ensible. Su au o p incipal y man enedo ha sido el ingenie o de Google F ançois Cholle . Cholle expone que Ke as ha sido concebido pa a ac ua como una in e az en luga de se una amewo k de machine lea ning s andalone. O ece un conjun o de abs acciones más in ui i as y de al o ni el haciendo más sencillo el desa ollo de modelos de deep lea ning independien emen e del backend compu acional u ilizado. Ke as con iene a ias implemen aciones de los bloques pa a la cons ucción de las edes neu onales como po ejemplo los laye s, unciones obje i o, unciones de ac i ación y op imizado es ma emá icos. Se ca ac e iza po un modelo de p og amación sin ado nos, pa a maximiza la legibilidad y minimiza las líneas de código,además dispone de una documen ación muy comple a. 33 h ps://ke as.io/ 34   h ps://commons.wikimedia.o g/wiki/File:Ke as_Logo.jpg 87 7.4.- Py o ch 35 Logo de Py o ch 36 PyTo ch es una lib e ía de código abie o de Py hon basado en To ch es á diseñada pa a ealiza cálculos numé icos haciendo uso de la p og amación de enso es. Además pe mi e su ejecución en GPU pa a acele a los cálculos. PyTo ch se suele usa pa a sus i ui numpy y p ocesa los cálculos en GPU y pa a la in es igación y desa ollo en el campo del machine lea ning, cen ado p incipalmen e en el desa ollo de edes neu onales. PyTo ch es una lib e ía muy ecien e, sin emba go, dispone de g an can idad de manuales y u o iales donde encon a ejemplos. Además de una comunidad que es á c eciendo ápidamen e. PyTo ch dispone una in e az muy sencilla pa a la c eación de edes neu onales pese a abaja de o ma di ec a con enso es sin la necesidad de una lib e ía a un ni el supe io . PyTo ch abaja con g a os dinámicos en ez de es á icos, es deci , en iempo de ejecución se pueden i modi icando las unciones y el cálculo del g adien e a ia á con ellas. PyTo ch dispone de sopo e pa a su ejecución en a je as g á icas (GPU), u iliza in e namen e CUDA. 35 h ps://py o ch.o g/ 36   h ps://commons.wikimedia.o g/wiki/File:Py o ch_logo.png 88 8.- Bibliog a ía h ps://gi hub.com/yangguo un/SegS e eo @inp oceedings{yang2018SegS e eo, au ho = {Yang, Guo un and Zhao, Hengshuang and Shi, Jianping and Deng, Zhidong and Jia, Jiaya}, i le = {SegS e eo: Exploi ing Seman ic In o ma ion o Dispa i y Es ima ion}, book i le = ECCV, yea = {2018} } h ps://gi hub.com/A i ineu o/c l @inp oceedings{pang2017cascade, i le={Cascade esidual lea ning: A wo-s age con olu ional neu al ne wo k o s e eo ma ching}, au ho ={Pang, Jiahao and Sun, Wenxiu and Ren, Jimmy SJ and Yang, Chengxi and Yan, Qiong}, book i le = {ICCV Wo kshop on Geome y Mee s Deep Lea ning}, mon h = {Oc }, yea = {2017} } h ps://gi hub.com/JiaRenChang/PSMNe @inp oceedings{chang2018py amid, i le={Py amid S e eo Ma ching Ne wo k}, au ho ={Chang, Jia-Ren and Chen, Yong-Sheng}, book i le={P oceedings o he IEEE Con e ence on Compu e Vision and Pa e n Recogni ion}, pages={5410--5418}, yea ={2018} } h ps://gi hub.com/CVLAB-Unibo/Real- ime-sel -adap i e-deep-s e eo @InP oceedings{Tonioni_2019_CVPR, au ho = {Tonioni, Alessio and Tosi, Fabio and Poggi, Ma eo and Ma occia, S e ano and Di S e ano, Luigi}, i le = {Real- ime sel -adap i e deep s e eo}, book i le = {The IEEE Con e ence on Compu e Vision and Pa e n Recogni ion (CVPR)}, mon h = {June}, yea = {2019} 95 } KITTI @INPROCEEDINGS{Menze2015CVPR, au ho = {Mo i z Menze and And eas Geige }, i le = {Objec Scene Flow o Au onomous Vehicles}, book i le = {Con e ence on Compu e Vision and Pa e n Recogni ion (CVPR)}, yea = {2015} } [1]h ps://www.analy ics idhya.com/blog/2017/08/10-ad anced-deep-lea ning-a chi ec u es-d a a-scien is s/: In o mación sob e edes neu onales con olucionales. [2] h ps:// adiopaedia.o g/a icles/ba ch-size-machine-lea ning: In o mación sob e el ba ch size. [3] h ps://gi hub.com/BIGBALLON/ci a -10-cnn: Dis in as edes con CIFAR10. [4] h ps://gi hub.com/NVIDIA/DIGITS/issues/156: In o mación sob e un e o apa ecido en la compilación de Ca e. [5]h ps://askubun u.com/ques ions/960238/n cc- a al-unsuppo ed-gpu-a chi ec u e-compu e-20: In o mación sob e un e o de la GPU. [6] h ps://so wa e.in el.com/en-us/a icles/OpenVINO-IE-Samples#image-classi ica ion: In o mación de OpenVINO Toolki . [7] h ps://gi hub.com/BVLC/ca e/issues/3028: Soluciona e o OpenBLAS al compila Ca e. [8] h p://www.c libs.ne /da ase s/ki i/: Página p incipal de KITTI. [9] h ps://gi hub.com/yangguo un/SegS e eo: Reposi o io de la ed SegS e eo. [10] h ps://gi hub.com/mo idius/ncappzoo/blob/mas e /ca e/AlexNe / un.py: Sc ip de ejecución de AlexNe pa a MOVIDIUS. [11] h ps://gis .gi hub.com/huyng/34b0b5e6a 6e623 331 : Ejemplo de in e encia con Ca e. [12]h ps://picodo de .gi hub.io/blog-bi ix/2014/11/como-c ea -una-imagen-pa a-docke -usan do-un-docke ile/: In o mación pa a c ea un docke . [13]h ps://ca e.be keley ision.o g/: Página p incipal de Ca e [14] h ps://gi hub.com/BVLC/ca e/wiki/Using-a-T ained-Ne wo k:-Deploy: C eación de un a chi o Deploy a pa i de una de inición de ed. [15] h ps://gi hub.com/n idia/digi s/issues/1107: Soluciona e o no se encuen a Ca e. [16] h ps://docs.docke .com/engine/ e e ence/commandline/image_build/: In o mación pa a c ea la imagen de un docke . [17] h ps://gi hub.com/in el/ca e: Reposi o io de INTEL del amewo k Ca e. [18] h ps://gi hub.com/BVLC/ca e: Reposi o io p incipal del amewo k Ca e. [19] h ps://iie. ing.edu.uy/publicaciones/2005/Lec05a/Lec05a.pd : Pape sob e el cálculo de la dispa idad en imágenes es é eo. [20]h ps://s acko e low.com/ques ions/30830987/how- o-c ea e-an-ca emodel- ile- om- ai ning-image-and-i s-labeled: Cómo ob ene un ca emodel. [21] h p://shengshuyang.gi hub.io/A-s ep-by-s ep-guide- o-Ca e.h ml: In o mación sob e la ins alación y u ilización de Ca e. [22] h ps://gi hub.com/A i ineu o/c l/: Reposi o io p incipal de la ed CRL. [23] h ps://es.wikipedia.o g/wiki/In eligencia_a i icial: In o mación de in eligencia a i icial. 96 [24] h ps://es.wikipedia.o g/wiki/Tes _de_Tu ing: In o mación del Tes de Tu ing. [25] h ps://hipe ex ual.com/2016/12/ ipos-de-in eligencia-a i icial: A ículo sob e la In eligencia A i icial. [26] h ps://omic ono.elespanol.com/2018/10/que-es-la-in eligencia-a i icial/: In o mación sob e in eligencia a i icial. [27] h ps://www.apd.es/ ipos-de-in eligencia-a i icial/: A ículo sob e los ípos de IA. [28]h ps://www.blog.andaluciaesdigi al.es/deep-lea ning-in eligencia-a i icial-y-machine-lea ning/: A ículo sob e la di e encia en e In eligencia A i icial, Deep Lea ning y Machine Lea ning. [29] h ps://es.wikipedia.o g/wiki/Ap endizaje_p o undo: In o mación sob e el ap endizaje p o undo o deep lea ning. [30] h ps://es.ma hwo ks.com/disco e y/deep-lea ning.h ml: A ículo sob e la impo ancia del Deep Lea ning. [31] h ps://es.wikipedia.o g/wiki/Ap endizaje_supe isado: In o mación sob e el ap endizaje supe isado. [32] h ps://es.wikipedia.o g/wiki/Ap endizaje_no_supe isado: In o mación sob e el ap endizaje no supe isado. [33] h ps://es.wikipedia.o g/wiki/Dispa idad_binocula : In o mación sob e dispa idad binocula . [34] h ps://compu e isiononline.com/da ase /1105138650: A ículo sob e el benchma k de KITTI. [35]h ps://www.analy ics idhya.com/blog/2017/08/10-ad anced-deep-lea ning-a chi ec u es- da a-scien is s/: a ículo sob e a qui ec u as de deep lea ning. [36] h ps://www.cs. o on o.edu/~k iz/ci a .h ml: In o mación y a chi os del da ase CIFAR10. [37]h ps://www.xa aka.com/ obo ica-e-ia/las- edes-neu onales-que-son-y-po -que-es an- ol iendo: A ículo sob e las Redes Neu onales. [38] h ps://en.wikipedia.o g/wiki/A i icial_neu al_ne wo k: In o mación sob e las edes neu onales. [39]h p://www.and eyku enko .com/w i ing/ai/a-b ie -his o y-o -neu al-ne s-and-deep-lea nin g/: A ículo sob e la his o ia de las edes neu onales. [40] h ps://en.wikipedia.o g/wiki/Con olu ional_neu al_ne wo k#Dis inguishing_ ea u es: A ículo sob e las Redes Con olucionales. [41] h ps://ujjwalka n.me/2016/08/11/in ui i e-explana ion-con ne s/: In o mación sob e edes neu onales con olucionales. [42] h ps://en.wikipedia.o g/wiki/Sel -d i ing_ca : In o mación sob e la conducción au ónoma. [43] h ps://www.bmw.com/en/au omo i e-li e/au onomous-d i ing.h ml: In o mación sob e conducción au onoma. [44]h ps://www.na ionalgeog aphic.com.es/p omociones/pasado-p esen e- u u o-conduccio n-au onoma_12014: A ículo sob e la Conducción Au ónoma. [45] h ps://www.au onocion.com/his o ia-coche-au onomo/: A ículo sob e los coches au ónomos. [46] h ps://es.wikipedia.o g/wiki/Py hon: A ículo sob e Py hon. [47] h ps://da a-speaks.luca-d3.com/2018/05/deep-lea ning-con-py hon-in oduccion.h ml: Se ie de a ículos sob e Deep Lea ning con Py hon. 97 [48] h ps://da a-speaks.luca-d3.com/2018/03/a e e e-con-el-py hon-un-expe imen o.h ml: A ículo sob e Py hon. [49]h ps://medium.com/@ ica do.gue e o/ amewo ks-de-deep-lea ning-un- epaso-an es-d e-acaba -el-2016-5b9b 5b9 9a : In o mación sob e amewo ks de deep lea ning. [50]h p://www.diegocal o.es/implemen acion-de- edes-neu onales-compa a i a- amewo ks /: In o mación y compa ación sob e amewo ks de deep lea ning. [51] h ps://en.wikipedia.o g/wiki/Ca e_(so wa e): A ículo sob e el amewo k Ca e. [52] h ps://es.wikipedia.o g/wiki/Ke as: In o mación sob e el amewo k de Ke as. [53]h p://www.diegocal o.es/implemen acion-de- edes-neu onales-compa a i a- amewo ks /: A ículo sob e dis in os amewo ks pa a la implemen ación de Redes Neu onales. [54]h ps://medium.com/@ ica do.gue e o/ amewo ks-de-deep-lea ning-un- epaso-an es-d e-acaba -el-2016-5b9b 5b9 9a : A ículo sob e emewo ks de deep lea ning. [55]h ps://plane acha bo .com/deep-lea ning- %C3%A1cil-con-deepcogni ion-9a 43b2319ba : In o mación sob e deep lea ning y amewo ks de deep lea ning. [56] h ps://cle e py.com/que-es-py o ch-y-como-se-ins ala/: A ículo explica i o sob e PyTo ch. [57] h ps://en.wikipedia.o g/wiki/PyTo ch: In o mación sob e PyTo ch. [58] h ps://es.wikipedia.o g/wiki/Tenso Flow: In o mación sob e Tenso Flow. [59]h ps://medium.com/@ ica do.gue e o/ amewo ks-de-deep-lea ning-un- epaso-an es-d e-acaba -el-2016-5b9b 5b9 9a : A ículo sob e amewo ks de Deep Lea ning. [60]h p://www.diegocal o.es/implemen acion-de- edes-neu onales-compa a i a- amewo ks /: Compa ación de amewo ks de Deep Lea ing. [61]h ps://news oom.in el.la/news- eleases/la-in eligencia-de- ision-de-in el- ans o ma-la-in dus ia-del-in e ne -de-las-cosas/#gs.7xuae0: In o mación de in el sob e he amien as de [62]h ps://www.in el.es/con en /www/es/es/in e ne -o - hings/solu ion-b ie s/open ino- oolki - p oduc -b ie .h ml: In o mación sob e OpenVINO. [63]h ps:// hdl.es/aplicacion-de-la-in eligencia-a i icial-en-los-sis emas-de- ision-po -compu ado -usando-open ino/: A ículo sob e In eligencia A i icial con OpenVINO [64] h ps://www.n idia.es/objec /cuda-pa allel-compu ing-es.h ml: A ículo de NVIDIA sob e CUDA. [65] h ps://es.wikipedia.o g/wiki/CUDA: In o mación sob e CUDA. [66] h ps://es.wikipedia.o g/wiki/OpenCL: A ículo explica i o sob e OpenCL. [67]h ps://www.apples e a.com/aplicaciones-os-x-1/opencl-la-al e na i a-lib e-a-cuda-y-el- u u o-de-la-compu acion-gpgpu: A ículo compa a i o en e CUDA y OpenCL [68] h ps://so wa e.in el.com/en-us/open ino- oolki /documen a ion/code-samples: Códigos de ejemplo pa a abaja sob e OpenVINO. [69]h p://docs.open ino oolki .o g/la es /_docs_MO_DG_Deep_Lea ning_Model_Op imize _ De Guide.h ml: Guía pa a op imiza modelos con OpenVINO. [70]h p://docs.open ino oolki .o g/la es /_docs_MO_DG_p epa e_model_con e _model_Co n e _Model_F om_Ca e.h ml: Guía pa a op imiza modelos en Ca e con OpenVINO. [71]h p://docs.open ino oolki .o g/la es /_in e ence_engine_samples_classi ica ion_sample_ README.h ml: Ejemplo de clasi icación con OpenVINO. 98