or-pcd


Nameor-pcd JSON
Version 0.0.1b7 PyPI version JSON
download
home_pagehttps://github.com/dpolimeni/Multi-scale-pointcloud-registration
SummaryA python package to perform pointcloud registration with scale differences using a two-block optimization approach
upload_time2024-08-01 15:48:34
maintainerNone
docs_urlNone
authorDiego Polimeni and Alessandro Pannone
requires_python>=3.11
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Registration Library OR-PCD 🚀
☁ OR-PCD is a library that implements a two block optimization approach in order to align Pointclouds. This method was created as a solution capable to manage scale and differences among the three coordinate axes of the clouds. In our approach we optimize the scale differences considering all the x/y/z coordinates directions as variables.

It integrates an inner optimization block where standard rototranslation matrix is obtained and an outer one where the best scale factors are estimated through with a pattern search algorithm ⠻⠏.

# Library Structure
The library is composed of 3 main components and the objective is the let them be as extendible as possible in order to add other optimization pipelines during time.
These are the components:
- ⛓ Preprocessor: the preprocessor represent the standardization pipeline used before aligning the pointclouds. At the moment is composed of:
  1. Downsamplers: Porcess blocks that downsample pointclouds having too much points
  2. Scalers: Process block that scale the clouds initially
  3. Outliers: Porcess blocks that let you remove outliers from the cloud
- 🔝 Optimizer: Inner block optimization methods. At the moment FastGlobal/GeneralizedICP are available
- ⁑ The Aligner: is the outer block of the optimization. At the moment not extendible as it performs a pattern search with a multi-start procedure in order to find best scale parameters.

We provide some sample data to test and extend this library. You can find all of them within the data folder of the library.

## Example code for beginners

### First import main components
```
from or_pcd.Preprocessor.Downsamplers import RandomDownsampler
from or_pcd.Aligner import Aligner
from or_pcd.Optimizer import GeneralizedICP, FastGlobalOptimizer
from or_pcd.Preprocessor.Outliers import SOR
from or_pcd.Preprocessor.preprocessor import Preprocessor
from or_pcd.data import load_sample_cloud
```
### Then load some sample clouds
```
source_cloud = load_sample_cloud("ArmadilloBack_330")
target_cloud = load_sample_cloud("ArmadilloBack_0")
```

### Initialize optimizers with default parameters and run alignment
```
optimizer = FastGlobalOptimizer()
preprocessor = Preprocessor([RandomDownsampler(5000), SOR()])
aligner = Aligner(preprocessor, preprocessor, optimizer, visualize_intermediate_steps=True)
aligner.align(source_cloud, target_cloud)
```



# Equally involved contributors:

- Diego Polimeni: diego.polimeni99@gmail.com
- Alessandro Pannone: a.pannone1798@gmail.com

Feel free to reach out to the contributors if you have any questions or suggestions.

Thank you for your interest in our project!

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/dpolimeni/Multi-scale-pointcloud-registration",
    "name": "or-pcd",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": null,
    "author": "Diego Polimeni and Alessandro Pannone",
    "author_email": "a.pannone1798@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/40/40/f1812f77a0b10dad782efb3d238e17aae33f057176d5f5c776df77ac3982/or_pcd-0.0.1b7.tar.gz",
    "platform": null,
    "description": "# Registration Library OR-PCD \ud83d\ude80\n\u2601 OR-PCD is a library that implements a two block optimization approach in order to align Pointclouds. This method was created as a solution capable to manage scale and differences among the three coordinate axes of the clouds. In our approach we optimize the scale differences considering all the x/y/z coordinates directions as variables.\n\nIt integrates an inner optimization block where standard rototranslation matrix is obtained and an outer one where the best scale factors are estimated through with a pattern search algorithm \u283b\u280f.\n\n# Library Structure\nThe library is composed of 3 main components and the objective is the let them be as extendible as possible in order to add other optimization pipelines during time.\nThese are the components:\n- \u26d3 Preprocessor: the preprocessor represent the standardization pipeline used before aligning the pointclouds. At the moment is composed of:\n  1. Downsamplers: Porcess blocks that downsample pointclouds having too much points\n  2. Scalers: Process block that scale the clouds initially\n  3. Outliers: Porcess blocks that let you remove outliers from the cloud\n- \ud83d\udd1d Optimizer: Inner block optimization methods. At the moment FastGlobal/GeneralizedICP are available\n- \u2051 The Aligner: is the outer block of the optimization. At the moment not extendible as it performs a pattern search with a multi-start procedure in order to find best scale parameters.\n\nWe provide some sample data to test and extend this library. You can find all of them within the data folder of the library.\n\n## Example code for beginners\n\n### First import main components\n```\nfrom or_pcd.Preprocessor.Downsamplers import RandomDownsampler\nfrom or_pcd.Aligner import Aligner\nfrom or_pcd.Optimizer import GeneralizedICP, FastGlobalOptimizer\nfrom or_pcd.Preprocessor.Outliers import SOR\nfrom or_pcd.Preprocessor.preprocessor import Preprocessor\nfrom or_pcd.data import load_sample_cloud\n```\n### Then load some sample clouds\n```\nsource_cloud = load_sample_cloud(\"ArmadilloBack_330\")\ntarget_cloud = load_sample_cloud(\"ArmadilloBack_0\")\n```\n\n### Initialize optimizers with default parameters and run alignment\n```\noptimizer = FastGlobalOptimizer()\npreprocessor = Preprocessor([RandomDownsampler(5000), SOR()])\naligner = Aligner(preprocessor, preprocessor, optimizer, visualize_intermediate_steps=True)\naligner.align(source_cloud, target_cloud)\n```\n\n\n\n# Equally involved contributors:\n\n- Diego Polimeni: diego.polimeni99@gmail.com\n- Alessandro Pannone: a.pannone1798@gmail.com\n\nFeel free to reach out to the contributors if you have any questions or suggestions.\n\nThank you for your interest in our project!\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A python package to perform pointcloud registration with scale differences using a two-block optimization approach",
    "version": "0.0.1b7",
    "project_urls": {
        "Homepage": "https://github.com/dpolimeni/Multi-scale-pointcloud-registration"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "253796afc238e3082026a9ff9ed4734d20484dabb0bd72028580dea488fa28c6",
                "md5": "ee0406d96b904ce4a3fe350878e49386",
                "sha256": "1a5c6ef8232187ac953f2aa15cde90368def1ad1c6421999e67806121a7a8da5"
            },
            "downloads": -1,
            "filename": "or_pcd-0.0.1b7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ee0406d96b904ce4a3fe350878e49386",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 1701562,
            "upload_time": "2024-08-01T15:48:32",
            "upload_time_iso_8601": "2024-08-01T15:48:32.257678Z",
            "url": "https://files.pythonhosted.org/packages/25/37/96afc238e3082026a9ff9ed4734d20484dabb0bd72028580dea488fa28c6/or_pcd-0.0.1b7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4040f1812f77a0b10dad782efb3d238e17aae33f057176d5f5c776df77ac3982",
                "md5": "6a9ddaa9c599036b28b1d3833e3ce51a",
                "sha256": "77f8e1f292208eeb3f4e924e27b97db18f3ce6923b5e94ac5891e5a3d6c2e78c"
            },
            "downloads": -1,
            "filename": "or_pcd-0.0.1b7.tar.gz",
            "has_sig": false,
            "md5_digest": "6a9ddaa9c599036b28b1d3833e3ce51a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 1700781,
            "upload_time": "2024-08-01T15:48:34",
            "upload_time_iso_8601": "2024-08-01T15:48:34.048345Z",
            "url": "https://files.pythonhosted.org/packages/40/40/f1812f77a0b10dad782efb3d238e17aae33f057176d5f5c776df77ac3982/or_pcd-0.0.1b7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-01 15:48:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dpolimeni",
    "github_project": "Multi-scale-pointcloud-registration",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "or-pcd"
}
        
Elapsed time: 1.14970s