DECIMER图像转换器:使用Efficient-Net V2 + Transformer的化学图像识别深度学习
摘要
DECIMER 2.2 [5](化学图像识别深度学习)项目[1]旨在利用最新的计算智能方法解决OCSR问题,提供一个自动化的开源软件解决方案。
DECIMER[1]的原始GPU实现在使用超过100万张图像的更大数据集时需要更长的训练时间。为了克服这些较长的训练时间,许多人实现了在多个GPU上工作的训练脚本。然而,我们试图更进一步,实现了我们的代码以使用Google的机器学习硬件TPU(张量处理单元) [2]。您可以在这里了解更多关于该硬件的信息。
方法和模型变化
- DECIMER现在使用EfficientNet-V2[3]进行图像特征提取,并使用transformer模型[4]预测SMILES。
- 训练和预测期间使用的SMILES
训练方法的变化
- 我们将数据集转换为TFRecord文件,这是一种TPU可以更快读取的二进制文件系统。我们也可以使用这些文件在GPU上进行训练。使用TFRecord帮助我们通过克服从硬盘读取多个文件的瓶颈来快速训练模型。
- 我们将数据移至Google云存储桶。这是由Google云环境提供的高效存储解决方案,我们可以从任何Google云虚拟机轻松且更快地访问这些文件。(为了获得最高速度,云存储和虚拟机应在同一区域)
- 我们采用TensorFlow数据管道从Google云存储桶将所有TFRecord文件加载到TPU。
- 我们修改了主要训练代码,使其可以使用Tensorflow 2.0中引入的TPU策略在TPU上工作。
如何使用DECIMER?
- Python包文档
- 模型库可在此处找到:
我们建议在Conda环境中使用DECIMER,这样可以更容易地安装依赖项。
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh
说明
Python包安装
使用conda环境进行干净安装
$ sudo apt update
$ sudo apt install unzip
$ conda create --name DECIMER python=3.10.0
$ conda activate DECIMER
$ conda install pip
$ python3 -m pip install -U pip
通过以下命令从GitHub安装最新代码:
$ pip install git+https://github.com/Kohulan/DECIMER-Image_Transformer.git
以开发模式安装:
$ git clone https://github.com/Kohulan/DECIMER-Image_Transformer.git decimer
$ cd decimer/
$ pip install -e.
- 其中
-e
表示"可编辑"模式。
从PyPi安装
$ pip install decimer
如何在自己的Python脚本中使用
from DECIMER import predict_SMILES
# 化学结构图到SMILES的转换
image_path = "图片文件路径"
SMILES = predict_SMILES(image_path)
print(SMILES)
如果您没有Nvidia GPU(在Mac OS上),请安装tensorflow == 2.10.1
许可证:
- 本项目采用MIT许可证 - 详见LICENSE文件
引用
- Rajan K, Brinkhaus HO, Agea MI, Zielesny A, Steinbeck C DECIMER.ai - An open platform for automated optical chemical structure identification, segmentation and recognition in scientific publications. Nat. Commun. 14, 5045 (2023). https://doi.org/10.1038/s41467-023-40782-0
- Rajan, K., Zielesny, A. & Steinbeck, C. DECIMER 1.0: deep learning for chemical image recognition using transformers. J Cheminform 13, 61 (2021). https://doi.org/10.1186/s13321-021-00538-8
参考文献
- Rajan, K., Zielesny, A. & Steinbeck, C. DECIMER: towards deep learning for chemical image recognition. J Cheminform 12, 65 (2020). https://doi.org/10.1186/s13321-020-00469-w
- Norrie T, Patil N, Yoon DH, Kurian G, Li S, Laudon J, Young C, Jouppi N, Patterson D (2021) The Design Process for Google's Training Chips: TPUv2 and TPUv3. IEEE Micro 41:56–63
- Tan M, Le QV (2021) EfficientNetV2: Smaller Models and Faster Training. arXiv [cs.CV]
- Vaswani A, Shazeer N, Parmar N, Uszkoreit J, Jones L, Gomez AN, Kaiser L, Polosukhin I (2017) Attention Is All You Need. arXiv [cs.CL]
- Rajan, K., Zielesny, A. & Steinbeck, C. DECIMER 1.0: deep learning for chemical image recognition using transformers. J Cheminform 13, 61 (2021). https://doi.org/10.1186/s13321-021-00538-8
致谢
- 我们感谢Charles Tapley Hoyt提供的宝贵建议和帮助,以改进DECIMER仓库。
- 研究得到了Google TPU研究云(TRC)提供的Cloud TPU支持
作者:Kohulan
项目网站:
- decimer.ai提供了一个Web应用实现,由Otto Brinkhaus实现