Ultralytics YOLO27:

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 深受全球开发者欢迎,并在 Stack Overflow 开发者调查的 2021202220232024 年度调查中排名最受欢迎。VS Code 具有高度可定制性、内置功能、广泛的兼容性和可扩展性,因此受到众多开发者使用也就不足为奇了。鉴于它在更广泛的开发者社区以及 Ultralytics 的 DiscordDiscourseRedditGitHub 社区中的受欢迎程度,开发 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 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 的示例代码。示例是文档页面中代码的副本或类似代码。
关键字参数ultra.kwargs通过为带有所有关键字参数和默认值的 traintrackpredictval 方法添加代码片段来加快开发速度。
导入ultra.imports用于快速导入常见 Ultralytics 对象的代码片段。
模型ultra.yolo插入用于初始化各种模型yolosamrtdetr 等)的代码块,其中包括下拉配置选项。
结果ultra.result用于处理推理结果时常见操作的代码块。
实用工具ultra.util快速访问 Ultralytics 包内置的常用实用工具;你可以在简单实用工具页面上了解更多信息。

通过示例学习#

对于希望学习如何开始使用 Ultralytics YOLO 基础功能的用户来说,ultra.examples 代码片段非常实用。代码片段示例旨在插入后即可运行(其中一些还提供下拉选项)。本页顶部的动画展示了一个示例:插入代码片段后,所有代码都会被选中,并使用 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

加速开发#

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 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[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) save class activation heatmaps
    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 设置了字段,以防你在代码中使用了不同的变量。每一行包含关键字参数的代码旁边都附有简要说明,供你参考。

所有代码片段#

了解有哪些代码片段可用的最佳方式是下载并安装扩展,然后亲自试用!如果你感到好奇,想提前查看列表,可以访问 repoVS Code 市场中的扩展页面,查看所有可用代码片段的表格。

结论#

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

常见问题#

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

  • 完全免费!

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

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

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

    2. 你可以使用 yolo settings vscode_msg=False 来禁用该消息的显示,而无需安装该扩展。如果不熟悉,你可以在 Ultralytics Settings 页面上了解更多信息。

  • 访问 Ultralytics-snippets repo,然后提交 Issue 或 Pull Request!

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


    VS Code extension menu

评论