Gradient vector flow: Difference between revisions

Content deleted Content added
No edit summary
fix index
 
(17 intermediate revisions by 10 users not shown)
Line 1:
{{Short description|Computer vision framework}}
'''Gradient vector flow''' ('''GVF'''), a [[computer vision]] framework introduced by [http://iacl.ece.jhu.edu/~chenyang/ Chenyang Xu] and [http://www.iacl.ece.jhu.edu/index.php/Prince Jerry L. Prince]
'''Gradient vector flow''' ('''GVF'''), a [[computer vision]] framework introduced by Chenyang Xu and [[Jerry L. Prince]],<ref name=":1">{{ Cite conference | last1 = Xu | first1 = C. | last2 = Prince | first2 = J.L. | title = Gradient Vector Flow: A New External Force for Snakes | book-title = Proc. IEEE Conf. on Comp. Vis. Patt. Recog. (CVPR) | place = Los Alamitos | publisher = Comp. Soc. Press | pages = 66–71 | date = June 1997 | url = http://iacl.ece.jhu.edu/pubs/p087c.pdf}}</ref><ref name=":2">{{Cite journal | title = Snakes, Shapes, and Gradient Vector Flow| journal = IEEE Transactions on Image Processing | volume = 7| issue = 3| pages = 359–369| year = 1998| last1 = Xu | first1 = C.| last2 = Prince | first2 = J.L. | url = http://iacl.ece.jhu.edu/pubs/p084j.pdf}}</ref> is the vector field that is produced by a process that smooths and diffuses an input vector field. It is usually used to create a vector field from images that points to object edges from a distance. It is widely used in image analysis and computer vision applications for object tracking, shape recognition, [[Image segmentation|segmentation]], and [[edge detection]]. In particular, it is commonly used in conjunction with [[active contour model]].
<ref name=":2">{{Cite journal | title = Snakes, Shapes, and Gradient Vector Flow| journal = IEEE Transactions on Image Processing | volume = 7| issue = 3| pages = 359-369| year = 1998| last1 = Xu | first1 = C.| last2 = Prince | first2 = J.L. | url = http://iacl.ece.jhu.edu/pubs/p084j.pdf}}</ref>, is the vector field that is produced by a process that smooths and diffuses an input vector field, and is usually used to create a vector field that points to object edges from a distance. It's widely used in object tracking, shape recognition, [[Image segmentation|segmentation]], and [[edge detection]]. In particular, it's commonly used in conjunction with [[active contour model]].
 
[[File:Gradient Vector Flow 3D Metasphere Example Result.png|thumb|300px|Results from Gradient Vector Flow algorithm applied to 3-D Metasphere data]]
Line 15 ⟶ 14:
information about the ___location of object edges throughout the entire image ___domain. GVF is defined as a diffusion process operating on the
components of the input vector field. It is designed to balance the fidelity of the original vector field, so it is not changed too much,
with a regularization that is intended to produce a smooth field on its output.
 
Although GVF was designed originally for the purpose of segmenting objects using active contours attracted to edges, it has been since
adapted and used for many alternative purposes. Some newer purposes including defining a continuous medial axis representation,<ref name=":3">{{Cite journal | title = Variational curve skeletons using gradient vector flow | journal = IEEE Transactions on Pattern Analysis and Machine Intelligence | volume = 31| issue = 12| pages = 2257–2274| year = 2009| last1 = Hassouna | first1 = M.S.| last2 = Farag | first2 = A.Y. }}</ref>, regularizing image anisotropic diffusion algorithms,<ref name=":YuxTIP06">{{Cite journal | title = GVF-based anisotropic diffusion models | journal = IEEE Transactions on Image Processing | volume = 15 | issue = 6 | pages = 1517--15241517–1524 | year = 2006 | last1 = Yu | first1 = H. | last2 = Chua | first2 = C.S. }}</ref>, finding the centers of ribbon-like objects,<ref name=":HanxNI04">{{Cite journal | title = CRUISE: cortical reconstruction using implicit surface evolution | journal = NeuroImage | volume = 23 | number = 3 | pages = 997--1012997–1012 | year = 2004 | last1 = Han | first1 = X. | last2 = Pham | first2 = D.L. | last3 = Tosun | first3 = D. | last4 = Rettmann | first4 = M.E. | last5 = Xu | first5 = C. | last6 = Prince | first6 = J.L. | display-authors = etal }}</ref>, constructing graphs for optimal surface segmentations,<ref name=":MirxCMIG17"> {{Cite journal | title = Incorporation of gradient vector flow field in a multimodal graph-theoretic approach for segmenting the internal limiting membrane from glaucomatous optic nerve head-centered SD-OCT volumes | journal = Computerized Medical Imaging and Graphics | volume = 55 | pages = 87-9487–94 | year = 2017 | last1 = Miri | first1 = M.S. | last2 = Robles | first2 = V.A. | last3 = Abràmoff | first3 = M.D. | last4 = Kwon | first4 = Y.H. | last5 = Garvin | first5 = M.K.}}</ref>, creating a shape prior,<ref name=":BaixCMIG18"> {{Cite journal | title = Optimal multi-object segmentation with novel gradient vector flow based shape priors | journal = Computerized Medical Imaging and Graphics | volume=69 | pages= 96-11196–111 | year= 2018 | publisher=Elsevier | last1 = Bai | first1 = J. | last2 = Shah | first2 = A. | last3 = Wu | first3 = X.}}</ref>, and much more.
 
==Theory==
The theory of GVF was originally described inby Xu and Prince.<ref name=":2">< /ref>. Let <math>\textstyle f(x,y)</math> be an edge map defined on the image ___domain. For uniformity of results, it is important to restrict the edge map intensities to lie between 0 and 1, and by convention <math>\textstyle f(x,y)</math> takes on larger values (close to 1) on the object edges. The gradient vector flow (GVF) field is given by the vector field <math>\textstyle \mathbf{v}(x,y) = [u(x,y),v(x,y)]</math> that minimizes the energy functional
{{numBlk||
:<math display = "block">
Line 30 ⟶ 29:
<math>\textstyle \nabla f =(f_x, f_y)</math>. Figure&nbsp;1 shows an edge map, the gradient
of the (slightly blurred) edge map, and the GVF field generated by
minimizing <math>\textstyle\mathcal{E}</math>.
 
[[File:UShape.png|thumb|400px|right|Fig. 1. An edge map (left) describes the boundary of an object. The gradient of the (slightly blurred) edge map (center) points towards the boundary, but is very local. The gradient vector flow (GVF) field (right) also points towards the boundary, but has a much larger capture range.]]
Line 47 ⟶ 46:
to be a solution can be found by calculus of variations, yielding
{{NumBlk|:|<math display = "block">\mu \nabla^2 u - (u - f_x) (f_x^2 + f_y^2) = 0 \,,</math> | 2a}}
{{NumBlk|:|<math display = "block">\mu \nabla^2 v - (v - f_xf_y) (f_x^2 + f_y^2) = 0 \,,</math> | 2b}}
where <math>\textstyle\nabla^2</math> is the Laplacian operator. It is instructive to examine the form of the equations in&nbsp;(2). Each is a partial differential equation that the components <math>u</math> and <math>v</math> of <math>\mathbf{v}</math> must satisfy. If the magnitude of the edge gradient is small, then the solution of each equation is guided entirely by Laplace's equation, for example <math>\textstyle\nabla^2 u = 0</math>, which will produce a smooth scalar field entirely dependent on its boundary conditions. The boundary conditions are effectively provided by the locations in the image where the magnitude of the edge gradient is large, where the solution is driven to agree more with the edge gradients.
 
'''Computational Solutions.''' There are two fundamental ways to compute GVF. First, the energy function
<math>\mathcal{E}</math> itself (1) can be directly discretized and minimized, for example, by gradient descent. Second, the partial
differential equations in (2) can be discretized and solved iteratively. The original GVF paper used an iterative
approach, while later papers introduced considerably faster implementations such as an octree-based method,<ref name =":HerxCVIU2004"> {{Cite journal | title = Silhouette and stereo fusion for 3D object modeling | journal = Computer Vision and Image Understanding | volume = 96 | issue = 3 | pages = 367-392367–392 | year = 2004 | publisher = Elsevier | first1 = C. H. | last1 = Esteban | first2 = F. | last2 = Schmitt}}</ref>,
a multi-grid method,<ref name=":HanxIETIP07"> {{Cite journal | title = Fast numerical scheme for gradient vector flow computation using a multigrid method | journal = IET Image Processing | year = 2007 | volume = 1 | pages = 48-5548–55 | issue = 1 | first1 = X. | last1 = Han | first2 = C. | last2 = Xu | first3 = J.L. | last3 = Prince}}</ref>, and an augmented Lagrangian method.<ref name=":RenxPRL12"> {{Cite journal | title = Fast gradient vector flow computation based on augmented Lagrangian method | last1 = Ren | first1 = D. | last2 = Zuo | first2 = W. | last3 = Zhao | first3 = X. | last4 = Lin | first4 = Z. | last5 = Zhang | first5 = D. | journal = Pattern Recognition Letters | volume = 34 | issue = 2 | pages = 219-225219–225 | year = 2013 | publisher = Elsevier}}</ref>. In addition, very fast GPU implementations have been developed in<ref name=":SmixJRTIP15"> {{Cite journal | title = Real-time gradient vector flow on GPUs using OpenCL | last1 = Smistad | first1 = E. | last2 = Elster | first2 = A.C. | last3 = Lindseth | first3 = F. | journal = Journal of Real-Time Image Processing | volume = 10 | issue = 1 | pages = 67-7467–74 | year = 2015 | publisher = Springer}}</ref><ref name=":SmixJRTIP16"> {{Cite journal | title = Multigrid gradient vector flow computation on the GPU | last1 = Smistad | first1 = E. | last2 = Lindseth | first2 = F. | journal = Journal of Real-Time Image Processing | volume = 12 | issue = 3 | pages = 593-601593–601 | year = 2016 | publisher=Springer}}</ref>
 
'''Extensions and Advances.''' GVF is easily extended to higher dimensions. The energy function is readily written in a vector form as
Line 63 ⟶ 62:
</math>| 3 | border=y}}
which can be solved by gradient descent or by finding and solving its
Euler equation. Figure 2 shows an illustration of a three-dimensional GVF field on the edge map of a simple object (see <ref name=":XuxHMIPA08"> {{Cite book | first1 = C. | last1 = Xu | first2 = X. | last2 = Han | first3 = J.L. | last3 = Prince | chapter = Gradient Vector Flow Deformable Models | title = Handbook of Medical Image Processing and Analysis | publisher = Academic Press | year = 2008 | editor = Isaac Bankman | pages = 181-194181–194 | edition = 2nd }}</ref>).
[[File:Gradient Vector Flow 3D Metasphere Example Result.png|thumb|400px|right|Fig. 2. The object shown in the top left is used as an edge map
to generate a three-dimensional GVF field. Vectors and streamlines of the GVF field are shown in the (Z) zoomed region, (V) vertical plane,
Line 69 ⟶ 68:
 
The data and regularization terms in the integrand of the GVF functional can also be modified. A modification described
in&nbsp;,<ref name =":XuxSP98"> {{Cite journal | first1 = C. | last1 = Xu | first2 = J.L. | last2 = Prince | title = Generalized gradient vector flow external forces for active contours | journal = Signal Processing | year = 1998 | volume = 71 | pages = 131-139131–139 | issue = 2}}</ref>, called
''generalized gradient vector flow'' (GGVF) defines two scalar functions and reformulates the energy as
{{numBlk||
Line 78 ⟶ 77:
While the choices <math>\textstyle g(\nabla f|) = \mu</math> and <math>\textstyle h(|\nabla f|) = |\nabla f|^2</math> reduce GGVF to GVF,
the alternative choices <math>\textstyle g(|\nabla f|) = \exp\{-|\nabla f|/K\}</math> and <math>\textstyle h(\nabla f|) = 1 - g(|\nabla f|)</math>,
for <math>K</math> a user-selected constant, can improve the tradeoff between the data term and its regularization in some applications.
 
The GVF formulation has been further extended to vector-valued images in&nbsp;<ref name =":JaoxTIP14"> {{Cite journal | title= Variational segmentation of vector-valued images with gradient vector flow | journal= IEEE Transactions on Image Processing | volume=23 | issue = 11 | pages = 4773-47854773–4785 | year = 2014 | last1 = Jaouen | first1 = V. | last2 = Gonzalez | first2 = P. | last3 = Stute | first3 = S. | last4 = Guilloteau | first4 = D. | last5 = Chalon | first5 = S. | display-authors = etal}}</ref> where a weighted structure tensor of a vector-valued image is used. A learning based probabilistic weighted GVF extension was proposed in&nbsp;<ref name =":HafxCBM14"> {{Cite journal | title = Phase-based probabilistic active contour for nerve detection in ultrasound images for regional anesthesia | journal=Computers in Biology and Medicine | volume=52 | pages=88-9588–95 | year=2014 | last1 = Hafiane | first1 = A. | last2 = Vieyres | first2 = P. | last3 = Delbos | first3 = A.}}</ref> to further improve the segmentation for images with severely cluttered textures or high levels of noise.
 
The variational formulation of GVF has also been modified in ''motion GVF'' (MGVF) to incorporate object motion in
an image sequence&nbsp;.<ref name =":RayxTMI04"> {{Cite journal | title = Motion gradient vector flow: An external force for tracking rolling leukocytes with shape and size constrained active contours | journal = IEEE Transactions on Medical Imaging | year = 2004 | volume = 23 |
pages = 1466-14781466–1478 | issue = 12 | last1 = Ray | first1 = N. | last2 = Acton | first2 = S.T.}}</ref>.
Whereas the diffusion of GVF vectors from a conventional edge map acts in an isotropic manner, the formulation of
MGVF incorporates the expected object motion between image frames.
 
An alternative to GVF called vector field convolution (VFC) provides many of the advantages of GVF, has superior noise robustness, and
can be computed very fast&nbsp;.<ref name =":LixTIP07"> {{Cite journal | title = Active contour external force using vector field convolution for image segmentation | journal = IEEE Transactions on Image Processing | year = 2007 | volume = 16 | pages = 2096-21062096–2106 | issue = 8 | last1 = Li | first1 = B. | last2 = Acton | first2 = S.T.}}</ref>. The VFC field <math>\textstyle\mathbf{v}_{\mathrm{VFC}}</math> is defined as the convolution of the edge map <math>f</math> with a vector field kernel <math>\mathbf{k}</math>
{{numBlk||
:<math display = "block">
Line 103 ⟶ 102:
</math>| 6 | border=y}}
The vector field kernel <math>\textstyle\mathbf{k}</math> has vectors that always point toward the origin but their magnitudes, determined in detail by the
function <math>m</math>, decrease to zero with increasing distance from the origin.
 
The beauty of VFC is that it can be computed very rapidly using a fast Fourier transform (FFT), a multiplication, and an inverse FFT. The
Line 114 ⟶ 113:
cases. This property has been described as an extension of the ''capture range'' of the external force of an active contour
model. It is also capable of moving active contours into concave regions of an object's boundary. These two properties are illustrated
in Figure&nbsp;3.
 
[[File:GVF_Convergence.png|thumb|400px|right|Fig. 3. An active contour with traditional external forces (left) must be initialized very close to the boundary and it still will not converge to the true boundary in concave regions. An active contour using GVF external forces (right) can be initialized farther away and it will converge all the way to the true boundary, even in concave regions.]]
Line 126 ⟶ 125:
central ___location, thereby defining a type of geometric feature that is related to the boundary configuration, but not directly evident from
the edge map. For example, ''perceptual edges'' are gaps in the edge map which tend to be connected visually by human
perception&nbsp;.<ref name =":KasxIJCV88"> {{Cite journal | title = Snakes: active contour models | journal = International Journal of Computer Vision |
year = 1988 | volume = 1 | pages = 321-331321–331 | last1 = Kass | first1 = M. | last2 = Witkin | first2 = A. | last3 = Terzopoulos | first3 = D.}}</ref>.
GVF helps to connect them by diffusing opposing edge gradient vectors across the gap; and even though there
is no actual edge map, active contour will converseconverge to the perceptual edge because the GVF vectors drive them there (see&nbsp;{{cite web |url=http://www.iacl.ece.jhu.edu/static/gvf |title=Active contours, deformable models, and gradient vector flow |last1 = Xu |
first1 = C. | last2 = Prince | first2 = J.L. |publisher = Online resource including code download | date = 2012}}).
This property carries over when there are so-called ''weak edges'' identified by regions of edge maps having lower values.
 
GVF vectors also meet in opposition at central locations of objects thereby defining a type of medialness. This property has been
exploited as an alternative definition of the skeleton of objects&nbsp;<ref name =":HasxPAMI09">{{Cite journal | title = Variational curve skeletons using gradient vector flow | journal = IEEE Transactions on Pattern Analysis and Machine Intelligence | year = 2009 | volume = 31 | pages = 2257-22742257–2274 | issue = 12 | last1 = Hassouna | first1 = M.S. | last2 = Farag | first2 = A.Y.}}</ref> and also as a way to initialize deformable models within objects such that convergence to the boundary is more likely.
 
==Applications==
Line 148 ⟶ 147:
where <math>\textstyle G_{\sigma}</math> is a Gaussian blurring kernel with standard deviation <math>\textstyle\sigma</math> and <math>*</math> is convolution. This definition is applicable in any dimension and yields an edge map that falls in the range <math>[0,1]</math>. Gaussian blurring is used primarily so that a
meaningful gradient vector can always be computed, but <math>\sigma</math> is generally kept fairly small so that true edge positions are not overly
distorted. Given this edge map, the GVF vector field <math>\textstyle\mathbf{v}(\mathbf{x})</math> can be computed by solving (2).
 
The deformable model itself can be implemented in a variety of ways including parametric models such as the original
snake&nbsp;<ref name=":KasxIJCV88"/> or active surfaces and implicit models including geometric deformable models&nbsp;.<ref name=":XuxCSSC00">{{Cite conference | first1 = C. | last1 = Xu | first2 = A. | last2 = Yezzi | first3 = J.L. | last3 = Prince | title = On the relationship between parametric and geometric active contours and its applications | book-title = 34th Asilomar Conference on Signals, Systems and Computers | volume = 1 | pages = 483-489483–489 | date = October 2000}}</ref>. In the case
of parametric deformable models, the GVF vector field <math>\mathbf{v}</math> can be used directly as the external forces in the model.
If the deformable model is defined by the evolution of the (two-dimensional) active contour <math>\mathbf{X}(s,t)</math>, then a simple
Line 160 ⟶ 159:
</math>| 8 | border=y}}
Here, the subscripts indicate partial derivatives and <math>\gamma</math> and
<math>\alpha</math> are user-selected constants.
 
[[File:GVF_Cortex.png|thumb|400px|right|Fig. 4. The inner, central, and outer surfaces of the human brain cortex (top) are found sequentially using GVF forces in three geometric deformable models. The central surface uses the gray matter membership function (bottom left) as an edge map itself, which draws the central surface to the central layer of the cortical gray matter. The positions of the three surfaces are shown as nested surfaces in a coronal cutaway (bottom right).]]
Line 172 ⟶ 171:
\phi}{|\nabla \phi|} ] |\nabla \phi | \,,
</math>| 9 | border=y}}
where <math>\kappa</math> is the curvature of the contour and <math>\alpha</math> is a user-selected constant.
 
A more sophisticated deformable model formulation that combines
the geodesic active contour flow with GVF forces was proposed
in&nbsp;.<ref name=":ParxTPAMI04">{{Cite journal | first1 = N. | last1 = Paragios | first2 = O. | last2 = Mellina-Gottardo | first3 = V. | last3 = Ramesh | title = Gradient vector flow fast geometric active contours | journal = IEEE Transactions on Pattern Analysis and Machine Intelligence | year = 2004 | volume = 26 | pages = 402-407402–407 | issue = 3}}</ref>. This paper also shows how to apply the Additive
Operator Splitting schema&nbsp;<ref name=":GolxTIP01">{{Cite journal |first1 = R. | last1 = Goldenberg | first2 = R. | last2 = Kimmel | first3 = E. | last3 = Rivlin
| first4 = M. | last4 = Rudzsky | title = Fast geodesic active contours | journal = IEEE Transactions on Image Processing | year = 2001
| volume = {10 | pages = 1467-1475 | issue = 10}}</ref> for rapid computation of this segmentation method. The uniqueness and existence of this
combined model were proven in&nbsp;.<ref name=":GuixCPAA09">{{Cite journal | first1 = L. | last1 = Guilot | first2 = M. | last2 = Bergounioux
| title = Existence and uniqueness results for the gradient vector flow and geodesic active contours mixed model |
journal = Communications on Pure and Applied Analysis | year = 2009 | volume = 8 | issue = 4 | pages = 1333-13491333–1349}}</ref>.
A further modification of this model by using an external force term minimizing GVF divergence was proposed in&nbsp;<ref name=":LixSP16">{{Cite journal | title=Active contours driven by divergence of gradient vector flow | journal=Signal Processing |
volume=120 | pages=185-199185–199 | year=2016 | publisher=Elsevier}}</ref>
to achieve even better segmentation for images with complex geometric objects.
 
GVF has been used to find both inner, central, and central cortical surfaces in the analysis of brain images&nbsp;,<ref name=":HanxNI04"/>, as shown in Figure&nbsp;4. The
process first finds the inner surface using a three-dimensional geometric deformable model with conventional forces. Then the central
surface is found by exploiting the central tendency property of GVF. In particular, the cortical membership function of the human brain
Line 195 ⟶ 194:
 
Several notable recent applications of GVF include constructing graphs for optimal surface segmentation in spectral-___domain optical coherence
tomography volumes&nbsp;,<ref name=":MirxCMIG17"/>, a learning based probabilistic GVF active contour formulation to give more weights to objects
of interest in ultrasound image segmentation&nbsp;,<ref name =":HafxCBM14"/>, and an adaptive multi-feature GVF active contour
for improved ultrasound image segmentation without hand -tuned paramaters&nbsp;parameters.<ref name=":RodxJVCIR13">{{Cite journal | title=Multi-feature gradient vector flow snakes for adaptive segmentation of the ultrasound images of breast cancer | last1 = Rodtook | first1 = A. | last2 = Makhanov | first2 = S.S. | journal=Journal of Visual Communication and Image Representation | volume=24 | issue = 8 | pages=1414-14301414–1430 | year=2013 | publisher=Elsevier}}</ref>
 
==Related Conceptsconcepts==
 
* [http://iacl.ece.jhu.edu/Projects/gvf/ Deformable models]
* [[Active contour model]]
* [http://homepages.inf.ed.ac.uk/cgi/rbf/CVONLINE/entries.pl?TAG709 Snakes: Active Contours, CVOnline]
* [[Edge detection]]
 
==References==
{{reflist|2}}
 
[[Category:Computer vision]]