当前位置: 首页 > news >正文

在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} 与片段功能相关联,所有单词使用 - 连接.
类别前缀说明
Examplesultra.examples帮助学习或开始使用Ultralytics 的示例代码。示例是文档页面代码的副本或类似代码。
Kwargs`ultra.kwargs通过为train、track、predict 和val方法添加包含所有关键字参数和默认值的代码段,加快开发速度。
Importsultra.imports快速导入通用Ultralytics 对象的片段。
Modelsultra.yolo插入代码块,用于初始化各种 模型 (yolo, sam, rtdetr等),包括下拉式配置选项。
Resultsultra.result用于处理推理结果时常用操作的代码块。
Utilitiesultra.util可快速访问Ultralytics 软件包内置的常用实用程序,更多信息请访问简单实用程序页面。

使用Examples学习

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

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

from ultralytics import ASSETS, YOLOmodel = 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-resultsfor 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 videosimgsz=640,  # (int | list) input images size as int or list[w,h] for predictconf=0.25,  # (float) minimum confidence thresholdiou=0.7,  # (float) intersection over union (IoU) threshold for NMSvid_stride=1,  # (int) video frame-rate stridestream_buffer=False,  # (bool) buffer incoming frames in a queue (True) or only keep the most recent frame (False)visualize=False,  # (bool) visualize model featuresaugment=False,  # (bool) apply image augmentation to prediction sourcesagnostic_nms=False,  # (bool) class-agnostic NMSclasses=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 masksembed=None,  # (list[int], optional) return feature vectors/embeddings from given layersshow=False,  # (bool) show predicted images and videos if environment allowssave=True,  # (bool) save prediction resultssave_frames=False,  # (bool) save predicted individual video framessave_txt=False,  # (bool) save results as .txt filesave_conf=False,  # (bool) save results with confidence scoressave_crop=False,  # (bool) save cropped images with resultsstream=False,  # (bool) for processing long videos or numerous images with reduced memory usage by returning a generatorverbose=True,  # (bool) enable/disable verbose inference logging in the terminal
)

结论

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

相关文章:

  • vscode 配置 latex
  • 港理工:LLM推理与推荐能力集成
  • 机器学习 [白板推导](四)[降维]
  • 计数排序_桶排序
  • hot100 -- 10.回溯系列
  • 电流舵DAC设计(二)
  • Vue-Leaflet地图组件开发(三)地图控件与高级样式设计
  • Python学习——排序
  • Java严格模式withResolverStyle解析日期错误及解决方案
  • AI架构师修炼之道
  • 深入解析Java21核心新特性(虚拟线程,分代 ZGC,记录模式模式匹配增强)
  • 指针的使用——字符、字符串、字符串数组(char*)
  • Cesium快速入门到精通系列教程八:时间系统
  • Razor编程RenderXXX相关方法大全
  • ChatterBox - 轻巧快速的语音克隆与文本转语音模型,支持情感控制 支持50系显卡 一键整合包下载
  • Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
  • 异步跟栈 webpack
  • 【Elasticsearch】映射:fielddata 详解
  • Linux云原生架构:从内核到分布式系统的进化之路
  • 深入解析 Qwen3-Embedding 的模型融合技术:球面线性插值(Slerp)的应用