~ubuntu-branches/ubuntu/trusty/blender/trusty-proposed

« back to all changes in this revision

Viewing changes to extern/libmv/ChangeLog

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2013-08-14 10:43:49 UTC
  • mfrom: (14.2.19 sid)
  • Revision ID: package-import@ubuntu.com-20130814104349-t1d5mtwkphp12dyj
Tags: 2.68a-3
* Upload to unstable
* debian/: python3.3 Depends simplified
  - debian/control: python3.3 Depends dropped
    for blender-data package
  - 0001-blender_thumbnailer.patch refreshed
* debian/control: libavcodec b-dep versioning dropped

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
commit cfabdfe48df2add3d1f30cf4370efd0b31990ab0
2
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
3
 
Date:   Thu Dec 20 05:46:53 2012 +0600
4
 
 
5
 
    Assorted fixes for keyframe selection:
6
 
    
7
 
    - Biggest error was in cost functors used for F and H refirement,
8
 
      they were just wrong.
9
 
    
10
 
    - Use natural logarithms, since it's actually makes sense from
11
 
      math papers point of view and error is somewhere else.
12
 
    
13
 
    - Disabled rho for GRIC, for now use non-clamped error for tests.
14
 
    
15
 
    - Made SymmetricEpipolarDistance returning non-squared distance
16
 
      Keyframe selection is currently the only used of this function
17
 
      and it seems using non-squared distance makes much more sense.
18
 
    
19
 
      Also would think to append suffix "Squared" to functions which
20
 
      returns squared distances.
21
 
    
22
 
    - Removed templated version of SymmetricEpipolarDistance, since
23
 
      it's not needed actually.
24
 
    
25
 
    This is actually even worse working than previous implementation,
26
 
    but commit it needed for further review.
27
 
 
28
 
commit 35d8c57626ad74818f155e6e5960c663ea84e032
29
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
30
 
Date:   Thu Dec 20 03:00:40 2012 +0600
31
 
 
32
 
    Euclidean resection cost function didn't use correct constructor
33
 
    
34
 
    It was storing a reference to initial rotation passed by value,
35
 
    leading to pointer being pointing to a stack variable, leading to
36
 
    wrong memory access in residuals computing.
37
 
    
38
 
    Apparently was visible in optimized builds only with inline
39
 
    substitution allowed.
40
 
 
41
 
commit 0798d3162bb49cee7e1c423ceccbca1326ad5650
42
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
43
 
Date:   Thu Dec 20 02:50:52 2012 +0600
44
 
 
45
 
    Automatic keyframe selection based on Pollefeys's criteria
46
 
    
47
 
    This commit implements automatic keyframe selection algorithm
48
 
    based on Pollefeys's criteria (F-GRIC is smaller than H-GRIC
49
 
    and correspondence ratio is more then 90%).
50
 
    
51
 
    It is implemented as a part of simple pipeline and returns
52
 
    vector of keyframe images for a given Tracks structure.
53
 
    
54
 
    For simple pipeline reconstruction two best keyframes are
55
 
    expected to be selected from all detected candidates.
56
 
    Criteria for this selection could be reprojection error of
57
 
    solution from two candidate keyfames.
58
 
    
59
 
    Unfortunately, it's not fully workable yet, hopefully would
60
 
    be fixed soon.
61
 
 
62
 
commit e943985552f0598ae122252876f305d72c25c2f9
63
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
64
 
Date:   Thu Dec 6 17:47:11 2012 +0600
65
 
 
66
 
    Camera Tracking: allow fallback to reprojection resection
67
 
    by user demand
68
 
    
69
 
    This fixes some "regressions" introduced in previous commit
70
 
    which lead to much worse solution in some cases. Now it's
71
 
    possible to bring old behavior back.
72
 
    
73
 
    Perhaps it's more like temporal solution for time being smarter
74
 
    solution is found. But finding such a solution isn't so fast,
75
 
    so let's bring manual control over reprojection usage.
76
 
    
77
 
    But anyway, imo it's now nice to have a structure which could
78
 
    be used to pass different settings to the solver.
79
 
 
80
 
commit 5a23d01dd531d1e0798298d17ba42a3397effb82
81
 
Author: Keir Mierle <mierle@gmail.com>
82
 
Date:   Thu Sep 20 18:55:44 2012 +0000
83
 
 
84
 
    Make Euclidean resection "always" succeed.
85
 
    
86
 
    The Euclidean resection code had a magical constant, 1e-3, used to
87
 
    compare the results of solving an equation. This failure detection
88
 
    was well-intended, trying to prevent poor solutions from getting
89
 
    made without notifying the caller. Unfortunately in practice, this
90
 
    threshold is too conservative. Furthermore, it is not clear the
91
 
    threshold should exist at all; the purpose of the Euclidean
92
 
    resection is to come up with the best solution it can; other
93
 
    methods (e.g. reprojection error) should be used to compare
94
 
    whether the method succeeded.
95
 
    
96
 
    This commit changes the Euclidean EPnP code to always succeed,
97
 
    causing the previous fallback to projective resection to never
98
 
    run. In most cases, this will result in better reconstructions.
99
 
    
100
 
    This should, in most cases, fix the dreaded "flipping" problem.
101
 
 
102
 
commit 57dad861d2a7f9d058c6d8edde1a2d51d7225a51
103
 
Author: Keir Mierle <mierle@gmail.com>
104
 
Date:   Thu Sep 20 02:27:34 2012 +0000
105
 
 
106
 
    Fix variable naming in the planar tracker.
107
 
 
108
 
commit e9392fd3b46f5668662935696e7d9afac3390ca4
109
 
Author: Keir Mierle <mierle@gmail.com>
110
 
Date:   Thu Sep 20 02:10:33 2012 +0000
111
 
 
112
 
    Add smarter tolerance checking in the planar tracker.
113
 
    
114
 
    The planar tracker uses Ceres for the refinement stage. During
115
 
    refinement, Ceres iteratively updates the parameters with the
116
 
    latest best guess. If the change in the parameters falls below a
117
 
    threshold, Ceres will abort successfully ("converged").
118
 
    
119
 
    For the case of pure translation tracking, the parameters are
120
 
    exactly the two pixel shifts (dx, dy), and measuring the change in
121
 
    these parameters gives a meaningful termination criterion.
122
 
    However, for all the other parameterizations like affine, where
123
 
    the parameterization involves affine parameters that have no
124
 
    physical interpretation, Ceres is left with no way to terminate
125
 
    the solver early. With the existing code, often many iterations
126
 
    are run long after Ceres has found a solution sufficiently
127
 
    accurate for all tracking needs. No one needs tracking with
128
 
    a quadrillionth of a pixel accuracy; that time is wasted.
129
 
    
130
 
    This patch extends the existing iteration callback that is passed
131
 
    in to Ceres to check if the pattern has fallen out of the search
132
 
    window, to also check if the optimizer has made a tiny step. In
133
 
    particular, if the maximum shift of any patch corner between two
134
 
    successful optimizer steps is less than a threshold (currently
135
 
    0.005 pixels), the track is declared successful and tracking
136
 
    is terminated.
137
 
    
138
 
    This leads to dramatic speed increases in some cases, with little
139
 
    to no loss in track quality. This is especially apparent when
140
 
    tracking patches with affine or perspective motion models. For
141
 
    example, on some tracking cases I tried, the iterations Ceres took
142
 
    went from 50 to 3.
143
 
 
144
 
commit 36729c19bf90cb767e9adb96ba7dd48a5ace2be1
145
 
Author: Keir Mierle <mierle@gmail.com>
146
 
Date:   Wed Sep 19 22:25:02 2012 +0000
147
 
 
148
 
    Detect too-small planar tracking patches.
149
 
    
150
 
    The planar tracker did not detect very skinny patches which have
151
 
    effectively zero area and are untrackable. This adds detection and
152
 
    rejection of patterns with zero area. This fixes a crash found by
153
 
    during Mango production.
154
 
 
155
 
commit 5cf2bae255a5a0f2e36ea0516670782cb88b589d
156
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
157
 
Date:   Thu Dec 6 17:33:53 2012 +0600
158
 
 
159
 
    Real fix for previous commit from Keir. He's comment;
160
 
    
161
 
    Cleanup for when trackers fall out of the search window.
162
 
    
163
 
    Sergey originally left a TODO() here, but his fix is the correct
164
 
    one. I removed the TODO and fixed some comment issues.
165
 
 
166
 
commit a11533918720e5b43dc1e95895db0eb36c8c06aa
167
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
168
 
Date:   Thu Dec 6 17:31:16 2012 +0600
169
 
 
170
 
    Fix crash when tracking in planar motion model (and maybe some other)
171
 
    
172
 
    It was an Abort() caused by check for solver result not equal to USER_ABORT.
173
 
    
174
 
    In some cases solver returns USER_ABORT due to BoundaryCheckingCallback
175
 
    detects coordinates does not belong to image.
176
 
    
177
 
    Somehow this callback wasn't called in previous version of Ceres and
178
 
    in the same case marker was jumping. Now when the callback is called
179
 
    it seems we could simply return failure of tracking without aborting
180
 
    Blender.
181
 
    
182
 
    Probably this is in fact some issue somewhere else, would double
183
 
    check with Keir about this.
184
 
 
185
 
commit 4be2306bcc664b259aaf7068b9f32ab60124a509
186
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
187
 
Date:   Thu Dec 6 17:29:39 2012 +0600
188
 
 
189
 
    Resolved some compilation warnings (missed prototypes)
190
 
    
191
 
    In some cases it was missed include of header file, in some other
192
 
    cases symbol could be static.
193
 
 
194
 
commit bef729ba5c12683d13584d2a728b8b6506b7ca90
195
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
196
 
Date:   Thu Dec 6 17:27:17 2012 +0600
197
 
 
198
 
    Code cleanup: silence some -Wnarrowing warnings from C++11
199
 
 
200
 
commit add1415d896818367087c784a3013dd8f1bb2095
201
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
202
 
Date:   Thu Dec 6 17:25:18 2012 +0600
203
 
 
204
 
    Changes to SamplePlanarPatch to support mask input and
205
 
    added output for pattern center.
206
 
 
207
 
commit daa354c0735b954b0cd7725626e9a3d67416d46b
208
 
Author: Keir Mierle <mierle@gmail.com>
209
 
Date:   Sat Jun 9 19:22:39 2012 +0000
210
 
 
211
 
    Change libmv's bilinear sampling to assume the same
212
 
    pixel conventions as Blender. This fixes the preview
213
 
    widget in Blender, and should make tracking slightly
214
 
    more accurate.
215
 
 
216
 
commit 99b6222873fbfbe248316316956720376a58f438
217
 
Author: Keir Mierle <mierle@gmail.com>
218
 
Date:   Sat Jun 9 18:58:51 2012 +0000
219
 
 
220
 
    Add new warp regularization scheme for planar tracking.
221
 
    
222
 
    This adds a new term to the tracking cost function that
223
 
    restricts how much the optimizer can warp the patch (as
224
 
    opposed to merely adjusting the translation). This should
225
 
    reduce the "jumpiness" that is sometimes seen when doing
226
 
    non-"Loc" tracks.
227
 
    
228
 
    It is disabled in this commit; a subsequent commit will add
229
 
    controls to the tracking dialog for this.
230
 
 
231
 
commit a1c5a70badd11cba0470700bad2eac2b2bd30c86
232
 
Author: Keir Mierle <mierle@gmail.com>
233
 
Date:   Sat Jun 9 06:55:21 2012 +0000
234
 
 
235
 
    Planar tracker polish.
236
 
    
237
 
    - Fixes the correlation checking code that was broken in the
238
 
      previous commit. The bug was a transpose error.
239
 
    - Fixes a memory leak of the warp functor, found by Sameer.
240
 
    - Various cleanups done at Sameer's suggestion.
241
 
    
242
 
    Thanks to Sameer Agarwal for a code review.
243
 
 
244
 
commit 2cb784caa854a77cdd43620ab133f26b87ed0d83
245
 
Author: Keir Mierle <mierle@gmail.com>
246
 
Date:   Fri Jun 8 17:42:17 2012 +0000
247
 
 
248
 
    Make planar tracking much faster.
249
 
    
250
 
    - This makes planar tracking around 2-3x or more faster than
251
 
      before, by rearranging how the sampling is done.
252
 
      Previously, the source patch was sampled repeatedly on
253
 
      every optimizer iteration; this was done for
254
 
      implementation speed, but was wasteful in computation.
255
 
    
256
 
    - This also contains some additions to Ceres to help
257
 
      deailing with mixed numeric / automatic differentation. In
258
 
      particular, there is now a "Chain::Rule" operator that
259
 
      facilitates calling a function that takes Jet arguments,
260
 
      yet does numeric derivatives internally. This is used to
261
 
      mix the numeric differentation of the images with the warp
262
 
      parameters, passed as jets by Ceres to the warp functor.
263
 
    
264
 
      There is also a new "JetOps" object for doing operations
265
 
      on types which may or may not be jets, such as scaling
266
 
      the derivative part only, or extracting the scalar part
267
 
      of a jet.
268
 
    
269
 
      This patche is aimed at Ceres upstream.
270
 
    
271
 
    - A new function for sampling a patch is now part of the
272
 
      track_region.h API; this will get used to make the preview
273
 
      widget properly show what is getting tracked. Currently
274
 
      the preview widget does not handle perspective tracks.
275
 
    
276
 
    Known issues:
277
 
    
278
 
      This patch introduces a bug such that the "Minimum
279
 
      Correlation" flag does not work; if it is enabled, tracking
280
 
      aborts immediately. The workaround for now is to disable the
281
 
      correlation checking, and examine your tracks carefully. A
282
 
      fix will get added shortly.
283
 
 
284
 
commit 81d028f13738ebe2304287dfce90e91bc782e2cf
285
 
Author: Keir Mierle <mierle@gmail.com>
286
 
Date:   Fri May 18 20:04:43 2012 +0000
287
 
 
288
 
    Remove an unnecessary template<> line in libmv. Convert debug logs to LG.
289
 
 
290
 
commit 238aaba241ef99995d254aadc974db719da04b96
291
 
Author: Keir Mierle <mierle@gmail.com>
292
 
Date:   Fri May 18 12:05:10 2012 +0000
293
 
 
294
 
    Support normalization in the tracking prepass
295
 
    
296
 
    The last tracker commit added normalized tracking. This makes
297
 
    tracking patches undergoing uniform illumination change easier.
298
 
    However, the prepass which computes a quick translation-only
299
 
    estimate of the warp did not take this into account. This commit
300
 
    fixes that.
301
 
    
302
 
    This works reasonably well but in some examples the brute
303
 
    initialization fails. I suspect this is due to the warped template
304
 
    estimate in the current  frame being too different from the
305
 
    original, so there are multiple peaks in the normalized-SAD
306
 
    correlation function.
307
 
    
308
 
    The solution is to use the previous frame for the brute
309
 
    initialization and the keyframe for refinement, but that requires
310
 
    architecture changes.
311
 
 
312
 
commit 981ca4f6a679cd9ac3d086eae3cd946ce72ca8a5
313
 
Author: Keir Mierle <mierle@gmail.com>
314
 
Date:   Fri May 18 02:12:47 2012 +0000
315
 
 
316
 
    Add light-normalized tracking to the planar tracker
317
 
    
318
 
    This commit adds the ability to normalize patterns by their
319
 
    average value while tracking, to make them invariant to global
320
 
    illumination changes.
321
 
    
322
 
    To see this in action, check out the "Lobby" scene from Hollywood
323
 
    VFX. If you track the markers that are shadowed by the actress,
324
 
    previously they would not track. With the scale adaption on, the
325
 
    tracker would shrink the area to compensate for the changed
326
 
    illumination, losing the track. With "Normalize" turned on, the
327
 
    patch is correctly tracked and scale is maintained.
328
 
    
329
 
    A remaining problem is that only the Ceres cost function is
330
 
    updated to handle the normalization. The brute translation search
331
 
    does not take this into account. Perhaps "Prepass" (see below)
332
 
    should get disabled if normalization is enabled until I fix the
333
 
    prepass to normalize as well.
334
 
    
335
 
    There are a few other changes:
336
 
    
337
 
    - Bail out of the sampling loop early if the mask is zero; this
338
 
      saves expensive samples of the image derivatives.
339
 
    
340
 
    - Fix a bug where the mask was ignored when sampling in the cost
341
 
      functor.
342
 
 
343
 
commit e9384b15fb2a6a5b81346d5758fa136f0911e945
344
 
Author: Keir Mierle <mierle@gmail.com>
345
 
Date:   Thu May 17 23:53:32 2012 +0000
346
 
 
347
 
    Implement support for affine tracking in the planar tracker; cleanups.
348
 
 
349
 
commit 021d41eed8b4ce6a4e37786ccd357ed5dc83a13f
350
 
Author: Keir Mierle <mierle@gmail.com>
351
 
Date:   Thu May 17 21:26:06 2012 +0000
352
 
 
353
 
    For the planar tracker, initialize the warp from the four correspondences
354
 
    after brute force translation search.
355
 
 
356
 
commit 003d1bf6145cfd30938b35f6e10d43708dbf916c
357
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
358
 
Date:   Thu Dec 6 16:56:01 2012 +0600
359
 
 
360
 
    Correction to region tracker options initialization.
361
 
    
362
 
    Based on patch from Keir to Blender:
363
 
    https://svn.blender.org/svnroot/bf-blender/branches/soc-2011-tomato@46743
364
 
 
365
 
commit 6af47b218cfdf5219f0ebb3cb95459817cf9abf2
366
 
Author: Keir Mierle <mierle@gmail.com>
367
 
Date:   Thu May 17 02:31:52 2012 +0000
368
 
 
369
 
    Add new planar tracker features and use the new planar API
370
 
    
371
 
    This commit removes the use of the legacy RegionTracker API from
372
 
    Blender, and replaces it with the new TrackRegion API. This also
373
 
    adds several features to the planar tracker in libmv:
374
 
    
375
 
    - Do a brute-force initialization of tracking similar to "Hybrid"
376
 
      mode in the stable release, but using all floats. This is slower
377
 
      but more accurate. It is still necessary to evaluate if the
378
 
      performance loss is worth it. In particular, this change is
379
 
      necessary to support high bit depth imagery.
380
 
    
381
 
    - Add support for masks over the search window. This is a step
382
 
      towards supporting user-defined tracker masks. The tracker masks
383
 
      will make it easy for users to make a mask for e.g. a ball.
384
 
    
385
 
    - Add Pearson product moment correlation coefficient checking (aka
386
 
      "Correlation" in the UI. This causes tracking failure if the
387
 
      tracked patch is not linearly related to the template.
388
 
    
389
 
    - Add support for warping a few points in addition to the supplied
390
 
      points. This is useful because the tracking code deliberately
391
 
      does not expose the underlying warp representation. Instead,
392
 
      warps are specified in an aparametric way via the correspondences.
393
 
    
394
 
    - Remove the "num_samples_xy" concept and replace it with
395
 
      automatic determination of the number of samples. This makes the
396
 
      API easier for users.
397
 
    
398
 
    - Fix various bugs in the parameterizations.
399
 
    
400
 
    There remains a bug with subpixel precision tracking when in
401
 
    "keyframe" mode; this will get fixed shortly.
402
 
 
403
 
commit 16a46db104468cec80bd31ca9d5f8bffbe3e003e
404
 
Author: Keir Mierle <mierle@gmail.com>
405
 
Date:   Mon May 14 12:15:38 2012 +0000
406
 
 
407
 
    "Efficient Second-order Minimization" for the planar tracker
408
 
    
409
 
    This implements the "Efficient Second-order Minimization"
410
 
    scheme, as supported by the existing translation tracker.
411
 
    This increases the amount of per-iteration work, but
412
 
    decreases the number of iterations required to converge and
413
 
    also increases the size of the basin of attraction for the
414
 
    optimization.
415
 
 
416
 
commit 23243b1b1f3e1ab3ef862b47bca06ee876ac2cf4
417
 
Author: Keir Mierle <mierle@gmail.com>
418
 
Date:   Sun May 13 23:08:56 2012 +0000
419
 
 
420
 
    Add a planar tracking implementation to libmv
421
 
    
422
 
    This adds a new planar tracking implementation to libmv. The
423
 
    tracker is based on Ceres[1], the new nonlinear minimizer that
424
 
    myself and Sameer released from Google as open source. Since
425
 
    the motion model is more involved, the interface is
426
 
    different than the RegionTracker interface used previously
427
 
    in Blender.
428
 
    
429
 
    The ESM tracker, also known as the KLT tracker in the UI, is
430
 
    temporarily changed to use the new Ceres-based planar
431
 
    tracker in translation-only mode. Currently it is a bit
432
 
    slower than ESM and also doesn't have all the bells and
433
 
    whistles implemented. Those will come soon. Longer term,
434
 
    both trackers will remain since Ceres is unlikely to be as
435
 
    fast as ESM for pure translation solving, due to its
436
 
    generality.
437
 
    
438
 
    The next step is to implement a new tracking UI. The current
439
 
    UI assumes a translational motion model; the new one must
440
 
    support arbitrary perspective transforms of the pattern
441
 
    regions.
442
 
    
443
 
    [1] http://code.google.com/p/ceres-solver
444
 
 
445
 
commit 52be92b53eb4decb1a316690b162196f227cc441
446
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
447
 
Date:   Thu Dec 6 16:06:08 2012 +0600
448
 
 
449
 
    Initial Ceres integration
450
 
    
451
 
    Currently only put sources to src/third_party/ceres and made sure they're
452
 
    not giving compilation issues.
453
 
    
454
 
    Used Ceres upstream version 1.3.0.
455
 
    
456
 
    Needed to make some modifications to it's CMakeLists.txt also to glog and
457
 
    fglags. They're described in README.libmv of this libraries.
458
 
    
459
 
    Basically:
460
 
    
461
 
    - Added -fPIC to glog/gflags, so shared ceres library could be linked
462
 
      statically against this libraries.
463
 
    
464
 
    - Tweaked Ceres's build rules to use needed libraries from libmv's
465
 
      third_party folder.
466
 
 
467
 
commit b13f9d13122e091cb85855c2094386ccdef6e5a4
468
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
469
 
Date:   Wed Dec 5 19:05:34 2012 +0600
470
 
 
471
 
    Update Eigen to version 3.1.2
472
 
    
473
 
    Mainly because of lots of warnings generating by gcc-4.7 which are
474
 
    resolved in newer eigen version.
475
 
 
476
 
commit 1f0dd94e8e37d3fe2df89282ec16a6a685fdde0b
477
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
478
 
Date:   Fri May 25 16:36:44 2012 +0600
479
 
 
480
 
    - Added avutil to qt-tracker linking when building with FFmpeg support.
481
 
      On some platforms it seems to be required
482
 
    - Synchronized QT Creator project for qt-tracker with changes in sources,
483
 
      so no it might be compiled from QT Creator.
484
 
 
485
 
commit b813dbe3f46bbbc7e73ac791d4665622e4fc7ba5
486
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
487
 
Date:   Wed May 9 19:01:10 2012 +0600
488
 
 
489
 
    Modal solver: Detect rigid transformation between initial frame and current
490
 
    instead of detecting it between two neighbour frames.
491
 
    
492
 
    This prevents accumulation of error and seems to be working better in footages i've tested.
493
 
 
494
 
commit 9254621c76daaf239ec1f535e197ca792eea97b6
495
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
496
 
Date:   Wed May 9 18:57:00 2012 +0600
497
 
 
498
 
    Backport changes made by Keir in Blender:
499
 
    
500
 
    - Enhance logging in libmv's trackers.
501
 
    - Cleanups in brute_region_tracker.cc.
502
 
 
503
 
commit d9c56b9d3c63f886d83129ca0ebed1e76d9c93d7
504
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
505
 
Date:   Fri Apr 27 16:20:41 2012 +0600
506
 
 
507
 
    Fixes for MinGW64 support by Caleb Joseph with slight modifications by Antony Riakiotakis
508
 
    
509
 
    - Functions snprintf and sincos shouldn't be redefined for MinGW64
510
 
    - Type  pid_t shouldn't be re-defined for MinGW64
511
 
 
512
 
commit e1902b6938676011607ac99986b8b140bdbf090e
513
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
514
 
Date:   Fri Apr 27 16:04:19 2012 +0600
515
 
 
516
 
    Fixes for Qt calibration tool
517
 
    
518
 
    - Passing directory with images via command line argument now isn't
519
 
      required -- it there's no such directory specified  standard open
520
 
      dialog might be used for this (before application used to abort
521
 
      due to accessing to non-existing list element).
522
 
    - Conversion of source images to grayscale now happens correct.
523
 
      It was needed to build grayscale palette for 8bit indexed buffer.
524
 
 
525
 
commit 05f1a0a78ad8ff6646d1e8da97e6f7575b891536
526
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
527
 
Date:   Sat Apr 14 17:21:29 2012 +0600
528
 
 
529
 
    Make QtTracker compilable again porting it to recent API change and code cleanup:
530
 
    
531
 
    - It was using SAD tracker with own API, now it's using standard RegionTracker API
532
 
      which should make it easier to switch between different trackers.
533
 
    - Restored LaplaceFilter from old SAD module which convolves images with the
534
 
      discrete laplacian operator.
535
 
 
536
 
commit a44312a7beb2963b8e3bf8015c516d2eff40cc3d
537
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
538
 
Date:   Thu Apr 12 13:56:02 2012 +0600
539
 
 
540
 
    Added solver for modal camera motion, currently supports only tripod solving
541
 
    
542
 
    This solver is intended to deal with such camera motions as tripod and panning,
543
 
    where it's impossible to reconstruct exact position of markers in 3d view.
544
 
    
545
 
    It projects markers onto sphere and uses rigid registration of rotation to
546
 
    find rotation angles which makes bundles from previous and current frame be
547
 
    as closest as it's possible.
548
 
 
549
 
commit fa3842e472e3b9c789e47bf6d8f592aa40a84f16
550
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
551
 
Date:   Thu Apr 12 12:32:48 2012 +0600
552
 
 
553
 
    implementation of some basic algorithms for point cloud orientation:
554
 
    
555
 
    - Implementation of rigid registration algorithm which searches transformation
556
 
      form one point cloud to another assuming that points in this clouds are
557
 
      already paired (points with the same index in different clouds belongs to
558
 
      the same pair) which minimizes average distance between points in pairs.
559
 
    
560
 
      Algorithm uses Levenberg-Marquardt solver to find such transformation.
561
 
    
562
 
      Supports registration of rotation-scale-transform (which is probably most
563
 
      common usage) and rotation only (which might be useful for basic modal
564
 
      tripod solver).
565
 
    
566
 
    - Implementation of Iterative-Point-Clouds algorithm which searches
567
 
      transformation from one arbitrary point cloud to another  making
568
 
      points as closest to each other as possible.
569
 
    
570
 
      This algorithm doesn't require points be initially paired, but for
571
 
      good result clouds should have rough initial orientation. If they're
572
 
      arbitrary oriented from the very beginning, algorithm might fail
573
 
      producing good resold.
574
 
    
575
 
      Iteration is based on building pairs of closest to each other points
576
 
      and registering rigid transformation between them which incrementally
577
 
      constructs final result.
578
 
    
579
 
    TODO: building pairs might be speedup a lot using data structures like
580
 
          AABB trees, K-D trees or so.
581
 
 
582
 
commit 9618d9a1d48bb3c28da605d9027f57a74f462785
583
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
584
 
Date:   Wed Apr 11 14:17:14 2012 +0600
585
 
 
586
 
    Added configuration file for glog to compile smooth on Hurd platform.
587
 
    
588
 
    Patch by Pino Toscano <pino@debian.org>, thanks!
589
 
 
590
 
commit 63b2bd20237c8599fa73ce42556e4fb99b9f7cca
591
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
592
 
Date:   Thu Mar 22 17:03:34 2012 +0600
593
 
 
594
 
    Trackers refactoring:
595
 
    - Deduplicate pattern sampling used in esm and lmicklt trackers
596
 
      and move SamplePattern to image/sample.h
597
 
    - Move computation of Pearson product-moment correlation into
598
 
      own function in new file image/correlation.h so all trackers
599
 
      can use it to check final correlation.
600
 
    - Remove SAD tracker. It's almost the same as brute tracker,
601
 
      with only two differences:
602
 
      1. It does brute search of affine transformation which in some cases
603
 
         helps to track rotating features
604
 
      2. It didn't use common tracker api which probably gave some speed
605
 
         advantage, but lead to a real headache to use it together with
606
 
         other trackers leading to duplicated code in 3d-party software.
607
 
 
608
 
commit 9fe49c32e990f28c83f2bbb1d18057aed8879af7
609
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
610
 
Date:   Mon Mar 12 09:36:15 2012 +0600
611
 
 
612
 
    Code cleanup: convert line endings to Unix style (native on my platform) so it
613
 
    wouldn't confuse other versioning systems used for project where libmv is bundled to,
614
 
    
615
 
    Also change mode to +x for glog's windows-related script.
616
 
 
617
 
commit fe74ae2b53769389b0ed9d7e604c8e60be81077d
618
 
Author: Sergey I. Sharybin <g.ulairi@gmail.com>
619
 
Date:   Sun Mar 11 20:34:15 2012 +0600
620
 
 
621
 
    Replace "third_party/glog/src/glog/logging.h" with <glog/logging.h>
622
 
    
623
 
    It was needed because of how build systems is setup in Blender but think
624
 
    this will be helpful change for other applications too because it makes
625
 
    it's easier to move libraries around and even use libraries installed
626
 
    on the operation system.
627
 
 
628
 
commit 37fc726701479f2d321d6af878fa93f3176278d5
629
 
Author: Sergey I. Sharybin <g.ulairi@gmail.com>
630
 
Date:   Sun Mar 11 19:27:41 2012 +0600
631
 
 
632
 
    Upgrade gflags and glog libraries - stage 2 (final)
633
 
    
634
 
    Changes to upstream code which are needed to make libmv compile smooth on all platforms
635
 
    
636
 
    * Replace <gflags/gflags.h> with "third_party/gflags/gflags/gflags.h" which is easier
637
 
      to setup things in libmv and also helps with setting up building libmv into
638
 
      external applications.
639
 
    * Replace "glog/logging.h" and  "glog/logging.h" with <glog/logging.h> and  <glog/logging.h>
640
 
      which is needed on Windows platform because otherwise files like logging.cc will be using
641
 
      relative path which points to headers used by linux instead of headers need to be used
642
 
      on Windows.
643
 
    * Replace _asm int 3 with __debugbreak(). Such assembler code is obsolete and doesn't work
644
 
      with 64bit versions of MSVC compilers.
645
 
    * Do not use stacktrace for MinGW and FreeBSD because it leads into issues accessing
646
 
      some specific data on this platforms.
647
 
    * Define HAVE_LIB_GFLAGS for Windows builds.
648
 
    * Do not define __declspec(dllimport) for MinGW platforms.
649
 
    * Setup proper includes and datatypes for int32, uint32, int64 and uint64 for MinGW
650
 
    * Do not define va_copy for MinGW platforms (it's already defined there).
651
 
    * Patch localtime_r to be working fine with MinGW, disable strerror_r for MinGW because
652
 
      of lack of needed functions.
653
 
 
654
 
commit 8ed07abfa49d1e0511752021c972e0715e5a1383
655
 
Author: Sergey I. Sharybin <g.ulairi@gmail.com>
656
 
Date:   Sun Mar 11 19:06:33 2012 +0600
657
 
 
658
 
    Upgrade gflags and glog libraries - stage 1
659
 
    
660
 
    This commit copies sources from latest original release of gflags and glog
661
 
    over currently bundled versions of this libraries without any modifications.
662
 
    
663
 
    This revision can't b compiled, all needed changes to make new libraries working
664
 
    fine will be done with next commit to make it clear which changes were necessary
665
 
    for easier bundling further newer version and extract patches and put them to
666
 
    gflags/glog upstream repo.
667
 
    
668
 
    Such upgrade of libraries is needed to make it able to compile libmv
669
 
    with clang compilers. Currently used versions:
670
 
    
671
 
    - gflags is version 2.0
672
 
    - glog is version 0.3.2
673
 
 
674
 
commit 75b9af405964ff2c7d3f0a44500e27e63b37c91b
675
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
676
 
Date:   Fri Feb 17 23:29:11 2012 +0600
677
 
 
678
 
    _USE_MATH_DEFINES is needed to define constants like M_E when building with msvc
679
 
    Occasionally was removed, but now added comment about this so hopefully it
680
 
    wouldn't removed again.
681
 
 
682
 
commit f85b1232a9b929f69443b5eed6e7a39908cd6551
683
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
684
 
Date:   Fri Feb 17 21:34:40 2012 +0600
685
 
 
686
 
    Picky edit: corrected mode for ssba readme file.
687
 
 
688
 
commit f8c2b223f01551fd81a85f6d5221646165147035
689
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
690
 
Date:   Fri Feb 17 21:32:05 2012 +0600
691
 
 
692
 
    Picky edits: corrected EOL
693
 
 
694
 
commit 3f2a4205ec5adadcdfa306b161c705c868a7be93
695
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
696
 
Date:   Fri Feb 17 21:30:07 2012 +0600
697
 
 
698
 
    Fixed incorrect access to ucontext on linux. Caused by incorrect merge conflict resolve.
699
 
 
700
 
commit d360a21a5aa125cf9e83dd26b302508688ff7007
701
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
702
 
Date:   Fri Feb 17 20:54:13 2012 +0600
703
 
 
704
 
    More Windows -> Unix EOL conversions
705
 
 
706
 
commit 18aeda58bec9556140ba617724e31ada6f5b67c0
707
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
708
 
Date:   Fri Feb 17 20:15:42 2012 +0600
709
 
 
710
 
    Looks like this debug output was removed accidentally.
711
 
 
712
 
commit 189dc0cacdee3c1eab68c43263ecb038ed244c09
713
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
714
 
Date:   Fri Feb 17 20:11:56 2012 +0600
715
 
 
716
 
    Made V3D verbose again by default
717
 
 
718
 
commit 8b3422d3eec5e450d76243886bf07fb0a3e83a81
719
 
Author: Sergey Sharybin <sergey.vfx@gmail.com>
720
 
Date:   Fri Feb 17 20:08:01 2012 +0600
721
 
 
722
 
    SAD tracker now can deal with pattern size any size,
723
 
    Very quick implementation came from Blender before Hybrid tracker was added.
724
 
    Better to be replaced with brute tracker.
 
1
commit 2cd653e2952379da7daf56edcd9e71b0aa929f90
 
2
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
3
Date:   Sat Jun 1 16:20:35 2013 +0600
 
4
 
 
5
    Pass vectors by a reference
 
6
    
 
7
    Saves couple of time which used to waste on copying objects,
 
8
    also solves win32 compilation errors caused by alignment.
 
9
 
 
10
commit f61b8198b9bddd8d2fa53feae7924aa23df48cbd
 
11
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
12
Date:   Thu May 30 18:00:03 2013 +0600
 
13
 
 
14
    Code cleanup
 
15
    
 
16
    - Made some arguments passing to detector const.
 
17
    - Remove unneeded include from track_region header.
 
18
 
 
19
commit 61ac890908a397860cabc60207500039876532cc
 
20
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
21
Date:   Mon May 13 04:44:14 2013 +0600
 
22
 
 
23
    Pass ApplyRadialDistortionCameraIntrinsics input arguments by reference
 
24
    
 
25
    This shall save some CPU time on calling copy constructor and give
 
26
    some boost of bundle adjuster (where jet could take some time to
 
27
    be passed by value).
 
28
 
 
29
commit 4d005ff0771e0e28159be25f8da69d983641384f
 
30
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
31
Date:   Mon May 13 04:22:05 2013 +0600
 
32
 
 
33
    Minor code style cleanup.
 
34
 
 
35
commit f003b9e3031db4592c2d91b1ea2538c73b7e767d
 
36
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
37
Date:   Sun May 12 22:34:54 2013 +0600
 
38
 
 
39
    Cleanup in simple pipeline's bundler
 
40
    
 
41
    - Better match Google's code style conventions.
 
42
    - Move evaluation part into own function, makes
 
43
      bundling itself easier to follow.
 
44
    - Made evaluation an optional parameter.
 
45
    - Removed note about unsupported camera intrinsics
 
46
      refining flags. Technically, all combinations
 
47
      are possible.
 
48
 
 
49
commit f0e68f69e5c5f0fd82334246d382e59f1eb20164
 
50
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
51
Date:   Sun May 12 22:19:31 2013 +0600
 
52
 
 
53
    Remove check for zero focal length in BA cost functor
 
54
    
 
55
    This check is actually redundant, because empty intrinsics
 
56
    will have focal length of 1.0, which means original comment
 
57
    about BundleIntrinsics was not truth.
 
58
    
 
59
    It is possible that external user will send focal length of
 
60
    zero to be refined, but blender prevents this from happening.
 
61
 
 
62
commit 7ed5e4da65d2c0df63a08b1e1f4b4de1855f1bf0
 
63
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
64
Date:   Sat May 11 20:33:54 2013 +0600
 
65
 
 
66
    Fix compilation error with msvc2012
 
67
    
 
68
    Using change from glog's upstream for this.
 
69
 
 
70
commit 7e162266f96abc25d80e2352cd77f21ed93593b7
 
71
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
72
Date:   Sat May 11 19:50:57 2013 +0600
 
73
 
 
74
    Style cleanup, mainly pointed by Sameer in Ceres's codereview
 
75
 
 
76
commit 42da053c6410b4f3fb13798c7e9c5f4a861b6825
 
77
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
78
Date:   Fri May 10 18:30:40 2013 +0600
 
79
 
 
80
    Keyframe selection improvements
 
81
    
 
82
    Added additional criteria, which ignores
 
83
    keyframe pair if success intersection factor
 
84
    is lower than current candidate pair factor.
 
85
    
 
86
    This solves issue with keyframe pair at which
 
87
    most of the tracks are intersecting behind the
 
88
    camera is accepted (because variance in this
 
89
    case is really small),
 
90
    
 
91
    Also tweaked generalized inverse function,
 
92
    which now doesn't scale epsilon by maximal
 
93
    matrix element. This gave issues at really bad
 
94
    candidates with unstable covariance. In this
 
95
    case almost all eigen values getting zeroed
 
96
    on inverse leading to small expected error.
 
97
 
 
98
commit f3eb090f7240f86799099fe86ce9386eb2bd3007
 
99
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
100
Date:   Fri May 10 17:59:40 2013 +0600
 
101
 
 
102
    Keyframe selection code cleanup
 
103
    
 
104
    - Updated comments in code.
 
105
    - Removed currently unused functions.
 
106
      Actually, they'd better be moved to some generic
 
107
      logging module, but we don't have it now so was
 
108
      lazy to create one now. Could happen later using
 
109
      code from git history
 
110
    - Renamed function to match better to what's going
 
111
      on in it.
 
112
 
 
113
commit b917b48bd877eedd17dec907cacf0b27a36e717d
 
114
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
115
Date:   Fri May 10 17:44:49 2013 +0600
 
116
 
 
117
    Optimization for reconstruction variance
 
118
    
 
119
    Achieved by replacing SVD-based pseudo-inverse with
 
120
    an eigen solver pseudo inverse.
 
121
    
 
122
    New function works in the same way: it decomposes
 
123
    matrix to V*D*V^-1, then inverts diagonal of D
 
124
    and composes matrix back.
 
125
    
 
126
    The same way is used to deal with gauges - last
 
127
    7 eigen values are getting zeroed.
 
128
    
 
129
    In own tests gives approx 2x boost, without
 
130
    visible affect on selected keyframe quality.
 
131
 
 
132
commit 041b4b54fff66311347a307a5922c2516c76ee44
 
133
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
134
Date:   Thu Mar 14 14:53:42 2013 +0600
 
135
 
 
136
    Initial commit of reconstruction variance criteria
 
137
    which is an addition for GRIC-based keyframe selection.
 
138
    
 
139
    Uses paper Keyframe Selection for Camera Motion and Structure
 
140
    Estimation from Multiple Views,
 
141
    ftp://ftp.tnt.uni-hannover.de/pub/papers/2004/ECCV2004-TTHBAW.pdf
 
142
    as a basis.
 
143
    
 
144
    Currently implemented camera positions reconstructions,
 
145
    bundle positions estimation and bundle adjustment step.
 
146
    
 
147
    Covariance matrix is estimating using generalized inverse
 
148
    with 7 (by the number of gauge freedoms) zeroed eigen values
 
149
    of J^T * J.
 
150
    
 
151
    Additional changes:
 
152
    - Added utility function FundamentalToEssential to extract
 
153
      E from F matrix, used by both final reconstruction pipeline
 
154
      and reconstruction variance code.
 
155
    
 
156
    - Refactored bundler a bit, so now it's possible to return
 
157
      different evaluation data, such as number of cameras and
 
158
      points being minimized and also jacobian.
 
159
    
 
160
      Jacobian currently contains only camera and points columns,
 
161
      no intrinsics there yet. It is also currently converting to
 
162
      an Eigen dense matrix. A bit weak, but speed is nice for
 
163
      tests.
 
164
    
 
165
      Columns in jacobian are ordered in the following way:
 
166
      first columns are cameras (3 cols for rotation and 3 cols
 
167
      for translation), then goes 3D point columns.
 
168
    
 
169
    - Switched F and H refining to normalized space. Apparently,
 
170
      refining F in pixel space squeezes it a lot making it wrong.
 
171
    
 
172
    - EuclideanIntersect will not add point to reconstruction if
 
173
      it happened to be behind the camera.
 
174
    
 
175
    - Cleaned style a bit.
 
176
 
 
177
commit 94c4654f1145f86779bd0a7e8cda1fd2c751d27d
 
178
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
179
Date:   Fri May 10 13:27:21 2013 +0600
 
180
 
 
181
    Left extra debugging print in reconstruction scale by accident.
 
182
 
 
183
commit 3886b488575ec5e79debce7b9f2e9824f5297c0f
 
184
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
185
Date:   Fri May 10 12:23:03 2013 +0600
 
186
 
 
187
    Add check for points behind camera in euclidan BA cost functor
 
188
    
 
189
    In cases keyframes are no so good, algebraic two frames construction
 
190
    could produce result, for which more aggressive Ceres-based BA code
 
191
    will fall to a solution for which points goes behind the camera,
 
192
    which is not so nice.
 
193
    
 
194
    Seems in newer Ceres returning false from cost functor wouldn't
 
195
    abort solution, but will restrict solver from moving points behind
 
196
    the camera.
 
197
    
 
198
    Works fine in own tests, but requires more tests.
 
199
 
 
200
commit a5699d7dbe126024673f51aaa570f9f244f8da2f
 
201
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
202
Date:   Wed Apr 24 22:06:38 2013 +0600
 
203
 
 
204
    Forgot to add reconstruction scale to CMakeLists
 
205
 
 
206
commit 2b7d2b44e6446bbcc23038f5dbb824feca888069
 
207
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
208
Date:   Wed Apr 24 19:40:39 2013 +0600
 
209
 
 
210
    Reconstructed scene scale ambiguity improvement
 
211
    
 
212
    Added a function EuclideanScaleToUnity() which is
 
213
    aimed to solve scale ambiguity by scaling solution
 
214
    in a way cameras centers variance in unity.
 
215
    
 
216
    Currently only available for euclidean pipeline,
 
217
    projective one is not finished anyway.
 
218
 
 
219
commit ed1f650576dc6f5b648a026a2861c54827b0f5c9
 
220
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
221
Date:   Tue Apr 23 01:41:29 2013 +0600
 
222
 
 
223
    Use epsilon in modal solver test
 
224
    
 
225
    Default epsilon for isApprox was too small,
 
226
    leading to some false test failures.
 
227
 
 
228
commit c44679a9a0fafdde6a0a22e7e5c8496fc9c93cd0
 
229
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
230
Date:   Tue Apr 23 01:35:56 2013 +0600
 
231
 
 
232
    Update Ceres to current HEAD
 
233
    
 
234
    Brings optimization for DENSE_NORMAL_CHOLESKY and
 
235
    also fixes threading issues with BLAS.
 
236
 
 
237
commit 03cbc88ce7f51aa26ba503acea2e984bcb78873c
 
238
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
239
Date:   Mon Apr 15 05:35:33 2013 +0600
 
240
 
 
241
    Fix for bundle adjusting with motion restricted
 
242
    
 
243
    Was a bug introduced in previous commit, which
 
244
    was trying to set parameterization for non-existing
 
245
    camera->t parameter block.
 
246
    
 
247
    Replaced with subset parameterization.
 
248
    
 
249
    Also added basic synthetic unit test for modal solver.
 
250
 
 
251
commit c78a68f980e778d40ce836fa1d7471cb7264d4a0
 
252
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
253
Date:   Mon Apr 8 23:33:20 2013 +0600
 
254
 
 
255
     Bundle adjustment improvements
 
256
    
 
257
    - Get rid of rotation matrix parameterization,
 
258
      use angle-axis instead.
 
259
    
 
260
      Also Joined rotation and translation into
 
261
      a single parameter block.
 
262
    
 
263
      This made minimization go significantly faster,
 
264
      like 1.3x times in average.
 
265
    
 
266
    - Fix first camera when bundling. This is to
 
267
      address orientation ambiguity.
 
268
    
 
269
      Reconstruction result could still vary in
 
270
      size, but that's another issue to be addressed
 
271
      later.
 
272
    
 
273
    Additional change:
 
274
    
 
275
    Split EuclideanBundleCommonIntrinsics into
 
276
    smaller functions, so it's now a bit easier
 
277
    to follow.
 
278
 
 
279
commit 28c7566629c2cf5b03a787c9509856e87472eb2f
 
280
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
281
Date:   Mon Apr 8 23:31:57 2013 +0600
 
282
 
 
283
    Update Ceres to current HEAD
 
284
    
 
285
    Brings up some noticeable speed improvements. In particular
 
286
    the automatic differentiation and bundle adjustment solvers.
 
287
 
 
288
commit efde9faa21e70b031d3cbcb2dcdcd38e597bf56e
 
289
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
290
Date:   Mon Apr 8 02:21:26 2013 +0600
 
291
 
 
292
    Corrected path to gflags
 
293
    
 
294
    Currently tools/track.cc is not used, but let's
 
295
    keep things a bit more up-to-date :)
 
296
 
 
297
commit f8b5ea196fb00ab07d577e9738a60cdd1de16509
 
298
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
299
Date:   Mon Apr 8 02:17:16 2013 +0600
 
300
 
 
301
    Re-enable tests for multiview and image
 
302
    
 
303
    For as long code is in repo and used by some tools
 
304
    better to have it covered by tests.
 
305
    
 
306
    Some of them are failing tho, but that's completely
 
307
    different story to be addressed later.
 
308
 
 
309
commit d2a7ee60a5845738f76b88bfc373eefc2cc8501a
 
310
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
311
Date:   Mon Apr 8 02:10:07 2013 +0600
 
312
 
 
313
    Do not modify cache's CMAKE_CXX_FLAGS_RELEASE when configuring Ceres
 
314
    
 
315
    Otherwise you'll have infinite appending of Ceres-specific flags
 
316
    on every saving of any CmakeLists.txt.
 
317
 
 
318
commit 45edb507bf46194dd55b7fc46a7d90ee3853834d
 
319
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
320
Date:   Sun Apr 7 21:53:23 2013 +0600
 
321
 
 
322
    Fixed compilation with BUILD_TOOLS enabled
 
323
    
 
324
    This commit mainly reverts parts of following commits:
 
325
        0eebc21db831211738acc938566bbc29d68d45db
 
326
        d8109b7a4fede1660e0dbd73735f1a9e3fd79eec
 
327
        e59595806c045916ab4ef15ef7047c1a728b2da9
 
328
        2d6cd58ee1cd7c5073980f358c71b2898ad16b4c
 
329
    
 
330
    They declared  lots of stuff deprecated, but in
 
331
    fact it's not deprecated just a bit different
 
332
    usage pipeline. Anyway, deprecation shall not
 
333
    happen spontaneously as a part of other changes.
 
334
    And for sure shall not break anything.
 
335
 
 
336
commit 7a9c83d3ccaa2f0015f88b9156d7662c46244b4a
 
337
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
338
Date:   Sat Apr 6 20:49:05 2013 +0600
 
339
 
 
340
    Revert "Change libmv's bilinear sampling to assume the same"
 
341
    
 
342
    Revert changes to bilinear sampler which were originally
 
343
    aimed to match blender's pixel center (where integer coord
 
344
    is a left-bottom corner, x.5 coords are centers.
 
345
    
 
346
    The reason of revert is changing this assumption in only
 
347
    sampler didn't work well and lead to wrong results of
 
348
    BlurredImageAndDerivativesChannels for example.
 
349
    
 
350
    Discovered when was doing unit-tests for brute region tracker.
 
351
    
 
352
    This reverts commit daa354c0735b954b0cd7725626e9a3d67416d46b.
 
353
 
 
354
commit 15f3bb00340933ce753a1a55e9cde9383352e259
 
355
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
356
Date:   Sat Apr 6 18:37:37 2013 +0600
 
357
 
 
358
    Added basic test for brute region tracker
 
359
    
 
360
    It is failing at this moment and this is caused because
 
361
    of how SampleLinear works - seems it's assumption about
 
362
    pixel center is not correct for internal sampling.
 
363
 
 
364
commit 1146602972c07e99a9e4ab37d35ac83aec490e60
 
365
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
366
Date:   Sat Apr 6 16:54:08 2013 +0600
 
367
 
 
368
    Tweak to KLT region tracker test
 
369
    
 
370
    KLT is usually used to track relatively small
 
371
    motions, and in this case motion almost equals
 
372
    to half window size. This confuses math and
 
373
    leads to not so much expected result.
 
374
    
 
375
    Further, not actually sure this is nice idea
 
376
    to use KLT in such synthetic case.
 
377
 
 
378
commit 1e22cbcac480863b6b5abc5c85f23dc70748933a
 
379
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
380
Date:   Sat Apr 6 16:40:59 2013 +0600
 
381
 
 
382
    Pyramid tracker unit test fix
 
383
    
 
384
    Issue was caused by trackers modifying guessed
 
385
    point location even in case of failure. So made
 
386
    id so both level 0 and level 3 of pyramid are
 
387
    starting from the same initial guessed location.
 
388
    
 
389
    Modifying locations in case tracker returns false
 
390
    is not actually a bug - someone could still want
 
391
    to use that location. False in this case  means
 
392
    more like "returned location is not so much
 
393
    accurate".
 
394
 
 
395
commit 3ad5e0efa071f202ee7c2034d70dd97aa62b13aa
 
396
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
397
Date:   Sat Apr 6 00:38:40 2013 +0600
 
398
 
 
399
    Intersect unit test fix
 
400
    
 
401
    EuclideanIntersect is not aware of camera calibration
 
402
    matrix yet and always assumes it to be an identity.
 
403
    
 
404
    So using non-identity matrix to construct sample case
 
405
    leads to wrong projection results.
 
406
    
 
407
    For now made it so test case uses identity matrix for
 
408
    calibration.
 
409
    
 
410
    Also fixed variable shadowing which lead to wrong
 
411
    markers positions (were either zero or undefined).
 
412
 
 
413
commit 3a153c2b65f38653a36c36975018f68d42d60670
 
414
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
415
Date:   Sat Apr 6 00:12:12 2013 +0600
 
416
 
 
417
    Camera intrinsics unit tests fixes
 
418
    
 
419
    - Existing test ApplyIsInvertibleSimple was not
 
420
      doing right thing - distortion model used there
 
421
      was ininvertible.
 
422
    
 
423
      Tweaked parameters in a way model is invertible now.
 
424
    
 
425
    - Added some own tests which tests;
 
426
    
 
427
      * Principal point always maps from pixel space to
 
428
        zero normalized position.
 
429
    
 
430
      * Some basic tests to check whether individual
 
431
        apply/invert works correct.
 
432
 
 
433
commit e3b2bccba6145290738a6677c14f7369ec7a38cd
 
434
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
435
Date:   Thu Apr 4 02:59:58 2013 +0600
 
436
 
 
437
    Suppress strict compiler warnings in glags/glog libraries
 
438
 
 
439
commit 5fca459adcf0a3419fa9cd8d983dc2c952d02647
 
440
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
441
Date:   Thu Apr 4 01:20:18 2013 +0600
 
442
 
 
443
    Lint cleanup, mostly white space and line width.
 
444
    
 
445
    Also moved own includes to the top of files.
 
446
    
 
447
    Should be no functional changes :)
 
448
 
 
449
commit 9a9dd458a622928b91dbd3c79900577923283838
 
450
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
451
Date:   Fri Mar 29 00:20:29 2013 +0600
 
452
 
 
453
    Fix for TransformTracks in uncalibrated pipeline
 
454
    
 
455
    Transformation matrix was completely ignored by
 
456
    TransformTracks() and final marker coordinate
 
457
    exactly matched it's source coordinates.
 
458
    
 
459
    Seems to be just a typo in vector usage: need to
 
460
    use "b" (which is transformed one) instead of "a"
 
461
    when converting projective coordinate to 2D space.
 
462
 
 
463
commit d35766cc9901609e32f4d80faba715695bea3c40
 
464
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
465
Date:   Fri Mar 29 00:19:11 2013 +0600
 
466
 
 
467
    Revert part of e2eb58c4230f94ef0c72fb4005e5434088d52e80
 
468
    
 
469
    That commit included one change which shall have been
 
470
    go as separate commit with more detailed description.
 
471
 
 
472
commit e8d71b4e96fd78eb60773b6557d66da672e65753
 
473
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
474
Date:   Wed Mar 27 20:37:05 2013 +0600
 
475
 
 
476
    Silenced more warnings
 
477
    
 
478
    - Added includes of own header to fast implementation files.
 
479
    
 
480
    - Camera intrinsics wouldn't complain about unknown pragma when
 
481
      building without OpenMP support.
 
482
    
 
483
    TODO: Make it a CMake option to build libmv with OpenMP support.
 
484
          Currently multi-threaded intrinsics only available when
 
485
          using custom CMake rules for bundled libmv version
 
486
          (as it's done in Blender).
 
487
 
 
488
commit ad442812654f270dc088394410fda1b81b8dc450
 
489
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
490
Date:   Wed Mar 27 20:18:51 2013 +0600
 
491
 
 
492
    Multithreaded camera intrinsics
 
493
    
 
494
    Implemented multithreaded buffer (un)distortion
 
495
    for camera intrinsics using OpenMP.
 
496
    
 
497
    By default, (un)distortion is single-threaded,
 
498
    but it is possible to as CameraIntrinsics to
 
499
    use more threads by calling SetThreads method.
 
500
 
 
501
commit c88b4881096174a16a9f9e6fc2c9dcad3e255b25
 
502
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
503
Date:   Wed Mar 27 18:45:09 2013 +0600
 
504
 
 
505
    Movie functions implementation from panography header
 
506
    into own CC implementation file.
 
507
    
 
508
    Before this all panography functions were declared as
 
509
    static, which is not so much useful from re-useability
 
510
    point of view.
 
511
 
 
512
commit 2d2faf9104bc035722cff6775e1b8e7c93143aba
 
513
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
514
Date:   Wed Mar 27 18:37:36 2013 +0600
 
515
 
 
516
    Build shared Ceres library only if BUILD_SHARED_LIBS is enabled
 
517
 
 
518
commit daa3ddd3260ccaf2bf9c72eadb89213d91e549ec
 
519
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
520
Date:   Wed Mar 27 18:21:52 2013 +0600
 
521
 
 
522
    Update Ceres to upstream version 1.5.0
 
523
 
 
524
commit cf5dc678878345ea3f221ce50cb2b9e539c2ab38
 
525
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
526
Date:   Wed Mar 27 15:06:24 2013 +0600
 
527
 
 
528
    Code cleanup: removed more deprecated FFmpeg API usage
 
529
    
 
530
    This time in qt-tracker application.
 
531
 
 
532
commit e2eb58c4230f94ef0c72fb4005e5434088d52e80
 
533
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
534
Date:   Tue Mar 26 17:19:51 2013 +0600
 
535
 
 
536
    Code cleanup: silent unused variables warnings
 
537
 
 
538
commit af89bb24667e39b7e655173ea807fdcfbeef4422
 
539
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
540
Date:   Tue Mar 26 16:54:14 2013 +0600
 
541
 
 
542
    Code cleanup: no need to declare empty body for ProgressUpdateCallback:invoke
 
543
    
 
544
    Make force this method to be overridden by derivative classes.
 
545
    Also removed currently unneeded callbacks.cc.
 
546
 
 
547
commit 0441d4ee06fad0219256a5704f931eec916a3868
 
548
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
549
Date:   Tue Mar 26 16:37:27 2013 +0600
 
550
 
 
551
    Code cleanup: silent type narrowing in qt-tracker
 
552
 
 
553
commit cd4b61c976448d0fdedefb3ed4b21d70e078f94b
 
554
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
555
Date:   Tue Mar 26 16:26:39 2013 +0600
 
556
 
 
557
    Changes to unit testing
 
558
    
 
559
    - Move ceres test binaries to ${LIBMV_TESTS_OUTPUT_DIR}/ceres,
 
560
      so they don't mess with libmv's application binaries and
 
561
      tests.
 
562
    
 
563
    - Removed ceres_ prefix from ceres unit tests, only use this
 
564
      prefix for targets (targets need to be unique name).
 
565
    
 
566
    - Added unit tests data for ceres, otherwise system_test fails.
 
567
    
 
568
    - Restored "test" makefile target.
 
569
 
 
570
commit cf704ada08acc8b26167e7bfb3e1e88fd278de23
 
571
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
572
Date:   Tue Mar 26 15:01:15 2013 +0600
 
573
 
 
574
    Code cleanup: use rw-rw-r-- mode for source files
 
575
 
 
576
commit 64b31e3e43acb52aaf6f591b9d1c2449bf6ef3bd
 
577
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
578
Date:   Tue Mar 26 14:57:46 2013 +0600
 
579
 
 
580
    Code cleanup: don't use deprecated FFmpeg API functions
 
581
 
 
582
commit 2a3676499548ad5dba5a5c5eadf3bb71e640b612
 
583
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
584
Date:   Tue Mar 5 17:40:52 2013 +0600
 
585
 
 
586
    Switch from DENSE_NORMAL_CHOLESKY to DENSE_QR
 
587
    
 
588
    DENSE_QR is better behaved numerically and after recent
 
589
    changes from Sameer there's no big difference in speed.
 
590
 
 
591
commit bcb920df02133da5b7e55fbc74edb9222004eecc
 
592
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
593
Date:   Tue Mar 5 17:15:43 2013 +0600
 
594
 
 
595
    Update Ceres to 1.5RC3
 
596
    
 
597
    It brings optimization of DENSE_QR and DENSE_SCHUR solvers.
 
598
 
 
599
commit 473996468a4e67e7c860169181a4ff31ce9b8c80
 
600
Author: Sergey Sharybin <sergey.vfx@gmail.com>
 
601
Date:   Fri Mar 1 17:44:54 2013 +0600
 
602
 
 
603
    Fixed incorrect order of arguments passing
 
604
    to EXPECT_EQ in keyframe selection tests.