一种基于FPGA的视频特征检测方法和系统与流程

文档序号:16000717发布日期:2018-11-20 19:25阅读:132来源:国知局

本发明涉及视频处理技术领域,尤其涉及一种基于FPGA的视频特征检测方法及系统。



背景技术:

随着互联网应用的普及,大量视频应用活跃在互联网上,其中掺杂的一些暴恐、色情、反动视频严重威胁国家和社会安全以及群众日常生活。因此,大吞吐量下的视频实时检测技术是这类应用必备的管理手段。

针对大吞吐量下的海量视频检测,传统的视频检测方法对对计算能力和网络传输能力提出了苛刻要求。以高清视频为例(基准:视频垂直分辨率720p或1080i),每个处理单元应实时检测不少于150路视频。720P的标准分辨率是1280*720。在收方视频解压缩后,恢复成原始视频文件,通常色深为32bit(红绿蓝三原色各8bit,亮度信息8bit)。以帧率5计算(人眼观看时需要20左右的帧率,但检测时可以适当降低),则150路1秒钟视频的规模为:

1280*720*32bit*5*150=22118400000bit

换算为字节容量,就是22118400000/8=2764,800,000字节,约为2.7GB.

此外,在利用SIFT等算法进行高斯金字塔等运算时,中间结果的数据量将再增加10倍以上。这种规模的数据对计算能力和网络传输能力提出了苛刻要求,采用服务器集群+GPU处理无法实现全程流水化且功耗高。进一步讲,当特征生成后,需要在海量特征库中进行比对,当特征超过10亿条时,查询代价巨大,因而,传统方案难以在大规模系统中采用。



技术实现要素:

本发明的目的在于提供一种基于FPGA的视频特征检测方法及系统。

一方面,本发明实施例提供一种基于FPGA的视频特征检测方法,包括以下步骤:

选取视频库中的视频流的特征点簇集;

对所述特征点簇集进行训练,得到分类网络;

利用FPGA固化实现所述分类网络以进行视频特征比对。

在本发明的基于FPGA的视频特征检测方法中,选取视频库中的视频流的特征点簇集的所述步骤包括:

提取所述视频流的多个关键帧;

针对所述每个关键帧,生成对应的SIFT特征点和SURF特征点;

比对同帧图像中的所述SIFT特征点和所述SURF特征点,选取所述SIFT特征点和所述SURF特征点重合的像素点集合;

对所述像素点集合进行簇集分类并标注以生成所述特征点簇集。

在本发明的基于FPGA的视频特征检测方法中,在针对所述每个关键帧,生成对应的SIFT特征点和SURF特征点的所述步骤中,通过以下步骤生成所述SIFT特征点:

对所述关键帧进行尺度空间极值点检测以确定所述关键帧的SIFT特征点;

对所述SIFT特征点进行精确定位,确定所述SIFT特征点的像素坐标。

在本发明的基于FPGA的视频特征检测方法中,在针对所述每个关键帧,生成对应的SIFT特征点和SURF特征点的所述步骤中,通过以下步骤生成所述SURF特征点:

构建Hessian矩阵;

生成尺度空间;

利用非极大值抑制确定所述SURF特征点;

对所述SURF特征点进行精确定位,确定所述SURF特征点的像素坐标。

在本发明的基于FPGA的视频特征检测方法中,对所述特征点簇集进行训练,得到分类网络的所述步骤包括:

以Darknet网络架构为基础构建所述分类网络的架构;

以所述特征点簇集中的像素点对应的关键帧为训练集,进行训练,得到所述分类网络的权重。

相应地,本发明还提供一种基于FPGA的视频特征检测系统,包括:

特征点簇集生成模块,用于选取视频库中的视频流的特征点簇集;

分类网络生成模块,用于对所述特征点簇集进行训练,得到分类网络;

视频特征比对模块,用于利用FPGA固化实现所述分类网络以进行视频特征比对。

在本发明的基于FPGA的视频特征检测系统中,所述特征点簇集生成模块包括:

提取单元,用于提取所述视频流的多个关键帧;

特征点生成单元,用于针对所述每个关键帧,生成对应的SIFT特征点和SURF特征点;

比对单元,用于比对同帧图像中的所述SIFT特征点和所述SURF特征点,选取所述SIFT特征点和所述SURF特征点重合的像素点集合;

特征点簇集生成单元,用于对所述像素点集合进行簇集分类并标注以生成所述特征点簇集。

在本发明的基于FPGA的视频特征检测系统中,所述特征点生成单元包括SIFT特征点生成子单元,用于:

对所述关键帧进行尺度空间极值点检测以确定所述关键帧的SIFT特征点;

对所述SIFT特征点进行精确定位,确定所述SIFT特征点的像素坐标。

在本发明的基于FPGA的视频特征检测系统中,所述特征点生成单元包括SURF特征点生成子单元,用于:

构建Hessian矩阵;

生成尺度空间;

利用非极大值抑制确定所述SURF特征点;

对所述SURF特征点进行精确定位,确定所述SURF特征点的像素坐标。

在本发明的基于FPGA的视频特征检测系统中,所述分类网络生成模块包括:

分类网络架构构建单元,用于以Darknet网络架构为基础构建所述分类网络的架构;

训练单元,用于以所述特征点簇集中的像素点对应的关键帧为训练集,进行训练,得到所述分类网络的权重。

实施本发明实施例,具有如下有益效果:本发明通过选取视频库中的视频流的特征点簇集;对所述特征点簇集进行训练,得到分类网络;利用FPGA固化实现所述分类网络以进行视频特征比对。通过基于FPGA实现神经网络架构,近似SIFT特征和SURF特征,实现视频特征检测。传统的SIFT和SURF算法通过查找特征库的方式进行比对,而本发明实际上在FPGA上通过神经网络完成了特征生成和比对过程,去除了查找特征库的步骤,提高了比对效率。本发明通过结合深度学习技术,优化SIFT和SURF算法,使其适用于大规模系统应用,并采用FPGA硬件技术加速计算过程,由此,规避了海量特征库查找环节,提升了检查效率,进而实现了互联网视频特征检测的实时性和准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的基于FPGA的视频特征检测方法的流程图;

图2是图1所示的步骤S1的流程图;

图3是图1所示的步骤S2的流程图;

图4是本发明实施例二提供的基于FPGA的视频特征检测系统的原理图;

图5是图4所示的特征点簇集生成模块的原理图;

图6是图4所示的分类网络生成模块的原理图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例提供了一种基于FPGA的视频特征检测方法。参见图1,该基于FPGA的视频特征检测方法包括以下步骤:

步骤S1:选取视频库中的视频流的特征点簇集;

目前,受限于计算能力,视频特征通常是提取视频关键帧图像特征,然后在此基础上实现特征比对的。传统上的图像特征分为全局特征和局部特征两类,全局特征是指图像的整体属性,常见的全局特征包括颜色特征、纹理特征和形状特征,比如强度直方图等。局部特征则是从图像局部区域中抽取的特征,包括边缘、角点、线、曲线和特别属性的区域等。常见的局部特征包括角点类和区域类两大类描述方式。与线特征、纹理特征、结构特征等全局图像特征相比,局部图像特征具有在图像中蕴含数量丰富,特征间相关度小,遮挡情况下不会因为部分特征的消失而影响其他特征的检测和匹配等特点。

在众多的局部特征描述子中,SIFT和SURF应用比较广泛,局部图像特征描述的核心问题是不变性(鲁棒性)和可区分性。由于使用局部图像特征描述子的时候,通常是为了鲁棒地处理各种图像变换的情况。因此,在构建和设计特征描述子的时候,不变性问题就是首先需要考虑的问题。在宽基线匹配中,需要考虑特征描述子对于视角变化的不变性、对尺度变化的不变性、对旋转变化的不变性等;在形状识别和物体检索中,需要考虑特征描述子对形状的不变性。然而,特征描述子的可区分性的强弱往往和其不变性是矛盾的,也就是说,一个具有众多不变性的特征描述子,它区分局部图像内容的能力就稍弱;而如果一个非常容易区分不同局部图像内容的特征描述子,它的鲁棒性往往比较低。因而,多种方法又需要同时使用。具体地,在本申请中选取了SIFT和SURF特征。

因此,如图2所示,步骤S1包括:

步骤S11:提取所述视频流的多个关键帧;

步骤S12:针对所述每个关键帧,生成对应的SIFT特征点和SURF特征点;

具体地,SIFT算法和SURF算法的计算量都较大,所以为了提高处理速度,在本申请中,通过像素坐标实现的特征点比对。因此,在本申请中,实现的是经过裁剪的SIFT和SURF算法,均没有实现特征点描述。

可选的,通过以下步骤生成SIFT特征点:

对所述关键帧进行尺度空间极值点检测以确定所述关键帧的SIFT特征点;

对所述SIFT特征点进行精确定位,确定所述SIFT特征点的像素坐标。

可选的,通过以下步骤生成SURF特征点:

构建Hessian矩阵;

生成尺度空间;

利用非极大值抑制确定所述SURF特征点;

对所述SURF特征点进行精确定位,确定所述SURF特征点的像素坐标。

步骤S13:比对同帧图像中的所述SIFT特征点和所述SURF特征点,选取所述SIFT特征点和所述SURF特征点重合的像素点集合;

步骤S14:对所述像素点集合进行簇集分类并标注以生成所述特征点簇集。

具体地,采用K-means方法以32*32的规格对重合像素点进行簇集分类并标注,如果簇集较多,则按重合特征点多寡顺序最多保留前15个。

步骤S2:对所述特征点簇集进行训练,得到分类网络;

根据万能近似定理(universal approximation theorem),一个前馈神经网络如果具有线性输出层和至少一层具有任何一种“挤压”性质的激活函数(例如logistic sigmoid激活函数)的隐藏层,只要给予网络足够数量的隐藏单元,它可以以任意的精度来近似任何从一个有限维空间到另一个有限维空间的Borel可测函数。从这个定理可以看出,图像浅层特征实际上也可以由某种卷积神经网络实现。SIFT和SURF算法都是浅层特征,因而可以通过神经网络近似。

具体地,如图3所示,步骤S2包括:

步骤S21:以Darknet网络架构为基础构建所述分类网络的架构;

步骤S22:以所述特征点簇集中的像素点对应的关键帧为训练集,进行训练,得到所述分类网络的权重。

具体地,以Darknet网络架构为基础构建19层神经网络结构,以视频库中经过重合像素点簇集标注的关键帧为训练集,进行训练,得到分类网络。权重训练采用的是GPU方式,方便调整参数,当参数固定后,再向FPGA移植。

步骤S3:利用FPGA固化实现所述分类网络以进行视频特征比对。

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA一般来说比ASIC(专用集成电路)的速度要慢,实现同样的功能比ASIC电路面积要大。但优点是可以快速成品,并且属于硬件可重构的体系结构,可被用作专用芯片(ASIC)的小批量替代品。因此,在生成分类网络后,为了提高处理速度,通过FPGA固化实现所述分类网络,采用FPGA流水线实现视频特征比对,由此,省去了查找特征库的步骤,提高了比对效率。

本发明通过选取视频库中的视频流的特征点簇集;对所述特征点簇集进行训练,得到分类网络;利用FPGA固化实现所述分类网络以进行视频特征比对。通过基于FPGA实现神经网络架构,近似SIFT特征和SURF特征,实现视频特征检测。传统的SIFT和SURF算法通过查找特征库的方式进行比对,而本发明实际上在FPGA上通过神经网络完成了特征生成和比对过程,去除了查找特征库的步骤,提高了比对效率。本发明通过结合深度学习技术,优化SIFT和SURF算法,使其适用于大规模系统应用,并采用FPGA硬件技术加速计算过程,由此,规避了海量特征库查找环节,提升了检查效率,进而实现了互联网视频特征检测的实时性和准确性。

实施例二

本实施例提供了一种基于FPGA的视频特征检测系统。参见图4,该基于FPGA的视频特征检测系统包括:

特征点簇集生成模块10,用于选取视频库中的视频流的特征点簇集;

具体地,如上所述,在本申请中选取了SIFT和SURF特征。因此,如图5所示,所述特征点簇集生成模块10包括:

提取单元110,用于提取所述视频流的多个关键帧;

特征点生成单元120,用于针对所述每个关键帧,生成对应的SIFT特征点和SURF特征点;

比对单元130,用于比对同帧图像中的所述SIFT特征点和所述SURF特征点,选取所述SIFT特征点和所述SURF特征点重合的像素点集合;

特征点簇集生成单元140,用于对所述像素点集合进行簇集分类并标注以生成所述特征点簇集。

具体地,SIFT算法和SURF算法的计算量都较大,所以为了提高处理速度,在本申请中,通过像素坐标实现的特征点比对。因此,在本申请中,实现的是经过裁剪的SIFT和SURF算法,均没有实现特征点描述。因此,所述特征点生成单元包括SIFT特征点生成子单元和SURF特征点生成子单元。

进一步地,SIFT特征点生成子单元用于:

对所述关键帧进行尺度空间极值点检测以确定所述关键帧的SIFT特征点;

对所述SIFT特征点进行精确定位,确定所述SIFT特征点的像素坐标。

进一步地,SURF特征点生成子单元用于:

构建Hessian矩阵;

生成尺度空间;

利用非极大值抑制确定所述SURF特征点;

对所述SURF特征点进行精确定位,确定所述SURF特征点的像素坐标。

分类网络生成模块20,用于对所述特征点簇集进行训练,得到分类网络;

如上所述,SIFT和SURF算法都是浅层特征,因而可以通过神经网络近似。因此,如图6所示,所述分类网络生成模块20包括:

分类网络架构构建单元210,用于以Darknet网络架构为基础构建所述分类网络的架构;

训练单元220,用于以所述特征点簇集中的像素点对应的关键帧为训练集,进行训练,得到所述分类网络的权重。

具体地,以Darknet网络架构为基础构建19层神经网络结构,以视频库中经过重合像素点簇集标注的关键帧为训练集,进行训练,得到分类网络。权重训练采用的是GPU方式,方便调整参数,当参数固定后,再向FPGA移植。

视频特征比对模块30,用于利用FPGA固化实现所述分类网络以进行视频特征比对。

具体地,在生成分类网络后,为了提高处理速度,通过FPGA固化实现所述分类网络,采用FPGA流水线实现视频特征比对,由此,省去了查找特征库的步骤,提高了比对效率。

本发明通过选取视频库中的视频流的特征点簇集;对所述特征点簇集进行训练,得到分类网络;利用FPGA固化实现所述分类网络以进行视频特征比对。通过基于FPGA实现神经网络架构,近似SIFT特征和SURF特征,实现视频特征检测。传统的SIFT和SURF算法通过查找特征库的方式进行比对,而本发明实际上在FPGA上通过神经网络完成了特征生成和比对过程,去除了查找特征库的步骤,提高了比对效率。本发明通过结合深度学习技术,优化SIFT和SURF算法,使其适用于大规模系统应用,并采用FPGA硬件技术加速计算过程,由此,规避了海量特征库查找环节,提升了检查效率,进而实现了互联网视频特征检测的实时性和准确性。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1