- 21 Oct, 2019 1 commit
-
-
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
-
- 05 Jun, 2019 1 commit
-
-
Rostislav Vasilikhin authored
KinectFusion: several updates (#2133) * truncateThreshold added * demo updated for RealSense * first Kinect2, then RealSense * more distance-based parameters
-
- 15 Oct, 2018 1 commit
-
-
soyer authored
-
- 09 Oct, 2018 2 commits
-
-
Alexander Alekhin authored
-
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
-
- 06 Sep, 2018 1 commit
-
-
Alexander Alekhin authored
-
- 25 Jun, 2018 2 commits
-
-
Pavel Rojtberg authored
for this - move Params struct out of class - use static create instead of pimpl - allow demo to be compiled without VIZ
-
Rostislav Vasilikhin authored
* KinFu demo: added support for live demo, some bugs fixed * minor fixes * Kinect2 workarounds and defaults added
-
- 31 May, 2018 1 commit
-
-
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
-
- 20 Aug, 2015 1 commit
-
-
Maksim Shabunin authored
-
- 17 Feb, 2015 1 commit
-
-
Maksim Shabunin authored
-
- 29 Jul, 2014 2 commits
-
-
Vadim Pisarevsky authored
-
Vadim Pisarevsky authored
-
- 28 Jul, 2014 1 commit
-
-
Vadim Pisarevsky authored
-
- 20 Jun, 2014 1 commit
-
-
Ilya Lavrenov authored
-
- 17 Feb, 2014 1 commit
-
-
Vincent Rabaud authored
-
- 13 Feb, 2014 1 commit
-
-
Vincent Rabaud authored
-