# Mac YOLO Inference Tool

独立于 ROS2 的 YOLO 装甲板检测推理工具，运行在 Mac 上使用 ONNX Runtime + CoreML 加速。

## 模型信息

- **网络**: 魔改 YOLOv5 + MobileNetV3 backbone
- **输入**: 640x640x3 RGB
- **输出**: [25200, 23]
  - 0-7: 4个关键点 (x1,y1,x2,y2,x3,y3,x4,y4) - 左上角逆时针
  - 8: 置信度
  - 9-12: 颜色分类 (红/蓝/灰/紫)
  - 13-22: 数字分类 (G/1/2/3/4/5/O/Bs/Bb/negative)

## 安装依赖

```bash
cd mac_inference
pip install -r requirements.txt
```

## 使用方法

### 单张图片推理

```bash
python yolo_inference.py --image /path/to/image.jpg --model /path/to/model.onnx
```

参数说明：
- `--model`: ONNX 模型路径 (默认: `RobotDetectionModel/Model/0526.onnx`)
- `--image`: 输入图片路径 (必填)
- `--output`: 输出图片路径 (默认: `output.jpg`)
- `--conf`: 置信度阈值 (默认: 0.65)
- `--nms`: NMS 阈值 (默认: 0.45)
- `--color`: 检测颜色 0=RED, 1=BLUE (默认: 0)
- `--no-coreml`: 禁用 CoreML 加速

### 视频推理

```bash
python yolo_inference.py --video /path/to/video.mp4 --model /path/to/model.onnx
```

### 调试模式 - 打印原始输出

```bash
python yolo_inference.py --image test.jpg --print-raw
```

## 输出示例

```
Loading model from: /path/to/model.onnx
Using providers: [('CoreMLExecutionProvider', {...}), 'CPUExecutionProvider']
Model loaded successfully!

Inference time: 15.23 ms
Detected 2 objects

[0] 1 (BLUE)
    Confidence: 0.8923
    Raw landmarks (4 keypoints, 左上逆时针):
      P0(top_left):      (120.50, 85.23)
      P1(top_right):     (180.45, 87.10)
      P2(bottom_right):  (178.32, 130.55)
      P3(bottom_left):   (122.10, 128.40)
    Center (mean): (150.34, 107.82)
```

## 关键点坐标说明

模型输出的 4 个关键点是**绝对图像坐标**（在 640x640 输入尺寸下）：
- P0 (top_left): 左上角
- P1 (top_right): 右上角
- P2 (bottom_right): 右下角
- P3 (bottom_left): 左下角

注意：如果输入图片尺寸不是 640x640，需要按比例转换。
