跳转至内容

推理

Ultralytics Platform 提供 Inference API 用于测试已训练的模型。您可以使用基于浏览器的“测试”选项卡进行快速验证,或使用 REST API 进行程序化访问。

测试选项卡

每个模型都包含一个用于基于浏览器的推理的“测试”选项卡:

  1. 导航到您的模型
  2. 点击测试选项卡
  3. 上传图片或使用示例
  4. 即时查看预测结果

上传图像

拖放或点击上传:

  • 支持的格式:JPG、PNG、WebP、GIF
  • 最大大小:10MB
  • 自动推理:结果自动显示

示例图像

使用内置示例图片进行快速测试:

图片内容
bus.jpg带有车辆的街景
zidane.jpg带有人物的体育场景

查看结果

推理结果显示:

  • 边界框(带类别标签)
  • 置信度分数(针对每次 detection)
  • 类别颜色(与您的数据集匹配)

Inference 参数

使用参数调整 detection 行为:

参数范围默认值描述
置信度0.0-1.00.25最小置信度阈值
IoU0.0-1.00.70NMS IoU 阈值
图像大小32-1280640输入尺寸调整维度

置信度阈值

按置信度过滤预测结果:

  • 更高 (0.5+): 更少、更确定的预测
  • 更低 (0.1-0.25): 更多预测,但存在一些噪声
  • 默认 (0.25): 适用于大多数用例的平衡设置

IoU 阈值

控制非极大值抑制 (NMS):

  • 更高(0.7+):允许更多重叠的框
  • 较低(0.3-0.5):更积极地合并邻近检测结果
  • 默认 (0.70):适用于大多数使用场景的NMS

REST API

以编程方式访问推理:

身份验证

在请求中包含您的 API 密钥:

Authorization: Bearer YOUR_API_KEY

端点

POST https://platform.ultralytics.com/api/models/{model_slug}/predict

请求

curl -X POST \
  "https://platform.ultralytics.com/api/models/username/project/model/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@image.jpg" \
  -F "conf=0.25" \
  -F "iou=0.7"
import requests

url = "https://platform.ultralytics.com/api/models/username/project/model/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())

响应

{
    "success": true,
    "predictions": [
        {
            "class": "person",
            "confidence": 0.92,
            "box": {
                "x1": 100,
                "y1": 50,
                "x2": 300,
                "y2": 400
            }
        },
        {
            "class": "car",
            "confidence": 0.87,
            "box": {
                "x1": 400,
                "y1": 200,
                "x2": 600,
                "y2": 350
            }
        }
    ],
    "image": {
        "width": 1920,
        "height": 1080
    }
}

响应字段

字段类型描述
success布尔值请求状态
predictions数组detect 列表
predictions[].class字符串类别名称
predictions[].confidence浮点数detect 置信度 (0-1)
predictions[].box对象边界框坐标
image对象原始图像尺寸

特定任务响应

响应格式因任务而异:

{
  "class": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
  "class": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "segments": [[100, 50], [150, 60], ...]
}
{
  "class": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "keypoints": [
    {"x": 200, "y": 75, "conf": 0.95},
    ...
  ]
}
{
  "predictions": [
    {"class": "cat", "confidence": 0.95},
    {"class": "dog", "confidence": 0.03}
  ]
}

速率限制

共享推理存在速率限制:

计划请求数/分钟请求数/天
免费版10100
Pro6010,000

如需更高的限制,请部署专用端点

错误处理

常见错误响应:

代码消息解决方案
400无效图像检查文件格式
401未经授权验证 API 密钥
404未找到模型检查模型标识符
429请求频率受限请等待或升级套餐
500服务器错误重试请求

常见问题

我可以在视频上运行 Inference 吗?

API 接受单个帧。对于视频:

  1. 在本地提取帧
  2. 将每个帧发送到 API
  3. 聚合结果

对于实时视频,请考虑部署专用端点

如何获取标注图像?

该 API 返回 JSON 预测。要进行可视化:

  1. 使用预测结果在本地绘制边界框
  2. 使用 Ultralytics plot() 方法:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")

最大图像尺寸是多少?

  • 上传限制:10MB
  • Recommended: <5MB for fast inference
  • 自动调整大小:图像被调整为 imgsz 参数

大图像会自动调整大小,同时保持宽高比。

我可以运行批量 Inference 吗?

当前 API 每个请求处理一张图像。对于批量处理:

  1. 发送并发请求
  2. 使用专用端点以获得更高吞吐量
  3. 对于大批量数据,请考虑本地推理


📅 创建于 20 天前 ✏️ 更新于 14 天前
glenn-jocherLaughing-q

评论