分块提升

2024-12-18

分块提升(精选7篇)

分块提升 篇1

1 工程概况

1.1 长沙南站概况

长沙南站是国内第一个高铁交通枢纽站, 也是一个现代化综合交通枢纽站, 京广高铁、沪昆高铁、地铁二号线和四号线、中低速磁浮铁路在此交汇, 采用共站分场分期建设的形式。一期为武广站房, 于2007年开工建设, 二期为沪昆站房, 于2012年开工建设, 三期为东站房, 于2014年开工建设。长沙南站是一个特大型站, 总建筑面积27.3万m2, 共设13台28线, 上进下出模式。

1.2 长沙南站东站房概况

长沙南站东站房是现有长沙南站沪昆站房由西向东的延续, 其建筑结构形式与沪昆站房基本保持一致, 总建筑面积28581m2, 共五层, 包括出站层 (-9.25m) 、出站层夹层 (-3.75m) 、站台层 (1.25m) 、高架层 (10.53m) 、高架夹层 (17.7m) , 高31.47m。

1.3 东站房屋盖概况

长沙南站东站房屋盖采用正放四角锥曲面钢网架结构, 东西向呈波浪形, 节点形式为焊接球节点。屋盖网架网格基本尺寸为4m×4m, 厚度为3.5m。网架杆件最大截面为准426×30.0, 焊接球最大直径为800mm, 壁厚为30mm。屋盖钢网架投影面积约16259m2, 长181m, 宽87.5m, 东侧悬挑14m, 最低点21.97m, 最高点31.47m。网架总重量约1750t。

2 施工难点

A周围条件受到限制。东站房与东广场、南北向匝道、磁悬浮站房、地铁出入口同时施工, 并且西面紧贴既有的沪昆站房, 因此施工场地被包围, 只有南边一条道路可出入, 现场临建场地狭窄, 物流组织困难, 大型履带吊车进退场困难。

B施工工期紧张。东站房开工时间为2015年6月1日计划竣工时间2016年8月31日, 共15个月。屋盖网架计划施工时间2015年12月15日~2016年2月28日, 共2个半月, 工期紧张, 工程量大, 任务艰巨。

C新老站房实现无缝对接。东站房屋盖钢网架施工时, 二期沪昆站房已经投入使用, 新老站房采用无缝对接。对接前需对老站房屋盖网架进行部分拆除, 对接过程中既要保证既有设施的安全, 又不得影响车站的正常运营, 且对接时间正处于冬季, 低温对对接质量的影响比较大。

3 施方案概述

3.1 方案选择

本工程屋盖钢网架由于受到周围场地条件的限制, 大型吊车通行困难, 场地狭窄, 无法采用整体吊装及分块吊装的施工方案。且本工程屋盖钢网架最高点与站台层高差30.27m整个网架落差为9.5m, 因此采用滑移脚手架的方法安全风险大, 操作困难。因本工程站台层面积大于屋盖钢网架投影面积, 可以利用站台层楼面作为网架分块拼装的场地, 综合考虑工期、质量、安全、成本等因素, 决定采用分块提升的施工方案, 局部采用满堂架高空散装法作为补充。

3.2 屋盖分块及提升顺序

本工程屋盖网架结构采用整体提升和局部高空散装的方法施工, 提升施工区共分为六个提升区, 提升一区:位于Y轴与已有结构、7轴与16轴之间结构;提升二区:Y轴与c轴、1轴与1/14轴间结构;提升三区:Y轴与c轴、6轴与10轴间结构;提升四区:Y轴与c轴、1/14轴与17轴间结构;两个散装区分别位于6轴与7轴、Y轴与已有结构之间, 16轴与17轴Y轴与已有结构之间。

钢网架提升顺序:提升一区→提升五、六区 (与提升一区一同提至设计标高) →散装区散装→提升二区→提升三区→提升四区。

3.3 屋盖网架液压同步提升步骤

(1) 将屋面主要布置特点及提升工艺相同的区域划分为一个提升单元;

(2) 提升单元的网架在其站台层投影位置搭设胎膜, 进行拼装;

(3) 按照分区面积大小设置提升吊点, 提升吊点的位置利用结构钢管柱和临时支架设置提升平台 (上吊点) ;

(4) 在已完成的网架提升单元与上吊点对应的位置安装临时球或临时吊具 (下吊点) 结构;

(5) 安装调试液压同步提升系统;

(6) 使用液压提升同步系统提升单元提升至距离设计位置;

(7) 网架提升到设计位置后, 进行网架的焊接合拢, 底座的安装;

(8) 网架安装全部结束后, 拆除液压系统及临时提升措施, 完成该网架的安装。

4 分块提升施工工艺

4.1 提升点及提升设备布置

网架总重量约为1750t, 提升重量约为1610t, 共划分为6个提升分区, 各个提升分区提升吊点及设备配置如下:

提升一区 (含五区和六区) 重量约为229t, 共设置10组提升吊点, 共计10台。

提升二区提升总重量约为637t, 共设置8组提升吊点, 共计8台。

提升三区提升总重量约为456t, 共设置8组提升吊点, 共计8台。

提升四区提升总重量约为288t, 共设置8组提升吊点, 共计8台。

提升吊点具体布置及设备配置如图4。

4.2 设置提升架底座

屋面网架提升临时支架由1000×1000mm的格构柱组成, 部分格构柱无法直接支撑于站台层楼面的框架梁柱上, 满意满足受力要求, 因此设置提升架底座将受力传递到梁柱上, 有三种形式, 底座一适用于临时支架底部为钢框架的吊点, 底座二适用于临时支架底部为混凝框架的吊点, 底座三适用于临时支架底部为混凝土框架的吊点, 底座梁采用H300×300×10×15mm的H型钢, 底座梁之间设置短梁, 短梁选用H200×200×8×12mm的H型钢, 材料材质均为Q345B。

4.3 安装提升架

根据提升点的位置和网架情况设置了两种形式的提升架, 分别是采用特制的支撑架和安装完成的k钢柱当作结构提升支撑;提升架一采用临时支架从站台层搭设的临时支架如上图的C轴线的支架, 临时支架的详图如图5。提升架二采用在结构钢柱的基础上设置提升架如上图中Y轴线的支架, 临时支架详图如图6。

4.4 网架分块拼装

网架分块拼装一般采用“由点成线、由线成面、由面成体”的拼装顺序。拼装步骤为焊接空心球→网架下弦杆→腹杆和中间焊接球→腹杆和上弦焊接球→上弦杆。在站台层楼面上搭设胎架进行拼装。分块提升区域内网架的拼装顺序为从中间向两端依次进行。

4.5 提升下吊点制作

网架提升下吊点采用两种形式, 对于网架支撑柱处的提升下吊点采用焊接球节点, 焊接球中部设置钢管, 底部设置加劲板及底板, 用来与专用底锚连接;其余吊点处下吊点采用临时吊具与网架下弦球焊接连接。

4.6 液压提升设备安装

4.6.1 液压提升器安装

液压提升器安装到位后, 立即用临时固定板固定。将固定板紧靠提升器底座, 同下部结构焊接, 焊接时不得接触提升器底座。底锚固定板安装技术要求同提升器。

4.6.2 导向架安装

导向架安装于液压提升器侧方, 导向架的导出方向以方便安装油管、传感器和不影响钢绞线自由下坠为原则。导向架横梁高出液压提升器天锚约1.5~2m, 偏离液压提升器中心5~10cm为宜。

4.6.3 专用底锚的安装

每一台液压提升器对应一套专用底锚结构。底锚结构安装在提升下吊点临时吊具的内部, 要求每套底锚与其正上方的液压提升器、提升吊点结构开孔垂直对应、同心安装。

4.6.4 钢绞线的安装

穿钢绞线采取由下至上穿法, 即从液压提升器底部穿入至顶部穿出。应尽量使每束钢绞线底部持平, 穿好的钢绞线上端通过夹头和锚片固定。待液压提升器钢绞线安装完毕后, 再将钢绞线束的下端穿入正下方对应的下吊点底锚结构内, 调整好后锁定。每台液压提升器顶部预留的钢绞线应沿导向架朝预定方向疏导。

4.6.5 液压系统的安装

(1) 液压提升器

本工程中液压提升备主要YS-SJ型穿芯式液压提升器。

(2) 液压泵源系统

液压泵源系统为液压提升器提供动力, 并通过控制器液压提升器进行控制和调整, 执行液压同步提升计算机控制系统的指令并反馈数据。

(3) 计算机同步控制及传感检测系统的安装

本工程的液压同步提升系统设备采用CAN总线控制、以及从主控制器到液压提升器的三级控制, 实现了对系统中每一个液压提升器的独立实时监控和调整, 从而使得液压同步提升过程的同步提升、空中姿态调整、单点毫米级微调等高精度要求, 实时性更好。

4.6.6 液压管路的连接

先将液压泵源系统与液压提升器的油管连接, 然后把控制、动力线与各类传感器的连接;液压泵源系统与液压提升器之间的控制信号线连接;液压泵源系统与计算机同步控制系统之间的连接;液压泵源系统与配电箱之间的动力线的连接;计算机控制系统电源线的连接。

4.7 网格分块提升

(1) 对提升单元进行预提升, 钢绞线进行预张拉, 使钢绞线均匀受力, 各吊点处的液压提升系统伸缸压力分级增加, 依次为20%、40%、60%、70%、80%;在确认各部分无异常的情况下, 可继续加载到90%、95%、100%, 直至提升单元全部脱离拼装胎架。

(2) 提升到1m的位置暂停提升, 观察上吊点、下吊点结构、提升单元等加载前后的变形情况, 以及主体结构的稳定性等情况。一切正常情况下, 继续下一步。

(3) 提升过程中, 计算机使用自动同步控制系统, 上升速度为5~10mm/min, 提升提升过程保持测量与调整。

(4) 等提升到位后, 拆除胎架。

4.8 树形柱与支座安装

因网架提升需要, 在网架提升前未安装树形柱的树形分叉, 待屋面网架提升到位后方可安装树形柱的树形分叉。为了现场施工安装和钢构件加工安装方便, 树形分叉段分段按两铸钢件间管段进行分段安装。

4.9 块与块之间的合拢

本工程网架的合拢主要有6条主合拢线施工, 提升二区至提升四区间的合拢线共2条, 每条长约60m;提升二区至四区与提升一区间的合拢线共1条, 长度约为181m;提升一区与两散装区间的合拢线, 长度约27m;新建结构与已有结构间的合拢线, 长度约181m, 网架合拢示意图7。

总体的合拢顺序为, 提升一区提升至提升五、六区拼装高度进行提升一区与提升五、六区间的合拢, 合拢后将提升一区提升至设计标高与两块散装区的网架合拢, 提升三区与提升一区、提升二区间的合拢, 提升二区与提升一区间的合拢, 提升四区与提升二区, 提升一区间的合拢。

4.9.1 合拢线上杆件下料加工

根据矫正后测量出的各球节点的三维坐标值和设计值进行对比;计算出每个杆件的合拢施工时的长度, 并根据设计杆件编号与设计值对比。对于个别杆件误差超过规范, 在不影响杆件的质量前提下, 在现场进行加工, 根据合拢时的杆件长度进行杆件加工。

4.9.2 合拢施工

在设计温度下, 安排多名焊工和焊机在规定的时间和温度下同时施工, 将整个网架在整条合拢线上同时合拢。

4.1 0 新老站房的合拢

屋盖钢网架提升施工完成后, 进行沪昆站房的结构与新建结构进行对接 (如图8) 。

本次工程共需拆除沪昆线站房连接处368根杆件, 83个球, 合拢线, 长度约181m, 补装杆件185根杆件, 其中最大补装杆件为下弦杆中的X6a36, 杆件截面准245X12, 长度3.703m, 单根杆件重260.5kg。

4.1 1 网架整体卸载

本工程中用到的我公司特有支撑架的卸载采用同步分级卸载的方案实施, 每次卸载为卸载变形量的1/3。其卸载步骤为:同步进行支撑架卸载, 先同步卸载位移量的1/3;再同步卸载位移量的2/3;最后一次全部卸载到位。

4.1 2 提升设备及提升架拆除

网架整体卸载结束后进行提升设备及提升架的拆除, 拆除后及时补杆。

4.1 3 网架补杆

临时支架的位置, 有部分网架杆件没有组装, 在液压系统卸载完成后, 按照卸载的顺序将提升架拆除到屋面底标高以下后立即补杆, 防止长时间悬挑造成的扰度变形。等到所有杆件补齐后在进行剩余架子的拆除。根据提升架两种发不同的形式, 补杆有两种情况, 如图10~11所示。

5 质量控制要点

5.1 测量定位精度控制

在网架组装前和合拢前使用TCR-402型全站仪测量合拢线上的每个球安装的X、Y、Z三维坐标, 将实际测量的合拢线上每个球节点的三维坐标与设计的三维坐标进行核对, 进行矫正, 调整到位后再进行网架组装和合拢施工。

5.2 变形的控制

网架球节点焊接时, 采取对称焊接法, 保证杆件的轴线角度, 减少焊接应力, 从而控制变形。

在同一构件上焊接时, 尽可能热量分散, 严格控制层间温度, 采用对称分布的方式施焊。

提升过程中, 严格控制提升架每条钢绞线的拉力均衡, 防止不同拉力带来的网架变形。

网架合拢时, 在同一条合拢线上, 安排多名焊工同时进行施工, 减小焊接温度产生的变形的影响。

5.3 合拢温度的控制

根据设计要求, 网架的合拢温度应处于15~20℃之间, 本次网架施工时间正处于冬季, 平均温度达不到设计值。因此严格控制施工时间, 在天气晴朗的中午温度达到15℃时, 进行网架施工, 在早上和下午温度小于15℃达不到要求时立即停止施工。

6 结束语

长沙南站东站房屋盖钢网架于2015年11月15日开始拼装, 2015年12月27日开始提升, 2016年1月15日提升完成, 1月30日完成卸载, 历时约2个半月, 比计划工期略有提前。总体看来, 采用网架分块提升施工技术主要有以下优点:

分块组装大部分工作在地面进行, 减少了高空作业, 降低了安全风险, 在施工期间未发生安全事故。

尽可能在地面完成网架拼装焊接工作, 减少高空作业, 保证了焊接质量, 减少焊接变形和焊接应力, 也便于对焊缝进行检测。

地面焊接相对于高空焊接而言, 降低了焊接难度, 大大提高了工作效率, 加快了施工进度。

分块提升施工, 不需要搭设脚手架, 不需要大型吊装机械, 节约了措施费。

参考文献

[1]吴应刚.关于建筑工程现场管理问题的思考[J].大科技, 2015 (26) :17~18.

[2]常天野.对于建筑工程现场管理问题的探讨[J].建筑工程技术与设计, 2014 (33) :740.

[3]杨颖.建筑工程施工技术及其现场施工管理探讨[J].煤炭技术, 2012, 31 (8) :237~238.

分块提升 篇2

二次型在线性代数中具有非常重要的地位。通过对二次型的学习,除了能进一步加深对线性代数中的一些概念的理解外,还能为学习空间解析几何,特别是空间解析几何的二次曲面等打下一定的基础。另外,二次型中的正定矩阵、负定矩阵等理论也被广泛应用于对系统科学的研究中。在研究一个系统时,我们常常需要研究这个系统的稳定性。李亚普诺夫函数方法是研究系统的稳定性的一个重要的方法。我们通常希望所构造的李亚普诺夫函数的导数是一个负定的二次型。因此,正定矩阵和负定矩阵在对系统科学的研究中占有非常重要的地位。但是,在线性代数教材中,一般都很少对分块正定矩阵和分块负定矩阵进行进一步地分析和讨论。本文对分块正定矩阵和分块负定矩阵进行了一些讨论,得到如下的一些结论。

注:由性质1至性质4,我们可以类似地得到分块负定矩阵的一些相关结论。上述知识在线性代数中教材很少提及。根据矩阵的一些性质和线性代数教材中有关正定矩阵和负定矩阵的知识,我们不难得到上述关于分块正定矩阵和分块负定矩阵的结论,这些结论在研究马尔科夫跳变系统、时滞系统、广义系统等系统的稳定性等问题中有着非常广泛的应用。

摘要:矩阵的正定性是矩阵理论中一个很重要的理论。矩阵的正定性在系统科学的研究中占有非常重要的地位。本文借助于线性代数教材上的有关矩阵和二次型的知识,对分块正定矩阵和分块负定矩阵进行了一些探讨,得到了一些相关的结论。

关键词:分块矩阵,正定矩阵,负定矩阵

参考文献

[1]同济大学数学系.工程数学:线性代数(第5版)[M].北京:高等教育出版社,2007.

[2]吴传生,王卫华,曾祥金.经济数学:线性代数(第2版)[M].北京:高等教育出版社,2009.

基于分块的连接算法实现 篇3

1 技术背景

当前计算机缓存Cache容量是十分有限的,假设两个表的两列A和B在做哈希连接(Hash Join),小表的列为A,在B列上建哈希,连接过程第一步是先将A、B两列数据加载到内存中,一般讲内存是够用的,将A的部分数据加入Cache中,遍历A在Cache中的每条数据,与B中数据哈希值进行比较,如果哈希值跳跃比较大,会导致哈希值频繁在Cache中被换入换出,就导致花费大量时间,根据一定的规则和算法把哈希值相近的数据放在一块就能避免这种问题发生[1]。

2 设计与实现

2.1 分块连接算法设计思想

分块连接(Partition Join)算法基于当前计算机的体系结构以及计算机的工作原理进行设计优化,采用分块策略与一般的Hash Join算法比较,性能有了大幅提升。

该算法是通过提高Join操作的内存访问性能来获取性能,哈希连接算法是现在最流行的一种算法,其为了找到内部关系的值,采用了一个对哈希表的随机访问模型,建哈希表的那个表称为内部关系,外部关系就是被顺序扫描的那个表。内存访问只有在内存能够缓存下内部关系和其哈希表时才能更高效地处理,如果内部关系和其哈希表没有被缓存在Cache中,它们的访问就会出现缓存失效(Cache Miss)问题,这样大部分的执行时间就被由于缓存失效而导致的换入换出时间所占用[2]。

分块连接算法的核心思想是减少上面所讲的缓存失效情况发生,其利用内存的有序化和额外的CPU工作来减少缓存失效次数,该算法提供了这样一种新型访问方式,首先由于内存的容量有限就要进行局部连接,对内外关系进行分块,这是有必要的,这样缓存就能容纳相对于表来说小得多的块,接着就是要找到内外关系中相匹配的块,在相应的块上执行哈希连接。一般来讲,Cache Line的大小是分块时分块大小的参考,一般不应大于Cache Line的大小,如果一个表很大的话,分块的个数也会比较大,如果按通常想的分块方法假设将一个表分成A块,在分块的过程中需要A个缓存空间,然后遍历这个表,将表中每一行插入到相应的缓存空间,这样A个临时的输出指针也是必要的,而且它们就在内存中。但是,当A非常大缓存不够用时,输出指针就不会被缓存,出现大量缓存失效情况,降低了效率,分块算法的性能下降,分块连接算法性能也不会很高。采用多趟扫描分块的方法可以解决这个问题,一般来讲,分块是采用哈希值的后面N位进行计算的,N位相同的为一块,采用多趟扫描分块算法后,由于每一遍只处理少数的块缓存,这样缓存指针的缓存失效次数就会大大降低[3]。

2.2 分块算法实现

2.2.1 分块算法描述

Radix Cluster算法[4]就是要描述的分块算法,它是通过多次分块完成的,首先基于给定的趟数(Passe)将一个表划分成K个块(Cluster),比如表T1和T2都通过2趟被分成了8块,假设按一列Hash值的第B位分块,趟数为P,每一趟按Bp位从左边开始分块(B1+…+Bp=B),最终分成的块数为K1*K2*…*Kp=K,其中每经过一趟每一块还会再分为Kp=2Bp个新块,这种类似于分裂的算法,在开始时,整个表被看作一个块处理,并且被细分成K1=2B1个块,最终经过2趟分裂成8块。

首先将这两个表T1和T2看作是两两个独立的块,选取位数(Cluster Bit)为3,趟数为2,这样卫门就按哈希值的后3位分块并且要进行2次,如果第一趟按2位计算,第二趟按1位计算的话,首先要计算表T1的哈希值的后3位,第一趟按2位取,即哈希值的后两位,这样就分成了4块,它们的哈希值尾数为00、10、01和11。第二趟对第一趟结果的所有块按第3位进行划分,这样每一个块又被一分为二,类似的对表T2也做同样的操作。接下来,就要对T1和T2分块后的结果做哈希连接,这时不需要对所有的进行哈希连接,只要对应的块之间做即可,最终的结果就是所有分块连接后的集合。

2.2.2 基数和趟数的选取原则

假设分块位数(Radix Bits)为B,也就是说能将该表分成的块数为H=2B,用P来表示分块的趟数,Bp表示每趟分块位数,为了评估该分块算法的性能,尤其是分块所用的趟数和位数,及其每一个趟所对应的位数,给出了一个该算法的指导准则,用不同的位数、趟数和块大小作为参数对内存相关的事件,如缓存失效、内存换入换出、TLB失效等来进行评估,CPU的耗时包括在总体执行时间内。根据前面讲的计算机结构等原则,分块的大小应为一个合理的值,太小和太大的的话都和没有分块没什么区别。基于程序顺序访问速度比较快的原则,为了避免数据间大范围移动,采取了多次分块的方法,同时考虑数据量和Cache Line的大小关系,分块太多有时会影响性能,一般应遵守下面的原则:(1)每块大小等于一个Cache Line大小;(2)趟数根据具体的数据量应为1~13,最优的分块策略目前还没有特别好的办法去计算,只能通过实验不断尝试,得出最优块数及对应的位数和趟数。

2.2.3 Radix Cluster算法实现

实现Radix Cluster算法描述如下:

2.3 哈希连接算法实现

哈希连接是大数据集连接时常用的方式,该算法核心功能分为两个,一个是哈希值的计算,另一个就是哈希值冲突问题的解决。一般的,桶链是解决哈希冲突的有效方法,其中空间优化问题也是值得讨论的,在连接时使用循环比较哈希值的方法.

一般的哈希连接算法实现要经过下面几步,首先计算内存评估值,用于建哈希,然后根据评估值的大小申请内存空间,结果就存在申请的内存空间中,接着对小表上某一列建哈希值,大表上相应列上的每条数据和小表上对应列进行比较,如果哈希值一样,就将数据放到结果空间上,如果结果空间不够用,还需要扩展空间,然后再插入数据。

2.4 分块连接算法实现

分块连接算法首先是一个分块算法,其次是在分块基础上的哈希连接算法,它是基于现代计算机体系结构特点对哈希连接算法的一种优化。

2.4.1 分块算法空间优化

需要分配空间用于存放分的每一个块,该分配多少空间,多大空间才比较合理,需要特别考量,如果分配的空间不合理,过小的话不够放,过大的话不仅会增加内存的开销,而且会引入更多内存的换入唤出,通常为了获取合理的内存空间采用动态调整分配内存的方法。

假设一个表关系的大小是100兆,分块连接算法需要将表分成5块,分块时首先根据表的大小申请一个100兆的内存空间,然后将申请的100兆空间平均分配给每一个块,这样每个块占有20兆的内存空间。假设块1只用了10兆还余下10兆,就将余下的空间挪给下一个块即块2使用,块2就有30兆可以使用,如果30兆正好够块2使用,假设现在块3的大小是30兆,显然开始分配的空间不够用的,这时又需要向下一个块做动态调整。这时向块4借用10兆的内存空间,块3就拥有30兆的内存空间,满足了要求、这样以此类类推,根据块的大小和初始分配的内存大小,将多余的内存分给下个块或向下一个块借用内存空间,这种内存分配策略就是动态内存分配策略,可以大大节省内存空间,而且这种动态调整方法只涉及指针调整不需要额外的临时空间,开销很小。

2.4.2 分块连接算法的实现

分块算法就是先分块然后再做哈希连接,分块是对左右两列关系都要进行的,分块趟数和位数决定了分块的具体情况和整个算法的性能状况,前面的分块算法中已详细阐述过,接下来就要对在内存中的分块进行哈希连接了,针对左右两边相关分块(根据Hash值决定哪些是相关的分块)进行哈希连接,哈希连接算法的实现原理和过程前面已描述过。

实现分块连接算法简单描述如下:

3 结语

通过深入理解现代计算机体系结构特点及工作机制,基于对Hash Join算法的分析研究和理解,对Hash Join算法进行优化,针对Hash Join算法目前存在的性能瓶颈,以现代计算机存储结构作为基础,提出并实现了一种基于Prtition(分片)的连接算法。

参考文献

[1]A Ailamaki,DJ Dewitt,MD Hill,et al.DBMSs on a Modern Processor:Where Does Time Go?[A]//Proceedings of 25th International conference on Very Large Data Bases(VLDB'99)[C].Edinburgh:Morgan Kaufmann,1999:266-277.

[2]KC Yeager.The MIPS R10000 Superscalar Microprocessor[J].IEEE Micro,1996,16(2):28-41.

[3]S Manegold,P Boncz,N Nes,et al.Cache-Conscious Radix-Decluster Projections[A]//Proceedings of Thirtieth International Conference on Very Large Data Bases(VLDB'04)[C].Toronto:Morgan Kaufmann,2004:684-695.

基于压缩感知的分块法人脸识别 篇4

人脸作为进行身份鉴别的一种生物特征, 一直受到研究人员的关注, 但人脸特征很复杂, 如何准确地进行人脸识别已成为模式识别领域的一个难点和热点, 它作为模式识别领域中一个富有挑战性的课题, 具有广泛的应用前景和研究价值[1,2]。近几年, 国内外学者提出很多人脸识别的方法, 也取得了不错的效果。但目前还有很多方面有待深入研究, 如光照、表情变化、遮挡和噪声问题等[3]。

压缩感知 (Compressive Sensing, 简称CS) [4]是近几年流行起来的一个新领域, 由Candes[5]、Terres Tao[6]等人提出, 文献[7]指出, 当一个信号具有稀疏性, 或者在某个变换域是稀疏的, 或是可压缩的, 就可以用一个与变换基不相关的观测矩阵将变换所得的高维信号投影到一个低维空间上, 同时这种投影保持了重建信号所需的信息, 然后通过求解一个最优化问题就可以从这些少量的投影中重构出原始信号。目前, CS理论是一个快速发展的技术, 在信号处理和图像识别等领域取得了很好的效果, 如医学图像处理、生物传感、光谱分析和遥感图像处理等。

基于压缩感知的人脸识别 (SRC) 把所有的训练图像组成一个样本集, 然后把待测图像用训练样本的线性组合来表示, 通过求解稀疏系数来判断待测人脸图像的类别。该方法取得了良好的识别效果, 但是对于噪声和遮挡图像, 识别效果不是特别理想。介于此, 提出了分块的基于压缩感知的人脸识别算法。

1 基于压缩感知的人脸识别

假设每一类训练样本的数量足够多[8], 第k类训练样本矩阵表示Ak=[vk, 1, vk, 2, ..., vk, nk]∈Rm×nk, 其中nk表示第k类训练图像的数目, 表示第k类第nk张人脸图像, 则同样属于该类的待测样本向量y∈Rm可以用该类训练样本的线性组合表示为:

由于样本所属类别k是未知的, 将所有w个类别的n个训练样本串接在一起, 组成一个新的训练集矩阵A:

则待测图像y就可以用所有的训练样本线性表示为:

如果待测图像属第k个人, 则在理想情况下, x=[0, ..., 0, αk, 1, αk, 2, ..., αk, n, 0, ..., 0]T∈Rn, 即只有第k类的值是非零的元素, 可见x是一个稀疏向量。

接着对每一个y解出其稀疏向量x, 一旦得到x, 结合已知的训练样本矩阵A, 即可以知道待测图像y的类别。

将上述理论表示成数学模型, 即为:

但在人脸识别中, 对图像进行降维后, 通常有维数m

这样就将原本的NP问题转化为求解l1范数最小化问题。对于式 (5) 可以采用多种方法求解, 用正交匹配追踪算法 (OMP) [10]进行求解, 得到待测图像的稀疏解后, 就可以对测试图像进行判别归类。图1为Extended Yale B人脸数据库中第2类第5幅图像进行稀疏表示后的结果, 其稀疏系数对应800个训练样本 (每类40幅训练图像) 的线性组合, 较大的2个系数0.424 5、0.771 6, 其对应的序列值为78、71, 均属于第2类样本, 因此, 可以判定测试图像为第2类人脸图像。

然而, 在实际计算中, 由于噪声等误差的存在, 很难得到只有某一类的系数为较大非零值的情况, 所以如果得到的结果中有2类或者2类以上存在较大非零值时, 就可以用下面的重构误差方法进行判断:

用与第k类相关的元素, 将测试图像y的估计值写为 ) (向量δk (x) 为x中与第k类相关的非零元素) , 接着计算所有y^k与y之间的差, 并将差最小的k置为y的类别:

2 改进的分块人脸识别

遮挡问题是人脸识别中的常见问题, 也是人脸识别系统设计的重点和难点。要将人脸识别系统推广到实际应用中, 遮挡问题是必须要得到解决的。实际情况中, 人的头发、眼镜和伤疤等外部环境都可能导致人的面部被遮挡, 而用户不可能控制这些外部环境的干扰去配合人脸识别系统, 因此必须找到切实可行的方法解决这一难题。受外界因素的影响, 图像在采集和传输过程中不可避免地会产生噪声, 从而影响人脸识别系统的识别效果, 因此噪声问题也是人脸识别系统不可忽略的一部分。

针对上述问题, 提出了一种基于分块的压缩感知人脸识别算法。首先输入训练图像和测试图像, 利用分块算法对每一幅训练图像和测试图像进行分块, 再将每一个子图像块进行向量化, 然后采用正交匹配追踪算法 (OMP) 对分块后的图像进行匹配识别并得到一个局部残差, 通过这个残差值判断出每一子图像块的所属类别, 看这些子图像块所属哪一类别的数目最多, 最多的那类即为整幅测试图像的识别结果。若子图像块所属的类别数目有2个或2个以上是相等的, 则通过将每个子图像块的局部残差相加计算出测试图像对于数据库中所有人脸图像的最终残差值, 然后选择最终残差值最小的分类作为测试图像的识别结果。

算法的执行流程如下:

(1) 从人脸图像数据库抽取k张人脸图像并存入训练集A中, 从人脸数据库中提取出另外w张人脸图像作为测试集B中的元素, 设定分块数为p×q块;

(2) 遍历训练集A中的图像并依次对k张人脸图像进行分块, 得到p×q块子图像, 训练集A中第i幅图像的第j个子图像块表示Ai, j (i=1, 2, …, k, j=1, 2, …, p×q) ;

(3) 依此遍历测试集B中的元素并对w张人脸图像进行分块, 对测试集B中第s幅图像进行分块得到的第j个子图像块表示为Bs, j (s=1, 2, …, w, j=1, 2, …, p×q) ;

(4) 用训练集A中每幅图像的第j个子图像块构成一个新的训练样本矩阵Aj, 然后对测试集中的第s幅图像的第j个子图像块Bs, j与新的训练样本矩阵Aj进行SRC算法求解, 得到残差最小值作为子残差rs, j, 根据rs, j找出Aj中与Bs, j图片最匹配的图像, 判断Bs, j所属的类别。令j分别等于1, 2, …, p×q, 重复该步骤;

(5) 统计测试集中第s幅图像p×q块子图像所属的类别, 类别数量最多的即为第s幅图的最终识别结果;

(6) 若出现类别数量相同的情况, 则对Bs, j和Ai, j进行SRC算法匹配, 得到子残差Ri, j, 令j分别等于1, 2, …, p×q, 重复该步骤。计算总残差 , 然后对Ai+1执行 (4) , 遍历完成后通过寻找min (Ri) 比较总残差, 找出A中与测试集的第s幅图像最匹配的图片作为结果;

(7) 计算识别率, 程序运行结束。

3 仿真实验结果及分析

3.1 仿真实验

本实验使用Extended Yale B人脸图像数据库, 该数据库共有38个人在不同光照条件下的共2 432张人脸图像, 每张图像都是在严格条件下采集的, 且经过统一的裁剪, 其图像分辨率为192×168。实验中随机选取每个人的40幅图像作为训练样本集, 另外20幅作为测试图像。

本实验主要研究椒盐噪声、高斯噪声、乘性噪声下的人脸图像以及分别遮挡住鼻子、眼睛、嘴、一部分脸蛋的图像进行识别的识别效果, 如图2和图3所示。由于子块数目过多会影响计算的复杂度, 子块数目过少会降低抗遮挡能力, 所以子块数目的选择很重要, 通过反复实验, 发现分块数为4×4时效果最好, 故本实验设定分块数为4×4。

分别用原始SRC人脸识别方法和改进的分块人脸识别方法对不同噪声污染后的人脸图像进行了识别, 并对其进行了详细的比较, 识别效果如表1 (实验结果为5次实验的平均值) 所示。

表2显示的数据是分别用原始SRC人脸识别方法和改进的分块人脸识别方法对遮挡人脸各种部位后的人脸图像进行识别的识别效果 (实验结果为5次实验的平均值) 。

3.2 结果分析

由实验结果可以看出对于噪声图像, 2种方法的识别效果几乎相同, 椒盐噪声和高斯噪声图像的识别率都在96%左右, 乘性噪声图像的识别率均为98.25%, 2种方法对噪声图像都具有很好的识别效果, 但改进效果不明显。

对于遮挡图像, 改进的基于压缩感知的人脸识别方法比原始的SRC在识别率上有很大的提高, 平均多出7%~8%以上, 取得了很好的识别效果, 说明改进的分块方法对于遮挡的鲁棒性相对于原SRC算法在识别性能上得到了进一步的提升, 具有较好的鲁棒性和识别效果。从表2的数据可以看出遮挡住人的眼睛、鼻子和嘴, 对识别效果会产生很大的影响, 但挡住脸蛋儿对整个识别率的影响几乎没有。

4 结束语

对原有的基于压缩感知人脸识别算法进行了深入的分析和研究, 并在SRC算法的基础上加入了分块思想, 一方面保留了原SRC算法的优越性, 同时又使遮挡问题得到了很好的解决。由于分块算法是直接对原始像素进行处理, 不会像其他特征提取算法那样造成图像信息的丢失, 同时分块也很好地避免了图像中局部信息损坏对整体识别效果的影响。但是, 改进的分块人脸识别方法对噪声图像的识别效果没有多大提高, 在以后的研究工作中, 需要进一步探索新方法, 使其对噪声和遮挡问题都具有很好的识别效果和性能。

摘要:基于压缩感知的人脸识别算法 (SRC) 利用了高维数据分布的稀疏性进行建模, 能够很好地解决图像高维处理问题, 有效地避免维数灾难。对基于压缩感知的人脸识别算法的基本原理进行了深入地分析和研究, 并对SRC算法进行了改进, 提出了基于分块思想的压缩感知人脸识别算法, 解决了人脸图像识别中存在的遮挡问题, 避免了特征提取过程所造成的图像信息丢失, 也避免了图像中局部信息的损坏对整体识别效果的影响。通过仿真实验表明改进算法的识别率比SRC算法的识别率提高了7%8%。

关键词:人脸识别,压缩感知,分块,遮挡

参考文献

[1]王映辉.人脸识别原理、方法与技术[M].北京:科学出版社, 2010.

[2]GEMMEKE J, HAMME H, CRANEN B, et al.Compres-sive Sensing for Missing Data Imputation in Noise RobustSpeech Recognition[J].IEEE Journal of Selected Topicsin Signal Processing, 2010, 4 (2) :272-287.

[3]QIAO Li-shan, CHEN Song-can, TAN Xiao-yang, et al.Sparsity Preserving Projections with Applications to FaceRecognition[J].Pattern Recognition, 2010, 4 (2) :331-341.

[4]BAY H, ESS A, TUYTELAARS T, et al.SURF:Speededup robust features[J].Computer Vision and Image Under-standing, 2008, 110 (3) :346-359.

[5]DONOHO D L, TSAIG Y.Extensions of Compressed Sens-ing[J].Signal Proeessing, 2006, 86 (3) :533-548.

[6]CANDES E, ROMBERG J, TAO T.Robust UncertaintyPrinciples:Exact Signal Reconstruction from Highly In-complete Frequency Information[J].IEEE Trans on Infor-mation Theory, 2006, 52 (2) :489-509.

[7]DONOHO D L.Compressed Sensing[J].IEEE Trans.onInformation Theory, 2006, 52 (4) :1289-1306.

[8]WRIGHT J, YANG Y, GANESH A, et al.Robust FaceRecognition via Sparse Representation[J].Pattern Analy-sis and Machine Intelligence, 2009, 31 (2) :210-227.

[9]CANDES E, WAKIN M.An Introduction to CompressiveSampling[J].Signal Processing Magazine, 2008, 25 (2) :21-30.

基于分块的新闻网页信息抽取算法 篇5

关键词:网页信息抽取,模板页,分块,相同噪音块,同类噪音块,特殊噪音块

0 引言

网页信息抽取是数据挖掘中一个重要研究领域,旨在从半结构化的网页文档中抽取出有价值的信息。Web信息抽取技术根据信息抽取原理可以分为基于自然语言处理、包装器归纳、本体、Web查询和HTML结构的信息抽取[1]。基于自然语言处理方式[2]和基于包装器归纳方式[3]的信息抽取方法、抽取规则的获取需要大量的样本学习,处理速度慢。基于本体方式的信息抽取方法[4]从样本文档中提取出公共模式,工作量繁重,并且不支持对超链接的处理。基于Web查询的信息抽取方法[5]对大量异构网页信息抽取时需要建立同样多的查询语句,且当网页结构发生变化时需要建立新的查询语句,自动化和适应性较差。当网页结构发生变化时,基于HTML结构的信息抽取方法[6]需要建立新的抽取规则。文献[7]将DOM和XPATH API技术相结合,根据正文信息在文档树中的位置,通过人为设置抽取规则来获取信息。在网页解析生成DOM树后,文献[8]通过样本学习方法来自动获取抽取规则,然后进行正文抽取。文献[9]在解析的基础上,通过对相似网页聚类分析找出公共路径,通过公共路径进行网页正文信息抽取。此类方法的不足之处是当网页结构发生变化时,以前的抽取规则就无法继续使用,需要通过人为或者学习方式来建立新的抽取规则。

文献[10]利用统计方法找出网页中中文字符数量最多的<table>节点从而获取正文信息,但它仅适用于正文信息存放在<table>节点中的情形。文献[11]将每个<table>节点作为一块,找出块内文本长度最大的块以获取正文信息,但它同样仅适用于正文信息存放在<table>节点中的情形。文献[12]以<table>或<div>节点为一块,利用统计方法找出字数最多的块从而获取正文信息。这些方法只考虑了正文内容存储在单块内的情形,对于正文内容存放在多块以及正文内容较短的新闻网页均无法有效抽取。

文献[13]将块的空间特性(宽度和高度)和语义特性(非链接和链接字符数)作为参数,把不满足阈值条件的块从DOM树中删除掉从而获取正文信息。文献[14]将块内中文字符长度和中文字符比例作为参数,找出所有块中满足阈值的块从而获取正文信息。文献[15]将块内主题相关度(非链接字符总数、链接总数和标点符号总数)作为参数,找出所有块中满足阈值的块从而获取正文信息。文献[16]通过计算网页文档中所有节点的权值,找出权值最大的节点,并以此节点为基础进行余下正文信息的抽取。文献[17]通过计算网页文档中所有节点的文本密度,找出满足初始阈值的节点,从而获取正文信息。文献[18]在解析和分块基础上,通过计算块的主题质量因子,选出所有大于预先设定的主题相关度因子的块,从而获取正文信息。此类通过设置阈值来抽取网页正文的方法,当网页文档中的某一噪音块或噪音节点的内容满足初始阈值以及当正文内容较短或存在多个连续超链接很难满足初始阈值时,均无法有效抽取。

本文利用网页解析技术,以块为基本单位,在常规噪音清洗基础上,提出基于模板页的相同噪音块清洗方法、基于class属性的同类噪音块和特殊噪音块清洗方法,以更彻底清洗网页噪音、减少网页噪音对新闻内容抽取准确率的影响;利用新闻网页在内容布局结构上的特征,提出一种基于新闻起始块和终止块的新闻网页信息抽取算法,以实现同时处理正文内容存放在单块和多块内的情形、解决有效抽取正文内容较短的问题。

1 相同、同类和特殊噪音块清洗方法

1.1 基于模板页的相同噪音块清洗

网页文档的整体结构由头部和主体两部分组成,而在浏览器上实际显示的只有网页主体部分。由于网页头部中的<title>标题内容对新闻网页信息抽取有用,因此首先过滤掉头部部分除<title>节点之外的内容;其次将注释、脚本、样式等一些和新闻内容不相关的节点从网页文档中过滤掉。除了以上常规网页噪音外,网页文档中的噪音区域如导航栏、商情推荐等板块中往往都包含有较多的超链接,没有将所有超链接直接过滤掉的原因是由于一些网页中新闻内容本身的某些字词常常被用来作为超链接的文本内容用于连接到其他的网页文档。如果将超链接直接过滤掉的话,那么对于抽取新闻网页中包含有超链接的新闻内容,将会导致抽取内容不完整。

1)模板页的选取原则

通过分析人民网等10个门户网站的新闻网页,我们发现同一门户网站内的不同新闻网页文档之间,除新闻内容以外,往往包含有较多相同的噪音内容。这是由于门户网站为了便于维护和管理,都会制定和设计出属于自己的网站模版,通过模版页可以快速创建具有统一风格的网页文档并且可以实现快速批量修改。如果能够选取合适的网页文档作为模板页,将待抽取网页和模板页中相同的噪音内容从待抽取网页中清洗掉,那么网页噪音将会得到进一步的清洗。

通过分析,我们发现:(1)不同网站内的新闻网页由于各自网站采用的模版不同,使得网页文档之间的噪音内容往往存在着较大差异;(2)同一网站、不同类别的新闻网页文档之间的噪音内容也存在着一定的差异,如财经行业金融类的网页文档更多涉及的是有关金融类的新闻链接内容;(3)同一类别、不同时期发布的新闻网页文档中的噪音内容也存在着一定的差异,如一个月前和当天发布的同一类的网页文档之间,其热点新闻版块涉及的是截止各新闻发布时间为止,某一段时间范围内的热点新闻链接内容;(4)同一网站、同一类别、同期发布的新闻网页文档之间的噪音内容其差异性相对较小。

因此,本文将模板页的选取原则制定为:选取和待抽取网页隶属于同一网站、同一类别、同一时期发布的新闻网页作为模板页,若当前网站该类别同一时期下再没有其他的新闻网页文档,则选取距离当前待抽取网页发布时间最近的同一类别的网页文档作为模板页。

2)保留块结构的网页分块

本文统计分析了人民网等10个门户网站中各选取100个新闻网页文档的<div>和<table>标签的平均使用情况,以及统计了正文内容使用的块标签情况,如表1所示。

表1结果表明:<div>已经成为目前网页布局时主要采用的分块标签,也存在着同时使用<table>和<div>的情况。如果仅以<div>标签对网页分块,那么对于新闻内容处在<table>块内以及当新闻内容中出现数据表格并且该表格所在的<table>块与正文内容所在的<div>块相互独立时,就会造成抽取失败的问题。本文以<div>为主,将网页文档中出现的<table>和</table>标签统一替换成相应的<div>和</div>。

在网页文档中,标签之间往往存在着相互嵌套的关系。本文依据每个<div>块的起始标记和结束标记之间是否包含有其他的<div>标签将块划分为嵌套块和独立块,算法的设计思想是:(1)网页文档中并非所有的<div>节点都属于嵌套块,只需对嵌套块进行分块。(2)若嵌套块包含有m个<div>节点,则该嵌套块最多可以提取出2m-1块内容。(3)要保证分块结果的先后顺序,需要从嵌套块中按顺序依次提取出分块后每一个独立块内部的HTML字符串。(4)给提取出来的每一块HTML字符串内容赋予其原本所属的<div>块的结构“<div属性部分>+HTML字符串内容+</div>”。(5)当嵌套块中多个<div>节点下的第一个节点内容完全相同时,在节点树中查找<div>节点下第一个孩子节点为当前节点的结果就会有多个,我们可以通过这些节点内容在嵌套块中的索引位置来判断哪一个是我们当前处理的节点,以便获取正确的块结构。(6)若某个嵌套块包含有m个<div>节点,则解析结果共有m个内容,第一个为嵌套块本身,紧跟其后的m-1个内容均为该嵌套块内部所包含的块;假设当我们对某一个<div>节点执行完分块操作后,下一次应从第“当前<div>节点在网页所有<div>节点中的位序号加上它所包含的<div>节点数”个<div>节点执行分块操作。

算法1保留块结构的网页分块算法

输入:常规网页噪音清洗后的网页内容html

输出:网页分块结果

算法1可以从嵌套块中按顺序提取出每一个独立块的HT-ML字符串内容外,同时提取了每一块内容的<div>块结构。

3)基于模板页的相同噪音块清洗

以网页分块后的结果为基础,将待抽取网页中同时存在于模板页中的相同噪音块清洗掉。由于模板页和待抽取网页是两个不同的新闻网页,新闻内容本身就存在着较大的差异,再加上新闻内容所使用的标签、标签属性以及标点符号,使得清洗的相同独立块的内容从本质上属于网页噪音。

算法2基于模板页的相同噪音块清洗算法

输入:模板页和待抽取网页的分块结果

输出:清洗后的待抽取网页内容

算法2利用同一个模板创建的不同的网页文档之间往往存在有相同噪音内容的特点,利用BM模式匹配算法找出同时存在于模板页和待抽取网页的相同噪音块内容,并将其从待抽取网页中删除以实现对待抽取网页快速清洗相同噪音块的目的。

1.2 基于class属性的同类噪音块清洗

对于来自同一个模版的不同新闻网页,除了新闻内容明显不同之外,往往出于商业目的或因页面板块内容的需要,在非新闻区域或多或少会存在不同的噪音内容。如果待抽取网页和选取的模板页是同一天的不同时段发布的,且这两个不同时段的热点视频的内容发生了变化,那么发生变化的块就无法通过基于模板页清洗相同噪音块的方法将其清洗掉。

通过对剩余噪音内容的分析,我们发现同一板块多个具有相同class属性值的独立块之间,除块内文本内容不同外,各自所使用的HTML标签在内容和顺序上是完全一致的。在HTML标签中,class属性用来规定元素的类名,id属性规定元素的标识,网页设计中经常通过脚本或者样式为带有指定id或clas的元素改变或添加样式,两者最大的区别是一个class可以指定多个元素而一个id只能指定一个元素。算法的设计思想是(1)一般情况下网页新闻内容所在的块使用的是标签的id属性,而噪音块使用的是class属性;(2)同一板块内的多个独立块往往具有相同的class属性值;(3)同一板块内的多个独立块往往使用的HTML标签在内容和顺序上是完全一致的。

算法3基于class属性的同类噪音块清洗算法

输入:基于模板页清洗相同噪音块后得到的网页内容html

输出:清洗后的待抽取网页内容

算法3根据标签class属性的值找出网页文档中隶属于同一类的多个独立块,并且根据块内所有元素节点的标签名按顺序连接组成的字符串是否相同来判断同一类的多个独立块是否为具有相同结构、用以描述同一类信息,来达到清洗具有相同class属性值的多个噪音块的目的。

1.3 特殊噪音块清洗

在清洗相同噪音块和同类噪音块的基础上,我们分析余下的噪音块,发现部分噪音块的文本内容在结构上具有明显的特征,比如一个独立块内部的所有汉字和英文的文本内容是由该块内部所有超链接的汉字和英文文本内容组成的,我们称之为纯超链接块。通过对人民网等10个网站1000个新闻网页剩余噪音的分析,我们统计出包括纯超链接块在内的15种特殊结构的噪音块如表2所示,其中divtxt为每个独立块内所有的汉字和英文文本内容,ultxt为每个独立块内所有无序列表<ul>和</ul>中的汉字和英文文本内容;oltxt为每个独立块内所有有序列表<ol>和</ol>中的汉字和英文文本内容;dltxt为每个独立块内所有定义列表<dl>和</dl>中的文本内容;onlya为每个独立块内所有超链接<a>和</a>中的汉字和英文文本内容;atxt为每个独立块内除无序、有序或定义列表中的汉字和英文文本内容外,其余超链接<a>和</a>中的汉字和英文文本内容。

本文给出的特殊噪音块清洗算法旨在将剩余块中属于表2特殊噪音块之一的独立块内容清洗掉。

算法4特殊噪音块清洗算法

输入:基于class属性的同类噪音块清洗后的html

输出:清洗后的网页内容newhtml

算法4根据块内是否包含有<ul>、<ol>、<dl>、<a>标签来获取相应的ultxt、oltxt、dltxt、onlya和atxt的内容,然后判断每个独立块内部的所有汉字和英文本文内容divtxt与onlya、ultxt、oltxt、dltxt、atxt之间在块内内容结构上是否属于表2中的某种特殊噪音块,来达到清洗特殊噪音块的目的。

1.4 噪音清洗效果

对人民网等10个网站,各选取100个新闻网页进行噪音清洗,结果如表3所示。

表3的结果表明本文的网页噪音清洗方法获得了很好的清洗效果,清洗后剩余的独立块内容几乎接近于新闻网页的内容,包括新闻标题、发布时间、作者、新闻正文、责任编辑等有价值的信息。

2 新闻网页内容抽取

新闻内容是新闻网页文档最重要的部分,新闻内容从新闻标题开始,为了突出新闻内容的主体位置,新闻标题往往会通过<h1>标签高亮显示并且标题内容中不会包含有句号。本文对新闻网页中<h1>标签使用情况、是否用于新闻标题做了统计,结果如表4所示。

表4的统计结果表明10个网站共计1000个新闻网页都使用了<h1>标签并且都用于标注新闻标题,这在一定程度上说明了如果网页文档中出现了<h1>标签,基本上是用于标注新闻标题的。因此本文将新闻标题所在的块设置为新闻内容的起始块,通过<h1>标签和不包含有句号两个特征来识别新闻起始块,即使在网页文档中的其他部分出现了<h1>标签,但是清洗噪音已经很大程度上减少了包含有<h1>标签的噪音块对新闻内容起始块识别的影响。

一般情况下网页头部标题除了一些特殊标记的内容以外,往往和新闻区域的标题内容一样,为了能够处理新闻标题没有使用<h1>标签的情形,本文从网页头部获取的<title>标题内容入手,过滤掉和新闻标题无关的内容,然后利用分词工具获取到其中的名词和动词并将其作为用以识别新闻起始块的核心关键词,若清洗后剩余内容的某个独立块的文本内容中包含有这些关键词,则将其设为新闻起始块。

紧接新闻标题之后的往往是包括新闻发布时间、来源、作者等有价值的信息,然后才是新闻正文内容。通过进一步分析,我们发现部分网站的网页新闻内容具有明显的结束标记(如“责任编辑:***”、“相关阅读:***”等内容),这些内容会单独占据一块紧接正文内容块之后,并且“责任编辑”、“相关阅读”等关键词出现在块内文本内容的起始位置。因此,本文将这些具有明显结束标记的块作为新闻内容的终止块。

然而部分网站中的新闻网页并没有如此明显的结束标记,对于没有明显结束标记的新闻网页,本文将最后一个包含有句号的块作为新闻内容的终止块。另外,一些新闻网页中包含有表格数据,若新闻正文为纯表格数据或者表格数据块出现在正文块之后,就会产生抽取出错的问题。因此,对于没有明显结束标记的新闻网页,我们首先判断清洗后的内容是否包含有句号和表格数据,而判断新闻内容中包含有数据表格块的关键在于判断该块内部的HTML字符串是否包含有行列标签<tr>或<td>,将最后一个包含有句号的块号和最后一个包含有数据表格的块号进行比较,如果前者所在的块号大于后者所在的块号,则以最后一个包含有句号的块作为新闻内容的终止块,否则以后者作为新闻内容的终止块。即使网页文档里的某些噪音块中存在有句号或者行列标签,但是经过清洗噪音之后已经很大程度地减少了包含有句号或者行列标签的噪音块对新闻内容终止块识别的影响。在识别出新闻起始块和终止块后,我们就可以将起始块和终止块之间所有的块连接在一起最终抽取出新闻的所有内容。

算法5新闻网页内容抽取算法

输入:清洗网页后剩余的n个独立块内容

输出:网页新闻内容

算法5充分利用新闻网页内容在布局结构上的特点,通过设置新闻内容的起始块和终止块,这样无论正文内容由几块组成、长短如何,其正文内容均处在新闻内容的起始块与终止块之间,将起始块与终止块之间的所有块连接起来最终实现新闻内容的完整抽取。

3 实验

3.1 实验环境和数据

实验硬件平台为3.25 GB内存的AMD Athlon(tm)II X4645 Processor 3.09 GHz,运行的操作系统为Microsoft Windows Server 2003 Enterprise Edition Service Pack 2,开发工具为Microsoft Visual Studio 2010,采用C#语言编程实现算法,解析工具采用Html Agility Pack.dll,分词工具采用Pan Gu.dll。实验数据来自人民网等10个门户网站,每个网站各选取了100个新闻网页。我们将本文算法与文献[12]算法进行了实验测试对比。

3.2 实验结果和分析

表5给出了文献[12]算法与本文算法关于网页正文抽取准确率以及抽取失败的新闻网页分布情况的对比结果。

表5的实验结果表明:本文算法的正文抽取准确率明显高于文献[12]算法;此外,本文算法能够同时有效抽取正文内容存储在单块和多块中的新闻网页,而文献[12]算法只考虑了单块的情形并且其单块新闻网页正文抽取的准确率也低于本文算法,这是因为文献[12]算法认为块内文本长度最大的块就是正文块,当遇到正文内容较短并且未清洗的噪音块中存在有块文本长度大于正文文本长度时,它就会抽取失败。

本文算法根据新闻网页内容的布局特征,通过设置新闻内容起始块和终止块,使得无论正文内容长度如何,其正文内容均在起始块与终止块之间,因此本文算法能同时有效抽取正文内容较短的新闻网页。

4 结语

分块提升 篇6

以求解线性方程组的矩阵三角分解 (LU分解) 为代表的数值计算在现代科学研究和工程技术中得到广泛应用。当今的计算机在高速的CPU和低速的存储器之间设置了二级或更多级的高速缓冲存储器 (简称高缓, cache) , 高缓的存取速度很快, 但容量较小, 将计算机当前正在运算的数据或经常需要访问的数据置于高缓中, 让数据存取的速度适应CPU的处理速度, 从而提高计算机整体的运算效率。对于大型方程组, 其系数矩阵很大, 标准LU分解直接对大矩阵进行计算, 一次参与运算的数据量很大, 不能很好地利用当今计算机的高缓, 运算效率不高。本文对LU分解运用分块算法, 将大矩阵的运算分解成分块子矩阵的运算, 使各部分小的分块矩阵的数据运算能够更多地在高缓中进行, 同时采取矩阵转置、循环展开等优化技术, 对分块算法中各个模块的计算设计了较高效的算法, 提高了算法的总体运算速度。

1 LU分解分块算法

LU分解用于求解线形方程组Ax=b。从高斯消去法出发, 其系数矩阵A可分解为单位下三角阵L和上三角阵U之积:

或:

A=LU (2)

利用分解后的LU, 通过回代可方便地求出方程组的解。由矩阵乘法可推导出:

式 (3) 即为标准LU分解的计算公式, 整个数据计算在大矩阵A的范围内进行。

下面介绍LU分解分块算法。将矩阵A分解成2×2块, 方程A=LU可写成:

由矩阵乘法有:

A11=L11U11 (5)

A12=L11U12 (6)

A21=L21U11 (7)

A22=L21U12+L22U22 (8)

LU分解分块算法的步骤如下:

① 对式 (5) 中的分块矩阵A11进行LU分解, 可得L11、U11。

② 将①中得到的L11求逆, 并代入式 (6) , 有U12 = L11 -1A12 。

③ 将①中得到的U11求逆, 并代入式 (7) , 有L21 = A21 U11 -1。

④ 改写式 (8) , 设A′22=A22-L21U12, 则式 (8) 成为A′22=L22U22, 即为A′22的LU分解。

对A′22的LU分解可继续采用上述分块过程进行计算。这样, 只要每次选取适当的分块大小, 分块后的各子矩阵间的运算就有可能在高缓中进行, 从而提高运算速度。

2 LU分解分块算法的设计与实现

综上所述, LU分解分块算法的实现涉及六个模块的计算, 分别是分块矩阵的LU分解、单位下三角阵求逆、上三角阵求逆、单位下三角阵乘矩形阵、矩形阵乘上三角阵和矩形阵乘矩形阵。

2.1 分块矩阵LU分解

分块矩阵 (A11) 的LU分解计算采用式 (3) 所示的标准LU分解公式。与标准LU分解算法不同之处在于: (1) 形参的个数不同。对于分块分解, 需提供分块矩阵入口地址p, 阶数d以及在原矩阵内的偏移量displace和原矩阵的阶数n。 (2) 选主元的范围不同。标准LU分解是在大矩阵A的范围内选主元, 而块内LU分解是在分块矩阵的范围内选主元。

2.2 单位下三角阵求逆

可证明单位下三角阵的逆矩阵仍为单位下三角阵, 上三角阵的逆矩阵仍为上三角阵且对角线上的元素分别变为原来的倒数。

因为L11为单位下三角矩阵, 求逆后对角线上元素仍为1, 所以在计算时, 只需对对角线以下部分求逆。设单位下三角阵为L= (lij) d×d, 其逆矩阵为B= (bij) d×d。由矩阵乘法k=ji (lik×bij) =0 (j<i) , 有bij=-k=ji-1 (lik×bkj) (i=2, 3, , d; j=2, 3, …, i-1) , 对角线上元素为bii=lii=1。在该算法中可直接将算出的bij保存在原lij的位置上。

2.3 上三角阵求逆

设上三角矩阵为U= (uij) d×d, 其逆矩阵为C= (cij) d×d。同样有cii=1uiik=ij (uik×ckj) =0, 得到cij=-1uiik=i+1j (uik×ckj) (i=d, d-1, , 1; j=d, d-1, …, i+2) 。计算出的cij直接保存在原uij的位置上。

上面分别设计了针对单位下三角阵和上三角阵的求逆算法, 而没有采用常用的原地全选主元高斯约旦消元法, 这样做可以充分利用三角矩阵的特点, 避免无效的计算。且高斯约旦消元法对矩阵求逆时, 要多次全选主元, 进行很多次比较, 新设计的两个算法中不需要进行比较。

2.4 矩阵相乘

矩阵相乘是LU分解分块算法中的核心运算, 提高矩阵相乘的运算速度是提高整个分块算法效率的关键。本文采用了矩阵分块、矩阵转置和循环展开等方法来提高矩阵相乘的运算速度。

矩阵分块 将大矩阵逐次一分为二, 直到划分到分块矩阵小于指定的大小。把这些分块矩阵当作元素来处理, 分块矩阵内部用普通三重循环来计算。设两相乘矩阵为AB, 则过程如下所示:

(A11A12A21A22) (B11B12B21B22) = (A11B11+A12B21A11B12+A12B22A21B11+A22B21A21B12+A22B22)

测试表明, 采用矩阵分块相乘技术可使运算速度得到较大提高。但对矩阵相乘仅仅采用分块还不够, 有必要引入矩阵转置和循环展开技术。

矩阵转置 对于矩阵Am×pBp×n=Cm×n, 无论分不分块, 最终都要用三重循环实现。对C语言来说, 是采取按行存放元素, 最内层循环内AC是顺序存取, 而B是不连续的。当矩阵的阶数较大时, 访问B中上下相邻两个元素跨度很大, cache 内可能放不下, 访问时不能命中, 仍要访问内存。这样的访问会进行m次, 当m很大时, 会降低效率。所以将B转置, 在最内层循环中用A的一行乘B的一行, 这样ABC都是顺序存取, 提高了数据访问速度。

循环展开 循环展开可减少测试循环终止条件的次数, 它不仅可以减少循环的开销, 还可以在两个方面提高程序的性能。一是使程序利用多个执行部件并行计算, 充分发挥现代计算机多执行部件的特性。二是循环展开有助于重用装入寄存器中的数据, 降低了寄存器与cache以及cache 与内存之间对通信带宽的需求。展开多层循环的外层循环可以使一些变量得到重用。

下面介绍三处矩阵相乘的具体实现。

2.4.1 单位下三角阵乘矩形阵

计算U12 = L11-1A12 , 先将A12转置, 然后相乘, 结果保存于一临时矩阵T中。计算时需使用一大小为m的额外向量空间, 来保存A12转置后矩阵当前循环到的一行。乘运算从右边矩阵中的第一行开始, 逐行向下进行。采用循环展开技术, 第一层和第二层循环各展开1次。此时需要考虑两矩阵的行数为奇数的情况。当左边矩阵行数为奇数时, 计算结果存入右边矩阵的最后一列中;当右边矩阵行数为奇数时, 计算结果存入右边矩阵的最后一行中。

由于L11-1的对角线上元素全为1, 所以它们不需和T中的对应元素相乘, 可直接将这些元素作为最内层循环乘积项累加的变量初始值, 这样可减少m×n次乘操作。又L11-1为下三角阵, 只需将其对角线以下元素与T中对应元素相乘即可。

2.4.2 矩形阵乘上三角阵

在计算L21 = A21 U11-1时, 将结果保存在左边矩阵 (A21) 中, 使用一大小为n的额外向量空间来保存左边矩阵当前循环到的一行, 从左边矩阵的第一行开始, 逐行向下运算。计算时, 第一层和第二层各循环展开1次。同样要考虑两矩阵的行数或列数为奇数的情况。当左边矩阵行数为奇数时, 计算结果存入左边矩阵最后一行;右边矩阵列数为奇数时, 结果存入左边矩阵最后一列。

在该模块中, 矩形阵A21的列数大于等于上三角阵U1l的列数, 且U11对角线以下元素全为 0, 所以没有对其转置, 只需将三角阵对角线以上元素与左边矩形阵中对应元素相乘即可。

2.4.3 矩形阵乘矩形阵

A′22=A22-L21U12中, L21U12为两矩形阵相乘。计算时, 对L21进行分块, 将U12转置并分块。由2.4.1节中得到的结果T可直接作为L21所乘的对象, 并在做乘法时将所得的积取反, 相当于完成减运算, 这些操作有利于提高整个算法的效率。

L21、T分块时, 取m=n=d, 即分块矩阵为d阶方阵。这样一直分块下去, 直至L21最后所剩一块矩阵的行数为N%d+d, 列数为d;T最后所剩一块矩阵的行数为d, 列数为N%d+d, 其中N为原矩阵A的阶数。

分块子矩阵相乘时采用循环展开技术, 第一层和第二层循环各展开1次。此时由于参与计算的分块矩阵均为稠密型矩阵, 可直接展开不必象有三角阵参与那样考虑边界处的处理, 计算结果最终保存在L21分块对应的位置上。

3 测试与分析

3.1 测试结果与比较

两种算法在PC机上测试, CPU为Pentium 4, 主频2.8GHz, 内存512MB, 编译系统采用VC++6.0。在验证算法计算正确的基础上, 依次取矩阵的阶数为300~6000, 对两种算法进行运行和比较。对于分块算法, 取每次分块大小d=150。测得的算法运行时间如表1所示, 表中第四行为分块算法比标准算法效率提高的百分比。

表1 (续)

由表1可见, LU分解分块算法明显优于标准算法, 在大矩阵情况下, 运算速度提高50%以上。

3.2 测试结果分析

标准LU分解算法和LU分解分块算法中的运算时间主要用在乘操作和除操作上, 可分别计算出两种算法中乘操作和除操作的运算次数, 限于篇幅在此只给出结果, 作简要分析。

分块算法 (取每次分块大小为d) 的乘运算量约为n3/3+ (n%d-0.5) n2, 除运算量约为 (d+1) n/2。标准算法的乘运算量为n (2n-1) (n-1) /6, 除运算量为n (n-1) /2。当矩阵阶数n很大时, 两算法的乘运算量相差不大, 而分块算法除运算量比标准算法降低了一阶。计算机做除法最耗时, 且标准算法没能充分利用高缓。分块算法在较好地利用高缓的同时, 通过矩阵分块、矩阵转置和循环展开等技术加速了矩阵乘法的运算, 所以运算效率显著提高。

LU分解分块算法比标准LU分解算法多用约d×n的存储空间。

4 结束语

本文将分块算法引入LU分解, 并加以有效实现, 使算法的运算速度得到较大提高。由算法分析和测试可知, 在分块算法中, 两矩形阵相乘的用时最多, 约占总时间的70%。因此, 要想进一步提高运算速度, 必须提高两矩形阵相乘的效率。可以对矩阵相乘作并行处理, 事实上在LU分解分块算法中, 有些模块是可以并行计算的。再者就是研究出达到最佳运算效率时总阶数n与分块大小d之间、cache大小与d之间的关系。以上这些问题将是以后进一步研究的目标。

摘要:对稠密型线性方程组的系数矩阵进行分块LU分解, 更充分地利用高速缓存, 提高运算效率。对LU分解分块算法进行了研究, 用VC++6.0对分块算法进行实现, 并与标准的LU分解算法进行比较。在大矩阵情况下, 分块算法比标准算法运算速度提高50%以上。

关键词:LU分解,矩阵分块,矩阵快速相乘,VC++6.0

参考文献

[1]陈建平.LU分解递归算法的研究[J].计算机科学, 2004, 31 (6) :141-142.

[2]李玉成, 朱鹏.BLAS的加速方法与实现技术[J].数值计算与计算机应用, 1998, 19 (3) :227-240.

[3]李玉成.LAPACK中的分块算法及其效果[J].数值计算与计算机应用, 2001, 22 (3) :172-180.

[4]李忠泽, 陈瑾, 龙翔, 等.基于PentiumPro的高性能BLAS的设计与实现[J].北京航空航天大学学报, 1998, 24 (4) :454-457.

[5]王小牛, 冯百明.基于存储的矩阵乘积优化算法[J].西北师范大学学报, 2005, 41 (1) :22-24.

[6]刘萍.数值计算方法[M].2版.北京:人民邮电出版社, 2007:85-88.

[7]Elmroth E, Gustavson F, Jonsson I, et al.Recursive Blocked Algorithms and Hybrid Data Structures.SIAMReview, 2004, 46 (1) :3-45.

[8]Toledo S.Locality of Reference in LUDecomposition with partial pivo-ting[J].SIAM Journal of Matrix Analysis&Application, 1997, 18 (4) :1065-1081.

分块提升 篇7

目前目标跟踪算法可以分为两类: (1) 基于模型的方法, 如模板匹配、图像分割和活动轮廓法[1]。以Mean Shift算法和Snake算法为代表, 其中Mean Shift以目标颜色进行建模, 具有较好的实时性和跟踪性能, 但目标颜色与背景颜色接近时跟踪失败;Snake算法基于目标轮廓进行跟踪, 受目标初始形状和位置影响较大, 计算量大不适合实时操作。 (2) 基于运动的方法, 如光流法和特特征点法[1], 现有的基于特征点跟踪算以目标的质心或任意特征点实现对目标的跟踪, 在处理多目标跟踪时效果较差[2]。

本文提出了将检测区按32×32像素点进行分割, 以图像序列多状态转移综合判定前景目标和背景的情况, 完成背景的提取与更新;基于运动的方法, 提出利用目标的亮度和颜色信息, 以及在图像序列中的相对位置来构建代价函数的算法, 进行目标特征匹配与跟踪, 改善多目标情况下的跟踪性能。以商场客流统计为例, 从人体目标运动检测、特征匹配跟踪和计数三方面展开论述。

1 人体运动检测

在客流量统计中运动目标检测有获取目标在场景中的位置信息及获取目标尽可能多的特征信息两个任务。

商场客流统计摄像头常安装于出入口正上方垂直向下摄取图像, 属于静止背景的目标识别, 常用算法有帧间差分法、背景差分法和光流法。

1.1 帧间差分法

帧差法具有运算量小、对光照和阴影等外界因素不敏感的优点。但其缺点也非常明显:无法检测出静止或移动速度缓慢的目标, 相反在目标移动较快时, 检测出来的目标又远大于实际目标;亮度、颜色等特征单一的目标在差分运算后将形成较大的空洞, 造成差分结果不连通, 即便进行图像的膨胀和腐蚀等形态学方面的处理, 也不能消除空洞的影响。图1所示为相邻两帧差分结果信息相对丰富, 而图2 (a) 中目标信息单一, 图2 (b) 差分结果只有目标轮廓, 采用参考文献[3]等改进的差分算法对运动目标进行提取, 结果如图2 (c) 所示。

1.2 背景分块更新算法

背景差与帧间差相比, 检测出的目标内部区域不会出现较大的空洞, 可以将目标完整提取出来, 获取丰富的特征信息, 便于目标的匹配跟踪。

常用的方法包括基于卡尔曼滤波模型、基于高斯背景模型和基于简单概率统计的方法等, 前两种方法实现过程较为复杂, 且算法的实现对硬件要求高。第三种方法在没有运动目标长时间滞留的情况下效果较好, 且运算量不大, 符合实时性要求;在实际应用中, 由于天气、光照等外界条件的变化, 或目标长时间滞留, 影响了背景的准确更新, 由此可能会得到虚假的运动目标, 从而造成误判。

基于概率统计的背景更新方法, 常以一段时间内序列帧图像每个像素做差分运算, 满足预设条件, 则进行背景更新[4]。如图3所示, 按32×32像素大小将检测区域进行分割, 对每个分块图像按照图4所示将其分成初始状态Status0, 当三帧差结果判定图像无前景目标和干扰时, 进入Status1取背景数据BG1;在该状态若有前景目标运动, 则进入Status2;当前景目标消失、图像恢复静止, 则进入Status3取背景数据BG3, 据BG1、BG3差分运算判定进行背景更新, 否则返回Status0。

本文提出的方法可以解决如下两个问题:

(1) 检测区域覆盖面积较大, 若部分区域图像信息长时间做不规则变化时, 将影响整幅图像的背景更新。

(2) 目标滞留造成背景更新错误。

图4中, (1) 采用三帧差分法, 检测图像是否为静止状态, 无光线变化或细微的运动物体, 具体步骤如下:

(1) 每间隔200 ms获取{F1, F2, F3}三帧数据, Fi={fi (x, y) , x∈N, y∈M, i=1, 2, 3}。 (x, y) 为二维视场 (N×M, N为列线, M为行线) 中的一点。

(2) 对应点做差分运算, 与亮度阈值Lum T1比较得到差分图像, i={1, 2, 3}, k={i+1, .., 3}

(3) 对Di (x, y) 进行统计, 得到差分像素点个数:

(4) 对差分像素点个数Cntii=1, 2, 3均小于Cnt T1时Flag1=0, 则图像静止, 否则Flag1=1

(5) Flag1=0时, 判断当前状态, 若为Status0则跳转到Status1;若为Status1则保持;若为Status2则跳转到Status3。在Status1和Status3时将当前{F1, F2, F3}三帧数据取平均分别存为BG1={bgi (x, y) }, BE3={bgi (x, y) }。

图4中, (2) 主要判断是否有前景运动目标存在, 与 (1) 检测图像细微变化不同, 人体运动时帧差结果较大、差分像素点数也较大, 故将步骤 (2) 中的亮度阈值Lum T1修改为Lum T 2=2Lum T 1, 步骤 (4) 中阈值Cnt T1修改为Cnt T 2=10Cnt T 1。当Cntii=1, 2, 3均大于Cnt T2时判定有前景目标移动Flag2=1, 由Status1跳转到Status2。

图4中, (3) 判定是否进行背景更新。

(1) 将在Status1和Status3保存的背景数据做差分运算:

(2) B (x, y) 进行统计得到差分像素点个数

(3) 对BCnt小于Cnt T1, Flag3=0认为Status1和Status3均无前景目标, 则进行背景更新得到新的背景数据BG={bg (x, y) }, 否则返回到Status0

对所有分块区域按照图4方法进行背景更新, 可以得到整个检测区的背景数据。

1.3 光流法

光流法的优点在于能够检测独立运动的目标, 对背景处于静态或是动态的环境均能适用, 但是计算量较大, 无法保证实用性和实时性[1]。

2 人体运动目标跟踪和计数

采用分块更新的方法可准确提取背景信息有效检测出前景目标, 识别人体运动。在此基础上实现人体特征结点的创建、跟踪和计数。

2.1 虚拟检测区

图3中将检测区域划分为3个区域、2条计数线, 分别是:

(1) (3) 创建区, 创建人体特征结点;

(2) 跟踪区, 匹配人体特征信息, 跟踪人体运动;

(4) 出计数线, 当人体从 (3) 区域跨过该计数线时, 出计数值加1, 标注为 (7) 。

(5) 进计数线, 当人体从 (1) 区跨过该计数线时, 进计数值加1, 标注为 (6) 。

2.2 人体特征结点的创建

采用9宫格方法查找背景差结果的连通域[5], 得到图3中 (8) 所示的人体目标的位置、长宽信息, 综合判断其是否在 (1) (3) 区域, 以及长宽大小、比例等信息, 创建该目标Person[i], i为人体目标序号, i=[1:I], I为当前场景下目标个数, 其信息如下:

Person[i].x第i个人中心位置x坐标;

Person[i].y第i个人中心位置y坐标;

Person[i].W人体宽度;

Person[i].H人体高度;

Person[i].Cnt包含的特征方块个数;

Person[i].Dir创建区域。

而该目标的特征信息由Psn Feature[i][m]表示, m表示特征方块序号, m=[1:Person[i].Cnt]

Psn Feature[i][m].x该特征方块x坐标;

Psn Feature[i][m].y该特征方块y坐标;

Psn Feature[i][m].Ymean该特征块Y分量均值;

Psn Feature[i][m].Umean该特征块U分量均值;

Psn Feature[i][m].Vmean该特征块V分量均值;

Y、U、V均值采用算术平均的方法获得。

2.3 特征匹配与跟踪

目标在检测区域内运动轨迹无规律可循, 特别是当人流量较大时, 人体的运动轨迹杂乱。提出以目标特征信息进行匹配、跟踪的算法, 步骤如下:

(1) 获取当前帧数据与背景做差分运算;

(2) 查找连通域, 去除干扰点保存变量为:

Zone[k].x第k个连通域中心x坐标;

Zone[k].y第k个连通域中心y坐标;

Zone[k].Cnt第k个连通域特征方块个数。

k=[1:K], K为当前计算的满足条件的连通域个数, 隶属于第k个连通域的特征信息方块, 表示为变量Zone Feature[k][m], 其中m=[1:Zone[k].Cnt]

Zone Feature[k][m].x第m个方块x坐标;

Zone Feature[k][m].y第m个方块y坐标;

Zone Feature[k][m].Ymean特征块Y分量均值;

Zone Feature[k][m].Umean特征块U分量均值;

Zone Feature[k][m].Vmean特征块V分量均值。

(3) 计算第i个目标与第k个连通域 (k=[1:K]) 的距离和颜色特征差异保存为变量Comp Dist[i][k]和Comp Res[i][k], 并做归一化处理, 构建代价函数, 得到第i个目标与所有连通域的代价函数值Cst Fun[i][k]=0.6Comp Dist[i][k]+0.4Comp Res[i][k]。

(4) 将步骤 (3) 重复I次, 得到I×K的代价函数矩阵Cst Fun;

(5) 由Cst Fun得到与第i个目标最为匹配的连通域, 即满足Cst Fun[i][k]最小的序号k, 用Zone[k]变量更新Person[i]变量, 用Zone Feature[k]更新Psn Feature[i]变量, 完成目标跟踪。

图5所示为采用该算法对走出某卖场出入口的两人进行跟踪的结果。

2.4 计数

Person[i]跟随第i个目标的运动不断被更新, 当满足2.1节所述条件时计数, 之后将Person[i]结点删除, 其他出边界的情况则只删除结点不计数。

3 算法实现和结果分析

TMS320DM648是一款针对多媒体处理和视频安全与监控领域, 基于Veloci TITM超长指令结构的高性价比的单核DSP芯片。结合视频解码芯片TVP5154, 视频编码SAA7015实现了4路PAL格式视频输入, 1路PAL格式视频输出的商场客流统计系统, 其结构如图6所示[6]。

将该系统成功应用于某家电卖场, 其中抽取了2个时间段共7 h, 统计结果如表1所示, 现场人工计数为实际值, 系统计数为检测值。由表1可见统计准确率保持在95%左右, 注意到“正大门”、“通信门”和“数码门”这3个门在2个时间段内系统均多计, 而“服务门”均少计, 说明算法性能稳定, 不会出现忽多计、忽少计的情况。

本文针对基于概率模型的背景更新方法进行了改进, 更新了背景分区域, 提高了背景更新的可靠性和准确性。在此基础上提出了以目标位置、亮度和颜色构建代价函数的特征匹配和跟踪算法, 并将其成功应用于商场客流统计系统, 在TMS320DM648硬件平台同时处理4路PAL视频, 且客流统计准确率稳定在95%。结果表明, 该算法有较好的目标识别、匹配和跟踪能力。

参考文献

[1]赵艳启.运动目标识别与跟踪算法的研究[D].南京:河海大学, 2005.

[2]金鑫.基于改进特征跟踪的客流量统计[J].计算机工程, 2012, 38 (15) :175-178.

[3]丁磊, 宫宁生.基于改进的三帧差分法运动目标检测[J].电视技术, 2013, 37 (1) :151-153.

[4]曹海青.基于全局和局部特征的目标识别研究[J].微型机与应用, 2011, 30 (14) :41-43.

[5]孙抗, 汪渤, 郑智辉.基于局部亮度直方图特征的实时目标识别与跟踪[J].系统工程与电子技术, 2011, 33 (9) :1927-1931.

上一篇:自己羡慕自己下一篇:电影《伊豆的舞女》