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

86 Commits

Author SHA1 Message Date
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
Gagandeep Singh
b3ad2c323d Merge pull request #2341 from czgdp1807:issue-2277
Added constructors and destructors for RgbdPlane

* declared constructors and destructors of RgbdPlane

* definitions written

* tests for python bindings added
2019-11-19 21:43:02 +03:00
Alexander Alekhin
47de8dd38f python: force using of ArgInfo 2019-11-15 19:16:28 +03:00
Alexander Alekhin
7d7312a99a Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-10-29 20:42:05 +00:00
Deni
229cd72911 Merge pull request #2309 from deni64k:master
Fix memory corruption in RgbdPlane

* Fix memory corruption

* Use divUp instead of explicit rounding up integer division

* rgbd: add test
2019-10-25 17:51:03 +03:00
Apoorv Goel
8b59dffc61 Merge pull request #2161 from UnderscoreAsterisk:dynafu
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
2019-10-21 17:29:49 +03:00
Rostislav Vasilikhin
a1d873092f 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
2019-06-05 15:32:20 +03:00
Rostislav Vasilikhin
5eaa25c950 Merge pull request #2106 from savuor:kinfu_fix_ocl
KinFu: try to fix OCL fails (#2106)

* some TODOs closed

* temporary turn on NaNs patching

* reverted

* temporary debug code added

* more debug code

* inf check; more debug code

* debug code in kernel

* debug code, try to disable some optimizations

* -cl-fast-relaxed-math option removed, debug code removed
2019-05-04 15:37:29 +03:00
Alexander Alekhin
d6895a1b25 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-02-05 19:00:53 +03:00
Alexander Alekhin
320e633f96 Merge pull request #1981 from paroj:linemodpy 2019-02-01 16:12:51 +00:00
Alexander Alekhin
158af2f7c4 Merge pull request #1980 from mshabunin:clang-warnings 2019-02-01 16:12:24 +00:00
Alexander Alekhin
cf4ad7a1f0 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-02-01 13:16:08 +03:00
Pavel Rojtberg
f515f0ffe5 linemod: allow creating modalities from bindings 2019-01-31 15:29:51 +01:00
Maksim Shabunin
83fc27cb99 Fixed warnings produced by clang-9.0.0 2019-01-30 15:14:15 +03:00
berak
7c628d73e3 rgbd: fix python bindings 2019-01-26 11:37:24 +01:00
Pavel Rojtberg
b4dea4ef47 linemod: add drawFeatures method 2018-12-07 17:11:15 +01:00
Alexander Alekhin
eae6244757 Merge pull request #1876 from tomoaki0705:fixRgbdTestFailure 2018-11-06 23:59:58 +03:00
Alexander Alekhin
299bbcc800 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-11-06 20:01:24 +00:00
Tomoaki Teshima
8aaa91c3dc avoid test failing on Aarch64
* loosen the threshold in Rgbd_Normals.compute
  * make the minimum tvec larger in RGBD_Odometry_Rgbd.algorithmic
2018-11-05 20:32:23 +09:00
Alexander Alekhin
3901fb76c3 Merge pull request #1841 from soyersoyer:kinfu_demo_start 2018-10-15 14:19:57 +00:00
soyer
1441c8e443 The kinfu_demo should open the default camera if I don't specify the camera in the cli 2018-10-15 15:25:02 +02:00
soyer
8a4c85b099 use the c++11's shiny initializer list feature 2018-10-14 22:30:25 +02:00
Alexander Alekhin
811037d1fa rgbd: run non-free tests if OPENCV_ENABLE_NONFREE is defined 2018-10-14 02:48:22 +00:00
Alexander Alekhin
6c4cb5d8d3 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-10-13 15:08:09 +00:00
Alexander Alekhin
6609d3e4fe rgbd: fix OpenCL includes 2018-10-12 19:39:14 +00:00
Rostislav Vasilikhin
bc5a06a4f7 fixed odometry tests (changes ported from PR #1627) 2018-10-12 17:42:40 +03:00
Alexander Alekhin
79052e15a3 fix build 2018-10-09 14:26:16 +00:00
Rostislav Vasilikhin
75bcd397af KinectFusion big update: OpenCL support, etc. (#1798)
* 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
2018-10-09 12:26:54 +03:00
Alexander Alekhin
da989664e0 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-09-15 00:49:36 +03:00
Hamdi Sahloul
d1b5431094 MSVC: Slience external/meaningless warnings 2018-09-12 20:49:31 +09:00
Alexander Alekhin
abb211d064 avoid Ptr<> == NULL checks 2018-09-09 19:30:02 +00:00
Alexander Alekhin
a2eae86c15 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-09-06 23:31:32 +03:00
Alexander Alekhin
21d5949e83 fix build 2018-09-06 14:35:00 +03:00
Alexander Alekhin
ef965066fa Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-07-17 19:24:56 +03:00
Alexander Alekhin
b9d83609de build: eliminate GCC8 warnings 2018-07-16 17:21:45 +03:00
Alexander Alekhin
09e05b8471 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-07-09 19:28:18 +03:00
Pavel Rojtberg
9e787377dc kinfu: allow basic wrapping for bindings
for this
- move Params struct out of class
- use static create instead of pimpl
- allow demo to be compiled without VIZ
2018-06-25 14:27:00 +02:00
Rostislav Vasilikhin
e351caedf7 KinectFusion demo: live input support added (#1671)
* KinFu demo: added support for live demo, some bugs fixed

* minor fixes

* Kinect2 workarounds and defaults added
2018-06-25 14:09:39 +03:00
Alexander Alekhin
fc69aa57bc opencv: use cv::AutoBuffer<>::data() 2018-06-13 19:11:18 +00:00
Rostislav Vasilikhin
42a889ef4f KinectFusion implemented (#1627)
* 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
2018-05-31 14:18:25 +03:00
Alexander Alekhin
1248ebeb03 build: fix warnings 2018-04-24 15:24:57 +03:00
Alexander Alekhin
383a0061c4 Merge pull request #1606 from paroj:lmpy 2018-04-11 15:50:13 +00:00
Pavel Rojtberg
92fd42e58e linemod: export Template::features for python 2018-04-11 16:30:53 +02:00
Alexander Alekhin
5d0a12833b rgbd: apply CV_OVERRIDE/CV_FINAL 2018-03-28 16:50:00 +03:00