CN110209848B - 图像数据存取方法、装置、计算机设备以及存储介质 - Google Patents

图像数据存取方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN110209848B
CN110209848B CN201910400912.0A CN201910400912A CN110209848B CN 110209848 B CN110209848 B CN 110209848B CN 201910400912 A CN201910400912 A CN 201910400912A CN 110209848 B CN110209848 B CN 110209848B
Authority
CN
China
Prior art keywords
image data
processed
data
region
pixels
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
Application number
CN201910400912.0A
Other languages
English (en)
Other versions
CN110209848A (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.)
Zhuhai Jieli Technology Co Ltd
Original Assignee
Zhuhai Jieli 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 Zhuhai Jieli Technology Co Ltd filed Critical Zhuhai Jieli Technology Co Ltd
Priority to CN201910400912.0A priority Critical patent/CN110209848B/zh
Publication of CN110209848A publication Critical patent/CN110209848A/zh
Application granted granted Critical
Publication of CN110209848B publication Critical patent/CN110209848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

本申请涉及一种适用于SIFT算法的图像数据存取方法、装置、计算机设备和存储介质。方法包括:获取待处理图像的关键点数据以及直方图统计半径;而后从待处理区域的一侧到另一侧依次获取预设数目的像素点的图像数据;依次保存每一批预设数目的像素点的图像数据至待存储存储器;根据关键点数据以及直方图统计半径确定保存的像素点中有效像素点,依次从待存储存储器中读取有效像素点的图像数据。本申请的图像数据存取方法,每次只存取预设数目的像素点的图像数据,每次的数据处理量显著减少,只取有效像素点进行进一步处理,大大加快了每一级流水线的速度,加快了直方图统计的计算,加快了图像数据的处理速度。

Description

图像数据存取方法、装置、计算机设备以及存储介质
技术领域
本申请涉及数字图像特征处理技术领域,特别是涉及一种适用于SIFT(Scale-invariantfeaturetransform,尺度不变特征变换)图像匹配算法的图像数据存取方法、装置、计算机设备以及存储介质。
背景技术
SIFT即尺度不变特征变换,是由DavidLowe首次提出,并经过许多研究人员对进行改进的一种图像匹配算法。SIFT主要是提取物体的特征,该特征与图像的大小和旋转无关,而且对于光线、噪声和微视角的改变容忍度很高,使其成为图像匹配中最为流行的算法之一。SIFT算法主要包括构建图像的尺度空间;检测极值点、得到关键点和为关键点分配方向;生成描述子等模块。
SIFT算法的大致过程如下:将原图像经过不同的高斯卷积核得到不同组不同层的高斯金字塔,然后将同组相邻层之间的图像做差得到高斯差分金字塔。通过比较差分金字塔,得到各层图像的极值点,经过极值点的精确定位和剔除边缘影响得到关键点,以关键点为中心,在附近邻域内做36个角度方向的梯度幅值直方图的统计,通过比较得到梯度幅值最大的为主方向,并将梯度幅值超过主方向梯度幅值80%的方向作为辅方向,将主方向和辅方向送给描述子模块得到最终的特征矢量。
现有的SIFT算法采用软件实现,在以关键点为中心做直方图统计的时候,直方图统计的计算时间和向描述子传递梯度幅值的时间过长,极大的占用CPU资源,处理速度相对较慢,效果不好。
发明内容
基于此,有必要针对传统的SIFT算法运行速度慢,效果不好的问题,提供一种能高效运行SIFT图像匹配算法的图像数据存取方法、装置、计算机设备以及存储介质。
一种适用于SIFT图像匹配算法的图像数据存取方法,所述方法包括:
获取当前关键点的关键点坐标数据以及直方图统计半径;
从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据;
根据所述关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的所述像素点的图像数据;
根据所述关键点坐标数据以及所述直方图统计半径确定保存的像素点中有效像素点,依次读取所述有效像素点的图像数据。
在其中一个实施例中,所述从待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据之后,还包括:
获取所述待处理区域的宽度数据;
根据所述待处理区域的宽度数据获取所述待处理区域另一侧边界的像素点数目;
当所述待处理区域另一侧边界的像素点数目低于所述预设数目时,补齐所述边界像素点的图像数据。
在其中一个实施例中,所述根据所述关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的所述像素点的图像数据之前包括:
获取当前关键点的最大半径以及所述待处理区域的宽度信息;
根据所述关键点的最大半径以及所述待处理区域的宽度信息确定当前像素点的图像数据对应的存储深度;
获取当前批次图像数据的写信号信息,根据所述存储深度以及所述写信号信息,确定图像数据对应的存储地址信息。
在其中一个实施例中,所述根据所述关键点的最大半径以及所述待处理区域的宽度信息确定当前像素点的图像数据对应的存储深度具体包括:
根据所述待处理区域的宽度信息以及所述预设数目,确定每行所述待处理区域的像素点对应的所述存储地址数目;
根据所述存储地址数目以及所述当前关键点的最大半径,确定当前像素点的图像数据对应的存储深度。
在其中一个实施例中,所述当前关键点坐标数据包括关键点在二维空间坐标系上的第一坐标值与第二坐标值,所述根据所述当前关键点数据以及所述直方图统计半径确定保存的像素点中有效像素点,依次读取所述有效像素点的图像数据包括:
根据所述第一坐标值以及所述直方图统计半径确定统计区域;
根据所述第二坐标值确定保存的像素点中目标像素点的地址;
根据所述目标像素点的地址以及所述统计区域确定目标像素点中的有效像素点,依次读取所述有效像素点的图像数据。
在其中一个实施例中,所述从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据之前还包括:
获取当前关键点的最大半径数据;
根据所述关键点的坐标数据以及最大半径数据确定待处理图像中的待处理区域。
一种适用于SIFT图像匹配算法的图像数据存取装置,所述装置包括:
坐标数据获取模块,用于获取当前关键点的关键点坐标数据以及直方图统计半径;
图像数据获取模块,用于从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据;
图像数据写入模块,根据所述关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的所述像素点的图像数据;
图像数据读取模块,根据所述关键点坐标数据以及所述直方图统计半径确定保存的像素点中有效像素点,依次读取所述有效像素点的图像数据。
在其中一个实施例中,还包括边界处理模块,所述边界处理模块用于:
获取所述待处理区域的宽度数据;
根据所述待处理区域的宽度数据获取所述待处理区域另一侧边界的像素点数目;
当所述待处理区域另一侧边界的像素点数目低于所述预设数目时,补齐所述边界像素点的图像数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取当前关键点的关键点坐标数据以及直方图统计半径;
从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据;
根据所述关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的所述像素点的图像数据;
根据所述关键点坐标数据以及所述直方图统计半径确定保存的像素点中有效像素点,依次读取所述有效像素点的图像数据。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取当前关键点的关键点坐标数据以及直方图统计半径;
从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据;
根据所述关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的所述像素点的图像数据;
根据所述关键点坐标数据以及所述直方图统计半径确定保存的像素点中有效像素点,依次读取所述有效像素点的图像数据。
上述图像数据存取方法、装置、计算机设备以及存储介质,首先获取待处理图像的关键点数据以及直方图统计半径;而后从待处理区域的一侧到另一侧依次获取预设数目的像素点的图像数据;依次保存每一批预设数目的像素点的图像数据至待存储存储器;根据关键点数据以及直方图统计半径确定保存的像素点中有效像素点,依次从待存储存储器中读取有效像素点的图像数据。本申请的图像数据存取方法,每次只存取预设数目的像素点的图像数据,每次的数据处理量显著减少,只取有效像素点进行进一步处理,大大加快了每一级流水线的速度,加快了直方图统计的计算,加快了图像数据的处理速度。
附图说明
图1为一个实施例中图像数据存取方法的应用环境图;
图2为一个实施例中图像数据存取方法的流程示意图;
图3为另一个实施例中图像数据存取方法的流程示意图;
图4为一个实施例中图2的步骤S800的子流程示意图;
图5为一个实施例中关键点与统计区域的示意图;
图6为又一个实施例中图像数据存取方法的流程示意图;
图7为一个实施例中图像数据存取装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为更进一步详细解释本申请的图像数据存取方法的技术方案和原理,下面将首先针对SIFT算法进行介绍。
SIFT即尺度不变特征变换。SIFT主要用于提取物体的特征,该特征与图像的大小和旋转无关,而且对于光线、噪声和微视角的改变容忍度很高,使其成为图像匹配中最为流行的算法之一。SIFT算法主要包括了构建图像的尺度空间,检测极值点、得到关键点和为关键点分配方向以及生成描述子等步骤。SIFT算法的大致过程如下:将原图像经过不同的高斯卷积核得到不同组不同层的高斯金字塔,然后将同组相邻层之间的图像做差得到高斯差分金字塔。通过比较差分金字塔,得到各层图像的极值点,经过极值点的精确定位和剔除边缘影响得到关键点,关键点包含三个信息即,位置、尺度、方向。通常使用一个带箭头的圆或直接使用箭头表示SIFT区域的三个值:中心表示特征点位置,半径表示关键点尺度,箭头表示主方向。由此我们可以确定一个SIFT特征区域。以关键点为中心,在附近邻域内做36个角度方向的梯度幅值直方图的统计,通过比较得到梯度幅值最大的为主方向,并将梯度幅值超过主方向梯度幅值80%的方向作为辅方向,将主方向和辅方向送给描述子模块得到最终的特征矢量,即描述子。
本申请提供的图像数据存取方法,适用于SIFT算法的直方图统计过程中,可以应用在如图1所示的应用环境中,其中,预处理服务器102可以与数据存取服务器104进行通信,数据存取服务器104可以与描述子生成服务器106进行通信,预处理服务器102可以与数据存取服务器104进行通信,将待处理图像数据以及对应的各个关键点的关键点坐标数据以及直方图统计半径等数据输入数据存取服务器104,数据存取服务器104接收这些数据开始进行图像数据存取,首先从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据;根据关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的像素点的图像数据;根据关键点坐标数据以及直方图统计半径确定保存的像素点中有效像素点,依次读取有效像素点的图像数据,并将其输入描述子生成服务器106进行描述子生成。
如图2所示,在其中一个实施例中,本申请的适用于SIFT图像匹配算法的图像数据存取方法,通过服务器实现,具体包括以下步骤:
S200,获取当前关键点的关键点坐标数据以及直方图统计半径。
SIFT算法的具体流程包括原待处理图像经过不同的高斯卷积核得到不同组不同层的高斯金字塔,然后将同组相邻层之间的图像做差得到高斯差分金字塔。通过比较差分金字塔,得到各层图像的极值点,经过极值点的精确定位和剔除边缘影响得到关键点,并以关键点为中心,在附近邻域内做36个角度方向的梯度幅值直方图的统计,通过比较得到梯度幅值最大的为主方向,并将梯度幅值超过主方向梯度幅值80%的方向作为辅方向,将主方向和辅方向送给描述子模块得到最终的特征矢量。关键点又被称为特征点,代表了待处理图像中变化较大的信息区域,具有独特性。关键点坐标数据是指关键点在待处理图像对应坐标系中的坐标位置,在图像处理时,一般会以图像的左顶点为原点,建立坐标系。直方图统计半径是指在以关键点为中心,在附近邻域内做36个角度方向的梯度幅值直方图的统计时,用于确定直方图统计区域的一个量,直方图统计半径在进行直方图统计之前,已经给定。
本申请用于依次对各个关键点对应的图像数据进行存取,首先需要获取当前关键点的关键点坐标数据以及直方图统计过程中直方图统计半径。
S400,从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据。
待处理区域是指待处理图像中根据当前关键点位置确定的一个区域,该区域为的图像数据与当前关键点的描述子生成可能有关,所以可以先获取并保存这个区域内的图像数据,以供描述子生成过程取用。一侧到另一侧是指从待处理区域的一个边界处理至另一个边界,而同行指的是当前处理的像素点在图像中纵侧位置相同,像素点的图像数据则是包括了用于生成描述子的幅值数据以及角度数据。
在其中一个实施例中,由于在图像处理中,待处理图像一般为矩形结构,可以以待处理图像的左顶点为原点,图像的两条边为两轴建立二维坐标系,而一侧到另一侧则是指从待处理区域的左边界至右边界,同行即是指的是像素点在该坐标系内的纵坐标相同,预设数目可以选择为4,即每次处理同行的4个像素点的图像数据。
S600,根据关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的像素点的图像数据。
其中,依次保存指的是按照选定的数据将预设数目保存到用于存储图像数据的SRAM(StaticRandom-AccessMemory,静态随机存取存储器)中。服务器可以根据当前关键点的坐标数据以及这些像素点的行坐标数据,将对应的图像数据保存至SRAM中的对应位置。SRAM可以采用环形存取结构,即SRAM依次保存一个关键点对应的图像数据,并被读取其中有效地图像数据,读取完成后SRAM中的图像数据废弃,开始保存其他关键点对应的图像数据。
S800,根据关键点坐标数据以及直方图统计半径确定保存的像素点中有效像素点,依次读取有效像素点的图像数据。
有效像素点是指位于直方图统计的范围内的点,由于进行保存时存入SRAM中的像素点不一定属于直方图统计过程中所需的像素点,可以通过关键点坐标数据以及直方图统计的半径,来确定SRAM所保存的数据中有效部分的像素点,并读取这部分像素点的幅值数据以及角度数据,以供描述子生成过程的使用。
上述图像数据存取方法,首先获取待处理图像的关键点数据以及直方图统计半径;而后从待处理区域的一侧到另一侧依次获取预设数目的像素点的图像数据;依次保存每一批预设数目的像素点的图像数据至待存储存储器;根据关键点数据以及直方图统计半径确定保存的像素点中有效像素点,依次从待存储存储器中读取有效像素点的图像数据。本申请的图像数据存取方法,每次只存取预设数目的像素点的图像数据,每次的数据处理量显著减少,只取有效像素点进行进一步处理,大大加快了每一级流水线的速度,加快了直方图统计的计算,加快了图像数据的处理速度。
在其中一个实施例中,S400之后还包括:
获取待处理区域的宽度数据。
根据待处理区域的宽度数据获取待处理区域另一侧边界的像素点数目。
当待处理区域另一侧边界的像素点数目低于预设数目时,补齐边界像素点的图像数据。
由于待处理区域部分的宽度,即待处理区域每一行对应的像素点个数,不一定是预设数目的倍数。所以当处理到待处理区域的另一侧边界时,需要进行对应的边界处理,此时可以通过补齐数据的位数,而后将补齐后的数据存入SRAM中。在其中一个实施例中,可以将有效的像素点置于存入SRAM中的数据段的高位,并将数据段的低位补零来进行存储。如在一个实施例中,预设数目为4,从待处理区域的左至右进行处理,假设每个像素点的幅值是8bit,角度是6bit,则SRAM的位宽为幅值和角度的位宽和的4倍,即为56bit。此时的边界处理如下:假设待处理区域的宽度为W,二进制数图像宽度W的最低两位W[1:0],即W/4的余数的值可能是0,1,2和3,当W[1:0]等于0时,说明待处理区域宽度是4个像素点对齐的,即是4的倍数;当W[1:0]等于1时,说明待处理区域的宽度是4的倍数余1,其右边界只有1个有效的点,需要补充3个无效的点;当W[1:0]等于2时,说明当前图像的宽度是4的倍数余2,其右边界只有2个有效的点,需要补充2个无效的点;当W[1:0]等于3时,说明当前图像的宽度是4的倍数余3,其右边界只有3个有效的点,需要补充1个无效的点。通过将边界数据段的低位置零,保证每次可以同时存储预设个数的像素点的图像数据至SRAM,防止出现存储错误。
如图3所示,在其中一个实施例中,S600之前包括:
S520,获取当前关键点的最大半径以及待处理区域的宽度信息;
S540,根据关键点的最大半径以及待处理区域的宽度信息确定当前像素点的图像数据对应的存储深度;
S560,获取当前批次图像数据的写信号信息,根据存储深度以及写信号信息,确定图像数据对应的存储地址信息。
而其中S540具体包括:根据待处理区域的宽度信息以及预设数目,确定每行待处理区域的像素点对应的存储地址数目。根据存储地址数目以及当前关键点的最大半径,确定当前像素点的图像数据对应的存储深度。
当前关键点的最大半径对于直方图统计步骤而言,是一个可以确定并且已知的值,在其中一个实施例中,它根据SIFT算法选用的尺度来确定。服务器可以通过待处理区域的宽度来确定待处理区域每行对应地址数目。具体的,可以用宽度除以预设数目,得到每行的地址数,而当宽度除以预设数目包含有余数时,则每行的地址数可以对应加1。并且可以通过当前关键点的最大半径则可以确定待处理区域的行数,确定了每行对应数据的地址数以及待存入SRAM中的数据行数,就可以进一步可能确定存入SRAM中最多的数据,即SRAM存储深度。SRAM的初始地址为0,即将SRAM的写地址清零。每次写入一个包含预设数目像素点图像数据的数据段时1。当写入SRAM地址为存储深度减1时,则说明当前关键点对应的数据已经存储完毕,下一个存储地址为0,停止写入。
刚开始时,将SRAM对应的写地址wram_adr清0,在写信号ram_wr拉高且写地址等于存储深度DEPTH-1时,也将写地址wram_adr清0,否则在写信号ram_wr拉高时,写地址加1,其他情况下wram_adr保持不变。其中,ram_wr信号服务器控制输入,决定存储器是否继续写入。
如图4所示,在其中一个实施例中,当前关键点坐标数据包括关键点在二维空间坐标系上的第一坐标值与第二坐标值,S800包括:
S810,根据第一坐标值以及直方图统计半径确定统计区域;
S830,根据第二坐标值确定保存的像素点中目标像素点的地址;
S850,根据目标像素点的地址以及统计区域确定目标像素点中的有效像素点,依次读取有效像素点的图像数据。
根据SIFT算法,需要在关键点的上下左右的半径内做统计,这部分即为统计区域,如果统计区域全部落在待处理图像内,则是有效的点,如果是落在待处理图像的外部,则认为是无效的点,丢弃处理,不参与计算。由于关键点可能落在图像的任意地方,所以统计区域可能有图5共9种情况,图5中,最大的矩形表示原图像。
正方形0表示关键点在图像的左上方,计算出的统计区域左边和上边有部分落在图像的外面,使得有效的统计区域只有红色正方形0的右下角落在图像内的区域;
正方形1表示关键点在图像的上方,计算出的统计区域上边有部分落在图像的外面,使得有效的统计区域只有红色正方形1的下方落在图像内的区域;
正方形2表示关键点在图像的右上方,计算出的统计区域上边和右边有部分落在了图像的外面,使得有效的统计区域只有红色正方形2的左下方落在图像内的区域;
正方形3表示关键点在图像的左边,计算出的统计区域有部分左边落在了图像的外面,使得有效的统计区域只有红色正方形3的右边落在图像内的区域;
正方形4表示关键点在图像的中间,计算出的统计区域在图像内,使得有效的统计区域是整个红色正方形4;
正方形5表示关键点在图像的右边,计算出的统计区域右边有部分落在了图像外,使得有效的统计区域只有红色正方形4的左边落在图像内的区域;
正方形6表示关键点在图像的左下角,计算出的统计区域左边和下边有部分落在了图像外,使得有效的统计区域只有红色正方形6的右上角落在图像的区域内;
正方形7表示关键点在图像的下方,计算出的统计区域的下边有部分落在了图像外,使得有效的统计区域只有红色正方形的7的上面落在图像内的区域;
正方形8表示关键点在图像的右下方,计算出的统计区域在下边和右边有部分落在了图像外,使得有效的统计区域只有红色正方形8的左上角落在图像的区域。
为了加快处理速度,可以只从SRAM中读取有效部分的数据,假设当前关键点在坐标系中的坐标为(cur_kp_x,cur_kp_y),直方图统计的半径为r,那么关键点x的坐标决定了读回来的数据是否有效,y坐标决定了待读取数据在SRAM中的地址。那么每行的起始点的选择信号start_x_sel为:当前关键点x的坐标小于半径时,等于0,不然等于当前关键点的x坐标cur_kp_x减去半径r。每行结束点的选择信号end_x_sel为:当前关键点x的坐标加上半径小于图像宽度减去1时,等于当前关键点的x坐标加上半径,不然等于图像宽度减去1。而由于SRAM中每个地址对应预设数目的像素的图像数据,所以,直方图统计中有效区域的每个像素行的第一个和最后一个读回来的地址中可能包含若干个无效的数据。下面以预设数目为4进行进一步说明,对于预设数目为4的情况,直方图统计中统计区域的每个像素行的第一个和最后一个读回来的4个像素的幅值和角度中有可能1个是无效的,2个是无效的,也有可能是3个无效的。可以通过公式来确定读取的数据中的有效值与无效值。图像数据的写入公式具体如下:
last_3_valid=first_rd&(start_x_sel[1:0]==2’b01);
last_2_valid=first_rd&(start_x_sel[1:0]==2’b10);
last_1_valid=first_rd&(start_x_sel[1:0]==2’b11);
first_3_valid=last_rd&(end_x_sel[1:0]==2’b00);
first_2_valid=last_rd&(end_x_sel[1:0]==2’b01);
first_1_valid=last_rd&(end_x_sel[1:0]==2’b11);
上式中first_rd表示每一行像素的第一个读标志,last_rd表示每一行像素的最后一个读标志。
last_3_valid的公式描述如下:当first_rd为1而且start_x_sel的低两位是1时,last_3_valid为1,其他情况下为0,其他的公式描述也与此类似。last_3_valid表示为读回来的4个像素的幅值角度数据,只有最后3个是有效的,第一个是无效的。last_2_valid表示为读回来的4个像素的幅值角度数据,只有最后2个是有效的,前两个是无效的。last_1_valid表示为读回来的4个像素的幅值角度数据,只有最后1个是有效的,前三个是无效的。first_3_valid表示为读回来的4个像素的幅值角度数据,只有前3个是有效的,最后一个是无效的。first_2_valid表示为读回来的4个像素的幅值角度数据,只有前2个是有效的,最后两个是无效的。first_1_valid表示为读回来的4个像素的幅值角度数据,只有第1个是有效的,最后三个是无效的。而读取数据的时候,可以通过公式所得数据来控制数据的读取,假设4个像素点图像数据的数据段长度为56bit,在当last_3_valid为1时,从SRAM读取的数据的最后3个14bit是有效的,第一个是无效的,补充14位的0;当last_2_valid为1时,从SRAM读取的数据的最后2个14bit是有效的,第一个和第二个14bit是无效的,补充2个14位的0;当last_1_valid为1时,从SRAM读取的数据的最后1个14bit是有效的,前三个14bit是无效的,补充3个14位的0;当first_3_valid为1时,从SRAM读取的数据的前三个14bit是有效的,最后一个14bit是无效的,补充1个14位的0;当first_2_valid为1时,从SRAM读取的数据的前两个14bit是有效的,最后两个14bit是无效的,补充2个14位的0;当first_1_valid为1时,从SRAM读取的数据的第一个14bit是有效的,最后三个14bit是无效的,补充3个14位的0。
如图6所示,在其中一个实施例中,S400之前还包括:
S320,获取当前关键点的最大半径数据;
S340,根据关键点的坐标数据以及最大半径数据确定待处理图像中的待处理区域。
当前关键点的最大半径是确定的,我们可以将当前关键点的上下左右的最大半径范围确定为待处理区域,并且将这个区域内的图像数据保存到SRAM中,以供描述子生存取用。
在其中一个实施例中,本申请的图像数据存取方法包括:获取当前关键点的关键点坐标数据以及直方图统计半径;获取当前关键点的最大半径数据;根据关键点的坐标数据以及最大半径数据确定待处理图像中的待处理区域。从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据;获取待处理区域的宽度数据;根据待处理区域的宽度数据获取待处理区域另一侧边界的像素点数目;当待处理区域另一侧边界的像素点数目低于预设数目时,补齐边界像素点的图像数据。获取当前关键点的最大半径以及待处理区域的宽度信息。根据待处理区域的宽度信息以及预设数目,确定每行待处理区域的像素点对应的存储地址数目;根据存储地址数目以及当前关键点的最大半径,确定当前像素点的图像数据对应的存储深度。获取当前批次图像数据的写信号信息,根据存储深度以及写信号信息,确定图像数据对应的存储地址信息。根据关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的像素点的图像数据;根据第一坐标值以及直方图统计半径确定统计区域;根据第二坐标值确定保存的像素点中目标像素点的地址;根据目标像素点的地址以及统计区域确定目标像素点中的有效像素点,依次读取有效像素点的图像数据。
应该理解的是,虽然图2、3、4以及6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、3、4以及6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图7所示,本申请还提供了一种适用于SIFT图像匹配算法的图像数据存取装置,装置包括:
坐标数据获取模块200,用于获取当前关键点的关键点坐标数据以及直方图统计半径;
图像数据获取模块400,用于从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据;
图像数据写入模块600,根据关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的像素点的图像数据;
图像数据读取模块800,根据关键点坐标数据以及直方图统计半径确定保存的像素点中有效像素点,依次读取有效像素点的图像数据。
在其中一个实施例中,图像数据获取模块400还用于获取待处理区域的宽度数据;根据待处理区域的宽度数据获取待处理区域另一侧边界的像素点数目;当待处理区域另一侧边界的像素点数目低于预设数目时,补齐边界像素点的图像数据。
在其中一个实施例中,还包括存储信息获取模块,用于获取当前关键点的最大半径以及待处理区域的宽度信息;根据关键点的最大半径以及待处理区域的宽度信息确定当前像素点的图像数据对应的存储深度;获取当前批次图像数据的写信号信息,根据存储深度以及写信号信息,确定图像数据对应的存储地址信息。
在其中一个实施例中,存储信息获取模块还用于根据待处理区域的宽度信息以及预设数目,确定每行待处理区域的像素点对应的存储地址数目;根据存储地址数目以及当前关键点的最大半径,确定当前像素点的图像数据对应的存储深度。
在其中一个实施例中,图像数据读取模块800具体用于根据第一坐标值以及直方图统计半径确定统计区域;根据第二坐标值确定保存的像素点中目标像素点的地址;根据目标像素点的地址以及统计区域确定目标像素点中的有效像素点,依次读取有效像素点的图像数据。
在其中一个实施例中,还包括区域选取模块,用于获取当前关键点的最大半径数据;根据关键点的坐标数据以及最大半径数据确定待处理图像中的待处理区域。
关于图像数据存取装置的具体限定可以参见上文中对于图像数据存取方法的限定,在此不再赘述。上述图像数据存取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口以及存储图像数据的SRAM。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图像数据存取方法。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取当前关键点的关键点坐标数据以及直方图统计半径;
从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据;
根据关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的像素点的图像数据;
根据关键点坐标数据以及直方图统计半径确定保存的像素点中有效像素点,依次读取有效像素点的图像数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取待处理区域的宽度数据;根据待处理区域的宽度数据获取待处理区域另一侧边界的像素点数目;当待处理区域另一侧边界的像素点数目低于预设数目时,补齐边界像素点的图像数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前关键点的最大半径以及待处理区域的宽度信息;根据关键点的最大半径以及待处理区域的宽度信息确定当前像素点的图像数据对应的存储深度;获取当前批次图像数据的写信号信息,根据存储深度以及写信号信息,确定图像数据对应的存储地址信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据待处理区域的宽度信息以及预设数目,确定每行待处理区域的像素点对应的存储地址数目;根据存储地址数目以及当前关键点的最大半径,确定当前像素点的图像数据对应的存储深度。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据第一坐标值以及直方图统计半径确定统计区域;根据第二坐标值确定保存的像素点中目标像素点的地址;根据目标像素点的地址以及统计区域确定目标像素点中的有效像素点,依次读取有效像素点的图像数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前关键点的最大半径数据;根据关键点的坐标数据以及最大半径数据确定待处理图像中的待处理区域。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取当前关键点的关键点坐标数据以及直方图统计半径;
从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据;
根据关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的像素点的图像数据;
根据关键点坐标数据以及直方图统计半径确定保存的像素点中有效像素点,依次读取有效像素点的图像数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取待处理区域的宽度数据;根据待处理区域的宽度数据获取待处理区域另一侧边界的像素点数目;当待处理区域另一侧边界的像素点数目低于预设数目时,补齐边界像素点的图像数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取当前关键点的最大半径以及待处理区域的宽度信息;根据关键点的最大半径以及待处理区域的宽度信息确定当前像素点的图像数据对应的存储深度;获取当前批次图像数据的写信号信息,根据存储深度以及写信号信息,确定图像数据对应的存储地址信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据待处理区域的宽度信息以及预设数目,确定每行待处理区域的像素点对应的存储地址数目;根据存储地址数目以及当前关键点的最大半径,确定当前像素点的图像数据对应的存储深度。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据第一坐标值以及直方图统计半径确定统计区域;根据第二坐标值确定保存的像素点中目标像素点的地址;根据目标像素点的地址以及统计区域确定目标像素点中的有效像素点,依次读取有效像素点的图像数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取当前关键点的最大半径数据;根据关键点的坐标数据以及最大半径数据确定待处理图像中的待处理区域。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种适用于SIFT图像匹配算法的图像数据存取方法,所述方法包括:
获取当前关键点的关键点坐标数据以及直方图统计半径;
从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据,所述待处理区域为所述待处理图像中根据所述当前关键点位置确定的一个区域;
根据所述关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的所述像素点的图像数据;
根据所述关键点坐标数据以及所述直方图统计半径确定保存的像素点中有效像素点,依次读取所述有效像素点的图像数据,所述有效像素点为位于统计区域内的像素点,所述统计区域根据所述关键点坐标数据以及所述直方图统计半径确定。
2.根据权利要求1所述的方法,其特征在于,所述从待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据之后,还包括:
获取所述待处理区域的宽度数据;
根据所述待处理区域的宽度数据获取所述待处理区域另一侧边界的像素点数目;
当所述待处理区域另一侧边界的像素点数目低于所述预设数目时,补齐所述边界像素点的图像数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的所述像素点的图像数据之前包括:
获取当前关键点的最大半径以及所述待处理区域的宽度信息;
根据所述关键点的最大半径以及所述待处理区域的宽度信息确定当前像素点的图像数据对应的存储深度;
获取当前批次图像数据的写信号信息,根据所述存储深度以及所述写信号信息,确定图像数据对应的存储地址信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述关键点的最大半径以及所述待处理区域的宽度信息确定当前像素点的图像数据对应的存储深度具体包括:
根据所述待处理区域的宽度信息以及所述预设数目,确定每行所述待处理区域的像素点对应的所述存储地址数目;
根据所述存储地址数目以及所述当前关键点的最大半径,确定当前像素点的图像数据对应的存储深度。
5.根据权利要求1所述的方法,其特征在于,所述当前关键点坐标数据包括关键点在二维空间坐标系上的第一坐标值与第二坐标值,所述根据所述当前关键点数据以及所述直方图统计半径确定保存的像素点中有效像素点,依次读取所述有效像素点的图像数据包括:
根据所述第一坐标值以及所述直方图统计半径确定统计区域;
根据所述第二坐标值确定保存的像素点中目标像素点的地址;
根据所述目标像素点的地址以及所述统计区域确定目标像素点中的有效像素点,依次读取所述有效像素点的图像数据。
6.根据权利要求1所述的方法,其特征在于,所述从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据之前还包括:
获取当前关键点的最大半径数据;
根据所述关键点的坐标数据以及最大半径数据确定待处理图像中的待处理区域。
7.一种适用于SIFT图像匹配算法的图像数据存取装置,其特征在于,所述装置包括:
坐标数据获取模块,用于获取当前关键点的关键点坐标数据以及直方图统计半径;
图像数据获取模块,用于从待处理图像中待处理区域的一侧到另一侧依次获取同行的预设数目的像素点的图像数据,所述待处理区域为所述待处理图像中根据所述当前关键点位置确定的一个区域;
图像数据保存模块,根据所述关键点坐标数据以及当前像素点的行坐标数据依次保存每一批预设数目的所述像素点的图像数据;
图像数据读取模块,根据所述关键点坐标数据以及所述直方图统计半径确定保存的像素点中有效像素点,依次读取所述有效像素点的图像数据,所述有效像素点为位于统计区域内的像素点,所述统计区域根据所述关键点坐标数据以及所述直方图统计半径确定。
8.根据权利要求7所述的装置,其特征在于,还包括边界处理模块,所述边界处理模块用于:
获取所述待处理区域的宽度数据;
根据所述待处理区域的宽度数据获取所述待处理区域另一侧边界的像素点数目;
当所述待处理区域另一侧边界的像素点数目低于所述预设数目时,补齐所述边界像素点的图像数据。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN201910400912.0A 2019-05-15 2019-05-15 图像数据存取方法、装置、计算机设备以及存储介质 Active CN110209848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910400912.0A CN110209848B (zh) 2019-05-15 2019-05-15 图像数据存取方法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910400912.0A CN110209848B (zh) 2019-05-15 2019-05-15 图像数据存取方法、装置、计算机设备以及存储介质

Publications (2)

Publication Number Publication Date
CN110209848A CN110209848A (zh) 2019-09-06
CN110209848B true CN110209848B (zh) 2021-06-18

Family

ID=67785913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910400912.0A Active CN110209848B (zh) 2019-05-15 2019-05-15 图像数据存取方法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN110209848B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004916A (zh) * 2010-11-15 2011-04-06 无锡中星微电子有限公司 图像特征提取系统及其方法
CN106815567A (zh) * 2016-12-30 2017-06-09 北京邮电大学 一种基于视频的火焰检测方法及装置
CN107358238A (zh) * 2017-03-01 2017-11-17 郑州云海信息技术有限公司 一种提取图像特征信息的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443011B2 (en) * 2011-05-18 2016-09-13 Microsoft Technology Licensing, Llc Searching for images by video

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004916A (zh) * 2010-11-15 2011-04-06 无锡中星微电子有限公司 图像特征提取系统及其方法
CN106815567A (zh) * 2016-12-30 2017-06-09 北京邮电大学 一种基于视频的火焰检测方法及装置
CN107358238A (zh) * 2017-03-01 2017-11-17 郑州云海信息技术有限公司 一种提取图像特征信息的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种SIFT像素点筛选预处理降维双向匹配方法;胡晨等;《计算机与现代化》;20161231;第54-59页 *

Also Published As

Publication number Publication date
CN110209848A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
CN109886279B (zh) 图像处理方法、装置、计算机设备及存储介质
CN111160232B (zh) 正面人脸重建方法、装置及系统
CN110827202A (zh) 目标检测方法、装置、计算机设备和存储介质
CN109711419A (zh) 图像处理方法、装置、计算机设备及存储介质
CN114529837A (zh) 建筑物轮廓提取方法、系统、计算机设备及存储介质
CN109102524B (zh) 图像特征点的跟踪方法和跟踪装置
CN110738222B (zh) 图像匹配方法、装置、计算机设备和存储介质
CN110941989A (zh) 图像校验、视频校验方法、装置、设备及存储介质
CN111754429B (zh) 运动矢量后处理方法和装置、电子设备及存储介质
CN112085033A (zh) 一种模板匹配方法、装置、电子设备及存储介质
CN112258418A (zh) 图像畸变校正方法、装置、电子设备和存储介质
CN116385745A (zh) 图像识别方法、装置、电子设备和存储介质
CN111860582A (zh) 图像分类模型构建方法、装置、计算机设备和存储介质
CN113228105A (zh) 一种图像处理方法、装置和电子设备
CN110209848B (zh) 图像数据存取方法、装置、计算机设备以及存储介质
CN114387353A (zh) 一种相机标定方法、标定装置及计算机可读存储介质
CN111445513B (zh) 基于深度图像的植株冠层体积获取方法、装置、计算机设备和存储介质
US11704546B2 (en) Operation processing apparatus that calculates addresses of feature planes in layers of a neutral network and operation processing method
CN108846856B (zh) 图片特征点的跟踪方法和跟踪装置
CN109063601B (zh) 唇纹检测方法、装置、计算机设备和存储介质
CN113033578B (zh) 基于多尺度特征匹配的图像校准方法、系统、终端及介质
CN115630663A (zh) 一种二维码识别方法、装置及电子设备
CN111539964B (zh) 基于深度图像的植株冠层表面积获取方法、装置、计算机设备和存储介质
CN111881907B (zh) 一种边框回归的定位方法、装置和电子设备
CN114005052A (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
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 519000 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province

Patentee after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd.

Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province

Patentee before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd.