作者:中国移动集团公司 张阳 (章末附作者介绍)
作者微信公众号:网优小谈(wireless_talk)
续《移动内部疯传的11篇VoLTE大作,看懂了你也是技术大神(一)》
唐代大诗人李白曾经道过行路难,"行路难!行路难!多歧路,今安在?"
在学习VoLTE这个新的承载话音技术上,面对的困难与茫然某种程度上并不亚于唐朝诗仙所面临的困惑,但是男子汉需要勇气和毅力去克服人生中存在的艰难,有时候,明知道不可能,却还要去尝试,这就是年青人该做的。我们都想在世界这个大海上乘风破浪,在海的另一边,有着我们所不知的广阔天地。在知识海洋的彼岸,也还有太多我们不知道的风景,我想亲眼去看一看,亲身去体会。
VoLTE的被叫信令流程相比主叫信令流程要复杂一点,一般通信系统的被叫信令流程相比主叫信令流程都要复杂一点,因为往往不知道用户的位置需要进行相应的寻呼寻址,基于IMS架构的VoLTE被叫寻呼流程也是一样的,往往不知道用户是处于何种状态,例如,漫游状态、归属地、非LTE网络(UMTS/GSM/PSTN)等等,虽然涉及到的内容略显复杂,但是整体信令脉络是大致相似的,涉及到的不同状态,无非就是新增一些网元以及专属信令流程而已。
纵观被叫终端分别在漫游地和归属地的信令流程,除了涉及到P-CSCF的位置不同外,没有什么太大的区别,我们以漫游地的信令流程入手进行解读。
1、主叫发送SIP INVITE请求,包含初始SDP,经理主叫流程以及中间流程,最终发送到被叫侧的S-CSCF;
2、被叫侧S-CSCF校验服务请求同时触发服务逻辑单元。这里基于用户订阅的多媒体服务情况,对请求的SDP进行鉴权;
3、S-CSCF根据之前UE注册时的信息,将INVITE请求转发到之前记忆的P-CSCF;
4、如果P-CSCF决定被叫是MPS会话(多媒体优先级会话),P-CSCF获取对话信息并且调用动态策略,将获取的用户信息发送PCRF网元。P-CSCF通过之前UE注册时记忆的UE地址,将INVITE转发至UE;
下述信令截图就是INVITE的消息内容,从这里我们可以看出一些信息:
(1)主叫与被叫遵从电信URI的格式,即用tel方式进行公共用户标识表征,可以看出主叫来电号码是,被叫电话号码是;
(2)Call-ID:amCanUH-KnuK3GPdcuGJySgOHl87SpbfCHKujkAGJj3YyIbH22AbyEDy-Rwrym9difa@zteims,Call-ID是为了对同一用户的会话进行标识,因此在对话中同一个用户的请求和响应中,Call-ID是唯一的,另外对于同一用户,该Call-ID也应该是全球唯一的标识符,同时一般Call-ID以一种随机加密的方式(RFC1750)出现,使用该随机加密方式可以保护会话不被非法截获,同时可以减少Call-ID的冲突,一般call-ID是由随机加密序列结合主机名称或者IP地址产生。值得注意的是,在单一多媒体会议中,对于用户发起的对同一实体邀请,可能每次分配的Call-ID都不尽相同。有趣的是,主叫的Call-ID与被叫接收的INVITE信息的Call-ID不一样,主叫Call-ID是终端发起的,因此与终端分配的IP地址有关,被叫Call-ID是被叫所处IMS域S-CSCF发起的,因此打上了被叫域S-CSCF的标签;
(3)Cseq: 1000 INVITE。Cseq对消息处理进行标识和排序。INVITE需要与对应的消息类型保持一致(INVITE)。对于对话外非注册消息的Cseq,可以是设置为任意值。在同一对话内,该值随着消息每传递一次进行+1的增量同步。其中一种设置方式可在初始设置时将其与时间(秒级)关联;
(4) Record-Route: ,Record-Route是由P-CSCF插入的,目的是为了使后续的请求(Request)依然能通过该代理进行路由,在请求从主叫路由到被叫所经历的一些代理服务器中,Record-Route是可以被替换或者改写的;
来源:整理 时间: 18:03:51 编辑:汽车经验
淮北师范大学 计算机科学与技术学院,安徽 淮北,235000
基金项目: 国家自然科学基金();安徽省高等学校自然科学研究项目(KJ2014B23)
作者简介: 张栋冰(1974-),男,副教授,主要从事算法优化和图像处理等方向的研究。
提出了一种新的时空图计算方法,并且利用时空图对车流量进行实时检测。该方法中,首先使用时空图将交通监控的视频转换成空间信息与时间信息都包含在内的连续图像,然后对时空图进行边缘提取、图像分割等处理,利用时空图上车辆的边缘、形状和占道率等信息,计算出一段时间内的车流量。本实验所用的视频由架在路边建筑物上的摄像机拍摄获得。实验结果表明,该方法能够实时、有效、准确地检测出一段时间内的交通车流量,并且能够对实时的路况进行监测,具有很好的实用价值。
随着智能交通的快速发展,道路交通状况的实时检测越发重要[]。常用的城市交通信息采集方式分为两大类:通过硬件检测器进行采集和通过视频进行采集。硬件检测器包括:环形线圈检测器、地磁检测器、微波检测器、超声波检测器,红外线检测器等。但是,这几种交通信息检测方法检测的精度和可靠性不高,不适合进行大范围的检测,不能显示交通现场等对于交通调查与分析、交通处罚等至关重要的信息[-]。因此,基于视频图像处理的优点就显现出来。
基于视频的交通信息采集由摄像机、计算机处理技术、微处理器或工控机等构成。由于基于视频的方法具有设备安装方便、覆盖面积大、获取信息量丰富等优点,因此,它成为了智能交通系统的发展趋势。目前,基于视频的交通信息检测的方法主要包括基于帧间差分的方法[]、基于光流场的方法[-]、基于背景差分的方法[-]。帧间差分法运算简单,但是它不能检测出静止或运动过慢的物体,而且对于物体内部灰度比较均匀的情况下在目标重叠部分会形成空洞,不利于后面的分析与识别;光流法能够检测独立的运动对象,不需要预知场景的任何信息,但是由于光流的计算采用迭代的方法,计算复杂耗时,不利于实时检测;背景差分法对于复杂背景下的检测效果较好,一般都能提供最完整的特征数据,计算量小,使用价值大,但是易受到光线、天气等外界条件的影响,而且其依赖于背景建模,使得算法变得复杂,耗时更长[]。而且,这几种方法都不能解决车辆间相互遮挡而引起的漏检问题,对摄像机拍摄角度要求很高。因此,结合已有方法的优点,提出了一种基于时空图的车流量检测方法,这种方法检测车流量准确,并且不受环境变化的影响,计算简单,能够进行实时的检测,具有较好的实用性。
1 时空图像处理基本原理
经典的交通流量检测中所用图像都是基于二维空间坐标的序列图,融合空域与时域特性,从另一个角度--时空角度对图像进行描述,该方法很好地反映了运动目标与静态背景间的差异,能更有效地从复杂背景中检测车辆运动状态,进而进行车流量计算和判断道路堵塞状况。
笔者提出的方法中,在视频中设置一条虚拟的检测线,记录从第一帧到第N帧检测线上的灰度值。如所示,由于帧数是随着时间成线性变化,故用横轴T表示时间,用纵轴y来表示检测线上灰度值的变化情况,这样就能得到一段时间内通过检测线的时空图。这种图像可认为是线列探测器的凝视图,将面阵探测器中同一列探测器、不同时刻的图像按时间顺序展开而成,不同位置的列探测器反映了各对应点的情况。
由可知,时空图描述的是检测线上的灰度值随时间变化的情况,它具有成像画面单一的特点。检测线上的背景是静止的,在时空图上不随时间变化;对于运动的车辆目标,其在时空图上的灰度值将发生改变。当视频的帧率一定的时候,车辆运动速度越快,车辆在检测线上停留的时间越短,在时空图中显示的宽度即时间方向上越短。灰度变化区域长度l与物体运动速度v成反比,如公式(1)所示:
因此,当车辆静止时,其在时空图上的宽度为无限长;当车辆在运动时,其在时空图上的宽度是有限长。由于在时空图像上,横轴是时间轴,显示车辆的时间信息;纵轴是空间轴,显示车辆的空间信息。整个时空图由连续图像帧的检测线像素值堆积而成,它表示出了车辆的存在和宽度,以及车辆在检测线中的保持时间。时空图所表示的时间长度可由公式(2)得到
其中:n为时空图上横轴所取的帧数;a为每秒所播放的帧数。
为视频中的某一帧图像,为(a)图像所在时间段的时空图。从中可以清楚地看到,时空图中记录了检测线上的一段连续帧的空间灰度信息,将视频的空间信息和时间信息很好地融合到一起,便于后面的车流量计数算法的设计。畅通时刻和堵塞时刻在时空图中有明显的不同。畅通时刻的车辆为有限长度,而堵塞时刻的车辆在时空图上表现为很多的直线段,这对后面进行路况的判断提供了重要的信息[-]。
2 基于时空图的车流量计算
由于城市中路况复杂、行车速度慢、立交桥和高架桥较多、路中常有绿化带、摄像头远近和拍摄角度各异、车辆相互遮挡情况比较严重等原因,要计算出车流量和判断路况仅仅依靠时空图还不够,因此本文设计了一套基于时空图的车流量计算和路况判断算法。此算法包括时空图的获取、车流量计算2个部分。
由于时空图的获取是基于检测线的,因此首先要在视频图片中设定一条检测线,而检测线的设定对于后面的检测也是至关重要的。城市中的道路往往是多车道的,而各个车道之间均以虚线隔开。在设定检测线的时候,尽量不要让检测线直接穿过虚线,而是要让检测线从虚线的缝隙中穿过,以免检测线和车道线相交。如果检测线与多条车道线相交的话,获取的时空图上就会有多条直线存在,这些直线对于车辆计数和路况判断往往会带来负面的影响。由于离摄像机较近的地方车辆分辨率高,故检测线尽可能设定在离摄像机近的地方。
设定检测线后,就可以开始获取时空图了。大部分摄像机获取的视频的帧率约为30帧/s,因此,取5 s为一个时间段,每隔150帧组成一屏时空图累积并输出,即对于帧率为a的视频,时空图的宽度为5 a。对于输出的每一屏时空图,对其进行车流量计算和路况判断,并把每一屏的车辆数累计相加,直到停止检测或者视频播放完毕。该算法中只需要每隔一定的时间计算一次车辆数和判断路况,充分保持了算法的实时性,不必担心因为单屏时空图车辆计数算法过于复杂而导致的延时问题。
该算法中车流量计数是累计的单屏时空图中车辆数。如果在未累加满一屏的情况下停止检测,那么就要对结果进行修正。具体做法是:提取从上一次处理到停止检测那一刻中间时空图的子图像,对其进行车辆计数,并把结果累加到总车辆数上。
2.2 单屏时空图的车流量计算
该计算车流量是通过累加每一屏时空图上的车辆数来实现的,所以如何准确计算每一屏时空图上的车辆数至关重要。笔者设计了一种用于计算单屏时空图上车辆数的算法,其过程如所示,具体算法如下:
1)用canny算子获取单屏时空图的边缘图像。
2)由于道路堵塞时时空图呈现“多线状”,这时不能重复计算车辆个数。因此,用霍夫变换检测出时空图中过长的直线,并去除掉。
3)由于车辆挡风屏等问题存在,部分车辆的边界不完整,这对后面的车辆分割有影响。因此,先要对时空图的边缘图像进行形态学的处理。该算法是先进行数学形态学的膨胀数次,再进行孔洞填充,然后再进行腐蚀操作数次,使得各个车辆区域形成独立的实心的区域。最后用去小面积独立区域的方式,去除非机动车辆等其它噪声带来的影响。这样车辆候选区域就被分割为一个个的独立区域。
4)逐个搜索这些独立区域。
5)计算当前独立区域的质心和面积,如果质心接近左边界,并且其面积小于一定的阈值,那么这辆车是位于两屏时空图交接处的车辆,不予以计算,等此车辆出现在时空图右边界的时候再计算,防止一辆车出现在两屏时空图交界处时被重复计数两次的情况。
6)设定检测线时,不可避免地使车道线与检测线相交,使得时空图中出现了噪声,所以这要去除长宽比不符合车辆长宽比的独立区域。
7)计算当前区域的外接矩形,并求其外接矩形的面积。
8)对存在遮挡的图像块进行区域分割。为两种不同的独立区域及其外接矩形示意图。
左边的独立区域内只包含了一辆车,右边的独立区域内包含了两辆车。由于有公交车和大卡车等车的存在,以及获取车道数不同的问题,所以不能简单地使用独立区域的面积或者独立区域的面积与整个时空图面积之比来计算当前独立区域内包含的车辆数。从中可以看到,包含了多辆车的独立区域,由于两辆车在不同的车道上,只要被遮挡的那辆车没有完全被遮挡住,那么这两辆车在时间轴上就会有错位,则独立区域就会呈现为右图所示的形状,其区域的面积与其外接矩形的面积之比偏小,而且会小于某一阈值sp。本文中,阈值sp取0.5。当独立区域的面积与其外接矩形的面积之比小于阈值sp时,再依据独立区域的面积与整个时空图的面积之比,并结合车道数来计算当前独立区域包含的车辆个数。具体计算如下
其中:Sarea为独立区域的面积;Srect为独立区域外接矩形的面积;Simage为整个当前时空图的面积;Nlane为检测线所跨越的车道个数;RAreaRec为独立区域的面积与其外接矩形的面积之比;Rarea为独立区域的面积与当前整个时空图的面积之比。
9)判断所有独立区域是否搜索完毕。没有则转到第(4)步,否则就累加所有独立区域内的车辆个数,作为当前时空图中的车辆个数输出。
实验所用的视频由架在路边建筑物上的摄象机拍摄获得,其场景多样,有直线车道也有弧线车道,有车速较快的车道也有车速较慢的十字路口车道,有噪声少的车道也有噪声多的车道(主要指非机动车的多少),车道数量有单车道、双车道、三车道、四车道和五车道。而且摄像机离路面远近不一、高低不同、其拍摄角度也各异。在10个这样不同的视频中进行了测试,测试的视频画面的分辨率为704×576。
车流量计算实验结果如所示。中显示了10个视频的车流量计算的结果,每个视频长度约为2 min,但是实际车流量却从26~135不等。评判标准为误差。误差计算如式(5)所示,误差越小,则检测效果越好。
分别给出了测试视频中不同车流量场景下的处理结果示意图。为交通畅通时的图片,为该场景下获取的一屏时空图,由其可知,该场景下时空图中车辆独立成块,易于分割和计数;为拥堵时的图片,为拥堵时获取的一屏时空图,拥堵时的时空图会形成长直线,用方法同样能进行车流量统计。对所有视频进行测试后,统计结果如所示。从中可以看出,提出的方法能够有效地针对城市交通监控摄像机的视频来进行交通流量检测。所有视频的检测误差都在15%以下,绝大部分测试视频的检测误差都在10%以下。车流量测试的误差与摄像机安装的角度以及车辆密集度有密切的关系。摄像机的拍摄方向与道路线的方向之间的夹角越小,则误差越小,检测效果越好。因为拍摄方向与道路线的方向之间的夹角越大,就意味着一个车道上的车辆遮挡另一个车道上的车辆的可能性越大。当车辆之间相互遮挡严重的时候,常常在时空图上表现为多辆车连成块的情况。研究介绍的估算独立区域内包含的车辆数的方法能解决部分遮挡的问题,但是对于车辆之间相互遮挡严重的问题仍然会产生较大的误差,而这种情况往往表现为车辆的漏检情况比较严重。如中视频4所示,实际车辆数为135,而检测出的车辆数只有115,误差达14.8%。当车辆密集度很大,而且路况拥挤的时间持续很长的时候,这种情况就更加明显。这个时候车辆相互遮挡更加严重,检测误差往往就会偏大。如中视频8所示,实际车辆数有67,检测车辆数为57,误差为14.8%。但是,提出的算法对于大部分视频,实验误差都在10%以内,能有效准确地检测出车辆流量。可以看出,提出的算法能够有效地判断实时路况,具有很好的实用性。
与经典的交通信息监测的方法相比,提出的方法有明显的优点。首先,经典的方法对摄像机安装角度要求高,当摄像机拍摄方向与道路线方向的夹角过大时,无法检测被遮挡的车辆,该文提出的算法能够有效地检测到部分被遮挡的车辆,并且能够估算在车辆遮挡很严重的时候的车流量,使总的检测结果更加准确;其次,由于时空图的引入,很好地避免了由于背景变化带来的影响,使得算法的鲁棒性更强,更具实用性;再次,由于时空图的计算方法简单,因此保证了算法的实时性;最后,由于算法中只需要每隔一定的时间计算一次车辆数和判断路况,所以可以使用较复杂而准确的算法,并且不用担心算法过于复杂而导致的延缓现象。
提出了一种新的时空图的计算方法,并且利用时空图,提出了一种计算交通车流量的方法和一种判断实时路况的方法。该方法是每隔一定时间累计计算一屏时空图,然后对这一屏时空图进行车辆计数和路况判断,总的车流量就等于每屏时空图中车辆数之和。本文提出的算法不受背景变化带来的影响,并且一定程度上解决了由于车辆之间相互遮挡而引起的问题。由于时空图计算方法简单,因而能够充分保证算法的实时性。实验结果证实了提出的算法能够准确、有效、实时地进行车流量计算和路况判断,具有很好的实用性。未来的工作将集中在如何在摄像机拍摄方向与道路线方向夹角较大的情况下得到更精准的检测效果,以及如何在夜间进行检测的问题。