网址 https://covid-ct.grand-challenge.org/
首先阅读比赛相关的:
一 评估标准 F1 AUC ACC
二 数据集说明
有来自216个病人的349张ct图片
还有阴性的图片
比赛方已经分好了测试集训练集和验证集和测试集,用.txt保存
比赛方还给出了两种参考方案也放在了github上
三 准备工作
1 数据集和代码都放在服务器上,并托管在github上
2目录结构
四 Base line
网络模型:Densnet 169
数据预处理:
包括裁剪,旋转,归一化等常规操作
主要参数:lr=0.0001 batch_size=10
结果:
precision 0.8155339805825242
recall 0.8
F1 0.8076923076923078
acc 0.8029556650246306
AUC 0.8504373177842566
尝试使用其他网络:resnet Efficientnet acc都低于0.8 ,所以先固定住网络为densnet
尝试调参 lr=0.0005 batch_size=10
The epoch is 10, average recall: 0.8571, average precision: 0.7895,average F1: 0.8219, average accuracy: 0.8079, average AUC: 0.8775
acc大概还是0.8
尝试修改
1:观察数据集,有很多过小的低清图片,所以加上一个过滤器,过滤掉长宽小于200的
def Exclude(img_list):
i=0;
for index in img_list:
path = img_list[i][0]
img = Image.open(path)
for lenth in img.size:
if lenth<200:
del img_list[i]
continue
i+=1
return img_list
结果并不理想:
The epoch is 10, average recall:
0.7524, average precision: 0.7900,average F1: 0.7707, average accuracy: 0.7685, average AUC: 0.8637
2:CT图片要诊断的区域只是肺部,因此,尝试先去除背景,只留下肺部的部分,减少干扰,在dataset方法里加入一个取出背景的功能
可以看出,删除了背景的照片更加的直观
2.1:Python去除背景,网上找到的大多是调用api在第三方网站上进行的,对于大量数据不适用,所以考虑用opencv来处理
2.2 opencv:接下来试一下
2.3 考虑到每个病人是一个3d的切片,baseline给出的是2d的网络,所以接下来还要尝试一下3d的网络