Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

torch-ransac3d

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

torch-ransac3d

A high-performance implementation of 3D RANSAC (Random Sample Consensus) algorithm using PyTorch and CUDA.

  • 1.0.36
  • PyPI
  • Socket score

Maintainers
1

Logo

A high-performance implementation of 3D RANSAC algorithm using PyTorch and CUDA.
Explore the docs »


View Demo · Report Bug · Request Feature

Installation

Requirements: torch

Install with PyPI :

pip install torch-ransac3d

Features

  • High-performance RANSAC implementation using PyTorch and CUDA
  • Supports fitting of multiple geometric primitives:
    • Lines
    • Planes
    • Spheres
  • Batch processing capability for improved efficiency
  • Support for both PyTorch tensors and NumPy arrays as input

Example Usage

Line Fitting

import torch
import numpy as np
from torch_ransac3d.line import line_fit

# Using PyTorch tensor
points_torch = torch.rand(1000, 3)
direction, point, inliers = line_fit(
    pts=points_torch,
    thresh=0.01,
    max_iterations=1000,
    iterations_per_batch=100,
    epsilon=1e-8,
    device=torch.device("cuda" if torch.cuda.is_available() else "cpu")
)

# Using NumPy array
points_numpy = np.random.rand(1000, 3)
direction, point, inliers = line_fit(
    pts=points_numpy,
    thresh=0.01,
    max_iterations=1000,
    iterations_per_batch=100,
    epsilon=1e-8,
    device=torch.device("cuda" if torch.cuda.is_available() else "cpu")
)

Plane Fitting

from torch_ransac3d.plane import plane_fit

# Works with both PyTorch tensors and NumPy arrays
points = torch.rand(1000, 3)  # or np.random.rand(1000, 3)
equation, inliers = plane_fit(
    pts=points,
    thresh=0.05,
    max_iterations=1000,
    iterations_per_batch=100,
    epsilon=1e-8,
    device=torch.device("cuda" if torch.cuda.is_available() else "cpu")
)

Sphere Fitting

from torch_ransac3d.sphere import sphere_fit

# Works with both PyTorch tensors and NumPy arrays
points = torch.rand(1000, 3)  # or np.random.rand(1000, 3)
center, radius, inliers = sphere_fit(
    pts=points,
    thresh=0.05,
    max_iterations=1000,
    iterations_per_batch=100,
    epsilon=1e-8,
    device=torch.device("cuda" if torch.cuda.is_available() else "cpu")
)

Parameters

  • pts: Input point cloud (torch.Tensor or numpy.ndarray of shape (N, 3))
  • thresh: Distance threshold for considering a point as an inlier
  • max_iterations: Maximum number of RANSAC iterations
  • iterations_per_batch: Number of iterations to process in parallel
  • epsilon: Small value to avoid division by zero
  • device: Torch device to run computations on (CPU or CUDA)

Input Flexibility

All fitting functions support both PyTorch tensors and NumPy arrays as input. The library automatically converts NumPy arrays to PyTorch tensors internally, allowing for seamless integration with various data formats.

Batch Processing

All fitting functions support batch processing to improve performance. The iterations_per_batch parameter determines how many RANSAC iterations are processed in parallel, leading to significant speedups on GPU hardware.

Credit

This project is based on the work done at https://github.com/leomariga/pyRANSAC-3D/

Contact

Maintainer: Harry Dobbs
Email: harrydobbs87@gmail.com

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc