[问题] opencv CvLevMarq使用方式

楼主: wohc (出征)   2015-08-13 17:48:49
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS2008
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
opencv
问题(Question):
我想对一些资料进行curve fittingu,首先我使用一般的LSE方法去fit
curve function 使用 y=a*exp(-1*pow((x-b)/c,2))
只是这样的精确度不是太高,所以现在想改用2个guass function来fit
不过两个高斯function,就不太容易转成多项式
所以现在想使用opencv的CvLevMarq来fit,但是苦于看不懂如何使用
假设我有input X, output Y 长度n
curve function y=a1*exp(-1*pow((x-b1)/c1,2))+a2*exp(-1*pow((x-b2)/c2,2))
6个系数
请教若以这些资料来进行curve fitting的话,我要如何在CvLevMarq上应用
ps.我知道使用高阶的多项式可以让精度高一点,只是想学习一下opencv的用法
作者: Feis (永远睡不着 @@)   2015-08-13 18:26:00
所以你知道 Levenberg–Marquardt 在干嘛吗?Wiki 讲的你都知道了 ?如果知道的话应该就是用 update 迭代而已
楼主: wohc (出征)   2015-08-13 22:48:00
大概知道,就是一直修正误差直到最佳化本来想自己写的,无奈脑袋不好看了两天还不是很懂只好先用opencv来试试看
作者: Feis (永远睡不着 @@)   2015-08-13 22:52:00
那 Jacobian 会填吗?
楼主: wohc (出征)   2015-08-13 22:53:00
会的,之前有试过自己写GaussNewton
作者: Feis (永远睡不着 @@)   2015-08-13 23:10:00
那你还缺什么?或者你看一下 stitching 里面怎么用的?https://goo.gl/3wYjuw 209 行?
楼主: wohc (出征)   2015-08-13 23:17:00
我主要是想知道参数接口代表的意义
作者: Feis (永远睡不着 @@)   2015-08-13 23:19:00
文件不是有写? 就目前的位置跟 Jacobian 还有目前的误差(你要 fit 的参数们, Jacobian, 目前的误差们)
楼主: wohc (出征)   2015-08-13 23:22:00
嗯,谢谢,我明天再试看看。最终目的我还是得自己写一个出来
作者: Feis (永远睡不着 @@)   2015-08-13 23:22:00
要 fit 的参数你的例子就是 a1, b1, c1, a2, b2, c2误差们就看你有几个资料点就有几个误差
楼主: wohc (出征)   2015-08-13 23:26:00
谢谢,update()的我大概知道,CvLevMarq solver(),这里头的
作者: Feis (永远睡不着 @@)   2015-08-13 23:26:00
里面的你用不到阿? @@
楼主: wohc (出征)   2015-08-13 23:27:00
三个参数? 该为何? param 是我要先自行定义一组初始值吗?
作者: Feis (永远睡不着 @@)   2015-08-13 23:28:00
没错啊. 这是 LM 阿阿阿. 初始值最重要. 重开 Wiki ~
楼主: wohc (出征)   2015-08-13 23:30:00
了解,明天再试看看了。其实我很想call matlab就一了百了
作者: Feis (永远睡不着 @@)   2015-08-13 23:31:00
就 call 阿. 这种事情我也做过另一个选择是 sparseLM
楼主: wohc (出征)   2015-08-13 23:31:00
只是因为某种因素,只能自己写一个出来
作者: Feis (永远睡不着 @@)   2015-08-13 23:32:00
原理很简单. 但是不好刻. sprase 的会想自杀
楼主: wohc (出征)   2015-08-13 23:35:00
高斯牛顿比较简单,只是效果不是很好 (Jt*J).inv*Jt*r
作者: Feis (永远睡不着 @@)   2015-08-13 23:36:00
感觉 dense 难度差不多阿.就是一堆矩阵相乘而已. 效率瓶颈
楼主: wohc (出征)   2015-08-13 23:37:00
难度就差在我一个写得出来一个写不出来
作者: Feis (永远睡不着 @@)   2015-08-13 23:38:00
本质上就是多乘上一个 Jacobian 的转置而已只是牛顿法可以当作没矩阵这回事

Links booklink

Contact Us: admin [ a t ] ucptt.com