Project Icon

training_extensions

OpenVINO框架助力快速训练和部署计算机视觉模型

OpenVINO Training Extensions是一个专注计算机视觉的低代码迁移学习框架。它基于PyTorch和OpenVINO工具包开发,提供简洁API和CLI命令,支持分类、检测、分割等多种任务的模型训练、推理和部署。该框架具备自动配置、分布式训练、混合精度等功能,可快速构建高效准确的视觉AI模型。

OpenVINO™ 训练扩展


主要特性安装文档许可证

PyPI

python pytorch openvino

Codecov OpenSSF Scorecard Pre-Merge Test Build Docs License Downloads


简介

OpenVINO™ 训练扩展是一个用于计算机视觉的低代码迁移学习框架。该框架的API和CLI命令使用户能够轻松快速地训练、推理、优化和部署模型,即使在深度学习领域经验不足的情况下也能使用。OpenVINO™ 训练扩展基于PyTorchOpenVINO™ toolkit,提供了多种模型架构、学习方法和任务类型的组合。

OpenVINO™ 训练扩展为每种支持的任务类型提供了一个"配方",其中包含构建模型所需的全部信息。模型模板在各种数据集上经过验证,可作为获取最佳通用模型的一站式商店。如果您是经验丰富的用户,可以基于torchvisionmmcvOpenVINO Model Zoo (OMZ)配置自己的模型。

此外,OpenVINO™ 训练扩展还提供了自动配置功能,以提高易用性。框架将分析您的数据集,识别最适合的模型,并确定最佳输入尺寸设置和其他超参数。开发团队正在不断扩展这些自动配置功能,以使训练尽可能简单,使得单个CLI命令就能获得准确、高效且稳健的模型,可直接集成到您的项目中。

主要特性

OpenVINO™ 训练扩展支持以下计算机视觉任务:

  • 分类,包括多类、多标签和层次图像分类任务。
  • 目标检测,包括旋转边界框支持
  • 语义分割
  • 实例分割,包括分块算法支持
  • 动作识别,包括动作分类和检测
  • 异常识别任务,包括异常分类、检测和分割
  • 视觉提示任务,包括分割任意模型、零样本视觉提示

OpenVINO™ 训练扩展支持以下学习方法

  • 监督学习,增量训练,包括类增量场景。

OpenVINO™ 训练扩展提供以下易用性功能:

  • 自动配置。OpenVINO™ 训练扩展分析提供的数据集并选择合适的任务和模型,以提供最佳的精度/速度平衡。
  • Datumaro 数据前端:OpenVINO™ 训练扩展支持每个任务最常见的学术领域数据集格式。我们不断努力扩展支持的格式,以提供更多数据集格式选择的自由。
  • 分布式训练,当您拥有多个 GPU 时可加速训练过程
  • 混合精度训练,以节省 GPU 内存并使用更大的批量大小
  • 集成高效的超参数优化模块(HPO)。通过数据集代理和内置超参数优化器,与其他现成工具相比,您可以获得更快的超参数优化。超参数优化根据您的资源预算动态调度。

安装

请参阅安装指南。 如果您想对库进行修改,建议进行本地安装。

从 PyPI 安装 使用 pip 安装库是开始使用 otx 最简单的方法。
pip install otx[base]

对于 zsh 用户,可以使用以下替代方法:

pip install 'otx[base]'
从源代码安装 要从源代码安装,您需要克隆存储库并使用 pip 通过可编辑模式安装库。
# 强烈建议使用虚拟环境
# 使用 conda
yes | conda create -n otx_env python=3.10
conda activate otx_env

# 或使用您喜欢的虚拟环境
# ...

# 克隆存储库并以可编辑模式安装
git clone https://github.com/openvinotoolkit/training_extensions.git
cd training_extensions
pip install -e .[base]  # 对于 zsh:pip install -e '.[base]'

快速入门

OpenVINO™ 训练扩展支持基于 API 和 CLI 的训练。API 更灵活,允许更多定制,而 CLI 训练利用命令行界面,对于那些希望直接使用 OpenVINO™ 训练扩展的人来说可能更容易。

对于 CLI,以下命令提供子命令、如何使用每个子命令以及更多信息:

# 查看可用的子命令
otx --help

# 打印来自 train 子命令的帮助信息
otx train --help

# 打印更多详细的帮助信息
otx train --help -v   # 打印必需参数
otx train --help -vv  # 打印所有可配置参数

您可以在 CLI 指南API 快速指南 中找到带有示例的详细信息。

以下是如何使用自动配置进行训练,这是为具有数据集和任务的用户提供的:

通过 API 训练
# 通过 Engine 使用自动配置进行训练
from otx.engine import Engine

engine = Engine(data_root="data/wgisd", task="DETECTION")
engine.train()

更多示例,请参阅文档:CLI 指南

通过 CLI 训练
otx train --data_root data/wgisd --task DETECTION

更多示例,请参阅文档:API 快速指南

除了上述示例外,请参阅文档以获取有关使用自定义模型、训练参数覆盖以及每种任务类型的教程等内容。


更新

v2.1.0 (2024 年第三季度)

注意

OpenVINO™ 训练扩展 2.1.0 版本不包含最新的功能和安全更新。OpenVINO™ 训练扩展 2.2.0 版本计划于 2024 年 9 月发布,将包含额外的功能和安全更新。客户应在新版本可用时更新到最新版本。

新功能

  • 添加启用dGPU上OV推理的标志
  • 添加带预热的早停。移除语义分割任务中的强制背景标签
  • 为检测任务启用RTMDet-tiny
  • 添加OTXDataModule中的数据格式验证和更新
  • 添加torchvision.MaskRCNN
  • 为多类分类添加半监督学习(EfficientNet-B0)
  • 解耦动作分类的mmaction (MoviNet, X3D)
  • 为mv3-large、effnet-v2、deit-tiny、dino-v2添加半监督学习算法
  • 为检测任务启用RTMDet-tiny(导出/优化)
  • 在otx/algo/classification/backbones中启用ruff和ruff-format
  • 添加TV MaskRCNN Tile配方
  • 添加旋转检测OV配方

改进

  • 将load_stat_dict更改为on_load_checkpoint
  • 添加try-except以继续运行剩余测试
  • 更新instance_segmentation.py以解决与2.0.0的冲突
  • 更新XPU安装
  • 同步动作分类任务中torch和ov推理的rgb顺序
  • 使性能测试能够加载之前的性能测试以跳过训练阶段
  • 重新启用e2e分类XAI测试
  • 移除动作检测任务支持
  • 提高HPO期间pickle错误日志的可读性并修复小bug
  • 更新RTMDet检查点url
  • 重构分类半监督学习的Torchvision模型
  • 添加覆盖率忽略mm相关代码
  • 添加半监督学习部分文档
  • 重构文档设计并添加内容
  • 在文档中添加自动批量大小的执行示例
  • 为分类添加半监督学习基准测试
  • 在记录指标前将值移至设备
  • 添加.codecov.yaml
  • 更新otx2.1的基准工具
  • 在一处收集预训练权重二进制文件
  • 最小化编译依赖文件
  • 更新README和CODEOWNERS
  • 更新Engine的文档字符串和CLI --help输出
  • 将集成测试与发布分支的可导出代码接口更新对齐
  • 重构异常检测任务的导出器并修复可导出代码的bug
  • 更新pandas版本约束
  • 将更多模型的导出测试纳入test_otx_e2e
  • 将任务分配从Engine移至异常检测模型类
  • 重构检测模块

Bug修复

  • 修复develop和2.0.0之间的冲突
  • 修复多边形掩码
  • 修复vpm集成测试错误
  • 修复异常检测
  • 修复语义分割的bug并在ONNX中启用DINOV2导出
  • 修复一些导出问题。移除EXPORTABLE_CODE作为导出参数
  • 修复load_from_checkpoint以应用原始模型的超参数
  • 修复load_from_checkpoint参数以应用原始模型的超参数
  • 修复ov模型的零样本learn
  • 修复2.1中XAI的各种问题
  • 修复测试以在无mm环境中工作
  • 修复基准代码中的bug
  • 更新可导出代码依赖并修复bug
  • 修复调整大小时获取错误形状的问题
  • 修复检测预测输出
  • 修复RTMDet PTQ性能
  • 修复VPM PTQ上的分段错误
  • 修复NNCF MaskRCNN-Eff准确度下降
  • 修复带半监督学习数据管道的优化
  • 修复MaskRCNN SwinT NNCF准确度下降

已知问题

  • 应用于实例分割任务中maskrcnn_swint的训练后量化(PTQ)优化可能导致准确度显著降低。预计这个问题将在未来版本中通过升级OpenVINO和NNCF得到解决。

发布历史

请参阅CHANGELOG.md


分支

  • develop
    • 主要维护的分支,用于开发未来版本的新功能
  • misc
    • 可以在此分支找到先前开发的模型

许可证

OpenVINO™工具包根据Apache License Version 2.0许可。 通过为项目做出贡献,您同意其中的许可和版权条款,并根据这些条款发布您的贡献。


问题/讨论

请使用Issues标签报告bug、请求功能或提出任何问题。


已知限制

  • misc分支包含基于TensorFlow和PyTorch的模型的训练、评估和导出脚本。 这些脚本尚未准备好用于生产。它们是探索性的,尚未经过验证。

免责声明

英特尔致力于尊重人权并避免参与侵犯人权的行为。 请参阅英特尔的全球人权原则。 英特尔的产品和软件仅用于不会导致或促成违反国际公认人权的应用。


贡献

对于那些希望为该库做出贡献的人,请查看CONTRIBUTING.md以了解详细信息。

感谢您!我们非常感谢您的支持!


项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号