Ultralytics VS Code 扩展#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
功能与优势#
✅ 你是使用 Ultralytics 构建计算机视觉应用的数据科学家或机器学习工程师吗?
✅ 你是否厌烦了一遍又一遍地编写相同的代码块?
✅ 你是否总是忘记 export、predict、train、track 或 val 方法的参数或默认值?
✅ 想开始使用 Ultralytics,却希望有一种更简单的方式来参考或运行代码示例?
✅ 想在使用 Ultralytics 时加快开发周期?
如果你使用 Visual Studio Code,并且对上述任一问题的回答是“是”,那么 VS Code 的 Ultralytics-snippets 扩展正是为你准备的!继续阅读,了解有关该扩展的更多信息,以及如何安装和使用它。
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
灵感来自 Ultralytics 社区#
构建这一扩展的灵感来自 Ultralytics 社区。社区中围绕类似主题和示例提出的问题推动了这一项目的开发。此外,许多 Ultralytics 团队成员都使用 VS Code 来加速自己的工作 ⚡。
为什么选择 VS Code?#
Visual Studio Code 深受全球开发者欢迎,并在 Stack Overflow 开发者调查的 2021、2022、2023 和 2024 年度调查中排名最受欢迎。VS Code 具有高度可定制性、内置功能、广泛的兼容性和可扩展性,因此受到众多开发者使用也就不足为奇了。鉴于它在更广泛的开发者社区以及 Ultralytics 的 Discord、Discourse、Reddit 和 GitHub 社区中的受欢迎程度,开发 VS Code 扩展来帮助你简化工作流程并提升生产力是很自然的选择。
想告诉我们你使用什么工具开发代码吗?前往我们的 Discourse 社区投票告诉我们吧!在那里你还可以看看我们最喜欢的一些计算机视觉、机器学习、AI 和开发者表情包,甚至发布你最喜欢的表情包!
安装扩展#
任何允许安装 VS Code 扩展的代码环境应该都与 Ultralytics-snippets 扩展兼容。扩展发布后,我们发现可以让 neovim 兼容 VS Code 扩展。要了解更多信息,请参阅 Ultralytics-Snippets 仓库 Readme 中的 neovim 安装部分。
在 VS Code 中安装#
-
前往 VS Code 中的扩展菜单,或使用快捷键 Ctrl+Shift ⇑+x,然后搜索 Ultralytics-snippets。
-
点击 Install 按钮。
从 VS Code 扩展市场安装#
-
访问 VS Code 扩展市场,搜索 Ultralytics-snippets,或直接前往 VS Code 市场中的扩展页面。
-
点击 Install 按钮,并允许浏览器启动 VS Code 会话。
-
按照提示安装扩展。
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 方法的输出可以保存到名为 r、results、detections、preds 或开发者选择的其他名称的 Python 变量中,这就是代码片段包含“字段”的原因。插入代码片段后,在键盘上使用 Tab ⇥,光标就会在各字段之间快速移动。选中字段后,输入新的变量名不仅会更改该实例,还会更改代码片段中该变量的所有其他实例!
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-predict、example-yolo-predict、yolo-predict,甚至 ex-yolo-p,仍然可以找到目标代码片段选项!如果目标代码片段实际上是 ultra.example-yolo-predict-kwords,只需使用键盘上的 ↑ 或 ↓ 高亮所需代码片段,然后按 Enter ↵ 或 Tab ⇥,即可插入正确的代码块。
Typing ex-yolo-p will still arrive at the correct snippet.
代码片段类别#
以下是 Ultralytics-snippets 扩展当前提供的代码片段类别。未来还会添加更多类别,因此请务必检查更新,并为该扩展启用自动更新。如果你认为缺少某些代码片段,也可以请求添加其他代码片段。
| 类别 | 起始前缀 | 描述 |
|---|---|---|
| 示例 | ultra.examples | 帮助学习或开始使用 Ultralytics 的示例代码。示例是文档页面中代码的副本或类似代码。 |
| 关键字参数 | ultra.kwargs | 通过为带有所有关键字参数和默认值的 train、track、predict 和 val 方法添加代码片段来加快开发速度。 |
| 导入 | 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() # 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 属性,这正是代码片段字段发挥作用的地方。
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
)此代码片段为所有关键字参数都设置了字段,同时也为 model 和 src 设置了字段,以防你在代码中使用了不同的变量。每一行包含关键字参数的代码旁边都附有简要说明,供你参考。
所有代码片段#
了解有哪些代码片段可用的最佳方式是下载并安装扩展,然后亲自试用!如果你感到好奇,想提前查看列表,可以访问 repo 或 VS Code 市场中的扩展页面,查看所有可用代码片段的表格。
结论#
VS Code 的 Ultralytics-Snippets 扩展旨在帮助数据科学家和机器学习工程师更高效地使用 Ultralytics YOLO 构建计算机视觉应用。通过提供预构建的代码片段和实用示例,我们帮助你专注于最重要的事情:创建创新解决方案。请访问 VS Code 市场中的扩展页面并留下评价,分享你的反馈。⭐
常见问题#
可以通过 Ultralytics-Snippets repo 中的 Issues 请求新的代码片段。
完全免费!
VS Code 使用 Ctrl+Space 组合键在预览窗口中显示更多或更少的信息。如果你输入代码片段前缀时看不到代码片段预览,使用此组合键应该可以恢复预览。
如果你使用 VS Code,并开始看到提示你安装 Ultralytics-snippets 扩展的消息,但不想再看到该消息,可以通过两种方式禁用它。
-
安装 Ultralytics-snippets 后,该消息将不再显示 😆!
-
你可以使用
yolo settings vscode_msg=False来禁用该消息的显示,而无需安装该扩展。如果不熟悉,你可以在 Ultralytics Settings 页面上了解更多信息。
-
访问 Ultralytics-snippets repo,然后提交 Issue 或 Pull Request!
与其他 VS Code 扩展一样,你可以前往 VS Code 中的扩展菜单将其卸载。在菜单中找到 Ultralytics-snippets 扩展,点击齿轮图标(⚙),然后点击“Uninstall”即可移除扩展。