Coder Social home page Coder Social logo

itking666 / 3d-semantic-mapping Goto Github PK

View Code? Open in Web Editor NEW

This project forked from morgenzhang/3d-semantic-mapping

0.0 1.0 0.0 8.46 MB

This is part of my semester project taken in Computer Vision & Geometry Lab, ETH Zurich, Switzerland, aiming to create a pipeline for real-time 3D semantic mapping. The whole system is built on InfiniTAM V3 and new module: semantic fusion has been added.

Vim Script 0.03% CMake 5.69% C++ 62.09% Makefile 20.83% Java 0.61% Objective-C 0.30% Objective-C++ 3.23% C 2.18% Cuda 3.96% Metal 0.89% Shell 0.18%

3d-semantic-mapping's Introduction

3D-Semantic-Mapping

This is part of my semester project taken in Computer Vision & Geometry Lab, ETH Zurich, Switzerland, aiming to create a pipeline for real-time 3D semantic mapping. The whole system is built on InfiniTAM V3 and new module: semantic fusion has been added. Currently support both CPU and GPU implementation.

InfiniTAM Semantic Mapping


Running Command


cd /path/to/your/workspace
mkdir build
cd build
cmake /path/to/InfiniTAM
./Apps/InfiniTAM/InfiniTAM /path/to/camera_calibration.txt /path/to/RGB/%04i.png /path/to/Depth/%04i.png /path/to/Semantic_Prob/%04i.png
+- libpng is required
+- I store the format of label probability(multiplied by 20000) as png image(uint16)

Code Description (modification based on InfiniTAM v3)


Utils/ITMLibSetting.cpp
+- Set sceneParams(0.3f, 10, 0.015f, 0.1f, 50.0f, false)
+- trackerConfig = "path/to/ground_truth_pose/%04i.txt"

Utils/ITMMath.h
+- Add one more vector type: Vector12f, used for store prob(float) of 12 classes
+- Add one more vector type: Vector12us, used for store raw prob(uint16) of 12 classes

Utils/ITMImageTypes.h
+- Add one more image type: ITMUShort12Image, used for store input prob image

ITMLib/Scene/ITMVoxelTypes.h
+- Add one more voxel type: ITMVoxel_s_semantic

ITMLib/Scene/ITMVoxelBlockHash.h
+- Modify SDF_LOCAL_BLOCK_NUM 0x40000 -> 0x80000
+- Modify SDF_BUCKET_NUM 0x100000 -> 0x200000
+- Modify SDF_HASH_MASK 0xfffff -> 0x1fffff
+- Modify SDF_EXCESS_LIST_SIZE 0x20000 -> 0x40000
+- Modify SDF_TRANSFER_BLOCK_NUM 0x1000 -> 0x2000 \

ITMLib/Scene/ITMRepresentationAccess.h
+- Add semantic rendering utils (similar to RGB) using voxel information "sem"

ITMLib/Core/ITMMainEngine ITMBasicEngine ITMMultiEngine
+- Add corresponding ITMUShort12Image IO

ITMLib/Views/ITMView.h
+- Add corresponding ITMUShort12Image IO

ITMLib/Trackers/Interface/ITMFileBasedTracker
+- Modify the pose input code

ITMLib/Engines/ViewBuilding/ITMViewBuilder_Shared
+- Modify convertDisparityToDepth function according to KITTI camera parameters

ITMLib/Engines/Reconstruction/Shared/ITMSceneReconstructionEngine_Shared.h
+- Add incremental semantic label fusion: computeUpdatedVoxelSemanticInfo
+- Modify allocation function:buildHashAllocAndVisibleTypePP, discard sky

ITMLib/Engines/Reconstruction/CPU/ITMSceneReconstructionEngine_CPU.tpp
+- Add CRF optimization (only CPU version)
+- Add maximal prob decoding table, transfer prob to color

ITMLib/Engines/Visualisation/Shared/ITMVisualisationEngine_Shared.h
+- Add semantic rendering function based on some utils in ITMRepresentationAccess.h

All the modules are modified in both CPU and GPU version except CRF optimization

which is currently commented for real-time application

Any questions regarding this code source can be sent to [email protected]

3d-semantic-mapping's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.