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 包内置的常见实用工具的快速访问,在简单实用工具页面上了解有关这些工具的更多信息。 |
通过示例学习#
ultra.examples 代码片段对于任何想要学习如何开始使用 Ultralytics YOLO 基本操作的人都非常有用。示例代码片段旨在插入后运行(其中一些也有下拉选项)。此页面的顶部的动画中展示了这一点,在插入代码片段后,选择所有代码并使用 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 设置了字段,以防你在代码中使用了不同的变量。在包含关键字参数的每行上,都包含了一个简短的描述供参考。
所有代码片段#
了解有哪些可用代码片段的最佳方法是下载并安装扩展并试用它!如果你很好奇并想事先查看列表,可以访问仓库或 VS Code 市场上的扩展页面来查看所有可用代码片段的表格。
结论#
用于 VS Code 的 Ultralytics-Snippets 扩展旨在赋能数据科学家和机器学习工程师,使其能够更高效地使用 Ultralytics YOLO 构建计算机视觉应用。通过提供预构建的代码片段和有用的示例,我们帮助你专注于最重要的事情:创建创新的解决方案。请访问 VS Code 市场上的扩展页面并留下评价来分享你的反馈。⭐
常见问题解答#
如何请求新片段?#
可以使用 Ultralytics-Snippets 仓库上的 Issues 请求新的代码片段。
Ultralytics 扩展收费吗?#
它是 100% 免费的!
为什么我看不到代码片段预览?#
VS Code 使用快捷键组合 Ctrl+Space 来显示/隐藏预览窗口中的更多信息。如果你在输入代码片段前缀时没有看到片段预览,使用此快捷键组合应该可以恢复预览。
如何禁用 Ultralytics 中的扩展推荐?#
如果你使用 VS Code 并开始看到提示你安装 Ultralytics-snippets 扩展的消息,并且不想再看到该消息,有两种方法可以禁用此消息。
-
安装 Ultralytics-snippets,消息将不再显示 😆!
-
你可以使用
yolo settings vscode_msg=False来禁用该消息的显示,而无需安装扩展。如果你不熟悉,可以在 快速入门 页面上了解有关 Ultralytics 设置 的更多信息。
我有一个新的 Ultralytics 代码片段构思,如何添加它?#
访问 Ultralytics-snippets 仓库并开启一个 Issue 或 Pull Request!
如何卸载 Ultralytics-Snippets 扩展?#
像任何其他 VS Code 扩展一样,你可以通过导航到 VS Code 中的“扩展”菜单来卸载它。在菜单中找到 Ultralytics-snippets 扩展,点击齿轮图标 (⚙),然后点击“Uninstall”即可删除该扩展。