https://github.com/cheind/polyline-icp

A vectorized n-dimensional ICP implementation for registering two point clouds or a point cloud with a polyline.

https://github.com/cheind/polyline-icp

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
Last synced: 7 months ago · JSON representation

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
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

DOI

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

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

All Time
  • Total Commits: 36
  • Total Committers: 2
  • Avg Commits per committer: 18.0
  • Development Distribution Score (DDS): 0.361
Past Year
  • Commits: 36
  • Committers: 2
  • Avg Commits per committer: 18.0
  • Development Distribution Score (DDS): 0.361
Top Committers
Name Email 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

dev-requirements.in pypi
  • imageio * development
  • matplotlib * development
  • pytest * development
  • scipy * development
  • tqdm * development
pyproject.toml pypi
requirements.in pypi
  • numpy *