Alex Leontiev [Tue, 30 Jul 2013 01:14:36 +0000 (04:14 +0300)]
Minor fixes
Request to comments on pull request for simplex method. In particular
*) while(1) is replaced with for(;;)
*) if(true){...} constructions in tests are replaced with #if 1 ...
#endif
Alex Leontiev [Thu, 25 Jul 2013 11:30:20 +0000 (14:30 +0300)]
Minor fixes
Fixing failed build.
Alex Leontiev [Sat, 20 Jul 2013 12:14:02 +0000 (15:14 +0300)]
Eliminated all the calls to std::find()
This is done by keeping indexToRow vector, that keeps the information,
opposite to those kept by N and B. That is, while N and B help to
determine which variable corresponds to given column in column-vector c
or row in matrix b, indexToRow helps to determine the corresponding
row/column for a given variable.
At this point, I'm waiting for comments from pull request reviewer and
not working on any upgrades. Comments are appreciated, as usual.
Alex Leontiev [Fri, 19 Jul 2013 09:34:33 +0000 (12:34 +0300)]
Simplify printing procedures
Use opencv's print() procedure in place of my own procedures to output
matrices and std::vectors.
Interestingly enough, operator<< does not work for matrices, when called
from my .cpp files in src/ subfolder of the optim module, although it
works when called from tests and stand-alone programs, compiled with
opencv. I think, this requires investigation and, maybe, bug report.
Alex Leontiev [Fri, 19 Jul 2013 00:09:39 +0000 (03:09 +0300)]
Minor fixes
In request to the comments for the pull request.
Alex Leontiev [Thu, 11 Jul 2013 19:05:14 +0000 (22:05 +0300)]
Convenience fixes
Attempting to fix issues pointed out by Vadim Pisarevsky during the pull
request review. In particular, the following things are done:
*) The mechanism of debug info printing is changed and made more
procedure-style than the previous macro-style
*) z in solveLP() is now returned as a column-vector
*) Func parameter of solveLP() is now allowed to be column-vector, in
which case it is understood to be the transpose of what we need
*) Func and Constr now can contain floats, not only doubles (in the
former case the conversion is done via convertTo())
*)different constructor to allocate space for z in solveLP() is used,
making the size of z more explicit (this is just a notation change, not
functional, both constructors are achieving the same goal)
*) (big) mat.hpp and iostream headers are moved to precomp-headers from
optim.hpp
Alex Leontiev [Thu, 11 Jul 2013 11:43:48 +0000 (14:43 +0300)]
Fixing the warnings
Fixed all of the warnings.
Alex Leontiev [Thu, 11 Jul 2013 09:29:55 +0000 (12:29 +0300)]
Fixed the warnings
Fixed the code so to eliminate warnings related to shadowing and unused
parameters. In some settings, these warnings may be treated as an errors
and lead to failed build.
Suggested by Nikita Manovich.
Alex Leontiev [Thu, 11 Jul 2013 06:52:13 +0000 (09:52 +0300)]
Fix qualifiers on aux functions for solveLP()
Change qualifiers on auxiliary functions (for solveLP() procedure) from
const (that does not have much sense) to static (that makes them
invisible for outside world and hopefully exacerbates optimization).
Alex Leontiev [Thu, 11 Jul 2013 06:31:10 +0000 (09:31 +0300)]
Preparation for pull request
Additional cleaning for simplex method, removing the parts that are
currently unused. Removing developer's notes. Trying to reach production
level.
Alex Leontiev [Wed, 10 Jul 2013 17:11:52 +0000 (20:11 +0300)]
Cleaning the code of simplex method
In particular, the following things are done:
*) Consistent tabulation of 4 spaces is ensured
*) New function dprintf() is introduced, so now printing of the debug
information can be turned on/off via the ALEX_DEBUG macro
*) Removed solveLP_aux namespace
*) All auxiliary functions are declared as static
*) The return codes of solveLP() are encapsulated in enum.
Alex Leontiev [Wed, 3 Jul 2013 10:54:23 +0000 (13:54 +0300)]
Non-optimized simplex algorithm.
This version is supposed to work on all problems (please, let me know if
this is not so), but is not optimized yet in terms of numerical
stability and performance. Bland's rule is implemented as well, so
algorithm is supposed to allow no cycling. Additional check for multiple
solutions is added (in case of multiple solutions algorithm returns an
appropriate return code of 1 and returns arbitrary optimal solution).
Finally, now we have 5 tests.
Before Thursday we have 4 directions that can be tackled in parallel:
*) Prepare the pull request!
*) Make the code more clear and readable (refactoring)
*) Wrap the core solveLP() procedure in OOP-style interface
*) Test solveLP on non-trivial tests (possibly test against
http://www.coin-or.org/Clp/)
Alex Leontiev [Fri, 28 Jun 2013 12:28:57 +0000 (15:28 +0300)]
The first draft of simplex algorithm, simple tests.
What we have now corresponds to "formal simplex algorithm", described in
Cormen's "Intro to Algorithms". It will work *only* if the initial
problem has (0,0,0,...,0) as feasible solution (consequently, it will
work unpredictably if problem was unfeasible or did not have zero-vector as
feasible solution). Moreover, it might cycle.
TODO (first priority)
1. Implement initialize_simplex() procedure, that shall check for
feasibility and generate initial feasible solution. (in particular, code
should pass all 4 tests implemented at the moment)
2. Implement Bland's rule to avoid cycling.
3. Make the code more clear.
4. Implement several non-trivial tests (??) and check algorithm against
them. Debug if necessary.
TODO (second priority)
1. Concentrate on stability and speed (make difficult tests)
Alex Leontiev [Mon, 24 Jun 2013 17:27:11 +0000 (20:27 +0300)]
Created skeleton for simplex method.
Added LPSolver class together with two nested classes: LPFunction and
LPConstraints. These represent function to be maximized and constraints
imposed respectively. They are implementations of interfaces Function
and Constraints respectively (latter ones are nested classes of Solver
interface, which is generic interface for all optimization algorithms to
be implemented within this project).
The next step is to implement the simplex algorithm! First, we shall
implement it for the case of constraints of the form Ax<=b and x>=0.
Then, we shall extend the sets of problems that can be handled by the
conversion to the one we've handled already. Finally, we shale
concentrate on numerical stability and efficiency.
Alex Leontiev [Thu, 20 Jun 2013 11:54:09 +0000 (14:54 +0300)]
Blank module and first draft of solver API.
At this point we have a skeleton of a new module (optim) which can
barely compile properly (unlike previous commit). Besides, there is a
first draft of solver and lpsolver (linear optimization solver) in this
commit.
Alex Leontiev [Mon, 17 Jun 2013 15:16:30 +0000 (18:16 +0300)]
Starting implement simplex algorithm.
Alex Leontiev [Fri, 31 May 2013 04:39:15 +0000 (07:39 +0300)]
The initial commit for generic optimization
Generic optimization package for openCV project, will be developed
between the June and September of 2013. This work is funded by Google
Summer of Code 2013 project. This project is about
implementing several algorithms, that will find global maxima/minima of a
given function on a given domain subject to a given constraints.
All comments/suggestions are warmly appreciated and to be sent to
alozz1991@gmail.com (please, mention the word "openCV" in topic of
message, for I'm using the spam-filters)
Roman Donchenko [Wed, 29 May 2013 12:24:49 +0000 (16:24 +0400)]
Merge pull request #921 from SpecLad:merge-2.4
Roman Donchenko [Mon, 27 May 2013 12:58:04 +0000 (16:58 +0400)]
Merge remote-tracking branch 'origin/2.4' into merge-2.4
Pull requests:
#904 from ograycode:2.4
#905 from bitwangyaoyao:2.4_TVL1
#902 from apavlenko:fix_run_py
#882 from pengx17:2.4_rewrite_query_info
Conflicts:
modules/nonfree/src/surf.ocl.cpp
modules/ocl/include/opencv2/ocl/private/util.hpp
modules/ocl/src/hog.cpp
modules/ocl/src/pyrlk.cpp
modules/ocl/src/tvl1flow.cpp
Roman Donchenko [Thu, 23 May 2013 11:17:55 +0000 (15:17 +0400)]
Merge pull request #911 from jrdi:patch-1
Roman Donchenko [Thu, 23 May 2013 11:15:00 +0000 (15:15 +0400)]
Merge pull request #917 from SpecLad:cuda-4-build
Roman Donchenko [Thu, 23 May 2013 10:00:13 +0000 (14:00 +0400)]
Fix a build error which manifests when building with CUDA < 5.
Roman Donchenko [Thu, 23 May 2013 09:54:57 +0000 (13:54 +0400)]
Merge pull request #914 from SpecLad:master
Roman Donchenko [Wed, 22 May 2013 14:46:39 +0000 (18:46 +0400)]
Merge pull request #904 from ograycode:2.4
Roman Donchenko [Wed, 22 May 2013 13:21:19 +0000 (17:21 +0400)]
Merge commit '
b51a1a7d' (PR #895 from 2.4)
Conflicts:
modules/ocl/CMakeLists.txt
modules/ocl/perf/perf_color.cpp
modules/ocl/perf/perf_match_template.cpp
modules/ocl/perf/precomp.cpp
modules/ocl/perf/precomp.hpp
Jordi Villar [Wed, 22 May 2013 10:57:43 +0000 (13:57 +0300)]
fix parenthesis
Andrey Pavlenko [Wed, 22 May 2013 09:54:20 +0000 (13:54 +0400)]
Merge pull request #797 from vhdirk:installheaders
Roman Donchenko [Wed, 22 May 2013 08:57:04 +0000 (12:57 +0400)]
Merge pull request #887 from LeszekSwirski:fix-glinkedptrmutex
Roman Donchenko [Wed, 22 May 2013 08:08:16 +0000 (12:08 +0400)]
Merge pull request #905 from bitwangyaoyao:2.4_TVL1
Roman Donchenko [Wed, 22 May 2013 08:03:27 +0000 (12:03 +0400)]
Merge pull request #907 from SpecLad:master
Roman Donchenko [Tue, 21 May 2013 10:35:24 +0000 (14:35 +0400)]
Merge remote-tracking branch 'origin/2.4'
Conflicts:
3rdparty/libjasper/CMakeLists.txt
cmake/OpenCVDetectOpenCL.cmake
modules/calib3d/doc/camera_calibration_and_3d_reconstruction.rst
modules/imgproc/src/floodfill.cpp
modules/ocl/include/opencv2/ocl/ocl.hpp
modules/ocl/src/arithm.cpp
modules/ocl/src/haar.cpp
modules/ocl/src/imgproc.cpp
modules/ocl/src/initialization.cpp
modules/ocl/src/matrix_operations.cpp
modules/ocl/src/mcwutil.cpp
modules/ocl/src/opencl/arithm_bitwise_and_mask.cl
modules/ocl/src/opencl/arithm_bitwise_and_scalar_mask.cl
modules/ocl/src/opencl/arithm_bitwise_binary_mask.cl
modules/ocl/src/opencl/arithm_bitwise_binary_scalar.cl
modules/ocl/src/opencl/arithm_bitwise_binary_scalar_mask.cl
modules/ocl/src/opencl/arithm_bitwise_or.cl
modules/ocl/src/opencl/arithm_bitwise_or_scalar.cl
modules/ocl/src/opencl/arithm_bitwise_or_scalar_mask.cl
modules/ocl/src/opencl/arithm_bitwise_xor.cl
modules/ocl/src/opencl/arithm_bitwise_xor_mask.cl
modules/ocl/src/opencl/arithm_bitwise_xor_scalar.cl
modules/ocl/src/stereobm.cpp
modules/ocl/test/precomp.hpp
modules/python/src2/api
modules/ts/src/ts_func.cpp
samples/gpu/bgfg_segm.cpp
Andrey Pavlenko [Tue, 21 May 2013 10:07:31 +0000 (14:07 +0400)]
Merge pull request #902 from apavlenko:fix_run_py
Vadim Pisarevsky [Mon, 20 May 2013 10:01:03 +0000 (14:01 +0400)]
Merge pull request #882 from pengx17:2.4_rewrite_query_info
Vadim Pisarevsky [Mon, 20 May 2013 10:00:46 +0000 (14:00 +0400)]
Merge pull request #895 from bitwangyaoyao:2.4_perf
Roman Donchenko [Mon, 20 May 2013 08:11:47 +0000 (12:11 +0400)]
Merge pull request #853 from icylord:2.4
yao [Mon, 20 May 2013 06:46:17 +0000 (14:46 +0800)]
Fix the mismatch on NV GPUs
ograycode [Mon, 20 May 2013 02:04:56 +0000 (22:04 -0400)]
Simple set of the camera index to allow the user to change it after the object has been initialized.
Andrey Pavlenko [Sun, 19 May 2013 10:57:21 +0000 (14:57 +0400)]
'aapt' tool moved in SDK r22, adding support to run.py
Vadim Pisarevsky [Sat, 18 May 2013 20:23:23 +0000 (00:23 +0400)]
Merge pull request #897 from bitwangyaoyao:2.4_TVL1
Vadim Pisarevsky [Fri, 17 May 2013 10:44:49 +0000 (14:44 +0400)]
Merge pull request #896 from jet47:removed-vibe-master
yao [Fri, 17 May 2013 07:44:22 +0000 (15:44 +0800)]
fix a warning
yao [Fri, 17 May 2013 07:34:22 +0000 (15:34 +0800)]
add OpticalFlowDual_TVL1_OCL function
Vladislav Vinogradov [Thu, 16 May 2013 09:47:24 +0000 (13:47 +0400)]
removed VIBE implementation
yao [Fri, 17 May 2013 05:19:09 +0000 (13:19 +0800)]
fix the waring in gemm test
yao [Fri, 17 May 2013 05:18:46 +0000 (13:18 +0800)]
add accuracy tests while running perf
Andrey Pavlenko [Thu, 16 May 2013 14:44:06 +0000 (18:44 +0400)]
Merge pull request #892 from jet47:removed-vibe
Vladislav Vinogradov [Thu, 16 May 2013 09:47:24 +0000 (13:47 +0400)]
removed VIBE implementation
Leszek Swirski [Wed, 15 May 2013 13:42:28 +0000 (14:42 +0100)]
Fix visibility of g_linked_ptr_mutex on Windows
Reverts some changes in
b8ed00bd642971877e1dfda6e0815d7211a7ace2
Vadim Pisarevsky [Wed, 15 May 2013 10:21:49 +0000 (14:21 +0400)]
Merge pull request #885 from pengx17:2.4_bfmatcher_ocl
Vadim Pisarevsky [Wed, 15 May 2013 10:18:53 +0000 (14:18 +0400)]
Merge pull request #884 from pengx17:2.4_pyrup_fix
peng xiao [Wed, 15 May 2013 02:47:17 +0000 (10:47 +0800)]
Add BFMatcher_OCL class alias for BruteForceMatcher_OCL.
This adds a similar interface with pure-cpp and gpu versions.
peng xiao [Wed, 15 May 2013 02:43:47 +0000 (10:43 +0800)]
Clean up spaces in ocl.hpp
peng xiao [Wed, 15 May 2013 00:55:43 +0000 (08:55 +0800)]
Merge branch '2.4' of https://github.com/Itseez/opencv into 2.4_pyrup_fix
peng xiao [Wed, 15 May 2013 00:51:21 +0000 (08:51 +0800)]
Fix ocl::pyrUp
Use predefined OpenCL function to convert integers to floating points.
This is more accurate than before as it enables:
1. saturate cast
2. customized rounding
Vadim Pisarevsky [Tue, 14 May 2013 12:00:28 +0000 (16:00 +0400)]
Merge pull request #862 from piponazo:v4lFPS
Vadim Pisarevsky [Tue, 14 May 2013 11:56:55 +0000 (15:56 +0400)]
Merge pull request #818 from bitwangyaoyao:2.4_optBlur
Vadim Pisarevsky [Tue, 14 May 2013 11:56:34 +0000 (15:56 +0400)]
Merge pull request #823 from pickle27:starter_image_sequence
Vadim Pisarevsky [Tue, 14 May 2013 11:56:06 +0000 (15:56 +0400)]
Merge pull request #839 from pengx17:2.4_ocl_csbp
Vadim Pisarevsky [Tue, 14 May 2013 11:55:38 +0000 (15:55 +0400)]
Merge pull request #883 from bitwangyaoyao:2.4_fixMoments
yao [Tue, 14 May 2013 10:02:53 +0000 (18:02 +0800)]
fix black screen when input Mat is large
peng xiao [Tue, 14 May 2013 09:50:38 +0000 (17:50 +0800)]
Copy ocl::queryDeviceInfo interface from master to 2.4.
Affected functions surf.ocl, pyrlk.ocl and hog.ocl are updated with the change.
Andrey Pavlenko [Tue, 14 May 2013 07:57:24 +0000 (11:57 +0400)]
Merge pull request #878 from apavlenko:better_glue_search
Vadim Pisarevsky [Mon, 13 May 2013 19:38:26 +0000 (23:38 +0400)]
Merge pull request #849 from dominikrose:dom_2.4
Vadim Pisarevsky [Mon, 13 May 2013 19:12:25 +0000 (23:12 +0400)]
Merge pull request #872 from pengx17:2.4_create2dimage_fix
Vadim Pisarevsky [Mon, 13 May 2013 19:04:11 +0000 (23:04 +0400)]
Merge pull request #871 from bitwangyaoyao:2.4_acry
Vadim Pisarevsky [Mon, 13 May 2013 19:03:24 +0000 (23:03 +0400)]
Merge pull request #874 from pengx17:master_queryDeviceInfo_rewrite
Vadim Pisarevsky [Mon, 13 May 2013 18:36:09 +0000 (22:36 +0400)]
Merge pull request #819 from bitwangyaoyao:2.4_haarBuf
Vadim Pisarevsky [Mon, 13 May 2013 18:18:53 +0000 (22:18 +0400)]
Merge pull request #850 from SpecLad:convhull-orientation
Vadim Pisarevsky [Mon, 13 May 2013 18:08:44 +0000 (22:08 +0400)]
Merge pull request #881 from apavlenko:hidden_visibility
Andrey Pavlenko [Mon, 13 May 2013 17:22:27 +0000 (21:22 +0400)]
Merge pull request #840 from pablospe:master
Andrey Pavlenko [Mon, 13 May 2013 17:18:47 +0000 (21:18 +0400)]
Merge pull request #880 from apavlenko:qt-5.0
Andrey Pavlenko [Mon, 13 May 2013 17:17:04 +0000 (21:17 +0400)]
Merge pull request #879 from apavlenko:gcc-4.8
Vadim Pisarevsky [Mon, 13 May 2013 17:06:54 +0000 (21:06 +0400)]
Merge pull request #873 from prclibo:2.4
Andrey Kamaev [Thu, 18 Apr 2013 06:30:15 +0000 (10:30 +0400)]
Compile OpenCV with GCC visibility set to hidden
Andrey Kamaev [Wed, 17 Apr 2013 18:02:01 +0000 (22:02 +0400)]
Update CMake scripts to recognize Qt 5.0
Andrey Kamaev [Wed, 17 Apr 2013 18:01:03 +0000 (22:01 +0400)]
Fix build warnings from gcc 4.8
Andrey Kamaev [Wed, 17 Apr 2013 12:55:05 +0000 (16:55 +0400)]
Improve handling of native_app_glue dependency in Android samples
yao [Mon, 13 May 2013 07:04:23 +0000 (15:04 +0800)]
fix the warnings in fft tests
Vadim Pisarevsky [Sun, 12 May 2013 18:16:03 +0000 (22:16 +0400)]
Merge pull request #864 from pengx17:2.4_stereobm
Vadim Pisarevsky [Sun, 12 May 2013 18:15:47 +0000 (22:15 +0400)]
Merge pull request #877 from apavlenko:version_info_in_test_log
Andrey Pavlenko [Sun, 12 May 2013 14:36:55 +0000 (18:36 +0400)]
adding version info to test log
Vadim Pisarevsky [Sun, 12 May 2013 09:00:23 +0000 (13:00 +0400)]
Merge pull request #841 from Pastafarianist:patch-1
Vadim Pisarevsky [Sun, 12 May 2013 08:54:44 +0000 (12:54 +0400)]
Merge pull request #845 from githubuser0xFFFF:master
Vadim Pisarevsky [Sun, 12 May 2013 08:54:24 +0000 (12:54 +0400)]
Merge pull request #848 from pengx17:master_ocl_platform_name
Vadim Pisarevsky [Sun, 12 May 2013 08:53:14 +0000 (12:53 +0400)]
Merge pull request #861 from albenoit:master
Vadim Pisarevsky [Sun, 12 May 2013 08:52:45 +0000 (12:52 +0400)]
Merge pull request #867 from Pastafarianist:patch-2
yao [Thu, 9 May 2013 09:57:13 +0000 (17:57 +0800)]
fix warnings, unify test names
peng xiao [Thu, 9 May 2013 09:19:51 +0000 (17:19 +0800)]
Let surf.ocl use the new queryDeviceInfo interface.
peng xiao [Thu, 9 May 2013 09:15:26 +0000 (17:15 +0800)]
Rewrite queryDeviceInfo interface.
Previously the function may cause some unsafe issue. It is fixed now by introducing a template parameter.
Bo Li [Thu, 9 May 2013 07:20:00 +0000 (15:20 +0800)]
fixed pca bug for fixed mean input
peng xiao [Thu, 9 May 2013 06:00:36 +0000 (14:00 +0800)]
Fix ocl moudle build with latest Intel OpenCL SDK.
We found that cl.h file provided in latest Intel SDK muted deprecated interfaces.
peng xiao [Wed, 8 May 2013 09:29:24 +0000 (17:29 +0800)]
Optimize stereobm a bit.
Speedup about 30% on 6730M GPU.
peng xiao [Wed, 8 May 2013 09:19:34 +0000 (17:19 +0800)]
CL_PLATFORM_VENDOR should be CL_PLATFORM_NAME.
yao [Wed, 8 May 2013 09:07:44 +0000 (17:07 +0800)]
use clean EXPECT_MAT_NEAR (no string output)
yao [Wed, 8 May 2013 08:08:33 +0000 (16:08 +0800)]
further simplify the logics in filter tests
yao [Wed, 8 May 2013 07:27:35 +0000 (15:27 +0800)]
remove interpolation.hpp
yao [Wed, 8 May 2013 07:21:53 +0000 (15:21 +0800)]
add copyrights
yao [Wed, 8 May 2013 07:12:12 +0000 (15:12 +0800)]
simplify logics in filter tests, remove redundant code in arithm tests
Andrey Pavlenko [Tue, 7 May 2013 13:00:29 +0000 (17:00 +0400)]
Merge pull request #866 from MadEgg:RetrieveFrame_index_argument
Vadim Pisarevsky [Tue, 7 May 2013 12:39:49 +0000 (16:39 +0400)]
Merge pull request #865 from pengx17:2.4_ocl_ver