1. 21 Oct, 2019 1 commit
    • Apoorv Goel's avatar
      Merge pull request #2161 from UnderscoreAsterisk:dynafu · 8b59dffc
      Apoorv Goel authored
      DynamicFusion Implementation
      
      * Add new nodes from points
      
      * Addition of new node in the field
      
      * Warp nodes demo
      
      * Add newline before {
      
      * Remove 3rd party flann dependency
      
      * Regularisation Heirarchy
      
      * Correct node radius
      
      * Change default growth rate
      
      * New node position = centroid of the neighbourhood
      
      * Enlarge nodes while paused
      
      * Dynafu TSDF
      
      * TSDF demo
      
      * Avoid double calc and adjust initial tsdf weight
      
      * Fix bug that caused some voxels to disappear
      
      * getNodePos helper
      
      * Remove USE_INTRINSIC check
      
      * Correct RT avg calculation and remove redundant knn calc
      
      * Slight perf improvements
      
      * Use LinearIndex
      
      * Debug calculations
      
      * set all nodes' RT
      
      * Various bug fixes
      
      * Separate camera and warpfield
      
      * Add dynafu documentation
      
      * Adhere to coding style
      
      * Add dynafu unit test
      
      * update demo
      
      * Merge pull request #2133 from savuor:kinfu_truncate
      
      KinectFusion: several updates (#2133)
      
      * truncateThreshold added
      
      * demo updated for RealSense
      
      * first Kinect2, then RealSense
      
      * more distance-based parameters
      
      * Remove trailing whitespaces
      
      * Replace bool vector with array
      
      * create findNeighbours in WarpField
      
      * Maintain nodesPos matrix in WarpField
      
      * Fix warnings on Windows build
      
      * Remove cameraPose from WarpField
      
      * Use AutoBuffer
      
      * Marching Cubes
      
      * Fix MC
      
      * Split mesh vertices & edges
      
      * Change Mat types in MC
      
      * OpenGL rendering
      
      * Check for HAVE_OPENGL
      
      * Error handling in case HAVE_OPENGL is not defined
      
      * Replace Mat_ with std::vector inside marchCubes
      
      * Parallelise marching cubes
      
      * Fix warpfield and estimate depth inside DynaFuImpl::updateT()
      
      * Linearise depth and use points/normals from MC
      
      * Don't test dynafu without OpenGL support
      
      * Analytical calculation of Jacobian matrices
      
      * Add details about rotation and differentiate graph terms in J_r
      
      * Use derivative of T^-1 from the tutorial
      
      * Remove L2 norm from reg term
      
      * Use chain rule to differentiate data term
      
      * Markdown
      
      * Fix markdown
      
      * Replace MD file by HTML
      
      * Change the data term expression
      
      * Calculate J_d using vector identities
      
      * Rasterize vertex and normals
      
      * Apply warpfield before rendering
      
      * Add CV_UNUSED for normImage to fix warning
      
      * Render float image instead of uint8
      
      * Implement ICP data term and other changes:
      1. add option to applyWarp to normals
      2. add option to `fetchPointNormals` to return points in voxel coordinates
      3. Fix: Use voxel coordinates to update WarpField
      
      * Fix non-OpenGL build
      
      * Intialise newly discovered node transforms with DQB
      
      * Fix data term
      
      * Change data term normal and add kinfu-like distance/angle checks
      
      * Implement regularisation
      
      * Fix warnings
      
      * Credit authors of DQB and table for MC
      
      * cast size_t to int to supress warning
      
      * Correct regularisation and add normal equation set up
      
      * Delete html
      
      * Dynafu unit test
      8b59dffc
  2. 05 Jun, 2019 1 commit
  3. 15 Oct, 2018 1 commit
  4. 09 Oct, 2018 2 commits
    • Alexander Alekhin's avatar
      fix build · 79052e15
      Alexander Alekhin authored
      79052e15
    • Rostislav Vasilikhin's avatar
      KinectFusion big update: OpenCL support, etc. (#1798) · 75bcd397
      Rostislav Vasilikhin authored
      * KinFu demo: idle mode added
      
      * undistort added
      
      * KinFu demo: depth recorder added
      
      * TSDFVolume gets voxelSize, voxelSizeInv, truncDist members; decorative fixes
      
      * TSDFVolumeGPU::integrate(): host code compiles
      
      * TSDFVolume: truncDist fixed
      
      * TSDFVolume::integrate(): initial OCL version is done
      
      * TSDFVolume::integrate(): OCL: minor fixes
      
      * kinfu: small fixes
      
      * TSDFVolume::raycast(): initial GPU version is done
      
      * USE_INTRINSICS directive for centralized enable/disable opt. code
      
      * TSDF Volume supports 3 different sizes/resolutions on each dimension
      
      * TSDFVolume: serviceMembers moved to parent class
      
      * TSDFVolumeGPU: mem order changed, gave perf boost 4x
      
      * Frame: fixed UMat as InputArray; TSDF: comments, TODOs, minor fixes
      
      * Frame::getPointsNormals(); minors
      
      * FrameGPU: initial version (not working)
      
      * minor
      
      * FrameGPU: several fixes
      
      * added OCL "fast" options
      
      * ICP OCL: initial slow version is done (host-side reduce)
      
      * ICP OCL: reduce is done, buggy
      
      * KinFu Frame: more args fixes
      
      * ICP OCL: small fixes to kernel
      
      * ICP OCL reduce works
      
      * OCL code refactored
      
      * ICP OCL: less allocations, better speed
      
      * ICP OCL: pose matrix made arg
      
      * Render OCL: small fix
      
      * Demo: using UMats everywhere
      
      * TSDF integrate OCL: put const arg into kernel arg
      
      * Platform parameter partially removed, implementation choice is done through OCL availability check
      
      * Frame and FrameGenerator removed (other code is in following commits)
      
      * CPU render: 4b instead of 3b
      
      * ICP: no Frame class use, one class for both CPU and GPU code
      
      * demo: fix for UMat chain
      
      * TSDF: no Frame or FrameGenerator use
      
      * KinFu: no Frame or FrameGenerator, parametrized for Mat or UMat based on OCL availability
      
      * KinFu::setParams() removed since it has no effect anyway
      
      * TSDF::raycast OCL: fixed normals rendering
      
      * ScopeTime -> CV_TRACE
      
      * 3-dims resolution and size passed to API
      
      * fixed unexpected fails of ICP OCL
      
      * voxels made cubic again
      
      * args fixed a little
      
      * fixed volSize calculation
      
      * Tests: inequal, OCL, unified scene test function
      
      * kinfu_frame: input types fixed
      
      * fixed for Intel HD Graphics
      
      * KinFu demo: setUseOptimized instead of setUseOpenCL
      
      * tsdf: data types fixed
      
      * TSDF OCL: fetch normals implemented
      
      * roundDownPow2 -> utils.hpp
      
      * TSDF OCL: fetch points+normals implemented
      
      * TSDF OCL: NoSize, other fixes for kernel args
      
      * Frame OCL: HAVE_OPENCL, NoSize, other kernel args fixed
      
      * ICP OCL: HAVE_OPENCL, NoSize and other kernel fixes
      
      * KinFu demo fixes: volume size and too long delay
      
      * whitespace fix
      
      * TSDF: allowed sizes not divisable by 32
      
      * TSDF: fixed type traits; added optimization TODOs
      
      * KinFu made non-free
      
      * minor fixes: cast and whitespace
      
      * fixed FastICP test
      
      * warnings fixed: implicit type conversions
      
      * OCL kernels: local args made through KernelArg::Local(lsz) call
      
      * MSVC warnings fixed
      
      * a workaround for broken OCV's bilateral
      
      * KinFu tests made a bit faster
      
      * build fixed until 3.4 isn't merged to master
      
      * warnings fixed, test time shortened
      75bcd397
  5. 06 Sep, 2018 1 commit
  6. 25 Jun, 2018 2 commits
  7. 31 May, 2018 1 commit
    • Rostislav Vasilikhin's avatar
      KinectFusion implemented (#1627) · 42a889ef
      Rostislav Vasilikhin authored
      * empty kinfu module created
      
      * KinFu: skeleton is done
      
      * some intermediate state fixed
      
      * fixed normal calculation
      
      * bilinear depth interp: fixing missing data
      
      * TSDF integration optimized
      
      * TSDF: adding constness
      
      * utils: isNaN; Intr::Projector const reference fixed
      
      * TSDF raycast: quality improvements
      
      * TSDF fetchCloud is done
      
      * render() added
      
      * ICP implemented
      
      * debug code moved to demo.cpp
      
      * less TODOs
      
      * partial refactoring
      
      * TSDF: fetchPoints() and fetchNormals() rewritten in parallel manner
      
      * platform choose added
      
      * reordered
      
      * data types isolated off the platform
      
      * minor fixes
      
      * ScopeTime added
      
      * fixed iterations gathering
      
      * volume::integrate() parallelized but works slow (big overhead for
      
      * raycast is done in parallel
      
      * got rid of kftype and p3type
      
      * fetchNormals() fixed
      
      * less code duplication
      
      * nan check reduced, interpolate() refactored to fetchVoxel()
      
      * ICP: optimizations
      
      * TSDF: bilinear specialized
      
      * TSDF: voxelSizeInv pushed away
      
      * TSDF: interpolation optimized
      
      * TSDF::integrate: parallel_for now works fast
      
      * Frame::render: pow -> float ipow<int p>(x)
      
      * ICP::getAb: parallel_for
      
      * ICP::getAb: time print disabled
      
      * ICP::getAb::bilinear: 2 calls joined
      
      * refactored, extra functions removed
      
      * optimized to use only 27 elems
      
      * ICP::getAb: better optimized
      
      * Points and Normals data type expanded to 4 channels
      
      * ICP optimized (doesn't work)
      
      * ICP::getAb is on intrinsics and it works
      
      * NaN check is faster
      
      * ICP::getAB: minors
      
      * added non-SIMD code as fallback
      
      * TSDF::fetchVoxel and interpolation: got rid of coord check
      
      * TSDF::fetchVoxel: refactor
      
      * TSDF::raycast: local copies of members
      
      * TSDF::interpolate: refactored for simplier vectorization
      
      * TSDF::getNormal: refactored for simplier vectorization
      
      * minor
      
      * include "intrin.hpp" moved to precomp.hpp
      
      * TSDF::coords shifts moved to class body
      
      * TSDF::getNormal vectorized
      
      * TSDF::getNormal: little improvements
      
      * TSDF::interpolate: little improvements
      
      * TSDF::raycast vectorized
      
      * more to precomp.hpp
      
      * TSDF: minor optimizations
      
      * TSDF::raycast cycles optimized
      
      * TSDF::fetchPointsNormals instead of separate p and n
      
      * TSDF::bilinearInterpolate: little speedup
      
      * TSDF::interpolate: speed up
      
      * TSDF::interpolate: more compact code
      
      * TSDF::getNormal and raycast main cycle made faster
      
      * ICP: few improvements
      
      * Frame: a lot of parts parallelized
      
      * TSDF::fetchPointsNormals minor improvements
      
      * TSDF::integrate and bilinear vectorized
      
      * TSDF::interpolate and getNormal: interpolation vectorized
      
      * ICP: minor changes
      
      * gradientDeltaFactor removed, coarseParams() added
      
      * TSDF::raycast: fixed bug with tmin/tmax
      
      * minors
      
      * baseZ fixed
      
      * ICP: interpolation fixed, non-parallelized code fixed
      
      * TSDF::interpolate: bilinear fixed, less artifacts
      
      * TSDF: minor refactoring
      
      * TSDF: some members moved to parent class
      
      * added tests for KinFu
      
      * KinFu documented
      
      * docs fixed
      
      * warnings fixed
      
      * license added, overrides added
      
      * minors
      
      * ScopeTime moved to separate file
      
      * less memory allocations
      
      * demo improved, java binding disabled
      
      * viz module made optional
      
      * fix to demo
      
      * frameGenerator interface: got rid of refs to cv::Ptr
      
      * demo made interactive
      
      * trying to fix build
      
      * trying to fix warnings
      
      * warning fixed
      
      * demo fixed
      
      * raycast_step_factor tuned
      
      * legal info added
      
      * don't reset if ICP failed
      
      * refactoring: KinFu::operator() => update()
      
      * KinFu::KinFuParams => ::Params
      
      * get/setParams
      
      * fetch => get
      
      * all src moved to cv::kinfu namespace
      
      * struct Intr made internal
      
      * kinfu_module merged into rgbd module
      
      * License preambule updated
      
      * minors
      
      * frame.* renamed to kinfu_frame.*
      
      * warnings fixed
      
      * more warnings fixed
      
      * RGBD normals: a fix against Inf/Nan values
      
      * FastICP: fixed transformation direction
      
      * RGBD Odometry tests: added epsilon for id transform; minors
      
      * RGBD Odometry tests enabled
      
      * modules list fixed
      42a889ef
  8. 20 Aug, 2015 1 commit
  9. 17 Feb, 2015 1 commit
  10. 29 Jul, 2014 2 commits
  11. 28 Jul, 2014 1 commit
  12. 20 Jun, 2014 1 commit
  13. 17 Feb, 2014 1 commit
  14. 13 Feb, 2014 1 commit