Ultralytics VS Code 扩展



Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉

特性与优势

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

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

✅ 你是否总是忘记 exportpredicttraintrackval 方法的参数或默认值?

✅ 想开始使用 Ultralytics,但希望有一种更简单的方式来引用或运行代码示例吗?

✅ 想要在使用 Ultralytics 时加快开发周期吗?

如果你使用 Visual Studio Code 并且对上述任何问题回答“是”,那么适用于 VS Code 的 Ultralytics-snippets 扩展可以助你一臂之力!请继续阅读以了解有关该扩展的更多信息、如何安装以及如何使用它。


Snippet Prediction Preview
Run example code using Ultralytics YOLO in under 20 seconds! 🚀

灵感源自 Ultralytics 社区

构建此扩展的灵感来自 Ultralytics 社区。社区围绕相关主题和示例提出的问题推动了该项目的开发。此外,许多 Ultralytics 团队成员使用 VS Code 来加速他们自己的工作 ⚡。

为什么选择 VS Code?

Visual Studio Code 在全球开发者中极其受欢迎,并在 2021202220232024 年的 Stack Overflow 开发者调查中被评为最受欢迎的集成开发环境。鉴于 VS Code 的高度可定制性、内置功能、广泛的兼容性和可扩展性,如此多的开发者使用它也就不足为奇了。考虑到它在更广泛的开发者社区以及 Ultralytics DiscordDiscourseRedditGitHub 社区中的流行程度,构建一个 VS Code 扩展来帮助简化你的工作流程并提高你的生产力是有意义的。

想告诉我们你用什么来开发代码吗?前往我们的 Discourse 社区投票告诉我们!在那里时,也许可以看看我们最喜欢的一些计算机视觉、机器学习、AI 和开发者模因,甚至可以发布你最喜欢的!

安装扩展

注意

Any code environment that will allow for installing VS Code extensions should be compatible with the Ultralytics-snippets extension. After publishing the extension, it was discovered that neovim can be made compatible with VS Code extensions. To learn more see the neovim install section of the Readme in the Ultralytics-Snippets repository.

在 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 Extension Marketplace page for Ultralytics-Snippets

使用 Ultralytics-Snippets 扩展

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

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

  • 🔬 改进代码质量: 通过智能代码补全编写更整洁、更一致且无错误的代码。

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

概述

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

代码片段字段

许多片段都有带有默认占位符值或名称的“字段”。例如,predict 方法的输出可以保存为名为 rresultsdetectionspreds 或开发人员选择的任何其他 Python 变量,这就是为什么片段包含“字段”的原因。在插入代码片段后,使用键盘上的 Tab ⇥,你的光标将在字段之间快速移动。选中一个字段后,输入一个新的变量名不仅会更改该实例,还会更改片段代码中该变量的所有其他实例!


Multi-update field and options
After inserting snippet, renaming model as world_model updates all instances. Pressing Tab ⇥ moves to the next field, which opens a dropdown menu and allows for selection of a model scale, and moving to the next field provides another dropdown to choose either world or worldv2 model variant.

代码片段补全

甚至_更短_的快捷方式

不需要输入片段的完整前缀,甚至不需要从片段的开头开始输入。参见下图中的示例。

片段的命名尽可能具有描述性,但这意味着输入的内容可能很多,如果目标是更地移动,这将适得其反。幸运的是,VS Code 允许用户输入 ultra.example-yolo-predictexample-yolo-predictyolo-predict 甚至 ex-yolo-p,仍然可以找到预期的片段选项!如果预期的片段实际上是 ultra.example-yolo-predict-kwords,那么只需使用键盘箭头 高亮显示所需的片段,然后按 Enter ↵Tab ⇥ 即可插入正确的代码块。


VS Code incomplete code snippet preview
Typing ex-yolo-p will still arrive at the correct snippet.

片段类别

这些是 Ultralytics-snippets 扩展目前可用的片段类别。未来会添加更多,因此请务必检查更新并为扩展启用自动更新。如果你觉得有遗漏,也可以请求添加其他片段

类别起始前缀描述
示例ultra.examples旨在帮助学习或开始使用 Ultralytics 的示例代码。示例是文档页面代码的副本或与之类似的代码。
Kwargsultra.kwargs通过为具有所有关键字参数和默认值的 traintrackpredictval 方法添加片段来加快开发速度。
导入 (Imports)ultra.imports用于快速导入常见 Ultralytics 对象的片段。
模型ultra.yolo插入用于初始化各种 模型yolosamrtdetr 等)的代码块,包括下拉配置选项。
Resultsultra.result处理推理结果时常见操作的代码块。
实用工具ultra.util提供对 Ultralytics 包中内置的常用实用程序的快速访问,在简单实用程序页面上了解更多信息。

通过示例学习

ultra.examples 片段对于任何希望了解如何开始使用 Ultralytics YOLO 基础知识的人都非常有用。示例片段旨在插入后即可运行(有些也具有下拉选项)。本页顶部的动画展示了这一点,其中在插入片段后,所有代码都被选中并使用 Shift ⇑+Enter ↵ 交互式运行。

示例

就像本页顶部的动画所示,你可以使用片段 ultra.example-yolo-predict 来插入以下代码示例。插入后,唯一可配置的选项是模型缩放,可以是以下任意一种:nsmlx

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()  # uncomment to view each result image

加速开发

The aim for snippets other than the ultra.examples are for making development easier and quicker when working with Ultralytics. A common code block to be used in many projects, is to iterate the list of Results returned from using the model predict method. The ultra.result-loop snippet can help with this.

示例

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

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

for result in results:
    result.boxes.data  # torch.Tensor array

然而,由于 Ultralytics 支持众多的 任务,在处理推理结果时,还有其他你可能希望访问的 Results 属性,这就是片段字段发挥强大作用的地方。


VS Code YOLO results visualization options
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.

关键字参数

所有各种 Ultralytics 任务模式有超过 💯 个关键字参数!这需要记住很多,而且很容易忘记参数是 save_frame 还是 save_frames(顺便说一句,肯定是 save_frames)。这就是 ultra.kwargs 片段可以提供帮助的地方!

示例

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

model.predict(
    source=src,  # (str, optional) source directory for images or videos
    imgsz=640,  # (int | list) input images size as int or list[w,h] for predict
    conf=0.25,  # (float) minimum confidence threshold
    iou=0.7,  # (float) intersection over union (IoU) threshold for NMS
    vid_stride=1,  # (int) video frame-rate stride
    stream_buffer=False,  # (bool) buffer incoming frames in a queue (True) or only keep the most recent frame (False)
    visualize=False,  # (bool) visualize model features
    augment=False,  # (bool) apply image augmentation to prediction sources
    agnostic_nms=False,  # (bool) class-agnostic NMS
    classes=None,  # (int | list[int], optional) filter results by class, i.e. classes=0, or classes=[0,2,3]
    retina_masks=False,  # (bool) use high-resolution segmentation masks
    embed=None,  # (list[int], optional) return feature vectors/embeddings from given layers
    show=False,  # (bool) show predicted images and videos if environment allows
    save=True,  # (bool) save prediction results
    save_frames=False,  # (bool) save predicted individual video frames
    save_txt=False,  # (bool) save results as .txt file
    save_conf=False,  # (bool) save results with confidence scores
    save_crop=False,  # (bool) save cropped images with results
    stream=False,  # (bool) for processing long videos or numerous images with reduced memory usage by returning a generator
    verbose=True,  # (bool) enable/disable verbose inference logging in the terminal
)

此片段不仅为所有关键字参数提供了字段,还为 modelsrc 提供了字段,以防你在代码中使用了不同的变量。在包含关键字参数的每一行上,都包含简要说明以供参考。

所有代码片段

了解有哪些可用片段的最好方法是下载并安装扩展并试用它!如果你感到好奇并想提前查看列表,可以访问仓库VS Code 市场上的扩展页面以查看所有可用片段的表格。

总结

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

常见问题 (FAQ)

如何请求新代码片段?

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

Ultralytics 扩展需要多少钱?

它是 100% 免费的!

为什么我看不到代码片段预览?

VS Code 使用组合键 Ctrl+Space 在预览窗口中显示更多/更少信息。如果你在输入代码片段前缀时没有看到片段预览,使用此组合键应该可以恢复预览。

如何在 Ultralytics 中禁用扩展推荐?

如果你使用 VS Code 并且已经开始看到提示你安装 Ultralytics-snippets 扩展的消息,并且不想再看到该消息,有两种方法可以禁用此消息。

  1. 安装 Ultralytics-snippets,该消息将不再显示 😆!

  2. You can be using yolo settings vscode_msg False to disable the message from showing without having to install the extension. You can learn more about the Ultralytics Settings on the quickstart page if you're unfamiliar.

我有一个新的 Ultralytics 代码片段构思,如何添加它?

访问 Ultralytics-snippets 仓库并开启一个 Issue 或 Pull Request!

如何卸载 Ultralytics-Snippets 扩展?

与其他任何 VS Code 扩展一样,你可以通过导航到 VS Code 中的扩展菜单来卸载它。在菜单中找到 Ultralytics-snippets 扩展,点击齿轮图标 (⚙),然后点击“卸载”以移除该扩展。


VS Code extension menu

评论