Class CDOptimizeBFGS
- java.lang.Object
-
- gov.nih.mipav.view.renderer.WildMagic.AAM.CDOptimizeBase
-
- gov.nih.mipav.view.renderer.WildMagic.AAM.CDOptimizeBFGS
-
public class CDOptimizeBFGS extends CDOptimizeBase
This is the Java modified version of C++ active appearance model API (AAM_API). It is modified with a subset of required functions for automatic MRI prostate segmentation. AAM-API LICENSE - file: license.txt This software is freely available for non-commercial use such as research and education. Please see the full disclaimer below. All publications describing work using this software should cite the reference given below. Copyright (c) 2000-2003 Mikkel B. Stegmann, mbs@imm.dtu.dk IMM, Informatics & Mathematical Modelling DTU, Technical University of Denmark Richard Petersens Plads, Building 321 DK-2800 Lyngby, Denmark http://www.imm.dtu.dk/~aam/ REFERENCES Please use the reference below, when writing articles, reports etc. where the AAM-API has been used. A draft version the article is available from the homepage. I will be happy to receive pre- or reprints of such articles. /Mikkel ------------- M. B. Stegmann, B. K. Ersboll, R. Larsen, "FAME -- A Flexible Appearance Modelling Environment", IEEE Transactions on Medical Imaging, IEEE, 2003 (to appear) ------------- 3RD PART SOFTWARE The software is partly based on the following libraries: - The Microsoft(tm) Vision Software Developers Kit, VisSDK - LAPACK DISCLAIMER This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any non-commercial purpose, and to alter it, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -- No guarantees of performance accompany this software, nor is any responsibility assumed on the part of the author or IMM. This software is provided by Mikkel B. Stegmann and IMM ``as is'' and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall IMM or Mikkel B. Stegmann be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. $Revision: 1.4 $ $Date: 2003/04/23 14:49:15 $ DTU Image Viever and Analyser (DIVA) Department of Mathematical Modelling Technical University of Denmark (DTU), Building 321 DK-2800 Lyngby, Denmark http://www.imm.dtu.dk/~diva author: Per Andresen and Rune Fisker This file contains the implementation of the quasi-newton BFGS optimization algorithm. BFGS is implemented according to Dennis and Schnabel, Numerical Methods for Unconstrained Optimization and Nonlinear Equations 1983, Prentice-Hall- Author:
- Ruida Cheng
-
-
Field Summary
-
Fields inherited from class gov.nih.mipav.view.renderer.WildMagic.AAM.CDOptimizeBase
CentralDifference, ENumGrad, eoptBFGS, eoptConjugateGradient, EOptMethod, eoptPatternSearch, eoptSimulatedAnnealing, eoptSteepestDescent, eoptUnknown, ETermCode, etermConsecMaxStepMax, etermDeltaFuncVal, etermGradTol, etermLineSearch, etermMaxFuncEval, etermMaxIterations, etermNoStop, etermStepTol, etermUnknown, FitLine, ForwardDifference, m_dDeltaFuncVal, m_dEta, m_dGradTol, m_dMachEps, m_dMaxStep, m_dStepTol, m_dTypF, m_eNumGrad, m_fAnalyticGrad, m_fLogFuncValues, m_iStopCriteria, m_nConsecMax, m_nConsecMaxStepMax, m_nFDigits, m_nFuncEval, m_nGradEval, m_nIterations, m_vFuncVal, m_vNFuncEval, m_vvFuncParm
-
-
Constructor Summary
Constructors Constructor Description CDOptimizeBFGS()
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
BFGSUnFac(CDVector xc, CDVector xplus, CDVector gc, CDVector gplus, CVisDMatrix Hc)
Algorithm A9.4.1 p. 355 Input: x, xplus, gc, gplus Input-Output: H Description: The BFGS update is made unless either: i) y'*s < (macheps)^0.5*||y|| or ii) for every i, |(y-Hs)[i]| is less than the estimated noise in y[i].void
dispose()
dispose memoryprivate void
InitHessUnFac(double fc, CVisDMatrix Hc)
intialize the hessian Algorithm A9.4.3 p. 359int
Minimize(CDVector x, CDOptimizeFuncBase pFuncEvalBase)
Algorithm D6.1.1 (look at page 274-275 for code) Input: start point for x Output in x: x* - optimal pointprivate void
ModelHess(CVisDMatrix mH)
Algorithm D5.5.1 (look at page 315-318 for code) Description: Make Hc has positive definite Only step 13 is implemented, because of shortcut by the use of LAPACK-
Methods inherited from class gov.nih.mipav.view.renderer.WildMagic.AAM.CDOptimizeBase
EvalFunction, EvalGradient, ExactLineSearch, GetFuncEvalBase, LineSearch, LineSearch, MaxFuncEval, MaxIterations, MethodPar, MinimizeNum, Name, NumGrad, OptMethod, SetFuncEvalBase, SetMachineEps, SetMaxFuncEval, SetMaxIterations, SetMethodPar, SoftLineSearch, UmStop, UmStop0
-
-
-
-
Method Detail
-
dispose
public void dispose()
dispose memory
-
InitHessUnFac
private void InitHessUnFac(double fc, CVisDMatrix Hc)
intialize the hessian Algorithm A9.4.3 p. 359- Parameters:
fc
-Hc
-
-
ModelHess
private void ModelHess(CVisDMatrix mH)
Algorithm D5.5.1 (look at page 315-318 for code) Description: Make Hc has positive definite Only step 13 is implemented, because of shortcut by the use of LAPACK
-
BFGSUnFac
public void BFGSUnFac(CDVector xc, CDVector xplus, CDVector gc, CDVector gplus, CVisDMatrix Hc)
Algorithm A9.4.1 p. 355 Input: x, xplus, gc, gplus Input-Output: H Description: The BFGS update is made unless either: i) y'*s < (macheps)^0.5*||y|| or ii) for every i, |(y-Hs)[i]| is less than the estimated noise in y[i]. The estimated noise in y[i] is calculated to tol*(|gc[i]| + |gplus[i]|) where tol=eta if analytic gradients are being used, tol=eta^0.5 if finite difference gradients are being used.
-
Minimize
public int Minimize(CDVector x, CDOptimizeFuncBase pFuncEvalBase)
Algorithm D6.1.1 (look at page 274-275 for code) Input: start point for x Output in x: x* - optimal point- Specified by:
Minimize
in classCDOptimizeBase
- Returns:
-
-