Commit Graph

590 Commits

Author SHA1 Message Date
Hannah McLaughlin
418898029c Merge pull request #13718 from lochsh:svm-sigmoid-fix
SVM sigmoid kernel fix (issue #13621) (#13718)

* Added test for sigmoid case for retrieving support vectors

* undo unhelpful test

* add test for sigmoid SVM with data that is easily separable into two concentric circles

* Update sigmoid kernel to use tanh(gamma * <x, y> + coef0) instead of -tanh(gamma * <x, y> + coef0)

* remove unnecessary constraint on coef0

* cleanup

* fixing inappropriate use of doubles

* Add f to float literal

* replace CV_Assert with ASSERT_EQ where appropriate
2019-01-31 15:34:36 +03:00
Vadim Pisarevsky
0f622206e4
completely new C++ persistence implementation (#13011)
* integrated the new C++ persistence; removed old persistence; most of OpenCV compiles fine! the tests have not been run yet

* fixed multiple bugs in the new C++ persistence

* fixed raw size of the parsed empty sequences

* [temporarily] excluded obsolete applications traincascade and createsamples from build

* fixed several compiler warnings and multiple test failures

* undo changes in cocoa window rendering (that was fixed in another PR)

* fixed more compile warnings and the remaining test failures (hopefully)

* trying to fix the last little warning
2018-11-02 00:27:06 +03:00
Vadim Pisarevsky
b01f63835e Merge pull request #12467 from alalek:core_use_shared_ptr 2018-09-10 13:59:14 +00:00
Alexander Alekhin
dca657a2fd Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-09-10 00:10:21 +03:00
Alexander Alekhin
df8b057b44 avoid Ptr<> == NULL checks 2018-09-09 19:30:46 +00:00
Hamdi Sahloul
a39e0daacf Utilize CV_UNUSED macro 2018-09-07 20:33:52 +09:00
Alexander Alekhin
d74b98c3d9 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-09-04 18:39:03 +00:00
Jakub Golinowski
9f1218b00b Merge pull request #11897 from Jakub-Golinowski:hpx_backend
* Add HPX backend for OpenCV implementation
Adds hpx backend for cv::parallel_for_() calls respecting the nstripes chunking parameter. C++ code for the backend is added to modules/core/parallel.cpp. Also, the necessary changes to cmake files are introduced.
Backend can operate in 2 versions (selectable by cmake build option WITH_HPX_STARTSTOP): hpx (runtime always on) and hpx_startstop (start and stop the backend for each cv::parallel_for_() call)

* WIP: Conditionally include hpx_main.hpp to tests in core module
Header hpx_main.hpp is included to both core/perf/perf_main.cpp and core/test/test_main.cpp.
The changes to cmake files for linking hpx library to above mentioned test executalbles are proposed but have issues.

* Add coditional iclusion of hpx_main.hpp to cpp cpu modules

* Remove start/stop version of hpx backend
2018-08-31 16:23:26 +03:00
berak
e13f6ded7f ml: fix adjusting K in KNearest (#12358) 2018-08-31 16:07:53 +03:00
Alexander Alekhin
7d4bb9428b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-08-20 19:30:18 +03:00
Alexander Alekhin
6e84abc746 ml: don't use "getSubVector()" with 2D matrix
It is designed for 1D vectors only
2018-08-18 20:50:36 +00:00
Alexander Alekhin
7ee69740e8 ml(test): test different samples layout of TrainData 2018-08-17 16:57:20 +03:00
Alexander Alekhin
4eb2966559 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-08-07 20:12:10 +03:00
luz.paz
2003eb1b9b Misc. typos
Found via `codespell -q 3 -I ../opencv-whitelist.txt --skip="./3rdparty"`
2018-07-31 18:44:23 +03:00
Alexander Alekhin
9787ab598b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-07-24 22:48:54 +03:00
Maksim Shabunin
cbb1e867e5 More issues found by static analysis 2018-07-24 16:04:42 +03:00
Alexander Alekhin
4560909a5e Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-07-17 19:27:48 +03:00
Maksim Shabunin
1da46fe6fb Fixed issues found by static analysis (mostly DBZ) 2018-07-17 16:14:54 +03:00
Alexander Alekhin
2da96be217 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-07-09 19:44:51 +03:00
Alexander Alekhin
b09a4a98d4 opencv: Use cv::AutoBuffer<>::data() 2018-07-04 19:11:29 +03:00
Alexander Alekhin
68c92908d5 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-05-14 15:17:35 +03:00
Alexander Alekhin
d1d7408a20 Merge pull request #11502 from berak:fix_knearest 2018-05-11 11:47:13 +00:00
berak
9b0ef7bb17 ml: fix caching of internal state when changing the impl in KNearest 2018-05-11 12:20:17 +02:00
Alexander Alekhin
cd2b188c9a Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-04-24 18:13:06 +03:00
Alexander Alekhin
6b581c4e51 build: unreachable code after CV_Error() (part 2) 2018-04-24 16:03:40 +03:00
berak
fc5bba66af ml: refactor non-virtual methods 2018-04-24 13:23:27 +02:00
Alexander Alekhin
2385a5870e next(ml): eliminate dummy interface class ANN_MLP_ANNEAL 2018-04-10 18:09:54 +03:00
lopespt
65d816c3b5 Adds efficient sort algorithm to KNearest 2018-04-04 09:35:58 -03:00
Alexander Alekhin
4d0dd3e509 ml: apply CV_OVERRIDE/CV_FINAL 2018-03-28 18:43:27 +03:00
Vadim Pisarevsky
284e5231c5 Merge pull request #11171 from codingforfun:fix_11143 2018-03-28 12:47:37 +00:00
codingforfun
24e2e0d3f9 #11143 [FIX] Normalize node risk with sample weight sum
In case of regression trees, node risk is computed as sum of squared
error. To get a meaningfull value to compare with it needs to be
normalized to the number of samples in the node (or more generally to
the sum of sample weights in this node). Otherwise the sum of squared
error is highly dependend on the number of samples in the node and
comparision with `regressionAccuracy` parameter is not very meaningful.

After normalization `node_risk` means in fact sample variance for all
samples in the node, which makes much more sence and seams to be what
was originaly intended by the code given that node risk is later used as
a split termination criteria by
```
sqrt(node.node_risk) < params.getRegressionAccuracy()
```
2018-03-27 15:39:36 +02:00
Maksim Shabunin
92e9d4ec3a Fixed several issues detected by static analysis 2018-02-22 17:11:33 +03:00
Alexander Alekhin
12d2bd4adb ml: refactor ML_ANN test 2018-02-19 21:35:48 +03:00
luz.paz
e805a55a5b Misc. modules/ typos (cont.)
Found via `codespell`
2018-02-12 10:15:36 -05:00
Alexander Alekhin
4a297a2443 ts: refactor OpenCV tests
- removed tr1 usage (dropped in C++17)
- moved includes of vector/map/iostream/limits into ts.hpp
- require opencv_test + anonymous namespace (added compile check)
- fixed norm() usage (must be from cvtest::norm for checks) and other conflict functions
- added missing license headers
2018-02-03 19:39:47 +00:00
Alexander Alekhin
00e43a9022 ml(ANN_MLP): ensure that train() call is always successful 2017-12-22 18:50:04 +00:00
Alexander Alekhin
289a8da39e ml: simplify interfaces of SimulatedAnnealingSolver 2017-12-22 16:35:48 +03:00
LaurentBerger
e43997dbb5 Calcerror uses now weighted samples (#10346)
* Calcerror uses now sample weights

* catree comment in #10319
2017-12-20 17:24:46 +03:00
Alexander Alekhin
aef3019152 ml: fix SimulatedAnnealingSolver interface 2017-12-15 21:44:32 +03:00
catree
0a439570a0 Move SimulatedAnnealingSolver::Impl in cpp file. Fix some typos. 2017-12-15 14:09:59 +01:00
LaurentBerger
7ad308ea47 Simulated Annealing for ANN_MLP training method (#10213)
* Simulated Annealing for ANN_MLP training method

* EXPECT_LT

* just to test new data

* manage RNG

* Try again

* Just run buildbot with new data

* try to understand

* Test layer

* New data- new test

* Force RNG in backprop

* Use Impl to avoid virtual method

* reset all weights

* try to solve ABI

* retry

* ABI solved?

* till problem with dynamic_cast

* Something is wrong

* Solved?

* disable backprop test

* remove ANN_MLP_ANNEALImpl

* Disable weight in varmap

* Add example for SimulatedAnnealing
2017-12-15 13:57:39 +03:00
Vadim Pisarevsky
614e254331 Merge pull request #10170 from LaurentBerger:Issue10166 2017-11-29 09:51:20 +00:00
LaurentBerger
a44573c43b Add ReLU and LeakyReLU activation function in ml module 2017-11-28 11:02:05 +01:00
LaurentBerger
606a5fd537 Try to solve issue 10166 2017-11-27 13:13:05 +01:00
LaurentBerger
b9cf65e905 Parallel version of calcError in statmodel 2017-11-09 21:29:06 +01:00
Vadim Pisarevsky
70c5d69640 Merge pull request #9310 from r2d3:svm_parallel 2017-09-18 09:32:41 +00:00
Vadim Pisarevsky
42cd061af0 Merge pull request #9581 from sovrasov:rtree_disable_cv 2017-09-13 13:20:52 +00:00
Maksim Shabunin
248e2c7d47 Fixed some issues found by static analysis 2017-09-08 12:22:12 +03:00
Vladislav Sovrasov
3eb9a655c7 ml: disable not implemented k-fold validation in RTrees 2017-09-07 15:49:46 +03:00
David Geldreich
7c334f45c6 trainAuto: uses parallel_for_ to dispatch all parameters combination to test 2017-08-08 13:27:02 +02:00
Rink Springer
3ce1bca670 Prevent crash when attempting to create training data without responses.
This is at least useful when using an SVM one-class linear classifier, so there are valid use cases.
2017-06-30 15:36:47 +02:00
Maksim Shabunin
a769d69a9d Fixed several issues found by static analysis 2017-06-28 18:06:18 +03:00
Maksim Shabunin
32d4af36e2 Fixing some static analysis issues 2017-06-27 14:30:26 +03:00
Alexander Alekhin
006966e629 trace: initial support for code trace 2017-06-26 17:07:13 +03:00
David Carlier
bacc210606 fixing segfaults occuring when launching those unit tests 2017-04-18 09:50:17 +01:00
Maksim Shabunin
8b455e8bb3 Fixed Algorithm.save and other methods work in Java 2017-04-05 17:48:38 +03:00
Julian Tanke
f70cc29edb export SVM::trainAuto to python #7224 (#8373)
* export SVM::trainAuto to python #7224

* workaround for ABI compatibility of SVM::trainAuto

* add parameter comments to new SVM::trainAuto function

* Export ParamGrid member variables
2017-03-23 16:00:19 +03:00
Vladislav Sovrasov
195c12f2db ml: remove useless namespace identifiers in SVM 2017-03-07 16:02:19 +03:00
Vadim Pisarevsky
e0ee2f769a Merge pull request #8116 from mrquorr:master 2017-03-02 11:07:23 +00:00
mrquorr
d8425d8881 finished for one sample
Finished with several samples support, need regression testing

Gave a more relevant name to function (getVotes)

Finished implicit implementation

Removed printf, finished regresion testing

Fixed conversion warning

Finished test for Rtrees

Fixed documentation

Initialized variable

Added doxygen documentation

Added parameter name
2017-02-28 11:14:33 -06:00
Maksim Shabunin
13dffa0017 Merge pull request #8103 from sovrasov:em_docs_update 2017-01-31 09:10:37 +00:00
Vladislav Sovrasov
a789c08588 ml::EM: add documentation for predict() method 2017-01-30 17:38:13 +03:00
Alexander Alekhin
75533fcd06 Merge pull request #8098 from chrizandr:Tree_load_Wrapper
Add wrappers for load functions for DTrees and Boost classifiers
2017-01-30 17:25:23 +03:00
chrizandr
519fbdb8ab Wrappers for load methods of EM, LR, SVMSGD and Normal Bayes Classifier 2017-01-29 18:51:55 +05:30
chrizandr
d22df8c41f Add wrappers for load functions for DTrees and Boost classifiers 2017-01-29 15:55:38 +05:30
Vadim Pisarevsky
2bac66a181 Merge pull request #8004 from chrizandr:RTrees_load_wrapper 2017-01-24 11:55:42 +00:00
chrizandr
e3ec3566d9 RTrees: Add wrapper for RTrees_load method to enable loading trained RTrees 2017-01-19 17:16:45 +05:30
berak
89a740a62f Merge pull request #8019 from berak:patch-2
ml: fix small typo in lr.cpp (#8019)
2017-01-17 13:57:50 +03:00
Alexander Alekhin
23e53a32e5 Merge pull request #7950 from BadrinathS:firstbugfix-lr_opencv 2016-12-31 12:48:54 +00:00
BadrinathS
d1f727191f Resolving issue #7924 2016-12-31 16:37:51 +05:30
Vadim Pisarevsky
ae9f80c1a9 Merge pull request #7855 from logic1988:master 2016-12-19 13:45:51 +00:00
logic1988
de059567d7 Update inner_functions.cpp
Fix #4958 cv::ml::StatModel::calcError not working for responses of type CV_32S
2016-12-16 20:01:07 +03:00
Vladislav Sovrasov
d2e5bea1fb Disable training of RTrees when CVFolds > 0 2016-12-16 16:39:44 +03:00
Vadim Pisarevsky
991c41c849 Merge pull request #7371 from mshabunin:aruco-java-wrap 2016-10-01 15:38:59 +00:00
Alexander Alekhin
1c18b1d245 Merge pull request #7370 from souch55:Fixxn 2016-10-01 10:44:56 +00:00
mshabunin
7a7a2749e0 Fixed java wrappers 2016-09-30 16:21:04 +03:00
sourin
a34fbf7bb1 Fixed identifiers warns 2016-09-30 15:16:29 +05:30
Vadim Pisarevsky
40b870704e add 2 extra methods to ml::TrainData (#7169)
* expose 2 extra methods from ml::TrainData: getNames() and getVarSymbolFlags(). The first one returns text labels from CSV (if the data has been loaded from CSV); the second one returns a matrix of boolean values; its n-th element is 1 iff the corresponding column in the CSV uses symbolic names, not numbers.

* check that the dynamic_cast succeeds
2016-08-26 16:25:46 +04:00
Vadim Pisarevsky
b03e3abd62 Merge pull request #7088 from wiryls:FileStorageJSON 2016-08-24 16:49:06 +00:00
Maksim Shabunin
d1d8c7d8a6 Merge pull request #7056 from ludv1x:python-extra-bindings 2016-08-16 13:00:31 +00:00
Vitaliy Lyudvichenko
ab8de8f506 Adding of user-defined type conversions for python bindings inside module directories
Adding of destructor and placement new constructors for classes wrapped with CV_EXPORTS_W_SIMPLE macro
2016-08-16 13:10:17 +03:00
Maksim Shabunin
031076ab93 Merge pull request #7077 from LaurentBerger:I7063 2016-08-15 09:08:44 +00:00
LaurentBerger
b75bac7975 Solve Issue 7063
consequences of changes

accuracy test

Solve issue 7063
2016-08-11 10:56:50 +02:00
MYLS
8596e82d98 Add JSON support.
a JSON emitter, a parser, tests and some basic doc.
2016-08-11 00:53:15 +08:00
Vadim Pisarevsky
5eee757658 Merge pull request #6949 from wiryls:FileStorageBase64DocsTests 2016-08-10 09:26:13 +00:00
Vadim Pisarevsky
d7ee62f03b 1. fix warning from Xcode 7.x
2. fixed parsing of "cat[range_spec]ord[range_spec]" type specification string when using ml::TrainData::loadFromCSV(). Thanks to A. Kaehler for reporting it
2016-08-04 12:52:10 +03:00
MYLS
3935855365 Merge remote-tracking branch 'refs/remotes/opencv/master' into FileStorageBase64DocsTests
# Conflicts:
#	modules/core/test/test_io.cpp
2016-07-30 01:08:27 +08:00
MYLS
617df09143 Modify Base64 functions and add test and documentation
Major changes:

- modify the Base64 functions to compatible with `cvWriteRawData` and so
on.
- add a Base64 flag for FileStorage and outputs raw data in Base64
automatically.
- complete all  testing and documentation.
2016-07-19 15:54:38 +08:00
Vadim Pisarevsky
b28194addc Merge pull request #6860 from IshankGulati:svm-error-message 2016-07-18 15:44:40 +00:00
Marek Smigielski
ef45005056 Adding support for pointer generation. Fixes #6605 2016-05-31 08:35:50 +02:00
Jose Luis Guardiola
2bb520e277 Fixed #6562: Incorrect CV_64F management in ANN 2016-05-20 13:16:59 +02:00
Maksim Shabunin
49b4af1e5c Merge pull request #6395 from Tauranis:master 2016-04-13 07:53:33 +00:00
Tauranis
edb6a0e889 Bug fix for MLP predict for small values to avoid nan responses. 2016-04-12 15:59:32 -03:00
Maksim Shabunin
8f6e102331 Merge pull request #6345 from eduardohenriquearnold:master 2016-04-12 15:22:32 +00:00
Maksim Shabunin
1307bb1d03 Merge pull request #6314 from mvukad:bugfix_dtreeswrite 2016-04-12 13:26:25 +00:00
mvukad
695e33b25b Fix missing format when writing Algorithm-based objects
Added a writeFormat() method to Algorithm which must be called by the
write() method of derived classes.
2016-04-07 13:49:42 -07:00
Vadim Pisarevsky
46d218bcec Merge pull request #6312 from KnockSoftware:split-float-epsilon 2016-04-03 23:10:10 +00:00
Eduardo Arnold
d046602ea4 Enforced DecisionFunction vector indexes to be saved on SVM save/load methods 2016-03-29 16:35:27 -03:00
Eugene Khvedchenya
ee92a36123 Added parallel implementation of compute_gradient method. 2016-03-29 11:09:54 +03:00
Evan Heidtmann
0712bccf52 Fix epsilon comparison when splitting 2016-03-28 14:16:32 -07:00