This disclosure generally relates to a proton CT image reconstruction, and more specifically, to an iterative algorithm for proton CT image reconstruction.
In radiation therapy, protons provide a superior dose distribution compared to x-rays. This is because protons have a relatively low dose deposition in the entrance region (plateau), followed by a steep increase to a dose (Bragg) peak, and an even steeper distal dose fall-off. This well-defined range is the prime advantage of proton therapy over x-rays. It results in minimal dose to healthy tissues, thus causing fewer side effects and resulting in a better quality of life for the patient. However, this finite range of proton beams can also be a disadvantage when the patient's desired treatment location is uncertain. This uncertainty in treatment location may be due to several reasons.
For example, the use of x-ray imaging for treatment planning to obtain a map of relative stopping power (RSP) of tissues (relative to water) may be inaccurate due to the differences in the dependence of x-ray attenuation and proton energy loss on tissue composition (electron density and atomic number). This yields an inherently inaccurate conversion of x-ray Hounsfield units to proton RSP. There may also be uncertainties in patient set up, including alignment of the patient to the isocenter and deformations from non-rigid changes such as shoulder movements. Furthermore, changes in the position of a tumor during the patient's breathing cycle and anatomical changes of the patient during the course of fractionated treatments may increase the amount of uncertainty.
Current treatment planning procedures try to minimize the effects of these uncertainties by including uncertainty margins, selecting beam angles tangential to organs, and using dose delivery technologies such as Pencil Beam Scanning (PBS) and intensity-modulated proton therapy (IMPT). In PBS, a beam of proton radiation is steered and focused on the treatment location, thereby reducing unnecessary radiation exposure to surrounding non-cancerous cells. In IMPT, two or three proton beams are combined during each treatment to deliver individual dose distributions that add up to a highly conformal dose in the target volume and a much lower dose to organs (e.g., eyes, cranial nerves, parotid glands) at risk. Superior dose distribution and cost reduction in proton therapy can be achieved by using proton beam-based image guidance in procedures such as rapid online adaptive therapy. This technique is particularly helpful for hypo-fractionated treatments, which can benefit from more conformal dose distributions and a higher standard of safety given the high dose delivery for each treatment.
While planning treatment and dose delivery using the above techniques, the knowledge of the water equivalent path length (WEPL) of each ray, or pencil beam, from the skin to every point in the target is crucial. For protons, this length is estimated from RSP based on X-ray Hounsfield units. Unfortunately, such estimates lead to 3 to 4% uncertainties in the proton range prediction. Therefore, protons in the Bragg peak may overshoot (or undershoot) the desired stopping depth in the target causing tissue damage beyond the target volume.
The current algorithms for proton CT (pCT) image reconstruction in use involve iteratively moving towards an improved solution under broad sets of conditions. However, these algorithms suffer from the lack of a systematic framework, such as a definition of an optimal solution in the presence of measurement uncertainties, or the use of an arbitrary step size for each iteration. Explorations often incorporate additional smoothing algorithms such as median filtering or total variation superiorization, which can produce better-looking images with less noise but with unknown systematic effects, particularly when imaging complex objects with rapid density variations.
What is needed is a proton imaging system and algorithm that provide accurate three-dimensional (3D) images of RSP values from individual protons that pass through the body. What is also needed is a 3D pCT image reconstruction algorithm that optimally fits different protons and does not depend on the starting point for the initial iteration, where each iteration is fast and efficient, and the number of iterations is minimized.
Described herein is an improved system for 3D proton imaging encompassing both proton radiography (pRad) and proton CT (pCT). Range uncertainties can be reduced with pCT, while pRad provides a fast and efficient check of patient set up and integrated range along a beam's eye view just before treatment. This provides a complete solution to the range inaccuracy problem in proton therapy. pCT substantially reduces the uncertainties of treatment planning by directly measuring RSP (the tissue property determining proton energy loss) without being affected by image artifacts and with much lower dose to the patient than comparable x-ray images. pRad may provide the capability to verify the range of individual proton beams before treatment. In summary, proton imaging with pCT and pRad may enable clinicians to fully utilize the advantages of proton radiotherapy.
Also described herein is a proton imaging algorithm for prompt iterative 3D pCT image reconstruction, where each iteration is fast and efficient, and the number of iterations is minimized. The method offers a unique solution that optimally fits different protons and does not depend on the starting point for the first iteration. The method also offers other advantages like not requiring a trade-off between optimizing spatial resolution and RSP resolution; the ability to define a direction for each iteration that takes into account the noise in the proton data arising from measurement uncertainties; the ability to define an optimal step size for each iteration individually; the ability to simultaneously optimize the step sizes of many iterations; the ability to divide the proton data into an arbitrary numbers of blocks, where the blocks can be as small as a single proton; the ability to optimize computing resources; the ability to define the stopping criteria for the iterations. While the disclosure herein is described in the context of proton imaging, it may be used for other ions, such as helium, and can also be applied to other tomographic modalities, such as x-ray imaging.
The following description is presented to enable a person of ordinary skill in the art to make and use various embodiments. Descriptions of specific devices, techniques, and applications are provided only as examples. These examples are being provided solely to add context and aid in the understanding of the described examples. It will thus be apparent to a person of ordinary skill in the art that the described examples may be practiced without some or all of the specific details. Other applications are possible, such that the following examples should not be taken as limiting. Various modifications in the examples described herein will be readily apparent to those of ordinary skill in the art, and the general principles defined herein may be applied to other examples and applications without departing from the spirit and scope of the various embodiments. Thus, the various embodiments are not intended to be limited to the examples described herein and shown, but are to be accorded the scope consistent with the claims.
Various techniques and process flow steps will be described in detail with reference to examples as illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of one or more aspects and/or features described or referenced herein. It will be apparent, however, to a person of ordinary skill in the art, that one or more aspects and/or features described or referenced herein may be practiced without some or all of these specific details. In other instances, well-known process steps and/or structures have not been described in detail in order to not obscure some of the aspects and/or features described or referenced herein.
In the following description of examples, reference is made to the accompanying drawings which form a part hereof, and in which it is shown by way of illustration specific examples that can be practiced. It is to be understood that other examples can be used and structural changes can be made without departing from the scope of the disclosed examples.
The terminology used in the description of the various described embodiments herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various described embodiments and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combination of one or more of the associated listed items. It will be further understood that the terms “includes,” “including,” “comprises,” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Residual range detector 110 is positioned adjacent tracking detector 108. Residual range detector 110 includes scintillator material 112 (represented in
Note that reference axes 122 show that pencil beam 102 is traveling along the z-axis and tracking detectors 106 and 108 are perpendicular to the z-axis.
By using a different initial energy at different transverse positions of the tracking detectors and the object being imaged, the depth of the residual range detector can be kept small. For example, the initial energies can be chosen to keep the residual range between 0 and 10 cm across the field to be imaged regardless of the thickness or density of the object along a particular path. The more range in initial energy that is possible, smaller residual range detectors may be possible.
In some examples of an architecture for tracking detector 106, as protons of pencil beam 102 traverse first tracking detector 106, the protons interact with fibers on either side of substrate 206. Specifically, each side of substrate 206 includes, for example, two layers of fibers, i.e., fibers 208 on one side and fibers 210 on the opposite side of substrate 206. Fibers 208 and 210 may be scintillating fibers so that when a proton impinges a fiber, the scintillating properties of the fiber may cause one or more photons to be generated. These photons are captured by light detector 212, which generates an electrical signal based on the detected photons. The electrical signal is transmitted to computing system 214. By knowing the location and orientation of fibers 208 and 210 that produced photons, the location of the proton that traversed tracking detector 106 may be determined by computing system 214. Additionally, computing system 214 may also use data from scanning element 204 to determine or verify the location where a proton passed through tracking detector 106. Once the location is known the initial directional vector of pencil beam 102 can also be determined based on the focal point of source 202.
As protons of pencil beam 102 traverse object 104, protons may be scattered, as is depicted in
In some examples, fibers 218 are oriented perpendicular to fibers 220. If light detector 222 indicates that a proton passed through one fiber of fibers 218 and one fiber of fibers 220 and computing system 214 knows the location of these two fibers, computing system 214 can determine that the X-Y coordinate on tracking detector 108 where the proton traversed tracking detector 108 is at the intersection of the two fibers. Additionally, if fibers of fibers 218 or fibers of fibers 220 are connected together to reduce the number of detectors needed in light detector 222, then the estimated or expected position of pencil beam 102 based on data from or instruction sent to scanning element 204 may be used in determining the X-Y coordinate on tracking detector 108 where the proton traversed tracking detector 108.
While an exemplary architecture of a tracking detector has been described, embodiments of the disclosure may include other architectures. For example, if fibers are rigid enough, the fibers could be bonded together to avoid using a substrate. As another example, with respect to tracking detector 106, fibers 208 and 210 could be placed on the same side of substrate 206 or fibers 208 and 210 could be placed on separate substrates that are placed next to each other.
As protons of pencil beam 102 enter residual range detector 110, they impinge scintillator material 112 and generate photons that are collected by photon detectors 224 (while four photon detectors are depicted in
Protons enter scintillator material 112 via surface 226. Generated photons are collected by photon detectors 224 as the photon exit surface 228 of scintillator material 112. The dimensions of scintillator material 112 may be selected to ensure that protons stop in scintillator material 112 as opposed to passing through scintillator material 112. This ensures that protons of pencil beam 102 generate a large number of scintillation photons within a few nanoseconds. Surface 226, surface 230, surface 232, and/or the other two surfaces of scintillator material 112 not depicted in
The use of multiple photon detectors also provides the potential to obtain additional position data for the location that a proton exited object 104. For example, with reference to
Proton beam trajectories may deviate from straight lines due to multiple Coulomb scattering, which may blur images. In some examples, this limitation can be overcome by measuring each proton trajectory individually to estimate its most likely path, along with its energy loss quantified as WEPL, and then applying an iterative reconstruction algorithm. After obtaining the data from multiple protons beams, the iterative reconstruction algorithm may be used to adjust the RSPs touched by the protons to match the residual range of protons. In some examples, the iterative algorithms to reconstruct the images may be implemented using parallel processing on central processing unit (CPU)/general processing unit (GPU) computers. Additionally or alternatively, data acquisition and image reconstruction may be combined to promptly display images accurately in terms of water equivalent thickness (WET) or RSP.
In an exemplary proton radiography system, the problem of reconstructing the pCT image may be stated as a matrix relationship:
Ax=b (1)
where b represents a vector including the WEPL measurements. The b vector may include one entry for each proton, and x represents a vector including the RSP for each voxel. A may represent a matrix comprising one row for each proton and one column for each voxel. In some embodiments, each entry in the A matrix is the chord length of the proton trajectory through the voxel. In some embodiments, each proton may touch only a tiny fraction of the voxels, making the A matrix quite sparse. Embodiments of the disclosure may include a pCT reconstruction algorithm that solves for x, as stated in the relationship (1).
Current iterative algorithms rely on a projective approach, as illustrated in
The shortcoming with using a projective approach when used for pCT is that each proton has a measurement uncertainty, typically a factor 300 times greater than the precision of the solution, based on a 3 mm WEPL uncertainty and a voxel size of 1 mm with a goal of a 1% RSP measurement. The RSP precision is arrived at through the averaging effect of typically 100,000 protons touching each voxel. The correct picture would not show all the protons converging at a single point, but rather a spread out set of lines with an iteration deep inside a noise cloud converging towards a best fit point.
Process 600 may include step 602, where an A matrix, a b vector, and a candidate x vector may be provided, according to the relationship (1) above. In such instance, the A matrix may be “tall and skinny” and may not have a solution that perfectly fits all protons. In step 604, a proton deviation vector may be represented as:
dp=Ax−b (2)
where dpi (or dpi) represents the deviation for a given proton i. In some embodiments, the proton deviation vector dp may be a non-zero value.
In step 606, a voxel deviation vector dv may be determined. In some embodiments, the voxel deviation vector dv may be represented as a weighted (e.g., unbiased) average of the proton deviations dpi of all the protons going through each voxel, where dvi (or dvi) represents the deviation for a given voxel i.
In step 608, a relaxation parameter λ may be determined. In step 610, the system may update each voxel using the voxel deviation vector:
x→x−λdv (3)
In step 612, the system may evaluate whether a stopping criterion has been reached. If yes, the PCT image reconstruction may be determined to be complete and in step 614 the iterations may be stopped. If not, the system may loop back to step 604 and a proton deviation vector may again be determined.
In some examples, the weighted average of the proton deviation vector dp may be calculated using the chord lengths a of the protons as the weights. The deviation for a voxel may be written as:
Σaidpi/Σai (4)
where the ai represents the chord lengths for each proton. In some embodiments, the sum for representation (4) may taken over all protons touching the voxel.
The weights may be further optimized, for example, by incorporating a variable precision for the WEPL measurement of each proton. In some examples, the weights may be chosen to enhance spatial resolution. As multiple coulomb scattering may increase the uncertainty of the proton position as the proton goes deeper into the object, protons entering one side of an object may provide better spatial resolution than protons exiting that side of the object. For a given voxel, using larger weights for protons expected to provide better spatial resolution may enhance the sharpness of the image.
The above described voxel deviation vector dv may be written in terms of the A matrix as:
dvi=(ATdp)i/ΣjαTij (5)
dvi=(ATi/ΣjαTij)dp (6)
where αTij are elements of ATi which is the ith row of AT. The ĀT matrix may be stated as:
ĀTi=ATi/ΣjαTij (7)
The voxel deviation vector dv may then be written as:
dv=ĀTdp (8)
The DV method is an example of a general Landweber iterative method, for which broad convergence conditions have been established, where:
ĀT=V−1AT (9)
V−1=diag(1/ΣjαTij) (10)
The Censor algorithms are also examples of general Landweber iterative methods, where:
ĀT=ATW (11)
W=diag(1/Σjα2ij) (12)
The conventional least squares solution of relationship (1) would solve the following relationship for the x vector:
ATAx−ATb=0 (13)
With the weights, this is slightly modified as:
χ2=dp·dp (14)
χ2=(Ax−b)·(Ax−b) (15)
dχ2/dxi=2ATi·(Ax)−2ATi·b (16)
where dχ2/dxi corresponds to the gradient used in Landweber iteration. To obtain the least squares solution set:
dχ2/dxi=0 ∀i (17)
ATi·Ax−ATi·b=0 (18)
Dividing by ΣjαTij throughout, applying relationship (7), and converting to matrix notation may result in:
ĀTAx−ĀTb=0 (19)
Applying relationships (8) and (2), this is equivalent to:
dv=0 (20)
The iteration in relationship (4) converges toward a unique solution that optimizes the fit of the final image to the proton data.
The steps to execute for an iteration k+1 may be written as:
dpk=Axk−b (21)
dvk=ĀTdpk (22)
xk+1=xk−λkdvk (23)
dp(k+1)=Axk+1−b (24)
dv(k+1)=ĀTdp(k+1) (25)
In some embodiments, the relaxation parameter λk may be determined before the computationally costly matrix-vector multiplications in relationships (24) and (25) can be executed. The value of xk+1 from relationship (23) may be used in relationship (24), and then relationship (24) may be used in relationship (25) as follows:
dp(k+1)=dpk−λkAdvk (26)
dv(k+1)=dvk−λk ĀT(Advk) (27)
In some embodiments, the system may perform the computationally costly matrix-vector multiplications Advk and computations for ĀT(Advk) before choosing a value for the relaxation parameter λk. In some embodiments, the resulting vectors may be used in choosing the value of the relaxation parameters λk.
Embodiments of the disclosure may include choosing a relaxation parameter λk by minimizing chi-squared χ2k+1. The minimization of chi-square may include the following relationships:
χ2k+1=dp(k+1)·dp(k+1) (28)
χ2k+1=dpk·dpk−2λkdpk·(Advk)+λ2k|Advk|2 (29)
χ2k+1=χ2k−2λkdpk·(Advk)+λ2k|Advk|2 (30)
dχ2k+1/dλk=−2dpk·(Advk)+2λk|Advk|2=0 (31)
λk=dpk·(Advk)/|Advk|2 (32)
The relaxation parameter may be determined by setting the sum of the voxel deviation equal to zero (i.e., Σdv(k+1)=0).
λk=Σdvk/ΣĀT(Advk) (33)
The square of the voxel deviation vector dv(k+1)·dv(k+1) may be minimized, and the relaxation parameter may be determined.
λk=dvk·(ĀTAdvk)/|ĀTAdvk|2 (34)
Then, the mode of the k+1 voxel deviation vector dv(k+1) may be set equal to 0.
It may not be computationally costly to search for the value of the relaxation parameter λk that achieves this condition. With a provisional choice of the relaxation parameter λk the values of dv(k+1) can be binned into a histogram according to relationship (27). Additional choices of the relaxation parameter λk may be attempted based on the previous values of the mode until the mode of the histogram is within one bin of 0.
In some examples, the optimal relaxation parameter can vary over two orders of magnitude from iteration to iteration, and the traditional method of choosing a constant relaxation parameter λ may be quite ineffectual. In some embodiments, if most voxels have a voxel deviation vector dv far from 0, a smaller relaxation parameter λ may be used since each proton may be affected by many voxels. In some embodiments, if only a small number of voxels have a voxel deviation vector dv far from 0, a larger relaxation parameter λ may be used. In this situation, a constant relaxation parameter λ may result in a very gradual movement towards the optimal solution. It may be beneficial to use relationship (33), relationship (34), or set the mode to 0, especially when Σdv(k+1) departs significantly from 0. In some examples, different methods of choosing relaxation parameter λk may be combined at different iterations.
Embodiments of the disclosure may include alternating between different relaxation parameters, referred to as an alternating sequence. For example, the system may alternate between relationships (32) and (34). As shown in
In some examples, the technique described in relationships (26) and (27) can be generalized to defer the choice of relaxation parameters for an arbitrary number of steps, and the combination of these steps can be globally optimized. For example, p and v vectors may be related as follows:
p0=dp0 (35)
vk=ĀTpk (36)
pk+1=Avk (37)
It is evident by induction from relationships (35) to (37), the proton deviation vector dp, and the voxel deviation vector dv can be written as a sum of the p and v vectors with the same coefficients κ for any number of iterations n:
dpn=p0+Σi=1nκinpi (38)
dvn=v0+Σi=1nκinvi (39)
The solution x vector may also be written as a sum of v vectors with coefficients κx:
xn=x0−Σk=0n−1λkdvk (40)
xn=x0+Σi=0n−1κixnvi (41)
It may be demonstrated that κx and κ are the same by comparing the relationships (24) and (26) and applying relationship (41):
dpn=dp0−Σk=0n−1λkAdvk (42)
dpn=dp0−AΣk=0n−1λkdvk (43)
dpn=p0+Σi=1nκinAvi−1 (44)
dpn=dp0−A(x0−xn) (45)
dpn=dp0+A(Σi=0n−1κixnvi) (46)
dpn=p0Σi=0n−1κixnpi+1 (47)
dpn=p0Σi=1nκi−1xnpi (48)
Comparing relationships (44) and (48) result in:
κi−1xn=κin (49)
The solution x vector can then be written as:
xn=x0+Σi=1nκinvi−1 (50)
The χ2 after n iterations is:
χ2=dpn·dpn (51)
χ2=(Σi=0nκinpi)·(Σi=0nκinpi) (52)
χ2=Σi,j=0nκinκjnpi·pj (53)
where κ0n=1
χ2 may be minimized to determine the values of κin corresponding to the solution closest to the optimum. Since the image vector xn can be constructed directly from the κin and the v vectors, as shown in relationship (50), there is no need to find the individual relaxation parameters. For example, one method of minimizing χ2 may be based on setting the gradient of χ2 to 0:
dχ2/dκin=2Σj=0nκjnpi·pj=0 (54)
pi·p0+Σj=1nκjnpi·pj=0 (55)
Stating Pn as the array of pi·pj, kn as the vector of κjn, and pn as the vector of −pi·p0, the problem reduces to solving for kn for the following relationship.
Pnkn=pn (56)
Alternatively, χ2 can be determined from the voxel deviation vector of the nth iteration dvn. Since, as described above, the voxel deviation vector of the nth iteration dvn=0 for the optimal result, the following should lead to a similar solution as relationship (56):
χ2=dvn·dvn (57)
Vnkn=vn (58)
In some examples, the entries for A matrix and b vector are usually defined in mm, and the entries for the x vector have no units. With repeated iterations, the resulting vectors often increase rapidly in magnitude. In theory, this may not be a problem, but in practice this increase may affect the numerical stability of the solution of relationship (56) or relationship (58). This problem may be resolved by using a length scale that maintains roughly constant magnitudes as the mathematical unit. This can be found with a few trials after the iterations are finished but before solving relationship (56) or relationship (58). The length of the reconstruction volume may be a good first guess.
The above methods optimize the χ2 of the solution after a number of iterations, and this χ2 can then be used to evaluate whether further iterations are needed or if the current solution is close enough to the optimal solution. For example, worker processes may be continuously producing additional iterations of the p and v vectors while a parallel executive process may find the optimal coefficients and may evaluate the quality of the fit.
In some examples, a χ2 per degree of freedom may be determined, which may also be interpreted as the average deviation per proton, using χ2 from relationship (51):
σp=(χ2/(Np−Nv))1/2 (59)
where Np is the total number of protons and Nv is the total number of voxels. With Npv as the average number of protons touching a voxel, obtained from the data, and c as the average chord length of a proton through a voxel (approximating this as the length of the side of a voxel is a sufficient approximation), an estimated average voxel precision may be stated as:
σv=σp/c(Npv)1/2 (60)
In some examples, if a region of the image is known to have uniform RSP, the estimated voxel precision may be determined from the image in that region, but in general the estimate in relationship (60) has the advantage of not requiring assumptions about the RSP distribution.
At the minimum χ2, σp≈2-3 mm may be expected, based on the WEPL precision per proton, although in practice it may be somewhat larger, especially if the image has many non-uniform regions or sharp boundaries. As shown in relationship (20), it expected to have the voxel deviation vector dv=0 at the minimum. In some examples, for a given iteration, if the root-mean-square (r.m.s) of the voxel deviation vector dv is less than the estimated average voxel precision, it may be justified to stop iterating, since the noise from the proton measurement uncertainties is greater than the remaining distance to the optimal solution.
In some examples, the criteria used in deciding whether to stop the iterations may include r.m.s. dv<f σv (where f may lie in the range of 0.2 to 0.5); σp<c mm, or no longer declining (where c mm may be proportional to the WEPL precision per proton); Max |dv|<cv (try to avoid major outliers); Max|sum of dv over n×n×n voxel volume|<cv
Memory resources can be a bottleneck in the implementation of the methods described according to the examples of the disclosure. In some examples, while the A matrix may be large, it may be sparse as each proton may touch only a small number of voxels. This sparsity of the A matrix may be used to store data in a compact manner. For example, the entries in the A matrix may be stored as lists of voxels with chord lengths for each proton, or as lists of protons with chord lengths for each voxel.
In some examples, in the case where entries in the A matrix are stored as lists of voxels with chord lengths for each proton, the geometry to store this information with much less memory can be taken advantage of. For example, each proton may have a list of line segments that can be used to recreate the chord lengths when needed. Each line segment should be short enough that a straight line approximates the proton trajectory to appropriate accuracy within the segment. In some examples, each proton can have a list of chord lengths, each typically stored in one byte, and a second list of base-6 numbers, stored in 4-byte integers with 12 base-6 numbers included in each 4-byte integer. Starting from a given voxel, the first base-6 number specifies the voxel face that the proton exits, and thus the identity of the next voxel, and subsequent base-6 numbers continue the chain from there. Thus, the chord lengths can be associated with the correct voxel.
In some examples, the algorithm for pCT image reconstruction, may be parallelized by dividing the data into blocks of protons and combining the results from the different blocks. In some other examples, the worker processes may find a solution for each block of data, and a foreman process may receive all the solutions, combine them, and send the combined solution back to the worker processes for a further iteration.
The drawback with the above approaches is that each block of protons must be large enough to solve the image, and the combined solution may not necessarily approach a unique optimal solution. In some examples, a new parallelization strategy for the DV method may be used. These strategies may use blocks with arbitrarily small numbers of protons, and generate results as if the calculations were executed in a single block.
In some examples, the computationally costly part of each full iteration may involve a sequence of two matrix-vector multiplications for either ĀT(Advk) or ĀT(Avk), as described above. In a matrix-vector multiplication, each row of the matrix multiplies the vector independently. In some embodiments, all the row-vector multiplications may be performed in parallel, a task well suited to GPUs. These multiplications may be performed using the following strategies.
In some examples, the blocks may be processed in worker processes, outputs may be assembled in a foreman process, and results evaluated in an executive process. Blocks may further be divided into sub-blocks and a hierarchical system of blocks may help route calculations to multiple GPUs.
ĀT(Avk)=Σt[ĀT(Avk)]t (61)
The complete vector may be identical to what would be obtained with the single block shown in the upper portion of
In some examples, a hierarchy of blocks may be employed. For example, if the system includes 10 GPUs, the data can be divided into one block for each GPU. Within each block, each proton may be processed as a separate sub-block utilizing the parallel processing power of the GPUs, carefully managing the summation of the output vectors from each proton.
Processing each proton independently (blocks of size one proton) may enable major savings in the use of memory. First, there is no need for a list of protons with chord lengths for each voxel. All the needed information is with the list of voxels with chord lengths for each proton, and the output vector needs only the voxels from that proton. Second, the geometry to store this information with much less memory strategies, such as those described above, can be taken advantage of.
In some examples, a method to optimize data processing may be implemented without developing parallel processing architecture such as foreman processes and may provide a convenient method for rapid studies. Protons may be divided into N well-randomized and equal-sized blocks t (the method may be trivially extendable to different sized blocks, as long as the assignment of a proton to a block is random), where each block must include enough protons to find a solution vector (more protons than voxels.) A computer program able to handle a single block of protons may then be run N times in parallel, to produce a solution for each block where the solution may be close to the minimum χ2 for that block.
In this case, the following may hold within the statistical variability of the data for each block, where the normalization of Āt is done using only the protons in that block:
ĀTA≈ĀtTAt (62)
ĀTA is a square matrix with dimension equal to the number of voxels, where each entry is a ratio. The numerator and denominator both on average scale linearly with the number of protons. Therefore, each entry is on average independent of the number of protons. From relationship (19), at minimum χ2, the following relationships are determined:
ĀTAx=ĀTb (63)
ĀTAx=V−1ATb (64)
ĀTAx=ΣtV−1AtTbt (65)
ĀTAx=ΣtV−1VtĀtTbt (66)
ĀTAx=ΣtV−1VtĀtTAtxt (67)
ĀTAx≈1/NΣtĀtTAtxt (68)
ĀTAx≈1/N ĀTAΣtxt (69)
Comparing (63) and (69), the average of the solution vectors from the blocks may become:
x≈1/NΣtxt (70)
In some examples, while implementing the above strategies, certain bottlenecks in processing may occur due to limited memory resources, CPU resources, GPU resources, and data transfer capacity. Choice of a suitable strategy may depend on the resources of a particular computing system, and strategy implementation may rely on appropriate design of data structures and software architectures.
The exemplary computer 1202 includes a processor 1204 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory 1206 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), and a static memory 1208 (e.g., flash memory, static random access memory (SRAM), etc.), which can communicate with each other via a bus 1210.
The computer 1202 may further include a video display 1212 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer 1202 also includes an alpha-numeric input device 1214 (e.g., a keyboard), a cursor control device 1216 (e.g., a mouse), a disk drive unit 1218, a signal generation device 1220 (e.g., a speaker), and a network interface device 1222.
The drive unit 1218 includes a machine-readable medium 1220 on which is stored one or more sets of instructions 1224 (e.g., software) embodying any one or more of the methodologies or functions described herein. The software may also reside, completely or at least partially, within the main memory 1206 and/or within the processor 1204 during execution thereof by the computer 1202, the main memory 1206 and the processor 1204 also constituting machine-readable media. The software may further be transmitted or received over a network 1204 via the network interface device 1222.
While the machine-readable medium 1220 is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.
A method to iteratively reconstruct a proton (pCT) image is disclosed. The method may comprise: determining an A matrix comprising a plurality of chord lengths, the plurality of chord lengths corresponding to one or more proton trajectories through one or more voxels; determining a b vector including one or more water equivalent path length (WEPL) values, the one or more WEPL values corresponding to one or more protons; determining a x vector including one or more relative stopping power (RSP) values, the RSP values corresponding to the one or more voxels; determining a proton deviation vector based on the A matrix, the b vector, and the x vector, wherein the proton deviation vector comprises one or more deviations, the one or more deviations corresponding to the one or more protons; determining a voxel deviation vector comprising one or more entries, the one or more entries corresponding to weighted averages of the one or more deviations of the one or more protons going through the one or more voxels; determining a relaxation parameter; updating the x vector based on the voxel deviation vector and the relaxation parameter; and repeating the steps of determining the proton deviation vector to updating the x vector until a stopping criterion is reached. Additionally or alternatively, in some embodiments, the weighted averages of the one or more deviations of the one or more protons use the plurality of chord lengths as weights. Additionally or alternatively, in some embodiments, the relaxation parameter is determined by minimizing a square of the proton deviation vector. Additionally or alternatively, in some embodiments, the relaxation parameter is determined by setting the sum of the voxel deviation vector equal to zero. Additionally or alternatively, in some embodiments, the relaxation parameter is determined by minimizing a square of the voxel deviation vector. Additionally or alternatively, in some embodiments, the relaxation parameter is determined by setting a mode of the voxel deviation vector equal to zero. Additionally or alternatively, in some embodiments, the stopping criterion is reached when a root mean square of the voxel deviation vector is less than an estimated average voxel precision. Additionally or alternatively, in some embodiments, the determining the proton deviation vector or the determining the voxel deviation vector comprises performing a vector-matrix multiplication. Additionally or alternatively, in some embodiments, the vector-matrix multiplication comprises: dividing data into a plurality of proton blocks, wherein at least one of the plurality of proton blocks includes a single proton; processing the plurality of proton blocks in parallel; concatenating a first plurality of outputs from the plurality of proton blocks to assemble a first output vector; dividing data into a plurality of voxel blocks, wherein at least one of the plurality of voxel blocks includes a single voxel; processing the plurality of voxel blocks in parallel; and concatenating a second plurality of outputs from the plurality of voxel blocks to assemble a second output vector.
A non-transitory computer readable medium is disclosed. The computer readable medium may include instructions that, when executed, perform a method of iteratively reconstructing a proton (pCT) image, the method comprises: determining an A matrix comprising a plurality of chord lengths, the plurality of chord lengths corresponding to one or more proton trajectories through one or more voxels; determining a b vector including one or more water equivalent path length (WEPL) values, the one or more WEPL values corresponding to one or more protons; determining a x vector including one or more relative stopping power (RSP) values, the RSP values corresponding to the one or more voxels; determining a proton deviation vector based on the A matrix, the b vector, and the x vector, wherein the proton deviation vector comprises one or more deviations, the one or more deviations corresponding to the one or more protons; determining a voxel deviation vector comprising one or more entries, the one or more entries corresponding to weighted averages of the one or more deviations of the one or more protons going through the one or more voxels; determining a relaxation parameter; updating the x vector based on the voxel deviation vector and the relaxation parameter; and repeating the steps of determining the proton deviation vector to updating the x vector until a stopping criterion is reached. Additionally or alternatively, in some embodiments, the weighted averages of the one or more deviations of the one or more protons use the plurality of chord lengths as weights. Additionally or alternatively, in some embodiments, the relaxation parameter is determined by minimizing a square of the proton deviation vector. Additionally or alternatively, in some embodiments, the relaxation parameter is determined by setting the sum of the voxel deviation vector equal to zero. Additionally or alternatively, in some embodiments, the relaxation parameter is determined by minimizing a square of the voxel deviation vector. Additionally or alternatively, in some embodiments, the relaxation parameter is determined by setting a mode of the voxel deviation vector equal to zero. Additionally or alternatively, in some embodiments, the stopping criterion is reached when a root mean square of the voxel deviation vector is less than an estimated average voxel precision. Additionally or alternatively, in some embodiments, the determining the proton deviation vector or the determining the voxel deviation vector comprises performing a vector-matrix multiplication. Additionally or alternatively, in some embodiments, the vector-matrix multiplication comprises: dividing data into a plurality of proton blocks, wherein at least one of the plurality of proton blocks includes a single proton; processing the plurality of proton blocks in parallel; concatenating a first plurality of outputs from the plurality of proton blocks to assemble a first output vector; dividing data into a plurality of voxel blocks, wherein at least one of the plurality of voxel blocks includes a single voxel; processing the plurality of voxel blocks in parallel; and concatenating a second plurality of outputs from the plurality of voxel blocks to assemble a second output vector.
A system for 3D proton imaging of an object is disclosed. The system may comprise: a source for generating a pencil beam of protons; a scanning element for steering the pencil beam of protons; a plurality of tracking detectors for generating photons, the photons corresponding to the pencil beam of protons interacting with the object; a residual range detector; and a computing system for receiving signals from the plurality of tracking detectors and the residual range detector, the computing system configured to: determine an A matrix comprising a plurality of chord lengths, the plurality of chord lengths corresponding to one or more proton trajectories through one or more voxels; determine a b vector including one or more water equivalent path length (WEPL) values, the one or more WEPL values corresponding to the pencil beam of protons; determine a x vector including one or more relative stopping power (RSP) values, the RSP values corresponding to the one or more voxels; determine a proton deviation vector based on the A matrix, the b vector, and the x vector, wherein the proton deviation vector comprises one or more deviations, the one or more deviations corresponding to the pencil beam of protons; determine a voxel deviation vector comprising one or more entries, the one or more entries corresponding to weighted averages of the one or more deviations of the pencil beam of protons going through the one or more voxels; determine a relaxation parameter; update the x vector based on the voxel deviation vector and the relaxation parameter; and repeat the steps of determining the proton deviation vector to updating the x vector until a stopping criterion is reached. Additionally or alternatively, in some embodiments, the computing system is further configured to: divide data into a plurality of proton blocks, wherein at least one of the plurality of proton blocks includes a single proton; process the plurality of proton blocks in parallel; concatenate a first plurality of outputs from the plurality of proton blocks to assemble a first output vector; divide data into a plurality of voxel blocks, wherein at least one of the plurality of voxel blocks includes a single voxel; process the plurality of voxel blocks in parallel; and concatenate a second plurality of outputs from the plurality of voxel blocks to assemble a second output vector.
Although examples of this disclosure have been fully described with reference to the accompanying drawings, it is to be noted that various changes and modifications will become apparent to those skilled in the art. Such changes and modifications are to be understood as being included within the scope of examples of this disclosure as defined by the appended claims.
The application claims the benefit of U.S. Provisional Application No. 63/084,424, filed Sep. 28, 2020, the contents of which are incorporated herein by reference in its entirety for all purposes.
This invention was made with government support from the National Cancer Institute of the National Institutes of Health under Award Number R44CA243939. The government has certain rights in the invention.
Number | Name | Date | Kind |
---|---|---|---|
20120224760 | Goshen | Sep 2012 | A1 |
20150279005 | Brendel | Oct 2015 | A1 |
20220101572 | Dejongh | Mar 2022 | A1 |
20230112738 | Chapdelaine | Apr 2023 | A1 |
Number | Date | Country | |
---|---|---|---|
20220101572 A1 | Mar 2022 | US |
Number | Date | Country | |
---|---|---|---|
63084424 | Sep 2020 | US |