4.6 KiB
Executable File
4.6 KiB
Executable File
鱼类分割功能增强计划
概述
本文档描述在现有鱼类测量管道中添加鱼类分割功能的计划。该功能将实现鱼尾、鱼中段和鱼头的自动分割,以支持更智能的模板匹配和朝向检测。
功能目标
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 标志
↓
[模板选择] → 选择合适的模板
↓
[模板对齐] → 对齐后的点云
↓
[体积计算] → 重量估算
模块集成点
-
在
fish_video_weight_evaluation.py中:- 在点云提取后添加分割步骤
- 在模板匹配前添加模板选择逻辑
-
在
template_matching/fish_align_cli.py中:- 添加模板选择参数
- 根据分割结果选择模板
- 优化对齐算法以利用分割信息
-
新增模块:
segmentation/fish_segmentation.py:分割模型推理segmentation/orientation_detection.py:朝向检测segmentation/tail_completeness.py:尾部完整性检测
预期效果
- 提高对齐精度:通过选择合适的模板,提高点云对齐的准确性
- 自动化处理:减少人工干预,自动处理不同完整度的鱼类点云
- 鲁棒性增强:能够处理尾部缺失或遮挡的情况
- 朝向一致性:确保所有处理的鱼类朝向统一,便于后续分析
实施优先级
- 高优先级:分割模型开发和训练
- 中优先级:朝向检测和点云完整性检测
- 低优先级:模板选择逻辑优化和性能调优
相关文件
fish_video_weight_evaluation.py:主处理管道template_matching/fish_align_cli.py:模板对齐模块utils/head_tail_alignment.py:现有的头尾对齐工具pointcloud_classifier/:可参考的点云分类架构
后续扩展
- 支持多部位精细分割(例如:鱼鳍、鱼眼等)
- 基于分割结果进行更精确的体积计算
- 利用分割信息进行鱼类姿态估计
- 支持不同鱼类品种的分割模型