跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

上手 YOLO12 WebUI:浏览器里跑目标检测,不用装环境

YOLO12 WebUI 将目标检测封装为浏览器工具,无需配置 Python 环境。通过 supervisorctl 管理服务,访问 8001 端口上传图片即可得到检测结果,支持切换 nano 到 x 五档模型,提供 API 集成。常见问题如格式限制、结果保存等均有解决方案。

人间过客发布于 2026/6/14更新于 2026/8/2018 浏览

在命令行列出一堆参数只为框出图片里的物体,很多人都被劝退过。YOLO12 WebUI 把这事简化了:打开浏览器,上传图片,等一会儿结果就出来。它能标注 80 类常见物体——从桌上的苹果、手机,到窗外的汽车、行人,背后跑的是 2025 年初发布的 YOLO12-nano 模型,由纽约州立大学布法罗分校与中国科学院大学团队联合研发,以注意力机制为核心,响应毫秒级。

你可以随时切换更大更准的模型(s/m/l/x),查看日志排查问题,或者通过 API 接入自己的系统。下面走一遍从零到看到检测结果的整个过程。

部署服务

YOLO12 WebUI 镜像已经预置好运行环境,不用编译源码或折腾依赖。

检查服务状态

登录 Linux 服务器(支持 Ubuntu 22.04 / CentOS 7+),看看服务是不是已经在跑:

supervisorctl status yolo12

正常输出类似:

yolo12 RUNNING pid 1234, uptime 0:05:23

如果显示 FATAL 或 STOPPED,启动它:

supervisorctl start yolo12

首次启动可能需要 10~20 秒加载模型。如果一直卡在 STARTING,用 supervisorctl tail yolo12 看日志定位原因。

访问地址

服务默认监听端口 8001。浏览器里输入:

http://<你的服务器 IP>:8001

比如 IP 是 192.168.1.100,就访问 http://192.168.1.100:8001。打开后是一个干净的界面,中央有带虚线边框的上传区。

健康检查(可选)

在终端执行:

curl http://localhost:8001/health

预期返回:

{"status":"ok","model":"yolov12n.pt"}

如果返回 Connection refused,检查:

  • 是否在服务器本机执行
  • 端口 8001 是否被防火墙挡了(ufw status 或 firewall-cmd --list-ports)
  • Supervisor 本身是不是在运行(systemctl status supervisor)

在 WebUI 里做检测

界面没有菜单栏和设置页,就是上传图片、看结果。

点击上传

  1. 点虚线框区域,弹出文件选择对话框
  2. 选一张 JPG 或 PNG 图片(建议包含人物、车辆、宠物等常见物体)
  3. 点'打开',上传和检测自动开始

YOLO12-nano 在普通 GPU(如 RTX 3060)上平均响应不到 0.3 秒;纯 CPU 环境大概 1~2 秒。

拖拽上传

直接把图片文件从文件管理器拖到网页虚线框里,松手就行。当前版本只处理第一张图,后续会支持批量。

看懂结果

检测完,原图上会叠加彩色边界框,右边同步生成结构化列表。你主要看三样东西:

  • 彩色边界框:不同类别有固定颜色(比如 person 蓝色、car 绿色、dog 橙色),框体粗细统一。
  • 类别标签:每个框上方都有文字,如 person、bottle。
  • 置信度列表:右侧滚动列表逐条给出物体名、置信分数(保留 4 位小数,如 0.9732)和坐标 [x_center, y_center, width, height](单位像素)。

举个例子,上传一张办公室照片,你可能看到:

person — 0.9823 — [420.5, 285.1, 112.3, 265.7]

这表示在画面中心坐标 (420.5, 285.1) 处有一个人,框宽 112.3 像素、高 265.7 像素,模型有 98.23% 的把握。

进阶操作

换更高精度的模型

YOLO12 有 5 档模型,nano 最快,x 最准。切换步骤:

  1. 编辑配置文件:
nano /root/yolo12/config.py
  1. 修改 MODEL_NAME 行,比如改成:
MODEL_NAME = "yolov12x.pt"

确保只有一行生效,删掉其他 MODEL_NAME 行。

  1. 重启服务:
supervisorctl restart yolo12

模型参数对比:

模型CPU 推理速度COCO [email protected]适用场景
yolov12n.pt~18 FPS42.1实时监控、边缘设备
yolov12s.pt~12 FPS46.7通用检测、中等算力
yolov12m.pt~8 FPS50.3精准识别、科研验证
yolov12l.pt~5 FPS52.9高要求工业质检
yolov12x.pt~3 FPS54.6学术研究、极限精度

查看日志

日志都放在 /root/yolo12/logs/,日常检查主要看这三个:

  • app.log:每次请求的图片名、检测耗时、物体数量
  • error.log:只记异常(图片损坏、内存不足、CUDA 错误等)
  • supervisor.log:服务启停、崩溃等系统级事件

快速看最近 20 行应用日志:

tail -20 /root/yolo12/logs/app.log

典型成功日志:

2025-04-12 10:23:45 INFO Uploaded: office.jpg → detected 3 objects in 0.28s

典型错误日志:

2025-04-12 10:25:11 ERROR Failed to load image: OSError('Unsupported image format')

调用 API

WebUI 底层是标准 FastAPI 接口,你可以用任何语言调用。

检测单张图的 curl 示例:

curl -F "file=@/path/to/test.jpg" http://localhost:8001/predict

Python 版本:

import requests
url = "http://localhost:8001/predict"
with open("test.jpg", "rb") as f:
    files = {"file": f}
    res = requests.post(url, files=files)
    print(res.json())

几点注意:

  • 上传字段名必须是 file(区分大小写)
  • 返回的 bbox 是中心点坐标加宽高,不是左上角坐标
  • 单次请求只支持一张图,批量就循环调用

常见问题

图片上传后没反应

  • 打开浏览器控制台(F12 → Console),看有没有 Failed to fetch 报错。有的话说明前端连不上后端,确认 http://<IP>:8001 能访问且端口开放。
  • 图片格式只支持 JPG/PNG(WEBP 和 GIF 动图不行)。
  • 默认文件大小限制 10MB,需要放宽可以改 app.py 里的 max_upload_size。

检测结果全是'person',其他物体没框出来

  • 目标太小(小于 32×32 像素),nano 模型对小物体敏感度有限,可以试试放大图片或换成 yolov12s.pt。
  • 严重遮挡或光照极差(逆光剪影、夜间低照度)——YOLO12 没针对极端场景优化,预处理一下增强对比度会好些。
  • 物体不在 COCO 80 类里(比如电饭煲、游戏手柄),当前模型不支持自定义类别,得自己微调训练。

想保存带框的结果图

界面没有'下载结果图'按钮,但你可以:

  • 右键点检测后的图像 → '另存为'(部分浏览器支持保存 Canvas 渲染图)
  • 更可靠的办法是调 API 拿 detections,然后用 OpenCV 或 PIL 自己画框保存。简单示例:
from PIL import Image, ImageDraw
import json

data = res.json()
img = Image.open("test.jpg")
draw = ImageDraw.Draw(img)
for det in data["detections"]:
    x, y, w, h = det["bbox"]
    left = x - w/2
    top = y - h/2
    draw.rectangle([left, top, left+w, top+h], outline="red", width=3)
    draw.text((left, top-20), det["class_name"], fill="red")
img.save("result.jpg")

想在手机上用

Chrome / Safari 访问没问题,能上传相册图片。但 iOS Safari 对大图上传有限制,建议先压到 2MB 以下。微信内置浏览器和部分版本 QQ 浏览器不支持。

服务启动失败,supervisor 日志显示'torch not found'

这说明 Conda 环境没激活。手动激活再重启:

source /opt/conda/bin/activate torch28
supervisorctl restart yolo12

或者检查 Supervisor 配置文件里 environment 是否指向了正确路径(/root/yolo12/supervisord.conf)。

上面这些步骤走完,基本够日常使用了。下一步你可以试试拿手机拍一张街景图看看交通参与者识别,或者写个脚本批量处理图片导出 CSV。

目录

  1. 部署服务
  2. 检查服务状态
  3. 访问地址
  4. 健康检查(可选)
  5. 在 WebUI 里做检测
  6. 点击上传
  7. 拖拽上传
  8. 看懂结果
  9. 进阶操作
  10. 换更高精度的模型
  11. 查看日志
  12. 调用 API
  13. 常见问题
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 在 M 系列 Mac 上安装 Vivado 的实用方法
  • Spring 国际化原理与实战:MessageSource、LocaleResolver、LocaleContextHolder、MessageFormat
  • Flutter 使用 groq_sdk 实现鸿蒙端 AI 推理适配指南
  • 基于强化学习的多无人机对抗决策生成与优化方法研究
  • FPGA 摄像头采集处理显示指南:OV5640 至 HDMI 实时显示
  • 国产大语言模型翻译能力评测:十款主流模型对比分析
  • 少儿学习 Python 的重要性:升学考试与职业发展分析
  • llama.cpp 实战指南:在普通 CPU 上运行大模型
  • Claude Code + GLM4.7 修复前端 Bug 失败复盘:高 Token 消耗与工程化局限
  • AI 时代下生物细胞学的最新进展
  • OpenClaw 本地 AI 智能体入门与实战指南
  • Python dotenv 库 load_dotenv() 使用指南:环境变量管理与安全实践
  • 滑动窗口算法实战:串联所有单词的子串与最小覆盖子串
  • Linux 系统下 JDK 安装与环境配置实战
  • 渐进式 AIGC 系统:多模型集成与私有化部署方案
  • C++ 并发核心:内存序、可见性与指令重排
  • Qwen3-VL-WEBUI 部署与 Qwen3-VL-4B-Instruct 高效推理实践
  • SuperMap iClient3D for WebGL 集成大华 RTSP 与 WebSocket 视频投放方案
  • AI 时代,普通人如何脱颖而出?
  • FAIR plus 机器人全产业链接会概览

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online