发明内容
为了克服现有技术容易造成误判的缺陷,本发明提供一种双轴地磁车位检测方法和装置,该方法在技术上实现简单,成本低廉,且检测精度高的地磁车位检测方法。
为了解决上述技术问题,本发明的目的是通过以下技术方案实现:
本发明提供了一种双轴地磁车位检测方法,包括:实时读取当前两个方向的地磁感强度数据,一个方向为车辆入库方向,另一个方向为垂直地面向下;基于实时读取的两个方向的所述地磁感强度数据得到每一个方向对应的数据序列的波动值;其中,所述数据序列由多个所述地磁感强度数据组成;根据所述每一个方向对应的数据序列的波动值和预先设定的判决阈值,判定车位是否有车。
其中,在所述实时读取当前两个方向的地磁感强度数据步骤之后,判断前一时刻是否有车,包括:如果有车,则基于实时读取的所述地磁感强度数据得到数据序列的波动值;如果无车,则基于实时读取的所述地磁感强度数据对当前基准值进行更新。
其中,基于实时读取的所述地磁感强度数据对当前基准值进行更新,包括:用具有一定长度的窗口截断所述数据序列,计算出窗口内多个地磁感强度数据的平均值,以替代并作为新的当前基准值。
其中,还包括:将通过实时读取的两个方向的所述地磁感强度数据得到数据序列的波动值分别存入缓冲器;根据所述每一个方向对应的数据序列的波动值和预先设定的判决阈值,判定车位是否有车,还包括:判断缓冲区中存储的波动值的个数是否等于滑动窗口长度;当所述缓冲器中,每个方向对应的波动值个数等于滑动窗口长度时,将每个方向的波动值的平均值与预先设定的最大阈值和最小阈值进行比较,若当前车位状态为无车时,有任一一个方向的波动值的平均值大于最大阈值,则车位状态从无车变为有车;若当前车位状态为有车时,两个方向的波动值的平均值都小于最小阈值时,则车位状态从有车变为无车。
其中,根据所述每一个方向对应的数据序列的波动值和预先设定的判决阈值,判定车位是否有车,还包括:在当前车位状态为无车时,当检测车位状态为有车时进入进出车状态,如果再次检测车位状态为有车时,车位状态从无车变为有车;如果再次检测车位状态为无车时,车位状态保持无车不变;在当前车位状态为有车时,当检测车位状态为无车时进入进出车状态,如果再次检测车位状态为无车时,车位状态从有车变为无车;如果再次检测车位状态为有车时,车位状态保持有车不变。
其中,还包括校准步骤。
其中,所述校准步骤包括:判断采集的地磁感强度数据是否在预设的校准阈值范围内;若在校准阈值范围内,则保存所述地磁感强度数据,完成校准操作;若不在校准阈值范围内,则对当前值进行调整;其中,所述当前值是当前使用的地磁传感器中的数字电位器数值。
其中,所述对当前值进行调整的步骤,包括:若所述当前值超过预设的最大值,则将所述当前值重置为零;若所述当前值未超过预设的最大值,则将所述当前值加1。
本发明还提供了一种双轴地磁车位检测装置,包括:用于实时读取当前两个方向的地磁感强度数据的装置,其中,一个方向为车辆入库方向,另一个方向为垂直地面向下;用于基于实时读取的两个方向的所述地磁感强度数据得到每一个方向对应的数据序列的波动值的装置;其中,所述数据序列由多个所述地磁感强度数据组成;用于根据所述每一个方向对应的数据序列的波动值和预先设定的判决阈值,判定车位是否有车的装置。
其中,用于根据所述每一个方向对应的数据序列的波动值和预先设定的判决阈值,判定车位是否有车的装置,还包括:用于在当前车位状态为无车时,当检测车位状态为有车时进入进出车状态,如果再次检测车位状态为有车时,车位状态从无车变为有车;如果再次检测车位状态为无车时,车位状态保持无车不变的装置;用于在当前车位状态为有车时,当检测车位状态为无车时进入进出车状态,如果再次检测车位状态为无车时,车位状态从有车变为无车;如果再次检测车位状态为有车时,车位状态保持有车不变的装置。
与现有的方案相比,本发明所获得的技术效果:
采用双轴地磁强度检测,一个为车辆入库方向,另一个为垂直地面向下方向,检测准确度高。采用对N个地磁感强度的波动值取平均值,避免了偶然变化带来的误判,进一步提高了检测的准确性。引入车位的进出车状态进行车位检测,避免环境变化造成的误差,保证车位检测准确性。采用实时校准,并采用长度为M的窗口选取当前数据序列,并用求出窗口内数据的平均值替代地磁传感器的基准值,可避免环境变化带来的影响,无需采用温度补偿,在保持精度的同时,降低了成本。
具体实施方式
本发明通过地磁车位检测器检测车位的地磁数据,如车位的地磁感强度,并根据采集到的该车位的地磁感强度确定该车位地磁感强度的变化,进而判断车位的状态,即有车状态、进出车状态、无车状态。
具体而言,本发明可以在车位中设置地磁车位检测器,用于检测并采集一定范围内的地磁感强度。进一步地,该地磁车位检测器可以被置于车位下方,例如,埋设于车位的正下方。通过该地磁车位检测器可以采集两个方向的地磁感强度数据,包括:车辆入库方向的地磁感强度和垂直于地面向下的地磁感强度,通过两个方向的地磁感强度的变化确定车位状态的变化,提高了车位状态判断的准确度。本发明可以将采集的地磁感强度数据作为数据序列,并对N个数据序列的波动值取平均值,以分析车位的状态,避免了偶然的干扰,造成的误判。本发明引入“进出车”状态,可以有效的避免车位周边环境变化引起的瞬时干扰;并且本发明可以实时地校准地磁车位检测器,实时保持检测结果的精度。
以下将配合图式及实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
本发明提供了一种双轴地磁车位检测的方法,如图1所示,图1为根据本发明实施例的双轴地磁车位检测方法的流程图,包括如下步骤:
步骤S110,初始化地磁车位检测器,获取初始基准值,作为初始状态的当前基准值。
当启动地磁车位检测器时,需要将该地磁车位检测器进行初始化,以获得初始基准值,该初始基准值是地磁车位检测器复位或校准后的数值,可以在初始基准值基础上,根据采集的地磁感强度值,不断更新当前基准值,并依据该当前基准值实时跟踪周围环境的变化,以确定车位状态。
优选地,在本步骤中,地磁车位检测器可以包括双轴(两个方向的)地磁传感器,即车辆入库方向的地磁传感器和垂直于地面向下的地磁传感器。双轴地磁传感器可以用于检测车位的地磁变化。进一步地,双轴地磁传感器还可以采集车辆入库方向的地磁感强度和垂直于地面向下的地磁感强度。
具体而言,地磁车位检测器中包括两个存在关联关系的地磁传感器,其中一个地磁传感器用于采集车辆入库方向的地磁感强度,另一个地磁传感器用于采集垂直地面向下的地磁感强度。并且,每个方向的地磁传感器可以有各自对应的初始基准值和当前基准值。
在初始化地磁车位检测器时,记录每个方向的、初始化后的、地磁传感器的初始基准值,该初始基准值例如:地磁感强度值。可以将该初始基准值作为当前基准值的初始值,后续可以通过将采集到的地磁感强度值与当前基准值进行比较可以判断车位的状态是否发生了变化。
由于初始化地磁车位检测器后,暂时没有足够的数据用于计算初始基准值(当前基准值),所以可以在每个方向上,取少量之前采集过的样本(地磁感强度),来得到两个方向上的初始基准值。例如,该初始基准值,可以取两个以上地磁感强度的平均值,例如取10、20、50或100个数据序列的平均值。当然,该初始基准值(当前基准值)也可以事先直接存储在地磁车位检测器中,也可以直接调用上次使用的初始基准值。
该地磁车位检测器利用双轴地磁传感器,可以有针对性的对一个车位进行地磁感强度检测及采集,可以提高检测的准确度,减少外界环境变换造成的干扰。
步骤S120,实时读取当前两个方向的地磁传感器的数据。
实时读取两个方向的地磁传感器的数据,可以是指连续不断的读取两个关联的双轴地磁传感器检测的两个方向的地磁感强度数据。该实时读取的地磁传感器检测到的地磁感强度数据,可以被称作实时数据。进一步地,该实时读取当前的两个方向的地磁感强度数据的过程,可以被称作地磁传感器采集车位地磁感强度的过程。
本发明的该具体实施方式优选采用的是按照预设时间间隔,周期采集当前两处地磁传感器的地磁感强度数据,例如每隔10秒采集一次。
步骤S130,判断上一时刻车位是否有车。
如果有车,直接执行步骤S150,否则执行步骤S140。
在本步骤中,如果是第一次运行,则由于初始状态往往是无车状态,因此上一时刻是无车的。而后续的车位状态的判断,即,车位有车或者无车,可以参见步骤S170。换言之,判断上一刻是否有车,可以参考上一次执行步骤S170的结果来获得。
步骤S140,根据实时数据对两个方向的当前基准值进行动态跟踪和更新。其中,实时数据即是实时读取两个方向的地磁传感器的数据。换言之,如果车位无车,则基于实时读取的地磁感强度数据对当前基准值进行更新。
初始基准值可以为当前基准值的初始值。比如,当前基准值设为Xn(n=0,1,2,3,…),n为离散时间序列,则,X0值会赋值为初始基准值,而后,根据数据序列的变化对Xn(n>=1)开始进行动态跟踪和校准。
优选地,该数据序列为根据地磁感强度的实时变化生成的数据序列,数据序列由多个地磁感强度数据组成。
在本步骤中,在无车的情况下,可以用具有一定长度的窗口选取该数据序列,计算出窗口内多个地磁感强度数据的平均值,以替代并作为新的当前基准值。例如:长度为M,其中,M为大于0的整数。进一步地,可以计算出窗口内组成数据序列的M个地磁感强度数据的平均值,替代并作为当前基准值。
更进一步地,在本步骤S140之前S130步骤之后,进一步可以包括对M值的调整步骤。优选为,检测M值调整位的标志,根据该M值调整位的标志进行调整。当M值调整位标志为1(或0)时进行正向调整,将M值加上调整量△M,增加M值。当M值调整位为0(或1)时,向下调整,将M值减去△M,减小M值。其中,△M为大于0小于M的自然数,例如△M取值为1。窗口的长度M会根据实际的检测情况自动调节。
具体而言,可以根据实时数据的相关性来选择调整M值,当实时数据的相关性比较强且大于某一门限时,可减小M取值,反之的,当实时数据的相关性较弱,可以增加M取值,来增加窗口,扩大数据序列范围。其中,实时数据的相关性,可以指上一次的采集的地磁感强度数据和本次采集的地磁感强度之间的变化程度。如果变化大则相关性小,反之,如果变化小则相关性大。实时数据的相关性可以体现出读取的地磁感强度数据的稳定性。相关性大则数据稳定,可以减小M值,可以快速跟踪上车位地磁感强度的变化。相关性小则数据不稳定,这种不稳定可能是由于车辆在进出车过程中引起的,也可能是车位附近有车辆经过引起的地磁感强度波动/变化,此时增大M值,可以减缓对车位地磁感强度的跟踪速度。通过此方法可以快速对当前基准值进行自适应跟踪和更新,同时消除瞬时波动及干扰影响。
由于本发明可以拥有两个方向的地磁传感器数据,所以,可以在每一个方向上具有一个当前基准值,并且每个方向对应的当前基准值可以根据对应的数据序列进行更新。
步骤S150,基于两个方向的实时数据得到数据序列的波动值,并存入缓冲器。进一步地,如果车位有车,则基于实时读取的地磁感强度数据得到数据序列的波动值。
在本步骤中,计算波动值是采用差分算法进行的。
其具体方法为:通过计算步骤S120采集的地磁感强度数据与当前基准值的差值的绝对值,得到数据序列的波动值,存入缓冲器。
可以分别计算采集的两个方向的地磁感强度与对应的当前基准值的差值的绝对值,该差值的绝对值可以被称作波动值。进而得到每个方向上,组成数据序列的地磁感强度数据与对应的当前基准值的差值的绝对值,从而获得两个方向的地磁感强度的波动值,并将这两个方向的波动值分别存入缓冲区。采用波动值的方法可以消除不同地磁传感器自身及车位周围环境差异对判决的影响。
步骤S160,判断缓冲区中的存储的波动值的个数是否等于滑动窗口长度N。
滑动窗口长度N用于计算缓冲区中每个方向的波动值的个数。其中,N为大于0的整数。当缓冲器中每个方向对应的波动值个数达到(等于)滑动窗口长度N时,则执行步骤S170,否则重复执行步骤S150。优选地,该滑动窗口长度N值可以统一设定,也可以分别设定,例如,在用于监控各个地磁车位检测器的监控平台上进行设定,或者,还可以由地磁传感器根据实际数据自行调整。
优选地,地磁传感器根据实际数据自行调整,可以在步骤S160之前而步骤S150之后,进一步包括对滑动窗口长度N的取值调整的步骤。
具体可以为,检测滑动窗口长度N值调整位的值,根据N值调整位的取值进行调整。比如:当N值调整位为1(或0)时,将N值增加调整量△N,当N值为0(或1)时,将N减小△N,其中△N为大于0小于N的自然数,例如取值为1。通过调整N值,例如,当环境变化(如温度变化)导致的地磁感强度变化快时,可以增大N的取值,当环境变化对地磁感强度变化慢时,可以减小N的取值。从而可以减少误判的发生。进一步地,该滑动窗口长度N可以根据实际应用情况进行设置。
利用上述的M值和N值可以减少误判的发生和消除瞬时波动带来的干扰。例如,当在监控平台发现某个车位短时间内连续出现有车和无车状况,如,在一个时间窗口内(如1分钟内)该车位连续出现有车和无车状态超过4次,即认为该车位的车位检测装置出现异常,可启动该地磁车位检测器的地磁传感器的校准过程和重启过程,同时将M值和/或N值调整位置为调整状态,如置为1(或0),增大M和/或N的取值,以减少由于环境变化过快造成的误判。
步骤S170,使用缓冲器中存储的波动值确定车位状态,其中,所述车位状态可以包括有车、无车。也即是说,根据每一个方向对应的数据序列的波动值和预先设定的判决阈值,判定车位是否有车。判断缓冲区中存储的波动值的个数是否等于滑动窗口长度。当所述缓冲器中,每个方向对应的波动值个数等于滑动窗口长度时,将每个方向的波动值的平均值与预先设定的判决阈值(最大阈值和最小阈值)进行比较。进而确定车位是否有车。
具体而言,计算缓冲器中数据(波动值)的平均值。将每个方向的波动值的平均值与预先设定的判决阈值,即最大阈值和最小阈值进行比较,比较结果作为输出。如果当前车位状态为无车,当且仅当波动值的平均值大于最大阈值时,车位状态从无车变为有车;如果当前车位状态为有车,当且仅当波动值的平均值小于最小阈值时,车位状态可能从有车变为无车。进一步地,本发明的双轴地磁传感器可以获得两个方向的地磁感强度数据,进而可以得到两个方向的波动值的平均值,根据这两个方向的波动值的平均值分别判断车位状态的变化。若当前车位状态为无车时,有任一一个方向的波动值的平均值大于最大阈值,则车位状态从无车变为有车。若当前车位状态为有车时,两个方向的波动值的平均值都小于最小阈值时,则车位状态从有车变为无车。若波动值的平均值处于最大阈值和最小阈值中间时,则可能是由于车辆在车位中尚未停稳导致的。
当在一个窗口时间内,如果缓冲器平均值在阈值范围来回震荡时,设置M值和/或N值的调整位,从而减少误判。具体可以为,一个时间窗口(如1分钟)内,缓冲器平均值在阈值范围来回震荡次数超过2次,即四次震荡出现平均值大于最大阈值、小于最小阈值、大于最小阈值并且小于最大阈值,可以将M值和/或N值调整位置为1(或0),增大M值和/或N值的取值,以减少干扰对地磁感强度造成的影响。
在一个实施例中,为了使得车位检测结果更加准确,本发明的双轴地磁车位检测的方法还优选地,在“有车”和“无车”两种车位状态的基础上增加一种“进出车”的车位状态,下面结合实施例进行详细说明。
在当前车位状态为无车时,当检测车位状态为有车时进入进出车状态,如果再次检测车位状态为有车时,车位状态从无车变为有车;如果再次检测车位状态为无车,车位状态保持无车不变;
在当前车位状态为有车时,当检测车位状态为无车时进入进出车状态,如果再次检测车位状态为无车时,车位状态从有车变为无车;如果再次检测车位状态为有车,车位状态保持有车不变。
具体的,在车位检测时,当车位有车时,检测到车位状态为有车,这时可能会有大型车辆经过或金属物品的干扰,使得缓冲器的平均值发生变化,从而可能会造成检测结果变为无车,当干扰解除后,检测结果又变为有车,这样整个车位检测结果就经历了“有车”到“无车”再到“有车”的过程,中间出现“无车”的现象,而实际上车位是一直有车停放,检测结果就与实际结果不符合,出现检测误差。
加入“进出车”状态后,在出现干扰时或车辆实际离开车位时,此时进入“进出车”状态,接着在干扰结束或车辆实际已经离开停车位后再次检测车位状态,如果检测为“有车”,那么可以判断是由于干扰造成的“进出车”状态,因此将结果中的“进出车”状态的时间段变为“有车”状态,使得“有车”状态连续;如果检测为“无车”,那么可以判断是由于车辆实际离开造成的“进出车”状态,因此将检测结果中的“进出车”状态之后车位状态为“无车”。
类似的,在当前车位状态为“无车”时,由于干扰可能会出现瞬间车位状态从“无车”变为“有车”再变为“无车”。通过加入“进出车”状态的车位检测方法,在干扰时,车位为“进出车”状态,在干扰结束后,如果车位状态为“无车”,则判定“进出车”状态是由干扰产生,车位状态为“无车”状态连续不变。在干扰结束后,如果车位状态为“有车”,则判定“进出车”状态是由实际进入车辆造成,车位状态变为“有车”。
进一步地,为了实现更精准地地磁检测,上述方法还进一步可以包括地磁传感器校准步骤。具体步骤见附图2所示的根据本发明实施例的地磁传感器校准方法的流程图。
在步骤S210中,打开数字电位器,将数字电位器初始值设为零。
该数字电位器可以位于地磁传感器上,也可以通过远程控制的方式操控地磁传感器的数字电位器的开启(1)和关闭(0),设置该该数字电位器的初始值为0(关闭),例如通过监控平台进行远程控制。
在步骤S220中,设置模数(AD)采样口输入使能。
AD采样口具有模数转换的功能,地磁传感器采集的地磁感强度是模拟数据,需要经过模数转换,将模拟数据转换为数字数据,以作进一步处理。所以,将AD采样口的输入使能设置为模拟数据,以使输出转换为数字数据。
步骤S230,对数字电位器的当前值进行数值调整。
当前值,是指在校准地磁传感器过程中当前使用的数字电位器数值,通过该数值调整地磁传感器的前端采样数据(采集的地磁感强度数据)的电压值使之经过变换(升压放大)后逼近后端运放的线性工作区中心点。
在本步骤中,若当前值超过数字电位器预设的最大值,则将当前值重置为零;否则,将当前值加1。通过AD采样口读取更新当前值后地磁传感器的采样值(地磁感强度数据)。
步骤S240,判断地磁传感器采集的地磁感强度数据是否在正常范围内。
如果在正常范围内,即地磁感强度数据在预设的校准阈值范围内,则直接执行步骤S250,否则需要对当前值进行调整,重新跳回执行步骤S230。
具体而言,地磁感强度数据处于正常范围内是指:前端采样值(地磁感强度)经过变换(升压放大)后处于后端运放的线性工作区中心点的预定范围内。该线性工作区中心点的预定范围即是校准阈值范围。这时可以保存该当前采样值。地磁感强度数据处于在正常范围外是指:前端采样值(地磁感强度)经过变换(升压放大)后未处在后端运放的线性工作区。运放工作在非线性工作区(或饱和状态),这样即使有车驶入,地磁感强度数据有变化,但是前端采样值升压放大后可能还处在后端运放的非线性工作区,最终采样值仍然是最大值或最小值,最终导致对有车、无车状态的判断错误。
步骤S250,保存当前值,完成校准操作。
具体地,该地磁传感器校准步骤可以在步骤S110之前进行,也可以在步骤S170之后进行,也可以在步骤S140步骤进行,也可以通过设定时间窗口,如每天校准一次或每周校准一次,从而可以实现准确地检测。本发明的检测方法可以使用该校准方法,但该校准方法并非唯一特定的方法,其还可以采用现有的任何地磁传感器校准方法,本发明提供的上述校准方法是一种改进的优选的方法。
进一步地,地磁传感器在铺设后需要进行首次校准,并且,当车位周围环境发生较大改变时,尤其是车位周围环境的改变会引起车位的地磁感强度发生持久性的改变时,需要对地磁传感器进行校准。例如:当周围环境发生永久性变化时,如:在地磁传感器附近安装铁栏杆或者其它影响地磁传感器周围地磁变化的因素,需要校准地磁传感器。当车位无车时,波动值的平均值超过最大阈值或小于最小阈值需要校准,因为周围环境可能发生了较大的改变。进一步地,地磁传感器校准可以在车位无车状态下完成。具体的,当车位有车时,会影响地磁传感器周围的地磁感强度。校准地磁传感器时,校准后采样值(采集的地磁感强度数据)为地磁传感器周围的地磁感强度,相应地,实时数据会产生变化。
本发明还提供了一种双轴地磁车位检测装置。
该装置包括:用于初始化地磁车位检测器的装置。该装置的具体实施过程可以参照步骤S110。
用于实时读取当前两个方向的地磁感强度数据的装置;其中,一个方向为车辆入库方向,另一个方向为垂直地面向下。该装置的具体实施过程可以参照步骤S120。
用于判断上一时刻车位是否有车的装置。该装置的具体实施过程可以参照步骤S130。
用于根据实时数据对两个方向的当前基准值进行动态跟踪和更新的装置。其中,实时数据即是实时读取两个方向的地磁传感器的数据。该装置的具体实施过程可以参照步骤S140。
用于用于基于实时读取的两个方向的地磁感强度数据得到每一个方向对应的数据序列的波动值的装置;其中,数据序列由多个地磁感强度数据组成。该装置的具体实施过程可以参照步骤S150。
用于判断缓冲区中的存储的波动值的个数是否等于滑动窗口长度N的装置。该装置的具体实施过程可以参照步骤S160。
用于根据每一个方向对应的数据序列的波动值和预先设定的判决阈值,判定车位是否有车的装置。该装置还包括:用于在当前车位状态为无车时,当检测车位状态为有车时进入进出车状态,如果再次检测车位状态为有车时,车位状态从无车变为有车;如果再次检测车位状态为无车时,车位状态保持无车不变的装置;用于在当前车位状态为有车时,当检测车位状态为无车时进入进出车状态,如果再次检测车位状态为无车时,车位状态从有车变为无车;如果再次检测车位状态为有车时,车位状态保持有车不变的装置。该装置的具体实施过程可以参照步骤S170。
本说明书中的各个实施例一般采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。