# 鱼类分割功能增强计划 ## 概述 本文档描述在现有鱼类测量管道中添加鱼类分割功能的计划。该功能将实现鱼尾、鱼中段和鱼头的自动分割,以支持更智能的模板匹配和朝向检测。 ## 功能目标 ### 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 自动选择 ```python 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/`:可参考的点云分类架构 ## 后续扩展 - 支持多部位精细分割(例如:鱼鳍、鱼眼等) - 基于分割结果进行更精确的体积计算 - 利用分割信息进行鱼类姿态估计 - 支持不同鱼类品种的分割模型