1 安装
1.1 环境配置
找了一台没有安装过软件包的电脑为例,采用Windows 11系统,GPU为GTX1660。
1.1.1 安装显卡驱动
任务管理器查看显卡型号
查看自己电脑是否安装了显卡驱动,在NVIDIA控制面板中,可以看到驱动已装好,版本为531.29
查看支持CUDA的最高版本,点击组件,查看NVCUDA64.DLL的产品名称,看到支持最高版本的CUDA为12.1.68
1.1.2 安装CUDA
在conda中创建一个单独的环境,选择pytorch版本和python版本的对应关系,参考以下两张图.
CUDA版本与要使用的pytorch或tensorflow版本相对应,以下两个链接相互配合:
查找合适的CUDA版本和pytorch版本
在NVIDIA官网下载CUDA
1.1.3 安装CUDNN
进入cudnn下载网站,没注册注册一下,直接登录,下载对应版本的,下好解压,进入CUDA安装文件夹里,直接粘贴。
验证一下
python
import torch
torch.cuda.is_available()
至此pytorch-gpu安装成功。
1.2 安装 MMDetection
pip install mmengine
pip install mmcv==2.0.0rc4 -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.13/index.html (这步容易出错,参考官方链接)
如果根据官网链接也没有安装成功,采用源码进行安装:
源码
验证一下:
github上下载mmdetection源码
cd mmdetection-main
pip install -v -e .
验证一下:
python
import mmdet
至此安装成功
2 训练
2.1 数据集准备
使用labelme进行标签的制作,之后将标签转为coco格式。
数据集根目录如下图结构,annotations里放json格式的标签,其他放图片
2.2 训练
在mmdetection-main/configs中找到要使用的网络模型,复制绝对路径,粘贴在形参中,见下图
**之后直接运行tools/train.py,会在tools目录下生成work_dirs文件夹
复制刚才的.py文件到该目录,修改文件的配置**
_base_ = r'E:\代码\mmdetection-main\mmdetection-main\configs\pafpn\faster-rcnn_r50_fpn_1x_coco.py'
# dataset settings
data_root = r'E:\代码\mmdetection-main\mmdetection-main\COCO_dataset'
train_dataloader = dict(
batch_size=1,
num_workers=1,
dataset=dict(
data_root=r'E:\代码\mmdetection-main\mmdetection-main\COCO_dataset',
ann_file=r'E:\代码\mmdetection-main\mmdetection-main/COCO_dataset/annotations/instances_train.json',
data_prefix=dict(img='train/')))
val_dataloader = dict(
batch_size=1,
num_workers=1,
dataset=dict(
data_root= r'E:\代码\mmdetection-main\mmdetection-main\COCO_dataset',
ann_file=r'E:\代码\mmdetection-main\mmdetection-main/COCO_dataset/annotations/instances_val.json',
data_prefix=dict(img='val')))
test_dataloader = val_dataloader
val_evaluator = dict(
ann_file=r'E:\代码\mmdetection-main\mmdetection-main/COCO_dataset/annotations/instances_val.json')
test_evaluator = val_evaluator
# training settings
max_epochs = 300
num_last_epochs = 15
interval = 10
train_cfg = dict(max_epochs=max_epochs, val_interval=interval)
修改
mmdetection-main\mmdet\datasets\coco.py 中的CocoDataset类
mmdetection-main\mmdet\evaluation\functional\class_names.py 中的coco_classes和coco_panoptic_classes类
修改成自己的classname和palette
同样在tools/train.py文件运行前配置一下改好的文件,运行即可
Reference
https://www.jb51.net/python/302744e4p.htm#_lab2_3_6
https://blog.csdn.net/Evan_qin_yi_quan/article/details/131459950
https://blog.csdn.net/MayYou_SSS/article/details/134422943
https://blog.csdn.net/qq_41627642/article/details/124603457