{"id":13847811,"url":"https://github.com/GerhardR/kfusion","last_synced_at":"2025-07-12T11:32:11.560Z","repository":{"id":2217364,"uuid":"3166962","full_name":"GerhardR/kfusion","owner":"GerhardR","description":"This is an implementation sketch of the KinectFusion system described by Newcombe et al. ","archived":false,"fork":false,"pushed_at":"2015-04-11T01:28:12.000Z","size":833,"stargazers_count":194,"open_issues_count":4,"forks_count":82,"subscribers_count":25,"default_branch":"master","last_synced_at":"2024-08-05T19:34:56.549Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GerhardR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-01-12T23:35:41.000Z","updated_at":"2024-01-04T15:53:08.000Z","dependencies_parsed_at":"2022-09-08T07:42:03.538Z","dependency_job_id":null,"html_url":"https://github.com/GerhardR/kfusion","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GerhardR%2Fkfusion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GerhardR%2Fkfusion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GerhardR%2Fkfusion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GerhardR%2Fkfusion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GerhardR","download_url":"https://codeload.github.com/GerhardR/kfusion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225820304,"owners_count":17529138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T19:00:32.274Z","updated_at":"2024-11-21T23:30:36.448Z","avatar_url":"https://github.com/GerhardR.png","language":"C++","funding_links":[],"categories":["C++","Software"],"sub_categories":[],"readme":"\nKFusion 0.4\n=============\n\nCopyright TU Graz, Gerhard Reitmayr, 2011 - 2013\n\nThis is an implementation sketch of the KinectFusion system described by\nRichard Newcombe et al. in \"KinectFusion: Real-Time Dense Surface Mapping and Tracking\",\nISMAR 2011, 2011. It is a dense surface reconstruction and tracking framework\nusing a single Kinect camera as the input sensor.\n\nhttp://research.microsoft.com/en-us/projects/surfacerecon/\n\nKFusion is mainly written in CUDA with some interface code to display graphics output.\n\nRequirements\n------------\n\nKFusion depends on the following libraries:\n\n* http://www.edwardrosten.com/cvd/toon.html\n* GLUT\n\nOn Windows use the MS Kinect SDK:\n\n* http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx\n\nwhile on other platforms use libfreenect:\n\n* http://openkinect.org/\n\nand of course the CUDA 5 SDK by NVidia\n\n* http://developer.nvidia.com/cuda\n\nInstall\n-----\n\nUse CMake to create build files for your platform. Some tips and tricks\n- On Windows, make sure to use a 64-bit version of GLUT\n- On Apple OSX, set CUDA_HOST_COMPILER to /usr/bin/g++\n\nAltenatively, On Unix/OSX platforms, tweak the Makefile for your setup, then make.\n\nHave a look at kfusion.h for a description of most parameters and kinect.cpp for setting them.\n\nTodo\n-----\n- rendering\n  - integrate with GL for additional 3D graphics\n- write an inverse tracking method that moves the camera in the system\n- save size through combined depth + 2D normal maps\n\nDone\n-----\n- MSKinect SDK interface for Windows, libfreenect on other platforms\n- rendering with static model view + projected RGB + interactive viewpoint\n- registered depth input from libfreenect, uses more time unfortunately\n- integration speed up\n- CMake build system (contributed by Hartmut Seichter)\n- fixed a substantial bug in tracking\n- improved raycasting by an implementation closer to the paper. This also seems to take care of the following issue:\n    - tracking works much better with a detailed model and sharp bounds on normals (0.9), problem for low resultion ?\n- replaced libcvd with GLUT in the master branch\n- created dedicated Image class templated on different memory locations,\n  reduces most dependencies on libcvd\n- removed all 3D grids to reduce code and maybe speed up as well\n- 2D grid for volume integration is 40% faster\n- fixed a difference in computing normals in raycasting and from kinect input... maybe influences tracking ?\n- added a combined tracking \u0026 reduce implementation that saves a bit of time\n- make configuration more automatic, compute dependent variables, scales for tracking\n- make a version that uses one volume for both SDF + weight\n  - split 32bit into 16bit float [-1,-1] and unsigned int for weight\n- scaling for better optimization, didn't really do much, removed it again\n- multi level tracking\n- split\n  - core operations\n  - testing with extra volume etc\n  - rendering\n  - make OO ?\n- speed up raycasting with mu step sizes\n- reduction somewhat better through local memory -\u003e shared memory\n- test larger volume sizes\n  - 3D operations over 2D grid - works nicely !\n- pitched images no change, because they are already all pitched !\n- template volume on data type and convert to/from float on the fly - did not change speed at all !\n- ambient lighting\n- bilateral filtering\n\nContributors\n-------------\nHartmut Seichter\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGerhardR%2Fkfusion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGerhardR%2Fkfusion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGerhardR%2Fkfusion/lists"}