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 构建计算机视觉应用的数据科学家或 机器学习 工程师吗?
✅ 你是否厌倦了反复编写相同的代码块?
✅ 你是否总是忘记 export、predict、train、track 或 val 方法的参数或默认值?
✅ 想要上手 Ultralytics 但希望有一种更简单的方式来引用或运行代码示例吗?
✅ 想要在使用 Ultralytics 时加快开发周期吗?
如果你使用 Visual Studio Code 并且对上述任何问题回答“是”,那么适用于 VS Code 的 Ultralytics-snippets 扩展可以助你一臂之力!继续阅读以了解有关该扩展的更多信息、如何安装以及如何使用它。
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 开发者调查的 2021、2022、2023 和 2024 年版中被评为最受欢迎的集成开发环境。得益于 VS Code 的高可定制性、内置功能、广泛的兼容性和可扩展性,如此多的开发者使用它也就不足为奇了。考虑到它在广大开发者社区以及 Ultralytics Discord、Discourse、Reddit 和 GitHub 社区中的受欢迎程度,构建一个 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 中安装#
-
导航到 VS Code 中的扩展菜单或使用快捷键 Ctrl+Shift ⇑+x,然后搜索 Ultralytics-snippets。
-
点击 Install 按钮。
Link to this section从 VS Code 扩展市场安装#
-
访问 VS Code 扩展市场并搜索 Ultralytics-snippets,或直接前往 VS Code 市场上的扩展页面。
-
点击 Install 按钮并允许你的浏览器启动 VS Code 会话。
-
按照任何提示安装该扩展。
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 方法的输出可以保存到名为 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.
Link to this section代码片段补全#
你不需要输入片段的完整前缀,甚至不需要从片段的开头开始输入。参见下图示例。
这些片段的命名尽可能具有描述性,但这可能意味着需要输入很多内容,如果目标是让速度更快,这将适得其反。幸运的是,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.
Link to this section片段类别#
这些是当前 Ultralytics-snippets 扩展可用的片段类别。未来会添加更多类别,因此请务必检查更新并为扩展启用自动更新。如果你觉得有遗漏,也可以请求添加其他片段。
| 类别 | 起始前缀 | 描述 |
|---|---|---|
| 示例 | ultra.examples | 帮助学习或开始使用 Ultralytics 的示例代码。示例是文档页面中代码的副本或类似代码。 |
| 关键字参数 | ultra.kwargs | 通过添加包含所有关键字参数和默认值的 train、track、predict 和 val 方法片段,加速开发。 |
| 导入 | ultra.imports | 用于快速导入常见 Ultralytics 对象的片段。 |
| 模型 | ultra.yolo | 插入用于初始化各种 模型 (yolo、sam、rtdetr 等) 的代码块,包括下拉配置选项。 |
| 结果 | ultra.result | 用于处理推理结果时常见操作的代码块。 |
| 工具 | ultra.util | 提供对 Ultralytics 包内置常用实用程序的快速访问,在 简单实用程序页面了解更多相关信息。 |
Link to this section通过示例学习#
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 imageLink 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 属性,这就是片段字段大显身手的地方。
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
)此片段不仅为所有关键字参数提供了字段,还为 model 和 src 提供了字段,以防你在代码中使用了不同的变量。在包含关键字参数的每一行上,都包含简短的说明以供参考。
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 扩展的消息,并且不想再看到该消息,有两种方法可以禁用此消息。
-
安装 Ultralytics-snippets,消息将不再显示 😆!
-
You can use
yolo settings vscode_msg=Falseto 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”即可删除该扩展。