feat: initial commit - massive-cloud point cloud processing system
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
# Profile: high-density scan (≈100w points, sub-mm spacing).
|
||||
sampling:
|
||||
spacing_mm: 0.25
|
||||
num_points: 1000000
|
||||
denoise:
|
||||
steps:
|
||||
- type: passthrough
|
||||
bbox_padding_mm: 50.0
|
||||
- type: voxel
|
||||
voxel_mm: 0.25
|
||||
- type: statistical
|
||||
nb_neighbors: 50
|
||||
std_ratio: 2.0
|
||||
detection:
|
||||
grid_pixel_mm: 0.25
|
||||
plane_fit:
|
||||
ransac_iterations: 500
|
||||
@@ -0,0 +1,18 @@
|
||||
# Profile: low-density scan (≈1w points, ≈2 mm spacing).
|
||||
sampling:
|
||||
spacing_mm: 2.0
|
||||
num_points: 10000
|
||||
denoise:
|
||||
steps:
|
||||
- type: passthrough
|
||||
bbox_padding_mm: 50.0
|
||||
- type: voxel
|
||||
voxel_mm: 1.0
|
||||
- type: statistical
|
||||
nb_neighbors: 15
|
||||
std_ratio: 2.5
|
||||
detection:
|
||||
grid_pixel_mm: 1.0
|
||||
hole_min_area_mm2: 20.0
|
||||
plane_fit:
|
||||
ransac_iterations: 100
|
||||
@@ -0,0 +1,106 @@
|
||||
# Profile tuned for the lu1-M000004835653_AF4_ASMP072708187_N_AF4.stp panel.
|
||||
#
|
||||
# Topology summary (from cad/iter_circular_edges):
|
||||
# - locating holes: r = 16 mm × 4 corners at (y=±100, z=±180)
|
||||
# - central hole: r = 100 mm at (y≈1, z=0)
|
||||
# - panel size: ~200 × 360 mm in y-z, ~76 mm thick along x
|
||||
#
|
||||
# Use:
|
||||
# coupler-measure --stp <path> --out-dir <dir> --profile lu1_af4
|
||||
|
||||
cad:
|
||||
linear_deflection_mm: 0.5
|
||||
angular_deflection_rad: 0.1
|
||||
# CAD-side: strict band that selects only the r=16 mm corner holes.
|
||||
locating_hole_radius_mm: [14.0, 18.0]
|
||||
central_hole_radius_min_mm: 80.0
|
||||
rectangle_aspect_tol: 0.30
|
||||
|
||||
sampling:
|
||||
method: poisson_disk
|
||||
spacing_mm: null
|
||||
num_points: 500000
|
||||
seed: 42
|
||||
|
||||
# Critical: simulate a single-view "+x looking at -x" scan. Without this,
|
||||
# back-face points project into the hole regions and detection fails.
|
||||
scan_simulator:
|
||||
enabled: true
|
||||
view_origin: [10000.0, 0.0, 0.0]
|
||||
hpr_radius_mm: 200000.0
|
||||
|
||||
# --- Panel deflection injection -------------------------------------------
|
||||
# This is the *signal* we want the algorithm to recover. By default it is
|
||||
# off — sweeps override these.
|
||||
panel_deflection:
|
||||
enabled: true
|
||||
theta_right_deg: 0.5 # rotation around z so n_y > 0
|
||||
theta_ref_deg: 0.3 # rotation around -y so n_z > 0
|
||||
|
||||
# --- Realistic LiDAR / structured-light noise -----------------------------
|
||||
noise:
|
||||
enabled: true
|
||||
sigma_mm: 0.05 # ≈ 50 µm; matches typical industrial scanners
|
||||
mode: isotropic
|
||||
seed: 43
|
||||
|
||||
# --- Scanner-pose jitter --------------------------------------------------
|
||||
# Modest values: 4-hole Kabsch should remove this completely.
|
||||
transform:
|
||||
enabled: true
|
||||
rotation_deg: 0.5
|
||||
translation_mm: 2.0
|
||||
rotation_axis: random
|
||||
translation_dir: random
|
||||
seed: 44
|
||||
|
||||
denoise:
|
||||
steps:
|
||||
- type: passthrough
|
||||
bbox_padding_mm: 50.0
|
||||
- type: voxel
|
||||
voxel_mm: 0.5 # finer voxel for low-noise data
|
||||
- type: statistical
|
||||
nb_neighbors: 20
|
||||
std_ratio: 2.5
|
||||
|
||||
detection:
|
||||
panel_normal_seed: pca # critical: use cloud's own PCA, not CAD seed
|
||||
grid_pixel_mm: 2.0
|
||||
closing_iters: 0
|
||||
fill_bg_below_mm2: 100.0
|
||||
panel_min_area_ratio: 0.15
|
||||
hole_min_area_mm2: 600.0
|
||||
hole_max_area_mm2: 5000.0
|
||||
locating_hole_radius_mm: [14.0, 22.0]
|
||||
circle_fit:
|
||||
method: algebraic_then_lsq
|
||||
inlier_residual_mm: 1.5
|
||||
rectangle_aspect_tol: 0.40
|
||||
|
||||
roi:
|
||||
hole_dilate_mm: 5.0
|
||||
central_hole_dilate_mm: 10.0
|
||||
edge_buffer_mm: 8.0
|
||||
chamfer_normal_dot_min: 0.80
|
||||
outlier_z_score: 3.0
|
||||
|
||||
plane_fit:
|
||||
ransac_iterations: 300
|
||||
ransac_inlier_thresh_mm: auto
|
||||
min_inlier_ratio: 0.5
|
||||
enforce_nx_positive: true
|
||||
|
||||
metrics:
|
||||
right_axis_sign: 1
|
||||
angle_clamp_deg: 0.0
|
||||
|
||||
artifacts:
|
||||
save_intermediate: true
|
||||
ply_format: binary
|
||||
image_dpi: 150
|
||||
heatmap_colormap: viridis
|
||||
|
||||
registration:
|
||||
method: kabsch_four_holes
|
||||
refuse_if_residual_above_mm: 5.0
|
||||
Reference in New Issue
Block a user