• Non ci sono risultati.

Análisis de la motilidad intestinal utilizando Convolutional Deep Neural Network y la cápsula endoscópica

N/A
N/A
Protected

Academic year: 2021

Condividi "Análisis de la motilidad intestinal utilizando Convolutional Deep Neural Network y la cápsula endoscópica"

Copied!
59
0
0

Testo completo

(1)

intestinal utilizando

Convolutional Deep Neural

Network y la c´

apsula

endosc´

opica

Autor: Pablo Mart´ınez

Director:

Dr. Santi Segu´ı

Departamento: Matem`

atica aplicada

i an`

alisi

(2)
(3)

La c`apsula endosc`opica ´es una t`ecnica de diagnosi que obre un am-pli camp d’investigaci´o a l’`area cl´ınica. Mitjan¸cant la c`apsula es poden obtenir v´ıdeos de tot el tracte digestiu, ja que aquesta ´es ingerida pel pacient.

S’han realitzat nombrosos treballs relacionats amb l’extracci´o de dades d’aquests v´ıdeos, entre ells una Convolutional Deep Neural Network capa¸c de classificar les imatges de l’intest´ı prim en sis classes diferents.

No obstant aix`o, des que s’obt´e un v´ıdeo, fins que cadascuna de les imatges del v´ıdeo entren a la xarxa s’han de realitzar una serie d’operacions. En la primera part d’aquest document es proposa un proc´es per au-tomatitzar aquesta serie d’operacions sobre un o un conjunt de v´ıdeos, que a m´es permet guardar els resultats de la xarxa de forma que puguin ser tornats a avaluar. En la segona part del document s’utilitzen aquests resultats per crear una aplicaci´o que pret´en, sobre les dades extretes de les imatges, trobar seq¨u`encies en els v´ıdeos i segmentar-los d’acord amb aquestes seq¨u`encies.

La c´apsula endosc´opica es una t´ecnica de diagnostico que abre un amplio campo de investigaci´on en el ´area cl´ınica. Mediante la c´apsula se pueden obtener v´ıdeos de todo el tracto digestivo, ya que esta es ingerida por el paciente.

Se han realizado numerosos trabajos relacionados con la extracci´on de datos de estos v´ıdeos, entre ellos una Convolutional Deep Neural Net-work capaz de clasificar las im´agenes del intestino delgado en seis clases distintas.

Sin embargo, desde que se obtiene un v´ıdeo, hasta que cada imagen del v´ıdeo entra a la Convolutional Deep Neural Network hay que realizar una serie de operaciones. En la primera parte de este trabajo se propone un proceso para automatizar toda esta serie de operaciones sobre uno, o un conjunto de v´ıdeos, que adem´as permite guardar los resultados de la red de forma que puedan ser utilizados de nuevo. En la segunda parte del trabajo se utilizan estos resultados para crear una aplicaci´on que pretende, sobre los datos extra´ıdos de las im´agenes, encontrar secuencias en los v´ıdeos y segmentarlos en base a estas secuencias.

(4)

aparecen en el medio del camino y son tan grandes que te impiden ver mas all´a, ese tipo de piedras que hacen que a cualquiera le entren ganas de sentarse y descansar antes siquiera de plantearse que hacer. Esos son los momentos en los que vuelve un requisito imprescindible tener unos buenos compa˜neros de viaje, ese tipo de gente que es capaz de darte un empujoncito o una colleja cuando toca, o incluso acompa˜narte durante un rato y ayudarte a saltar los baches necesarios.

Este no ha sido un camino f´acil, y hubiese resultado imposible sin los compa˜neros de viaje adecuados. Tengo que agradecer especialmente la confianza de Santi Segu´ı, por la confianza y los ´animos infundidos du-rante estos cinco meses, por las cr´ıticas constructivas, y por ser un apoyo fundamental y necesario para que este trabajo saliera adelante. Tambi´en me gustar´ıa mencionar a Micha l Dro˙zd˙zal por ser una fuente de inspiraci´on por la forma de estructurar y racionalizar los problemas. A Eloi Puertas, por ser, de entre todos los profesores que he tenido a lo largo de estos cuatro a˜nos, el que mas collejas metaf´oricas me ha dado, y con el que he vivido una evoluci´on profesional desde aquellos primeros d´ıas en Pro-gramaci´o I pasando por Disseny de software, Software Distribu¨ıt, hasta Enginyeria del Software y Software Concurrent. Y a Xavier Moreno, por haberme sacado de todos los incendios en los que me he visto envuelto durante estos cuatro a˜nos de carrera.

Tambi´en tengo que hacer una menci´on especial a 11 jugadoras, en concreto las jugadoras de las que soy entrenador de baloncesto, por haber sido mi v´ıa de escape durante estos meses, por haberme dado alas en los momentos mas dif´ıciles.

Y no puedo acabar sin nombrar a aquellas personas con las que lo he compartido todo los ´ultimos a˜nos, las cuestiones acad´emicas, profesion-ales, deportivas. Muchas gracias a Sergio Redondo y a Guillem Palomar por estar ah´ı, siempre.

(5)

2.1.4 Eventos intestinales . . . 10

2.2 Motility bar . . . 10

3 Arquitectura del software 11 3.1 Modulos . . . 11

3.1.1 Aplicaci´on web . . . 11

3.1.2 Convolutional Deep Neuronal Network . . . 12

3.2 Volumen de datos . . . 14

4 Extracci´on de v´ıdeos 15 4.1 Empaquetado de un v´ıdeo en contenedores . . . 16

4.1.1 Un paquete por v´ıdeo . . . 16

4.1.2 Multiples paquetes por v´ıdeo . . . 17

4.2 Empaquetado de un v´ıdeo en un v´ıdeo . . . 18

4.2.1 Comparativa de formatos de compresi´on . . . 19

4.3 Conclusi´on . . . 21

4.4 Proceso de extracci´on en cadena para un conjunto de v´ıdeos . . . 21

4.4.1 Modificaci´on del software Matlab . . . 22

4.4.2 Programaci´on del proceso . . . 23

4.4.3 Pol´ıticas de consistencia de datos y gesti´on de errores . . 23

5 An´alisis de v´ıdeos utilizando Convolutional Deep Neuronal net-work 31 5.1 Descripci´on t´ecnica del an´alisis de v´ıdeos . . . 31

5.2 Analisis de la p´erdida de informaci´on . . . 31

5.2.1 Identificaci´on de im´agenes . . . 32

5.2.2 An´alisis de las diferencias . . . 32

5.2.3 Matriz de confusi´on . . . 36

5.2.4 Conclusiones . . . 36

5.3 Visualizaci´on de los resultados . . . 36

5.3.1 t-SNE . . . 37

(6)

6.2.1 k-means . . . 40 6.2.2 Aplicaci´on de k-means . . . 41 6.3 Segmentaci´on . . . 43 6.3.1 Tratamiento de bordes . . . 43 6.3.2 Tratamiento de ruido . . . 44 6.4 Resultados . . . 45 7 Conclusiones 49 8 Futuros trabajos 50 v

(7)

12 Empaquetado en un fichero . . . 17

13 Test de los m´etodos de extracci´on a ficheros . . . 19

14 Valores promedios de los valores calculados para los diferentes formatos . . . 20

15 Comparativa de las im´agenes de v´ıdeos comprimidos con distintos perfiles. En la imagen 15b se han marcado las ´areas que forman cada una de las im´agenes del mosaico. . . 21

19 Mascara SB2 . . . 22

16 Diferencia en valor absoluto . . . 26

17 Diferencia m´axima en valor absoluto . . . 27

18 Desviaci´on est´andar . . . 28

20 Proceso Matlab de creaci´on de v´ıdeo . . . 29

21 (a) Listado de v´ıdeos (b) Carpeta contenedora de un v´ıdeo . . . 30

22 Comparativa de las im´agenes clasificadas bajo diferentes etiquetas 32 23 Evaluaci´on de las diferencias para la clase Wall . . . 33

24 Evaluaci´on de las diferencias para la clase Wrinkles . . . 33

25 Evaluaci´on de las diferencias para la clase Bubbles . . . 34

26 Evaluaci´on de las diferencias para la clase Turbid . . . 34

27 Evaluaci´on de las diferencias para la clase Clear . . . 35

28 Evaluaci´on de las diferencias para la clase Undefined . . . 35

29 Movimientos intestinales . . . 37

30 t-SNE . . . 38

32 Ejemplo de ejecuci´on del m´etodo k-means con dos iteraciones . . 41

33 Clusters de secuencias de 40 im´agenes . . . 42

34 Clusters de secuencias de 60 im´agenes . . . 42

35 Clusters de secuencias de 80 im´agenes . . . 42

36 Clusters de secuencias de 100 im´agenes . . . 42

37 Clusters de secuencias de 120 im´agenes . . . 43

38 Representaci´on de un punto en una secuencia . . . 44

39 Gr´afica de una secuencia de v´ıdeo segmentada sin suavizado. . . 44

40 Ejemplo de la aplicaci´on de un filtro de mediana . . . 45

41 Comparaci´on de la gr´afica de clases suavizada con el mosaico correspondiente. . . 46

(8)

45 Resultado del an´alisis de secuencias de 100 frames. . . 47 46 Resultado del an´alisis de secuencias de 120 frames. . . 48

(9)

a expulsarla de manera natural. Por otro lado esta c´apsula no tiene ninguna capacidad terap´eutica. El mayor problema de esta t´ecnica es que analizar el v´ıdeo es una tarea muy larga y requiere de un personal especializado.

Dada esta problem´atica surge la necesidad de extraer informaci´on de un v´ıdeo de forma autom´atica, sin tener la necesidad que haya una persona mirando todos y cada uno de los v´ıdeos. Dicho en otras palabras, se requiere automatizar el diagnostico, o la extracci´on de indicadores de los v´ıdeos.

1.1

Contexto

Este trabajo est´a basado en un proyecto que lleva activo desde 2008 y que viene de la mano de cuatro partners: Given Imaging Ltd., Centre de Visi´o per Computador, Universitat de Barcelona y Hospital Universitari de la Vall d’Hebr´on. Durante estos a˜nos se han llevado a cabo diversas investigaciones en el campo de la visi´on por computador y el aprendizaje autom´atico con el objetivo de solucionar el problema mencionado anteriormente: Extraer indicadores y clasificar v´ıdeos intestinales de forma autom´atica.

1.2

Objetivos

El planteamiento de este trabajo se fundamenta en dos grandes bloques, que abarcan adem´as dos ´areas de conocimiento muy diferenciadas.

El primer bloque es la extracci´on de v´ıdeos. Dado un gran conjunto de v´ıdeos, se pretende programar un proceso que realice la extracci´on y el an´alisis de cada uno de los v´ıdeos de forma autom´atica. Este bloque est´a situado en un ´

area muy t´ecnica, ya que los conceptos con los que se trabaja van muy ligados a la arquitectura y la forma de trabajar de un ordenador y la problem´atica que surge cuando se utilizan m´ultiples sistemas.

La segunda parte trata de analizar los resultados de un v´ıdeo, extraer se-cuencias, clasificarlas y por ultimo segmentar un v´ıdeo en base a las secuencias identificadas previamente. Los conocimientos que se aplicar´an en este bloque son, fundamentalmente, del ´area del aprendizaje autom´atico.

(10)

1.3

Organizaci´

on del trabajo

El trabajo est´a dividido en siete secciones (sin contemplar esta secci´on intro-ductoria), una primera secci´on introductoria que habla de conceptos b´asicos, una segunda secci´on donde se muestran los m´odulos del proyecto donde se ha trabajado, una tercera secci´on que habla de la extracci´on de v´ıdeos, y la cuarta secci´on en la que se habla del an´alisis de los v´ıdeos y de los resultados obtenidos. Motilidad intestinal

Contiene una breve introducci´on a los conceptos b´asicos acerca de la motilidad intestinal. Tambi´en se explican las particularidades de la c´apsula endosc´opica, que es, de que elementos mec´anicos dispone, y las ventajas y desventajas de su uso.

Arquitectura del software

En esta secci´on se explican todos los m´odulos que forman el proyecto en el punto inicial del trabajo.

Extracci´on de v´ıdeos

Se explica la forma en la que han sido extra´ıdos los v´ıdeos de la WCE, como se ha realizado el procesamiento en las im´agenes y como se han guardado para minimizar el espacio de disco que ocupan.

An´alisis de v´ıdeos utilizando Convolutional Deep Neural Networks Introduce el concepto de Convolutional Deep neuronal network y como se proce-san los v´ıdeos utilizando una red ya entrenada, as´ı como tambi´en la forma en la que se guardan los resultados para volver a hacer uso de ellos cuando sea necesario sin tener que volver a procesar los v´ıdeos.

Clustering y segmentaci´on

Aqu´ı se explica el trabajo realizado para la construcci´on de secuencias de v´ıdeo y su posterior clasificaci´on y segmentaci´on. Tambi´en se exponen los resultados obtenidos y la valoraci´on de estos.

Conclusiones

Explicaci´on detallada de las conclusiones obtenidas durante la realizaci´on del trabajo. Constituyen un breve resumen de todo lo expuesto a lo largo de los diferentes apartados.

Trabajo futuro

Puntos que han quedado inconclusos durante el trabajo, ya que quedaban fuera del alcance de este, y que podr´ıan ser objeto de desarrollo en un futuro.

(11)

Feb Mar Abr May Jun Jul

Extracci´on Adaptar proceso Estudio formatos An´alisis de v´ıdeo Aplicaci´on a gran escala Visualizaci´on Control de errores Segmentaci´on Comparativa formatos Clustering de secuencias Segmentaci´on An´alisis resultados Documentaci´on

Sin embargo, como se puede observar en el segundo diagrama, que ilustra la duraci´on real de las tareas una vez finalizado el proyecto, hay algunas de las tareas que han sido mas largas en el tiempo de lo que se planific´o en un principio.

(12)

el tiempo dedicado a analizar todos los v´ıdeos, y el clustering de secuencias. Tambi´en se puede observar en este segundo diagrama que la tarea de docu-mentaci´on empez´o mas tarde de lo planificado y acaba la ´ultima semana de julio.

Duraci´on real

Feb Mar Abr May Jun Jul

Extracci´on Adaptar proceso Estudio formatos An´alisis de v´ıdeo Aplicaci´on a gran escala Visualizaci´on Control de errores Segmentaci´on Comparativa formatos Clustering de secuencias Segmentaci´on An´alisis resultados Documentaci´on

En resumen cabe destacar que a efectos pr´acticos el proyecto se ha alargado dos semanas mas de las que fueron planificadas en un principio.

(13)

Organos accesorios Compuestos por el gl´andulas salivares, h´ıgado, ves´ıcula biliar y pancreas.

El tracto intestinal es el que se encarga f´ısicamente de mover la comida y cada ´organo tiene una funci´on especifica sobre esta (Figura 1a). En la boca, con el proceso de masticaci´on, se tritura la comida y se mezcla con saliva generando as´ı el bolo alimenticio. A trav´es del es´ofago, un tubo muscular, el bolo alimen-ticio es transportado hacia el estomago. El estomago sirve para que el bolo alimenticio se transforme en una papilla que de ah´ı en adelante ser´a llamada quimo. Funcionalmente podr´ıa describirse como el reservorio temporal del bolo alimenticio, deglutido hasta que se procede a su transito intestinal, una vez bien mezclado en el est´omago. El intestino delgado es el ´organo que se encarga de la mayor parte de la absorci´on de nutrientes, mediante movimientos perist´alticos se mezcla el quimo con las secreciones biliar y pancre´atica y duodenal. A la salida del intestino delgado el bolo alimenticio llega al intestino grueso donde este se limita a absorber los minerales el agua y las vitaminas liberadas por las bacterias que habitan en el colon. Tambi´en se compactan las heces y se almacena el material fecal en el recto hasta que este es expulsado a trav´es del ano.

El tama˜no medio del intestino delgado en un hombre adulto es de 6.9m, y 7.1 en el caso de una mujer adulta. Este tama˜no puede variar mucho, abarcando un intervalo de entre 4.6 y 9.8m de largo. El di´ametro es de entre 2.5cm y 3cm aproximadamente y la superficie de la mucosa es de aproximadamente unos 30m2. El intestino delgado est´a compuesto por tres partes diferenciadas (Figura

1b:

Duodeno Est´a situado en la parte superior del abdomen, siendo la ´unica porci´on del intestino delgado que se encuentra fijo, y est´a totalmente formado por m´usculo liso. Comienza en el p´ıloro y acaba en la flexura duodenoyeyunal, donde empieza el yeyuno. En el duodeno los alimentos se mezclan con la bilis y jugos digestivos del p´ancreas. Aqu´ı es donde empieza la absorci´on de vitaminas, minerales y otros nutrientes.

Yeyuno Est´a situado entre el duodeno y el ´ıleon, su funci´on es realizar la ab-sorci´on de las sustancias del quilo alimenticio. En este tramo del intestino act´ua el jugo intestinal que degrada los hidratos de carbono, prote´ınas

(14)

(a) Figura del tracto digestivo (b) Detalle del intestino delgado

Fig. 1

y l´ıpidos. La pared del yeyuno presenta vellosidades intestinales que se encargan de traspasar al torrente sangu´ıneo estas sustancias.

´Ileon Es la secci´on final del intestino delgado. Esta cumple con funciones de secreci´on, absorci´on y motilidad que completan el procesado de los nutrientes. En este se absorbe la prote´ına B12 y la mayor parte de las

sales biliares.

El intestino delgado mueve el quimo a trav´es de un mecanismo fisiol´ogico denominado motilidad. Generalmente la motilidad intestinal puede ser catego-rizada de la siguiente manera:

Persitalsis Son una serie de contracciones musculares que se encargan de trans-portar los alimentos a las diferentes estaciones de procesamiento del tracto digestivo. La persitalsis es propia tambi´en de otros ´organos, a parte del intestino delgado, como por ejemplo el es´ofago y el intestino grueso. Segmentaci´on Consiste en la contracci´on simult´anea de la musculatura

circu-lar de regiones vecinas y alternantes con la ´unica finalidad de mezclar el contenido sin moverlo a trav´es del tubo.

(15)

Fig. 2: Movimiento perist´altico a la izquierda, segmentaci´on a la derecha El movimiento propio de la pared muscular se llama contracci´on. La peristal-sis y la segmentaci´on est´an reguladas por tres tipos de contracciones: Las con-tracciones r´ıtmicas f´asicas, que producen la mezcla del quimo y una propulsi´on lenta. Las contracciones ultrapropulsivas, que se encargan de mover el quimo r´apidamente a trav´es del intestino dejando a un lado la absorci´on de nutrientes. Por ´ultimo encontramos las contracciones t´onicas que se mantienen en perio-dos variables de entre varios minutos y algunas horas. A´un no se ha logrado determinar el papel de este tipo de contracciones en la digesti´on.

En el momento actual, la principal fuente de informaci´on, y la ´unica prueba que nos puede llevar a un diagn´ostico es la manometr´ıa intestinal. El estudio manom´etrico se viene usando desde hace varias d´ecadas en las diferentes pa-tolog´ıas del tubo digestivo y su mayor importancia est´a en el estudio esof´agico. Esta t´ecnica est´a basada en la medici´on de presi´on de la pared intestinal, y tiene varias contrapartidas: Es altamente invasiva, no se puede visualizar el in-testino, solo se puede evaluar una peque˜na parte del intestino y la complejidad de interpretaci´on de los resultados.

2.1

apsula endosc´

opica

La c´apsula endosc´opica (WCE) es una t´ecnica reciente que permite la visual-izaci´on de todo el tracto intestinal [3]. El proceso consiste en la ingesti´on de la c´apsula, que dispone de un dispositivo de visualizaci´on. Esta registra un v´ıdeo a su paso por todo el aparato digestivo. El v´ıdeo se emite por radiofrecuencia y se graba en un dispositivo externo que debe de llevar el paciente encima. Cuando el estudio finaliza, este v´ıdeo puede ser descargado en un ordenador para su posterior evaluaci´on por parte de los facultativos.

Actualmente existen tres versiones de la c´apsula, cada una con sus propias caracter´ısticas t´ecnicas, los nombres de las versiones son, en orden de aparici´on: SB1, SB2 y SB3. Existe una problem´atica intr´ınseca en el cambio de versi´on para el proyecto que nos ocupa, de la cual hablaremos mas adelante.

(16)

2.1.1 Descripci´on del dispositivo

Este dispositivo fue introducido en el mercado por Given Imaging Limited, la tecnolog´ıa consta de tres componentes principales: la c´apsula, el dispositivo de grabaci´on y el software de visualizaci´on.

La c´apsula es un dispositivo apto para la ingesta equipado con la tecnolog´ıa necesaria para la grabaci´on de v´ıdeos, incluyendo lamparas de iluminaci´on y emisores de radiofrecuencia. Este dispositivo esta preparado para registrar im´agenes durante 6 horas a a dos frames por segundo. Adem´as es una c´amara desechable, no necesita ser recuperada despu´es de su expulsi´on, que se produce entre 10 y 72h despu´es de la ingesta.

El dispositivo de grabaci´on consta con una serie de receptores de se˜nal conec-tados con una CPU y un disco duro para el almacenamiento de los datos. Los sensores se enganchan en el cuerpo del paciente y reciben la se˜nal que emite la c´apsula, que es procesada por la CPU y posteriormente almacenada en el disco. El software de visualizaci´on nos permite ver el v´ıdeo una vez extra´ıdo del disco duro para su an´alisis.

2.1.2 Ejemplo de im´agenes extra´ıdas

El v´ıdeo que graba la WCE es muy similar al que se graba con un endoscopio. Cada frame tiene un tama˜no de 256x256px, renderizado en un campo de visi´on circular de 240 pixeles de di´ametro, que comprende 140o de ´angulo de visi´on, en los cuales podemos observar la pared intestinal y el lumen. El lumen es el centro del espacio tubular del intestino, como se muestra en la figura 3. A´un as´ı, tanto la c´apsula como el intestino est´an en constante movimiento, lo que provoca que en lumen en algunas ocasiones sea visible solo parcialmente, o no sea visible. Adem´as el campo de visi´on de la c´apsula puede estar parcial o totalmente obstruido por el contenido intestinal.

2.1.3 Contenido intestinal

El contenido intestinal puede incluir dos paradigmas, denominados como turbid y bubbles. Turbid refleja la presencia de masa g´astrica, que es la comida trans-formada por el proceso g´astrico. bubbles, por otro lado representa las burbujas formadas por la presencia de agentes que reducen la presi´on de la superficie, eso se debe a la presencia de secreciones pancre´aticas y biliares. En un v´ıdeo normal, con una preparaci´on cl´ınica est´andar, las im´agenes que aparecen con turbid o bubbles representan entre un 5% y un 40% del total del v´ıdeo. A simple vista ambos paradigmas son f´acilmente diferenciables como se puede observar en las figuras 4 y 5.

(17)

Fig. 3: Ejemplo de im´agenes extra´ıdas de un v´ıdeo

Fig. 4: Serie de frames clasificados como turbid

Fig. 5: Serie de frames clasificados como bubbles

Turbid Se presenta habitualmente como una regi´on de textura homog´enea con colores que pueden variar, como verde, amarillo, marr´on incluso blanco. Bubbles Tienen una textura bien definida, caracterizada por diversas formas

(18)

blanco amarillo y verde, aunque pueden llegar a ser pr´acticamente trans-parentes.

2.1.4 Eventos intestinales

Los eventos intestinales describen el comportamiento del lumen y de la pared durante cortos periodos de tiempo. Podemos diferenciar entre dos eventos: Contracciones Se visualizan como una secuencia de frames en las que el lumen

se cierra y se vuelve a abrir, en la parte central de la secuencia podemos observar como el lumen crea una forma de estrella. Este estado en partic-ular ser´a denominado en adelante como wrinkles.

Periodos est´aticos y t´unel Los periodos est´aticos representan la ausencia de actividad del intestino. La duraci´on de estas secuencias es variable. Las secuencias de t´unel se visualizan como un periodo est´atico en el que el lumen est´a relajado, al igual que en el caso de los periodos est´aticos, la duraci´on de estas secuencias es variable.

2.2

Motility bar

Los v´ıdeos intestinales pueden ser representados de dos formas distintas, vista a nivel de frame y vista longitudinal. La vista a nivel de frame ofrece un corte del intestino, mientras que la vista longitudinal es una representaci´on de un segmento del intestino. Esta vista longitudinal es creada a partir de la extracci´on de una linea de pixeles de cada una de las im´agenes del segmento.

Esta representaci´on longitudinal ofrece ciertas ventajas sobre la vista a nivel de frame; reduce la informaci´on proporcionada por la WCE de 3D a 2D y es capaz de conservar la mayor parte de informaci´on sobre la motilidad intestinal.

Fig. 6: Segmento de un v´ıdeo representado mediante motility bar La construcci´on de la motility bar se realiza a partir de una t´ecnica llamada Acut (Adaptative cut). Esta t´ecnica intenta corregir la rotaci´on arbitraria de la c´amara y ofrecer en cada segmento la mayor parte de informaci´on posible, en concreto; se busca obtener la secci´on en la que se pueda ver la mayor parte del lumen.

(19)

3.1

Modulos

Actualmente, en el alcance de este proyecto existen dos m´odulos funcionales bien diferenciados, en particular un primer modulo que est´a alojado en un servidor del Centre de Visi´o per Computador (en adelante CVC), que consta de una apli-caci´on web y una serie de versiones de un software que clasifica v´ıdeos grabados mediante la c´apsula intestinal. El segundo modulo es una red neuronal que extrae las caracter´ısticas de cada imagen y les asigna una etiqueta.

3.1.1 Aplicaci´on web

Esta aplicaci´on web se utiliza solo para investigaci´on, con ella trabajan los m´edicos para analizar v´ıdeos y extraer resultados, las acciones principales que se pueden llevar a cabo con esta aplicaci´on son:

• Cargar v´ıdeos y guardarlos en bases de datos. Estas bases de datos per-miten a los m´edicos agrupar pacientes con alg´un criterio m´edico y obtener la uni´on de los datos tras evaluar dichos v´ıdeos. Cuando un medico carga un v´ıdeo a la aplicaci´on, esta le obliga a introducir cierta informaci´on fundamental para procesar el v´ıdeo como son el tiempo de entrada en el intestino y el tiempo de salida, as´ı como otros datos que se requieren para tener un buen seguimiento del v´ıdeo.

• Evaluar v´ıdeos con las diferentes versiones del clasificador. Esta evaluaci´on se hace de forma transparente al usuario y devuelve una puntuaci´on (score) y una serie de indicadores que el medico utilizar´a posteriormente para sus estudios.

Cuando un medico eval´ua un v´ıdeo, lo que sucede es que se llama a una versi´on (la que el usuario haya escogido previamente) de un software programado en Matlab que realiza las siguientes acciones 1) Extrae las im´agenes, una a una, del archivo de v´ıdeo con el software propietario de Given Imaging en una carpeta del disco. 2) Realiza un pre-procesamiento de la imagen, que incluye la correcci´on de iluminaci´on de la c´apsula, la normalizaci´on de la imagen y el cambio de tama˜no. 3) Pasa el v´ıdeo por el clasificador. Este extrae una serie de caracter´ısticas del v´ıdeo y le asigna una puntuaci´on total, esta puntuaci´on determina si se trata de un intestino normal o an´omalo.

(20)

Fig. 7: Pantalla principal de la aplicaci´on web

3.1.2 Convolutional Deep Neuronal Network

Una Deep Neuronal Network (DNN) es un tipo de red neuronal artificial, las redes neuronales artificiales son una familia de modelos de aprendizaje basados en las redes neuronales biol´ogicas que se pueden encontrar en el centro nervioso de los animales. Estas se utilizan para estimar o aproximar funciones que pueden depender de un numero elevado de entradas. Se presentan habitualmente como sistemas de neuronas interconectadas que se mandan mensajes las unas a las otras. Las conexiones contienen pesos num´ericos que ser graduados en base a la experiencia, lo que hace que las redes neuronales sean adaptativas y capaces de aprender.

Las redes neuronales son capaces de modelar relaciones no lineales. Las capas extra permiten la composici´on de caracter´ısticas desde las capas mas bajas, ofreciendo un alto potencial para modelar datos complejos.

Las Convolutional Deep Neural Network (CNN) son usadas para reconocimiento de im´agenes y consisten en diversas capas con colecciones de neuronas que se encargan de peque˜nos trozos de la imagen, llamados campos receptivos. Los resultados se encuadran de forma que se puedan superponer para obtener una mejor representaci´on de la imagen. Esto se repite para cada capa de la red [9][8]. Para la realizaci´on de este trabajo se ha utilizado una Convolutional Deep Neuronal Network (CNN), para extraer las caracter´ısticas y las etiquetas de cada uno de los frames de los v´ıdeos que se analizan. Esta red est´a construida sobre caffe, que es un framework de deep learning [6], y ya hab´ıa sido entrenada antes del inicio de este proyecto.

Esta CNN recibe como par´ametro de entrada una imagen y es capaz de discriminar una imagen en una de las siguientes 6 clases:

(21)

Fig. 8: Representaci´on de una red neuronal

se da cuando la c´apsula est´a girada. Este tipo de im´agenes se caracterizan por ser muy homog´eneas en el color y en la forma.

Wrinkles Cuando hay una contracci´on de la pared intestinal y el lumen se cierra se puede observar que se crea una especie de forma de estrella. Turbid Observamos restos de alimentos, estas im´agenes pueden ser de colores

muy distintos.

Bubbles Se aprecian burbujas en el contenido intestinal. Tambi´en existen diversos rangos de colores para este fen´omeno.

Clear Las im´agenes de clear son aquellas en las que no hay contracci´on intesti-nal y el lumen crea una forma circular muy definida.

Undefined Estas son las im´agenes que no representan ninguno de los fen´omenos anteriores.

La salida de la red es un vector 6-dimensional con valores en rango donde cada valor es un numero real entre 0 y 1 que determina la probabilidad de

(22)

Fig. 9: Ilustraci´on del funcionamiento de una red neuronal convolucional

pertenencia a la clase. La predicci´on corresponde al ´ındice del valor m´aximo de este vector, por ejemplo; si se observa una imagen con un vector de resultados [0.2, 0.1, 0, 5, 0.05, 0.05, 0.1], la predicci´on de clase ser´ıa 2 (teniendo en cuenta de que el primer valor corresponde a la clase 0).

Para llevar a cabo esta clasificaci´on, del mismo modo que en el software Matlab, hay que realizar una serie de operaciones previas sobre la imagen, para que coincida con el tipo de imagen con las que la red ha sido entrenada, como la correcci´on de la iluminaci´on, la normalizaci´on y el cambio de tama˜no de la imagen para recortar los bordes.

3.2

Volumen de datos

En el servidor que aloja la aplicaci´on web tambi´en se guardan todos los v´ıdeos que procesan los m´edicos. Estos v´ıdeos suponen la grabaci´on completa de la c´apsula, es decir desde que esta entra por la boca hasta que llega al intestino grueso. Por lo tanto la duraci´on de cada v´ıdeo es de entre 5h y 7h. Eso supone, si sabemos que la c´apsula graba a dos frames por segundo, que cada v´ıdeo contiene un rango de 36000 a 50400 im´agenes, lo cual es un gran volumen de informaci´on.

(23)

la c´apsula entra al intestino y el tiempo en el que sale de el. Esta informaci´on est´a guardada en la base de datos de la aplicaci´on web.

Fig. 10: Proceso de extracci´on de im´agenes

Esta etapa en el ciclo de vida de la aplicaci´on resulta extremadamente costosa por los factores siguientes 1) Un v´ıdeo tiene una duraci´on de aproximadamente 4h, 2) El software propietario realiza la extracci´on imagen por imagen y las guarda en disco. El problema surge cuando se pretende trabajar con ese volumen de informaci´on en diversos sistemas, ya que el n´umero de ficheros que se genera de la extracci´on de un v´ıdeo es de alrededor de 50.000. Adem´as de un problema de uso de disco, la transferencia entre sistemas por la red se vuelve una tarea tediosa.

Aqu´ı se tratar´an una serie de aproximaciones que intentan solventar, o re-ducir al m´ınimo, este problema. Los m´etodos utilizados intentan eliminar, en primer lugar, la fragmentaci´on de ficheros. Es decir, se pretende trabajar a nivel de sistema operativo con unos pocos ficheros, minimizando as´ı el tiempo de ac-ceso a disco y tener la mayor parte de los datos en memoria. Tambi´en se intenta reducir el tama˜no de los ficheros y minimizar el espacio de disco ocupado. Esta segunda parte tiene mucho sentido cuando se trabaja con un set de v´ıdeos muy grande, como es el caso.

Es importante remarcar que todo el c´odigo producido, de ahora en adelante, ser´a c´odigo escrito en Python, que cuando as´ı lo requiera har´a llamadas a sistema para ejecutar el software de Matlab.

(24)

4.1

Empaquetado de un v´ıdeo en contenedores

Esta es la primera idea que aparece, crear un contenedor de im´agenes que con-tenga toda la informaci´on del v´ıdeo encadenada en forma de matriz. Hay que tener en cuenta que los ficheros que genera Matlab despu´es de aplicar todos los procesos a cada una de las im´agenes son ficheros .mat. Para ello utilizaremos un sistema extremadamente sencillo, concatenar las im´agenes y guardarlas a disco utilizando un modulo de Python de data marshalling llamado pickle.

4.1.1 Un paquete por v´ıdeo

Fig. 11: Empaquetado en un fichero

El proceso a seguir en esta tarea (Figura 11) es el siguiente: 1) Para el v´ıdeo que se quiere empaquetar, recupera el momento de entrada y salida al intestino de la base de datos de la aplicaci´on web. 2) Llama al programa de Matlab que se encarga de extraer las im´agenes del fichero de v´ıdeo codificado y realizar las operaciones pertinentes sobre cada imagen. 3) Carga en memoria todas las im´agenes grabadas en disco y las guardas en un solo fichero.

f i l e l i s t = o s . l i s t d i r ( d i r I n ) f o r f in f i l e l i s t : i f f . e n d s w i t h ( ” . mat” ) : im = readMat ( d i r I n+f ) v i d . append ( im ) f l i s t . append ( f )

(25)

entre las im´agenes guardadas de una en una y las im´agenes grabadas en paquetes es 1 a 1 aproximadamente.

Adem´as existe otro problema a˜nadido si se cambia ligeramente el planteamiento. ¿Que sucede, si, en lugar de querer realizar una operaci´on en serie para todas las im´agenes solo se pretende trabajar con un peque˜no set de todas ellas? En este caso el problema seria que, en cualquiera de los casos, es necesario cargar todo el fichero en disco, lo cual supone una perdida de tiempo y espacio en memoria. 4.1.2 Multiples paquetes por v´ıdeo

Una extensi´on del m´etodo anteriormente mencionado ser´ıa crear paquetes de n im´agenes, de forma que se pierde un poco en fragmentaci´on respecto al primer m´etodo, pero sin embargo se gana mucho en tiempo de acceso si solo necesitamos un set peque˜no de im´agenes. Se trata en este caso de un m´etodo h´ıbrido (Figura 12).

(26)

La variaci´on entre los dos m´etodos es peque˜na, en este caso la ´unica diferencia es que en este caso el empaquetamiento se hace durante la iteraci´on sobre los ficheros f o r f in f i l e l i s t : i f f . e n d s w i t h ( ” . mat” ) : c o u n t +=1 im = readMat ( d i r I n+f ) v i d . append ( im ) i f c o u n t == n f r a m e s : f r a g m e n t += 1 c o u n t = 0 dump( d i r O u t , fname+s t r ( f r a g m e n t ) , v i d ) v i d = [ ] i f len ( v i d ) > 0 : dump( d i r O u t , fname+s t r ( f r a g m e n t ) , v i d ) v i d = [ ]

Aunque en este caso se mejora el tiempo de acceso a las im´agenes respecto al m´etodo anterior (ya que los packs de frames son m´as peque˜nos) el espacio de disco ocupado sigue siendo una frontera infranqueable en el caso de que queramos trabajar con un volumen grande de v´ıdeos.

Para solucionar este problema se propone la soluci´on de comprimir los datos utilizando un formato de compresi´on com´un, como es TAR. Mediante este for-mato de archivo se logra reducir la cantidad de espacio ocupado en el disco, aunque a cambio se pierde tiempo en comprimir y descomprimir cada vez que quieres acceder a los datos.

Se realiza un test para evaluar los m´etodos de extracci´on: sin empaquetar, empaquetado en m´ultiples archivos, empaquetado en m´ultiples archivos y com-primido. Este test eval´ua el m´aximo de cada una de las im´agenes. Este test nos devolver´a un tiempo que, asumiendo que la operaci´on de calcular el m´aximo tiene un tiempo n que es constante para im´agenes del mismo tama˜no, la difer-encia entre los resultados ser´a la diferencia de tiempo de carga de los ficheros (Figura 13).

4.2

Empaquetado de un v´ıdeo en un v´ıdeo

El empaquetado a v´ıdeo surge cuando se enfoca el problema a reducir al m´aximo el tama˜no de disco. Cuando se habla de compresi´on de datos hay que tener presente dos tipos de compresi´on, la compresi´on con perdidas y la compresi´on sin perdidas. Es decir, si se quiere ganar mucho espacio de disco hay que estar dispuesto a perder informaci´on.

(27)

Fig. 13: Comparativa de los tres m´etodos, el primero todos los ficheros en la carpeta, el segundo los ficheros empaquetados en formato TAR, el tercero los ficheros empaquetados sin comprimir.

En este caso se ha utilizado la API de Matlab para codificar los v´ıdeos. Esta nos permite utilizar tres perfiles de codificaci´on con compresi´on: Archival, Motion JPEG AVI, MPEG-2. En este caso ordenados de menor a mayor com-presi´on.

Archival Se refiere a una codificaci´on de tipo Motion JPEG 2000. En el caso de la API de Matlab utiliza este perfil para la compresi´on sin p´erdidas. Es decir, ahorramos espacio manteniendo la informaci´on de forma integra. Motion JPEG AVI (MJPEG) Este formato de compresi´on de v´ıdeo

com-prime independientemente cada imagen como una imagen JPEG.

MPEG-4 Es el est´andar de compresi´on de v´ıdeo y audio para streaming. Pro-porciona un alto ahorro de espacio de disco a cambio de una perdida de informaci´on moderadamente alta.

4.2.1 Comparativa de formatos de compresi´on

Se ha llevado a cabo una prueba de compresi´on en los tres formatos para ver cuan grande es la perdida de informaci´on en cada uno de ellos, sabiendo de antemano que el perfil Archival no tendr´a ninguna p´erdida, el perfil MJPEG tendr´a perdidas moderadas, y el perfil MPEG-4 tendr´a perdidas de informaci´on altas. A´un as´ı, y teniendo en cuenta que un v´ıdeo codificado con MPEG-4 ocupa

(28)

un 5% del espacio en disco que el mismo v´ıdeo codificado con compresi´on sin p´erdidas, es necesario hacer la comprobaci´on pertinente para cerciorarse de si es o no menospreciable esa p´erdida.

Para obtener los siguientes resultados la prueba realizada ha sido la siguiente: 1) Extrae las im´agenes y realiza el pre-procesamiento 2) Guarda las im´agenes con los tres perfiles de compresi´on 3) Calcula las diferencias1, las diferencias

entre m´aximos2 y la desviaci´on est´andar3 de todos los frames.

Las figuras 16, 17 y 18 muestran los resultados obtenidos de las pruebas anteriormente mencionadas para un v´ıdeo. Como se puede observar, los rangos de valores entre los que oscilan las m´etricas que se han extra´ıdo al comprar los v´ıdeos son mucho mas altos en el caso de aquellos comprimidos en el formato MPEG-4.

Para certificar esta afirmaci´on se han calculado los valores promedio de los indicadores extra´ıdos. En la figura 14 se muestran la tabla de resultados.

Fig. 14

Analizando la tabla anterior se puede ver que la perdida de informaci´on en el caso de los v´ıdeos en formato MPEG-4 (Denotado como .mp4 en la tabla) es muy alta, solo hace falta ver que la desviaci´on est´andar de los valores de los pixeles es de un 3.04%. En la figura 15 se pueden observar las diferencias visuales entre los formatos.

1c = |A − B| 2c = max(|A − B|) 3c =µ

(29)

(a) Uni´on de las tres im´agenes (b) Diferencias se˜naladas

Fig. 15: Comparativa de las im´agenes de v´ıdeos comprimidos con distintos perfiles. En la imagen 15b se han marcado las ´areas que forman cada una de las im´agenes del mosaico.

4.3

Conclusi´

on

Despu´es de analizar los pros y los contras de cada m´etodo de extracci´on y alma-cenamiento de datos se ha decidido utilizar la compresi´on en v´ıdeo utilizando el formato de compresi´on MJPEG, ya que es el formato que tiene los indicadores mas centrales, poca perdida de informaci´on y una reducci´on considerable de uso de disco.

Cuando se trate el tema de la clasificaci´on de las im´agenes se llevar´a a cabo una evaluaci´on mas exhaustiva del impacto de la perdida de informaci´on.

4.4

Proceso de extracci´

on en cadena para un conjunto de

v´ıdeos

El objetivo actual es extraer todo el conjunto de v´ıdeos y guardarlos como v´ıdeos para posteriormente poderlos transferir a otra maquina y analizarlos. Esto supone una tarea muy costosa en t´erminos de tiempo, ya que la extracci´on de un solo v´ıdeo dura entre dos y cuatro horas, y el repositorio de v´ıdeo consta de alrededor de 400 v´ıdeos, con lo cual, suponiendo que no hubiese fallos y se pudiese ejecutar el proceso de forma ininterrumpida, se prolongar´ıa unos 50 d´ıas.

El hecho de programar el proceso se puede dividir en una serie de tareas, en primer lugar se debe de modificar el c´odigo existente en Matlab para que cuando acabe de hacer el pre-procesamiento de las im´agenes las guarde en un archivo de v´ıdeo. En segundo lugar se deber´a de crear la rutina de python que para cada uno de los v´ıdeos lance una instancia de Matlab de forma secuencial y sea notificado cuando este acabe. En tercer lugar, y mas importante, para

(30)

un proceso tan largo se deben establecer pol´ıticas de consistencia de datos para que si el proceso es interrumpido se pueda recuperar sin perder informaci´on ni dejar datos corruptos en el camino.

4.4.1 Modificaci´on del software Matlab

En lo que a la parte de Matlab se refiere hay una serie de puntos a detallar que son importantes para el an´alisis posterior, lo que hasta este momento se mencionaba como el pre-procesamiento de im´agenes. Este conjunto de opera-ciones que se realizan a nivel de frame son necesarias para la clasificaci´on de los mismos.

Como ya se ha dicho antes, en la aplicaci´on tenemos distintas versiones del clasificador, sin embargo, el proceso aplicado a las im´agenes es invariante. Por pasos, el proceso que realiza antes de clasificar es el siguiente:

Extracci´on de im´agenes Se lanza el software de Given y se extraen los frames uno a uno y se guardan en el disco, en una carpeta con el mismo nombre que el v´ıdeo.

Cambio de nombre de las im´agenes Las im´agenes extra´ıdas por el soft-ware de Given tienen los nombres: ”0”, ”1”, ”2”, ..., ”n”. Los nombres se cambian para que sean ”000001”, ”000002”, ... .

Conversi´on a .mat Esta conversi´on se realiza para la comodidad del trabajo con dichas im´agenes. .mat es un formato propio de Matlab.

Reverse ALC (Automatic Light Correction), esta operaci´on corrige la ilumi-naci´on de la imagen dadas las caracter´ısticas de la c´apsula. Tambi´en se aplica una mascara (Figura 19), esta mascara se resta de la imagen origi-nal y de esta forma se elimina el ruido que se haya podido registrar en la zona vac´ıa de la imagen. Estas operaciones son dependientes de la versi´on de c´apsula que se est´e utilizando.

Extracci´on de caracter´ısticas Se crean las caracter´ısticas b´asicas de cada imagen.

Fig. 19: Mascara aplicada para la versi´on SB2

Para el prop´osito que se persigue aqu´ı, solo es necesaria la ejecuci´on hasta el punto de la correcci´on de iluminaci´on. Adem´as, aprovechando la API para

(31)

proceso que se prolongar´a durante alrededor de un mes. Las operaciones que debe de realizar son las siguientes:

Selecci´on de un v´ıdeo En primer lugar se selecciona un v´ıdeo de todos los disponibles en una carpeta.

Consulta de datos Dado el nombre del v´ıdeo seleccionado se consulta en la base de datos la informaci´on de el tiempo de entrada, el tiempo de salida, el tiempo de nutrici´on, etc. Estos datos son imprescindibles ya que el programa en Matlab elimina los frames fuera de los limites de ese tiempo. Extracci´on, pre-procesamiento y codificaci´on Se llama al programa de Matlab que extrae los v´ıdeos, procesa las im´agenes y vuelve a codificarlas como v´ıdeo.

Eliminaci´on de datos El programa de Matlab deja trazas de los progresos realizados, para poder retomar el proceso en caso de que este falle en el punto en el que se qued´o. Estas trazas se pueden borrar una vez Matlab ha acabado. Tambi´en hay que borrar las im´agenes que se generan durante la etapa de extracci´on de datos.

Aunque se trata de un proceso f´acilmente paralelizable, dado que se pretende realizar la misma operaci´on en todos los archivos, y que estas operaciones son independientes entre ellas, en este caso las caracter´ısticas del hardware de la maquina en la que se pretende trabajar limitan este proceso. Esto es debido a que, como se ha comentado anteriormente, un v´ıdeo extra´ıdo frame a frame ocupa mucho espacio de disco, y este es muy limitado. Esto es un dato a tener en cuenta en la gesti´on de errores.

4.4.3 Pol´ıticas de consistencia de datos y gesti´on de errores

Para entender como se van a gestionar los errores hay que entender como est´an estructurados los datos. Para el caso que se trata cada v´ıdeo est´a representado en el sistema como un directorio que contiene el archivo de v´ıdeo adem´as de otra informaci´on (Figura 21b). Todos los v´ıdeos (721) est´an listados en una carpeta (Figura 21a).

(32)

Este proceso, por una cuesti´on de tiempo de computo, debe de ser un proceso no supervisado, ya que es materialmente imposible que haya una persona pen-diente de los fallos durante toda la ejecuci´on. Esto significa, a efectos pr´acticos, que el proceso ha de ser resistente a los errores. Estos errores pueden ser debidos a diversas causas. Seg´un la causa los categorizamos como:

Errores causados por agentes externos • El servidor se reinicia o se desconecta Errores en tiempo de ejecuci´on

• Los datos para un v´ıdeo no est´an en base de datos • La extracci´on del v´ıdeo falla

• El espacio de disco es insuficiente

como por ejemplo que un archivo de v´ıdeo est´e corrupto, que en un momento determinado no se pueda acceder a la base de datos, o directamente que el proceso termine de forma inesperada (el servidor en el que se est´a ejecutando se apaga).

Conceptualmente se definen los estados en los cuales puede estar el proceso como:

• Recuperando datos • Ejecutando Matlab • Borrando datos

La premisa es que este estado se tiene que recuperar si se produce un fallo en el proceso, sea por agentes externos, sea un error de ejecuci´on.

La pol´ıtica que se sigue para prevenir los casos de errores causados por agentes externos es la de utilizar checkpoints. Este mismo concepto se utiliza tambi´en en el programa Matlab, el proceso va dejando trazas en ficheros de los pasos que inicia/completa, as´ı en caso de tener que recuperarse de un fallo solo tendr´a que ver que est´a hecho y que no, y podr´a seguir trabajando sin problemas. En este caso solo hay que tener en cuenta los fallos en los estados ”Ejecutando Matlab” y ”Borrando Datos”, ya que la recuperaci´on de datos no es una operaci´on cr´ıtica, no afecta a la consistencia.

En este caso en lugar de ficheros lo que hace el programa es ver si una carpeta est´a creada o no y eso le indica por donde seguir del proceso. Es decir si lista todas las carpetas de la lista de v´ıdeos procesados y tenemos en cuenta que este proceso siempre lista los v´ıdeos con el mismo orden

Aquellos errores que si que se han de gestionar son los que se producen cuando falla el programa de Matlab. Esto puede suceder por diversas causas, 1) El v´ıdeo es incorrecto; porque no est´a grabado con la c´apsula correspondiente a la versi´on del extractor que se est´a utilizando, o porque el v´ıdeo est´e corrupto. 2) Matlab es interrumpido por causas externas al propio software, como por

(33)

como no procesable y se guarda esta informaci´on en disco.

4Se ha considerado 5 intentos la cantidad adecuada para determinar que un v´ıdeo est´a

(34)

(a) MJPEG

(b) MPEG-4

(35)

(a) MJPEG

(b) MPEG-4

(36)

(a) MJPEG

(b) MPEG-4

(37)
(38)

(a)

(b)

(39)

programaci´on. Tambi´en se utiliza Matlab para facilitar el acceso a v´ıdeos. Todo el c´odigo generado en este apartado est´a escrito en Notebooks de iPython.

5.1

Descripci´

on t´

ecnica del an´

alisis de v´ıdeos

Para realizar el an´alisis de v´ıdeos se utiliza la CNN previamente entrenada que se detalla al principio del documento. Hay que recordar que esta red es capaz de discriminar cada imagen en una de las 6 clases con las que se trabaja.

En la aplicaci´on pr´actica lo que se ha hecho ha sido, para cada una de las im´agenes evaluadas de un v´ıdeo, guardar en un vector correspondiente al v´ıdeo, un diccionario que contiene; 1) La predicci´on de la clase, 2) Las puntuaciones de clase, 3) el ´ındice de la imagen en el v´ıdeo, 3) los resultados fully connected de la capa 7, que es la pen´ultima capa de la CNN, justo la capa anterior a la reducci´on de las caracter´ısticas de la imagen a un vector de clases. La capa 7 est´a representada como un vector de 512 posiciones.

El resultado del an´alisis de todo el conjunto de v´ıdeos se traduce en un conjunto de archivos correspondientes cada uno a un v´ıdeo, y que contienen un vector de diccionarios, donde cada diccionario contiene los resultados de la evaluaci´on de una imagen.

5.2

Analisis de la p´

erdida de informaci´

on

En este punto se retoma el tema de la perdida de informaci´on ocasionada por la compresi´on de los archivos de v´ıdeo, ya que a´un sabiendo que se pierde una cantidad peque˜na de informaci´on se debe de conocer el alcance de esta perdida dentro del proceso de clasificaci´on que se lleva a cabo utilizando la CNN.

Para ello se han comprimido 4 v´ıdeos con codificaci´on Archival (Sin p´erdidas) y MJPEG y se han analizado imagen a imagen mediante la red neuronal. El proceso de an´alisis para cuantificar la informaci´on que se pierde se ha llevado a cabo siguiendo los siguientes pasos: 1) Identificar las im´agenes que han cam-biado de etiqueta, 2) medir las diferencias en los scores de dichas im´agenes 3) Elaborar una matriz de confusi´on para visualizar como se han distribuido aquellas im´agenes que se han etiquetado diferente.

(40)

(a) Im´agenes Archival

(b) Im´agenes MJPEG

Fig. 22: Comparativa de las im´agenes clasificadas bajo diferentes etiquetas

5.2.1 Identificaci´on de im´agenes

Dado el formato de los resultados para identificar esos frames que se han clasifi-cado distinto solo tenemos que iterar por las dos listas de predicci´on y comparar las etiquetas. Para todos los v´ıdeos tomados para hacer el test, de un total de 41944 im´agenes se han clasificado diferente 350. Esto representa un 0.83% sobre el total.

El primer an´alisis que se debe de realizar es el visual. Mirar si existen diferencias sustanciales a primera vista respecto a las im´agenes. En la figura 22 se puede observar que no existen diferencias significativas en las im´agenes. 5.2.2 An´alisis de las diferencias

Una vez escogidas las im´agenes con las que se trabajar´a hay que medir la difer-encia en las puntuaciones de cada clase para cada una de las im´agenes para poder observar cual es la clase con mas variaci´on para estas im´agenes. Las fig-uras 23, 24, 25, 26, 27 y 28 muestran cada una de ellas dos gr´aficos. El primero ilustra las probabilidades de pertenecer a la clase de cada frame para el caso de un v´ıdeo con perdidas y sin perdidas. El segundo es la diferencia de las dos. Es importante remarcar de esos gr´aficos que los picos de las diferencias oscilan alrededor de 0.05, salvo en el caso de la clase Undefined, cuyos picos son ligeramente mas altos.

(41)

(b) Diferencias para la clase Wall

Fig. 23

(a) Comparativa Wrinkles

(b) Diferencias para la clase Wrinkles

(42)

(a) Comparativa de la clase Bubbles

(b) Diferencias en la clase Bubbles

Fig. 25

(a) Comparativa de la clase Turbid

(b) Diferencias de la clase Turbid

(43)

(b) Diferencias de la clse Clear

Fig. 27

(a) Comparativa de la clase Undefined

(b) Diferencias de la clase undefined

(44)

5.2.3 Matriz de confusi´on

Para tener una visi´on completa del impacto de la perdida de informaci´on en esta aplicaci´on se ha construido una matriz de confusi´on. La matriz de con-fusi´on, habitualmente, se utiliza para representar las predicciones contra las clases reales (ground truth). En este casi sin embargo, no se conoce la clase real, sino que se contrapone la predicci´on de los v´ıdeos codificados sin p´erdidas con-tra la predicci´on de los v´ıdeos codificados con MJPEG. La informaci´on que se pretende extraer de la matriz es a que clases van a parar aquellas im´agenes que no son clasificadas de la misma manera por culpa de la perdida de informaci´on, es por esta raz´on que, al solo evaluar dichas im´agenes la diagonal est´a vac´ıa.

Como se puede observar en la figura 29 los resultados obtenidos son bastante razonables, ya que la mayor parte de las im´agenes que han sido clasificadas en distintas clases son im´agenes con una puntuaci´on muy alta para la clase Undefined y que esta ligera perdida de informaci´on hace que cambien de clase. Tambi´en hay que destacar las im´agenes que han pasado de Turbid a Bubbles y viceversa, que tambi´en representan un volumen bastante elevado. Esto se debe a que en la pr´actica son dos clases con mucho solapamiento.

5.2.4 Conclusiones

En la secci´on donde se trata la extracci´on del v´ıdeo se discute sobre los posibles formatos de compresi´on y la perdida de informaci´on asociada a cada uno de ellos. En ese momento se considera razonable el uso del formato de compresi´on MJPEG utilizando los estad´ısticos est´andar para cuantificar las diferencias, sin tener en cuenta la implicaci´on en los resultados de la clasificaci´on.

En este momento y con la informaci´on obtenida en esta secci´on se puede aceptar este formato de compresi´on ya que la incidencia de la perdida de in-formaci´on en lo que a la clasificaci´on respecta es m´ınima y afecta a aquellas im´agenes que, cuando se analizan visualmente, cuesta discriminar la clase a la que pertenecen.

5.3

Visualizaci´

on de los resultados

Una vez que se han analizado los v´ıdeos se requiere visualizar los resultados utilizando las caracter´ısticas representadas por la pen´ultima capa de la CNN (fc7). Como se ha mencionado anteriormente, estos resultados son un vector de 512 caracter´ısticas. Esto supone que se pretende representar en un mapa de dos dimensiones un punto definido en 512 dimensiones, lo que en la pr´actica es imposible.

Para esta finalidad existen una serie de m´etodos de reducci´on de dimensiones que ofrecen una representaci´on mas o menos fiel de la distribuci´on de los puntos en el espacio.

(45)

Fig. 29: Matriz de confusi´on

5.3.1 t-SNE

t-Distributed Stochastic Neighbour Embedding es una de estas t´ecnicas de re-ducci´on de dimensiones, una variaci´on de SNE mas sencilla de optimizar y que ofrece una mejor visualizaci´on, ya que reduce la tendencia de que los puntos se concentren en el centro del mapa.

El algoritmo t-SNE comprende dos etapas, en primer lugar se construye una distribuci´on de probabilidad entre parejas de objetos de grandes dimensiones, de forma que objetos similares tienen una alta probabilidad de ser escogidos, mientras que los puntos que no se parecen tienen una baja posibilidad de ser escogidos. En segundo lugar se define una probabilidad similar en los puntos del mapa de dimensi´on baja y minimiza la divergencia Kullback-Leibler5entre dos distribuciones respecto a la localizaci´on de los puntos en el mapa [2].

La principal diferencia entre esta t´ecnica y otras t´ecnicas cl´asicas de re-ducci´on de dimensiones, como podr´ıa ser PCA (Principal Component Analysis) es que, estas ´ultimas, son t´ecnicas lineales que se centran en representar los puntos menos semejantes muy separados en bajas dimensiones. Sin embargo t-SNE es una aproximaci´on no lineal, y se centra en mantener los puntos mas

5Es una medida de no similitud de la diferencia entre dos distribuciones de probabilidad P

(46)

semejantes cerca en su representaci´on en bajas dimensiones [2].

Para aplicar el algoritmo se han utilizado los resultados obtenidos tras analizar todas las im´agenes de un v´ıdeo. Como descriptores de cada uno de los frames se ha utilizado el vector de 512 caracter´ısticas correspondiente a la pen´ultima capa de la red. Tras la aplicaci´on del algoritmo se han pintado cada uno de los puntos con un color distinto en funci´on de la clase a la que pertenecen.

La figura obtenida tras la aplicaci´on del algoritmo (Figura 30) sobre los re-sultados de un v´ıdeo permite observar la distribuci´on de las clases. Se puede ver como las clases Clear Turbid y Bubbles son muy cercanas y con bastante sola-pamiento entre ellas, Wrinkle y Wall est´an mas alejadas, y Undefined forma una nube de puntos que se encuentra en el espacio que hay entre las clases, aunque tambi´en hay que notar que en el espacio mas central ocupado por wrinkles caen bastantes im´agenes clasificadas como wall.

Fig. 30: Reducci´on de los vectores de caracter´ısticas a 2 dimensiones utilizando t-SNE

(47)

6.1

Construyendo el dataset

La informaci´on de la que se dispone a nivel de frame en el momento de la construcci´on del dataset consta de dos vectores de caracter´ısticas. Como ya se ha mencionado antes.

Esto supone que, para representar una secuencia en base a la la informaci´on de pen´ultima capa de la red se deber´an representar como vectores de n × 512 dimensiones, donde n es la longitud (en frames) de la secuencia.

Que longitud utilizar es la primera inc´ognita que surge en el momento de empezar a evaluar secuencias de frames, ya que n ha de ser constante. Esta es la limitaci´on mas grande en el momento de crear clusters, ya que los eventos intestinales tienen una duraci´on variable. La estrategia en este caso ser´a encon-trar una n que permita recoger aquellos eventos que tienen una duraci´on corta, y que adem´as aporte alg´un tipo de informaci´on para eventos de larga duraci´on. Para determinar una longitud ´optima, y teniendo en cuenta las particular-idades de los eventos intestinales, se realizar´an pruebas con 40, 60, 80, 100 y 120 im´agenes, lo que, teniendo en cuenta que la WCE graba a dos frames por segundo suponen 20’, 30’, 40’, 50’ y 1m de v´ıdeo.

6.2

Clustering

Se conoce como clustering la tarea de agrupar objetos en clases (clusters) de tal forma que los objetos contenidos en estas clases sean semejantes entre ellos. Existen diversos algoritmos que atacan este problema de formas muy distintas, el algoritmo a utilizar en cada uno de los casos depende del modelo de datos.

Hay dos grandes t´ecnicas de agrupamiento; el agrupamiento jer´arquico, que puede ser aglomerativo6 o divisivo7, y el agrupamiento no jer´arquico, en el que el numero de grupos se determina de antemano y las observaciones se asignan a ellos en funci´on de su cercan´ıa.

Algunos de los algoritmos mas conocidos para la creaci´on de clusters son: Expectation-Maximizacion, Agrupamiento jerarquico, Mean-Shift, k-Means etc. Cada uno de ellos tiene sus ventajas y sus inconvenientes

6Cada observaci´on comienza en su propio grupo y los pares de grupos se mezclan a medida

que se sube en la jerarqu´ıa

7Las observaciones comienzan en el mismo grupo y se realizan divisiones a medida que se

(48)

Fig. 31: Aplicaci´on de clustering en un set de datos de ejemplo. Cada color representa un cluster.

6.2.1 k-means

El algoritmo k-means es un m´etodo iterativo que extrae n clusters (determinados por el usuario) de un dataset. Este algoritmo opera en un set de vectores d-dimensionales [5]. El algoritmo se inicializa escogiendo k puntos en <d. Este

set de puntos iniciales se denominan centroides. Hay diferentes t´ecnicas para inicializar estos centroides, por ejemplo asignarlos aleatoriamente, o hacer el clustering en primer lugar sobre un dataset mas peque˜no. Una vez inicializado el algoritmo se ejecuta en dos pasos:

Asignaci´on de datos Cada uno de los puntos del dataset es asignado al cen-troide mas cercano, decidiendo los empates de forma arbitraria. Estos resultados conforman una partici´on de los datos.

Repoisicionamiento de los centroides Cada representante de un cluster se coloca en el centro de los puntos asignados a este.

La figura 32 muestra dos ejecuciones del algoritmo con un dataset de dos clusters claramente diferenciados y en un caso ´optimo.

Este algoritmo converge cuando las posiciones de los centroides no cambian de una iteraci´on a otra. En cada iteraci´on el algoritmo realiza N × k compara-ciones, lo que determina la complejidad. El numero de iteraciones que se deben

(49)

Fig. 32: Ejemplo de ejecuci´on del m´etodo k-means con dos iteraciones: a) Dataset b) Posicionamiento de los centroides Asignaci´on de los puntos del dataset al centroide mas cercano d) Reposicionamiento de los centroides e) Asig-naci´on de puntos f) Calculo de la posici´on del centroide

6.2.2 Aplicaci´on de k-means

Para este problema en particular se ha escogido k-means como el algoritmo para agrupar los datos de los que se disponen. Como se ha mencionado anteriormente, este es un algoritmo de agrupamiento no jer´arquico, de tal forma que el n´umero de clases tiene que estar determinado de antemano. La b´usqueda de patrones en secuencias, que se pretende realizar, es una prueba exploratoria, con lo cual no existe ninguna informaci´on previa sobre cuantos grupos existen.

En base a esto, para poder aproximar de una forma emp´ırica el n´umero de grupos, lo primero que se har´a ser´a una visualizaci´on de los datos en un mapa de dos dimensiones, para ello se utilizar´a el algoritmo t-SNE.

En la prueba realizada se han extra´ıdo 1000 secuencias de v´ıdeo de tama˜no, 40, 60, 80, 100 y 120 frames.

A simple vista, cuando se trabaja en dos dimensiones, en cualquiera de los casos se pueden diferenciar entre 5 y 6 clases relativamente bien definidas. Se asumir´a, para los siguientes experimentos, que son 6 las clases que se generan

(50)

al evaluar secuencias. Esto tiene sentido considerando el hecho de que cuando se clasifica a nivel de frame tambi´en se discriminan 6 clases.

A modo de prueba exploratoria, y con tal de ver las diferencias al trabajar con diferentes n´umeros de clusters, se han realizado an´alisis con 2, 3, 4, 5, 12 y 32 clusters. Estos resultados no aportan ninguna informaci´on respecto a las conclusiones extra´ıdas cuando se trabaja con 6 clusters,

En las figuras 33, 34, 35, 36 y 37 se puede observar el resultado de la apli-caci´on de k-means y t-SNE que son el resultado de la prueba realizada.

Fig. 33: Clusters de secuencias de 40 im´agenes

Fig. 34: Clusters de secuencias de 60 im´agenes

Fig. 35: Clusters de secuencias de 80 im´agenes

Fig. 36: Clusters de secuencias de 100 im´agenes

(51)

Fig. 37: Clusters de secuencias de 120 im´agenes

Las diferencias observadas cuando se trabaja con diferentes longitudes de v´ıdeo no son extremadamente significativas a nivel de clase, ya que, en general, las secuencias, consider´andolas como eventos intestinales, son mas largas en el tiempo que los 60’ que es el tama˜no m´aximo que se ha definido.

Lo que si que se puede apreciar es que a medida que disminuye el tama˜no de la secuencia aumentan notablemente las fluctuaciones entre clases mientras que cuando se aumenta el tama˜no se produce un aletargamiento, es decir, los cambios tardan mas en producirse y se crean tendencias que se alargan mas en el tiempo.

Este efecto se puede observar en las figuras 41, 42, 43, 44.

6.3

Segmentaci´

on

Para realizar la segmentaci´on de un v´ıdeo, en primer lugar, se deber´an de clasi-ficar todas las secuencias de im´agenes de este, lo que a nivel pr´actico se traduce como; para cada imagen del v´ıdeo, suponiendo que se est´a trabajando con n frames, coge los (n/2) − 1 frames anteriores, el frame actual, y los (n/2) − 1 frames siguientes y etiqueta dicha secuencia (Fig. 38). Esta operaci´on nos dar´a, para un v´ıdeo de i im´agenes, un vector con i etiquetas, donde la etiqueta en la posici´on j es la etiqueta de la secuencia cuya imagen central es la imagen de indice j en el v´ıdeo.

Sin embargo existen dos problemas para esta aproximaci´on. En primer lugar est´a el tratamiento de bordes, y en segundo lugar, zonas en las que se producen muchas variaciones de clase en pocos frames.

6.3.1 Tratamiento de bordes

El problema de los bordes es un problema que surge al analizar secuencias de n frames consecutivos de un v´ıdeo de longitud m, ya que el numero m´aximo de

(52)

Fig. 38: El bloque inferior representa los resultados, el bloque superior repre-senta un v´ıdeo. En la figura se ilustra la secuencia de v´ıdeo que corresponde a un valor del vector de resultados

muestras diferentes que se pueden obtener son m − n. Existen varias soluciones para este problema. 1) Asumir que el v´ıdeo es circular y que el frame 0 y el frame m son consecutivos, 2) Asumir que los frames [−n/2, 0] son igual que el frame 0, y que los frames [m, m + n/2] son igual que el frame m, o directamente 3) Despreciar los resultados para las posiciones [0, n/2] y [m − n/2, m]. En esta aplicaci´on se ha optado por esta ´ultima opci´on ya que en cualquier caso, el resultado obtenido para esas posiciones no contendr´ıa informaci´on real si se utilizaran cualquiera de las otras dos soluciones.

6.3.2 Tratamiento de ruido

A priori, el resultado que se espera en la evaluaci´on de un v´ıdeo deber´ıa de ser una figura en la que los cambios fuesen sostenidos en el tiempo, sin embargo esto no sucede, debido en parte a que la clasificaci´on no es del todo robusta, ya que, por un lado, existe mucho ruido en la informaci´on que se trata y por otro, que los eventos no tienen una duraci´on constante en el tiempo.

(53)

g(x) = median

i=0

f (x + i) (1)

Sin embargo esta formula se ha variado ligeramente, ya que la idea es escoger para un punto la mediana de los segmentos que lo rodean, no de los segmentos posteriores, as´ı, la formula que aplica en este caso es la siguiente:

g(x) = median  n 2 X i=−n 2 f (x + i)  (2) Este filtro, que se ilustra en la figura 40 ofrece una representaci´on de lo que sucede en los segmentos eliminando una gran cantidad de ruido.

Fig. 40: El valor contenido en la caja superior es el valor que estar´a contenido en el indice 3 en el momento de aplicar la ventana a la secuencia

6.4

Resultados

En un breve resumen el proceso realizado a los v´ıdeos ha sido el siguiente 1) Extracci´on de caracter´ısticas de cada imagen, 2) construcci´on de secuencias de diferentes tama˜nos 3) Clasificaci´on de las secuencias 4) Eliminaci´on de ruido en los resultados.

(54)

Como se ha comentado a lo largo de esta secci´on este se trataba de un ejercicio exploratorio que trataba de responder la pregunta: ¿Tiene sentido intentar clasificar las secuencias de un v´ıdeo intestinal?

En las secuencias que se muestran a continuaci´on se puede observar como, en efecto, la clasificaci´on de las secuencias de v´ıdeo es algo que tiene mucho sentido. No tanto por haber sido capaces de identificar eventos intestinales concretos, sino porque se han conseguido identificar aquellos puntos en los que existe un cambio de patr´on.

La figura 46 contrasta la gr´afica de clases con el mosaico correspondiente al segmento y se puede observar claramente como el concepto de clase de imagen se pierde para dar paso a un concepto extendido en el tiempo del contenido de una secuencia.

Fig. 41: Comparaci´on de la gr´afica de clases suavizada con el mosaico corre-spondiente.

En las figuras 41, 42, 43, 44 se muestran, en la parte de arriba las dos gr´aficas; en azul la clase correspondiente al frame en´esimo, en verde la clase correspondiente al frame en´esimo tras el suavizado. En la parte inferior se puede observar el mosaico correspondiente.

Para poner de manifiesto las diferencias entre el uso de diferentes longi-tudes, y corroborar las conclusiones previamente expuestas, todas las figuras corresponden al mismo segmento de v´ıdeo.

(55)

Fig. 43: Resultado del an´alisis de secuencias de 60 frames.

Fig. 44: Resultado del an´alisis de secuencias de 80 frames.

(56)
(57)

hora de almacenar la informaci´on, y en segundo lugar el tiempo de acceso. Este proceso recoge todos los v´ıdeos del repositorio y los guarda en formato MJPEG para mas adelante procesarlos mediante la red neuronal. Estos resul-tados se guardan en disco en diccionarios a los que luego se puede acceder de una forma directa para trabajar con la informaci´on.

En cuanto a la construcci´

on de secuencias

Para poner en pr´actica la agilidad con la que se accede a los v´ıdeos se ha elab-orado un proceso de creaci´on de secuencias para tratar de extraer patrones a trav´es de las caracter´ısticas de cada una de las im´agenes extra´ıdas por la red neuronal.

Las secuencias se han construido con una cantidad preestablecida de im´agenes y se ha evaluado de forma visual la distribuci´on en un mapa de dos dimensiones mediante el uso del algoritmo t-SNE.

La conclusi´on obtenida tras la realizaci´on de la prueba anterior es que el tama˜no de secuencia que ofrece una mejor representaci´on de los datos es 80 frames, es decir 40 segundos de v´ıdeo intestinal.

En cuanto a la clasificaci´

on de secuencias

Se ha realizado una clasificaci´on de secuencias utilizando el m´etodo k-Means, utilizando como set de datos secuencias aleatorias extra´ıdas de distintos v´ıdeos. Esto, tras visualizar la distribuci´on de los resultados, de secuencias de difer-entes longitudes, en un mapa dos dimensional, da lugar a concluir que 1) Existen 6 clases diferenciadas de secuencias. 2) Estas clases ilustran con bastante pre-cisi´on el concepto de cambio de los sucesos intestinales.

(58)

8

Futuros trabajos

Interfaz de usuario para la extracci´

on de v´ıdeos

Una mejora a plantear para la extracci´on de v´ıdeos ser´ıa crear una interfaz que realizase este proceso de forma transparente al usuario, e incluso tambi´en integrarlo en la aplicaci´on web para permitir al usuario utilizarlo de forma trans-parente.

Persistencia de los resultados

Actualmente los resultados obtenidos se guardan en el sistema de ficheros de forma independiente. Ser´ıa objeto de una posible mejora el hecho de persistir estos resultados en una base de datos de cara a asegurar la integridad de los mismos.

Estudio de los patrones detectados

En cuanto a las clases discriminadas en la clasificaci´on de secuencias, ser´ıa objeto de estudio las implicaciones que tienen en la motilidad intestinal. Es decir, si existe alguna relaci´on directa entre un paciente sano y el numero, o el orden de las secuencias detectadas, o si se pueden relacionar estas secuencias con sucesos m´edicamente relevantes.

Figura

Fig. 2: Movimiento perist´ altico a la izquierda, segmentaci´ on a la derecha El movimiento propio de la pared muscular se llama contracci´ on
Fig. 3: Ejemplo de im´ agenes extra´ıdas de un v´ıdeo
Fig. 6: Segmento de un v´ıdeo representado mediante motility bar La construcci´ on de la motility bar se realiza a partir de una t´ ecnica llamada Acut (Adaptative cut)
Fig. 7: Pantalla principal de la aplicaci´ on web
+7

Riferimenti

Documenti correlati

The model reproduces the most important features of an ob- served spectrum with a theoretical one, which is obtained by summing the spectra of Single Stellar Population (SSP,

Spleen volume was measured by US in healthy control subjects (NCS) and in patients with secondary thrombocytosis (ST), essential thrombocythemia (ET), or idiopathic

In the plots, numbers, and colors correspond to the diverse transfected sncRNA- ASOs: blue, sncRNA-ASOs that impair cell viability in basal conditions (asterisks label miRNA-ASOs

To end, we drew the conclusion that the main difference between Modern democracies and Contemporary democracies was in fact, not the difference in the nature of the secularization

I dati di scavo, delle fonti storiche e della ricognizione, sono spesso (come il caso di Miranduolo insegna) molto più complessi di come abbiamo schematizzato, ma è necessario fare

Ognuna di queste tipologie di famiglie deve essere considerata come un sistema ovvero, una struttura complessa di elementi tra loro interdipendenti al punto che

Come luoghi pubblici abbiamo considerato sia gli spazi ricostruiti ex novo dopo il terremoto e posti in punti marginali del tessuto in- sediativo ( il nuovo municipio e la nuova