用 Gradio 与 Ultralytics YOLO26 打造交互式目标检测 Web 界面【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics导读本文讲解如何基于 Gradio 与 Ultralytics YOLO26 集成指南即本仓库docs/en/integrations/gradio.md的技术主体在本地搭建一个无需编写前端代码即可完成图片上传、置信度与 IoU 阈值实时调节、检测结果即时可视化的交互式目标检测页面。读完本文你将掌握从环境安装、界面构建、model.predict()核心参数调优到多任务检测/分割/姿态/分类/旋转框等扩展的完整落地方法并了解其底层推理调用链可直接复制运行。交互式目标检测的意义为什么选择 GradioGradio 是 Hugging Face 生态中的 Python 界面库只需把推理函数 输入输出组件声明出来就能自动生成可交互的 Web 页面。把它与 Ultralytics YOLO26 结合主要价值体现在三方面零代码上手使用者无需接触任何编程即可上传图片并可视化检测结果非常适合做演示、教学与快速实验。参数实时调节置信度Confidence与 IoU 阈值以滑块形式呈现拖动即可立即看到检测效果的反馈便于理解阈值如何影响检测质量。广泛可访问Gradio 页面是标准的 Web 应用可在浏览器中打开任何人本机、局域网甚至通过 Gradio 生成的公网链接都能访问非常适合分享给团队评审模型效果。本文配套的界面主题是目标检测Object Detection。正如文档与仓库结构所示该思路可平滑迁移到分类、实例分割、姿态估计、OBB 旋转框、深度估计等其他 YOLO 任务只需替换加载的模型权重即可详见下文扩展到更多 YOLO 任务一节。环境准备安装依赖运行示例需要两个核心依赖界面框架 Gradio 与推理库 Ultralytics。pip install gradio pip install ultralytics首次执行时YOLO(yolo26n.pt)会自动下载对应权重到本地。文中示例用到的示例图片来自仓库的 ultralytics/assets 目录bus.jpg与zidane.jpg其路径常量ASSETS定义在 ultralytics/utils/init.pyASSETS ROOT / assets并通过 ultralytics/init.py 对外导出因此可以直接从ultralytics包顶层导入。核心示例可运行的完整 Gradio 界面下面是 gradio.md 提供的完整可运行示例其中加载的是 YOLO26 系列默认的轻量模型yolo26n.pt在 ultralytics/engine/model.py 中YOLO构造函数的默认模型即yolo26n.pt。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( sourceimg, confconf_threshold, iouiou_threshold, show_labelsTrue, show_confTrue, imgsz640, ) for r in results: im_array r.plot() im Image.fromarray(im_array[..., ::-1]) return im iface gr.Interface( fnpredict_image, inputs[ gr.Image(typepil, labelUpload Image), gr.Slider(minimum0, maximum1, value0.25, labelConfidence threshold), gr.Slider(minimum0, maximum1, value0.45, labelIoU threshold), ], outputsgr.Image(typepil, labelResult), titleUltralytics Gradio, descriptionUpload 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()界面使用三步走上传图片点击页面上的 Upload Image 区域选择一张本地图片也可以直接点击下方的examples示例卡片自动载入仓库自带的bus.jpg或zidane.jpg分别对应ultralytics/assets/bus.jpg与ultralytics/assets/zidane.jpg。调节参数拖动 Confidence threshold置信度与 IoU thresholdIoU两个滑块默认值分别为 0.25 与 0.45。查看结果右侧 Result 区域实时显示带类别标签、置信度文本与边界框的标注图。关键代码逐段拆解推理函数predict_image接收 PIL 图片与两个阈值内部调用model.predict(...)完成前向推理r.plot()把Results对象渲染为带标注的 BGR 数组再通过Image.fromarray(im_array[..., ::-1])反转为 RGB 并交给 Gradio 显示。输入组件gr.Image(typepil)保证回调拿到 PIL 对象这也是model.predict支持的原生输入类型之一——在 engine/model.py 的predict签名中source明确支持str | Path | PIL.Image | np.ndarray | torch.Tensor等多种来源。输出组件gr.Image直接展示标注结果图。examplesgr.Interface的examples参数会渲染为可一键点击的示例复用了仓库的ASSETS资源。调用链与底层实现从源码调用链看model.predict()最终会走到model.predictorBasePredictor的 stream_inference内部依次完成setup_source装载输入 →preprocess含letterbox缩放等预处理→ 模型前向 →postprocess含 NMS→write_results写结果。其中write_results在save/show场景下同样调用result.plot(line_width..., boxes..., conf..., labels...)生成标注图见 engine/predictor.py这与示例中手动调用r.plot()的渲染逻辑完全同源。值得说明的是engine/results.py 的Results.plot()支持丰富的自定义参数conf控制是否绘制置信度、labels控制类别标签、boxes控制边界框、line_width/font_size不传时按图像尺寸自适应此外还支持masks、probs、kpt_radius/kpt_line关键点、color_mode按类或按实例配色等供你在不同任务中按需开启。predict 核心参数深度解析示例把conf、iou等以函数参数的形式暴露给 Gradio 滑块理解它们的默认值与作用边界是调好交互界面的前提。以下是相关参数在 ultralytics/cfg/default.yaml 中的定义与说明参数默认值predict 场景含义conf0.25置信度阈值低于该分数的预测会被丢弃。注释说明 predict 默认 0.25、val 默认 0.001iou0.7NMS 阶段使用的 IoU 阈值default.yaml 全局默认 0.7示例界面中作为可调滑块默认给 0.45imgsz640推理输入尺寸可传[h, w]列表或单个 int正方形max_det300单张图片最大检测框数量show_labelsTrue是否绘制类别标签show_confTrue是否绘制置信度数值show_boxesTrue是否绘制边界框line_width自适应框线宽度未设置时随图像尺寸自动缩放device自动选择可选0/[0,1]CUDA、cpu、mps等两点来自源码的补充conf 的兜底默认值虽然default.yaml中conf为空# (float, optional)但 engine/predictor.py 在BasePredictor.__init__中做了兜底if self.args.conf is None: self.args.conf 0.25与 Gradio 界面滑块的默认值 0.25 完全对应保证了两端默认行为一致。任务差异iou主要用于 NMS 去重值越高对重叠框的抑制越宽松容易保留更多重叠框conf决定框是否保留两者共同作用正是界面中让用户动态调试的意义所在。从 default.yaml 可看到预测类参数还有agnostic_nms、classes按类别 id 过滤、augment测试时增强、vid_stride视频抽帧等如需扩展界面可继续引入。界面参数与组件速查表函数参数说明参数名类型说明imgImage待检测的目标图片PIL 图像conf_thresholdfloat目标检测置信度阈值0~1iou_thresholdfloat用于区分重叠物体的 IoU 阈值0~1Gradio 界面组件组件说明Image Input上传待检测图片Sliders实时调节置信度与 IoU 阈值Image Output展示带标注的检测结果扩展到更多 YOLO 任务文档明确指出这套示例可按需加载对应的模型权重迁移到分类、实例分割、姿态等任务。从仓库 ultralytics/cfg/models/26 目录可以确认YOLO26 官方配置覆盖了多种任务任务权重示例对应模型配置仓库路径目标检测yolo26n.ptultralytics/cfg/models/26/yolo26.yaml实例分割yolo26n-seg.ptultralytics/cfg/models/26/yolo26-seg.yaml姿态估计yolo26n-pose.ptultralytics/cfg/models/26/yolo26-pose.yaml图像分类yolo26n-cls.ptultralytics/cfg/models/26/yolo26-cls.yaml旋转框 OBByolo26n-obb.ptultralytics/cfg/models/26/yolo26-obb.yaml语义分割yolo26n-sem.ptultralytics/cfg/models/26/yolo26-sem.yaml深度估计yolo26n-depth.ptultralytics/cfg/models/26/yolo26-depth.yaml切换到其他任务时只需替换YOLO(...pt)的权重名由于 engine/model.py 的_smart_load会根据权重自动推断task并匹配对应的 predictor 实现仓库中ultralytics/models/yolo/下的classify/、detect/、segment/、pose/、obb/等目录即为各类任务的模型与预测器实现model.predict()与results.plot()的调用方式保持一致界面代码几乎无需改动。运行与分享本地执行脚本后Gradio 默认在http://127.0.0.1:7860启动 Web 界面。iface.launch()常用参数包括shareTrue生成一个可分享的临时公网链接便于远程演示由 Gradio 官方隧道服务中转server_name/server_port自定义监听地址与端口inbrowserTrue启动后自动打开默认浏览器。说明以上为 Gradio 框架自带能力具体可用参数以你所安装的 Gradio 版本为准。若需将页面与他人共享或嵌入网站可查阅你本地的gr.Interface.launch文档。常见问题FAQ如何用 Gradio 搭配 Ultralytics YOLO26 做目标检测三步即可先用pip install gradio安装界面库再按本文核心示例编写脚本初始化gr.Interface将predict_image绑定到图片输入与阈值滑块最后运行脚本、上传图片并拖动滑块观察实时检测结果。文中提供的完整代码可直接复制运行。这样组合有哪些收益界面友好零代码即可上传图片、查看检测标注实时调节动态调整conf/iou阈值并立刻看到效果差异有助于理解这两个参数对检测精度与物体分离的影响易于传播Web 界面可供他人直接访问适合快速实验、课堂演示与团队评审。可以用于教学吗可以。Gradio 直观的 Web 界面让师生无需高级编程即可操作 YOLO26 这类模型非常适合演示目标检测与计算机视觉中的核心概念——例如让学生拖动置信度滑块直观感受阈值升高时漏检false negative增多、阈值降低时误检false positive增多的权衡从而理解conf/iou与检测表现的因果关系。如何在界面中调节置信度与 IoU 阈值直接拖动界面中的两个滑块即可Confidence置信度阈值决定目标被保留所需的最低置信度向右滑要求更严格IoU 阈值决定两个重叠框是否被视为同一目标NMS 去重依据调节它可改善密集/重叠场景下的物体分离效果。两个参数分别对应model.predict()中的conf与iou语义见上表可参考本文predict 核心参数深度解析一节。有哪些典型的落地场景实时目标检测演示面向客户或课堂直观展示检测能力与阈值影响教学工具辅助讲解目标检测与计算机视觉基础概念原型快速开发在编写正式产品前快速验证模型在不同参数下的表现团队协作验证生成网页链接分享给团队成员收集关于误检/漏检案例的反馈。小结本文完整继承并深化了 docs/en/integrations/gradio.md 的核心内容从 Gradio 的选型动机、安装方式、可运行的完整界面代码到predict关键参数conf/iou/imgsz/show_labels/show_conf等的默认值表、Gradio 组件说明与常见 FAQ并结合仓库源码补充了推理调用链model.predict → BasePredictor.stream_inference → Results.plot、conf0.25的源码兜底逻辑、Results.plot()的渲染参数以及 YOLO26 在多任务检测/分割/姿态/分类/OBB/语义/深度下的扩展路径。你只需复制核心示例并换用对应权重就能快速搭建自己的交互式视觉推理应用。【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
