交互式目标检测:Gradio & Ultralytics YOLO11 🚀
交互式目标检测简介
此Gradio界面提供了一种简单且交互式的方式,使用Ultralytics YOLO11模型进行目标检测。用户可以上传图像并调整置信度阈值和交并比(IoU)阈值等参数,以获得实时的检测结果。
观看: Gradio与Ultralytics YOLO11的集成
为什么使用Gradio进行目标检测?
- 用户友好的界面: Gradio提供了一个直观的平台,用户可以上传图像并可视化检测结果,无需任何编码要求。
- 实时调整: 可以即时调整置信度和IoU阈值等参数,允许立即反馈和优化检测结果。
- 广泛的访问性: Gradio的网页界面任何人都可以访问,是演示、教育和快速实验的绝佳工具。
如何安装Gradio
如何使用界面
- 上传图像: 点击“上传图像”选择用于目标检测的图像文件。
- 调整参数:
- 置信度阈值: 滑块设置检测对象的最小置信度。
- IoU阈值: 滑块设置区分不同对象的IoU阈值。
- 查看结果: 将显示带有检测对象及其标签的处理图像。
示例用例
- 示例图像1: 使用默认阈值检测公交车。
- 示例图像2: 使用默认阈值检测体育图像。
使用示例
本节提供了用于创建带有Ultralytics YOLO11模型的Gradio界面的Python代码。支持分类任务、检测任务、分割任务和关键点任务。
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):
"""使用可调置信度和IoU阈值的YOLO11模型预测图像中的对象。"""
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="上传图像"),
gr.Slider(minimum=0, maximum=1, value=0.25, label="置信度阈值"),
gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU阈值"),
],
outputs=gr.Image(type="pil", label="结果"),
title="Ultralytics Gradio",
description="上传图像进行推理。默认使用Ultralytics YOLO11n模型。",
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进行目标检测,您可以按照以下步骤操作:
1. 安装Gradio: 使用命令 pip install gradio
。
2. 创建界面: 编写一个Python脚本来初始化Gradio界面。你可以参考文档中提供的代码示例以获取详细信息。
3. 上传和调整: 上传你的图像并在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="上传图像"),
gr.Slider(minimum=0, maximum=1, value=0.25, label="置信度阈值"),
gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU阈值"),
],
outputs=gr.Image(type="pil", label="结果"),
title="Ultralytics Gradio YOLO11",
description="上传图像以进行YOLO11目标检测。",
)
iface.launch()
使用Gradio进行Ultralytics YOLO11目标检测的好处是什么?
使用Gradio进行Ultralytics YOLO11目标检测有以下几个好处:
- 用户友好的界面: Gradio提供了一个直观的界面,用户可以上传图像并可视化检测结果,无需任何编码工作。
- 实时调整: 你可以动态调整检测参数,如置信度和IoU阈值,并立即看到效果。
- 可访问性: 网页界面对任何人开放,适用于快速实验、教育目的和演示。
更多详情,你可以阅读这篇博客文章。
我可以用Gradio和Ultralytics YOLO11一起用于教育目的吗?
是的,Gradio和Ultralytics YOLO11可以有效地结合用于教育目的。Gradio的直观网页界面使得学生和教育者能够轻松与深度学习模型(如Ultralytics YOLO11)互动,而无需高级编程技能。这种设置非常适合演示目标检测和计算机视觉中的关键概念,因为Gradio提供了即时的视觉反馈,有助于理解不同参数对检测性能的影响。
如何在Gradio界面中调整YOLO11的置信度和IoU阈值?
在YOLO11的Gradio界面中,你可以使用提供的滑块来调整置信度和IoU阈值。这些阈值有助于控制预测准确性和对象分离:
- 置信度阈值: 确定检测对象的最小置信度水平。滑动以增加或减少所需的置信度。
- IoU阈值: 设置区分重叠对象的交并比阈值。调整此值以细化对象分离。
有关这些参数的更多信息,请访问参数解释部分。
使用Ultralytics YOLO11与Gradio有哪些实际应用?
结合Ultralytics YOLO11与Gradio的实际应用包括:
- 实时目标检测演示: 非常适合展示实时目标检测的工作原理。
- 教育工具: 在学术环境中用于教授目标检测和计算机视觉概念。
- 原型开发: 高效地用于快速开发和测试目标检测应用程序原型。
- 社区和合作: 便于与社区分享模型以获取反馈和合作。
有关类似用例的示例,请查看Ultralytics博客。
在文档中提供这些信息将有助于提高Ultralytics YOLO11的可用性和可访问性,使其对所有经验水平的用户都更加友好。