交互式目标检测:Gradio 与 Ultralytics YOLO26#
交互式目标检测简介#
这个 Gradio 界面提供了一种简单、交互式的方式,让你使用 Ultralytics YOLO26 模型执行目标检测。用户可以上传图像,并调整置信度阈值和交并比(IoU)阈值等参数,以实时获取检测结果。
观看: 使用 Gradio 在浏览器中部署 Ultralytics YOLO26 | 完整教程 | 视觉 AI 🌐
为什么使用 Gradio 进行目标检测?#
- 易用的界面:Gradio 提供了一个直观的平台,用户无需编写代码即可上传图像并查看检测结果。
- 实时调整:可以即时调整置信度和 IoU 阈值等参数,从而立即查看反馈并优化检测结果。
- 广泛易用:任何人都可以访问 Gradio 网页界面,因此它非常适合演示、教学和快速实验。
如何安装 Gradio#
pip install gradio如何使用此界面#
- 上传图像:点击“上传图像”,选择用于目标检测的图像文件。
- 调整参数:
- 置信度阈值:用于设置检测目标所需的最低置信度的滑块。
- IoU 阈值:用于设置区分不同目标的 IoU 阈值的滑块。
- 查看结果:处理后的图像以及检测到的目标和对应标签将显示出来。
示例应用场景#
- 示例图像 1:使用默认阈值检测公交车。
- 示例图像 2:使用默认阈值检测体育图像中的目标。
使用示例#
本节提供用于创建 Gradio 界面以执行 Ultralytics YOLO26 目标检测的 Python 代码。加载相应的模型检查点后,你可以将此示例改用于分类、实例分割、姿态估计及其他 YOLO 任务。
import gradio as gr
from PIL import Image
from ultralytics import ASSETS, YOLO
model = YOLO("yolo26n.pt")
def predict_image(img, conf_threshold, iou_threshold):
"""Predicts objects in an image using a YOLO26 model with adjustable confidence and IoU thresholds."""
results = model.predict(
source=img,
conf=conf_threshold,
iou=iou_threshold,
show_labels=True,
show_conf=True,
imgsz=640,
)
for r in results:
im_array = r.plot()
im = Image.fromarray(im_array[..., ::-1])
return im
iface = gr.Interface(
fn=predict_image,
inputs=[
gr.Image(type="pil", label="Upload Image"),
gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"),
],
outputs=gr.Image(type="pil", label="Result"),
title="Ultralytics Gradio",
description="Upload images for inference. The Ultralytics YOLO26n model is used by default.",
examples=[
[ASSETS / "bus.jpg", 0.25, 0.45],
[ASSETS / "zidane.jpg", 0.25, 0.45],
],
)
if __name__ == "__main__":
iface.launch()参数说明#
| 参数名称 | 类型 | 说明 |
|---|---|---|
img | Image | 将执行目标检测的图像。 |
conf_threshold | float | 用于检测目标的置信度阈值。 |
iou_threshold | float | 用于区分目标的交并比阈值。 |
Gradio 界面组件#
| 组件 | 说明 |
|---|---|
| 图像输入 | 用于上传待检测图像。 |
| 滑块 | 用于调整置信度和 IoU 阈值。 |
| 图像输出 | 用于显示检测结果。 |
常见问题#
要将 Gradio 与 Ultralytics YOLO26 配合使用来执行目标检测,可以按以下步骤操作:
- 安装 Gradio:使用命令
pip install gradio。 - 创建界面:编写 Python 脚本来初始化 Gradio 界面。有关详情,请参阅文档中提供的代码示例。
- 上传图像并调整参数:上传图像,并在 Gradio 界面中调整置信度和 IoU 阈值,以实时获取目标检测结果。
以下是一个精简的代码片段,供你参考:
import gradio as gr from ultralytics import YOLO model = YOLO("yolo26n.pt") def predict_image(img, conf_threshold, iou_threshold): results = model.predict( source=img, conf=conf_threshold, iou=iou_threshold, show_labels=True, show_conf=True, ) return results[0].plot(pil=True) # RGB PIL 图像;不带 pil=True 调用 plot() 会返回 BGR 数组 iface = gr.Interface( fn=predict_image, inputs=[ gr.Image(type="pil", label="Upload Image"), gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"), gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"), ], outputs=gr.Image(type="pil", label="Result"), title="Ultralytics Gradio YOLO26", description="Upload images for YOLO26 object detection.", ) iface.launch()- 安装 Gradio:使用命令
使用 Gradio 执行 Ultralytics YOLO26 目标检测有以下几项好处:
- 易用的界面:Gradio 提供直观的界面,用户无需费力编写代码即可上传图像并查看检测结果。
- 实时调整:你可以动态调整置信度和 IoU 阈值等检测参数,并立即查看效果。
- 易于访问:任何人都可以访问此网页界面,因此它适用于快速实验、教学和演示。
如需了解详情,可以阅读这篇介绍类似交互式可视化技术的放射学中的 AI 博客文章。
将 Ultralytics YOLO26 与 Gradio 结合使用的实际应用包括:
- 实时目标检测演示:非常适合展示目标检测的实时工作方式。
- 教学工具:适用于学术环境,可用于讲授目标检测和计算机视觉概念。
- 原型开发:可以高效地快速开发和测试目标检测应用原型。
- 社区协作:便于与社区分享模型,以获取反馈并开展协作。
如需查看类似应用案例,请参阅Ultralytics 关于动物行为监测的博客文章,了解交互式可视化如何助力野生动物保护工作。