CN113139978B - 一种可用于图割的波纹推流方法 - Google Patents
一种可用于图割的波纹推流方法 Download PDFInfo
- Publication number
- CN113139978B CN113139978B CN202110421737.0A CN202110421737A CN113139978B CN 113139978 B CN113139978 B CN 113139978B CN 202110421737 A CN202110421737 A CN 202110421737A CN 113139978 B CN113139978 B CN 113139978B
- Authority
- CN
- China
- Prior art keywords
- edge
- current
- node
- flow
- push
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20072—Graph-based image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/162—Segmentation; Edge detection involving graph-based methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Devices For Executing Special Programs (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种可用于图割的波纹推流方法。本发明探索了不同的推流权重函数,从而显着地提高了推流重标签算法的实际并行度。在Middlebury测试集上测试了本发明提供的技术方案,并与最先进的T.Gao,J.Choi,S.Tsai,and R.A.Rutenbar,“Toward a pixel‑parallel architecture for graph cuts inference on fpga,”in 2017 27th International Conference on Field Programmable Logic and Applications(FPL),Sep.2017,pp.1–4.中的方法进行了比较,波纹推送可以将用于收敛的迭代次数减少至24.8%,并将总时间减少至53.8%。
Description
技术领域
本发明涉及一种基于压入与重标记算法能够提前终止的最大流最小割求解算法。
背景技术
图割是一种用于解决最小切割问题的方法,该方法广泛应用于计算机视觉技术中,且不仅限于此领域。推流重标签算法(push relabel)由于具有很好的并行化潜力,它是被最广泛应用的图割算法之一。但是,现有的推流重标签算法的实现通常无法充分利用并行架构中可用的并行性。因此,它们不适合具有高分辨率和实时要求的应用程序场景。
先前的工作已经尝试探索在GPU或FPGA上推重标签算法的并行实现。V.Vineetand P.Narayanan,“Cuda cuts:Fast graph cuts on the gpu,”in 2008IEEE ComputerSociety Conference on Computer Vision and Pattern Recognition Workshops.IEEE,2008,pp.1–8.提出了一种著名的CUDA Cuts算法,以在GPU平台上并行实现push-relabel算法。它添加了一个称为pull的新操作阶段,以删除push阶段中的数据依赖关系。D.Koboriand T.Maruyama,“An acceleration of a graph cut segmentation with fpga,”in22nd International Conference on Field Programmable Logic and Applications(FPL).IEEE,2012,pp.407–413.描述了一种具有多个并行运算单元的FPGA实现。为了高度并行地实现推流重贴标签算法,T.Gao,J.Choi,S.Tsai,and R.A.Rutenbar,“Toward apixel-parallel architecture for graph cuts inference on fpga,”in 2017 27thInternational Conference on Field Programmable Logic and Applications(FPL),Sep.2017,pp.1–4.提出了一种像素并行架构。其中构造了一个矩形处理器阵列,并为每个节点分配了一个物理处理器核心。处理器阵列能够执行完全并行的推流和重新标记操作。此外,为消除push(u,v)和push(v,u)之间的数据依赖性,T.Gao,J.Choi,S.Tsai,andR.A.Rutenbar,“Toward a pixel-parallel architecture for graph cuts inferenceon fpga,”in2017 27th International Conference on Field Programmable Logic andApplications(FPL),Sep.2017,pp.1–4.还提出了一种棋盘调度策略,该策略将流按顺时针方向推向相邻节点,同时沿逆时针方向重新标记其邻居。该体系结构有非常高的并行潜能,可以潜在地同时操作所有节点。它们在FPGA上的实现可以在6微秒内解决8*32大小的图割任务。但是,如果某个节点在一个周期内处于非活动状态(其多余流量等于零),则分配给它的物理内核将处于空闲状态,从而浪费了像素并行体系结构中的可用硬件并行性。
发明内容
本发明要解决的技术问题是:现有的推流重标签算法的实现通常无法充分利用并行架构中可用的并行性。
为了解决上述技术问题,本发明的技术方案是提供了一种可用于图割的波纹推流方法,其特征在于,包括以下步骤:
步骤1、获取当前节点v的多余流量ef(v);
步骤2、遍历与当前节点v相连的上、下、左、右四个方向的四条边,并判断每条边是否为可推流边,若连接当前节点v与相邻节点u的当前边ev,u为可推流边,则记录当前边e的容量值c(ev,u),否则,将当前边e的容量值记为0;
步骤3、根据不同的权重函数,计算每条边的最大推流值efw=ef(v)*W,式中,W表示权重函数;
步骤4、遍历步骤2所述的四条边,记录每条边的可推出流量后将计算出的流量推出,并同时更新当前边的容量值、当前节点v的多余流量、通过当前边与当前节点v相连的相邻节点的多余流量、相邻节点的接收流量后,更新连接相邻节点与当前节点v的边;
对于连接当前节点v与相邻节点u的当前边ev,u则有:
当前边ev,u可推出流量表示为f(ev,u)=min(efw,c(ev,u)),则将计算出的流量推出后,同时更新当前边ev,u的容量值c(ev,u)=c(ev,u)-f(ev,u)、当前节点v的多余流量ef(v)=ef(v)-f(ev,u)、相邻节点u的多余流量ef(u)=ef(u)+f(ev,u)、相邻节点u的接收流量f(ev,u)后,将连接相邻节点u与当前节点v的边eu,v的容量值更新为c(eu,v)=c(eu,v)+f(ev,u);
步骤5、判断当前权重函数W是否为常数1。若是,则结束本方法,若不是,返回步骤3。重复n次后判断后,则将权重函数W置为1后返回步骤3。
优选地,所述权重函数W采用Average Push的权重函数、Euler’s Push的权重函数或Inversely Push的权重函数。
本发明探索了不同的推流权重函数,从而显着地提高了推流重标签算法的实际并行度。在Middlebury测试集上测试了本发明提供的技术方案,并与最先进的T.Gao,J.Choi,S.Tsai,and R.A.Rutenbar,“Toward a pixel-parallel architecture for graph cutsinference on fpga,”in 2017 27th International Conference on FieldProgrammable Logic and Applications(FPL),Sep.2017,pp.1–4.中的方法进行了比较,波纹推送可以将用于收敛的迭代次数减少至24.8%,并将总时间减少至53.8%。
附图说明
图1为direct push和波纹推流的对比示例。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明提供的一种可用于图割的波纹推流方法包括以下技术内容:
假设对于二维网格图G(V,E)中的节点vx,y,V表示节点的集合,E表示边的集合,与节点vx,y相连的有四条边e,分别定义为: 和其中边e的上标{l,t,r,b}分别指的是{左,上,右,下}四个方向,边e的下标v为当前节点v。其次,假设当前节点v的多余流量为ef(v),节点高度为h(v),边e的容量为c(e),推向边e的流为f(e)。推流操作Push(v,u)需要满足以下条件:
1)与节点v相邻的节点u的高度需要满足:h(v)=h(u)+1
2)节点v的ef(v)>0
3)节点v和节点u之间的边ev,u,需要满足ev,u>0
算法如下:
步骤1、获取当前节点v的多余流量ef(v);
步骤2、遍历与当前节点v相连的上、下、左、右四个方向的四条边,并判断每条边是否为可推流边,若连接当前节点v与相邻节点u的当前边ev,u为可推流边,则记录当前边e的容量值c(ev,u),否则,将当前边e的容量值记为0;
步骤3、根据不同的权重函数,计算每条边的最大推流值efw=ef(v)*W,式中,W表示权重函数;
步骤4、遍历步骤2所述的四条边,记录每条边的可推出流量后将计算出的流量推出,并同时更新当前边的容量值、当前节点v的多余流量、通过当前边与当前节点v相连的相邻节点的多余流量、相邻节点的接收流量后,更新连接相邻节点与当前节点v的边;
对于连接当前节点v与相邻节点u的当前边ev,u则有:
当前边ev,u可推出流量表示为f(ev,u)=min(efw,c(ev,u)),则将计算出的流量推出后,同时更新当前边ev,u的容量值c(ev,u)=c(ev,u)-f(ev,u)、当前节点v的多余流量ef(v)=ef(v)-f(ev,u)、相邻节点u的多余流量ef(u)=ef(u)+f(ev,u)、相邻节点u的接收流量f(ev,u)后,将连接相邻节点u与当前节点v的边eu,v的容量值更新为c(eu,v)=c(eu,v)+f(ev,u);
步骤5、判断当前权重函数W是否为常数1。若是,则结束本方法,若不是,返回步骤3。重复n次后判断后,则将权重函数W置为1后返回步骤3。
注意,当权重W等于常数1时,它会退化为direct push方法。
例如图1所示:当中间节点v想要向周围四个节点推流时,通常的方法(directpush)会依次遍历周围四个节点,将最大可推流值推过去。这样的推流方式会导致一个方向性,第一个节点接收到较多的流量(上图中为4),其余节点接收到较少的流量(上图中为0)。本发明的波纹推流的方式(ripple push)遍历周围四个节点后,会根据权重函数的值较均匀地将流分配给周围四个节点。如图所示,左边节点接收到的流为上方节点接收到的流为右边节点接收到的流为下边节点接收到的流为由此,四个方向的节点都会收到一定的流量,从而避免了局部推流的方向性。
可以使用ASIC/FPGA来实现本发明,本发明也可以应用于GPU架构中。
Claims (2)
1.一种可用于图割的波纹推流方法,其特征在于,使用FPGA来实现,应用于GPU架构中,包括以下步骤:
步骤1、获取当前节点v的多余流量ef(v);
步骤2、遍历与当前节点v相连的上、下、左、右四个方向的四条边,并判断每条边是否为可推流边,若连接当前节点v与相邻节点u的当前边ev,u为可推流边,则记录当前边e的容量值c(ev,u),否则,将当前边e的容量值记为0;
步骤3、根据不同的权重函数,计算每条边的最大推流值efw=ef(v)*W,式中,W表示权重函数;
步骤4、遍历步骤2所述的四条边,记录每条边的可推出流量后将计算出的流量推出,并同时更新当前边的容量值、当前节点v的多余流量、通过当前边与当前节点v相连的相邻节点的多余流量、相邻节点的接收流量后,更新连接相邻节点与当前节点v的边;
对于连接当前节点v与相邻节点u的当前边ev,u则有:
当前边ev,u可推出流量表示为f(ev,u)=min(efw,c(ev,u)),则将计算出的流量推出后,同时更新当前边ev,u的容量值c(ev,u)=c(ev,u)-f(ev,u)、当前节点v的多余流量ef(v)=ef(v)-f(ev,u)、相邻节点u的多余流量ef(u)=ef(u)+f(ev,u)、相邻节点u的接收流量f(ev,u)后,将连接相邻节点u与当前节点v的边eu,v的容量值更新为c(eu,v)=c(eu,v)+f(ev,u);
步骤5、判断当前权重函数W是否为常数1:若是,则结束本方法,若不是,返回步骤3;重复n次后判断后,则将权重函数W置为1后返回步骤3。
2.如权利要求1所述的一种可用于图割的波纹推流方法,其特征在于,所述权重函数W采用Average Push的权重函数、Euler’s Push的权重函数或Inversely Push的权重函数。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110421737.0A CN113139978B (zh) | 2021-04-20 | 2021-04-20 | 一种可用于图割的波纹推流方法 |
PCT/CN2021/119510 WO2022222368A1 (zh) | 2021-04-20 | 2021-09-22 | 一种可用于图割的波纹推流方法 |
US17/799,278 US11934459B2 (en) | 2021-04-20 | 2021-09-22 | Ripple push method for graph cut |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110421737.0A CN113139978B (zh) | 2021-04-20 | 2021-04-20 | 一种可用于图割的波纹推流方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113139978A CN113139978A (zh) | 2021-07-20 |
CN113139978B true CN113139978B (zh) | 2022-07-19 |
Family
ID=76812776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110421737.0A Active CN113139978B (zh) | 2021-04-20 | 2021-04-20 | 一种可用于图割的波纹推流方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11934459B2 (zh) |
CN (1) | CN113139978B (zh) |
WO (1) | WO2022222368A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113139978B (zh) * | 2021-04-20 | 2022-07-19 | 上海科技大学 | 一种可用于图割的波纹推流方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493941A (zh) * | 2009-02-26 | 2009-07-29 | 上海交通大学 | 基于GPU硬件加速的Graph Cuts三维图像分割方法 |
CN101783028A (zh) * | 2010-02-26 | 2010-07-21 | 清华大学 | 一种基于显卡并行计算的三维医学图像的快速分割方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978588A (en) * | 1997-06-30 | 1999-11-02 | Sun Microsystems, Inc. | Method and apparatus for profile-based code placement using a minimum cut set of the control flow graph |
US7039919B1 (en) * | 1998-10-02 | 2006-05-02 | Microsoft Corporation | Tools and techniques for instrumenting interfaces of units of a software program |
US7444019B2 (en) * | 2004-02-18 | 2008-10-28 | Siemens Medical Solutions Usa, Inc. | System and method for GPU acceleration of push-relabel algorithm on grinds |
GB0512837D0 (en) * | 2005-06-23 | 2005-08-03 | Univ Oxford Brookes | Efficiently labelling image pixels using graph cuts |
CN100557640C (zh) | 2008-04-28 | 2009-11-04 | 清华大学 | 一种交互式多视点三维模型重建方法 |
US20130329987A1 (en) * | 2012-06-11 | 2013-12-12 | Genesis Group Inc. | Video segmentation method |
US10515431B2 (en) * | 2017-12-12 | 2019-12-24 | Intel Corporation | Global optimal path determination utilizing parallel processing |
CN113139978B (zh) * | 2021-04-20 | 2022-07-19 | 上海科技大学 | 一种可用于图割的波纹推流方法 |
-
2021
- 2021-04-20 CN CN202110421737.0A patent/CN113139978B/zh active Active
- 2021-09-22 WO PCT/CN2021/119510 patent/WO2022222368A1/zh active Application Filing
- 2021-09-22 US US17/799,278 patent/US11934459B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493941A (zh) * | 2009-02-26 | 2009-07-29 | 上海交通大学 | 基于GPU硬件加速的Graph Cuts三维图像分割方法 |
CN101783028A (zh) * | 2010-02-26 | 2010-07-21 | 清华大学 | 一种基于显卡并行计算的三维医学图像的快速分割方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113139978A (zh) | 2021-07-20 |
US11934459B2 (en) | 2024-03-19 |
US20230195793A1 (en) | 2023-06-22 |
WO2022222368A1 (zh) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108320511B (zh) | 基于谱聚类的城市道路交通子区划分方法 | |
Ducournau et al. | A reductive approach to hypergraph clustering: An application to image segmentation | |
CN112669463B (zh) | 三维点云的曲面重建方法、计算机设备和计算机可读存储介质 | |
CN113139978B (zh) | 一种可用于图割的波纹推流方法 | |
EP3848857A1 (en) | Neural network architecture search system and method, and computer readable recording medium | |
Huang | An improved algorithm of overlapping cell division | |
CN110110849B (zh) | 基于图分割的行固定数据流映射方法 | |
WO2015190593A1 (ja) | 情報処理方法、情報処理装置およびそのプログラム | |
CN105913451B (zh) | 一种基于图模型的自然图像超像素分割方法 | |
Marfil et al. | Bounded irregular pyramid: a new structure for color image segmentation | |
CN108614932B (zh) | 基于边图的线性流重叠社区发现方法、系统及存储介质 | |
Kharinov et al. | Object detection in color image | |
CN111161089A (zh) | 基于copra的重叠社区划分方法 | |
Bilan | Models and hardware implementation of methods of Pre-processing Images based on the Cellular Automata | |
Kamasaka et al. | An FPGA-oriented graph cut algorithm for accelerating stereo vision | |
CN114170247A (zh) | 深度图像的分割方法及系统 | |
EP2926244B1 (en) | Method and apparatus for creating 3d model | |
Korah et al. | 2D lattice extraction from structured environments | |
Morimoto et al. | Pixel-parallel digital CMOS implementation of image segmentation by region growing | |
Moore | The case for approximate Distance Transforms | |
CN109146886A (zh) | 一种基于深度密度的rgbd图像语义分割优化方法 | |
CN117544541B (zh) | 基于单纯复形的高阶网络级联故障评估方法和系统 | |
CN113408109B (zh) | 一种面向多点地质统计随机模拟过程的混合并行方法 | |
CN111986111B (zh) | 一种图像分割方法 | |
CN108109150B (zh) | 图像分割方法、终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |