2026/2/18 6:12:43
网站建设
项目流程
有什么做酒和水果茶教程的网站,想学网站设计,涉密网络运行维护服务外包的单位,大连华南网站制作公司开源计算机视觉算法体系OpenMMLab的核心使用方法#xff0c;OpenMMLab是商汤联合港中文等机构推出的CV开源体系#xff0c;核心是配置文件驱动#xff0c;包含MMDetection#xff08;目标检测#xff09;、MMClassification#xff08;图像分类#xff09;、MMSegmentat…开源计算机视觉算法体系OpenMMLab的核心使用方法OpenMMLab是商汤联合港中文等机构推出的CV开源体系核心是配置文件驱动包含MMDetection目标检测、MMClassification图像分类、MMSegmentation语义分割等数十个专用算法库所有子库都依赖统一的基础核心库MMEngine使用逻辑高度统一。下面从环境搭建通用、核心使用示例以最常用的MMDetection目标检测为例、自定义基础修改、常用子库快速上手四个维度讲解步骤简洁可直接复刻新手也能快速入门。一、前置准备操作系统Linux推荐服务器首选、Windows10/11、macOSM1/M2均可基础环境Python 3.8~3.11推荐3.9、PyTorch 1.13~2.2必须保证CUDA和PyTorch版本兼容GPU用户必装CUDACPU用户可跳过硬件GPUNVIDIA显存≥8G推荐16G训练必备、CPU仅推理/小数据集测试二、通用环境搭建所有OpenMMLab子库都需要核心依赖MMEngine基础框架提供训练/测试/日志等核心功能、MMCV计算机视觉通用工具库OpenMMLab的核心依赖分mmcv-lite轻量版仅推理和mmcv完整版训练/推理必须装完整版。步骤1安装PyTorch优先GPU版本推荐通过PyTorch官方地址获取对应命令示例CUDA 11.8PyTorch 2.0.1最稳定组合# GPU版本CUDA 11.8pip3installtorch2.0.1torchvision0.15.2torchaudio2.0.2 --index-url https://download.pytorch.org/whl/cu118# CPU版本仅测试/推理不推荐训练pip3installtorch2.0.1torchvision0.15.2torchaudio2.0.2 --index-url https://download.pytorch.org/whl/cpu验证PyTorch安装成功运行Python输入以下代码无报错即成功importtorchprint(torch.cuda.is_available())# GPU用户输出TrueCPU用户输出False步骤2安装MMEngine所有子库的基础直接通过pip安装最新稳定版pipinstallmmengine步骤3安装MMCV核心视觉工具库关键匹配PyTorch和CUDA版本MMCV提供了预编译包推荐无需编译速度快通过以下命令自动匹配版本安装完整版# 自动匹配PyTorch和CUDA安装最新稳定版MMCVpipinstallmmcv2.0.0-f https://download.openmmlab.com/mmcv/dist/cu118/torch2.0.0/index.html替换说明如果你的CUDA是12.1、PyTorch是2.2.0将上述命令中的cu118改为cu121torch2.0.0改为torch2.2.0即可预编译包地址可查所有支持的版本。验证MMCV安装成功Python中输入import mmcv无报错即成功。三、核心使用示例以MMDetection为例目标检测最常用MMDetection是OpenMMLab最经典的子库支持YOLO、Faster R-CNN、RetinaNet等几乎所有主流目标检测算法使用逻辑可直接迁移到其他子库分类/分割。步骤1安装MMDetection两种方式新手推荐pip安装快速开发/改源码推荐源码安装# 方式1pip安装最新稳定版推荐新手pipinstallmmdet# 方式2源码安装需改源码/贡献代码克隆仓库后安装gitclone https://github.com/open-mmlab/mmdetection.gitcdmmdetection pipinstall-e.# 开发模式安装修改源码无需重新安装验证安装成功运行以下命令无报错即成功mim run mmdet check_installmim是OpenMMLab的专用工具安装MMEngine后自动附带用于快速运行/安装OpenMMLab库步骤2核心操作推理/测试/训练配置文件驱动OpenMMLab的核心是配置文件.py所有算法参数、数据集路径、训练策略都在配置文件中无需修改核心源码仅需调整配置文件即可这是其最核心的设计优势。操作1快速推理用预训练模型做目标检测新手首选无需训练直接用官方预训练模型对图片/视频做检测分命令行方式简单和Python脚本方式灵活可集成到自己的项目。方式1命令行推理一行代码# 用Faster R-CNN预训练模型检测单张图片输出结果保存为output.jpgmim run mmdet demo/image_demo.py\demo/demo.jpg\# 测试图片路径MMDetection仓库自带configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py\# 算法配置文件https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster-rcnn_r50_fpn_1x_coco/faster-rcnn_r50_fpn_1x_coco_20200130-047c8118.pth\# 预训练权重地址--out-dir outputs\# 结果保存目录--device cuda:0# 运行设备GPU用cuda:0CPU用cpu结果在outputs文件夹中生成output.jpg图片上会标注检测到的目标如人、车、猫和置信度。方式2Python脚本推理灵活集成适合将OpenMMLab的模型集成到自己的项目中核心步骤加载配置→加载模型→预处理图片→推理→后处理frommmdet.apisimportinit_detector,inference_detectorimportmmcv# 1. 配置文件和预训练权重路径config_fileconfigs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.pycheckpoint_filefaster-rcnn_r50_fpn_1x_coco_20200130-047c8118.pth# 先下载到本地devicecuda:0# CPU用cpu# 2. 初始化模型自动加载配置和权重完成模型构建modelinit_detector(config_file,checkpoint_file,devicedevice)# 3. 推理单张图片imgdemo/demo.jpgresultinference_detector(model,img)# 4. 可视化结果并保存model.show_result(img,result,out_fileoutputs/script_output.jpg,score_thr0.5)# score_thr是置信度阈值过滤低置信度目标预训练权重下载命令行推理时会自动下载脚本方式可手动从MMDetection模型库下载。操作2测试模型精度在数据集上评估AP/mAP等指标用预训练模型或自己训练的模型在COCO/自定义数据集上评估检测精度核心命令# 测试Faster R-CNN模型在COCO验证集的精度保存测试结果mim run mmdettest\configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py\# 配置文件faster-rcnn_r50_fpn_1x_coco_20200130-047c8118.pth\# 模型权重--device cuda:0\--eval bbox# 评估指标目标检测用bbox实例分割用bbox segm输出会打印出COCO标准的AP指标如AP0.5、AP0.5:0.95等即模型的检测精度。操作3训练自定义模型基于COCO/自定义数据集训练的核心是修改配置文件指定数据集路径、训练策略、模型参数这里以在COCO数据集上微调Faster R-CNN为例新手可先基于官方数据集训练再迁移到自定义数据集。步骤1准备数据集COCO官方COCO数据集包含训练集/验证集/测试集可通过MMDetection文档下载解压后目录结构如下coco/ ├── annotations/ # 标注文件instances_train2017.json、instances_val2017.json等 ├── train2017/ # 训练图片 ├── val2017/ # 验证图片 └── test2017/ # 测试图片步骤2修改配置文件关键复制官方配置文件避免修改原文件cpconfigs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py my_config.py修改my_config.py中的数据集路径和训练参数核心修改项# 1. 修改数据集根路径和标注文件路径data_root/path/to/your/coco/# 你的COCO数据集根目录train_ann_fileannotations/instances_train2017.jsontrain_img_prefixtrain2017/val_ann_fileannotations/instances_val2017.jsonval_img_prefixval2017/# 2. 可选修改训练参数train_cfgdict(# 训练策略typeEpochBasedTrainLoop,# 按轮次训练max_epochs12,# 总训练轮次官方1x是12轮val_interval1)# 每1轮验证一次optim_wrapperdict(# 优化器typeOptimWrapper,optimizerdict(typeSGD,lr0.02,momentum0.9,weight_decay0.0001),clip_gradNone)# 3. 可选修改批次大小根据GPU显存调整8G显存设为216G设为4datadict(samples_per_gpu2,# 每个GPU的批次大小workers_per_gpu2)# 每个GPU的数据加载线程数步骤3开始训练命令行/脚本命令行方式推荐# 单GPU训练mim run mmdet train\my_config.py\# 自定义配置文件--device cuda:0\--work-dir work_dirs/faster_rcnn# 训练日志/模型权重保存目录多GPU训练服务器推荐速度更快# 2个GPU训练bashtools/dist_train.sh my_config.py2--work-dir work_dirs/faster_rcnn训练过程会自动打印训练日志损失、学习率、验证精度并在work_dirs中保存latest.pth最新训练权重epoch_x.pth第x轮的训练权重log.json/train.log训练日志vis_data可视化结果可选四、自定义基础修改满足个性化需求OpenMMLab的设计理念是**“模块化、可配置、易扩展”无需修改核心源码仅需通过配置文件继承/修改或自定义小模块**即可实现需求新手常用的自定义修改有更换预训练模型在配置文件中修改pretrained参数如用ResNet101替换ResNet50仅需修改骨干网络配置modeldict(backbonedict(typeResNet,depth101,# 50→101pretrainedtorchvision://resnet101,# 加载TorchVision预训练权重norm_cfgdict(typeBN,requires_gradTrue)))调整学习率/批次大小根据GPU数量和显存调整遵循线性缩放原则如2个GPU批次大小从2→4学习率从0.02→0.04。自定义数据集将COCO数据集替换为自己的数据集如VOC/自定义标注需将标注文件转换为COCO格式推荐或自定义数据集加载器参考MMDetection自定义数据集文档。添加新的算法模块如自定义骨干网络/检测头参考OpenMMLab拓展指南进阶。五、其他常用子库快速上手逻辑与MMDetection一致OpenMMLab的所有子库都遵循**“MMEngineMMCV专用库”**的依赖体系安装和使用逻辑与MMDetection完全一致仅需替换专用库和配置文件即可以下是最常用的子库子库名称用途安装命令核心模型库地址MMClassification图像分类/特征提取pip install mmclsMMCls模型库MMSegmentation语义分割/全景分割pip install mmsegMMSeg模型库MMYOLO轻量YOLO系列v3/v5/v7/v8pip install mmyoloMMYOLO模型库MMPose人体姿态估计pip install mmposeMMPose模型库使用示例MMClassification图像分类# 用ResNet50预训练模型分类单张图片mim run mmcls demo/image_demo.py\demo/demo.JPEG\configs/resnet/resnet50_8xb32_in1k.py\https://download.openmmlab.com/mmclassification/v0/resnet/resnet50_8xb32_in1k_20210831-ea4938fc.pth\--out-dir outputs六、OpenMMLab专用工具mim重点mim是OpenMMLab官方的命令行工具安装MMEngine后自动附带能大幅简化安装/运行/训练/测试操作核心命令# 1. 安装OpenMMLab子库miminstallmmdet mmcls mmseg# 一键安装多个子库# 2. 运行子库的demo/训练/测试mim run mmdet demo/image_demo.py[参数]# 推理mim run mmdet train[参数]# 训练mim run mmdettest[参数]# 测试# 3. 下载预训练权重mim download mmdet faster-rcnn_r50_fpn_1x_coco --dest ./checkpoints# 4. 查看子库版本/信息mim info mmdet七、避坑要点新手必看版本兼容MMCV、MMEngine、PyTorch、CUDA必须版本匹配这是最常见的报错原因优先用预编译包安装MMCV避免手动编译。GPU显存训练时如果报“CUDA out of memory”降低samples_per_gpu批次大小或使用fp16混合精度训练在配置文件中添加fp16 dict(loss_scaledynamic)。配置文件继承OpenMMLab的配置文件支持多层继承如_base_ [./faster_rcnn_r50_fpn.py, ./coco_dataset.py]修改时需注意继承关系避免参数覆盖。数据集格式优先将自定义数据集转换为COCO格式JSON标注因为OpenMMLab的所有子库都对COCO格式做了最优支持转换工具可参考img2dataset或手动编写脚本。Windows系统注意Windows下多GPU训练可能存在兼容问题优先用单GPU训练且路径分隔符用/或\\。八、学习资源官方优质官方文档最权威OpenMMLab主站https://openmmlab.com/MMEngine文档https://mmengine.readthedocs.io/zh_CN/latest/MMDetection文档https://mmdetection.readthedocs.io/zh_CN/latest/官方教程OpenMMLab提供了大量入门教程和实战案例见OpenMMLab学院GitHub仓库所有子库的源码和示例都在GitHub地址https://github.com/open-mmlab社区支持知乎/CSDN有大量OpenMMLab实战教程官方QQ群/微信群可获取实时技术支持。总结OpenMMLab的核心使用逻辑可概括为3个统一掌握后能快速迁移到所有子库依赖统一所有子库都依赖MMEngineMMCV只需一次搭建通用环境使用统一所有子库都遵循配置文件驱动推理/训练/测试的命令行/脚本逻辑完全一致拓展统一所有子库都基于Registry注册器实现模块化拓展自定义模块的方法完全相同。新手入门建议先搭环境→用预训练模型做推理→基于官方数据集做简单训练→修改配置文件迁移到自定义数据集逐步从“使用”过渡到“拓展”。