Skip to content

v0.1.12

Choose a tag to compare

@edgarriba edgarriba released this 18 May 20:20
3ab4e0d

What's new

3D / Bundle Adjustment

  • Schur-complement bundle adjustment β€” dense reduced camera system (k3d.bundle_adjust_schur)
  • SE(3) pose graph optimization (k3d.pose_graph_optimize)
  • Cheirality-robust BA with pose-only mode and fixed-point gauge (k3d.bundle_adjust)
  • IRLS Huber + Cauchy robust loss for BA
  • solve_pnp_ransac moved into k3d namespace

RANSAC

  • Generic RANSAC framework with NEON+AVX2 scorer and LO-RANSAC
  • Homography estimator with rayon parallel scoring
  • BA robust-kernel wiring

Segmentation + Depth (kornia_rs.segmentation, kornia_rs.depth)

  • COCO RLE ↔ mask encode/decode (NEON-accelerated transpose)
  • depth.sample_depth β€” sample depth under segmentation masks (median or mean, parallel via rayon)
    • 19Γ— speedup on mean path vs pure Python (Jetson Orin, 480Γ—640, 16 masks)

Colormap (kornia_rs.imgproc.apply_colormap, Image.colormap())

  • 21 OpenCV-compatible colormaps (viridis, turbo, jet, …)
  • NEON-accelerated LUT lookup (vqtbl4q_u8, 16 px/iter)

IO β€” RVL depth codec (kornia_rs.io)

  • encode_image_rvl / decode_image_rvl β€” lossless Run-Length Variable depth compression
  • write_image_rvl / read_image_rvl β€” file IO
  • ~3–5Γ— compression on typical depth frames; zeros (missing depth) pack to a single nibble
  • NEON-accelerated delta+zigzag phase on aarch64
  • Wire format: RVL1 magic + width/height header

IO β€” In-memory PNG-16 + PIL-parity (kornia_rs.io, Image)

  • encode_image_png_{rgb8,rgba8,gray8,rgb16,rgba16,gray16} β€” symmetric in-memory PNG encode
  • Image class natively holds uint16 (depth maps)
  • Image.save(fp) accepts path or file-like (BytesIO, S3 objects)
  • Image.encode(format) β€” in-memory bytes for JPEG and PNG

IO β€” Zero-copy + WebP/TIFF

  • Zero-copy IO path improvements
  • WebP and TIFF in encode/save/decode/load

Upgrading

pip install --upgrade kornia-rs