1
0
mirror of https://github.com/opencv/opencv_contrib.git synced 2025-10-18 00:01:17 +08:00
Commit Graph

129 Commits

Author SHA1 Message Date
Rostislav Vasilikhin
49e8f123ca Merge pull request #3137 from savuor:backport_levmarqfromscratch
HashTSDF fixes backported

* HashTSDF fixes backported

* typo fixed
2021-12-24 23:01:26 +00:00
Alexander Alekhin
8bd63161fe Merge pull request #3128 from alalek:cmake_fix_opengl 2021-12-07 16:35:19 +00:00
Pavel Rojtberg
04cafeb244 rgbd: colored kinfu - allow fetching colors for pointcloud 2021-12-07 14:52:34 +01:00
Alexander Alekhin
d9c1d48e70 cmake: fix OPENGL_LIBRARIES handling 2021-12-07 06:00:26 +00:00
Artem Saratovtsev
78acb196bc Merge pull request #2981 from DumDereDum:kinfu_python_demo
KinFu python samples
2021-09-04 22:07:37 +00:00
Alexander Alekhin
b83d965efd Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2021-08-28 21:30:23 +00:00
Stephen McDowell
ed199a3498 remove executable bit for various files 2021-08-23 16:57:33 -06:00
Artem Saratovtsev
d5317d6297 Merge pull request #2964 from DumDereDum:icp_docs
ICP Docs

* add first info

* add main info

* minor fix

* defgroup fix

* move docs to rgbd.hpp

* try to fix

* add f

* fix with f

* minor fix

* final fix

* whitespace fix

* info fix

* uppercase letter

* create md docs

* try to do math in md

* first draft

* minor fix | add to the web docs

* minor fixes

* minor fixes

* add T

* minor fix of meaning

* Update kinfu_icp.markdown

* Update kinfu_icp.markdown

* More edits

* whitespace

* minor changes

Co-authored-by: Rostislav Vasilikhin <savuor@gmail.com>
2021-07-04 21:55:23 +00:00
DumDereDum
342f8924cc Merge pull request #2926 from DumDereDum:iss2925
KinFu fix (iss2925)

* add TODO

* rewrite render

* docs fix

* remove extra comment
2021-04-17 19:33:20 +00:00
Alexander Alekhin
f7c034c399 fix whitespace 2021-04-08 22:21:11 +00:00
DumDereDum
da6a95e0db Merge pull request #2878 from DumDereDum:colored_kinfu
Colored Kinect Fusion

* create dummy unworked classes

* dummy class works

* colored kinfu demo minor changes

* add simple rgb reader and writer

* add rgb info to tsdf

* add new raycast

* replace TsdfVoxel with RGBTsdfVoxel; integrate done

* add colors info to raycast

* just render colors

* color processing fix

* intergrate color fix

* add simple shift; minor fixes

* add cv_errors for not implemented functions

* minor fixes

* made calibration

* makeColoredFrameFromDepth works

* remove comments

* makeColoredFrameFromDepth fix

* RGBSoure remove extra code

* RGBSoure remove extra code 1

* simple fix of bug with rgb size

* minor fix

* docs fix

* docs fix

* unused parameter fix

* warnings fix

* fix tsdf errors; rgbd_perf warnings

* fix errors

* minor fix

* debug print

* debug print 2

* debug print 3

* invoker fix

* minor fix

* remove debug cout

* add simple tests

* docs fix

* warnings fix

* minor fix

* function warning fix

* add vectorized code

* minor fixes

* minor speed up

* minor fixes; renaming

* new minor fixes

* bug fix

* minor fix

* test update

* extra code removed

* bugfix; warning fix

* simple interpolation

* minor fix

* color work minor fix

* vectorized interpolation

* minor fix
2021-04-07 20:49:57 +00:00
Rostislav Vasilikhin
1341c05766 Merge pull request #2892 from savuor:posegraph_no_ceres
Pose Graph rewritten without Ceres

* Works well on g2o dataset, cumulative:
1. Pose3d done w/o Eigen types;
2. PoseGraph nodes vector<Node> -> map<int, Node>
3. Eigen is not used in cost function or parametrization
4. Cost function debugged & fixed (original one was wrong), rewritten from Automatic to Analytic

* g2o dataset reading added to PoseGraph

* sparse solver fixes from DynaFu draft

* Eigen cost function and parametrization removed + g2o reading fixed

* refactored: pose error, pose graph edge, pose graph node

* sparse solve: templated

* MyOptimize(): 1st version

* several fixes and TODOs for future

* sparse block matrix: val functions, template type

* works at Ceres quality (cleanup needed)

* MyOptimize() is set to default optimizer

* Ceres thrown away, PoseGraph class and header/source code reorganized

* pose, node, edge -> nested for PoseGraph

* warnings fixed

* jacobiScaling disabled for better performance + minors

* trailing whitespace fixed

* more warnings fixed

* message added: Eigen is required for build + minors

* trying to fix warning

* try to fix "unreachable code" warning

* trying to fix unreachable code, pt.3

* trying to fix unreachable code, pt. 5

* trying to fix unreachable code, pt. the worst + minors

* try to fix unreachable code, pt. the ugliest

* trying to fix unreachable code, pt. the grumpiest

* cout -> CV_LOG_INFO

* quat matrix functions moved outside cv and kinfu namespaces

* unused function fix

* pose graph made public (but in detail namespace) + test for pose graph

* minor: prints

* Pose Graph interface settled

* Pose graph interface and its use updated

* cos -> std::cos

* cout -> CV_LOG_INFO

* pose graph interface updated: implementation

* Pose Graph Node and Edge: extra fields dropped

* more minor refactor-like fixes

* return and finish condition fixed

* more updates to test

* test disabled for Debug builds because 400 sec is too much

* whitespace

* Disable pose graph test if there's no Eigen

* more unused vars

* fixing unused function warning

* less includes

* "verbose" removed

* write obj to file only when debug level is raised

* License + include guard

* skip test using tags and SkipTestException

* suppress "unused function" warning

* minor
2021-04-01 20:59:16 +00:00
DumDereDum
c287e526f1 Merge pull request #2854 from DumDereDum:rgbd_test_refactoring
RGBD tests refactoring

* add GPU and CPU versions of tests

* reduce time for demo show

* add assert info and scene minor fix

* add display to perf_test

* replace extra code by function in perf_test

* add display func for tests

* add settings class for test

* remove extra code

* replace scene in perf test

* main dug fixed

* fix the same bug

* fix

* docs fix

* minor fix

* namespace fix

* tsdf cpu getnormal fix

* add folder ocl with simple tests

* build error fix
2021-04-01 14:45:13 +00:00
DumDereDum
7ede6585f5 Merge pull request #2734 from DumDereDum:new_HashTSDF_GPU_class
New HashTSDFVolumeGPU class

* create new class

* rewrite makeHashTSDFVolume

* it builds

* minor fi

* raycast - done

* all code builds

* Docs fix

* –fetch_normals fix

* I want it to work

* minor fix

* valid points checking passed

* it works!

* minor fixes

* warning fix

* last replacements

* warning fix

* create hash_tsdf.cl

* add preCalculationPixNormGPU

* add integrateVolumeUnitGPU

* Docs fix

* create simple volume table

* add functionality to the table

* add new functions

* create new hash table implementation

* minor fix

* create new hash tsdf implementaton

* add expand feature

* minorfix

* error fix

* it builds

* new hash table work

* Docs fix

* warnings fix

* warning fix 1

* warning fix 2

* warning fix

* remove extra coments

* create new function integrateAllVolumeUnitsGPU

* add hash table function

* extend kernel signature

* minor fix

* extent Volume_NODE signature and add functionality

* kernel args fix

* smth

* minor fix

* kernal args fix

* try to fix reading bug

* hash table fix

* add totalVolUnits feature

* it builds

* minor fix

* integrate fix

* fix work with table

* minor table fi

* I am stumped

* try to fix

* add checking to find error

* add copyto

* vol2cam fix

* try to fix

* we are the champions

* remove some comments

* remove last comments

* docs fix

* warning fix

* warning fix 1

* warning fix 2

* create raycast kernel

* extend raycast gpu signature

* minor fix

* integrate all volUnits - done

* docs fix

* warning fix

* extend raycast signature

* raycast work

* bug fix

* calc point4 fix

* minor fix

* add _at function

* raycast done, but work incorrect

* fin dug

* bug fix

* getNorm works correctly

* minor fix

* raycast - done

* minor fixes

* docs fix

* warning fix

* minor fix

* minor fix

* warning fix

* warning fix 1

* win warning fix

* mac fix

* win debug fix

* mac cl warning fix

* allCam2vol fix

* rename num with bufferNum

* remove nums hardcode

* minor fix

* change logic of calculating hash

* replace float16 by vload16

* replace true with false in zFirstMemOrder

* poses fix

* add new tests

* debug print

* debug print 1

* replace [] with .s

* minor fix

* minor fix 1

* remove print

* hashtsdf work fix

* hashtable fix

* resrite hashtasble update

* test_tsdf fix

* override warning fix

* docs fix

* mutex fix

* setUseOptimizes replace false with true

* minor fix

* merge with master

* all minor fixes

* add CPU code for debug

* settings set

* move code from hpp to cpp

* minor opencl fix

* fid bug

* coment fix

* minor fix

* bug fix

* integrate fixed

* speed up

* remove extra code

* raycast fix, but still not work

* raycast fix

* HT refactoring: constants

* HT refactoring: calc_hash()

* HT refactoring: methods set shortened

* no typedef VolumeIndex

* fix a bug in CPU version

* VolumeIndex

* identation

* HashTSDF refactoring: a lot of things

* less TODOs

* lastVisibleIndex dropped from HT

* HT refactor: find -> findRow

* interpolate & getNormal small hash: no queried

* totalVolUnits, indexes -> volumeUnitIndices, better iteration

* raycast artifacts fixed

* interpolation in getNormal is on

* minors

* findRow() refactored

* volStrides, lastVolIndex, volDims, neighbourCoords

* normals, vectorization

* interpolation in getNormalVoxel()

* no 16*16*16, use volumeUnitResolution instead

* resolution, stride...

* raycast: cur idx, etc.

* CPU debugging code removed

* volUnitsData moved to OpenCL memory

* raycast: no copy

* allocate accelerated a bit

* hash_tsdf.cl: pointers fixed

* allVol2cam, poses moved to kernel; rowRange for volUnitsData init

* TSDF voxel: constructor; row range fixed

* rowRange

* pixNorms fix + minors

* depth is now UMat

* markActive is done on GPU, lastVisibleIndices and isActiveFlags moved to GPU

* CL: minor

* volumeUnitIndices -> GPU

* ToyHashMap instead of HT, volumeUnitIndices removed, lastVolIndex removed,
 + a lot of debugging code

* warning about local pix capacity

* CPU allocation: find in global HT first

* ToyHashMap: -> tsdf_functions.hpp

* debugging code + to be removed

* ptr -> at

* volumeUnitResolution is limited to a power of 2

* rename ToyHashMap to ToyHashSet, hashMap to hashTable

* minor

* getNormalVoxel .cl: no float conversions

* getNormalVoxel does not need voxelSizeInv anymore; orig and dir pre-scaled to get rid of extra multiplication

* minor fix

* linux critical bug fix

* docs fix

* mac warning fix

* remove extra test code

* linux warning fix

* remove comments

* capacity = 2048

* capacity = 1024

* hashtables fixes

* minor code removement

* change pixNorm calculation

* remove buff_lvl and neighboorCoords; rename degree

* move volStrides to HashTSDFVolume

* HashTSDFVolumeGPU constructor fix

* move preCalculatePixNormsGPU to tsdf_functions

* minor code removement

* replace copyto() with getUMat()

* remove debug code

* replace copyTo with getUmat again

* replace types in cl

* remove NAN_ELEMENT

* remove Volume_NODE struct and findRow()

* make hash_divisor constant

* uncomment camTrans

* rename data; remove extra val

* fix merge conflict

* create empty UMat

* cl fix

* build error fix

* clear HashTSDFVolumeGPU()

* use constuctor delegation at HashTSDFVolumeCPU

* remove cam2volTransGPU

* add minor fix

Co-authored-by: Saratovtsev <artem.saratovtsev@intel.com>
Co-authored-by: Rostislav Vasilikhin <rostislav.vasilikhin@intel.com>
2021-02-20 16:33:19 +00:00
Alexander Alekhin
d98026b17c Merge pull request #2853 from DumDereDum:iss2817 2021-02-08 11:02:05 +00:00
batters21
38f46874ae issue 2817 fixed 2021-02-05 21:39:05 +03:00
Tomoaki Teshima
efbf1b8f4f fix segmentation fault on Arm 32bit platform 2021-02-05 22:35:15 +09:00
Tomoaki Teshima
241579a116 get rid of kernel build failure
* prevent out-of-bounds access
  * prevent deallocate before return
  * fix build warning
2021-01-31 07:31:52 +09:00
Ubuntu
4e606621e2 valid point issue 2818 fix 2021-01-26 15:21:12 +00:00
Vadim Pisarevsky
edc5bb71e5 Merge pull request #2806 from vpisarev:kinfu_demo_orbbec
* added orbbec camera intrinsic parameters for kinfu demo

* removed trailing whitespace
2021-01-21 07:38:19 +00:00
Alexander Alekhin
0b6b8ff9dd Merge pull request #2822 from DumDereDum:hash_tsdf_bug_fix 2021-01-15 18:21:33 +00:00
arsaratovtsev
7e992b89f2 replace lower with upper 2021-01-15 17:35:47 +03:00
Alexander Alekhin
ec294f62ce build warnings
- GCC 4.8.5 / CentOS 7
2020-12-05 20:03:38 +00:00
Alexander Alekhin
89e856b3fa build: xcode 12 support 2020-11-26 22:09:15 +00:00
Akash Sharma
f63965759d Merge pull request #2751 from akashsharma02:master
Add depth_factor argument in rescaleDepth and typedef dynafu::Params for backwards compatibility

* Add depth factor argument (default = 1000.0) to rescaleDepth to
potentially support TUM type datasets

* typedef dynafu::Params as kinfu::Params for compatibility
2020-11-25 09:28:19 +00:00
Alexander Alekhin
23ee62a19b cmake: support Ceres 2.0.0 2020-11-05 05:30:04 +00:00
Igor Murzov
65ca496a99 Fix build failure in rgbd's test
Fixes the following compiler error:

  rgbd/test/test_dynafu.cpp:44:17: error: 'Params' is not a member of 'cv::dynafu'
     44 |     Ptr<dynafu::Params> params;
        |                 ^~~~~~
2020-10-28 16:53:33 +03:00
DumDereDum
10bfd2dc51 Merge pull request #2725 from DumDereDum:integrateVolumeUnit_fix
integrateVolumeUnit fix

* replace int with Point3i at integrateVolumeUnit signature

* Update hash_tsdf.hpp

* Update hash_tsdf.cpp

* Update hash_tsdf.cpp

* error fix

* minor fix
2020-10-26 19:54:53 +00:00
DumDereDum
9b328cf6b9 Merge pull request #2722 from DumDereDum:tsdf_integrate_replacement
Tsdf integrate replacement

* replase invoker with integrateVolumeUnit

* remove extra code

* bug fix

* minor fix

* it works!

Co-authored-by: arsaratovtsev <artem.saratovtsev@intel.com>
2020-10-21 21:12:07 +00:00
DumDereDum
0b5ded4637 Merge pull request #2698 from DumDereDum:new_HashTSDF_implementation
New HashTSDF implementation

* create new variables

* rewrite reset()

* first valid version of new HasHTSDF

* some warning fixes

* create lambda raycast

* reduce time raycast

* minor fix

* minor fix volDims

* changed _atVolumeUnit, reduce memory consumption

* delete older inmplemetation of atVolumeUnit

* changes _at

* AAA, I want to cry!

* it works!

* it works twice o_o

* minor fix

* new adding to volumes

* delete volDims at strust VolumeUnit

* new names of vars

* rename one var

* minor fix

* new resize volumes

* rename volUnitsMatrix

* minor fix in at function

* add tsdf_functions.hpp

* minor fix

* remove two args at _at function signature

* solved the link problem with tsdf_functions

* build fix

* build fix 1

* build fix 2

* build fix 3

* build fix 4

* replace integrateVolumeUnit to tsdf_functions and fix 2 warnings

* docs fix

* remove extra args at atVolumeUnit signature

* change frame params checking

* move volStrides to CPU class

* inline convertion functions in tsdf_functions

* minor fix

* add SIMD version of integrateVolumeUnit

* fix something :)

* docs fix

* warning fix

* add degub asserts

* replace vars initialization with reset()

* remove volDims var

* new resize buffer

* minor vars name fix

* docs fix

* warning fix

* minor fix

* minor fix 1

* remove dbg asserts

Co-authored-by: arsaratovtsev <artem.saratovtsev@intel.com>
2020-10-19 17:20:35 +00:00
Akash Sharma
7022f4e3e0 Merge pull request #2619 from akashsharma02:submap
[GSoC] Add Submaps and PoseGraph optimization for Large Scale Depth Fusion

* - Add HashTSDF class
    - Implement Integrate function (untested)

* Integration seems to be working, raycasting does not

* Update integration code

* Integration and Raycasting fixes, (both work now)

* - Format code
- Clean up comments and few fixes

* Add Kinect Fusion backup file

* - Add interpolation for vertices and normals (slow and unreliable!)
- Format code
- Delete kinfu_back.cpp

* Bug fix for integration and noisy odometry

* - Create volume abstract class
- Address Review comments

* - Add getPoints and getNormals function
- Fix formatting according to comments
- Move volume abstract class to include/opencv2/rgbd/
- Write factory method for creating TSDFVolumes
- Small bug fixes
- Minor fixes according to comments

* - Add tests for hashTSDF
- Fix raycasting bug causing to loop forever
- Suppress warnings by explicit conversion
- Disable hashTsdf test until we figure out memory leak
- style changes
- Add missing license in a few files, correct precomp.hpp usage

* - Use CRTP based static polymorphism to choose between CPU and GPU for
HashTSDF volume

* Create submap and submapMgr
Implement overlap_ratio check to create new submaps

* Early draft of posegraph and submaps (Doesn't even compile)

* Minor cleanup (no compilation)

* Track all submaps (no posegraph update yet)

* Return inliers from ICP for weighting the constraints
(Huber threshold based inliers pending)

* Add updating constraints between submaps and retain same current map

* Fix constraints creation between submaps and allow for switching between
submaps

* - Fix bug in allocate volumeUnits
 - Simplify calculation of visibleBlocks

* Remove inlier calculation in fast_icp (not required)

* Modify readFile to allow reading other datasets easily

* - Implement posegraph update, Gauss newton is unstable

 - Minor changes to Gauss newton and Sparse matrix. Residual still
increases slightly over iterations

* Implement simplified levenberg marquardt

* Bug fixes for Levenberg Marquardt and minor changes

* minor changes

* Fixes, but Optimizer is still not well behaved

* Working Ceres optimizer

* - Reorganize IO code for samples in a separate file
- Minor fix for Ceres preprocessor definition
- Remove unused generatorJacobian, will be used for opencv implementation
of levenberg marquardt
- Doxygen docs fix
- Minor preprocessor fixes

* - Reorganize IO code for samples in a separate file
- Minor fix for Ceres preprocessor definition
- Remove unused generatorJacobian, will be used for opencv implementation
of levenberg marquardt
- Doxygen docs fix
- Minor preprocessor fixes
- Move inline functions to header, and make function params const
references

* - Add Python bindings for volume struct
- Remove makeVolume(const VolumeParams&) Python binding due to compilation
issues
- Minor changes according to comments

* - Remove dynafu::Params() since it is identical to kinfu::Params()
- Use common functions for dynafu_demo
- Suppress "unreachable code" in volume.cpp

* Minor API changes

* Minor

* Remove CRTP for HashTSDF class

* Bug fixes for HashTSDF integration
2020-10-13 19:19:15 +00:00
Alexander Alekhin
ef0c722f56 Merge pull request #2690 from pauljurczak:patch-2 2020-10-13 10:56:01 +00:00
arsaratovtsev
fc0fdbee9f bug fix 2020-10-05 16:50:56 +03:00
Paul Jurczak
9126355c0d Fixed a typo 2020-10-01 04:15:34 -06:00
DumDereDum
3ceb414a86 Merge pull request #2678 from DumDereDum:gpu_tsdf_pixNorm
TSDF preCalculation pixNorm

* create preCalculation function

* warning fix

* minor fix

* gpu preCalculation fix

* fix resolution bag in CPU

* gpu minor fix

* add pixNorms to intrinsics code

* minor fix

* minor fixes

Co-authored-by: arsaratovtsev <artem.saratovtsev@intel.com>
2020-09-30 15:12:31 +00:00
Nikita Shulga
790a9515e8 [rgbd/dynafu] Fix Windows compilation
GL/gl.h from Windows SDK contains only OpenGL 1.1 definitions, and so APIs like glGenRenderbuffers must be bound dynamically using wglGetProcAddress.
2020-09-21 09:16:37 -07:00
DumDereDum
b267fc3d1d Merge pull request #2629 from DumDereDum:tsdf_optimization
TSDF Optimization

* getMat using fix

* min/max fix

* create WeightType

* create normals test

* bug fix

* complete normals test

* fix makeVolume and rewrite tests

* minor fixes

* add new normal tests

* replace operator() on lambda expressions

* make a valid points test

* minor fixes

* getNormalVoxel fix in tsdf and hashTsdf

* create renderPointsNormals

* replace Affine3f with Matx44f oin make volume

* minor fixes

* minor fix

* tmp

* create function interpolateVoxel for hashTSDF

* tmp

* right interpolation for HashTSDF

* rewrite intrinsics normalize

* minor fix

* rewrite GPU normalize

* start to write perf tests

* make Volume fix

* GPU normalize fix

* minor fix

* create perf test for raycast

* fix LNK2019 problem in perf test

* made all perf tests

* replace all Affine3f with Matx44f

* replace Point3i with Vec3i

* minor fix

* minor fix

* add CV_EXPORT_W

* build fix 1

* build fix 2

* build fix 3

* warning fix

* build test

* win test

* tests without HashTSDF

* create noparallel normals checking

* test without fetch

* test without fetch points normals

* add end line

* revert rotation() in hash_tsdf

* fix matrix multiplication order

* fetch points normals invoker fix

* warning fix

* warning fix

* Docs fix

* Hash push normals fix

* replace operator() with lambda in PushNormals

* warning fix

* create half type and types conversion

* error fix and preparation for CPU optimization

* replace all TsdfType with half

* minor fixes

* minor fix

* raycast fix

* conversion bug fix

* delete cout

* it's alive!

* improve conversion CPU

* warning fix

* warning fix 1

* intrinsics optimization

* minor fixes

* warning fix

* interpolate improve

* start to optimize GPU version

* vectorize tsdfToFloat

* CPU optimization

* GPU optimization

* minor fix

* minor fix

* Docs fix

* minor fixes

* add perf tests HashTSDF

* hashTSDF optimization

* minor fix

* interpolate improvement

* getNormalVoxel improvement

* added a new calculation pixNorm

* tsdfToFloat improve

* add flag USE_INTERPOLATION_IN_GETNORMAL to HashTSDF

* minor fix

* minor fix

* replace int with uchar

* getNormal improve

* minor fix

* minor fixes

* inline _at()

* inline _at()

* vectorize interpolation

* i tried :(

* minor fix

* try to improve _getNormalVoxel

* minor fix

* create new struct for tests

* minor test fix

* minor fix

* minor fix 1

* minor fix 2

* minor fix 3

* minor fix 4

* minor fix 5

* minor fix 6

* minor fix 7

* monor test fix

* monor test fix 1

* integrate improve

* rewrite interpolation in getNormalVoxel in HashTSDF

* intergrate improve tsdf

* minor Docs fix

* change autolock mutex place

* reduce interpolation calls

* new getNormal

* minor fix

* tmp mutex optimization

* rewrite mutex lock

* rewrite Settings structure as class

* minor Docs fix

* new inteprolateVoxel debug

* new inteprolateVoxel

* minor fix

* add new voxelToVolumeUnitIdx

* new integrate with lambda functions

* new integrate minor fix

* minor fix

* minor fix 1

* pixNorm, I try :(

* need to rewrite [][] part

* It's Alive

* omg? it works!

* minor fix

* minor fix 1

* minor fix

* add new environment check

* minor fix

* minor fix 1

* Docs fix

* minor fix 3

* minor fix

* minor fix 1

Co-authored-by: arsaratovtsev <artem.saratovtsev@intel.com>
2020-09-17 13:20:58 +00:00
DumDereDum
80cdf41e3a Merge pull request #2606 from DumDereDum:tsdf_fix_and_test
TSDF fixes and tests

* getMat using fix

* min/max fix

* create WeightType

* create normals test

* bug fix

* complete normals test

* fix makeVolume and rewrite tests

* minor fixes

* add new normal tests

* replace operator() on lambda expressions

* make a valid points test

* minor fixes

* getNormalVoxel fix in tsdf and hashTsdf

* create renderPointsNormals

* replace Affine3f with Matx44f oin make volume

* minor fixes

* minor fix

* tmp

* create function interpolateVoxel for hashTSDF

* tmp

* right interpolation for HashTSDF

* rewrite intrinsics normalize

* minor fix

* rewrite GPU normalize

* start to write perf tests

* make Volume fix

* GPU normalize fix

* minor fix

* create perf test for raycast

* fix LNK2019 problem in perf test

* made all perf tests

* replace all Affine3f with Matx44f

* replace Point3i with Vec3i

* minor fix

* minor fix

* add CV_EXPORT_W

* build fix 1

* build fix 2

* build fix 3

* warning fix

* build test

* win test

* tests without HashTSDF

* create noparallel normals checking

* test without fetch

* test without fetch points normals

* add end line

* revert rotation() in hash_tsdf

* fix matrix multiplication order

* fetch points normals invoker fix

* warning fix

* warning fix

* Docs fix

* Hash push normals fix

* replace operator() with lambda in PushNormals

* warning fix

* comments fix

Co-authored-by: arsaratovtsev <artem.saratovtsev@intel.com>
2020-08-17 19:17:56 +00:00
Akash Sharma
468345511f Merge pull request #2566 from akashsharma02:master
[GSoC] Add new Hashtable based TSDF volume to RGBD module

* - Add HashTSDF class
    - Implement Integrate function (untested)

* Integration seems to be working, raycasting does not

* Update integration code

* Integration and Raycasting fixes, (both work now)

* - Format code
- Clean up comments and few fixes

* Add Kinect Fusion backup file

* - Add interpolation for vertices and normals (slow and unreliable!)
- Format code
- Delete kinfu_back.cpp

* Bug fix for integration and noisy odometry

* - Create volume abstract class
- Address Review comments

* - Add getPoints and getNormals function
- Fix formatting according to comments
- Move volume abstract class to include/opencv2/rgbd/
- Write factory method for creating TSDFVolumes
- Small bug fixes
- Minor fixes according to comments

* - Add tests for hashTSDF
- Fix raycasting bug causing to loop forever
- Suppress warnings by explicit conversion
- Disable hashTsdf test until we figure out memory leak
- style changes
- Add missing license in a few files, correct precomp.hpp usage
2020-07-03 21:31:39 +00:00
Alexander Alekhin
79b71ec95d Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-03-20 21:38:24 +00:00
Ayush Garg
4d57438cb6 Merge pull request #2460 from ayushgargdroid:fixDepthRegisteration
* Fix for Depth Registration. Issue #2234

* Fix style

* Incorporating suggestions. 1. Trailing whitespace 2. Matx33f 3. EXPECT_EQ

* test: use Matx33f ctor
2020-03-17 19:12:22 +00:00
Ayush Garg
d442856fd6 Merge pull request #2447 from ayushgargdroid:kinfuParams
* Adding constructor for kinfu_Params(). Allows users to configure parameters for KinFu Algorithm

* Trailing whitespace correct

* Add constructor for TSDF Initial Pose. Allowed parameters are Matx33f,Vec3f and Matx44f. Also added function setInitialVolumePose to handle Matx44f param data type.
2020-03-17 13:20:25 +03:00
Rostislav Vasilikhin
c8b405eb7f Merge pull request #2410 from savuor:fix/kinfu_fetch_checkzero
Fixed KinFu getCloud() at empty volume

* KinFu getCloud(): an empty volume check added to OCL code

* minor
2020-01-18 20:55:25 +03:00
Alexander Alekhin
7011e1b1cb Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-12-05 17:43:43 +03:00
Alexander Alekhin
d930ad9c77 rgbd: don't use CV__ENABLE_C_API_CTORS 2019-12-03 15:20:22 +03:00
Brian Wignall
8c09249352 Fix typos 2019-12-02 07:23:05 -05:00
Nikita Shulga
42e049278b Do not use VLA in dynafu.cpp
VLA is part of C99, but still not part of C++ standard
Replace float variable-length-arrays with unique_ptr arrays (which are
part of C++14)
2019-11-28 06:30:59 -08:00
Alexander Alekhin
6a9555886e Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-11-22 22:37:37 +00:00
czgdp1807
854d33bca9 shifted constructor and destructor definitions 2019-11-20 17:13:20 +05:30
Alexander Alekhin
dff1422532 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-11-19 18:58:56 +00:00