发明内容
本发明的目的是提供一种简便的钢琴键盘图像形变恢复方法及系统。
为实现上述目的,本发明提供了如下方案:
一种钢琴键盘图像的形变恢复方法,包括:
以样本图像为输入,以样本图像中黑键的像素坐标以及设定白键的角点的像素坐标为标签,训练神经网络,得到角点检测模型,所述样本图像为钢琴键盘图像,所述设定白键为与黑键具有设定位置关系的白键;
将标定图像输入所述角点检测模型,得到输出结果,所述标定图像为与待恢复形变图像同一摄像机拍摄的、已知设定白键的角点的现实坐标的图像;
根据所述输出结果中的黑键的像素坐标以及黑键与设定白键的所述设定位置关系,删除所述输出结果中识别错误的白键角点的像素坐标,得到去误差后的白键角点的像素坐标;
根据去误差后的白键角点的像素坐标以及标定图像中设定白键的角点的现实坐标,求解拍摄所述标定图像的摄像机的内外参数和畸变参数;
根据所述待恢复形变图像上各像素点的像素坐标,结合所述摄像机的内外参数和畸变参数,计算待恢复形变图像上各像素点的现实坐标。
可选的,所述内外参数包括体现像素坐标系与相机坐标系变换的内参数和体现相机坐标系与世界坐标系变换的外参数;所述畸变参数包括径向畸变参数和切向畸变参数。
可选的,所述根据去误差后的白键角点的像素坐标以及标定图像中设定白键的角点的现实坐标,求解拍摄所述标定图像的摄像机的内外参数和畸变参数,具体包括:
对去误差后的白键角点的像素坐标进行线性回归,得到线性回归线;
从所述线性回归线的一端到另一端,结合黑键与白键的位置关系,依次确定去误差后的白键角点对应的所述现实坐标;
根据像素坐标、现实坐标以及摄像机内外参数、畸变参数之间的关系式以及白键角点的像素坐标和现实坐标,计算所述摄像机的内外参数、畸变参数。
可选的,所述根据所述待恢复形变图像上各像素点的像素坐标,结合所述摄像机的内外参数和畸变参数,计算待恢复形变图像上各像素点的现实坐标,具体包括:
将所述待恢复形变图像上像素点的像素坐标以及所述摄像机的内外参数和畸变参数代入像素坐标、现实坐标以及摄像机内外参数、畸变参数之间的关系式,得到待恢复形变图像上像素点的现实坐标。
可选的,所述设定白键为相邻两组黑键之间的白键。
可选的,相邻两组黑键之间有两个白键,所述设定白键的角点为两个白键中某一白键与另一白键的相邻边的上下两个角点。
可选的,所述黑键的像素坐标为黑键四个角点的像素坐标。
本发明还提供了一种钢琴键盘图像的形变恢复系统,包括:
角点检测模型训练模块,用于以样本图像为输入,以样本图像中黑键的像素坐标以及设定白键的角点的像素坐标为标签,训练神经网络,得到角点检测模型,所述样本图像为钢琴键盘图像,所述设定白键为与黑键具有设定位置关系的白键;
角点检测模块,用于将标定图像输入所述角点检测模型,得到输出结果,所述标定图像为与待恢复形变图像同一摄像机拍摄的、已知设定白键的角点的现实坐标的图像;
去误差模块,用于根据所述输出结果中的黑键的像素坐标以及黑键与设定白键的所述设定位置关系,删除所述输出结果中识别错误的白键角点的像素坐标,得到去误差后的白键角点的像素坐标;
相机参数求取模块,用于根据去误差后的白键角点的像素坐标以及标定图像中设定白键的角点的现实坐标,求解拍摄所述标定图像的摄像机的内外参数和畸变参数;
形变恢复模块,用于根据所述待恢复形变图像上各像素点的像素坐标,结合所述摄像机的内外参数和畸变参数,计算待恢复形变图像上各像素点的现实坐标。
可选的,所述设定白键为相邻两组黑键之间的白键。
可选的,相邻两组黑键之间有两个白键,所述设定白键的角点为两个白键中某一白键与另一白键的相邻边的上下两个角点。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的钢琴键盘图像形变恢复方法及系统采用深度学习网络识别钢琴的特定角点,然后根据特定角点已知的现实坐标,计算摄像机的内外参数以及畸变参数,最后根据待恢复形变图像上各像素点的像素坐标以及摄像机的内外参数和畸变参数,计算待恢复形变图像上各像素点的现实坐标,实现对图像的形变恢复。本发明采用深度学习网络识别特定角点,进而计算摄像机的内外参数和畸变参数,简便快捷,提高了效率,同时,结合黑键选取用于网络学习的特定角点,并结合黑键去除识别错误的角点,提高了角点的识别精度,保障了摄像机内外参数和畸变参数计算的准确性,进而保障了钢琴键盘图像形变恢复的精度。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1
参见图1,本实施例提供了一种钢琴键盘图像的形变恢复方法,该方法包括:
步骤101:以样本图像为输入,以样本图像中黑键的像素坐标以及设定白键的角点的像素坐标为标签,训练神经网络,得到角点检测模型,所述样本图像为钢琴键盘图像,所述设定白键为与黑键具有设定位置关系的白键。
步骤102:将标定图像输入所述角点检测模型,得到输出结果,所述标定图像为与待恢复形变图像同一摄像机拍摄的、已知设定白键的角点的现实坐标的图像。
步骤103:根据所述输出结果中的黑键的像素坐标以及黑键与设定白键的所述设定位置关系,删除所述输出结果中识别错误的白键角点的像素坐标,得到去误差后的白键角点的像素坐标。
步骤104:根据去误差后的白键角点的像素坐标以及标定图像中设定白键的角点的现实坐标,求解拍摄所述标定图像的摄像机的内外参数和畸变参数。
步骤105:根据所述待恢复形变图像上各像素点的像素坐标,结合所述摄像机的内外参数和畸变参数,计算待恢复形变图像上各像素点的现实坐标。
在本实施例中的内外参数包括体现像素坐标系与相机坐标系变换的内参数和体现相机坐标系与世界坐标系变换的外参数,如图2所示。畸变参数包括径向畸变参数和切向畸变参数,如图3所示。
作为本实施例的一种实施方式,步骤101首先采集广角摄像机下的钢琴键盘图像数据集,并对每一钢琴键盘图像进行人工标注角点,本实施例中人工标注的角点包括白键的角点和黑键的角点,优选的,本实施例中的白键选取的是与黑键具有一定的位置关系的白键,比如相邻两组黑键之间的白键,优选的,黑键的角点可以是黑键斜对角的两个角点,用方框框出黑键的位置,白键的角点可以是相邻两组黑键之间的两个白色键之间的上下边缘处,如图4所示。对数据集进行划分,划分为训练集(60%)、验证集(20%)、测试集(20%)。然后,将训练集以及验证集投入到钢琴角点检测模型中训练,直到模型收敛。
作为本实施例的一种实施方式,步骤102至步骤104具体可以如下:
采用角点检测模型对多张(至少3张,且拍摄角度不同)实时的钢琴键盘图像分别进行角点坐标检测,得到多个角点的像素坐标Pxy,以及钢琴黑键的框位置坐标。对于多张拍摄的图像,以下进行一致的处理。根据输出结果中的黑键的位置以及黑键与设定白键的设定位置关系(即白键的角点像素坐标位于相邻两组黑键之间),删除所述输出结果中识别错误的白键角点的像素坐标,得到去误差后的白键角点的像素坐标。对去误差后的白键角点的像素坐标进行线性回归,得到线性回归线,以此将角点划分为两行,参见图5,由于钢琴键盘只有两行角点,所以线性回归之后,回归线会落在两行角点之间。对回归线两侧的角点,沿着回归线的一端到另一端按顺序进行编号,他们分别对应着世界坐标中钢琴键盘的相应角点。这里用一个音阶的简单笔画图示例,如图6,图7所示。根据编号(i,j)即可计算出相应角点的世界坐标(现实坐标)Pw(X,Y):
Y=i*height
其中,根据编号(0,0)角点与编号(0,1)角点之间黑键数目决定c的值。c为黑键计数值,若黑键为2个,则c=3,若黑键为3个,则c=4。由于钢琴键盘为一个平面,所以不失一般地设所在的世界坐标的Z值为0。其中,一般钢琴标准:白键长144mm、宽23mm,若设width=1.0单位,则height=6.261单位。
根据同一目标相机多张图像检测得到,多个角点的像素坐标Pxy和对应的世界坐标Pw(X,Y),计算出摄像机的内外参数和畸变参数并加以保存,而一个结构固定的相机往往参数也是固定的,根据保存的内参数及畸变参数对实时钢琴图像进行修正。
摄像机的内外参数和畸变参数的计算原理如下:
假设世界坐标系下有坐标为(X,Y,Z)的点Pw,该点映射到摄像机的图像上的像素坐标为(u,v)的点Puv。这种映射关系可以由摄像机标定模型表示:
sPuv=KTPw
其中为了易于进行仿射几何变换,将点的坐标转为了齐次坐标:
Puv=(u,v,1)T
Pw=(X,Y,Z,1)T
另外,s为尺度因子,并不会改变齐次坐标的值。K为摄像机的内参数,体现像素坐标系与相机坐标系的变换。T为摄像机的外参数,体现相机坐标系与世界坐标系的变换。K、T取值如下:
假定世界坐标中钢琴键面Z=0(世界坐标系可以直接给定,只要符合点的相对位置关系即可)
然而上述模型中的点Puv并没有考虑到图像径向畸变和切向畸变,是理想的像素坐标点。设实际图像(含畸变)中的像素坐标为(x,y)的点Pxy。根据内参数K,算得Puv对应的归一化的图像坐标P'uv为(u',v'),算得Pxy对应的归一化的图像坐标P'xy为(x',y')。P'uv与P'xy中的畸变模型关系式如下:
x'=u'(1+k1r2+k2r4+k3r6)+2p1u'v'+p2(r2+2u'2)
y'=v'(1+k1r2+k2r4+k3r6)+2p2u'v'+p1(r2+2v'2)
r2=u'2+v'2
其中,径向畸变参数为k1,k2,k3、切向畸变参数为p1,p2。即
求解参数大致过程:
首先,从至少3张图像中分别取出多组点对(Pxy,Pw)(至少8组),其中,Pxy即为拍摄图像的特征点的像素坐标,Pw为已知的这些特征点的世界坐标。然后根据这些点对计算出内外参数K、T(未考虑畸变的变化)。根据Pw以及K、T可以得到理想的像素坐标Puv。根据下面过程(K已求),已知左右值Puv、Pxy,可求中间参数k1,k2,k3,p1,p2。
在求得所有参数后,可根据以下过程,将畸变图像任意点Pxy映射到理想的未畸变图像Puv中。
对于本实施例中的基于深度学习网络的角点检测模型,下面通过说明网络的前向推理过程来阐述该网络的结构和思想,在实际部署中,该网络可能会根据实际情况做出改动。本实施例中,该网络的输入为一张图像,钢琴键盘占据图像的主要部分,网络的输出为钢琴键盘在图像中的相对位置信息和钢琴键盘上的所有角点在图像中的相对坐标信息。假设图8是输入图像。
如图9所示,输入图像首先经过特征提取部分(backbone),该部分由若干3*3卷积层和最大池化层组成,其目的是从图像中提取特征信息。经过backbone处理,特征图相对于原输入图像有所缩小,感受野在不断增加。该部分可根据实际应用情况,更换为vgg16、mobileNet等主流backbone或自主设计的backbone。
如图9所示,在backbone之后,是三个卷积核大小为3*3的卷积模块,我们将其命名为“extras部分”。“extras部分”的三个卷积模块通过增加步长、使用padding、使用空洞卷积等方式,进一步增大了感受野、缩小了输出的特征图。这三个卷积模块输出的特征图具有不同的尺度和感受野,可负责检测不同尺度的目标(即钢琴键盘)。其中,最后一个卷积模块输出的特征图大小为1*1。
与目前通用的目标检测框架类似,本发明采用了预先设计的、固定宽高和尺寸的预选框作为候选检测区域,与上述“extras部分”的三个卷积模块输出的三种不同尺度的特征图相对应,并在这三种不同尺度上都设立预选框。在浅层特征图(即extras部分中,位置靠前的卷积模块输出的特征图)上设立较小预选框,来负责检测较小的检测目标(即钢琴键盘),在深层特征图(即extras部分中,位置靠后的卷积模块输出的特征图)上设立较大预选框,来负责检测较大的检测目标(即钢琴键盘)。
如前文所述,extras部分输出了三种不同尺寸大小的特征图,我们分别用两组3*3卷积模块在这三种特征图上分别进行特征提取,这两组卷积模块是两个相对独立的分支,分别负责目标分类与目标位置坐标检测,代表所有预选框的预测值(包括分类预测和位置坐标偏移预测)。接下来我们对所有预测框进行NMS处理,最终得到一个钢琴键盘的检测框坐标位置信息(在我们的应用场景中,一张图像中只会存在一个钢琴键盘)。以图8所示的输入图像为例,此时我们将得到的如图10中矩形框所示的检测框。之所以先定位出钢琴键盘的具体位置,是为了在后续部分中,更精准地利用特征图,因为在后续的处理过程中,只有图像中的钢琴键盘部分才是我们所需要的,其他都是赘余信息。
图10得到的矩形框的位置坐标信息(即矩形框的左上角和右下角坐标)是相对于原图(即图8)而言的,我们可以根据下采样率进一步推算,这些坐标在backbone输出的特征图中的坐标位置,依据这些坐标信息,我们可以从backbone输出的特征图中,单独裁剪出一块“子特征图”,这意味着,该“子特征图”仅包含钢琴键盘的图像特征信息。也就是说,该“子特征图”仅包含图10中矩形框部分的特征信息。
接下来,将该子特征图分别送入两个相对独立的分支网络中进行后续操作。
如图9所示,子特征图会被送入backbone2中。backbone2部分与前面的backbone部分结构类似,也是由若干卷积模块和最大池化层组成的,其目的是进一步提取深层的特征信息。backbone2部分后面是一个全连接层,经过全连接层的处理,此处最终会输出一个1*2n的向量(n代表钢琴键盘上角点的总数量),代表我们的网络的最终输出:对n个钢琴角点位置坐标的预测值。如图11中所示的角点。
如图9所示,子特征图还会被送入另一个分支:backbone3中,与backbone2类似,它也是由若干卷积模块和最大池化层组成的,其目的也是进一步提取特征信息。在backbone3的末尾,用3*3卷积模块在backbone3输出的特征图上分别进行特征提取,负责黑键的目标位置坐标检测,代表所有预选框的位置坐标偏移的预测值。另外,与前文所述的网络的“extras部分”相同,这里同样采用了预选框机制。接下来我们对所有预测框进行NMS处理,最终得到钢琴键盘上k个黑色琴键的位置坐标信息。以图11所示的输入图像为例,此时我们将得到的如图11中矩形框所示的检测框(受图片大小限制,在这里我们只标出了部分黑键检测框,在实际运行中的理想状态下,我们的网络将输出所有黑色琴键的检测框的位置坐标)。这个额外的检测任务的目的是:①发挥多任务协同效应,协助监督钢琴键盘角点坐标的确定;②根据钢琴键盘上黑色琴键的位置,可以进一步修正钢琴键盘角点的位置。
本发明利用深度学习网络识别钢琴特定角点,然后根据已知的标准钢琴坐标(或比例)计算出摄像机内外参数,简便的完成了图像的形变恢复。
实施例2
参见图12,本实施例提供了一种钢琴键盘图像的形变恢复系统,该系统包括:
角点检测模型训练模块1201,用于以样本图像为输入,以样本图像中黑键的像素坐标以及设定白键的角点的像素坐标为标签,训练神经网络,得到角点检测模型,所述样本图像为钢琴键盘图像,所述设定白键为与黑键具有设定位置关系的白键;
角点检测模块1202,用于将标定图像输入所述角点检测模型,得到输出结果,所述标定图像为与待恢复形变图像同一摄像机拍摄的、已知设定白键的角点的现实坐标的图像;
去误差模块1203,用于根据所述输出结果中的黑键的像素坐标以及黑键与设定白键的所述设定位置关系,删除所述输出结果中识别错误的白键角点的像素坐标,得到去误差后的白键角点的像素坐标;
相机参数求取模块1204,用于根据去误差后的白键角点的像素坐标以及标定图像中设定白键的角点的现实坐标,求解拍摄所述标定图像的摄像机的内外参数和畸变参数;
形变恢复模块1205,用于根据所述待恢复形变图像上各像素点的像素坐标,结合所述摄像机的内外参数和畸变参数,计算待恢复形变图像上各像素点的现实坐标。
其中,所述设定白键为相邻两组黑键之间的白键。而且相邻两组黑键之间有两个白键,所述设定白键的角点为两个白键中某一白键与另一白键的相邻边的上下两个角点。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。