CN115578243A - 一种面向稀疏矩阵的膨胀处理方法 - Google Patents

一种面向稀疏矩阵的膨胀处理方法 Download PDF

Info

Publication number
CN115578243A
CN115578243A CN202211225899.8A CN202211225899A CN115578243A CN 115578243 A CN115578243 A CN 115578243A CN 202211225899 A CN202211225899 A CN 202211225899A CN 115578243 A CN115578243 A CN 115578243A
Authority
CN
China
Prior art keywords
matrix
expansion
zero
expanded
value
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.)
Granted
Application number
CN202211225899.8A
Other languages
English (en)
Other versions
CN115578243B (zh
Inventor
琚午阳
张何伟
罗鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruixin High Throughput Technology Co ltd
Original Assignee
Beijing Ruixin High Throughput Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ruixin High Throughput Technology Co ltd filed Critical Beijing Ruixin High Throughput Technology Co ltd
Priority to CN202211225899.8A priority Critical patent/CN115578243B/zh
Publication of CN115578243A publication Critical patent/CN115578243A/zh
Application granted granted Critical
Publication of CN115578243B publication Critical patent/CN115578243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/28Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/34Smoothing or thinning of the pattern; Morphological operations; Skeletonisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Multimedia (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

本发明公开一种面向稀疏矩阵的膨胀处理方法,其具体包括:步骤S1:输入待膨胀操作的稀疏矩阵与用于进行膨胀操作的卷积核;步骤S2:基于待膨胀操作的稀疏矩阵的宽和高创建相同宽和高的膨胀矩阵,并将新创建的膨胀矩阵的所有元素初始化为零;步骤S3:使用AVX2指令集快速遍历获取待膨胀矩阵中所有非零值元素的位置;步骤S4:针对获取到的每一个非零值的位置,结合卷积核的形状与大小,将元素值填补到步骤S2新创建的膨胀矩阵的对应位置中;步骤S5:输出填补后的膨胀矩阵。

Description

一种面向稀疏矩阵的膨胀处理方法
技术领域
本发明涉及图像处理技术领域,具体而言,涉及一种面向稀疏矩阵的膨胀处理方法。
背景技术
形态学(morphology)一词通常表示生物学的一个分支,该分支主要研究动植物的形态和结构。在图像处理领域所指的形态学,往往表示的是数学形态学。其基本的运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等。
最基本的形态学操作有两种:膨胀与腐蚀(Dilation与Erosion)。膨胀与腐蚀能实现多种多样的功能,主要包括:1)消除噪声;2)分割(isolate)出独立的图像元素,在图像中连接(join)相邻的元素;3)寻找图像中的明显的极大值区域或极小值区域;4)求出图像的梯度。其中,按数学方式来说,膨胀或者腐蚀操作就是将图像(或图像的一部分区域,我们称之为A)与核(我们称之为B)进行卷积。核可以是任何的形状和大小,它拥有一个单独定义出来的参考点,我们称其为锚点(anchorpoint)。在多数情况下,核是一个小的中间带有参考点和实心正方形或者圆盘,实际上,我们可以把核视为模板或者掩码。而膨胀就是求局部最大值的操作,核B与图形进行卷积,即是计算核B覆盖的区域(体现局部)的像素点的最大值,并把这个最大值赋值给参考点指定的像素,这样就能够使图像中的高亮区域逐渐增长,参见图1,图1为膨胀在数学方面的效果图,其从左边到右边高亮的部分表示膨胀。另外,膨胀的数学表达式为:
Figure 42004DEST_PATH_IMAGE001
其通过用坐标点(x, y)周边区域(x+x', y+y')内的最大值代替(x, y)的值。
稀疏矩阵:当矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵 (sparse matrix),该比值称为这个矩阵的稠密度。OpenCV 是Intel 开源计算机视觉库,它由一系列 C 函数和少量 C++ 类构成,能够实现图像处理和计算机视觉方面的很多通用算法。OpenCV 拥有包括 300 多个C函数的跨平台的中、高层API,它不依赖于其它的外部库(尽管也可以使用某些外部库)。OpenCV 为IntelIntegrated Performance Primitives (IPP) 提供了透明接口,这意味着如果有为特定处理器优化的IPP 库,OpenCV 将在运行时自动加载这些库,现有技术的膨胀操作通常采用OpenCV。
图2为现有技术对矩阵进行膨胀操作的示意图,如图2所示,当需要对一个矩阵进行膨胀操作时,假如使用的是3*3 的卷积核(结构元素),那么具体操作是通常使用卷积核与其覆盖的二值图像做或(or)操作,如果卷积核周边与其自身任意一个点为1,那么结果图像的该像素为1, 否则为0。然而,若膨胀操作针对的是稀疏矩阵的情况,则由于需要对整个图像的每个像素进行遍历卷积而存在大量的计算浪费,导致此种膨胀操作的方式对CPU性能的开销很大。
因此,亟需一种用于面向稀疏矩阵的膨胀处理方法,以提高针对稀疏矩阵进行膨胀运算的效率。
发明内容
为了解决上述问题,本发明提供一种面向稀疏矩阵的膨胀处理方法,通过使用AVX2指令集快速遍历获取待膨胀的稀疏矩阵所有非零值的位置,再对预创建的膨胀矩阵的每一个非零值位置进行填补,从而实现能够对稀疏矩阵进行快速的膨胀变换操作,以达到大幅节省CPU计算资源与访存资源的目的。
为达到上述目的,本发明提供了一种面向稀疏矩阵的膨胀处理方法,具体包括:
步骤S1:输入待膨胀操作的稀疏矩阵与用于进行膨胀操作的卷积核;
步骤S2:基于待膨胀操作的稀疏矩阵的宽和高创建相同宽和高的膨胀矩阵,并将新创建的膨胀矩阵的所有元素初始化为零;
步骤S3:使用AVX2指令集快速遍历获取待膨胀矩阵中所有非零值元素的位置;
步骤S4:针对获取到的每一个非零值的位置,结合卷积核的形状与大小,将元素值填补到步骤S2新创建的膨胀矩阵的对应位置中;
步骤S5:输出填补后的膨胀矩阵。
在本发明一实施例中,其中,步骤S3中遍历获取待膨胀矩阵中所有非零值元素的位置的具体过程包括:
步骤S31:使用_mm256_cmp_ps指令比较待膨胀矩阵中的任一元素值是否大于零;
步骤S32:使用_mm256_movemask_ps指令提取待膨胀矩阵的mask值;
步骤S33:检查得到的mask值是否为零:
若mask值为零则判断待膨胀矩阵的所有元素中均不包含非零值的元素,并返回结果;
否则判断待膨胀矩阵中包含了非零值的元素,并进入下一步;
步骤S34:通过遍历的方式获取每一个非零值元素的具体位置并记录。
本发明提供的面向稀疏矩阵的膨胀处理方法,与现有技术相比,针对稀疏矩阵无需通过卷积核与其覆盖的二值图像进行多次的或(or)操作才能完成整个矩阵的膨胀操作,本发明能够快速获取稀疏矩阵中每个非零值元素的位置,并能够对稀疏矩阵进行快速膨胀变换操作,大幅节省了CPU计算资源与访存资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为膨胀在数学方面的效果图;
图2为现有技术对矩阵进行膨胀操作的示意图;
图3为本发明一实施例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3为本发明一实施例的流程图,如图3所示,本实施例提供一种面向稀疏矩阵的膨胀处理方法,具体包括:
步骤S1:输入待膨胀操作的稀疏矩阵与用于进行膨胀操作的卷积核;
步骤S2:基于待膨胀操作的稀疏矩阵的宽和高创建相同宽和高的膨胀矩阵,并将新创建的膨胀矩阵的所有元素初始化为零;
步骤S3:使用AVX2指令集快速遍历获取待膨胀矩阵中所有非零值元素的位置;
AVX指令集是Sandy Bridge和Larrabee架构下的新指令集,这套指令集在兼容原MMX、SSE、SSE2对128位整点SIMD支持的基础上,把支持的总向量数据宽度扩展成了256位,新增了若干条256位浮点SIMD指令。AVX2指令集是在AVX基础上做了扩展,支持的整点SIMD数据宽度从128位扩展到256位,并增强广播、置换指令支持的数据元素类型、移位操作对各个数据元素可变移位数的支持、跨距访存支持。
在本实施例中,其中,步骤S3中遍历获取待膨胀矩阵中所有非零值元素的位置的具体过程包括:
步骤S31:使用_mm256_cmp_ps指令(AVX2中的比较指令)比较待膨胀矩阵中的任一元素值是否大于零;由于待膨胀矩阵中的元素通常为二值像素元素(非负值),因此,当通过比较指令判断某一元素的值大于零时(即为1),则可以判定此元素为非零值元素;
步骤S32:使用_mm256_movemask_ps指令(AVX2中的提取位掩码指令)提取待膨胀矩阵的mask(位掩码)值;由于AVX2指令集的结果是向量化的,不能直接使用,因此需要将结果整体拼接成一个int值(一种整数类型的数据类型,又可成为整型)的形式,相当于这个int值中的每一个位代表了之前的一个结果;
步骤S33:检查得到的mask值是否为零:
若mask值为零则判断待膨胀矩阵的所有元素中均不包含非零值的元素,并返回结果;
否则判断待膨胀矩阵中包含了非零值的元素,并进入下一步;
步骤S34:通过遍历的方式获取每一个非零值元素的具体位置并记录。本实施例采用的遍历非零值元素的方式可以采用非AVX指令的常规像素遍历的方式,例如,若像素格式为unit8,则以unit8作为遍历单元对整个稀疏矩阵进行遍历以获取非零值元素的具体位置,由于此遍历方式为图像处理常用方式,因而在本实施例中不再赘述。
步骤S4:针对获取到的每一个非零值的位置,结合卷积核的形状与大小,将元素值填补到步骤S2新创建的膨胀矩阵的对应位置中;例如,某一非零值元素的位置为(x1,y1),若采用的卷积核为3*3的核,则在步骤S2的膨胀矩阵中以该非零值元素的位置(x1,y1)为中心的3*3大小的位置用非零值(通常为1)作为元素值进行填补,以相同的方式对每个非零值元素位置进行填补得到对应的膨胀矩阵。
步骤S5:输出填补后的膨胀矩阵。
由于对于稀疏矩阵来说,非零值元素的个数远远小于总元素的个数,若采用现有技术的方式进行膨胀,则需要通过卷积核与其覆盖的二值图像进行多次的或(or)操作才能完成整个矩阵的膨胀操作,而采用本发明的方式,则能够通过AVX2指令快速遍历以获取稀疏矩阵所有非零值元素的位置,并能够对稀疏矩阵进行快速膨胀变换操作,大幅节省了CPU计算资源与访存资源。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

Claims (2)

1.一种面向稀疏矩阵的膨胀处理方法,其特征在于,具体包括:
步骤S1:输入待膨胀操作的稀疏矩阵与用于进行膨胀操作的卷积核;
步骤S2:基于待膨胀操作的稀疏矩阵的宽和高创建相同宽和高的膨胀矩阵,并将新创建的膨胀矩阵的所有元素初始化为零;
步骤S3:使用AVX2指令集快速遍历获取待膨胀矩阵中所有非零值元素的位置;
步骤S4:针对获取到的每一个非零值的位置,结合卷积核的形状与大小,将元素值填补到步骤S2新创建的膨胀矩阵的对应位置中;
步骤S5:输出填补后的膨胀矩阵。
2.根据权利要求1所述的面向稀疏矩阵的膨胀处理方法,其特征在于,步骤S3中遍历获取待膨胀矩阵中所有非零值元素的位置的具体过程包括:
步骤S31:使用_mm256_cmp_ps指令比较待膨胀矩阵中的任一元素值是否大于零;
步骤S32:使用_mm256_movemask_ps指令提取待膨胀矩阵的mask值;
步骤S33:检查得到的mask值是否为零:
若mask值为零则判断待膨胀矩阵的所有元素中均不包含非零值的元素,并返回结果;
否则判断待膨胀矩阵中包含了非零值的元素,并进入下一步;
步骤S34:通过遍历的方式获取每一个非零值元素的具体位置并记录。
CN202211225899.8A 2022-10-09 2022-10-09 一种面向稀疏矩阵的膨胀处理方法 Active CN115578243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211225899.8A CN115578243B (zh) 2022-10-09 2022-10-09 一种面向稀疏矩阵的膨胀处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211225899.8A CN115578243B (zh) 2022-10-09 2022-10-09 一种面向稀疏矩阵的膨胀处理方法

Publications (2)

Publication Number Publication Date
CN115578243A true CN115578243A (zh) 2023-01-06
CN115578243B CN115578243B (zh) 2024-01-05

Family

ID=84585189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211225899.8A Active CN115578243B (zh) 2022-10-09 2022-10-09 一种面向稀疏矩阵的膨胀处理方法

Country Status (1)

Country Link
CN (1) CN115578243B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107392236A (zh) * 2017-07-07 2017-11-24 长沙学院 一种基于多域信息的物理对象关联聚类方法
CN108830809A (zh) * 2018-06-05 2018-11-16 陕西师范大学 一种基于膨胀卷积图像去噪方法
US20190042542A1 (en) * 2018-03-28 2019-02-07 Intel Corporation Accelerator for sparse-dense matrix multiplication
CN111079082A (zh) * 2019-12-20 2020-04-28 支付宝(杭州)信息技术有限公司 一种提高涉及稀疏矩阵计算速率的方法和系统
US20200213079A1 (en) * 2018-05-04 2020-07-02 Cornami Inc. Method and Apparatus for Configuring a Reduced Instruction Set Computer Processor Architecture to Execute a Fully Homomorphic Encryption Algorithm
CN114764615A (zh) * 2021-01-13 2022-07-19 华为技术有限公司 卷积运算的实现方法、数据处理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107392236A (zh) * 2017-07-07 2017-11-24 长沙学院 一种基于多域信息的物理对象关联聚类方法
US20190042542A1 (en) * 2018-03-28 2019-02-07 Intel Corporation Accelerator for sparse-dense matrix multiplication
US20200213079A1 (en) * 2018-05-04 2020-07-02 Cornami Inc. Method and Apparatus for Configuring a Reduced Instruction Set Computer Processor Architecture to Execute a Fully Homomorphic Encryption Algorithm
CN108830809A (zh) * 2018-06-05 2018-11-16 陕西师范大学 一种基于膨胀卷积图像去噪方法
CN111079082A (zh) * 2019-12-20 2020-04-28 支付宝(杭州)信息技术有限公司 一种提高涉及稀疏矩阵计算速率的方法和系统
CN114764615A (zh) * 2021-01-13 2022-07-19 华为技术有限公司 卷积运算的实现方法、数据处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"稀疏阵列压缩", pages 1 - 3, Retrieved from the Internet <URL:www.uwenku.com/question/p-ajdxcode-yo.html> *
张倬;陆宇凡;沈文枫;徐炜民;郑衍衡;: "Blocking optimized SIMD tree search on modern processors", JOURNAL OF SHANGHAI UNIVERSITY(ENGLISH EDITION), no. 05 *

Also Published As

Publication number Publication date
CN115578243B (zh) 2024-01-05

Similar Documents

Publication Publication Date Title
JP7565998B2 (ja) コンパクトな演算処理要素を用いたプロセッシング
US10096134B2 (en) Data compaction and memory bandwidth reduction for sparse neural networks
CN113870293B (zh) 图像处理方法、装置、电子设备及存储介质
US8879835B2 (en) Fast adaptive edge-aware matting
CN108765282B (zh) 基于fpga的实时超分辨方法及系统
CN109685738A (zh) 一种提升图像清晰度的方法及装置
CN110490308B (zh) 加速库的设计方法、终端设备及存储介质
CN113642589B (zh) 图像特征提取方法及装置、计算机设备和可读存储介质
US9898805B2 (en) Method for efficient median filtering
He et al. A fast algorithm for integrating connected-component labeling and euler number computation
JP2020021208A (ja) ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム
CN115578243A (zh) 一种面向稀疏矩阵的膨胀处理方法
US20180082149A1 (en) Clustering method with a two-stage local binary pattern and an iterative image testing system thereof
JP5230372B2 (ja) 画像処理装置、画像処理方法
CN111881916B (zh) 一种文字定位方法、装置及设备
US20220318950A1 (en) Video enhancement method and apparatus, and electronic device and storage medium
CN111723917B (zh) 运算方法、装置及相关产品
CN115114575B (zh) 面向向量处理器的图像到矩阵行转换方法、装置及介质
CN118397298B (zh) 基于混合池化的自注意力空间金字塔池化方法及相关组件
US9569218B2 (en) Decomposing operations in more than one dimension into one dimensional point operations
CN111986277A (zh) 基于灰度值的图像局部比对方法、装置、设备和介质
US11132569B2 (en) Hardware accelerator for integral image computation
CN108805846A (zh) 二值图像处理优化的方法及其系统
Zhan et al. A graph-theory-based method for parallelizing the multiple-flow-direction algorithm on cuda compatible graphics processing units
CN111986089A (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
CB02 Change of applicant information

Address after: Room 711c, 7 / F, block a, building 1, yard 19, Ronghua Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 102600

Applicant after: Beijing Zhongke Flux Technology Co.,Ltd.

Address before: Room 711c, 7 / F, block a, building 1, yard 19, Ronghua Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 102600

Applicant before: Beijing Ruixin high throughput technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant