Automatisch kalibreren van CT-scanners tijdens iteratieve beeldreconstructie Jim van Nunen Promotoren: prof. dr. Roel Van Holen, prof. Christian Vanhove Begeleider: dr. ir. Bert Vandeghinste Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2013-2014 Automatisch kalibreren van CT-scanners tijdens iteratieve beeldreconstructie Jim van Nunen Promotoren: prof. dr. Roel Van Holen, prof. Christian Vanhove Begeleider: dr. ir. Bert Vandeghinste Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2013-2014 Voorwoord Er waren allerlei redenen waarom ik voor dit thesisonderwerp koos. Enerzijds denk ik dat een computerwetenschapper zich niet moet beperken tot zijn eigen vakgebied, maar zijn vaardigheden ook in andere onderzoeksdomeinen moet inzetten. In dit geval de biomedische wetenschappen, een discipline waar ik aanvankelijk niet mee vertrouwd was. Het is anderzijds een belangrijke eigenschap van een ingenieur om zich snel vertrouwd te maken met nieuwe kennis. Dit onderzoek zou waarschijnlijk op een andere manier tot stand zijn gekomen mocht iemand met een achtergrond in de biomedische wetenschappen zich erover gebogen hebben, maar ik acht de confrontatie van uiteenlopende ideeën van het grootste belang in de wetenschappelijke vooruitgang. Laat ik hier op zijn minst een onderzoek presenteren waar op verdergebouwd kan worden. Een voorwoord als dit verlangt traditioneel een hele lijst bedankjes. Laat ik het simpel houden en het grootste woord van dank voorbehouden aan Bert Vandeghinste, mijn thesisbegeleider, die mij wanneer nodig de juiste inzichten heeft bijgebracht en altijd klaarstond om mijn vragen te beantwoorden. Een tweede woord van dank gaat naar Roel Van Holen en Christian Vanhove, mijn promotors, die dit uitdagende onderwerp ter beschikking hebben gesteld. Voor de rest acht ik een thesis geen plaats om lief, vrienden, familie, kat of hond in de kijker te zetten. Daar zijn betere manieren voor en — laten we eerlijk wezen — de kans dat ze dit ooit gaan lezen, is uitermate klein. Er is toch een kleine uitzondering die ik wil maken. Door een drukke agenda, zowel binnen als buiten de universiteit, moest het indienen van mijn thesis noodgedwongen wachten tot augustus. Door er vaart achter te zetten kon ik toch nog vroeger dan gepland werk maken van het weerzien met een kennis in Sint-Petersburg. Het was Joris die er ondertussen voor zorgde dat de papieren versies van de thesis op hun bestemming aankwamen. Dank voor deze praktische beslommeringen. Een motivatie en een dankwoord. Ontbreekt er nog iets? Een citaat wellicht. Naar aloude gewoonte een stukje tekst waarvan het twijfelachtig is of de vermeende auteur er ooit iets mee te maken heeft gehad. “A professor is someone who talks in someone else’s sleep.” W.H. Auden. Voldoet aan voornoemd criterium. Sluit samen met deze thesis een vijfjarige ingenieursopleiding af. Jim van Nunen, 1 augustus 2014 Toelating tot bruikleen De auteur geeft de toelating deze masterproef voor consultatie beschikbaar te stellen en delen van de masterproef te kopiëren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef. Jim van Nunen, 1 augusuts 2014 Automatisch kalibreren van CT-scanners tijdens iteratieve beeldreconstructie door Jim van Nunen Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Academiejaar 2013–2014 Promotoren: prof. dr. Roel Van Holen, prof. Christian Vanhove Begeleider: dr. ir. Bert Vandeghinste Faculteit Ingenieurswetenschappen en Architectuur Universiteit Gent Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Samenvatting In deze thesis wordt onderzocht hoe de geometrie van CT-scanners automatisch gekalibreerd kan worden tijdens iteratieve beeldreconstructie. Een foutieve inschatting van de geometrische parameters kan op reconstructies leiden tot wazige randen en een afname in spatiale resolutie. Het kalibreren wordt geabstraheerd tot het oplossen van een optimalisatieprobleem. Als objectieven komen in de projectieruimte de projectiefout aan bod en in de beeldruimte de scherpte. Beide maten worden vergeleken en er wordt bepaald voor welke parameters ze het best geschikt zijn. Deze studie gebeurt op tweedimensionale reconstructies. De behaalde inzichten worden uiteindelijk toegepast op de driedimensionale reconstructie van een geplastineerde muis, met projectiedata afkomstig van de TriFoil Triumph-II X-O CT-scanner. Trefwoorden computertomografie, geometrische kalibratie, iteratieve beeldreconstructie, projectiefout, scherpte Self-calibration of CT scanners during iterative image reconstruction Jim van Nunen Supervisor(s): Bert Vandeghinste, Christian Vanhove, Roel Van Holen Abstract—Computed tomography (CT) is a nondestructive imaging technique that uses reconstruction algorithms to create threedimensional tomographic images from scanner data. The reconstruction algorithms do not always adhere to the geometry of the scanner. Misalignments in scanner geometry are known to lead to edge blurring and a loss of spatial resolution. Especially in the context of micro-CT, known for its high spatial resolution, effects of misalignments are a severe threat to the overall image quality. We present an object-independent method to calibrate CT scanners during iterative image reconstruction. Our calibration method is based on the minimization or maximization of objective functions in projection and image space. We compare both the reprojection error and sharpness and determine which of these objectives is best suited for each geometric parameter. The proposed calibration scheme is able to optimize individual parameters independently of other parameters, resulting in a considerable speed-up compared to other calibration methods that simultaneously take all geometric parameters into account. Keywords— micro computed tomography, geometric calibration, iterative image reconstruction, reprojection error, sharpness methods have exhibited some major flaws over time. Maximizing sharpness has been proven to outperform the minimization of entropy: entropy ignores spatial information and indicates segmentability instead of overall sharpness of the reconstructed image. The Nelder-Mead algorithm is often cited as an ideal algorithm to find the correct geometric parameters [6][8]. This optimization algorithm has good convergence properties, but only if the objective functions are free of local extrema [9]. Sawall et al. [10] propose a genetic algorithm for misalignment estimation to escape from such local extrema. Despite its success, the algorithm still tries to optimize all geometric parameters simultaneously, thereby making the search space unnecessarily large. I. I NTRODUCTION Our goal is to determine which objective is best suited for particular parameters. Moreover, to reduce the search space of the optimization algorithms, we will determine the parameters that can be estimated independently of other parameters. Our initial research was carried out over 2D reconstructions of a selfdesigned phantom. Ultimately we present a stepwise calibration scheme for 3D reconstructions. The geometry used is shown in Figure 1. All data (scans of a plastinated mouse [11]) were acquired with the TriFoil Triumph-II X-O CT scanner. C OMPUTED TOMOGRAPHY is a nondestructive imaging technique that uses reconstruction algorithms to create 3D tomographic images from scanner data. The reconstruction algorithms do not always adhere to the geometry of the scanner, resulting in edge blurring and a loss in spatial resolution. Misalignments in scanner geometry are due to mechanical effects (e.g. gravity) or changes in atmosphere (e.g. temperature). In the context of micro-CT, known for its high spatial resolution, these effects are a severe threat to the overall image quality. Successful calibration methods have been proposed, but often lack efficiency or make specific assumptions about the used phantoms. A first method to calibrate CT scanners involves the examination of projection images of a specifically designed geometrical object [1]. As a consequence, this step should precede the main CT experiment. A second class of methods does not rely on dedicated calibration phantoms and is object-independent by placing tracking markers on the object [2]. The accuracy of such methods depends on the correct placement of the markers [3]. A third class of methods, and the focus of this research, is to directly use the acquired projection images. During iterative image reconstruction, the quality of the reconstruction is numerically determined by objective functions in projection or image space. In projection space, the calculation of the reprojection error is most common [4][5]. However, there is an increased trend toward the use of objective functions in image space, since optima can exist for reconstructions that do not have the lowest reprojection error possible. The work of Kyriakou et al. [6] is entropy-based and has yielded promising results. Kingston et al. [7] propose sharpness as objective since the entropy-based II. G OAL III. PARAMETERS We define eight parameters in our model for 3D reconstructions. ∆x, ∆y and ∆z denote the offsets of the object, which we consider stationary. ∆u and ∆v are the detector’s offsets. φ is the detector twist angle. SO and SD denote the distance between the source and object and the distance between the source and detector, respectively. Table I shows the parameter set Ω which we consider an optimum because of the sufficient sharp- Fig. 1: Model for 3D reconstruction. ∆x ∆y ∆z ∆u ∆v φ SD SO Ω ˆ Ω 0.00 mm 0.00 mm 0.00 mm 0.00 mm 0.00 mm 0.00 mm -38.39 pixels -30.00 pixels -155.87 pixels -162.00 pixels -0.28◦ 0.00◦ 299.64 mm 293.00 mm 131.17 mm 140.00 mm Ωcal 0.00 mm 0.00 mm -4.22 mm -37.81 pixels -151.99 pixels -0.26◦ 305.69 mm 127.61 mm TABLE I: Parameter sets for 3D reconstruction. (k) (k) SΩ = k∇ˆfΩ k2 = XX x Fig. 2: 3D reconstruction of the plastimouse. ˆ from where to start the ness and detail, and our initial guess Ω optimization process. Figure 2 compares both reconstructions. IV. O BJECTIVE FUNCTIONS The object is mathematically defined as the image distribution f . g is the data as measured by the scanner. The relationship Hf = g holds, in which H denotes the system matrix. Since this matrix is often too complex to calculate, iterative reconstruction methods estimate f by using parameterized projection operators (k) H. We call an estimation of f after k iterations ˆf . A. Reprojection error (k) The reprojection error EΩ is defined as the error between (k) the measured projection g and the data Hˆf projected by the Ω (k) (k) reconstruction algorithm. Note that ˆfΩ , and thus EΩ , depends on both Ω and the number of iterations k. Formally [5]: (k) EΩ = P X (k) |gi − (HˆfΩ )i | (2) y The image gradient can be calculated by using the differentiation property of the discrete Fourier transform, but a simple approximation can be obtained by using gradient convolution kernels such as the Sobel mask. Sharpness is an objective function to be maximized in the image space by an optimization algorithm. Its usefulness will be limited for the optimization of SD and SO, because sharpness is strictly not scale in(k) variant [7]: SΩ increases with increasing magnification factor M = SO/SD. ˆ (transverse) (b) Ω (a) Ω (transverse) (k) |∇fˆΩ (x, y)|2 (1) i=1 (k) gi , i ∈ {1, . . . , P }, is a single element of g. The form of EΩ is closely related to the cost that SIRT (Simultaneous Iterative Reconstruction Technique) tries to minimize. Therefore, we will make use of SIRT exclusively. The reprojection error is an objective function to be minimized in the projection space by an optimization algorithm. B. Sharpness Sharp images generally contain the maximum amount of high-frequency information. Blurred edges typically suppress these high frequencies. A possible measure for sharpness is the L2 norm of the image gradient [7]: V. C ALIBRATION OF 3D RECONSTRUCTIONS We propose the optimization scheme for 3D reconstructions in Figure 3, based on a preliminary study of 2D reconstructions. Due to the presence of local extrema, the genetic algorithm was chosen over the Nelder-Mead procedure. First, the parameters that affect the displacement of the detector in its plane are optimized by using sharpness. Note that the calculation of sharpness is based on edge detection. Typical artefacts from a misaligned detector involve double edges. These edges can be evaluated as ‘sharper’. An upper bound on the reprojection error is thus needed to avoid false maxima due to double edges. Sharpness leads toward the optimal parameters a few iterations faster than the reprojection error (k = 2 was chosen). Note that we only optimized ∆u and φ. Misalignments of both ∆v and ∆z can introduce artefacts in projection space, on the edge(s) where the object crosses the detector plane in the vdirection. These artefacts can be suppressed by either ∆v or ∆z, but only particular values for both ∆v and ∆z will ultimately yield the sharpest reconstruction. They are optimized together by considering both sharpness and reprojection error by means of a MOEA (Multiple Objective Evolutionary Algorithm) [12]. The outcome will be a trade-off between a low reprojection error (no artefacts in the projection space) and high sharpness in the image space. Once the directions and regions of the parameters are known, we discard sharpness and minimize the reprojection error. k = 4 was sufficient. The correct values of SO and SD can only be found by optimizing them both by means of the reprojection error. SO cannot be estimated if SD is still suboptimal, and vice versa. Moreover, a high number of iterations is needed, e.g. k = 100 or k = 200. The search space consists of many local extrema, which makes it hard to estimate these parameters, even for the genetic algorithm. The genetic algorithm was stopped before the termination criteria were met, yielding a suboptimal result Ωcal for SO and SD, compared to the optimum Ω (see Table I). However, the reconstruction was sharp and virtually indistinguishable from the reconstruction with Ω (see Figure 4). The estimation was good enough due to SO and SD having less impact on artefacts and edge blurring. VI. C ONCLUSIONS Most calibration methods try to optimize all geometric parameters at once, thereby making the search space of the optimization algorithms unnecessarily large. We have shown that certain geometric parameters can be optimized independently of other parameters, which results in a much smaller search space at a time and a faster calibration. Not all optimization steps require as many iterations of the iterative reconstruction algorithm, in our case SIRT. Moreover, sharpness is not an equivalent of the reprojection error, since it has local extrema by favouring double edges. However, if we can set an upper bound to the reprojection error (which has no local extrema for the parameters we can optimize by maximizing sharpness), maximizing sharpness can estimate the parameters a few iterations faster than the reprojection error. Sharpness is also proven to Fig. 3: Stepwise optimization scheme. (a) Ω (transverse) (c) Ω (sagittal) (b) Ωcal (transverse) (d) Ωcal (sagittal) Fig. 4: Comparison of supposed optimum and estimation. direct the parameters in the right direction, but the final result will still be suboptimal. We made use of this observation when designing the MOEA. The Nelder-Mead algorithm is only useful in absence of local extrema, a situation that seldom occurs in the context of the calibration of CT scanners, especially when optimizing all parameters at once. The genetic algorithm was powerful enough to escape the various local extrema. R EFERENCES [1] C. Mennessier, R. Clackdoyle, and F. Noo, “Direct Determination of Geometric Alignment Parameters for Cone-Beam Scanners”, Physics in Medicine and Biology, vol. 54, 2009, pp. 1633-1660. [2] I. S. Kyprianou, S. Paquerault, B. D. Galas, A. Badano, S. Park, and K. J. Myers, “Framework for Determination of Geometric Parameters of a Cone Beam CT Scanner for Measuring the System Response Function and Improved Object Reconstruction”, Proceedings of the IEEE International Symposium on Biomedical Imaging, 2006, pp. 1248-1251. [3] F. Stopp, A. J. Wieckowski, M. K¨aseberg, S. Engel, F. Fehlhaber, and E. Keeve, “A Geometric Calibration Method for an Open Cone-Beam CT System”, Proceedings of the 12th International Meeting on Fully ThreeDimensional Image Reconstruction in Radiology and Nuclear Medicine, 2013, pp. 106-109. [4] J. Wicklein, H. Kunze, W. A. Kalender, and Y. Kyriakou, “Image Features for Misalignment Correction in Medical Flat-Detector CT”, Medical Physics, vol. 39, no. 8, 2012, pp. 4918-4931. [5] W. Wein, A. Ladikos, and A. Baumgartner, “Self-Calibration of Geometric and Radiometric Parameters for Cone-Beam Computed Tomography”, Proceedings of the 11th International Meeting on Fully Three-Dimensional Image Reconstruction in Radiology and Nuclear Medicine, 2011, pp. 327330. [6] Y. Kyriakou, R. M. Lapp, L. Hillebrand, D. Ertel, and W. A. Kalender, “Simultaneous Misalignment Correction for Approximate Circular ConeBeam Computed Tomography”, Physics in Medicine and Biology, vol. 53, 2008, pp. 6267-6289. [7] A. Kingston, A. Sakellariou, T. Varslot, G. Myers, and A. Sheppard, “Reliable Automatic Alignment of Tomographic Projection Data by Passive Auto-Focus”, Medical Physics, vol. 38, no. 9, 2011, pp. 4934-4945. [8] D. Panetta, N. Belcari, A. Del Guerra, and S. Moehrs, “An OptimizationBased Method for Geometrical Calibration in Cone-Beam CT without Dedicated Phantoms”, Physics in Medicine and Biology, vol. 53, 2008, pp. 3841-3861. [9] J. C. Lagarias, J. A. Reeds, M. H. Wright, and P. E. Wright, “Convergence Properties of the Nelder-Mead Simplex Method in Low Dimensions”, SIAM Journal on Optimization, vol. 9, no. 1, 1998. [10] S. Sawall, M. Knaup, and M. Kachelrieß, “An Adaptive Genetic Algorithm for Misalignment Estimation (AGAME) in Circular, Sequential and Spiral Cone-Beam Micro-CT”, Proceedings of the 11th International Meeting on Fully Three-Dimensional Image Reconstruction in Radiology and Nuclear Medicine, 2011, pp. 187-190. [11] Frank Verhaegen, Maastro Clinic, The Netherlands. [12] E. Zitzler, M. Laumanns, and L. Thiele, “SPEA2: Improving the Strength Pareto Evolutionary Algorithm”, TIK-Report 103, 2001. Inhoudsopgave 1 Inleiding 1 2 Computertomografie 3 2.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 CT-scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.1 X-stralenbuis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.2 Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Beeldreconstructie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.1 Analytisch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.2 Iteratief . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Micro-CT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5 Kalibreren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5.1 Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5.2 Literatuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5.3 Doelstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5.4 Verloop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 3 Iteratieve beeldreconstructie 12 3.1 Beeld- en projectieruimte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Lineair model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3 Iteratieve reconstructie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3.1 Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3.2 Algoritmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 SIRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4 4 Reconstructie in twee dimensies 17 4.1 Geometrische parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2 Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.2 Parameterkeuze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2.3 Reconstructies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 i INHOUDSOPGAVE ii 5 Optimalisatietechnieken 5.1 5.2 5.3 5.4 23 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.1.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.1.2 Objectieffuncties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.1.3 Optimalisatiealgoritmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Objectieffuncties voor het CT-probleem . . . . . . . . . . . . . . . . . . . . . . . 26 5.2.1 Entropie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.2.2 Projectiefout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.2.3 Scherpte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Optimalisatiealgoritmes voor het CT-probleem . . . . . . . . . . . . . . . . . . . 30 5.3.1 Nelder-Mead algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.3.2 Genetisch algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6 Minimalisatie projectiefout 6.1 37 Invloed parameters op projectiefout . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.1.1 Horizontale uitwijking detector ∆u . . . . . . . . . . . . . . . . . . . . . . 37 6.1.2 Verticale uitwijking detector ∆v . . . . . . . . . . . . . . . . . . . . . . . 39 6.1.3 Detectortilt θ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.1.4 Afstand stralingsbron tot object SO . . . . . . . . . . . . . . . . . . . . . 42 6.2 Gedrag projectiefout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.3 Optimalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.3.1 Directe optimalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.3.2 Stapsgewijze optimalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.3.3 Aanpassingen genetisch algoritme . . . . . . . . . . . . . . . . . . . . . . . 46 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.4 7 Maximalisatie scherpte 7.1 47 Invloed parameters op scherpte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.1.1 Horizontale uitwijking detector ∆u . . . . . . . . . . . . . . . . . . . . . . 47 7.1.2 Verticale uitwijking detector ∆v . . . . . . . . . . . . . . . . . . . . . . . 48 7.1.3 Detectortilt θ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7.1.4 Afstand stralingsbron tot object SO . . . . . . . . . . . . . . . . . . . . . 49 7.2 Gedrag scherpte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.3 Optimalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.3.1 Directe optimalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.3.2 Stapsgewijze optimalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.4 INHOUDSOPGAVE iii 8 Gecombineerde objectieffuncties 52 8.1 Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 8.2 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.2.1 Lineaire combinatie van objectieffuncties . . . . . . . . . . . . . . . . . . . 53 8.2.2 Pareto-efficiënte oplossingenverzameling . . . . . . . . . . . . . . . . . . . 54 Optimalisatiealgoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 8.3.1 Bruikbaarheidsfunctie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 8.3.2 Creatie nieuwe populatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 8.4 Testresultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 8.5 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.3 9 Reconstructie in drie dimensies 58 9.1 Geometrische parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.2 Specificaties GPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9.3 Voorwaartse en terugwaartse projectie . . . . . . . . . . . . . . . . . . . . . . . . 60 9.3.1 Stralingsbron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 9.3.2 Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 9.3.3 Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Objectieffuncties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.4.1 Projectiefout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 9.4.2 Scherpte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 SIRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 9.4 9.5 10 Kalibreren 65 10.1 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 10.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 10.3 Eerste tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 10.3.1 Scherpte maximaliseren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 10.3.2 Projectiefout minimaliseren . . . . . . . . . . . . . . . . . . . . . . . . . . 70 10.3.3 Gecombineerde objectieffuncties . . . . . . . . . . . . . . . . . . . . . . . . 71 10.4 Invloed parameters in beeld- en projectieruimte . . . . . . . . . . . . . . . . . . . 71 10.4.1 Uitwijkingen van het object . . . . . . . . . . . . . . . . . . . . . . . . . . 71 10.4.2 Detectorparameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 10.4.3 Vergrotingsfactor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 10.5 Stappenplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 10.5.1 Optimaliseren van ∆u en φ . . . . . . . . . . . . . . . . . . . . . . . . . . 76 10.5.2 Optimaliseren van ∆v en ∆z . . . . . . . . . . . . . . . . . . . . . . . . . 77 10.5.3 Optimaliseren van SD en SO . . . . . . . . . . . . . . . . . . . . . . . . . 77 10.6 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 10.6.1 Herhaalbaarheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 INHOUDSOPGAVE iv 10.6.2 Nauwkeurigheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 10.6.3 Tijd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 10.6.4 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 11 Conclusie 82 11.1 Resultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 11.2 Toekomstig werk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 A Inhoud digitale drager 84 A.1 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 A.2 GPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 B Configuratiebestanden 87 B.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 B.2 Formaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 C Gebruik optimalisatiealgoritme 90 C.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 C.2 Generieke structuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 D Reconstructies 92 Gebruikte afkortigen en symbolen CPU Central Processing Unit CT Computed Tomography FBP Filtered Backprojection GPU Graphics Processing Unit MLTR Maximum Likelihood Transmission Reconstruction MOEA Multiple Objective Evolutionary Algorithm MRI Magnetic Resonance Imaging OS-SART Ordered-Subset Simultaneous Algebraic Reconstruction Technique SIRT Simultaneous Iterative Reconstruction Technique SPEA Strength Pareto Evolutionary Algorithm f objectdistributie g gemeten projectiedata H systeemmatrix (voorwaartse projectieoperator) H−1 inverse systeemmatrix (terugwaartse projectieoperator) α rotatiehoek ∆x, ∆y, ∆z uitwijkingen object in x-, y- en z-richting ∆u, ∆v uitwijkingen detector in u- en v-richting θ detectortilt φ detectortwist SD afstand stralingsbron tot detector SO afstand stralingsbron tot object M vergrotingsfactor Ω parameterverzameling p parameter c objectieffunctie Tt tableau t van optimalisatiealgoritme At archief t van optimalisatiealgoritme (k) projectiefout na k iteraties van reconstructie met Ω (k) scherpte na k iteraties van reconstructie met Ω EΩ SΩ Hoofdstuk 1 Inleiding Computertomografie, afgekort tot CT van het Engelse computed tomography, levert twee- of driedimensionale afbeeldingen of tomogrammen op die de inhoud van een driedimensionaal object weergeven. Het object in kwestie wordt hierbij niet ‘opengemaakt’, waardoor men spreekt van een zogenaamd niet-invasieve onderzoekstechniek. Het tomogram moet digitaal, aan de hand van een algoritme, gereconstrueerd worden uit tweedimensionale stralingsdata. Verschillende reconstructiealgoritmes kunnen toegepast worden op dezelfde data. Ze staan dus volledig los van het eigenlijke scanproces, waardoor aanpassingen en verbeteringen mogelijk zijn zonder dat de (dure) apparatuur op dezelfde ingrijpende wijze veranderingen moet ondergaan. CT-scanners maken gebruik van x-stralen (ioniserende straling). Ze vinden voornamelijk hun toepassing in de medische beeldvorming, waar ze een contrastrijker beeld opleveren dan de traditionele röntgenopname. Het grote voordeel is dat CT dwarsdoorsnedes van het object levert, zoals te zien op figuur 1.1. In klinische beeldvorming zijn opnames van het hoofd, de longen, de (onder)buik en het bekken het meest gebruikelijk. CT laat onder meer toe om tumoren nauwkeurig op te sporen. (a) klassieke röntgenopname (b) CT-scan [1] Figuur 1.1: Scans van de menselijke romp met verschillende technologieën. 1 HOOFDSTUK 1. INLEIDING 2 De CT-scanner heeft ook een intrede gedaan in de preklinische beeldvorming. Hier gaat het om micro-CT met als kenmerken een hogere spatiale resolutie door een sterke vergrotingsfactor, om weefsels, organen en botstructuren van kleine proefdieren in vivo of ex vivo te scannen. In de preklinische beeldvorming kunnen CT-scans bijdragen tot biomedische experimenten, maar ook tot het uitvoerig testen van nieuwe CT-technieken alvorens ze op grote schaal in te voeren. De kwaliteit van een CT-scan is deels afhankelijk van de parameters waarmee de algoritmes het beeld reconstrueren. Deze parameters beschrijven de geometrie van de gebruikte CT-scanner. De werkelijke geometrie kan afwijken van de veronderstelde door bijvoorbeeld mechanische effecten. Onscherpte aan de randen van de reconstructie of een afname in spatiale resolutie zijn het gevolg en verlagen de algemene kwaliteit van het beeld, zoals te zien op figuur 1.2. Een te lage kwaliteit betekent dat mogelijk cruciale details om een bepaald (ziekte)beeld te herkennen, onzichtbaar blijven. De arts zal niet langer in staat zijn om met grote zekerheid een bepaalde diagnose te bevestigen of pathologieën uit te sluiten. (a) niet-gekalibreerd (b) gekalibreerd Figuur 1.2: Invloed van kalibreren op reconstructiekwaliteit [3]. Het bepalen van de geometrische parameters is mogelijk door periodiek CT-scans te nemen van een object waarvan men de geometrische eigenschappen exact kent. Men weet dan welke reconstructie men mag verwachten om zo bepaalde parameters bij te sturen in het geval van onscherpe of door artefacten aangetaste beelden. Het is echter ook mogelijk om het reconstructiealgoritme zelf de geometrische paramaters te laten schatten om een zo optimaal mogelijk beeld te bekomen. Een objectieffunctie in functie van de geometrische parameters moet numeriek bepalen in hoeverre een beeld optimaal is. Het kalibreren van CT-scanners kan met andere woorden geabstraheerd worden tot het oplossen van een optimalisatieprobleem. Dit wiskundige concept heeft reeds zijn nut bewezen in domeinen als de economie en de mechanica, niet in het minst sinds de komst van de computer en bijhorende rekenkracht. Deze thesis zal tot doel hebben een systeem te ontwikkelen waarmee een CT-scanner zichzelf kan kalibreren, of beter: de gangbare reconstructiealgoritmes zullen automatisch de verzameling parameters bepalen die een zo goed mogelijke reconstructie opleveren. Na een korte uiteenzetting over de werking van computertomografie in het volgende hoofdstuk, zullen we in sectie 2.5 de doelstellingen van dit onderzoek nauwkeurig afbakenen. Hoofdstuk 2 Computertomografie 2.1 Principe CT levert op niet-invasieve wijze twee- of driedimensionale afbeeldingen op van de inhoud van een driedimensionaal object. Deze afbeeldingen zijn doorsnedes van het object en maken de techniek dus uitermate geschikt voor medische toepassingen. Het waren Allan Cormack en Godfrey Hounsfield die in 1979 samen de Nobelprijs voor de Fysiologie of Geneeskunde in de wacht sleepten na hun ontwikkeling van de eerste CT-scanner. Toch waren de achterliggende principes al minstens 60 jaar vroeger bekend, meer bepaald uit het werk van de wiskundige Johann Radon. Het is een lot waarmee veel wiskundigen zich moeten verzoenen. Inmiddels is computertomografie uitgegroeid tot een populaire en goed presterende scantechniek, al gaat de innovatie onverminderd verder. Figuur 2.1 toont het uitzicht van een moderne CT-scanner. Een CT-scanner bestaat ruwweg uit drie belangrijke componenten. Het object, in medische context een patiënt of proefdier, rust op een tafel die zich tussen een x-stralenbuis en detector bevindt. De x-stralenbuis is een stralingsbron die tijdens de scan rond het object roteert. De detectoren meten de intensiteit van de uitgestuurde x-stralen nadat ze doorheen het object ge- Figuur 2.1: Typisch ontwerp van een CT-scanner in medische context [2]. 3 HOOFDSTUK 2. COMPUTERTOMOGRAFIE 4 Figuur 2.2: Onderlinge positie van stralingsbron, detector en object. propageerd zijn. Een reconstructiealgoritme zal van deze tweedimensionale, planaire data een driedimensionale weergave maken. Voornoemde onderdelen en principes zullen nu verder toegelicht worden, in zoverre dat nodig is voor een goed begrip van de iteratieve reconstructiealgoritmes die aan de basis van het kalibreren zullen liggen. 2.2 2.2.1 CT-scanner X-stralenbuis De x-stralenbuis is de bron van ioniserende straling die tijdens acquisitie in de CT-scanner roteert rond het object. Het object ligt stil, terwijl de x-stralenbuis en detector zich recht over elkaar bevinden en samen roteren rond een centrale as, zoals getoond op figuur 2.2. X-straling of röntgenstraling is elektromagnetische straling in het energiebereik tussen 100 eV en 100 keV. In de x-stralenbuis wordt een elektromagnetisch veld tussen een anode en kathode aangelegd. De kathode zal onder invloed van een verhittingsproces elektronen vrijgeven die door het elektromagnetisch veld een versnelling ondergaan. De elektronen produceren een remstralingsbundel bij inval op het wolfraam waaruit de anode (net als de kathode) meestal vervaardigd is. Het proces gaat overigens gepaard met hitteproductie, omdat het slechts 1% van de elektronen omzet in x-stralen. Recente CT-scanners maken gebruik van een kegelvormige stralenbundel (cone beam) die het hele object kan omvatten, hoewel dit niet zal lukken in humane studies. Op deze manier kunnen meerdere doorsnedes tegelijk gemeten worden en is de stralingsdosis voor de patiënt kleiner. De x-stralen hebben voldoende hoge energie om atomen te ioniseren en atoombindingen te verbreken. Het effect ervan op levende weefsels kan tot uiting komen in stralingsziekte of kanker. Minstens even belangrijk als de stralingsdosis is de tijd waarover men aan de dosis blootgesteld wordt. Een Belg zou per jaar vier keer meer straling ondergaan dan een Nederlander of Brit [4]. Er zou sprake zijn van te veel nutteloze CT-scans, waarop de FOD Volksgezondheid in maart 2014 liet weten meer MRI-scans te willen aanmoedigen [5]. MRI staat voor magnetic resonance imaging en HOOFDSTUK 2. COMPUTERTOMOGRAFIE 5 Figuur 2.3: Radiologisch contrast door verschil in gedetecteerde stralingsintensiteit. maakt in tegenstelling tot CT geen gebruik van ioniserende straling, maar van magneetvelden en radiogolven. De techniek is meer geschikt voor zachte weefsels dan voor botstructuren, waardoor beide technologieën niet onderling inwisselbaar zijn. Toepassingen ontwikkelen uit theoretisch wetenschappelijk onderzoek kan nooit zonder aan het maatschappelijk debat deel te nemen. 2.2.2 Detector De fysica achter de productie van x-stralen is verder niet belangrijk voor het beoogde kalibreren: er zullen immers geen wijzigingen aangebracht worden aan de sturing of hardware van de CTscanner. Inzicht in de interactie van de x-stralen met het object is daarentegen wel van cruciaal belang om te begrijpen welke data de detectoren meten en opslaan. Deze data zullen samen met de geometrische parameters de invoer van het reconstructiealgoritme vormen. Het medium waardoor x-stralen propageren, zal een deel van deze straling absorberen. Voor mono-energetische x-stralen geldt voor absorptie de wet van Lambert-Beer: I = I0 e− RL 0 µ(s) ds (2.1) Vergelijking 2.1 legt het verband tussen de intensiteit I0 van de uitgestuurde x-stralenbundel en de intensiteit I van de bundel waargenomen door de detector, na transmissie door het object. L is de dikte van dit object met s een bepaalde plaats in het medium. De absorptiecoëfficiënt µ is materiaalafhankelijk. Gezien het object uit meerdere materialen (bijvoorbeeld weefsels of botstructuren) kan bestaan, is µ afhankelijk van de plaats s in het object. De absorptiecoëfficiënt is de probabiliteit dat een foton verdwijnt per eenheid van laagdikte en is verder recht evenredig met de massadichtheid. Figuur 2.3 toont het principe van radiologisch contrast door detectie van verschillende stralingsintensiteiten naargelang de aard van het gepenetreerde medium. Het contrast op de gereconstrueerde afbeelding ontstaat uit dergelijke verschillen in waargenomen intensiteit. HOOFDSTUK 2. COMPUTERTOMOGRAFIE 6 Figuur 2.4: Venster bepaalt welke CT-nummers op de het grijswaardebereik afgebeeld worden. Er moet opgemerkt worden dat vergelijking 2.1 enkel geldig is voor mono-energetische x-stralen. In werkelijkheid is het spectrum van de uitgestuurde x-stralen polyenergetisch, waardoor aanpassingen aan de uitdrukking van de absorptiecoëfficiënt µ nodig zijn. Het heeft voor het verder verloop van dit onderzoek geen zin om deze aanpassingen in detail te bespreken, maar het volstaat op te merken dat de absorptiecoëfficiënt zal afnemen bij verhoogde energie. Fotonen met hoge energie zullen het medium gemakkelijker penetreren met minder ruis tot gevolg, maar tegen de prijs van een lager contrast. Net omdat bij conventionele radiografie en -scopie een afbeelding van de tweedimensionale beeldreceptor meteen het eindresultaat is, kunnen enkel structuren die sterk verschillen in absorptiecoëfficiënt bij gegeven x-stralenkwaliteit goed gevisualiseerd worden. Bovendien scheiden dergelijke systemen niet de ruimtelijke structuren in de richting van de x-stralenbundel, waardoor diepte ontbreekt. CT komt aan beide problemen tegemoet door vanuit verschillende hoeken tweedimensionale data te registreren en ze bij reconstructie terug samen te voegen tot een driedimensionaal geheel. 2.3 Beeldreconstructie Een structuur met gemiddelde absorptiecoëfficiënt µ stemt overeen met een bepaald CT-nummer of Hounsfieldeenheid HUµ volgens onderstaande formule: HUµ = 1000 × µ − µwater µwater (2.2) Het resultaat van een CT-scan is echter een tomogram met grijswaarden. De Hounsfieldeenheden, die waarden van -1000 tot 3000 kunnen aannemen, moeten afgebeeld worden op een 8 bit grijswaardebereik (8 bit: 28 = 256 verschillende waarden). Een vensterbreedte moet bepalen welke CT-nummers overeenkomen met het grijswaardebereik op het weergavescherm. Een klein venster levert hoog contrast op: er zijn veel grijswaarden te kiezen voor een klein bereik. Een HOOFDSTUK 2. COMPUTERTOMOGRAFIE 7 groot venster levert laag contrast op: hetzelfde aantal grijswaarden moet nu meer CT-nummers visualiseren. Figuur 2.4 illustreert het vensterprincipe voor 256 grijswaarden. Merk op dat het hier niet om het intrinsieke contrast gaat, maar om de loutere weergave op een scherm. De reconstructie kan analytisch of iteratief tot stand komen. 2.3.1 Analytisch Beeldreconstructie werd aanvankelijk beschouwd als het inverteren van de discrete Radontransformatie, een probleem dat filtered backprojection (FBP) exact oplost [6]. De Radontransformatie zelf stelt het projectieproces voor. De projectie van het object levert een zogenaamd sinogram op, een twee- of driedimensionale dataverzameling die verschillende projecties van het gescande object bevat, namelijk een projectie per hoek vanwaar de x-stralen het object gepenetreerd hebben. FBP veronderstelt dat de detectordata exacte lijnintegralen van de objectdistributie zijn. Onder meer door de beperkte bruikbaarheid van vergelijking 2.1 als model om het werkelijke stralingsgedrag te beschrijven, is analytische beeldreconstructie slechts een vereenvoudigd model dat tot ongewenste beeldartefacten kan leiden. 2.3.2 Iteratief Een andere klasse van reconstructiealgoritmes zijn de iteratieve technieken. Zij gaan uit van een rijker (al dan niet lineair) model dat de voorwaartse projectie voorstelt. Het model gaat beter om met de mechanismen die onscherpte en absorptie beïnvloeden in het reconstructieproces [6]. De generieke structuur van zo’n model zal aan bod komen in sectie 3.2. Er zal blijken dat het niet praktisch is om het bekomen stelsel van vergelijkingen op te lossen, waardoor algoritmes zijn ontworpen die in plaats daarvan iteratief de afbeelding moeten reconstrueren. Tijdens elke iteratie tracht men dichter bij de afbeelding te komen die de werkelijke inverse van het probleem zou opleveren. De beeldkwaliteit is beter dan bij de analytische methodes, maar het iteratieve proces vraagt wel meer rekentijd. Een iteratief reconstructiealgoritme zal een numerieke ‘kost’, bepaald uit de detector- of beelddata, trachten te minimaliseren. De link met kalibreren is dus vlug gemaakt: daar willen we aan de hand van een optimalisatiealgoritme een bepaalde kost in functie van de geometrische parameters minimaliseren. Gezien het belang van iteratieve reconstructiealgoritmes in dit onderzoek, wijden we Hoofdstuk 3 volledig aan dat onderwerp. 2.4 Micro-CT De preklinische beeldvorming maakt vrijwel uitsluitend gebruik van micro-CT. De gebruikte scanners zijn kleiner en de beelden vertonen een hogere spatiale resolutie door een sterkere HOOFDSTUK 2. COMPUTERTOMOGRAFIE 8 Figuur 2.5: De TriFoil Triumph-II X-O CT-scanner gebruikt in dit onderzoek. vergrotingsfactor. De onderzoeksgroep MEDISIP (Medical Imaging and Signal Processing) van de vakgroep ELIS (Elektronica en Informatiesystemen) aan de UGent kan beroep doen op de diensten van Infinity, een beeldlab voor kleine proefdieren. De ultieme tests van dit onderzoek zullen uitgevoerd worden op data bekomen van de TriFoil Triumph-II X-O CT-scanner, afgebeeld op figuur 2.5. Secties 10.1 en 10.2 lichten in meer detail het gebruikte object toe, samen met andere eigenschappen van deze scanner. 2.5 2.5.1 Kalibreren Probleemstelling De iteratieve reconstructiealgoritmes gaan uit van een geparameteriseerd model van de CTscanner (de precieze parameters komen aan bod in tabellen 4.2 en 9.2, respectievelijk voor reconstructie in twee dimensies en in drie dimensies). De kwaliteit van het tomogram is afhankelijk van de kwaliteit van het model en de parameters waarmee de iteratieve algoritmes het beeld reconstrueren. De projecties die de CT-scanner oplevert, voldoen niet altijd aan de geometrische veronderstellingen van het model. Dit resulteert in wazige, onscherpe tomogrammen met mogelijks een afname in spatiale resolutie. De werkelijke geometrie kan afwijken van de veronderstelde door bijvoorbeeld mechanische effecten. Zo speelt de invloed van de zwaartekracht op de stralingsbron een rol, alsook atmosferische invloeden zoals temperatuur of druk. Er is nood aan het kalibreren van CT-scanners. Indien het geparameteriseerde model de CT-scanner afdoende beschrijft, en we kunnen parameters vinden die met dit model een goede reconstructie opleveren, dan kennen we met grote zekerheid de werkelijke geometrische parameters van de CT-scanner. HOOFDSTUK 2. COMPUTERTOMOGRAFIE 2.5.2 9 Literatuur Het kalibreren van CT-scanners kan ruwweg op drie manieren. De eerste manier bestaat erin een object te scannen waarvan men de geometrische eigenschappen exact kent. Door het tomogram te vergelijken met het ideale tomogram van dat object, kan men de geometrische parameters bijsturen [7]. Men leidt de parameters af uit de soorten artefacten die optreden. De tweede manier brengt markeringen aan op het te scannen object. Door de markeringen nauwkeurig te volgen op de beeld- en projectiedata kan men ook een inschatting van de geometrische parameters maken [8]. Deze methode komt voornamelijk voor in de context van elektronentomografie [9]. De derde methode laat het iteratief reconstructiealgoritme zelf de parameters schatten, zonder voorkennis over het object of markeringen erop aangebracht. In de literatuur komen twee pistes voor om CT-scanners te kalibreren tijdens iteratieve beeldreconstructie: optimalisatie in de beeldruimte [10] en optimalisatie in de projectieruimte [11]. Optimalisatie in de beeldruimte betekent dat het tomogram wordt geëvalueerd op basis van zijn visuele eigenschappen om een uitspraak te doen over de accuraatheid van de gebruikte geometrische parameters. Optimalisatie in de projectieruimte betekent dat de projectiedata geëvalueerd wordt, door een vergelijking te maken tussen de data bekomen van de CT-scanner en de projectiedata die het reconstructiemodel oplevert. Beide pistes hebben gemeen dat men een objectieffunctie definieert die geminimaliseerd of gemaximaliseerd moet worden. Het kaliberen van CT-scanners herleidt zich tot het oplossen van een optimalisatieprobleem. De meeste methodes om een objectieffunctie in de beeldruimte te minimaliseren of maximaliseren, bouwen verder op het werk van Kyriakou et al. [12]. Zij stellen voor om de entropie van het bekomen tomogram te minimaliseren. Het minimaliseren van de entropie betekent het bevoordelen van hoog contrast. Dat een hoog contrast vanzelfsprekend een optimale reconstructie zou betekenen, wordt in vraag gesteld door Kingston et al. [13]. Zij argumenteren dat entropie spatiale informatie van het beeld negeert en geen scherpte in de hand werkt, maar eerder het kunnen onderscheiden van segmenten in het tomogram. Zelf stellen zij scherpte als te maximaliseren objectieffunctie in de beeldruimte voor, gedefinieerd als de norm van de beeldgradiënt. Een belangrijke kanttekening is dat scherpte strikt genomen niet schaalinvariant is: scherpte wijzigt bij een variërende vergrotingsfactor. De vergrotingsfactor constant houden, is een aanname die men in de praktijk niet altijd kan maken. We zullen ons moeten afvragen of parameters geoptimaliseerd kunnen worden bij een constante vergrotingsfactor die zelf niet noodzakelijk optimaal is. In de projectieruimte is het minimaliseren van de projectiefout gangbaar. Dit is een maat voor het verschil tussen de scannerdata en de projecties die het scannermodel en reconstructiealgoritme opleveren. Toonaangevend zijn onder meer Wicklein et al. [14] en Wein et al. [15]. Het is echter onduidelijk of een optimaal tomogram altijd bekomen wordt bij de minimale projectiefout. Debbeler et al. [16] geven de voorkeur aan een optimalisatie in de projectieruimte omwille van de snelheid: het berekenen van het tomogram kan achterwege gelaten worden. De objectieffunctie HOOFDSTUK 2. COMPUTERTOMOGRAFIE 10 die zij voorstellen brengt de aanwezigheid van overtollig opgemeten x-stralen in rekening. Hiermee kunnen zij inderdaad tot nauwkeurige kalibratie komen, maar er stellen zich twee problemen. Ten eerste bezitten niet alle projectiedata overtollig opgemeten x-stralen. Hun voorgestelde oplossing brengt dan weer niet alle geometrische parameters in rekening, waardoor het kalibreren enkel lukt onder geïdealiseerde voorwaarden met zekerheid over de parameters die men niet kalibreert. Ten tweede blijken de objectieffuncties lokale extrema te bezitten, waardoor vraagtekens bij de betrouwbaarheid geplaatst moeten worden. Ook Patel et al. [17] werken in de projectieruimte, en behalen veelbelovende resultaten met betrekking tot het inschatten van rotatie- en translatieparameters van het object. Ook bewegingen van het object tijdens het scanproces kunnen zij corrigeren. Ondanks het succes beperkt dit de bruikbaarheid van hun voorgestelde methode aanzienlijk, gezien andere parameters (bijvoorbeeld met betrekking tot de detector en stralingsbron) buiten beschouwing gelaten worden. Zij worden gekend verondersteld. Bronnikov [18][19] garandeert met een nieuwe, algemene theorie en bijhorend algoritme stabiele convergentie naar de optimale parameters van het systeem. Deze methode brengt alle parameters in rekening, maar maakt gebruik van de systeemmatrix van het CT-model die vaak onbekend of analytisch moeilijk te hanteren is. Stopp et al. [20] werken een kalibratieproces uit door markeringen op het object aan te brengen. In de praktijk is het niet altijd mogelijk dit nauwkeurig te doen. Fouten op de behaalde resultaten zijn inderdaad voornamelijk te wijten aan onnauwkeurig aangebrachte markeringen. Verder komt het werk voornamelijk tegemoet aan CT-systemen waarbij de stralingsbron geen planair traject aflegt. Als optimalisatiealgoritme duikt vaak het Nelder-Mead algoritme op [11] [12], al lijkt een genetisch algoritme uit recent onderzoek van Sawall et al. [3] op het eerste zicht veelbelovender. Opvallend is dat zelden parameters apart geoptimaliseerd worden, onafhankelijk van welke methode men gebruikt. 2.5.3 Doelstelling Uit dit beknopt literatuuroverzicht is gebleken dat er nog geen algemene methode bestaat om alle geometrische parameters te optimaliseren — de methode van Bronnikov [18] veronderstelt kennis van de systeemmatrix. Scherpte als objectieffunctie is nog onvoldoende gekarakteriseerd en werd niet vergeleken met resultaten behaald uit het gebruik van de projectiefout. Een combinatie van objectieffuncties zal sowieso nodig zijn, willen we alle parameters optimaliseren. Concreet trachten we in dit onderzoek na te gaan of er een algemeen toepasbare methode bestaat, die zo weinig mogelijk veronderstellingen over de geometrische parameters en het object maakt, zonder gebruik te maken van de systeemmatrix. We willen alle geometrische parameters HOOFDSTUK 2. COMPUTERTOMOGRAFIE 11 van het model kunnen kalibreren en nagaan of we bepaalde parameters onafhankelijk van de andere kunnen optimaliseren. Er moet nagegaan worden welke objectieffuncties het best geschikt zijn voor welke parameters, door de invloed van de parameters op beeld- en projectiedata na te trekken. Ook de tijd speelt een rol: het moet duidelijk worden na hoeveel iteraties van het reconstructiealgoritme we de objectieffuncties betrouwbaar kunnen evalueren, iets wat in de literatuur vaak in het midden gelaten wordt. Het is verder interessant te weten welk optimalisatiealgoritme aangewezen is om specifiek dit CT-probleem aan te pakken. 2.5.4 Verloop Het verloop van dit onderzoek is ruwweg als volgt. • Hoofdstuk 3 verklaart de grondslagen van iteratieve beeldreconstructie. Deze voorkennis is nodig, omdat het tijdens deze reconstructie is dat het kalibreren zal plaatsvinden. • Hoofdstuk 4 legt de basis voor een voorstudie van kalibreren in twee dimensies. • Hoofdstuk 5 bespreekt en vergelijkt mogelijke optimalisatiealgoritmes om het kalibreren uit te voeren. Ook de objectieffuncties worden er gedefiniëerd. • Hoofdstukken 6 en 7 behandelen respectievelijk de projectiefout en scherpte. Prestaties worden geëvalueerd en eerste resultaten voorgelegd. Hoofdstuk 8 gaat na of het nut heeft om deze objectieffuncties te combineren. Deze tweedimensionale voorstudie moet voldoende inzicht in het kalibreren geleverd hebben om vlot over te gaan naar een implementatie op de GPU, om ‘echte’ data van kleine proefdieren in drie dimensies te reconstrueren. • Hoofdstuk 9 beschrijft welke aanpassingen nodig zijn voor een uitbreiding naar drie dimensies, met een implementatie op de GPU. Hoofdstuk 10 behandelt in detail het kalibreren van de CT-scanner. • Hoofdstuk 11 geeft een conclusie bij het volledige onderzoek. Implementatiedetails, bijvoorbeeld met betrekking tot specifieke C++ syntax, worden zoveel mogelijk vermeden in de uiteenzetting die volgt. Toch maakte het programmeren een aanzienlijk deel van dit onderzoek uit, zodat de code wel geannoteerd op een digitale drager aan deze thesis is toegevoegd. Bijlage A beschrijft de inhoud van deze cd-rom. Hoofdstuk 3 Iteratieve beeldreconstructie In dit hoofdstuk lichten we de principes van iteratieve beeldreconstructie toe, omdat het tijdens dit proces is dat we de beeld- en/of detectordata zullen evalueren om de geometrische parameters van de CT-scanner te optimaliseren. 3.1 Beeld- en projectieruimte Met elke tweedimensionale pixel (picture element) van het tomogram komen in het object één of meerdere driedimensionale voxels (volume elements) overeen. De dikte van de doorsnede bepaalt de derde dimensie van de voxel. Deze dikte is bij CT dun (tussen 1 mm en 10 mm) en uniform over de doorsnede. Het beeld wordt weergegeven in grijswaarden, die zoals getoond op figuur 2.4 uit de Hounsfieldeenheden worden afgeleid. De Hounsfieldeenheden worden op hun beurt afgeleid uit de gemiddelde absorptie-eigenschappen door de detectoren geregistreerd, zoals vergelijkingen 2.1 en 2.2 reeds toonden. Het tomogram wordt middels een algoritme uit de detectordata gereconstrueerd. Er bestaat met andere woorden een afbeelding tussen de projectieen beeldruimte. 3.2 Lineair model Het te scannen object stellen we wiskundig voor met de objectdistributie f . Zeer algemeen wordt een object ook wel ‘fantoom’ genoemd, wegens het nog onbekend zijn van de inwendige structuren die we net door het object te scannen, willen visualiseren. Het resultaat van de scan zijn de projectiewaarden g die door de detector tijdens de acquisitie gemeten werden. De systeemmatrix H geeft het verband tussen f en g [6]: g = Hf 12 (3.1) HOOFDSTUK 3. ITERATIEVE BEELDRECONSTRUCTIE 13 Figuur 3.1: Verband tussen f en g door systeemmatrix H. f is een kolomvector met dimensie N ×1, g heeft dimensie P ×1 en bijgevolg is H een P ×N matrix. N is het aantal voxels van de te reconstrueren afbeelding (f kan hier, zonder de algemeenheid te schaden, ook tweedimensionaal zijn, bijvoorbeeld in het geval van één centrale doorsnede). P is het aantal detectorcellen. Een enkele voxel (pixel) zullen we verder fj , j ∈ {1, . . . , N } noemen. Naar analogie wordt een enkele detectorcel omschreven als gi , i ∈ {1, . . . , P }. Merk op dat zowel f als g hier discreet zijn. Voor het object betekent dit het invoeren van een basisfunctie φj (x), met x een plaats in de continue beeldruimte, om een individuele pixelwaarde te bekomen [6]: Z fj = f (x)φj (x) dx (3.2) De meest gebruikte basisfuncties φj (x) zijn constant in een welbepaalde kubus (voxel) uit een verzameling van kubussen waarin het object is onderverdeeld. Voorts is de projectiedata g strikt genomen een toevalsvariabele door de emissie van fotonen waarvan men weet dat ze een Poissondistributie volgen. In dat opzicht moeten we vergelijking 3.1 als volgt herschrijven: E[g] = Hf (3.3) Men heeft het hier over de verwachtingswaarde of gemiddelde waarde van de gemeten data g. De systeemmatrix H is een zuiver wiskundig concept om het verband tussen f en g gestalte te geven. Het gebruik van H is in de praktijk moeilijk, wegens vaak te groot om uit te rekenen. Ook het bepalen van H−1 zou dan erg rekenintensief zijn. Toch is net deze inverse nodig om uit vergelijking 3.1 f te bepalen, het doel van beeldreconstructie: f = H−1 g (3.4) Het (praktisch) niet kunnen inverteren van H geeft aanleiding tot iteratieve reconstructietechnieken. HOOFDSTUK 3. ITERATIEVE BEELDRECONSTRUCTIE 3.3 14 Iteratieve reconstructie Een iteratieve reconstructie bestaat steeds uit twee componenten. De eerste component is het criterium dat zal bepalen welke afbeelding ˆf de beste schatting is van de echte afbeelding f , die het inverteren in vergelijking 3.4 zou opleveren. De tweede component is het algoritme dat zo’n schatting ˆf iteratief tot stand zal brengen. Bij elke iteratie k van dit algoritme zal de schatting beter worden en zal de beeldkwaliteit verbeteren: lim ˆf (k) = f k→+∞ 3.3.1 (3.5) Criteria De criteria kunnen onderverdeeld worden in twee categorieën: een klasse van criteria die de probabiliteit van f en/of g mee in rekening brengt en een klasse die geen veronderstellingen over het object f doet. Er volgen nu twee voorbeelden die voor het verder verloop van dit onderzoek belangrijk zullen zijn. Criterium van de grootste aannemelijkheid Het Poissonkarakter van g dat aanleiding gaf tot vergelijking 3.3, leidt formeel tot deze probabiliteitswet voor g: P Y g¯igi e−¯gi (3.6) p(g; f ) = gi ! i=1 g¯i is element i van E[g] = Hf : g¯i = N X hij fj (3.7) j=1 Hierin stelt hij het element op positie (i, j) van de systeemmatrix H voor. Men hanteert vervolgens de meest aannemelijke schatter om ˆf uit de aannemelijkheidsfunctie 3.6 te bepalen [6]: ˆf = arg max p(g; f ) f (3.8) Men kiest met andere woorden een afbeelding waarvoor de aannemelijkheidsfunctie p(g, f ) een zo groot mogelijke waarde oplevert. Deze techniek wordt onder meer gebruikt in MLTR (maximum likelihood transmission reconstruction). Criterium van de kleinste kwadraten Een ander criterium bestaat erin ˆf te kiezen zodat de projectie ervan de kleinste Euclidische afstand tot de projectiedata g vertoont. Deze schatter wordt formeel als volgt uitgedrukt, volgens HOOFDSTUK 3. ITERATIEVE BEELDRECONSTRUCTIE 15 Figuur 3.2: De generieke structuur van een iteratief reconstructiealgoritme. de methode van de kleinste kwadraten [6]: ˆf = arg min kg − Hf k2 = arg min 2 f f 2 P N X X gi − hij fj i=1 (3.9) j=1 Vergelijking 3.9 ligt onder meer aan de basis van SIRT (simultaneous iterative reconstruction technique), in meer detail besproken in sectie 3.4. 3.3.2 Algoritmes De generieke structuur van een iteratief reconstructiealgoritme is weergegeven op figuur 3.2. Het algoritme maakt gebruik van een computermodel van de CT-scanner dat virtuele projectieoperators gebruikt in plaats van de systeemmatrix H. Een schatting ˆf (k) wordt geprojecteerd op ˆ (k) = Hˆf (k) bekomen wordt. Deze projectie wordt een virtuele detector zodat een projectie g vergeleken met de gemeten projectiedata g. Deze vergelijking houdt het bepalen van een fout in. Het is deze fout die (wederom virtueel) terugwaarts geprojecteerd wordt om opnieuw een afbeelding te bekomen. De oude schatting ˆf (k) wordt met deze nieuwe afbeelding aangepast tot schatting ˆf (k+1) . De reconstructie stopt na een vooraf bepaald aantal iteraties of wanneer de afbeelding onvoldoende verbetert per toenemende iteratie k. Een mogelijke metriek hiervoor is het bepalen van de L2 -norm van het verschil tussen ˆf (k+1) en ˆf (k) . Het doel van een iteratief reconstructiealgoritme is ervoor zorgen dat ˆf (k) (zo snel mogelijk) naar f convergeert, gelet op vergelijking 3.5. 3.4 SIRT De simultaneous iterative reconstruction technique, kortweg SIRT, maakt gebruik van het criterium van de kleinste kwadraten uit vergelijking 3.9. Algoritme 3.1 verduidelijkt de werking van HOOFDSTUK 3. ITERATIEVE BEELDRECONSTRUCTIE 16 Algoritme 3.1: SIRT 1 2 foreach iteratie k do foreach projectiehoek α do 3 (k) gα,err ← gα −VoorwaartseProjectie(ˆf (k) ,α); 4 gα,err ← Normaliseer(gα,err ); 5 ferr ← ferr +TerugwaartseProjectie(gα,err ,α); (k) (k) (k) (k) (k) 6 end 7 8 ferr ← Normaliseer(ferr ); (k) ˆf (k) =ˆf (k) + ferr ; 9 k ← k + 1; 10 (k) (k) end SIRT [21]. De voorwaartse en terugwaartse projectie worden bij gebrek aan H uitgevoerd door geprogrammeerde projectieoperators. In sectie 5.2.2 zullen we de projectiefout als te minimaliseren objectieffunctie definiëren met oog op het kalibreren van CT-scanners. Deze metriek is direct verwant met de fout die in SIRT terugwaarts wordt geprojecteerd. Daarom beslissen we om in dit onderzoek steeds SIRT te gebruiken, mede door de beschikbaarheid van een robuuste SIRT-implementatie op zowel de CPU als GPU. Bovendien zal in sectie 9.5 blijken dat SIRT zich gemakkelijker leent tot een parallelle implementatie op de GPU dan het intrinsiek snellere OS-SART (ordered-subset simultaneous algebraic reconstruction technique). MLTR toepassen op de scannerdata bleek onmogelijk, wegens te grote dimensies van de detector en dus beperkingen op het geheugen van de GPU. MLTR zal hier dus buiten beschouwing gelaten worden. Bovendien zou het aanpassingen vergen om ook in MLTR met de projectiefout uit sectie 5.2.2 te werken, gezien MLTR het criterium van de grootste aannemelijkheid gebruikt en niet het criterium van de kleinste kwadraten dat rechtstreeks verband houdt met de projectiefout uit sectie 5.2.2. Hoofdstuk 4 Reconstructie in twee dimensies We leggen nu de basis van tweedimensionale reconstructies. We gebruiken zoals gezegd SIRT, waarbij de voorwaartse en terugwaartse projectie afstandsgebaseerd (distance-driven) zijn [22]. Om de complexiteit binnen de perken te houden, gaat het om de reconstructie van één centrale doorsnede van een object. Dit reduceert het probleem tijdelijk tot een tweedimensionale reconstructie die binnen redelijke tijd op een CPU uitgevoerd kan worden. Het maakt het definiëren van objectieffuncties en het testen van optimalisatiealgoritmes aanvankelijk vlotter dan een rechtstreekse implementatie op een GPU, dat meteen meer programmeerwerk zou vergen. We gaan pas over naar een implementatie op de GPU nadat in deze voorstudie de meest efficiënte technieken om te kalibreren op punt werden gesteld. 4.1 Geometrische parameters Figuur 4.1 toont het gebruikte coördinatensysteem van het model voor reconstructie in twee dimensies. Merk op dat de detector zijn eigen (u, v)-coördinatensysteem heeft, terwijl de detector wel samen met de stralingsbron in het getoonde (x, y)-coördinatensysteem van het object roteert. Figuur 4.1: Coördinatensysteem voor reconstructie in twee dimensies. 17 HOOFDSTUK 4. RECONSTRUCTIE IN TWEE DIMENSIES 18 Beschrijving Eenheid Totale rotatie Aantal projecties Dimensie object in x-richting Dimensie object in y-richting Dimensie objectpixel (isotroop) Dimensie detector in u-richting Dimensie detectorpixel ◦ — pixels pixels mm pixels mm Tabel 4.1: Definitie van de vaste geometrische parameters in twee dimensies. Symbool Beschrijving Eenheid ∆u ∆v θ SD SO Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (tilt) Afstand stralingsbron tot detector Afstand stralingsbron tot object mm mm ◦ mm mm Tabel 4.2: Definitie van de te optimaliseren geometrische parameters in twee dimensies. Tabel 4.1 geeft een overzicht van de geometrische parameters die we in twee dimensies onderscheiden. Het zijn de ‘vaste’ parameters die we niet zullen kalibreren. Tabel 4.2 bevat de parameters die we zullen optimaliseren naargelang het gedrag van de objectieffuncties. De uitwijkingen van de detector in het (u, v)-coördinatensysteem worden gevisualiseerd op figuur 4.2, waar de pijlen steeds de positieve zin aanduiden. We kiezen ervoor om de afstand tussen object en detector enkel te beïnvloeden door de uitwijking ∆v van de detector aan te passen. SD blijft dan constant. Dit brengt het aantal te optimaliseren parameters in deze voorstudie op vier. We behandelen nu kort hoe we in de implementaties ForwardProject2D_geometry.hh en SIRT_geometry.hh de coördinaten van de verschoven detector in het (x, y)-coördinatensysteem van het object bepalen. Deze coördinatentransformatie hangt af van ∆u, ∆v, θ, SD en SO, maar ook van de projectiehoek α, waarvan de zin en richting op figuur 4.1 getoond werden. Veronderstel dat we de detector op de x-as leggen, met zijn middelpunt op de oorsprong. Noem xgi dan de x-coördinaat van detectorcel gi . Tijdens de rotatie van stralingsbron en detector rond het object, heeft deze detectorcel in het (x, y)-coördinatensysteem de coördinaten (x0gi , yg0 i ). Dit coördinatenpaar bepalen we als volgt: x0gi = cos(α) xgi cos(θ) + ∆u + sin(α) − xgi sin(θ) − (SD − SO) + ∆v yg0 i = cos(α) − xgi sin(θ) − (SD − SO) + ∆v − sin(α) xgi cos(θ) + ∆u (4.1) (4.2) Merk op dat we de parameters tijdens elke iteratie k gelijk houden voor elke projectiehoek α. In principe geldt deze aanname enkel in het geval van een perfect planair, circulair traject HOOFDSTUK 4. RECONSTRUCTIE IN TWEE DIMENSIES (a) ∆u (b) ∆v 19 (c) θ Figuur 4.2: Uitwijkingen van de detector in het (u, v)-coördinatensysteem. van de stralingsbron rond het object. Toch maken we deze veronderstelling omdat anders de complexiteit van het optimalisatiealgoritme onhandelbaar groot zou worden. 4.2 4.2.1 Object Definitie Het object met distributie f , getoond op figuur 4.3, is in deze voorstudie een zelfontworpen fantoom van 128 × 128 pixels met enkele eenvoudige geometrische patronen: cirkel, driehoek en rechthoeken. De scherpe randen moeten ons in staat stellen gemakkelijk de scherpte van reconstructies te beoordelen, die berekend zal worden aan de hand van de randen. De lijnen met variërende dikte en grijswaarden staan in verschillende hoeken ten opzichte van elkaar opdat bepaalde artefacten zouden optreden bij het slecht inschatten van de geometrische parameters. De exacte kennis van f en de geparameteriseerde projectieoperator H stelt ons in staat de behaalde resultaten ondubbelzinnig te evalueren. Het is vanzelfsprekend — en net het uitgangspunt van dit onderzoek — dat f en H in werkelijkheid onbekend zijn. Deze voorstudie zal dus voorkennis aanwenden om de objectieffuncties en optimalisatiealgoritmes zo robuust mogelijk te maken, zodat ze later toepasbaar zijn op echte data met onbekende f en H. Figuur 4.3: Tweedimensionaal fantoom. HOOFDSTUK 4. RECONSTRUCTIE IN TWEE DIMENSIES Symbool ∆u ∆v θ SD SO 20 Beschrijving Waarde Eenheid Totale rotatie Aantal projecties Dimensie object in x-richting Dimensie object in y-richting Dimensie objectpixel (isotroop) Dimensie detector in u-richting Dimensie detectorpixel 360 360 128 128 0,15625 1184 0,1 ◦ Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (tilt) Afstand stralingsbron tot detector Afstand stralingsbron tot object -3,0 6,0 -9,0 290,0 151,0 — pixels pixels mm pixels mm mm mm ◦ mm mm Tabel 4.3: Geometrische parameters bij voorwaartse projectie van het fantoom. Symbool Beschrijving Waarde Eenheid ∆u ∆v θ SD SO Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (tilt) Afstand stralingsbron tot detector Afstand stralingsbron tot object 0,0 0,0 0,0 290,0 145,0 mm mm ◦ mm mm Tabel 4.4: Initiële geometrische parameters bij reconstructie. 4.2.2 Parameterkeuze Tabel 4.3 vat de parameters samen van het fantoom en van de geometrie van de (fictieve) CTscanner. Het zijn deze parameters die we zullen gebruiken bij de voorwaartse projectie van het fantoom, om de detectordata g te simuleren. Tabel 4.4 beschrijft voor de te optimaliseren parameters de waarden waarvan men denkt dat ze de werkelijke geometrie beschrijven. Het ultieme doel van het kalibrereren is om vanuit de waarden in tabel 4.4 de waarden uit tabel 4.3 te bereiken. In werkelijkheid zal een betere initiële schatting mogelijk zijn, maar het gebruik van een dergelijke slechte schatting laat ons toe te evalueren hoe goed de optimalisatiealgoritmes de parameterruimte exploreren. 4.2.3 Reconstructies Figuur 4.4 toont voor verschillende iteraties k van SIRT het bekomen tomogram. Het betreft de perfecte reconstructie met parameters uit tabel 4.3. Een kwantitatief beter resultaat is met andere woorden niet haalbaar. Kwalitatief kunnen restauratietechnieken de reconstructie even- HOOFDSTUK 4. RECONSTRUCTIE IN TWEE DIMENSIES (a) k = 1 (b) k = 10 (c) k = 100 21 (d) k = 500 Figuur 4.4: Reconstructie met correcte parameters (tabel 4.3). (a) k = 1 (b) k = 10 (c) k = 100 (d) k = 500 Figuur 4.5: Reconstructie met initiële parameters (tabel 4.4). tueel nog verbeteren, maar zij worden in dit onderzoek buiten beschouwing gelaten. Figuur 4.5 toont voor dezelfde iteraties k de afbeelding die bekomen wordt door te reconstrueren met de parameters uit tabel 4.4. De impact van de foutief ingeschatte parameters is duidelijk groot. Het valt verder op dat het onderscheid van fijn detail, zoals de zichtbaarheid van de randen en de ruimte tussen de balkjes, sterk verbetert naarmate het aantal iteraties k toeneemt. Dit geldt zowel voor de perfecte reconstructie als voor de foute schatting. Dat zelfs de perfecte reconstructie na 500 iteraties nog steeds kleine randartefacten vertoont, is deels te wijten aan de aard van het reconstructiealgoritme, in dit geval SIRT. Figuren 4.6 tot en met 4.9 tonen het effect van telkens één foute geometrische parameter. De uitwijking ∆u van de detector heeft duidelijk de grootste invloed. Een foute inschatting ervan levert dubbele randen en een lager intrinsiek contrast op. ∆v en SO beïnvloeden in eerste plaats de vergroting, maar ook de scherpte: de foute inschatting van SO toont wazige randen van de fijne balkjes rechts. De detectorhoek θ tast de scherpte van de randen aan, naast het introduceren van dubbele randen, zij het minder uitgesproken dan in het geval van ∆u. Extreme waarden van θ beïnvloeden ook de vergroting. De vier voorbeelden tonen dat de horizontale artefacten in de linkerbalk er telkens meer uitgesproken zijn dan in de perfecte reconstructie op figuur 4.4. HOOFDSTUK 4. RECONSTRUCTIE IN TWEE DIMENSIES (a) k = 1 (b) k = 10 (c) k = 100 22 (d) k = 500 Figuur 4.6: ∆u = 0, 0 mm in de aanwezigheid van correcte parameters. (a) k = 1 (b) k = 10 (c) k = 100 (d) k = 500 Figuur 4.7: ∆v = 0, 0 mm in de aanwezigheid van correcte parameters. (a) k = 1 (b) k = 10 (c) k = 100 (d) k = 500 Figuur 4.8: θ = 0, 0◦ in de aanwezigheid van correcte parameters. (a) k = 1 (b) k = 10 (c) k = 100 (d) k = 500 Figuur 4.9: SO =145,0 mm in de aanwezigheid van correcte parameters. Hoofdstuk 5 Optimalisatietechnieken Dit hoofdstuk geeft een inleiding tot algoritmische optimalisatietechnieken. We trachten het kalibreren van CT-scanners volledig te abstraheren tot een dergelijk optimalisatieprobleem, met definitie en afweging van geschikte objectieffuncties en algoritmes. 5.1 5.1.1 Principe Parameters In tabel 4.2 werden reeds de te optimaliseren parameters beschreven. Naar analogie zal tabel 9.2 de parameters geven in het geval van driedimensionale reconstructies. Met Ω = {p1 , p2 , . . . , pn } ∈ Rn duiden we algemeen een verzameling van n parameters aan. De parameters bepalen de kwaliteit van een reconstructie, omdat reconstructiealgoritmes werken met geparameteriseerde projectieoperators H en H−1 . Wanneer we zeggen dat we CT-scanners willen kalibreren, bedoelen we dat we tijdens iteratieve reconstructie de verzameling Ω willen bepalen om een zo goed mogelijke reconstructie te bekomen. Gedurende k iteraties zullen we met dezelfde, door een optimalisatiealgoritme bepaalde parameterverzameling Ω werken. Een kwalitatief goede reconstructie is een scherpe afbeelding met grote spatiale resolutie die dus voldoende detail vertoont. Een goede reconstructie kan visueel waargenomen worden, maar om de parameters automatisch te schatten, is er uiteraard een manier nodig om numeriek te bepalen wat een ‘goede reconstructie’ is. Er is nood aan de definitie van een zogenaamde objectieffunctie. 5.1.2 Objectieffuncties Een objectieffunctie c : Ω ∈ Rn → R kent aan een parameterverzameling Ω een waarde toe die men wil maximaliseren of minimaliseren, naargelang de betekenis van c. In het geval van minimalisatie heeft men het ook wel eens over een ‘kostfunctie’ in plaats van een objectieffunctie. 23 HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN (a) pmin ≤ p ≤ pmax 24 (b) pmin ≤ p ≤ pmax , a(p) ≥ 0 Figuur 5.1: Geïllustreerde terminologie in het vereenvoudigde geval Ω = {p}. De parameters in Ω worden de decisievariabelen pi genoemd, met i ∈ {1, . . . , n}. Vergelijkingen 5.1 tot en met 5.3 zijn bijkomende, beperkende voorwaarden die men typisch oplegt in de context van optimalisatieproblemen. ai (Ω) = 0, i ∈ {1, . . . , m1 } (5.1) ai (Ω) ≤ 0, i ∈ {m1 + 1, . . . , m1 + m2 } (5.2) ai (Ω) ≥ 0, i ∈ {m1 + m2 + 1, . . . , m1 + m2 + m3 } (5.3) m = m1 + m2 + m3 is het aantal beperkende voorwaarden, met ai : Ω ∈ Rn → R gegeven functies die ook een bepaalde kost definiëren, zonder dat die geminimaliseerd of gemaximaliseerd moet worden. Bijkomend kan men afdwingen dat de parameters pi zich in een bepaald bereik moeten bevinden. Het aantal geldige oplossingen in de oplossingenruimte wordt zo beperkt. Figuur 5.1 verduidelijkt het optimalisatieprincipe en de gebruikte terminologie. Wanneer c en ai lineair zijn in de parameters van Ω, wordt het geschetste probleem opgelost door zogenaamd lineair programmeren. In de context van CT is dit onmogelijk: H is praktisch vaak niet te berekenen, wat ook het gebruik van H−1 bemoeilijkt. Objectieffuncties zullen sowieso gedefinieerd moeten worden op de geschatte detectordata (minstens H benodigd) of op de gereconstrueerde afbeeldingen zelf (H en H−1 benodigd). Sectie 5.2 zal specifiek voor het CT-probleem objectieffuncties definiëren. 5.1.3 Optimalisatiealgoritmes Met een optimalisatiealgoritme tracht men het globaal optimum stapsgewijs (iteratief) te bereiken. Een aantal algoritmes slagen erin te convergeren naar een dergelijke oplossing, maar dit hangt af van de aard van het probleem. Door de onbruikbaarheid van de systeemmatrix H zijn we beperkt tot heuristische algoritmes, waarbij het bereiken van het globaal optimum en convergentie nooit gegarandeerd zijn. We onderscheiden verschillende types heuristische algoritmes. HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN 25 Generiek versus probleemafhankelijk Generieke heuristieken zijn zonder veel aanpassingen inzetbaar voor een breed toepassingsgebied van optimalisatieproblemen, onafhankelijk van de aard van het probleem. Dit in tegenstelling tot probleemafhankelijke heuristieken die volledig ontworpen worden voor een specifiek optimalisatieprobleem. De intelligentie van dergelijke algoritmes beroept zich vaak op een soort historische voorkennis van eerdere oplossingen van het probleem. In dit onderzoek geven we de voorkeur aan generieke heuristieken, omdat hun implementaties en prestaties over het algemeen goed gedocumenteerd zijn in de literatuur. Uiteraard zullen specifieke aanpassingen nodig zijn naargelang de aard van de CT-context en de problemen die zich erin stellen. Zoekalgoritme versus constructief algoritme Zoekalgoritmes starten vanuit een bepaalde oplossing die willekeurig is of reeds voldoende goed bevonden werd. Het algoritme suggereert tal van andere oplossingen die uit vorige oplossingen ontstaan, door bijvoorbeeld uit goed presterende oplossingen parameters te combineren of bepaalde parameters in een weloverwogen richting te duwen. Er ontstaat een traject door de oplossingenruimte. Constructieve algoritmes daarentegen nemen een beslissing op basis van alle parameters van de huidige oplossing en maken in grote mate gebruik van voorkennis over hun gedrag en wederzijdse beïnvloeding. Een constructief algoritme zou veel inzicht vragen in hoe de geometrische parameters van de CTscanner zich tot elkaar verhouden: hoe beïnvloeden ze elkaar? Welke parameters kunnen elkaar opheffen? Het zou een sterk wiskundige studie vergen, die we omzeilen door aanvankelijk een zoekalgoritme te gebruiken en later via reverse engineering alsnog empirisch verbanden tussen de parameters vast te stellen. Dit komt uitvoerig in Hoofdstuk 6 en Hoofdstuk 7 aan bod. Stochastisch versus deterministisch algoritme Een laatste onderscheid in heuristische optimalisatiealgoritmes is het al dan niet gebruiken van toevalsvariabelen die de waarden van de te optimaliseren parameters beïnvloeden. Deterministische algoritmen gebruiken vaste regels om nieuwe oplossingen te genereren, wederom gebaseerd op voorkennis over het gedrag van de parameters. Een deterministisch algoritme zal daarom altijd hetzelfde optimum bereiken wanneer het start vanuit dezelfde initiële oplossing. Het werken met stochastische algoritmen zal ons in dit onderzoek toelaten om te kijken of het optimalisatiealgoritme ondanks (dankzij?) de stochastische aard naar dezelfde oplossing streeft. Bovendien laat het het zoeken van oplossingen toe die anders — afhankelijk van de kwaliteit van de voorkennis om deterministische beslissingen te nemen — misschien onverkend zouden blijven. Het is een manier om een lokaal van een globaal optimum te onderscheiden. HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN 5.2 26 Objectieffuncties voor het CT-probleem We kunnen objectieffuncties voor het CT-probleem op twee manieren definiëren. Ofwel berekent men een numerieke waarde uit de geschatte detectordata. In het geval van één iteratie k vereist dit enkel een voorwaartse projectie, voor k > 1 gaat het om k voorwaartse en k − 1 terugwaartse projecties. Ofwel berekent men een numerieke waarde uit de beelddata. Dit vereist evenveel voorwaartse als terugwaartse projecties. Een ideale objectieffunctie heeft drie belangrijke eigenschappen [13]: 1. De objectieffunctie heeft een globaal minimum of maximum bij gebruik van de werkelijke geometrische parameters. 2. Lokale minima of maxima ontbreken zoveel als mogelijk. 3. De objectieffunctie is betrouwbaar te evalueren bij onvolledige reconstructies (gering aantal iteraties k, beperkt aantal projectiehoeken,. . . ) De laatste eigenschap is er vooral op gericht om het kalibreren binnen redelijke tijd uit te voeren. 5.2.1 Entropie Het minimaliseren van de entropie E heeft als doel het contrast van de gereconstrueerde afbeelding te vergroten, in de veronderstelling dat het beste contrast optreedt bij de parameters die zich het dichtste bij de werkelijke parameters bevinden. Entropie als objectieffunctie wordt geëvalueerd op de beelddata. Formeel [12]: E=− B X h(b) · ln(h(b)) (5.4) b=1 H(b) h(b) = PB b=1 H(b) (5.5) H is het histogram van de gereconstrueerde afbeelding. Een histogram verdeelt het grijswaardebereik van de gereconstrueerde afbeelding in B bins van gelijke grootte. Voor elke bin b ∈ {1, . . . , B} geeft H(b) het aantal pixels (voxels) in de afbeelding binnen het grijswaardebereik dat b voorstelt. Entropie moet geïnterpreteerd worden als een maat voor ‘onzekerheid’. Een lage entropie betekent weinig onzekerheid: de kans om een pixel binnen een bepaald grijswaardenbereik aan te treffen, is groot. Op het histogram kenmerkt zich deze situatie door een beperkt aantal pieken bij bepaalde grijswaarden of bins. Een hoge entropie betekent dat er veel pixels zijn met verschillende grijswaarden. Men kan in dit geval op het histogram geen nauwe regio aanduiden waarin HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN (a) onscherp 27 (b) scherper Figuur 5.2: Onscherpe randovergangen bevatten een groter aantal verschillende grijswaarden. (a) onscherp (b) scherper Figuur 5.3: Histogrammen in overeenstemming met figuur 5.2. de meeste pixels zich bevinden. Figuren 5.2 en 5.3 verduidelijken dit. De scherpe afbeelding heeft een lagere entropie dan de onscherpe. Het voordeel van het minimaliseren van entropie is de relatieve eenvoud van het proces. Een histogram opstellen kan over het algemeen snel, zonder veel rekenwerk. Er zijn echter twee belangrijke nadelen aan entropie als objectieffunctie verbonden [13]: 1. Entropie negeert spatiale informatie. 2. Entropie minimaliseren neigt naar het bevorderen van segmenten in het beeld in plaats van algemene scherpte. Deze beperkingen dwingen ons verder op zoek te gaan naar andere objectieffuncties, die in de literatuur aanvankelijk minder voorkwamen dan entropie (zie ook sectie 2.5.2), maar tegemoetkomen aan voornoemde beperkingen. HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN (a) E (100) = 1, 00 28 (b) E (100) = 6, 67 (c) E (100) = 852, 02 Figuur 5.4: Genormaliseerde projectiefout voor verschillende reconstructies. 5.2.2 Projectiefout (k) De projectiefout EΩ is gedefinieerd op de detectordata en ziet er formeel als volgt uit [15]: (k) EΩ = P X (k) |gi − (HˆfΩ )i | (5.6) i=1 ˆf (k) is de afbeelding die ontstaat na k iteraties van het iteratief reconstructiealgoritme met geΩ bruik van een bepaalde parametervector Ω. Figuur 5.4 toont de projectiefout voor verschillende reconstructies (de waarden werden genormaliseerd op basis van de waarde bij perfecte reconstructie). Het gebruik van de projectiefout als objectieffunctie is gesteund op het feit dat (een klasse van) iteratieve reconstructiealgoritmes deze projectiefout wil minimaliseren, volgens vergelijking 3.9. Hoofdstuk 6 bespreekt het minimaliseren van de projectiefout in detail. 5.2.3 Scherpte Net zoals entropie definiëren we scherpte op de beelddata. Scherpe afbeeldingen bevatten over het algemeen de maximale hoeveelheid hoogfrequente informatie mogelijk. Slechte scherpstelling of het wazig maken van randen zullen deze hoogfrequente informatie typisch onderdrukken. Scherpte als objectieffunctie slaagt erin hoogfrequente data kwantitatief uit te drukken en zou over het algemeen een globaal maximum bezitten [13], hoewel net zoals bij de projectiefout zal blijken dat dit maximum afhangt van het aantal iteraties k van het iteratief reconstructiealgoritme. (k) (k) (k) De scherpte SΩ van ˆfΩ is formeel gedefinieerd als de L2 -norm van de gradiënt van ˆfΩ [13]: (k) (k) SΩ = k∇ˆfΩ k2 = XX x y (k) |∇fˆΩ (x, y)|2 (5.7) HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN (a) reconstructie (b) convolutie G 29 (c) convolutie GT Figuur 5.5: Randdetectie door middel van het Sobelmasker G. (a) reconstructie (b) convolutie G (c) convolutie GT Figuur 5.6: Randdetectie door middel van het Sobelmasker G. De gegeven formule geldt in twee dimensies. In geval van driedimensionale reconstructie kan de scherpte per doorsnede gesommeerd worden om de scherpte van de volledige afbeelding uit te drukken. (k) |∇fˆΩ |2 kan op verschillende manier bepaald worden, waaronder de afleidingseigenschap van de eendimensionale, discrete Fouriertransformatie. Een eenvoudige benadering bestaat er echter in het Sobelmasker G te gebruiken: (k) (k) (k) |∇fˆΩ |2 = (G ∗ ˆfΩ )2 + (GT ∗ ˆfΩ )2 −1 0 1 G = −2 0 2 −1 0 1 (5.8) (5.9) De operator ∗ is de convolutieoperator. Het gebruik van het Sobelmasker G betekent dat het bepalen van de scherpte gebaseerd is op randdetectie. G detecteert horizontale randen, GT verticale. Figuur 5.6 toont de invloed van het Sobelmasker op een gereconstrueerde afbeelding. Figuur 5.7 toont de genormaliseerde scherpte voor verschillende reconstructies (normalisatie met de scherpte van de perfecte reconstructie). Het Sobelmasker is ook in drie dimensies te gebruiken, waardoor het sommeren van de scherpte per doorsnede niet meer nodig is. Het grootste nadeel is dat de scherpte strikt genomen niet schaalinvariant is: de scherpte neemt toe met de vergrotingsfactor M = SO/SD [13]. De veronderstelling dat M constant moet zijn, is in de praktijk vaak niet mogelijk. Bovendien, mochten we toch met een centraal object werken, HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN 30 dan kan dit object invariant zijn voor sommige parameters, waardoor de conclusies getrokken uit het kalibreren mogelijk niet toepasbaar zijn op andere reconstructies. Hoofdstuk 7 behandelt de maximalisatie van scherpte in detail, waaronder dit probleem. (a) S (100) = 1, 00 (b) S (100) = 0, 94 (c) S (100) = 0, 83 Figuur 5.7: Genormaliseerde scherpte voor verschillende reconstructies. 5.3 Optimalisatiealgoritmes voor het CT-probleem In sectie 5.1.3 beargumenteerden we reeds de keuze voor een stochastisch zoekalgoritme. We bespreken nu twee algoritmes die aan dit criterium voldoen en in de literatuur voorkomen als algoritmes om CT-scanners te kalibreren [3][11][13]. Het zijn algoritmes die steeds één objectieffunctie in rekening brengen. Hoofdstuk 8 zal de combinatie van objectieffuncties bespreken. 5.3.1 Nelder-Mead algoritme De Nelder-Mead procedure is een heuristische, directe zoekmethode en staat beschreven in algoritme 5.1 (algoritme 5.2 beschrijft een hulpfunctie) [23]. De procedure geldt voor het minimaliseren van een objectieffunctie c in functie van Ω. In het geval van maximalisatie kan men eenvoudigweg werken met 1/c(Ω) zonder het algoritme aan te passen. Een implementatie in C++ is te vinden in de klasse Simplex.hh. Werking Stel dat de te optimaliseren parameterverzameling Ω bestaat uit n parameters pi . Het NelderMead algoritme zal dan een polytoop of simplex construeren met n+1 hoekpunten in n dimensies (een polytoop is een uitbreiding van het veelvlak in meer dimensies). Elk hoekpunt komt overeen met een andere oplossing Ωj , j ∈ {1, . . . , n + 1}. Het Nelder-Mead algoritme zal per iteratie de hoekpunten van het polytoop verplaatsen in de hoop oplossingen te bekomen die de objectieffunctie nog verder minimaliseren. Het algoritme zal elke operatie uitvoeren op alle parameters van een oplossing Ωj , en alle andere oplossingen mee in rekening brengen. Om het onderscheid te maken met een iteratie k uit de iteratieve reconstructiealgoritmes, noemen we een iteratie HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN (a) reflectie (b) expansie (c) contractie 31 (d) contractie Figuur 5.8: De vier basisoperaties van het Nelder-Mead algoritme. van een optimalisatiealgoritme een tableau t. Initialisatie gebeurt doorgaans met n + 1 initiële schattingen. Het heeft weinig zin elke stap van algoritme 5.1 in woorden te beschrijven. We houden het bij het illustreren van enkele belangrijke operaties. Bij aanvang van elk tableau worden de oplossingen gerangschikt van minimale naar maximale kost, waarbij Ωn+1 de oplossing met maximale (en dus slechtste) kost is. Lijn 4 van het algoritme toont de berekening van het zwaartepunt Ω van de n beste oplossingen. Het is nu de bedoeling Ωn+1 te vervangen. Lijn 5 berekent het reflectiepunt Ωr (figuur 5.8a). Lijn 10 toont de berekening van het expansiepunt Ωe (figuur 5.8b). Lijn 18 berekent het uitwendig contractiepunt Ωc (figuur 5.8c). Lijn 25 berekent het inwendig contractiepunt Ωcc (figuur 5.8d). Naargelang de kost verbonden met Ωr , Ωe , Ωc en Ωcc , zal Ωn+1 door een van deze oplossingen vervangen worden. Het Nelder-Mead algoritme gebruikt voor reflectie, expansie, contractie en inkrimping respectievelijk de parameters ρ, χ, γ en σ. Deze parameters moeten aan volgende voorwaarden voldoen: ρ>0 (5.10) χ>1 (5.11) χ>ρ (5.12) 0<γ<1 (5.13) 0<σ<1 (5.14) In optimalisatieproblemen waar aanvankelijk weinig bekend is over het gedrag van de parameters en objectieffuncties, kiest men meestal ρ = 1, χ = 2, γ = 1/2 en σ = 1/2 [24]. Het zijn deze waarden die ook wij zullen hanteren. HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN 32 Algoritme 5.1: Nelder-Mead procedure 1 2 3 4 Initialiseer Simplex = {Ω1 , . . . , Ωn+1 } met initiële oplossingen Ωj while stopcriterium niet vervuld do Rangschik Simplex = {Ω1 , . . . , Ωn+1 } zodat c(Ω1 ) ≤ c(Ω2 ) ≤ . . . ≤ c(Ωn+1 ) n P pi Ω← n i=1 5 6 7 8 9 10 11 12 13 14 15 Ωr ← Ω + ρ(Ω − Ωn+1 ) if c(Ω1 ) ≤ c(Ωr ) < c(Ωn ) then Simplex ← {Simplex\{Ωn+1 }} ∪ {Ωr } else if c(Ωr ) < c(Ω1 ) then Ωe ← Ω + χ(Ωr − Ω) if c(Ωe ) < c(Ωr ) then Simplex ← {Simplex\{Ωn+1 }} ∪ {Ωe } else Simplex ← {Simplex\{Ωn+1 }} ∪ {Ωr } end else if c(Ωr ) < c(Ωn+1 ) then Ωc ← Ω + γ(Ωr − Ω) if c(Ωc ) < c(Ωr ) then Simplex ← {Simplex\{Ωn+1 }} ∪ {Ωc } else Simplex ← Shrink(Simplex,σ) end 16 17 18 19 20 21 22 23 30 else Ωcc ← Ω − γ(Ω − Ωn+1 ) if c(Ωcc ) < c(Ωn+1 ) then Simplex ← {Simplex\{Ωn+1 }} ∪ {Ωcc } else Simplex ← Shrink(Simplex,σ) end 31 end 24 25 26 27 28 29 end 32 33 34 end end Stopcriterium We stoppen het optimalisatiealgoritme wanneer de kost van de optimale parameterverzameling Ωt in tableau t onvoldoende verschilt van het minimum c(Ωt−1 ) uit het vorige tableau: c(Ωt−1 ) − c(Ωt ) < c(Ωt ) (5.15) HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN 33 Algoritme 5.2: Nelder-Mead procedure: Shrink(Simplex, σ) 1 2 3 4 5 6 Simplex0 ← {Ω1 } for j = 2 to n + 1 do Ω0j ← Ω1 + σ(Ωj − Ω1 ) Simplex0 ← Simplex0 ∪ {Ω0j } end return(Simplex0 ) We zullen goede resultaten bekomen met = 0.0001. Om lokale minima te vermijden, stoppen we in de praktijk het algoritme pas wanneer voor strikt opeenvolgende tableaus t een aantal keer aan vergelijking 5.15 voldaan is. 5.3.2 Genetisch algoritme Genetische algoritmes leveren goede benaderingen van globale extrema, zelfs in hoogdimensionale oplossingenruimtes [25]. Deze klasse van algoritmes bootsen het natuurlijke proces van evolutie na. Een stappenplan is te vinden in algoritme 5.3 [3]. In wat volgt, beschrijven we het optimalisatiealgoritme om een objectieffunctie te maximaliseren. Minimalisatie is mogelijk door te werken met 1/c(Ω) in plaats van c(Ω). Een implementatie in C++ is te vinden in de klasse Population.hh, met Genetics.hh als ouderklasse (zie Bijlage C). Initiële populatie Elke oplossing Ωj wordt een individu van de populatie Tt genoemd: j ∈ {1, . . . , |Tt |}. De grootte |Tt | van de populatie wordt vooraf bepaald en blijft gelijk voor alle t (| · | staat hier symbool voor de kardinaliteit). Concreet geven we voor t = 0 een intiële schatting Ω1 op. Ω2 tot en met Ω|T0 | stellen we gelijk aan Ω1 , maar we veranderen hun individuele parameters pi door er een willekeurig getal bij op te tellen. Dit willekeurig getal is afkomstig uit een normale verdeling met gemiddelde 0 en standaardafwijking σi . Bij gebrek aan kennis over σi , blijkt σi = 1 een bruikbare waarde. Voortplanting Om een nieuwe populatie Tt+1 samen te stellen, combineren we willekeurig individuele parameters pi van een gekozen ‘ouderpaar’. Dit ouderpaar bestaat uit twee individuen die in populatie Tt goed gepresteerd hebben in termen van het maximaliseren van c. Deze voortplantingsstap wordt geïllustreerd op figuur 5.9. HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN 34 Algoritme 5.3: Genetisch algoritme 1 2 3 4 5 6 Creër een initiële populatie T0 . Zet t = 0. Bereken voor elk individu Ωj de objectiefwaarde c(Ωj ). Indien voldaan aan stopcriterium: individu met grootste c(Ωj ) is optimum. Stop. Zet t = t + 1 en creër een nieuwe populatie Tt (voortplanting met elitarisme). Pas mutatie toe op de nieuwe populatie Tt . Bereken voor elk individu Ωj de objectiefwaarde c(Ωj ). Ga naar stap 3. Figuur 5.9: Principe van voortplanting: elke kleur stelt een individuele parameter voor. Om ervoor te zorgen dat niet alleen de beste individuen het voortplantingsproces domineren, kennen we aan elk individu een kans toe dat het geselecteerd wordt als ouder. De kans dat Ωj als ouder geselecteerd wordt, stellen we gelijk aan sj [26]: sj = c(Ωj ) |T Pt | (5.16) c(Ωl ) l=1 Elk individu kan dus als ouder geselecteerd worden, maar deze kans neemt wel toe naarmate de objectieffunctie voor het individu een hogere waarde teruggaf. Mutatie De individuen die ontstaan uit de voortplantingsstap, ondergaan mutatie. Het muteren gebeurt eveneens door een willekeurig getal op te tellen bij de individuele parameters pi . Dit willekeurig getal is afkomstig uit een normale verdeling met gemiddelde 0 en standaardafwijking σi . Bij gebrek aan kennis over σi , blijkt σi = 1 een bruikbare waarde. Mutatie van een parameter vindt slechts met een bepaalde kans plaats. Deze kans wordt best groter gemaakt naarmate men met een ruwere initiële schatting werkt: 1/n of 1/(2n) zijn dan bruikbaar. Naarmate de individuen naar een optimum streven, wordt de kans om een parameter te muteren best verkleind, bijvoorbeeld naar 1/|Tt |. Deze laatste ingreep zal een invloed hebben op de nauwkeurigheid van de finale resultaten. De keuze om met een normale verdeling te werken [3], is ingegeven door de kennis van σi die men heeft naarmate men het kalibreren herhaalt en van de bekomen resultaten gemiddelde en standaardafwijking bijhoudt. Strikt genomen zou mutatie echter moeten plaatsvinden op bitre- HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN 35 presentaties van de individuele parameters [25]. De methode met σi neemt echter de moeilijkheid van het bepalen van een goede bitrepresentatie weg. Ten slotte bewaren we uit elke populatie een aantal van de beste individuen uit de vorige populatie, zonder hun individuele parameters te muteren. Op die manier zorgen we ervoor dat er geen goede oplossingen verloren gaan als de voortplanting niets oplevert. Dit principe noemen we elitarisme. In sectie 6.3.3 zal het genetisch algoritme verder aangepast worden naargelang de specifieke problemen die zich zullen stellen bij het kalibreren van CT-scanners. De populatiegrootte zetten we op 6 tot 8 individuen per te optimaliseren parameter [3]. Stopcriterium We hanteren hetzelfde stopcriterium als bij de Nelder-Mead procedure: als de waarde van c voor opeenvolgende tableaus t nog maar nauwelijks toeneemt, stoppen we het genetisch algoritme en wordt het best presterende individu uit het laatste tableau als ‘winnaar’ gekozen. 5.4 Conclusie Dat scherpte beter zou presteren dan entropie [13], zet ons ertoe aan enkel de projectiefout en scherpte in volgende hoofdstukken als objectieffuncties te bespreken. Welke parameters laten zich het best met welke objectieffunctie optimaliseren, en na hoeveel iteraties van het iteratief reconstructiealgoritme kunnen we betrouwbaar de waarde van de objectieffuncties evalueren? Is het echt nodig alle parameters samen te optimaliseren, zoals bijvoorbeeld in het onderzoek van Sawall et al. [3] en Wein et al. [15]? Wat de optimalisatiealgoritmes betreft, gaat er al een lichte voorkeur uit naar het genetisch algoritme. Het is immers een bekend probleem dat de Nelder-Mead procedure, in tegenstelling tot het genetisch algoritme, niet uit lokale extrema kan ontsnappen [24]. Lokale extrema vormen in ons onderzoek een reëel gevaar [16] en het is met andere woorden te riskant om blindelings het Nelder-Mead algoritme toe te passen op het kaliberen van CT-scanners, zoals tot nu toe het geval was in eerdere studies [11][13]. In de volgende hoofdstukken zal blijken dat de projectiefout en scherpte enkel onder bepaalde voorwaarden geen lokale extrema bezitten. Toch zullen deze vaststellingen het Nelder-Mead algoritme niet geheel overbodig maken. De Nelder-Mead procedure kan sneller dan het genetisch algoritme steile hellingen van de objectieffunctie nemen, in het geval er nauwelijks lokale extrema zijn [23]. De keuze voor een genetisch algoritme in het onderzoek van Sawall et al. [3] blijkt dus over het algemeen gegrond, maar zij optimaliseren alle geometrische parameters tegelijkertijd. Dit verhoogt de complexiteit van het probleem aanzienlijk. Wij willen onder meer nagaan of we HOOFDSTUK 5. OPTIMALISATIETECHNIEKEN 36 tot een optimum kunnen komen door parameters afzonderlijk te optimaliseren. Hoe dichter we bij het optimum komen, hoe bruikbaarder Nelder-Mead alsnog zal worden. De twee algoritmes sluiten elkaar dus niet uit, maar moeten elkaar aanvullen. Hoofdstuk 6 Minimalisatie projectiefout We bespreken hier het kalibreren van CT-scanners aan de hand van het minimaliseren van de (k) (k) projectiefout EΩ . De objectieffunctie EΩ kwam reeds formeel aan bod in sectie 5.2.2. Het gebruikte optimalisatiealgoritme zal in de meeste gevallen het genetisch algoritme zijn, dat in dit hoofdstuk verdere aanpassingen zal ondergaan om tegemoet te komen aan specifieke problemen die zich stellen in de context van CT. 6.1 Invloed parameters op projectiefout We willen nagaan wat de invloed van de geometrische parameters op de projectiefout is. Wanneer we het hebben over parameterverzameling Ω, dan bedoelen we de werkelijke parameters van het ˆ staat voor onze initiële schatting uit tabel 4.5. systeem zoals getoond in tabel 4.3. Ω We maken nog steeds gebruik van SIRT. Het aantal iteraties van dit reconstructiealgoritme duiden we aan met k. Een iteratie van het optimalisatiealgoritme noemen we een tableau t. 6.1.1 Horizontale uitwijking detector ∆u Uit de studie van Smekal et al. [27] weten we dat de positie van de detector de grootste invloed op de reconstructiekwaliteit heeft. Dit wordt in ons onderzoek visueel gestaafd door figuur 4.6. We verwachten deze nefaste invloed uiteraard ook in de projectieruimte waar te nemen, in de vorm van een grote projectiefout. We zetten een experiment op waarin we reconstructies uitvoeren voor verschillende waarden van ∆u, met alle andere parameters vastgehouden op hun correcte waarden uit Ω. Figuur 6.1 toont (k) de behaalde resultaten. Merk op dat we de reciproke projectiefout 1/EΩ visualiseren, die we dus willen maximaliseren. Ook de scherpte wordt al getoond, maar een bespreking ervan volgt 37 HOOFDSTUK 6. MINIMALISATIE PROJECTIEFOUT (a) k = 2 (c) k = 20 38 (b) k = 10 (d) k = 100 Figuur 6.1: Invloed van ∆u op objectieffuncties in aanwezigheid van correcte parameters (Ω). pas in Hoofdstuk 7. De waarden werden tevens genormaliseerd met de waarden bij een correcte parameter, in dit geval bij ∆u = −3 mm. Het valt op dat de reciproke projectiefout meteen (i.e. na weinig iteraties) een maximum oplevert bij de beoogde waarde ∆u = −3 mm. Er zijn geen lokale extrema aanwezig. Naarmate het aantal iteraties toeneemt, wordt het verschil tussen de projectiefout bij ∆u = −3 mm en de projectiefout bij waarden in zijn directe omgeving, groter. Bij kennis van de parameters ∆v, θ en SO, kunnen we ∆u uitermate snel optimaliseren op basis van de projectiefout. Gezien het hier om één te optimaliseren parameter gaat, is het Nelder-Mead algoritme aangewezen (ook al omdat er slechts één extremum is). Interessanter is natuurlijk in hoeverre ∆u zich laat optimaliseren in de aanwezigheid van andere parameters die (nog) niet optimaal zijn. Als we ook dan ∆u onafhankelijk van de rest kunnen optimaliseren, daalt de complexiteit van de zoekruimte aanzienlijk. We herhalen hetzelfde experiment met variabele ∆u, maar we gebruiken voor de andere parameters de waarden uit de ˆ Het resultaat is samengevat in figuur 6.2. initiële schatting Ω. Het resultaat is gelijkaardig aan dat uit figuur 6.1. Dit betekent twee dingen. Ten eerste is de invloed van ∆u op de projectiefout erg groot. Ten tweede laat ∆u zich onafhankelijk van de andere parameters optimaliseren. Nagenoeg perfecte alignatie van de geprojecteerde data HOOFDSTUK 6. MINIMALISATIE PROJECTIEFOUT (a) k = 2 (c) k = 20 39 (b) k = 10 (d) k = 100 ˆ Figuur 6.2: Invloed van ∆u op objectieffuncties in aanwezigheid van initiële parameters (Ω). met de meting g is dus mogelijk in de aanwezigheid van andere parameters die ook een fout in de projectieruimte introduceren. Verschuivingen van de detector in zijn vlak blijken vroeg een richtinggevende invloed op de projectiefout te hebben. Een snelle optimalisatie is mogelijk. 6.1.2 Verticale uitwijking detector ∆v De verticale uitwijking ∆v is geen verschuiving van de detector in zijn vlak, en we verwachten dus dat de projectiefout minder bruikbaar zal zijn om deze parameter te optimaliseren. Wederom testen we voor verschillende waarden van ∆v de invloed op de projectiefout, in aanwezigheid van de optimale parameters uit Ω. Het resultaat is te zien op figuur 6.3. De reciproke projectiefout vertoont pas een maximum bij ∆v = 6 mm na k = 20. Dit maximum bevindt zich evenwel in de nabijheid van lokale maxima. Het is pas voor k = 100 dat het maximum bij de beoogde waarde ∆v = 6 mm zich duidelijk aftekent. Er zijn nog steeds lokale maxima, maar die bevinden zich bij een veel kleinere reciproke projectiefout. De projectiefout is in dit geval een goede schatter voor ∆v, al moet de projectiefout na een voldoende aantal iteraties geëvalueerd worden. ˆ laat ∆v zich niet schatten op basis van de projectieIn aanwezigheid van de initiële parameters Ω, fout, zoals blijkt uit figuur 6.4. Omdat ∆u een grote invloed had op de projectiefout, hebben we HOOFDSTUK 6. MINIMALISATIE PROJECTIEFOUT (a) k = 2 (c) k = 20 40 (b) k = 10 (d) k = 100 Figuur 6.3: Invloed van ∆v op objectieffuncties in aanwezigheid van correcte parameters (Ω). (a) k = 2 (b) k = 100 ˆ Figuur 6.4: Invloed van ∆v op objectieffuncties in aanwezigheid van initiële parameters (Ω). het experiment ook herhaald met ∆u = −3 mm. Het resultaat is te zien op figuur 6.5: er treedt geen verbetering op. De kennis van ∆u alleen is dus onvoldoende om ∆v in de aanwezigheid van foute parameters te schatten op basis van de projectiefout: er tekent zich geen extremum af in de buurt van het beoogde ∆v = 6 mm. We vermoeden reeds dat parameters die de vergrotingsfactor M = SO/SD beïnvloeden (∆v en SO) zich enkel samen zullen laten optimaliseren met betrouwbare kennis van de andere parameters. HOOFDSTUK 6. MINIMALISATIE PROJECTIEFOUT (a) k = 2 41 (b) k = 100 ˆ met ∆u = −3 mm. Figuur 6.5: Invloed van ∆v in aanwezigheid van initiële parameters (Ω), (a) k = 2 (c) k = 20 (b) k = 10 (d) k = 100 Figuur 6.6: Invloed van θ op objectieffuncties in aanwezigheid van correcte parameters (Ω). 6.1.3 Detectortilt θ Figuur 6.6 toont voor aanpassingen van θ bij optimale parameters Ω de resulterende projectiefout. Er tekent zich een maximum af voor de reciproke projectiefout in de buurt van het beoogde optimum θ = −9◦ , maar dit maximum komt pas voor k = 20 op de juiste plaats te liggen. In aanwezigheid van de initiële parameters, zie figuur 6.7, tekent er zich geen maximum af bij θ = −9◦ , ook niet na een groot aantal iteraties k. Het is pas wanneer we ∆u aanpassen tot zijn HOOFDSTUK 6. MINIMALISATIE PROJECTIEFOUT (a) k = 2 42 (b) k = 100 ˆ Figuur 6.7: Invloed van θ op objectieffuncties in aanwezigheid van initiële parameters (Ω). (a) k = 2 (b) k = 100 ˆ met ∆u = −3 mm. Figuur 6.8: Invloed van θ in aanwezigheid van initiële parameters (Ω), optimale waarde, θ een maximum krijgt bij θ = −9◦ (zie figuur 6.8). Toch moeten we ook hier wachten tot een hondertal iteraties om de projectiefout betrouwbaar te evalueren. Het toont wel het belang aan van ∆u als cruciale parameter. 6.1.4 Afstand stralingsbron tot object SO Figuur 6.9 toont voor aanpassingen van SO bij optimale parameters Ω de resulterende projectiefout. Er tekent zich pas na ongeveer k = 100 een maximum af voor de reciproke projectiefout bij het beoogde optimum SO = 151 mm. In aanwezigheid van de initiële parameters, zie figuur 6.10, tekent er zich geen maximum af bij SO = 151 mm (integendeel), ook niet voor een groot aantal iteraties k. Ook het vasthouden van ∆u = −3 mm helpt niet (zie figuur 6.11). We zien hier hetzelfde fenomeen opduiken als in de situatie met ∆v, de andere parameter die de vergrotingsfactor M rechtstreeks aantast. HOOFDSTUK 6. MINIMALISATIE PROJECTIEFOUT (a) k = 2 43 (b) k = 100 Figuur 6.9: Invloed van SO op objectieffuncties in aanwezigheid van correcte parameters (Ω). (a) k = 2 (b) k = 100 ˆ Figuur 6.10: Invloed van SO op objectieffuncties in aanwezigheid van initiële parameters (Ω). (a) k = 2 (b) k = 100 ˆ met ∆u = −3 mm. Figuur 6.11: Invloed van SO in aanwezigheid van initiële parameters (Ω), 6.2 Gedrag projectiefout Figuur 6.12 toont hoe de projectiefout evolueert naarmate het aantal iteraties toeneemt (de waarden werden genormaliseerd met de projectiefout bij optimale parameters voor k = 2). Ten eerste merken we hoe de projectiefout een monotoon dalende functie is. Dit geldt voor om het HOOFDSTUK 6. MINIMALISATIE PROJECTIEFOUT 44 Figuur 6.12: Globaal gedrag van de projectiefout. even welke reconstructie. Ten tweede stagneert de projectiefout voor reconstructies met foute parameters snel. Ter vergelijking: na 100 iteraties bedraagt de projectiefout van de reconstructie met optimale parameters nog maar 2,4% van de projectiefout na 2 iteraties; voor de reconstructie met initiële parameters is dat 79,4%. De projectiefout van de reconstructie met optimale parameters bedraagt na 800 iteraties 1,6% van de projectiefout bij 100 iteraties; bij reconstructie met initiële parameters is dat 99,8%. Bovendien kunnen er snijpunten optreden tussen de curves van de projectiefout voor verschillende reconstructies. Deze snijpunten doen zich onder meer voor wanneer de projectiefout voor een correct ingeschatte parameter pas minimaal wordt na voldoende iteraties, zie bijvoorbeeld figuur 6.8 voor de invloed van θ op de projectiefout. We merken wel op dat bij een voldoende groot aantal iteraties de optimale reconstructie altijd de minimale projectiefout zal hebben. 6.3 6.3.1 Optimalisatie Directe optimalisatie Uit voorgaande observaties wordt duidelijk dat het geen zin heeft alle parameters tegelijkertijd te optimaliseren door de projectiefout na een beperkt aantal iteraties (e.g. k = 20) te evalueren. De parameters ∆v en SO laten zich (samen) pas na veel iteraties optimaliseren, en enkel in de aanwezigheid van correcte ∆u en θ. Deze laatste parameters kunnen al na veel minder iteraties correct geschat worden, onafhankelijk van ∆v en SO. Alle parameters tegelijkertijd optimaliseren, zoals gebruikelijk in de literatuur [3][15], vereist dus een te groot aantal iteraties van het iteratief reconstructiealgoritme en gebruikt een te grote zoekruimte. Toepassing van het Nelder-Mead algoritme op alle parameters, met evaluatie van de projectiefout na 200 iteraties, leverde niet het optimum op. De resultaten waren ∆u = −2, 95 mm, ∆v = 3, 73 mm, θ = −5, 74◦ en SO = 149, 62 mm. Het algoritme is niet uit een lokaal minimum kunnen ontsnappen, want het optimum Ω had een nog veel kleinere projectiefout dan deze parameterverzameling. Het Nelder-Mead algoritme was bovendien niet in staat de parameter ∆u te verfijnen tot −3 mm, wat in aanwezigheid van de andere parameters een kleinere projectiefout had opgeleverd. HOOFDSTUK 6. MINIMALISATIE PROJECTIEFOUT (a) Nelder-Mead (b) genetisch 45 (c) combinatie Figuur 6.13: (a) en (b): directe optimalisatie, (c): stapsgewijze optimalisatie Het genetisch algoritme lost deze tekortkomingen op, weliswaar tegen de prijs van meer reconstructies. We behaalden het resultaat ∆u = −2, 981 mm, ∆v = 5, 882 mm, θ = −9, 784◦ en SO = 152, 014 mm. Figuur 6.13 vergelijkt deze parameters met het resultaat van het NelderMead algoritme. Het is duidelijk dat de parameterschatting van het genetisch algoritme niet alleen dichter bij het optimum ligt (in termen van afstand), maar dat ook de reconstructie visueel beter is. Het resultaat zou nog verfijnd kunnen worden, door het genetisch algoritme met een kleinere standaardafwijking op de parameters te laten werken tijdens de mutatiestap. Het is tevens mogelijk het Nelder-Mead algoritme op deze schatting toe te passen. Het meest nabijgelegen minimum, waarin de procedure hoogstwaarschijnlijk verzeild zal raken, zal immers het globale minimum zijn. 6.3.2 Stapsgewijze optimalisatie Het grote aantal iteraties k ≥ 200 en het aanzienlijke aantal reconstructies per tableau van het genetisch algoritme (typisch 6 tot 8 reconstructies per parameter [3]), valt makkelijk te omzeilen door de resultaten uit sectie 6.1 te gebruiken. We kunnen op basis hiervan een methode voorstellen die parameters afzonderlijk optimaliseert en het aantal iteraties beperkt houdt. Het stappenplan ziet er als volgt uit: 1. Optimaliseer ∆u met het Nelder-Mead algoritme. Zet k = 2. 2. Optimaliseer θ met het Nelder-Mead algoritme. Zet k = 100. 3. Optimaliseer ∆v en SO met het genetisch algoritme. Zet |Tt | = 12 en k = 200. Het voordeel van het Nelder-Mead algoritme in stap 1 en 2 is de goede convergentie in deze omstandigheden. De Nelder-Mead procedure is immers in staat om bij functies met één extremum zeer snel steile hellingen te nemen [24]. Uit figuur 6.2 weten we dat dit voor ∆u het geval is; bij θ is controle vereist of het algoritme niet in een lokaal extremum verzeild raakt. In de praktijk bleek dat niet het geval. HOOFDSTUK 6. MINIMALISATIE PROJECTIEFOUT 46 De keuze voor het genetisch algoritme in stap 3 heeft als doel uit lokale extrema te onstnappen, die bij het aanpassen van ∆v en SO veelvuldig opduiken. 6.3.3 Aanpassingen genetisch algoritme Keren we terug naar het experiment waarbij we alle parameters tegelijkertijd optimaliseerden met k = 200, dan viel het op dat ∆u zeer snel naar zijn optimum −3 mm evolueerde. Deze waarde over alle volgende tableaus vastgehouden. In de implementatie van het genetisch algoritme zorgden we ervoor dat in dat geval, i.e. wanneer een parameter uit de best presterende oplossing lang genoeg constant blijft, de populatiegrootte |Tt | dynamisch kleiner wordt en de bewuste parameter als gekalibreerd beschouwd wordt. Dit verkleint de zoekruimte en dus de complexiteit van het probleem. Een maatregel om uit lokale extrema te ontsnappen, bestaat erin voor elke parameter uit de best presterende oplossingen bij te houden in welke richting ze evolueren. Er zullen bijkomende individuen gecreëerd worden die deze evolutie verderzetten, maar ook individuen die er bewust van afwijken om sneller nieuwe richtingen in de zoekruimte te onderzoeken. 6.4 Conclusie Het minimaliseren van de projectiefout blijkt een robuuste methode te zijn om de correcte geometrische parameters in te schatten. Zolang we het aantal iteraties k voldoende groot maken, zal het genetisch algoritme inderdaad streven naar het beoogde optimum. In de praktijk is een grote waarde voor k, zeker tijdens het kalibreren, vaak inefficiënt omwille van de verhoogde reconstructietijd. Uit een parameteranalyse is echter gebleken dat bepaalde parameters zich onafhankelijk van de andere laten optimaliseren. Binnen redelijke tijd kan op deze manier (stapsgewijs) een goede schatting gevonden worden, door enerzijds de zoekruimte te verkleinen en anderzijds het aantal iteraties van het iteratief reconstructiealgoritme te verminderen. Een samenvatting is te zien op figuur 6.14. Figuur 6.14: Stappenplan voor het kalibreren. Hoofdstuk 7 Maximalisatie scherpte Het minimaliseren van de projectiefout gebeurt in de projectieruimte. In de beeldruimte heeft (k) de scherpte SΩ , gedefinieerd als de L2 -norm van de beeldgradiënt, veelbelovende resultaten opgeleverd [13]. We willen de prestaties van deze objectieffunctie vergelijken met die van de projectiefout. Scherpte kwam reeds formeel aan bod in sectie 5.2.3. 7.1 Invloed parameters op scherpte Net als in Hoofdstuk 6, dat de minimalisatie van de projectiefout behandelde, gebruiken we hier ˆ voor onze initiële schatting (tabel de notatie Ω voor de correcte parameters (tabel 4.3) en Ω 4.5). Voor reconstructie gebruiken we eveneens SIRT. Op de grafieken in sectie 6.1 werd reeds de scherpte getoond. We zullen in dit hoofdstuk dan ook naar die figuren verwijzen. 7.1.1 Horizontale uitwijking detector ∆u Op figuur 6.1 zagen we dat de scherpte een maximum vertoont bij de optimale waarde voor ∆u, in de aanwezigheid van andere parameters die reeds optimaal zijn. Dit maximum is echter lokaal. Globale maxima doen zich voor bij waarden van ∆u die een erg grote projectiefout introduceren. Figuur 7.1 toont een voorbeeld van een reconstructie volgens Ω, maar met ∆u = 1 mm. Deze reconstructie heeft volgens de grafieken op figuur 6.1 een grotere numerieke scherpte dan de optimale reconstructie. De berekening van de scherpte verloopt via randdetectie: de dubbele randen zijn voldoende afgetekend om als ‘scherper’ beschouwd te worden. ˆ duikt Op figuur 6.2, waar ∆u variabel wordt gemaakt in aanwezigheid van parameters uit Ω, een gelijkaardig fenomeen op. We zien dat na 100 iteraties de maximale scherpte elders komt te liggen, op ∆u = −1 mm. Ook hier spelen de randen een rol. Figuur 7.2 toont reconstructies ˆ volgens Ω met bijhorende randdetecties. Figuur 7.3 doet hetzelfde voor reconstructies volgens Ω, 47 HOOFDSTUK 7. MAXIMALISATIE SCHERPTE (a) reconstructie 48 (b) randdetectie (c) randdetectie Figuur 7.1: Scherper geëvalueerde reconstructie dan het optimum. (a) k = 20 (b) randdetectie (c) k = 100 (d) randdetectie Figuur 7.2: Reconstructie volgens optimum Ω. (a) k = 20 (b) randdetectie (c) k = 100 (d) randdetectie ˆ met ∆u = −1 mm. Figuur 7.3: Reconstructie volgens schatting Ω, met ∆u = −1 mm. De dubbele randen zijn na 100 iteraties voldoende doortekend om scherper geëvalueerd te worden dan het optimum Ω. De doortekening was na k = 20 nog onvoldoende. 7.1.2 Verticale uitwijking detector ∆v We weten dat de numerieke scherpte toeneemt met een toenemende vergrotingsfactor M = SO/SD [13]. Gezien we de afstand SD beïnvloeden door ∆v aan te passen, is het inderdaad niet verwonderlijk dat we op figuren 6.3, 6.4 en 6.5 een stijgende trend in scherpte waarnemen voor toenemende ∆v. Op figuur 6.3 tekent er zich na voldoende iteraties wel een lokaal maximum af bij het optimum. Figuur 7.4 verduidelijkt dit effect. Laten we ∆v toenemen van zijn optimale waarde ∆v = 6 mm naar ∆v = 9 mm, dan nemen we inderdaad vergroting waar, maar de wazige HOOFDSTUK 7. MAXIMALISATIE SCHERPTE (a) ∆v = 6 mm 49 (b) ∆v = 9 mm (c) ∆v = 12 mm Figuur 7.4: Reconstructie volgens optimum Ω (k = 100). (a) θ = −9◦ (b) θ = −45◦ Figuur 7.5: Reconstructie volgens optimum Ω (k = 100). randen compenseren het effect dat vergroting op de numerieke scherpte heeft. Pas bij ∆v = 12 mm is de vergroting voldoende en zijn de randen scherp genoeg om van een toename in numerieke scherpte te spreken. Erg lokaal kan scherpte dus richtinggevend zijn om ∆v te bepalen, maar een algemene regel valt niet af te leiden. 7.1.3 Detectortilt θ Uit figuur 6.6 leiden we af dat de scherpte vroeger dan de projectiefout (k = 10) de optimale waarde van de detectortilt θ aanduidt, maar deze vaststelling geldt enkel wanneer alle andere parameters al correct geschat zijn. Scherpte is niet richtinggevend voor een correcte schatting van θ wanneer de andere parameters nog niet hun optimale waarden bezitten, zoals blijkt uit figuren 6.6 en 6.7. We mogen niet uit het oog verliezen dat bij extreme waarden van θ ook de vergrotingsfactor aangetast wordt, zij het in de aanwezigheid van artefacten (dubbele randen). Figuur 7.5 toont een reconstructies volgens Ω, maar met θ = −45◦ . 7.1.4 Afstand stralingsbron tot object SO Naar analogie met de bespreking van ∆v moeten we ook hier besluiten dat SO niet geschat kan worden aan de hand van de numerieke scherpte. De vergrotingsfactor M = SO/SD speelt immers HOOFDSTUK 7. MAXIMALISATIE SCHERPTE 50 Figuur 7.6: Globaal gedrag van de scherpte. een allesoverheersende rol. 7.2 Gedrag scherpte In tegenstelling tot de projectiefout, treedt er in het geval van scherpte geen snelle stagnatie op bij reconstructies met foute parameters. Belangrijker is dat suboptimale reconstructies scherper geëvalueerd kunnen worden dan het optimum. Dit resultaat geldt zelfs wanneer we de vergrotingsfactor M buiten beschouwing laten. Zo toonde figuur 7.1 een reconstructie volgens Ω, maar met ∆u = −1 mm. De geïntroduceerde artefacten (dubbele randen) zorgen ervoor dat deze reconstructie scherper beoordeeld wordt dan de optimale. Scherpte heeft geen globaal maximum bij de werkelijke parameters (zie figuur 6.1) en vertoont lokale maxima (zie figuur 6.2). Hierdoor schaadt scherpte twee belangrijke voorwaarden voor een goede objectieffunctie. 7.3 7.3.1 Optimalisatie Directe optimalisatie Alle parameters optimaliseren aan de hand van scherpte is onmogelijk, door de rol van de vergrotingsfactor M en de onmogelijkheid om met scherpte θ te bepalen zonder kennis van ∆v en SO. ∆v en SO laten zich dan weer niet schatten zonder kennis van θ, waardoor enkel nog ∆u overblijft om met scherpte te optimaliseren. 7.3.2 Stapsgewijze optimalisatie Het stappenplan verschilt nauwelijks met het plan dat we voor de projectiefout uiteenzetten: 1. Optimaliseer ∆u aan de hand van scherpte, met het Nelder-Mead algoritme. Zet k = 2. HOOFDSTUK 7. MAXIMALISATIE SCHERPTE 51 2. Optimaliseer θ aan de hand van de projectiefout, met het Nelder-Mead algoritme. Zet k = 100. 3. Optimaliseer ∆v en SO aan de hand van de projectiefout, met het genetisch algoritme. Zet |Tt | = 12 en k = 200. Belangrijk is dat in stap 1 een bovengrens op de projectiefout gezet moet worden, om de scherpte niet naar de foute maxima te sturen. Er zit weinig intuïtie achter het kiezen van zo’n bovengrens, ˆ gekozen worden. maar in de praktijk kan de bovengrens van de initiële schatting Ω Op die manier zijn goede schattingen voor ∆u te bekomen, die gelijk zijn aan de resultaten die we met de projectiefout behaalden. In het geval van driedimensionale reconstructies (zie sectie 10.5) zal scherpte het bijkomende voordeel hebben dat het een paar iteraties vroeger dan de projectiefout de detectorparameters in de juiste richting duwt. 7.4 Conclusie Scherpte heeft weinig voordelen vergeleken met het gebruik van de projectiefout. Toch zal in het geval van driedimensionale reconstructies blijken dat scherpte iets sneller dan de projectiefout een uitspraak over de detectorparameters kan doen, met name de parameters die verschuivingen van de detector in zijn vlak veroorzaken. Voor tweedimensionale reconstructies verschilt het stappenplan nauwelijks van het vorige, zie figuur 7.7. Het optimaliseren van alle parameters zal nooit met scherpte kunnen, omwille van de vergrotingsfactor M . Figuur 7.7: Stappenplan voor het kalibreren. Hoofdstuk 8 Gecombineerde objectieffuncties Dit hoofdstuk behandelt hoe we tegelijkertijd de projectiefout en scherpte als objectieffuncties kunnen gebruiken binnen de klasse van de genetische algoritmes. De voorgestelde methode moet ons in staat stellen om reeds na een beperkt aantal iteraties een betrouwbare uitspraak te doen over de richting die de geometrische parameters moeten uitgaan, indien we alle parameters tegelijkertijd willen optimaliseren. 8.1 Probleemstelling Het gebruik van de projectiefout als objectieffunctie bleek robuust, maar heeft een groot nadeel: het aantal te gebruiken iteraties per reconstructie moet groot genoeg zijn, willen we alle parameters tegelijkertijd optimaliseren. In de praktijk betekent dit dat het kalibreren op basis van de projectiefout ontzettend lang kan duren, afhankelijk van het gebruikte reconstructiealgoritme en ˆ Scherpte als objectieffunctie beïnvloedde dan weer de vergrotingsfactor, de initiële schatting Ω. waardoor het nooit alleen gebruikt kan worden om alle parameters te optimaliseren. Toch kunnen beide objectieffuncties elkaar bijsturen. Figuur 6.1 liet zien hoe de maximale scherpte tegenover een zeer grote projectiefout staat. Wanneer we optimaliseerden op basis van scherpte, moesten we daarom een bovengrens op de projectiefout zetten. In het ideale geval zou dit vanzelf gaan. Op figuur 6.9 werd duidelijk dat scherpte erg lokaal toch richtinggevend kan zijn om het optimum te bepalen van parameters die de vergroting beïnvloeden. We willen nagaan hoe we beide objectieffuncties samen kunnen evalueren om alle parameters tegelijkertijd al na een beperkt aantal iteraties richting een optimum te duwen. Tabel 8.1 verduidelijkt een mogelijk scenario. 52 HOOFDSTUK 8. GECOMBINEERDE OBJECTIEFFUNCTIES ˆ1 Ω ˆ2 Ω ∆u ∆v θ -2,97 mm -2,97 mm 5,93 mm 6,81 mm -7,50 -6,66 ◦ ◦ 53 SO 1/E (10) S (10) 1/E (28) S (28) 159,52 mm 162,17 mm 0,079 0,089 1939,37 1931,72 0,40 0,39 2995,35 2987,88 Tabel 8.1: Situatie waarin scherpte de projectiefout kan bijsturen. (a) Ω ˆ1 (b) Ω ˆ2 (c) Ω Figuur 8.1: Reconstructies met k = 100. 8.2 Principe ˆ 1 , die nochtans het dichtst in de buurt van het optimum ligt (tabel 4.3), Uit de tabel blijkt dat Ω ˆ 2 , voor k = 10. Voor k ≤ 10 kan er op basis van de toch een grotere projectiefout oplevert dan Ω projectiefout dus geen zinnig vergelijk gemaakt worden. Het blijkt echter dat de scherpte voor ˆ 2 voor k = 10 al aanzienlijk beter was dan de scherpte voor Ω ˆ 1 . Scherpte kan reconstructie met Ω ˆ 1 op basis van de projectiefout weerleggen dus richtinggevend zijn en het tijdelijke voordeel van Ω of op zijn minst in vraag stellen. Men kan zich afvragen of het dan niet beter is om (in dit geval voor k = 10) meteen de scherpte te optimaliseren. Zoals al mocht blijken uit figuur 6.9 werkt scherpte de vergroting in de hand, die we dan weer zouden kunnen tegenwerken door de projectiefout mee in beschouwing te nemen. We willen beide objectieffuncties dus samen evalueren om dit soort situaties aan te pakken, wanneer we k niet ontzettend groot willen maken om tijd te besparen. Er is echter geen wetmatigheid voor welke k de scherpte of projectiefout sturend zijn voor elkaar. Handmatige (visuele) controle is dus vereist. 8.2.1 Lineaire combinatie van objectieffuncties Een eerste methode bestaat erin de afzonderlijke objectieffuncties te combineren tot een enkele objectieffunctie. De nieuwe objectieffunctie kan bijvoorbeeld een lineaire combinatie van de afzonderlijke objectieffuncties zijn. Formeel: c(λ, Ω) = λc1 (Ω) + (1 − λ)c2 (Ω), 0 ≤ λ ≤ 1 (8.1) De parameterverzameling Ω die c(λ, Ω) optimaliseert, zal afhankelijk zijn van de keuze van λ. De keuze van λ bepaalt in grote mate het succes van de objectieffunctie c. In de literatuur staan HOOFDSTUK 8. GECOMBINEERDE OBJECTIEFFUNCTIES 54 Figuur 8.2: Pareto-efficiënte oplossingenverzameling. methodes beschreven om de optimale λ te bepalen bij gegeven c1 en c2 [28]. Deze methodes steunen op minimax (ook toepasbaar bij niet-lineaire combinaties van objectieffuncties) en vereisen het kunnen afleiden van c1 en c2 . Zoals al eerder aan bod kwam, is het door de aard van het (k) (k) CT-probleem niet mogelijk om EΩ en SΩ analytisch af te leiden. Er is met andere woorden (k) (k) in dit geval geen trefzekere methode voorhanden om EΩ en SΩ betrouwbaar tot een enkele objectieffunctie te herleiden. 8.2.2 Pareto-efficiënte oplossingenverzameling Een tweede methode, in de context van genetische algoritmes bekend onder de noemer MOEA (multiple objective evolutionary algorithm), zoekt naar oplossingen Ω die bij gegeven c1 (Ω) de hoogste waarde voor c2 (Ω) opleveren, en vice versa (in de veronderstelling dat zowel c1 als c2 gemaximaliseerd moeten worden). Een MOEA moet tegemoetkomen aan optimalisatieproblemen met twee of meer conflicterende objectieffuncties in een grote en complexe zoekruimte [29]. Het mag al duidelijk geworden zijn dat het CT-probleem aan deze voorwaarden voldoet. Concreet is de uitkomst van een MOEA een (benaderde) verzameling van Pareto-efficiënte oplossingen Ω. Die verzameling bevat alle oplossingen Ω die niet door andere oplossingen gedomineerd worden. Een oplossing Ω1 domineert Ω2 (Ω1 Ω2 ) als aan volgende voorwaarde voldaan is [29]: Ω1 Ω2 ⇔(c1 (Ω1 ) ≥ c1 (Ω2 ) ∧ c2 (Ω1 ) > c2 (Ω2 )) ∨(c1 (Ω1 ) > c1 (Ω2 ) ∧ c2 (Ω1 ) ≥ c2 (Ω2 )) (8.2) Een MOEA kan dus meerdere optima opleveren die elk een verschillende afweging tussen de objectieffuncties representeren. Dit betekent dat we alsnog manueel moeten nagaan welke oplossing uit de verzameling van Pareto-efficiënte oplossingen de beste is, maar dit zal niet opwegen tegen het voordeel dat we halen uit het kunnen beperken van het aantal iteraties om met een MOEA richting het optimum te streven. Samengevat toont figuur 8.2 hoe in de objectiefruimte de Pareto-efficiënte oplossingen overeenstemmen met parameterverzamelingen in de decisieruimte. Een MOEA evalueert de oplossingen in de objectiefruimte om de parameterverzamelingen in de decisieruimte aan te passen. Merk op dat beide objectieffuncties als evenwaardig worden be- HOOFDSTUK 8. GECOMBINEERDE OBJECTIEFFUNCTIES 55 Algoritme 8.1: SPEA2 procedure 1 2 3 4 5 6 Creëer een initiële populatie T0 met extern archief A0 = ∅. Zet t = 0. Bepaal met functie F de bruikbaarheid van elk individu in Tt en At . Kopieer alle niet-gedomineerde individuen in Tt en At naar At+1 . Indien voldaan aan stopcriterium: At+1 is de verzameling optima. Stop. Creëer een nieuwe populatie Tt+1 door recombinatie en mutatie van parameters uit At+1 . Zet t = t + 1 en ga naar stap 2. schouwd. Bovendien is het mogelijk om ook meer dan twee objectieffuncties te gebruiken, al zal dat niet in dit onderzoek aan bod komen. 8.3 Optimalisatiealgoritme Om evolutionair naar de verzameling van Pareto-efficiënte oplossingen te streven, kunnen we gebruikmaken van het SPEA (strength pareto evolutionary algorithm). Het is een techniek die in de literatuur als beter wordt beschouwd dan andere MOEA’s [30]. Meer bepaald SPEA2 blijkt goed te presteren; in tegenstelling tot voorganger SPEA convergeert SPEA2 beter naar een optimum [31]. Het heeft geen belang de verbeteringen van SPEA2 ten opzichte van SPEA te bespreken. We doen meteen kort de werking van SPEA2 uit de doeken in algoritme 8.1. Merk op dat de populatie- en archiefgrootte, respectievelijk |Tt | en |At |, constant blijven voor alle tableaus t. De lus tussen stap 2 en stap 6 is gelijkaardig aan de lus uit het gewone genetisch algoritme. Het zijn echter de bruikbaarheidsfunctie F in stap 2 en het creëren van een nieuwe populatie Tt+1 in stap 5 die eigen zijn aan een MOEA in het algemeen en aan SPEA2 in het bijzonder. Deze stappen moeten we dus definiëren om inzicht te verwerven in de precieze werking van SPEA2. 8.3.1 Bruikbaarheidsfunctie De bruikbaarheidsfunctie F : Ω ∈ Rn → R kent aan elk individu Ω in Tt en At een numerieke waarde toe die aangeeft hoe goed het individu presteert en dus bruikbaar is om tot de verzameling van Pareto-efficiënte oplossingen te komen. Formeel is F (Ω) de som van de ruwe bruikbaarheid R(Ω) en de densiteit D(Ω) [31]: F (Ω) = R(Ω) + D(Ω) (8.3) De ruwe bruikbaarheid R(Ω) geeft aan hoeveel oplossingen gedomineerd worden door de oplossingen die Ω domineren [31]: R(Ω) = X Ω0 ∈Tt ∪At ,Ω0 Ω |{Ω00 |Ω00 ∈ Tt ∪ At ∧ Ω0 Ω00 }| (8.4) HOOFDSTUK 8. GECOMBINEERDE OBJECTIEFFUNCTIES 56 | · | duidt hier op de kardinaliteit van een verzameling. R(Ω) = 0 duidt op een niet-gedomineerd individu. Een grotere waarde voor R(Ω) wijst erop dat Ω door veel andere individuen wordt gedomineerd die op hun beurt ook veel individuen domineren. Het is meteen duidelijk dat bij het toekennen van de bruikbaarheid aan een individu de volledige populatie mee in rekening wordt genomen. De bruikbaarheidsfunctie vervangt het gebruik van een objectieffunctie. De individuele objectieffuncties zitten in de bruikbaarheidsfunctie vervat door het gebruik van de operator (vergelijking 8.2) in het bepalen van de ruwe bruikbaarheid R(Ω) (vergelijking 8.4). Mocht de bruikbaarheidsfunctie F enkel afhangen van R, dan zal F slecht presteren in het geval er in het archief enkel individuen opduiken die niet gedomineerd worden, maar zelf ook geen andere individuen domineren. Er is nood aan een extra factor: de densiteit D. Om de diversiteit van de Pareto-efficiënte oplossingen te bewaren, moet voorrang gegeven worden aan oplossingen die zich niet in de nabijheid van andere oplossingen bevinden in de objectiefruimte. Een efficiënte metriek voor D(Ω) bestaat erin de de inverse te nemen van de afstand δΩ tot de naaste buur van Ω. Hoe groter de densiteit D(Ω) van een individu Ω, hoe kleiner de kans dat Ω in aanmerking komt om nog langer tot de verzameling van Pareto-efficiënte oplossingen te behoren. Formeel [31]: D(Ω) = 1 δΩ + 2 (8.5) Het toevoegen van 2 in de noemer moet verhinderen dat D(Ω) groter of gelijk wordt aan 1. R en D bepalen nu volledig F , zoals gedefinieerd in vergelijking 8.3. De complexiteit van het bepalen van F (Ω) wordt gedomineerd door het bepalen van D(Ω) dat complexiteit O(|Tt ∪ At |2 log |Tt ∪ At |) heeft. De berekening van R bezit complexiteit O(|Tt ∪ At |2 ). Gelet op de beperkte populatie- en archiefgrootte die we in dit onderzoek zullen gebruiken, en de lange reconstructietijd per te onderzoeken individu, zorgen deze complexiteiten nauwelijks voor beperkingen in tijd. 8.3.2 Creatie nieuwe populatie Uit Tt ∪ At worden de individuen geselecteerd waarvoor F (Ω) < 1: dit zijn de individuen die Pareto-efficiënt zijn met betrekking tot de twee kostfuncties. Een volledige implementatie is beschikbaar in MOEA.hh, met Genetics.hh als ouderklasse. 8.4 Testresultaten Vooreerst optimaliseren we met het genetisch algoritme de parameters ∆u, ∆v, θ en SO tegelijkertijd door na 20 iteraties de projectiefout te evalueren. Vervolgens doen we hetzelfde op basis van de scherpte. In een derde experiment evalueren we zowel de projectiefout als de scherpte in een MOEA. We zetten |Tt | = 25 en |At | = 12. HOOFDSTUK 8. GECOMBINEERDE OBJECTIEFFUNCTIES (a) scherpte (b) projectiefout (c) combinatie 57 (d) optimum Figuur 8.3: Een MOEA levert voor k = 20 de beste schatting. Geen enkele optimalisatieprocedure levert het optimum met k = 20, maar het MOEA streeft wel het beste naar de optimale parameters en levert visueel de beste reconstructie. De resultaten staan samengevat op figuur 8.3. 8.5 Conclusie Het gebruik van een MOEA is nuttig om bij een beperkt aantal iteraties een idee van het optimum te krijgen. Het optimum wordt nooit bereikt, maar de benadering is goed genoeg om een bruikbaar beeld op te leveren of om als initiële schatting te gebruiken voor een optimalisatieproces met meer iteraties. In geval van driedimensionale reconstructies zullen we zien hoe een MOEA kan bijdragen tot het vinden van een afweging tussen maximale scherpte en minimale projectiefout. Hoofdstuk 9 Reconstructie in drie dimensies Driedimensionale reconstructies worden typisch uitgevoerd met de rekenkracht van een GPU. Het is de bedoeling dat we de algoritmes ontworpen in voorgaande hoofdstukken ultiem testen op een GPU, met gebruik van ‘echte’ data van kleine proefdieren. Door de relatief lage complexiteit heeft het heeft weinig zin om de logica achter de optimalisatiealgoritmes naar de GPU te porteren. De reconstructiealgoritmes daarentegen kunnen we wel nog verder optimaliseren op de GPU om zoveel mogelijk afbeeldingen tegelijkertijd te reconstrueren. Dit zal het kalibreren aanzienlijk versnellen. In dit hoofdstuk komen de aanpassingen aan bod om het aantal parallelle taken op de GPU te verhogen, maar we beginnen met het definiëren van de geometrische parameters die zich in drie dimensies manifesteren. 9.1 Geometrische parameters Figuur 9.1 illustreert de gehanteerde coördinatensystemen voor reconstructie in drie dimensies. Figuur 9.1: Coördinatensysteem voor reconstructie in drie dimensies. 58 HOOFDSTUK 9. RECONSTRUCTIE IN DRIE DIMENSIES 59 Beschrijving Eenheid Totale rotatie Aantal projecties Dimensie object in x-richting Dimensie object in y-richting Dimensie object in z-richting Dimensie objectvoxel (isotroop) Dimensie detector in u-richting Dimensie detector in v-richting Dimensie detectorpixel (isotroop) Dimensie brandpunt stralingsbron ◦ — voxels voxels voxels mm pixels pixels mm mm Tabel 9.1: Definitie van de vaste geometrische parameters in drie dimensies. Symbool Beschrijving Eenheid ∆x ∆y ∆z ∆u ∆v φ SD SO Uitwijking object in x-richting Uitwijking object in y-richting Uitwijking object in z-richting Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (twist) Afstand stralingsbron tot detector Afstand stralingsbron tot object mm mm mm pixels pixels ◦ mm mm Tabel 9.2: Definitie van de te optimaliseren geometrische parameters in drie dimensies. Tabel 9.1 geeft een overzicht van de geometrische parameters die we in drie dimensies onderscheiden, in het door ons gebruikte model. Het zijn de ‘vaste’ parameters die we niet zullen kalibreren. Tabel 9.2 bevat de parameters die we zullen optimaliseren naargelang het gedrag van de objectieffuncties. Het reconstructiealgoritme haalt de geometrische parameters en de parameters van het genetisch algoritme uit een tekstgebaseerd configuratiebestand. Bijlage B bevat een voorbeeld van het gehanteerde formaat. De initiële waarden van de te optimaliseren parameters, alsook de gebruikte data, zullen we beargumenteren in secties 10.1 en 10.2. 9.2 Specificaties GPU De gebruikte GPU is een NVIDIA Tesla M2070, aanwezig in een machine met 16 CPU’s van het type Intel Xeon (kloksnelheid 2,40GHz, 4 kernen per processor). Tabel 9.3 vat de belangrijkste eigenschappen van de grafische kaart samen. Het zijn deze eigenschappen die het verder parallelli- HOOFDSTUK 9. RECONSTRUCTIE IN DRIE DIMENSIES 60 GPU CUDA versie Hoofdgeheugen Aantal processors Aantal kernen per processor Kloksnelheid processor Maximale dimensie texture (2D) Maximale dimensie texture (3D) Maximaal aantal threads per processor Maximaal aantal threads per block Maximale dimensie block Maximale dimensie grid CUDA 5.0 5375 MB 14 32 1147 MHz 65536 × 65536 2048 × 2048 × 2048 1536 1024 1024 × 1024 × 64 65536 × 65536 × 65536 Tabel 9.3: Specificaties van de GPU gebruikt tijdens beeldreconstructie (NVIDIA Tesla M2070). seren van de reconstructiealgoritmes zullen beïnvloeden. NVIDIA heeft het programmeermodel CUDA ontwikkeld om de virtuele instructieset en het geheugen van de GPU toegankelijk te maken voor de ontwikkelaar. Met CUDA C/C++ alloceren we vanuit C++ code in de CPUomgeving van de server geheugen op de GPU. Vervolgens stuurt de CPU instructies naar de GPU om taken te laten uitvoeren op de data in het grafisch geheugen. Alle processorkernen van de GPU werken parallel ten opzichte van elkaar. Resultaten komen via het grafisch geheugen terug in het hoofdgeheugen van de CPU-omgeving terecht [33]. Elke processorkern kan een aantal threads parallel uitvoeren. Threads worden vaak samengenomen in zogenaamde blocks. Blocks kunnen we desgewenst in een grid groeperen. Omdat de termen threads, blocks en grids zo eigen zijn aan de woordenschat van CUDA, zullen we niet met de Nederlandstalige equivalenten werken, ook al zouden respectievelijk ‘draden’, ‘blokken’ en ‘rasters’ geschikt zijn. 9.3 Voorwaartse en terugwaartse projectie Een robuuste implementatie van voorwaartse en terugwaartse projectie was reeds voorhanden in de vorm van de klassen XOCT.hh (CPU) en XOCT.cu (GPU). Deze code zal dus niet meer in detail besproken worden. Maar het parallellisme dat de GPU kan bieden, werd er ingezet om iteratief tot één reconstructie te komen. Omdat kalibreren het vergelijken van verschillende reconstructies inhoudt, moeten we onderzoeken hoe we het parallellisme van de GPU ook kunnen aanwenden om meerdere reconstructies tegelijkertijd uit te voeren. De verwachte snelheidswinst is eerder beperkt, omdat één reconstructie al tegen de limieten van geheugen en aantal threads werkt. Toch moet het zeker mogelijk zijn een snelheid te bekomen die hoger ligt dan het serieel uitvoeren van reconstructies. We bespreken nu kort de stappen die hiertoe benodigd zijn. HOOFDSTUK 9. RECONSTRUCTIE IN DRIE DIMENSIES 61 Het uitgangspunt is tegelijkertijd de data in het geheugen houden die de stralingsbron, objecten en detectors modelleren voor verschillende reconstructieparameters. De aanpassingen zitten vervat in de nieuwe klasse XOCT_calibration.hh met gebruik van kernels (functies uitgevoerd op de GPU) uit XOCT_calibration.cu. Per iteratie van het reconstructiealgoritme voeren we de projecties parallel uit. 9.3.1 Stralingsbron Het model van de stralingsbron bevat enkel parameters en geen object- of detectordata. Gezien er dus geen data permanent in het grafisch geheugen geladen moeten worden, zijn geen andere maatregelen nodig dan het tegelijkertijd aanmaken van verschillende stralingsbronnen: één voor elke verzameling van parameters. In de C++ code betekent dit het bijhouden van een pointer naar een rij van Tube.hh pointers. 9.3.2 Object Het model van een te reconstrueren afbeelding bevat niet alleen de eigenschappen van het object, maar ook de ruwe data die zich in het grafisch geheugen bevinden. Naar analogie met de stralingsbron trachtten we aanvankelijk een pointer naar een rij van Image_GPU.hh pointers bij te houden, maar deze piste werd uiteindelijk niet gevolgd. Er stelden zich immers twee problemen. Ten eerste laat CUDA (nog?) niet toe een rij van textures aan te maken. Een texture is een intelligent cachesysteem (ROM) dat onder alle processoren van de GPU gedeeld wordt. Tijdens voorwaartse projectie wordt een afbeelding om snelheidsredenen in een dergelijke texture geladen. In het geval van een pointer naar Image_GPU.hh pointers zouden de individuele afbeeldingen alsnog geconcateneerd moeten worden om ze samen in één texture te laden (de omgekeerde operatie is ook nodig). Dit brengt overbodig rekenwerk met zich mee. Ten tweede bleek een pointer naar Image_GPU.hh pointers niet ideaal om tijdens terugwaartse projectie de individuele afbeeldingen op de GPU aan te roepen. Het zou ook hier extra geheugenoperaties vereisen om dit probleem op te lossen. De oplossing ligt echter voor de hand: alle afbeeldingen die we parallel wensen te behandelen, concateneren we bij aanvang al in een ‘superafbeelding’. Deze concatenatie voeren we door in de z-richting. De aangepaste versie van Image_GPU.hh laat toe een ‘superafbeelding’ aan te maken op basis van de dimensie van een afzonderlijke afbeelding en het aantal afzonderlijke afbeeldingen dat we wensen te concateneren. Deze aangepaste versie herleidt zich volkomen tot de originele versie wanneer we aangeven dat de ‘superafbeelding’ slechts één afbeelding mag bevatten. Gezien alle afzonderlijke afbeeldingen dezelfde dimensies hebben, kunnen we mits zorgvuldige indexering op betrouwbare wijze een individuele voxel selecteren. HOOFDSTUK 9. RECONSTRUCTIE IN DRIE DIMENSIES 62 Figuur 9.2: Verdeling van threads over elke voxel van het object. Figuur 9.3: Verdeling van threads over elke voxel van geconcateneerde objecten. Terugwaartse projectie Bij terugwaartse projectie roepen we parallel voor elke voxel een functie op die de terugwaartse projectie modelleert. Figuur 9.4 toont hoe de threads oorspronkelijk over het grid van blocks verdeeld waren. We beschouwen een tweedimensionaal grid waarvan de x- en y-dimensie overeenkomen met de x- en y-dimensie van de afbeelding. Elk block bevat evenveel threads als er voxels zijn in de z-richting van de afbeelding. Elke thread behandelt dus een afzonderlijke voxel. Figuur 9.5 toont de doorgevoerde aanpassingen voor parallelle reconstructie. Hetzelfde principe geldt, al wordt het grid nu in de y-richting uitgebreid volgens het aantal parallelle reconstructies. 9.3.3 Detector Naar analogie met de objecten, concateneren we ook de detectordata tot één geheel. Dit doen we in de y-richting. Ook hier geldt dat alle afzonderlijke detectors dezelfde dimensies hebben, zodat we betrouwbaar individuele pixels kunnen selecteren. De nieuwe versie van de klasse Detector.hh herleidt zich in het geval van een enkele detector tot de oude versie, zodat achterwaartse compatibiliteit ook hier gegarandeerd is. HOOFDSTUK 9. RECONSTRUCTIE IN DRIE DIMENSIES 63 Figuur 9.4: Verdeling van threads over elke pixel van de detector. Figuur 9.5: Verdeling van threads over elke pixel van geconcateneerde detectors. Voorwaartse projectie Bij voorwaartse projectie roepen we parallel voor elke detectorpixel een functie op die de voorwaartse projectie modelleert. Figuur 9.4 toont hoe de threads aanvankelijk over het grid van blocks verdeeld waren. Figuur 9.5 toont de nieuwe situatie. We beschouwen een tweedimensionaal grid waarvan de x-dimensie overeenkomt met de x-dimensie van een grid in het geval van een afzonderlijke detector. De y-dimensie van het grid is de y-dimensie van een enkel detectorgrid vermenigvuldigd met het aantal tegelijkertijd te behandelen detectors. Zowel de x- als y-dimensie zijn veelvouden van 16, omdat elk block 16 × 16 threads telt. Elke thread behandelt met andere woorden een detectorpixel. Pixels die hierdoor niet meer tot de detector zouden behoren, worden automatisch genegeerd. Het bleek niet mogelijk het aantal threads 16 × 16 = 256 te verhogen, de specificaties van tabel 9.3 indachtig. 9.4 Objectieffuncties De berekening van de objectieffuncties werd ook naar de GPU geporteerd. HOOFDSTUK 9. RECONSTRUCTIE IN DRIE DIMENSIES 9.4.1 64 Projectiefout De projectiefout doet beroep op de functie GetTotalAbsoluteValue() in de C++ klasse BinaryData_GPU.hh met gebruik van de gelijknamige kernel uit BinaryData_GPU.cu. (k) Concreet komt de berekening van EΩ op deze code neer: BinaryData_GPU<f l o a t > e s t i m a t e ; P r o j e c t i o n s S e t <f l o a t > measured ; ProjectionsSet_GPU<f l o a t > e r r o r ; // b e r e k e n i n g van de g e s c h a t t e p r o j e c t i e en o p h a l e n van gemeten p r o j e c t i e TransferFromCPUtoGPU ( measured , e r r o r ) ; e r r o r . Subtract ( estimate ) ; float p r o j e c t i o n E r r o r = e r r o r . GetTotalAbsoluteValue ( ) ; 9.4.2 Scherpte De functie Sharpness() in de C++ klasse Image_GPU.hh gebruikt de gelijknamige kernel uit Image_GPU.cu. Het gebruik is eenvoudig: Image_GPU<f l o a t > image ; // b e r e k e n i n g van de a f b e e l d i n g f l o a t s h a r p n e s s = image . S h a r p n e s s ( ) ; 9.5 SIRT MLTR gebruikt niet rechtstreeks de projectiefout uit vergelijking 5.6, maar zou omwille van zijn snelheid en precisie geschikt zijn om de scherpte van de reconstructies te bepalen. Toch bleek het door beperkingen op het geheugen van de GPU niet mogelijk om de door ons gescande data te reconstrueren (zie ook sectie 10.1). De detectordata is te groot. Het grootste geteste reconstructievolume met MLTR.cu heeft 256×256×256 objectvoxels, 1184×1120 detectorpixels, 256 projecties en 8 subsets. OS-SART kon niet verder geparallelliseerd worden, eveneens omwille van beperkingen op het GPU-geheugen. SIRT daarentegen liet nog ruimte over voor parellellisatie, wat resulteerde in een speedup van 1,76 per reconstructie. Het bescheiden succes van deze speedup — gelet op het feit dat we nog steeds van één GPU gebruikmaken — heeft ons ertoe aangezet verder te gaan met SIRT, ook al omdat we dit algoritme reeds in de voorstudie goed leren kennen hebben. Convergentie is gegarandeerd. De geparallelliseerde implementatie is beschikbaar in SIRT_calibration.cu. Er kunnen maximaal 8 reconstructies tegelijkertijd uitgevoerd worden. De grootte van een populatie — indien we met een genetisch algoritme werken — dient dus best een veelvoud van 8 te zijn. Hoofdstuk 10 Kalibreren Na de voorstudie in twee dimensies en het aanpassen van de GPU-code, pakken we in dit hoofdstuk het kalibreren van CT-scanners aan met driedimensionale reconstructies. We halen tevens de fenomenen en problemen aan die zich specifiek in de context van driedimensionale beeldreconstructie stellen. 10.1 Data De gebruikte scanner is de TriFoil Triumph-II X-O CT en kwam al kort aan bod in sectie 2.4 omtrent micro-CT. Het gebruikte fantoom is de zogenaamde ‘plastimouse’ [34]. Dit is een geplastineerde muis met behoud van zijn inwendige structuren. De keuze voor een proefdier boven een zuiver geometrisch object is ingegeven door de grilligere structuur die een proefdier inwendig typisch vertoont. Dit zal, naar we verwachten, een bijkomende uitdaging zijn voor het optimalisatiealgoritme en de objectieffuncties. Scherpte werd in de literatuur tenslotte voorgesteld als een vervanging voor entropie, omdat deze laatste objectieffunctie enkel goed zou presteren bij zuiver geometrische objecten [13]. De keuze voor een dood dier boven een levend exemplaar was tweeledig. Ten eerste bleek het op het moment van scannen niet mogelijk om het beoogde, levende proefdier te verdoven. Ten tweede heeft de plastimouse als voordeel dat ze niet beweegt tijdens het scanproces. Onscherpte waargenomen op de scans kan dus over het algemeen enkel het gevolg zijn van slechte reconstructieparameters, net hetgeen we in dit onderzoek willen aanpakken. De plastimouse zal ons in staat stellen de scherpte beter te evalueren, omdat bewegingsonscherpte vrijwel uitgesloten is. Figuur 10.1 verduidelijkt de terminologie van de anatomische vlakverdeling, die later in dit hoofdstuk gebruikt zal worden om de reconstructies te duiden. 65 HOOFDSTUK 10. KALIBREREN 66 Figuur 10.1: Anatomische vlakverdeling. 10.2 Parameters ˆ om zijn zoektocht Het optimalisatiealgoritme heeft nood aan een initiële parameterverzameling Ω ˆ initialiseren op nul betekent naar betere parameters te starten. Alle individuele parameters in Ω niet alleen dat het optimalisatiealgoritme erg lang zal moeten zoeken, het is ook een onrealistische aanname. Men kan immers al een (erg ruwe) schatting van bepaalde parameters maken, al is het maar met een eenvoudige meetlat. We achten het interessanter om te kijken of we een dergelijke, ruwe schatting snel beter kunnen maken dan om ‘uit het niets’ de juiste parameters tevoorschijn te halen. Voortwerken op een ruwe schatting is een situatie die zich in de praktijk het meeste zal voordoen. Om de kwaliteit van het kalibreren te evalueren, is nood aan een goede reconstructie met ideale Ω. Dit optimum is onbekend, maar we kunnen terugvallen op een schatting van Ω die reeds een scherp en gedetailleerd tomogram opleverde na het scannen. De doelstelling is dan om met het kalibreren zo dicht mogelijk in de buurt van de reconstructie met deze parameters te komen, of zelfs beter te doen, indien mogelijk. Tabel 10.1 geeft de vaste parameters voor de reconstructie, gevolgd door het waarschijnlijke ˆ Merk op dat er geen eenduidigheid is optimum Ω. Tabel 10.2 geeft onze initiële schatting Ω. wat betreft het aantal beduidende cijfers. In het optimalisatiealgoritme zullen hier ook geen veronderstellingen over gemaakt worden. Figuren 10.2 en 10.3 tonen voor respectievelijk Ω ˆ het tomogram, na 100 iteraties (SIRT). Het is duidelijk dat Ω ˆ onscherpte en vergroting en Ω ˆ wel degelijk nuttig maakt. introduceert, wat het kalibreren vanuit Ω In dit hoofdstuk zullen we steeds SIRT gebruiken. Tenzij anders vermeld, zijn alle getoonde afbeeldingen tot stand gekomen na k = 100 iteraties van dit reconstructiealgoritme. HOOFDSTUK 10. KALIBREREN Symbool ∆x ∆y ∆z ∆u ∆v φ SD SO 67 Beschrijving Waarde Eenheid Totale rotatie Aantal projecties Dimensie object in x-richting Dimensie object in y-richting Dimensie object in z-richting Dimensie objectvoxel (isotroop) Dimensie detector in u-richting Dimensie detector in v-richting Dimensie detectorpixel (isotroop) Dimensie brandpunt stralingsbron 360 512 256 256 256 0,20 2368 2240 0,05 0,05 ◦ Uitwijking object in x-richting Uitwijking object in y-richting Uitwijking object in z-richting Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (twist) Afstand stralingsbron tot detector Afstand stralingsbron tot object 0,0 0,0 0,0 -38,39 -155,87 -0,276579 299,64 131,17 — voxels voxels voxels mm pixels pixels mm mm mm mm mm pixels pixels ◦ mm mm Tabel 10.1: De vaste parameters gevolgd door het waarschijnlijke optimum Ω. Symbool Beschrijving Waarde Eenheid ∆x ∆y ∆z ∆u ∆v φ SD SO Uitwijking object in x-richting Uitwijking object in y-richting Uitwijking object in z-richting Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (twist) Afstand stralingsbron tot detector Afstand stralingsbron tot object 0,0 0,0 0,0 -30,0 -162,0 0,0 293,0 140,0 mm mm mm pixels pixels ◦ mm mm ˆ Tabel 10.2: Initiële geometrische parameters Ω. 10.3 Eerste tests Tijdens deze eerste tests, die geen finale resultaten zullen opleveren, willen we kort nagaan in hoeverre onze voorstudie met betrekking tot tweedimensionale reconstructies standhoudt in drie dimensies. De experimenten zullen richtinggevend zijn voor hoe we in sectie 10.5 tot de finale resultaten zullen komen. HOOFDSTUK 10. KALIBREREN (a) transversaal 68 (b) coronaal (c) sagittaal Figuur 10.2: Reconstructie volgens Ω (tabel 10.1). (a) transversaal (b) coronaal (c) sagittaal ˆ (tabel 10.2). Figuur 10.3: Reconstructie volgens Ω 10.3.1 Scherpte maximaliseren Uit sectie 8.4 is gebleken dat scherpte richtinggevend kan zijn voor het vinden van de correcte parameters. Toch presteert scherpte ondermaats in de afwezigheid van betrouwbare parameters die de positie van de detector beschrijven (sectie 7.1). De positie van de detector heeft de meeste invloed op de reconstructiekwaliteit [27]. Omdat het berekenen van de scherpte randgebaseerd is, kan scherpte zelfs dubbele randen bevorderen, zoals we zagen in sectie 7.1.1. Ook de vergrotingsfactor beïnvloedt de scherpte. Desalniettemin gaan we in deze nieuwe situatie na of we de geometrische parameters, op de uitwijkingen van het object ∆x, ∆y en ∆z na, aan de hand van scherpte kunnen optimaliseren. We laten deze uitwijkingen buiten beschouwing, omdat we uit de kennis van Ω weten dat er reeds een optimum bestaat met deze waarden op 0. We evalueren de scherpte na 20 iteraties van het reconstructiealgoritme. Een tussentijds optimum, dat bekomen werd nog voor het optimalisatiealgoritme zijn stopvoorwaarde bereikt had, toonde al dat de parameters duidelijk in de verkeerde richting evolueerden. HOOFDSTUK 10. KALIBREREN (a) transversaal 69 (b) coronaal (c) sagittaal Figuur 10.4: Reconstructie die scherper geëvalueerd wordt dan reconstructie met Ω. Figuur 10.5: Scherpteverloop voor de suboptimale reconstructie uit figuur 10.4. Het teleurstellende resultaat is te zien op figuur 10.4. We zien de verwachte fenomenen opnieuw opduiken. Ten eerste is de vergrotingsfactor toegenomen, waarvan we inderdaad al wisten dat het de numerieke scherpte positief beïnvloedt [13]. Ten tweede is de positie van de detector zo slecht geschat, dat de geïntroduceerde artefacten (dubbele randen) foutief beschouwd worden als een teken van toegenomen scherpte. Figuur 10.5 toont wel dat het voordeel van deze reconstructie ten opzichte van Ω steeds kleiner wordt naarmate het aantal iteraties van het reconstructiealgoritme toeneemt. Na 79 iteraties zou Ω scherper geëvalueerd worden. Maar meer dan 100 iteraties wachten tot scherpte een betrouwbaar resultaat oplevert, is lang. Het verschil in numerieke scherpte tussen een optimaal en slecht tomogram zal bovendien zo klein zijn, dat lokale maxima niet uit te sluiten zijn. Een te sterk toegenomen vergrotingsfactor compenseert het negatieve effect dat slechte detectorparameters op de scherpte hebben. Althans, dat is het resultaat als we scherpte evalueren na te weinig iteraties van het iteratief reconstructiealgoritme: scherpte convergeert slecht, zoals HOOFDSTUK 10. KALIBREREN (a) transversaal 70 (b) coronaal (c) sagittaal Figuur 10.6: Intermediair resultaat tijdens het minimaliseren van de projectiefout. (a) transversaal (b) coronaal (c) sagittaal Figuur 10.7: Intermediair resultaat voor het combineren van scherpte en projectiefout. getoond op figuur 10.5. Scherpte toepassen op de detectorparameters alleen zal nog mogelijk zijn, als we met andere woorden de vergroting constant houden. Willen we scherpte toch toepassen op het optimaliseren van SD en SO, bijvoorbeeld samen met de projectiefout in een MOEA, dan moeten we de slechte convergentie-eigenschappen van scherpte in het achterhoofd houden. 10.3.2 Projectiefout minimaliseren Ook in deze test optimaliseren we alle geometrische parameters, op ∆x, ∆y en ∆z na. We evalueren de projectiefout na 20 iteraties. ∆u streeft als enige parameter het snelste naar zijn optimale waarde. De uitwijking ∆v daarentegen en de afstanden SD en SO wijken sterk af van hun optimale waarden. Vooral in het geval van ∆v viel de afwijking met het optimum uit Ω op. Nochtans hadden we, uit de voorstudie, het vermoeden dat de projectiefout minimaliseren een gunstig effect zou hebben op de optimalisatie van alle verschuivingen en rotaties van de detector in zijn vlak. In sectie 10.4.1 zullen we de oorzaak toelichten. HOOFDSTUK 10. KALIBREREN 71 Figuur 10.8: Geprojecteerde data afkomstig van de scanner. Figuur 10.6 toont een tussentijds optimum tijdens het minimaliseren van de projectiefout. Door de grootte van de zoekruimte is dit intermediair resultaat niet perfect, en bovendien weten we uit sectie 6.1 dat het optimaliseren van SD en SO sowieso meer dan 20 iteraties vergt. 10.3.3 Gecombineerde objectieffuncties Het gebruik van een MOEA op ∆u, ∆v, φ, SD en SO lijkt vooralsnog veelbelovender. Het algoritme is in staat een afweging te vinden tussen een resultaat met grote scherpte (maar met mogelijks artefacten, dus een grote projectiefout) en een resultaat met kleine projectiefout, maar daarom nog niet de beste scherpte. Figuur 10.7 toont een tussentijds optimum door na 20 iteraties scherpte en projectiefout samen te evalueren. Scherpte blijkt dus inderdaad nuttig in het bijsturen van parameters, maar de effecten van trage convergentie uit figuur 10.5 spelen nog een te grote rol om met gecombineerde kostfuncties na weinig iteraties tot een optimum te komen. Uit deze drie experimenten leiden we af dat ook in drie dimensies een stapsgewijze optimalisatie aangewezen is, om het aantal iteraties van het iteratieve reconstructiealgoritme beperkt te houden en per optimalisatiestap de zoekruimte niet te complex te maken. Dat deze methode zal werken, tonen we aan in sectie 10.5. 10.4 10.4.1 Invloed parameters in beeld- en projectieruimte Uitwijkingen van het object In sectie 10.3.2 merkten we op dat ∆v sterk afweek van zijn optimale waarde, terwijl we uit de voorstudie weten dat de projectiefout in staat is om bij weinig iteraties van het iteratief reconstructiealgoritme de detectorpositie al nauwkeurig te schatten, onafhankelijk van de andere parameters. De oorzaak ligt hier in het buiten beschouwing laten van ∆z. HOOFDSTUK 10. KALIBREREN 72 Op figuur 10.8 tonen we een voorbeeld van de geprojecteerde data, afkomstig van de scanner. (15) Kijken we op figuur 10.9 naar de projectie HˆfΩ , dan zien we links artefacten opduiken, wat de projectiefout vergroot. Dit fenomeen doet zich voor op de plaatsen waar het object tot tegen de rand van de detector geprojecteerd wordt. In dit geval raakt de projectie de rand van de detector in zijn v-richting. Figuur 10.10 toont dat reconstructie volgens Ω, maar met ∆v = −115 pixels, dit probleem in de projectieruimte lijkt op te lossen. De projectiefout is er kleiner dan de projectiefout voor Ω. De reconstructie met ∆v = −115 pixels is echter onscherp. Deze lagere kwaliteit in de beeldruimte kan dus wel al door de numerieke scherpte voorspeld worden. (15) Op figuur 10.11 tonen we de projectie HˆfΩ , maar met ∆z = −5 mm. Ook deze ingreep lost het vastgestelde probleem in de projectieruimte op (en zelfs beter), en de kwaliteit in de beeldruimte lijkt behouden: zie figuur 10.12. Merk wel dat een numeriek vergelijk in scherpte met de reconstructie uit figuur 10.2 moeilijk is, door de extra beelddata die nu zichtbaar geworden is (beide reconstructies bevatten niet evenveel beelddata). We moeten besluiten dat ∆v en ∆z hetzelfde probleem in de projectieruimte trachten op te lossen, maar pas door de scherpte van de bekomen reconstructies te vergelijken, kunnen we bepalen welke parameter het beste aangewezen is om de projectiefout te verkleinen. Mocht de projectie van het object zich tegen de boven- of onderrand van de detector bevonden hebben (zijn u-richting), dan zouden aanpassingen van ∆x en ∆u afgewogen moeten worden. Dit is hier niet het geval en zoals uit het kalibratieproces zal blijken (sectie 10.5), is het optimaliseren van ∆x hier te verwaarlozen. Ook ∆y laten we buiten beschouwing, omdat de andere vergrotingsparameters SD en SO al erg moeilijk te bepalen zullen zijn. Dit alles leidt tot uitermate belangrijke conclusies voor het verder verloop van dit onderzoek. Een optimum (scherp tomogram) kan bestaan bij een projectiefout die niet noodzakelijk minimaal is. Het aanpassen van ∆z zal immers meer data in beeld brengen, een ongeveer even scherp tomogram als reconstructie met Ω opleveren, en tot een kleinere projectiefout leiden. Dat een optimum bekomen kan worden bij een projectiefout die niet noodzakelijk minimaal is, pleit in het voordeel van een objectieffunctie die in de beeldruimte werkt. Scherpte bleek echter niet in staat om SD en SO te optimaliseren. Scherpte is bovendien geen betrouwbare objectieffunctie wanneer de hoeveelheid beelddata wijzigt, door hier bijvoorbeeld ∆v en ∆z aan te passen. De projectiefout blijft dus onontkoombaar, al was het maar om SD en SO te bepalen. 10.4.2 Detectorparameters We trachten nu visueel te verklaren waarom de detectorparameters zich snel laten schatten op basis van projectiefout en scherpte, zoals we numeriek aantoonden in de voorstudie. In de vorige sectie lichtten we reeds de invloed van ∆v toe, met betrekking tot ∆z. In deze sectie zullen we kort de invloed van ∆u en φ op de geprojecteerde data bespreken. Figuur 10.13a toont HOOFDSTUK 10. KALIBREREN (a) projectie 73 (b) projectiefout (c) reconstructie Figuur 10.9: Projectie volgens Ω (k = 15), reconstructie met k = 100. (a) projectie (b) projectiefout (c) reconstructie Figuur 10.10: Projectie volgens Ω (k = 15, ∆v = 115 pixels), reconstructie met k = 100. (a) projectie (b) projectiefout (c) reconstructie Figuur 10.11: Projectie volgens Ω (k = 15, ∆z = −5 mm), reconstructie met k = 100. HOOFDSTUK 10. KALIBREREN (a) transversaal 74 (b) coronaal (c) sagittaal Figuur 10.12: Reconstructie volgens Ω, met ∆z = −5 mm. (15) de geprojecteerde data HˆfΩ . Figuur 10.13b toont eveneens projectie volgens Ω, maar met ∆u = −78 pixels. Figuur 10.13c past in Ω de hoek φ = −4◦ aan. Het is meteen duidelijk waarom deze parameters zich zo snel laten schatten op basis van de projectiefout. Het gaat hier immers om verschuivingen van de detector in zijn vlak, waardoor er meteen een fout ten opzichte van de data in figuur 10.8 optreedt: de contouren van de plastimouse komen niet meer overeen. Figuur 10.14 toont reconstructies voor k = 15. Scherpte blijft, net als in de voorstudie, bruikbaar om deze parameters na een beperkt aantal iteraties te schatten, zolang we de vergrotingsfactor constant houden (cf. figuur 10.4). 10.4.3 Vergrotingsfactor Op figuur 10.15 merken we dat het aanpassen van SD en SO zichtbaar weinig invloed heeft op de geprojecteerde data, terwijl in de beeldruimte de vergrotingsfactor meteen zichtbaar is. Dit maakt duidelijk waarom we de detectorparameters ∆u, ∆v en φ afzonderlijk kunnen optimaliseren. Hun effect op de geprojecteerde data is groter, omdat er een verplaatsing in het vlak plaats vindt. Deze verplaatsing resulteert in een toenemende projectiefout en een afgenomen scherpte. De parameters die de vergroting beïnvloeden, SD en SO, tonen op de geprojecteerde data enkel wazige randen rond de contouren van de plastimouse. Deze wazige randen hebben pas na veel iteraties een doorslaggevende invloed op de projectiefout. Het aligneren van de contouren van Hˆf (k) met g heeft een grotere impact dan de randonscherpte op Hˆf (k) die zich voordoet bij het aanpassen van SD en SO. We merken tevens op dat SD en SO de artefacten op de geprojecteerde data beïnvloeden. Als we de projectiefout willen gebruiken om SD en SO te optimaliseren, zal ∆z hoe dan ook geoptimaliseerd moeten worden om SD en SO niet in de verkeerde richting te duwen. We kunnen nu overgaan tot het formuleren van een stappenplan om de CT-scanner te kalibreren. HOOFDSTUK 10. KALIBREREN (a) Ω 75 (b) Ω, ∆u = −78 pixels (c) Ω, φ = −4◦ Figuur 10.13: Projecties voor k = 15. (a) Ω (b) Ω, ∆u = −78 pixels (c) Ω, φ = −4◦ Figuur 10.14: Reconstructies voor k = 15. (a) Ω (b) Ω, SD = 310 mm Figuur 10.15: Projecties voor k = 15. (c) Ω, SO = 141 mm HOOFDSTUK 10. KALIBREREN 10.5 76 Stappenplan Gebaseerd op de voorstudie, waar we parameters afzonderlijk konden optimaliseren, bouwen we ook hier een stappenplan om te kalibreren uit, mede gebaseerd op de kennis uit de experimten van sectie 10.3 en 10.4. 10.5.1 Optimaliseren van ∆u en φ ∆u, ∆v en φ hebben een grote invloed op de reconstructiekwaliteit [27]. Uit sectie 10.4.1 weten we dat ∆v en ∆z dezelfde fout kunnen compenseren in de projectieruimte, maar dat hun invloed in de beeldruimte anders is. Vier parameters optimaliseren — ∆u, ∆v, φ en ∆z — maakt de zoekruimte al aardig complex. Bovendien vereist het optimaliseren van ∆v en ∆z een afweging tussen minimale projectiefout en maximale scherpte (cf. figuren 10.10 en 10.11), wat in de richting van een MOEA wijst. We kiezen ervoor om eerst ∆u en φ te optimaliseren, op basis van scherpte. Tabel 10.3 vat de eerste optimalisatiestap samen. De evaluatie van scherpte gebeurt na 2 iteraties van het iteratief reconstructiealgoritme. We zetten een bovengrens op de projectiefout. De projectiefout zelf minimaliseren, zou pas betrouwbare resultaten opleveren na een viertal iteraties. Tabel 10.4 geeft de resultaten van het optimalisatiealgoritme, voor drie verschillende tests. Figuur ˆ 1,1 . 10.16 toont het tussentijdse resultaat met de parameterverzameling Ω Symbool Beschrijving Waarde Eenheid Wijzigen ∆x ∆y ∆z ∆u ∆v φ SD SO Uitwijking object in x-richting Uitwijking object in y-richting Uitwijking object in z-richting Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (twist) Afstand stralingsbron tot detector Afstand stralingsbron tot object 0,0 0,0 0,0 -30 162 0,0 293,0 140,0 mm mm mm pixels pixels nee nee nee ja nee ja nee nee ◦ mm mm Tabel 10.3: Startwaarden genetisch algoritme op scherpte, met |Tt | = 12. ˆ 1,1 Ω ˆ 1,2 Ω ˆ 1,3 Ω ∆u φ -37,8105 pixels -37,7601 pixels -37,9912 pixels -0,2621◦ -0,2329◦ -0,2765◦ Tabel 10.4: Behaalde resultaten na de eerste kalibratiestap. HOOFDSTUK 10. KALIBREREN (a) transversaal 77 (b) coronaal (c) sagittaal ˆ 1,1 (tabel 10.4). Figuur 10.16: Resultaat stap 1: reconstructie volgens Ω 10.5.2 Optimaliseren van ∆v en ∆z Wanneer het object tijdens het scannen tot tegen de rand van de detector geprojecteerd werd in de v-richting (de u-richting), dan kunnen ∆v en ∆z (∆u en ∆y) afzonderlijk de fout compenseren die mogelijks ontstaat in de projectieruimte (cf. figuur 10.9). Het resultaat in de beeldruimte is evenwel anders, cf. figuren 10.10 en 10.11. Scherpte kan hier uitsluitsel geven over de beste reconstructie. ∆v en ∆z enkel op scherpte optimaliseren is evenwel niet ideaal. Het aanpassen van deze parameters zal meer of minder data in beeld brengen, wat een vertekend beeld oplevert van de numerieke scherpte. We kiezen om met een MOEA snel een afweging te vinden tussen oplossingen met kleine projectiefout en grote scherpte, en kleine projectiefout en lagere scherpte. Het gebruik van een MOEA heeft als voordeel dat de projectiefout de richting van de parameters ∆v en ∆z zal kunnen bepalen, en dat scherpte bepaalt welke parameter best niet te veel de projectiefout compenseert om geen slechte resultaten in de beeldruimte te bekomen. Met de oplossingen die het MOEA na een beperkt aantal tableaus oplevert, kunnen we een genetisch algoritme starten dat enkel de projectiefout minimaliseert, en zich houdt aan de richting waarin de parameters tijdens de uitvoering van het MOEA evolueerden. Het aantal iteraties waarna we de objectieffuncties evalueren is eveneens beperkt: k = 4 geeft goede resultaten. Tabel 10.5 geeft een overzicht van deze kalibratiestap. Tabel 10.6 toont de bekomen waarden voor twee verschillende tests. Figuur 10.17 toont het ˆ 2,1 . tussentijdse resultaat met de parameterverzameling Ω 10.5.3 Optimaliseren van SD en SO Enkel door het minimaliseren van de projectiefout kunnen we de parameters SD en SO bepalen. Het grote nadeel is dat dit erg veel iteraties van het iteratief reconstructiealgoritme vergt. HOOFDSTUK 10. KALIBREREN 78 Symbool Beschrijving Waarde Eenheid Wijzigen ∆x ∆y ∆z ∆u ∆v φ SD SO Uitwijking object in x-richting Uitwijking object in y-richting Uitwijking object in z-richting Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (twist) Afstand stralingsbron tot detector Afstand stralingsbron tot object 0,0 0,0 0,0 -37,8105 -162 -0,2621 293,0 140,0 mm mm mm pixels pixels nee nee ja nee ja nee nee nee ◦ mm mm Tabel 10.5: Startwaarden genetisch algoritme op projectiefout, met |Tt | = 12. ˆ 2,1 Ω ˆ 2,2 Ω ∆v ∆z -151,993 pixels -150,788 pixels -4,22209 mm -4,38001 mm Tabel 10.6: Behaalde resultaten na de tweede kalibratiestap. (a) transversaal (b) coronaal (c) sagittaal ˆ 2,1 (tabel 10.6). Figuur 10.17: Resultaat stap 2: reconstructie volgens Ω Omdat we op figuur 10.17 al een scherp tomogram waarnemen, maken we een afweging tussen nauwkeurigheid, bruikbaarheid en tijd. We evalueren de projectiefout na k = 80. Merk op dat het kalibreren van ∆z strikt noodzakelijk was. Anders zouden SD en SO de fout in de projectieruimte compenseren die ∆z (in samenwerking met ∆v) kan oplossen, cf. figuur 10.15. Tabel 10.7 toont de startwaarden voor deze derde kalibratiestap, met in tabel 10.8 de behaalde resultaten. HOOFDSTUK 10. KALIBREREN 79 Symbool Beschrijving Waarde Eenheid Wijzigen ∆x ∆y ∆z ∆u ∆v φ SD SO Uitwijking object in x-richting Uitwijking object in y-richting Uitwijking object in z-richting Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (twist) Afstand stralingsbron tot detector Afstand stralingsbron tot object 0,0 0,0 -4,22209 -37,8105 -151,993 -0,2621 293,0 140,0 mm mm mm pixels pixels nee nee nee nee nee nee ja ja ◦ mm mm Tabel 10.7: Startwaarden genetisch algoritme op projectiefout, met |Tt | = 8. ˆ 3,1 Ω SD SO 305,6862 mm 127,6113 mm Tabel 10.8: Behaalde resultaten na de derde kalibratiestap. (a) transversaal (b) coronaal (c) sagittaal ˆ 3,1 (tabel 10.8). Figuur 10.18: Resultaat stap 3: reconstructie volgens Ω 10.6 Conclusie Figuur 10.18 toont het finale resultaat na kalibreren. Tabel 10.9 vat de geoptimaliseerde parameters nog eens samen. 10.6.1 Herhaalbaarheid We hebben elke kalibratiestap een aantal keer herhaald, op het optimaliseren van SO en SD in stap 3 na, uit tijdbeperkingen. Het genetisch algoritme blijkt inderdaad goed naar de optima te streven en de resultaten liggen erg dicht in elkaars buurt. HOOFDSTUK 10. KALIBREREN 80 Symbool Beschrijving Waarde Eenheid ∆x ∆y ∆z ∆u ∆v φ SD SO Uitwijking object in x-richting Uitwijking object in y-richting Uitwijking object in z-richting Uitwijking detector in u-richting Uitwijking detector in v-richting Hoek detector (twist) Afstand stralingsbron tot detector Afstand stralingsbron tot object 0,0 0,0 -4,22209 -37,8105 -151,993 -0,2621 305,6862 127,6113 mm mm mm pixels pixels ◦ mm mm Tabel 10.9: Eindresultaat van het kalibreren. 10.6.2 Nauwkeurigheid Gezien het gegeven optimum Ω slechts een benadering was, is het moeilijk de geoptimaliseerde parameters ermee te vergelijken. We beperken ons tot een visuele controle, en dan merken we dat de artefacten ontstaan door foute detectorparameters opgelost werden. De nauwkeurigheid van de resultaten voor SO en SD is moeilijk in te schatten. Het optimalisatiealgoritme heeft geen stopvoorwaarde bereikt. Toch konden we met het behaalde resultaat een visueel goede reconstructie bekomen. Als het genetisch algoritme voor ∆u de waarde -37,8105 teruggeeft, betekent dit niet noodzakelijk dat -37,8106 of -37,8104 slechtere resultaten opleverden. De nauwkeurigheid, in termen van beduidende cijfers, is afhankelijk van de precisie (float) en de standaardafwijking gebruikt om mutatie uit te voeren tijdens de uitvoering van het genetisch algoritme. Deze standaardafwijking kan weliswaar kleiner gemaakt worden in de tijd om de resultaten te verfijnen, maar dan bestaat het risico dat het genetisch algoritme niet meer uit lokale extrema ontsnapt. 10.6.3 Tijd Het duurt op de GPU ongeveer 3 minuten en 26 seconden om SIRT 1 iteratie van 1 reconstructie te laten uitvoeren. Dit betekent dat het berekenen van één tableau van het genetisch algoritme met 12 individuen per iteratie 42 minuten duurt. 10.6.4 Samenvatting Figuur 10.19 toont het te volgen stappenplan bij kalibreren. Het optimaliseren van ∆u en φ gebeurt best op scherpte en de evaluatie kan na een beperkt aantal iteraties: k = 2 geeft al goede resultaten. Een bovengrens op de projectiefout vermijdt dat de scherpte naar andere maxima streeft. HOOFDSTUK 10. KALIBREREN 81 Figuur 10.19: Stappenplan voor het kalibreren van CT-scanners. Vervolgens kalibreren we ∆v en ∆z. Wanneer het gescande object tot tegen de rand van de detector geprojecteerd werd in de v-richting (de u-richting), dan zullen ∆v en ∆z (∆u en ∆y) de fout compenseren die mogelijks ontstaat in de projectieruimte (cf. figuur 10.9). Scherpte moet uitsluitsel geven welke parametercombinatie in de beeldruimte het scherpste beeld oplevert. Om de afweging tussen grote scherpte en kleine projectiefout te maken, hanteren we eerst zowel scherpte als projectiefout. Wanneer we de richting van de parameters bepaald hebben, minimaliseren we de projectiefout. Het aantal iteraties is eveneens beperkt, k = 4 geeft goede resultaten. Een optionele stap is om ∆u, ∆v en φ nog eens te optimaliseren, op basis van scherpte. De mogelijkheid bestaat immers dat ∆u en φ moeten bijgestuurd worden door de nieuwe waarde van ∆v. In de praktijk blijkt deze invloed echter beperkt. De laatste stap bestaat erin SO en SD te optimaliseren volgens de projectiefout. Het gebruik van scherpte heeft hier geen nut. Het aantal iteraties moet wel groot gemaakt worden: de convergentie van de projectiefout is slecht voor deze parameters. Het blijkt dat optima kunnen bestaan bij een projectiefout die niet minimaal is. Dit doet ons denken in de richting van een objectieffunctie die enkel in de beeldruimte werkt, maar scherpte is onbruikbaar bij de parameters die de vergrotingsfactor beïnvloeden. Met de vraagtekens die men bij de minimalisatie van entropie moet plaatsen [13], bestaat er dus geen algemeen toepasbare methode in de beeldruimte. Het gebruik van de projectiefout blijft onontkoombaar. Gelukkig hebben we kunnen aantonen dat parameters apart gekalibreerd kunnen worden, in aanwezigheid van andere parameters die mogelijks foute waarden bezitten. Op die manier daalt de complexiteit van de zoekruimte aanzienlijk. Uit tijdbeperkingen is het niet mogelijk om een statistische analyse te maken van de geoptimaliseerde parameters, zoals bijvoorbeeld een standaardafwijking bepalen op de bekomen optima. Hoewel strikt genomen niet statistisch relevant, hebben we door een paar keer de experimenten te herhalen toch gezien dat min of meer dezelfde optima worden bekomen. Het stappenplan uit figuur 10.19 blijkt dus bruikbaar en de optimalisatiealgoritmes presteren goed. Hoofdstuk 11 Conclusie 11.1 Resultaten Het minimaliseren van de projectiefout blijkt erg robuust te zijn om alle parameters tegelijkertijd te optimaliseren, zolang het aantal iteraties van het iteratief reconstructiealgoritme maar voldoende groot gemaakt wordt. In de praktijk betekent dit een al te complexe zoekruimte en een optimalisatie die te veel tijd in beslag neemt. Scherpte als objectieffunctie levert geen betere resultaten op zonder ook de projectiefout mee in rekening te brengen. Deze objectieffunctie is immers ongeschikt om de parameters die de vergroting beïnvloeden, te optimaliseren. Scherpte heeft wel een richtinggevend karakter: bij weinig iteraties kan het al de richting aanduiden waarin de parameters moeten evolueren opdat ze hun optimale waarden zouden bereiken. We toonden dit aan door het gebruik van een MOEA. We hebben gebruik kunnen maken van de veelbelovende resultaten uit het werk van Kingston et al. [13] wat betreft scherpte. Toch hebben we situaties kunnen ontdekken waarin scherpte geen globaal maximum vertoont bij het optimum. Dubbele randen, een typisch artefact bij het fout inschatten van de detectorparameters, kunnen zelfs door scherpte bevorderd worden. Een bovengrens op de projectiefout blijkt nodig. Scherpte optimaliseert de detectorparameters wel iets sneller dan de projectiefout zelf. Het werk van Wein et al. [15] steunt volledig op het gebruik van de projectiefout. Zij optimaliseren alle parameters tegelijkertijd aan de hand van het Nelder-Mead algoritme. Wij hebben aangetoond dat dit voor een correcte inschatting veel iteraties vereist, en dat de Nelder-Mead procedure ongeschikt is wegens de aanwezigheid van te veel lokale extrema. Dit verklaart de grote afwijkingen tussen de schatting en het optimum in hun werk, ook al konden ze tot een schatting komen die visueel een goede reconstructie opleverde. Wij hebben een methode uitgewerkt om de parameters stapsgewijs te optimaliseren. Dit verkleint de zoekruimte aanzienlijk en bovendien kunnen sommige parameters al na een erg klein aantal 82 HOOFDSTUK 11. CONCLUSIE 83 iteraties geschat worden. Sawall et al. [3] stellen terecht een genetisch algoritme voor om te kunnen ontsnappen aan de lokale extrema waarin Nelder-Mead typisch verzeild raakt. Toch optimaliseren ook zij alle parameters samen, wat de zoekruimte onnodig complex maakt. Ondanks het gebrek aan de systeemmatrix, waarmee Bronnikov [18] een algemene optimalisatiemethode uitwerkte, hebben we dus toch alle parameters kunnen optimaliseren en hun onderlinge verbanden in de beeld- en projectieruimte kunnen vaststellen. 11.2 Toekomstig werk Toekomstig werk moet zich toeleggen op het gebruik van een alternatief voor SIRT dat zich eveneens goed laat parallelliseren. Kalibreren is immers een tijdrovend proces. Voorts hebben we het kalibratieprobleem hier in al zijn algemeenheid aangepakt. Het kan nuttig zijn om na te gaan of het bijvoorbeeld mogelijk is dezelfde principes toe te passen op geschaalde projector- en reconstructiedata. We hebben niet kunnen testen of de scherpte ook bruikbare resultaten levert wanneer het object beweegt tijdens de acquisitie. Een mogelijkheid bestaat erin na te gaan of we het kalibratieproces ook kunnen toepassen door de beeldruimte te beperken tot het bed waarop het object rust, in de veronderstelling dat dit stabiel blijft. Bijlage A Inhoud digitale drager Aan deze thesis werd een digitale drager toegevoegd met daarop de (geannoteerde) code van reconstructie- en optimalisatiealgoritmes. Ook enkele reconstructies van de plastimouse die representatief zijn voor dit onderzoek zijn aanwezig. A.1 CPU CPU/code/src/ Reconstructie op de CPU gebruikt C++11 en OpenMP. Compileren vereist volgende syntax: g++ −fopenmp −s t d=c++11 −O3 −p i p e f o o . cpp −o . . / b i n / f o o Voorwaartse projectie: • ForwardProject2D.cpp • ForwardProject2D_geometry.cpp Reconstructie: • SIRT.cpp • SIRT_geometry.cpp Kalibreren: • • • • • SIRT_genetics_error.cpp SIRT_genetics_sharpness.cpp SIRT_neldermead_error.cpp SIRT_neldermead_sharpness.cpp SIRT_moea_error_sharpness.cpp 84 BIJLAGE A. INHOUD DIGITALE DRAGER CPU/code/include/calibration/ Dataopslag: • DataTable.hh • DataLog.hh Optimalisatie: • • • • Simplex.hh Genetics.hh Population.hh MOEA.hh CPU/data/ Fantomen: • • • • phantom.png phantom.raw phantom_small.png phantom_small.raw Gesimuleerde projectie: • sinogram_small.raw Configuratiebestand: • calibration.conf A.2 GPU GPU/code/CTIRGPU/include/calibration/ De voorzieningen voor dataopslag en optimalisatie zijn identiek aan de CPU-versies. 85 BIJLAGE A. INHOUD DIGITALE DRAGER 86 GPU/code/CTIRGPU/include/recon/XOCT/ Reconstructie: • • • • • Detector.hh Detector.cu Tube.hh XOCT_calibration.hh XOCT_calibration.cu In de ImagingLibrary werden BinaryData_GPU, BinaryData3D_GPU en Image_GPU aangepast. GPU/code/CTIRGPU/include/src/ Kalibreren: • SIRT_calibration.cu Compileren kan met de bijgevoegde Makefile. GPU/data/ Configuratiebestand: • plastimouse.txt Reconstructies: • given_SIRT_100.img • guess_SIRT_100.img • result_SIRT_100.img Bijlage B Configuratiebestanden B.1 Principe Bij het kalibreren van de geometrische parameters heeft het reconstructiealgoritme nood aan een tekstgebaseerd configuratiebestand. Dit configuratiebestand bevat de eigenschappen van de CT-scanner en de geometrische parameters die het model gebruikt. De geometrische parameters vormen de initiële schatting waaruit het optimalisatiealgoritme vertrekt. Per individuele parameter kan met 0 of 1 in het binaire veld calibrate aangeduid worden of deze parameter aangepast en dus gekalibreerd mag worden. Het configuratiebestand gaat uit van een genetisch algoritme. Het binaire veld sharpness laat toe om het reconstructiealgoritme de scherpte te laten maximaliseren. Analoog laat het veld projection_error toe om de projectiefout te minimaliseren. Beide velden op 1 zetten, betekent dat het reconstructiealgoritme automatisch een MOEA zal gebruiken. Populatie- en archiefgrootte zijn in te stellen in de respectievelijke velden population en survivors. De betekenis van de andere velden zou vanzelfsprekend moeten zijn. B.2 Formaat [ CTIR ] access_order = sequential i n p u t = /home/ jim / data /001 _ p l a s t i m o u s e /20140326 T144248 /Raw.%04 i output = /home/ jim / workspace / p l a s t i m o u s e _ o u t p u t / r e c o n s t o r a g e = /home/ jim / workspace / p l a s t i m o u s e _ o u t p u t / rays = 1 subsets = 4 airraw_path = /home/ jim / data /001 _ p l a s t i m o u s e /20140326 T144248 / a i r r a w cudaDevice = 0 spectrum = /home/ i n f i n i t y / workspace / CTspectra / poly_50kVp_triumph . s p c 87 BIJLAGE B. CONFIGURATIEBESTANDEN subsample = 1 [ Store ] normalization = 0 backNormalization = 0 estimated = 0 projection_error = 0 image_error = 0 reconstructed = 1 [ Geometry ] a n g l e F i l e = /home/ jim / data /001 _ p l a s t i m o u s e /20140326 T144248 / a n g l e . b i n n u m b e r _ p r o j e c t i o n s = 512 skip_projections = 1 t o t a l _ r o t a t i o n = 360 detectorDimY = 2368 detectorDimZ = 2240 p i x e l s i z e = 0.05 imageDimX = 256 imageDimY = 256 imageDimZ = 256 voxelsize = 0.2 f o c a l s p o t s i z e = 0.05 [ Calibration ] sharpness = 1 projection_error = 0 p o p u l a t i o n = 40 survivors = 2 i t e r a t i o n s = 10 offset = 8 0 = ImageOffsetX 1 = ImageOffsetY 2 = ImageOffsetZ 3 = DistanceDetectorFocalSpot 4 = DistanceObjectFocalSpot 5 = DetectorOffsetU 6 = DetectorOffsetV 7 = Pivoting [ ImageOffsetX ] calibrate = 0 value = 0 stdev = 1 [ ImageOffsetY ] calibrate = 0 value = 0 stdev = 1 88 BIJLAGE B. CONFIGURATIEBESTANDEN [ ImageOffsetZ ] calibrate = 0 value = 0 stdev = 1 [ DistanceDetectorFocalSpot ] calibrate = 1 v a l u e = 293 stdev = 1 [ DistanceObjectFocalSpot ] calibrate = 1 v a l u e = 140 stdev = 1 [ DetectorOffsetU ] calibrate = 1 v a l u e = −30 stdev = 1 [ DetectorOffsetV ] calibrate = 1 v a l u e = −162 stdev = 1 [ Pivoting ] calibrate = 1 value = 0 stdev = 1 89 Bijlage C Gebruik optimalisatiealgoritme C.1 Principe Elk door ons in C++ geïmplementeerd genetisch optimalisatiealgoritme, of het nu met één (Population.hh) of meer (MOEA.hh) objectieffuncties werkt, moet alle methodes van de abstracte ouderklasse Genetics.hh implementeren. Deze klasse levert dus een blauwdruk voor de genetische algoritmes. De klasse DataLog.hh houdt voor alle tableaus, per parameterverzameling, per iteratie van het reconstructiealgoritme, de waarde van een objectieffunctie bij. Voor elke beschouwde objectieffunctie moet een object van de klasse DataLog.hh aangemaakt worden. We tonen nu de volgorde waarin we de methodes uit Genetics.hh en DataLog.hh moeten oproepen om één of twee objectieffuncties te optimaliseren binnen de context van een iteratief reconstructiealgoritme. C.2 Generieke structuur DataLog<f l o a t > c o s t 1 _ l o g ( N t o t a l p o p u l a t i o n , N i t e r a t i o n s , Nparameters ) ; DataLog<f l o a t > c o s t 2 _ l o g ( N t o t a l p o p u l a t i o n , N i t e r a t i o n s , Nparameters ) ; int tableau = 0 ; Genetics ∗ c a l i b r a t i o n ; i f ( c o s t 1 && c o s t 2 ) { c a l i b r a t i o n = new MOEA( N t o t a l p o p u l a t i o n , N s u r v i v o r s , Nparameters , 2 ) ; } else { c a l i b r a t i o n = new P o p u l a t i o n ( N t o t a l p o p u l a t i o n , N s u r v i v o r s , NParameters ) ; } f o r ( i n t parameter = 0 ; parameter < Nparameters ; parameter++) { c a l i b r a t i o n −>S e t C a l i b r a t i o n ( parameter , i n i t _ p a r a m e t e r s [ parameter ] [ 0 ] ) ; c a l i b r a t i o n −>S e t I n i t i a l P a r a m e t e r ( parameter , i n i t _ p a r a m e t e r s [ parameter ] [ 1 ] ) ; c a l i b r a t i o n −>S e t S t a n d a r d D e v i a t i o n ( parameter , i n i t _ p a r a m e t e r s [ parameter ] [ 2 ] ) ; 90 BIJLAGE C. GEBRUIK OPTIMALISATIEALGORITME } c a l i b r a t i o n −> I n i t i a l i z e ( ) ; while ( true ) { c a l i b r a t i o n −>CopyParameters(& c o s t 1 _ l o g ) ; c a l i b r a t i o n −>CopyParameters(& c o s t 2 _ l o g ) ; f o r ( i n t i t e r a t i o n = 0 ; i t e r a t i o n < N i t e r a t i o n s ; i t e r a t i o n ++) { // l o g i c a r e c o n s t r u c t i e a l g o r i t m e // v a l u e 1 en v a l u e 2 v o o r de r e s p e c t i e v e l i j k e o b j e c t i e f f u n c t i e s b e p a l e n f o r ( i n t i n d i v i d u a l = 0 ; i n d i v i d u a l < N t o t a l p o p u l a t i o n ; i n d i v i d u a l ++) { c o s t 1 _ l o g . StoreData ( i n d i v i d u a l , i t e r a t i o n , v a l u e 1 [ i n d i v i d u a l ] ) ; c o s t 2 _ l o g . StoreData ( i n d i v i d u a l , i t e r a t i o n , v a l u e 2 [ i n d i v i d u a l ] ) ; } } i f ( c o s t 1 && c o s t 2 ) { c o s t 1 _ l o g . Write ( path , " c o s t 1 " , t a b l e a u + 1 , true ) ; c o s t 2 _ l o g . Write ( path , " c o s t 2 " , t a b l e a u + 1 , true ) ; f o r ( i n t i = 0 ; i < N t o t a l p o p u l a t i o n ; i ++) { c a l i b r a t i o n −>S e t C o s t ( i , c o s t 1 _ l o g . GetLastData ( i ) , 0 ) ; c a l i b r a t i o n −>S e t C o s t ( i , c o s t 2 _ l o g . GetLastData ( i ) , 1 ) ; } } else { i f ( cost1 ) { f o r ( i n t i = 0 ; i < N t o t a l p o p u l a t i o n ; i ++) { c a l i b r a t i o n −>S e t C o s t ( i , c o s t 1 _ l o g . GetLastData ( i ) , 0 ) ; } } else { f o r ( i n t i = 0 ; i < N t o t a l p o p u l a t i o n ; i ++) { c a l i b r a t i o n −>S e t C o s t ( i , c o s t 2 _ l o g . GetLastData ( i ) , 0 ) ; } } } i f ( c a l i b r a t i o n −>I s T e r m i n a t e d ( ) ) { break ; } c a l i b r a t i o n −>CreateNewPopulation ( t a b l e a u ) ; t a b l e a u ++; } delete c a l i b r a t i o n ; 91 Bijlage D Reconstructies In deze bijlage vergelijken we in meer detail de reconstructie volgens Ω (tabel 10.1) en de reconstructie volgens Ωcal (tabel 10.9). (a) Ω (b) Ωcal (c) Ω (d) Ωcal Figuur D.1: Transversale doorsnedes. 92 BIJLAGE D. RECONSTRUCTIES 93 (a) Ω (b) Ωcal (c) Ω (d) Ωcal Figuur D.2: Coronale doorsnedes. (a) Ω (b) Ωcal (c) Ω (d) Ωcal Figuur D.3: Sagittale doorsnedes. Bibliografie [1] http://www.cancerresearchuk.org/cancer-help/about-cancer/tests/ ct-scan, “Cancer Research UK: CT Scan”, 14/08/2013, geraadpleegd op 20/05/2014. [2] http://medical.neusoft.com/en/products/1496/, “NeuViz 16”, 25/04/2014, geraadpleegd op 05/07/2014. [3] S. Sawall, M. Knaup, en M. Kachelrieß, “An Adaptive Genetic Algorithm for Misalignment Estimation (AGAME) in Circular, Sequential and Spiral Cone-Beam Micro-CT”, Proceedings of the 11th International Meeting on Fully Three-Dimensional Image Reconstruction in Radiology and Nuclear Medicine, 2011, pp. 187-190. [4] http://deredactie.be/cm/vrtnieuws/binnenland/1.1965141, “Campagne Waarschuwt Belgen voor Gevaar van Straling”, 12/05/2014, geraadpleegd op 20/05/2014. [5] http://deredactie.be/cm/vrtnieuws/binnenland/1.1898501, “Meer MRI- en PET-Scanners Moeten Blootstelling Bestraling Verminderen”, 03/03/2014, geraadpleegd op 20/05/2014. [6] D. S. Lalush en M. N. Wernick, “Iterative Image Reconstruction”, Emission Tomography, Elsevier, 2004, pp. 443-472. [7] C. Mennessier, R. Clackdoyle, en F. Noo, “Direct Determination of Geometric Alignment Parameters for Cone-Beam Scanners”, Physics in Medicine and Biology, vol. 54, 2009, pp. 1633-1660. [8] I. S. Kyprianou, S. Paquerault, B. D. Galas, A. Badano, S. Park, en K. J. Myers, “Framework for Determination of Geometric Parameters of a Cone Beam CT Scanner for Measuring the System Response Function and Improved Object Reconstruction”, Proceedings of the IEEE International Symposium on Biomedical Imaging, 2006, pp. 1248-1251. [9] S. Brandt, J. Heikkonen, en P. Engelhardt, “Multiphase Method for Automatic Alignment of Transmission Electron Microscope Images Using Markers”, Journal of Structural Biology, vol. 133, 2001, pp. 10-22. 94 BIBLIOGRAFIE 95 [10] T. Varslot, A. Kingston, G. Myers, en A. Sheppard, “High-Resolution Helical Cone-Beam Micro-CT with Theoretically-Exact Reconstruction from Experimental Data”, Medical Physics, vol. 38, no. 10, 2011, pp. 5459-5476. [11] D. Panetta, N. Belcari, A. Del Guerra, en S. Moehrs, “An Optimization-Based Method for Geometrical Calibration in Cone-Beam CT without Dedicated Phantoms”, Physics in Medicine and Biology, vol. 53, 2008, pp. 3841-3861. [12] Y. Kyriakou, R. M. Lapp, L. Hillebrand, D. Ertel, en W. A. Kalender, “Simultaneous Misalignment Correction for Approximate Circular Cone-Beam Computed Tomography”, Physics in Medicine and Biology, vol. 53, 2008, pp. 6267-6289. [13] A. Kingston, A. Sakellariou, T. Varslot, G. Myers, en A. Sheppard, “Reliable Automatic Alignment of Tomographic Projection Data by Passive Auto-Focus”, Medical Physics, vol. 38, no. 9, 2011, pp. 4934-4945. [14] J. Wicklein, H. Kunze, W. A. Kalender, en Y. Kyriakou, “Image Features for Misalignment Correction in Medical Flat-Detector CT”, Medical Physics, vol. 39, no. 8, 2012, pp. 49184931. [15] W. Wein, A. Ladikos, en A. Baumgartner, “Self-Calibration of Geometric and Radiometric Parameters for Cone-Beam Computed Tomography”, Proceedings of the 11th International Meeting on Fully Three-Dimensional Image Reconstruction in Radiology and Nuclear Medicine, 2011, pp. 327-330. [16] C. Debbeler, N. Maass, M. Elter, F. Dennerlein, en T. M. Buzug, “A New CT Rawdata Redundancy Measure Applied to Automated Misalignment Correction”, Proceedings of the 12th International Meeting on Fully Three-Dimensional Image Reconstruction in Radiology and Nuclear Medicine, 2013, pp. 264-267. [17] V. Patel, R. N. Chityala, K. R. Hoffmann, C. N. Ionita, D. R. Bednarek, en S. Rudin, “Self-Calibration of a Cone-Beam Micro-CT System”, Medical Physics, vol. 36, no. 1, 2009, pp. 48-58. [18] A. V. Bronnikov, “A New Algorithm for Geometric Self-Calibration in Cone-Beam CT”, Proceedings of the 11th International Meeting on Fully Three-Dimensional Image Reconstruction in Radiology and Nuclear Medicine, 2011, pp. 175-178. [19] A. V. Bronnikov, “Reconstruction of Attenuation Map Using Discrete Consistency Conditions”, IEEE Transactions on Medical Imaging, vol. 19, no. 5, 2000, pp. 451-462. [20] F. Stopp, A. J. Wieckowski, M. Käseberg, S. Engel, F. Fehlhaber, en E. Keeve, “A Geometric Calibration Method for an Open Cone-Beam CT System”, Proceedings of the 12th International Meeting on Fully Three-Dimensional Image Reconstruction in Radiology and Nuclear Medicine, 2013, pp. 106-109. BIBLIOGRAFIE 96 [21] Peter Gilbert, “Iterative Methods for the Three-Dimensional Reconstruction of an Object From Projections”, Journal of Theoretical Biology, 36(1), 1972, pp. 105-117. [22] B. De Man en S. Basu, “Distance-Driven Projection and Backprojection in Three Dimensions”, Physics in Medicine and Biology, vol. 49, no. 11, 2004, pp. 2463-2475. [23] P. G. Schulz, “Nelder-Mead Simplex”, Creative Design in Optimization: Metaheuristics Applied to Multi-Modal Continuous Functions, 2006, pp. 10-14. [24] J. C. Lagarias, J. A. Reeds, M. H. Wright, en P. E. Wright, “Convergence Properties of the Nelder-Mead Simplex Method in Low Dimensions”, SIAM Journal on Optimization, vol. 9, no. 1, 1998. [25] T. Bäck, “Evolutionary Algorithms in Theory and Practice”, Oxford University Press, 1996. [26] R. Kumar en Jyotishree, “Blending Roulette Wheel Selection & Rank Selection in Genetic Algorithms”, International Journal of Machine Learning and Computing, vol. 2, no. 4, 2012, pp. 365-370. [27] L. V. Smekal, M. Kachelrieß, E. Stepina, en W. A. Kalender, “Geometric Misalignment and Calibration in Cone-Beam Tomography”, Medical Physics, vol. 31, no. 12, 2004, pp. 3242-3266. [28] M.A. Gennert en A.L. Yuille, “Determining the Optimal Weights in Multiple Objective Function Optimization”, Proceedings of the Second International Conference on Computer Vision, 1988. [29] E. Zitzler, M. Laumanns, en S. Bleuler, “A Tutorial on Evolutionary Multiobjective Optimization”, Metaheuristics for Multiobjective Optimisation, vol. 535, Springer, 2004, pp. 3-37. [30] E. Zitzler en L. Thiele, “Multiobjective Evolutionary Algorithms: A Comparative Case Study and the Strength Pareto Approach”, IEEE Transactions on Evolutionary Computation, 3(4), 1999, pp. 257-271. [31] E. Zitzler, M. Laumanns, en L. Thiele, “SPEA2: Improving the Strength Pareto Evolutionary Algorithm”, TIK-Report 103, 2001. [32] R. Sivaraj, “A Review of Selection Methods in Genetic Algorithm”, International Journal of Engineering Science and Technology, vol. 3, no. 5, 2011, pp. 3792-3797. [33] https://developer.nvidia.com/about-cuda, Cuda”, geraadpleegd op 01/03/2014. [34] Frank Verhaegen, Maastro Clinic, Nederland. “NVIDIA CUDA Zone: About
© Copyright 2024 ExpyDoc