基于SAM2的视频流分割模型,主要针对颅底术内窥镜图像中的6种结构进行分割,可应用于视频流场景和3D医学影像。在原版网络基础上对image encoder,mask decoder等结构进行修改从而优化网络的分割能力。
网络结构如图所示,Image Encoder,Mask Decoder部分均可替换:
-
- SAM 组件
segment anyting目录下包含:- 3种Image Encoder: SAM-MED2D原版Image Encoder, 带有Conv-GCN branch的Image Encoder, 带有skip connection的Image Encoder;
- 1种Prompt Encoder: SAM-MED2D原版Prompt Encoder;
- 4种Mask Decoder: SAM-MED2D原版Mask Deocder, 基于Unet的Decoder,基于Swin-Transformer的Decoder和基于Swin-Unet的Decoder.
- SAM自动分割模组
- 基于SAM自动分割模组的数据增强模组
- 工具箱Tools
包括可视化组件,mask分离组件,.json文件生成组件 - train & test
根据不同使用场景有不同采用不同的train & test模块
- SAM 组件
数据集总共包含7845张来自120个垂体瘤内窥镜手术视频的截图。根据临床意义,由专业外科手术医生从120个视频中选出7845帧图像,每帧图像初始分别率为1920×1080或720×576.
如图所示,我们选取了六种结构作为分割对象:鞍底(sella floor),颈动脉(ICA prominence),视神经(optic prominence),OCR(optic-carotid recess), 斜坡神经(clival recess)和蝶鞍结节(tuberculum sella). 数据集由专业外科神经外科一生进行像素级标注,最后分为训练集(70)/验证集(10)/测试集(20)用于模型的训练和测试。解剖结构和标注的对应关系如下表:
structure | Sella floor | Tuberculum_sella | ICA_prominence | Clival_recess | Optic_carotid_recess | Optic_prominence |
---|---|---|---|---|---|---|
label | 1 | 2 | 3 | 4 | 5 | 6 |
colormap(BGR) | (255,150,0) | (0,255,150) | (255,0,255) | (0,150,255) | (0,255,0) | (255,255,0) |
数据集包含来自17个腹腔镜胆囊切除手术视频的8080张图像以及对应的像素级标注的mask,共有17个case,13个类别,每帧图像分辨率为854×480.
发布时间: 2020-12
官方项目链接🔗 kaggle
文章地址🔗 Arxiv
解剖结构和标注的对应关系如下表:
structure | Background | Abdominal Wall | Liver | Gastrointestinal Tract | Fat | Misc | Instruments | Gallbladder |
---|---|---|---|---|---|---|---|---|
label | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
colormap(BGR) | (0, 0, 0) | (140, 140, 210) | (114, 114, 255) | (156, 70, 231) | (75, 183, 186) | (227, 158, 45) | (0, 255, 170) | (0, 255, 255) |
使用时请以如下结构进行分级:
PASeg
├── train
│ ├── image
│ | ├── case_0004
│ | ├── 0.jpg
│ | ├── 1.jpg
│ | ├── ...
│ ├── mask
│ ├── case_0004
│ ├── 0.png
│ ├── 1.png
│ ├── ...
├── val
└── test
将test.py中的save_pred参数设置为True就能生成对应的预测可视化结果。
部分结果如图所示: