发明内容
本发明的目的是克服现有技术的不足和问题以适用于新的应用场景。针对机动车鸣笛的检测和定位的应用场景,提供一种基于分置式单麦克风或多麦克风小型阵列的多声源检测、标记和定位的系统和方法,以解决汽车鸣笛检测定位系统中多声源、并发、计算复杂度和实时性的问题。
具体的,根据本发明的第一个方面,本发明提供了一种分置式声源定位系统,包括:多个麦克风,所述麦克风均分为两组,分别位于在道路两侧并对称设置;处理器,接收所述多个麦克风的声音信号并进行处理,对所述声音信号进行包络检波,分析其绝对值的变化和斜率,以检测每个声音信号的有效上升沿和有效下降沿;对于每个有效的上升沿或下降沿,记录所述上升沿之后或所述下降沿之前的预设时间段内的时域信号,并与在记录该时域信号之前的全部时域信号计算广义互相关函数,根据所述函数峰值是否小于阈值标记可能存在的车号或不存在的车号,以确定该时域信号内的全部车号;选择某一麦克风作为参考麦克风,计算得到其他麦克风相对于参考麦克风的时延,选择至少三个时延,基于到达时间差进行声源定位。
进一步地,所述麦克风为四个,分别安装在道路两边的四个灯杆上;或者所述麦克风为十二个,分别安装在道路两边的四个灯杆上,每个灯杆安装三个麦克风。
进一步地,在所述包络检波之前,进一步包括:对所述声音信号进行A/D转换和带通滤波。
进一步地,在所述检测之后根据所述声音信号的特征决定所述预设时间段的长度。
进一步地,通过将所述时域信号变换到频域,并采取相位加权的方式来计算所述广义互相关函数。
进一步地,每个灯杆上的三个麦克风根据连续收到的声音信号进行声源预定位,并根据几何位置进行时间预测,以估计该声音信号到达其他灯杆上的麦克风的时间。
进一步地,每个灯杆上的麦克风的后续信号处理流程的触发条件为边沿检测有效或当前时间到达所述估计的时间附近。
进一步地,对于每个声源,选择其对应的4个唯一沿的麦克风进行声源定位,唯一沿的定义为该声源的信号到达该麦克风的时间同其他声源到达该麦克风的时间间隔足够大以致该麦克风的包络不会发生重叠。
进一步地,所述基于到达时间差进行声源定位,包括:基于麦克风和声源的空间几何位置,首先选择参考麦克风,计算其他各麦克风接收信号与参考麦克风的时延差,再对其空间几何位置方程采用一步法或两步法进行求解,以计算出声源的位置。
进一步地,所述声源的位置进一步结合外部的视频监控摄像头的空间几何位置和镜头角度,确定出所述声源在监控视频中对应的位置,从而确定声源相关信息。
具体的,根据本发明的第二个方面,本发明还提供了一种分置式声源定位方法,包括:接收多个麦克风的声音信号,所述麦克风均分为两组,分别位于在道路两侧并对称设置;对所述声音信号进行包络检波,分析其绝对值的变化和斜率,以检测每个声音信号的有效上升沿和有效下降沿;对于每个有效的上升沿或下降沿,记录所述上升沿之后或所述下降沿之前的预设时间段内的时域信号,并计算该时域信号与在该时域信号之前的全部时域信号的广义互相关函数,根据所述函数的峰值是否小于阈值标记可能存在的车号或不存在的车号,以确定该时域信号内的全部车号;选择某一麦克风作为参考麦克风,计算得到其他麦克风相对于参考麦克风的时延,选择至少三个时延,基于到达时间差进行声源定位。
与现有技术相比,本发明的有益效果:
本发明中针对道路机动车鸣笛检测和定位的系统,提供了一种基于包络检波、广义互相关函数和TDOA声源定位的多声源检测和定位方法,采用易于部署和扩展的分置式麦克风(或小阵列),使用简单易于实现的包络检波的方法用于检测和定位系统的触发,凭借广义互相关函数的峰值作为标记同一车的鸣笛声的判断依据,之后采用复杂度低实时性好的TDOA声源定位算法来进行多声源的定位,从而解决了集中式声纳系统覆盖范围小、搜索范围大、实时性差、无法进行多声源的检测定位或算法复杂度高的问题,也解决了汽车鸣笛这类特定应用场景下TDOA算法不适用于多声源定位和其他多声源分离定位,算法复杂度高、实时性差的问题,对机动车鸣笛系统的简化和优化具有一定的意义和启发。
本发明的基本型的方案可以应用于覆盖范围稍小,范围内汽车流量较低,同时鸣笛的汽车数量和概率都较低的场景下,在有大量汽车同时鸣笛的场景下误差会变大,也存在漏检错检的情况。为了解决这个问题,本系统提供了扩展型的方案,采用扩展型麦克风的布置方案,随着N的提高,可以有效的检测出更多汽车同时鸣笛的情况,大幅降低漏检错检的情况。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明提供了一种分置式声源定位系统,包括:多个麦克风,麦克风均分为两组,分别位于在道路两侧并对称设置;处理器,接收多个麦克风的声音信号并进行处理,对声音信号进行包络检波,分析其绝对值的变化和斜率,以检测每个声音信号的有效上升沿和有效下降沿;对于每个有效的上升沿或下降沿,记录上升沿之后或下降沿之前的预设时间段内的时域信号,并与在记录该时域信号之前的全部时域信号计算广义互相关函数,根据函数峰值是否小于阈值标记可能存在的车号或不存在的车号,以确定该时域信号内的全部车号;选择某一麦克风作为参考麦克风,计算得到其他麦克风相对于参考麦克风的时延,选择至少三个时延,基于到达时间差进行声源定位。
如图1-4所示,本发明的基于分置式麦克风的汽车鸣笛多声源检测、标记和定位系统,包括多个麦克风和一个集中式处理器。根据需要检测的道路情况(如车道数,道路宽度,灯杆距离等)选择基本型或扩展型驻极体麦克风装置的布置方案,并进一步确定装置布置的高度等参数,基本型和扩展型装置如图1和图2所示。如图1所示,基本型装置包括道路两旁对称的四个灯杆,每边两个灯杆,每个灯杆上分别安装有一个麦克风(星星标记);如图2所示,扩展性装置包括道路两旁对称的四个灯杆(小方点标记),每边两个灯杆,其中每个灯杆上分别安装三个麦克风(星星标记),三个麦克风在单个灯杆上也是对称布置。
以上虽然附图里展示了本发明的灯杆的数量和麦克风的数量,然而并非对于这些数量的限制,本领域技术人员可以理解,上述数量都是可以根据实际情况进行调整。例如N可以取1、2、3、4,甚至更多数量,而灯杆的数量也可以是2、4、6,甚至更多的数量。如果检测定位需要覆盖的范围越大,则灯杆距离越大,要求的定位精度越高,覆盖道路车流量越大,鸣笛概率越高,建议选择更高阶(N更大)的扩展型装置。
图5是本发明的分置式声源定位系统处理流程总体示意图,提供了一种基于包络检波、广义互相关函数和TDOA声源定位的多声源检测和定位方法,采用易于部署和扩展的分置式麦克风(或小阵列),使用简单易于实现的包络检波的方法用于检测和定位系统的触发,凭借广义互相关函数的峰值作为标记同一车的鸣笛声的判断依据,之后采用复杂度低实时性好的TDOA声源定位算法来进行多声源的定位,从而解决了集中式声纳系统覆盖范围小、搜索范围大、实时性差、无法进行多声源的检测定位或算法复杂度高的问题,也解决了汽车鸣笛这类特定应用场景下TDOA算法不适用于多声源定位和其他多声源分离定位,算法复杂度高、实时性差的问题,对机动车鸣笛系统的简化和优化具有一定的意义和启发。
以下分别介绍基本型麦克风装置布置方案(N=1)的工作流程和扩展型麦克风装置布置方案(N=3)的工作流程:
实施例1基本型麦克风装置布置方案
S1、接收多个麦克风的声音信号,所述麦克风均分为两组,分别位于在道路两侧并对称设置。
集中式处理器对每个驻极体麦克风初始化一路独立的处理通道c(c=0,1,2,...,mic number-1),系统架构如图3,其中每个灯杆只装有一个麦克风。集中式处理器的结构如图4所示,包括多路放大器、A/D子板、DSP/FPGA/ARM处理器。集中式处理器的信号处理流程为:先对每个通道接收到的音频信号进行放大,之后进行A/D转换,采样频率设置为44100Hz,之后进行数字带通滤波以滤除低频道路噪声和抗混叠,数字带通滤波器的低频截止频率设置为200Hz,高频截止频率设置为20kHz。
S2、对所述声音信号进行包络检波,分析其绝对值的变化和斜率,以检测每个声音信号的有效上升沿和有效下降沿。
如图6所示,每个通道进行独立的包络检波,设置其绝对值变化的阈值ΔA,其斜率的绝对值阈值为K。然后进行边沿检测,如果每个通道的包络同时满足绝对值的变化大于ΔA和斜率的绝对值大于K,认为接收到一个有效的上升沿或下降沿,则触发后续的处理过程,若包络变化的值为正且斜率为正则接收到上升沿,若包络变化的值为负且斜率为负则接收到了下降沿。
S3、对于每个有效的上升沿或下降沿,记录所述上升沿之后或所述下降沿之前的预设时间段内的时域信号,并计算该时域信号与在该时域信号之前的全部时域信号的广义互相关函数,根据所述函数的峰值是否小于阈值标记可能存在的车号或不存在的车号,以确定该时域信号内的全部车号。
在这个步骤中,对每个通道接收到的有效上升沿和下降沿进行联合处理,不同的车标记为不同的m(m=0,1,2,...),若采用基本型麦克风装置布置方案,其具体步骤如图6,对于上升沿和下降沿分别描述如下:
1)对于每个有效的上升沿,标记其为i(i=0,1,2,...),表示其为接收到的第i个上升沿,并记录其之后T时间的时域信号。
若i=0,即系统接收到的第一个上升沿,则标记为第一个车(m=0);
若i>0,与之前记录的前i-1个时域信号计算广义互相关函数,得到广义互相关函数的峰值,广义互相关函数按照如下公式进行计算:
xi(t)=ais(t-τi)+ni(t)
其中s(t)为声源发出的信号,经过τ的延时,加上传输过程中的衰减系数ai和噪声n(t),得到该声源信号到达第i个麦克风的信号xi(t);
rij(τ)表示第i个麦克风接收信号和第j个麦克风接收信号的互相关函数;
为了简化计算,将时域互相关变换到频域进行计算,X
i(f)为x
i(t)进行傅里叶变换得到的频域信号,
为其复共轭,R
ij(τ)为两个信号在频域的互相关表示形式,与r
ij(τ)是一对傅里叶变换对;
Rij(τ)取得峰值时对应的τ即为rij(τ)峰值时对应的τ,认为是该两路信号对应的时延。
为了锐化Rij(τ)的峰值,使用相位变化权重对Rij(τ)进行加权,加权系数为互功率谱绝对值的倒数,即如下公式:
其中ψij(w)表示加权的系数,Gij(w)表示第i个信号和第j个信号之间的互功率谱,Rij(τ)为使用相位变化权重加权之后的两个信号的频域互相关函数。
1>若其和第l(l=0,1,..,i-1)个记录信号的广义互相关函数峰值大于设置的广义互相关函数的阈值H,则认为这两段信号中包含同一车的鸣笛声(但不能说明这两段信号对应的所有车完全一致),记录i和l的广义互相关函数峰值处对应的时延,并将第l段信号所标记的车号赋给第i段信号,即记录第i段信号中可能包括第l段信号中对应的全部车号(标记可能存在的车号);
2>若其和第l段信号的广义互相关函数峰值小于阈值H,则认为这两段信号中不包含同一车的鸣笛声,则记录第i段信号中不包括第l段信号中所对应的车号(标记不存在的车号);
3>若其和前i-1个记录信号的广义互相关函数峰值均小于阈值H,则认为系统第一次接收到某一车的鸣笛声,则标记为第m+1个车;
第i段信号完成和之前全部i-1段信号的比较之后,从标记的可能存在的全部车号中去除标记的不存在的车号,即得到了第i段信号对应的全部车号(判断其对应的全部车号或新车号);
2)对于每个有效的下降沿,标记其为j(j=0,1,2,...),表示其为接收到的第j个下降沿,并记录其之前T时间的时域信号。
若j=0,即系统接收到的第一个下降沿,则标记为第一个车(m=0);
若j>0,和之前记录的前j-1个时域信号计算广义互相关函数,得到广义互相关函数的峰值,
1>若其和第l(l=0,1,..,j-1)个记录信号的广义互相关函数峰值大于设置的广义互相关函数的阈值H,则认为这两段信号中包含同一车的鸣笛声(但不能说明这两段信号对应的所有车完全一致),记录j和l的广义互相关函数峰值处对应的时延,并将第l段信号所标记的车号赋给第j段信号,即记录第j段信号中可能包括第l段信号中对应的全部车号;
2>若其和第l段信号的广义互相关函数峰值小于阈值H,则认为这两段信号中不包含同一车的鸣笛声,则记录第j段信号中不包括第l段信号中所对应的车号;
3>若其和前j-1个记录信号的广义互相关函数峰值均小于阈值H,则认为系统第一次接收到某一车鸣笛声的停止信号,则标记为第m+1个车;
第j段信号完成和之前全部j-1段信号的比较之后,从标记的可能存在的全部车号中去除标记的不存在的车号,即得到了第j段信号对应的全部车号。
S4、选择某一麦克风作为参考麦克风,计算得到其他麦克风相对于参考麦克风的时延,选择至少三个时延,基于到达时间差进行声源定位。
对于第m个车,当接收到4*N个其对应的上升沿或下降沿后,或接收到4个其对应的唯一上升沿或下降沿(唯一沿表示的是其他声源到达此麦克风的时间和第m车的声音到达此麦克风的时间相差足够大,从而在包络上不会产生重叠),从接收到该车的信号的全部麦克风中选择4个对应唯一的上升沿或下降沿的麦克风,选择某一麦克风作为参考麦克风,进而得到对应的3个时延差,再根据几何关系计算出该车的位置(包括该车开始鸣笛的位置和结束鸣笛的位置)和鸣笛的持续时间,根据几何关系求解声源位置ε如图8,其求解方程如下:
ε=δ-2Rsd-2Srs
其中
其中Ri表示第i个麦克风距离参考麦克风的距离,di0表示根据第i个麦克风和参考麦克风的相对时延计算得到的距离差,S表示各个麦克风在空间的几何位置;
S5、根据上述方法得到声源相对于参考麦克风的俯仰角和方位角,结合参考麦克风的空间几何位置,确定出鸣笛车辆所在的位置,再结合视频监控摄像头的空间几何位置和镜头角度,确定出其在监控视频中对应的位置,从而确定出鸣笛车辆。通过声源定位系统和外部的摄像头视频监控系统联合运行,根据违规鸣笛汽车在监控视频中的位置确定违规汽车的车型、车牌号等信息。
实施例2扩展型麦克风装置布置方案
S1、接收多个麦克风的声音信号,所述麦克风均分为两组,分别位于在道路两侧并对称设置。
集中式处理器对每个驻极体麦克风初始化一路独立的处理通道c(c=0,1,2,...,mic number-1),系统架构如图3,其中每个灯杆只装有一个麦克风。集中式处理器的结构如图4所示,包括多路放大器、A/D子板、DSP/FPGA/ARM处理器。集中式处理器的信号处理流程为:先对每个通道接收到的音频信号进行放大,之后进行A/D转换,采样频率设置为44100Hz,之后进行数字带通滤波以滤除低频道路噪声和抗混叠,数字带通滤波器的低频截止频率设置为200Hz,高频截止频率设置为20kHz。
S2、对所述声音信号进行包络检波,分析其绝对值的变化和斜率,以检测每个声音信号的有效上升沿和有效下降沿。
如图6所示,每个通道进行独立的包络检波,设置其绝对值变化的阈值ΔA,其斜率的绝对值阈值为K。然后进行边沿检测,如果每个通道的包络同时满足绝对值的变化大于ΔA和斜率的绝对值大于K,认为接收到一个有效的上升沿或下降沿,则触发后续的处理过程,若包络变化的值为正且斜率为正则接收到上升沿,若包络变化的值为负且斜率为负则接收到了下降沿。
S3、对于每个有效的上升沿或下降沿,记录所述上升沿之后或所述下降沿之前的预设时间段内的时域信号,并计算该时域信号与在该时域信号之前的全部时域信号的广义互相关函数,根据所述函数的峰值是否小于阈值标记可能存在的车号或不存在的车号,以确定该时域信号内的全部车号。
在这个步骤中,对每个通道接收到的有效上升沿和下降沿进行联合处理,不同的车标记为不同的m(m=0,1,2,...),若采用扩展型的麦克风装置,具体步骤如图7,与基本型(图6)的不同之处在于:
1)因为布置在同一灯杆上的各个麦克风的间距远远小于不同灯杆的间距和汽车之间的间距,所以认为同一灯杆在接收到一个有效的上升沿或下降沿之后,其后满足时延τ的N-1个有效的上升沿或下降沿是同一灯杆上其他N-1个麦克风接收到的信号;因此,在包络检波之后,首先进行边沿检测或预测时间附近的上升沿或者下降沿。各个麦克风组的后续信号处理流程的触发条件为边沿检测有效或当前时间到达预测时间附近。如果是上升沿或预测上升沿则记录同组麦克风之后T时间的信号,如果是下降沿或预测下降沿则记录同组麦克风之前T时间的信号。
2)进一步的,扩展型装置可以认为每次接收到一组(N个)有效的上升沿或者下降沿;
3)进一步的,每个灯杆可以根据接收到的一组(N个)信号,使用TDOA算法进行预定位,得到鸣笛汽车的可能位置,并根据预定位的位置和灯杆的位置粗估该声源到达其他各个灯杆的麦克风的大致时间,在以该时间为中心前后Δt的时间范围内进行搜索计算广义互相关函数,作为其他灯杆的麦克风除包络检波外的另一个触发条件(因为可能存在某一个声源的下降沿和另一声源的上升沿在到达时间上相距很短,导致包络变化较小的情况);4)进一步的,在每个麦克风被触发之后,具体步骤如上述实施例1中的1)和2);
S4、选择某一麦克风作为参考麦克风,计算得到其他麦克风相对于参考麦克风的时延,选择至少三个时延,基于到达时间差进行声源定位。
对于第m个车,当接收到4*N个其对应的上升沿或下降沿后,或接收到4个其对应的唯一上升沿或下降沿(唯一沿表示的是其他声源到达此麦克风的时间和第m车的声音到达此麦克风的时间相差足够大,从而在包络上不会产生重叠),从接收到该车的信号的全部麦克风中选择4个对应唯一的上升沿或下降沿的麦克风,选择某一麦克风作为参考麦克风,进而得到对应的3个时延差,再根据几何关系计算出该车的位置(包括该车开始鸣笛的位置和结束鸣笛的位置)和鸣笛的持续时间,根据几何关系求解声源位置ε如图8,其求解方程如下:
ε=δ-2Rsd-2Srs
其中
其中Ri表示第i个麦克风距离参考麦克风的距离,di0表示根据第i个麦克风和参考麦克风的相对时延计算得到的距离差,S表示各个麦克风在空间的几何位置;
S5、根据上述方法得到声源相对于参考麦克风的俯仰角和方位角,结合参考麦克风的空间几何位置,确定出鸣笛车辆所在的位置,再结合视频监控摄像头的空间几何位置和镜头角度,确定出其在监控视频中对应的位置,从而确定出鸣笛车辆。通过声源定位系统和外部的摄像头视频监控系统联合运行,根据违规鸣笛汽车在监控视频中的位置确定违规汽车的车型、车牌号等信息。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。