在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 构建计算机视觉应用程序。通过提供预构建的代码片段和有用的示例,开发人员可以专注于创建创新的解决方案。

相关推荐
zhaqonianzhu7 小时前
【vsc】cpptools占用内存过大
vscode
智慧地球(AI·Earth)12 小时前
Codex配置问题解析:wire_api格式不匹配导致的“Reconnecting...”循环
开发语言·人工智能·vscode·codex·claude code
微尘hjx14 小时前
【数据集 01】家庭室内烟火数据集(按比例划分训练、验证、测试)包含训练好的yolo11/yolov8模型
深度学习·yolov8·yolo11·训练模型·烟火数据集·家庭火灾数据集·火灾数据集
Dev7z15 小时前
基于机器视觉与YOLO11的服装厂废料(边角料)分类检测系统(数据集+UI界面+训练代码+数据分析)
机器视觉·yolo11·服装厂废料·边角料·分类检测
markvivv15 小时前
在 Kylin Linux Advanced Server for Kunpeng V10 上构建 VSCode 1.106
linux·vscode·kylin
zhangfeng113316 小时前
Kiro python环境的设置 中文语言包设置,通用vscode ,因为kiro是vscode基础上做的
开发语言·vscode·python
微醺的老虎17 小时前
【工具】vscode格式化json文件
ide·vscode·编辑器
乔宕一18 小时前
vscode 设置每次调试 powershell 脚本都使用临时的 powershell 终端
ide·vscode·编辑器
唐装鼠19 小时前
linux vscode解压版 AI账号无法登陆问题(浏览器无法打开vscode)
linux·运维·vscode
微尘hjx20 小时前
【深度学习02】YOLO模型的数据集、训练、验证、预测、导出
人工智能·python·深度学习·yolo·机器学习·训练·yolo11