跳转至

检测器架构

CV 模块的核心是基于 YOLO11-OBB 的重构检测器。它采用分层架构设计,实现了高内聚低耦合。

YOLO-OBB 检测器

位于 src/cv/core/detectors/obb/,该组件被拆分为多个职责单一的模块。

1. 核心检测器 (detector.py)

类名: YOLOOBBDetector

这是对外的统一接口(Facade)。它负责: - 加载 YOLO 模型。 - 接收图像输入。 - 协调后处理器和可视化器。 - 返回标准化的结果字典。

2. 几何计算层 (geometry.py)

类名: GeometryUtils

纯数学计算库,不依赖业务逻辑。核心算法包括: - OBB 角度计算: 基于长边方向和目标向量的点积,计算精确的旋转角度(解决 180° 模糊)。 - 真实中心修正 (Real Center): 根据几何关系,从检测框中心推导物体的物理中心。

3. 业务后处理 (post_processor.py)

类名: RobotPoseProcessor

处理特定的机器人业务逻辑: - 筛选置信度最高的 CentralHead 目标。 - 只有当两者同时存在时,才进行姿态解算。 - 调用几何层计算最终的角度和向量。

4. 数据结构 (types.py)

使用 dataclass 定义强类型数据: - OBBDetection: 单个目标的检测结果(角点、中心、置信度)。 - RobotPoseResult: 最终解算出的机器人姿态(包含角度、方向向量、可视化辅助点)。

5. 可视化 (visualizer.py)

类名: OBBVisualizer

负责将复杂的检测结果绘制在图像上: - 绘制旋转边界框。 - 绘制方向箭头和角度圆弧。 - 标注类别和置信度。