Meet YOLO26: next-gen vision AI.

Link to this sectionUltralytics VS Code 扩展#



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

Link to this section功能与优势#

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

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

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

✅ 想要上手 Ultralytics 但希望有一种更简单的方式来引用或运行代码示例吗?

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

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


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

Link to this section灵感源自 Ultralytics 社区#

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

Link to this section为什么选择 VS Code?#

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

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

Link to this section安装扩展#

注意

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.

Link to this section在 VS Code 中安装#

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

  2. 点击 Install 按钮。


VS Code extension menu

Link to this section从 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

Link to this section使用 Ultralytics-Snippets 扩展#

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

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

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

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

Link to this section概述#

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

Link to this section代码片段字段#

许多片段都有带有默认占位符值或名称的“字段”。例如,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.

Link to this section代码片段补全#

更_短_的快捷方式

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

这些片段的命名尽可能具有描述性,但这可能意味着需要输入很多内容,如果目标是让速度更快,这将适得其反。幸运的是,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.

Link to this section片段类别#

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

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

Link to this section通过示例学习#

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

Link to this section加速开发#

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.

Link to this section关键字参数#

针对各种 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[h,w] 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 提供了字段,以防你在代码中使用了不同的变量。在包含关键字参数的每一行上,都包含简短的说明以供参考。

Link to this section所有代码片段#

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

Link to this section结论#

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

Link to this section常见问题解答#

Link to this section如何请求新片段?#

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

Link to this sectionUltralytics 扩展收费吗?#

它是 100% 免费的!

Link to this section为什么我看不到代码片段预览?#

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

Link to this section如何禁用 Ultralytics 中的扩展推荐?#

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

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

  2. You can use 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.

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

访问 Ultralytics-snippets 仓库并打开 Issue 或 Pull Request!

Link to this section如何卸载 Ultralytics-Snippets 扩展?#

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


VS Code extension menu

评论