Thermal anomalies detection in the infrarred Spectrum at Weldestein 7-X
Abstract
In 2018, a series of experiments were made on the nuclear fusion reactor Weldenstein 7-X. Throughout these experiments, a huge amount of information was generated and gathered. The aim of this work is use image processing knowledge and techniques in order to detect and track some specifics anomalies that can occur inside the reactor. To achieve this goal, the information produced by the infrared cameras will be utilized.
Full text
Thermal anomalies detection in the infrared Spectrum at Weldestein 7-X Alex Moreno Punzano Tutor: Josep Ramon Casas Universitat Politècnica de Catalunya Barcelona, Espanya 1
Abstract In 2018, a series of experiments were made on the nuclear fusion reactor Weldenstein 7-X. Throughout these experiments, a huge amount of information was generated and gathered. The aim of this work is use image processing knowledge and techniques in order to detect and track some specifics anomalies that can occur inside the reactor. To achieve this goal, the information produced by the infrared cameras will be utilized. 2
Resum En 2018, es van fer una sèrie d’experiments al reactor de fusió nuclear Weldenstein 7-X . Al llarg d’aquests experiments, es va generar i catalogar una gran quantitat d’informació. L’objectiu d’aquest treball és utilitzar coneixements i tècniques de processament d’imatge per detectar i fer un seguiment d’algunes anomalies específiques que es poden produir dins del reactor. Per aconseguir aquest objectiu, s’utilitzarà la informació generada de les càmeres d’infrarojos. 3
Resumen En 2018, se realizaron una serie de experimentos en el reactor de fusión nuclear Weldenstein 7-X . A lo largo de estos experimentos, se generó y recopiló una gran cantidad de información. El objetivo de este trabajo es utilizar el conocimiento y las técnicas de procesamiento de imágenes para detectar y rastrear algunas anomalías específicas que pueden ocurrir dentro del reactor. Para lograr este objetivo, será utilizada la información generada por las cámaras infrarrojas. 4
Agraïments A Josep Ramon Casas , per assessorar-me com a tutor per tal de poder fer el millor treball possible. A l’Aina Palacios i l’Ivan Caminal per haver generat el codi previ a aquest treball i tota una sèrie d’eines que m’han facilitat molt alguns aspectes d’aquest treball; També a l’Aleix Puig per haver donar-nos un feedback sobre el treball. A Adrian Civera, Albert Villanueva i Gabriel Esteban, perque una vida sense bons amics no val la pena. Finalment infinit agraïment a la meva família, per donar-me suport incondicional al llarg d’aquests anys. 5
Llistat de figures Figura 1: Diagrama de capes del reactor Weldenstein 7-X…………………..... 12 Figura 2: Disposició dels divertors al reactor…………………....………………. 13 Figura 3: Imatge infrarroja…....…....…....…....…....…....…....…....…....…....…. 13 Figura 4: Imatge infrarroja manipulada…....…....…....…....…....…....…....….... 14 Figura 5: Temperatures que poden suportar els elements del reactor…....…..15 Figura 6: Anomalies tèrmiques a detectar…....…....…....…....…....…....…....... 16 Figura 7: Màscara generada utilitzant el primer filtre…....…....…....…....….... ..18 Figura 8: Màscara del divertor…....…....…....…....…....…....…....…....…....….. 19 Figura 9: Màscares generades amb el segon processat…....…....…....…....… 19 Figura 10: L’efecte dels Leading Edges sobre una màscara…....…....…....….... 20 Figura 11: Màscara amb punts sospitosos…....…....…....…....…....…....…....…. 21 Figura 12: Labels d’un objecte Hot Spot…....…....…....…....…....…....…....….... 22 Figura 13: Implementació final del codi de detecció d’anomalies…....…....…....22 Figura 14: Dues frames consecutives de la mateixa seqüència....….......…….. .23 Figura 15: Diagrama del programa implementat....….......….......….......…........ .24 Figura 16: Diagrama de l’algoritme de tracking (frames consecutives)....…...... 25 Figura 17: Exemple d’indexació d'identificadors....….......….......….......…......... 26 Figura 18: Diagrama de la informació que contindrà la finestra....….......…...... .27 Figura 19: Evolució de la persistència en una seqüència....….......….......…….. 28 Figura 20: Punt que desapareix i torna a aparèixer....….......….......….......…… 28 Figura 21: Punt que parpadeja....….......….......….......….......….......….......…… 29 Figura 22: Resultat d’aplicar el bloc de tracking....….......….......….......…....... ..30 Figura 23: Diagram complet del codi....….......….......….......….......….......…… ..31 Figura 24-26: Outputs generats....….......….......….......….......….......….......…...32- 33 Figura 27: Continuitat d’una strike line dividida……………………………………34 Figura 28: Strike lines paral·leles……………………………………………………35 Figura 29: Efecte Fisheye de la càmara……………………………………………35 Figura 30: Plot amb l’evolució de temperatura de hot spots ……………………..36 Figura 31: Frames significatius de la seqüència de video………………………..37 Figura 32: Detecció d’un punt que parpadeja……………………………………...38 Figura 33: Gràfic de temperatura on s’observa que no es recuperen punts…....39 Figura 34: Diagrama de Gantt………………………………………………………..43 6
Llistat de taules Taula 1: #WP1………………………………………………………………………………..42 Taula 2: #WP2………………………………………………………………………………..42 Taula 3: #WP3………………………………………………………………………………..43 Taula 4: Milestones…………………………………………………………………………..43 Taula 5: Pressupost………………………………………………………………………….44 7
Revision history and approval record Revision Date Purpose 0 10/01/2020 Document creation 1 16/01/2020 Document revision 2 22/01/2020 Document revision DOCUMENT DISTRIBUTION LIST Name e-mail Alex Moreno Punzano (Student) [email protected] Josep Ramon Casas (Supervisor) [email protected] Written by: Reviewed and approved by: Date 25/01/2020 Date Name Alex Moreno Punzano Name Position Project Author Position Project Supervisor 8
INDEX Llistat de figures 6 Llistat de taules 7 INDEX 9 1. Introducció 11 Tasques i fites a assolir 11 2. Background 12 El reactor Weldenstein 7-X i els seus experiments 12 Imatges en l’espectre infraroig 12 Anomalies tèrmiques 14 3. Metodología i eines emprades 17 Metodología 17 Eines emprades 17 4. Implementació 18 4.1 Detecció d’anomalies 18 4.1.1 El prefiltre 18 4.1.2 Análisi dels punts. Punts sospitosos. 20 4.1.3 Les classes Hotspot i HS_List 21 Classe Hotspot 21 Classe HS_List 22 4.1.4 Sintesi del bloc de detecció 22 4.1.5 Codi del bloc de detecció 23 4.2 Tracking d’anomalies tèrmiques 23 4.2.1. Criteri de seguiment 23 4.2.2. Algoritme de tracking 24 Comportament de les anomalies dins de una seqüència 24 Algoritme de tracking d’anomalies entre frames consecutius 25 L’atribut check 26 4.2.3 Tracking amb finestra 27 Concepte de peristència 28 Algoritme de recuperació de punts utilitzant la finestra 28 Detecció de punts parpadejants utilitzant la finestra 29 4.2.4 Síntesi del bloc de tracking 30 4.2.5 Algoritme del bloc de tracking 30 4.3 Algoritme principal 31 5. Resultats 34 9
Fig 6: Anomalies tèrmiques a tractar 16
3. Metodología i eines emprades En aquest apartat es justifiquen les eleccions presses respecte a la metodologia i l’eina escollida. Metodología Degut a la naturalesa de les anomalies que estem buscant, tot sembla indicar que una de les millors formes de detectar aquests pics de calor es utilitzant morfología matemàtica, ja que la nostra intenció serà la de detectar estructures geomètriques que poden aparèixer en un frame. Addicionalment s’ha de tenir en compte que no disposem d’un Ground Truth , per tant resulta impossible entrenar un classificador, i si bé existeixen mètodes per classificar que no requereixen d’etiquetat previ, la morfologia sembla una opció més pràctica per aquest problema. Eines emprades Com base per realitzar aquest treball, s’ha decidit utilitzar el llenguatge de programació Python . Perquè s’ha escollit realitzar aquest treball en python enlloc de matlab, que era l’alternativa més clara, o un altre idioma de programació: 1. Python es un codi obert que no requereix de llicències. Això pot facilitar que el codi pugui arribar a mans de més gent. 2. Accessibilitat. Donat que molts dels programes ja es troben escrits en Python , era molt més senzill continuar treballant amb el mateix idioma de programació. 3. Opencv i scipy. aquestes llibreries faciliten molt el tema de processat d'imatge, i tenen una documentació molt accessible. 4. Menor cost computacional. Per accedir més fàcilment a la informació es treballa directament des dels servidors de Calcula . Obrir matlab suposa un major cost computacional que treballar en python. 5. A nivell personal i no pràctic, donat que no havia fet cap programa en Python , em va semblar una bona oportunitat per aprendre un nou idioma de programació. 17
4. Implementació Podem dividir la implementació d’aquest treball en 2 grans blocs: la detecció d’anomalies tèrmiques i el seguiment (o tracking ) d’aquestes. 4.1 Detecció d’anomalies Abans de poder fer tracking hem de ser capaços de detectar i diferenciar cadascuna de les anomalies que hi ha en un frame. 4.1.1 El prefiltre La idea inicial era extreure frames de la seqüència, crear dues màscares buides (una per hot spots i l’altra per strike lines ), processar aquest frame fins extreure aquestes anomalies i guardar els resultats a les seves respectives màscares. Per un motiu de cost computacional el valor d’aquestes màscares serà un boolean (True si tal pixel d’una imatge pertany a aquella anomalia i False si no). Per tal detectar aquestes anomalies, s’utilitzarà morfologia matemàtica. Primer es realitza un Top-Hat sense reconstrucció sobre la imatge per tal de fer destacar els pics de temperatura. Seguidament, es seleccionem tots els punts que tenen un valor superior a 4900 en el frame original (que indica que aquelles posicions tenen una temperatura superior a 490ºK). Finalement, s’escull sobre el Top-Hat realitzat aquells punts que tenen superior un valor a 100 (una diferència major de 10 ºK). Això genera una màscara on es troben tots els punts calents, indiferentment de si es tracten de Hot spots o Strike Lines. Fig 7: Màscara generada utilitzant el primer filtre En quant a l’element morfològic seleccionat per realitzar el Top-hat, es tracta d’un cercle de 25 pixels de diàmetre. S’ha escollit un cercle perquè és l’element que millor s’adapta a la forma natural d’aquestes anomalies, i el tamany d’aquest cercle s’ha escollit empíricament, era el tamany que semblava donar millors resultats en les imatges de la base de dades. 18
El següent pas era fer una diferenciació entre strike lines i hot spots . Donat que la única diferencia apreciable entre aquests tipus d’anomalies es la seva forma, una vía bastant directa de separar-los era utilitzar dues apertures morfològiques diferents. Per diferenciar els hotspots, donat que tenen una forma circular, s’ha escollit un cercle de 10 pixels d’amplitud. En quant a strike lines, s’ha escollit una elipsoide amb diagonals de 25 i 5 pixels de longitud respectivament. S’ha escollit una forma horitzontalment llarga ja que segueix la direcció del divertor. Com en el cas anterior, els tamanys òptims dels filtres s’han escollit empíricament. Aquests filtres també eliminen el soroll de la imatge. Finalment, en el cas de le strike lines, donat que sabem que només poden aparèixer sobre la zona divertor, convé eliminar tots els valors detectats fora del divertor. Per aconseguir-ho, s’ha utilitzat un programa implementat per l’Aina Palacios que extreu una màscara del divertor de l’experiment indicat. Fig 8: Màscara del divertor A l’hora de generar l’output final es s’han colorejat les màscares de color vermell si es tracten de hot spots i blau si es tracta d’una strike line . 19
Fig 9: Màscares generades amb el segon processat 4.1.2 Análisi dels punts. Punts sospitosos. No necessàriament tot el que hem detectat ha de ser necessàriament una anomalia real, es poden produir falsos positius per diverses raons. Per exemple, un dels casos més comuns que podem trobar són les que es produeixen a la separació de dues plaques que formen divertor. Degut a que hi pot haver una diferència d’alçada entre aquestes plaques, aquella zona s’escalfa més del normal, i poden aparèixer ratlles verticals que no son no hot spots ni strike lines. Aquests punts de calor són coneguts com Leading Edges . Fig 10: L'efecte dels leading edges sobre una màscara. Donat que no tenim Ground Truth , m’ha semblat que la millor opció era mostrar aquests punts sospitosos amb un altre color, enlloc de fer-ho desaparèixer. Com a criteri de discriminació, ens hem basat en dos aspectes: la temperatura i la forma dels punts trobats. L'estratègia serà, per tant, dividir la imatge en labels i tractar cada punt individualment per extreure el valor de diverses característiques. A partir d’aquesta informació podrem decidir si un punt pot ser tractat com sospitós. Considerarem una label un conjunt de punts amb interconnexió 8. Per un lloc es calcularà la temperatura mitjana i la variància de la label. Es calculen ambdós aspectes perquè la distribució de temperatura dins d’un conjunt de punts pot arribar a ser molt variable. Per determinar la forma d’un punt s’utilitzarà el shape factor. Aquest és un paràmetre adimensional que descriu numèricament un conjunt connex. En el nostre cas es farà servir el shape factor que descriu la circularitat d’un conjunt a partir de l’àrea i el perímetre d’aquesta: hape F actor S= 4π·Àrea (P erímetre)2 Notar que aquesta fórmula té un valor màxim (1) quan s’aplica sobre un cercle i va disminuint conforme la forma s’allunya del cercle. Donat que sabem que els hot spots tenen una forma circular, utilitzarem el shape factor per marcar hot spots sospitosos, si la seva circularitat es baixa. No aplicarem aquest criteri sobre strike lines. 20
Fig 11: Máscara amb anàlisi de punts sospitosos. 4.1.3 Les classes Hotspot i HS_List En una primera aproximació del problema es creava una màscara única on es super-posaven totes les anomalies, però conforme el treball avançava i sobretot degut a la implementació del bloc de tracking, semblava necessari crear un sistema més eficaç per catalogar i diferenciar aquestes anomalies. Degut a això es van crear les classes Hotspot i HS_List Classe Hotspot Aquesta classe guarda tots els camps considerats necessaris d’una anomalia termica. Aquests són: ● Id: cada punt compta amb un identificador únic al llarg d’una seqüència. L’identificador serà un número natural i positiu. ● Label: en aquest camp es guarda una màscara del tamany del frame que conté les posicions en les quals es troba el punt. ● posx, posy: indica les posicions del primer punt que es troba de la anomalia termica si anem pixel per pixel d’esquerra a dreta i de dalt a baix, i té un valor auxiliar. ● Temperatura, variància, shape factor del punt. ● Un boolean que indica si un punt és sospitós. ● Dos boolean addicionals, invariant i check. El primer indica si un es estable (no parpadeja dins una seqüència de vídeo) i el segon es una variable auxiliar que s’utilitza a l’hora de fer el seguiment dels punts. 21
Fig 12: Labels d’un objecte hot spot . A l’esquerra s’observa encerclada en blau la label d’un objecte hot spot i a la dreta aquesta mateixa label encerclada amb totes les altre labels trobades a un frame. Classe HS_List Es una llista de hotspots que té els seus mètodes propis per afegir i treure hotspots en funció del identificador d’aquests principalment. Addicionalment, aquesta classe tindrà l’atribut comptador, que s’utilitzarà per assignar identificadors als punts que van apareixent. Aquest comptador començarà a 1 i anirà sumant 1 cada vegada que es trobi un nou punt. 4.1.4 Sintesi del bloc de detecció Per resumir la implementació final d’aquest primer bloc: 1. Partim d’una imatge infrarroja que conté a cada píxel la temperatura d’una zona del reactor. 2. Es fa un processat morfològic per detectar i separar cadascun dels hot spots i strike lines que conformen la imatge, i es guarda cada anomalia en una llista. Es creen dues llistes separades, una per hot spots i una altra per strike lines . 3. Es fa un anàlisi de la temperatura, i en el cas dels hot spots , també de forma de cadascun dels punts trobats, i es determina si pot ser catalogat com sospitós o no. 4. Finalment, es genera una màscara final on cada color refereix a una anomalía concreta. Fig 13: Implementació final del codi de detecció d’anomalies 22
Tot aquest bloc suposa un anàlisi que només té en compte la informació extreta d’un únic frame de la seqüència. Per realitzar anàlisis més rigurosos o detectar altres tipus d’anomalies és necessari veure com funcionen aquestes anomalies frame a frame. 4.1.5 Codi del bloc de detecció La implementació real de l’algoritmia explicada anteriorment s’ha dividit en 2 scripts: prefilter_tfg.py i support_prefilter.py . ● El codi de prefilter_tfg.py conté l’algoritme de detecció explicat a l’apartat 4.1.1. ●support_prefilter.py conté l’algoritme d’anàlisi de punts sospitosos i les classes Hotspot i HS_List 4.2 Tracking d’anomalies tèrmiques Ens interessa fer un seguiment de cadascun dels punts detectats en l’apartat anterior, per observar el seu comportament i fer un anàlisi temporal d’aquests amb el fi d’estudiar el seu comportament. 4.2.1. Criteri de seguiment Per fer un tracking de les anomalies és necessari establir un criteri per establir quan dos punts calents de frames diferents poden ser etiquetats com la mateixa anomalia. Finalment s’ha escollit com a criteri el solapament o overlapping , és a dir, el número de pixels coincidents entre labels. Els motius han estat per un lloc perquè és una solució intuitiva al problema, ja que té sentit que dos punts que es trobin en la mateixa posició en frames consecutius siguin la mateixa anomalia, i a més a més, es pot observar que la diferencia entre dos frames consecutius sol ser molt petita ja que les anomalies tèrmiques que estem tractant són bastant estables. Fig 14: Dues frames consecutives dins la mateixa seqüència de vídeo. Més enllà del soroll de la càmara (que el processat ignora, no hi ha grans diferències apreciables) 23
Addicionalment, s’ha imposat un llindar mínim. Si un punt no té un solapament superior al 50% del seu tamany amb un altre punt, es considerarà aquest com un punt nou. 4.2.2. Algoritme de tracking La primera aproximació d’aquest problema serà buscar la relació entre les anomalies detectades en dos frames consecutives. Recordar que dins dels objectes de la classe Hotspot es troba un identificador únic i un dels seus atributs es una label que conté la posició del punt. Per fer funcionar l’algoritme, tota la informació extreta del primer bloc la guardarem en dues llistes HS_List, anomenades frame_hs_list i frame_sl_list . La primera conté la llista dels hot spots detectats i la segona conté informació de les strike lines . Aquestes llistes es tornaran a crear cada vegada que analitzem una nova frame. A partir d’ara ens referirem a aquestes llistes com llistes del frame. Addicionalment, es crearan dues llistes globals, una per cada anomalia. A partir de la informació obtinguda a les llistes del frame, anirem actualitzant les llistes globals, que són les que mantindrà els punts de les llistes de frame però amb l’etiquetació de identificadors adequada. Finalment, per facilitar el procés, es generarà una màscara de referència, que bàsicament es la suma de totes les labels del frame anterior (en el cas del primer frame serà una matriu de zeros). Com les labels dins d’un mateix frame no es solapen, es tractarà d’una matriu de booleans . Amb aquests elements, podem sintetitzar el codi en el següent esquema: Fig 15: Diagrama del programa implementat. Apareixen dos llistes globals perquè una representa la llista de hot spots i l’altra representa la llista amb les strike lines. Es generarien també dues màscares de referència, una per cada llista. Comportament de les anomalies dins de una seqüència Per poder fer un algoritme de tracking robust, resulta indispensable tenir en ment totes les possibilitats respecte al comportament d’un punt entre frames consecutius. Podem resumir aquests possibles comportaments com: 24
● Apareix un nou punt que no ha aparegut en cap dels frames anterior. ● L’anomalia detectada es correspon amb una anomalía del frame anterior. ● S’ha produit splitting i un punt de calor s’ha dividit en dos punts. ● S’ha produit merging i s’han fusionat dos punts ● Una anomalía ha desaparegut respecte al frame anterior També haurem de tenir el compte quan una anomalia desapareix i torna a aparèixer un frames després, i de fet això es tractarà més endavant. Algoritme de tracking d’anomalies entre frames consecutius A l’hora d’assignar-li un identificador a una anomalia d’un frame qualsevol, bàsicament hem de crear un algoritme capaç de detectar si aquesta anomalia es nova o si bé ja es trobava en el frame anterior. Si tenim en compte només la informació del frame anterior, podem esquematitzar l’algoritme de la següent manera: Fig 16: Diagrama de l’algoritme de tracking (frames consecutius) Primer veiem si existeix cap solapació entre la label del punt i les labels del frame anterior (que es troben a la màscara de referència). Si realitzem el producte element a element entre una label d’un punt de calor i la màscara de referència, i obtenim una matriu de zeros, vol dir que no existeix cap tipus de solapament entre aquesta anomalia i el frame anterior, i per tant directament serà considerat com un nou punt, i se li assignarà com etiquetat un nou identificador. Si la multiplicació element a element és diferent a tot zeros, vol dir que s’ha produit un solapament entre la label i algun punt del frame anterior. Calculem el percentatge d’aquest solapament dividint el número d’elements diferents a zero en la multiplicació element a element entre el tamany de la labels en pixels. Si el solapament es inferior al 50%, també serà considerat com a nou punt. Per l’altra banda, si s’ha produit un solapament superior al 50%, hem de considerar 2 casos: 1. S’ha produït solapament únicament amb un dels punts del frame anterior (que es el més probable). 2. S’ha produït solapament amb més d’un punt. 25
frame, una de hotspots i l’altra strike lines. Aquestes llistes s’utilitzen per realitzar l’anàlisi del bloc de tracking i generar les llistes globals. Quan finalment s’han realitzat els processos dels blocs de detecció i seguiment d’anomalies tèrmiques, es generarà una imatge de sortida la qual mostrarà les anomalies utilitzant diferents colors. També s’utilitzaran diferents colors per indicar una anomalia com sospitosa. Concretament, en vermell es mostraràn els hot spots , en blau les strike lines , en magenta els hotspots sospitosos i en cian les strike lines sospitoses. Jeràrquicament, els hot spots ( no sospitosos) es mostren per sobre les strike lines , ja que en principi ens han senyalat que aquestes anomalies tenen un major interès i prioritat. Per últim, la imatge generada s’escriurà sobre l’objecte de vídeo (en format .avi ) per poder ser visualitzat per l’usuari. També es mostraràn el plot del mateix frame i el número de frame. La idea de mostrar la dispocisió com es mostra a continuació es facilitar l’anàlisi de les anomalies a les persones que trenallesin amb imatges infraroges. 32
Fig 24-26: Output generada amb una variable ‘case’ de valor 1, 2 i 3 respectivament. 33
5. Resultats Un cop hem acabat de dissenyar i implementat el sistema, hem d’estudiar a fons els resultats obtinguts amb el fi de comprobar si és un bon sistema, veure on falla o veure si té algun aspecte millorable de cara al futur. 5.1 Sistema de detecció Donat que no tenim un Ground Truth , resulta molt difícil buscar un sistema per tal de calcular numéricament la qualitat del sistema de detecció. Degut a això, el que hem fet per analitzar els resultats obtinguts en aquest bloc ha estat consultar a un expert sobre la materia que ens concern, l’Aleix Puig. Es tracta d’un enginyer que treballa analitzant imatges del reactor i té un gran coneixement sobre les anomalies tèrmiques que estem tractant. Sobre el sistema de detecció, ha assenyalat detalls a tenir en compte: ● La continuïtat de les strike lines : Degut al sistema que hem dissenyat, ignorem aquells punts que tenen una temperatura inferior a cert threshold . Donada la forma i que la temperatura de les strike lines varia al llarg d’aquestes, una mateixa strike line pot ser detectada com a diverses anomalies al realitzar el processat. Fig 27: Continuitat d’una strike line dividida. El problema no es que es divideixen les strike lines , ja que al principi hem imposat un llindar mínim de temperatura, el problema es que a la mateixa strike line , al trobar-se partida, se li donaria etiquetats diferents a cadascuna de les parts detectades, i això donaria problemas en millores futures. La solució més directa sería buscar un element morfològic que conectés aquestes strike lines . La millor forma d’extreure aquesta màscara seria a partir de la màscara del divertor, ja que les strike lines segueixen la seva direcció. 34
● Strike lines secundàries: Ocasionalment poden aparèixer diverses strike lines paral·leles al divertor. Una sol ser molt més intensa que l’altra, i aquest sistema pot tenir el problema de no detectar strike line secundària quan aquestes es troben molt juntes, encara que no podriem afirmar amb tota seguretat si això és degut a que no supera el llindar de calor imposat o si es degut a que la strike line principal fagocita la secundària. Fig 28: Strike lines paral·leles ● No es té en compte l’efecte fisheye de la càmera. L’ideal seria aplicar filtres morfològics que tinguessin en compte aquest efecte i anessin variant en funció de l’àrea que s’està tractant. Aquest problema no té solució immediata donat que seria necessària informació espaial sobre els píxels la qual encara no es troba disponible. Fig 29: Efecte Fisheye de la càmara 35
En general podem dir que el sistema detecta bé hot spots i fins i tot de forma involuntaria leading edges, pero es una mica fluix a l’hora de detectar strike lines . Un punt positiu a destacar que va senyalar l’expert és el fet de generar de forma independents màscares per cadascuna de les anomalies. 5.2 Sistema de tracking En aquest cas, hem implementat un métode per tal de definir qualitativament el sistema generat. La idea es agafar diverses sub-seqüències entre tota la base de dades, i representar la temperatura dels punts associats a un mateix identificador donada aquesta subseqüència. Si tenim en compte que la temperatura mitjana d’un mateix punt entre dos frames consecutius no varia molt, a partir d’aquest gràfics podem veure com es comporta el sistema, sempre i quan el comparem conjuntament amb les una seqüència de vídeo generada en el mateix interval. Al fer un plot amb una subseqüència de 50 punts hem obtingut el següent gràfic. Cada linea representa un punt al qual se li ha assignat un identificador diferent: Fig 30 : Plot amb l’evolució de la temperatura del hot spots. Analitzant la progressió de les imatges dins la seqüència podem analitzar el funcionament del sistema de tracking. 36
Fig: 31 Frames significatius de la seqüència de video relacionada amb el plot anterior La progressió de la imatge ha estat la següent: 1. Aquest és el primer frame de la seqüència. 2. En el frame 411 apareixen a la vegada dos hot spots molt junts. Fins a aquest punt el seguiment de tots els punts ha estat perfecte. 3. Les anomalies que havien aparegut en el punt 2) es fusionen en un únic punt. El sistema ho detecta com una nova anomalía. En aquest cas no es consideraria un error ja que el nou punt no té un overlap superior al 50% amb els punts anteriors, els quals tenen identificadors diferents. 4. Apareix un nou hot spot al costat del punt central. 5. Aquest es fusiona i es separa de forma consecutiva varies vegades amb el punt central. Si observem el gràfic, en aquest cas el sistema si que falla i no és capaç recuperar el punt i genera una anomalía nova cada vegada. 6. Finalment, queden 5 punts. Una vegada aquest sistema ha estat testejat amb diversos videos, podem extreure les següents conclusions sobre el sistema de tracking : ● El sistema de tracking entre frames consecutius funciona molt bé. Té algun petit inconvenient, com per exemple, quan un punt es divideix en 2, en la llista global de l’anomalía apareixeran 2 punts amb el mateix identificador perquè s’assumeix que aquests punts es tornaràn a fusionar en frames futures. Tanmateix, aquesta fusió pot arribar a no succeir, i llavors arrastriem 2 punts diferents amb el mateix identificador. La forma de solucionar aquest problema es afegint una finestra causal que tingui en en compte frames futures i que actualitzi els identificadors en funció d’aquest anàlisi. ● L’aplicació de la persistència també ha tingut un efecte positiu sobre el sistema. Efectivament, quan un punt parpadeja de forma consecutiva, ara aparèix com a sospitós. 37
Fig 32: Detecció d’un punt que parpadeja de forma consecutiva. ● Per altra banda, el sistema de punts que tornen a aparèixer no funciona adequadament, ja que no aconsegueix recuperar els identificadors del punts de frames anteriors. Tanmateix, si que detecta si el punt a estudiar es nou o pertany a un frame anterior, pero finalment sempre li assigna l’identificador com si fos un punt nou, així que a nivell pràctic no fa res. Sabem si el punt es detectat com a nou o vell perquè hi ha una versió del programa que de manera auxiliar imprimeix per pantalla el que va succeint, i quines assignacions es van fent, i quan s’intenta recuperar un punt antic surt el missatge de recuperar un punt antic, encara que el programa no actuï com estava previst. 38
Fig 33: Gràfic de temperatura on s’observa que no es recuperen punts. El punt que representa la línia verda es converteix en un nou punt cada vegada que torna a aparèixer. En aquest cas podem afirmar que es el mateix punt perquè s’ha corroborat amb la seqüència de vídeo que coincideix amb aquest gràfic. Consideraria que la implementació d’aquest sistema ha estat correcta, tot funciona com s’esperava, excepte el sistema de recuperació de punts, que no es capaç de recuperar l’identificador del punts antics, encara que si detecta que són punts antics. 39
6. Conclusions i desenvolupament futur Al principi d’aquest Treball de Fi de Grau, ens vam proposar generar un sistema d’anàlisi d'imatge capaç de detectar i fer un seguiment d’una sèrie anomalies tèrmiques que han estat captades per les càmeres infraroges del Weldenstein 7-X . En el primer bloc hem aconseguit detectar les anomalies tèrmiques d’una imatge infraroja utilitzant tècniques morfològiques. Els resultats obtinguts han resultat ser moderadament exitosos, ja que per un lloc es detecten bé els hot spots i per altre banda la detecció de strike lines es millorable. Posteriorment s’ha afegit una nova capa al sistema per detectar posibles fals positius amb l’intenció que en un futur o bé s’eliminin de les màscares o siguin processats de forma diferent. En el segon bloc hem aconseguit realitzar un sistema de tracking basat en el solapament. Si bé la finestra causal d’aquest limita en certa forma l’anàlisi que es pot fer sobre l’evolució dels punts, en general el sistema fa un bon seguiment dels punts estables. S’han combinat els dos blocs anteriors en un programa capaç de generar un arxiu de vídeo on es veuen marcades les anomalies en diferents colors i es marquen aquelles sospitoses, de manera que l’usuari pot observar el que ha succeït durant l’experiment. Els resultats obtinguts han estat satisfactoris, encara que de cara al futur cal millorar el sistema d’indexació de les strike lines , entre altres coses, per tal de generar un programa més complet. La idea darrere d’aquest programa es que sigui millorat en un futur per convertir-se en una eina útil de cara a la detecció d’anomalies del reactor utilitzant l’espectre infraroig. Aquest treball suposa la primera pedra d’un programa més sofisticat que detecti aquestes anomalies i les etiqueti amb gran precisió i sigui capaç de realitzar un anàlisi molt complet d’aquestes per tal d’ajudar a la gent que està treballant en aquest projecte. Desenvolupament futur Aquest programa sería una base sobre la que fundamentar una versió més avançada del mateix, així que es pot millorar de moltes formes. Diría que una de les millors formes de millorar aquest programa seria crear una finestra temporal que inclueixi frames ‘futures’ de la seqüència. Al tenir en compte també frames futures, es poden tractar casos que amb una finestra causal són impossibles de fer. 40
Una altra gran millora sería utilitzar filtres morfològics que s’adaptessin a l’efecte fisheye de les càmeres, encara que avui dia aquesta millora no es possible ja que no hi ha forma d’extreure la informació necessària per fer-ho. Addicionalment, està el tema de tractar i millorar l’anàlisi de punts sospitosos. En aquest treball ens hem centrat en senyalar-los en funció d’un threshold i un shape factor . Es pot tenir en compte, per exemple, que cada component dins el reactor té una tolerancia al calor diferent, i podem generar llindars en funció de sobre quin component ha aparegut el punt de calor. En definitiva diría el programa te aspectes a polir pero es una base sòlida, i la manera la qual ha estat dissenyat ha estat pensada perquè es pugui donar en un futur un estudi més complet sobre les anomalies tèrmiques, fins i tot afegir-ne de noves. Per exemple, en aquest mateix TFG hem utilitzat la informació que extreu aquest mateix programa per representar l'evolució de temperatura dels punts en una sub-seqüència (apartat 5.2). De la mateixa forma, una persona que estigui treballant en el reactor, podría utilitzar aquest programa com un eina per extreure informació, mostrar-la, fer altres tipus d’anàlisis, i un llarg etcetera. 41