Page 30 - 网络电信2021年11月刊上
P. 30

的识别率为99.06%,训练时间为135.368s;反向传播算法的识
                                                                  图 5 少样本仿真
            别率为99.53%,训练时间为464.217s。无论是弹性反向传播算
            法还是反向传播算法,都获得了很高的字符识别正确率。弹性
            反向传播算法2次将字符“1”识别成了“T”,而反向传播算法
            只错了一个字符,将字符“7”识别成了“4”。在获得高识别
            率的同时,2种算法的训练时间也增加不少,尤其是反向传播算
            法。虽然训练时间增加了,但是ANN算法可以预先训练,识别时
            只读取预先训练好的训练文件即可,因此识别率更高的反向传
            播算法更适合。
                3.SVM算法
                SVM算法是分类与回归分析中分析数据的监督式学习模型与
            相关的学习算法。相较于ANN算法,SVM算法较为简单、鲁棒性
                                                         [9]
            好,在找到全局最优解的。同时,能够规避过拟合的情况 。
                SVM算法也分为训练和识别2个部分,因此仿真方案与ANN
                                                                  表 1 各算法仿真结果
            算法类似,采用上述相同的训练集,用SVM_train()函数调整
            参数进行训练,然后读入训练文件和测试字符进行识别,记录
                                                                   识别算法类型    识别率   训练时间/s    识别时间/s
            训练时间、识别准确率和识别时间。不同的是,ANN算法识别函
            数返回的是字符概率,而SVM算法直接返回字符标签。OpenCV                        模板匹配算法    78.77%        无         2.14
            中提供了5中SVM算法类型:c类支持向量分类机(n类分组,
                                                                     ANN 算法      99.53%     464.217       0.488
            n≥2)、v类支持向量分类机、单分类器、e类支持向量回归机
            和v类支持向量回归机。字符识别属于多分类,这里选择c类支                             SVM 算法      98.58%      2.450        1.650
            持向量分类机。SVM算法内核有Linear、Poly、Rbf和Sigmoid。
            Linear线性内核用于线性可分的情形,参数少,速度快,适用
            于一般数据[10],因此选择Linear内核。其它参数中,最大迭                     少时,可选用SVM算法。
            代次数对识别率影响最大。对SVM_train()函数Max_count                      2.识别算法选择
            (最大迭代次数)进行数值仿真,最大迭代次数从10递增到                              3种识别算法仿真优化结果如表1所示。其中,ANN算法的
            100000,迭代误差设置为默认值,并把结果绘制成曲线图,如                       识别率最高,模板匹配算法最低;SVM算法的训练时间明显少于
            图4所示。可以看出,随着最大迭代次数的增加,SVM算法识别                        ANN算法;ANN算法的识别速度最快。一般地,光缆生产速度可
            率和训练时间同步增加,在最大迭代次数到达500时取得识别                         达2m/s,单个喷码字符宽度约为5mm,所以识别单个喷码字符时
            率最大值,再继续增加最大迭代次数只会徒增训练时间,对于                          间应小于0.0025s,识别212个字符时间应小于0.53s,ANN算法
            识别率没有影响。最大迭代次数设置为500时,SVM算法可达到                       能够满足要求。
            98.58%的字符识别正确率,且训练时间只有2.45s。SVM算法与
            ANN算法的识别准确率差距微小,同时前者训练时间却很短,                             四、结束语
            在一些对训练时间比较敏感的识别领域中,可以优先选择SVM算                            本文提出了一种在线识别喷码字符识别系统,并利用模板
            法。                                                   匹配、ANN和SVM等算法进行了识别仿真研究,仿真结果表明:
                                                                 在大数量样本训练后,ANN算法识别率优于其它2种算法,且识
                三、少样本测试和算法选择                                     别时间最快;SVM算法的训练时间较短,在训练样本较少时识别
                1.少样本测试                                          准确率也高于人工神经网络;模板匹配算法实现最为简单,而
                样本的数量与需要训练的ANN算法和SVM算法密切相关。在                     且不需要进行样本训练,但是识别准确率低于ANN算法和SVM算
            实际生产中,样本收集存在不足的情况,因此字符识别在训练                          法,且识别速度较慢。
            样本比较少情况下的性能需要进行研究。ANN算法的隐藏层层
            数取100,最大迭代次数取值1200;SVM算法的最大迭代次数取                     参考文献
            值500;测试集与上文保持一致,将训练样本从1588逐渐减少到                      [1] 陈炳炎.光纤光缆的设计和制造[M].第三版.杭州:浙江大
            216,每种字符数量相等,分别用ANN算法和SVM算法进行训练、                         学出版社,2016.
            测试,仿真结果如图5所示。                                        [2] 马玲,罗晓曙,蒋品群.基于模板匹配和支持向量机的点阵
                可以看出,在多训练样本数据时(794~1588),ANN算法                       字符识别研究[J].计算机工程与应用,2020,56(4):
            的识别率优于SVM算法,而在少训练样本数据时(216~397),                         134-139.
            SVM算法的识别率下跌比ANN算法缓慢,且训练样本数据越                         [3] HAYKINS.神经网络与机器学习[M].第三版.申富饶,译.北
            少,差距越大,在只有216个训练样本时,ANN算法识别率为                            京:机械工业出版社,2017.
            88.21%,而SVM算法识别率为91.98%。因此,当训练样本数量较

                                                       网络电信 二零二一年十一月                                           39
   25   26   27   28   29   30   31   32   33   34   35