交互式物体检测:Gradio &Ultralytics YOLO11 🚀
交互式物体检测简介
该 Gradio 界面提供了一种简便的交互式方法,可使用模型进行对象检测。 Ultralytics YOLO11模型进行物体检测。用户可以上传图像,调整置信度阈值和交集-重合(IoU)阈值等参数,以获得实时检测结果。
观看: Gradio 与Ultralytics YOLO11
为什么使用 Gradio 进行物体检测?
- 用户界面友好:Gradio 为用户提供了一个简单明了的平台,无需任何编码要求即可上传图像并可视化检测结果。
- 实时调整:可对置信度和 IoU 阈值等参数进行实时调整,从而获得即时反馈并优化检测结果。
- 广泛的可访问性:任何人都可以访问 Gradio 网页界面,使其成为演示、教育和快速实验的绝佳工具。
如何安装 Gradio
如何使用界面
- 上传图像:点击 "上传图像",选择图像文件进行对象检测。
- 调整参数:
- 置信度阈值:滑块,用于设置检测物体的最低置信度。
- IoU 门限:滑块用于设置用于区分不同物体的 IoU 门限。
- 查看结果:将显示经过处理的图像和检测到的物体及其标签。
使用实例
- 示例图像 1:使用默认阈值进行总线检测。
- 示例图像 2:使用默认阈值对运动图像进行检测。
使用示例
本节提供Python 代码,用于创建 Gradio 与Ultralytics YOLO11 模型的接口。支持分类任务、检测任务、分割任务和关键点任务。
import gradio as gr
import PIL.Image as Image
from ultralytics import ASSETS, YOLO
model = YOLO("yolo11n.pt")
def predict_image(img, conf_threshold, iou_threshold):
"""Predicts objects in an image using a YOLO11 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 YOLO11n 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 YOLO11 进行对象检测?
要将 Gradio 与Ultralytics YOLO11 一起用于对象检测,可以按照以下步骤操作:
- 安装 Gradio: 使用命令
pip install gradio
. - 创建界面:编写Python 脚本初始化 Gradio 界面。详情可参考文档中提供的代码示例。
- 上传和调整:上传图像并在 Gradio 界面上调整置信度和 IoU 阈值,以获得实时对象检测结果。
下面是一个最基本的代码片段,供参考:
import gradio as gr
from ultralytics import YOLO
model = YOLO("yolo11n.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() if results else None
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 YOLO11",
description="Upload images for YOLO11 object detection.",
)
iface.launch()
使用 Gradio 进行Ultralytics YOLO11 物体检测有什么好处?
使用 Gradio 进行Ultralytics YOLO11 物体检测有几个好处:
- 用户友好界面:Gradio 为用户提供了直观的界面,用户无需编写任何代码即可上传图像并查看检测结果。
- 实时调整:您可以动态调整检测参数,如置信度和 IoU 阈值,并立即看到效果。
- 可访问性任何人都可以访问网络界面,因此对于快速实验、教育目的和演示非常有用。
更多详情,请阅读本篇博文。
我可以将 Gradio 和Ultralytics YOLO11 一起用于教育目的吗?
是的,Gradio 和Ultralytics YOLO11 可以一起有效地用于教育目的。Gradio 直观的网络界面让学生和教育工作者可以轻松地与Ultralytics YOLO11 等最先进的深度学习模型进行交互,而无需高级编程技能。这种设置非常适合用于演示物体检测和计算机视觉的关键概念,因为 Gradio 可以提供即时的视觉反馈,有助于了解不同参数对检测性能的影响。
如何在YOLO11 的 Gradio 界面中调整置信度和 IoU 临界值?
在YOLO11 的 Gradio 界面中,您可以使用滑块调整置信度和 IoU 临界值。这些阈值有助于控制预测精度和对象分离度:
- 置信度阈值:确定检测物体的最低置信度。滑动可提高或降低所需的置信度。
- IoU 阈值:设置用于区分重叠对象的交叉-重合阈值。调整此值可细化对象分离。
有关这些参数的更多信息,请访问参数解释部分。
Ultralytics YOLO11 与 Gradio 有哪些实际应用?
将Ultralytics YOLO11 与 Gradio 相结合的实际应用包括
- 实时物体检测演示:是实时展示物体检测工作原理的理想之选。
- 教育工具:适用于教学环境,教授物体检测和计算机视觉概念。
- 原型开发:可快速高效地开发和测试物体检测应用原型。
- 社区与合作:方便与社区共享模型,以获得反馈和开展合作。
有关类似用例,请访问Ultralytics 博客。
在文件中提供这些信息将有助于提高Ultralytics YOLO11 的可用性和可访问性,使不同专业水平的用户都能更容易地使用它。
📅创建于 10 个月前
✏️已更新 2 个月前