导语
大家在平时的工作中,想必经常需要阅读大量化学类书籍和文献,其中包含的很多化合物结构信息,通常会以图片的形式表示。当我们看到感兴趣的化合物时,往往希望能将这些化学结构提取出来,便于我们使用和编辑。
当然,这时我们可以按照图片中的化学结构,在化学编辑器中绘制出来。但是这种人工提取的方式不仅费时费力,而且还容易出错,化学结构数量多的话就更不用说了。实际上在信息化快速发展的今天,有更好的工具供我们选择。很多人应该听说过OCR(光学字符识别技术),这些工具就是利用OCR技术提取化学结构。把各种类型的图片和文档直接交给它们处理,可以使我们的工作更加高效。
本文小编就来简单介绍一下OCR技术是如何应用于化学结构提取的。
01OCR技术
OCR(OpticalCharacterRecognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。
02化学结构的表示方法
平常我们所熟知的化学结构的表示方法主要有三种:结构式、结构简式及键线式。
图1几种物质的结构简式与键线式
除此之外,化合物的命名也很有讲究。
IUPAC有机物命名法是一种有系统命名有机化合物的方法,其前身是年日内瓦国际化学会的“系统命名法”,最后一次修订在年,由国际纯粹与应用化学联合会(IUPAC)规定。最理想的情况是,每一种有清楚的结构式的有机化合物都可以用一个确定的名称来描述它。
中文的系统命名法(CCS命名法)是中国化学会在英文IUPAC命名法的基础上,再结合汉字的特点制定的。年制定,年根据年英文版进行了修定。
图2IUPAC与CCS命名法
从平时的使用中,我们不难发现,描绘上述类型的化学结构式有一定的局限性,那么能不能将结构转化为文本来使用呢?电脑又是如何读取化学结构的呢?
3.1SMILES
SMILES,全称SimplifiedMolecularInputLineEntrySystem,是一种用于输入和表示分子反应的线性符号,是一种ASCII编码。年,由DavidWeininger采用,DaylightChemicalInformationSystems开发并共同创建。由于其简单性,它是使用最广泛的线性符号。
图3几种物质的SMILES表示
根据不同的规则,SMILES有多种分类。仅仅描述原子和键,没有手性或者同位素信息的SMILES称为“一般SMILES”,对于给定的结构,通常有很多“一般SMILES”表示方法。规范化算法用于在所有有效可能性中生成一个特殊的通用SMILES,这个特殊的SMILES称为“唯一SMILES”;包含同位素和不对称中心的描述的SMILES称为“异构SMILES”;唯一的异构体SMILES称为“绝对SMILES”。
3.2InChI
由于正规的SMILES生成算法是商业性的,年,SteveHeller和SteveStein提出了InChI,以开发非盈利性可自由使用的化合物的规范表示法。InChI全称InternationalChemicalIdentifier,第一个版本在年与IUPAC合作宣布。自年以来,它一直由一个名为InChITrust的组织进行管理和开发。
图4InChI表示法
3.3Connectiontable
Connectiontable是一种典型的化学格式文件,列出了分子、原子,以及键之间的信息。
图5Connectiontable表示法
3.4其他常见表示方法
化学表文件格式是他广泛使用的行业标准之一,如结构数据格式(SDF)文件,用于表示多个化学结构记录和相关数据字段。该格式最初由MolecularDesignLimited(MDL)开发和出版。MOL是MDL的另一种文件格式。
04OCR技术应用于化学结构提取的过程
OCR技术应用于化学结构提取,有的文献中直接称为OCSR(OpticalChemicalStructureRecognition),主要包含以下几个过程:
4.1检测和提取:
系统检测到文献中打印的化学结构,并将该结构从包含其他图形元素和文本的整个页面中分割出来。
4.2预处理:
对包含文字的图像进行处理以便后续进行特征提取、学习。这个过程的主要目的是减少图像中的无用信息,以便方便后面的处理。在这个步骤通常有:
灰度化(grayprocessing):将一张彩色图片变为黑白图片;
二值化:二值化的黑白图片不包含灰色,只有纯白和纯黑两种颜色;
降噪:图像中噪声的来源有许多种,这些噪声来源于图像采集、传输、压缩等各个方面,会极大干扰到我们程序对于图片的切割和识别,因此我们需要降噪处理;
倾斜矫正:有时需要通过程序将图像做旋转处理,来找一个认为最可能水平的位置,这样才能更好的识别。
4.3特征提取和降维:
特征是用来识别图像的关键信息,每个不同的化学结构都能通过特征来和其他结构进行区分。系统应该从输入的图像中提取所有相关特征,然后使用这些提取的信息来建立有意义的化学结构。
在确定了使用何种特征后,视情况而定,还有可能要进行特征降维。(一张图像的像素越高,相对应的特征向量维度会越大,降维可以提高处理效率,就是说牺牲一定程度的信息精确度来提高处理速度。)
4.4分类器设计、训练和实际识别:
分类器是用来进行识别的,就是对于上一步,对一个图像提取出特征,丢给分类器,分类器就对其进行分类,告诉你这个特征该识别成哪个结构。
要做到这一点,大多数产品的OCR系统遵循一种通用的方法,即图像被矢量化并分割成单独的元素。原子符号被直接识别,而单键、双键、三键和虚键等信息难以被OCR直接识别,为此会使用诸如霍夫变换(HoughTransform)的线检测算法。然后,彻底分析检测到的键信息,以识别由于线条的长度、宽度、间距、粗细和排列而产生的不同键类型。有了这些信息,所有的键都被识别了。然后,使用单独的算法来检测原子字符在键内的定位。最后,利用所有检测到的信息,算法重建完整的分子结构图。
也有部分产品在进行实际识别前,还要对分类器进行训练,这是一个机器学习中监督学习的案例。
4.5后处理/识别后矫正:
后处理是用来对分类结果进行优化的,即进行校正,得到语义有效的分子。
4.6输出:
输出将以之前介绍过的SMILES、connectiontable或SDF等格式生成。
参考资料
1.