CN112784832B - 一种物体标记点识别方法及装置 - Google Patents
一种物体标记点识别方法及装置 Download PDFInfo
- Publication number
- CN112784832B CN112784832B CN202110179491.0A CN202110179491A CN112784832B CN 112784832 B CN112784832 B CN 112784832B CN 202110179491 A CN202110179491 A CN 202110179491A CN 112784832 B CN112784832 B CN 112784832B
- Authority
- CN
- China
- Prior art keywords
- image
- labels
- label
- boundary
- slices
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/66—Analysis of geometric attributes of image moments or centre of gravity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
Abstract
本申请公开一种物体标记点识别方法及装置,该方法包括:将待识别的第一图像划分为N个图像切片,并将所述N个图像切片分配到N个图像切片处理模块,其中,所述第一图像包括至少一个标记点;并行获取所述N个图像切片上各个连通区域的特征值,其中,每个所述图像切片的一个连通区域对应一个标签,不同连通区域对应的标签不同;合并所述N个图像切片的特征值,并根据合并后的特征值确定所述至少一个标记点的特征参数,所述特征参数用于识别所述至少一个标记点。由于并行获取第一图像划分成的N个图像切片上各个连通区域的特征值,即可并行识别多个像素,那么一个时钟内可并行识别多个像素,相对于串行识别来说,显然提高了吞吐率。
Description
技术领域
本申请涉及视觉测量技术领域,尤其涉及一种物体标记点识别方法及装置。
背景技术
视觉测量作为识别物体特征的重要手段之一,常通过在物体上标记标记点,对该标记点进行特征分析,从而达到识别物体特征进行测量的目的。例如,通过识别标记点的方式实现对高速风洞模型的形变测量;又例如,通过识别标记点的方式实现对流动体的流动测量等。
目前常用的识别标记点的方法是连通区域标记方法,即遍历物体图像上的每个像素,通过对物体图像上的目标像素的标记,让每个单独的连通区域形成一个被标识的块。进一步地,可获取该块的一些参数,例如轮廓等参数,进而识别出标记点。但是如果连通区域面积较大,需要对每个目标像素点进行8邻域或4邻域的判断,效率较低。为此,后续还提出了八步追踪法,即基于连通区域标记方法,对部分目标像素点进行8邻域的判断。但是八步追踪方法在8邻域搜索时,对标记点的识别是串行识别,即一个时钟识别一个像素,,同样耗时较长,吞吐率较低。
发明内容
本申请提供一种物体标记点识别方法及装置,用于提高标记点识别的吞吐率。
第一方面,提供第一种物体标记点识别方法,该方法的执行主体为可编程逻辑器件(field programmable gate array,FPGA),该方法包括:
将待识别的第一图像划分为N个图像切片,并将所述N个图像切片分配到N个图像切片处理模块,其中,所述第一图像包括至少一个标记点;并行获取所述N个图像切片上各个连通区域的特征值,其中,每个所述图像切片的一个连通区域对应一个标签,不同连通区域对应的标签不同;合并所述N个图像切片的特征值,并根据合并后的特征值确定所述至少一个标记点的特征参数,所述特征参数用于识别所述至少一个标记点。
本方案可并行获取第一图像划分成的N个图像切片上各个连通区域的特征值,即提供了可并行识别多个像素的机制。由于并行识别多个像素,那么一个时钟内可并行识别多个像素,相对于串行识别来说,显然提高了吞吐率。
在一种可能的实现方式中,在将待识别的第一图像划分为N个图像切片之前,所述方法包括:
接收来自上位机的至少一个图像参数,并根据所述至少一个图像参数从输入的原始图像中确定所述第一图像;计算所述第一图像拉伸二值化处理所需要的参数,所述参数用于对所述第一图像进行拉伸二值化处理;获取所存储的第一图像数据,并根据所述参数对所述第一图像进行拉伸二值化处理,获得所述待识别的第一图像。
该方案可对原始图像进行预处理,例如从原始图像中选择感兴趣区域(包括至少一个标记点),即第一图像,不需要对原始图像的全部区域进行处理分析,从而节约FPGA的计算资源和存储资源,提高图像处理效率。又例如,提前计算第一图像拉伸二值化处理所需要的参数,并将该参数输出给同步获取第一图像数据的拉伸二值化处理模块。这样输入一帧图像,就可及时对该帧图像进行处理,缓存一次图像数据即可,可节约图像处理装置的存储资源。
在一种可能的实现方式中,将所述N个图像切片分配到N个图像切片处理模块,包括:
按照切割所述第一图像的顺序依次将所述N个图像切片分配到所述N个图像切片处理模块;其中,在分配过程中,判断下一个存储区域(缓存)的状态,若所述下一个存储区域的状态为空闲状态,则指示存储图像数据的存储区输出图像数据。
该方案,由于在分配过程中,根据下一个存储区域的状态来指示存储图像数据的存储区输出图像数据,所以可以保证图像预处理模块输出的数据率与数据分配模块输出的数据率匹配。
在一种可能的实现方式中,并行获取所述N个图像切片上各个连通区域的特征值,包括:
针对每个图像切片,从第一行开始获取为所述第一行的各个像素分配的标签,所述标签用于标识所述每个图像切片的前景像素或背景像素;根据预先设定的标签分配规则以及获取的标签生成第一合并信息,所述第一合并信息用于对所述每个图像切片的上一行的部分或全部标签进行更新;根据所述第一合并信息更新所述每个图像切片的上一行的标签,使得所述每个图像切片的每个连通区域的标签相同;根据每个连通区域各个标签对应的像素坐标加权以及像素灰度加权确定所述连通区域的特征值。
在一种可能的实现方式中,合并所述N个图像切片的特征值,包括:
确定要合并的两个相邻的图像切片;获取所述两个相邻的图像切片边界处的标签,并根据预先设定的合并规则合并所述两个相邻的图像切片边界处的标签;根据边界处合并之后的标签确定所述两个相邻的图像切片的特征值;
其中,所述合并规则为:
若所述两个相邻的图像切片边界处的标签为边界标签,则将所述两个相邻的图像切片的边界标签更新为一个新的全局标签;若所述两个相邻的图像切片边界处的标签包括边界标签和全局标签,则将所述边界标签更新为所述全局标签;若所述两个相邻的图像切片边界处的标签均为全局标签,则将所述两个相邻的图像切片边界处的标签更新为新的全局标签。
由于并行处理N个图像切片,但是位于每个图像切片的边界可能处于同一个连通区域,所以合并相邻的两个图像切片需要涉及到相邻两个图像切片边界处的标签的合并。该方案提供了一种相邻两个图像切片边界处的标签的合并方案。
在一种可能的实现方式中,获取所述两个相邻的图像切片的边界标签,并根据预先设定的合并规则合并所述两个相邻的图像切片的边界标签,包括:
通过第一通道将第n帧图像切片的边界标签以及第一合并信息写入第一表,所述第一表用于存储连续帧图像中上一帧图像的边界标签,所述第一合并信息用于合并所述第n帧图像切片的边界标签;其中,所述第n帧图像切片更新后的本地标签以及边界标签更新到所述第一表;
通过第二通道将第n+1帧图像的边界标签以及第二合并信息写入第二表,所述第二表用于存储所述连续帧图像中下一帧图像的边界标签,所述第二合并信息用于合并所述第n帧图像切片的边界标签和所述第n+1帧图像切片的边界标签;其中,所述第n帧图像切片和第n+1帧图像切片更新后的边界标签更新到所述第二表。
该方案通过在这两个查找表之间进行切换,实现前一帧和下一帧的边界标签合并。这种方式处理连续帧无需等待连续帧处理,可降低对连续两帧分别查表更新标签带来的时延。同时,两个查找表可存储在一个FIFO队列,可节约存储资源。
在一种可能的实现方式中,合并所述N个图像切片的特征值,包括:
在第n个时钟,置位特征值就绪信号,以指示获取输入的标签数据;通过地址信号依次访问双端口RAM,其中,上一个时钟按照第一地址访问双端口RAM之后,将所述第一地址更新为下一个标签对应的地址;将获取的标签数据写入存储区域,所述存储区域的标签数据用于计算特征值。
该方案可在不同时间可访问不同的端口,从而实现同一时钟处理多个标签,提高数据的吞吐率。
在一种可能的实现方式中,根据合并后的特征值确定所述至少一个标记点的特征参数,包括:
将合并后的特征值上传到上位机,通过所述上位机确定所述至少一个标记点的特征参数。
该方案FPGA可将合并后的特征值上传到上位机,通过上位机确定所述至少一个标记点的特征参数,以保证在节约资源的情况下,达到最大化的性能,提高计算精度。
第二方面,提供了一种图像处理装置,例如该图像处理装置为如前所述的FPGA。该图像处理装置具有实现上述第一方面方法实施例中的行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。该通信装置包括通信接口以及处理器,可选的,还包括存储器。其中,该存储器用于存储计算机程序或指令,处理器与存储器、通信接口耦合,当处理器执行所述计算机程序或指令时,使图像装置执行上述方法实施例中由FPGA所执行的方法。
第三方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被运行时,实现上述各方面中由FPGA执行的方法。
本申请实施例可并行获取第一图像划分成的N个图像切片上各个连通区域的特征值,即提供了可并行识别多个像素的机制。由于并行识别多个像素,那么一个时钟内可并行识别多个像素,相对于串行识别来说,显然提高了吞吐率。且能够适用于更高分辨率的图像的识别。例如,本申请实施例可在分辨率5120*5120下处理速度达到120fps。
附图说明
图1为连通区域的示意图;
图2为本申请实施例提供的标记点识别方法的流程示意图;
图3为原始图像中感兴趣区域的示意图;
图4为现有技术对图像进行拉伸二值化处理的原理框图;
图5为本申请实施例提供的对图像进行拉伸二值化处理的原理框图;
图6为本申请实施例提供的数据分配模块调度图像数据的示意图;
图7为本申请实施例提供的邻域判断规则示意图;
图8为本申请实施例提供的边界标签查找示意图;
图9为本申请实施例提供的标签合并示意图;
图10为本申请实施例提供的滑动模板组成示意图;
图11为本申请实施例提供的标签的特征值传输的获取示意图;
图12为图11的时序示意图;
图13为本申请实施例提供的图像处理装置的原理框图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
在介绍本申请之前,首先对本申请实施例中的部分用语进行简单解释说明,以便于本领域技术人员理解。
1)、连通区域,即满足特定邻接关系的像素构成的区域。如果像素点A和像素点B邻接,那么可称像素点A和像素点B连通。如果像素点A和像素点B邻接,像素点B和像素点C邻接,那么可认为像素点A和像素点C连通。从视觉上来看,彼此连通的像素点形成一个区域,而不连通的像素点位于不同的区域。因此,多个彼此连通的像素点构成的集合可称为一个连通区域。
应理解,每个像素周围有8个邻接像素。常见的邻接关系有2种,即4邻接与8邻接。其中,4邻接一共4个点,即上下左右,如图1中左半部分图示意;8邻接的点一共有8个,包括了对角线位置的点,如图1中右半部分图示意。
2)标记点,在图像上用于起到标识作用的标记。标记点的实现方式有多种,例如可包括基于连通区域的标记、基于轮廓的标识、基于行程的标记等,本申请实施例对标记的具体实现方式不作限制。
3)本申请实施例中的术语“多个”是指两个或两个以上。术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
以及,除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的大小、内容、顺序、时序、优先级或者重要程度等。例如,第一标识和第二标识,可以是同一个标识,也可以是不同的标识,且,这种名称也并不是表示这两个标识的信息量大小、内容、优先级或者重要程度等的不同。
如上介绍了本申请实施例涉及的部分术语,下面介绍本申请实施例相关的技术特征。
视频测量(Videogrammetry Measurement,M)已广泛应用于航空航天,生物医学,遥感遥测,军事等领域。VM需要在被测物上放置人工标记点辅助测量。如前背景技术中所述,虽然八步追踪法相较于连通区域标记方法来说,可提高标记点的识别效率,从而增加了识别的吞吐率。但是八步追踪法中,对标记点的识别是串行识别,即一个时钟识别一个像素,吞吐率还是较低。
鉴于此,本申请实施例提高了一种新的标记点的识别方法,该方法提供了可并行识别多个像素的机制架构。由于并行识别多个像素,即一个时钟内可并行识别多个像素,相对于串行识别来说,显然提高了吞吐率。
下面结合说明书附图,详细介绍本申请实施例提供的技术方案。
请参见图2,为本申请实施例提供的标记点识别方法的流程示意图。该方法可以由图像处理装置执行,该图像处理装置可以是可编程逻辑阵列(field programmable gatearray,FPGA),也可以是能够支持FPGA功能的装置,例如芯片执行。在下文的介绍过程中,以图像处理装置是FPGA为例。当然该图像处理装置除了包括FPGA之外,还可以包括其余必须的功能模块,例如还可包括收发接口,用于与外部设备,例如上位机进行数据的交互。本申请实施例旨在针对高速移动目标进行视觉测量,因此,下文的介绍中,以待测量是高速移动目标为例,标记点是在该高速移动目标上设置的标记点。
具体的,本申请实施例提供的标记点识别方法的流程描述如下:
S201、根据至少一个图像处理参数对待识别的原始图像进行预处理。
应理解,对高速移动目标进行视觉测量实质上基于对该高速移动目标采集的图像进行特征分析,从而达到对该高速移动目标的测量。例如本申请实施例通过对该高速移动目标采集的图像包括的标记点的特征提取以及识别,达到对高速移动目标进行视觉测量的目的。
在实际场景中,对高速移动目标采集的原始图像可能包括与高速移动目标关联性不大的部分区域,也就是说,这部分区域包括的特征对测量高速移动目标是没有意义的。如果对原始图像中这部分区域也进行特征分析,显然浪费了FPGA的计算资源,降低了对标记点的识别效率。
为此,在本申请实施例中,首先可确定原始图像中要进行特征分析的区域。为了便于区分,在本文中,将需要进行特征分析的区域称为感兴趣区域。为了提高对标记点的识别效率,本申请实施例对原始图像进行预处理,例如确定原始图像中的感兴趣区域,从而只针对该感兴趣区域包括的标记点进行识别,不需要对原始图像的全部区域进行处理分析。
本申请实施例可向图像处理装置输入用于确定感兴趣区域的参数,例如称为第一参数。图像处理装置根据第一参数对原始图像进行处理,获得第一图像。应理解,第一图像包括待识别的至少一个标记点。需要说明的是,这里第一参数可以是一个参数,也可以多个参数,只要能从原始图像中确定感兴趣区域即可。示例性的,请参见图3,为原始图像中感兴趣区域的示意图。图3以第一参数包括两个参数为例。这两个参数分别为起始行和结束行,且以像素行为粒度。当然,如果第一参数致包括起始行,那么可默认结束行就是原始图像的结束行;如果第一参数包括结束行,那么可默认起始行就是原始图像的起始行。需要说明的是,如果第一图像是原始图像,那么至少一个图像处理参数也可以不包括第一参数,即默认感兴趣区域为原始图像的全部区域。
另外,感兴趣区域内包括的标记点可能有多个,这多个标记点中有些标记点可能比较集中,有些标记点可能比较分散。以更小的粒度来说,可认为感兴趣区域内包括多个更小区域,这多个更小区域中有的区域可能没有标记点。如果对感兴趣区域的全部区域按照统一标准来处理,也可能会造成FPGA计算资源的浪费。
为此,本申请实施例可向图像处理装置输入用于过滤不具有标记点的区域的图像噪声的参数,例如面积阈值。图像处理装置根据该面积阈值对第一图像进行处理,即过滤第一图像中面积小于该面积阈值的区域(不具有标记点的区域)的图像噪声,从而避免对整个感兴趣区域过滤图像噪声,以尽量节约FPGA的计算资源。
应理解,如果高速移动目标所处场景中光线整体偏暗或者像素值集中在某一区间,较难区分背景以及前景,也就是较难区分高速移动目标以及该高速移动目标所在背景。为了减少第一图像中复杂背景等干扰因素对标记点识别的影响,图像处理装置可对第一图像进行预处理。
图像处理装置可通过图像预处理模块对第一图像进行预处理,例如拉伸处理、二值化处理等。例如图像预处理模块将第一图像的像素值映射到[0,255]区间,以提升图像对比度。图像预处理模块对拉伸处理后的图像进行二值化处理,最终将第一图像转化为二值图像,以减少干扰背景的介入。
示例性的,图像预处理模块可采用线性拉伸算法对第一图像进行拉伸处理。例如线性拉伸算法满足公式(1):
在公式(1)中,x为图像数据行号;y为图像数据列号;X(x,y)为输入的第一图像数据;Y(x,y)为输出图像数据;Imin和Imax分别是第一图像的最小灰度值和最大灰度值;MIN和MAX分别为目的灰度空间的最小值与最大值。
之后,图像预处理模块可对拉伸处理后的图像进行二值化操作,将第一图像最终转化为二值化图像。例如,图像预处理模块可采用全局阈值法实现图像的二值化。示例性的,第一图像拉伸后的二值化可满足公式(2):
在公式(2)中,i为图像数据(像素)行号;j为图像数据(像素)列号;gray(i,j)为输入图像的像素值;bin(i,j)为二值化图像的像素值;1代表前景像素;0代表背景像素;阈值为T。当输入图像的当前像素值大于或等于阈值T时,二值图像当前像素值为1,否则输出为0,从而实现图像的二值化。
作为一种可替换的方案,本申请实施例中的阈值T可满足公式(3):
T=k*AVG (3)
在公式(3)中,k为阈值增益系数,AVG为图像均值。该示例中,即引入k,通过改变图像均值加权调整二值化的输出,能够保证实际二值化输出效果。
通常对图像进行拉伸处理时,会提前计算该图像的最小灰度值和最大灰度值,以及该图像目的灰度空间的最小值与最大值,例如对第一图像进行拉伸,会提前计算Imin和Imax,以及MIN和MAX。
示例性的,请参见图4,为目前对图像进行拉伸二值化处理的原理框图。通常对图像进行拉伸二值化处理时,首先存储输入的多帧图像,即将多帧图像数据写入存储器;之后,从存储器读取该图像的图像数据,并计算拉伸二值化该图像的部分参数,例如通过最值/均值计算模块计算该图像最小灰度值和最大灰度值,以及该图像目的灰度空间的最小值与最大值;拉伸二值化模块再根据拉伸二值化该图像的参数对该图像进行拉伸二值化处理,并对处理后的拉伸二值化图像存储,以被后续使用。
而本申请实施例为了提高图像处理速率,提前计算所输入的图像的最小灰度值和最大灰度值,以及该图像的目的灰度空间的最小值与最大值。请参见图5,为本申请实施例提供的对图像进行拉伸二值化处理的原理框图。由于图像是一帧一帧传输的,过来一帧,最值/均值计算模块计算所输入的图像的最小灰度值和最大灰度值,以及该图像的目的灰度空间的最小值与最大值。并将计算获得的图像的最小灰度值和最大灰度值,以及该图像的目的灰度空间的最小值与最大值,输出给拉伸二值化模块。即本申请实施例对第一图像进行预处理是通过并行两路来实现,其中一路是最值/均值计算模块计算所输入的图像的最小灰度值和最大灰度值,以及该图像的目的灰度空间的最小值与最大值。另一路是拉伸二值化模块进行拉伸二值化处理。这样输入一帧图像,就可及时对该帧图像进行处理,不需要存储图像数据,可节约图像处理装置的存储资源。
S202、将待识别的第一图像划分为N个图像切片,并将N个图像切片分配到N个图像切片处理模块。
对第一图像进行预处理后,获得待识别的第一图像。目前对标记点的识别是串行识别,即一个时钟识别一个像素,吞吐率较低。为此,在本申请实施例中,可将待识别的第一图像划分为多个部分,并行对这多个部分进行特征分析,即一个时钟可识别多个像素,显然可提高吞吐率。为了便于描述,本文将第一图像划分的多个部分称为多个图像切片,且以第一图像划分为N个图像切片为例,其中,N为大于或等于2的整数。本申请实施例可向图像处理装置输入N,图像处理装置根据N将第一图像划分为N个图像切片。
本申请实施例可根据实际需求确定例如第一参数、面积阈值、N中的一种或多种,即至少一个图像处理参数,并将至少一个图像处理参数发送给图像处理装置。例如用户在上位机设置至少一个图像处理参数,并通过上位机将至少一个图像处理参数发送给图像处理装置。图像处理装置基于这至少一个图像处理参数对原始图像进行处理。如果不需要更新至少一个图像处理参数,即图像处理装置没有接收到新的至少一个图像处理参数,那么图像处理装置可使用默认的图像处理参数或者上一次保存的图像处理参数对原始图像进行处理。
需要说明的是,至少一个图像处理参数仅是举例,在一些可能的实现方式中,至少一个图像处理参数还可以包括其他可能的参数,例如图像分辨率等。例如,本申请实施例可根据标记点的大小,来确定向图像处理装置输入的图像分辨率,即本申请实施例支持图像分辨率灵活可调。由于本申请实施例支持并行对N个图像切片的标记点进行识别,可支持每个图像内包括更多标记点的识别,例如可支持每种图像包括的标记点的数量达到3276个。本申请实施例可根据图像内包括的标记点个数所在范围选择输入合适的图像分辨率,以尽量保证较高的吞吐率。另外,本申请实施例还可以根据相机支持的分辨率来输入合适的图像分辨率,以适用多种不同分辨率的相机,兼容性更强。
示例性的,图像处理装置可采用竖直切片方式对第一图像进行切片处理,即对第一图像的每行数据进行N等分,获得N个图像切片。N个图像切片处理模块可以认为是图像处理装置包括的N个功能模块。例如,该N个图像切片处理模块可以是通过FPGA实现的N个具有计算能力的模块。为了提高对标记点的识别速率,图像处理装置可同时通过N个图像切片处理模块分别识别对应的图像切片,即并行对N个图像切片进行识别。
图像处理装置可通过数据分配模块将N个图像切片分配到N个图像切片处理模块。在实际中,图像预处理模块输出的数据率与数据分配模块输出的数据率可能不匹配。例如图像预处理模块输出的数据流每个时钟可包括32个像素,数据分配模块输出的数据流每个时钟可能包括16个像素,而图像切片处理模块每个时钟处理1个像素。为此,本申请实施例可基于先入先出(first input first output,FIFO)机制将N个图像切片分配到N个图像切片处理模块,且可根据后级FIFO队列的状态使能数据缓存输出数据。
示例性的,请参见图6,为本申请实施例提供的数据分配模块调度图像数据的示意图。在图6中,数据缓存存储有第一图像的图像数据,数据缓存将图像数据流传输给图像预处理模块,图像预处理模块对接收到图像数据流进行预处理,获得二值化图像数据以及灰度数据。之后,图像预处理模块将处理后的图像数据流发送给数据分配模块,数据分配模块可按顺序将接收的图像数据流分配到N个图像切片处理模块。这里的顺序可以是竖直切片方式切割第一图像的顺序。
同时,考虑到图像预处理模块输出的数据率与数据分配模块输出的数据率可能不匹配,在该示例中,数据分配模块可判断后级FIFO的状态,例如处于空闲状态还是写满状态,并根据后级FIFO的状态来使能数据缓存读出图像数据。例如,如果后级FIFO处于空闲状态,数据分配模块可向数据缓存输出一指令,以指示数据缓存读出图像数据。同时,为了保证后级FIFO严格控制时序,数据缓存可根据读出数据和分辨率恢复适配于数据缓存存储格式的图像数据流。
S203、N个图像切片处理模块同时分别提取各自所接收到的图像切片包括的连通区域的特征值。即并行获取N个图像切片上各个连通区域的特征值。
N个图像切片处理模块分别接收到图像切片,每个图像切片处理模块对接收到的图像切片进行识别。由于本申请实施例采用竖直切片方式处理原始图像或感兴趣区域,因此每个图像切片可以从第一行开始处理,这样与图像输出顺序一致,可简化图像处理的流程。本申请实施例并行处理N个图像切片,即N个图像切片中各个图像切片可独立处理。下面以一个图像切片处理模块对接收的图像切片进行识别为例,介绍图像切片的识别过程。
应理解,图像切片处理模块对图像切片进行识别实质上是对图像切片上的标记点进行特征提取,并根据所提取的特征确定用于标识高速移动目标的一些信息。例如,高速移动目标为飞机,那么可根据对标记点的特征来判断飞机的形变强度。
由于标记点无规律地分布在图像切片上,且每个标记点可能对应多个像素。为此,本申请实施例可为每个像素设置标签,表征同一元素的像素的标签相同,从而可根据各个像素的标签确定图像切片上哪些像素位于同一个连通区域,进而实现对标记点的识别。
作为一种示例,本申请实施例可采用预先设定的标签分配规则为每个图像切片的各个像素设置标签。
示例性的,预先设定的标签分配规则满足如下条件:
1)、当前像素是背景像素,则为当前像素分配标签“0”。
2)、当前像素是前景像素,且与当前像素相邻的邻域像素均为背景像素,则为当前像素分配新的标签值。
3)、当前像素为前景像素,且与当前像素相邻的邻域内只有一种标签值,则当前像素继承邻域标签值,即为当前像素分配的标签值为领域标签值。
4)、当前像素为前景像素,且与当前像素相邻的邻域内存在不同的标签值,此时已设置标签的区域的所有标签将会被合并到最左边区域的标签。
本申请实施例基于上述预先设定的标签分配规则为图像切片设置标签之后,可通过搜索标签确定图像切片包括的连通区域,也就是根据标签搜索每个图像切片的连通区域。例如,在一帧图像结束前,从第一行开始搜索每个像素设置的标签。按照前述预先设定的分配标签规则,在标签搜索过程中,如果发现当前像素为前景像素,且与当前像素相邻的邻域内只有一种标签值,那么将当前像素的标签更新为领域的标签。如果发现当前像素为前景像素,且与当前像素相邻的邻域内存在不同的标签值,那么可将已设置标签的区域的所有标签合并到最左边区域的标签,也就是将已设置标签的区域的所有标签更新为最左边区域的标签。由于一行的标签有多个,本申请实施例可为每一行对应设置一个标签缓存队列,用于存储该行的标签。
对标签更新也可以理解为将不同标签进行合并,也就是在标签搜索过程中,根据实际情况可合并标签。具体的,在标签搜索过程中,如果发现当前像素为前景像素,且与当前像素相邻的邻域内只有一种标签值,或者,发现当前像素为前景像素,且与当前像素相邻的邻域内存在不同的标签值,可生成合并信息,该合并信息用来对上一行中的多个标签进行更新。
以行为粒度,本申请实施例在标签搜索过程中,生成合并信息后,可对上一行标签缓冲队列进行标签更新。示例性的,以FPGA的寄存器作为存储单元来存储标签,那么在移位使能有效的每个时钟下,都需要进行标签的移位更新。每个寄存器在移位的同时,还要判断当前标签是否正在被更新,如果当前标签正在被更新,那么把新标签移位到下一个寄存器;如果当前标签没有正在被更新,那么将原标签移位到下一个寄存器。
S204、合并N个图像切片的特征值,并根据合并后的特征值确定至少一个标记点的特征参数,所述特征参数用于识别所述至少一个标记点。
本申请实施例并行处理N个图像切片,对标记点的识别是针对这N个图像切片而言的,有可能一个标记点位于不同的图像切片,这就涉及到需要将N个图像切片合并起来。
在一种可能的实现方式中,可基于8邻域判断规则合并N个图像切片。应理解,N个图像切片是将N个图像切片的边界合并。为了便于描述,本申请实施例可合并图像切片称为边界合并。那么边界合并实质上是读出每个图像切片的边界缓存区内的标签,并根据例如8邻域判断规则(如图1右半部分示意),判断哪些边界合并在一起,从而合并N个图像切片。
作为一种可替换的实现方式,可根据如图7所示的判断规则,确定将哪些边界合并在一起。图7中的A、B、C、D为当前像素周围已分配的标签,“?”表示是否需要合并的标签。相较于8邻域判断规则而言,这样可进一步节约存储资源。
由于要合并的两个图像切片的边界中对应像素处的标签可能不同,为此,本申请实施例需要对边界上的部分标签进行更新,这就涉及到边界标签的管理。在可能的实现方式中,针对每个图像切片,从边界第一个标签到最后一个标签按照FIFO机制都写入缓存队列。在更新边界标签时,对所有标签进行穷尽查找,一直遍历到标签最新值,从而实现边界标签的更新。
示例性的,请参见图8,为本申请实施例提供的边界标签查找示意图。图8以双端口RAM为例,该双端口RAM中的一个端口RAM对应写地址,另一个端口RAM对应读数据。如图8所示,例如将标签1输入后,读标签,所读到的标签是2,那么将该标签更新为2。之后,再将2输入,再读标签,所读到的标签是3;之后,再将3输入,再读标签,所读到的标签是4;之后,再将4输入,再读标签,所读到的标签是0,那么可认为4是最新的标签值,那么将该标签输出作为更新后的标签。需要说明的是,“0”是本申请实施例设置的默认值。如果读到0,那么可认为输入的标签值是最新的标签值。
如前述在标签搜索过程中,涉及到标签的合并,在合并两个图像切片的过程中,也涉及到标签的合并。不同之处在于,合并两个图像切片的过程中涉及的是边界处的标签合并,标签搜索过程中涉及的标签包括非边界处的标签。为了便于描述,本文将边界处设置的标签简称为边界标签,将非边界处设置的标签简称为本地标签。为了区分标签是边界标签还是本地标签,本申请实施例可设置标签标识,用于指示边界标签或本地标签。在可能的实现方式中,可在承载标签的信息扩展1比特,作为标签标识,例如该1比特的值为1,那么指示标签为本地标签;该1比特的值为0,那么指示标签为边界标签。
对于边界标签而言,边界标签的合并需要从边界标签缓存队列中读取边界标签,即需要执行读取操作,对于连续帧而言,下一帧的处理需要等待上一帧的边界标签管理,处理时延较长。
为此,本申请实施例采用两个双端口RAM作为两个并行查找表,其中一个查找表用于存储第n帧的标签,另一个查找表用于存储第n+1帧的标签,即每帧分别对应独立的查找表。本申请实施例可通过在这两个查找表之间进行切换,实现前一帧和下一帧的边界标签合并。这种方式处理连续帧无需等待连续帧处理,可降低对连续两帧分别查表更新标签带来的时延。同时,两个查找表可存储在一个FIFO队列,可节约存储资源。
示例性的,请参见图9,为本申请实施例提供的标签合并示意图。图9以两个双端口RAM对应的两个并行查找表为表A和表B为例。其中,表A可用于存储第n帧的合并信息(可简称为第一合并信息),表B可用于存储第n+1帧的合并信息(可称为第二合并信息)。当接收第一帧图像时,可首先查找表B,若表B中的标签值全为0,那么可认为不需要边界合并。图像切片处理模块通过通道A开始将第一帧图像切片的边界标签写入FIFO队列,并将第一合并信息写入表A,应理解,第一合并信息也就是更新后的标签值。当第一帧图像处理完成后,使能读出FIFO队列中的数据,即所存储的标签。通过通道B获取表A输出的数据进行标签的合并,合并过程中也会对当前操作的表A进行更新。图像切片模块处理第二帧图像,同样通过通道B将第二帧图像切片的边界标签继续写入FIFO,第二合并信息写入表B。第二帧图像切片的边界标签在此过程中完成更新以及合并。当第二帧图像切片处理完成后,将第三帧图像切片的边界标签继续写入FIFO,第一合并信息写入表A,边界标签由表B更新输出,如此反复交替以实现连续处理多个图像切片。需要说明的是,对每帧图像切片处理完成后,可遍历表A和表B的地址空间,并清空所述地址空间存储的内容,以避免对下一帧图像切片的第一合并信息以及第二合并信息的写入造成影响。
如果两个相邻的图像切片的边界标签不同,但是这两个相邻的图像切片的边界属于同一个连通区域,那么可将两个相邻的图像切片的边界标签分别更新为一个新的标签。即将属于同一个连通区域的两个相邻的图像切片的边界标签更新为新的标签,该标签称为全局标签。
本申请实施例检测到相邻的两个图像切片均处理完成,那么使能边界合并,即合并这两个图像切片的边界。需要说明的是,相邻的两个图像切片均处理完成指的是上一组图像切片的边界合并完成,且与上一组图像切片相邻的下一个图像切片的本地标签以及边界标签更新完成,这里上一组图像切片为已经完成边界合并的多个图像切片。当上一组图像切片与下一个图像切片相邻的边界合并时,有需要合并的边界标签,则将需要合并的边界标签更新为全局标签。
示例性的,本申请实施例可按照预先设定的滑动模板来判断是否将两个相邻的图像切片的边界合并。该滑动模板可由第n个图像切片的右边界标签和第n+1个图像切片的左边界标签组成。例如,如图10所示,该滑动模板可由第n个图像切片的2个右边界标签和第n+1个图像切片的2个左边界标签组成,即该滑动模板由2*2大小边界标签组成。
本申请实施例根据滑动模板可合并可能存储的多种标签。例如,在本申请实施例中至少存在边界标签和全局标签。应理解,全局标签的优先级大于边界标签的优先级。本申请实施例合并相邻图像切片的边界标签时,可从边界标签缓存队列中读出相邻图像切片的边界标签,例如从图像切片的第1行到第M行依次读取边界标签。通过滑动模板从第一行开始判断相邻的两个图像切片哪些边界标签可以合并,并根据合并规则合并边界标签。例如,如果相邻的两个图像切片的边界标签合并,那么分配一个新的全局标签作为合并后的边界标签。
应理解,相邻的两个图像切片的边界标签合并,那么相邻的两个图像切片中合并后的边界标签,即新的全部标签是位于一个连通区域,相应的,该区域对应的特征值也有所变化。
为此,在本申请实施例中,如果两个图像切片的边界标签合并,那么可分别获取两个图像切片的边界标签对应的特征值,并将获取的特征值作为新的全局标签的特征值。例如将来自两个图像切片的边界标签对应的特征值求和之后,写入新的全局标签对应的地址。如果是全局标签和边界标签合并,那么可将边界标签的特征值合并到全局标签的特征值中。例如将双端口RAM中的全局标签对应的特征值与输入的边界标签的特征值求和后,写入全局标签地址中。如果是全局标签和全局标签合并,那么可为这两个全局标签分配一个索引不同的全局标签,将这两个全部标签对应的特征值合并到索引更高的全局标签。例如可同时通过双端口RAM的两个端口分别读出全局标签1和全局标签2对应的特征值,将两者求和后写入对应的全局标签对应地址中。
各个连通区域的特征值的计算涉及到获取各个标签、各个标签参数(横坐标、纵坐标以及灰度)加权,以及写入加权后参数这3个阶段。每个阶段需要消耗一个时钟,若在连续帧中,对每个输入的标签采用串行处理,即针对每个标签完成这3个阶段之后,再开始处理下一个标签。这样每个标签都需要3个时钟的处理,会造成大量数据累积,需要占用较多的缓存来存储相关处理信息。
为此,本申请实施例采用时分机制,即使得上述3个阶段在不同时间可访问不同的端口,从而实现同一时钟处理多个标签,提高数据的吞吐率。
作为一种示例,请参见图11,图像处理装置中的各个图像切片处理模块在需要计算特征值时,特征值计算模块将特征值就绪信号置位,当特征值提交模块检测到该信号之后开始通过地址信号(读地址信号)依次访问各个图像切片处理模块中的双端口RAM,以获取相应地特征值数据,也就是标签参数。各个图像切片处理模块将特征值数据输出给特征值提交模块,特征值提交模块将各个图像切片处理模块输出的特征值数据选路输出到PCIe-DMA通道(输出通道)。PCIe接口前端可通过FIFO接收数据,由于在读取特征值的过程并不是连续的,当特征值提交模块检测到FIFO满时则停止读取特征值数据。
需要说明的是,本申请实施例,本地标签和全部标签可存储在不同的存储区域,所以图11中,各个图像切片处理模块对应的特征值数据包括两部分,即本地标签对应的特征值数据和全部标签对应的特征值数据。如图11,特征值提交模块分别与各个图像切片特征值管理模块以及全局特征值管理模块交互。
为了便于理解,请参见图12,为图11的访问时序示意图。图12中,T1-T6为6个时钟,3I、3II、3III分别示意。如图12所示,在T1,特征值计算模块将特征值就绪信号(3I)置位;在T2,3I赋值到端口label_in,特征值提交模块访问端口label_in;在T3,3II赋值到端口label_D,特征值提交模块访问端口,获取标签label_D,同时,3I对应上一次标签的特征值参数;在T4,处于空闲,暂时不访问端口;在T5,特征值提交模块将获取的特征值数据写入存储区域,同时,3III赋值到端口label_H,特征值提交模块访问端口,获取标签label_H,依次类推。可见,特征值提交模块在将获取的特征值参数写入存储器的同时,还可以读取其他标签的特征值参数,从而提高数据的吞吐率。
需要说明的是,通常存储区域(缓存)的数量是事先定义好的,一般默认采用事先定义的多个存储区域。但是如果标记点较大,那么所对应的特征值参数对应的数量量也较大,这种情况下,对于一个存储区域而言,可能会发生数据溢出的现象,而导致无法存储,即丢失部分特征值参数。
为此,在本申请实施例中,为了满足单幅图像,标记点过大数量小或者标记点过小数量大的实际存储需求,可设置用于控制存储的控制模块,该控制模块可用于在标记点过大的情况下,采用至少2个存储区域存储单个标记点对应的特征值参数,在比较点较小的情况下,采用1个存储区域存储单个标记点对应的特征值参数,这样可在既定数量的存储区域的情况下,根据标记点的大小灵活折叠存储区域来存储特征值参数,相较于现有技术中采用既定数量的存储区域,同一个标记点对应的特征值参数存储在一个存储区域来说,更为灵活。
应理解,本申请实施例旨在对N个图像切片上的标记点进行识别,以判断待识别物体的一些特征,例如通过比较相同标记点的前后帧或若干帧之间的质心移动量可判断物体的姿态、形变强度等特征。通常在姿态估计、形变测量等应用中质心、面积等特征参数是较为重要的参数,为此,本申请实施例可提取每个图像切片上与标记点相关的面积参数以及质心参数,从而实现对标记点的识别。
每个图像切片在标签搜索过程中实现对本地标签的合并,即最终同一个连通区域的标签都相同。针对任意一个图像切片,本申请实施例可根据该图像切片上包括各个标签对应的像素数据、以及该像素的坐标参数计算该图像切片的特征值。
作为一种示例,本申请实施例可累积各个标签(连通域)对应的像素横坐标加权(X sum)、各个标签对应的像素纵坐标加权(Ysum)以及各个标签对应的像素灰度加权(G sum)。再根据Xsum、Ysum和G sum计算对应连通区域的特征值。
Xsum=∑j∑ii*Ii,j (4)
Ysum=∑j∑ij*Ii,j (5)
在公式(4)-公式(6)中,i为输入像素的横坐标,j为输入像素的纵坐标,Ii,j为当前像素的灰度值。进一步地,本申请实施例可累积不同标签(连通域)的面积(Area),即标记点的面积,并根据该面积设置面积阈值,用于过滤掉小干扰光源的特征值,也就是剔除无效标记点(例如过大光斑或过小光斑)。具体的,面积阈值可根据属于同一个连通域的像素个数确定。
以连通区域的特征值为质心的坐标为例,那么根据公式(7)可获得质心的坐标,其中,xc为质心点横坐标,yc为质心点纵坐标。
由于除法计算会占用大量的逻辑资源,为此,在本申请实施例中,可将Xsum、Ysum和G sum上传到上位机,由上位机执行如公式(7)的计算,以保证在节约资源的情况下,达到最大化的性能,提高计算精度。
在本申请由于并行识别多个像素,那么一个时钟内可并行识别多个像素,相对于串行识别来说,显然提高了吞吐率。且能够适用于更高分辨率的图像的识别。例如,本申请实施例可在分辨率5120*5120下处理速度达到120fps。
上述本申请提供的实施例中,分别从上位机、图像处理装置以及图像处理装置可能包括的各个功能模块等之间交互的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,图像处理装置可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
下面结合附图介绍本申请实施例中用来实现上述方法的装置。因此,上文中的内容均可以用于后续实施例中,重复的内容不再赘述。
请参见图13,为本申请所涉及的图像处理装置的一种可能的示例性框图,该图像处理装置可以对应实现上述各个方法实施例中由FPGA实现的功能或者步骤。该图像处理装置至少包括存储模块、预处理模块、数据分配模块、N个切片处理模块、特征值提交模块、全局合并模块、N个边界标签管理模块,每个边界标签管理模块对应一个切片处理模块。
其中,存储模块用于存储来自外部输入的图像数据,预处理模块用于根据上位机输入的至少一个图像处理参数对输入的原始图像进行预处理,例如从原始图像确定第一图像,并将第一图像进行二值化处理。数据分配模块用于将输入的图像切割成N份,并分配到N个切片处理模块(N个图像切片处理模块)。每个切片处理模块包括用于获取对应图像切片上的连通区域的特征值的一个或多个功能模块,例如包括连通域搜索模块,用于对图像切片上的本地标签和边界标签进行合并更新,例如还包括特征值计算模块,用于根据获取的标签来计算对应的特征值。需要说明的是,在本申请实施例中,预处理模块中图像过来一帧,最值/均值计算模块计算所输入的图像的最小灰度值和最大灰度值,以及该图像的目的灰度空间的最小值与最大值。并将计算获得的图像的最小灰度值和最大灰度值,以及该图像的目的灰度空间的最小值与最大值,输出给拉伸二值化模块。当拉伸二值化模块处理图像之后,可直接用于连通域搜索。相较于现有技术中,最值/均值计算模块先计算图像的最小灰度值和最大灰度值存储,拉伸二值化模块对图像数据二值化后也存储,在需要读出的时候才读出来说,本申请实施例提供的方案,在预处理模块中只需要存储一次图像数据,从而可节约存储资源。另外,由于存在两个缓存,即缓存1和缓存2,写入控制器写入图像数据时,可在缓存1和缓存2之间切换,相应的,读出控制器在读出图像数据时,也可在缓存1和缓存2之间切换,可提高图像处理效率。全局合并模块用于合并相邻两个图像切片的边界处的标签,并更新为全局标签。在本申请实施例中,并行处理N个图像切片,所以每个边界标签管理模块用于管理对应切片处理模块的边界标签。特征值提交模块可从边界标签管理模块和全局合并模块获取各个标签对应的特征值数据,并将该特征值数据输出到另一存储区域。这些模块可以执行上述方法示例中的相应功能,具体参见方法示例中的详细描述,此处事不再赘述。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述方法示例中的方法,具体参见方法示例中的详细描述,此处事不再赘述。
本领域普通技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围,也表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”、“任意一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种物体标记点识别方法,其特征在于,所述方法应用于可编程逻辑器件FPGA,所述方法包括:
将待识别的第一图像划分为N个图像切片,并将所述N个图像切片分配到N个图像切片处理模块,其中,所述第一图像包括至少一个标记点;
并行获取所述N个图像切片上各个连通区域的特征值,其中,每个所述图像切片的一个连通区域对应一个标签,不同连通区域对应的标签不同;
合并所述N个图像切片的特征值,并根据合并后的特征值确定所述至少一个标记点的特征参数,所述特征参数用于识别所述至少一个标记点;
其中,在将待识别的第一图像划分为N个图像切片之前,所述方法包括:
接收来自上位机的至少一个图像参数,并根据所述至少一个图像参数从输入的原始图像中确定所述第一图像;
通过最值/均值模块计算所述第一图像拉伸二值化处理所需要的参数,并输出给拉伸二值化模块,所述参数用于对所述第一图像进行拉伸二值化处理;
通过所述拉伸二值化模块获取所存储的第一图像数据,并根据所述参数对所述第一图像进行拉伸二值化处理,获得所述待识别的第一图像;
其中,所述最值/均值模块和所述拉伸二值化模块并行处理。
2.如权利要求1所述的方法,其特征在于,将所述N个图像切片分配到N个图像切片处理模块,包括:
按照切割所述第一图像的顺序依次将所述N个图像切片分配到所述N个图像切片处理模块;其中,
在分配过程中,判断下一个存储区域的状态,若所述下一个存储区域的状态为空闲状态,则指示存储图像数据的存储区输出图像数据。
3.如权利要求1或2所述的方法,其特征在于,并行获取所述N个图像切片上各个连通区域的特征值,包括:
针对每个图像切片,从第一行开始获取为所述第一行的各个像素分配的标签,所述标签用于标识所述每个图像切片的前景像素或背景像素;
根据预先设定的标签分配规则以及获取的标签生成第一合并信息,所述第一合并信息用于对所述每个图像切片的上一行的部分或全部标签进行更新;
根据所述第一合并信息更新所述每个图像切片的上一行的标签,使得所述每个图像切片的每个连通区域的标签相同;
根据每个连通区域各个标签对应的像素坐标加权以及像素灰度加权确定所述连通区域的特征值。
4.如权利要求3所述的方法,其特征在于,合并所述N个图像切片的特征值,包括:
确定要合并的两个相邻的图像切片;
获取所述两个相邻的图像切片边界处的标签,并根据预先设定的合并规则合并所述两个相邻的图像切片边界处的标签;
根据边界处合并之后的标签确定所述两个相邻的图像切片的特征值;
其中,所述合并规则为:
若所述两个相邻的图像切片边界处的标签为边界标签,则将所述两个相邻的图像切片的边界标签更新为一个新的全局标签;
若所述两个相邻的图像切片边界处的标签包括边界标签和全局标签,则将所述边界标签更新为所述全局标签;
若所述两个相邻的图像切片边界处的标签均为全局标签,则将所述两个相邻的图像切片边界处的标签更新为新的全局标签。
5.如权利要求4所述的方法,其特征在于,获取所述两个相邻的图像切片的边界标签,并根据预先设定的合并规则合并所述两个相邻的图像切片的边界标签,包括:
通过第一通道将第n帧图像切片的边界标签以及第一合并信息写入第一表,所述第一表用于存储连续帧图像中上一帧图像的边界标签,所述第一合并信息用于合并所述第n帧图像切片的边界标签;其中,所述第n帧图像切片更新后的本地标签以及边界标签更新到所述第一表;
通过第二通道将第n+1帧图像的边界标签以及第二合并信息写入第二表,所述第二表用于存储所述连续帧图像中下一帧图像的边界标签,所述第二合并信息用于合并所述第n帧图像切片的边界标签和所述第n+1帧图像切片的边界标签;其中,所述第n帧图像切片和第n+1帧图像切片更新后的边界标签更新到所述第二表。
6.如权利要求5所述的方法,其特征在于,合并所述N个图像切片的特征值,包括:
在第n个时钟,置位特征值就绪信号,以指示获取输入的标签数据;
通过地址信号依次访问双端口RAM,其中,上一个时钟按照第一地址访问双端口RAM之后,将所述第一地址更新为下一个标签对应的地址;
将获取的标签数据写入存储区域,所述存储区域的标签数据用于计算特征值。
7.如权利要求6所述的方法,其特征在于,根据合并后的特征值确定所述至少一个标记点的特征参数,包括:
将合并后的特征值上传到上位机,通过所述上位机确定所述至少一个标记点的特征参数。
8.一种图像处理装置,其特征在于,包括处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的所述计算机程序,使得所述装置实现如权利要求1~7中任一项所述的方法。
9.一种计算机存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被计算机执行时,使所述计算机执行如权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110179491.0A CN112784832B (zh) | 2021-02-09 | 2021-02-09 | 一种物体标记点识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110179491.0A CN112784832B (zh) | 2021-02-09 | 2021-02-09 | 一种物体标记点识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112784832A CN112784832A (zh) | 2021-05-11 |
CN112784832B true CN112784832B (zh) | 2022-09-09 |
Family
ID=75761427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110179491.0A Active CN112784832B (zh) | 2021-02-09 | 2021-02-09 | 一种物体标记点识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112784832B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117409226B (zh) * | 2023-12-15 | 2024-03-19 | 中国空气动力研究与发展中心高速空气动力研究所 | 一种压敏漆图像标记点自动识别与配准方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296695A (zh) * | 2016-08-12 | 2017-01-04 | 西安理工大学 | 基于显著性的自适应阈值自然目标图像分割抽取算法 |
CN108716916A (zh) * | 2018-05-31 | 2018-10-30 | 北京航空航天大学 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
CN109558878A (zh) * | 2017-09-27 | 2019-04-02 | 北京国双科技有限公司 | 图像识别方法和装置 |
CN110472616A (zh) * | 2019-08-22 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、计算机设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727654B (zh) * | 2009-08-06 | 2011-09-07 | 北京理工大学 | 一种并行流水线实现的点目标连通域实时标记与识别方法 |
CN104881666B (zh) * | 2014-02-27 | 2018-01-16 | 王磊 | 一种基于fpga的实时二值图像连通域标记实现方法 |
JP6537332B2 (ja) * | 2014-04-28 | 2019-07-03 | キヤノン株式会社 | 画像処理方法および撮影装置 |
CN105761288B (zh) * | 2016-02-02 | 2019-02-01 | 华中科技大学 | 一种基于fpga的实时星点质心定位方法及装置 |
TWI590197B (zh) * | 2016-07-19 | 2017-07-01 | 私立淡江大學 | 影像物體特徵描述方法及影像處理裝置 |
EP3296954A1 (en) * | 2017-01-27 | 2018-03-21 | Sick IVP AB | Method and arrangements for identifying a pixel as a local extreme point |
CN108090932A (zh) * | 2017-12-21 | 2018-05-29 | 南京理工大学 | 基于fpga的炸点目标检测系统及方法 |
CN110533678B (zh) * | 2019-07-26 | 2022-02-11 | 杭州电子科技大学 | 基于fpga帧并行连通域筛选特征目标的图像处理方法 |
WO2021072592A1 (zh) * | 2019-10-14 | 2021-04-22 | 深圳市大疆创新科技有限公司 | 连通域分析方法、数据处理设备及计算机可读存储介质 |
CN111369582B (zh) * | 2020-03-06 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 图像分割方法、背景替换方法、装置、设备及存储介质 |
CN111476729B (zh) * | 2020-03-31 | 2023-06-09 | 北京三快在线科技有限公司 | 一种目标识别的方法及装置 |
CN112308805B (zh) * | 2020-11-26 | 2022-03-08 | 北京的卢深视科技有限公司 | 深度图连通域检测去噪方法、电子设备及存储介质 |
-
2021
- 2021-02-09 CN CN202110179491.0A patent/CN112784832B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296695A (zh) * | 2016-08-12 | 2017-01-04 | 西安理工大学 | 基于显著性的自适应阈值自然目标图像分割抽取算法 |
CN109558878A (zh) * | 2017-09-27 | 2019-04-02 | 北京国双科技有限公司 | 图像识别方法和装置 |
CN108716916A (zh) * | 2018-05-31 | 2018-10-30 | 北京航空航天大学 | 一种基于超级块的分布式并行星点质心提取方法及fpga实现装置 |
CN110472616A (zh) * | 2019-08-22 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、计算机设备及存储介质 |
Non-Patent Citations (6)
Title |
---|
" An Efficient Connected Component Labeling Architecture for Embedded Systems";Spagnolo F等;《Journal of Low Power Electronics and Applications》;20180806;第8卷(第1期);1-11 * |
"Fast generation of high throughput customized deep learning accelerators on FPGAs";H. Zeng 等;《IEEE》;20180205;1-8 * |
"Harris角点检测的FPGA快速实现方法";闫小盼 等;《计算机应用研究》;20170123;第34卷(第12期);3848-3851 * |
"分块技术实现图像快速-高精度旋转";李兵 等;《光电工程》;20110415;第38卷(第04期);103-107 * |
"图像连通域并行标记与特征值统计IP设计与验证";常诚;《中国硕士学位论文全文数据库 信息科技辑》;20200115(第(2020)01期);I135-882 * |
基于点目标连通域标记的实时特征提取及其分布式运算;于潇宇等;《光学学报》;20150210(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112784832A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110610510B (zh) | 目标跟踪方法、装置、电子设备及存储介质 | |
WO2019170023A1 (zh) | 目标跟踪方法和装置、电子设备、存储介质 | |
GB2542131B (en) | Graphics processing method and system for processing sub-primitives | |
GB2542133A (en) | Graphics processing method and system for processing sub-primitives | |
CN109584266B (zh) | 一种目标检测方法及装置 | |
CN108460098B (zh) | 信息推荐方法、装置和计算机设备 | |
US9401027B2 (en) | Method and apparatus for scene segmentation from focal stack images | |
CN112784832B (zh) | 一种物体标记点识别方法及装置 | |
Han | Improved SLIC imagine segmentation algorithm based on K-means | |
CN112784749A (zh) | 目标模型的训练方法、目标对象的识别方法、装置及介质 | |
Klaiber et al. | A single-cycle parallel multi-slice connected components analysis hardware architecture | |
CN111507337A (zh) | 基于混合神经网络的车牌识别方法 | |
Claus et al. | Optimizing the SUSAN corner detection algorithm for a high speed FPGA implementation | |
KR20180067909A (ko) | 영상 분할 장치 및 방법 | |
CN109345536A (zh) | 一种图像超像素分割方法及其装置 | |
Katkar et al. | A novel approach for medical image segmentation using PCA and K-means clustering | |
CN111507340A (zh) | 一种基于三维点云数据的目标点云数据提取方法 | |
CN111353419A (zh) | 图像比对方法、装置、电子设备及存储介质 | |
CN107729863B (zh) | 人体指静脉识别方法 | |
CN111199228B (zh) | 一种车牌定位的方法及装置 | |
Trieu et al. | Real-time color image segmentation based on mean shift algorithm using an FPGA | |
CN114037724B (zh) | 一种阈值法图像分割的异构并行计算系统、方法及电子设备 | |
CN114998172A (zh) | 图像处理方法及相关系统 | |
CN111819567A (zh) | 使用语义特征来匹配图像的方法和装置 | |
CN113762027B (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 |