【论文阅读笔记】基于YOLO和ResNet深度卷积神经网络的结直肠息肉检测
作者:李素琴、吴练练、宫德馨、胡珊、陈奕云、朱晓云、李夏、于红刚
效果视频链接:https://www.xhnj.com/m/video/1008384.htm
小结
从算法的角度来说,作为2020发布的论文,使用的技术是比较落后的了。一个息肉检测项目,它使用了YOLO算法(应该是v1)来得到候选集,阈值使用
0.2
0.2
0.2,然后使用ResNet进行类别识别。
ResNet使用的是ResNet152,文中有说YOLO+ResNet152的系统达到了25帧/s 的处理速度,暂不知道处理平台。大概率是1080Ti,同期的腾讯觅影使用的YOLOv3,也是1080Ti上达到“实时”。
从视频效果来看,算法系统的检测速度是不够的,明显有时延,应该是异步检测,检测速度不足且未同步的结果。从准确性看,小目标,以及不在正面的目标,效果检测效果一般。
作为一个做着息肉识别的开发者来说,添加一个病灶检测分类,也是可以理解的,因为一些气泡/组织确实较难处理。况且是五年前的算法结构(实际上是
10
10
10年了,YOLO和ResNet均是十年前提出的),昨日的bad case今日或许easy。
但本文的数据集,已经剔除掉大量的气泡/粪水等实际的难点,是经过筛选过的数据。且从视频的效果来看,一些观察角度不正、较小的息肉,应该也不在测试集数据上。验证集应该相对简单。
从摘要的指标来看,即使筛选过的测试集,其假阳性其实也不低,虽然文中说比其他文献要高了。
摘要
算法系统由YOLO和ResNet152构建,系统在本文称作DCNN。
数据集有4个来源,其中数据集 1 1 1作为训练集,数据集 2 / 3 / 4 2/3/4 2/3/4均为测试集。
数据 1 / 3 / 4 1/3/4 1/3/4的来源都是从武汉大学人民医院消化内镜中心数据库2018年01月 - 2019年03月的肠镜图像及视频。
- 数据集 1 1 1(2018年01月-2018年11月),共 4700 4700 4700张。其中 3700 3700 3700张带息肉,训练YOLO; 1000 1000 1000张不带息肉,结合前面的 1000 1000 1000张带息肉,共 2000 2000 2000张来训练ResNet;
- 数据集 2 2 2(CVC-ClinicDB),开源数据集,共 612 612 612张,来源 29 29 29个结肠镜检查视频。所有图像均有息肉,用于测试和与其他文献对比;
- 数据集 3 3 3(2019年01月-2019年03月),共 720 720 720张图像,含息肉图像 320 320 320张,不含息肉图像 400 400 400张;
- 数据集 4 4 4(2018年12月), 15 15 15个肠镜视频,用于测试;
指标如下:
- 数据集 2 2 2:敏感度 93.19 % 93.19\% 93.19%;
- 数据集 3 3 3:准确度 95.00 % 95.00\% 95.00%,敏感度 98.13 % 98.13\% 98.13%,特异性 92.50 % 92.50\% 92.50%;
- 数据集 4 4 4,逐帧准确度 96.29 % 96.29\% 96.29%,逐帧敏感度 90.25 % 90.25\% 90.25%,特异性 96.49 % 96.49\% 96.49%,假阳性 3.51 % 3.51\% 3.51%。
论文内容
数据集
结直肠癌一般由腺瘤性息肉发展而来,从腺瘤演变成早期浸润癌平均 10 − 15 10-15 10−15年。所以,在临床中,腺瘤检出率(adenoma detection rate, ADR)被认为是结肠镜检查质量的评判标准,腺瘤检出率每增加 1 % 1\% 1%,结直肠癌发病率就降低 3 − 6 % 3-6\% 3−6%。
数据集制作,资源充足!!!
4
4
4名医学博士进行分类(有无息肉,并不区分腺瘤性息肉与非腺瘤性),再由
2
2
2名高年资(大于
8
8
8年肠镜检查经验)内镜医师对两类图像进行确认。标注工具,使用的是剑桥大学Visual Geometry Group开发的VGG Image Annotator(VIA),本实验标注如下图所示:
每个肠镜视频都是记录从找到回盲瓣到刚门口的完整的退镜过程(退镜过程大于
6
6
6分钟),且每个视频至少包含
1
1
1个肠息肉,视频按
25
25
25帧/秒展开。
排除图像,一些困难图像在采集图像的标准外:(1)年龄
<
18
\lt18
<18岁;(2)肠道清洁度差;(3)结直肠部分切除患者;(4)进展期癌;(5)炎症性肠病;
肠镜检查器械:富士EC-530WM/W, EC-L590WM, EC-600WM;奥林巴斯 CF-240I, CF-Q260AI, CF-H290I, CF-HQ290I。
采集图像均为白光非放大模式下拍摄。
算法架构
算法系统是YOLO + ResNet的组合:使用YOLO,在低阈值( 0.2 0.2 0.2)的筛选下粗晒得到候选病灶图像,候选图像crop出来再resize 1.5 × 1.5\times 1.5×,再通过ResNet(阈值 0.1 0.1 0.1),将疑似息肉图片分为非息肉和息肉。文中显示该DCNN模型处理速度为每秒 25 25 25帧。
分类数据集上,有
1000
1000
1000张无息肉图像,再加上
3700
3700
3700张有息肉图像中随机选出
1000
1000
1000张图像,组成
2000
2000
2000张数据集。再按照
2
:
8
2:8
2:8分配,即
800
800
800张有息肉,
800
800
800张无息肉作为训练集,
200
200
200张有息肉,
200
200
200张无息肉作为验证集。
分类算法的准确率为
96
%
96\%
96%(
384
/
400
384/400
384/400)。
对于同一个患者的同一个息肉在不同角度/不同距离拍摄的图像,作者有特意将其在训练集和验证集中分离。
算法结果
DCNN模型,在数据集
2
2
2中,检测肠息肉的敏感性为
93.19
%
93.19\%
93.19%(
602
/
646
602/646
602/646);
在数据集
3
3
3中,检测肠息肉的准确度为
95.00
%
95.00\%
95.00%(
684
/
720
684/720
684/720),敏感性为
98.13
%
98.13\%
98.13%(
314
/
320
314/320
314/320),特异性为
92.50
%
92.50\%
92.50%(
370
/
400
370/400
370/400),假阳性率为
7.50
%
7.50\%
7.50%(
30
/
400
30/400
30/400)。对于
≤
5
\leq5
≤5息肉检测的准确度为
97.80
%
97.80\%
97.80%,未检测出的
6
6
6个息肉均为
≤
5
\leq5
≤5mm,山田
I
\mathrm{I}
I型。
在数据集
4
4
4中,15个肠镜视频总时间约
94
94
94分钟,按
25
25
25帧/秒展开,共
138998
138998
138998帧图像,其中息肉阳性图像
4506
4506
4506帧,息肉阴性图像
134492
134492
134492帧,逐帧准确度为
96.29
%
96.29\%
96.29%(
133840
/
138998
133840/138998
133840/138998),逐帧敏感性为
90.24
%
90.24\%
90.24%(
4066
/
4506
4066/4506
4066/4506),特异性为
96.49
%
96.49\%
96.49%(
129774
/
134492
129774/134492
129774/134492),假阳性为
3.51
%
3.51\%
3.51%(
4718
/
134492
4718/134492
4718/134492)。
15
15
15个视频共包含
33
33
33个息肉,
33
33
33个息肉均被DCNN检出,逐息肉个数敏感性为
100
%
100\%
100%。这个逐息肉检测,就是所有帧中,该息肉只要有一张图像检出,就算OK。可能会出现如下情况:角度不正/中远距离检测不到,凑近息肉较大时检出。
在数据集
4
4
4中,敏感性较低,作者认为是因为视频是连续的,有画面不稳的情况,而且还有一些在距离较远时候息肉较小的情况。
假阳性样例
图像和视频的假阳性的表现如下:
在数据集
3
/
4
3/4
3/4的假阳性分析见下表: