--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/CACSWV0SO1d1UdtnbawMun_9OhzYsDL6ekzia%3DrOR%3DPNH5_cizA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
Shouldn't you have only one residuals,
and if you use 3, shouldn't they be squared?
At the very least the residual should be positive right?
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/e8ce4654-7927-4f70-ad46-fb469dc90b75%40googlegroups.com.
The nearest neighbour search is used to find the correspondences i.e
find the <p_i, q_i> pairs in the two point clouds. Once this is done,
the function becomes differentiable. (The optimization function is ||
p_i - T q_i||). However the correspondence changes every iteration (as
nearest neighbour search happens every iteration); so the
differentiable function also changes.
I changed all my variables to 'double' as suggested by Sameer and ran
the solver using -logtostderr but I get the following error.
>> ERROR: unknown command line flag 'logtostderr'
Parameter Block 4, size: 1
0.2 | 0 1 0
Parameter Block 5, size: 1
6.92979e-310 | -nan -nan -nan
>> email to ceres-solver+unsubscribe@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/ceres-solver/CACSWV0SO1d1UdtnbawMun_9OhzYsDL6ekzia%3DrOR%3DPNH5_cizA%40mail.gmail.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ceres Solver" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ceres-solver+unsubscribe@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ceres-solver/CADpYijGcVPvLfff0DAEapcPf5MBe%2BQFAgLb8XQcfCT3d%3Dhvdzg%40mail.gmail.com.
>
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/CACSWV0TVawti7qT1yd3sx%2BLwZsPkt3ocOSSy6-ZQg%3DnHZ9%3DqWQ%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/CAK0oyEpz7fRsEzdRc-WooQeiHgS4NA1AacoVdpiD_HN83dOs%3DA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/02BB0B2E-EC3F-4F61-8C59-58F93C46CE36%40gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/CABqdRUAGQ-jWE%3D4znsqkAJtE5wJG4%2BWVLZhLyNm808K8JJwn_g%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ceres-solver/a8130e35-071d-465e-84e2-2fe2a42dc656%40googlegroups.com.
vector<Vector2> q; // "source" points
vector<Vector2> p; // "target" points (assume just 2 of them for a sec)
double f(Vector2 x)
double E = 0;
for i in range(q):
E += min(sumsq(q[i] + x - p[0]), sumsq(q[i] + x - p[1]))
return E
void f(Vector2 x, vector<Vector2>& residuals)
for i in range(q):
j = argmin_k sumsq(q[i] + x - p[k])
residuals[i] = q[i] + x - p[j]
f(x) = min((x-1)^2, (x-2)^2)A.
[2] A. Fitzgibbon, Robust Registration of 2D and 3D Point Sets, BMVC 2001.
const int K = 1;
vector <int> ids;
vector <float> dists;
if (::kdtree.nearestKSearch (npt, K, ids, dists) > 0) { // this succeeds all the time. So residuals are computed..
Eigen::Vector3f r = ...
if (::kdtree.nearestKSearch (npt, K, ids, dists) <= 0)
return false;
Eigen::Vector3f r = ...