New odometry Pipeline
* first intergation
* tests run, but not pass
* add previous version of sigma calc
* add minor comment
* strange fixes
* fix fast ICP
* test changes; fast icp still not work correctly
* finaly, it works
* algtype fix
* change affine comparison
* boolean return
* fix bug with angle and cos
* test pass correctly
* fix for kinfu pipeline
* add compute points normals
* update for new odometry
* change odometry_evaluation
* odometry_evaluation works
* change debug logs
* minor changes
* change depth setting in odometryFrame
* fastICP works with 4num points
* all odometries work with 4mun points
* odometry full works on 4num points and normals
* replace ICP with DEPTH; comments replacements
* create prepareFrame; add docs for Odometry
* change getPyramids()
* delete extra code
* add intrinsics; but dont works
* bugfix with nan checking
* add gpu impl
* change createOdometryFrame func
* remove old fastICP code
* comments fix
* add comments
* minor fixes
* other minor fixes
* add channels assert
* add impl for odometry settings
* add pimpl to odometry
* linux warning fix
* linux warning fix 1
* linux warning fix 2
* linux error fix
* linux warning fix 3
* linux warning fix 4
* linux error fix 2
* fix test warnings
* python build fix
* doxygen fix
* docs fix
* change normal tests for 4channel point
* all Normal tests pass
* plane works
* add warp frame body
* minor fix
* warning fixes
* try to fix
* try to fix 1
* review fix
* lvls fix
* createOdometryFrame fix
* add comment
* const reference
* OPENCV_3D_ prefix
* const methods
* OdometryFramePyramidType ifx
* add assert
* precomp moved upper
* delete types_c
* add assert for get and set functions
* minor fixes
* remove core.hpp from header
* ocl_run add
* warning fix
* delete extra comment
* minor fix
* setDepth fix
* delete underscore
* odometry settings fix
* show debug image fix
* build error fix
* other minor fix
* add const to signatures
* fix
* conflict fix
* getter fix
* Fix integer overflow in cv::Luv2RGBinteger::process.
For LL=49, uu=205, vv=23, we end up with x=7373056 and y=458
which overflows y*x.
* imgproc(test): adjust test parameters to cover SIMD code
Accelerated 3D point cloud Farthest Point Sampling calculation using SIMD.
* Add several 3D point cloud sampling functions: Random, VoxelGrid, FarthestPoint.
* Made some code detail changes and exposed the random number generator parameters at the interface.
* Add simple tests for sampling.
* Modify interface output parameters.
* Modify interface return value.
* The sampling test is modified for the new changes of function interface.
* Improved test of VoxelGridFilterSampling
* Improved test of VoxelGridFilterSampling and FPS.
* Add test for the dist_lower_limit arguments of FPS function.
* Optimization function _getMatFromInputArray.
* Optimize the code style and some details according to the suggestions.
* Clear prefix cv: in the source code.
* Change the initialization of Mat in the sampling test.
* 1. Unified code style
2. Optimize randomSampling method
* 1. Optimize code comments.
2. Remove unused local variables.
* Rebuild the structure of the test, make the test case more reliable, and change the code style.
* Update test_sampling.cpp
Fix a warning.
* Use SIMD to optimize the farthest point sampling.
* Optimize the farthest point sampling SIMD code.
* 1. remove `\n` from the ptcloud.hpp comment.
2. updated the default value of the argument arrangement_of_points in the _getMatFromInputArray function in ptcloud_utils.hpp from 0 to 1, since the latter is more commonly used (such arrangement is easier for SIMD acceleration).
3. removed two functions in ptcloud_utils.hpp that were not used.
* Remove the <br> in the comment.
* Fix whitespace issues.
* dnn: LSTM optimisation
This uses the AVX-optimised fastGEMM1T for matrix multiplications where available, instead of the standard cv::gemm.
fastGEMM1T is already used by the fully-connected layer. This commit involves two minor modifications:
- Use unaligned access. I don't believe this involves any performance hit in on modern CPUs (Nehalem and Bulldozer onwards) in the case where the address is actually aligned.
- Allow for weight matrices where the number of columns is not a multiple of 8.
I have not enabled AVX-512 as I don't have an AVX-512 CPU to test on.
* Fix warning about initialisation order
* Remove C++11 syntax
* Fix build when AVX(2) is not available
In this case the CV_TRY_X macros are defined to 0, rather than being undefined.
* Minor changes as requested:
- Don't check hardware support for AVX(2) when dispatch is disabled for these
- Add braces
* Fix out-of-bounds access in fully connected layer
The old tail handling in fastGEMM1T implicitly rounded vecsize up to the next multiple of 8, and the fully connected layer implements padding up to the next multiple of 8 to cope with this. The new tail handling does not round the vecsize upwards like this but it does require that the vecsize is at least 8. To adapt to the new tail handling, the fully connected layer now rounds vecsize itself at the same time as adding the padding(which makes more sense anyway).
This also means that the fully connected layer always passes a vecsize of at least 8 to fastGEMM1T, which fixes the out-of-bounds access problems.
* Improve tail mask handling
- Use static array for generating tail masks (as requested)
- Apply tail mask to the weights as well as the input vectors to prevent spurious propagation of NaNs/Infs
* Revert whitespace change
* Improve readability of conditions for using AVX
* dnn(lstm): minor coding style changes, replaced left aligned load
[G-API] Fix issue of getting 1D Mat out of RMat::View
* Fix issue of getting 1D Mat out of RMat::View
- added test
- fixed for standalone too (removed Assert(dims.empty()))
* Fixed asVeiw() function for standalone
* Put more detailed comment