ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeepLabCut 3.0 正式版解析:PyTorch 优先的训练与推理栈、架构扩展与性能跃升

DeepLabCut 3.0 正式版解析:PyTorch 优先的训练与推理栈、架构扩展与性能跃升 人工智能深度学习计算机视觉科研【免费下载链接】DeepLabCutOfficial implementation of DeepLabCut: Markerless pose estimation of user-defined features with deep learning for all animals incl. humans项目地址https://gitcode.com/gh_mirrors/de/DeepLabCut点击查看免费下载DeepLabCut 3.0 在保留 2.x 系列「标注—训练—评估—视频分析」核心工作流不变的前提下引入了一套全新的 PyTorch 优先训练与推理引擎同时对模型架构生态、训练配置体系、数据加载器、打包方式与标注 GUI 做了系统性现代化改造。阅读本文后你将理解 3.0 与 2.x 的根本差异、新增的 BUCTD / RTMPose / DEKR 等架构选择逻辑、pytorch_config.yaml配置体系的组织方式以及如何在同一项目内对比 PyTorch 与 TensorFlow 模型。版本定位熟悉的工作流全新的现代底层DeepLabCut 3.0 的核心定位是familiar workflows, modern foundations, better performance——即让老用户几乎无感地延续既有使用习惯同时把底层引擎全面现代化。文档明确说明项目仍然沿用 2.x 系列一贯的标注labeling、训练training、评估evaluation、视频分析video-analysis完整流水线底层引擎被大幅现代化引入了PyTorch 优先PyTorch-first的训练与推理栈3.0 将此前一系列 Release Candidate 中的增量改进整合为一个稳定正式版本。换言之3.0 不是一次对用户工作流的颠覆而是一次「换引擎、保体验」的大版本升级。性能与速度提升三个基准事实发布说明以三组基准图展示了 3.0 的性能收益其中两组图像随发布说明保存在仓库中changelog/3_0_0/images/目录可直接查看。Openfield 数据集PyTorch 模型 RMSE 全面低于 TensorFlow上图对比了 DeepLabCut Openfield 数据集上 3.0 PyTorch 模型与以往 TensorFlow 模型的姿态估计性能详见 PR #2613。横轴为RMSE均方根误差越低越好纵轴列出九种模型包括ImageNet 迁移学习的 ResNet-50 / ResNet-101 / ResNet-101is带 * 的数值引自 Mathis et al. 2018见changelog/3_0_0/v3_0_0.md注释ResNet-50 v2.3.10 与 ResNet-50 的 TensorFlow 历史版本HRNet-w32 系列ImageNet 迁移、SuperAnimal 迁移、SuperAnimal Naive Finetuning、SuperAnimal Memory-replay。图中三条色系分别对应 TF 1.0、TF 2.12 与 PyTorch 实现。整体趋势是旧 TensorFlow 模型 RMSE 更高TF 1.0 最差PyTorch 版模型 RMSE 普遍更低其中SuperAnimal 体系下的 PyTorch HRNet-w32 表现尤为突出。Trimice 数据集PyTorch ResNet50 推理速度对比文档同时给出推理速度对比图原图为changelog/3_0_0/images/speed_tensorflow.avif测试环境为NVIDIA GeForce RTX 2080 Ti CUDA 12.2数据集为 DeepLabCut Trimice对比当前 PyTorch 实现ResNet50与 TensorFlow 实现的速度差异。BUCTD 新架构在三个数据集上超越 DLCRNet 与 DEKR上图对比了新的BUCTDBottom-Up Conditional Top-Down模型架构与 DLCRNet、DEKR 在 Marmoset、Fish、Trimice 三个数据集上的 Average Precision平均精度越高越好。图中可见 BUCTD-CoAM-W48 (DLCRNet) 在 Marmoset 与 Fish 数据集上精度提升明显在 Trimice 上也保持领先。该结果引自 Zhou et al., ICCV 2023论文见发布说明中标注的出处。通往 3.0 的里程碑文档列出了构成 3.0 的关键 PR 节点也是理解本次升级脉络的索引#2613— 完整的 PyTorch 后端初始实现#2952— 新的 bottom-up conditional top-downBUCTD模型架构#2795— 新的 RTMPose top-down 架构#2868— 面向 PyTorch 工作流更新的 Notebooks 与 Colab 示例仓库中可见examples/COLAB/与examples/JUPYTER/下大量更新后的 Notebook#2804— PyTorch 模型导出export。PyTorch-firstTensorFlow 兼容同一项目内的直接对比3.0 增加 PyTorch 后端同时为遗留工作流保留 TensorFlow 支持项目管理方式不变标注数据格式保持兼容同一个项目的同一组 train/test splits 上PyTorch 模型可以与既有 TensorFlow 模型并行训练用于直接基准对比。在仓库结构中这体现为两大引擎的并行目录deeplabcut/pose_estimation_pytorch/新引擎与deeplabcut/pose_estimation_tensorflow/遗留引擎。PyTorch 引擎的配置构建依赖一套注册表机制registry.pyRegistry类将字符串映射到类或函数build_from_cfg从配置字典含type键构造实例并会校验构造签名、过滤无效参数从而支撑「配置驱动、可插拔」的模型/数据/训练组件组装方式。扩展的架构支持从 ResNet 到 BUCTD / RTMPose3.0 显著拓宽了模型生态PyTorch 栈支持ResNet 与 HRNet 骨干网络配置见 backbones/resnet_50.yaml、backbones/hrnet_w32.yaml 等另有 resnet_101、hrnet_w18、hrnet_w48 及 CSPNeXt 系列自底向上多动物方案DEKRdekr/与 PAF/DLCRNet 变体dlcrnet/含 stride16/stride32 多尺度版本自顶向下检测器 姿态管线RTMPosertmpose/混合架构BUCTD 与 CTD 变体ctd/含 ctd_coam_w32/w48、ctd_prenet_hrnet 与 ctd_prenet_rtmpose 系列SuperAnimal 相关预训练工作流。以 rtmpose_s.yaml 为例可以看到一套完整的 top-down 模型配置骨架method: td声明任务类型需搭配检测器model.backbone使用 CSPNeXtmodel_name: cspnext_swiden_factor 0.5 / deepen_factor 0.33model.heads.bodypart使用RTMCCHead其 target_generator 为SimCCGeneratorgaussian 平滑、simcc_split_ratio 2.0criterion 为KLDiscreteLossbeta 10.0、label_softmax truepredictor 为SimCCPredictor训练侧配置 AdamWlr 1e-3 SequentialLRLinearLR 预热 CosineAnnealingLR LRListSchedulerepochs 400、batch_size 32。文档同时指出架构选择指南已整理进官方文档对应本地仓库即 docs/pytorch/architectures.md可帮助用户根据场景复杂度与实验需求选型。灵活的 PyTorch 训练配置pytorch_config.yaml 与可复现性PyTorch 引擎引入了现代化的训练栈更丰富的增强选项、训练调度、设备管理与模型架构。每次训练运行的设置都会写入pytorch_config.yaml从而轻松复现实验。配置体系的组织方式可以从 deeplabcut/pose_estimation_pytorch/config/ 目录看出base/基础默认配置包括训练默认值base.yaml、数据增强aug_default.yaml/aug_top_down.yaml、检测器底座base_detector.yaml、各类 head 配置bodyparts、bodyparts_with_paf、identity、topdownbackbones/各骨干网络配置detectors/Faster R-CNN、SSDLite 等检测器含 fasterrcnn_resnet50_fpn_v2.yaml、ssdlite.yaml 等ctd/、dekr/、dlcrnet/、rtmpose/、animaltokenpose/各专门架构目录。以 base.yaml 为例训练默认值包括device: automethod: bubottom-up 默认任务runnerPoseTrainingRunner关键指标test.mAPkey_metric_asc: true每 10 个 epoch 评估一次optimizerAdamW初始 lr 0.0001schedulerLRListSchedulerlr_list[[1e-5],[1e-6]]、milestones[160, 190]snapshots最多保留 5 个、每 25 个 epoch 保存train_settingsbatch_size 8、epochs 200、seed 42保证可复现。数据增强默认值见 aug_default.yaml仿射变换概率 0.5、旋转 ±30°、缩放 [0.5, 1.25]、裁剪采样 448×448、高斯噪声 12.75、运动模糊开关、bbox_margin: 20与图像归一化等。配置的生成与合并逻辑位于 make_pose_config.pybuild_pose_config_defaults会依据net_type决定加载 backbone 还是专门架构目录替换num_bodyparts、num_individuals等占位值按任务类型BU / TD / Cond-TD挂载对应 headheatmap、PAF、unique bodypart、identity并注入 CTD conditions。CTD 条件支持三种形式shuffle 号int、预测文件路径.json/.h5仅评估用、shuffle snapshot元组配置结构可参考PoseConfig/TestConfig/DetectorConfig等 pydantic 模型见 config/init.py。数据互操作性DLCLoader 与 COCOLoader新的 PyTorch 数据管线引入了两类加载器配置类型DLCLoaderConfig与COCOLoaderConfig见 config/data.pyDLCLoader标准 DeepLabCut 项目的原生数据格式COCOLoaderCOCO 风格数据集便于把 DeepLabCut 融入更广泛的计算机视觉工作流与外部标注格式。两类加载器共享同一套配置模型DataConfig、DataTransformationConfig、GenSamplingConfig等使单/多动物项目与外部数据集的接入路径保持一致。Model Zoo 与 SuperAnimal 工作流3.0 继续扩张 Model Zoo 与 SuperAnimal 生态让预训练模型与迁移学习更易用。仓库中的具体支撑包括deeplabcut/modelzoo/project_configs/提供四个 SuperAnimal 项目配置superanimal_bird.yaml、superanimal_humanbody.yaml、superanimal_quadruped.yaml、superanimal_topviewmouse.yamldeeplabcut/modelzoo/model_configs/提供 dlcrnet、hrnet_w32、resnet_50、rtmpose_s/x、fasterrcnn、ssdlite 等模型配置modelzoo/utils.py 中的get_super_animal_project_cfg、get_super_animal_scorer、create_conversion_table支撑 SuperAnimal 项目的加载、scorer 命名与项目身体部位到 SuperAnimal 的转换表生成从而实现基于 SuperAnimal 权重微调而非 ImageNet 迁移学习。配合更新后的 Colab 示例examples/COLAB/与 GUI 工具用户无需大量环境配置即可体验现代架构。现代化的安装与打包pyproject.toml 与 uv3.0 将项目迁移到现代打包体系基于pyproject.toml见仓库根目录 pyproject.toml从而支持uv、pdm等现代包管理器与依赖解析器仓库根目录已附带uv.lock锁文件。打包采用extras 按需安装策略用户只安装自己需要的组件guinapari-deeplabcut 标注 GUI 与 PySide6tf/tf-cu11/tf-cu12/tf-latest不同 CUDA 版本的 TensorFlow 兼容互斥uv.lock中通过 conflicts 声明apple_mchipsmacOS Apple 芯片的 TF 兼容文档注明旧系统保留modelzoo、wandb、openvino、fmpose3dModelZoo、wandb 日志、OpenVINO 与 FMPose3D 可选集成docs文档构建依赖。pyproject.toml还定义了dlc命令入口deeplabcut.__main__:main并设置了 ruff 全代码库 lint 规则google 风格 docstring、line-length 120。标注 GUInapari-deeplabcut 的现代化重写3.0 随附新版 napari-deeplabcut 插件。标注 GUI 经历了大规模内部重写与现代化改造在保留熟悉 UI 与 DeepLabCut 工作流的同时显著提升了稳定性、数据处理、可用性、可视化与标注流程并新增自动化点跟踪以加速标注详见发布说明引用的插件 Release Notes本地相关文档见 docs/gui/napari_GUI.md。文档更新与后续演进3.0 同步精简了官方文档聚焦安装、快速入门等核心区域并在发布后持续演进。本地仓库对应的架构选型、PyTorch 配置与用户指南位于 docs/pytorch/ 目录。发布之后3.0 系列继续以补丁版本演进如 changelog/3_0_2/v3_0_2.md 所述带来了 NumPy 2 / pandas 3 CoW / Matplotlib 3.9 前向兼容、更可靠的 COCO 训练与模型导出、以及面向 LLM/Agent 的知识索引llms.txt等改进。从 3.0.0rc14 到正式版的变更清单发布说明在文末列出了自 3.0.0rc14 以来的全部变更可按类别归纳如下依赖升级与打包更新 uv.lock#3242、移除多余 import#3224、依赖升级requests 2.32.5→2.33.0#3259、cryptography 46.0.5→46.0.7#3277、pygments 2.19.2→2.20.0#3262、pyasn1 0.6.2→0.6.3#3249、pillow 12.1.1→12.2.0#3283、pytest 9.0.2→9.0.3#3284、urllib3 2.6.3→2.7.0#3325、gitpython 3.1.47→3.1.50#3322protobuf 要求移入 pyproject.toml#3235、conda yaml 改为经 conda 安装 pyside6#3253、多样化 TensorFlow 可选安装#3292、更新并去重 skeleton builder#3258、dlclibrary v0.0.12 与 napari-deeplabcut v3.1.0 升级#3338。GUI 改进Analyze Videos 标签页重构#3268、GUI 异步更新检查#3234、GUI 新增 Generate debug log 动作#3328、napari-DLC 文档随重构更新#3280。推理与模型修复为 RTMPose 的 SuperAnimal / 预训练加载实现 RTMCCHead 的 convert_weights#3270、refactor/predict multianimal#3220、为 AMD DirectML GPU 提供torch.inference_mode条件替换#3295、RTMPoseSimCCPredictor暴露apply_softmax并修复可见性阈值处理#3306、GenerativeSampler 可见性感知#3305、修复outlier_frames.compute_deviations中错误的 MultiLevel 构造#3247、机器标签存在时不再丢弃 likelihood 列#3323、新增 drop_likelihood_columns 守卫#3333。配置与数据健壮性改进不完整项目的TrainingDatasetMetadata与get_shuffle_engine#3313、移除 models_to_framework.json 尾逗号#3330、list_videos_in_folder更新#3303、参数命名不一致通过别名与 deprecation warning 解决#3332。CI、测试与文档工具智能测试选择 CI#3046、全代码库 lint 与 CI 检查#3216、测试工作流基础设施整合#3254、CI 使用固定 ffmpeg 版本#3276、CircleCI 禁用 huggingface xet#3316、自动化 docs 与 notebooks 新鲜度 规范化检查#3228、docs 版本化 glob 支持与更好校验#3278、修复 Windows 本地测试中 ruamel 解析失败#3275、CONTRIBUTING.md 重构#3241、自定义 docs 样式 custom.css#3207、PyPI 预发布安装并支持双后端#3238、为内存数组的批量 modelzoo 推理增加内部 helper#3222、FMPose3D modelzoo 集成更新#3221。Docker 现代化简化并现代化 Dockerfile#3290、更新 deeplabcut-docker 包#3291。结语一次面向现代深度学习生态的大迁移从最后的 2.x 版本跳到当前代码库更适合被理解为一次向更现代 Python 与深度学习生态的迁移而非例行更新。PyTorch 后端、更广的架构支持、ModelZoo 集成、打包现代化、更新的标注 GUI 与文档改进共同构成 DeepLabCut 3.0 这一大版本演进。对实践者而言迁移成本集中在底层引擎切换上而熟悉的项目工作流、数据格式与建模套路都被完整保留这让 3.0 成为一次平滑但深刻的升级。赞分享人工智能深度学习计算机视觉科研【免费下载链接】DeepLabCutOfficial implementation of DeepLabCut: Markerless pose estimation of user-defined features with deep learning for all animals incl. humans项目地址https://gitcode.com/gh_mirrors/de/DeepLabCut点击查看免费下载相关推荐DeepLabCut 3.0 PyTorch 后端 API 全景指南从模块化架构到训练、评估与推理实战DeepLabCut 3.0 PyTorch 后端 API 全景指南从模块化架构到训练、评估与推理实战 本篇技术指南面向希望理解并扩展 DeepLabCut人工智能深度学习计算机视觉科研ngrok 自托管完全指南使用 ngrokd 搭建属于你自己的内网穿透服务器ngrok 自托管完全指南使用 ngrokd 搭建属于你自己的内网穿透服务器 本指南基于仓库中的 docs/SELFHOSTING.md https://li人工智能深度学习计算机视觉科研Ray Train 性能基准全解析GPU 图像训练、PyTorch/TensorFlow 训练对齐与 XGBoost 分布式扩展Ray Train 性能基准全解析GPU 图像训练、PyTorch/TensorFlow 训练对齐与 XGBoost 分布式扩展 Ray Train 是 Ra人工智能分布式训练强化学习任务调度模型推理服务后端上一篇签署流程分支逻辑DocuSeal条件路由实现下一篇OpenPencil 脚本化用 openpencil eval 与 Figma 兼容 API 无头驱动设计文档创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表