跳转至内容

推理

Ultralytics 提供用于测试训练模型的推理API。您可通过基于浏览器的"测试"选项卡进行快速验证,或REST API 程序化访问。

测试选项卡

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

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

上传图片

拖放或点击上传:

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

示例图片

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

图像内容
bus.jpg街道上车辆穿梭的场景
zidane.jpg运动场景中的人们

查看结果

推理结果显示:

  • 带类标签的边界框
  • 每次检测的置信度评分
  • 与您的数据集相匹配的班级颜色

推断参数

通过参数调整检测行为:

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

置信阈值

按置信度过滤预测结果:

  • 更高(0.5+):更少、更确定的预测
  • 较低(0.1-0.25):更多预测,存在部分噪声
  • 默认值 (0.25):适用于大多数使用场景的平衡设置

IoU

控制非最大抑制:

  • 更高(0.7+):允许重叠框
  • 较低(0.3-0.45):合并邻近检测结果
  • 默认值 (0.45):标准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.45"
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.45}

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数组检测列表
predictions[].class字符串类名
predictions[].confidence浮点数检测置信度(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服务器错误重试请求

常见问题

我能对视频进行推理吗?

该API接受单帧数据。对于视频:

  1. 在本地提取帧
  2. 将每个帧发送至API
  3. 汇总结果

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

如何获取标注后的图像?

该API返回JSON预测结果。可通过以下方式可视化:

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

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

最大图像尺寸是多少?

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

大尺寸图片会自动调整大小,同时保持宽高比不变。

我能运行批量推理吗?

当前API每次请求处理一张图像。批量处理时:

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


📅 0 天前创建 ✏️ 0 天前更新
glenn-jocher

评论