【CVPR2025 DEIM】超详细!手把手训练自己的数据集教学:从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。本文在win系统上训练,最强实时目标检测算法!

【CVPR2025 DEIM】超详细!手把手训练自己的数据集教学:从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。本文在win系统上训练,最强实时目标检测算法!
🔥DEIM创新改进目录:全新DEIM有效涨点改进目录 | 包含各种最新顶会顶刊:卷积模块、注意力模块、特征融合模块、有效特征聚合提取模块,上采样模块、下采样模块,二次创新模块、独家创新,特殊场景检测等最全大论文及小论文必备创新改进点
🔥全新DEIM创新改进专栏地址:全网独家DEIM创新改进高效涨点+永久更新中(至少500+创新改进🗡剑指小论文、大论文)+小白也能简单高效跑实验+容易发各种级别小论文

本文目录

一、下载CVPR2025 DEIM官方源码

 二、创新DEIM项目虚拟环境

第一步创建一个自己的虚拟环境:

第二步进入到自己的虚拟环境:

第三步:安装pytorch,建议不要安装太新版本

第四步:直接复制以下所有命令到控制台“终端里面粘贴回车运行”

三、准备自己的数据集和配置自己数据集步骤

3.1 本文以训练Visdrone2019无人机数据集为例

3.2 将自己数据集放到datasets文件夹里

​3.3 配置数据步骤

四、使用DEIM训练自己的数据集

4.1 训练前先修改一下train.py训练脚步里的参数

4.2 train.py脚本代码完整代码

4.3 windows系统上第一次训练,需要解决这个源码bug!

五、验证自己的模型效果

六、推理测试自己的模型

七、DEIM模型生成论文实验热力图

一、下载CVPR2025 DEIM官方源码

DEIM项目源码地址:点击链接自动跳转!

[CVPR 2025] DEIM: DETR with Improved Matching for Fast Convergence

二、创新DEIM项目虚拟环境

如果有的小伙伴是Windows系统,订阅后可以私信怪导,可以直接将Windows系统的deim虚拟环境包发给你,自己按照pdf文件操作步骤几分钟搞定!

下方是自己创建DEIM虚拟环境的详细步骤:

第一步:创建一个自己的虚拟环境:

conda create -n deim python=3.10

第二步:进入到自己的虚拟环境:

conda activate deim

第三步:安装pytorch,建议不要安装太新版本

pytorch官网:Previous PyTorch Versions

conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c n

比如下面截图是我的deim虚拟环境pytorch和torchvision版本举例:

第四步:直接复制以下所有命令到控制台“终端里面粘贴回车运行”

安装所需要的包!

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple pip install torchsummary -i https://pypi.tuna.tsinghua.edu.cn/simple pip install onnx==1.14.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install onnxruntime==1.15.1 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pycocotools==2.0.7 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install faster-coco-eval==1.6.5 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install PyYAML -i https://pypi.tuna.tsinghua.edu.cn/simple pip install tensorboard -i https://pypi.tuna.tsinghua.edu.cn/simple pip install scipy -i https://pypi.tuna.tsinghua.edu.cn/simple pip install calflops -i https://pypi.tuna.tsinghua.edu.cn/simple pip install transformers -i https://pypi.tuna.tsinghua.edu.cn/simple pip install onnxsim==0.4.36 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install onnxruntime-gpu==1.18.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install timm==1.0.7 thop efficientnet_pytorch==0.7.1 einops grad-cam==1.4.8 dill==0.3.6 albumentations pytorch_wavelets==1.3.0 PyWavelets -i https://pypi.tuna.tsinghua.edu.cn/simple pip install -U openmim -i https://pypi.tuna.tsinghua.edu.cn/simple mim install mmengine -i https://pypi.tuna.tsinghua.edu.cn/simple pip install mmcv==2.2.0 -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.3/index.html

三、准备自己的数据集和配置自己数据集步骤

如果自己没有数据集,可以去这个官网上找公共数据集去练习:Roboflow Datasets

3.1 本文以训练Visdrone2019无人机数据集为例

VisDrone数据集是由天津大学等团队开源的一个大型无人机视角的数据集,官方提供的数据中训练集是6471、验证集是548、测试集1610张。数据集共提供了以下12个类,分别是:‘忽略区域’, ‘pedestrian’, ‘people’, ‘bicycle’, ‘car’, ‘van’,‘truck’, ‘tricycle’, ‘awning-tricycle’, ‘bus’, ‘motor’, ‘others’,其中忽略区域、others是非有效目标区域,本项目中予以忽略,只使用’pedestrian’, ‘people’, ‘bicycle’, ‘car’, ‘van’,‘truck’, ‘tricycle’, ‘awning-tricycle’, ‘bus’, 'motor’10个类。

Visdrone2019-COCO格式数据集下载链接:https://aistudio.baidu.com/datasetdetail/226107/0
Visdrone2019-YOLO格式数据集下载链接:https://aistudio.baidu.com/datasetdetail/295374

3.2 将自己数据集放到datasets文件夹里

3.3 配置数据步骤

第一步:在DEIM/configs/dataset文件中创建visdrone_detection.yml文件

第二步:修改visdrone_detection.yml文件

完整visdrone_detection.yml文件的代码:

task: detection evaluator: type: CocoEvaluator iou_types: ['bbox', ] num_classes: 10 # your dataset classes remap_mscoco_category: False train_dataloader: type: DataLoader dataset: type: CocoDetection img_folder: C:/software/mydemo/Demo/DEIM/datasets/visdrone/train2017 ann_file: C:/software/mydemo/Demo/DEIM/datasets/visdrone/annotations/instances_train2017.json return_masks: False transforms: type: Compose ops: ~ shuffle: True num_workers: 4 drop_last: True collate_fn: type: BatchImageCollateFunction val_dataloader: type: DataLoader dataset: type: CocoDetection img_folder: C:/software/mydemo/Demo/DEIM/datasets/visdrone/val2017 ann_file: C:/software/mydemo/Demo/DEIM/datasets/visdrone/annotations/instances_val2017.json return_masks: False transforms: type: Compose ops: ~ shuffle: False num_workers: 4 drop_last: False collate_fn: type: BatchImageCollateFunction 

第三步:修改DEIM\configs\deim_dfine\dfine_hgnetv2_n_coco.yml文件

我们跑deim_hgnetv2_n_coco.yml为例子,所以我们就修改dfine_hgnetv2_n_coco.yml文件!

接下来只需要修改dfine_hgnetv2_n_coco.yml文件中的一行代码即可1

__include__: [ # '../dataset/coco_detection.yml', '../dataset/visdrone_detection.yml', '../runtime.yml', '../base/dataloader.yml', '../base/optimizer.yml', '../base/dfine_hgnetv2.yml', ]

第四步:修改deim_hgnetv2_n_coco.yml文件

当自己使用不同数据集训练,保存结果文件夹需要重新创建一下,否则第二次训练后的结果权重文件会覆盖第一次训练后的权重文件。

第四步:训练前,记得修改batch_size大小,根据自己设备显存大小去灵活设置。

修改configs/base/dataloader.yml中的total_batch_size

同时也修改DEIM\configs\deim_dfine\dfine_hgnetv2_n_coco.yml中的total_batch_size

第五步:修改DEIM\configs\runtime.yml文件中的参数,方便观察

checkpoint_freq: 1

到此为止,配置自己的数据集操作已经完成!

四、使用DEIM训练自己的数据集

4.1 训练前先修改一下train.py训练脚步里的参数

4.2 train.py脚本代码完整代码

""" DEIM: DETR with Improved Matching for Fast Convergence Copyright (c) 2024 The DEIM Authors. All Rights Reserved. --------------------------------------------------------------------------------- Modified from RT-DETR (https://github.com/lyuwenyu/RT-DETR) Copyright (c) 2023 lyuwenyu. All Rights Reserved. """ import os import sys os.environ["CUDA_VISIBLE_DEVICES"]= '0' import warnings warnings.filterwarnings('ignore') sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), '..')) import argparse from engine.misc import dist_utils from engine.core import YAMLConfig, yaml_utils from engine.solver import TASKS debug=False if debug: import torch def custom_repr(self): return f'{{Tensor:{tuple(self.shape)}}} {original_repr(self)}' original_repr = torch.Tensor.__repr__ torch.Tensor.__repr__ = custom_repr def main(args, ) -> None: """main """ dist_utils.setup_distributed(args.print_rank, args.print_method, seed=args.seed) assert not all([args.tuning, args.resume]), \ 'Only support from_scrach or resume or tuning at one time' update_dict = yaml_utils.parse_cli(args.update) update_dict.update({k: v for k, v in args.__dict__.items() \ if k not in ['update', ] and v is not None}) cfg = YAMLConfig(args.config, **update_dict) if args.resume or args.tuning: if 'HGNetv2' in cfg.yaml_cfg: cfg.yaml_cfg['HGNetv2']['pretrained'] = False print('cfg: ', cfg.__dict__) solver = TASKS[cfg.yaml_cfg['task']](cfg) if args.test_only: solver.val() else: solver.fit() dist_utils.cleanup() if __name__ == '__main__': parser = argparse.ArgumentParser() # priority 0 parser.add_argument('-c', '--config', default=r'C:\software\mydemo\Demo\DEIM\configs\deim_dfine\deim_hgnetv2_n_coco.yml',type=str) # parser.add_argument('-c', '--config', type=str, required=True) parser.add_argument('-r', '--resume', type=str, help='resume from checkpoint') parser.add_argument('-t', '--tuning', type=str, help='tuning from checkpoint') parser.add_argument('-d', '--device', type=str, help='device',) parser.add_argument('--seed', default=0,type=int, help='exp reproducibility') parser.add_argument('--use-amp', action='store_true', help='auto mixed precision training') parser.add_argument('--output-dir', type=str, help='output directoy') parser.add_argument('--summary-dir', type=str, help='tensorboard summry') parser.add_argument('--test-only', action='store_true', default=False,) # priority 1 parser.add_argument('-u', '--update', nargs='+', help='update yaml config') # env parser.add_argument('--print-method', type=str, default='builtin', help='print method') parser.add_argument('--print-rank', type=int, default=0, help='print rank id') parser.add_argument('--local-rank', type=int, help='local rank id') args = parser.parse_args() main(args) 

4.3 windows系统上第一次训练,需要解决这个源码bug!

windows系统上第一次训练,100%会出现这个bug问题。怪导教你如何解决这个bug!

解决方法:修改这个文件DEIM\engine\backbone\hgnetv2.py

 except Exception as e: print(f"{str(e)}") logging.error(RED + "CRITICAL WARNING: Failed to load pretrained HGNetV2 model" + RESET) logging.error(GREEN + f"Please manually download from {download_url} to {local_model_dir}" + RESET)

到此,现在可以正常训练使用DEIM官方模型了,助力大家高效去发小论文、完成毕业大论文!

第一次运行,默认是加载预训练权重,所以需要下载。(建议大家自己离线下载比较快,或是等它自动在线下载完,在线下载慢一些),在此处演示我关闭了加载预训练权重变量。

五、验证自己的模型效果

使用val.py脚本

DEIM训练部分epoch,给大家演示一下使用val.py在验证集或是测试集上的效果。

六、推理测试自己的模型

使用predict.py脚本

七、DEIM模型生成论文实验热力图

使用DEIM生成热力图脚本.py生成热力图,论文实验部分增加可视化热力图分析,提高论文的质量,增加小论文录用率。

八、本文总结

本文详细介绍了CVPR2025 DEIM目标检测模型的完整使用流程。内容包含:1)源码下载与虚拟环境配置;2)Visdrone2019数据集准备与配置文件修改;3)训练参数设置及Windows系统常见问题解决方案;4)模型验证、推理测试及热力图生成方法。特别针对Windows用户也提供了本地虚拟环境配置,并详细说明了数据集路径设置、参数调整等关键步骤。通过本文的指导,小伙伴可以快速掌握DEIM模型的使用方法,用于学术论文研究和实验分析。

Read more

安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案

安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为ZEEKLOG博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。 本文主要介绍了安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案,希望能对使用openclaw的同学们有所帮助。 文章目录 * 1. 问题描述 * 2. 解决方案 1. 问题描述 今天在使用命令安装openclaw时,却出现了npm error code ENOENT和npm error syscall spawn git的错误提示,具体报错信息如下图所示: 在经过了亲身的实践后,终于找到了解决问题的方案,最终将逐步的操作过程总结如下。希望能对遇到同样bug的同学们有所帮助。

By Ne0inhk
最新版 GLM-5 全栈实战全教程:从本地开源部署到 API 接入(多 Agent 架构 + 全栈编程 + 就业级项目实战)

最新版 GLM-5 全栈实战全教程:从本地开源部署到 API 接入(多 Agent 架构 + 全栈编程 + 就业级项目实战)

一、背景与技术概述 随着开源大模型技术的快速迭代,GLM-5 系列凭借优秀的指令遵循能力、长上下文支持、轻量化部署适配性与商用友好的开源协议,成为企业级AI落地与个人开发者技术进阶的核心选型之一。 本文以问题驱动为核心,完整覆盖从本地开源部署到工程化API封装、多Agent架构设计、全栈项目实战的全流程,解决开发者在大模型落地过程中面临的部署门槛高、工程化能力不足、Agent架构落地难、全栈项目缺乏可复用方案等核心痛点。本文所有实操步骤均经过生产环境验证,代码可直接复用,适配就业级项目的技术要求与企业落地标准。 1.1 GLM-5 核心技术特性 * 开源协议:Apache 2.0 协议,支持商用二次开发,无额外授权门槛 * 核心能力:支持128K超长上下文窗口,原生支持函数调用、多模态理解、结构化输出,指令遵循准确率较前代提升42% * 部署适配:原生支持FP8/INT4/AWQ/GPTQ多精度量化,最低可在16G显存环境完成流畅推理,适配消费级显卡与企业级GPU集群 * 性能优化:基于稀疏注意力架构与PagedAttention机制,推理吞吐量较同参数量模型提升3倍,

By Ne0inhk
爆肝 2 天,用 GLM5 开发了 OpenClaw 接入微信 bot,已开源!

爆肝 2 天,用 GLM5 开发了 OpenClaw 接入微信 bot,已开源!

这是苍何的第 493 篇原创! 大家好,我是苍何。 OpenClaw,这个 GitHub 上 18 万 Star 的怪物级开源项目,你们应该都听过了吧? 飞书能接、钉钉能接、企业微信能接、QQ 能接、Discord 能接…… 但偏偏最多人用的「微信个人号」,它不支持。 我翻遍了 GitHub、掘金、知乎,找到的方案要么是企业微信绕一圈,要么是用微信 Web 协议搞,动不动就封号。 说实话,这谁顶得住? 天天在微信上跟朋友聊天、在群里吹水,结果想接个 OpenClaw 都这么费劲? 麻了。 于是我决定自己干。 「爆肝 2 天,我把 OpenClaw 接入了微信个人号,并且已经开源了。」 地址:

By Ne0inhk
【AI绘画】Midjourney进阶:色相详解

【AI绘画】Midjourney进阶:色相详解

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏: AI绘画 | Midjourney 文章目录 * 💯前言 * 💯Midjourney中的色彩控制 * 为什么要控制色彩? * 为什么要在Midjourney中控制色彩? * 💯色相 * 红 * 橙 * 黄 * 绿 * 蓝 * 紫 * 黑与白 * 💯小结 💯前言 在设计领域中,色相作为色彩的重要维度,直接决定了作品的视觉基调与情感表达。通过对色相的深入理解与灵活运用,设计师可以在作品中精准传递信息,激发观众的情感共鸣。Midjourney 作为一款强大的AI绘画工具,为设计师提供了高效探索色相表现的创作平台,使复杂的色彩控制变得直观且富有创意。 本篇文章将以色相为核心,从色彩心理学与实际应用出发,结合 Midjourney 的提示词设置,详细解析不同色相在设计中的作用与特点。无论是自然主题的绿、蓝,还是富有情感张力的红、紫,每一种色相都在设计中扮演着不可替代的角色。 Midjourney官方使用手册 💯Midjourney中的色彩控制 在 Mi

By Ne0inhk