On the Automatic Generation of Medical Imaging Reports (ACL2018) Github源码复现
数据集获取地址:https://github.com/nlpaueb/bio_image_caption
代码地址:https://github.com/ZexinYan/Medical-Report-Generation
文章目录
三个科学问题以及解决方法
研究医学图像报告的自动生成存在以下三个拟解决的关键问题:
①一份完整的报告包含多种异构形式的信息,包括结果和标签;
②医学影像中的异常区域难以识别;
③报告通常较长,包含多个句子。
为解决以上问题,
①建立了一个多任务的学习框架,共同执行标签的预测和段落的生成;
②提出一种共同关注机制,对包含异常的区域进行定位,并为其生成叙述;
③开发一个层次化的LSTM模型来生成长段落。我们在两个公开的数据集上证明了所提出的方法的有效性。
一、贡献和动机
① 我们通过建立一个多任务框架,将标签的预测视为一个多标签分类任务,以及将长描述的生成作为一个处理文本生成任务。
② 如何对图像区域进行定位,并为其附加正确的描述是一个挑战。我们通过引入一种协同关注机制来解决这些问题,该机制同时关注图像和预测标签,并探索视觉和语义信息的协同效应。
③ 影像报告中的描述通常很长,包含多个句子。生成这样的长文本是非常不容易的。我们采用层次化LSTM来生成长文本。结合协同关注机制,分层LSTM首先生成高层次的主题,然后根据此主题产生细粒度的描述。
主要贡献如下:
【1】 提出一个多任务学习框架,能同时预测标签并生成文本描述;
【2】 引入一个协同注意力机制去定位图像中的子区域并生成相应的描述;
【3】 建立一个层级的LSTM去生成长段落;
【4】 做大量实验去证明提出方法的有效性。
二、Github源码复现记录
1.IU_xray_images和Peir数据集获取
download this zip:https://github.com/nlpaueb/bio_image_caption
Linux -----Terminal键入:
cd SiVL19
python get_iu_xray.py
get_peir_gross.py
将得到的数据集放入下载好的 https://github.com/ZexinYan/Medical-Report-Generation库的data文件夹下:
2.修改trainer.py中的路径参数
执行模块的顺序为:
视觉特征提取器->多标签分类器->协同注意力->句子LSTM->语言LSTM
对应的特征维度也都有相应输出
Terminal 键入 python trainer.py运行
写每batch后print对应的loss如下:
总结
跑了300 epoch的 测试集评价bleu@1,2,3,4 METEOR, ROUGE-L,cider的结果如下。。。
(没有复现出Github上面的结果,而且还异常的差。。。欢迎复现了的同学一起讨论提问)