--
You received this message because you are subscribed to the Google Groups "scalismo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scalismo+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scalismo/09b2f219-3a88-4f1a-ab8c-2e3f55fed905o%40googlegroups.com.
Hi Chris,
Yes, exactly. In the mathematical GP setting, the prior and posterior have the exact same form, they are just Gaussian processes. But of course they have different statistics/meaning. Also it does not matter if you build your model from data or if you specify your model by an analytical mean and covariance/kernel.
This equivalence of the models is also reflected in the scalismo
framework's software. They are represented by the same class.
Where ever you use a model estimated from data, you could also use
an analytical model.
Best, Andreas
To view this discussion on the web visit https://groups.google.com/d/msgid/scalismo/38fd5768-89ba-494d-bf7b-ff2ccf995cban%40googlegroups.com.
//Building a Gaussian process shape model
val mean = VectorField(RealSpace[_3D], (_: Point[_3D]) => EuclideanVector.zeros[_3D])
val kernel = DiagonalKernel[_3D](GaussianKernel(sigma = s) * l, outputDim = 3)
val gp = GaussianProcess(mean, kernel)
//building posterior shape model
val refPts = refLms.map{lm => lm.point}
val tarPts = targetLms.map{lm => lm.point}
val observations = (refPts zip tarPts).map{case(rPt, tPt) => tPt - rPt}
val littleNoise = NDimensionalNormalDistribution(Vector(0,0,0), SquareMatrix((0.5f,0,0), (0,0.5f,0), (0,0,0.5f)))
val trainingData = IndexedSeq((refPts, observations, littleNoise))
val posterior : LowRankGaussianProcess[_3D, _3D] = gp.posterior(trainingData)
val lowRankGP = LowRankGaussianProcess.approximateGPCholesky(
refMesh.pointSet,
posterior,
relativeTolerance = 0.05,
interpolator = NearestNeighborInterpolator()
)
To view this discussion on the web visit https://groups.google.com/d/msgid/scalismo/a3296c9f-dd26-4c82-8d3b-ed4c74e40278n%40googlegroups.com.