发明内容
本发明的目的是为了方便在移动设备上进行音乐库的管理和检索,实现所见即所得。本发明提供了一种基于移动设备的海量音乐库管理方法,该方法需要有服务器端和移动设备端,服务器端提供海量音乐库的存储和检索服务,移动设备端用于音乐相关文件的操作和内容展示,对于移动设备要求具备摄像的功能,在对音乐库进行查询时,可以通过输入相关图片图像、音乐名、歌手名、专辑名和歌词进行快速查找。本发明的应用场景主要是在音乐库的管理方面,结合了图像识别技术、无线网络传输和数据库技术。
基于移动设备的海量音乐库管理方法具体包括如下过程:
步骤一:在服务器上进行数据库初始化以及生成图像单词树;
对数据库进行初始化操作,包括数据库存储空间的预分配,以及建立入库服务端与数据库的连接,所述的入库服务端负责音乐文件语义信息的提取和入库;
使用海量图像的特征,采用k-means聚类方法生成图像单词树;
步骤二:音乐文件入库;音乐文件的入库包括音乐图像文件特征提取和入库、音乐文件的入库、语义描述信息的抽取入库、音乐相关信息的入库和关联信息的建立;
步骤三:在海量音乐文件入库之后,对音乐库创建查询索引,包括文本查询索引和图像查询索引;
步骤四:在移动设备上进行音乐的查询匹配处理:通过文本信息包括音乐名、歌手名、专辑名和歌词进行音乐的查找或者通过移动设备拍摄音乐相关的图片来进行音乐的查找。
步骤四中所述的通过移动设备拍摄到的音乐相关的图片来进行音乐的查找,具体步骤如下:
首先,使用移动设备对音乐海报图像或者是音乐CD上的封面进行拍照,将拍摄完成的图片通过彩信的方式发送到指定的服务号码,服务器端的彩信网关将接收到的彩信信息进行解析,并将用户搜索的图片信息进行解析后存储,服务器端的消息转发服务将搜索的图片信息通过协议转发到音乐数据库服务器进行音乐图像的搜索;接着,音乐数据库服务器对接收到的查询图像进行图像识别的处理:首先对查询图像按照音乐图像文件入库时的预处理过程,进行尺寸大小的转化、色深的转化并生成灰度图像,然后对灰度图像采用尺度不变特征转换方法进行特征的提取,并将提取出的图像特征采用单词树进行量化,统计词频,查询图像的特征经过单词量化后使用单词空间向量表示:I1(w1,w2...wn),将该单词空间向量同每一幅数据库中存储的图像的空间向量进行相似度计算,对于数据库中的已经保存的音乐图像的空间向量I2(w1,w2...wn),两幅图像I1,I2的相似度S根据S=cos(I1,I2)进行比较,其中,cos表示求两个向量的余弦,S值越大两幅图像越匹配;最后,经过图像的查询匹配后获得与查询图像相似度最高的音乐图像,提取出该音乐图像所在的路径信息,通过保存在数据库中的音乐图像的路径信息获取到与该音乐图像相关的音乐信息;服务器端将查询的结果生成统一资源链接,通过无线应用协议将搜索的结果推送到移动设备端,用户通过移动设备端接收到的资源链接就能够访问所要查找的音乐。
本发明的优点和积极效果在于:
(1)使用了图像进行音乐的查找,在音乐库管理方面具有创新性,在技术上具有先进性;
(2)对存储在服务器中的大量零散的音乐图像文件建立了特殊的查询索引,在海量音乐库检索方面更加快速和准确;
(3)使用了可视化的音乐库管理方式,操作更加简单,可随时随地进行音乐文件的查找。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
基于对目前已有的音乐库管理方法的先进性和局限性的研究,本文提出了一种新型的音乐库管理方法,在音乐库的查找方面使用图像就可以查找到相应的音乐文件,和传统的使用文本和声音的音乐文件查找方式相比,具有使用便捷和技术先进性,填补了国内在音乐库管理技术上的空白。
本发明是一种基于移动设备的海量音乐库管理方法,所述的海量是指不低100万首歌曲的音乐数据,如图1所示,本发明海量音乐库管理方法的具体实施流程为:
步骤一:数据库初始化以及使用海量图像的特征生成单词树。
音乐库包括音乐图像文件、音乐文件和音乐相关信息。在将音乐文件入库之前,首先需要进行数据库的初始化操作,包括数据库存储空间的预分配,建立入库服务端与数据库的连接,入库服务端负责音乐文件语义信息的提取和入库。对于音乐图像文件,在入库时需要采用图像单词树进行图像特征的量化处理。
在数据库初始化过程中,需要使用海量图像的特征生成单词树。单词树的产生过程如下:
首先提取所有图像的尺度不变特征向量,接着对这些图像的特征向量使用k-means聚类方法来构造单词树的最上一层,生成m个聚类,其中m为自然数。本发明的方法中m的取值为10,这10个聚类是将100万个特征向量随机分成10份,每份10万个特征向量得到的,对每一份的10万个数据求均值,将离均值最近的特征作为聚类中心。以这m个聚类中心为初始聚类中心,将所剩下的图像特征向量根据它们与这些聚类中心的相似度,分别将它们分配给与其最相似的聚类,最后分别对每个聚类将剩余的特征向量重复进行k-means聚类,反复进行6次,形成6层的树状结构,共有m6个叶节点生成,每个叶节点为最后一次聚类的类中心,依次从0对其编号,最后一个叶节点的编号为m6-1,以编号值作为单词标识,记录每个单词标识所对应的图像特征向量。图2是本发明中使用k-means聚类方法生成的图像单词树的结构图,其中m等于10,总共有6层。依据图像的所有特征构造好的单词树可以用来实现音乐库图像特征的量化。
步骤二:音乐文件入库
在完成对数据库的初始化处理并生成单词树之后,就可以对音乐文件进行入库操作。音乐文件的入库包括音乐图像文件特征提取和入库、音乐文件的入库、语义描述信息的抽取和入库、音乐相关信息的入库和关联信息的建立。音乐文件入库包括以下三个步骤:
步骤2.1:音乐文件预处理;
音乐文件预处理主要是对音乐图像文件进行预先处理,包括对图片的色深位数、图片尺寸大小进行预先处理。首先,需要将32位色深和16位色深的图像转化为8位色深的灰度图;接着需要将图像大小按比例进行缩放,将其转换为符合规定的图像尺寸,此处所述的符合规定的图像尺寸是指图像长度在200像素以上,640像素以下,或者宽度在150像素以上,480像素以下。对于长度大于640像素或者宽度大于480像素的图像,按照比例因子进行图像缩小操作,缩小比例因子a的计算过程如下:
Width=MAX(ImgWidth,ImgHeight)
Height=MIN(ImgWidth,ImgHeight)
其中,MIN表示取两个数中的最小值,MAX表示取两个数中的最大值,ImgWidth表示正在处理的图像的像素值长度,ImgHeight表示正在处理的图像的像素值宽度,Width表示生成缩小比例因子a所需的图像像素值长度,Height表示生成缩小比例因子a所需的图像像素值宽度。将当前正在处理的音乐图像文件的长度和缩小比例因子做乘积运算就可以得到转换后的图像长度值,将当前正在处理的音乐图像文件的宽度和缩小比例因子做乘积可以得到转换后的图像宽度值,在获取到最新的图像尺寸后就可以对原图做降采样操作就可以生成新的图像。
对于要入库的音乐图像文件,若其长度小于200像素或者宽度小于150像素的图像,需要将图像放大一倍处理,放大比例因子取值为2。使用放大比例因子和原始的图像的长和宽分别做乘积运算就可以获得最新的图像的尺寸,按照新的图像尺寸对原图做升采样处理就可以获得新的图像。
对要入库的原始音乐图像文件做预处理是为了对图像特征的提取做准备。
步骤2.2:音乐文件语义信息抽取;
音乐文件语义信息抽取主要是从音乐文件中读取出与该音乐文件相关的信息,包括歌手名称、专辑名称、流派、音频采样位数、采样频率和声道数。不同格式的音乐文件所存放的信息会有所不同,在对音乐文件提取语义信息时需要根据不同的格式分别进行处理,本发明中采用统一的数据结构进行语义信息的存储。首先,将音乐文件以二进制的方式打开;然后,根据音乐文件的扩展名判断文件的类型,根据不同的类型读取不同长度的文件头部并进行分析,不同格式的音乐文件所存放的信息会有所不同,在对音乐文件提取语义信息时需要根据不同的格式分别进行处理;最后,将分析完成的信息采用统一的结构进行语义信息的存储。
步骤2.3:音乐图像文件特征提取;
音乐图像文件进行入库之前,首先需要提取音乐图像的特征,并将提取出的每个图像的所有特征保存在各自的特征文件里,为音乐图像的入库做好准备。提取图像的特征是为了建立一个图像比较基准,为在移动设备中直接采用图像进行音乐文件的查询提供服务。
本发明的方法中采用尺度不变特征转换来对音乐图像做局部特征的提取,在空间尺度中寻找图像的稳定点,并提取出其位置、尺度、旋转不变量。尺度不变特征转换是一种提取图像局部特征的方法,对图像的复杂变形和光照变化具有较强的适应性和鲁棒性。提取图像的特征就是查找图像中的一些稳定点,这些稳定点不会因为光照条件的改变而消失,查找稳定点的方法就是找灰度图的局部最值。提取音乐图像特征的方法包括以下几个步骤:
步骤2.3.1:构建图像的高斯差分尺度空间;
对于一个二维图像,采用高斯差分算子来构造图像的高斯差分尺度空间。二维图像的尺度空间是二维图像经过高斯卷积后生成的新图像的一个集合,二维图像的尺度空间L(x,y,σ)定义为:
L(x,y,σ)=G(x,y,σ)*F(x,y)
其中,(x,y)是空间坐标,F(x,y)表示为原始二维图像,σ是尺度坐标,G(x,y,σ)是尺度可变高斯函数,定义为:
高斯差分尺度空间D(x,y,σ)定义为:
D(x,y,σ)=L(x,y,kσ)-L(x,y,σ)
其中,k是比例系数。
有了二维图像的尺度空间L(x,y,σ)的定义,就可以构建图像的高斯金字塔,图像的高斯金字塔就是二维图像经过高斯卷积后生成的新图像的一个集合。高斯金字塔里包含若干组,每组里包含若干图层,其中高斯金字塔的第一组第一层图像为原始图像,对该层图像采用高斯函数做一次高斯卷积可以获得第一组第二层图像,对第一组第二层图像做高斯卷积可以获得第一组第三层图像,重复若干次可以获得第一组的其它图层。对于第二组的第一层图像需要采用前一组,此处也就是第一组的最后一层图像做降采样操作获得,如同得到第一组的图像得到第二组的其他层图像。以此类推,得到其他组的图像。在获取到高斯金字塔后就可以构造出图像的高斯差分金字塔,高斯差分金字塔也是一些图层的集合,同样包含若干组,每组里包含若干图层,其中高斯差分金字塔的第一组第一层图像是由高斯金字塔的第一组第二层图像减第一组第一层图像获得,高斯差分金字塔的第一组第二层图像是由高斯金字塔的第一组第三层图像减第一组第二层图像获得,以此类推,每组都采用这样的图层减法就可以获得高斯差分金字塔。在高斯差分金字塔的图层中定位图像的稳定点,稳定点的查找从每组的第二层开始,到该组的倒数第二层结束。假设需要从n个图层中定位稳定点,那么高斯差分金字塔应该具有n+2个图层,高斯金字塔应该具有n+3个图层。
步骤2.3.2:通过拟和三维二次函数以精确确定稳定点的位置和尺度;
尺度空间的稳定点也就是图像的关键点,对于图像尺度空间中的每一个采样点要和它所有的相邻近的点进行比较,包括与它同尺度的8个相邻点和上下相邻尺度对应的18个点的比较,看其是否比它的图像域和尺度域的相邻点大或者小。通过拟和三维二次函数以精确确定稳定点的位置和尺度,同时去除低对比度的关键点和不稳定的边缘点。
步骤2.3.3:为每个稳定点指定方向;
利用稳定点邻域像素的梯度方向分布特性为每个稳定点指定方向参数。以稳定点为中心,在邻近的8个像素点采样,并用直方图统计邻域像素的梯度方向。梯度就是一个有方向和长度的向量。梯度直方图的范围定义为0到360度,其中每10度为一个直方柱,总共36个直方柱,直方柱的峰值就代表了该稳定点处邻域梯度的主方向,该主方向就作为稳定点的主方向。为了增强图像匹配的鲁棒性,可以根据直方柱峰值的大小对稳定点指定多个方向,包括一个主方向,一个以上辅方向。
图像的稳定点包含三个重要的信息:位置、尺度和方向。
步骤2.3.4:稳定点描述子的生成,所述的描述子就是稳定点的定义和表示方法。
在找到一个图像的稳定点后,就可以确定图像的一个特征区域。首先将坐标旋转为稳定点的方向,接下来以该稳定点为中心取16×16的小格,每个小格代表稳定点邻域所在尺度空间的一个像素,越靠近稳定点的像素梯度方向信息贡献越大,然后将16×16的小格分成4×4的小块,在每个小块上计算8个方向上的梯度方向直方图,绘制每个梯度方向的累加值,就可以形成一个种子点,每个种子点有8个方向向量信息。每个稳定点使用4×4共16个种子点来描述,这样对于一个稳定点就可以产生128个数据,即最终形成128维的特征向量。此时的特征向量已经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进一步去除光照变化的影响。
尺度不变特征转换方法在多尺度空间采用高斯差分算子检测关键点,相比传统的基于尺度归一化算子的检测方法,运算速度大大加快,关键点的精确定位不仅提高了精度,而且大大提高了关键点的稳定性。在构造关键点的描述子时,以子区域的统计特性,而不是以单个像素作为研究对象,提高对图像局部变形的适应能力。该方法对于图像旋转以及光线、噪声、微视角改变、扭曲等具有鲁棒性。
经过以上步骤的处理,一个音乐图像就可以采用一组特征向量表示,对于提取出的图像特征向量需要将其按位存储在图像特征文件中,以方便音乐图像的入库处理。
步骤2.4:音乐文件入库;
音乐文件入库包括音乐文件语义信息的入库、音乐图像及图像特征文件的入库、音乐文件的存储和关联信息的创建。对于图像文件和音乐文件将其放入服务端指定目录结构的文件夹中,并记录文件所在的路径,对于音乐文件的语义信息、歌词内容、音乐文件路径和其它与音乐相关的信息放入数据库中进行管理,在入库的同时建立音乐文件与音乐相关信息的关联,关联信息的创建需要满足通过查找语义信息、或者是歌词就可以找到对应的音乐文件,通过专辑名称或是专辑图像存储路径就可以找到制定的专辑信息。
步骤三:音乐库索引的创建;
音乐库索引的创建包括对数据库中存储的音乐相关信息索引的创建也就是文本查询索引和音乐图像信息索引的创建也就是图像查询索引。在对海量音乐文件进行检索之前,首先需要对音乐库创建查询索引,索引的创建可以提高音乐文件的查找速度,实现从文本或是图像到音乐文件的快速查找。对于数据库中文本查询索引的创建,使用音乐名称、歌手名称、专辑名称作为索引关键值,关键值不允许为空值。
对于图像信息创建索引需要按照以下的步骤进行:
首先需要将每个图像文件所对应的特征文件读取到内存中,使用步骤一中生成的单词树对图像特征向量进行量化处理,对每一个图像特征从单词树的第一层开始,依次比较m个节点得到欧式距离最小的节点,再比较该节点下的m个子节点,并得到欧式距离最小的节点,反复进行直到节点到达距离最小的叶节点,以此叶节点的编号值作为图像特征量化后的单词。
接着,将查找到的单词加入到倒排索引结构中。所述的倒排索引结构是在图像入库后,在计算机内存创建的,倒排索引结构中的每个单词都指向一个列表,列表中包含着许多对象,每个对象包括一个图像文件的文档号和该单词在此文档中出现的词频数。经过单词量化后可表示为单词向量空间的一个向量。假设图像P有n个特征向量,则图像P经过单词量化后可以表示为如下形式:
P(vw1,vw2...vwn)
其中,vwn表示图像P的单词向量中的第n个单词,n为自然数。
最后,需要计算每个单词的权重。采用TF-IDF(term frequency-inverse document frequency)的统计方法,分别将图像单词向量中的每个单词所对应的权重计算出来。TF-IDF中的TF表示词频,IDF表示反文档频率。TF-IDF的主要思想是:如果某个单词在一篇文档中出现的频率TF高,并且在其它文档中很少出现,则认为该词具有很好的类别区分能力。单词的权重就等于TF和IDF的乘积,图像单词向量空间经过词频统计后可以表示为如下形式:
P1(w1,w2...wn)
其中,wn表示向量空间中第n个单词的权重值。
在每次新加入音乐图像后,都需要重新计算单词的权重值,更新索引列表结构。
如图3所示,对一副原始图像,首先提取图像的特征向量,然后采用已经生成好的图像单词树对图像特征进行量化,最后对量化生成的单词建立单词索引。图3中nr表示已经计算完的权重值,nr=TF*IDF。
音乐图像文件经过量化处理并建立索引后,可以实现图像文件之间的快速匹配比较。对两幅图像的比较转化为对两个图像的向量空间的比较,只要对两个向量空间的夹角求余弦值就能知道两幅图像的相似度,余弦值越大相似度越高,即两幅图像越匹配。
步骤四:音乐的查询匹配处理;
音乐文件经过入库后就可以为音乐的查询提供服务,可以使用无线移动设备输入音乐的名称、歌手的名称、专辑的名称或是其它相关的文本信息进行查询,也可以使用移动设备通过彩信的方式将与音乐相关的图片上传到服务器进行音乐文件的查询,无线移动设备提供用户交互界面。服务器端接收到查询请求并处理后,将查询的结果放入一个超文本链接中并以短信的方式发送到移动设备端,用户在移动设备上通过超文本链接就可以获取到想要的音乐信息。使用图像进行音乐查询的步骤如下:
首先,使用移动设备对着音乐海报图像或者是音乐唱片上的封面进行拍照,将拍摄完成的照片通过彩信的方式发送到指定的服务器。服务端的彩信网关将接收到的彩信信息进行解析,并将用户发送过来的图片信息进行解析后存储。服务端的消息转发服务将用户发送来的图片通过协议转发到音乐数据库服务器进行音乐图像的搜索。
接着,音乐数据库服务器端对接收到的查询图像进行图像识别的处理。对用户发送来的查询图像进行预处理,包括尺寸大小的转化、色深的转化并生成灰度图像,对转化后的灰度图像进行特征的提取并将图像的特征采用单词树进行量化,统计词频,将查询图像转变为单词空间向量,依次同每一幅数据库中索引的图像进行相似度计算。假设查询图像I1的空间向量表示为:I1(w1,w2...wn);
数据库中的已经保存的原始音乐图像I2的空间向量表示为:I2(w1,w2...wn);
两幅图像I1,I2的相似度计算如下:S=cos(I1,I2);
其中,cos表示求两过向量的余弦。S值越大相似度越高,两幅图像越匹配。
最后,经过图像的查询匹配后即可获得与查询图像相似度最高的音乐图像,通过保存在数据库中的音乐图像的路径信息即可获取到与该音乐图像相关的音乐信息。服务端将查询的结果生成一定格式的统一资源连接,并通过无线应用协议将搜索的结果推送到移动设备端,移动设备端通过接收到的统一资源连接就可以访问所要查找的音乐了。
如图4所示,为本发明中进行音乐图像匹配的一个实施例。其中图像A为移动用户拍摄到的图像,图像B为已经入库的原始图像,对于移动用户拍摄到的图像A需要进行图像特征的提取和特征向量的量化处理,得到量化处理后的图像A的向量,最后比较图像A的向量与图像B的向量的夹角,获得两副图像的相似度,S值越大相似度越高,也就是两向量的夹角越小越相似。由于图像的匹配查找采用的是同原图做比较,对于采用移动设备拍摄到的图像,如果图像内容占原图内容的一半以上,那么查找的准备度将达到百分之百的准确。
采用图像进行音乐文件的查找,对于输入功能不太方便的移动设备具有查找的简单便利性。移动设备只需要具备拍照功能,不需要任何文本的输入就可以很简单的完成音乐文件的查找。在实际中,所拍摄的要检索的图片大小占整个拍摄图片的四分之一以上,就可以实现检索。
如图5a与图5b所示,是采用本发明从移动设备进行音乐文件查找另一个实施例。用手机拍摄的一个专辑封面,上传到服务器检索查找后,收到服务器发送来的所需要检索的音乐文件的链接。
使用本发明的方法我们可以实现这样的应用:当我们在大街上看到某个歌星最新专辑的海报,或者是在音像图书店看到自己喜爱的音乐唱片时,我们可以采用移动终端对这些宣传海报或是唱片封面进行近距离的拍摄,然后上传到指定的服务器进行相关信息的查找,服务器端根据上传的图片在海量音乐库中进行查找匹配,并将与该图片相匹配的音乐信息推送到用户的移动终端上,用户就可以在移动终端上进行相关音乐的视听,或者是付费下载最新的音乐,用户只需要在移动设备上进行一些简单的操作,即可以获取到自己想要的音乐。