• 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
normal.cpp 28.4 KB