Open3D Version 0.5.0 (released 2019-01-17)
The Open3D team and the Open Source Vision Foundation (http://www.osvf.org) are excited to announce the 0.5.0 release of the Open3D library.
In this release we show the power of Open3D as a core tool to create machine learning solutions for 3D data. We introduce a re-implementation of the PointNet++ architecture to perform point cloud semantic segmentation using Open3D and TensorFlow. Our Open3D-PointNet++ is able to produce highly accurate results in the Semantic3D benchmark, surpassing the results of the original PointNet++ implementation. Even more exciting is the fact that our re-designed Open3D-PointNet++ is able to perform real-time inference (+10 FPS) on the KITTI dataset. We show how to perform training and inference of Open3D-PointNet++ in both Semantic3D and KITTI. Check out this blog post for more information!
We have also added a new VoxelGrid representation and tooling to convert from point clouds to a VoxelGrid structure. This functionality is extremely useful to produce representations that are easier to digest by neural networks.
We have also done significant improvements to our internal infrastructure, including a simplified CI testing mechanism via docker images, enhanced testing coverage, and easier installation of the library.
Full list of changes below. Please send us feedback at info@open3d.org and join our Discord network [link] to participate in the discussions.
Enjoy!
The Open3D team
Legend:
- [Added]: Used to indicate addition of new features
- [Changed]: Updates of existing functionalities
- [Deprecated]: Functionalities / features removed in future releases
- [Removed]: Functionalities / features removed in this release
- [Fixed]: For any bug fixes
- [Breaking] This functionality breaks the previous API and you need to check your code
Installation and project structure
- [Added] docker images for Open3D in dockerhub
- [Added] option to disable jupyter build
- [Added] new way of detecting conda active environment
- [Added] option to link to static Windows runtime
- [Changed] 3rdparty folder moved to Open3D-3rdparty repository
- [Changed] bug_report.md to improve communication with users when issues are reported
- [Fixed] Conda and Pip packaging issues to build platform-specific targets
- [Fixed] conda dependency conflicts resulting in forced downgrade
- [Fixed] python 2.7 import JVisulizer
- [Fixed] Disabled conda executable check (conda command could be a bash function instead of an executable, CMake may complain)
- [Fixed] Windows compilation warning with py::ssize_t
- [Removed] mac flag -Wno-expansion-to-defined in CI
CORE features and applications
- [Added] New Open3D Point cloud semantic segmentation architecture based on PointNet++
- [Added] New training code for Point cloud semantic segmentation
- [Added] New real-time inference code for Point cloud semantic segmentation
- [Added] New compatibility with TensorFlow operators
- [Added] New function for building Jacobian matrices that follows RGBDOdometry structure
- [Added] Non-rigid optimization for more than 6 variables (6D camera pose + anchor points)
- [Added] A new general purpose image processing function: CreateDepthBoundaryMask
- [Added] "shift + +/-" key event that can change width of LineSet for the visualization
- [Added] line_width in RenderOption and corresponding Python binding (Applies to C++/Python API)
- [Added] I/O functions for LineSet
- [Added] "lineset" option into ViewGeometry application
- [Added] New box primitive
- [Added] VoxelGrid structure
- [Added] I/O functions for VoxelGrid
- [Added] Utility function to transform point clouds to voxels
- [Added] new shader to render voxel clouds
- [Added] warning output for "degenerated" TriangleMeshes
- [Added] Promote compiled extension for pycharm autocomplete
- [Changed] Image class to use namespace directive in order to reduce code line length
[Changed] Image class to remove global variables
[Changed] Image class to shorten local variables names
[Changed] Image class to simplify comparisons using unit_test::ExpectEQ(...) - [Changed] KDTreeFlann class to use namespace directive in order to reduce code line length
- [Changed] KDTreeFlann class to simplify comparisons using unit_test::ExpectEQ(...)
- [Changed] TriangleMesh class to use namespace directive in order to reduce code line length
- [Changed] TriangleMesh class to simplify comparisons using unit_test::ExpectEQ(...)
- [Changed] Relative paths in CMake package config
- [Changed] Factorization of internal functions in ColormapOptimization module as public functions
- [Changed] RGBDImage class to use namespace directive in order to reduce code line length
- [Changed] RGBDImage class to simplified comparisons using unit_test::ExpectEQ(...)
- [Changed] RGBDImage class to fixed Rand float/double to return unscaled values between 0.0 and 1.0
- [Changed] PointCloud class to use namespace directive in order to reduce code line length
- [Changed] PointCloud class to simplify comparisons using unit_test::ExpectEQ(...)
- [Changed] LineSet class to use namespace directive in order to reduce code line length
- [Changed] LineSet class to simplify comparisons using unit_test::ExpectEQ(...)
- [Changed] Vector3dvector and other vector Eigen bindings to improve performance (speedup of 40-200x)
- [Fixed] Bug due to PinholeCameraIntrinsic constructor not initializing member data
- [Fixed] Bug in PinholeCameraTrajectory
- [Fixed] Bug in ConvertToJsonValue
- [Fixed] Bug in ConvertFromJsonValue
- [Fixed] Bug in TransformationEstimationPointToPlane::ComputeRMSE
- [Fixed] typos in FilePLY.cpp: from ply_poincloud_reader to ply_pointcloud_reader
- [Fixed] parameter name of create_window
- [Removed] Unneeded std::move calls
Documentation and tutorials
- [Added] New tutorial on how to perform real-time PointCloud semantic segmentation using Open3D
- [Added] Documentation on supported point cloud formats
Testing and benchmarking
- [Added] Test case for IJsonConvertible
- [Added] Test case for Core/Utility/Eigen
- [Added] Test case for Core/Utility/FileSystem
- [Added] Test case for PinholeCameraTrajectory
- [Added] Test case for PinholeCameraIntrinsic
- [Added] Test case for RGBDOdometryJacobianFromHybridTerm
- [Added] Test case for RGBDOdometryJacobianFromColorTerm
- [Added] New reference data for RGBDImage based on fixes to Rand float/double
- [Added] New utilities for generating input data for the unit tests
- [Changed] UnitTest/Utility moved to its own folder
- [Changed] unit_test:ExpectEQ to removed unused code