OHW系列之一《Stroke Sequence-Dependent DCNN for Online Handwritten Chinese Character Recognition 》

一、论文摘要

本文提出一种名为Stroke Sequence-dependent Deep Convolutional Neural Network(SSDCNN)的模型,模型将Stroke sequence information 和八方向特征结合,用于在线手写中文字符识别。

首先,SSDCNN将Stroke Sequence依据其书写顺序转换为堆栈的特征图作为模型输入,接着经过深度卷积网络提取特征与八方向特征结合作为手写轨迹的最终特征表示。

模型训练策略:“we design a two stages algorithm to train SSDCNN. Firstly, we use
the data to pre-train the whole framework. In order to merge the two representation efficiently, we further train the fullly-connected multiple layer perceptron with a softmax
layer by fixing the parameter of the DCNN.”

二、论文的国内外现状

本文主要是解决在线手写的单字符识别,论文国内外现状从传统方法和现代方法进行了分析。

传统方法流程:

在这里插入图片描述
1. 数据预处理

  1. Data Normalization: 将Strokes正则化到一个固定的大小中以便特征提取,但如何恢复手写字符的外型的形变是关键!常用的方法如:Line Density-based Normalization, Curve-fitting-based normalization and Pseudo 2D Normalization. (“The NLN based on line density equalization has been proven very efficient [16]. In
    order to use line density-based method to OLHCC, Phan[17] convert an OLHCC to a 2D image. For Curve-fitting-based normalization methods, three algorithm are often used such as bi-moment normalization(BMN) [18], centroid-boundary alignment (CBA), and modified CBA (MCBA) [19]. They can be used to OLHCC after
    slightly modified [2, 17]. Pseudo two-dimensional normalization is popularly used for off-line HCCR[15]”).
  2. Interpolation: Linear Interpolation, Bezier Interpolation, B-spline Interpolation.

2. 特征提取

  1. Directional features
  2. Gradient features

三、论文算法模型

模型概述:

  1. The DCNN is used to learn the high-quality representation of OLHCCs, which is stroke sequence-dependent and can learn the stroke sequence information and structural shape of OLHCCs from large scale instances.
  2. The statistical feature is integrated into SSDCNN via a deep fully-connected neural network. Specifically, the eight-directional features are used, which has been proven efficient in OLHCCR. Hence, SSDCNN can preserve the strength of statistical features.

模型细节:

在这里插入图片描述
上分支:模型依据单个字的笔画,将每一笔笔画作为输入,对于不同的字笔画数量一般不同则pad到该batch中最多的笔画的数量。将所有的笔画作为输入送到深度神经网络中提取特征图。
下分支:下面的分支采用传统的方法进行八方向特征提取,八方向特征通过数学统计的方法分析该点及周围点的来表示笔画的形状及方向,缺点在于它不能体现除了该笔画以外的信息,“, because it only extracts the direction feature between the ending point of one stroke and the starting point in its following stroke regardless of the positional relationship between other points in different strokes.”

对于两个分支分别输入到不同的全链接层,原因在于两种特征表示图分别采用不同的方法来提取,卷积网络中经过relu函数激活后,特征中数值从0-inf, 而八方向特征中数值范围仍然为[0,1]。

四、论文实验结果

模型的实验结果感觉意义不大,主要是做的单文字识别。

五、论文创新点

模型主要提供了一种思路如何结合传统的特征提取方法,如:八方向特征、signature of path, 与现有的深度卷积神经网络结合,但是该文的局限在于仅对单字符识别而且将字符拆解为一个个固定size的笔画作为输入,数据冗余较大。

六、论文链接

论文链接:https://arxiv.org/pdf/1610.04057.pdf

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
凯撒密码是一种简单的替换密码,它通过将明文中的每个字母按照一定的偏移量进行替换来进行加密。C++枚举法可以用来破解凯撒密码。 在C++中,可以使用循环和枚举法来尝试所有可能的偏移量,从而破解凯撒密码。具体步骤如下: 1. 遍历所有可能的偏移量,通常是0到25,因为英文字母有26个。 2. 对于每个偏移量,将密文中的每个字母按照该偏移量进行解密。 3. 判断解密后的结果是否是合法的明文,可以通过判断是否包含常见的英文单词或者通过语言模型进行评估。 4. 如果解密后的结果符合预期,即可能是正确的明文,输出解密结果。 对于你提供的密文 "OHW XV DWWDFH",我们可以使用C++枚举法来尝试不同的偏移量进行解密。以下是一个简单的示例代码: ```cpp #include <iostream> #include <string> std::string decryptCaesarCipher(const std::string& ciphertext, int offset) { std::string plaintext = ""; for (char c : ciphertext) { if (isalpha(c)) { char decryptedChar = (c - 'A' - offset + 26) % 26 + 'A'; plaintext += decryptedChar; } else { plaintext += c; } } return plaintext; } int main() { std::string ciphertext = "OHW XV DWWDFH"; for (int offset = 0; offset < 26; offset++) { std::string plaintext = decryptCaesarCipher(ciphertext, offset); std::cout << "Offset " << offset << ": " << plaintext << std::endl; } return 0; } ``` 运行以上代码,会输出所有可能的解密结果,其中包含了正确的明文。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值