https://github.com/cheind/polyline-icp
A vectorized n-dimensional ICP implementation for registering two point clouds or a point cloud with a polyline.
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.6%) to scientific vocabulary
Repository
A vectorized n-dimensional ICP implementation for registering two point clouds or a point cloud with a polyline.
Basic Info
- Host: GitHub
- Owner: cheind
- License: mit
- Language: Python
- Default Branch: main
- Size: 1.97 MB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
polyline-icp
A vectorized n-dimensional Iterative Closest Point (ICP) for line-like data.
When matching line-like data (e.g. trajectories or signals), point-to-point matching is feasible only if the underlying signals are densly sampled at the same timesteps. If this is assumption is not met, one can istead match the samples of one signal to the closest interpolated point on the second signal. This is illustrated below

Features
- A ridig/similarity motion ICP implementation with weighted pairing functions for point-to-point and point-to-(closed)-line.
- A polyline class in n-dimensions that supports vectorized linear referencing.
- A weighted rigid/similarity motion estimation from correspondences in n-dimensions.
Usage
Install via
shell
pip install git+https://github.com/cheind/polyline-icp.git
Then run a minimal example
```python import numpy as np
from polyicp.icp import icp
Setup a random problem
x = np.random.randn(10, 2) y = x + np.random.randn(1,2)*1e-2 pidx = np.random.permutation(np.arange(10))
Perform ICP
r = icp(x[pidx], y, withscale=False, pairingfn="polyline") print(r.x_hat) # final points print(r.history) # transform history as (s,R,t) tuples # more fields available ```
Polyline projections
This library comes with a polyline utility to compute the closest points on L polylines in D dimensions to a set of M query points in D dimensions. The class computes closest points and additional information that is useful in linear referencing. Due to its vectorized nature, it is actually quite performant for moderate sizes of L and M.

Owner
- Name: Christoph Heindl
- Login: cheind
- Kind: user
- Location: Austrian area
- Website: https://cheind.github.io/
- Repositories: 88
- Profile: https://github.com/cheind
I am a computer scientist working at the interface of perception, robotics and deep learning.
GitHub Events
Total
- Release event: 1
- Watch event: 2
- Push event: 21
- Create event: 2
Last Year
- Release event: 1
- Watch event: 2
- Push event: 21
- Create event: 2
Committers
Last synced: 8 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Christoph Heindl | c****l@g****m | 23 |
| Christoph Heindl | c****d@p****t | 13 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 8 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- imageio * development
- matplotlib * development
- pytest * development
- scipy * development
- tqdm * development
- numpy *