Ultralytics YOLO27:
Get Started

Ultralytics VS Code 扩展#



观看: 如何使用 Ultralytics Visual Studio Code 扩展 | 即用型代码片段 | Ultralytics YOLO 🎉

功能与优势#

✅ 你是使用 Ultralytics 构建计算机视觉应用的数据科学家或机器学习工程师吗?

✅ 你是否讨厌反复编写相同的代码块?

✅ 你是否总是忘记 train、val、predict、export 或 track 方法的参数或默认值?

✅ 想要开始使用 Ultralytics,却希望有一种更轻松的方式来查阅或运行代码示例?

✅ 想在使用 Ultralytics 时加快开发进度?

如果你使用 Visual Studio Code,并且对以上任一问题的回答是“是”,那么 VS Code 的 Ultralytics-snippets 扩展就能帮上忙!继续阅读,了解有关该扩展的更多信息,以及如何安装和使用它。


Snippet Prediction Preview
使用 Ultralytics YOLO 运行示例代码,不到 20 秒即可完成!🚀

灵感源自 Ultralytics 社区#

构建这个扩展的灵感来自 Ultralytics 社区。社区中关于类似主题和示例的问题推动了这个项目的开发。此外,许多 Ultralytics 团队成员都使用 VS Code 来加快自己的工作 ⚡。

为什么选择 VS Code?#

Visual Studio Code 在全球开发者中非常受欢迎,并在 Stack Overflow 开发者调查的 2021、2022、2023 和 2024 年调查中均位列最受欢迎工具。VS Code 高度可定制、内置功能丰富、兼容性广泛且可扩展性强,因此众多开发者选择使用它也就不足为奇了。考虑到 VS Code 在更广泛的开发者社区以及 Ultralytics 的 Discord、Discourse、Reddit 和 GitHub 社区中都很受欢迎,开发 VS Code 扩展来简化你的工作流程、提升工作效率是顺理成章的选择。

想告诉我们你用什么来开发代码吗?欢迎前往我们的 Discourse 社区投票告诉我们!顺便的话,也可以看看我们最喜欢的一些计算机视觉、机器学习、AI 和开发者梗图,或者发布你最喜欢的梗图!

安装扩展#

注意

任何允许安装 VS Code 扩展的代码环境应该都兼容 Ultralytics-snippets 扩展。该扩展发布后,我们发现 neovim 也可以配置为兼容 VS Code 扩展。要了解详情,请参阅 Ultralytics-Snippets 仓库 Readme 中的 neovim 安装部分。

在 VS Code 中安装#

  1. 前往 VS Code 中的扩展菜单,或使用快捷键 Ctrl+Shift ⇑+x,然后搜索 Ultralytics-snippets。

  2. 点击 Install 按钮。


VS Code extension menu

从 VS Code 扩展市场安装#

  1. 访问 VS Code 扩展市场并搜索 Ultralytics-snippets,或直接前往 VS Code 市场中的扩展页面。

  2. 点击 Install 按钮,并允许浏览器启动 VS Code 会话。

  3. 按照提示安装扩展。


VS Code marketplace extension install
Visual Studio Code 扩展市场中的 Ultralytics-Snippets 页面

使用 Ultralytics-Snippets 扩展#

  • 🧠 智能代码补全:借助针对 Ultralytics API 定制的高级代码补全建议,更快、更准确地编写代码。

  • ⌛ 提升开发速度:通过消除重复的编码任务并利用预先构建的代码块片段,节省时间。

  • 🔬 提升代码质量:借助智能代码补全,编写更简洁、更一致且无错误的代码。

  • 💎 简化工作流程:自动处理常见任务,让你专注于项目的核心逻辑。

概述#

只有将语言模式设置为 Python 🐍 时,该扩展才会运行。这样可以避免在处理其他文件类型时插入代码片段。所有代码片段的前缀都以 ultra 开头,安装扩展后,只需在编辑器中输入 ultra,就会显示可用代码片段列表。你也可以使用 Ctrl+Shift ⇑+p 打开 VS Code 命令面板,然后运行命令 Snippets: Insert Snippet。

代码片段字段#

许多代码片段包含带有默认占位值或名称的“字段”。例如,predict 方法的输出可以保存到名为 r、results、detections、preds 或开发者选择的其他名称的 Python 变量中,因此代码片段会包含“字段”。插入代码片段后,按键盘上的 Tab ⇥,光标就会快速在各个字段之间移动。选中字段后,输入新的变量名称即可更改该字段,同时也会更改代码片段中该变量的其他所有实例!


Multi-update field and options
插入代码片段后,将 model 重命名为 world_model,即可更新所有实例。按下 Tab ⇥ 可跳转到下一个字段,该字段会打开下拉菜单供你选择模型规模;继续跳转到下一个字段时,会出现另一个下拉菜单,让你选择 world 或 worldv2 模型变体。

代码片段补全#

更*短*的快捷方式

无需输入完整的代码片段前缀,甚至无需从前缀开头开始输入。请看下方图片中的示例。

代码片段名称尽可能描述清晰,但这意味着需要输入的内容可能较多;如果目标是提升速度,这反而会适得其反。幸运的是,VS Code 允许用户输入 ultra.example-yolo-predict、example-yolo-predict、yolo-predict,甚至 ex-yolo-p,仍然可以找到目标代码片段选项!如果目标代码片段确实是 ultra.example-yolo-predict-kwords,只需使用键盘上的 ↑ 或 ↓ 箭头键选中所需代码片段,然后按 Enter ↵ 或 Tab ⇥,即可插入正确的代码块。


VS Code incomplete code snippet preview
输入 ex-yolo-p 仍然会找到正确的代码片段。

代码片段类别#

以下是 Ultralytics-snippets 扩展目前提供的代码片段类别。未来还会添加更多类别,因此请记得检查更新并为扩展启用自动更新。如果你觉得缺少某些代码片段,也可以申请添加。

类别起始前缀说明
示例ultra.examples帮助你学习或入门 Ultralytics 的示例代码。示例是文档页面中代码的副本或类似代码。
关键字参数ultra.kwargs通过为 train、val、predict 和 track 方法添加包含所有关键字参数和默认值的代码片段,加快开发速度。
导入ultra.imports用于快速导入常见 Ultralytics 对象的代码片段。
模型ultra.yolo插入用于初始化各种模型的代码块(yolo、sam、rtdetr 等),其中包括下拉配置选项。
结果ultra.result用于处理推理结果时常见操作的代码块。
实用工具ultra.util快速访问 Ultralytics 软件包内置的常用实用工具。请在简单实用工具页面了解详情。

通过示例学习#

对于想要学习 Ultralytics YOLO 基础知识并开始上手的人来说,ultra.examples 代码片段非常实用。插入示例代码片段后即可运行(其中一些还提供下拉选项)。本页顶部的动画展示了一个示例:插入代码片段后,所有代码都会被选中,并使用 Shift ⇑+Enter ↵ 交互式运行。

示例

如本页顶部的动画所示,你可以使用代码片段 ultra.example-yolo-predict 插入以下代码示例。插入后,唯一可配置的选项是模型规模,可选值包括:n、s、m、l 或 x。

from ultralytics import ASSETS, YOLO

model = YOLO("yolo26n.pt", task="detect")
results = model(source=ASSETS / "bus.jpg")

for result in results:
    print(result.boxes.data)
    # result.show()  # 取消注释以查看每张结果图像

加快开发速度#

除了 ultra.examples 之外,其他代码片段旨在让你使用 Ultralytics 时更轻松、更快速地进行开发。许多项目都会用到一个常见代码块:遍历使用模型 predict 方法返回的 Results 列表。ultra.result-loop 代码片段可以帮你完成这项工作。

示例

使用 ultra.result-loop 会插入以下默认代码(包括注释)。

# reference https://docs.ultralytics.com/modes/predict#working-with-results

for result in results:
    result.boxes.data  # torch.Tensor 数组

不过,由于 Ultralytics 支持多种任务,在处理推理结果时,你可能还想访问其他 Results 属性;这正是代码片段字段发挥作用的地方。


VS Code YOLO results visualization options
按 Tab 键跳转到 boxes 字段后,会出现一个下拉菜单,让你按需选择其他属性。

关键字参数#

Ultralytics 各种任务和模式的关键字参数有 💯 多个!这么多参数很难记住,而且很容易忘记参数是 save_frame 还是 save_frames(顺便说一下,正确的是 save_frames)。这时 ultra.kwargs 代码片段就能派上用场!

示例

要插入包含所有推理参数的 predict 方法,请使用 ultra.kwargs-predict,它会插入以下代码(包括注释)。

model.predict(
    source=src,  # (str, optional) 图像或视频的源目录
    imgsz=640,  # (int | list) 输入图像尺寸,可用整数或 list[h,w] 表示,供 predict 使用
    conf=0.25,  # (float) 最小置信度阈值
    iou=0.7,  # (float) 用于 NMS 的交并比 (IoU) 阈值
    vid_stride=1,  # (int) 视频帧率步长
    stream_buffer=False,  # (bool) 将传入帧缓存在队列中 (True),还是仅保留最新帧 (False)
    visualize=False,  # (bool) 保存类别激活热力图
    augment=False,  # (bool) 对预测源应用图像增强
    agnostic_nms=False,  # (bool) 与类别无关的 NMS
    classes=None,  # (int | list[int], optional) 按类别筛选结果,例如 classes=0 或 classes=[0,2,3]
    retina_masks=False,  # (bool) 使用高分辨率分割掩码
    embed=None,  # (list[int], optional) 返回指定层的特征向量/嵌入
    show=False,  # (bool) 如果环境允许,则显示预测图像和视频
    save=True,  # (bool) 保存预测结果
    save_frames=False,  # (bool) 保存单独的预测视频帧
    save_txt=False,  # (bool) 将结果保存为 .txt 文件
    save_conf=False,  # (bool) 保存包含置信度分数的结果
    save_crop=False,  # (bool) 保存带有结果的裁剪图像
    stream=False,  # (bool) 通过返回生成器来处理长视频或大量图像,以降低内存用量
    verbose=True,  # (bool) 启用/禁用终端中的详细推理日志
)

此代码片段包含所有关键字参数的字段,还包含 model 和 src 字段,以便你在代码中使用了其他变量时也能适用。每个包含关键字参数的代码行都附有简短说明,供你参考。

所有代码片段#

了解有哪些代码片段可用,最好的办法就是下载并安装扩展,亲自试用!如果你想提前查看列表,可以访问仓库或 VS Code 市场中的扩展页面,查看所有可用代码片段的表格。

结论#

VS Code 的 Ultralytics-Snippets 扩展旨在帮助数据科学家和机器学习工程师更高效地使用 Ultralytics YOLO 构建计算机视觉应用。通过提供预先构建的代码片段和实用示例,我们帮助你专注于最重要的事情:创建创新解决方案。欢迎访问 VS Code 市场中的扩展页面并留下评价,分享你的反馈。⭐

常见问题#

  • 你可以通过 Ultralytics-Snippets 仓库中的 Issues 申请新的代码片段。

  • 完全免费!

  • VS Code 使用快捷键 Ctrl+Space 在预览窗口中显示/隐藏更多信息。如果输入代码片段前缀时看不到代码片段预览,使用此快捷键组合应该就能恢复预览。

  • 如果你使用 VS Code,并且开始看到提示你安装 Ultralytics-snippets 扩展的消息,但不想再看到这条消息,可以通过两种方式将其禁用。

    1. 安装 Ultralytics-snippets 后,就不会再显示这条消息了 😆!

    2. 你可以使用 yolo settings vscode_msg=False 禁止显示这条消息,无需安装扩展。如果你不熟悉相关设置,可以在 Ultralytics 设置页面了解更多信息。

  • 访问 Ultralytics-snippets 代码仓库,然后新建 Issue 或 Pull Request!

  • 与其他 VS Code 扩展一样,你可以在 VS Code 中打开“扩展”菜单来卸载它。在菜单中找到 Ultralytics-snippets 扩展,点击齿轮图标 (⚙),然后点击“卸载”即可移除该扩展。


    VS Code extension menu

评论