连续平面检测与算法融合 — 研究储备与实现技术方案
配套:
docs/08-智能分区-算法参考与论文.md(已落地算法:Dihedral / SDF / CurvatureKMeans / seed_grow;MultiView 3→2→3 在 backlog)。 本文档回答三个研究问题:(1) 如何从三角面片优化找出「连续平面」+「平面边界」;(2) 射线法能否判定平面/特征;(3) 引入机器视觉(整体/截面)能否更好识别图形。结论:三者已在仓库中以不同成熟度存在,融合 = 升维 + 分层定责,而非互斥替换。 范围:知识储备 + 集成架构 + 可落地方案(尚未实现代码)。
0. 背景与定位(对齐现有代码)
| 现有能力 | 族属 | 成熟度 | 与本研究的关系 |
|---|---|---|---|
| Dihedral 区域生长(默认 30°) | 几何 | 已落地 | 升维为「真平面检测 + 边界提取」的基座 |
| SDF(沿内法线射线到对侧) | 射线 | 已落地(瓶颈 O(n·6144)) | 射线族成员,保留作厚度/部件描述子 |
| CurvatureKMeans | 几何+射线 | 已落地 | 部件级聚类 |
seed_grow(种子测地 + 二面角屏障) |
几何 | 已落地 | 用户种子路径的裁决源,复用 |
| MultiView 3→2→3 | 机器视觉 | backlog 未实现 | 投影→2D→回投→图社区检测,直接对应问题3 |
recommend_seeds / suggestedSeeds 幽灵标记 |
UX | 已落地(iter58-64) | 学习/建议结果的呈现通道(ghost marker) |
关键洞察:问题 1(连续平面+边界)≈ 把现有 dihedral 升级为「PCA 平面拟合 + 边界轮廓提取」;问题 2(射线)≈ 扩展现有 SDF 到「内外判定/截面」;问题 3(机器视觉)≈ 落地 backlog 的 MultiView + 把结果经 suggestedSeeds 呈现。融合路径完全复用现有 UX 与后端骨架。
1. 知识储备:三大算法族(含出处 / 公式 / 阈值)
1.1 几何族:连续平面 + 平面边界
- k-ring 平面度(Bouzas 2020 / ICA Advances 2025):顶点 v 的 k-ring 邻域点集做 PCA,特征值 λ0≤λ1≤λ2,平面度
planarity(v) = 1 − 3λ0/(λ0+λ1+λ2)(=1 表示全在平面上);面平面度 = 其顶点平面度均值。种子 = 平面度最高的面;用 PCA 拟合参考平面;按「顶点到平面距离 < 阈值(取平均边长 M)」生长。k 取 3。 - Make It Flat(Linköping, diva-portal):多标签能量 + 分层 σ 下降 + 条件区域生长。阈值(带出处):法向差
π/12(15°)、平面投影误差M/30(M=平均边长);合并阈值法向π/12、投影M/3。 - 深圳大学 / 中国科学 2024:平坦度
σ_p(f)=1/3 Σσ_p(V),σ_p(V)=1−3λ0/(λ0+λ1+λ2);区域生长四步:按平坦度降序选种子 → PCA 拟合平面 → 邻接面若法向差 <angle_thr且 3 顶点到平面距离均 <dist_thr则并入 → 有新面则重拟合平面 → 循环至收敛。 - CGAL
sharp_edges_segmentation/detect_sharp_edges(angle_in_deg):工业级二面角特征边检测 —— 即现有 Dihedral 的理论同源实现。 - 平面边界提取(ICA Advances 2025):把共面子集顶点投影到拟合平面 → 2D 点集 → alpha-shape(Edelsbrunner,α→∞ 退化为凸包;α 小则得凹轮廓)→ Delaunay + 仅 1 个邻接三角的边即边界边,连成轮廓。凹 hull 才能表达非凸平面区域。
- STL 区域分割(Inderscience)/ VoroCrust:二面角把边分为 sharp / non-sharp 特征边;advancing front 依边界抽取「有意义」面片。
1.2 射线族:能否定平面 / 特征
- 内外判定:射线奇偶法(ray casting parity);**广义绕数 Generalized Winding Number(Jacobson 2013)**对开放网格鲁棒(退化优雅),是 SDF 的泛化。现有 SDF 是「沿内法线射到对侧表面」的特例。
- Ray-casting segmentation(Danilov, 医学 MRI):发射 N 条射线,边界分辨率 ∝ N;左心室 8 射线 → Dice 85%;仅凸/封闭好;类别不平衡高达 90%(需 AdaBoost/RUSBoost 等)。
- 网格可见边界(郭爱斌 北航 2007):O(n),由「法向 vs 射线方向」判可见性 → 面分 0/1/2/3-type → 可见边界。用于遮挡/日照分析,可借鉴做「视角相关高亮」。
- Marching plane / 截面(2015):用平面截网格,依流形邻接追踪闭合轮廓 → 计算截面面积 → 面积对路径的导数超过阈值处即特征边界。对「无棱角的曲面/平缓特征」有效,补 crease 检测盲区。
- SECTION/SLICE(CAD):提取 2D 截面轮廓 —— 工程可直接复用其交互范式。
1.3 机器视觉族:整体 / 截面识别
- 统一分类法(alphaxiv 2411.02104):基于点(PointNet++ / RandLA-Net)/ 降维投影(MVCNN 多视角、BEV、SqueezeSeg)/ 离散化(体素、八叉树)/ 图(DGCNN EdgeConv)/ 混合。
- ThickSeg:多层投影 + 自排序 3D-CNN,大规模点云语义分割 SOTA。
- HPNet(arXiv 2105.10620):混合表征 = 学习语义描述子 + 由几何参数导出的谱描述子 + 编码锐边的邻接矩阵;mean-shift 聚类。关键:把「锐边/几何参数」作为学习特征,与几何无缝衔接 —— 证明几何与学习可共享同一特征空间。
- BAGSFit(arXiv 1810.1604):FCN 逐点分割 → 基元假设 → 几何验证(RANSAC 拟合)修正误分。学习做边界,几何做拟合验证。
- PriFit:基元拟合作为自监督先验,提升少样本分割 —— 几何先验可增强学习。
- MiCADangelo(2025):沿 x/y/z 等距采 N 个切片平面 → 栅格化二值图 → sketch-plane 检测网络挑关键切片 → 预测基元/约束。截面 + 学习的直接结合。
2. 对抗证伪(REFUTE):单点失败 + 「全叠加」谬误
几何族单点:种子选择敏感导致过/欠分割(ISPRS 综述:seeded RG 高度依赖种子点);阈值不自适应 → 跨尺度失效;纯 dihedral 不拟合平面,近似共面也被切,且不产出边界轮廓 —— 这正是用户「平面边界」需求未被满足的根因。
射线族单点:仅凸/封闭好(Danilov);类别不平衡 90%;分辨率随射线数线性增长 → 大网格昂贵;SDF 在薄壳/开放网格退化(08 已记 O(n·6144) 瓶颈与简并)。
学习族单点:需数据集、泛化受训练分布限制(中国科学 2024:室外实例分割缺数据集);PointNet 仅全局特征;在用户任意模型上不可靠 → 当 verdict 危险。
「全叠加」谬误(核心):三族各给 label → 矛盾标签、无单一真相、假确定性。必须分层 + 单一裁决源,且明确哪一层只产出 evidence、哪一层产出 verdict。
诚实性硬原则应用(贯穿实现):
- 「语义含义」不可评估(无标注即
unassessable)→ 退出总分,只作 evidence,不进 verdict。 - 漏报(false-negative) > 误报:分区工具漏掉一个平面比多分一块更危险 → 默认偏保守(dist_thr 偏紧,更易过分割 → 用户再合并,比漏平面安全)。
- 魔数带出处:下文所有阈值标注 source,且与
08既有默认对称。
3. 集成架构(REVISE→plan):分层 + 职责 + 对接现有 UX
Layer 0 预处理(已有 face_adjacency / normals / mean edge M)
└─ 算 per-vertex planarity(k-ring PCA)、per-edge dihedral
Layer 1 几何骨干 = 裁决源(deterministic, explainable) ★verdict
├─ 升级 dihedral → planar region growing
│ seed=平面度最高面, PCA 拟合平面,
│ 按 normal_diff<angle_thr(π/12) 且 vertex-plane_dist<dist_thr(M/30) 生长, 每轮 refit
├─ 平面边界: 每 region 投影→alpha-shape→contour ★新增「平面边界」
└─ 复用 seed_grow 的 barrier+测地 Voronoi 作「用户种子」路径
Layer 2 射线增强 = evidence(不裁决) ★evidence
├─ 广义绕数: inside/outside(开放网格鲁棒)
├─ 截面 marching: 沿主轴等距采面→面积导数→候选特征截面(补 crease 盲区)
└─ 现有 SDF 保留作厚度/部件描述子
Layer 3 学习建议 = evidence only(ghost) ★evidence, 绝不自施
├─ 落地 backlog MultiView 3→2→3(投影→2D连通→回投→带权 match graph→可切割)
└─ 或 HPNet 式混合: 把锐边/几何参数作学习特征
→ 输出候选区域/基元 → 经 recommend_seeds/suggestedSeeds 幽灵标记呈现 → 用户确认才进 seed_grow
Layer 4 融合: 几何给硬分区(verdict); 射线给边界/内外置信; 学习给软语义建议(evidence)
冲突 → 暴露给用户(evidence), 不静默覆盖
⭐ 与现有 UX 的映射(零新交互范式):学习/MV 建议 → suggestedSeeds(粉幽灵,iter58-64 已实现);用户点选 → seedPoints(绿);seed_grow 几何骨干出分区。完全复用。
4. 实现技术方案(落地步骤 + 配置键带出处)
数据结构(加在 MeshModel / 新 segment/planar.rs):
- per-face:
normal, planarity, plane(a,b,c,d), patch_id, region_id - per-edge:
dihedral, is_feature - 标量:平均边长
M
新增后端模块 segment/planar.rs:
detect_planar_regions(mesh, params) -> Vec<PlanarRegion{ plane, face_ids, boundary_loop: Vec<[f32;2]> }>- 步骤:compute planarity(k-ring PCA, k=3) → 种子队列(平面度降序) → 生长(angle_thr, dist_thr) → 重拟合 → alpha-shape 提边界(投影到平面 → Delaunay → 边界边)。
- 复用现有
face_adjacency做邻居查询(O(1) 半边)。
配置键(对称 + 默认值带出处,与 08 Dihedral 默认 30° 一致):
| key | 默认 | 出处 |
|---|---|---|
planar.angle_thr_deg |
15 (π/12) | Make It Flat / 深圳大学 |
planar.dist_thr_factor |
1/30 (M/30) | Make It Flat(生长阈值) |
planar.merge_dist_factor |
1/3 (M/3) | Make It Flat(区域合并阈值) |
planar.k_ring |
3 | ICA Advances 2025 |
feature.dihedral_deg |
30 | 沿用 08 Dihedral 默认;CGAL detect_sharp_edges(angle_in_deg) |
cross_section.planes_per_axis |
N | MiCADangelo 等距切片 |
alpha_shape.alpha |
自适应(按点密度) | alpha-shape 理论;v1 标粗粒度模型 |
与 seed_grow 对接:detect_planar_regions 结果可作为「自动建议种子」批量注入 suggestedSeeds(每 region 质心一个 ghost seed + 边界 loop 高亮),复用 iter58-64 的 ghost UX。
线程模型:planar + 截面 + SDF 都重 → 复用 08 §3 的 async/worker 模式 + segment-progress emit(避免主线程冻结,迭代 39 教训)。
5. 诚实性与风险(度量 + 不可评估维度)
- 可评估:planarity(有定义)、region 面积占比、边界闭合度、seed 命中率 → 可进指标。
- 不可评估:区域「语义含义」(无标注)→
unassessable,退出总分,仅 evidence。 - 偏保守:漏报 > 误报,默认 dist_thr 偏紧。
- 失败模式:薄壳/开放网格 SDF 退化 → 广义绕数兜底;学习在陌生模型误判 → 仅 ghost 不施。
- 度量:用现有
metrics::unit_cubefixture(unit_cube 应得 6 个平面 region + 边界 loop 闭合)+ 真实模型回归;报告X/X(原 N + K)。
6. 验证与 backlog
验证:cargo test --lib(现有 103+);新增 planar 单元测试(unit_cube → 6 region + 边界闭合);前端 ghost 注入回归(复用 SeedPanel.test.tsx 范式)。
backlog(显式 deferred,下轮重新评估):
- rayon 并行 SDF(
08已记) - MultiView 3→2→3 落实现 HALF(投影→回投→可切割)
- 薄壳 SDF → 广义绕数切换
- alpha 自适应取值
- HPNet 式学习模块(独立迭代,明确只产 evidence)
7. 实现状态(Layer 1 已落地)
2026-08-14:Layer 1(几何骨干 = 连续平面检测 + 平面边界)已实现并合入分支 feat_theme_persist_paint_ux。
- 新增后端
src-tauri/src/segment/planar.rs:detect_planar_regions(mesh, PlanarParams) -> Vec<PlanarRegion>。- 算法:面平坦度选种(复用 recommend 的曲率代理)→ PCA 拟合平面 → 按
法向差<angle_thr(默认15°)且顶点到平面距<M/30区域生长 → 每轮 refit → 过滤<min_region_faces的小区域。 - 边界 = 区域中被恰好一个区内面使用的边(几何区域边界,比 alpha-shape 更鲁棒;alpha-shape 仍按 §6 留作 backlog)。
PlanarRegion{ plane, face_count, seed: SeedSuggestion, boundary_edges: Vec<[[f32;3];2]> }。- 单测:
unit_cube→ 6 区域 + 每区域 4 条闭合边界边 + 12 面全覆盖;空网格/无法向安全返回空。
- 命令:
detect_planar_regions(angle_threshold_deg, dist_thr_factor, min_region_faces)(commands/segment.rs+lib.rs注册)。 - 前端对接(零新交互范式,复用 iter58-64 幽灵 UX):
types/mesh.ts加PlanarRegion;useTauriCommand.detectPlanarRegions;store 加 transientplanarRegions/setPlanarRegions/clearPlanarRegions。SeedPanel加「🟦 平面种子」按钮:调后端 → 区域代表种子注入suggestedSeeds(粉幽灵,可点击采纳进seed_grow并集,iter63)→ 边界存planarRegions。Viewport加PlanarBoundaries:把各区域boundary_edges渲染为青色lineSegments(常置顶),即「平面边界」可视化。
- 验证:
cargo test --lib segment::65 通过;tsc --noEmit干净。 - 诚实性落地:缺法向/空网格 → 返回空(不臆测);阈值偏紧(默认 M/30)以「漏报>误报」优先;区域仅作 advisory,未采纳不进
seed_grow。 - Layer 2(射线)/ Layer 3(机器视觉 MultiView)仍按 §6 backlog 未实现。
9. 实现状态(Layer 3 MultiView 3→2→3 已落地)
2026-08-14:Layer 3(机器视觉 / MultiView 3→2→3,证据通道)已实现并合入分支 feat_theme_persist_paint_ux。
- 新增后端
src-tauri/src/segment/multiview.rs:detect_multiview_regions(mesh, MultiViewParams) -> Vec<MultiViewRegion>。- 算法(投影→2D连通→回投→带权 match graph→可切割):
- 投影:Fibonacci 球面生成
view_count(默认12) 个正交视角,每视角建图像平面基(u,w)⊥d,投影所有顶点到 2D。 - 2D 连通:两 3D 邻接面在本视角「2D 邻接」当且仅当共享边投影非退化(
> M·0.05,剔除边-on/遮挡)+ 平均深度一致(< R·0.5,剔除前后面重叠);再按法向一致(<20°)做 2D 区域生长得每视角 label。 - 回投:每面收集
(视角, label);构建 face-face match graph,边权 = 两邻接面在多少视角拿到相同 label。 - 可切割:union-find 按
match_threshold(默认1,即≥1视角一致) 切割 → 最终簇。
- 投影:Fibonacci 球面生成
- 输出
MultiViewRegion{ face_count, seed: SeedSuggestion, boundary_edges }(结构与PlanarRegion一致,复用同一幽灵/边界渲染路径)。 - 单测:
unit_cube→ 6 区域 + 每区域 4 条闭合边界 + 12 面全覆盖;空网格/无法向安全返回空。
- 命令:
detect_multiview_regions(view_count, angle_threshold_deg, min_region_faces, match_threshold)(commands/segment.rs+lib.rs注册)。 - 前端对接(零新交互范式,复用 iter58-64 幽灵 UX):
types/mesh.ts加MultiViewRegion;useTauriCommand.detectMultiViewRegions;store 加multiviewRegions/setMultiviewRegions/clearMultiviewRegions。SeedPanel加「👁 多视角」按钮:调后端 → 每簇代表种子注入suggestedSeeds(粉幽灵,可点击采纳进seed_grow并集)→ 边界存multiviewRegions。Viewport把PlanarBoundaries重构为通用BoundaryLines({regions,color}),同时渲染 Layer1(青#22d3ee)+ Layer3(橙#fb923c)边界。
- 验证:
cargo test --lib segment::71 通过(含 multiview 6);tsc --noEmit干净;SeedPanel.test.tsx3 通过。 - 诚实性落地(与 docs/09 §2 一致):仅 evidence、绝不自施;缺法向/空网格 → 空;阈值偏松(20°、match=1 即合并)→ 倾向过分割(漏报>误报);与 Layer 1 可能不一致 → 两者都呈现为幽灵,用户决定,绝不静默覆盖。
- Layer 2(射线:广义绕数/截面)仍按 §6 backlog 未实现。
9.1 Layer 1 vs Layer 3 的关系(接地气说明)
两者都产出「区域+代表种子+边界」,都接同一幽灵 UX,但判定路径不同:
- Layer 1 = 直接在 3D 里按平面拟合+法向/距离做区域生长(单视角几何骨干,deterministic verdict 风格)。
- Layer 3 = 多视角投影的 2D 区域生长 + 跨视角投票(集成式证据,对单一坏投影更鲁棒,但更松、更可能过分割)。
二者是第二意见关系,不是替换。用户可分别点「平面种子」/「多视角」,各自给出种子(粉色幽灵)+边界(青/橙),点「生成」走同一 seed_grow 并集路径(iter63)。若结果冲突,暴露给用户选,符合 docs/09 §3 Layer 4 融合纪律。
10. 实现状态(Layer 2 射线/截面 已落地)
2026-08-14:Layer 2(射线增强 / 截面 marching,证据通道,不裁决)已实现并合入分支 feat_theme_persist_paint_ux。
- 新增后端
src-tauri/src/segment/cross_section.rs:detect_cross_section_features(mesh, CrossSectionParams) -> Vec<CrossSectionRegion>。- 算法(截面 marching,docs/09 §1.2):
- 切片:沿 x/y/z 主轴各等距采
planes_per_axis(默认24) 个内部切片(避开两端塌缩点,外表面已由 Layer1/3 覆盖)。 - 轮廓:每三角面与切片平面裁剪得一条 3D 交线段;合起来即该切片的截面轮廓(直接回答研究问题2「用射线/截面确定特征」)。
- 剖面指标:以每切片轮廓总长作剖面指标(exact O(faces);其导数与「面积对路径的导数」同签名,且避开轮廓缝合的脆弱性,作为稳健代理)。
- 特征定位:指标导数局部极大值且 ≥
feature_threshold·max|dM/ds|(默认0.5) 处为特征截面;每个特征存plane/axis/position/area_metric/boundary_edges(真实切面轮廓)。
- 切片:沿 x/y/z 主轴各等距采
generalized_winding_number(p):Jacobson 2013 实心角求和/4π(Van Oosterom–Strackeeω=2·atan2(N,D),注意 ×2 否则闭合立方体得 0.5)。开放网格仍良定义,用作每特征截面的内壁置信标量winding(≈1 内部 / ≈0 外部)。- 单测:
unit_cube→无内部特征(返回空,符合预期);阶梯盒→y 轴≥1 特征且位置≈y=1;gwn立方体内≈1、外部≈0;空网格安全。
- 命令:
detect_cross_section_features(planes_per_axis, feature_threshold)(commands/segment.rs+lib.rs注册)。 - 前端对接(纯视觉证据,不进
seed_grow— docs/09 Layer 2=不裁决):types/mesh.ts加CrossSectionRegion(无seed/faceIndex,因截面是平面非面);useTauriCommand.detectCrossSectionRegions;store 加crossSectionRegions/set/clear。SeedPanel加「✂️ 截面」按钮:调后端 → 存crossSectionRegions(不注入suggestedSeeds)。Viewport用BoundaryLines以绿色#84cc16渲染 Layer2 切面轮廓(与青 Layer1 / 橙 Layer3 并列)。
- 验证:
cargo test --lib segment::76 通过(含 cross_section 5);tsc --noEmit干净;SeedPanel.test.tsx3 通过。 - 诚实性落地(与 docs/09 §2/§3 一致):仅 evidence、绝不自施;截面不生成分区种子(平面≠面);与 Layer1/3 可能不一致 → 都呈现,用户决定。
10.1 三层关系(接地气说明)
- Layer 1(几何骨干):3D 内按平面拟合+法向/距离区域生长 → 给出可点击采纳的种子(青边界,进
seed_grow)。 - Layer 3(机器视觉):多视角投影投票 → 给出第二种意见种子(橙边界,进
seed_grow,可能更松)。 - Layer 2(射线/截面):沿主轴切片找特征截面 → 纯视觉证据(绿轮廓),不裁决、不生成种子。
三者是「种子(1/3) + 视觉证据(2)」的互补关系:1/3 直接喂分区(用户点选采纳),2 提供「模型在哪些位置发生了形状突变」的几何直觉,帮助用户决定往哪里种种子。符合 docs/09 §3 Layer 4 融合纪律(几何给硬分区、射线给边界/特征证据、学习给软建议)。
11. 实现状态(Layer 4 融合 已落地)
2026-08-16:Layer 4(融合层:边级多数投票)已实现并合入分支 feat_theme_persist_paint_ux。直接回应用户反馈「算法切出很多有用区域,但真正分区仍按 seed 进行」——分区边界现在来自算法区域成员关系,而非种子点重新 Voronoi。
- 扩展
PlanarRegion/MultiViewRegion加face_indices: Vec<u32>(区域实际面成员)。 - 新增
segment/fuse.rs:fuse_region_sets(mesh, planar_sets, multiview_sets, cut_threshold, min_region_faces)。- 把两算法面级区域规约成边级 cut/keep 投票:
score = cut票 − keep票,score > cut_threshold(默认 1,即切票严格多于留票)才切开,平票合并——抑制单算法噪声导致的过切。 - 连通分量 = 区域 → 极小区域合并(面数 <
min_region_faces合并到共享边界最多的邻区,默认max(8, n·0.2%))→ 落盘(manual label + undo + 着色,复用seed_grow路径)。
- 把两算法面级区域规约成边级 cut/keep 投票:
- 命令
fuse_segmentation(cut_threshold, min_region_faces):内部跑 planar(15°/M·1/30) + multiview(12 views/20°/match 1) 默认检测后融合,一键落盘。 - 前端:
useTauriCommand.fuseSegmentation+ SeedPanel「🧩 融合生成」按钮(无需手动种种子)。 - 单测:
unit_cube→ 6 融合区域;全量cargo test --lib151(149 pass + 2 ignored);tsc --noEmit干净;vitest3 通过。 - 诚实性落地:两算法均无区域 → 报错不臆测;Layer 2(截面)仍纯视觉证据,未参与边级投票(截面是平面非面,规约成边级留待后续迭代)。
8. 参考文献(新增,区别于 08)
- Bouzas et al. (2020); ICA Advances 5(8), 2025 — k-ring planarity + region growing + alpha-shape 边界.
- Linköping diva-portal FULLTEXT01 — "Make It Flat": 多层能量 + 条件 RG,阈值 π/12、M/30、M/3.
- 深圳大学 / 中国科学 2024, SSI-2023-0221 — 平坦度 σ_p、区域生长四步.
- CGAL
Polygon_mesh_processing::sharp_edges_segmentation— 工业级二面角分割. - Jacobson et al. 2013, Robust Inside-Outside Segmentation using Generalized Winding Numbers (TOG 32(4)).
- Danilov, Ray casting segmentation (医学 MRI, Dice 85%@8rays, 仅凸/封闭).
- 郭爱斌 北航 2007, 空间网格面片可见边界提取 (CJIG) — O(n) 可见边界.
- 3D Mesh Model Segmentation Using Marching Plane (2015) — 截面面积导数检测边界.
- alphaxiv 2411.02104 — 3D 语义分割统一分类法(点/投影/体素/图/混合).
- HPNet, arXiv 2105.10620 — 混合表征基元分割(锐边作特征).
- BAGSFit, arXiv 1810.1604 — 学习边界 + 几何验证拟合.
- MiCADangelo, arXiv 2510.23429 (2025) — 等距切片 + 网络挑关键截面.
- ThickSeg, ScienceDirect 2021 — 多层投影 + SS-3DCNN 大规模点云.