# ClothYolo API

人体检测、姿态、服装检测，以及 RTMPose / RT-DETR。请求体多为 **`multipart/form-data`**（上传 `image`）。

**基址**：`https://cloth-yolo.model.wgdl.tech`

| 用途 | 方法 | 路径 |
|------|------|------|
| YOLO 健康检查 | GET | `/yolo/health` |
| 人体检测 | POST | `/yolo/person` |
| 人体姿态 | POST | `/yolo/pose` |
| 服装检测 | POST | `/yolo/cloth` |
| RTMPose 姿态 | POST | `/rtmpose/pose` |
| RT-DETR 人体 | POST | `/rtdetr/person` |
| OpenAPI | GET | `/docs` |

线上交互文档：`https://cloth-yolo.model.wgdl.tech/docs`

---

## GET `/yolo/health`

```json
{
  "status": "ok",
  "device": "cuda:0",
  "models": {
    "yolo26n": {"loaded": true},
    "yolo26n-pose": {"loaded": true},
    "yolo26n-finetuned": {"loaded": true}
  }
}
```

另有 `GET /rtmpose/health`、`GET /rtdetr/health`。

---

## 通用入参（YOLO）

| 字段 | 类型 | 默认 | 说明 |
|------|------|------|------|
| `image` | file | 必填 | 图片文件 |
| `conf` | float | `0.25` | 置信度阈值 |
| `iou` | float | `0.45` | NMS IoU |

---

## POST `/yolo/person`

人体检测（`yolo26n`）。

### 调用示例

```bash
BASE='https://cloth-yolo.model.wgdl.tech'

curl -sS -X POST "${BASE}/yolo/person" \
  -F 'image=@./photo.jpg' \
  -F 'conf=0.25' \
  -F 'iou=0.45'
```

成功时响应含 `success`、`person_count`、`persons`（含 bbox 等）。

---

## POST `/yolo/pose`

人体姿态（`yolo26n-pose`）。响应含 `poses`。

```bash
curl -sS -X POST "${BASE}/yolo/pose" \
  -F 'image=@./photo.jpg'
```

---

## POST `/yolo/cloth`

服装检测（微调权重 `yolo26n_best_20260316`）。响应含 `items`。

```bash
curl -sS -X POST "${BASE}/yolo/cloth" \
  -F 'image=@./outfit.jpg' \
  -F 'conf=0.25'
```

---

## POST `/rtmpose/pose` / POST `/rtdetr/person`

同样上传 `image`（multipart）。细节见服务端 `/docs`。

---

## Python 示例

```python
import requests

BASE = "https://cloth-yolo.model.wgdl.tech"

with open("photo.jpg", "rb") as f:
    r = requests.post(
        f"{BASE}/yolo/cloth",
        files={"image": ("photo.jpg", f, "image/jpeg")},
        data={"conf": "0.25", "iou": "0.45"},
        timeout=60,
    )
r.raise_for_status()
print(r.json())
```
