Link to this section推理#
Ultralytics Platform 提供用于测试已训练模型的推理 API。使用基于浏览器的 Predict 选项卡进行快速验证,或使用 REST API 进行程序化访问。

Link to this section预测选项卡#
每个模型都包含一个用于基于浏览器推理的 Predict 选项卡:
- 导航到你的模型
- 点击 Predict 选项卡
- 上传图像、使用示例或打开摄像头
- 通过边界框叠加层立即查看预测结果

Link to this section输入方式#
预测面板支持多种输入方式:
| 方法 | 描述 |
|---|---|
| 图像上传 | 拖放或点击以上传图像 |
| 示例图像 | 点击内置示例(数据集图像或默认图像) |
| 摄像头捕获 | 带有单帧捕获功能的实时相机画面 |
graph LR
A[Upload Image] --> D[Auto-Inference]
B[Example Image] --> D
C[Webcam Capture] --> D
D --> E[Results + Overlays]
style D fill:#2196F3,color:#fff
style E fill:#4CAF50,color:#fffLink to this section上传图像#
拖放或点击以上传:
- 支持的格式:JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
- 最大大小:10MB
- 自动推理:结果在上传后自动显示
当你上传图像、选择示例或捕获摄像头画面时,预测面板会自动运行推理。无需点击按钮。
Link to this section示例图像#
预测面板会显示来自你模型关联数据集的示例图像。如果未关联数据集,则使用默认示例:
| 图像 | 内容 |
|---|---|
bus.jpg | 带车辆的街道场景 |
zidane.jpg | 带人物的体育场景 |
对于 OBB 模型,会改为显示船只和机场的航拍图像。
示例图像在页面加载时会预加载,因此点击示例可触发近乎瞬时的推理,无需下载等待。
Link to this section网络摄像头#
点击摄像头卡片以启动实时相机画面:
- 在提示时授予摄像头权限
- 点击视频预览以捕获一帧
- 推理会在捕获的帧上自动运行
- 再次点击以重新启动摄像头
Link to this section查看结果#
推理结果显示:
- 边界框:带有类标签的 SVG 叠加层
- 置信度得分:针对每次检测
- 类别颜色:来自你数据集的配色方案(或 Ultralytics 默认配色方案)
- 速度明细:预处理、推理、后处理和网络时间

结果面板显示:
| 字段 | 描述 |
|---|---|
| 检测列表 | 包含类名和置信度的每次检测 |
| 速度统计 | 预处理、推理、后处理、网络(毫秒) |
| JSON 响应 | 代码块中的原始 API 响应 |
Link to this section推理参数#
在可折叠的 Parameters 部分使用参数调整检测行为:

| 参数 | 范围 | 默认值 | 描述 |
|---|---|---|---|
| 置信度 | 0.01 – 1.0 | 0.25 | 最低置信度阈值 |
| IoU | 0.0 – 0.95 | 0.7 | NMS IoU 阈值 |
| Image Size | 320, 640, 1280(UI 切换) | 640 | 输入调整尺寸(API 接受 32 – 1280 之间的任何值) |
更改任何参数都会自动在当前图像上以 500ms 的去抖动延迟重新运行推理。无需重新上传。
Link to this section置信度阈值#
按置信度过滤预测:
- 较高 (0.5+):预测结果较少,更确定
- 较低 (0.1-0.25):预测结果较多,包含一些噪声
- 默认 (0.25):平衡大多数用例
Link to this sectionIoU 阈值#
控制非极大值抑制 (NMS):
- 较高 (0.7+):允许更多重叠的框
- 较低 (0.3-0.5):更激进地合并附近的检测结果
- 默认 (0.7):平衡大多数用例的 NMS 行为
Link to this section部署预测#
每个运行中的 专用端点 都在其部署卡片上直接包含一个 Predict 选项卡。这使用部署自身的推理服务而不是共享的预测服务,让你能够从浏览器测试已部署的端点。
Link to this sectionREST API#
程序化访问推理:
Link to this section身份验证#
在请求中包含你的 API 密钥:
Authorization: Bearer YOUR_API_KEY要从你自己的脚本、notebook 或应用程序运行推理,请包含 API 密钥。在 Settings > API Keys 中生成一个。
Link to this section端点#
POST https://platform.ultralytics.com/api/models/{modelId}/predictLink to this section请求#
import requests
url = "https://platform.ultralytics.com/api/models/MODEL_ID/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
Link to this section请求参数#
| 参数 | 类型 | 默认值 | 范围 | 描述 |
|---|---|---|---|---|
file | 文件 | - | - | 图像或视频文件(除非设置了 source,否则为必填) |
conf | float | 0.25 | 0.01 – 1.0 | 最低置信度阈值 |
iou | float | 0.7 | 0.0 – 0.95 | NMS IoU 阈值 |
imgsz | int | 640 | 32 – 1280 | 输入图像尺寸(以像素为单位) |
normalize | 布尔值 | false | - | 将边界框坐标返回为 0 – 1 |
decimals | int | 5 | 0 – 10 | 坐标值的小数精度 |
source | string | - | - | 图像 URL 或 base64 字符串(file 的替代方案) |
Link to this section响应#
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
},
{
"class": 2,
"name": "car",
"confidence": 0.87,
"box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
}
],
"speed": {
"preprocess": 1.2,
"inference": 12.5,
"postprocess": 2.3
}
}
],
"metadata": {
"imageCount": 1,
"functionTimeCall": 0.018,
"model": "model.pt",
"version": {
"ultralytics": "8.x.x",
"torch": "2.6.0",
"torchvision": "0.21.0",
"python": "3.13.0"
}
}
}
Link to this section响应字段#
| 字段 | 类型 | 描述 |
|---|---|---|
images | array | 已处理图像列表 |
images[].shape | array | 图像尺寸 [高度, 宽度] |
images[].results | array | 检测结果列表 |
images[].results[].class | int | 类别索引(整数 ID) |
images[].results[].name | string | 类别名称 |
images[].results[].confidence | float | 检测置信度 (0-1) |
images[].results[].box | 对象 | 边界框坐标 |
images[].speed | 对象 | 处理耗时(毫秒) |
metadata | 对象 | 请求元数据和版本信息 |
Link to this section特定任务响应#
响应格式随任务而异:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}Link to this section账单#
共享推理(Predict 选项卡和 /api/models/{id}/predict 端点)在所有方案中均免费包含。共享推理不收取单次请求费用。
对于需要更高吞吐量的生产工作负载,请部署一个 专用端点。
Link to this section速率限制#
共享推理的速率限制为 每个 API key 每分钟 20 次请求。当受到限制时,API 将返回 429 以及 Retry-After 标头。请参阅完整的 速率限制参考 以了解所有端点类别。
部署一个 专用端点 以实现无限推理,无速率限制、可预测的吞吐量和一致的低延迟响应。对于本地推理,请参阅 Predict 模式指南。
Link to this section错误处理#
常见错误响应:
| 代码 | 消息 | 解决方案 |
|---|---|---|
| 400 | 无效图像 | 检查文件格式 |
| 401 | 未经授权 | 验证 API key |
| 404 | 未找到模型 | 检查模型 ID |
| 429 | 速率受限 | 稍候重试,或使用 专用端点 以获得无限吞吐量 |
| 500 | 服务器错误 | 重试请求 |
| 503 | 服务不可用 | Predict 服务正在启动或无法连接;请稍等片刻再重试 |
Link to this section常见问题解答#
Link to this section我可以对视频进行推理吗?#
两种推理方法均接受视频文件:
- 专用端点直接接受视频文件。支持的格式(不超过 100 MB):ASF、AVI、GIF、M4V、MKV、MOV、MP4、MPEG、MPG、TS、WEBM、WMV。每一帧都会单独处理,并返回每帧的结果。有关详细信息,请参阅 专用端点。
- 共享推理 (
/api/models/{id}/predict) 使用相同的 Predict 服务并接受相同的视频格式。但是,UI 中的浏览器 Predict 选项卡 仅上传图像——对于视频工作流程,请直接使用 REST API 或 专用端点。共享端点同样受 每 API key 20 次请求/分钟的限制,因此专用端点是处理大型视频工作负载的更好选择。
Link to this section如何获取标注后的图像?#
API 返回 JSON 预测结果。若要进行可视化:
- 使用预测结果在本地绘制框
- 使用 Ultralytics 的
plot()方法:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")请参阅 Predict 模式文档 以了解完整的 API 结果和可视化选项。
Link to this section最大图像尺寸是多少?#
- 上传限制:10MB
- 建议:<5MB 以获得快速推理
- 自动调整大小:图像会被调整为选定的
Image Size参数
大图像会在保持纵横比的同时自动调整大小。
Link to this section我可以运行批量推理吗?#
当前的 API 每次请求处理一张图像。如需批量处理:
- 发送并发请求
- 使用专用端点以获得更高的吞吐量
- 对于大批量任务,请考虑本地推理
import concurrent.futures
import requests
url = "https://predict-abc123.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
images = ["img1.jpg", "img2.jpg", "img3.jpg"]
def predict(image_path):
with open(image_path, "rb") as f:
return requests.post(url, headers=headers, files={"file": f}).json()
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
results = list(executor.map(predict, images))