CN102495725A - 一种基于多核体系结构的图像/视频特征提取并行算法 - Google Patents
一种基于多核体系结构的图像/视频特征提取并行算法 Download PDFInfo
- Publication number
- CN102495725A CN102495725A CN2011103608782A CN201110360878A CN102495725A CN 102495725 A CN102495725 A CN 102495725A CN 2011103608782 A CN2011103608782 A CN 2011103608782A CN 201110360878 A CN201110360878 A CN 201110360878A CN 102495725 A CN102495725 A CN 102495725A
- Authority
- CN
- China
- Prior art keywords
- image
- feature extraction
- thread
- video
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明属于并行处理器技术领域,具体是一种基于多核体系结构的图像/视频特征提取并行算法。本发明结合任务级并行技术和流水级并行技术实现并行特征提取。所谓任务级并行技术是指将处理的图像或视频帧数据划分成若干个子区域,并将这些子区域的数据分布到多核硬件的不同处理单元,同时进行处理;所谓流水级并行技术是指将特征提取算法的执行分成多个处理阶段,数据以流的形式在各个阶段之间传递,完成对图像或视频帧的特征提取。本发明结合这两种技术的特点,以提高性能。利用本发明使针对图像/视频检索的特征提取算法在通用多核处理器上达到每秒42帧的实时处理速度。
Description
技术领域
本发明属于并行处理器技术领域,具体涉及一种图像/视频检索的特征提取算法。
背景技术
随着人类进入数字时代,每天都有大量来自不同领域的数据产生。其中,多媒体数据类型,如图像、视频等,已经成为互联网处理的主要数据类型之一。如何对日益增长的图像/视频数据进行有效的筛选、理解和处理已经受到了越来越多的关注。相比于传统的文本类应用,以多媒体数据为中心的,如检索引擎、过滤系统、拷贝检测等应用,有着越来越广泛的实用需求。其中,图像检索的特征提取算法作为图像/视频信息检索类应用的一个核心基础算法,能有效地提取出图像或视频关键帧的信息以供图像或视频间的检索,在这类系统应用中作为主要算法被广泛地使用。
从计算过程上讲,图像/视频检索算法可以分成特征提取阶段和特征匹配阶段。特征提取阶段根据特征提取算法将图像的特征提取出来,包括图像的颜色特征,纹理特征,或是图像中的特征点(如特别亮的点)等。特征匹配阶段以比较两幅图像的特征来判断两幅图像是否匹配。从分类上讲,图像/视频检索算法又可以分成基于全局特征和基于局部特征的两类。基于全局特征的图像特征提取算法用图像中某一方面的一个特征作为整个图像的代表,如颜色特征、纹理特征等。该类算法虽然能获得较快的处理速度,但计算精度问题对其使用范围造成了较大的限制。相反地,基于局部特征的算法使用成百上千个特征代表一个图像,由于精确性高,已被越来越多的应用系统所使用,现今主流的局部特征算法有SIFT、SURF算法等。但是,由于这种算法不但需要处理的数据量十分巨大,而且算法本身也很复杂,因而在处理速度上受到了很大的限制,在实际应用中很难满足用户的实时需求。因此,如何有效提升局部特征检索算法的处理速度成为当前多媒体检索领域关注的主要热点之一。
与此同时,当前硬件的发展已步入了多核处理器的时代,如四核通用处理器已非常普遍,而几百个核组成的GPGPU也变得越来越流行。这些并行硬件的普及为加速针对图像/视频检索的特征提取算法提供了契机,利用多核体系结构(如多核通用处理器和GPGPU)来为针对图像/视频检索的特征提取算法设计一个实时的并行算法,能有效提高针对图像/视频检索的特征提取算法的性能,使得更多基于该算法的应用可以满足实际的需求。然而,当前已有的设计主要通过发掘针对图像/视频检索的特征提取算法中某种特定的并行技术(任务级并行),并映射到具体的并行硬件上。这些研究中并没有对算法中的各种并行特性进行深入分析,也没有试图结合各种并行方式以提高性能。从而使得这些并行技术在当前并行硬件上的加速不够理想。因此,分析并结合多种并行方式,以此加速当前主流的针对图像/视频检索的特征提取算法变得十分迫切。
发明内容
本发明的目的在于提供一种实时、高效的基于多核体系结构的图像/视频检索的特征提取并行算法。
本发明提供的基于多核体系结构的图像/视频检索的特征提取并行算法,是将任务级并行技术和流水级并行技术相结合,以提高性能,使得针对图像/视频检索的特征提取算法的处理速度满足实时处理的要求。其中:
所谓针对图像/视频检索的特征提取算法,是为了进行图像或视频检索,对图像或视频关键帧提取特征信息以待匹配的算法。算法通常包括图像特征检测和图像特征描述两个步骤。
所谓任务级并行技术,是指将处理的图像或视频帧数据划分成若干子区域,并将这些子区域的数据同时进行并行处理。本发明采用的任务级并行主要是分块的并行方式。该方法将输入图像划分成多个数据块,并行地对这些数据块同时进行特征检测和特征描述。
所谓流水级并行技术,是指将针对图像/视频检索的特征提取算法的处理过程分成多个子阶段,数据以流的形式在每个阶段传递,不同的阶段对不同的数据进行并行处理。针对图像/视频检索的特征提取算法可以被分成特征检测和特征描述两个阶段,检测阶段的输入是图像,输出是检测到的图像特征的位置信息,而描述阶段是对每个特征位置信息的特征点数据进行描述。本发明采用的流水级并行技术是指,对一部分部件(线程)只做检测工作而另一部分部件(线程)则只做描述工作。检测部件(线程)将检测到的特征点位置信息存放到指定缓存区中,而描述部件(线程)则从缓存区中读取特征并加以描述。数据分别经过两个阶段的计算,从而形成流水线。
本发明结合任务级并行技术和流水级并行技术,从而实现真正高效的并行技术。从粗粒度上看,本发明采用任务级并行技术,把图像分成几个数据块,并把有限的资源(线程)分成几个组,每组独立处理一个数据块的检测和描述工作。这也就是说,一个线程组所检测出的特征信息直接由该线程组进行特征描述,各组并行地计算各图像块的数据,从而达到粗粒度上的任务级并行。但从细粒度上看,本发明每一个任务级并行的线程组中都是利用流水级并行的方式来处理数据。每个线程组中的线程都被分为检测线程和描述线程两种,分别只做指定图像块的特征检测和特征描述工作。当多个图像需进行特征提取计算时,首先每个图像都被分成多个数据块分别由不同的线程组同时计算,而在每个线程组中,检测线程在完成前一个图像块的特征检测计算后,将该图像块交给描述线程进行接下来的描述计算,并直接获取下一个图像块继续做检测工作。所以,在每一个线程组中,检测线程和描述线程形成了一条流水线,并行地对图像块进行计算。
本发明利用多核体系结构对目前主流的针对图像/视频检索的特征提取算法,实现了一种结合了任务级并行和流水级并行的并行技术。本发明结合这两种技术的特点,不但减轻了任务级并行技术中各线程间负载不均衡的问题,又解除了流水级并行技术中可扩展性的危机,同时还能尽可能地减少硬件资源的负载。利用本发明的并行技术能使针对图像/视频检索的特征提取算法在通用多核处理器上达到每秒处理42帧的速度。
附图说明
图1为 一种基于多核体系结构的针对图像/视频检索的特征提取并行算法示意图。
具体实施方式
下面将结合附图,对本发明中的并行算法进行详细描述。本发明主要结合了任务级并行技术和流水级并行技术的特点。所有并行技术都基于目前主流的针对图像/视频检索的特征提取算法SURF(Speeded-Up Robust Features),并利用pthread来实现。本发明在通用多核处理器上做出实现。下面我们将详细描述该技术的实现,并测试该技术的性能。如图1所示,从粗粒度上看,本发明的并行技术采用了任务级并行技术。从细粒度上看,每一个分块并行的线程组中都进一步引入流水级并行的方式来处理数据。我们还详细地分析了本发明的技术相比于只用任务级并行技术和只用流水并行技术的优势,并给出了具体的性能测试结果。
A)本发明结合任务级并行技术和流水级并行技术的特点
粗粒度的任务级并行技术是指将输入图像或视频帧划分成多个数据块,并把有限的资源(线程)分成几个组,每组独立处理一个数据块的检测和描述工作,并行地计算各数据块。在任务级并行中,一个线程组所检测出的特征信息直接由该线程组进行特征描述, 这样可以减少同步过程的通信开销。在特征检测和描述过程中,一个图像块边缘的特征计算可能要用到另一个图像块中的数据,因此每个图像块在计算时还需额外读入一些相邻块中的数据。
细粒度的流水级并行技术是指在每个任务级并行的线程组中利用流水级并行的方式来处理图像数据块。每个线程组中的线程都被分为检测线程和描述线程两种,分别来进行特征检测和描述阶段的工作。检测线程的输入是原始图像,输出是图像特征的位置信息,此阶段完成后将特征位置信息存放在指定缓存区中。描述线程从缓存中读取特征并加以描述。图像块分别经过这两个阶段的计算,形成流水线,达到不同图片块的检测和描述阶段可同时进行计算的效果,即当描述线程在做上一个图像块的特征描述工作时,检测线程在做下一个图像块的特征检测工作。
为了使流水级并行各阶段的工作量近似相同以达到最高的效率,划给流水级并行两个阶段的硬件资源(线程数)有一定的比重。如,当检测阶段和描述阶段的运行时间比大致成1:3的关系时,每分配1个线程进行检测阶段的工作,就要有3个线程进行描述阶段的工作。假设有n个线程组,每个线程组中检测线程为1个,描述线程有3个。本发明先将图像分成n块,然后创建n个线程为检测线程,第i个检测线程专门进行每个图像的第i个图像块的特征检测计算,再创建3n个线程为描述线程,每3个线程对应一个检测线程进行指定图像块的描述工作。
缓存的设计采用不加锁的单生产者/单消费者模式,每个描述部件都对应有一个私有的缓存以减少同步开销,检测出的图像特征位置信息将按顺序均匀地分到各个私有缓存区中去,如第j个检测出来的特征放到第(j mod 3)个缓存里去,使得流水级并行中的每个线程的工作量相对均衡。缓存的大小也是影响性能的一个重要因素。缓存如果太小的话,那么两个阶段之间同步等待的时间可能就较长,如检测阶段发现缓存满了,就要等待描述阶段的处理。但如果缓存太大的话,那么内存缓存的局部性就会降低。所以要根据对应的体系结构,选择合适大小的缓存使得流水线效率最高,本发明在16核通用处理器上的测试表明缓存大小为128或更大时性能较高。
B)本发明的并行技术相比于只用任务级并行的技术和只用流水级并行的技术有多方面的优势。
从性能上分析,首先分块的任务级并行技术虽然扩展性能较好,但其各线程间的工作量大小可能因为不同区域的特征个数不同而导致计算量不均衡,从而使得该技术的执行速度直接取决于工作量最大的某个线程。相反地,流水级并行技术的各线程间工作量比较均衡,因为检测出的图像特征是平均地分到各个描述线程的缓存中去的,且硬件资源的划分也是最大程度上考虑了工作量的均衡性。同时,流水级并行技术的指令局部性也较好。但是,该技术的可扩展性有很大限制,如在1:3的两个阶段比例关系中,流水级并行技术可扩展的线程数则被限制在了4个。
从硬件资源上分析,单独的任务级并行对于资源的消耗是巨大的,每个线程都需要其私有的检测和描述部件。若移植到FPGA或GPGPU上,寄存器和内存的有限个数都会让并行度受到限制。而流水级并行则能相对减少所需的硬件资源。
本发明的并行技术结合了任务级并行技术和流水级并行技术的特点,从性能上讲不但用流水级并行的方式减轻了各线程间工作量的不均衡性,又用任务级并行的特点解除了流水级并行技术扩展性方面的危机。同时,分块的任务级并行技术和流水级并行技术的结合能尽可能地减少资源的负载。综合来看,本发明的技术相比于这两种单独的技术都有更多的优势。
C)性能测试
本发明在Intel Xeon 16核通用处理器上进行测试,实验表明本发明可以达到42帧/秒的处理速度,较好的实现了对针对图像/视频检索的特征提取的实时处理。
Claims (2)
1.一种基于多核体系结构的图像/视频特征提取并行算法,其特征在于,将任务级并行技术和流水级并行技术相结合,使得针对图像/视频检索的特征提取算法的处理速度满足实时处理的要求;其中:
所谓针对图像/视频检索的特征提取算法是为进行图像或视频检索,对图像或视频关键帧提取特征信息以待匹配的算法,算法包括图像特征检测和图像特征描述两个步骤;
所谓任务级并行技术是指将处理的图像或视频帧数据划分成若干子区域,并将这些子区域的数据同时进行并行处理;这里的任务级并行技术采用分块的并行方式,即将输入图像划分成多个数据块,并行地对这些数据块同时进行特征检测和特征描述;
所谓流水级并行技术是指将针对图像/视频检索的特征提取算法的处理过程分成多个子阶段,数据以流的形式在每个阶段传递,不同的阶段对不同的数据进行并行处理;针对图像/视频检索的特征提取算法被分成特征检测和特征描述两个阶段,检测阶段的输入是图像,输出是检测到的图像特征的位置信息,描述阶段是对每个特征位置信息的特征点数据进行描述;这里的流水级并行技术采用下述方式:一部分部件或称线程只做检测工作而另一部分部件或线程只做描述工作,检测部件或线程将检测到的特征点位置信息存放到指定缓存区中,而描述部件或线程则从缓存区中读取特征并加以描述;数据分别经过两个阶段计算,从而形成流水线。
2.根据权利要求1所述的基于多核体系结构的图像/视频特征提取并行算法,其特征在于,从粗粒度上看,采用任务级并行技术,是把图像分成几个数据块,并把有限的资源或线程分成几个组,每组独立处理一个数据块的检测和描述工作;从细粒度上看,每一个任务级并行的线程组中都利用流水级并行的方式来处理数据;将每个线程组中的线程都分为检测线程和描述线程两种,分别只做指定图像块的特征检测和特征描述工作;当多个图像需进行特征提取计算时,首先将每个图像都分成多个数据块分别由不同的线程组同时计算,而在每个线程组中,检测线程在完成前一个图像块的特征检测计算后,将该图像块交给描述线程进行接下来的描述计算,并直接获取下一个图像块继续做检测工作;即在每一个线程组中,检测线程和描述线程形成一条流水线,并行地对图像块进行计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103608782A CN102495725A (zh) | 2011-11-15 | 2011-11-15 | 一种基于多核体系结构的图像/视频特征提取并行算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103608782A CN102495725A (zh) | 2011-11-15 | 2011-11-15 | 一种基于多核体系结构的图像/视频特征提取并行算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102495725A true CN102495725A (zh) | 2012-06-13 |
Family
ID=46187553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103608782A Pending CN102495725A (zh) | 2011-11-15 | 2011-11-15 | 一种基于多核体系结构的图像/视频特征提取并行算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102495725A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021549A (zh) * | 2014-05-19 | 2014-09-03 | 清华大学深圳研究生院 | 全仿射不变surf特征点检测方法及装置 |
CN104331696A (zh) * | 2014-09-28 | 2015-02-04 | 苏州新视线文化科技发展有限公司 | 一种基于图形处理单元的图像特征快速提取方法 |
CN105022671A (zh) * | 2015-07-20 | 2015-11-04 | 中国科学院计算技术研究所 | 一种用于流式数据并行处理的负载均衡方法 |
CN105912978A (zh) * | 2016-03-31 | 2016-08-31 | 电子科技大学 | 基于并发管道的车道线检测和跟踪方法 |
CN106599898A (zh) * | 2016-12-13 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种图像特征提取方法及系统 |
CN107657582A (zh) * | 2017-09-29 | 2018-02-02 | 郑州云海信息技术有限公司 | 一种信息获取方法及获取装置 |
WO2018068533A1 (zh) * | 2016-10-10 | 2018-04-19 | 深圳云天励飞技术有限公司 | 一种人脸检测的方法及装置 |
CN109584967A (zh) * | 2018-11-23 | 2019-04-05 | 复旦大学 | 一种蛋白质鉴定并行加速算法 |
CN114116068A (zh) * | 2021-12-02 | 2022-03-01 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267564A (zh) * | 2008-04-16 | 2008-09-17 | 中国科学院计算技术研究所 | 一种多处理器视频编码芯片装置和方法 |
CN101576894A (zh) * | 2008-05-09 | 2009-11-11 | 中国科学院半导体研究所 | 实时图像内容检索系统及图像特征提取方法 |
US7748022B1 (en) * | 2006-02-21 | 2010-06-29 | L-3 Communications Sonoma Eo, Inc. | Real-time data characterization with token generation for fast data retrieval |
-
2011
- 2011-11-15 CN CN2011103608782A patent/CN102495725A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7748022B1 (en) * | 2006-02-21 | 2010-06-29 | L-3 Communications Sonoma Eo, Inc. | Real-time data characterization with token generation for fast data retrieval |
CN101267564A (zh) * | 2008-04-16 | 2008-09-17 | 中国科学院计算技术研究所 | 一种多处理器视频编码芯片装置和方法 |
CN101576894A (zh) * | 2008-05-09 | 2009-11-11 | 中国科学院半导体研究所 | 实时图像内容检索系统及图像特征提取方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021549A (zh) * | 2014-05-19 | 2014-09-03 | 清华大学深圳研究生院 | 全仿射不变surf特征点检测方法及装置 |
CN104331696A (zh) * | 2014-09-28 | 2015-02-04 | 苏州新视线文化科技发展有限公司 | 一种基于图形处理单元的图像特征快速提取方法 |
CN104331696B (zh) * | 2014-09-28 | 2017-10-31 | 苏州新视线文化科技发展有限公司 | 一种基于图形处理单元的图像特征快速提取方法 |
CN105022671A (zh) * | 2015-07-20 | 2015-11-04 | 中国科学院计算技术研究所 | 一种用于流式数据并行处理的负载均衡方法 |
CN105912978A (zh) * | 2016-03-31 | 2016-08-31 | 电子科技大学 | 基于并发管道的车道线检测和跟踪方法 |
WO2018068533A1 (zh) * | 2016-10-10 | 2018-04-19 | 深圳云天励飞技术有限公司 | 一种人脸检测的方法及装置 |
CN106599898A (zh) * | 2016-12-13 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种图像特征提取方法及系统 |
CN107657582A (zh) * | 2017-09-29 | 2018-02-02 | 郑州云海信息技术有限公司 | 一种信息获取方法及获取装置 |
CN109584967A (zh) * | 2018-11-23 | 2019-04-05 | 复旦大学 | 一种蛋白质鉴定并行加速算法 |
CN109584967B (zh) * | 2018-11-23 | 2023-05-02 | 复旦大学 | 一种蛋白质鉴定并行加速方法 |
CN114116068A (zh) * | 2021-12-02 | 2022-03-01 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
CN114116068B (zh) * | 2021-12-02 | 2023-06-02 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102495725A (zh) | 一种基于多核体系结构的图像/视频特征提取并行算法 | |
Liang et al. | Evaluating fast algorithms for convolutional neural networks on FPGAs | |
Kim et al. | A novel zero weight/activation-aware hardware architecture of convolutional neural network | |
Lu et al. | Flexflow: A flexible dataflow accelerator architecture for convolutional neural networks | |
Chen et al. | Eyeriss: A spatial architecture for energy-efficient dataflow for convolutional neural networks | |
Shao et al. | Efficient cohesive subgraphs detection in parallel | |
Green et al. | GPU merge path: a GPU merging algorithm | |
Wang et al. | Accelerating subsequence similarity search based on dynamic time warping distance with FPGA | |
KR20090092433A (ko) | 복잡성이 감소된 고분광 프로세싱에 기반을 둔 실시간 타겟검출 방법 | |
Wang et al. | High performance spatial queries for spatial big data: from medical imaging to GIS | |
Zhang et al. | Point-x: A spatial-locality-aware architecture for energy-efficient graph-based point-cloud deep learning | |
Gowanlock et al. | A hybrid approach for optimizing parallel clustering throughput using the GPU | |
Soares et al. | Exploring power-performance-quality tradeoff of approximate adders for energy efficient sobel filtering | |
Wu et al. | A batched gpu algorithm for set intersection | |
Baig et al. | Accelerating spatial cross-matching on cpu-gpu hybrid platform with cuda and openacc | |
Liao et al. | Performance evaluation of a parallel pipeline computational model for space-time adaptive processing | |
Boutellier et al. | Application-specific instruction processor for extracting local binary patterns | |
Claus et al. | High performance FPGA based optical flow calculation using the census transformation | |
Li et al. | Selecting profitable custom instructions for reconfigurable processors | |
Noumsi et al. | Acceleration of a content-based image-retrieval application on the RDISK cluster | |
Liu et al. | Exploring the Internet of Things sequence-structure detection and supertask network generation of temporal-spatial-based graph convolutional neural network | |
Han et al. | A parallel online trajectory compression approach for supporting big data workflow | |
Kruliš et al. | Optimizing sorting and top-k selection steps in permutation based indexing on GPUs | |
Nieto et al. | Towards the optimal hardware architecture for computer vision | |
Li et al. | Accelerating video-mining applications using many small, general-purpose cores |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120613 |