原文标题:SwinOCSR: end-to-end optical chemical structure recognition using a Swin Transformer

代码:GitHub - suanfaxiaohuo/SwinOCSR

2022年7月1日发表,华东理工大学的李洪林团队。使用Swin transformer作为backbone,提取图像特征,并引入Transformer,将提取到的的化学信息转换为DeepSMILES

光学化学结构识别(OCSR)将化合物的化学结构信息转换为机器可读的格式。化学结构通常是图像格式,如JPEG、PNG和GIF。早期方法通常使用基于规则的方法来识别分子图,这些方法有一定缺点(如当分子图包含模糊或不常见的表示时,基于规则的系统将变得难以解释)一个基于规则的系统的各种识别组件是相互依赖的,这使得进一步的改进极其难以实现。

OCSR任务的两个主要挑战是化学结构中复杂的化学模式和长依赖的化学表示。

一、模型

1、Backbone

健壮的backbone对于OCSR任务很重要。

分子图像被分割为不重叠的patches,patch大小为4×4。线性embeddding层将该原始值特征投影到192维,并使用Swin-tranformer基本块提取特征信息(由W-MSA和SW-MSA模块组成)

为了构建一个序列作为编码器输入,强化空间维度的特征,得到一个表示化学结构信息的序列Sb

2、Transformer Encoder

由positional encoding和六个标准的transformer encoder层组成(多头注意力+ MLP+残差结构)

3、Transformer Decoder

由position decoder、六个标准的transformer decoder、MLP层和softmax层组成

二、数据集

850万份的PubChem结构(1-850万份的PubChem索引),并获得了6,987,630个独特的SMILES。基于这些SMILES,构建了一个包含500万个分子的数据集,它由四类分子数据组成,每种分子数据包含125万个分子。

Token: c, 6,), C,=, O, N, S, l, s, 5, B, r, n,[, H,+,], %, 1, 0, /, \, R, F, #, 4, (, 9, -, @, L, 3, 8, 2, ’, G, a, 7,Z,., P, t, Y, o, A, X, i, J, q, x, Q, m, b, d, E, w, I, V, z, e, M,,,D, K, p, v, h, y, u, g, k, T, W, U, f.

三、训练

每类别以18:1:1的比例随机分训练、验证和测试。

四个指标来定量评估:准确性,Tanimoto、BLEU和ROUGE

batch-size = 256,(224×224像素)。Adam优化器,初始学习率为5e−4,embedding维数为256。backbone网络和transformer网络分别对学习速率调度器使用余弦衰减和step衰减。损失函数采用标准交叉熵(CE)损失

1、backbone对比实验

三种backbone训练CE损失曲线如图9。模型(使用Swin transformer为骨干)的损失值小于ResNet50、EfcientNet-b3,说明模型具有更快的收敛速度。

这里对比Resnet50是Image2SMILES的backbone,EfficientNet是DECIMER1.0的backbone。已经发过,链接如下:

Image2SMILES:Chemistry Methods | Image2SMILES+: Transformer-Based Molecular Optical Recognition Engine_羊飘的博客-CSDN博客

DECIMER1.0:2021J Cheminform | DECIMER 1.0+: deep learning for chemical image recognition using transformers_羊飘的博客-CSDN博客

在所有情况下的准确性和BLEU评分方面仍然优于其他两种(ResNet-50、EfficientNet-B3)模型。

2、损失对比实验

使用CE损失作为损失函数时,token分布影响了模型的性能。因此采用MFL(multi-label focal loss)

在测试集上的性能。显然,使用MFL的损失函数在四个指标上都优于CE。

Token分布:

Multi-label focal loss:

αi为第i类的加权因子,第γ类为focusing parameter。

四、性能实验

1、分析SwinOCSR对不同分子类别的预测性能。分别根据准确性对测试集中的四个数据类别进行了评价:

第1类和第2类低于第3类和第4类。这表明SwinOCSR在有取代基的数据上表现稍好。其原因是取代基将在分子图中被明确地重现。

2、分析DeepSMILES字符串长度的预测性能,将测试集的DeepSMILES字符串划分为以下长度范围:[1,25]、[26,50]、[51,75]、[76,100]分析范围内的精度作为性能指标。

DeepSMILES越长,模型需要解码的时间就越多,而且发生错误的可能性就越大。

SwinOCSR在[1,75]时保持稳定,在[76,100]时略有下降。SwinOCSR适应DeepSMILES字符串长度的变化。即使在最低范围的[76,100],仍然94.76%的准确率,这表明它具有对具有长DeepSMILES串的大分子的识别能力。

3、真实数据集,构建了一个小的真实出现的test集,并在该测试集上进行了实验。小的真实世界测试包括100张图像及其相应的手动标记的SMILES。结果如表6所示。模型达到了25%的准确率,并且模型在真实世界的测试集上的性能并不令人满意。

在真实测试集上的性能不佳可能是由以下三个因素造成的:

(1)从文献中得到的图像比较模糊,而CDK生成的图像更清晰。

(2)从文献中得到的图像更复杂,而CDK生成的图像更规则。

(3)虽然典型的分子SMILES确保了分子独特的SMILES表征,但对于特定的分子却没有独特的化学结构表征。在通过不同的化学程序生成图像时,有很多种图像样式。一些压缩结构公式,如NH,默认以CDK生成的图像展开,而其他压缩结构公式,如NO、二氧化氮、CF3、甲基等,默认不展开,所以如果改变了相应的样式,图像将会被更改。

五、总结

端到端化学结构图像识别方法,即SwinOCSR,该方法可以直接识别原始的化学结构图,而无需制定人工特征。与现有的以cnn为骨干的方法相比,它获得了98.58%的高准确率、优越的性能和收敛速度快。它在识别长序列方面也表现良好,特别是在识别含有取代基的化学结构方面。实验结果表明,SwinOCSR可以单独提取化学结构的关键特征,并捕获化学结构图与DeepSMILES之间的对应关系。

在未来,将扩展数据集,包括尽可能多的低分辨率和复杂的化学结构风格。

J Cheminform2022 | SwinOCSR+:基于Swin Transformer的end-to-end光学化学结构识别相关推荐

  1. 【CV】SwinIR:使用 Swin Transformer 进行图像恢复

    论文名称:SwinIR: Image Restoration Using Swin Transformer 论文下载:https://arxiv.org/abs/2108.10257 论文年份:ICC ...

  2. nnFormer (Not-aNother transFORMER): 基于交叉Transformer结构的3D医疗影像分割网络

    关注公众号,发现CV技术之美 文章链接:https://arxiv.org/abs/2109.03201 开源代码和模型:https://github.com/282857341/nnForme ▊  ...

  3. Swin Transformer升级版来了!30亿参数,刷榜多项视觉任务,微软亚研原班人马打造...

    视学算法报道 编辑:杜伟.陈萍 微软亚洲研究院升级了 Swin Transformer,新版本具有 30 亿个参数,可以训练分辨率高达 1,536×1,536 的图像,并在四个具有代表性的基准上刷新纪 ...

  4. 《预训练周刊》第29期:Swin Transformer V2:扩大容量和分辨率、SimMIM:用于遮蔽图像建模的简单框架...

    No.29 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 本期周刊,我们选择了10篇预训练相关的论文,涉及图像处理.图像屏蔽编码.推荐系统.语言模型解释.多模态表征.多语言建模.推 ...

  5. 当Swin Transformer遇上DCN,效果惊人!

    来源:机器之心 Transformer 近来在各种视觉任务上表现出卓越的性能,感受野赋予 Transformer 比 CNN 更强的表征能力.然而,简单地扩大感受野会引起一些问题.一方面,使用密集注意 ...

  6. 【知乎热议】如何看待swin transformer成为ICCV2021的 best paper?

    编辑:深度学习技术前沿 转载请注明来源,谢谢! [导读]今年ICCV2021, 在所有被接收的论文中,来自中国的论文数量占比最高,达到了 43.2%,约为第二位美国(23.6%)的两倍.中国学者凭借S ...

  7. 超越Swin Transformer!谷歌提出了收敛更快、鲁棒性更强、性能更强的NesT

    [导读]谷歌&罗格斯大学的研究员对ViT领域的分层结构设计进行了反思与探索,提出了一种简单的结构NesT,方法凭借68M参数取得了超越Swin Transformer的性能. 文章链接:htt ...

  8. 【深度学习】Swin Transformer结构和应用分析

    [深度学习]Swin Transformer结构和应用分析 文章目录 1 引言 2 Swin Transformer结构 3 分析3.1 Hierarchical Feature Representa ...

  9. Swin Transformer对CNN的降维打击

    一.前言 一张图告诉你Transformer现在是多么的强!几乎包揽了ADE20K语义分割的前几名! 该文章详细解读Swin-transformer的相关内容以及高明之处.看完学不会,你在评论区打我! ...

最新文章

  1. nginx + openssl 搭建需要身份验证的文件下载服务器
  2. post基础-百度翻译接口测试
  3. JS中的间歇(周期)调用setInterval()与超时(延迟)调用setTimeout()相关总结
  4. Nodejs创建简单的Bot
  5. css @语法,@规则 @import @charset @font-face @fontdef @media @page
  6. 软件架构引言之项目管理的问题
  7. 谷歌地图自定义popup框
  8. linux ghost dd,在Linux上用dd命令实现ghost功能
  9. 50道CSS基础面试题(附答案)
  10. java简易计算器程序框图_简易计算器程序设计思路及流程图
  11. 一:springCloud服务发现者,服务消费者(方志朋《史上最简单的 SpringCloud 教程》专栏读后感)
  12. 我的世界服务器物品锁bug,【MOD教程】已知MOD服BUG物品解析
  13. 支持android11的画质修改器,pubgtool画质修改器
  14. PX4 ---- Mixer
  15. 淘宝动态评分绿了怎么办
  16. 罗晨:梦想照进现实,一个独立开发者的田园诗
  17. 燕山大学——软件用户界面设计(五)UI架构
  18. 【广告架构day2】新浪广告系统架构的演进之路:服务化改造
  19. 微信小程序云开发CMS内容管理平台csv上传乱码或失败的解决方法
  20. 学习python必逛的几个网站,没看过别说你想学好python

热门文章

  1. C语言程序设计摘抄笔记3
  2. 关于Windows系统白名单程序(自动提权autoElevate)
  3. FOC中有感--霍尔传感器角度判定的理解
  4. orcal查询12个月份数据,没有则用0补充
  5. 软件测试与质量保证-软件测试部分练习题
  6. 数据采集与存储案例——基于Python爬虫框架Scrapy的爬取网络数据与MySQL数据持久化
  7. Attempt to refer to a unregistered pool by its alias ‘data‘
  8. Linux内核学习--电源管理
  9. Java实现冒泡排序和选择排序
  10. 【Vue】自定义树形控件