在VSCode中使用Ultralytics扩展

概述

Visual Studio Code深受全球开发人员的欢迎,并在2021 年、2022 年2023 年和2024 年的 Stack Overflow 开发人员调查中被评为最受欢迎的软件。由于 VS Code 具有高度的定制性、内置功能、广泛的兼容性和可扩展性,因此有如此多的开发人员使用它也就不足为奇了。

VS Code 的Ultralytics-snippets 扩展能够使开发者显著加快开发Ultralytics应用。

安装Ultralytics-snippets扩展

打开VSCode扩展,搜索Ultralytics,选择Ultralytics-snippets,点击"安装"即可。


使用Ultralytics-snippets扩展

在开发Python程序时,使用Ultralytics-snippets扩展,具有以下优势:

  • **智能代码自动补全:**利用为Ultralytics API 量身定制的高级代码完成建议,更快、更准确地编写代码。
  • **提高开发速度:**通过消除重复编码任务和利用预置代码块片段来节省时间。
  • **提高代码质量:**利用智能代码自动补全功能,编写更简洁、更一致、无差错的代码。
  • **简化工作流程:**通过自动化常见任务,专注于项目的核心逻辑。

使用代码片段

片段的前缀是 ultra,键入 ultra 将显示一个可能使用的片段列表。还可以使用 Ctrl+Shift+P 打开 VS Code 命令面板 并运行命令 Snippets: Insert Snippet.

代码片段字段

许多片段的 "字段 "都有默认占位符值或名称。例如,predict方法的输出可以保存到 r, results, detections, preds 或开发人员选择的任何其他python变量,这就是为什么片段(snippets)包括 "字段"。在插入代码片段之后,使用 Tab ⇥,光标就会在字段之间快速移动。选中一个字段后,键入一个新变量名将改变该变量的实例,同时也会改变代码片段中该变量的所有其他实例。

代码片段补全

这些片段尽可能以描述性的方式命名,但这意味着要输入的内容可能会很多,如果目的是为了更快的移动,这将适得其反。 幸运的是,VS Code 可以让用户键入 ultra.example-yolo-predict, example-yolo-predict, yolo-predict甚至 ex-yolo-p 并仍能达到预期的片段选项!如果预定的片段实际上是 ultra.example-yolo-predict,然后使用键盘箭头 ↑ 或 ↓ 突出显示所需的片段,然后按 输入Enter ↵ 或 Tab ⇥ 将插入正确的代码块。

选择第一行后,自动填入了以下代码:

片段类别

这些是Ultralytics-snippets 扩展目前可用的片段类别。以后还会添加更多类别,请务必检查更新并启用扩展的自动更新功能。

片段格式:

复制代码
{PREFIX}.{ROOT}*-{DESCRIPTOR}
  • {PREFIX}ultra
  • {ROOT} 例如 importresults. 至少一个root,也可能有多个,例如 result-boxes.
  • {DESCRIPTOR} 与片段功能相关联,所有单词使用 - 连接.
类别 前缀 说明
Examples ultra.examples 帮助学习或开始使用Ultralytics 的示例代码。示例是文档页面代码的副本或类似代码。
Kwargs `ultra.kwargs 通过为traintrackpredictval方法添加包含所有关键字参数和默认值的代码段,加快开发速度。
Imports ultra.imports 快速导入通用Ultralytics 对象的片段。
Models ultra.yolo 插入代码块,用于初始化各种 模型 (yolo, sam, rtdetr等),包括下拉式配置选项。
Results ultra.result 用于处理推理结果时常用操作的代码块。
Utilities ultra.util 可快速访问Ultralytics 软件包内置的常用实用程序,更多信息请访问简单实用程序页面

使用Examples学习

ultra.examples 对于希望学习如何开始使用Ultralytics YOLO 基础知识的人来说非常有用。示例片段插入后即可运行(有些片段还有下拉选项)。插入代码段后,所有代码都会被选中,并通过使用 Shift ⇑+Enter ↵交互运行.

例如,使用片段 ultra.example-yolo-predict 插入以下代码示例。插入后,唯一可配置的选项是模型比例,可以是以下任何一种: n, s, m, lx.

复制代码
from ultralytics import ASSETS, YOLO

model = YOLO("yolo11n.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 支持众多tasks, 当处理推理结果时,有其他您可能希望访问的Results属性,这就是代码段字段的强大之处。

关键字参数

有超过100个关键字参数,可用于各种Ultralytics 任务模式! 要记住的东西太多了,例如如果参数是 save_framesave_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[w,h] 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
)

结论

Ultralytics-Snippets 扩展用于 VS Code,旨在帮助数据科学家和机器学习工程师更高效地使用Ultralytics YOLO 构建计算机视觉应用程序。通过提供预构建的代码片段和有用的示例,开发人员可以专注于创建创新的解决方案。

相关推荐
且白1 小时前
vsCode使用本地低版本node启动配置文件
前端·vue.js·vscode·编辑器
维克喇叭1 小时前
vscode 离线安装第三方库跳转库
ide·vscode·编辑器
cnkeysky5 小时前
vscode 配置 latex
vscode·latex
梦星辰.11 小时前
VSCode CUDA C++进行Linux远程开发
linux·c++·vscode
*Lisen13 小时前
重新安装解决mac vscode点击不能跳转问题
ide·vscode·macos
小男孩tom14 小时前
vscode
ide·vscode·编辑器
我命由我123451 天前
VSCode - VSCode 放大与缩小代码
前端·ide·windows·vscode·前端框架·编辑器·软件工具
old_power1 天前
VSCode 工作区配置文件通用模板创建脚本
ide·vscode·编辑器
Lw老王要学习1 天前
VScode 使用 git 提交数据到指定库的完整指南
windows·git·vscode