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>
The relevant bug was reported in https://github.com/opencv/opencv_contrib/issues/1612
The _xi was erroneously applied at points re-projection to camera plane.
_xi parameter was already taken in use while projection of points to unit sphere.
deltaCIEDE2000_ fix into the MCC module
* deltaCIEDE2000_ fix, did not pass the test case 17 and 19 of Gaurav Sharma's test data
* Update ccm test case