基于行游程邻接表的乐谱快速连通域分析方法

文档序号:6331615阅读:222来源:国知局

专利名称::基于行游程邻接表的乐谱快速连通域分析方法
技术领域
:本发明涉及多媒体信号处理
技术领域
,尤其是在数字音乐图书馆等音乐乐谱数字化应用开发的领域。
背景技术
:乐谱的发明是人类音乐史上的里程碑,它的出现使人们可以在一个相对标准的平台上进行音乐的交流和传承。但是,古往今来的优秀音乐作品大都以纸质乐谱的形式保留下来,直至今天,纸质乐谱仍是表达和描述音乐作品的主要载体。纸质乐谱的存在使得音乐的人们交流和保存音乐,但是纸质乐谱的保存需要占用一定的存储空间,不利于保存与交流,特别是纸质状乐谱无法实现高速查询与检索,而只能能以纯手工的方式进行。纸质乐谱的这些缺点,使得乐谱的交流与保存极为不便。光学乐谱识别技术(OMR)是近年来发展起来的实现纸质乐谱数字化的一种主流技术,不同于传统的图像存储格式(如JPG,TIF,GIF等)采用光学扫描压缩存贮乐谱图像,而是记录乐谱所表达的音乐内容,因此所需要的存储空间更小,并且可以很方便的对其进行编辑、加工、打印、传播或者实时演奏。OMR技术为纸质乐谱的数字化提供了一个智能、高效的新途径,可以广泛的应用在计算机辅助音乐教学、数字音乐图书馆建设、互联网音乐搜索、计算机音乐合成等领域。一个完整的OMR处理系统大致包括以下几个组成模块1)纸质乐谱图像输入及预处理,2)乐谱谱线检测定位及删除,3)乐谱图像分割,4)乐谱图像识别,5)乐谱重建及音乐语义解释。乐谱的分割是识别的前提,关系到整个OMR系统的性能。目前广泛采用的乐谱分割方式主要有投影法,区域生长法,边缘提取及连通域分析等方法。投影法方法简单,但往往只能实现对直线区域和非直线区域的有效分割,或者是进行直线的提取,无法实现对各具体连通域进行分割;边缘提取法,区域生长法以及传统连通域方法虽能提取图像中的各个连通区域,但运行速度慢且复杂,往往需要对图像进行多次扫描才能完成。国外有关OMR的研究起始于60年代后期,当时由于技术条件和硬件设备的限制,所研究的内容也是非常有限的。到了70年代,随着光学扫描仪的出现和机器性能的提升,OMR才真正已经引起众多学者的广泛注意。进入80年代后,随着计算机图形图像技术的不断发展与成熟,研究内容越来越深入,部分研究成果也正逐步进入实用阶段。在我国,一方面由于计算机音乐发展起步晚,计算机音乐只是少数音乐工作者的“专利”,社会缺乏计算机识别乐谱的需要;另一方面,由于国内高校的学科设置综合化程度、学科交叉的跨度与国外有着相当大的差距,长期以来,从事计算机音乐研究的专业人才严重缺乏。因此,OMR技术在国内的系统研究和实践工作几乎为空白。目前,西北工业大学与西安音乐学院合作正在开展印刷体光学乐谱识别技术的研究,但目前国内外有关乐谱分割技术的研究还很少,很大一部分仍然是基于传统的图像乐谱分割技术。
发明内容本发明的目的是为了提供一种快速有效的乐谱连通域快速分析方法,进一步提高光学乐谱识别系统中乐谱连通域分割的速度和正确率,以便获得更高的乐谱识别率。本发明为实现上述目的,采用如下技术方案本发明基于行游程邻接表的乐谱快速连通域分析方法,包括如下步骤(1)对图像F(x,y)由上至下进行行扫描,记录下各行的黑色游程信息,得到整幅图像的水平黑色游程信息表Yctable:{sPj,Ij,Ni,Flagi,i|j=1,2,-Ni,i=1,2,…xsize},其中xsize为乐谱图像F(x,y)的总行数,i表示行号,Ni为第i行的水平黑色游程总数,Flagi表示该第i行有无黑色游程,值为1则表示存在水平黑色游程,反之则无,SPj表示第i行的第j个水平黑色游程的起点,Ij为第i行的第j个水平黑色游程的长度;(2)建立重要信息统计矩阵向量包括尺寸为IXM的上一行各黑色游程段所属的连通域编号向量syhbh,其中M为上一行黑色游程的段数,以及尺寸为IXN的下一行各黑色游程段所属的连通域编号向量xyhbh,其中N为上一行黑色游程的段数,连通域编号的最小值设为1;nX2Xbht的连通域像素向量ltyxsb,其中η为各个连通域中所包含的像素的个数,bht为连通域的个数,以便保存各连通域中所包含的全部像素的横坐标和纵坐标;废除的连通域编号向量fcdltybh,用来保存哪些连通域编号在算法执行中被执行了合并而消失;并设置图像水平黑色游程信息表Yctable的行号i=1;(3)判断Yctable中的Flagi是否为1,如果为1,是则转移到第4步。否则转移到第8步;(4)如果i=1或者i兴1但Flagp1=0,则将该行作为游程邻接表的上一行,且为该行的每一个黑色游程建立一个新的独立的连通域,并对各段黑色游程依次赋于不同的连通域编号syhbh(k):max+l:max+d,k=1,2,…d,其中max为原有连通域编号的最大值,d为该行水平黑色游程的段数,各游程段的像素值都存储到与其对应的Ityxsb(,,bh)中去,转至第8步,否则转至第5步;(5)计算第i行(即下一行)各游程段与第i_l行各游程段的邻接情况,这里采用八邻域的邻接关系判断,即只要第i_l行某游程段的某一个像素值处在第k行某游程段中的任何一个像素点的八邻域位置,就认为这两个游程段是邻接关系,并将邻接信息保存在游程邻接矩阵Ijmatrix中,并设邻接游程矩阵的初始行r=1;(6)统计游程邻接表第r行(即下一行的第r个游程段所对应的行)中1的个数t,若t=0,则为该游程段建立一个新的连通域,连通编号xyhbh(r)=max+1,max为已经存在的连通域的最大编号,并把该游程所包含的所有像素信息保存在与此编号对应的连通域像素表ltyxsb(:,,bh)中;若t彡0,则将下一行该游程段(r段)的所有像素并到与之相邻的上一行的第一个游程段(y段)所在的连通域中,并将该游程段的连通域编号置为与之相邻的上一行的第一个游程段的连通域编号,即xyhbh(r)=syhbh(y);当上一行中的其他相邻游程段所属的连通域与第一个游程段属的连通域编号不同时,其所在连通域像素也都并到第一个游程段所在的连通域中,其原来的编号归并到废除的连通域编号里面;(7)r=r+l,若r彡N(其中N为该行的黑色游程段数)则返回到第6步,否则更新游程信息表Yctable中第i-Ι行各游程段所对应的连通域编号信息向量syhbh=xyhbh;(8)i=i+1,转至第3步,直至i>xsize为止;(9)去掉废除后连通域编号的其它连通域编号所对应的Ityxsb就是分割后真正的各连通域所对应的像素信息,并保存在连通域表lty(:,,h),h=l,2,"·Τ中,其中T为真正的连通域个数,计算出各连通域的包围框BK:[hli,h2i;Ili,12,],i=1,2,…T,其中Mi为第i个连通域的最小行减1,其中h2i为第i个连通域的最大行加1,其中Ili为第i个连通域的最小列减1,其中埤为第i个连通域的最大列加1;最后用方框标识出分割区域。本发明的优点和效果在于1.基于上下两行的各个行游程段,建立了新的行游程邻接表,得到了各游程段的邻接关系。2.改进了传统的基于像素点的连通域分析方法,对乐谱图像进行一次扫描即可提取出所有的连通域,克服了传统方法需要多次对乐谱图像进行扫面才能提取连通域,运行速度慢且较为复杂的缺点。图1扫描仪输入后经过前期处理的二值乐谱图像。图2是乐谱图像的水平投影图。图3删除谱线后得到的乐谱图像。图4一个典型的行游程邻接矩阵的示例。图5采用本文方法所得到的乐谱连通域。具体实施例方式针对传统的基于像素的连通域分析法需要对图像多次进行扫描才能实现提取、速度较慢、提取效率不高等缺点,本文提出了基于行游程邻接表的快速连通域分析方法,行游程邻接表是建立在相邻两行游程的基础之上的,假设已经计算出了相邻两行的所有水平黑色游程,记上一行的黑色游程表为F:{(sPi,Ii)|i=1,2,"·Μ},下一行的水平黑色游程表为为L=Kxppxli)|i=1,2,...Ν},其中Spi表示上一行第i个黑色游程的起点,Ii为上一行第i个黑色游程的长度,XPi表示上一行第i个黑色游程的起点,Xli为上一行第i个黑色游程的长度,M为上一行黑色游程的个数,N为下一行黑色游程的个数,则可以得到相邻行的行游程邻接表Ycljtable:{ljmatrix(i,j),s|i=1,2,…N,j=1,2,…Μ},其中邻接矩阵Ijmatrix中保存了图像中相邻两行各黑色游程段之间的邻接关系,一个典型的行游程邻接矩阵的示意图见图4,表中为1的单元格即表示相邻行中某两个游程段是相邻的,0的单元格则表示不相邻;s代表上一行的行号。在正式分割前还必须对图像进行相关前期处理,包括乐谱输入的预处理、谱线检测及删除、图像校正等操作。假设经过前期处理后的图像为为WXH的二值图像F(x,y),(0≤χ≤W;0≤y≤H),当像素点为黑色的目标点时F(x,y)=0,为白色的背景点时F(x,y)=1。则基于行游程邻接表的乐谱快速连通域分析方法的具体技术步骤如下(1)对图像F(x,y)由上至下进行行扫描,记录下各行的黑色游程信息,得到整幅图像的水平黑色游程信息表Yctable:{sPj,Ij,Ni,Flagi,i|j=1,2,-Ni,i=1,2,...xsize},其中xsize为乐谱图像F(x,y)的总行数,i表示行号,Ni为第i行的水平黑色游程总数,Flagi表示该第i行有无黑色游程,值为1则表示存在水平黑色游程,反之则无,SPj表示第i行的第j个水平黑色游程的起点,Ij为第i行的第j个水平黑色游程的长度。(2)建立重要信息统计矩阵向量包括尺寸为IXM的上一行各黑色游程段所属的连通域编号向量syhbh(其中M为上一行黑色游程的段数)以及尺寸为IXN的下一行各黑色游程段所属的连通域编号向量xyhbh(其中N为上一行黑色游程的段数),连通域编号的最小值设为1;nX2Xbht的连通域像素向量Ityxsb(其中η为各个连通域中所包含的像素的个数,bht为连通域的个数),以便保存各连通域中所包含的全部像素的横坐标和纵坐标;废除的连通域编号向量fcdltybh,用来保存哪些连通域编号在算法执行中被执行了合并而消失。并设图像水平黑色游程信息表Yctable的行号i=1。(3)判断Yctable中的Flagi是否为1,如果为1,是则转移到第4步。否则转移到第8步。(4)如果i=1或者i兴1但Flagp1=0,则将该行作为游程邻接表的上一行,且为该行的每一个黑色游程建立一个新的独立的连通域,并对各段黑色游程依次赋于不同的连通域编号syhbh(k):max+l:max+d,k=1,2,…d,其中max为原有连通域编号的最大值,d为该行水平黑色游程的段数,各游程段的像素值都存储到与其对应的Ityxsb(,,bh)中去,转至第8步,否则转至第5步。(5)计算第i行(即下一行)各游程段与第i_l行各游程段的邻接情况,这里采用八邻域的邻接关系判断,即只要第i_l行某游程段的某一个像素值处在第k行某游程段中的任何一个像素点的八邻域位置,就认为这两个游程段是邻接关系,并将邻接信息保存在游程邻接矩阵Ijmatrix中,并设邻接游程矩阵的初始行r=1。(6)统计游程邻接表第r行(即下一行的第r个游程段所对应的行)中1的个数t,若t=0,则为该游程段建立一个新的连通域,连通编号xyhbh(r)=max+1,max为已经存在的连通域的最大编号,并把该游程所包含的所有像素信息保存在与此编号对应的连通域像素表ltyxsb(:,,bh)中;若t彡0,则将下一行该游程段(r段)的所有像素并到与之相邻的上一行的第一个游程段(y段)所在的连通域中,并将该游程段的连通域编号置为与之相邻的上一行的第一个游程段的连通域编号,即xyhbh(r)=syhbh(y);当上一行中的其他相邻游程段所属的连通域与第一个游程段属的连通域编号不同时,其所在连通域像素也都并到第一个游程段所在的连通域中,其原来的编号归并到废除的连通域编号里面。(7)r=r+Ι,若r彡N(其中N为该行的黑色游程段数)则返回到第6步,否则更新游程信息表Yctable中第i-Ι行各游程段所对应的连通域编号信息向量syhbh=xyhbh。(8)i=i+1,转至第3步,直至i>xsize为止;(9)去掉废除后连通域编号的其它连通域编号所对应的Ityxsb就是分割后真正的各连通域所对应的像素信息,并保存在连通域表Ity(,,h),h=l,2,"·Τ中,其中T为真正的连通域个数,计算出各连通域的包围框BKJhli,!^,Ili,12,],i=1,2,…T,其中Mi为第i个连通域的最小行减1,其中h2i为第i个连通域的最大行加1,其中Ili为第i个连通域的最小列减1,其中Ui为第i个连通域的最大列加1;最后用方框标识出分割区域。下面结合附图,对本发明所述的技术方案作进一步的阐述。纸质乐谱图像首先通过扫描仪或者数码拍摄设备输入到计算机,然后经过去噪,图像格式变换等预处理操作,变成二值乐谱图像;图1即为一幅经过前期处理后所得到的7二值乐谱图像。消除掉了在扫描过程中或者由于图像本身所带到的噪声,并进行了格式变换。由于乐谱图像不同于普通的图像,乐谱图像中的很多乐符依赖于谱线,谱线在乐谱图像中具有非常重要的意义,不同高度的谱线代表的音度不一样,因此,十分有必要进行谱线的检测定位和删除工作,谱线的检测通常采用的方法就是水平投影图法,这种方法操作简单,运行速度快,对于水平度较好的图像往往具有很好的检测效果,图2即为对图1的水平投影图,可以明显的看到二组(每组五根长线)五线谱,进一步采用阈值门槛即可实现谱线的定位。谱线检测之后还必须进行删除工作,常用的谱线删除方法有传统的谱线轨迹跟踪算法,图段法以及游程法等,针对具体的乐谱图像可以采用不同的方法,图3即位经过谱线删除后的乐谱图像,这里保留了所有的乐谱图像,而去掉了谱线,目的是为了在识别阶段排除谱线的干扰,但谱线的位置信息必须保留,为乐谱的重建提供参考信息。谱线删除以后就是对乐谱图像进行连通域分析,以便提取出所有的音乐乐谱符号,在本发明中提出了基于行游程邻接表的快速连通域分析方法进行连通域分析,其具体的技术步骤见前面的技术方案,该方法主要基于行游程邻接表,这里所提出的行游程邻接表首先计算出相邻两行的各个黑色游程段,并按照八邻域的方式判断相邻两行各段黑色游程的邻接关系,进而列成一个表格。一个典型的行游程邻接表见图4。按照本文所叙述的算法步骤对图3进行快速连通域分析,即可以得到图5所示的连通域分割结果可以看到对每一个连通域都实现了很好的分割,避免了在很多时候需要对不同符号采用不同的分割方法,比如小节线的分割采用投影法,连接线采用区域生长法等,并且分割效果不是很理想。而相对于传统的基于像素点的连通域分析方法只需要对图像进行一次扫描即可提取全部连通域,因此,大幅度的提高了乐谱图像连通域的分割速度。权利要求一种基于行游程邻接表的乐谱快速连通域分析方法,其特征在于包括如下步骤(1)对图像F(x,y)由上至下进行行扫描,记录下各行的黑色游程信息,得到整幅图像的水平黑色游程信息表Yctable{spj,lj,Ni,Flagi,i|j=1,2,…Ni,i=1,2,…xsize},其中xsize为乐谱图像F(x,y)的总行数,i表示行号,Ni为第i行的水平黑色游程总数,Flagi表示该第i行有无黑色游程,值为1则表示存在水平黑色游程,反之则无,spj表示第i行的第j个水平黑色游程的起点,lj为第i行的第j个水平黑色游程的长度;(2)建立重要信息统计矩阵向量包括尺寸为1×M的上一行各黑色游程段所属的连通域编号向量syhbh,其中M为上一行黑色游程的段数,以及尺寸为1×N的下一行各黑色游程段所属的连通域编号向量xyhbh,其中N为上一行黑色游程的段数,连通域编号的最小值设为1;n×2×bht的连通域像素向量ltyxsb,其中n为各个连通域中所包含的像素的个数,bht为连通域的个数,以便保存各连通域中所包含的全部像素的横坐标和纵坐标;废除的连通域编号向量fcdltybh,用来保存哪些连通域编号在算法执行中被执行了合并而消失;并设置图像水平黑色游程信息表Yctable的行号i=1;(3)判断Yctable中的Flagi是否为1,如果为1,是则转移到第4步。否则转移到第8步;(4)如果i=1或者i≠1但Flagi1=0,则将该行作为游程邻接表的上一行,且为该行的每一个黑色游程建立一个新的独立的连通域,并对各段黑色游程依次赋于不同的连通域编号syhbh(k)max+1max+d,k=1,2,…d,其中max为原有连通域编号的最大值,d为该行水平黑色游程的段数,各游程段的像素值都存储到与其对应的ltyxsb(:,:,bh)中去,转至第8步,否则转至第5步;(5)计算第i行(即下一行)各游程段与第i1行各游程段的邻接情况,这里采用八邻域的邻接关系判断,即只要第i1行某游程段的某一个像素值处在第k行某游程段中的任何一个像素点的八邻域位置,就认为这两个游程段是邻接关系,并将邻接信息保存在游程邻接矩阵ljmatrix中,并设邻接游程矩阵的初始行r=1;(6)统计游程邻接表第r行(即下一行的第r个游程段所对应的行)中1的个数t,若t=0,则为该游程段建立一个新的连通域,连通编号xyhbh(r)=max+1,max为已经存在的连通域的最大编号,并把该游程所包含的所有像素信息保存在与此编号对应的连通域像素表ltyxsb(:,:,bh)中;若t≥0,则将下一行该游程段(r段)的所有像素并到与之相邻的上一行的第一个游程段(y段)所在的连通域中,并将该游程段的连通域编号置为与之相邻的上一行的第一个游程段的连通域编号,即xyhbh(r)=syhbh(y);当上一行中的其他相邻游程段所属的连通域与第一个游程段属的连通域编号不同时,其所在连通域像素也都并到第一个游程段所在的连通域中,其原来的编号归并到废除的连通域编号里面;(7)r=r+1,若r≤N(其中N为该行的黑色游程段数)则返回到第6步,否则更新游程信息表Yctable中第i1行各游程段所对应的连通域编号信息向量syhbh=xyhbh;(8)i=i+1,转至第3步,直至i>xsize为止;(9)去掉废除后连通域编号的其它连通域编号所对应的ltyxsb就是分割后真正的各连通域所对应的像素信息,并保存在连通域表lty(:,:,h),h=1,2,…T中,其中T为真正的连通域个数,计算出各连通域的包围框BK[h1i,h2i,l1i,l2i],i=1,2,…T,其中h1i为第i个连通域的最小行减1,其中h2i为第i个连通域的最大行加1,其中l1i为第i个连通域的最小列减1,其中l2i为第i个连通域的最大列加1;最后用方框标识出分割区域。全文摘要本发明公布了一种基于行游程邻接表的乐谱快速连通域分析方法,所述方法如下,对图像F(x,y)由上至下进行行扫描,记录下各行的黑色游程信息,得到整幅图像的水平黑色游程信息表;建立重要信息统计矩阵向量;判断Yctable中的Flagi是否为1;计算第i行(即下一行)各游程段与第i-1行各游程段的邻接情况;统计游程邻接表第r行(即下一行的第r个游程段所对应的行)中1的个数;去掉废除后连通域编号的其它连通域编号所对应的ltyxsb就是分割后真正的各连通域所对应的像素信息;最后用方框标识出分割区域。文档编号G06T7/00GK101930544SQ201010275849公开日2010年12月29日申请日期2010年9月7日优先权日2010年9月7日发明者余华,奚吉,杨银贤,王开,王青云,赵力,邹采荣,陈存宝申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1