sam微调过程

sam微调过程
ytkz根据https://github.com/xzyun2011/finetune_segment_anything_tutorial 微调SAM模型
代码使用
Fine-tuning
Step 0, 下载SAM的权重,可以从segment-anything github repo model checkpoint 直接下载
Step 1, 准备好VOC2007 dataset,直接在 官网 下载。直链是http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
代码里面有个迷你版的VOC2007数据集,在 “data_example”里面,下好了权重可以直接用这个目录文件试跑
Step 2, 开始 fine-tuning
❗ 记得把模型、数据路径换成自己的,gpu id也可以指定 ❗
python3 finetune_sam_voc.py --w weights/sam_vit_b_01ec64.pth --type vit_b --data data_example/VOCdevkit
代码讲解
数据读取
使用的是VOC2007分割数据集,总共632张图片(412train_val,210test),一共20个类别,加上背景类一共21,标签是png格式,像素值代表物体类别,同时所有物体mask的外轮廓值是255,训练时会忽略,原始数据集如下目录构造(github上的代码中data_example只是示例,只有几张图),训练使用的是SegmentationObject中的标签:
## VOCdevkit/VOC2007
├── Annotations
├── ImageSets
│ ├── Layout
│ ├── Main
│ └── Segmentation
├── JPEGImages
├── SegmentationClass
└── SegmentationObject
CustomDataset的代码按如上目录结构读取对应数据,根据ImageSets/Segmentation目录下的txt_name指定训练的文件名字