多维局部二值模式和机器学习手写乐谱谱线删除方法与流程

文档序号:14156918阅读:945来源:国知局

本发明涉及手写乐谱识别领域,通过图像处理和机器学习等技术完成乐谱的谱线删除任务。具体讲,涉及多维局部二值模式和机器学习手写乐谱谱线删除方法。



背景技术:

乐谱是将音乐的声音特性,如音高、间隔、节拍等通过用可视化的记号表示出来的音乐记录手段。乐谱的存在使得音乐可以在世界范围内进行传播交流,同时也是音乐爱好者学习的“教科书”。在印刷乐谱被广泛使用之前,大量的音乐作品都是以手写乐谱的形式进行保存着。然而,手写乐谱很容易受到损坏,并且存在丢失的风险。随着计算机的普及,信息的交流速度有了飞跃的提升。这时,手写乐谱的传播就变得十分缓慢。因此,需要将手写乐谱转换为数字化信息,存储在数据库中。由于存在着海量的手写乐谱,人工完成这项工作变得异常困难。所以需要一种自动乐谱识别系统——将手写乐谱转换为计算机可“读懂”的数字信息,因此产生了光学乐谱识别(opticalmusicrecognition,omr)系统。

由于谱线的存在给omr系统后面的音符识别模块造成了很大的障碍,几乎所有研究omr系统的人员都提出了一种谱线删除算法。标准形式的乐谱谱线表现为一组(一般为五条)水平的细线,但对于手写乐谱来说,谱线变得复杂多变,例如弯曲变形、线宽不固定以及间断缺失等。这样谱线删除的任务变得并不容易。因此,急需一种鲁棒性很强的谱线删除算法,能够适用于多种类型的手写乐谱。

局部二值模式(localbinarypattern,lbp)是一种描述局部纹理特征的算子。通过比较目标像素点和其周围像素点的像素值大小,将比较结果转换为二进制进行表示,作为目标像素点的纹理特征值。在原始lbp的基础上,可以进行改进。lbp窗口的尺寸可以不同,并且窗口的形状也可以有多种变化,例如圆形、方形、椭圆以及直线等。可以采用不同的lbp窗口来提取目标点的lbp值,将这些lbp值组成一个多维的特征向量,用来表示目标点的特征。

机器学习是人工智能领域的一个分支。目标是找到一种适合数据的模型,通过训练集来训练模型参数,将模型参数进行保存,在未知的数据上进行预测。主要的任务有分类和回归。分类的算法又包含了很多种。xgboost是一种2014年出现的分类算法,并在2016年由tianqichen等人正式发表。xgboost算法是boosting算法的一种,在近几年的数据竞赛中大放异彩。通过对xgboost算法中参数进行调节,可以很好的适应自己的数据,可调参数包括损失函数、学习率、惩罚项系数等。



技术实现要素:

为克服现有技术的不足,本发明旨在实现为音符识别模块去除谱线这一强噪声,从而提高音符识别的准确率。为此,本发明采用的技术方案是,多维局部二值模式和机器学习手写乐谱谱线删除方法,步骤如下:

1)特征提取:将谱线删除看成是一种分类任务,即将前景色像素点进行二分类:谱线和音符,一个像素点属于谱线还是音符可以由其邻域的像素点来判断,采用局部二值模式lbp算子进行特征提取,lbp算子的滑窗大小采用不同尺寸,并且每一种尺寸的滑窗包含多种形状的lbp算子,将这些lbp值组成一个多维特征向量作为输入;

2)构建xgboost模型:将提取的多维lbp特征向量作为输入,利用数据集中已知删除后图像作为真值标签,训练xgboost模型并进行保存;

3)测试调优:利用已保存的模型,在测试集上进行测试,通过结果对比分析,对xgboost参数进行调节,优化之前的模型。

采用3*3的滑窗对中心像素点进行特征提取,中心像素点同周围的像素点依次进行像素值的大小比较,若中心点像素值小于与其进行比较的点,二进制编码取1,否则取0。然后将这个二进制转换为十进制就得到中心点的lbp值,计算公式:

其中(xc,yc)代表中心点,gc代表中心点的像素值,gi代表周围的8个点的像素值。

采用改进的lbp算子:窗口的大小采用7*7、9*9、11*11和13*13共4种尺寸窗口,并且对于每一种窗口又包含了16种形状的lbp滑窗,设计lbp滑窗为直线型,从竖直向上开始,每旋转22.5度取一条直线作为lbp滑窗,这样旋转一周共得到16个方向的lbp滑窗,最终一共得到了4*16个lbp值,将这些lbp值组合成1个高维的特征向量,作为分类器的输入。

首先计算7*7窗口第一个lbp特征,即竖直向上的lbp特征,假设中心点位(x,y),那么竖直向上的像素点依次为(x-1,y)、(x-2,y)、(x-3,y),中心点的像素值依次和上面的3个像素点值进行比较,然后根据上面所述的标准lbp算子得到一个3位的二进制数,然后根据lbp值得计算公式,将这个二进制数转换为十进制数,得到了中心点竖直向上的lbp特征;接下来继续计算后面其他方向的lbp特征,也就是每间隔22.5度计算一个lbp特征,这样旋转一周将会得到16个方向的lbp特征值;9*9、11*11、13*13窗口的计算方法7*7一样,这样每个窗口都会得到16个lbp特征;进而将4个窗口的lbp特征组合在一起,最终得到64维的特征向量。

构建xgboost模型:模型的目标选择二分类,控制模型复杂度的l2正则项参数lambda=4,控制是否后剪枝的参数gamma=0.1,构建决策树的深度参数maxdepth=6,控制随机采样训练样本的百分比subsample=0.7,生成决策树时的列采样参数colsamplebytree=0.7,同时xgboost支持多线程运行,根据计算机配置可选择最大线程数。

本发明的特点及有益效果是:

本发明通过改进的lbp算子和xgboost算法进行手写乐谱的谱线删除,与一些经典的方法相比较,优势主要体现在:

新颖性:首次将多尺度多维lbp特征和xgboost算法结合进行手写乐谱谱线删除工作,根据手写乐谱的特点进行lbp的窗口选择。

鲁棒性:使用本发明的算法可以适用各种复杂多变的手写乐谱,能够克服一些传统算法对某种非理想乐谱表现很差的缺点,具有很强的稳定性。

附图说明:

图1一幅手写乐谱图像。

图2去除谱线的真值图像。

图3原始lbp算子图。

图4改进的多维多尺度lbp算子图。

图5基于改进的lbp和xgboost算法的流程图。

图6采用本发明进行谱线删除的结果图。

具体实施方式

本发明的主要目的是将图像处理技术和机器学习技术应用在手写乐谱的谱线删除任务中,作为omr系统的前置处理模块,为后面的音符识别模块去除了谱线这一强噪声,从而提高了音符识别的准确率。

本发明采用监督学习的方法,首先通过训练集训练好分类模型,然后将模型进行保存,应用在未知的乐谱上。分类器采用xgboost算法,特征采用多尺度多维lbp作为目标像素点的特征向量。在手写乐谱图像测试中,可以很好的完成谱线删除工作。

为了实现上述目的,本发明采用如下的技术方案:

1)特征提取。本发明将谱线删除看成是一种分类任务,即将前景色像素点进行二分类:谱线和音符。一个像素点属于谱线还是音符可以由其邻域的像素点来判断,lbp正是描述局部纹理特征的算子。因此,采用lbp算子进行特征提取,lbp算子的滑窗大小采用不同尺寸,并且每一种尺寸的滑窗包含多种形状的lbp算子,将这些lbp值组成一个多维特征向量作为输入。

2)构建xgboost模型。将提取的多维lbp特征向量作为输入,利用数据集中已知删除后图像作为真值标签,训练xgboost模型并进行保存。

3)测试调优。利用已保存的模型,在测试集上进行测试。通过结果对比分析,对xgboost参数进行调节,优化之前的模型。

下面结合附图与实例对本发明作进一步说明。

1)特征提取。

原始的lbp算子如图3所示。采用3*3的滑窗对中心像素点进行特征提取,中心像素点同周围的像素点依次进行像素值的大小比较,若中心点像素值小于与其进行比较的点,二进制编码取1,否则取0。然后将这个二进制转换为十进制就得到中心点的lbp值。计算公式:

其中(xc,yc)代表中心点,gc代表中心点的像素值,gi代表周围的8个点的像素值。

本发明采用改进的lbp算子,窗口的大小采用了7*7、9*9、11*11和13*13共4种尺寸窗口,并且对于每一种窗口又包含了16种形状的lbp滑窗。对于乐谱来说,音符和谱线具有很强的方向性,可以利用这一先验知识,设计lbp滑窗为直线型,从竖直向上开始,每旋转22.5度取一条直线作为lbp滑窗,这样旋转一周共得到16个方向的lbp滑窗。最终一共得到了4*16个lbp值,将这些lbp值组合成1个高维的特征向量,作为分类器的输入。

下面将进行具体说明:

首先计算7*7窗口第一个lbp特征,即竖直向上的lbp特征,假设中心点位(x,y),那么竖直向上的像素点依次为(x-1,y)、(x-2,y)、(x-3,y),中心点的像素值依次和上面的3个像素点值进行比较,然后根据上面所述的标准lbp算子得到一个3位的二进制数,然后根据lbp值得计算公式,将这个二进制数转换为十进制数,得到了中心点竖直向上的lbp特征。接下来继续计算后面其他方向的lbp特征,也就是每间隔22.5度计算一个lbp特征,这样旋转一周将会得到16个方向的lbp特征值。9*9、11*11、13*13窗口的计算方法7*7一样,这样每个窗口都会得到16个lbp特征。进而将4个窗口的lbp特征组合在一起,最终得到64维的特征向量。

2)构建xgboost模型。

本发明的任务是手写乐谱的谱线删除,乐谱的前景色点应分为谱线和音符两类,所以模型的目标选择二分类。控制模型复杂度的l2正则项参数lambda=4,控制是否后剪枝的参数gamma=0.1,构建决策树的深度参数maxdepth=6,控制随机采样训练样本的百分比subsample=0.7,生成决策树时的列采样参数colsamplebytree=0.7,同时xgboost支持多线程运行,根据计算机配置可选择最大线程数。

3)测试调优。

图6是采用本发明算法进行谱线删除的结果图,可见算法的有效性。并且在大树据集上进行了测试,包括了多种类型的手写乐谱,f-measure评价都在96%以上,说明本发明算法有很强的鲁棒性。同时,通过测试误差,可以进一步调节xgboost的模型参数,进行模型优化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1