Full text
UNIVERSIDADE DE SANTIAGO DE COMPOSTELA ESCOLA T´ ECNICA SUPERIOR DE ENXE ˜ NAR´ IA Rexistrado de imaxes hiperespectrais baseado na transformada r´apida de Fourier Autor: ´ Alvaro Ord´o˜nez Iglesias Directores: Francisco Arg¨uello Pedreira Dora Blanco Heras Grao en Enxe˜nar´ıa Inform´atica Xullo 2015 Traballo de Fin de Grao presentado na Escola T´ecnica Superior de Enxe˜nar´ıa da Universidade de Santiago de Compostela para a obtenci´on do Grao en Enxe˜nar´ıa Inform´atica
D. Francisco Arg¨uello Pedreira, Profesor do Departamento de Electr´onica e Computaci´on da Universidade de Santiago de Compostela, e Dna. Dora Blanco Heras, Profesora do Departamento de Electr´onica e Computaci´on da Universidade de Santiago de Compostela, INFORMAN: Que a presente memoria, titulada Rexistrado de imaxes hiperespectrais baseado na transformada r´apida de Fourier, presentada por D. ´ Alvaro Ord´o˜nez Iglesias para superar os cr´editos correspondentes ao Traballo de Fin de Grao da titulaci´on de Grao en Enxe˜nar´ıa Inform´atica, realizouse baixo a nosa direcci´on no Departamento de Electr´onica e Computaci´on da Universidade de Santiago de Compostela. E para que as´ı conste aos efectos oportunos, expiden o presente informe en Santiago de Compostela, a 8 de xullo de 2015: O director, A directora, O alumno, Francisco Arg¨uello Pedreira Dora Blanco Heras ´ Alvaro Ord´o˜nez Iglesias i
ii
Agradecementos Cando comecei a escribir esta memoria non sab´ıa moi ben se eliminar o include que engad´ıa esta secci´on ao documento e as´ı evitarme o quebracabezas de ter que escribila e que total, ningu´en ler´ıa. Finalmente, deixeino estar por se ao rematar de redactar me vi˜na a inspiraci´on. Por unha parte quero agradecerlle este traballo a aquelas persoas que sen elas esta etapa de catro anos, a cal este Traballo de Fin de Grao lle pon fin, ter´ıa sido m´ais dif´ıcil do que xa foi e por outra parte a aquelas persoas polas que este traballo non existir´ıa ou non ser´ıa o mesmo. A mi˜na familia, especialmente a meus pais e a mi˜na irm´a, por todo o apoio e axuda recibida dende que era un alcance de proxecto. A mi˜na moza por todo a paciencia que tivo e ten comigo. Aos meus amigos e a todos os compa˜neiros da carreira por estes catro anos incribles e en especial a Adri´an, Ant´on, Brais, Iria, Sp´ınola, V´ıctor... Aos directores do proxecto por terme proposto este traballo, pola s´ua amabilidade, dedicaci´on e incondicional axuda e ensinanzas. A Jorge A. S´uarez por aguantar todas as mi˜nas d´ubidas sobre GTK+ e HypeRvieW. iii
iv
´ Indice xeral 1. Introduci´on 1 1.1. Obxectivos............................... 2 1.2. Estrutura do presente documento . . . . . . . . . . . . . . . . . . 5 1.3. Rexistrado de imaxes hiperespectrais . . . . . . . . . . . . . . . . 6 2. Enunciado do Alcance do Proxecto 11 2.1. Definici´on do Alcance do Proxecto . . . . . . . . . . . . . . . . . . 11 2.2. Criterios de aceptaci´on do Proxecto . . . . . . . . . . . . . . . . . 11 2.3. Entregables do Proxecto . . . . . . . . . . . . . . . . . . . . . . . 12 2.4. Exclusi´ons do Proxecto . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5. Restrici´ons do Proxecto . . . . . . . . . . . . . . . . . . . . . . . . 12 2.6. Supostos do Proxecto . . . . . . . . . . . . . . . . . . . . . . . . . 12 3. Xesti´on do Proxecto 13 3.1. Xesti´on da Configuraci´on . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.1. Sistema de almacenamento . . . . . . . . . . . . . . . . . . 13 3.1.2. Control de cambios . . . . . . . . . . . . . . . . . . . . . . 15 3.2. Xesti´on do Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.1. Metodolox´ıa de desenvolvemento . . . . . . . . . . . . . . 15 3.2.2. Estrutura de Descomposici´on do Traballo . . . . . . . . . . 18 3.3. Xesti´ondoTempo .......................... 18 3.4. Xesti´on dos Custos . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4.1. Custos relativos ao persoal . . . . . . . . . . . . . . . . . . 25 3.4.2. Custos relativos ao material . . . . . . . . . . . . . . . . . 27 3.4.3. Custos relativos ao software . . . . . . . . . . . . . . . . . 29 3.4.4. Custostotais ......................... 29 3.5. Xesti´ondeRiscos........................... 29 3.5.1. Identificaci´on de riscos . . . . . . . . . . . . . . . . . . . . 30 3.5.2. Especificaci´on de riscos . . . . . . . . . . . . . . . . . . . . 32 4. An´alise 39 4.1. An´alise de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.1.1. Glosario ............................ 40 v
4.1.2. Participantes no proxecto . . . . . . . . . . . . . . . . . . 40 4.1.3. Cat´alogo de Requisitos . . . . . . . . . . . . . . . . . . . . 40 4.1.4. Especificaci´on de Requisitos . . . . . . . . . . . . . . . . . 44 4.2. Iteraci´ons ............................... 63 4.2.1. Iteraci´on 1: Algoritmo FFT . . . . . . . . . . . . . . . . . 64 4.2.2. Iteraci´on 2: Imaxes hiperespectrais . . . . . . . . . . . . . 64 4.2.3. Iteraci´on 3: Algoritmo gradientes . . . . . . . . . . . . . . 65 4.2.4. Iteraci´on 4: Algoritmo MLFFT . . . . . . . . . . . . . . . 65 4.2.5. Iteraci´on 5: Introduci´on do rexistrado como m´odulo da ferramenta HypeRvieW .................... 66 4.3. Casosdeuso.............................. 67 4.3.1. Diagrama de casos de uso . . . . . . . . . . . . . . . . . . 68 4.3.2. Especificaci´on de casos de uso . . . . . . . . . . . . . . . . 69 4.3.3. Matriz de trazabilidade . . . . . . . . . . . . . . . . . . . . 72 5. Dese˜no 75 5.1. Tecnolox´ıas e linguaxes de programaci´on . . . . . . . . . . . . . . 75 5.2. Diagramadefluxo .......................... 76 5.3. Diagramas de fluxo de datos . . . . . . . . . . . . . . . . . . . . . 77 5.3.1. Diagrama de contexto . . . . . . . . . . . . . . . . . . . . 80 5.3.2. Diagrama do sistema . . . . . . . . . . . . . . . . . . . . . 81 5.3.3. Diagramas de nivel dous . . . . . . . . . . . . . . . . . . . 81 5.3.4. Diagramas de nivel tres . . . . . . . . . . . . . . . . . . . . 83 5.3.5. Dicionario de datos . . . . . . . . . . . . . . . . . . . . . . 86 5.4. Modelodedatos............................ 100 6. Implementaci´on 101 6.1. Reduci´on da dimensionalidade da imaxe hiperespectral . . . . . . 101 6.1.1. Gradientes........................... 101 6.1.2. PCA.............................. 103 6.2. Algoritmo baseado na FFT . . . . . . . . . . . . . . . . . . . . . . 106 6.2.1. Correlaci´on cruzada . . . . . . . . . . . . . . . . . . . . . . 107 6.2.2. Log-polar ........................... 108 6.2.3. Algoritmo final baseado na FFT . . . . . . . . . . . . . . . 110 6.3. Algoritmo gradientes . . . . . . . . . . . . . . . . . . . . . . . . . 114 6.4. AlgoritmoMLFFT .......................... 116 7. Validaci´on e probas 121 7.1. Imaxes empregadas nas probas . . . . . . . . . . . . . . . . . . . . 121 7.2. T´ecnicas de reduci´on de dimensionalidade . . . . . . . . . . . . . 122 7.3. Algoritmos............................... 128 7.4. Probas con ru´ıdo branco . . . . . . . . . . . . . . . . . . . . . . . 129 7.5. M´odulo interface gr´afica . . . . . . . . . . . . . . . . . . . . . . . 131 vi
7.6. Validaci´on de requisitos . . . . . . . . . . . . . . . . . . . . . . . . 135 8. Conclusi´ons 143 8.1. Posibles ampliaci´ons . . . . . . . . . . . . . . . . . . . . . . . . . 144 9. Glosario 147 9.1. Definici´ons............................... 147 9.2. Acr´onimos............................... 148 A. Manual de usuario 151 A.1. M´odulo HypeRvieW ......................... 151 A.1.1. Manual de instalaci´on . . . . . . . . . . . . . . . . . . . . 151 A.1.2. Rexistrado dunha imaxe . . . . . . . . . . . . . . . . . . . 152 A.2. Ferramenta de rexistrado por li˜na de comandos . . . . . . . . . . 161 A.2.1. Manual de instalaci´on . . . . . . . . . . . . . . . . . . . . 161 A.2.2. Execuci´on e par´ametros . . . . . . . . . . . . . . . . . . . 161 Bibliograf´ıa 165 vii
5.24. Proceso: Imprimir por pantalla. . . . . . . . . . . . . . . . . . . . 93 5.25. Fluxo de datos: Imaxe rexistrada. . . . . . . . . . . . . . . . . . . 93 5.26. Fluxo de datos: Par´ametros. . . . . . . . . . . . . . . . . . . . . . 93 5.27. Fluxo de datos: Imaxes de entrada. . . . . . . . . . . . . . . . . . 93 5.28. Fluxo de datos: Resultado. . . . . . . . . . . . . . . . . . . . . . . 94 5.29. Fluxo de datos: Imaxe1. . . . . . . . . . . . . . . . . . . . . . . . 94 5.30. Fluxo de datos: Imaxe2. . . . . . . . . . . . . . . . . . . . . . . . 94 5.31. Fluxo de datos: Imaxe1 reducida. . . . . . . . . . . . . . . . . . . 94 5.32. Fluxo de datos: Imaxe2 reducida. . . . . . . . . . . . . . . . . . . 95 5.33. Fluxo de datos: Imaxe2 reducida. . . . . . . . . . . . . . . . . . . 95 5.34. Fluxo de datos: Imaxe1 transformada. . . . . . . . . . . . . . . . 95 5.35. Fluxo de datos: Imaxe2 transformada. . . . . . . . . . . . . . . . 95 5.36. Fluxo de datos: ´ Angulo. ....................... 96 5.37. Fluxo de datos: Escala. . . . . . . . . . . . . . . . . . . . . . . . . 96 5.38. Fluxo de datos: Desprazamento. . . . . . . . . . . . . . . . . . . . 96 5.39. Fluxo de datos: FFT Imaxe1. . . . . . . . . . . . . . . . . . . . . 96 5.40. Fluxo de datos: FFT Imaxe2. . . . . . . . . . . . . . . . . . . . . 97 5.41. Fluxo de datos: FFTShift Imaxe1. . . . . . . . . . . . . . . . . . . 97 5.42. Fluxo de datos: FFTShift Imaxe2. . . . . . . . . . . . . . . . . . . 97 5.43. Fluxo de datos: Imaxe1 Filtrada. . . . . . . . . . . . . . . . . . . 97 5.44. Fluxo de datos: Imaxe2 Filtrada. . . . . . . . . . . . . . . . . . . 97 5.45. Fluxo de datos: LogPolar Imaxe1. . . . . . . . . . . . . . . . . . . 98 5.46. Fluxo de datos: LogPolar Imaxe2. . . . . . . . . . . . . . . . . . . 98 5.47. Fluxo de datos: Matriz correlaci´on cruzada. . . . . . . . . . . . . 98 5.48. Fluxo de datos: Matriz correlaci´on cruzada ordenada. . . . . . . . 98 5.49. Fluxo de datos: Imaxe2 escalada e/ou rotada ´angulo. . . . . . . . 98 5.50. Fluxo de datos: Imaxe2 escalada e/ou rotada ´angulo+180o. . . . . 99 5.51. Fluxo de datos: Matriz correlaci´on cruzada 1. . . . . . . . . . . . 99 5.52. Fluxo de datos: Matriz correlaci´on cruzada 2. . . . . . . . . . . . 99 5.53. Fluxo de datos: Max1. . . . . . . . . . . . . . . . . . . . . . . . . 99 5.54. Fluxo de datos: Max2. . . . . . . . . . . . . . . . . . . . . . . . . 99 7.1. Resultados das probas de rexistrado con gradiente vectorial e RCMG.125 7.2. Resultados das probas de rexistrado con gradiente vectorial e RCMG das tres primeiras bandas PCA. . . . . . . . . . . . . . . . . . . . 125 7.3. Resultados das probas de rexistrado con media das tres primeiras bandas PCA, con media de todas as bandas PCA e coa primeira banda PCA para factores de escala de 3.0 e 3.5. . . . . . . . . . . 126 7.4. Resultados das probas de rexistrado con media das tres primeiras bandas PCA e coa primeira banda PCA para un factor de escala 4.0.................................... 126 7.5. Resultados das probas de rexistrado co algoritmo FFT e MLFFT para as imaxes da Universidade e do centro de Pavia. . . . . . . . 129 xiv
7.6. Resultados das probas de rexistrado co algoritmo FFT e MLFFT para a imaxe do val de Salinas. . . . . . . . . . . . . . . . . . . . 129 7.7. Resume dos resultados das probas con ru´ıdo. As porcentaxes indican a porcentaxe de rexistrados achados correctamente dentro de cada bater´ıa de probas (72 ´angulos con cada factor de escala). . . 131 7.8. Probas do m´odulo de rexistrado para HypeRvieW (interface gr´afica).134 7.9. Cadro explicativo das probas de validaci´on de requisitos. . . . . . 135 7.10. Proba de validaci´on VPR-01. . . . . . . . . . . . . . . . . . . . . 135 7.11. Proba de validaci´on VPR-02. . . . . . . . . . . . . . . . . . . . . 136 7.12. Proba de validaci´on VPR-03. . . . . . . . . . . . . . . . . . . . . 136 7.13. Proba de validaci´on VPR-04. . . . . . . . . . . . . . . . . . . . . 136 7.14. Proba de validaci´on VPR-05. . . . . . . . . . . . . . . . . . . . . 137 7.15. Proba de validaci´on VPR-06. . . . . . . . . . . . . . . . . . . . . 137 7.16. Proba de validaci´on VPR-07. . . . . . . . . . . . . . . . . . . . . 137 7.17. Proba de validaci´on VPR-08. . . . . . . . . . . . . . . . . . . . . 138 7.18. Proba de validaci´on VPR-09. . . . . . . . . . . . . . . . . . . . . 138 7.19. Proba de validaci´on VPR-10. . . . . . . . . . . . . . . . . . . . . 138 7.20. Proba de validaci´on VPR-11. . . . . . . . . . . . . . . . . . . . . 139 7.21. Proba de validaci´on VPR-12. . . . . . . . . . . . . . . . . . . . . 139 7.22. Proba de validaci´on VPR-13. . . . . . . . . . . . . . . . . . . . . 140 7.23. Proba de validaci´on VPR-14. . . . . . . . . . . . . . . . . . . . . 141 7.24. Proba de validaci´on VPR-15. . . . . . . . . . . . . . . . . . . . . 141 7.25. Proba de validaci´on VPR-16. . . . . . . . . . . . . . . . . . . . . 141 7.26. Proba de validaci´on VPR-17. . . . . . . . . . . . . . . . . . . . . 142 7.27. Proba de validaci´on VPR-18. . . . . . . . . . . . . . . . . . . . . 142 7.28. Proba de validaci´on VPR-19. . . . . . . . . . . . . . . . . . . . . 142 7.29. Proba de validaci´on VPR-20. . . . . . . . . . . . . . . . . . . . . 142 xv
xvi
Cap´ıtulo 1 Introduci´on Fronte ´as t´ıpicas imaxes dixitais a cor, que s´o contan con 3 bandas de informaci´on (RGB), unha imaxe hiperespectral permite almacenar informaci´on da mesma escena espacial en diferentes rangos do espectro electromagn´etico, dende o visible ata o infravermello [1]. ´ E dicir, son imaxes nas que cada punto ven descrito por un vector (restra ordenada de valores num´ericos) de valores espectrais que se corresponden coa refracci´on da luz detectada nese punto en diferentes bandas do espectro. O nome de imaxe hiperespectral foi acu˜nado inicialmente no campo da visualizaci´on mediante sat´elites [2], a´ında que hoxe en d´ıa tam´en se obte˜nen imaxes deste tipo noutros ´ambitos de aplicaci´on tales como laboratorios e hospitais [3]. As imaxes de sensado remoto de cobertura terrestre adqu´ırense mediante sensores situados en sat´elites ou avi´ons que permiten obter as imaxes a un custo que ´e cada vez menor debido aos grandes avances tecnol´oxicos que se ve˜nen levando a cabo nos ´ultimos anos. Exemplos de sensores ´e, por exemplo, o Airborne Visible Infra-Red Imaging spectrometer (AVIRIS) da NASA [4]. A an´alise dos datos do sensado remoto presenta retos abertos en canto ´a an´alise espectral, detecci´on de obxectivos, clasificaci´on e comparaci´on. Investigaci´ons nestes campos estanse realizando actualmente en moitas das universidades e centros de investigaci´on a nivel mundial. No caso de que as imaxes sexan da superficie terrestre ´e posible detectar en que zonas est´a presente determinada especie vexetal, materiais das estruturas urbanas, r´ıos, ... ou detectar cambios que se produciran ao longo do tempo. Unha operaci´on fundamental nestas aplicaci´ons ´e o rexistro (ali˜nado) de imaxes, procedemento mediante o cal se fan corresponder os puntos de d´uas imaxes dunha mesma escena obtidas en diferentes instantes de tempo. Este proceso esixir´a detectar os valores de desprazamento, escalado e rotaci´on que permiten ali˜nar as d´uas imaxes. Para facer posible esta operaci´on desenvolverase neste proxecto algoritmos que traballen coas imaxes hiperespectrais no dominio da frecuencia, isto 1
2CAP´ ITULO 1. INTRODUCI ´ ON ´e, baseados na Transformada r´apida de Fourier. Estes algoritmos ser´an capaces de realizar este traballo de xeito autom´atico. Inicialmente investigarase a aplicaci´on ´as imaxes hiperespectrais de m´etodos de rexistrado xa existentes para imaxes RGB e escala de grises. A aplicaci´on destes m´etodos a estas imaxes non ´e directo, xa que no caso das imaxes hiperespectrais cada p´ıxel corresponde con un vector de centos de compo˜nentes espectrais. Estudaranse distintos m´etodos e t´ecnicas de extracci´on de caracter´ısticas que nos permitan reducir a dimensionalidade como poden ser, a selecci´on de bandas, a combinaci´on de bandas, o c´alculo de gradientes, a an´alise en compo˜nentes principais, e outras opci´ons que se describir´an con maior detalle en vindeiros cap´ıtulos desta memoria. Unha vez realizado o estudo descrito, desenvolveranse os algoritmos de rexistrado m´ais eficientes as´ı como as t´ecnicas de extracci´on de caracter´ısticas m´ais prometedoras e probaranse diferentes posibilidades para aplicar os algoritmos de rexistrado ´as imaxes hiperespectrais. Compararanse os resultados obtidos e concluirase este traballo de investigaci´on cos efectos conseguidos. Finalmente as mellores opci´ons de rexistrado para imaxes hiperespectrais ser´an inclu´ıdas como un m´odulo da ferramenta HypeRvieW [5] de an´alise e clasificaci´on deste tipo de imaxes desenvolvida polo grupo de investigaci´on no que se desenrola este traballo. 1.1. Obxectivos O proxecto centrarase no estudo de diferentes algoritmos xa existentes para rexistro de imaxes RGB que est´an baseados na transformada r´apida de Fourier. A ra´ız dese estudo seleccionaranse os m´ais prometedores para desenvolvelos e analizar diferentes posibilidades de aplicaci´on destes algoritmos ´as imaxes hiperespectrais, pois a s´ua aplicaci´on non ´e directa. Investigarase tam´en sobre diferentes m´etodos de extracci´on de caracter´ısticas das imaxes hiperespectrais para as´ı poder reducir a s´ua dimensionalidade e quedarnos coa informaci´on m´ais relevante sobre a que se realizar´a o rexistrado. Os algoritmos desenvolvidos ser´an capaces de realizar o rexistrado de d´uas imaxes hiperespectrais do mesmo obxecto ou localizaci´on, facendo corresponder os diferentes puntos mediante o c´alculo do ´angulo de rotaci´on, factor de escala e translaci´on dunha imaxe respecto da outra. Estes resultados deber´an ser amosados tanto numericamente como xerar a imaxe resultante do proceso.
1.1. OBXECTIVOS 3 Traballarase sobre diferentes posibilidades de aplicaci´on destas t´ecnicas sobre diferentes versi´ons do algoritmo. Realizaranse numerosas probas e modificaci´ons co fin de conseguir un bo m´etodo de rexistrado. Conclu´ırase o traballo cunha an´alise dos resultados obtidos. Os algoritmos m´ais eficientes integraranse nun novo m´odulo da ferramenta HypeRvieW [5] de an´alise e clasificaci´on de imaxes hiperespectrais. A inclusi´on deste traballo nunha interface gr´afica permite aumentar a usabilidade, comodidade e satisfacci´on dos usuarios as´ı como o entendemento e a eficiencia por parte dos mesmos pois conseguen con precisi´on realizar o proceso de rexistrado de imaxes hiperespectrais. Noutras palabras, os usuarios poder´an as´ı levar a cabo o rexistrado dun xeito m´ais sinxelo, r´apido e amigable. A motivaci´on da realizaci´on deste Traballo De Fin de Grao xorde da s´ua evidente necesidade como preproceso a aplicar antes de outros procesos que nos permitan detectar cambios, como a cuantificaci´on de especies nun ecosistema arb´oreo en diferentes instantes temporais ou o seguimento de cat´astrofes naturais. O ali˜namento de imaxes baseado na Transformada R´apida de Fourier (FFT) foi proposto nun artigo de investigaci´on [6] en 1994. Dende aquel ano numerosos artigos foron publicados realizando melloras e variaci´ons. Sen embargo se falamos de rexistrado de imaxes hiperespectrais, este campo non ´e tan amplo. Existen m´etodos baseados en redes auto-organizadas [7], en algoritmos xen´eticos [8] as´ı como t´ecnicas baseadas na FFT para o ali˜namento de bandas dentro dunha mesma imaxe hiperespectral [9][10][11]. Mais o algoritmo que se prop´on neste traballo ´e innovador debido a non existencia dunha t´ecnica baseada na Transformada R´apida de Fourier capaz de realizar o rexistrado sobre d´uas imaxes hiperespectrais. ´ E esta outra raz´on motivadora para o desenrolo deste proxecto. Dunha forma m´ais espec´ıfica estes son os obxectivos deste Traballo de Fin de Grao: Estudar os diferentes algoritmos xa existentes para rexistro de imaxes en escala de grises e RGB que est´an baseados na transformada r´apida de Fourier. Analizar diferentes posibilidades de aplicaci´on dos algoritmos de rexistrado estudados a imaxes hiperespectrais baseadas na reduci´on de dimensionalidade das imaxes e seleccionar as t´ecnicas m´ais axeitadas. Desenvolver algoritmos que partindo de d´uas imaxes hiperespectrais do mesmo obxecto ou localizaci´on consigan achar o ´angulo de rotaci´on, o factor de escala e o desprazamento que diferencian dunha imaxe respecto da outra,
4CAP´ ITULO 1. INTRODUCI ´ ON facilitando as´ı posteriores usos como pode ser a clasificaci´on ou comparaci´on de diferentes instantes de tempo. Estudar diferentes posibilidades e combinaci´ons dos algoritmos estudados e das t´ecnicas de extracci´on de caracter´ısticas. A implementaci´on resultante, chamada ferramenta de rexistrado, deber´a rexistrar as d´uas imaxes hiperespectrais, lidas dende ficheiro, estimando a ´angulo de rotaci´on, o factor de escala e a translaci´on dunha respecto da outra amosando o resultado numericamente e xerar unha imaxe resultado do ali˜namento. Os algoritmos m´ais eficientes integraranse nun novo m´odulo da ferramenta HypeRvieW [5] de an´alise e clasificaci´on de imaxes hiperespectrais. Inclu´ır o traballo desenvolvido neste proxecto nunha interface gr´afica permite aumentar a usabilidade, a eficiencia, a efectividade e a satisfacci´on nun contexto de uso por parte dun usuario. Crease deste xeito un produto software m´ais f´acil de entender, de empregar e m´ais atractivo para o usuario final. A ferramenta HypeRvieW conta con diferentes m´odulos, xa existentes na aplicaci´on, de clasificaci´on de imaxes mediante t´ecnicas de aprendizaxe supervisado baseadas en SVM ou ELM que foron desenvolvidas polo grupo de investigaci´on. As caracter´ısticas que engadiremos ´a ferramenta mediante o novo m´odulo de clasificaci´on ser´an as seguintes: •Esta ferramenta permitiranos cargar, dun xeito doado, as imaxes hiperespectrais dende un ficheiro para o seu posterior procesado. •O dese˜no da aplicaci´on permitir´a inclu´ır novas t´ecnicas como m´odulo da mesma dunha maneira doada. •O seu dese˜no dotar´a a aplicaci´on dunha complexidade m´ınima amosando de maneira intuitiva para o usuario a imaxe orixinal as´ı como o resultado en formato gr´afico e num´erico. •Ter´a unha interface f´acil de empregar e intuitiva. •Permitir´a almacenar os resultados tanto en ficheiro de imaxe como os resultados num´ericos. •Permitir´a visualizar a imaxe hiperespectral de entrada banda a banda, mov´endonos entre as bandas de forma secuencial ou aleatoria e permitindo ao usuario almacenar cada banda. •Permitir´a realizar zoom nunha zona da imaxe podendo as´ı ver os diferentes p´ıxeles que forman esa parte da imaxe. •Permitir´a visualizar a firma espectral de calquera dos p´ıxeles que forman a imaxe mediante un histograma.
1.2. ESTRUTURA DO PRESENTE DOCUMENTO 5 1.2. Estrutura do presente documento Nesta secci´on descr´ıbense os diferentes apartados que conforman esta memoria e a informaci´on que aparece en cada un deles, e como esta foi estruturada. Esta memoria presenta nove cap´ıtulos, dous ap´endices e a bibliograf´ıa empregada que se describen a continuaci´on: O Cap´ıtulo 1, Introduci´on, onde se realiza unha pequena aproximaci´on aos conceptos xerais do que se vai desenvolver neste traballo as´ı como se presentan os obxectivos e motivaci´ons que fixeron que este traballo fora levado a cabo. O Cap´ıtulo 2, Enunciado do Alcance do Proxecto, onde se define o alcance do traballo, cales van ser os criterios de aceptaci´on, cales son os produtos entregables, que l´ımites e restrici´ons vai ter para cumprir a planificaci´on e con que supostos se parten. O Cap´ıtulo 3, Xesti´on do Proxecto, onde se describen as secci´ons relacionadas coa xesti´on do proxecto que se consideraron necesarias e oportunas para este traballo. Incl´ue a xesti´on da configuraci´on, a xesti´on do alcance, a xesti´on do tempo, a xesti´on de custos e a xesti´on de riscos. O Cap´ıtulo 4, An´alise, onde se describe o proceso de an´alise que foi levado a cabo. Comprende a an´alise e especificaci´on de requisitos, unha descrici´on m´ais detallada das iteraci´ons que se levaran a cabo no ciclo de vida escollido no anterior cap´ıtulo froito dun estudo pormenorizado do que se vai desenvolver e o diagrama de casos de uso do sistema e a s´ua especificaci´on. O Cap´ıtulo 5, Dese˜no, onde se presentan as linguaxes de programaci´on e tecnolox´ıas escollidas enfront´andoas a alternativas e cunha breve explicaci´on de porque se elixiron. Incl´ue tam´en un diagrama de fluxo que presenta a estrutura base dun algoritmo de rexistrado baseado na Transformada R´apida de Fourier, as´ı como un diagrama de fluxo de datos que permite comprender mellor o traballo que se pretende desenvolver. O Cap´ıtulo 6, Implementaci´on, onde inicialmente se presentan e describen as t´ecnicas escollidas para a reduci´on de dimensionalidade das imaxes hiperespectrais. A continuaci´on presentase unha explicaci´on con todo detalle das diferentes versi´ons de algoritmos desenvolvidos. O Cap´ıtulo 7, Validaci´on e probas, onde se recollen as probas realizadas e resultados obtidos para probar a precisi´on e eficacia dos m´etodos desenvolvidos e conclu´ır cal ou cales son as mellores opci´ons para a realizaci´on do rexistrado. Especif´ıcanse tam´en as probas para a validaci´on dos requisitos
6CAP´ ITULO 1. INTRODUCI ´ ON do sistema, unhas probas dese˜nadas para a proba da interface gr´afica e os resultados das probas introduc´ındolle ru´ıdo branco ´a imaxe que se pretende rexistrar. O Cap´ıtulo 8, Conclusi´ons, onde se atopan as conclusi´ons tiradas da an´alise dos resultados obtidos e se propo˜nen posibles ampliaci´ons do proxecto que se escapan do alcance do mesmo. O Cap´ıtulo 9, Glosario, onde se recolle aquelas definici´ons e acr´onimos que se consideraron de necesaria importancia clarificar e dispo˜ner ´a man do lector da memoria. O Ap´endice A, Manual de usuario, onde se incl´ue toda aquela informaci´on necesaria que precisa o usuario final para a instalaci´on e utilizaci´on do aqu´ı desenvolvido. Bibliograf´ıa, onde se achan as referencias bibliogr´aficas que foron consultadas para a realizaci´on deste traballo as´ı como referencias complementarias. 1.3. Rexistrado de imaxes hiperespectrais Nesta terceira secci´on introd´ucense aqueles termos b´asicos que se van manexar ao longo do documento e que son propios da contorna na que xira este traballo. Pretende ser unha extensi´on da introduci´on que nos aporte informaci´on adicional de interese. Existen ´a d´ıa de hoxe unha grande variedade de sensores capaces de medir valores de refracci´on da luz en diferentes lonxitudes de onda [12]. Debido ao avance tecnol´oxico destes sensores, este tipo de imaxes p´odense e poderanse obter cada vez a menores custos que antano. A dispo˜nibilidade deste novo tipo de sensores fai que xorda un novo tipo de imaxe dixital. Unha imaxe dixital est´a formada por diferentes puntos chamados p´ıxeles, mais nunha imaxe hiperespectral en cada p´ıxel atopamos unha restra de valores que representan ao mesmo punto da superficie capturada en diferentes lonxitudes de onda. A cada p´ıxel adoit´aselle chamar, vector-p´ıxel. Isto p´odese ver graficamente na Figura 1.1 onde cada l´amina da imaxe se corresponde cos valores nunha lonxitude de onda espec´ıfica. O procesado de captaci´on deste tipo de imaxes por parte dos sensores basease no feito b´asico de que cada obxecto reflexa e absorbe a luz de diferentes maneiras dependendo da s´ua composici´on molecular e forma. O resultado da adquisici´on destes datos por parte do sensor poden ser representados por un cubo, como xa dixemos e se amosou nas Figuras 1.1 e 1.2. Podemos representar desta maneira cada p´ıxel cunha localizaci´on de d´uas dimensi´ons, e cunha terceira dimensi´on
1.3. REXISTRADO DE IMAXES HIPERESPECTRAIS 7 Figura 1.1: Cubo hiperespectral. para situar en que banda da lonxitude de onda queremos facer referencia que se atopa. ´ E por isto que a s´ua representaci´on en memoria na implementaci´on ser´a unha matriz tridimensional de n´umeros. Nunha imaxe dixital cl´asica en cor atopamos tres bandas espectrais: a vermella, cunha lonxitude de onda entre os 625nm e os 740nm; a verde, cunha lonxitude de onda entre os 520 e os 570nm e a azul, cunha lonxitude de onda entre os 440 e os 490nm. Polo contrario, nunha imaxe multiespectral podemos atopar decenas de bandas espectrais e nunha hiperespectral podemos encontrar centos de bandas espectrais con lonxitudes de onda que var´ıan dende o ultravioleta (valores inferiores de 400nm) ata o infravermello (valores superiores de 750nm). Isto sup´on que as imaxes hiperespectrais te˜nan centos de compo˜nentes fronte ´as t´ıpicas tres cores das imaxes cl´asicas e fronte ao reducido n´umero de bandas das multiespectrais. Un exemplo m´ais real deste tipo de imaxes p´odese ver na Figura 1.2. Grazas ´a enorme cantidade de informaci´on coa que conta este tipo de imaxes o seu uso abrangue multitude de aplicaci´ons [3]: clasificaci´on de materiais, control de crecemento de cultivos, monitorizaci´on medioambiental, aplicaci´ons en medicina, seguimento de cat´astrofes naturais, detecci´ons de cambios en imaxes sacadas en distintos instantes... A pesar do potencial destas imaxes, a cantidade masiva de datos que conte˜nen poden chegar a ser un problema xa que restrinxen o seu ´ambito a problemas que non te˜na requisitos en tempo real nin en espazo de almacenamento. Ademais,
14 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO Xesti´on do c´odigo fonte A xesti´on da configuraci´on do c´odigo fonte levarase a cabo empregando a ferramenta Dropbox . Este ´e un servizo de almacenamento de ficheiros multiplataforma na nube. Permitiranos en todo momento manter unha copia de seguridade externa do c´odigo fonte na s´ua ´ultima versi´on as´ı como a s´ua r´apida sincronizaci´on nos diferentes equipos onde se traballe no proxecto. Dropbox perm´ıtenos recuperar versi´ons previas de cada ficheiro, clasific´andoas por data e hora de modificaci´on. A existencia dun bo cliente de escritorio sincronizado co sistema de ficheiros de case calquera sistema operativo foi decisivo a hora de elixir esta ferramente fronte a outras como Google Drive onde a versi´on para sistemas operativos Linux deixa bastante que desexar. Isto a s´ua vez estar´a dentro dun repositorio Git, o cal ´e un software de c´odigo aberto que xa est´a integrado no sistema operativo que se vai empregar. O seu uso ser´a directo dende a terminal de comandos. Dentro de cada repositorio contaremos con unha rama master onde s´o se poder´an subir versi´ons operativas e funcionais do c´odigo, ´e dicir, s´o se permitir´a facer un push nese caso. Cada vez que se realice un commit deber´a ir perfectamente documentado por se ´e preciso recuperar algunha versi´on anterior ou reverter un cambio. Para versi´ons a´ında non en funcionamento contariamos coa copia en Dropbox. Crearanse os branch necesarios co fin de asegurar unha maior integridade dos datos. Xesti´on da documentaci´on Para evitar unha p´erdida da documentaci´on por fallo de hardware empregouse tam´en o servizo na nube Dropbox. Ademais realizarase semanalmente un ficheiros comprimido con todos os datos dispo˜nibles que ser´a transferido a un sistema de almacenamento externo (un lapis de memoria, neste caso) e nomearase coa seguinte nomenclatura: CopiaSeguridade <DD> <MM> <AAAA> onde en <DD> escribiriamos o d´ıa correspondente, en <MM> o mes e en <AAAA> o ano. Control de versi´ons O control de cambios levarase, como xa se explicou no punto anterior, a trav´es das ferramentas descritas. Dispo˜nerase a trav´es do Dropbox de versi´ons etiquetadas por data e hora tanto do c´odigo fonte como da documentaci´on. Ademais, o c´odigo fonte at´opase nun repositorio Git onde s´o pode haber versi´ons operativas (que compilen e se poidan executar) e debidamente etiquetadas cunha descrici´on suficiente por se ´e necesario recuperar alg´un dato ou reverter cambios. Pola parte da documentaci´on como xa se dixo contaremos cunha copia semanal en soporte f´ısico externo ao ordenador de traballo.
3.2. XESTI ´ ON DO ALCANCE 15 3.1.2. Control de cambios Durante o desenvolvemento do traballo poder´an xurdir necesidades de cambios en calquera elemento da configuraci´on, por exemplo no dese˜no ou implementaci´on dun algoritmo, polo que para a s´ua correcta xesti´on empregarase a ferramenta de incidencias inclu´ıda no servidor Git empregado, Bitbucket, do seguinte xeito: Solicitude de cambio: Para solicitar un cambio crearase unha incidencia no sistema de incidencias proporcionado por Bitbucket. Nela debemos especificar a que compo˜nente afecta o cambio (documentaci´on, algoritmo FFT, algoritmo gradientes ou algoritmo MLFFT), un t´ıtulo, unha descrici´on onde se explicar´a con maior detalle que elemento da compo˜nente seleccionada afecta, unha prioridade (alta, media, baixa) e o tipo de incidencia que deber´a ser sempre proposta de cambio. Este cambio ser´a asignado por defecto ao autor do traballo. Avaliaci´on do cambio: Despois de enviar a solicitude de cambio esta ter´a por defecto un estado de novo. Os directores do proxecto e o autor avaliar´ıan a viabilidade da solicitude decidindo se se realizar´a ou non. Se se realiza cambiarase o estado a en espera e se non ao de inv´alido. Realizaci´on do cambio: Deberanse levar a cabo os cambios marcados como en espera e unha vez feitos cambiarlle o estado a resolto. 3.2. Xesti´on do Alcance A Xesti´on do Alcance do Proxecto incl´ue todos aqueles procesos necesarios para asegurar que o proxecto incluir´a todo o traballo requirido, e s´o o traballo requirido, para completar o proxecto satisfactoriamente [14]. Nesta secci´on anal´ızanse diferentes metodolox´ıas de desenvolvemento co fin de escoller a que mellor se adapte ao traballo e que nos permita completalo con ´exito. A continuaci´on expo˜nerase a Estrutura de Descomposici´on do Traballo. 3.2.1. Metodolox´ıa de desenvolvemento A metodolox´ıa de desenvolvemento ou ciclo de vida define as fases que conectan o inicio dun proxecto co seu fin. Que traballo t´ecnico se debe facer en cada fase. Cando se deben xerar os produtos entregables en cada fase e como se revisa, verifica e valida cada produto entregable.
16 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO Quen est´a involucrado en cada fase. Como controlar e aprobar cada fase. Unha escolla incorrecta do ciclo de vida poder´ıa causar sobrecustos debido a unha planificaci´on que non se adapta ao proxecto, poder´ıa causar unha duraci´on maior da esperada debido a especificaci´ons ambiguas ou unha mala an´alise dos riscos entre outras cousas. ´ E por isto que se decidiu realizar unha an´alise de distintos ciclos de vida para as´ı elixir o que mellor se adapte ao proxecto. Ociclo de vida en cascada ´e o m´ais antigo dos empregados en enxe˜nar´ıa do software e foi creado a partir do ciclo convencional dunha enxe˜nar´ıa. Este tipo de ciclo esixe un enfoque sistem´atico e secuencial de desenvolvemento do software, avanzando a trav´es das fases secuenciais. En outras palabras, o inicio dunha fase ou etapa debe esperar ´a finalizaci´on da anterior. ´ E por isto que se deben dispo˜ner dos requisitos do sistema dende o primeiro momento e non ´e ata o final do ciclo cando se consegue unha versi´on operativa do software, polo que ´e nas derradeiras fases cando se detectan a maior´ıa dos fallos. Esta metodolox´ıa non serve para este proxecto, pois son probables cambios r´apidos das necesidades e t´ecnicas segundo os resultados que se vaian obtendo e o proxecto ´e demasiado grande e est´a dividido en m´odulos independentes e precisaremos de ir asegurando funcionalidades por entregas. Ociclo de vida en espiral foi proposto inicialmente por Barry Boehm. ´ E un modelo evolutivo que combina as vantaxes do ciclo en cascada e de modelos baseados na realizaci´on de prototipos. Ao ser un modelo evolutivo pode ir adapt´andose e aplicarse ao longo de todo o ciclo de vida. O software vaise constru´ındo nunha serie de versi´ons increment´abeis. Nas primeiras iteraci´ons este poder´ıa ser un prototipo ou un modelo b´asico do produto. Nas derradeiras iteraci´ons teremos cada vez versi´ons m´ais completas do sistema. O modelo div´ıdese en actividades chamadas rexi´ons de tarefas. Hai diferentes variantes do modelo con distintos n´umeros de rexi´ons, pero o normal ´e entre tres e seis. Algunhas destas rexi´ons poder´ıan ser: a definici´on de obxectivos, onde se establecen os obxectivos do proxecto, alternativas e restrici´ons; a an´alise de riscos, a grande novidade deste ciclo de vida; a rexi´on de desenvolvemento e validaci´on, onde se produce a xeraci´on dun entregable en funci´on dos obxectivos de ese ciclo da espiral e a revisi´on e planificaci´on, onde todas as persoas que te˜nen relaci´on co produto revisan o produto desenvolvido nese ciclo e deciden se se continua ou non co desenvolvemento e se dese˜nan os plans para o seguinte ciclo. Este tr´atase dun modelo moi apto para proxectos moi complexos como pode ser desenvolver un sistema operativo ou para desenvolvemento de sistemas cr´ıticos ou con altos riscos. Require considerar riscos t´ecnicos en todas as etapas do proxecto polo que se precisa de persoal experto neste tema. Un risco non detectado
3.2. XESTI ´ ON DO ALCANCE 17 Figura 3.1: Exemplo dun ciclo iterativo a tempo pode supo˜ner un custo similar a un requisito mal definido no modelo en cascada. Ao non definirse este proxecto como moi complexo nin a necesidade dunha tan alta an´alise de riscos, e sendo este un modelo tan dif´ıcil de controlar considerase que non ter´ıa moito sentido a s´ua aplicaci´on deste modelo. Ociclo de vida iterativo increment´abel (Figura 3.1) ´e un modelo evolutivo que entende ao software como unha integraci´on de resultados sucesivos e non como unha unidade monol´ıtica. Xorde a partir de diferentes metodolox´ıas relacionadas coa programaci´on extrema e con estratexias ´axiles de desenvolvemento de software. Os ciclos de vida iterativos e increment´abeis son aqueles nos cales dentro de cada fase se repiten de xeito intencionado unha ou m´ais actividades do proxecto. Ao contrario que o ciclo en cascada mediante incrementos obtense un produto operativo en cada iteraci´on. Nos primeiros incrementos os produtos obtidos son versi´ons incompletas pero totalmente funcionais. En cada incremento real´ızanse as diferentes etapas de desenvolvemento do software, comezando pola an´alise, dese˜no, implementanci´on e finalmente as probas e a aceptaci´on do sistema. Ademais este ciclo permite incrementar a retroalimentaci´on, podendo aproveitar recursos xa adquiridos en iteraci´ons anteriores. Ao final de cada iteraci´on o equipo pode analizar e mellorar o proceso do seu traballo en funci´on da experiencia xa obtida. Con esta informaci´on ´e posible planificar cambios necesarios para aumentar a produtividade e a calidade das primeiras iteraci´ons. Na primeira fase realizarase unha an´alise global que nos permita ver unha aproximaci´on de alto nivel do sistema pero que se concretar´a e detallar´a en maior medida en cada iteraci´on. Perm´ıtenos diminu´ır os riscos dende o principio e xestionar mellor a complexidade do proxecto. Perm´ıtenos tam´en co˜necer o progreso
18 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO real do proxecto dende o seu comezo e extrapolar si se vai finalizar na data prevista. Debido a que a idea ´e desenvolver un primeiro algoritmo operativo e despois realizar sucesivas versi´ons ou variantes engadindo novas ideas ou t´ecnicas, polo que moitos recursos ser´an re-aproveitados pero moitos outros deber´an ser dese˜nados concretamente pera esa versi´on, e que non se ter´a un co˜necemento total do alcance do proxecto nin das ferramentas e co˜necementos a empregar, ch´egase a conclusi´on de que este ´e o modelo de desenvolvemento que m´ais de adapta a este traballo. 3.2.2. Estrutura de Descomposici´on do Traballo A Estrutura de Descomposici´on do Traballo (EDT) ´e unha descomposici´on xer´arquica do traballo que ser´a realizado polo equipo do proxecto para lograr os obxectivos do proxecto e crear os produtos entregables requiridos. A EDT ´e unha ferramenta fundamental da xesti´on de proxectos pois organiza e define o seu alcance total, ´e dicir serve para verificar que o proxecto incl´ue todo o necesario. Para creala hai que subdividir o traballo do proxecto en cachi˜nos de traballo m´ais pequenos e f´aciles de manexar, conseguindo as´ı que cada nivel descendente da EDT represente unha definici´on cada vez m´ais detallada de traballo. A EDT serve como base para realizar a planificaci´on e para crear o diagrama de Gantt que se atopa na Secci´on 3.3. Na Figura 3.2 repres´entase a EDT deste traballo. Cabe dicir que esta EDT foi modificada despois da realizaci´on da segunda iteraci´on do proxecto. Isto ´e debido ao tipo de metodolox´ıa escollida xa que nos permite un desenvolvemento flexible adecuado ao tipo de proxecto do que se trata. Ao inicio do proxecto t´ı˜nase unha estrutura base de descomposici´on do traballo ademais do dese˜no das d´uas primeiras iteraci´ons. A terceira e cuarta iteraci´ons foron dese˜nadas e contempladas ao completar a segunda iteraci´on tras analizar os resultados obtidos e vendo que ideas e modificaci´ons poder´ıan conseguir un mellor produto. A quinta e derradeira iteraci´on consistiu na inclusi´on das mellores soluci´ons na ferramenta HypeRvieW para as´ı facilitar o uso de estas a trav´es dunha interface gr´afica. Esta iteraci´on foi levada a cabo tras observar que a planificaci´on estimada no anteproxecto foi optimista e dispo˜niamos de tempo para realizala. 3.3. Xesti´on do Tempo Nesta secci´on est´ımase o tempo necesario para cada unha das tarefas do proxecto. A Xesti´on do Tempo do proxecto incl´ue os procesos necesarios para lograr
3.3. XESTI ´ ON DO TEMPO 19 Figura 3.2: EDT
20 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO a conclusi´on do proxecto a tempo as´ı como aqueles procesos para xestionalo adecuadamente. Para crear esta planificaci´on base´amonos na EDT creada na Xesti´on do Alcance e empreg´aronse ademais as seguintes ferramentas e t´ecnicas: Xu´ızo de expertos: Os directores do proxecto contan cunha ampla experiencia e habilidade en desenvolvemento de proxectos similares a este, polo que esta informaci´on hist´orica de destrezas anteriores poden ser aportadas a hora de definir as actividades e de realizar a planificaci´on. Patr´on de actividades: Unha lista de actividades dun proxecto anterior realizado na materia de Pr´acticas Externas as´ı como as listas xeradas en proxectos de pr´acticas en materias relacionadas coa xesti´on do software poden ser empregadas para definir e crear o cronograma. Estas listas de actividades incl´uen nalg´un dos casos a cantidade de horas de esforzo dedicadas, informaci´on descritiva e riscos identificados que nos permitir´an crear unha mellor planificaci´on e reducir a cantidade de horas de esforzo implicadas nesta tarefa. Reuni´on do equipo: O equipo realizar´a varias reuni´ons para discutir e crear o cronograma do proxecto. Na Figura 3.3 am´osase a planificaci´on temporal do desenvolvemento deste proxecto. Dedic´ouselle cada d´ıa laboral da semana 4h diarias debido a compatibilizaci´on coas aulas universitarias e coa materia de Pr´acticas Externas. Por iso cando na planificaci´on amosada na Figura 3.3 se fala de 1 d´ıa, f´alase de 4h. Com´ezase o proxecto fixando o alcance do mesmo e establecendo como se xestionar´a este. A continuaci´on realizarase unha etapa de formaci´on co fin de aproximar e formar a contorna de traballo ao desenvolvedor. Ademais estudarase, como xa se dixo, algoritmos de rexistrado xa existentes para imaxes cl´asicas co fin de poder realizar unha planificaci´on, an´alise e dese˜no inicial. Unha vez realizado a an´alise e o dese˜no tal e como se especificar´a en m´ais detalle en videiras secci´ons comezarase coa implementaci´on que se realizar´a en diferentes iteraci´ons descritas na Secci´on 4.2. Estas iteraci´ons por natureza do modelo de ciclo de vida escollido (Secci´on 3.2.1) foron modificadas segundo se foi desenvolvendo o proxecto. Inicialmente cont´abase coa planificaci´on das d´uas primeiras, as seguintes foron dese˜nadas a partir dos resultados acadados. A duraci´on total do proxecto foi de 411 horas, inici´andose o 6 de abril 2015 e finalizando o 16 de xu˜no dese mesmo ano. Por outra banda, ´e interesante comparar a planificaci´on estimada no anteproxecto (Cadro 3.1) e a real (Figura 3.3). ´ E dif´ıcil comparar directamente estas
3.3. XESTI ´ ON DO TEMPO 21 planificaci´ons debido ´a metodolox´ıa escollida na planificaci´on real xa que en cada iteraci´on se est´an realizando pequenos ciclos por todas as etapas de desenvolvemento. Ademais a planificaci´on do anteproxecto estimouse en semanas, con 18 horas de dedicaci´on semanal, e finalmente a dedicaci´on na planificaci´on real foi de 4 horas diarias. Por estas raz´ons decidiuse realizar un cadro resume (Cadro 3.2) que compare ambos cronogramas en horas e que ademais condense as horas dedicadas en cada iteraci´on na s´ua fase pertencente: formaci´on, an´alise, dese˜no, implementaci´on ou probas. No caso de an´alise e dese˜no que nas iteraci´ons forman unha mesma etapa e polo tanto estim´aronse conxuntamente na planificaci´on real, dividiuse equitativamente as horas dedicadas a cada fase co fin de sumarllas a cada fase individual. P´odese ver que a estimaci´on do anteproxecto era pesimista en canto a an´alise e dese˜no e optimista de cara a implementaci´on, probas e documentaci´on pois hai unha pequena diferenza nesas fases. As fases de an´alise e dese˜no precisaron de menos horas das estimadas debido a retroalimentaci´on da que nos prov´en a metodolox´ıa escollida, pudendo aproveitar grande parte do traballo realizado nas anteriores iteraci´ons. Estas horas aforradas foron empregadas na consecuci´on dunha maior calidade dos algoritmos e t´ecnicas realizadas de a´ı a ese pequeno incremento en implementaci´on e probas. Outra das cousas a ter en conta ´e que o investigador/desenvolvedor autor do proxecto nunca tivera antes un contacto con esta ´area de investigaci´on. Finalmente vemos que tam´en se lle dedicou m´ais horas a redacci´on e completaci´on da memoria debido fundamentalmente a explicaci´on e a escritura t´ecnica dos algoritmos e conceptos matem´aticos. A pesar desas pequenas oscilaci´ons a planificaci´on foi correcta, xa que coincide coa estimaci´on total do anteproxecto e mantense dentro do estipulado para un traballo de fin de grao (401,25 horas de traballo aut´onomo e 11,25 horas de traballo presencial). ´ E m´ais, a estimaci´on foi optimista xa que se realizou unha quinta iteraci´on a maiores coa que non se contaba no alcance inicial do proxecto.
22 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO Figura 3.3: Planificaci´on mediante un diagrama de Gantt.
3.3. XESTI ´ ON DO TEMPO 23 Fase Estimaci´on temporal (en semanas) Alcance e planificaci´on 0,8 Alcance do proxecto 0,4 Planificaci´on do proxecto 0,4 Formaci´on 6 Estudo de algoritmos de rexistrado de imaxes branconegro e RGB 6 An´alise 4 An´alise de diferentes algoritmos de rexistrado baseados en FFT 1,75 An´alise de m´etodos de rexistrado de imaxes para hiperespectral 1,75 Especificaci´on de requisitos 0,5 Dese˜no 3 Dese˜no dos m´etodos de rexistrado baseados en FFT 1,5 Dese˜no das t´ecnicas para aplicar os m´etodos de rexistrado a hiperespectrais 1,5 Implementaci´on 5 Implementaci´on dos m´etodos de rexistrado baseados en FFT 2,5 Implementaci´on das t´ecnicas para aplicar os m´etodos de rexistrado a hiperespectrais 2,5 Probas 1,5 Probas funcionais 1 Probas de integraci´on 0,5 Documentaci´on 2,5 Documentaci´on do c´odigo 0,5 Redacci´on da memoria 2 TOTAL 22,8 Cadro 3.1: Planificaci´on estimada no anteproxecto.
30 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO resposta aos riscos, e o control e seguimento de estes procesos durante o proxecto. Os obxectivos desta xesti´on ´e aumentar a probabilidade e o impacto de eventos positivos e diminu´ır a probabilidade e o impacto dos eventos negativos de cara ao finalizalo proxecto con ´exito. Def´ınese risco como unha condici´on ou evento incerto que si se produce ten un efecto positivo ou negativo sobre polo menos un obxectivo do proxecto [14]. Poden afectar ´a calendarizaci´on, aos custos, ao alcance, ´a calidade, entre outros posibles obxectivos. A continuaci´on procederase a explicar como se identificaron os riscos, como ser´an analizados e tam´en como se mitigar´a a probabilidade de aparici´on e se se dera o caso que respostas previstas se te˜nen preparadas paras aqueles riscos que se consideraron prioritarios. 3.5.1. Identificaci´on de riscos Para a identificaci´on dos posibles riscos empreg´aronse as seguintes ferramentas e t´ecnicas: Revisi´on de documentaci´on: Consiste en examinar todo tipo de documentaci´on de proxectos anteriores para as´ı recoller riscos com´uns que poidan afectar a todo tipo de proxectos e que se nos poden pasar por alto, riscos non formulados en anteriores proxectos pero que si apareceron e que neste p´odense xa ter en conta debido a que foron rexistrados, etc. Tormenta de ideas: A finalidade desta t´ecnica ´e obter unha lista completa de todos os posibles riscos do proxecto. Consiste en realizar unha reuni´on onde todos os membros do equipo xeran ideas acerca de posibles riscos que pode ameazar ao proxecto. Inicialmente an´otanse todos eles, m´ais tarde xa ser´an categorizados, avaliados (impacto e probabilidade) e filtrados. An´alise mediante listas de control: Consultarase unha lista de control que foi desenvolvida base´andose en informaci´on hist´orica e no co˜necemento que se foi acumulando de proxectos anteriores e doutras fontes de informaci´on. Empregarase a lista de control [21] aportada polos profesores da materia Xesti´on de Proxectos que foi desenvolvida pola Universidad de CastillaLa Mancha (UCLM). Tr´atase dunha lista moi completa con 111 riscos m´ais frecuentes en proxectos software ordenados por categor´ıas. Para a an´alise dun risco debemos avaliar o impacto do mesmo, a s´ua probabilidade de ocorrencia e o nivel de exposici´on ao risco. O impacto representa o efecto que a ocorrencia do risco ter´ıa sobre o desenvolvemento do proxecto e
3.5. XESTI ´ ON DE RISCOS 31 termos de custo, esforzo ou duraci´on total do mesmo. Def´ınese no Cadro 3.8 a valoraci´on do impacto que se empregar´a na especificaci´on de riscos. Repercusi´on en Prazo / Esforzo / Custo Impacto >= 20 % Alto Entre o 10 % e 20 % Medio <= 10 % Baixo Cadro 3.8: Valorizaci´on do impacto sobre o prazo de entrada, esforzo e custo. Por outra banda, a probabilidade dun risco representa a expectativa de ocorrencia real do risco no desenvolvemento do proxecto. Establ´ecese no Cadro 3.9 como valoraremos este factor. Ocorrencia do risco Probabilidade >= 80 % (case segura) Alta Entre o 30 % e 80 % (moi probable) Media <= 30 % (pouco probable) Baixa Cadro 3.9: Valorizaci´on da probabilidade da ocorrencia dun risco. E finalmente unha vez achados a probabilidade de aparici´on e o nivel impacto que causar´ıa o risco de ter sucedido, debemos calcular o nivel de exposici´on ao risco que ´e o produto destes dous factores. Esta medida permite extraer un conxuntos de riscos clave da lista de riscos que priorizaremos, pois ´e imposible abarcar e estar preparados para todos os riscos identificados inicialmente. Probabilidade Alta Media Baixa Alto Alto Alto Medio Impacto Medio Alto Medio Baixo Baixo Medio Baixo Baixo Cadro 3.10: Nivel de exposici´on ao risco. Inicialmente realizase unha identificaci´on de riscos mediante as t´ecnicas descritas m´ais enriba das cales se realizar´a unha an´alise para calcular as probabilidades de aparici´on e de impacto as´ı como a s´ua exposici´on. Outorgar´aselle prioridade a aqueles riscos coa maior exposici´on calculada. Ser´an estes os riscos obxecto da creaci´on de acci´ons preventivas e correctoras, pois ´e imposible abarcar unha numerosa lista de riscos e por outra banda poder´ıase estar desperdiciando recursos en riscos moi pouco probables ou con moi pouco impacto. Am´osase nos Cadros
32 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO 3.12 e 3.13 a listaxe inicial de riscos identificados tras a s´ua an´alise xa coa exposici´on estimada. Da listaxe inicial de riscos identificados e analizados (Cadros 3.12 e 3.13) seleccionamos aqueles riscos que consideramos prioritarios (riscos cunha exposici´on estimada “Alta”) pois ´e imposible abarcar acci´ons preventivas e correctivas de todos eles xa que consumiriamos moito tempo e moitos recursos. Empregarase o Cadro 3.11 como modelo de especificaci´on dos riscos identificados. Identificador Estar´a composto por “R-” seguido dun n´umero que identificar´a a cada risco de maneira ´unica. Descrici´on Breve descrici´on do risco. Probabilidade Baixa, media ou alta. Impacto Baixo, medio ou alto. Exposici´on Baixa, media ou alta. Acci´on preventiva Descrici´on da medida preventiva escollida para anticiparse ao risco e mitigar a s´ua aparici´on. Acci´on correctiva Descrici´on da medida correctora escollida para eliminar o risco ou mitigar os efectos adversos que lle poida causar ao proxecto unha vez aparecido o risco. Cadro 3.11: Modelo para a especificaci´on dos riscos. 3.5.2. Especificaci´on de riscos Nesta subsecci´on presentaranse as especificaci´ons daqueles riscos seleccionados por ser prioritarios (maior impacto e maior probabilidade) seguindo o modelo anteriormente presentado.
3.5. XESTI ´ ON DE RISCOS 33 Probabilidade Impacto Exposici´on Descrici´on Alta Alto Alto Meticulosidade dos investigadores. Media Alto Alto Planificaci´on optimista. Alta Alto Alto Os m´odulos propensos a ter erros necesitan m´ais traballo de comprobaci´on, dese˜no, implementaci´on e probas. Alta Alto Alto Desenvolvemento orientado ´a investigaci´on. Alta Alto Alto Unha calidade non aceptable require dun traballo de comprobaci´on, dese˜no, implementaci´on e probas superior ao esperado. Alta Alto Alto O desenvolvemento de funci´ons software err´oneas require volver dese˜nalas e a implementalas. Alta Alto Alto A falta da especializaci´on necesaria por parte do desenvolvedor aumenta os defectos e a necesidade de repetir traballo. Alta Medio Alto O persoal necesita un tempo extra para afacerse a traballar en contornas novas. Alta Alto Alto A funcionalidade desexada non est´a implementada na linguaxe ou bibliotecas utilizadas: o persoal de desenvolvemento ten que utilizar outras bibliotecas, ou crealas el mesmo para conseguir a funcionalidade desexada. Alta Alto Alto Os resultados achados non alcanzan o rendemento agardado. Media Medio Medio Funcionalidades m´ais complexas consomen m´ais tempo que o planificado e estimado. Baixa Alto Medio An´alise de riscos inadecuado. Baixa Alto Medio P´erdida de documentaci´on e c´odigo fonte do proxecto debido a accidentes ou desastres naturais. Alta Baixo Medio O produto ´e m´ais grande que o estimado (en li˜nas de c´odigo). Media Medio Medio As ´areas desco˜necidas do produto levan m´ais tempo do empregado en dese˜no e implementaci´on. Media Medio Medio Eng´adense requisitos extra (modificaci´on do alcance do proxecto unha vez xa iniciado o proxecto). Baixa Alto Medio As partes do proxecto que non se especificaron claramente consumen m´ais tempo do agardado. Cadro 3.12: Listaxe cos riscos identificados e analizados (Parte 1).
34 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO Probabilidade Impacto Exposici´on Descrici´on Baixa Medio Baixo As compo˜nentes desenvolvidas por separado non se poden integrar de forma sinxela, tendo que volver dese˜nar e repetir alg´uns traballos Baixa Medio Baixo Os requisitos non se definiron correctamente e a s´ua redefinici´on aumenta o ´ambito do proxecto Baixa Medio Baixo Pouca motivaci´on dun membro do equipo de traballo Baixa Medio Baixo Un mal dise˜no implica volver a dise˜nar e implementar Cadro 3.13: Listaxe cos riscos identificados e analizados (Parte 2). Identificador R-01 Descrici´on Meticulosidade dos investigadores. Probabilidade Alta. Impacto Alto. Exposici´on Alto. Acci´on preventiva Establecer criterios de aceptaci´on do produto a desenvolver para que un exceso de meticulosidade do proxecto de investigaci´on provoque atrasos no proxecto ou un alcance superior ao establecido. Acci´on correctiva Verificar que o produto cumpre os requisitos esixidos e pasar a realizar a seguinte tarefa. Cadro 3.14: Risco R-01 Identificador R-02 Descrici´on Planificaci´on optimista. Probabilidade Media. Impacto Alto. Exposici´on Alto. Acci´on preventiva Controlar a planificaci´on ao fin de cada actividade para as´ı poder co˜necer en todo momento o estado actual e poder realizar cambios ou adaptaci´ons segundo sucedan producidos por situaci´ons reais non estimadas. Acci´on correctiva Determinar o estado actual do cronograma do proxecto e intentar realizar unha versi´on do proxecto que incl´ua os requisitos fundamentais deixando de lado aqueles que son optativos ou opcionais. Aumentarase a carga de traballo para cumprir os prazos se fora necesario. Cadro 3.15: Risco R-02
3.5. XESTI ´ ON DE RISCOS 35 Identificador R-03 Descrici´on Os m´odulos propensos a ter erros necesitan m´ais traballo de comprobaci´on, dese˜no, implementaci´on e probas Probabilidade Alta. Impacto Alto. Exposici´on Alto. Acci´on preventiva Analizar que m´odulos se estiman que son m´ais propensos a que se produzan problemas no seu desenvolvemento para as´ı prestarlle m´ais atenci´on da necesaria ´a hora de dese˜nalos e implementalos. Acci´on correctiva Determinar o estado actual do proxecto detectando que m´odulos son os problem´aticos e po˜ner aos recursos humanos m´ais experimentados a intentar arranxar ese problema. Deste xeito mitigariamos a p´erdida de tempo. Por outro lado aumentarase a carga de traballo para cumprir os prazos e compensar o tempo perdido. Cadro 3.16: Risco R-03 Identificador R-04 Descrici´on Desenvolvemento orientado ´a investigaci´on. Probabilidade Alta. Impacto Alto. Exposici´on Alto. Acci´on preventiva Estudar inicialmente antecedentes de t´ecnicas similares e/ou as posibilidades de atopar resultados no eido que se quere investigar antes de po˜nerse a desenvolver o proxecto a total disposici´on. Acci´on correctiva Analizar a posibilidade de atopar resultados no eido que se est´a a investigar antes de proseguir co desenvolvemento e revisar a planificaci´on. Cadro 3.17: Risco R-04
36 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO Identificador R-05 Descrici´on Unha calidade non aceptable require dun traballo de comprobaci´on, dese˜no, implementaci´on e probas superior ao esperado. Probabilidade Alta. Impacto Alto. Exposici´on Alto. Acci´on preventiva Realizar unha boa formaci´on na contorna a investigar antes da realizaci´on de cada iteraci´on e estimar a calidade dos posibles resultados a achar antes de po˜nerse a dese˜nar, implementar, etc. Definir unha serie de regras e procedementos que permitan ao proxecto cumprir cos requisitos propostos coa calidade estimada. Acci´on correctiva Achar que partes ou m´odulos do proxecto est´an facendo que este te˜na unha calidade empobrecida para as´ı analizalos e corrixilos. Aumentarase a carga de traballo para cumprir os prazos, se fora necesario, e as´ı compensar o tempo perdido. Cadro 3.18: Risco R-05 Identificador R-06 Descrici´on O desenvolvemento de funci´ons software err´oneas require volver dese˜nalas e a implementalas. Probabilidade Alta. Impacto Alto. Exposici´on Alto. Acci´on preventiva Realizar unha an´alise e dese˜no m´ais exhaustivo para que non caiba lugar a erro, e se este se produce que se concentre simplemente na implementaci´on para as´ı non ter que volver a fases anteriores. Acci´on correctiva Determinar o estado da planificaci´on temporal e modificar esta para as´ı poder corrixir, aproveitando a maior parte do traballo feito, as funci´ons err´oneas. Aumentarase a carga de traballo para cumprir os prazos. Cadro 3.19: Risco R-06
3.5. XESTI ´ ON DE RISCOS 37 Identificador R-07 Descrici´on A falta da especializaci´on necesaria por parte do desenvolvedor aumenta os defectos e a necesidade de repetir traballo. Probabilidade Alta. Impacto Alto. Exposici´on Alto. Acci´on preventiva Realizar unha boa formaci´on na contorna a investigar antes de comezar co dese˜no e desenvolvemento do proxecto. Acci´on correctiva Determinar o estado da planificaci´on temporal para realizar formaci´on no eido de investigaci´on que permita avanzar a maiores pasos unha vez solventada a falta de especializaci´on do desenvolvedor. Aumentarase a carga de traballo para cumprir os prazos. Cadro 3.20: Risco R-07 Identificador R-08 Descrici´on O persoal necesita un tempo extra para afacerse a traballar en contornas novas. Probabilidade Alta. Impacto Medio. Exposici´on Alto. Acci´on preventiva Realizar unha planificaci´on temporal acorde aos co˜necementos do equipo de traballo, non pasando en alto posibles cursos de formaci´on ou tempo de adaptaci´on ao eido de traballo. Acci´on correctiva Determinar o estado da planificaci´on temporal para reservar unha pequena cantidade de tempo estimado para que o persoal se afaga ´a contorna de traballo. Cadro 3.21: Risco R-08
38 CAP´ ITULO 3. XESTI ´ ON DO PROXECTO Identificador R-09 Descrici´on A funcionalidade desexada non est´a implementada na linguaxe ou bibliotecas utilizadas: o persoal de desenvolvemento ten que utilizar outras bibliotecas, ou crealas el mesmo para conseguir a funcionalidade desexada. Probabilidade Alta. Impacto Alto. Exposici´on Alto. Acci´on preventiva Analizar e dese˜nar a funcionalidade desexada para as´ı poder implementala con ´exito. Acci´on correctiva En ´ultima instancia, buscar librar´ıas que implementen a funci´on ou buscar implementaci´ons noutras linguaxes para as´ı poder entender mellor a funcionalidade que debe realizar a funci´on a desenvolver e traducila a linguaxe de programaci´on do proxecto. Cadro 3.22: Risco R-09 Identificador R-10 Descrici´on Os resultados achados non alcanzan o rendemento agardado. Probabilidade Alta. Impacto Alto. Exposici´on Alto. Acci´on preventiva Analizar, estudar e investigar a viabilidade do proxecto ou dos m´odulos do proxecto que te˜nan menos probabilidade de obter bos resultados antes de comezar coa s´ua fase de desenvolvemento. Acci´on correctiva Obter cal ´e a raz´on porque na pr´actica non se demostra o achado teoricamente que se poder´ıa conseguir e intentar buscarlle e levar a cabo un proceso para solucionalo. Cadro 3.23: Risco R-10
Cap´ıtulo 4 An´alise Neste cap´ıtulo presentarase a definici´on dos requisitos que ser´an soportados polo sistema1resultante deste proxecto. Estes serviran como base para o seu desenvolvemento pois definen as necesidades do cliente e serven para asegurarnos que se cumpre o alcance do mesmo, pudendo revisar o cumprimento das diferentes funcionalidades. A especificaci´on realizarase seguindo as recomendaci´ons do est´andar IEEE 830-1998 [22] e as recomendaci´ons de Sommerville [23] para as´ı obter unha especificaci´on de requisitos completa, consistente, correcta e non ambigua. A continuaci´on detallaranse as distintas iteraci´ons que ser´an realizadas no proxecto, como xa se veu na planificaci´on, relacion´andoas cos requisitos que deber´an cumprir en cada unha delas. Finalmente amosarase o diagrama de casos de uso do sistema, especificaranse estes casos de uso e os actores participantes e presentarase a matriz de trazabilidade. 4.1. An´alise de Requisitos Os requisitos para un sistema son a descrici´on dos servizos proporcionados polo sistema e as s´uas restrici´ons operativas. Estes requisitos reflicten as necesidades dos clientes dun sistema que os axude a resolver alg´un problema, en outras palabras, describen de forma completa o comportamento do software a desenvolver. Para recopilar os requisitos do sistema empreg´aronse as seguintes t´ecnicas [24]: 1Refer´ımonos ao sistema do proxecto como ao conxunto formado pola implementaci´on dunha ferramenta de rexistrado, que ser´a a que incl´ua todos algoritmos e t´ecnicas desenvolvidas, e un m´odulo para a aplicaci´on HypeRvieW que s´o implementa aquelas mellores soluci´ons. 39
46 CAP´ ITULO 4. AN ´ ALISE Identificador: RF-03 T´ıtulo: Calcular gradiente RCMG dunha imaxe de entrada. Descrici´on: A ferramenta de rexistrado deber´a ser capaz de calcular o gradiente RCMG dunha imaxe hiperespectral cargada previamente na aplicaci´on. Isto ten como fin ser unha modalidade de t´ecnica de reduci´on de dimensionalidade que o usuario pode escoller. Importancia: Esencial. Prioridade: Media. Criterio de validaci´on: O requisito considerarase cumprido se a implementaci´on ´e capaz de calcular e xerar unha imaxe dunha ´unica banda que corresponda co gradiente RCMG. Para isto gardarase esa banda nun formato facilmente visible (PGM, por exemplo) e visualizarase se concorda con resultado proporcionado por dita t´ecnica, xa que empregaremos imaxes de pequeno tama˜no das cales co˜necemos o resultado previamente. O uso de imaxes de pequeno tama˜no son unicamente para a comprobaci´on de que a implementaci´on est´a correcta. Cadro 4.7: Requisito RF-03: Calcular gradiente RCMG dunha imaxe de entrada.
4.1. AN ´ ALISE DE REQUISITOS 47 Identificador: RF-04 T´ıtulo: Calcular gradiente vectorial dunha imaxes de entrada. Descrici´on: A ferramenta de rexistrado deber´a ser capaz de calcular o gradiente vectorial dunha imaxe hiperespectral cargada previamente na aplicaci´on. Isto ten como fin ser unha modalidade de t´ecnica de reduci´on de dimensionalidade que o usuario pode escoller. Importancia: Esencial. Prioridade: Media. Criterio de validaci´on: O requisito considerarase cumprido se a implementaci´on ´e capaz de calcular e xerar unha imaxe dunha ´unica banda que corresponda co gradiente vectorial. Para isto gardarase esa banda nun formato facilmente visible (PGM, por exemplo) e visualizarase se concorda con resultado proporcionado por dita t´ecnica, xa que empregaremos imaxes de pequeno tama˜no das cales co˜necemos o resultado previamente. O uso de imaxes de pequeno tama˜no son unicamente para a comprobaci´on de que a implementaci´on est´a correcta. Cadro 4.8: Requisito RF-04: Calcular gradiente vectorial dunha imaxe de entrada.
48 CAP´ ITULO 4. AN ´ ALISE Identificador: RF-05 T´ıtulo: Calcular gradiente RCMG das bandas PCA dunha imaxe de entrada. Descrici´on: A ferramenta de rexistrado deber´a ser capaz de permitirlle ao usuario calcular o gradiente RCMG das bandas PCAs obtidas a partir dunha imaxe hiperespectral cargada previamente na aplicaci´on. Isto ten como fin ser unha modalidade de t´ecnica de reduci´on de dimensionalidade que o usuario pode escoller. Importancia: Condicional. Prioridade: Media. Criterio de validaci´on: O requisito considerarase cumprido se a implementaci´on ´e capaz de primeiramente de obter as bandas PCA a partir dunha imaxe hiperespectral, e a continuaci´on se a partir deses datos ´e capaz de calcularlle o seu gradiente RCMG. Para isto gardarase esa banda nun formato facilmente visible (PGM, por exemplo) e visualizarase se concorda con resultado proporcionado por dita t´ecnica, xa que empregaremos imaxes de pequeno tama˜no das cales co˜necemos o resultado previamente. O uso de imaxes de pequeno tama˜no son unicamente para a comprobaci´on de que a implementaci´on est´a correcta. Cadro 4.9: Requisito RF-05: Calcular gradiente RCMG das bandas PCA dunha imaxe de entrada.
4.1. AN ´ ALISE DE REQUISITOS 49 Identificador: RF-06 T´ıtulo: Calcular gradiente vectorial das bandas PCA dunha imaxe de entrada. Descrici´on: A ferramenta de rexistrado deber´a ser capaz de permitirlle ao usuario calcular o gradiente vectorial das bandas PCAs obtidas a partir dunha imaxe hiperespectral cargada previamente na aplicaci´on. Isto ten como fin ser unha modalidade de t´ecnica de reduci´on de dimensionalidade que o usuario pode escoller. Importancia: Condicional. Prioridade: Media. Criterio de validaci´on: O requisito considerarase cumprido se a implementaci´on ´e capaz de primeiramente de obter as bandas PCA a partir dunha imaxe hiperespectral, e a continuaci´on se a partir deses datos ´e capaz de calcularlle o seu gradiente vectorial. Para isto gardarase esa banda nun formato facilmente visible (PGM, por exemplo) e visualizarase se concorda con resultado proporcionado por dita t´ecnica, xa que empregaremos imaxes das cales co˜necemos o resultado previamente. O uso de imaxes de pequeno tama˜no son unicamente para a comprobaci´on de que a implementaci´on est´a correcta. Cadro 4.10: Requisito RF-06: Calcular gradiente vectorial das bandas PCA dunha imaxe de entrada.
50 CAP´ ITULO 4. AN ´ ALISE Identificador: RF-07 T´ıtulo: Aplicar o algoritmo a unha ou varias (de forma individual) bandas PCA. Descrici´on: A ferramenta de rexistrado deber´a ser capaz de permitirlle ao usuario aplicar o algoritmo desenvolvido a un n´umero de bandas PCA, de forma individual, especificado por el mesmo como un dos datos de entrada. Deste xeito permitimos unha maior usabilidade e comodidade, pois pode que ao usuario s´o lle interese por exemplo rexistrar a primeira banda ou as tres primeiras. Importancia: Condicional. Prioridade: Media. Criterio de validaci´on: O requisito considerarase cumprido se a ferramenta de rexistrado ´e capaz de rexistrar iterativamente un n´umero de bandas PCA especificadas polo usuario, amos´andonos os resultados de tal acto por pantalla e especificando a que banda corresponde cada un deles. Cadro 4.11: Requisito RF-07: Aplicar o algoritmo a unha ou varias (de forma individual) bandas PCA.
4.1. AN ´ ALISE DE REQUISITOS 51 Identificador: RF-08 T´ıtulo: Calcular a media de unha ou varias bandas consecutivas PCA. Descrici´on: A ferramenta de rexistrado deber´a ser capaz de calcular a media dun n´umero de bandas PCA consecutivas especificadas polo usuario. Bandas obtidas despois do c´alculo de bandas PCA a partir dunha imaxe hiperespectral. Isto ten como fin ser outra modalidade de t´ecnica de reduci´on de dimensionalidade que o usuario pode escoller. Importancia: Condicional. Prioridade: Media. Criterio de validaci´on: O requisito considerarase cumprido se o resultado obtido concorda co resultado agardado, pois empregaranse imaxes de pequeno tama˜no das cales co˜neciamos o resultado anticipadamente. O uso de imaxes de pequeno tama˜no son unicamente para a comprobaci´on de que a implementaci´on est´a correcta. Cadro 4.12: Requisito RF-08: Calcular a media de unha ou varias bandas consecutivas PCA. Identificador: RF-09 T´ıtulo: Rexistrar unha imaxe a partir doutra tam´en proporcionada. Descrici´on: O usuario deber´a poder especificar d´uas imaxes de entrada, a imaxe de referencia e a imaxe a rexistrar, sobre as cales a ferramenta de rexistrado aplicar´a o algoritmo de rexistrado. Importancia: Esencial. Prioridade: Alta. Criterio de validaci´on: O requisito considerarase cumprido se a ferramenta de rexistrado ´e capaz de rexistrar as imaxes, das cales co˜nezamos o ´angulo de rotaci´on e escala que os diferenzan, amos´andonos o resultado esperado de tal acto por pantalla. Cadro 4.13: Requisito RF-09: Rexistrar unha imaxe a partir doutra tam´en proporcionada.
52 CAP´ ITULO 4. AN ´ ALISE Identificador: RF-10 T´ıtulo: Rexistrar unha imaxe a partir doutra auto-xerada. Descrici´on: O usuario deber´a poder especificar unha imaxe de entrada, imaxe de referencia, e un ´angulo, un factor de escala e un desprazamento os cales se aplicaran a dita imaxe de referencia obtendo a imaxe a rexistrar. Sobre estas d´uas imaxes a ferramenta aplicar´a o algoritmo de rexistrado. Importancia: Esencial. Prioridade: Alta. Criterio de validaci´on: O requisito considerarase cumprido se a ferramenta de rexistrado ´e capaz de obter os valores do ´angulo de rotaci´on, do factor de escala e de desprazamento proporcionados polo usuario e nos amosa o resultado por pantalla. Cadro 4.14: Requisito RF-10: Rexistrar unha imaxe a partir doutra auto-xerada. Identificador: RF-11 T´ıtulo: Rotar, escalar e desprazar unha imaxe dunha soa banda. Descrici´on: A ferramenta de rexistrado deber´a poder rotar, escalar e desprazar imaxes dunha soa banda. Isto empregarase para diferentes fins como por exemplo xerar a imaxe dunha soa banda resultante do algoritmo de rexistrado. Importancia: Esencial. Prioridade: Alta. Criterio de validaci´on: O requisito considerarase cumprido se a ferramenta de rexistrado ´e capaz xerar unha imaxe rotada con calquera ´angulo e/ou escalada con calquera factor que lle indique o usuario respectando intervalos prefixados. Para facilitar a visualizaci´on deste cumprimento, esta imaxe pode ser gravada nun formato visualizable como pode ser PGM. Cadro 4.15: Requisito RF-11: Rotar, escalar e desprazar unha imaxe dunha soa banda.
4.1. AN ´ ALISE DE REQUISITOS 53 Identificador: RF-12 T´ıtulo: Rotar, escalar e desprazar unha imaxe hiperespectral. Descrici´on: A ferramenta de rexistrado deber´a poder rotar, escalar e desprazar imaxes hiperespectrais. Isto empregarase para diferentes fins, xerar a imaxe rexistrada resultante do algoritmo, calcular imaxe de entrada a partir de outra... Importancia: Esencial. Prioridade: Alta. Criterio de validaci´on: O requisito considerarase cumprido se a ferramenta de rexistrado ´e capaz xerar unha imaxe rotada con calquera ´angulo e/ou escalada con calquera factor que lle indique o usuario. Esta imaxe ser´a gravada nun formato visualizable como pode ser PGM ademais de en formato RAW se ´e necesario. Cadro 4.16: Requisito RF-12: Rotar, escalar e desprazar unha imaxe hiperespectral. Identificador: RF-13 T´ıtulo: Amosar o ´angulo de rotaci´on, o factor de escala e os valores de desprazamento obtidos do rexistrado. Descrici´on: A ferramenta de rexistrado deber´a amosar os resultados por pantalla do algoritmo de rexistrado, especificando claramente cal ´e o ´angulo de rotaci´on, cal o desprazamento e cal o factor de escala. Importancia: Esencial. Prioridade: Alta. Criterio de validaci´on: O requisito considerarase cumprido se a ferramenta de rexistrado imprime por pantalla os resultados despois da execuci´on do algoritmo de rexistrado. Cadro 4.17: Requisito RF-13: Amosar o ´angulo de rotaci´on, o factor de escala e os valores de desprazamento obtidos do rexistrado.
54 CAP´ ITULO 4. AN ´ ALISE Identificador: RF-14 T´ıtulo: Gardar imaxe resultante do proceso de rexistrado en formato RAW. Descrici´on: A ferramenta de rexistrado deber´a poder gardar a imaxe resultante do proceso de rexistrado en ficheiro de datos en formato RAW. Importancia: Condicional. Prioridade: Media. Criterio de validaci´on: O requisito considerarase cumprido se a ferramenta de rexistrado permite gardar a imaxe resultante do proceso de rexistrado nun ficheiro en formato RAW. Cadro 4.18: Requisito RF-14: Gardar imaxe resultante do proceso de rexistrado en formato RAW. Identificador: RF-15 T´ıtulo: Gardar imaxe resultante do proceso de rexistrado en formato PGM. Descrici´on: A ferramenta de rexistrado deber´a poder gardar a imaxe resultante do proceso de rexistrado en ficheiro de datos en formato PGM dunha soa banda. Importancia: Condicional. Prioridade: Media. Criterio de validaci´on: O requisito considerarase cumprido se a ferramenta de rexistrado permite gardar a imaxe resultante do proceso de rexistrado nun ficheiro en formato PGM. Cadro 4.19: Requisito RF-15: Gardar imaxe resultante do proceso de rexistrado en formato PGM.
4.1. AN ´ ALISE DE REQUISITOS 55 Identificador: RF-16 T´ıtulo: Interface por li˜na de comandos. Descrici´on: A ferramenta de rexistrado deber´a permitir executar o algoritmo dende li˜nas de comando permitindo nese mesmo momento pasarlle os par´ametros necesarios para a s´ua configuraci´on. Importancia: Condicional. Prioridade: Media. Criterio de validaci´on: O requisito considerarase cumprido se a ferramenta de rexistrado permite executar e configurar o algoritmo dende li˜na de comandos. Cadro 4.20: Requisito RF-16: Interface por li˜na de comandos. Identificador: RF-17 T´ıtulo: Crear m´odulo para HypeRvieW cos mellores algoritmos e t´ecnicas de reduci´on de dimensionalidade desenvolvidos (interface gr´afica). Descrici´on: Desenvolverase un m´odulo para a aplicaci´on HypeRvieW, de procesado e clasificaci´on de imaxes hiperespectrais, que incl´uan os mellores algoritmos e t´ecnicas de reduci´on de dimensionalidade e extracci´on de caracter´ısticas realizados neste traballo. O obxectivo deste requisito ´e dotar ´as t´ecnicas aqu´ı desenvolvidas de usabilidade, eficacia e eficiencia de cara o uso por parte do usuario final. Importancia: Optativa. Prioridade: Baixa. Criterio de validaci´on: O requisito considerarase cumprido se se desenvolve un m´odulo para a ferramenta HypeRvieW e aparece na listaxe de m´odulos do ´ambito de preprocesado como tal. Cadro 4.21: Requisito RF-17: Crear m´odulo para HypeRvieW cos mellores algoritmos e t´ecnicas de reduci´on de dimensionalidade desenvolvidos (interface gr´afica).
62 CAP´ ITULO 4. AN ´ ALISE Identificador: RNE-01 T´ıtulo: Desenvolvemento do m´odulo para interface gr´afica mediante GTK+. Descrici´on: A interface gr´afica do modulo de rexistrado deber´a desenvolverse empregando a librar´ıa GTK+ versi´on 2.0 e o dese˜nador de ventanas Glade debido a unha raz´on de interoperabilidade coa aplicaci´on que integrar´a este m´odulo, HypeRvieW. Importancia: Cr´ıtica. Prioridade: Baixa. Criterio de validaci´on: O requisito considerarase cumprido se o modulo de rexistrado se desenvolve empregando a librar´ıa GTK+. Cadro 4.34: Requisito RNE-01: Desenvolvemento do m´odulo para interface gr´afica mediante GTK+. Requisitos do dominio Det´allanse os requisitos do dominio do sistema entre o Cadro 4.35 e o Cadro 4.36. Identificador: RD-01 T´ıtulo: O algoritmo deber´a rexistrar imaxes hiperespectrais. Descrici´on: O algoritmo ou algoritmos deber´an ser capaces de rexistrar imaxes hiperespectrais. Unha imaxe hiperespectral ´e unha imaxe na que cada p´ıxel ven descrito por un vector de valores espectrais que se corresponden coa contribuci´on da luz detectada nese punto en diferentes bandas do espectro, moito maior que o espectro visible polo ollo humano. Importancia: Cr´ıtica. Prioridade: Alta. Criterio de validaci´on: O requisito considerarase cumprido se a aplicaci´on ´e capaz de aplicar a t´ecnica de rexistrado a imaxes hiperespectrais. Cadro 4.35: Requisito RD-01: O algoritmo deber´a rexistrar imaxes hiperespectrais.
4.2. ITERACI ´ ONS 63 Identificador: RD-02 T´ıtulo: O algoritmo deber´a estar baseado na Transformada R´apida de Fourier. Descrici´on: O algoritmo implementado neste traballo deber´a empregar a Transformada R´apida Fourier (FFT) para comparar d´uas imaxes onde unha est´a escalada, rotada e/ou desprazada respecto da outra. A Transformada R´apida Fourier ´e o nome que recibe este eficiente algoritmo que permite calcular a Transformada Discreta de Fourier (DFT) e a s´ua inversa cun bo rendemento e eficiencia. Importancia: Cr´ıtica. Prioridade: Alta. Criterio de validaci´on: O requisito considerarase cumprido se o algoritmo se bease na Transformada R´apida Fourier (FFT) para rexistrar d´uas imaxes. Cadro 4.36: Requisito RD-02: O algoritmo deber´a estar baseado na Transformada R´apida de Fourier. 4.2. Iteraci´ons A continuaci´on nesta secci´on detallaranse as iteraci´ons que se levar´an a cabo neste proxecto asoci´andoas cos requisitos que se deben cumprir en cada unha delas. Os requisitos non funcionais do produto, os requisitos non funcionais de organizaci´on, os requisitos non funcionais externos e os requisitos do dominio estar´an presentes en todas as iteraci´ons con excepci´on dos requisitos asociados ao desenvolvemento da interface gr´afica (m´odulo de HypeRvieW ) por ter unha prioridade baixa e unha importancia optativa. Estes ser´an inclu´ıdos na derradeira iteraci´on, unha vez estea xa implementado os diferentes algoritmos e t´ecnicas de reduci´on de dimensionalidade e se te˜nan claros que versi´ons son as m´ais prometedoras e cales se deben descartar, se se disp´on de tempo para as´ı simplificarlle o uso ao usuario mediante unha interface gr´afica. Cabe dicir tam´en que alg´uns requisitos estar´an presentes en varias iteraci´ons. Isto ´e normal, pois tr´atase de dese˜nar e implementar versi´ons que introduzan melloras polo que moitas veces ese requisito xa estaba cuberto nunha iteraci´on anterior pero cunha menor calidade. Cabe salientar tam´en a inclusi´on dunha etapa de formaci´on en cada iteraci´on. Isto ´e as´ı debido a que a´ında inicialmente se realizou unha pequena inmersi´on no dominio da materia a tratar neste traballo, para tam´en saber como planificar,
64 CAP´ ITULO 4. AN ´ ALISE pero ser´a necesario enfocar m´ais esta formaci´on en cada iteraci´on dependendo do que se realice nela. 4.2.1. Iteraci´on 1: Algoritmo FFT A primeira iteraci´on ten como un dos seus obxectivos realizar unha primeira versi´on dun algoritmo de rexistrado de imaxes que sente unha estrutura que serva de base para as posterior versi´ons e melloras. Outro obxectivo desta ´e familiarizarse e formarse no dominio do traballo, pois o usuario ´e inexperto. Para isto inicialmente este algoritmo, nesta iteraci´on, ser´a desenvolvido para traballar con imaxes en gris dunha ´unica banda. Isto permitir´a unha maior e r´apida adaptaci´on, formaci´on e comprensi´on do dominio do problema. As´ı, esta iteraci´on abrangue os seguintes requisitos funcionais: RF-09 Rexistrar unha imaxe a partir doutra tam´en proporcionada. RF-10 Rexistrar unha imaxe a partir doutra auto-xerada. RF-11 Rotar, escalar e desprazar unha imaxe dunha soa banda. RF-13 Amosar o ´angulo de rotaci´on, o factor de escala e os valores de desprazamento obtidos do rexistrado. RF-15 Gardar imaxe resultante do proceso de rexistrado en formato PGM. Debido a grande complexidade de c´alculos e funci´ons que se deberon desenvolver para a implementaci´on do algoritmo, esta iteraci´on ser´a a de maior duraci´on con respecto as outras. A etapa de formaci´on ten un grande peso neste caso en concreto. Ademais b´uscase realizar xa dende o primeiro un bo produto co fin de asentar unha primeira base s´olida. 4.2.2. Iteraci´on 2: Imaxes hiperespectrais Nesta segunda iteraci´on adaptaremos o algoritmo desenvolvido na anterior aplicaci´on para que funcione con imaxes hiperespectrais. Nesta etapa desenvolveranse as funci´ons para ler ficheiros de datos RAW que conte˜nen ditas imaxes as´ı como a funci´on que permita gardala no mesmo formato unha vez rexistrada. Como se discutir´a en detalle m´ais adiante e foi presentado en secci´ons anteriores, a aplicaci´on das imaxes hiperespectrais ao algoritmo non ´e directa xa que debido a grande cantidade de datos que conte˜nen ´e preciso extraer mediante alg´un proceso matem´atico a informaci´on m´ais relevante da imaxe reducindo as´ı a s´ua dimensionalidade. ´ E por iso que o segundo paso a realizar nesta iteraci´on ´e a implementaci´on de diferentes t´ecnicas de extracci´on de caracter´ısticas. Estas ser´an explicadas en m´ais detalle no Cap´ıtulo 6 de Implementaci´on.
4.2. ITERACI ´ ONS 65 Desta maneira os requisitos que engloba esta iteraci´on son: RF-01 Cargar ficheiro de datos en formato RAW. RF-02 Calcular Compo˜nentes Principais (PCA) dunha imaxe de entrada. RF-03 Calcular gradiente RCMG dunha imaxe de entrada. RF-04 Calcular gradiente vectorial dunha imaxe de entrada. RF-05 Calcular gradiente RCMG das bandas PCA dunha imaxe de entrada. RF-06 Calcular gradiente vectorial das bandas PCA dunha imaxe de entrada. RF-07 Aplicar o algoritmo a unha ou varias (de forma individual) bandas PCA. RF-08 Calcular a media de unha ou varias bandas consecutivas PCA. RF-09 Rexistrar unha imaxe a partir doutra tam´en proporcionada. RF-10 Rexistrar unha imaxe a partir doutra auto-xerada. RF-11 Rotar, escalar e desprazar unha imaxe dunha soa banda. RF-12 Rotar, escalar e desprazar unha imaxe hiperespectral. RF-13 Amosar o ´angulo de rotaci´on, o factor de escala e os valores de desprazamento obtidos do rexistrado. RF-14 Gardar imaxe resultante do proceso de rexistrado en formato RAW. RF-15 Gardar imaxe resultante do proceso de rexistrado en formato PGM. Ent´on ao final desta iteraci´on contaremos cun algoritmo capaz de rexistrar imaxes hiperespectrais cun amplo abanico de t´ecnicas de reduci´on de dimensionalidade que ser´an aplicadas antes do rexistrado. 4.2.3. Iteraci´on 3: Algoritmo gradientes Esta iteraci´on pretende mellorar o algoritmo desenvolvido nas anterior iteraci´ons investigando na idea de aplicar o rexistrado sobre un determinado tipo de gradiente que nos facilite esa acci´on e nos permita mellorar a precisi´on e a robustez a hora de achar o ´angulo de rotaci´on, o factor de escala e os valores de desprazamento. Os requisitos que forman parte desta iteraci´on xa foron implementados nas anteriores iteraci´ons pero como xa se dixo b´uscase mellorar a calidade do seu funcionamento: RF-09 Rexistrar unha imaxe a partir doutra tam´en proporcionada. RF-10 Rexistrar unha imaxe a partir doutra auto-xerada. 4.2.4. Iteraci´on 4: Algoritmo MLFFT Nesta cuarta iteraci´on trataremos tam´en de mellorar o algoritmo implementado nas Iteraci´ons 1 e 2 xa que existen diversos factores que non garanten a mellor precisi´on a hora de achar o ´angulo de rotaci´on, o factor de escala e os valores
66 CAP´ ITULO 4. AN ´ ALISE de desprazamento. Para isto investigarase na introduci´on da Transformada de Fourier Fraccional no algoritmo, explicada no Cap´ıtulo 6 de Implementaci´on con todo detalle. Isto implicar´a unha nova formaci´on como nas etapas anteriores. Unha vez se te˜na a implementaci´on completa da l´oxica da ferramenta de rexistrado, realizarase unha interface por li˜na de comandos para que o usuario poida configurar e executar toda a casu´ıstica que este traballo prop´on. Os requisitos que engloba esta iteraci´on son: RF-09 Rexistrar unha imaxe a partir doutra tam´en proporcionada. RF-10 Rexistrar unha imaxe a partir doutra auto-xerada. RF-16: Interface por li˜na de comandos. De novo os dous primeiros requisitos foron inclu´ıdos en anteriores etapas mais como xa se dixo o que se pretende ´e mellorar a calidade do funcionamento do algoritmo creando variantes e melloras. 4.2.5. Iteraci´on 5: Introduci´on do rexistrado como m´odulo da ferramenta HypeRvieW Unha vez se te˜na a implementaci´on completa da l´oxica dos algoritmos e das t´ecnicas de reduci´on de dimensionalidade e extracci´on de caracter´ısticas, realizarase un m´odulo que integra as mellores soluci´ons desenvolvidas neste traballo para a aplicaci´on HypeRvieW de an´alise e clasificaci´on de imaxes hiperespectrais. A inclusi´on dos m´etodos desenvolvidos nunha interface gr´afica permite un uso, unha iteraci´on e un entendemento m´ais doado de cara aos usuarios finais. Todos os requisitos que se desenrolan nesta iteraci´on te˜nen na especificaci´on unha importancia optativa. Isto ´e as´ı debido a que non son necesarios para a consecuci´on dos obxectivos do proxecto e que esta iteraci´on non foi formulada inicialmente no alcance do proxecto, xurdindo a idea durante o desenvolvemento do traballo. Grazas ao modelo de ciclo de desenrolo que se emprega perm´ıtenos engadir esta iteraci´on e estes requisitos ao traballo sen realizar ning´un cambio no realizado ata ese punto. En definitiva, esta iteraci´on s´o se desenvolver´a se se disp´on de tempo suficiente dentro da planificaci´on do traballo, como as´ı foi. Os requisitos que integran esta iteraci´on son todos aqueles que te˜nen que ver coa interface gr´afica (do RF-17 ao RF-23) as´ı como outros que son com´uns coa ferramenta de rexistrado por li˜na de comandos:
4.3. CASOS DE USO 67 RF-01 Cargar ficheiro de datos en formato RAW. RF-02 Calcular Compo˜nentes Principais (PCA) dunha imaxe de entrada. RF-07 Aplicar o algoritmo a unha ou varias (de forma individual) bandas PCA. RF-08 Calcular a media de unha ou varias bandas consecutivas PCA. RF-10 Rexistrar unha imaxe a partir doutra auto-xerada. RF-11 Rotar, escalar e desprazar unha imaxe dunha soa banda. RF-12 Rotar, escalar e desprazar unha imaxe hiperespectral. RF-13 Amosar o ´angulo de rotaci´on, o factor de escala e os valores de desprazamento obtidos do rexistrado. RF-14 Gardar imaxe resultante do proceso de rexistrado en formato RAW. RF-15 Gardar imaxe resultante do proceso de rexistrado en formato PGM. RF-17 Crear m´odulo para HypeRvieW cos mellores algoritmos e t´ecnicas de reduci´on de dimensionalidade desenvolvidos (interface gr´afica). RF-18 Permitir especificar par´ametros num´ericos do proceso de rexistrado. RF-19 Permitir elixir algoritmo. RF-20 Permitir elixir t´ecnica de reduci´on de dimensionalidade. RF-21 Amosar imaxe hiperespectral de entrada. RF-22 Amosar imaxe resultante do proceso de rexistrado. RF-23 Ver e gardar a sa´ıda textual do proceso de rexistrado. Tam´en forman parte aqueles requisitos non funcionais e do dominio que se definiron especificamente para interface gr´afica: RNP-03 A interface gr´afica deber´a contar cunha alta usabilidade, eficiencia, eficacia e fiabilidade. RNP-04 A interface gr´afica do m´odulo de rexistrado debera inclu´ır unha axuda. RNE-01 Desenvolvemento do m´odulo para interface gr´afica mediante GTK+. 4.3. Casos de uso Nesta secci´on pres´entase o diagrama de casos de uso do sistema o cal representa as interacci´ons entre o usuario e a ferramenta que se vai desenvolver. Neste diagrama pret´endese capturar o comportamento desexado da ferramenta de rexistrado e do m´odulo para a aplicaci´on HypeRvieW sen especificar como implementalos facilitando as´ı a comunicaci´on e o entendemento entre os usuarios, clientes e desenvolvedores, sendo esta unha das s´uas principais vantaxes. Noutras palabras, os casos de uso representan unidades funcionais dun sistema nos que un ou m´ais actores interaccionan con el para levar a cabo acci´ons definidas. Estes foron dese˜nados a partir dos requisitos recollidos do cliente. Inicialmente am´osase o diagrama principal do sistema constru´ıdo seguindo a
68 CAP´ ITULO 4. AN ´ ALISE linguaxe unificada de modelado (UML), de seguido detallarase cada caso de uso e actor participante e finalmente pres´entase a matriz de trazabilidade que relaciona os requisitos cos casos de uso. 4.3.1. Diagrama de casos de uso O diagrama de casos de uso recolle aquelas acci´ons e comportamentos que o usuario pode levar a cabo no sistema, como xa se dixo na presentaci´on desta secci´on. Pretende ser unha ferramenta que facilite o entendemento co cliente e cos usuarios e que permita cunha simple visualizaci´on aportar unha idea do que se pretende desenvolver. As compo˜nentes deste tipo de diagramas que se van empregar neste traballo son as seguintes: Caso de uso: Conxunto de secuencias de acci´ons que executa un sistema para producir un resultado observable para un actor. A s´ua representaci´on gr´afica ´e un ´ovalo. Asociaci´on: Relaci´on entre casos de uso e actores que os levan a cabo. Repres´entase mediante unha li˜na continua sen frechas. Relaci´on: Relaci´on entre casos de uso. Repres´entase mediante unha li˜na descontinua con frecha. Hai diferentes tipos, aqu´ı expl´ıcanse os empregados no diagrama da Figura 4.1: •Inclusi´on: Un caso de uso incorpora o comportamento de outro. Ind´ıcase graficamente cunha nota de texto ((include)) na frecha da relaci´on. •Extensi´on: Un caso de uso modifica o comportamento de outro s´o en certos puntos. Ind´ıcase graficamente cunha nota de texto ((extend)) na frecha da relaci´on. Actor: Rol que xoga un usuario ou un sistema externo ao interaccionar co sistema. No noso caso non se conta con ning´un sistema externo. Representase graficamente por unha persoi˜na. Na Figura 4.1 p´odese ver o diagrama de casos de uso do sistema que se desenvolve neste traballo.
4.3. CASOS DE USO 69 Figura 4.1: Diagrama de casos de uso. 4.3.2. Especificaci´on de casos de uso De seguido det´allanse os actores e casos de uso modelados para a realizaci´on deste traballo. Seguirase a estrutura amosada no Cadro 4.37 para a especificaci´on de actores e a amosada no Cadro 4.38 para o detalle dos casos de uso. Cabe dicir que s´o se especificar´an os casos de uso Rexistrar unha imaxe autoxerada a partir dunha imaxe eRexistrar imaxes dende ficheiro xa que os outros tr´atanse de casos de uso inclu´ıdos nestes, ou do caso de uso que engloba aos dous. A ferramenta de rexistrado implementa ´ambolos dous casos de uso, mentres que o m´odulo de rexistrado desenvolvido para HypeRvieW s´o CU-01 (Cadro 4.40). Actor: Nome ´unico que identifica o actor. Descrici´on: Descrici´on e relaci´on do actor co sistema. Fontes: Stakeholders que axudaron a identificaci´on do actor. Cadro 4.37: Especificaci´on dun actor.
70 CAP´ ITULO 4. AN ´ ALISE Identificador: Clave ´unica que identifica cada caso de uso. Estar´a formada polo c´odigo CUseguido por un n´umero. T´ıtulo: Nome asociado ao caso de uso. Prop´osito: Descrici´on do caso de uso. Actores: Nome do actor ou actores que participan no caso de uso. Precondici´on: Condici´on que se debe cumprir para realizar a acci´on asociada ao caso de uso. Postcondici´on: Estado no que queda o sistema despois dunha execuci´on correcta da acci´on ou acci´ons asociadas ao caso de uso. Escenario principal: Lista de actividades que se realizar´an nunha execuci´on normal e v´alida do caso de uso. Escenario alternativo: Lista de actividades que se realizar´an nunha situaci´on distinta ao curso normal dos eventos. O inicio da numeraci´on do escenario alternativo comeza no punto seguinte no que se produce o desv´ıo do escenario principal. Cadro 4.38: Especificaci´on dun caso de uso. Actor: Usuario. Descrici´on: Persoa que empregue o sistema desenvolvido. Fontes: Cliente e desenvolvedor do sistema. Cadro 4.39: Actor: Usuario.
4.3. CASOS DE USO 71 Identificador: CU-01 T´ıtulo: Rexistrar unha imaxe auto-xerada a partir dunha imaxe. Prop´osito: Achar o ´angulo de rotaci´on, factor de escala e desprazamento dunha imaxe respecto da outra que ´e xerada pola aplicaci´on a partir dos par´ametros indicados polo usuario. Actores: Usuario. Precondici´on: O usuario debe indicar a localizaci´on da imaxe hiperespectral de referencia, o seu tama˜no, o n´umero de bandas, un ´angulo, un factor de escalado e uns valores de desprazamento para xerar a imaxe a rexistrar. Postcondici´on: Am´osase o resultado por pantalla e x´erase a imaxe resultante do proceso. Escenario principal: 1. O usuario indica unha imaxe, un factor de escala, un ´angulo de rotaci´on e uns valores de desprazamento. Selecciona o algoritmo de rexistrado que quere empregar e a t´ecnica de reduci´on de dimensionalidade a aplicar. 2. O sistema amosa por consola o resultado e xera a imaxe resultante do proceso no directorio onde se atopa o programa. Escenario alternativo: 1a. O usuario non indica a localizaci´on da imaxe, o tama˜no, o n´umero de bandas, o factor de escala, o ´angulo de rotaci´on e/ou os valores de desprazamento. Cadro 4.40: Caso de uso CU-01: Rexistrar unha imaxe auto-xerada respecto a unha imaxe.
78 CAP´ ITULO 5. DESE ˜ NO Figura 5.1: Diagrama de fluxo do algoritmo
5.3. DIAGRAMAS DE FLUXO DE DATOS 79 Almac´ens de datos: Descr´ıbense graficamente por d´uas barras paralelas. Representan informaci´on almacenada que pode ser empregada polo software. Os almac´ens de datos poden ir dende rexistros temporais para almacenar datos ata ficheiros ou bases de datos. Fluxos de datos: Descr´ıbense graficamente por frechas que levan asociado un nome. Representan datos ou colecci´ons de datos que fl´uen a trav´es do sistema. A frecha indica o sentido do fluxo. ´ E frecuente que en diagramas de maior nivel existan fluxos de datos bidireccionais (con unha frecha en cada punta do segmento), que m´ais tarde son refinados en sucesivos diagramas. Estes fluxos conectan procesos con outros procesos, con entidades externas ou con almac´ens de datos e poden converxer ou diverxer. Representan informaci´on en movemento, fronte aos almac´ens que representan informaci´on est´atica ou en repouso. Calquera destes elementos deben aparecer no diagrama etiquetada cun nome corto e significativo que debe ser ´unico no conxunto de diagramas de fluxo de datos. Ademais co fin de conseguir un modelado correcto segu´ıronse as seguintes regras de construci´on [24]: Un DFD debe ter menos de 10 elementos. Cada elemento debe estar etiquetado cun nome corto e identificable. ´ E necesario numerar os procesos. Para modelar sistemas complexos empr´egase a explosi´on, que d´a como resultado diagramas a distintos niveis de detalle. Non ´e conveniente empregar m´ais de 7 ou 8 niveis. Os diagramas de niveis inferiores desenvolven de forma m´ais concreta os procesos de niveis superiores. A explosi´on real´ızase ata conseguir un nivel de especificaci´on sinxelo e m´ınimo. Debe manterse a consistencia de nomes nos distintos diagramas. Debe manterse a consistencia entre os diferentes niveis, empregando a chamada regra de requlibro. Esta regra dinos que cada DFD fillo dun nivel nser´a resultado da explosi´on dun proceso pai dun DFD de nivel n−1. ´ E necesario que o t´ıtulo do DFD sexa o nome do proceso que desenvolve e detalla, que a numeraci´on dos procesos do DFD fillo se derive da do n´umero do pai e ademais hai que manter a consistencia do fluxo de datos en ambos.
80 CAP´ ITULO 5. DESE ˜ NO Cada DFD fillo debe representar os mesmos fluxos de datos que no proceso pai. Non existen conexi´ons entre entidades externas. Non existen conexi´ons entre almac´ens. Non existen conexi´ons entre entidades externas e almac´ens de datos. Nas seguintes subsecci´ons pasarase a describir os diferentes niveis de diagrama de fluxo que forman o algoritmo base desenvolvido neste traballo. Todos estes diagramas son moi ´utiles a hora de entender en que fases e procesos est´a formado o proceso e que tipo de informaci´on entra e sae de cada un. 5.3.1. Diagrama de contexto O diagrama de fluxo de datos de nivel 0 recibe o nome de diagrama de contexto e nel o sistema est´a representado por un s´o proceso. Este proceso identifica cal ´e a funci´on principal do sistema, amosando ademais os fluxos de informaci´on que o relacionan con outros sistemas. Este diagrama resume o requisito principal do sistema amosando que entradas recibe, con que funci´on as procesa e que sa´ıdas xera. O requisitos principal deste traballo ´e realizalo rexistrado de imaxes hiperespectrais e para iso contaremos cos par´ametros que nos especifique o usuario e cos ficheiros das imaxes. A sa´ıda poder´a ser amosada por pantalla e por ficheiro. Isto ven reflectido na Figura 5.2. Figura 5.2: Diagrama de contexto do sistema
5.3. DIAGRAMAS DE FLUXO DE DATOS 81 5.3.2. Diagrama do sistema O diagrama do sistema ´e o resultante de explotar o proceso 0 do diagrama de contexto. Representa as funci´ons principais que realiza o sistema e que son independentes entre si. Estas son a aplicaci´on dunha t´ecnica de extracci´on de caracter´ısticas para a reduci´on da dimensionalidade dunha imaxe hiperespectral antes de realizalo rexistrado e o propio proceso do rexistrado das imaxes. Podemos ver este diagrama na Figura 5.3. Figura 5.3: DFD de nivel 1 ou diagrama do sistema 5.3.3. Diagramas de nivel dous A continuaci´on am´osanse os diagramas que xorden de explotar os dous procesos que forman parte do diagrama do sistema.
82 CAP´ ITULO 5. DESE ˜ NO No diagrama da Figura 5.4 p´odese ver a explosi´on do proceso “Extraer caracter´ısticas” onde primeiro se len as imaxes de ficheiro e se transforman a estrutura de datos que emprega o sistema e despois se aplica a t´ecnica de extracci´on de caracter´ısticas propiamente dita. Estes procesos cualif´ıcanse de primitivos pois xa non se pasar´a a explotalos m´ais en novos niveis de DFD debido a que a s´ua descomposici´on non implicar´ıa unha maior comprensi´on do sistema e s´o engadir´ıa complexidade. Figura 5.4: DFD de nivel 2: Extraer caracter´ısticas Por outro lado na Figura 5.5 p´odese ver o diagrama froito da explosi´on do proceso “Rexistrar imaxes”. Est´a formado por tres procesos: “Achar ´angulo e escala”, “Achar desprazamento” e “Procesar resultados”.
5.3. DIAGRAMAS DE FLUXO DE DATOS 83 Figura 5.5: DFD de nivel 2: Rexistrar imaxes 5.3.4. Diagramas de nivel tres Da explosi´on dos procesos que conforman o diagrama de fluxo de datos de nivel 2 “Rexistrar imaxes” nacen cadanseu diagrama de nivel tres que amosamos a continuaci´on.
84 CAP´ ITULO 5. DESE ˜ NO Figura 5.6: DFD de nivel 3: Achar ´angulo e escala
5.3. DIAGRAMAS DE FLUXO DE DATOS 85 Figura 5.7: DFD de nivel 3: Achar desprazamento
86 CAP´ ITULO 5. DESE ˜ NO Figura 5.8: DFD de nivel 3: Procesar resultados Na Figura 5.6 am´osanse as fases que conforman o proceso de obtenci´on do ´angulo e escala no rexistrado de imaxes baseado na Transformada R´apida de Fourier (FFT). Por outra banda, na Figura 5.7 ens´ınase en m´ais detalle o proceso de obtenci´on do desprazamento. Os procesos que conforman estes dous diagramas ser´an explicadas con maior detalle na vindeira secci´on, Implementaci´on. Finalmente desenvolvese na Figura 5.8 o diagrama de procesado de resultados, onde se pode ver que estes resultados se amosaran por pantalla e que tam´en se producir´a a imaxe rexistrada. 5.3.5. Dicionario de datos O dicionario de datos cont´en as definici´ons de todos os elementos que aparecen nos diferentes diagramas do sistema, e serven por tanto para establecer a relaci´on entre os distintos modelos do mesmo. Noutras palabras, ´e un listado organizado de todos os elementos de datos que son pertinentes para o sistema, con definici´ons precisas e rigorosas que permiten que o usuario e o analista do sistema te˜nan unha mesma compresi´on das entradas, sa´ıdas e compo˜nentes dos almac´ens.
5.3. DIAGRAMAS DE FLUXO DE DATOS 87 Con este fin descrito det´allase a continuaci´on o dicionario de datos para os diagramas de fluxo das anteriores secci´ons. Almac´ens de datos Nome: Ficheiros. Fluxos entrantes: Imaxe rexistrada Fluxos sa´ıntes: Imaxe1 e Imaxe2 Descrici´on do contido: Ficheiros de imaxes hiperespectrais. Comentarios adicionais: Formato do ficheiro: RAW. Cadro 5.1: Almac´en de datos: Ficheiros Entidades externas Nome: Usuario. Fluxos entrantes: - Fluxos sa´ıntes: Par´ametros Descrici´on do contido: Par´ametros de configuraci´on aportados polo usuario como pode ser o algoritmo escollido e o m´etodo de extracci´on de caracter´ısticas. Comentarios adicionais: - Cadro 5.2: Entidade externa: Usuario Nome: Monitor. Fluxos entrantes: Resultado Fluxos sa´ıntes: - Descrici´on do contido: Resultados despois da realizaci´on do rexistrado das imaxes. Comentarios adicionais: Modo texto. Cadro 5.3: Entidade externa: Monitor
94 CAP´ ITULO 5. DESE ˜ NO Nome: Resultado. Orixe/Destino: Proceso 0 →Entidade externa (Monitor) Proceso 2 →Entidade externa (Monitor) Proceso 2.3 →Entidade externa (Monitor) Proceso 2.3.1 →Entidade externa (Monitor) Descrici´on do contido: Resultado do rexistrado: ´angulo de rotaci´on, factor de escala e desprazamento. Comentarios adicionais: Modo texto. Cadro 5.28: Fluxo de datos: Resultado. Nome: Imaxe1. Orixe/Destino: Alm´acen de datos (Ficheiros) →Proceso 1 Alm´acen de datos (Ficheiros) →Proceso 1.1 Descrici´on do contido: Imaxe de referencia orixinal. Comentarios adicionais: Ficheiro RAW. Cadro 5.29: Fluxo de datos: Imaxe1. Nome: Imaxe2. Orixe/Destino: Alm´acen de datos (Ficheiros) →Proceso 1 Alm´acen de datos (Ficheiros) →Proceso 2 Alm´acen de datos (Ficheiros) →Proceso 1.1 Alm´acen de datos (Ficheiros) →Proceso 2.3 Alm´acen de datos (Ficheiros) →Proceso 2.3.1 Descrici´on do contido: Imaxe a rexistrar orixinal. Comentarios adicionais: Ficheiro RAW. Cadro 5.30: Fluxo de datos: Imaxe2. Nome: Imaxe1 reducida. Orixe/Destino: Proceso 1 →Proceso 2 Proceso 1.2 →Proceso 2.1 Proceso 1.2 →Proceso 2.2 Proceso 2.1 →Proceso 2.1.1 Proceso 2.2 →Proceso 2.2.2 Descrici´on do contido: Imaxe de referencia tras aplicarlle unha t´ecnica de extracci´on de caracter´ısticas que reduce a s´ua dimensionalidade. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.31: Fluxo de datos: Imaxe1 reducida.
5.3. DIAGRAMAS DE FLUXO DE DATOS 95 Nome: Imaxe2 reducida. Orixe/Destino: Proceso 1 →Proceso 2 Proceso 1.2 →Proceso 2.1 Proceso 1.2 →Proceso 2.2 Proceso 2.1 →Proceso 2.1.1 Proceso 2.2 →Proceso 2.2.1 Descrici´on do contido: Imaxe a rexistrar tras aplicarlle unha t´ecnica de extracci´on de caracter´ısticas que reduce a s´ua dimensionalidade. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.32: Fluxo de datos: Imaxe2 reducida. Nome: Imaxe2 reducida. Orixe/Destino: Proceso 1 →Proceso 2 Proceso 1.2 →Proceso 2.1 Proceso 1.2 →Proceso 2.2 Proceso 2.1 →Proceso 2.1.1 Proceso 2.2 →Proceso 2.2.1 Descrici´on do contido: Imaxe de referencia tras aplicarlle unha t´ecnica de extracci´on de caracter´ısticas que reduce a s´ua dimensionalidade. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.33: Fluxo de datos: Imaxe2 reducida. Nome: Imaxe1 transformada. Orixe/Destino: Proceso 1.1 →Proceso 1.2 Descrici´on do contido: Imaxe de referencia orixinal almacenada no modelo de datos usado polo sistema. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.34: Fluxo de datos: Imaxe1 transformada. Nome: Imaxe2 transformada. Orixe/Destino: Proceso 1.1 →Proceso 1.2 Descrici´on do contido: Imaxe a rexistrar orixinal almacenada no modelo de datos usado polo sistema. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.35: Fluxo de datos: Imaxe2 transformada.
96 CAP´ ITULO 5. DESE ˜ NO Nome: ´ Angulo. Orixe/Destino: Proceso 2.1 →Proceso 2.2 Proceso 2.1 →Proceso 2.3 Proceso 2.1.7 →Proceso 2.2.1 Proceso 2.1.7 →Proceso 2.3.1 Proceso 2.1.7 →Proceso 2.3.2 Descrici´on do contido: ´ Angulo de rotaci´on. Comentarios adicionais: N´umero decimal. Cadro 5.36: Fluxo de datos: ´ Angulo. Nome: Escala. Orixe/Destino: Proceso 2.1 →Proceso 2.2 Proceso 2.1 →Proceso 2.3 Proceso 2.1.7 →Proceso 2.2.1 Proceso 2.1.7 →Proceso 2.3.1 Proceso 2.1.7 →Proceso 2.3.2 Descrici´on do contido: Factor de escala. Comentarios adicionais: N´umero decimal. Cadro 5.37: Fluxo de datos: Escala. Nome: Desprazamento. Orixe/Destino: Proceso 2.2 →Proceso 2.3 Proceso 2.2.4 →Proceso 2.3.1 Proceso 2.2.4 →Proceso 2.3.2 Descrici´on do contido: Desprazamento dunha imaxe respecto doutra. Comentarios adicionais: Dous n´umeros enteiros. Cadro 5.38: Fluxo de datos: Desprazamento. Nome: FFT Imaxe1. Orixe/Destino: Proceso 2.1.1 →Proceso 2.1.2 Descrici´on do contido: Resultado de realizar a Transformada R´apida de Fourier ´a Imaxe reducida. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.39: Fluxo de datos: FFT Imaxe1.
5.3. DIAGRAMAS DE FLUXO DE DATOS 97 Nome: FFT Imaxe2. Orixe/Destino: Proceso 2.1.1 →Proceso 2.1.2 Descrici´on do contido: Resultado de realizar a Transformada R´apida de Fourier ´a Imaxe reducida. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.40: Fluxo de datos: FFT Imaxe2. Nome: FFTShift Imaxe1. Orixe/Destino: Proceso 2.1.2 →Proceso 2.1.3 Descrici´on do contido: Resultado de centrar a Transformada R´apida de Fourier da Imaxe reducida. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.41: Fluxo de datos: FFTShift Imaxe1. Nome: FFTShift Imaxe2. Orixe/Destino: Proceso 2.1.2 →Proceso 2.1.3 Descrici´on do contido: Resultado de centrar a Transformada R´apida de Fourier da Imaxe reducida. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.42: Fluxo de datos: FFTShift Imaxe2. Nome: Imaxe1 Filtrada. Orixe/Destino: Proceso 2.1.3 →Proceso 2.1.4 Descrici´on do contido: Resultado de realizar o filtrado pasa-alta de frecuencias ´a FFTShift da imaxe. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.43: Fluxo de datos: Imaxe1 Filtrada. Nome: Imaxe2 Filtrada. Orixe/Destino: Proceso 2.1.3 →Proceso 2.1.4 Descrici´on do contido: Resultado de realizar o filtrado pasa-alta de frecuencias ´a FFTShift da imaxe. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.44: Fluxo de datos: Imaxe2 Filtrada.
98 CAP´ ITULO 5. DESE ˜ NO Nome: LogPolar Imaxe1. Orixe/Destino: Proceso 2.1.4 →Proceso 2.1.5 Descrici´on do contido: Resultado de calcular a LogPolar dos valores da imaxe despois do filtrado. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.45: Fluxo de datos: LogPolar Imaxe1. Nome: LogPolar Imaxe2. Orixe/Destino: Proceso 2.1.4 →Proceso 2.1.5 Descrici´on do contido: Resultado de calcular a LogPolar dos valores da imaxe despois do filtrado. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.46: Fluxo de datos: LogPolar Imaxe2. Nome: Matriz correlaci´on cruzada. Orixe/Destino: Proceso 2.1.5 →Proceso 2.1.6 Descrici´on do contido: Matriz correlaci´on cruzada=Correlaci´onCruzada(LogPolar Imaxe1,LogPolar Imaxe2) Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.47: Fluxo de datos: Matriz correlaci´on cruzada. Nome: Matriz correlaci´on cruzada ordenada. Orixe/Destino: Proceso 2.1.6 →Proceso 2.1.7 Descrici´on do contido: Resultado de aplicaci´on dun m´etodo de ordenaci´on a Matriz correlaci´on cruzada. Os valores quedan ordenados de maior a menor. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.48: Fluxo de datos: Matriz correlaci´on cruzada ordenada. Nome: Imaxe2 escalada e/ou rotada ´angulo. Orixe/Destino: Proceso 2.2.1 →Proceso 2.2.2 Descrici´on do contido: Matriz resultante de escalar e/ou rotar X ´angulo a Imaxe2 reducida. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.49: Fluxo de datos: Imaxe2 escalada e/ou rotada ´angulo.
5.3. DIAGRAMAS DE FLUXO DE DATOS 99 Nome: Imaxe2 escalada e/ou rotada ´angulo+180o. Orixe/Destino: Proceso 2.2.1 →Proceso 2.2.2 Descrici´on do contido: Matriz resultante de escalar e/ou rotar X+180o´angulo a Imaxe2 reducida. Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.50: Fluxo de datos: Imaxe2 escalada e/ou rotada ´angulo+180o. Nome: Matriz correlaci´on cruzada 1. Orixe/Destino: Proceso 2.2.2 →Proceso 2.2.3 Descrici´on do contido: Matriz correlaci´on cruzada 1 = Correlaci´onCruzada(Imaxe1 reducida, Imaxe2 escalada e/ou rotada ´angulo) Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.51: Fluxo de datos: Matriz correlaci´on cruzada 1. Nome: Matriz correlaci´on cruzada 2. Orixe/Destino: Proceso 2.2.2 →Proceso 2.2.3 Descrici´on do contido: Matriz correlaci´on cruzada 2 = Correlaci´onCruzada(Imaxe1 reducida, Imaxe2 escalada e/ou rotada ´angulo+180o) Comentarios adicionais: Matriz de n´umeros reais. Cadro 5.52: Fluxo de datos: Matriz correlaci´on cruzada 2. Nome: Max1. Orixe/Destino: Proceso 2.2.3 →Proceso 2.2.4 Descrici´on do contido: Valor m´aximo da Matriz correlaci´on cruzada 1. Comentarios adicionais: N´umero decimal. Cadro 5.53: Fluxo de datos: Max1. Nome: Max2. Orixe/Destino: Proceso 2.2.3 →Proceso 2.2.4 Descrici´on do contido: Valor m´aximo da Matriz correlaci´on cruzada 2. Comentarios adicionais: N´umero decimal. Cadro 5.54: Fluxo de datos: Max2.
100 CAP´ ITULO 5. DESE ˜ NO 5.4. Modelo de datos Debido ´as caracter´ısticas do proxecto e que foi desenvolvido en linguaxe C o modelo de datos empregado para o desenvolvemento dos algoritmos de rexistrado non ´e moi complexo. As imaxes lidas dende ficheiro son representadas mediante unha matriz (array en ingl´es) de n´umeros enteiros almacenada en memoria como a que se amosa a continuaci´on: int ∗datos ; Unha vez se comece a operar coas imaxes estas son transformadas a un tipo propio chamado complexo que ´e unha estrutura conformada por d´uas matrices de tipo double, onde unha delas representa a parte real e a outra a parte imaxinaria dos n´umeros reais que forman a imaxe, e por dous n´umeros enteiros que especifican o tama˜no da imaxe. typedef struct complexo { double ∗re , ∗im ; int NH,NV; }complexo ; Ademais para facilitar o paso dos resultados do proceso de rexistrado na interface gr´afica creouse outro novo tipo de datos chamado RESULTADO que cont´en os valores achados para o factor de escala, o ´angulo de rotaci´on e os desprazamentos. typedef struct RESULTADO { double angulo , e scal a ; int desprX , desprY ; }RESULTADO;
Cap´ıtulo 6 Implementaci´on Neste cap´ıtulo det´allase como ser´a levada a cabo a implementaci´on dos algoritmos desenvolvidos as´ı como as t´ecnicas de preprocesado empregadas para reducir a dimensionalidade das imaxes hiperespectrais antes de servir como entradas do algoritmo. Presentaranse os diferentes m´etodos dunha maneira m´ais te´orica e dunha maneira m´ais sinxela para a s´ua mellor comprensi´on. 6.1. Reduci´on da dimensionalidade da imaxe hiperespectral Debido a grande cantidade de datos que cont´en unha imaxe hiperespectral a s´ua aplicaci´on a unha t´ecnica de rexistrado non ´e inmediata. Unha imaxe hiperespectral cont´en unha grande cantidade de datos en cada p´ıxel. Para procesar toda esta informaci´on dunha maneira eficiente, para neste caso facer o rexistrado, temos que extraer mediante alg´un proceso matem´atico a informaci´on m´ais relevante da imaxe. Na pr´actica isto produce imaxes cunha menor dimensionalidade, ´e dicir, con un n´umero menor de bandas respecto da imaxe orixinal e incluso pudendo chegar a xerar unha ´unica banda (pero coa informaci´on m´ais relevante). Esta t´ecnica recibe o nome de extracci´on de caracter´ısticas. Nesta secci´on expl´ıcanse as t´ecnicas m´ais avanzadas de extracci´on de caracter´ısticas avaliadas. 6.1.1. Gradientes O obxectivo principal das t´ecnicas que consisten en aplicar gradientes, en procesamento de imaxes no dominio espacial (o termo espacial ref´ırese a manipular 101
102 CAP´ ITULO 6. IMPLEMENTACI ´ ON directamente os p´ıxeles da imaxe), ´e o de obter unha imaxe m´ais adecuada que a imaxe orixinal para unha aplicaci´on espec´ıfica. ´ E dicir, mellorala para o seu uso concreto. Tradicionalmente o gradiente foi empregado para resaltar os detalles dunha imaxe ou para mellorar os p´ıxeles m´ais borrosos causados debido ao sensor co que foron tomadas as imaxes ou por un efecto realizado a prop´osito. Noutras palabras, mellorar o enfoque da imaxe. A idea aplicando este m´etodo en imaxes hiperespectrais ´e obter unha ´unica banda onde se resaltar´an as transici´ons entre p´ıxeles segundo os valores que te˜nan nas diferentes bandas. Gradiente vectorial Para unha funci´on f(x, y), o gradiente de fnas coordenadas (x, y) ven definido polo seguinte vector: ∇f=Gx Gy= ∂f ∂x ∂f ∂y .(6.1) Pero realmente ao que nos referimos cando dicimos gradiente ´e a magnitude do vector (Ecuaci´on 6.1): ∇f=mag(∇f) = G2 x+G2 y1 2 =∂f ∂x2 +∂f ∂y 2 1 2 . (6.2) Aplicar a Ecuaci´on (6.2) a toda unha imaxe require un custo computacional moi elevado e m´ais se a imaxe ´e multidimensional. ´ E por isto polo que habitualmente se empregan aproximaci´ons da magnitude do gradiente, como ´e o caso deste traballo. Gradiente RCMG Para as imaxes hiperespectrais non se adoita aplicar un gradiente com´un como o explicado na anterior secci´on, sen´on que se emprega un gradiente morfol´oxico. O operador morfol´oxico b´asico para imaxes en gris ben definido pola Ecuaci´on (6.3): ∇(f) = δg(f)−εg(f),(6.3)
6.1. REDUCI ´ ON DA DIMENSIONALIDADE DA IMAXE HIPERESPECTRAL103 onde δgeεgson os operadores morfol´oxicos de dilataci´on e erosi´on e, go elemento que define a veci˜nanza dun p´ıxel da imaxe f[26]. Alternativamente esta ecuaci´on pode ser expresada como a maior diferenza de intensidade entre calquera dous p´ıxeles do veci˜nanza (Ecuaci´on 6.4): ∇(f) = max x∈g{f(x)} − min y∈g{f(y)} = max(|f(x)−f(y)|)∀x, y ∈g . (6.4) Esta ecuaci´on pode ser facilmente extensible a imaxes en cor xa que basicamente teriamos un vector de p´ıxeles con tres compo˜nentes: a vermella, a verde e a azul, que son as diferentes canles de color [27]. Supo˜nendo que x´e un vector de p´ıxeles dunha imaxe en cor e χ= [x1,x2, ... , xn] ´e un conxunto de nvectores de p´ıxeles da veci˜nanza de x, e que dito conxunto cont´en ´a propia x. Ent´on o Color Morphological Gradient (CMG), ∇(f), usando a distancia Euclidea def´ınese como: ∇(f) = max i,j∈χ{||xi−xj||2},(6.5) cuxa resposta ´e a m´axima das distancias entre todos os pares de vectores no conxunto χ. Sen embargo o CMG vese afectado notablemente polo ru´ıdo podendo producir bordes que non son representativos no gradiente da imaxe. Por esta raz´on o Robust Color Morphological Gradient (RCMG) ´e proposto en [27] baseado no rexeitamento daqueles pares de p´ıxeles pouco representativos dentro do conxunto χ. Estes son os pares de p´ıxeles que est´an m´ais alonxados. O RCMG, ∇(f)Robust, def´ınese na Ecuaci´on (6.6): ∇(f)Robust = max i,j∈χ−Rs {||xi−xj||2}.(6.6) Para aplicar o RCMG a unha imaxe hiperespectral ref´ırese a un vector de p´ıxeles a un p´ıxel da imaxe hiperescpetral con todas as n-bandas como compo˜nentes dun vector n-dimensional. Por iso aplicando o RCMG a este tipo de imaxes cons´eguese reducir a s´ua dimensionalidade a unha soa banda conseguindo as´ı o noso prop´osito e ademais obtendo un gradiente m´ais insensible ao ru´ıdo que o gradiente vectorial com´un. 6.1.2. PCA Principal Component Analysis (PCA), ou en galego An´alise de Compo˜nentes Principais, ´e unha t´ecnica estat´ıstica empregada xeralmente para reducir a dimensionalidade dun conxunto de datos polo que ´e aplicable a unha imaxe hiperespectral xa que est´a non deixa de ser un grande conxunto de datos repartidos nas m´ultiples bandas que a conforman.
110 CAP´ ITULO 6. IMPLEMENTACI ´ ON ρ0= log q(eρcos θ−∆x)2+ (eρsen θ−∆y)2 θ0= tan−1(eρsen θ−∆y) (eρcos θ−∆x). (6.27) De acordo con esta ecuaci´on realizar un desprazamento na imaxe produce modificaci´ons no mapeo das coordenadas log-polar polo que a imaxe log-polar non serve para achar o desprazamento. Para superar esta limitaci´on o que faremos ser´a aplicar a correlaci´on cruzada sobre as imaxes a rexistrar unha vez achados a rotaci´on e o escalado. Isto expl´ıcase na seguinte secci´on. 6.2.3. Algoritmo final baseado na FFT Nesta secci´on, unha vez xa exposto e explicado teoricamente as d´uas t´ecnicas centrais que conforman este algoritmo, vaise a proceder a explicar o algoritmo baseado na Transformada R´apida de Fourier (FFT) [32]. Inicialmente lense as d´uas imaxes, a de referencia e a que queremos rexistrar, dende ficheiros de tipo RAW. A continuaci´on apl´ıcaselle a ambas imaxes unha das t´ecnicas de extracci´on de caracter´ısticas expostas anteriormente co fin de como di o propio nome quedarnos cos datos m´ais relevantes e reducir a dimensionalidade a unha banda. Estas t´ecnicas son: PCA, gradiente RCMG e o gradiente normal as cales se poden empregar de forma directa, de forma combinada ou algunha outra froito da combinaci´on con unha media ou froito de restrinxir o n´umero de bandas empregadas. As t´ecnicas empregadas na implementaci´on deste proxecto son as seguintes: Aplicar o algoritmo a unha ou varias (de forma individual) bandas PCA. Gradiente RCMG sobre as imaxes orixinais. Gradiente RCMG sobre unha ou varias bandas PCA. Gradiente vectorial sobre as imaxes orixinais. Gradiente vectorial sobre unha ou varias bandas PCA. Media de unha ou varias bandas PCA. Media de todas as bandas PCA. Unha vez reducida a dimensionalidade, apl´ıcaselle as d´uas imaxes resultantes un filtro pasa-alta que como o seu nome indica permite pasar as frecuencias m´ais altas sen modificar e aten´ua as frecuencias m´ais baixas. Isto perm´ıtenos eliminar posibles ru´ıdos da imaxe. O esquema do filtrado ´e o seguinte:
6.2. ALGORITMO BASEADO NA FFT 111 Realizar a Transformada R´apida de Fourier (FFT). Centrar a FFT (fftshift). Multiplicar pola funci´on do filtro pasa-alta. Descentrar a FFT (ifftshift). Realizar a Transformada Inversa de Fourier (IFFT). Recibe o nome de fftshift a reordenaci´on dos puntos da matriz en orden crecente de frecuencia. ´ E dicir, consiste en desprazar a compo˜nente de frecuencia cero ao centro. Deste xeito as frecuencias m´ais altas quedan nos bordes e as baixas quedan no centro. A ifftshift ´e o proceso inverso, noutras palabras intercambia o primeiro cuadrante co terceiro e o segundo cuadrante co cuarto cando se lle aplica a matrices. A funci´on de filtro empregada ´e a seguinte, H(u, v) = (1,0−X(u, v)) ·(2,0−X(u, v)) (6.28) onde X(u, v) = [cos πu ·cos πv],−0,5≤uev≤0,5.(6.29) A continuaci´on do derradeiro paso (Realizar a Transformada Inversa de Fourier (IFFT)) calcular´ıase a FFT, mais neste caso simplif´ıcase coa ifftshift e a IFFT do filtrado pasa-alta. Noutras palabras, temos que realizar menos pasos grazas a esta simplificaci´on, quedando ent´on os pasos anteriores reducidos a estes: Realizar a Transformada R´apida de Fourier (FFT). Centrar a FFT (fftshift). Multiplicar pola funci´on do filtro pasa-alta. Chegados ata este punto teremos d´uas matrices cos valores das imaxes no dominio da frecuencia filtrados e centrados. Ent´on o algoritmo ata este intre quedar´ıa da seguinte maneira: 1. Cargar a imaxe de referencia e a imaxe a rexistrar. 2. Aplicar t´ecnica de extracci´on de caracter´ısticas a ambas imaxes. 3. Realizar a FFT a ambas imaxes. 4. Centrar a FFT (fftshift) en ambas imaxes.
112 CAP´ ITULO 6. IMPLEMENTACI ´ ON 5. Multiplicar pola funci´on do filtro en ambas imaxes. De seguido transformamos as d´uas matrices cartesianas a matrices no espazo log-polar. Para iso definimos unha nova matriz do tama˜no da escala elixida para a log-polar, tipicamente ´e N/2 sendo N·No tama˜no da imaxe orixinal. Buscamos o punto central da imaxe que chamaremos (centrox, centroy). A continuaci´on imos recorrendo a nova matriz, e por canda punto imos colocando o valor que lle corresponde despois de mapear a coordenada polar ´a coordenada cartesiana. Interpolamos segundo a opci´on escollida pois este proxecto implementa a interpolaci´on por proximidade, bilineal e bic´ubica. Para realizar o mapeo, por cada fila que recorremos da nova matriz calculamos o eixo ρcorrespondente a esa fila, en outras palabras, calculamos a li˜na radial na que estamos e que se mapea como unha fila na matriz (ver Figura 6.2). Por cada columna definimos o θcorrespondente o cal est´a entre 0oe 360odependendo do tama˜no de resoluci´on da log-polar. Para calcular θbasta con facer 2π/angle; onde angle ´e o n´umero de columnas da matriz log-polar. Unha vez sabido isto, obtemos os puntos cartesianos correspondentes a esas coordenadas log-polar da seguinte maneira: x=ρ·cos(θ) + centrox−1 y=ρ·sen(θ) + centroy−1.(6.30) Logo realizamos a correlaci´on cruzada coas d´uas matrices da transformaci´on log-polar segundo a Ecuaci´on (6.16). Esta basicamente div´ıdese nos seguintes pasos: Realizar a FFT. Realizar a correlaci´on cruzada. Recorremos unha nova matriz do mesmo tama˜no que as d´uas resultantes da log-polar (cham´emoslle XeY) e en cada posici´on desta nova matriz calculamos X(x,y)Y∗(x,y) |X(x,y)Y(x,y)|. Realizar a Transformada Inversa de Fourier (IFFT). Na matriz resultante de computar a correlaci´on cruzada ordenamos os seus valores de menor a maior para as´ı poder iterar entre os diferentes picos m´aximos. Para isto decidiuse empregar o M´etodo de Ordenamento R´apido (quicksort), baseado na t´ecnica divide e vencer´as e que ´e actualmente un dos m´etodos m´ais eficientes e r´apidos de ordenaci´on interna. O funcionamento ´e sinxelo: Escollemos un elemento da lista a ordenar que lle chamaremos pivote. Recolocamos os elementos da lista a cada lado do pivote de xeito que os menores queden a s´ua esquerda e os maiores a s´ua dereita.
6.2. ALGORITMO BASEADO NA FFT 113 A lista queda dividida en d´uas sublistas, a da esquerda cos elementos menores que o pivote e a da dereita cos maiores. Repetimos o proceso para cada unha das sublistas ata que esta conte˜na m´ais de un elemento. A complexidade media de quicksort para unha ordenaci´on de nelementos ´e de O(nlog n), isto depende do pivote escollido. Unha vez ordenada a matriz resultante da correlaci´on escollemos o pico m´aximo e base´andonos nas coordenadas da s´ua posici´on orixinal antes da ordenaci´on achamos a escala e a rotaci´on. Sendo estas coordenadas (i, j) o factor de escalado ´e achado a partir da posici´on ie o ´angulo de rotaci´on proporci´onalo a posici´on j. Coa escala e a rotaci´on atopados pasamos a achar o desprazamento. Como xa se dixo e demostrou na Ecuaci´on (6.27) este non pode ser calculado a partir da log-polar. Ent´on, escalamos imaxe a rexistrar de acordo co factor de escala obtido e rot´amola co ´angulo de rotaci´on atopado e co ´angulo+180o. Deste xeito poderemos discernir se o rotado se trata de 0-180oou de 180o-360o. A continuaci´on volvemos realizar a correlaci´on cruzada. Unha primeira correlaci´on coa imaxe de referencia e a imaxe a rexistrar escalada e rotada co ´angulo, e unha segunda coa imaxe de referencia tam´en e a imaxe a rexistrar escalada e rotada co ´angulo+180o. De seguido buscamos os picos m´aximos de ambas matrices resultantes e qued´amonos co maior dos dous. O pico da imaxe escollida, ademais do desprazamento, diranos se a rotaci´on ´e de ´angulo+180oou do ´angulo. O desprazamento obtense das coordenadas do pico m´aximo. Calculado o desprazamento, apl´ıcaselle a imaxe rotada e/ou escalada escollida obtendo as´ı a imaxe rexistrada. En resumidas contas, o algoritmo ´e o seguinte: 1. Cargar a imaxe de referencia e a imaxe a rexistrar. 2. Aplicar t´ecnica de extracci´on de caracter´ısticas a ambas imaxes. 3. Realizar a FFT a ambas imaxes. 4. Centrar a FFT (fftshift) en ambas imaxes. 5. Multiplicar pola funci´on do filtro en ambas imaxes. 6. Realizar a transformada Log-Polar en ambas imaxes. 7. Realizar a correlaci´on cruzada (Enumeraci´on 6.2.3) coas matrices resultantes da transformada Log-Polar.
114 CAP´ ITULO 6. IMPLEMENTACI ´ ON 8. Ordenar de menor a maior (ou de maior a menor) os valores da matriz resultante da correlaci´on. 9. Escollemos o pico m´aximo (ou picos posteriores a este se se decide analizar varios picos) e achamos o ´angulo de rotaci´on e o factor de escalado a partir das s´uas coordenadas. 10. Escalamos e/ou rotamos a imaxe a rexistrar d´uas veces: coa escala obtida e co ´angulo obtido e coa escala obtida e o ´angulo+180o. 11. Realizamos d´uas correlaci´ons cruzadas con cada matriz do paso anterior e coa imaxe de referencia orixinal. 12. Buscamos o pico m´aximo das d´uas matrices do punto anterior, qued´andonos co maior dos dous que ser´a o que coas s´uas coordenadas obte˜namos o desprazamento e nos permita discernir de que ´angulo se trata(´angulo ou ´angulo+180o). 13. Rotamos, escalados e desprazamos a imaxe a rexistrar cos datos achados mediante o algoritmo. Cabe aclarar que o algoritmo pode contar de varias iteraci´ons do punto 9 ao 12 dependendo do n´umero de picos que queiramos avaliar. En determinados casos p´odese dar que o pico m´aximo non ´e o correcto que nos proporcionar´a a rotaci´on e o escalado acertado, pudendo ser este un pico posterior. 6.3. Algoritmo gradientes Co fin de mellorar a precisi´on e a robustez do anterior algoritmo proponse realizar o rexistrado sobre un gradiente [33] en vez de traballar directamente coas imaxes de entrada. Ao traballar sobre imaxes cos bordes remarcados (froito do gradiente) obtense unha transformada Log-Polar m´ais robusta e precisa evitando os problemas de ru´ıdo, erros de interpolaci´on, aliasing e efectos de borde tan com´uns nas imaxes. A ra´ız disto tam´en aumenta a exactitude do c´alculo con imaxes reais que puideron sufrir outro tipo de distorsi´ons debido a lente da c´amara coa que foron tomadas. Por outra parte, tam´en se prop´on o uso de gradientes na realizaci´on da correlaci´on cruzada. Isto permite normalizar os posibles picos err´oneos que se poden obter neste proceso pudendo afinar m´ais no achado do ´angulo e do escalado correctos as´ı como na normalizaci´on. Vistas as melloras inclu´ıdas que poder´ıan aportar ao algoritmo procedeuse a implementalo para imaxes unidimensionais.
6.3. ALGORITMO GRADIENTES 115 O gradiente proposto ´e o seguinte, Gi=Gi(x) + j Gi(y) (6.31) sendo i= 1 cando se trata da imaxe de referencia, e i=2 cando falamos da imaxe a rexistrar. Por outra banda a correlaci´on cruzada baseada en gradientes def´ınese do seguinte xeito NGC(u),G1(u)? G∗ 2(−u) |G1(u)|?|G∗ 2(−u)|.(6.32) Finalmente o algoritmo quedar´ıa da seguinte maneira, onde se marcan os novos (ou os cambiantes) pasos en negri˜na, 1. Cargar a imaxe de referencia e a imaxe a rexistrar. 2. Aplicar t´ecnica de extracci´on de caracter´ısticas a ambas imaxes. 3. Realizar o gradiente (Ecuaci´on 6.31) proposto a ambas imaxes. 4. Realizar a FFT dos dous anteriores gradientes. 5. Centrar as FFT (fftshift) do paso anterior. 6. Multiplicar pola funci´on do filtro os conxuntos de datos do paso anterior. 7. Realizar a transformada Log-Polar nos conxuntos de datos do paso anterior. 8. Realizar a correlaci´on cruzada baseada en gradientes (Ecuaci´on 6.32) coas matrices resultantes da transformada Log-Polar. 9. Ordenar de menor a maior (ou de maior a menor) os valores da matriz resultante da correlaci´on. 10. Escollemos o pico m´aximo (ou picos posteriores a este se se decide analizar varios picos) e achamos o ´angulo de rotaci´on e o factor de escalado a partir das s´uas coordenadas. 11. Escalamos e/ou rotamos a imaxe a rexistrar d´uas veces: coa escala obtida e co ´angulo obtido e coa escala obtida e o ´angulo+180o. 12. Realizamos d´uas correlaci´ons cruzadas baseadas en gradientes (Ecuaci´on 6.32) con cada matriz do paso anterior e coa imaxe de referencia orixinal. 13. Buscamos o pico m´aximo das d´uas matrices do punto anterior, qued´andonos co maior dos dous que ser´a o que coas s´uas coordenadas obte˜namos o desprazamento e nos permita discernir de que ´angulo se trata(´angulo ou ´angulo+180o).
116 CAP´ ITULO 6. IMPLEMENTACI ´ ON 14. Rotamos, escalados e desprazamos a imaxe a rexistrar cos datos achados mediante o algoritmo. Tras diversas probas p´uidose comprobar que estes cambios propostos non melloran o rexistrado e ´e polo que se desbotou este algoritmo. Finalmente qued´amonos co algoritmo de 13 pasos descrito na Secci´on 6.2. Falarase m´ais a fondo disto no Cap´ıtulo 7 adicado as probas. 6.4. Algoritmo MLFFT Como xa se dixo existen diversos factores que non garanten unha mellor precisi´on a hora de achar o ´angulo de rotaci´on e o factor de escala no primeiro algoritmo proposto neste traballo. Por unha parte estase calculando a Tranformada de Fourier mediante unha Transformada de Fourier Discreta (DFT), mais concretamente mediante o algoritmo da Transformada R´apida de Fourier (FFT). Isto ´e as´ı debido as limitaci´ons computacionais actuais para poder calcular a Transformada Infinita. A´ında que este erro de c´alculo ´e obvio non debemos esquecernos del e telo en conta a hora de mellorar o algoritmo. Existen fundamentalmente catro factores que lle afectan gravemente a calquera m´etodo de rexistrado de imaxes mediante a FFT [34]: o aliasing producido coas imaxes que conte˜nen rotaci´on ao empregar a aproximaci´on DFT, o overlapping producido nas imaxes escaladas, os erros de interporlaci´on e outros erros: cambios de perspectiva, distorsi´ons froito da c´amara coa que foron tomadas as imaxes, etc. Oaliasing e o overlapping son cr´ıticos a hora de rexistrar as imaxes e son dif´ıciles de evitar. Por outra parte tampouco podemos afirmar que as imaxes obtidas cunha c´amara estean libres deste tipo de distorsi´ons e moito menos doutras diferentes. Estes erros l´evanos a que a hora de escoller o pico m´aximo despois da correlaci´on calculada para achar a rotaci´on e o escalado sexa posiblemente incorrecto, debido a que estamos escollendo un pico falso, obtendo polo tanto un ´angulo e unha escala non real. Nestes casos normalmente o correcto ´e alg´un pico posterior a ese, falando sempre de que os picos est´an ordenados de maior a menor. A fin de reducir estes erros producidos por usar unha aproximaci´on da Transformada de Fourier e que fan que se escolla un pico err´oneo proponse a Transformada de Fourier Fraccional Multicapa (MLFFT) [35]. Esta consiste, a modo resume, en calcular diferentes FFT con maior resoluci´on en zonas da imaxe, chamadas capas. A partir destas capas constr´uese unha nova transformada logpolar que ao realizarse a partir de Transformadas de Fourier con maior resoluci´on
6.4. ALGORITMO MLFFT 117 ent´endese que dar´an lugar a unha grella log-polar con menor erro e m´ais precisi´on, polo que a probabilidade de escoller un pico m´aximo incorrecto ´e menor. Imos ver isto m´ais a fondo. Lembramos que a DFT ben definida pola seguinte ecuaci´on F(ejω) = N−1 X n=0 f(n)e−jωn (6.33) onde 0 ≤ω≤2π. Supo˜namos 0 ≤k≤Ne reescribimos, F(k) = N−1 X n=0 f(n)e−j2πk Nn(6.34) onde knon ´e un enteiro e F(k) ´e o valor da FFT. Base´andonos nesta ecuaci´on, a Tranformada de Fourier Fraccional(MLFFT) def´ınese como Fα(k) = N−1 X n=0 f(n)e−j2πk Nαn (6.35) onde se introduce un novo par´ametro (α) con respecto a Ecuaci´on (6.34). Se centramos a MLFFT, para un vector f=f(x),−N/2≤x≤N/2 esta ben definida pola seguinte ecuaci´on [35]: Fα(k) = N/2 X n=−N/2 f(n)e−j2πk N+1 αn,(−N/2≤k≤N/2),(6.36) onde: Se α= 1, a Transformada de Fourier Fraccional (FRFT) coincide coa FFT, as´ı que obtemos os N+ 1 frecuencias distribu´ıdos uniformemente en −π≤ ω≤πno dominio da frecuencia. Se 0 < α < 1, a FRFT dev´olvenos as N+ 1 frecuencias distribu´ıdos uniformemente en −απ ≤ω≤απ no dominio da frecuencia. Para calcular a FRFT 2D basta con aplicar a Ecuaci´on (6.36) primeiro por cada fila e despois por cada columna. A precisi´on do algoritmo MLFFT depende de dous par´ametros que son elecci´on do usuario: o n´umero de capas e a resoluci´on de cada unha delas. O n´umero de capas ben definido por LCAPA =L, L ≥1.(6.37)
118 CAP´ ITULO 6. IMPLEMENTACI ´ ON Figura 6.3: As diferentes capas/grellas dunha MLFFT con {Resoluci´on}= {0.1; 0.6; 1.0}(a) Capa P1, (b) Capa P2, (c) Capa P3, (d) Uni´on de capas (P) (tomado de [35]) E a resoluci´on de cada unha das capas ben determinado polo seguinte conxunto cuxa cardinalidade ´e igual ao n´umero de capas, {Resoluci´on}=αi; 0 < α1< α2< ... < αL−1< αL= 1.(6.38) Ent´on, dada unha LCAPA e un conxunto {Resoluci´on}definimos a grella desa capa como Pi= (αiu, αiv),−N/2≤u, v ≤N/2, αi∈ {Resoluci´on},1≤i≤LCAPA.(6.39) Finalmente a grella conformada por todas as capas def´ınese como a uni´on de todas elas, A= LCAP A [ i=1 Pi.(6.40) Podemos ver de maneira gr´afica as diferentes grellas ou capas e a uni´on de todas elas na Figura 6.3 Isto foi traducido a c´odigo da seguinte maneira. O usuario define na configuraci´on mediante unha variable o n´umero de capas que quere empregar, e a continuaci´on define un vector onde se indica a resoluci´on para cada unha das capas de menor a maior separaci´on entre valores (α). O ´ultimo valor deste vector, como se definiu na Ecuaci´on (6.38), debe ser 1.0 que ´e a realizaci´on da propia
6.4. ALGORITMO MLFFT 119 FFT que coincide coa MLFFT con α= 1. Un exemplo ´e o seguinte, se temos L= 3 un vector exemplo poder´ıa ser vector = 0,25; 0,75; 1,0. Implementouse a MLFFT 1D segundo a Ecuaci´on (6.35), aplic´andoa primeiro por filas e logo por columnas a unha imaxe 2D. Calc´ulanse todas a MLFFT de cada capa. T´ıvose tam´en que modificar a anterior transformada log-polar para agora xerar a s´ua grella con todas as capas collendo as frecuencias das capas onde apareza cada valor con maior resoluci´on e polo tanto menor erro de interpolaci´on. Noutras palabras, cando se calcula a Log-Polar obtemos unha coordenada cartesiana por cada coordenada log-polar cuxo valor queremos obter, ´e neste punto cando esta coordenada cartesiana se debe mapear para ver dentro de que capa cae, comezando como ´e l´oxico na m´ais pequena (maior resoluci´on). Estes cambios son f´aciles de introducir no algoritmo xa existente, basta con cambiar o m´odulo onde se realizaba FFT polo m´odulo da MLFFT e o m´odulo onde se realizaba a transformada Log-Polar pola nova transformada Log-Polar a partir das capas MLFFT. En resumidas contas, o algoritmo queda da seguinte maneira: 1. Cargar a imaxe de referencia e a imaxe a rexistrar. 2. Aplicar t´ecnica de extracci´on de caracter´ısticas a ambas imaxes. 3. Realizar a FFT a ambas imaxes. 4. Centrar a FFT (fftshift) en ambas imaxes. 5. Multiplicar pola funci´on do filtro sobre os dous conxuntos de datos do paso anterior. 6. Descentrar as frecuencias (ifftshift) sobre os dous conxuntos de datos do paso anterior. 7. Realizar a Transformada de Fourier Inversa (IFFT) sobre os dous conxuntos de datos do paso anterior. 8. Realizar a FRFT centrada nas diferentes capas coa s´ua resoluci´on determinada polo usuario como un par´ametro de entrada no dous conxuntos de datos do paso anterior. 9. Realizar a transformada Log-Polar MLFFT a partir das diferentes capas FRFT de cada unha das imaxes. 10. Realizar a correlaci´on cruzada (Enumeraci´on 6.2.3) coas matrices resultantes da transformada Log-Polar.
126 CAP´ ITULO 7. VALIDACI ´ ON E PROBAS Valores orixinais Media das tres primeiras bandas PCA Media de todas as bandas PCA Primeira banda PCA ´ Angulo de rotaci´on Factor de escala ´ Angulo de rotaci´on Factor de escala ´ Angulo de rotaci´on Factor de escala ´ Angulo de rotaci´on Factor de escala 0.0 3.0 0.00 3.00 0.00 3.00 0.00 3.00 45.0 3.0 45.00 3.00 45.00 3.00 45.00 3.00 90.0 3.0 90.00 3.00 90.00 3.00 90.00 3.00 135.0 3.0 135.00 3.00 135.00 3.00 135.00 3.00 180.0 3.0 180.00 3.00 180.00 3.00 180.00 3.00 225.0 3.0 225.00 3.00 225.00 3.00 225.00 3.00 270.0 3.0 270.00 3.00 270.00 3.00 270.00 3.00 315.0 3.0 315.00 3.00 315.00 3.00 315.00 3.00 0.0 3.5 0.00 3.52 0.00 3.52 0.00 3.52 45.0 3.5 45.00 3.52 45.00 3.52 45.00 3.52 90.0 3.5 90.00 3.52 90.00 3.52 90.00 3.52 135.0 3.5 135.00 3.52 29.53 1.28 135.00 3.52 180.0 3.5 180.00 3.52 180.00 3.47 180.00 3.52 225.0 3.5 225.00 3.52 225.00 3.52 225.00 3.52 270.0 3.5 270.00 3.52 270.00 3.52 270.00 3.52 315.0 3.5 315.00 3.52 210.23 1.37 315.00 3.52 Cadro 7.3: Resultados das probas de rexistrado con media das tres primeiras bandas PCA, con media de todas as bandas PCA e coa primeira banda PCA para factores de escala de 3.0 e 3.5. Valores orixinais Promedio das tres primeiras bandas PCA Primeira banda PCA ´ Angulo de rotaci´on Factor de escala ´ Angulo de rotaci´on Factor de escala ´ Angulo de rotaci´on Factor de escala 0.0 4.0 359.30 3.97 0.00 4.02 45.0 4.0 45.00 4.02 45.00 4.02 90.0 4.0 90.00 3.97 90.00 3.97 135.0 4.0 180.70 1.00 208.12 0.66 180.0 4.0 179.30 3.97 180.00 4.02 225.0 4.0 225.00 4.02 225.00 4.02 270.0 4.0 270.00 3.97 270.00 3.97 315.0 4.0 179.30 0.86 28.12 0.66 Cadro 7.4: Resultados das probas de rexistrado con media das tres primeiras bandas PCA e coa primeira banda PCA para un factor de escala 4.0.
7.2. T´ ECNICAS DE REDUCI ´ ON DE DIMENSIONALIDADE 127 rexistrado correctamente. Como podemos ver nos cadros 7.1 e 7.2 ´e indiferente a quen lle aplicamos o gradiente vectorial ou RCMG se ´as bandas da imaxe directamente ou ´as bandas PCA da imaxe pois os resultados non var´ıan, fallan nos mesmos casos. Observamos tam´en que o gradiente RCMG aporta mellores resultados que o vectorial xa que acerta 6 casos fronte a 4 do vectorial. Isto est´a dentro do agardado pois o gradiente RCMG ´e unha t´ecnica m´ais avanzada como xa se explicou no Cap´ıtulo 6. En resumidas contas, o gradiente RCMG aporta mellores resultados que o vectorial mais ning´un dos dous realiza o conxunto de probas para o factor de escala 3.0 con ´exito. Por outro lado no Cadro 7.3 am´osanse os resultados de aplicar o rexistrado sobre o c´alculo das compo˜nentes principais da imaxe, non sobre gradientes como no anterior descrito. As t´ecnicas escollidas foron: a media das tres primeiras bandas PCA, pois como xa se dixo son as primeiras bandas as que adoitan concentrar toda a informaci´on sendo as derradeiras bandas ru´ıdo; a media de todas as bandas PCA e a primeira banda PCA. Neste caso a bater´ıa de probas para un factor de escala 3.0 foron cumpridas con ´exito coas tres t´ecnicas ´e por iso que se realizaron tam´en as probas con factor de escala 3.5. Con factor de escala 3.5 vemos que para o caso da media das tres primeiras bandas PCA e para o caso da primeira banda PCA v´olvense conseguir con ´exito todas as probas mais no caso da media de todas as bandas PCA fallan 2 probas de 8 realizadas. S´eguese pois probando coas d´uas t´ecnicas notables, tres primeiras bandas PCA e primeira banda PCA, desta vez con un factor de escala de 4. Os resultados desta proba son os que se amosan no Cadro 7.4 onde podemos ver que para ambas t´ecnicas fallan os dous mesmos ´angulos, 135oe 315o. Podemos conclu´ır ent´on que as mellores t´ecnicas de reduci´on de dimensionalidade e extracci´on de caracter´ısticas das aqu´ı desenvolvidas de cara o seu uso no rexistrado son a primeira banda PCA e a realizaci´on da media das tres primeiras bandas PCA. Vemos tam´en que realizar o rexistrado sobre a media das tres primeiras bandas PCA da imaxe se obte˜nen os mesmos resultados que realiz´andoos sobre a primeira banda PCA. Como xa se dixo, no m´odulo de HypeRvieW (interface gr´afica) s´o se integrar´an as mellores soluci´ons para as´ı obter unha mellor usabilidade de cara o usuario final. ´ E por isto que se incorporar´a soamente a opci´on de empregar a primeira banda PCA, pois acabamos de ver que realizala media das tres primeiras bandas PCA aporta os mesmos resultados. A outra opci´on que se incluir´a ser´a a media de todas as bandas PCA, pois foi a outra t´ecnica coa que se conseguiron bos resultados e tense observado que en imaxes cunha peor resoluci´on espacial (a distancia real que representa cada p´ıxel ´e maior) e con menor tama˜no se obte˜nen
128 CAP´ ITULO 7. VALIDACI ´ ON E PROBAS mellores resultados que empregando s´o a primeira banda PCA. 7.3. Algoritmos Neste traballo foron desenvolvidos tres algoritmos de rexistrado baseados na Transformada de Fourier: primeiro algoritmo ou Fourier-Mellin (de aqu´ı en diante algoritmo FFT), algoritmo gradientes e o algoritmo MLFFT, onde os ´ultimos base´aronse no primeiro introduc´ındolle melloras. ´ E preciso ent´on analizar e concretar cal deles ´e o m´ais eficiente e exacto de cara o seu uso con imaxes hiperespectrais e tam´en co˜necer as magnitudes de estes perfeccionamentos. Probaremos con cada algoritmo o rexistrado das tres imaxes hiperespectrais presentadas neste cap´ıtulo (Universidade de Pavia, centro de Pavia e val de Salinas). Para elo, escalaremos e rotaremos a imaxe cun factor de escala e ´angulo co˜necido e intentaremos rexistrar a imaxe resultante coa orixinal. Os factores de escala probados comezan en 0.5 con un paso de 0.5 e finalizar´an cando se detecte que o algoritmo comeza a non acertar o factor de escala en grandes porcentaxes. Con cada factor de escala escollido probaranse ´angulos de rotaci´on dende 0o(sen rotaci´on) ata 355ocun paso de 5o. Noutras palabras, comezaremos probando un factor de escala de 0.5 cos ´angulos 0o, 5o, 10o, ... 355o, seguiremos cun factor de escala 1 cos ´angulos 0o, 5o, 10o, ... 355o, as´ı ata que o algoritmo comece a fallar. Aplicaremos o rexistrado sobre a primeira banda PCA das imaxes, pois como se veu no apartado anterior ´e a t´ecnica de reduci´on de dimensionalidade e extracci´on de caracter´ısticas principais coa que se obte˜nen mellores resultados. Avaliaremos como nas probas anteriores 50 picos e empregaremos tam´en a interpolaci´on bic´ubica no c´alculo da log-polar e nos rotados e escalados. Pres´entanse ent´on os resultados das probas. O algoritmo que aplica gradientes foi desbotado debido a que ´e incapaz de achar os valores de ali˜namento en probas moi simples, ´e dicir, p´odese afirmar que non funciona do xeito no que o afirman os seus artigos [33][38]. Para a imaxe hiperespectral da Universidade de Pavia cons´eguese achar todos os ´angulos ata un factor de escala de 3.5 tanto co algoritmo FFT como co algoritmo MLFFT. Con un factor de 4.0 obt´e˜nense bos resultados no 54,74 % dos casos mediante o algoritmo FFT e nun 65.28 % dos casos mediante o algoritmo MLFFT. Para a imaxe do centro de Pavia os resultados son mellores debido a que ten maiores dimensi´ons. Tanto co algoritmo FFT como co MLFFT ch´egase a achar todos os ´angulos de rotaci´on das probas ata un factor de escala de 5.5. Con un factor de escala de 6, o algoritmo FFT acepta no 65.28 % dos casos mentres que o algoritmo MLFFT no 66.67 % dos casos. Podemos ver esta informaci´on resumida
7.4. PROBAS CON RU´ IDO BRANCO 129 Algoritmo FFT Algoritmo MLFFT Universidade de Pavia Centro de Pavia Universidade de Pavia Centro de Pavia Factor de escala conseguido con calquera rotaci´on 3.5 5.5 3.5 5.5 Porcentaxe de acerto no seguinte factor de escala 54.17 % 65.28 % 72.22 % 66.67 % Cadro 7.5: Resultados das probas de rexistrado co algoritmo FFT e MLFFT para as imaxes da Universidade e do centro de Pavia. no Cadro 7.5. Os resultados para a imaxe hiperespectral do val de Salinas p´odense ver no Cadro 7.6. Neste caso avaliamos os resultado dunha forma diferente que os das imaxes obtidas co sensor ROSIS. Debido a s´ua baixa resoluci´on espacial onde cada p´ıxel representa 3.7 metros da superficie terrestre e as s´uas pequenas dimensi´ons, os resultados de rexistrado son peores que nos anteriores casos. No Cadro 7.6 p´odese ver, igual que nas anteriores imaxes, que a mellor soluci´on ´e o uso do algoritmo MLFFT chegando a haber neste caso unha diferenza de m´ais dun 50 % de acertos nalg´uns factores de escala. Porcentaxe de acerto das probas con diferentes ´angulos Factor de escala Algoritmo FFT Algoritmo MLFFT 0.5 8.33 % 59.72 % 148.61 % 91.67 % 1.5 41.67 % 72.22 % 241.67 % 73.61 % 2.5 37.50 % 61.11 % Cadro 7.6: Resultados das probas de rexistrado co algoritmo FFT e MLFFT para a imaxe do val de Salinas. Podemos conclu´ır e confirmar que o mellor algoritmo de rexistrado para imaxes hiperespectrais ´e o algoritmo MLFFT que incorpora a Transformada Fraccional de Fourier, aplicado sobre a primeira banda PCA. 7.4. Probas con ru´ıdo branco Para probar a eficiencia do m´etodo de rexistrado desenvolvido engad´ıuselle diferentes niveis de ru´ıdo branco gaussiano ´a imaxe que se pretende rexistrar.
130 CAP´ ITULO 7. VALIDACI ´ ON E PROBAS Noutras palabras, a imaxe de referencia non se modifica sen embargo antes de xerar (rotar, escalar e desprazar) a imaxe que imos ali˜nar respecto da de referencia v´aiselle engadir unha certa cantidade de ru´ıdo branco. O ru´ıdo branco ´e unha sinal aleatoria que se caracteriza porque os seus valores en instantes diferentes de tempo non te˜nen relaci´on entre si. O ru´ıdo branco gaussiano ´e aquel cuxa funci´on de densidade segue unha distribuci´on normal. Este tipo de ru´ıdo ´e o que te˜nen as imaxes hiperespectrais [39] como consecuencia dos defectos dos sensores, interferencias ambientais, etc´etera. Por cada p´ıxel e en cada compo˜nente espectral introducir´aselle ´a imaxe que queremos rexistrar un valor diferente deste tipo de ru´ıdo. Nestas probas intentaremos rexistrar a imaxe da Universidade de Pavia con diferentes niveis PSNR de ru´ıdo: 10dB, 16dB e 20dB. A relaci´on sinal a ru´ıdo pico (PSNR) ´e un termo que define a relaci´on entre a m´axima enerx´ıa posible dunha sinal e o ru´ıdo que afecta a s´ua representaci´on orixinal (sen ru´ıdo). Def´ınese da seguinte forma, PSNR = 10 ·log10 max [r(x, y, z)]2 1 B·V·H· B−1 P z=0 V−1 P x=0 H−1 P y=0 [r(x, y, z)−t(x, y, z)]2 (7.1) onde r´e a imaxe fidedigna sen ru´ıdo, ta imaxe con ru´ıdo, Bo n´umero de bandas, Vo n´umero de filas e Ho n´umero de columnas. Na Figura 7.4 p´odese ver de xeito gr´afico a cantidade de ru´ıdo introducida nas probas en cada unha das bandas da imaxe. Empregaremos o algoritmo MLFFT sobre a primeira banda PCA das imaxes avaliando 50 picos e con interpolaci´on bic´ubica. En cada nivel de ru´ıdo probarase a rexistrar a imaxe da Universidade de Pavia aplic´andolle un factor de escala e un ´angulo co˜necido. Os factores de escala probados comezan en 0.5 con un paso de 0.5 e finalizar´an nun factor de 4, que ´e o m´aximo detectado para esta imaxe como se veu na secci´on anterior. Con cada factor de escala escollido probaranse ´angulos de rotaci´on dende 0o(sen rotaci´on) ata 355ocun paso de 5o, como nas probas da secci´on anterior. Os resultados achados p´odense ver no Cadro 7.7. Neste am´osase a porcentaxe de casos de rexistrado conseguidos correctamente dentro de cada factor de escala. En cada factor de escala estanse realizando, como xa se dixo, 72 probas de rexistrado con ese factor de escala e un ´angulo diferente de cada vez. O cadro comeza no factor de escala 3 porque para os anteriores valores (0.5, 1.0, ... 2.5) real´ızase o rexistrado correctamente para todos os casos con calquera dos niveis
7.5. M ´ ODULO INTERFACE GR ´ AFICA 131 Figura 7.4: Imaxe da Universidade de Pavia. a) Banda 3 orixinal. b) Banda 3 con 20dB de ru´ıdo branco gaussiano. c) Banda 3 con 16dB de ru´ıdo branco gaussiano. d) Banda 3 con 10dB de ru´ıdo branco gaussiano. de ru´ıdo probados. Como vemos nos resultados o algoritmo ´e tolerante a ru´ıdo ata certo factor de escala onde a eficiencia de este dimin´ue. Isto poder´ıa solucionarse facilmente engadindo un proceso de filtrado de ru´ıdo antes de realizalo rexistrado. Escala/Ru´ıdo 20dB 16dB 10dB 3100 % 100 % 84.72 % 3.5 94.44 % 79.17 % 34.72 % 447.22 % 33.33 % 5.56 % Cadro 7.7: Resume dos resultados das probas con ru´ıdo. As porcentaxes indican a porcentaxe de rexistrados achados correctamente dentro de cada bater´ıa de probas (72 ´angulos con cada factor de escala). 7.5. M´odulo interface gr´afica Nesta secci´on exp´o˜nense as probas dese˜nadas que debe superar o m´odulo de rexistrado realizado para o programa HypeRvieW. No Cadro 7.8 especif´ıcanse as probas co seu resultado agardado e cal foi o seu resultado. O campo resultado pode ter os seguintes valores: non funciona, funciona correctamente e funciona pero non ´e de todo correcto.
132 CAP´ ITULO 7. VALIDACI ´ ON E PROBAS Figura 7.5: Rexistrado coa imaxe da Universidade de Pavia. a) Imaxe de referencia. b) Imaxe a rexistrar. Xerada a partir da de referencia (factor de escala 2 e ´angulo de rotaci´on 90o). c) Resultado do rexistrado. d) Resultado superposto na imaxe de referencia. Figura 7.6: Rexistrado coa imaxe do centro de Pavia. a) Imaxe de referencia. b) Imaxe a rexistrar. Xerada a partir da de referencia (factor de escala 5.5, ´angulo de rotaci´on 45oe desprazamento no eixo xeyde 50 p´ıxeles). c) Resultado do rexistrado. d) Resultado superposto na imaxe de referencia.
7.5. M ´ ODULO INTERFACE GR ´ AFICA 133 Ident. Descrici´on Proba Resultado agardado Resultado PR-01 Rexistrar unha imaxe co algoritmo FFT. Acceso ´a aplicaci´on. P´ulsase sobre o bot´on de abrir unha imaxe hiperespectral. ´ Abrese a imaxe da Universidade de Pavia. Especif´ıcanse os datos de tama˜no da imaxe, tama˜no, tipo e formato dos datos. P´ulsase sobre o bot´on de configuraci´on. Eng´adese oplugin “librexistrado”. Seleccionase dito plugin e p´ulsase sobre o bot´on Par´ametros. Seleccionase o algoritmo FFT e o resto de valores quedan os que ve˜nen por defecto (´angulo 0o, factor de escala 2 e desprazamento (0,0)). P´ulsase sobre o bot´on Guardar e despois sobre o bot´on OK. P´ulsase sobre o bot´on de Execuci´on de procesado. Apertura dunha nova v´entana onde se especifique o resultado do rexistrado numericamente e graficamente. Imaxe rexistrada en formato RAW e PGM na carpeta “outputs”. ´ Angulo 0o, factor de escala 2 e desprazamento (0,0). Funciona correctamente PR-02 Rexistrar unha imaxe co algoritmo MLFFT. Acceso ´a aplicaci´on. P´ulsase sobre o bot´on de abrir unha imaxe hiperespectral. ´ Abrese a imaxe da Universidade de Pavia. Especif´ıcanse os datos de tama˜no da imaxe, tama˜no, tipo e formato dos datos. P´ulsase sobre o bot´on de configuraci´on. Eng´adese oplugin “librexistrado”. Seleccionase dito plugin e p´ulsase sobre o bot´on Par´ametros. Seleccionase o algoritmo MLFFT, especif´ıcase o ´angulo de rotaci´on de 90oe o resto de valores quedan os que ve˜nen por defecto (factor de escala 2 e desprazamento (0,0)). P´ulsase sobre o bot´on Guardar e despois sobre o bot´on OK. P´ulsase sobre o bot´on de Execuci´on de procesado. Apertura dunha nova v´entana onde se especifique o resultado do rexistrado numericamente e graficamente. Imaxe rexistrada en formato RAW e PGM na carpeta “outputs”. ´ Angulo 90o, factor de escala 2 e desprazamento (0,0). Funciona correctamente (Figura 7.5) PR-03 Rexistrar unha imaxe seleccionando como t´ecnica de reduci´on que non se aplique ningunha. Acceso ´a aplicaci´on. P´ulsase sobre o bot´on de abrir unha imaxe hiperespectral. ´ Abrese a imaxe da Universidade de Pavia. Especif´ıcanse os datos de tama˜no da imaxe, tama˜no, tipo e formato dos datos. P´ulsase sobre o bot´on de configuraci´on. Eng´adese oplugin “librexistrado”. Seleccionase dito plugin e p´ulsase sobre o bot´on Par´ametros. Seleccionase como t´ecnica de reduci´on “Ningunha”, factor de escala 1, ´angulo 45 e o resto de valores quedan os que ve˜nen por defecto. P´ulsase sobre o bot´on Guardar e despois sobre o bot´on OK. P´ulsase sobre o bot´on de Execuci´on de procesado. Apertura dunha nova v´entana onde se especifique o resultado do rexistrado numericamente e graficamente. Imaxe rexistrada en formato RAW e PGM na carpeta “outputs”. Obtense un ´angulo, factor de escala e desprazamento que non son correctos debido a realizalo rexistrado sobre unha ´unica banda orixinal. Funciona correctamente
134 CAP´ ITULO 7. VALIDACI ´ ON E PROBAS Ident. Descrici´on Proba Resultado agardado Resultado PR-04 Rexistrar unha imaxe seleccionando como t´ecnica de reduci´on a media de todas as bandas PCA. Acceso ´a aplicaci´on. P´ulsase sobre o bot´on de abrir unha imaxe hiperespectral. ´ Abrese a imaxe da Universidade de Pavia. Especif´ıcanse os datos de tama˜no da imaxe, tama˜no, tipo e formato dos datos. P´ulsase sobre o bot´on de configuraci´on. Eng´adese oplugin “librexistrado”. Seleccionase dito plugin e p´ulsase sobre o bot´on Par´ametros. Seleccionase como t´ecnica de reduci´on “Media de todas as PCA”, factor de escala 2, ´angulo 90 e o resto de valores quedan os que ve˜nen por defecto. P´ulsase sobre o bot´on Guardar e despois sobre o bot´on OK. P´ulsase sobre o bot´on de Execuci´on de procesado. Apertura dunha nova v´entana onde se especifique o resultado do rexistrado numericamente e graficamente. Imaxe rexistrada en formato RAW e PGM na carpeta “outputs”. ´ Angulo 90o, factor de escala 2 e desprazamento (0,0). Funciona correctamente PR-05 Rexistrar unha imaxe seleccionando como t´ecnica de reduci´on a primeira banda PCA. Acceso ´a aplicaci´on. P´ulsase sobre o bot´on de abrir unha imaxe hiperespectral. ´ Abrese a imaxe do centro de Pavia. Especif´ıcanse os datos de tama˜no da imaxe, tama˜no, tipo e formato dos datos. P´ulsase sobre o bot´on de configuraci´on. Eng´adese o plugin “librexistrado”. Seleccionase dito plugin e p´ulsase sobre o bot´on Par´ametros. Seleccionase como t´ecnica de reduci´on “Primeira banda PCA”, factor de escala 5.50, ´angulo 45, desprazamento no eixo X de 50 p´ıxeles e 50 p´ıxeles no eixo Y. O resto de valores quedan os que ve˜nen por defecto. P´ulsase sobre o bot´on Guardar e despois sobre o bot´on OK. P´ulsase sobre o bot´on de Execuci´on de procesado. Apertura dunha nova v´entana onde se especifique o resultado do rexistrado numericamente e graficamente. Imaxe rexistrada en formato RAW e PGM na carpeta “outputs”. ´ Angulo 45o, factor de escala 5.50 e desprazamento (50,50). Funciona correctamente (Figura 7.6) Cadro 7.8: Probas do m´odulo de rexistrado para HypeRvieW (interface gr´afica).
7.6. VALIDACI ´ ON DE REQUISITOS 135 7.6. Validaci´on de requisitos Despois do remate da ´ultima iteraci´on compr´obase e val´ıdase que se cumpriran todos os requisitos especificados para o proxecto. Detallarase cada proba de validaci´on seguindo a estrutura que se amosa no Cadro 7.9. Identificador C´odigo ´unico que identifica a proba. Estar´a formado polas letras “VPR-X” onde a “X” se cambia por un n´umero. Descrici´on Descrici´on da proba levada a cabo. Requisito Requisito ou requisitos que afecta a proba. Resultado esperado Descrici´on do resultado que se espera obter para dar como cumprido o requisito ou os requisitos. Resultado Cumprido ou non cumprido. Cadro 7.9: Cadro explicativo das probas de validaci´on de requisitos. As probas de validaci´on van dende o Cadro 7.10 ata o Cadro 7.29. Identificador VPR-01. Descrici´on C´argase a imaxe hiperespectral da Universidade de Pavia na ferramenta de rexistrado. Extraese a primeira banda. R´otase 90o, esc´alase cun factor de 2 e despr´azase 40 p´ıxeles esa primeira banda. G´ardase esta primeira banda en formato PGM. Requisito RF-01, RF-11 e RF-15. Resultado esperado Primeira banda da imaxe Universidade de Pavia en formato PGM rotada 90o, escalada cun factor de 2 e desprazada 40 p´ıxeles. Vemos que isto ´e as´ı no visualizador de imaxes de Ubuntu. Resultado Cumprido. Cadro 7.10: Proba de validaci´on VPR-01.