Files
FishServer/FishMeasure/docs/fish_segmentation_pipeline.md

4.6 KiB
Raw Permalink Blame History

鱼类分割功能增强计划

概述

本文档描述在现有鱼类测量管道中添加鱼类分割功能的计划。该功能将实现鱼尾、鱼中段和鱼头的自动分割,以支持更智能的模板匹配和朝向检测。

功能目标

1. 鱼类部位分割

  • 鱼头Fish Head:识别鱼的前端部分
  • 鱼中段Fish Middle:识别鱼的主体部分
  • 鱼尾Fish Tail:识别鱼的后端部分

2. 自动朝向检测

  • 基于分割结果自动确定鱼的朝向(头尾方向)
  • 识别鱼是头朝前还是尾朝前
  • 为后续的模板对齐提供方向信息

3. 点云完整性检测

  • 检测鱼尾部分是否包含完整的点云数据
  • 判断鱼尾点云是否存在缺失或遮挡

4. 智能模板选择

  • 如果鱼尾有点云:使用包含尾部的完整模板进行对齐
  • 如果鱼尾没有点云:使用不包含尾部的模板进行对齐
  • 根据分割结果自动选择合适的模板

实现方案

阶段 1分割模型开发

1.1 数据准备

  • 收集并标注鱼类点云数据,标记头、中段、尾三个部位
  • 创建分割数据集,包含不同角度、不同姿态的鱼类点云
  • 数据格式:点云 + 部位标签head/middle/tail

1.2 模型训练

  • 使用 PointNet++ 或 Point Transformer 进行点云分割
  • 参考现有 pointcloud_classifier 模块的架构
  • 训练三分类分割模型(头/中段/尾)

1.3 模型集成

  • 将分割模型集成到主处理管道中
  • 在点云提取后立即进行分割
  • 保存分割结果用于后续处理

阶段 2朝向检测

2.1 基于分割的朝向判断

  • 分析鱼头和鱼尾的空间位置关系
  • 计算鱼的主轴方向PCA
  • 确定头尾方向向量

2.2 方向标准化

  • 统一鱼的朝向例如统一为头朝正X方向
  • 与现有的 head_tail_alignment 模块集成
  • 确保后续模板匹配的一致性

阶段 3点云完整性检测

3.1 鱼尾点云分析

  • 统计鱼尾部分的点云数量
  • 检测鱼尾点云的连续性
  • 判断是否存在明显的缺失区域

3.2 完整性评估

  • 定义完整性阈值(例如:点云数量、覆盖率等)
  • 输出布尔标志:has_tail_pointcloud

阶段 4模板选择逻辑

4.1 模板管理

  • 维护两套模板:
    • 完整模板:包含尾部的完整鱼类模板
    • 无尾模板:不包含尾部的鱼类模板

4.2 自动选择

if has_tail_pointcloud:
    template = load_template("fish_with_tail.obj")
else:
    template = load_template("fish_without_tail.obj")

4.3 模板对齐

  • 根据选择的模板进行点云对齐
  • 利用朝向信息优化对齐过程
  • 确保对齐质量

技术实现细节

数据流

原始点云
    ↓
[分割模块] → 头/中段/尾标签
    ↓
[朝向检测] → 方向向量 + 标准化点云
    ↓
[完整性检测] → has_tail_pointcloud 标志
    ↓
[模板选择] → 选择合适的模板
    ↓
[模板对齐] → 对齐后的点云
    ↓
[体积计算] → 重量估算

模块集成点

  1. fish_video_weight_evaluation.py

    • 在点云提取后添加分割步骤
    • 在模板匹配前添加模板选择逻辑
  2. template_matching/fish_align_cli.py

    • 添加模板选择参数
    • 根据分割结果选择模板
    • 优化对齐算法以利用分割信息
  3. 新增模块

    • segmentation/fish_segmentation.py:分割模型推理
    • segmentation/orientation_detection.py:朝向检测
    • segmentation/tail_completeness.py:尾部完整性检测

预期效果

  1. 提高对齐精度:通过选择合适的模板,提高点云对齐的准确性
  2. 自动化处理:减少人工干预,自动处理不同完整度的鱼类点云
  3. 鲁棒性增强:能够处理尾部缺失或遮挡的情况
  4. 朝向一致性:确保所有处理的鱼类朝向统一,便于后续分析

实施优先级

  1. 高优先级:分割模型开发和训练
  2. 中优先级:朝向检测和点云完整性检测
  3. 低优先级:模板选择逻辑优化和性能调优

相关文件

  • fish_video_weight_evaluation.py:主处理管道
  • template_matching/fish_align_cli.py:模板对齐模块
  • utils/head_tail_alignment.py:现有的头尾对齐工具
  • pointcloud_classifier/:可参考的点云分类架构

后续扩展

  • 支持多部位精细分割(例如:鱼鳍、鱼眼等)
  • 基于分割结果进行更精确的体积计算
  • 利用分割信息进行鱼类姿态估计
  • 支持不同鱼类品种的分割模型