一种基于相位一致性边缘检测的语音还原方法
技术领域
本发明涉及视觉测量技术中的视觉语音还原技术领域,具体涉及一种基于相位一致性边缘检测的语音还原方法。
背景技术
声音通过声波的形式进行传播,声波会引发空气的振动,由于声波震动引起的语音信号往往非常微弱,需要一定的放大和恢复才能很好的呈现出来。现有技术中,视觉语音恢复的方法大致可分为电学麦克风、光学麦克风和视频麦克风三种。其中,电学麦克风主要通过电路对震动进行放大。光学麦克风利用光线实现声音的恢复,主要是利用声波对光纤中的相位进行调制,根据反射光的相位变化,实现声音信号到光信号的转换,再经过信号处理还原成声音信号。利用光线实现声音的恢复主要包括:1.利用激光干涉实现语音恢复:激光干涉实现声音恢复的可能性,将激光光束照到被声音作用的物体上,被物体反射并返回到接收器,通过干涉检测来回光路的细微差别,可以由干涉仪将这些变化转化为强度的变化,并最后转换成音频信号。2.通过光纤对声音进行恢复的方法,主要是利用声波对光纤中的相位进行调制,根据反射光的相位变化,实现声音信号到光信号的转换,再经过信号处理还原成声音信号。视频麦克风,又称之为高速视觉测量,主要通过对高速视频的处理提取出声音的振动信息从而实现对声音的恢复,运用方向可控的图像金字塔,将高速视频的每一帧图像进行分解,分别提取幅值和相位信息,最后进行求和,可以将声音信息提取并放大和还原出来,初步实现了对声音的高速视觉测量。
生活中的大多数监控视频由普通摄像机拍摄利用CMOS传感器获取,监控视频为只包含图像信息不包含语音信息的无声视频,这将导致监控视频中部分重要信息缺失,在某些特定情况下,需要从无声监控视频中还原语音信息来获取更多重要信息。但是,上述视觉语音恢复方法中,高速视觉测量方法是通过高速摄像机机来完成,设备昂贵,且高速摄像机帧率过高,会导致数据量太大的问题;此外,高速摄像机对于环境光线的要求较高,需要强光源照明目标物体。而现实生活中,监控设备为普通摄像机,户外监控环境可能会出现光线昏暗甚至黑暗环境的情况,因此基于高速摄像机的语音还原方法受光线明暗的影响并不适用生活中监控视频的语音还原处理。
发明内容
为了解决上述光线明暗导致的视频语音还原问题,本发明提供一种基于相位一致性边缘检测的语音还原方法,利用图像相位对图像亮度和对比度不敏感的特点,可以很好的克服光线明暗所带来的纹理结构影响,从而提取到很好的边缘特征,基于相位一致性边缘检测的特点检测大范围的特征。
一种基于相位一致性边缘检测的语音还原方法,包括以下步骤:
利用普通摄像机采集视频数据;
采用相位一致性边缘检测算法依次对视频数据的每一帧图像进行边缘检测,得到每一帧图像的二值化图像;
对二值化图像进行重采样,提取像素点为255的偏移量作为振幅信号;
对振幅信号进行插值处理,得到语音的初步幅度信号;对语音的初步幅度信号进行修正和增强处理,得到最终还原的语音信号。
进一步的,采用相位一致性边缘检测算法对图像进行边缘检测包括以下步骤:首先将视频数据中的每一帧RGB彩色图像转换成灰度图像;再采用Log-Gabor滤波器对灰度图像进行带通滤波;带通滤波后,计算灰度图像的相位一致性;采用非极大抑制NMS方法对相位一致性进行非极大抑制处理,获得灰度图像的边缘精准定位和细化边缘;采用双阈值滞后方法进行边缘像素点检测,检测出所有边缘像素点后进行边缘连接,得到二值化图像。
进一步的,用双阈值滞后方法进行边缘像素点检测包括:将每个像素的梯度分别与第一阈值Tmax、第二阈值Tmin作比较,如果像素梯度大于第一阈值Tmax,则将该像素点的像素值设为255,并将该像素点作为边缘像素点;如果像素梯度小于第二阈值Tmin,则将该像素点的像素值设为0,并将该像素点作为非边缘像素点;如果像素梯度介于第一阈值Tmax和第二阈值Tmin两者之间,则该像素点为不确定点,判断该像素点是否与某个被确定的边界点相连,如果该像素点与被确定的边界点相连,就认为该像素点是边界点,将该像素点的像素值设为255,如果该像素点没有与被确定的边界点相连,就认为它不是边界点,将该像素点的像素值设为0。
进一步的,边缘连接包括:
(1)对边缘检测后的图像F进行扫描,当像素点为非零灰度像素P时,跟踪以P点开始的轮廓线,找到到轮廓线终点Q;
(2)找到原始灰度图像中与轮廓线终点Q对应的点Q’的8领近区域,如果Q’的领域中有非零像素R’存在,则将非零像素R’包括到图像F中,将非零像素R’作为轮廓线的起点R,再从R开始,重复步骤(1),直到无法继续;
(3)当完成以P开始的轮廓线搜索后,标记为已访问,返回步骤(1),寻找下一条轮廓线,直到无法找到新的轮廓线为止,得到二值化边缘图像。
进一步的,对初步语音信号修正和增强处理包括对初步语言信号进行小波降噪处理包括:首先对初步语言信号进行小波变换,得到一组小波分解系数;然后确定第三阈值,对小波分解系数进行阈值处理,包括将小于第三阈值的小波分解系数置0,得到估计小波系数;最后利用估计小波系数进行小波重构,得到最终还原的语音信号。
进一步的,若拍摄对象为非直线,在得到每一帧图像的二值化图像后,先做偏移计算,再进行重采样,具体步骤包括:采用一致性边缘检测算法对视频数据的第一帧图像做基于相位的一致性边缘检测,得到第一帧图像的二值化图像V1;再依次读取所有视频帧,分别对每个视频帧做基于相位一致性的边缘检测,得到每个视频帧的二值化图像Vn,其中n=2,......,z,z表示视频数据中包含的视频帧数量;根据偏移计算公式对二值化图像Vn和第一帧图像的二值化图像V1做差值计算,得到每个视频帧的偏移量S1,S2......,Sn,所述偏移计算公式为:Sn=Vn-V1,其中,S1表示第一帧图像的偏移量,Sn表示第n帧图像的偏移量;将每个视频帧的偏移量相加,得到一维信号S=S1+S2+...+Sn,其中S表示所有视频帧的总偏移量;再对所述一维信号S进行重采样,得到振幅信号。
进一步的,若拍摄对象为直线,在重采样后得到振幅信号,对振幅信号进行归一化处理后再对振幅信号进行插值处理。
进一步的,插值处理采用基于自回归AR的插值方法,具体包括以下步骤:每隔一帧图像为一个间隙,找到待插入位置P;根据待插入位置P之前和之后的视频帧,使用AR模型预测待插入位置P的缺失信号,将预测的缺失信号插入位置P,对每个间隙重复这个过程,插值处理完成后,得到初步语音信号。
进一步的,使用AR模型预测待插入位置P的缺失信号,计算公式包括:
其中,xn表示预测值,ci是AR模型参数,ψi[n]是正弦基的第n个元素,rn表示平均数等于0,标准差等于σ的白噪声序列,Q表示自回归阶数上限值。
本发明的有益效果:
本发明不再依赖高速摄像机,通过普通摄像机拍摄的视频就可以还原声音,同时还解决了由于光线问题带来的影响;本发明通过拍摄物体的边缘振动信息还原语音信号,采用基于相位的一致性边缘检测对视频帧进行边缘检测,可以获得边缘的精准定位,增加了语音信号还原的准确性。
附图说明
下面结合附图和具体实施方式对本发明做进一步详细的说明。
图1为本发明实施例的一种基于相位一致性边缘检测的语音还原方法的流程框图;
图2为本发明实施例1的拍摄装置示意图;
图3为本发明实施例1的图像处理流程图;
图4为本发明实施例1的语音还原方法流程图;
图5为本发明实施例中的图像二值化处理流程图;
图6为本发明实施列1的小波阈值去噪流程图;
图7为本发明实施例2的图像处理流程框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现实生活中的监控视频大多数采用普通摄像机采集,主要利用CMOS传感器获取,CMOS传感器使用的是滚动快门模式,其特点是将每一帧图像按时间顺序从顶行到底行逐行写入,当拍摄物体处于快速运动状态时,就会产生滚动快门效应,即拍摄物体快速运动时,普通摄像机拍摄的图像会出现变形,如果拍摄物体只在平行镜头的方向震动,滚动快门效应就能记录下物体震动的振幅。基于此,我们可以利用滚动快门效应捕捉语音信息。
如图1所示,本发明的一种基于相位一致性边缘检测的语音还原方法,包括但不限于以下步骤:
利用CMOS普通摄像机拍摄对象,采集视频数据。本说明书所指的拍摄对象具有较明显的边缘轮廓,CMOS普通摄像机的特点是在拍摄对象时,将每一帧图像从顶行到底行逐行写入,每一行的写入时间不同。本说明书所指的视频数据均由彩色图像组成。
对上述采集的视频数据进行处理:采用相位一致性边缘检测算法依次对每一帧图像进行边缘检测,得到每一帧图像的二值化图像。所述二值化图像中包括边缘产生偏移后的位置和边缘产生偏移的时间。
进一步的,采用相位一致性边缘检测算法对每一帧图像进行边缘检测包括但不限于以下过程:
首先将视频数据中的每一帧RGB彩色图像转换成灰度图像;为了有效地计算特征点的相位一致性,对每帧灰度图像进行log-Gabor带通滤波处理,得到特征的局部能量;
带通滤波后,根据特征的局部能量计算灰度图像的相位一致性PC;
采用非极大抑制NMS方法根据相位一致性获得图像的边缘精准定位和细化边缘;
进一步的,在一个实施中,通过非极大抑制NMS方法进行边缘定位具体包括:在中心像素点的梯度垂直方向选三个点,如果中间点值最大则暂且认为其是边缘点,如果中间点值不是最大则不是边缘点。非极大值抑制算法的本质是搜索局部极大值,抑制非极大值元素。
采用双阈值滞后方法检测出所有边缘像素点,检测出所有边缘像素点后,进行边缘连接,得到二值化图像。
进一步的,在一个实施例中,采用双阈值滞后方法对边缘进行检测具体包括:将每个像素梯度分别与第一阈值Tmax、第二阈值Tmin作比较,如果一个像素梯度大于第一阈值Tmax,则将该像素的像素值设为255,并将该像素点作为边缘像素点;如果梯度小于第二阈值Tmin,则将该像素的像素值设为0,并将该像素点作为非边缘像素点。如果一个像素的梯度介于第一阈值Tmax和第二阈值Tmin两者之间,则该像素点为不确定点,需要判断这个像素点是否与某个被确定的边界点(即边缘像素点)相连,如果该像素点与某个被确定的边界点相连,就认为该像素点是边界点,将该像素点的像素值设为255,如果该像素点没有与被确定的边界点相连,就认为它不是边界点,将该像素点的像素值设为0。
进一步的,在一个实施例中,进行边缘连接具体包括:
(1)对边缘检测后的图像F进行扫描,当像素点为非零灰度像素P时,跟踪以P点开始的轮廓线,找到到轮廓线的终点Q;
(2)找到原始灰度图像中与轮廓线的终点Q点对应的Q’点的8领近区域,如果Q’的8领域中有非零像素R’存在,则将非零像素R’包括到图像F中,将非零像素R’作为R点,再从R开始,重复步骤(1),直到无法继续;
(3)当完成以P开始的轮廓线搜索后,标记为已访问,返回步骤(1),寻找下一条轮廓线,直到无法找到新的轮廓线为止,得到二值化边缘图像。
得到每一帧图像的二值化图像后,遍历每帧二值化图像,对二值化图像进行重采样操作,重采样范围(0-1),重采样的具体取值根据实际情况进行调整;记录值为255的像素点的数组下标,得到振幅信号。对二值化图像重采样可以提高计算速度,因为我们需要遍历每一帧图像的每一行数据,如果每行都进行遍历,计算量太大,所以需要进行重采样,隔行遍历,增加计算效率。
若得到的振幅信号为大于0的正值,则需要进一步对振幅信号做归一化处理,将信号的幅度平均值转换为0。对每帧图像分别做归一化处理,可以有效消除视频采集过程中由于相机抖动、纸张倾斜等因素而产生的噪音。
普通摄像机拍摄存储图像时,每帧图像到下一帧图像之间有一定时间间隔,这段时间的语音信号被丢失,所以需要进行插值处理,尽可能的还原丢失的这部分语音信号,插值处理完成后,得到初步语音信号。对初步语音信号进行修正和增强,得到最终还原的语音信息。具体地,对初步语音信号进行小波降噪处理,包括但不限于以下步骤:首先对初步语言信号进行小波变换,得到一组小波分解系数;然后对小波分解系数进行阈值处理,得到估小波系数;最后利用估计小波系数进行小波重构,得到最终还原的语音信息。
为了是本发明更加清楚、准确,接下来结合附图和具体实施例对本发明作进一步的详细说明:
实施例1
在一个具体实施例中,利用普通摄像机拍摄一条直线的振动情况,拍摄装置包括:包括镜头和CMOS传感器的普通摄像机成像系统、拍摄对象、声源、灯光、信号处理系统,拍摄对象位于声源声波信号的压力波动范围之内,同时,拍摄对象位于摄像机的拍摄范围之内,信号处理系统选用GPU或者CPU系统。在此实施例中,拍摄对象为A4纸上的一条直线,声源为低于1000Hz的纯音,A4纸位于声源声波信号的压力波动范围之内,且声源体垂直于A4纸发出持续信号,尽可能使拍摄对象沿着水平方向振动,如图2所示。
如图3-4所示,在本实施例中,基于相位一致性边缘检测的语音还原方法包括以下步骤:
拍摄视频:利用普通摄像机对A4纸进行持续拍摄,得到视频数据。
边缘检测:采用相位一致性边缘检测算法依次对视频数据的每一帧图像进行边缘检测,得到每一帧图像的二值化图像。如图5所示,具体步骤包括:
1)利用灰度化处理函数将视频数据中的每一帧彩色图像转换为灰度图像。可选地,调用rgb2gray函数实现彩色图像到灰度图像的转换。
2)灰度化处理后,需要将每帧图像从不同方向上进行log-Gabor滤波处理,得到不同方向的局部能量。根据得到的不同方向的局部能量从不同尺度和方向上计算各像素点上的振幅与相位。在图像灰度处理后,进行log-Gabor滤波有助于去除直流分量,有效克服光照变化带来的影响,可以保证提取更多的图像细节信息,从而检测出更精细的变化。
3)利用相位一致性((phase congruency),PC)公式计算每像素点各尺度和方向的局部能量之和与振幅和之商,得到图像每个像素点的相位一致性PC。
相位一致性PC的计算公式如下:
其中,An表示第n个频率分量的幅度;
代表第n个频率分量的相位偏差;φ
n(x)代表傅里叶分量在x处的局部相位。
3)图像的边缘常常是灰度值跳跃比较大的地方,而这些跳跃比较大的区域常常范围是比较宽的,如果用这个比较宽泛的区域当做边缘,显然会有很大的不足,因此为了得到细化的精确边缘,在计算边缘时,常常会考虑邻域范围内的像素。灰度值的变化可以用像素梯度来衡量。非极大抑制NMS方法只保留梯度方向变化最大的像素点,可以细化边界。基于此,本说明书采用非极大抑制NMS方法对相位一致性进行非极大抑制处理,进行灰度图像的边缘精确定位和边缘细化,具体包括:在中心像素点的梯度垂直方向选三个点,如果中间点值最大则暂且认为其是边缘点,如果中间点值不是最大则不是边缘点。
非极大抑制NMS方法只保留了每个局部区域的最大像素值,从而细化边缘,在施加非极大值抑制之后,剩余的像素可以更准确地表示图像中的实际边缘。然而,仍然存在由于噪声和颜色变化引起的一些边缘像素。为了解决这些杂散响应,必须用弱梯度值过滤边缘像素,并保留具有高梯度值的边缘像素,所以还要进行阈值滞后处理。
4)采用双阈值滞后方法对边缘像素点进行检测和连接。滞后阈值包括第一阈值Tmin和第二阈值Tmax两个阈值,利用两个阈值对图像进行二值化,具体过程包括:将每个像素的梯度分别与第一阈值Tmax、第二阈值Tmin作比较,如果一个像素梯度大于第一阈值Tmax,则将该像素点的像素值设为255,并将该像素点作为边缘像素点;如果梯度小于第二阈值Tmin,则将该像素点的像素值设为0,并将该像素点作为非边缘像素点;如果一个像素的梯度介于第一阈值Tmax和第二阈值Tmin两者之间,则该像素点为不确定点,需要判断这个像素点是否与某个被确定的边界点(即边缘像素点)相连,如果该像素点与某个被确定的边界点相连,就认为该像素点是边界点,将该像素点的像素值设为255,如果该像素点没有与被确定的边界点相连,就认为它不是边界点,将该像素点的像素值设为0。检测出所有边缘像素点后,连接边缘,采用上述双阈值滞后方法对边缘进行连接,最终得到只包含边缘信息的二值化图像,在二值化图像中,可以把横坐标表示边缘产生偏移后的位置,纵坐标表示边缘产生偏移的时间。
重采样:在二值化图像上,每间隔时间T对边缘产生偏移后的位置进行重采样,并将采样值依次存储为语音信号的幅度值。重采样得到的采样值即二值化图像中边缘到图像纵轴的垂直距离,因此,重采样得到的信号均为大于0的正值信号。
归一化:对语音信号的幅度值做归一化处理,将语音信号的幅度的平均值转换为0,对视频数据中的每帧图像分别做归一化处理,可以有效消除视频采集过程中由于相机抖动、纸张倾斜等因素而产生的噪音。
进一步的,归一化处理的计算公式包括:
其中,s(n,l)表示进行归一化后的信号,
为第l帧信号的平均值,a(n,l)为第l帧的第n行信号值。
帧间插值:普通摄像机拍摄存储图像时,每帧图像到下一帧图像之间有一定时间间隔,这段时间的语音信号被丢失,所以需要进行插值计算,尽可能的还原丢失的这部分语音信号。自回归AR模型是一种线性预测,利用前期若干时刻的随机变量的线性组合来描述以后某时刻随机变量的线性回归模型,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点)。本发明使用基于自回归(AR)的插值方法近似的恢复丢失的信号:每隔一帧图像为一个间隙,找到待插入位置P;根据待插入位置P之前和之后的视频帧,使用AR模型预测待插入位置P的缺失信号,将预测的缺失信号插入位置P。对每个间隙重复这个过程,插值处理完成后,得到初步语音信号。
使用AR模型预测待插入位置P的缺失信号,计算公式包括:
其中,xn表示预测值,ci是AR模型参数,ψi[n]是正弦基的第n个元素,rn表示平均数等于0,标准差等于σ的白噪声序列,Q表示自回归阶数上限值。
对插值后的初步语音信号进行小波降噪处理:得到的初步语音信号包含了大量的噪声,为了提高语音信号的可读性,需要做语音信号降噪增强处理。
小波阈值去噪的基本思想是将信号通过小波变换(采用Mallat算法)后,信号产生的小波系数含有信号的重要信息,将信号经小波分解后小波系数较大,噪声的小波系数较小,并且噪声的小波系数要小于信号的小波系数,通过选取一个合适的第三阀值,大于第三阀值的小波系数被认为是信号产生的,应予以保留,小于第三阀值的则认为是噪声产生的,将小于第三阈值的小波系数置为零从而达到去噪的目的。小波阈值去噪的流程图如图6所示,具体步骤包括:
(1)分解:选定层数为N的小波函数对初步语音信号进行小波分解,得到各层的小波分解系数;
(2)阀值处理过程:确定第三阀值,用阀值函数对各层的小波分解系数进行量化:将小于第三阈值的小波系数置为零,得到估计小波系数;
(3)重构:利用估计小波系数重构信号,得到最终还原的语音信号。上述实施例的拍摄对象为一条垂直线,为特殊情况,而现实视频里的对象很少是一条直线,当拍摄对象为不规则物体时,可以选择下面实施例的方法。
实施例2
在另一个具体实施例中,利用普通摄像机拍摄一条弧线的振动情况,拍摄对象为A4纸上的一条弧线,其他拍摄装置均与上述实施例相同,如图7所示。
在本实施例中,基于相位一致性边缘检测的语音还原方法包括以下步骤:
拍摄视频:为了保证视频数据中的拍摄对象一开始处于静止状态,先打开普通摄像机进行拍摄后再播放声源信号,得到视频数据。
边缘检测:从视频数据中任取静止时刻的一个视频帧,如取第一帧图像A1,采用一致性边缘检测算法对第一帧图像A1做基于相位的一致性边缘检测,得到第一帧图像A1的二值化图像V1。再依次读取所有视频帧,分别对每个视频帧做基于相位一致性的边缘检测,得到每个视频帧的二值化图像Vn,其中n=2,......,z,z表示视频数据中包含的视频帧数量。
偏移计算:根据偏移计算公式对二值化图像Vn和二值化图像V1做差值计算,得到每个视频帧的偏移量S1,S2......,Sn,偏移计算公式为:Sn=Vn-V1。将每个视频帧的偏移量相加得到一维信号S=S1+S2+...+Sn,该一维信号为振幅信号。其中,S1表示第一帧图像的偏移量,Sn表示第n帧图像的偏移量,S表示所有视频帧的总偏移量。
重采样:在二值化图像上,每间隔时间T对边缘产生偏移后的位置进行重采样,并将采样值依次存储为语音信号的幅度值,重采样频率范围0-1,具体地重采样频率可以根据实际情况确定,本说明书不做限制。
帧间插值:使用基于自回归(AR)的插值方法近似的恢复丢失的信号,得到初步语音信号。和实施例1中的帧间插值方法相同,请参照实施例1,此处不多做赘述。
对插值后的初步语音信号进行小波阈值去噪增强处理:和实施例1中的小波阈值去噪增强方法相同,请参照实施例1,此处不多做赘述。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”、“包含”、“具有”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-0nly Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所述仅是本申请的具体实施方式,应当指出,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。