System and method for GPU-based 3D nonrigid registration
First Claim
1. A method of registering two images using a graphics processing unit, said method comprising the steps of:
- providing a pair of images with a first image and a second image, wherein said images comprise a plurality of intensities corresponding to a domain of grid points in a 3-dimensional space;
calculating a gradient of the second image;
initializing a displacement field on the grid point domain of the pair of images, wherein said displacement field transforms said second image into said first image;
generating textures for the first image, the second image, the gradient, and the displacement field, and loading said textures into the graphics processing unit;
creating a pixel buffer and initializing it with the texture containing the displacement field; and
updating the displacement field in a rendering pass performed by the graphics processing unit according to the equation
uk+1=uk+δ
[(I1−
I2∘
(Id+uk))∇
I2∘
(Id+uk)]+α
Δ
uk,wherein uk and uk+1 are the displacement field and updated displacement field, respectively, I1 is the first image, I2 is the second image, ∇
I2 is the gradient, Id is the identity map, ∇
uk is the Laplacian of the displacement field, α
is a regularization parameter, and δ
is the time step for one or more iterations,wherein the boundary conditions of the 3-dimensional displacement field are clamp-to-edge, and further comprising decomposing the 3-dimensional displacement field into a 2-dimensional displacement field and controlling said boundary conditions of the 2-D displacement field by imposing a 2D mask, wherein said mask is a precomputed vector comprising 7 coefficients (a,b,c,d,e,f,g) that multiply each term of the displacement field according to the equation,
a×
uk(x+1,y)+b×
uk(x−
1,y)+c×
uk(x,y+1)+d×
uk(x,y−
1)+e×
uk(r,s)+f×
uk(t,u)+g×
uk(x,y),wherein uk(x,y) is the 2D displacement field, (a,b,c,d,e,f) are either 0 or 1, wherein 0 indicates a displacement field value outside the boundary, and 1 a point inside the boundary, g can vary between −
6 and 0 depending on the number of nearest neighbor interior points about (x,y).
2 Assignments
0 Petitions
Accused Products
Abstract
A method of registering two images using a graphics processing unit includes providing a pair of images with a first and second image, calculating a gradient of the second image, initializing a displacement field on the grid point domain of the pair of images, generating textures for the first image, the second image, the gradient, and the displacement field, and loading said textures into the graphics processing unit. A pixel buffer is created and initialized with the texture containing the displacement field. The displacement field is updated from the first image, the second image, and the gradient for one or more iterations in one or more rendering passes performed by the graphics processing unit.
-
Citations
22 Claims
-
1. A method of registering two images using a graphics processing unit, said method comprising the steps of:
-
providing a pair of images with a first image and a second image, wherein said images comprise a plurality of intensities corresponding to a domain of grid points in a 3-dimensional space; calculating a gradient of the second image; initializing a displacement field on the grid point domain of the pair of images, wherein said displacement field transforms said second image into said first image; generating textures for the first image, the second image, the gradient, and the displacement field, and loading said textures into the graphics processing unit; creating a pixel buffer and initializing it with the texture containing the displacement field; and updating the displacement field in a rendering pass performed by the graphics processing unit according to the equation
uk+1=uk+δ
[(I1−
I2∘
(Id+uk))∇
I2∘
(Id+uk)]+α
Δ
uk,wherein uk and uk+1 are the displacement field and updated displacement field, respectively, I1 is the first image, I2 is the second image, ∇
I2 is the gradient, Id is the identity map, ∇
uk is the Laplacian of the displacement field, α
is a regularization parameter, and δ
is the time step for one or more iterations,wherein the boundary conditions of the 3-dimensional displacement field are clamp-to-edge, and further comprising decomposing the 3-dimensional displacement field into a 2-dimensional displacement field and controlling said boundary conditions of the 2-D displacement field by imposing a 2D mask, wherein said mask is a precomputed vector comprising 7 coefficients (a,b,c,d,e,f,g) that multiply each term of the displacement field according to the equation,
a×
uk(x+1,y)+b×
uk(x−
1,y)+c×
uk(x,y+1)+d×
uk(x,y−
1)+e×
uk(r,s)+f×
uk(t,u)+g×
uk(x,y),wherein uk(x,y) is the 2D displacement field, (a,b,c,d,e,f) are either 0 or 1, wherein 0 indicates a displacement field value outside the boundary, and 1 a point inside the boundary, g can vary between −
6 and 0 depending on the number of nearest neighbor interior points about (x,y).- View Dependent Claims (2, 3, 4, 5, 6, 9, 10)
and in 2-dimensions as
Δ
uk(p,q)=uk(p+1,q)+uk(p−
1,q)+uk(p,q+1)+uk(p,q−
1)+uk(r,s)+uk(t,u)−
60.0×
uk(p,q),wherein (x, y, z) is a 3-dimensional grid point, (p, q) is a 2-dimensional grid point, Rx is the number of columns, Ry is the number of rows, Rz is the number of slices, and N is an integer defined as N=√
{square root over (Rz)}, if the result is an integer, N={square root over (2×
Rz)}, otherwise,
-
-
10. The method of claim 1, further comprising smoothing the displacement field and reading the updated displacement field from the pixel buffer.
- 7. The method of claim I. wherein the domain of grid points is a 3-dimensional space. and wherein the displacement field is converted from 3 dimensions to 2 dimensions for the rendering pass according to the transformations
-
11. A method of registering two images, said method comprising the steps of:
-
providing a graphics processing unit; providing a pair of images with a first image and a second image, wherein said images comprise a plurality of intensities corresponding to a domain of grid points in a 3-dimensional space; calculating a gradient of the second image; initializing a displacement field on the grid point domain of the pair of images, wherein said displacement field transforms said second image into said first image; generating textures for the first image, the second image, the gradient, and the displacement field, and loading said textures into the graphics processing unit; creating a pixel buffer, including creating a rendering context, initializing the pixel buffer attributes, generating a new texture where the pixel buffer is bound and initializing it with the texture containing the displacement field; updating the displacement field from a rendering pass performed by the graphics processing unit according to the equation
uk+1=uk+δ
[(I1−
I2∘
(Id+uk))∇
I2∘
(Id+uk)]+α
Δ
uk,wherein uk and uk+1 are the displacement field and updated displacement field, respectively, I1 is the first image, I2 is the second image, ∇
I2 is the gradient, Id is an identity map, Δ
Uk is the Laplacian of the displacement field, α
is a regularization parameter, and δ
is the time step, wherein the Laplacian of the displacement field uk is defined in 3-dimensions as
Δ
uk(X,Y,Z)=uk(X+1,y,z)+uk(X,y+1,Z)+Uk(X,Y=1,Z) +uk(x, y, z+1)+uk(x, y, z=1)=6.0×
uk (x, y, x),and in 2-dimensions as
Δ
uk(p,q)=uk(p+1,q)+uk(t,u)=6.0×
uk(p,q),wherein (x, y, z) is a 3-dimensional grid point, (p,q) is a 2-dimensional grid point, Rx is the number of columns, Ry, is the number of rows, Rz is the number of slices, and N is an integer defined as N=√
{square root over (Rz)}, if the result is an integer, N=√
{square root over (2×
Rz)}, otherwise, - View Dependent Claims (12)
-
-
13. A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform the method steps for registering two images using a graphics processing unit, said method comprising the steps of:
-
providing a pair of images with a first image and a second image, wherein said images comprise a plurality of intensities corresponding to a domain of grid points in a 3-dimensional space; calculating a gradient of the second image; initializing a displacement field on the grid point domain of the pair of images, wherein said displacement field transforms said second image into said first image; generating textures for the first image, the second image, the gradient, and the displacement field, and loading said textures into the graphics processing unit; creating a pixel buffer and initializing it with the texture containing the displacement field; and updating the displacement field in a rendering pass performed by the graphics processing unit according to the equation
uk+1=uk+δ
[(I1−
I2∘
(Id+uk))∇
I2∘
(Id+uk)]+α
Δ
uk,wherein uk and uk+1 are the displacement field and updated displacement field, respectively, I1 is the first image, I2 is the second image, ∇
I2 is the gradient, Id is the identity map, Δ
uk is the Laplacian of the displacement field, α
is a regularization parameter, and δ
is the time step for one or more iterations,wherein the boundary conditions of the 3-dimensional displacement field are clamp-to-edge, and further comprising decomposing the 3-dimensional displacement field into a 2-dimensional displacement field and controlling said boundary conditions of the 2-D displacement field by imposing a 2D mask, wherein said mask is a precomputed vector comprising 7 coefficients ( a,b,c,d,e,f, g) that multiply each term of the displacement field according to the equation,
a×
uk(x+1,y)+b×
uk(x−
1,y)+c×
uk(x,y+1)+d×
uk(x,y−
1)+e×
uk(r,s)+f×
uk(t,u)+g×
uk(x,y),wherein uk(x,y) is the 2D displacement field, (a,b,c,d,e,f) are either 0 or 1, wherein 0 indicates a displacement field value outside the boundary, and 1 a point inside the boundary, g can vary between −
6 and 0 depending on the number of nearest neighbor interior points about (x,y).- View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
20. The computer readable program storage device of claim 19, wherein the displacement field is converted from a 2-dimensional grid to a 3-dimensional grid according to the transformations
-
21. The computer readable program storage device of claim 13, wherein the Laplacian of the displacement field uk is defined in 3-dimensions as
Δ-
uk (X,Y,Z)=uk(X+1,y,z)+uk(X,y+1,Z)+Uk(X,Y=1,Z) +uk(x, y, z+1)+uk (x, y, z=1)=6.0×
uk(x, y, x),and in 2-dimensions as
Δ
uk(p,q)=uk(p+1,q)+uk(p−
1,q)+uk(p,q+1)+uk(p,q−
1)+uk(r,s)+uk(t,u)−
60.0×
uk(p,q),wherein (x, y, z) is a 3-dimensional grid point, (p, q) is a 2-dimensional grid point, Rx is the number of columns, Ry is the number of rows, Rz is the number of slices, and N is an integer defined as N=√
{square root over (Rz)}, if the result is an integer, N=√
{square root over (2×
Rz)}, otherwise,
-
uk (X,Y,Z)=uk(X+1,y,z)+uk(X,y+1,Z)+Uk(X,Y=1,Z) +uk(x, y, z+1)+uk (x, y, z=1)=6.0×
-
22. The computer readable program storage device of claim 13, further comprising smoothing the displacement field and reading the updated displacement field from the pixel buffer.
-
Specification