我的环境:Python 3.6 + VS2019 + CUDA 11.2 + CUDNN 8.1.0
环境变量:
D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64
创建conda虚拟环境:conda create -n transformer python=3.8
激活虚拟环境:conda activate transformer
https://pytorch.org/
https://github.com/open-mmlab/mmdetection/blob/master/docs/en/get_started.md
我安装的是 mmcv 1.3.1。https://github.com/open-mmlab/mmcv不方便下载的,直接看百度网盘连接。
mmcv 1.3.1版本:
链接:https://pan.baidu.com/s/1Z7eOh7wkrhoKDRoODREHHg?pwd=6mvh
提取码:6mvh
提供令一个版本的,也就是上面github链接的目前最新版本:
链接:https://pan.baidu.com/s/1mKx7w0fjXp9BJhwbg4gtMg?pwd=dbvy
提取码:dbvy
解压之后,使用 conda的power shell 。
conda activate transformer
pip install -r requirements.txt
$env:TORCH_CUDA_ARCH_LIST="8.6"
8.6为显卡算力,查询位置:英伟达官网(3060看英文文档),3060 查看算力位置:英文算力位置$env:MMCV_WITH_OPS = 1
$env:MAX_JOBS = 8
根据CPU核心数设置python setup.py build_ext
python setup.py develop
pip list
查看,mmcv-full 的版本是否为1.3.1步骤基本同上。
步骤基本同上。
python setup.py install
https://github.com/SwinTransformer/Swin-Transformer-Object-Detection
python demo/image_demo.py demo/demo.jpg configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py mask_rcnn_swin_tiny_patch4_window7.pth
至此说明 配置没有问题了。
路径:Swin-Transformer-Object-Detection-master\configs\_base_\models\mask_rcnn_swin_fpn.py
将 num_classes 换成自己数据集的种类数
路径:Swin-Transformer-Object-Detection-master\mmdet\datasets\coco.py
# CLASSES = ('person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus',
# 'train', 'truck', 'boat', 'traffic light', 'fire hydrant',
# 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog',
# 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe',
# 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
# 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat',
# 'baseball glove', 'skateboard', 'surfboard', 'tennis racket',
# 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl',
# 'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot',
# 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
# 'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop',
# 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave',
# 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock',
# 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush')
CLASSES = ('dog', 'cat')
路径:Swin-Transformer-Object-Detection-master\configs\_base_\default_runtime.py
interval:表示多少个 epoch 验证一次,然后保存一次权重信息
loadfrom:加载权重,指向权重的路径
路径:Swin-Transformer-Object-Detection-master\configs\swin\mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py
路径:Swin-Transformer-Object-Detection-master\configs\_base_\datasets\coco_instance.py
所有的 img_scale 修改为 : img_scale = [(256, 256)] 或者是36的倍数,如480、512等。
路径:Swin-Transformer-Object-Detection-master\configs\_base_\datasets\coco_instance.py
train=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_train2017.json',
img_prefix=data_root + 'train2017/',
pipeline=train_pipeline),
val=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_val2017.json',
img_prefix=data_root + 'val2017/',
pipeline=test_pipeline),
test=dict(
type=dataset_type,
ann_file=data_root + 'annotations/instances_test2017.json',
img_prefix=data_root + 'test2017/',
pipeline=test_pipeline))
samples_per_gpu=2, # batch size
workers_per_gpu=2, # 每个GPU对应线程数 可以大一些
python tools/train.py configs\swin\mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py
可以将测试图片放至 demo 文件夹,执行如下的命令。
python demo/image_demo.py demo/000000444010.jpg configs\swin\mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py work_dirs/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco/latest.pth