Ultralytics YOLO27:
Get Started

交互式目标检测:Gradio 与 Ultralytics YOLO26#

交互式目标检测简介#

这个 Gradio 界面提供了一种简单、交互式的方式,让你使用 Ultralytics YOLO26 模型执行目标检测。用户可以上传图像,并调整置信度阈值和交并比(IoU)阈值等参数,以实时获取检测结果。



观看: 使用 Gradio 在浏览器中部署 Ultralytics YOLO26 | 完整教程 | 视觉 AI 🌐

为什么使用 Gradio 进行目标检测?#

  • 易用的界面:Gradio 提供了一个直观的平台,用户无需编写代码即可上传图像并查看检测结果。
  • 实时调整:可以即时调整置信度和 IoU 阈值等参数,从而立即查看反馈并优化检测结果。
  • 广泛易用:任何人都可以访问 Gradio 网页界面,因此它非常适合演示、教学和快速实验。

Gradio YOLO detection interface

如何安装 Gradio#

pip install gradio

如何使用此界面#

  1. 上传图像:点击“上传图像”,选择用于目标检测的图像文件。
  2. 调整参数:
    • 置信度阈值:用于设置检测目标所需的最低置信度的滑块。
    • IoU 阈值:用于设置区分不同目标的 IoU 阈值的滑块。
  3. 查看结果:处理后的图像以及检测到的目标和对应标签将显示出来。

示例应用场景#

  • 示例图像 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()

参数说明#

参数名称类型说明
imgImage将执行目标检测的图像。
conf_thresholdfloat用于检测目标的置信度阈值。
iou_thresholdfloat用于区分目标的交并比阈值。

Gradio 界面组件#

组件说明
图像输入用于上传待检测图像。
滑块用于调整置信度和 IoU 阈值。
图像输出用于显示检测结果。

常见问题#

  • 要将 Gradio 与 Ultralytics YOLO26 配合使用来执行目标检测,可以按以下步骤操作:

    1. 安装 Gradio:使用命令 pip install gradio。
    2. 创建界面:编写 Python 脚本来初始化 Gradio 界面。有关详情,请参阅文档中提供的代码示例。
    3. 上传图像并调整参数:上传图像,并在 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 执行 Ultralytics YOLO26 目标检测有以下几项好处:

    • 易用的界面:Gradio 提供直观的界面,用户无需费力编写代码即可上传图像并查看检测结果。
    • 实时调整:你可以动态调整置信度和 IoU 阈值等检测参数,并立即查看效果。
    • 易于访问:任何人都可以访问此网页界面,因此它适用于快速实验、教学和演示。

    如需了解详情,可以阅读这篇介绍类似交互式可视化技术的放射学中的 AI 博客文章。

  • 可以,将 Gradio 与 Ultralytics YOLO26 结合用于教学效果很好。Gradio 直观的网页界面让学生和教师无需具备高级编程技能,就能轻松使用 Ultralytics YOLO26 等先进的深度学习模型。Gradio 能即时提供视觉反馈,帮助理解不同参数对检测性能的影响,因此这种配置非常适合演示目标检测和计算机视觉的关键概念。

  • 在 YOLO26 的 Gradio 界面中,你可以使用提供的滑块调整置信度和 IoU 阈值。这些阈值有助于控制预测准确率和目标区分效果:

    • 置信度阈值:决定检测目标所需的最低置信度。拖动滑块即可提高或降低所需置信度。
    • IoU 阈值:设置用于区分重叠目标的交并比阈值。调整此值可以优化目标区分效果。

    如需了解这些参数的更多信息,请访问参数说明部分。

  • 将 Ultralytics YOLO26 与 Gradio 结合使用的实际应用包括:

    • 实时目标检测演示:非常适合展示目标检测的实时工作方式。
    • 教学工具:适用于学术环境,可用于讲授目标检测和计算机视觉概念。
    • 原型开发:可以高效地快速开发和测试目标检测应用原型。
    • 社区协作:便于与社区分享模型,以获取反馈并开展协作。

    如需查看类似应用案例,请参阅Ultralytics 关于动物行为监测的博客文章,了解交互式可视化如何助力野生动物保护工作。

评论