发明内容
基于此,有必要针对现有的车辆使用环境的感知方法应对外部环境变化的能力较差的技术问题,提供一种车辆使用环境感知方法、***、计算机设备和存储介质。
一种车辆使用环境感知方法,所述方法包括:
通过车辆上安装的车辆传感器获取车辆状态数据;所述车辆状态数据包括所述车辆的运动状态数据、车身状态数据和位置信息数据;
分别根据所述运动状态数据和所述车身状态数据,确定所述车辆的运动状态和所述车辆中的司乘人员信息;
当根据所述运动状态数据和所述车身状态数据判定到所述车辆的行程状态发生改变时,根据所述位置信息数据,确定所述车辆的当前位置;
根据所述车辆的运动状态、所述车辆中的司乘人员信息、所述车辆的当前位置以及数据库中存储的历史行程信息,确定所述车辆的当前行程;
根据所述车辆的当前行程以及数据库中预先存储的历史行程信息,得到对所述车辆使用环境的上下文感知结果。
在其中一个实施例中,所述根据所述车身状态数据,确定所述车辆中的司乘人员信息,包括:
根据所述车身状态数据以及预设的车身状态数据、司乘人员活动和司乘人员类型的映射关系,得到所述车辆中的司乘人员类型、司乘人员数量和司乘人员活动,作为所述车辆中的司乘人员信息。
在其中一个实施例中,所述根据所述车辆的运动状态、所述车辆中的司乘人员信息、所述车辆的当前位置,确定所述车辆的当前行程,包括:
根据所述车辆的当前位置,确定所述车辆的当前行程地标;
根据所述车辆的运动状态、所述车辆中的司乘人员信息、所述车辆的当前行程地标,确定所述车辆的当前行程。
在其中一个实施例中,所述根据所述车辆的当前位置,确定所述车辆的当前行程地标,包括:
获取预设的多个地标区域对应的若干个子区域,若检测到所述当前位置位于任一所述子区域中,则将所述当前位置所在的子区域对应的地标作为所述车辆的当前行程地标;
若检测到所述当前位置未位于任一个所述预设地标区域中,则将所述当前位置相邻的子区域对应的地标作为所述车辆的行程地标。
在其中一个实施例中,所述车辆的行程状态发生改变的判定过程,包括:
当根据所述运动状态数据检测到所述车辆的运动状态发生改变,或根据所述车身状态数据检测到所述车辆中的司乘人员发生改变时,则判定所述车辆的行程状态发生改变。
在其中一个实施例中,所述方法还包括:
若根据所述运动状态数据检测到车辆在设定时间后,由停止状态转换为运动状态,则确定所述车辆为行程开始状态;
若根据所述运动状态数据检测到车辆由运动状态转换为停止状态,且保持设定时间,则确定所述车辆为行程结束状态。
在其中一个实施例中,所述根据所述车辆的运动状态、所述车辆中的司乘人员信息、所述车辆的当前位置,确定所述车辆的当前行程,包括:
获取时间信息,根据所述时间信息、所述车辆的运动状态、所述车辆中的司乘人员信息和所述车辆的当前位置,确定所述车辆的当前行程。
一种车辆使用环境感知***,所述***包括:
数据采集模块,用于通过车辆上安装的车辆传感器获取车辆状态数据;所述车辆状态数据包括所述车辆的运动状态数据、车身状态数据和位置信息数据;
运动状态感知模块,用于根据所述运动状态数据,确定所述车辆的运动状态;
乘客感知模块,用于根据所述车身状态数据,确定所述车辆中的司乘人员信息;
地标感知模块,用于当根据所述运动状态数据和所述车身状态数据判定所述车辆的行程状态发生改变时,根据所述位置信息数据,获取所述车辆的当前位置;
行程模块,用于根据所述车辆的运动状态、所述车辆中的司乘人员信息、所述车辆的当前位置,确定所述车辆的当前行程;
上下文感知模块,用于根据所述车辆的当前行程,以及数据库中存储的历史行程信息,得到对所述车辆使用环境的上下文感知结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过车辆上安装的车辆传感器获取车辆状态数据;所述车辆状态数据包括所述车辆的运动状态数据、车身状态数据和位置信息数据;
分别根据所述运动状态数据和所述车身状态数据,确定所述车辆的运动状态和所述车辆中的司乘人员信息;
当根据所述运动状态数据和所述车身状态数据判定到所述车辆的行程状态发生改变时,根据所述位置信息数据,确定所述车辆的当前位置;
根据所述车辆的运动状态、所述车辆中的司乘人员信息、所述车辆的当前位置以及数据库中存储的历史行程信息,确定所述车辆的当前行程;
根据所述车辆的当前行程以及数据库中预先存储的历史行程信息,得到对所述车辆使用环境的上下文感知结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过车辆上安装的车辆传感器获取车辆状态数据;所述车辆状态数据包括所述车辆的运动状态数据、车身状态数据和位置信息数据;
分别根据所述运动状态数据和所述车身状态数据,确定所述车辆的运动状态和所述车辆中的司乘人员信息;
当根据所述运动状态数据和所述车身状态数据判定到所述车辆的行程状态发生改变时,根据所述位置信息数据,确定所述车辆的当前位置;
根据所述车辆的运动状态、所述车辆中的司乘人员信息、所述车辆的当前位置以及数据库中存储的历史行程信息,确定所述车辆的当前行程;
根据所述车辆的当前行程以及数据库中预先存储的历史行程信息,得到对所述车辆使用环境的上下文感知结果。
上述车辆使用环境感知方法、***、计算机设备和存储介质,通过车辆上安装的车辆传感器获取车辆状态数据;车辆状态数据包括车辆的运动状态数据、车身状态数据和位置信息数据;分别根据运动状态数据和车身状态数据,确定车辆的运动状态和车辆中的司乘人员信息;当根据运动状态数据和车身状态数据判定到车辆的行程状态发生改变时,根据位置信息数据,确定车辆的当前位置;根据车辆的运动状态、车辆中的司乘人员信息、车辆的当前位置以及数据库中存储的历史行程信息,确定车辆的当前行程;根据车辆的当前行程,得到对车辆使用环境的上下文感知结果。该方法通过利用不同的传感器,融合不同传感器的数据,感知车辆的使用环境,可以快速检测车辆上下文的任何变化,提高对车辆使用环境的感知能力,从而,解决传统方法存在的应对外部环境变化的能力较差的技术问题。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参考图1,为车辆上下文感知***的架构示意图,该***可以作为车载设备的一部分运行,例如,可以作为车载应用程序安装于车载终端中。该***可分为***输入、上下文感知、上下文处理和***输出4部分,其中,***输入为车辆位置信息数据、发送机状态数据、车辆状态数据、车辆速度和车辆加速度,其中,***输入的数据可分别通过车辆GPS(Global Positioning System,全球定位***)单元、车载OBD-II接口(On-BoardDiagnostic II,车载自动诊断***)、里程表和惯性测量单元(Inertial measurementunit,IMU)得到,***输出为车辆上下文感知信息。其中,车辆的上下文感知部分主要包括车辆状态模块(Vehicle State Module,VSM)、乘客模块(Occupancy Module,OM)、地标模块(Landmark Module,LM)、子行程模块(Itinerary Section Module,ISM)和行程模块(Itinerary Module,IM)等5个感知模块,各个感知模块通过处理各种传感器或其他模块的数据来感知车辆动态运行环境的特定特征,通过CEP框架(Complex Event Processing,复杂事件处理)和复杂事件处理技术,可将各个感知模块进行关联。其中,车辆的上下文处理部分包括车内上下文处理模块(Intra-Vehicular Context Handler,IVCH),用以处理上下文感知部分的各个感知模块所感知的上下文信息,因此,车内上下文处理模块可感知车内上下文的***实体,当任何一个感知模块检测到上下文改变时,可创建一个车辆上下文改变事件,表示车辆新的动态上下文,由此,***可不断更新其感知到的上下文信息。
在上下文感知***中,***输入的来自车载传感器的数据可视为***的底层事件,各底层事件可表示车辆或司乘人员的活动,各个底层事件之间具有复杂的映射关系,例如,车辆发动机处于停止状态,则车门可能会开启,乘客下车或上车,安全带将会对应松开或系紧。因此,通过复杂事件处理技术(CEP)监控各个底层事件,以感知车辆或司乘人员的活动。因此,复杂事件处理技术(CEP)的关键点是连续识别流经***的事件流中的复杂事件模式,其中,车辆或司乘人员的活动可表示车辆动态上下文的不同特征,如图1中的各个感知模块之间的流向线段所示,每个感知模块将来自其他感知模块的信息当作为事件进行处理,目的是感知更复杂的上下文信息。反之,这些新的信息也会被其他感知模块当作事件来处理,从而获得更丰富的信息,由此,每个上下文感知模块以协作的方式工作,并构成基于CEP的多层次结构来检测车辆的动态上下文。
参考图2,为实现本申请提供的车辆使用环境感知方法的车辆示意图,车体的各个位置的车门(包括主驾驶车门(Driver door)、副驾驶车门(Co-driver door)、左后排车门(Left rear door)、右后排车门(Right rear door))、后备箱门(Boot door)、各个位置的车窗(包括主驾驶车窗(Driver window)、副驾驶车窗(Co-driver window)、左后排车窗(Left rear window)、右后排车窗(Right rear window))、各个座椅(包括主驾驶座椅(Driver seat)、副驾驶座椅(Co-driver seat)、左后排座椅(Left rear seat)、右后排座椅(Right rear seat)和中间后排座椅(Central rear seat))和各个座椅的安全带均设置有对应的传感器,分别用于采集车门和车窗的状态数据、座椅的承重数据和安全带是否系紧的数据,在车辆中可安装车载应用程序,通过车载应用程序对来自车辆的不同传感器的数据和其它外部数据源的数据进行融合分析,感知车辆内部的使用情况,推断车辆当前行程的乘客、目的地和行程目标等,作为车辆上下文的感知结果。
在一个实施例中,如图3所示,提供了一种车辆使用环境感知方法,以该方法应用于车辆上的车载终端为例进行说明,包括以下步骤:
步骤S302,通过车辆上安装的车辆传感器获取车辆状态数据;车辆状态数据包括车辆的运动状态数据、车身状态数据和位置信息数据。
其中,车辆的运动状态数据可包括车辆的发动机状态数据、车辆的速度数据和车辆的加速度数据。
其中,车身状态数据可包括车门状态数据、车窗状态数据、座椅承重数据、座椅安全带状态数据和后备箱门状态数据。
具体实现中,可以通过车载OBD-II接口(On-Board Diagnostic II,车载自动诊断***),或者车辆开放的传感器读取接口,读取车辆的车门和车窗上安装传感器的数据,分别从车辆的里程表和惯性测量单元(Inertial measurement unit,IMU)提供的数据中计算得到速度数据和加速度数据,从车载GPS单元中获取车辆的位置信息数据。之后将读取的车辆状态数据发送至车辆中安装的车载终端,具体可发送至车载终端中安装的车载应用程序,车载应用程序获取车辆的运动状态数据、车身状态数据和位置信息数据后,进一步可对车辆的运动状态数据、车身状态数据和位置信息数据等车辆状态数据进行分析。
步骤S304,分别根据运动状态数据和车身状态数据,确定车辆的运动状态和车辆中的司乘人员信息。
其中,车辆的运动状态可包括停止状态和移动状态。
其中,司乘人员信息可包括司乘人员数量、司乘人员类型和司乘人员活动。
其中,司乘人员类型可以为儿童、独立人员、需要帮助的人或残疾人等。
其中,司乘人员活动可以为上车、下车和其它活动。
具体实现中,可通过图1中的车辆状态模块(VSM)确定车辆的运动状态,具体可通过车辆的当前速度和加速度感知车辆的运动状态,即感知车辆处于停止状态或移动状态,因此,确定车辆的运动状态可视为一个分类任务,但由于车辆传感器返回的数据通常是有噪声和不精确的,因此,可通过模糊逻辑方法处理这个问题,具体可基于模糊规则的分类***(Fuzzy Rule Based Classification System,FRBCS)实现车辆运动状态的感知,以提高对车辆运动状态检测结果的可靠性。此外,若通过车辆的运动状态数据感知到车辆的运动状态发生变化时,可创建一个新的车辆运动状态事件,由其他感知模块处理该新的车辆运动状态事件。
可通过图1中的乘客模块(OM)确定车辆中的司乘人员信息,具体可通过车身状态数据以及预设的车身状态数据与司乘人员活动的映射关系,确定司乘人员数量、司乘人员类型和司乘人员活动,作为司乘人员信息。更具体地,为便于对司乘人员的检测,可通过将车辆分为主驾事件处理代理、副驾事件处理代理和后排事件处理代理,分别针对性检测主驾驶座椅的占用情况、副驾驶座椅的占用情况和后排座椅的占用情况,从而检测司乘人员的进入车辆的活动、离开车辆的活动或其它活动,根据座椅占用数量,计算司乘人员数量。参考图4,为乘客模块(OM)的内部架构示意图,可通过车辆引擎状态、主驾驶车门状态、主驾驶安全带状态确定主驾驶座椅占用情况;通过副驾驶车门状态、副驾驶安全带状态和副驾驶车窗状态确定副驾驶座椅占用情况;通过右后排车窗状态、右后排车门状态和右后排安全带状态确定右后排座椅占用情况;通过左后排车窗状态、左后排车门状态和左后排安全带状态确定左后排座椅占用情况;通过右/左后排车窗状态、右/左后排车门状态和中间后排安全带状态确定中间后排座椅占用情况。进一步地,在确定座椅占用情况后,可结合后备箱门状态数据和乘客上下车时间,确定乘客是独身一人、还是携带有行李箱或轮椅等是需要帮助的人,由此,确定乘客的类型。例如,若副驾驶乘客上车前,先打开了后备箱门,则可确定副驾驶乘客类型为需要帮助的人。若乘客上车时间和下车时间超出了上车时间阈值和下车时间阈值,则判定乘客为需要帮助的人。
步骤S306,当根据运动状态数据和车身状态数据判定到车辆的行程状态发生改变时,根据位置信息数据,确定车辆的当前位置。
其中,车辆的行程状态可分为行程开始状态和行程结束状态。
具体实现中,可通过图1所示的子行程模块(ISM)检测车辆的行程状态,即检测车辆开始新行程或结束行程的时刻,通过地标模块(LM)确定车辆的当前位置和当前行程地标,由于本申请是针对的行程进行感知,因此,仅在行程开始或行程结束时,才根据车载GPS单元的位置信息数据,确定车辆的当前位置。另外,若在车辆的行程状态发生改变时,由于信号中断或其他原因,未从GPS单元获取到车辆的位置信息数据,则可根据最近时刻的可用位置信息数据确定车辆的当前位置,进而确定车辆的当前行程地标。其中,行程可表示用户的日常驾驶行程,该行程是为了实现目标(如通勤、上学、购物等)而从一个地方到另一个地方,因此,可将行程视为从同一起始地到同一目的地的路线。另外,在从始发地到目的地的过程中,驾驶员可能会与其他乘客同行,因此,每个行程可包含一些用于乘客上、下车的中间站,每个行程可能具有三种地标,即起始地标、目的地地标和中间地标,每个行程可定义为一组相互关联的子行程,每个子行程为两个地标之间的路线,在整个路线上乘客不会改变,前一子行程的目的地地标也为下一子行程的起始地标。
参考图5,为一个日常行程示意图,包括地标和乘客情况,图中阴影椭圆所示的家、购物中心和公司表示起始/目的地地标,白色椭圆所示的家人公司和学校则表示中间地标,当驾驶员在车辆已经停止一段时间后再次启动车辆发动机时,可认为新的行程开始,当驾驶员关闭车辆发动机下车并且一段时间内没有再次启动车辆时,则可认为行程结束。图5中的行程包括驾驶员清晨从家到公司的行程(行程1)、下班后从公司到购物中心的行程(行程2)和从购物中心回家的行程(行程3)。由于在行程1和3中间有人上下车,因此,行程1和行程3分别包括一个中间地标,则行程1还包括驾驶员从家送家人到学校的子行程1和从学校到公司的子行程2,行程3还包括驾驶员到家人公司接人的子行程1和与家人一起回家的子行程2。
考虑到每个行程由两个地标所限定,并且这两个地标之间的乘客是不变的,因此,通过检测每个行程的各个子行程的顺序,感知车辆的上下文信息,不仅可确定车辆行驶的目的地和起始点,还可确定司乘人员信息。
步骤S308,根据车辆的运动状态、车辆中的司乘人员信息、车辆的当前位置,确定车辆的当前行程。
其中,行程可表示从一个地点到另一个地点的路线信息。
具体实现中,可通过图1所示的地标模块(LM)基于车辆的当前位置确定当前行程地标。进一步通过行程模块(IM)对车辆的运动状态、车辆中的司乘人员信息和车辆的当前行程地标进行上下文融合和分析处理,得到车辆的当前行程。其中,地标由一个区域表示,而非一个点,例如,以目的地为停车场为例,驾驶员不能总是将车辆精确地停在同一个停车位上,而是可以停在停车场的不同停车位上,因此,代表目的地的地标应为整个停车场。
进一步地,在一个实施例中,上述步骤S308还包括:获取时间信息,根据时间信息、车辆的运动状态、车辆中的司乘人员信息和车辆的当前位置,确定车辆的当前行程。
本实施例中,通过加入时间信息,确定车辆的当前行程,可以提高当前行程确定的准确度。
步骤S310,根据车辆的当前行程以及数据库中预先存储的历史行程信息,得到对车辆使用环境的上下文感知结果。
具体实现中,在确定车辆的当前行程后,可根据数据库中存储的与当前行程对应的历史行程信息,得到与车辆当前行程的目的地有关的上下文信息,例如,在当前行程是否需要到中间地标进行接人或送人等。进一步地,除了根据车辆的当前行程以及数据库中预先存储的历史行程信息,感知车辆从一个地标到另一个地标的路线的上下文信息外,还可感知车辆到达目的地的方式,例如,如果两个地标之间的道路导致驾驶员执行许多加速和停车操作,则可能表明该道路交通密度高或沿途有许多交通灯。因此,汽车状态模块(Vehicle State Module,VSM)中使用的基于模糊规则分类***(Fuzzy Rule BasedClassification System,FRBCS)能够检测到速度、加速度、停止和移动等动作,去识别这些道路状态。
其中,数据库可设置于图1中的行程模块(IM)中,行程模块通过不断读取行程结束的事件流和各行程段的事件流,每一行程段的事件包括与该行程有关的所有行程事件,每当接收到新的行程结束事件时,将创建一个新的行程事件,表示刚刚结束的行程,该类事件包括标识符和行程的各个部分,当创建新的行程事件后,行程模块将检查所创建的新的行程事件是否已存在于数据库中,因此,需要将新的行程事件与存储的行程事件进行比较,若数据库中未查找到与创建的新的行程事件相同的行程,则将新的行程事件作为新实例添加至数据库中,由此,得到包含所有不同类型的路线的数据库。其中,当两个行程的起始地点相同、目的地相同、司乘人员信息相同时,则可判定这两个行程相同。
进一步地,在得到对车辆使用环境的上下文感知结果后,可与其它车载***(例如,交通信息***)结合,以便提前告知驾驶员通过下一个目的地的路线中的交通问题。也可以根据乘客类型提供多种使用功能,为车辆中的乘客提供自适应的音乐播放服务、安全保障等。例如,若感知结果为车辆中有乘客为儿童,则可以自动在车辆音乐播放器中播放儿童歌曲,若感知结果为儿童旁边的车窗处于完全打开状态,则发出预警或自动关闭车窗,以避免可能出现的危险问题。
上述车辆使用环境感知方法中,通过车辆上安装的车辆传感器获取车辆状态数据;车辆状态数据包括车辆的运动状态数据、车身状态数据和位置信息数据;分别根据运动状态数据和车身状态数据,确定车辆的运动状态和车辆中的司乘人员信息;当根据运动状态数据和车身状态数据判定到车辆的行程状态发生改变时,根据位置信息数据,确定车辆的当前位置;根据车辆的运动状态、车辆中的司乘人员信息、车辆的当前位置以及数据库中存储的历史行程信息,确定车辆的当前行程;根据车辆的当前行程,得到对车辆使用环境的上下文感知结果。该方法通过利用不同的传感器,融合不同传感器的数据,感知车辆的使用环境,可以快速检测车辆上下文的任何变化,提高对车辆使用环境的感知能力,从而,解决传统方法存在的应对外部环境变化的能力较差的技术问题。
在一个实施例中,上述步骤S304中确定车辆中的司乘人员信息,包括:根据车身状态数据以及预设的车身状态数据、司乘人员活动和司乘人员类型的映射关系,得到车辆中的司乘人员类型、司乘人员数量和司乘人员活动,作为车辆中的司乘人员信息。
具体实现中,如下表1所示,可表示主驾驶模块、副驾驶模块和后排模块等不同状况下车身状态数据-司乘人员活动-司乘人员类型的映射关系。例如,若车身状态数据为主驾驶车门打开→主驾驶座椅的安全带系紧→主驾驶车门关闭,则表明驾驶员进入车辆、主驾驶座椅被占用,由于驾驶员一般为健康独立人员,因此默认驾驶员类型为独立人员;若车身状态数据为右后排车门打开→右后排的安全椅安全带系紧→上车时间大于上车时间阈值→右后排车门关闭,表明车辆有儿童进入。需要说明的是,下表仅是对本实施例进行举例说明,具体的车身状态数据和关联事件的关系可根据需求进行设定,本申请对此并不限制。
表1
通过对不同的车身状态数据进行融合,形成事件模式,从而推断出车辆中的乘客情况,这种基于模式的方法可以发现不同类型的乘客,从而使***可以精确地感知车辆中的乘客特性。其中,车辆中乘客的分类可以通过如图6所示的车辆乘客分类法实现,图中当座椅被占用时,占用的人员可分为货物和人员,人员分为独立人员和非独立人员(即需要帮助的人),非独立人员分为不能独立的成年人和儿童。图6中的元素越向右,表明越脆弱,先验地,该脆弱程度可以用于建议优先级,以便于在发生交通事故时按照优先级顺序进行人员救助。此外,图6所示的树形结构中,还可通过距离来评估两个分类之间的相似性。若将图6中元素的详细程度记为detail-degree,对于当前范围,距离称为语义层次相似度(Semantic-Hierarchical Similarity,SHS),则元素A和B之间的相似度可由下述关系式定义:
CCA(Closest Common Ancestor)代表最近的共同祖先,即分类元素,表示需要比较的两个元素A和B最接近的共同祖先。例如,货物和人员的CCA是占用情况,独立人员和非独立人员的CCA是人员,儿童和不能独立的成年人的CCA是非独立人员。由此,两个元素越相似,它们的SHS值越高。因此,通过计算其推断值和实际值之间的SHS,可以有效评估***的准确性。
可以理解的是,传统的车辆乘客的检测方法,如基于安装在汽车座椅上的侵入式传感器,能够发现不同类型的车辆使用者,然而,该方法依赖于车辆座椅上临时安装的传感器,又如通过使用安装在车辆内部或作为道路基础设施的摄像机的光学方法虽然也可实现乘客的检测。但是,这些方法所需的设备安装复杂,成本较高,而本申请提出的利用CEP(Complex Event Processing,复杂事件处理)方法通过融合来自车辆多个简单的传感器的数据,实现乘客检测,避免了一些侵入性问题,并通过将该方法应用到一个完整的上下文感知架构中,丰富了该机制,实现了在可检测到目标车辆的所有座位上乘客的变化和详细的范围的基础上,克服了以往方法的准确性问题和成本问题。另外,还可通过RFID(RadioFrequency Identification,射频识别)读取器和可穿戴卡检测车辆乘客的方法,或者通过摄像头进行图像识别检测车辆乘客的方法,又或者通过生命探测雷达,作为乘客检测的替代方法。
本实施例中,通过车身状态数据以及预设的车身状态数据、司乘人员活动和司乘人员类型的映射关系,得到车辆中的司乘人员类型、司乘人员数量和司乘人员活动,作为车辆中的司乘人员信息,以便于进一步根据司乘人员信息确定车辆的当前行程。并且,本实施例提出的基于模式的检测方法不仅可以推断出车辆中的乘客数量,而且还可以更精细的粒度推断不同的乘客类型,扩大了感知司乘人员功能的应用场景。
在一个实施例中,上述步骤S108具体包括:根据车辆的当前位置,确定车辆的当前行程地标;根据车辆的运动状态、车辆中的司乘人员信息、车辆的当前行程地标,确定车辆的当前行程。
进一步地,在一个实施例中,根据车辆的当前位置,确定车辆的当前行程地标的步骤,包括:获取预设的多个地标区域对应的若干个子区域,若检测到当前位置位于任一子区域中,则将当前位置所在的子区域对应的地标作为车辆的当前行程地标;若检测到当前位置未位于任一个预设地标区域中,则将当前位置相邻的子区域对应的地标作为车辆的行程地标。
具体实现中,推断行程中的地标可采用新的基于密度的聚类算法实现,基于密度的聚类是一种常用在位置数据上进行位置发现的聚类方法,它基于点的局部邻域密度。在这种类型的聚类中有两个关键参数,Eps(圆的半径)和MinPoints(该圆内被认为是一个聚类的最小点数)。利用这两个参数来定义点p的基于密度的邻域N,如下式所示,
N(p)={q∈S|dist(p,q)≤Eps)
式中,S为可用点的集合,dist(p,q)为p到q的直线距离;此外,如果S中有一个点o同时包含在N(p)和N(q)中,则一个基于密度的邻域N(p)与另一个基于密度的邻域N(q)在密度上是可接合的。
基于此,提出了一种基于密度的聚类算法,称为密度-连接算法(Density-and-Join algorithm,DJ-cluster)。该算法不仅可以从数据集中检测出密集聚类,而且可以在满足一定条件时对其进行合并;然而,由于它是一个离线算法,因此至少需要之前对整个数据进行一次扫描才能运行。本实施例介绍的地标发现算法,该算法对DJ-cluster算法进行了改进,使其能够作为在线算法运行,能够在接收读取位置的同时发现密度集群。
基于上述的基于密度邻域的概念得到的质心集的定义,如下:
因此,N(c)(c∈C)中每个点q的质心为c,由此,即使S中的每个点都可以在一个或多个质心的邻域内,其也只能与其中一个质心相关联;因此,S中的每个点都将与一个或没有与质心相关联。根据质心概念,本实施例将地标定义为一组质心,其中每个质心的邻域与同一地标内任何其他质心的至少一个邻域进行密度连接,如图7所示,为由三个质心组成的地标的示意图,该地标具有3个中心c1、c2和c3,位于两个邻域内的点以灰色显示。因此,本实施例的地标发现算法的执行过程中,将根据车辆的GPS单元读取的GPS数据确定的车辆的当前位置作为输入,返回该当前位置对应的行程地标(若能查找到)。
更具体地,根据车辆的当前位置确定当前行程地标的步骤包括:检测当前位置(记为输入点p)是否已在任何现有质心附近,若有,将当前位置与第一个发现的质心相关联,即将第一个发现的质心的地标作为当前位置对应的行程地标。并且,若点p位于两个邻域内,可将这两个邻域的地标进行合并,得到包含两个地标的质心的新地标。参考图8(a)和图8(b),描述了该步骤的开始和结果。在开始时(图8(a)),输入点p在两个现有的具有质心c1和c2的邻域内,每个质心位于不同的地标中(Landmark_1和Landmark_2);在合并两个地标后,将创建一个包含两个质心的新地标(Landmark_1_2)。
如果输入点p不包含在任何先前的邻域中,则将p与其邻域内的点作为质心连接,其新地标与周围至少有一个邻域密度可与N(p)可接合的任何其他地标合并。如图8(c)和图8(d)所示,从图8(c)中可以看出,给定一个输入点p,N(p)的密度足够大,可以将p视为质心,则可创建一个新的地标并将其与N(p)关联;此外,由于N(p)与另一个地标(Landmark_1)均具有位置q,则N(p)与另一个地标(Landmark_1)的邻域具有密度可接合性,因此,可将两个地标合并,并创建一个新的地标(合并的地标),如图8(d)所示。
行程模块(LM)在不同Eps(圆的半径)值下执行上述地标发现步骤,形成一个地标层次结构,由此,行程模块可检测出具有不同粒度的地标。因此,行程模块总可以返回Eps较低的检测到的地标,如果发现任何地标,行程模块将返回自己的进给点作为输出。此外,每个地标都可被自动标记为标识符,以便于为各个地标命名,地标发现算法的输出被反映为***事件流中的地标事件。
可以理解的是,传统的基于聚类技术的位置检测方法,如分区聚类方法(将K-means算法应用于GPS位置的跟踪)和基于时间的聚类方法,均可以进行物理位置的检测,但并不适用于检测具有相同物理位置的两个不同的聚类,而基于密度的聚类用于位置检测虽然可以克服分区聚类和基于时间的聚类两种方法的问题,但基于密度的聚类需要预先得到整个可用的GPS位置数据集,以便检测聚类,即传统的基于密度的聚类实质上是一种离线算法。本申请改进了传统的基于密度的聚类算法,提出了一种能够在读取GPS定位信息的同时发现属于不同聚类的算法,使得不再需要在运行算法之前收集所有位置。
本实施例提供的地标发现算法,能够在接收GPS位置的同时检测不同的集合,可视为一种在线实时算法,克服了传统聚类算法需要在运行之前将整个GPS数据集作为输入的限制,因此,本实施例提供的地标发现算法可以作为车载***的一部分运行,实现地标实时在线检测。每个检测到的集群将自动标记为某个行程的地标,通过地标发现算法可以增强其他车载***应用功能,例如基于地理位置的***功能等。
在一个实施例中,车辆的行程状态发生改变的判定过程,包括:当根据运动状态数据检测到车辆的运动状态发生改变,或根据车身状态数据检测到车辆中的司乘人员发生改变时,则判定车辆的行程状态发生改变。
进一步地,在一个实施例中,还包括:若根据运动状态数据检测到车辆在设定时间后,由停止状态转换为运动状态,则确定车辆为行程开始状态;若根据运动状态数据检测到车辆由运动状态转换为停止状态,且保持设定时间,则确定车辆为行程结束状态。
具体实现中,子行程模块(ISM)除了感知车辆所涵盖的子行程的各部分顺序外,还用于推断行程开始和结束的时刻,即检测车辆何时停止和运行。其中,新的行程可视为在一段时间后启动发动机开始的,并且在关闭发动机后保持一段时间时结束,因此,定义行程开始和结束的模式可表示为:
预设时间后→车辆发动机启动,
车辆发送机关闭,且保持时间≥预设时间。
其中,第一种模式用于检测行程的开始,第二种模式用于检测行程的结束,两种模式的预设时间可以相同,也可以不相同。
考虑到当车辆中的乘客发生变化时,新的行程将开始,定义了以下模式:
车辆的运动状态(移动)→车辆的运动状态(停止),
任意车门(打开)。
该模式反映了车辆在移动后停止,并打开任一个车门的活动,这一活动表明乘客将发生变化,因此,将结束当前行程,并开始新的行程。当该模式被触发时,将生成一个行程事件,表示刚刚结束的行程。
本实施例中,通过运动状态数据检测车辆的运动状态是否发生改变,根据车身状态数据检测车辆中的司乘人员是否发生改变,以便于根据检测结果判断车辆的行程状态是否发生改变,进一步可确定是否需要确定车辆的当前位置。
在一个实施例中,参考图9,为一个日常行程及车辆感知水平的示意图,描述了车内上下文感知的工作目标,图中的物理世界显示了一个行程,表示父亲和儿子每天早上用车的情况,对于该行程,***的感知级别在图2的车辆感知部分显示,在该级别中,***能够发现三个行程地标以及乘客情况,由此,***可以提供许多有用的功能。例如,在紧急情况下,如果发生交通事故,每辆涉案车辆的***将能够在事故发生时告知中心其乘客情况吗,使急救中心将能够以更有效的方式管理其资源(例如救护车)。车内上下文感知***的输出为图2中的原始数据,之后,还可通过使用更多的数据源来丰富当前工作的上下文感知。例如,可以通过一些基于位置的服务,用更有代表性的名称来标记这三个地标。因此,***将能够提供感知级别更强大的功能。例如,如果检测到车上有未成年人,自动锁住未成年人座位旁边的车门,以避免可能出现的危险情况。将通过使用更多的数据源来丰富当前工作的上下文感知。
车内上下文感知***的目标是了解车辆的整体情况,因此为这些信息定义一种正式的表示就变得至关重要。参考图10,为一个车内上下文信息模型的示意图,描述了建模车辆上下文的信息层次结构。可以看出,车辆的上下文主要是由静态上下文和动态上下文两种信息组合而成。车内动态环境包含四个维度:位置,活动,时间和身份,其中,位置属性与车辆的来源和去向有关,活动属性可以视为双重特征,既可定义车辆的当前运动状态,还可定义正在覆盖或刚刚结束的行程,时间属性表示旅途中的时刻,身份特征表示乘客对车辆的占用。
在另一个实施例中,如图11所示,提供了一种车辆使用环境感知方法,该方法包括以下步骤:
步骤S1102,通过车辆上安装的车辆传感器获取车辆状态数据;车辆状态数据包括车辆的运动状态数据、车身状态数据和位置信息数据。
步骤S1104,根据车身状态数据以及预设的车身状态数据、司乘人员活动和司乘人员类型的映射关系,得到车辆中的司乘人员类型、司乘人员数量和司乘人员活动,作为车辆中的司乘人员信息。
步骤S1106,根据运动状态数据,确定车辆的运动状态。
步骤S1108,当根据运动状态数据和车身状态数据判定到车辆的行程状态发生改变时,根据位置信息数据,确定车辆的当前位置。
步骤S1110,根据车辆的当前位置,确定车辆的当前行程地标。
步骤S1112,获取时间信息,根据时间信息、车辆的运动状态、车辆中的司乘人员信息、车辆的当前行程地标,确定车辆的当前行程。
步骤S1114,根据车辆的当前行程以及数据库中预先存储的历史行程信息,得到对车辆使用环境的上下文感知结果。
本实施例提供的车辆使用环境感知方法,在定义车内环境的形式表示的基础上,提出了通过复杂事件处理(Complex Event Processing,CEP)方法融合来自车辆不同传感器的数据,以感知车辆环境的两个特征,即驾驶员/乘客情况以及车辆通常涵盖的行程中最重要的地点或地标。对于驾驶员/乘客情况,应用了一种新颖的基于模式的方法,而对于地标的确定,则应用了一种新的基于密度的在线实时聚类方法。通过复杂事件处理引擎降低复杂事件处理方法实现难度,通过引擎帮助检测车辆信息、乘客信息以及路线信息,结合基于密度的聚类算法,得出当前用车环境的准确状态,实现车载上下文感知应用,提高***智能出行服务质量。此外,该方法能够检测真实环境中车辆的频繁行程,并使用此信息来提高车辆感知环境的精度。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图12所示,提供了一种车辆使用环境感知***,包括:数据采集模块1202、运动状态感知模块1204、乘客感知模块1206、地标感知模块1208、行程模块1210和上下文感知模块1212,其中:
数据采集模块1202,用于通过车辆上安装的车辆传感器获取车辆状态数据;车辆状态数据包括车辆的运动状态数据、车身状态数据和位置信息数据;
运动状态感知模块1204,用于根据运动状态数据,确定车辆的运动状态;
乘客感知模块1206,用于根据车身状态数据,确定车辆中的司乘人员信息;
地标感知模块1208,用于当根据运动状态数据和车身状态数据判定车辆的行程状态发生改变时,根据位置信息数据,获取车辆的当前位置;
行程模块1210,用于根据车辆的运动状态、车辆中的司乘人员信息、车辆的当前位置,确定车辆的当前行程;
上下文感知模块1212,用于根据车辆的当前行程,以及数据库中存储的历史行程信息,得到对车辆使用环境的上下文感知结果。
在一个实施例中,上述乘客感知模块1206,具体用于根据车身状态数据以及预设的车身状态数据、司乘人员活动和司乘人员类型的映射关系,得到车辆中的司乘人员类型、司乘人员数量和司乘人员活动,作为车辆中的司乘人员信息。
在一个实施例中,上述行程模块1210,具体用于根据车辆的当前位置,确定车辆的当前行程地标;根据车辆的运动状态、车辆中的司乘人员信息、车辆的当前行程地标,确定车辆的当前行程。
在一个实施例中,上述行程模块1210,还用于获取预设的多个地标区域对应的若干个子区域,若检测到当前位置位于任一子区域中,则将当前位置所在的子区域对应的地标作为车辆的当前行程地标;
若检测到当前位置未位于任一个预设地标区域中,则将当前位置相邻的子区域对应的地标作为车辆的行程地标。
在一个实施例中,上述地标感知模块1208,还用于当根据运动状态数据检测到车辆的运动状态发生改变,或根据车身状态数据检测到车辆中的司乘人员发生改变时,则判定车辆的行程状态发生改变。
在一个实施例中,上述地标感知模块1208,还用于若根据运动状态数据检测到车辆在设定时间后,由停止状态转换为运动状态,则确定车辆为行程开始状态;若根据运动状态数据检测到车辆由运动状态转换为停止状态,且保持设定时间,则确定车辆为行程结束状态。
在一个实施例中,上述行程模块1210,还用于获取时间信息,根据时间信息、车辆的运动状态、车辆中的司乘人员信息和车辆的当前位置,确定车辆的当前行程。
需要说明的是,本申请的车辆使用环境感知***与本申请的车辆使用环境感知方法一一对应,在上述车辆使用环境感知方法的实施例阐述的技术特征及其有益效果均适用于车辆使用环境感知***的实施例中,具体内容可参见本申请方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述车辆使用环境感知***中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入***。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种车辆使用环境感知方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入***可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的车身,或者组合某些车身,或者具有不同的车身布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。