CN117237442B - 连通域定位方法、图形处理器、设备和生产线 - Google Patents
连通域定位方法、图形处理器、设备和生产线 Download PDFInfo
- Publication number
- CN117237442B CN117237442B CN202311525668.3A CN202311525668A CN117237442B CN 117237442 B CN117237442 B CN 117237442B CN 202311525668 A CN202311525668 A CN 202311525668A CN 117237442 B CN117237442 B CN 117237442B
- Authority
- CN
- China
- Prior art keywords
- connected domain
- pixel
- positioning
- coordinate
- domain
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 58
- 230000015654 memory Effects 0.000 claims abstract description 158
- 239000011159 matrix material Substances 0.000 claims abstract description 151
- 238000012545 processing Methods 0.000 claims abstract description 33
- 239000003550 marker Substances 0.000 claims abstract description 21
- 238000003860 storage Methods 0.000 claims description 64
- 238000001514 detection method Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 9
- 238000002372 labelling Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000007547 defect Effects 0.000 abstract description 19
- 238000004364 calculation method Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 6
- 230000002950 deficient Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 238000004804 winding Methods 0.000 description 4
- WHXSMMKQMYFTQS-UHFFFAOYSA-N Lithium Chemical compound [Li] WHXSMMKQMYFTQS-UHFFFAOYSA-N 0.000 description 3
- 229910052744 lithium Inorganic materials 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000004072 C09CA03 - Valsartan Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 238000009413 insulation Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Image Analysis (AREA)
Abstract
本申请实施例提供一种连通域定位方法、图形处理器、设备和生产线,连通域定位方法至少包括:获取包含至少一个连通域的连通域标记图;对连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合;基于至少一个像素坐标集合中各像素坐标集合中的像素坐标,生成表征各连通域在连通域标记图上位置的显存矩阵;对显存矩阵进行数据处理,得到各连通域对应的定位坐标;基于定位坐标,确定各连通域的定位框。通过图形处理器对图像的连通域进行定位,能够快速确定出极片等工件表面的缺陷,不仅减少了产线上处理器的计算量,还减少了产线上程序运行卡顿的情况,提升了产线运行效率。
Description
技术领域
本申请实施例涉及图像处理技术领域,涉及但不限于一种连通域定位方法、图形处理器、设备和生产线。
背景技术
在当前的图像算法中,连通域定位是很多图像任务的基础,比如,在电池产线的锂电池模切极片的缺陷检测过程中,可以通过连通域定位来实现对极片上可疑缺陷区域的定位。相关技术中,模切极片缺陷检测使用的连通域定位算法都是基于中央处理器(CPU,Central Processing Unit)实现的,比如,CPU调用开源计算机视觉库(Open CV,OpenSource Computer Vision Library)的find Contours函数来实现二值图像中连通域的查找与定位。
但是,产线上的程序大都使用CPU来实现,在CPU硬件资源不足的情况下,连通域定位程序运行过程中会出现卡顿,会导致产线暂停,不仅影响了产线的生产效率,还会导致成本的增加。
发明内容
为解决相关技术存在的问题,本申请实施例提供一种连通域定位方法、图形处理器、设备和生产线,能够通过图形处理器对图像的连通域进行定位,能够快速确定出极片等工件表面的缺陷,不仅减少了产线上CPU的计算量,还减少了产线上程序运行卡顿的情况,提升了产线运行效率。
第一方面,本申请提供一种连通域定位方法,应用于图形处理器;所述定位方法包括:获取包含至少一个连通域的连通域标记图;对所述连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合;所述像素坐标集合的数量与所述连通域的数量相同;基于所述至少一个像素坐标集合中各像素坐标集合中的像素坐标,生成表征各连通域在所述连通域标记图上位置的显存矩阵;对所述显存矩阵进行数据处理,得到各连通域对应的定位坐标;基于所述定位坐标,确定各连通域的定位框,以对所述连通域标记图上的至少一个连通域进行定位。
上述实施例中,在获取连通域标记图之后,基于GPU对连通域标记图中各连通域中的像素进行定位,确定出各连通域对应的定位坐标,从而确定出各连通域的定位框,如此,基于GPU实现了图像的连通域定位,能够快速确定出极片等工件表面的缺陷,在极片进入卷绕前去除了有缺陷的极片,提高了电芯的良率;还减少了产线上CPU的计算量,减少了产线上程序运行卡顿的情况,提升了产线运行效率。
在一些实施例中,所述基于所述至少一个像素坐标集合中各像素坐标集合中的像素坐标,生成表征各连通域在所述连通域标记图上位置的显存矩阵,包括:基于所述至少一个像素坐标集合,确定各连通域中的像素在图像坐标系第一方向上不重复的第一坐标数值和第二方向上不重复的第二坐标数值;所述第一方向与所述第二方向垂直;基于所述第一坐标数值和所述第二坐标数值,生成表征各连通域在第一方向上位置的第一显存矩阵和表征各连通域在第二方向上位置的第二显存矩阵;所述显存矩阵包括所述第一显存矩阵和所述第二显存矩阵。
在一些实施例中,所述对所述显存矩阵进行数据处理,得到各连通域对应的定位坐标,包括:遍历所述第一显存矩阵,确定各连通域在第一方向上的最大坐标数值和最小坐标数值,以及遍历所述第二显存矩阵,确定各连通域在第二方向上的最大坐标数值和最小坐标数值;将所述各连通域在第一方向上的最大坐标数值和第二方向上的最大坐标数值确定为第一定位坐标,将所述各连通域在第一方向上的最小坐标数值和第二方向上的最小坐标数值确定为第二定位坐标;所述定位坐标包括所述第一定位坐标和第二定位坐标。
上述实施例中,在得到各连通域的坐标集合后,基于坐标集合创建表征各连通域分布的显存矩阵,根据显存矩阵能够快速确定各连通域在不同方向的最大值和最小值,以实现精确对每个连通域进行定位,相比于通过图像识别来确定连通域的方法,本申请的定位方法更加精确,能够在像素的级别对连通域进行定位。
在一些实施例中,所述基于所述第一坐标数值和所述第二坐标数值,生成表征各连通域在第一方向上位置的第一显存矩阵和表征各连通域在第二方向上位置的第二显存矩阵,包括:设置元素均为预设数值的第一初始矩阵和第二初始矩阵;其中,所述第一初始矩阵和所述第二初始矩阵的行数等于所述连通域标记图中连通域的数量,所述第一初始矩阵的列数与所述连通域标记图中第一方向的像素数量相同,所述第二初始矩阵的列数与所述连通域标记图中第二方向的像素数量相同;从所述第一初始矩阵的第一行起,依次对一个连通域在第一方向上的第一坐标数值和所述第一初始矩阵中的一行元素进行替换,最终得到第一显存矩阵;从所述第二初始矩阵的第一行起,依次对一个连通域在第二方向上的第二坐标数值和所述第二初始矩阵中的一行元素进行替换,最终得到第二显存矩阵。
上述实施例中,通过显存矩阵能快速确定每个连通域在第一方向和第二方向的分布,进而快速对连通域进行定位。
在一些实施例中,所述基于所述定位坐标,确定各连通域的定位框,包括:将各连通域对应的所述第一定位坐标和所述第二定位坐标,确定为各连通域对应的定位框的对角点;基于各连通域的对角点,得到各连通域的定位框。
上述实施例中,在确定出连通域的定位坐标后,可以得到连通域的定位框,通过定位框可以直观的确定连通域的面积,以为后续对连通域的处理提供参考。
在一些实施例中,所述图形处理器包括预先分配的多个线程;所述对所述连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合,包括:基于所述多个线程,对各连通域中像素的位置进行读取,分别确定各连通域中的像素在所述图像坐标系上第一方向的第一坐标和第二方向的第二坐标;基于所述第一坐标和所述第二坐标,生成各连通域在图像坐标系上的像素坐标集合。
上述实施例中,基于图形处理器的多个线程来确定每个像素的坐标,并行处理多个计算任务,可以同时确定全部连通域中的像素坐标,使得本申请实施例提供的定位方法相比于CPU定位更加快速,在产线上能够更快的确定出产线上具有表面缺陷的工件。
在一些实施例中,所述定位方法还包括:获取待定位二值图像;从所述待定位二值图像的第一个像素起,对所述待定位二值图像中的全部像素进行排序处理,确定所述全部像素分别对应的像素数值;对所述待定位二值图像进行连通域标记,确定至少一个连通域和所述至少一个连通域的连通域数量,并基于所述像素数值分别确定各连通域对应的根像素;基于所述各连通域对应的根像素和所述连通域数量,对各连通域进行标记处理,得到各连通域分别对应的标记值;基于所述各连通域分别对应的标记值,对所述待定位二值图像中除所述连通域外的像素进行置零处理,得到所述连通域标记图。
上述实施例中,通过图形处理器的并行计算,能够快速确定待定位二值图像中的连通域和连通域数量,并对连通域进行标记,减少了处理器的计算量,提升了产线程序运行的流畅度。
在一些实施例中,所述对所述待定位二值图像进行连通域标记,确定至少一个连通域和所述至少一个连通域的连通域数量,并基于所述像素数值分别确定各连通域对应的根像素,包括:从所述待定位二值图像的第一个像素起,将相邻且像素灰度值等于预设灰度值的像素确定为一个连通域,得到所述至少一个连通域;基于所述至少一个连通域,对连通域的数量进行统计,得到所述至少一个连通域的连通域数量;基于所述像素数值,从所述待定位二值图像的第一个连通域起,将各连通域对应的全部像素数值中数值最小的像素,确定为所述连通域的根像素,直至得到各连通域对应的根像素。
在一些实施例中,所述图形处理器至少包括预先设置的存储显存和多个线程;所述存储显存用于存储所述连通域数量;所述基于所述各连通域对应的根像素和所述连通域数量,对各连通域进行标记处理,得到各连通域分别对应的标记值,包括:从所述至少一个连通域的任一根像素起,所述任一根像素对应的线程读取所述存储显存中的所述连通域数量,将所述连通域数量作为所述任一连通域的标记值;对所述连通域数量执行减法操作,得到更新后的存储数值,并将所述存储显存中存储的所述连通域数量替换为所述更新后的存储数值;其中,所述减法操作为对所述连通域数量减去预设数值;所述任一根像素的下一根像素对应的线程读取所述存储显存中的所述更新后的存储数值,并将所述更新后的存储数值确定所述下一根像素对应的连通域的标记值,对所述更新后的存储数值进行减法操作,得到再次更新后的存储数值,将所述再次更新后的存储数值对所述更新后的存储数值进行替换,直至得到各连通域分别对应的标记值。
上述实施例中,基于图形处理器的多个线程来对图像的连通域进行标记,相比于CPU定位更加快速,提升了连通域定位效率。
第二方面,本申请实施例提供一种图形处理器,所述图形处理器包括:获取模块,用于获取包含至少一个连通域的连通域标记图;定位模块,用于对所述连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合;所述像素坐标集合的数量与所述连通域的数量相同;生成模块,用于基于所述至少一个像素坐标集合中各像素坐标集合中的像素坐标,生成表征各连通域在所述连通域标记图上位置的显存矩阵;数据处理模块,用于对所述显存矩阵进行数据处理,得到各连通域对应的定位坐标;确定模块,用于基于所述定位坐标,确定各连通域的定位框,以对所述连通域标记图上的至少一个连通域进行定位。
上述实施例中,在获取连通域标记图之后,基于GPU对连通域标记图中各连通域中的像素进行定位,确定出各连通域对应的定位坐标,从而确定出各连通域的定位框,如此,基于GPU实现了图像的连通域定位,能够快速确定出极片等工件表面的缺陷,在极片进入卷绕前去除了有缺陷的极片,提高了电芯的良率;还减少了产线上CPU的计算量,减少了产线上程序运行卡顿的情况,提升了产线运行效率。
第三方面,本申请实施例提供一种连通域定位设备,包括存储器和图形处理器,所述存储器存储有可在图形处理器上运行的计算机程序,所述图形处理器执行所述程序时实现上述的连通域定位方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有可执行指令,用于引起图形处理器执行所述可执行指令时,实现上述的连通域定位方法。
第五方面,本申请实施例提供一种生产线,所述生产线包括:上位机,用于发出对产线上的工件进行表面检测的检测请求;图像采集设备,用于响应于所述检测请求,采集产线上工件的表面图像;连通域定位设备,用于获取所述表面图像,形成连通域标记图,并基于所述连通域标记图实现上述的连通域定位方法。
上述实施例中,通过图形处理器实现连通域定位方法,不仅减少了产线上CPU的计算量,还减少了产线上程序运行卡顿的情况,提升了产线运行效率。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
图1是本申请实施例提供的连通域定位方法的一个可选的流程示意图一;
图2是本申请实施例提供的连通域定位方法的一个可选的流程示意图二;
图3是本申请实施例提供的连通域标记图一;
图4是本申请实施例提供的连通域定位方法的一个可选的流程示意图三;
图5是本申请实施例提供的待定位二值化图像;
图6是本申请实施例提供的初始化后的二值图像;
图7是本申请实施例提供的具有连通域标记值的图像;
图8是本申请实施例提供的连通域标记图二;
图9是本申请实施例提供的连通域定位方法的一个可选的流程示意图四;
图10是本申请实施例提供的连通域定位过程示意图;
图11是本申请实施例提供的一种图形处理器的示意图;
图12是本申请实施例提供的连通域定位设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在锂电池的生产过程中,是将激光切好后的极片,通过卷针的转动,把极片卷成一个层层包裹的卷芯状,通常的包裹方式以隔膜、正极、隔膜、负极的顺序交叠后进行卷绕,使得隔膜和极片共同卷绕而形成电芯卷绕体,进而形成电池。而为了实现正负极片之间的绝缘,极片上的部分区域会涂覆绝缘层,而极片表面的绝缘层如果有缺陷,可能会导致正极片和负极片直接导通,进而导致锂电池出现起火、爆炸等风险。
因此,为了避免这类问题,可以在极片进行卷绕之前,对极片的表面进行缺陷检测,不对表面有缺陷的极片进行卷绕,从而保证卷绕后电芯的良率,生产出符合需求的电芯。
但是相关技术中,极片缺陷检测使用的连通域缺陷定位算法都是基于CPU实现的,产线上都使用CPU来实现连通域定位,在CPU硬件资源不足的情况下,程序运行过程中会出现卡顿,会导致产线暂停,不仅影响了产线的生产效率,还会导致成本的增加。
为了解决相关技术存在的问题,本申请实施例提供一种连通域定位方法,该方法基于图形处理器(GPU,Graphics Processing Unit)实现,该连通域定位方法应用于生产线上的连通域定位设备,连通域定位设备可以用于产线上任意需要进行表面缺陷检测或表面检测的工艺工段。生产线至少包括上位机、图像采集设备和连通域定位设备。产线上的上位机发出对产线上的工件进行表面检测的检测请求,产线上的图像采集设备响应于检测请求,采集产线上工件的表面图像。连通域定位设备获取表面图像,对表面图像进行处理,形成连通域标记图,对连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合,基于至少一个像素坐标集合,分别确定各连通域对应的定位坐标,确定各连通域的定位框,以对连通域标记图上的至少一个连通域进行定位。这里,工件可以是任一种需要进行表面缺陷检测的工件。
本申请通过GPU实现连通域定位,GPU通过并行计算能够快速确定极片等工件表面的缺陷,在极片进入卷绕前去除了有缺陷的极片,提高了电芯的良率;还减少了产线上CPU的计算量,减少了产线程序运行卡顿的情况,提升了产线运行效率。
本申请实施例的连通域定位方法可以用于电池生产过程中,例如用于对正负极片的表面和电芯表面进行缺陷检测等。当然,本领域技术人员应当理解,本申请实施例提供的连通域定位方法不仅仅用于对电池生产制造过程的各种工件的表面检测,也可以用于对其他需要进行表面检测的技术领域。
图1是本申请实施例提供的连通域定位方法的一个可选的流程示意图一,本申请实施例提供的连通域定位方法的执行主体为连通域定位设备中的GPU。如图1所示,本申请实施例提供的连通域定位方法可以通过步骤S101至步骤S105实现:
步骤S101、获取包含至少一个连通域的连通域标记图。
在一些实施例中,连通域标记图是指已经进行连通域标记,但未进行连通域定位后的图像,连通域标记图中包含已经标记的至少一个连通域。这里,连通域的定义是由具有相同像素值的相邻像素组成的像素集合。
在一些实施例中,连通域定位设备在获取图像采集设备采集的工件表面图像时,可以先将工件表面图像转换为二值化图像,并在二值化图像上,从1开始计数,依次对二值化图像上的每个像素进行排序,以初始化每个前景像素点的标签;然后再以8邻域连通规则判断查找二值化图像中的连通域,并把相同连通域中的像素点都用该连通域中的最小标签进行标记,同时将最小标签对应的像素点记为该连通域的根像素;最后将不是连通域的像素的标签置零处理,得到连通域标记图。
这里,工件可以是指极片、电池或任一需要进行表面缺陷检测的工件。
在一些实施例中,8邻域连通规则是指在二维平面中,可以定义8个方向,每个方向代表一个像素的移动方向。从二值化图像的左下角开始,逐行逐列遍历每个像素。对于每个像素,检查8个相邻像素(上、下、左、右、左上、右上、左下和右下),如果某个相邻像素的像素值与当前像素的像素值不同,则将该相邻像素标记为背景,遍历完整个二值化图像后,得到二值化图像的全部连通域。
步骤S102、对所述连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合;所述像素坐标集合的数量与所述连通域的数量相同。
在一些实施例中,图像坐标系可以是指以连通域标记图的左下角为坐标原点建立的直角坐标系,或以连通域标记图的任一点建立的直角坐标系,直角坐标系包括相互垂直的X和Y坐标轴。基于图像坐标系可以确定连通域标记图上每一个像素的像素坐标,进而可以得到每一个连通域对应的多个像素的像素坐标集合。例如,如果以连通域标记图的左下角为坐标原点建立直角坐标系,连通域标记图高20个像素,宽40个像素时,连通域标记图第一行第一个像素的坐标为(1,20),第一行第二个像素的坐标为(2,20),如此,可以得到各连通域中各像素的像素坐标。
在本申请实施例中,一个连通域的全部像素组成一个像素坐标集合,因此,像素坐标集合的数量与连通域标记图中连通域的数量相同。
在一些实施例中,GPU具有多个线程,可以实现并行处理,一个线程对一个像素进行定位处理,基于不同线程的X和Y索引,可以快速得到每个像素在图像坐标系的像素坐标。
在一些实施例中,本申请实施例提供的连通域定位方法可以基于GPU中CUDA(Compute Unified Device Architecture)编程的核函数来实现。通过核函数来实现对各连通域中的像素进行定位的代码逻辑如下:线程是CUDA编程的基本执行单位。每个线程都是一个独立的计算单元,可以并行地执行相同的计算任务,线程之间可以通过共享内存和同步机制进行通信和协作。基于每个线程所在的线程块在线程网格中的X和Y维索引、每个线程块中X维和Y维上的线程数量和每个线程在其所属线程块中的X和Y维索引来定位每个线程的坐标位置,每个线程对应一个像素,进而定位各连通域每个像素的位置。
步骤S103、基于所述至少一个像素坐标集合中各像素坐标集合中的像素坐标,生成表征各连通域在所述连通域标记图上位置的显存矩阵。
在本申请实施例中,显存矩阵可以用于存储各连通域的坐标,例如,显存矩阵的行数与连通域标记图的高相同,显存矩阵的列数与连通域标记图的宽相同,各连通域像素的坐标作为显存矩阵对应位置处的元素,进而基于显存矩阵确定各连通域在连通域标记图上的定位坐标。
在一些实施例中,显存矩阵可以包括用于存储各连通域中像素点的X坐标的第一显存矩阵和用于存储各连通域中像素点的Y坐标的第二显存矩阵,第一显存矩阵和第二显存矩阵的行数可以等于连通域标记图中连通域的数量,第一显存矩阵的列数与连通域标记图中第一方向的像素数量相同,第二显存矩阵的列数与连通域标记图中第二方向的像素数量相同。这里,通过第一显存矩阵和第二显存矩阵可以确定各连通域在X和Y方向的分布,进而对各连通域进行定位。
步骤S104、对所述显存矩阵进行数据处理,得到各连通域对应的定位坐标。
在一些实施例中,显存矩阵中存储了各连通域像素的坐标,可以基于显存矩阵确定各连通域在X和Y方向上的最大坐标和最小坐标,从而得到各连通域对应的定位坐标。例如,基于各连通域对应的像素坐标集合确定出显存矩阵后,可以根据显存矩阵分别确定出各连通域在X和Y方向的最大坐标和最小坐标,将各连通域分别在X和Y方向的最大坐标作为最大定位坐标,将各连通域分别在X和Y方向的最小坐标作为最小定位坐标,得到个连通域的定位坐标。例如,某一连通域在图像坐标系中在X方向的最大坐标为15,最小坐标为7,在Y方向的最大坐标为20,最小坐标为2,则该连通域的最小定位坐标为(7,2),最大定位坐标为(15,20),将这两个定位坐标作为该连通域的定位坐标。
在一些实施例中,当显存矩阵包括第一显存矩阵和第二显存矩阵时,可以通过核函数来确定各连通域对应的定位坐标,代码逻辑如下:在确定了各连通域的像素坐标之后,创建第一显存矩阵coordinate X,用来存储各连通域中像素点的X坐标,第一显存矩阵的高为连通域标记图中连通域的个数,宽为原连通域标记图的宽度;创建第二显存矩阵coordinate Y,用来存储各连通域中像素点的Y坐标,第二显存矩阵的高为连通域的个数,宽为连通域标记图的高度。确定coordinate X和coordinate Y中每行中非0值的最大值与最小值,即确定了每个连通域对应的最小包围矩形的左上顶点坐标(X_min,Y_min)与右下顶点坐标(X_max,Y_max),进而得到各连通域的定位框,实现对各连通域的定位。
步骤S105、基于所述定位坐标,确定各连通域的定位框,以对所述连通域标记图上的至少一个连通域进行定位。
在本申请实施例中,在确定出每一连通域的最大定位坐标和最小定位坐标之后,可以将最大定位坐标和最小定位坐标作为矩形框的对角,得到各连通域的定位框,基于各连通域的定位框对连通标记图上的至少一个连通域进行定位,进而定位工件上的缺陷位置。
本申请实施例在获取连通域标记图之后,基于GPU对连通域标记图中各连通域中的像素进行定位,确定出各连通域对应的定位坐标,从而确定出各连通域的定位框,如此,基于GPU实现了图像的连通域定位,能够快速确定出极片等工件表面的缺陷,在极片进入卷绕前去除了有缺陷的极片,提高了电芯的良率;同时,不仅减少了产线上CPU的计算量,还减少了产线上程序运行卡顿的情况,提升了产线运行效率,减少了产线的生产成本。
图2是本申请实施例提供的连通域定位方法的一个可选的流程示意图二,如图2所示,步骤S103可以通过步骤S201至步骤S202实现:
步骤S201、基于所述至少一个像素坐标集合,确定各连通域中的像素在图像坐标系第一方向上不重复的第一坐标数值和第二方向上不重复的第二坐标数值;所述第一方向与所述第二方向垂直。
在一些实施例中,在得到每个连通域对应的像素坐标集合之后,可以确定各连通域在图像坐标系的X和Y轴的分布,基于各连通域在图像坐标系的X和Y轴的分布,得到各连通域中的像素在图像坐标系第一方向上不重复的第一坐标数值和第二方向上不重复的第二坐标数值。例如,图3是本申请实施例提供的连通域标记图一,如图3所示,以连通域的左下角为坐标原点构建图像坐标系,其中,第一方向为X轴方向,第二方向为Y轴方向,连通域标记图的宽为11,高为8,连通域标记图上有4个连通域,分别是标号为1、2、3和4的连通域,标号为1的连通域在X轴分布为1至11,Y轴的分布为5至8,可知标号为1的连通域在第一方向上不重复的第一坐标数值为1至11,在第二方向上不重复的第二坐标数值为5至8;标号为2的连通域在X轴分布为4,Y轴的分布为5,可知标号为2的连通域在第一方向上不重复的第一坐标数值为4,在第二方向上不重复的第二坐标数值为5;标号为3的连通域在X轴分布为8,Y轴的分布为5,可知标号为3的连通域在第一方向上不重复的第一坐标数值为8,在第二方向上不重复的第二坐标数值为5;标号为4的连通域在X轴分布为1至11,Y轴的分布为1至3,可知标号为4的连通域在第一方向上不重复的第一坐标数值为1至11,在第二方向上不重复的第二坐标数值为1至3。
步骤S202、基于所述第一坐标数值和所述第二坐标数值,生成表征各连通域在第一方向上位置的第一显存矩阵和表征各连通域在第二方向上位置的第二显存矩阵。
在一些实施例中,可以根据各连通域对应的第一坐标数值和第二坐标数值,构建用于存储各连通域X坐标的第一显存矩阵和存储各连通域Y坐标的第二显存矩阵。
在一些实施例中,步骤S202可以通过步骤S2021至步骤S2023实现:
步骤S2021、设置元素均为预设数值的第一初始矩阵和第二初始矩阵;其中,所述第一初始矩阵和所述第二初始矩阵的行数等于所述连通域标记图中连通域的数量,所述第一初始矩阵的列数与所述连通域标记图中第一方向的像素数量相同,所述第二初始矩阵的列数与所述连通域标记图中第二方向的像素数量相同。
在一些实施例中,基于图3所示的宽为11,高为8,具有4个连通域的连通域标记图,设置元素均为预设数值的第一初始矩阵A和第二初始矩阵B,预设数值可以为0或任一数值。基于第一初始矩阵A和第二初始矩阵B的行数等于连通域标记图中连通域的数量,第一初始矩阵A的列数与连通域标记图中第一方向的像素数量相同,第二初始矩阵B的列数与连通域标记图中第二方向的像素数量相同,得到第一初始矩阵A和第二初始矩阵B如公式(1)和(2)所示:
(1);
(2);
步骤S2022、从所述第一初始矩阵的第一行起,依次对一个连通域在第一方向上的第一坐标数值和所述第一初始矩阵中的一行元素进行替换,最终得到第一显存矩阵。
在一些实施例中,每个连通域在第一方向上的第一坐标数值可以表征各连通域在X方向的分布,例如,基于前述实施例和图3可知,标号为1的连通域在第一方向上不重复的第一坐标数值为1至11;标号为2的连通域在第一方向上不重复的第一坐标数值为4;标号为3的连通域在第一方向上不重复的第一坐标数值为8;标号为4的连通域在第一方向上不重复的第一坐标数值为1至11,因此,对各连通域在第一方向上的第一坐标数值和第一初始矩阵A中的每行元素进行替换,最终得到第一显存矩阵C,如公式(3)所示:
(3);
这里,第一显存矩阵的每一行表征一个连通域在X方向的分布。
步骤S2023、从所述第二初始矩阵的第一行起,依次对一个连通域在第二方向上的第二坐标数值和所述第二初始矩阵中的一行元素进行替换,最终得到第二显存矩阵。
在一些实施例中,每个连通域在第二方向上的第二坐标数值可以表征各连通域在Y方向的分布,例如,基于前述实施例和图3可知,标号为1的连通域在第二方向上不重复的第二坐标数值为5至8;标号为2的连通域在第二方向上不重复的第二坐标数值为5;标号为3的连通域在第二方向上不重复的第二坐标数值为5;标号为4的连通域在第二方向上不重复的第二坐标数值为1至3,因此,对各连通域在第二方向上的第二坐标数值和第二初始矩阵B中的每行元素进行替换,最终得到第一显存矩阵D,如公式(4)所示:
(4);
这里,第二显存矩阵的每一行表征一个连通域在Y方向的分布。
基于前述实施例,步骤S104可以通过步骤S1041和步骤S1042实现:
步骤S1041、遍历所述第一显存矩阵,确定各连通域在第一方向上的最大坐标数值和最小坐标数值,以及遍历所述第二显存矩阵,确定各连通域在第二方向上的最大坐标数值和最小坐标数值。
在本申请实施例中,在确定第一显存矩阵和第二显存矩阵之后,基于第一显存矩阵的每一行可以确定每一连通域在X方向的最大坐标数值和最小坐标数值,例如,标号为1的连通域在X方向的最大坐标数值和最小坐标数值分别为11和1;标号为2的连通域在X方向的最大坐标数值和最小坐标数值均为4;标号为3的连通域在X方向的最大坐标数值和最小坐标数值均为8;标号为4的连通域在X方向的最大坐标数值和最小坐标数值分别为11和1。
基于第二显存矩阵的每一行可以确定每一连通域在Y方向的最大坐标数值和最小坐标数值,例如,标号为1的连通域在Y方向的最大坐标数值和最小坐标数值分别为8和5;标号为2的连通域在Y方向的最大坐标数值和最小坐标数值均为5;标号为3的连通域在Y方向的最大坐标数值和最小坐标数值均为5;标号为4的连通域在Y方向的最大坐标数值和最小坐标数值分别为3和1。
步骤S1042、将所述各连通域在第一方向上的最大坐标数值和第二方向上的最大坐标数值确定为第一定位坐标,将所述各连通域在第一方向上的最小坐标数值和第二方向上的最小坐标数值确定为第二定位坐标;所述定位坐标包括所述第一定位坐标和第二定位坐标。
在一些实施例中,标号为1的连通域的第一定位坐标为(11,8),第二定位坐标为(1,5);标号为2的连通域的第一定位坐标为(4,5),第二定位坐标为(4,5);标号为3的连通域的第一定位坐标为(8,5),第二定位坐标为(8,5);标号为4的连通域的第一定位坐标为(11,3),第二定位坐标为(1,1)。
对应地,步骤S105可以通过步骤S1和步骤S2实现:
步骤S1、将各连通域对应的所述第一定位坐标和所述第二定位坐标,确定为各连通域对应的定位框的对角点。
步骤S2、基于各连通域的对角点,得到各连通域的定位框。
在一些实施例中,在确定出各连通域对应的第一定位坐标和第二定位坐标之后,将第一定位坐标和第二定位坐标作为矩形框的对角点,得到各连通域的定位框。
本申请实施例在得到各连通域的坐标集合后,基于坐标集合创建表征各连通域分布的显存矩阵,根据显存矩阵能够快速确定各连通域在不同方向的最大值和最小值,以实现精确对每个连通域进行定位,相比于通过图像识别来确定连通域的方法,本申请的定位方法更加精确,能够在像素的级别对连通域进行定位。
在一些实施例中,图形处理器包括预先分配的多个线程,对应地,步骤S102可以通过步骤S11和步骤S12实现:
步骤S11、基于所述多个线程,对各连通域中像素的位置进行读取,分别确定各连通域中的像素在所述图像坐标系上第一方向的第一坐标和第二方向的第二坐标。
在一些实施例中,可以通过GPU的核函数来实现对各连通域中的像素的位置进行读取,其中,核函数的代码逻辑如下:线程是CUDA编程的基本执行单位,GPU包括预先分配的多个线程,每个线程都是一个独立的计算单元,可以并行地执行相同的计算任务,线程之间可以通过共享内存和同步机制进行通信和协作。基于每个线程所在的线程块在线程网格中的X和Y维索引、每个线程块中X和Y维上的线程数量和每个线程在其所属线程块中的X和Y维索引来定位每个线程的坐标位置,每个线程对应一个像素,进而定位各连通域每个像素在所述图像坐标系上X方向的第一坐标和Y方向的第二坐标。
步骤S12、基于所述第一坐标和所述第二坐标,生成各连通域在图像坐标系上的像素坐标集合。
在确定出每个连通域中每个像素的第一坐标和第二坐标之后,可以生成各连通域在图像坐标系上的像素坐标集合。
本申请实施例基于GPU的多个线程来确定每个像素的坐标,并行处理多个计算任务,可以同时确定全部连通域中的像素坐标,使得本申请实施例提供的定位方法相比于CPU定位更加快速,在产线上能够更快的确定出产线上具有表面缺陷的工件。
在一些实施例中,产线上的图像采集设备响应于上位机的检测请求,采集产线上工件的表面图像,连通域定位设备获取表面图像,对表面图像进行处理,形成连通域标记图。因此,图4是本申请实施例提供的连通域定位方法的一个可选的流程示意图三,如图4所示,本申请实施例提供的连通域定位方法还可以包括步骤S401至步骤S405。
步骤S401、获取待定位二值图像。
在一些实施例中,二值图像是指连通域定位设备获取表面图像之后,对表面图像进行二值化处理后的图像,图5是本申请实施例提供的待定位二值化图像,如图5所示,连通域501中像素的灰度值为0,背景502中像素的灰度值为255。
步骤S402、从所述待定位二值图像的第一个像素起,对所述待定位二值图像中的全部像素进行排序处理,确定所述全部像素分别对应的像素数值。
在一些实施例中,在得到二值化图像后,从待定位二值图像的第一个像素起,从1开始计数,初始化每个像素点的标签,得到待定位二值图像中每个像素的像素数值。图6是本申请实施例提供的初始化后的二值图像,如图6所示,对二值化图像的88个像素,从第一个像素起依次进行标签初始化。
步骤S403、对所述待定位二值图像进行连通域标记,确定至少一个连通域和所述至少一个连通域的连通域数量,并基于所述像素数值分别确定各连通域对应的根像素。
在一些实施例中,对待定位二值图像进行连通域标记可以通过种子填充法(Seed-Filling)或两遍扫描法(Two-Pass)来实现,确定出连通域后,可以根据连通域的初始化标签,来确定各连通域的根像素。
在一些实施例中,像素相邻关系可以包括4邻域和8邻域两种,下面以8邻域为例对连通域进行标记,步骤S403可以通过步骤S4031至步骤S4033实现:
步骤S4031、从所述待定位二值图像的第一个像素起,将相邻且像素灰度值等于预设灰度值的像素确定为一个连通域,得到所述至少一个连通域。
这里,预设灰度值可以是0或255,将灰度值为0的像素作为连通域时,预设灰度值为0;将灰度值为255的像素作为连通域时,预设灰度值为255。
在一些实施例中,基于8邻域连通规则,从待定位二值图像的第一个像素起,检查8个相邻像素(上、下、左、右、左上、右上、左下和右下),如果某个相邻像素的像素值与预设灰度值不同,则将该相邻像素标记为背景,相同则标记为同一连通域,遍历完整个待定位二值图像后,得到待定位二值图像的至少一个连通域。
步骤S4032、基于所述至少一个连通域,对连通域的数量进行统计,得到所述至少一个连通域的连通域数量。
在一些实施例中,对连通域的数量进行统计可以通过核函数的atomicAdd函数来实现,atomicAdd为原子操作,在一个线程内部等效于connectedDomNum=connectedDomNum+1,如果有多个线程同时对地址connectedDomNum进行读写操作,原子操作会保证每次只有一个线程的运算操作在执行,以避免读写冲突。atomicAdd(connectedDomNum,1)用于统计图像中连通域的个数。
步骤S4033、基于所述像素数值,从所述待定位二值图像的第一个连通域起,将各连通域对应的全部像素数值中数值最小的像素,确定为所述连通域的根像素,直至得到各连通域对应的根像素。
在一些实施例中,可以根据连通域中每个像素的像素数值,将各连通域对应的全部像素数值中数值最小的像素,确定为所述连通域的根像素,例如,基于图6,可以确定出待定位二值图像中第一个连通域的根像素为像素数值为1的像素;第二个连通域的根像素为像素数值为37的像素;第三个连通域的根像素为像素数值为41的像素;第四个连通域的根像素为像素数值为57的像素,从而得到各连通域对应的根像素。
步骤S404、基于所述各连通域对应的根像素和所述连通域数量,对各连通域进行标记处理,得到各连通域分别对应的标记值。
在一些实施例中,可以是根据连通域数量,生成一个标记序列,例如,有4个连通域,标记序列为(1,2,3,4)。建立各连通域根像素与标记序列之间的哈希映射,得到各连通域分别对应的标记值,例如,原根像素为1的连通域,哈希映射后标记值为1;原根像素为37的连通域,哈希映射后标记值为2;原根像素为41的连通域,哈希映射后标记值为3;原根像素为57的连通域,哈希映射后标记值为4,如图7所示,图7是本申请实施例提供的具有连通域标记值的图像。
在一些实施例中,所述图形处理器至少包括预先设置的存储显存和多个线程;所述存储显存用于存储所述连通域数量;对应地,步骤S404可以通过步骤S4041和步骤S4043实现:
步骤S4041、从所述至少一个连通域的任一根像素起,所述任一根像素对应的线程读取所述存储显存中的所述连通域数量,将所述连通域数量作为所述任一连通域的标记值。
在一些实施例中,可以通过GPU的存储显存来存储待定位二值图像的连通域数量,在对各连通域进行标记时,通过任一像素对应的线程读取存储显存中存储的连通域数量,将连通域数量作为该连通域的标记值。
步骤S4042、对所述连通域数量执行减法操作,得到更新后的存储数值,并将所述存储显存中存储的所述连通域数量替换为所述更新后的存储数值;其中,所述减法操作为对所述连通域数量减去预设数值。
在一些实施例中,预设数值为1,在确定出一个连通域的标记值之后,对连通域数量执行减一操作,得到更新后的存储数值,并通过更新后的存储数值替换存储显存中存储的连通域数量。
步骤S4043、所述任一根像素的下一根像素对应的线程读取所述存储显存中的所述更新后的存储数值,并将所述更新后的存储数值确定所述下一根像素对应的连通域的标记值,对所述更新后的存储数值进行减法操作,得到再次更新后的存储数值,将所述再次更新后的存储数值对所述更新后的存储数值进行替换,直至得到各连通域分别对应的标记值。
在一些实施例中,下一个连通域的根像素对应的线程读取存储显存中的所述更新后的存储数值,并将更新后的存储数值确定为该根像素对应的连通域的标记值。再次对更新后的存储数值进行减一操作,得到再次更新后的存储数值,将再次更新后的存储数值对更新后的存储数值进行替换。重复上述步骤,直至得到全部连通域的标记值。
步骤S405、基于所述各连通域分别对应的标记值,对所述待定位二值图像中除所述连通域外的像素进行置零处理,得到所述连通域标记图。
在本申请实施例中,在得到各连通域分别对应的标记值之后,可以对对待定位二值图像中除连通域外的像素(即背景像素)进行置零处理,得到连通域标记图,如图8所示,图8是本申请实施例提供的连通域标记图二。
本申请实施例通过GPU的并行计算,能够快速确定待定位二值图像中的连通域和连通域数量,并对连通域进行标记,减少了CPU的计算量,提升了产线程序运行的流畅度。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例通过CUDA高效能编程,基于GPU实现了连通域定位算法,并且定位速度相较于CPU上实现的连通域定位算法更快。
图9是本申请实施例提供的连通域定位方法的一个可选的流程示意图四,如图9所示,本申请实施例提供的连通域定位方法还包括步骤S901至步骤S905。
步骤S901、对待定位二值图像的连通域进行标记。
本申请实施例运用GPU版本的连通域标记算法的对二值图像中的连通域进行标记,同一连通域内的所有像素点都被标记相同标签,该标签的大小为该连通域内距离图像坐标原点最近的像素点(即根节点)的位置序号。
该算法的实现过程可以是:从1开始计数,先对像素点在一维图像序列中的位置序号进行初始化,得到二值图像每个像素点的标签。然后再以8邻域连通规则判断查找连通域,并最终把相同连通域中的像素点都用该连通域中的原始最小标签标记,同时原始最小标签标记点对应的像素点记为该连通域的根节点。
在一些实施例中,因为根节点不连续,所以此时标记的连通域的标签不连续,甚至在图像很大的情况下,根节点的数值相差很大。
步骤S902、标记每个连通域的根节点,确定根节点的位置序号。
在一些实施例中,根节点(即根像素)标记可以通过GPU的核函数来实现,算法逻辑如下:线程是CUDA编程的基本执行单位。每个线程都是一个独立的计算单元,可以并行地执行相同的计算任务,线程之间可以通过共享内存和同步机制进行通信和协作。基于每个线程所在的线程块在线程网格中的X和Y维索引、每个线程块中X和Y维上的线程数量和每个线程在其所属线程块中的X和Y维索引来定位每个线程的坐标位置,每个线程对应一个像素,进而定位各连通域每个像素的位置。在确定出各连通域每个像素的位置之后,确定连通域的根节点在展开的一维图像中的像素位置labelTrans。
步骤S903、统计标记的根节点数目。
在一些实施例中,在确定根节点位置后,可以通过atomicAdd函数统计标记的根节点数目,即连通域的数目。其中,对连通域的数量进行统计可以通过核函数的atomicAdd函数来实现,atomicAdd为原子操作,在一个线程内部等效于connectedDomNum=connectedDomNum+1,如果有多个线程同时对地址connectedDomNum进行读写操作,原子操作会保证每次只有一个线程的运算操作在执行,避免读写冲突。atomicAdd(connectedDomNum,1)用于统计图像中连通域的个数。
步骤S904、建立连通域的原始标签与新标签的哈希映射。
这里,连通域的原始标签可以是指连通域根节点的位置序号,由于根节点不连续,因此,本申请建立根节点的位置序号与新标签(即连续序号)之间的哈希映射,使得根节点连续。
在本申请实施例中,哈希映射的逻辑可以是通过原子操作指令atomic,二值化图像中每个非零像素点(即根节点标记像素点)对应的线程会顺序执行对地址connectedDomNum中的值进行减1操作,并把更改前的值赋值给该根节点,重复前述步骤,直至对每个根节点进行赋值。例如,假设二值化图像只有3个连通域(即connectedDomNum=3),对应的3个根节点在图像map中的标记为map[1]=1,map[5]=22,map[12]=31,执行上述哈希操作后,最终的处理结果为map[1]=3,map[5]=2,map[12]=1。因为CUDA编程是多线程并行的,不能保证是哪个根节点对应的线程先执行,因此核函数执行的结果可能为map[1]=1,map[5]=3,map[12]=2,不能保证映射的标签数字落到哪个根节点像素上。
步骤S905、分别提取每个连通域中像素点的X坐标与Y坐标,确定最小X坐标、最大X坐标、最小Y坐标、最大Y坐标,得到每个连通域的最小包围矩形,以实现连通域的定位。
在本申请实施例中,分别提取每个连通域中像素点的X坐标与Y坐标,并排序,确定最小X坐标X_min、最大X坐标X_max、最小Y坐标Y_min、最大Y坐标Y_max,即得到了连通域的最小包围矩形的坐标Rect(X_min,Y_min,X_max,Y_max),基于该矩形框实现了图像中连通域的定位。
在一些实施例中,本申请实施例可以创建显存矩阵coordinate X和coordinateY,coordinate X用来存储连通域前景像素点的𝑋坐标,其矩阵的高为连通域的个数,宽为原图像的宽,coordinate Y用来存储连通域前景像素点的𝑌坐标,其矩阵的高为连通域的个数,宽为原图像的高度。Coordinate X、coordinate Y分别用来存放连通域中像素点的X坐标与Y坐标,并且每个连通域占一行,找出coordinate X、coordinate Y中每行中非0值的最大值与最小值,即确定了每个连通域的最小包围矩形的左上顶点坐标(X_min,Y_min)与右下顶点坐标(X_max,Y_max),基于左上顶点坐标和右下顶点坐标可以确定连通域的定位框。
图10是本申请实施例提供的连通域定位过程示意图,如图10所示,图01为图像采集设备采集的工件表面图像,图02为对表面图像进行二值化处理后的二值化图像,图03是进行连通域定位后的,具有定位框的定位图。
本申请实施例通过GPU并行处理连通域定位任务,在处理大量图像数据时,不仅减少了CPU的计算量,相比于CPU,还能够更快的对连通域进行定位,提高了图像处理速度,也减少了产线程序卡顿的问题。
基于上述实施例,本申请实施例提供一种图形处理器,图11是本申请实施例提供的一种图形处理器的示意图,如图11所示,图形处理器110包括获取模块111、定位模块112、生成模块113、数据处理模块114和确定模块115。
其中,获取模块111,用于获取包含至少一个连通域的连通域标记图;定位模块112,用于对所述连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合;所述像素坐标集合的数量与所述连通域的数量相同;生成模块113,用于基于所述至少一个像素坐标集合中各像素坐标集合中的像素坐标,生成表征各连通域在所述连通域标记图上位置的显存矩阵;数据处理模块114,用于对所述显存矩阵进行数据处理,得到各连通域对应的定位坐标;确定模块115,用于基于所述定位坐标,确定各连通域的定位框,以对所述连通域标记图上的至少一个连通域进行定位。
在一些实施例中,生成模块113还用于基于所述至少一个像素坐标集合,确定各连通域中的像素在图像坐标系第一方向上不重复的第一坐标数值和第二方向上不重复的第二坐标数值;所述第一方向与所述第二方向垂直;基于所述第一坐标数值和所述第二坐标数值,生成表征各连通域在第一方向上位置的第一显存矩阵和表征各连通域在第二方向上位置的第二显存矩阵;所述显存矩阵包括所述第一显存矩阵和所述第二显存矩阵。
在一些实施例中,数据处理模块114还用于遍历所述第一显存矩阵,确定各连通域在第一方向上的最大坐标数值和最小坐标数值,以及遍历所述第二显存矩阵,确定各连通域在第二方向上的最大坐标数值和最小坐标数值;将所述各连通域在第一方向上的最大坐标数值和第二方向上的最大坐标数值确定为第一定位坐标,将所述各连通域在第一方向上的最小坐标数值和第二方向上的最小坐标数值确定为第二定位坐标;所述定位坐标包括所述第一定位坐标和第二定位坐标。
在一些实施例中,生成模块113还用于设置元素均为预设数值的第一初始矩阵和第二初始矩阵;其中,所述第一初始矩阵和所述第二初始矩阵的行数等于所述连通域标记图中连通域的数量,所述第一初始矩阵的列数与所述连通域标记图中第一方向的像素数量相同,所述第二初始矩阵的列数与所述连通域标记图中第二方向的像素数量相同;从所述第一初始矩阵的第一行起,依次对一个连通域在第一方向上的第一坐标数值和所述第一初始矩阵中的一行元素进行替换,最终得到第一显存矩阵;从所述第二初始矩阵的第一行起,依次对一个连通域在第二方向上的第二坐标数值和所述第二初始矩阵中的一行元素进行替换,最终得到第二显存矩阵。
在一些实施例中,生成模块113还用于将各连通域对应的所述第一定位坐标和所述第二定位坐标,确定为各连通域对应的定位框的对角点;基于各连通域的对角点,得到各连通域的定位框。
在一些实施例中,所述图形处理器包括预先分配的多个线程;定位模块112,还用于基于所述多个线程,对各连通域中像素的位置进行读取,分别确定各连通域中的像素在所述图像坐标系上第一方向的第一坐标和第二方向的第二坐标;基于所述第一坐标和所述第二坐标,生成各连通域在图像坐标系上的像素坐标集合。
在一些实施例中,所述图形处理器还包括:第一获取模块,用于获取待定位二值图像;排序模块,用于从所述待定位二值图像的第一个像素起,对所述待定位二值图像中的全部像素进行排序处理,确定所述全部像素分别对应的像素数值;连通域标记模块,用于对所述待定位二值图像进行连通域标记,确定至少一个连通域和所述至少一个连通域的连通域数量,并基于所述像素数值分别确定各连通域对应的根像素;标记模块,用于基于所述各连通域对应的根像素和所述连通域数量,对各连通域进行标记处理,得到各连通域分别对应的标记值;置零模块,用于基于所述各连通域分别对应的标记值,对所述待定位二值图像中除所述连通域外的像素进行置零处理,得到所述连通域标记图。
在一些实施例中,连通域标记模块还用于从所述待定位二值图像的第一个像素起,将相邻且像素灰度值等于预设灰度值的像素确定为一个连通域,得到所述至少一个连通域;基于所述至少一个连通域,对连通域的数量进行统计,得到所述至少一个连通域的连通域数量;基于所述像素数值,从所述待定位二值图像的第一个连通域起,将各连通域对应的全部像素数值中数值最小的像素,确定为所述连通域的根像素,直至得到各连通域对应的根像素。
在一些实施例中,所述图形处理器至少包括预先设置的存储显存和多个线程;所述存储显存用于存储所述连通域数量;标记模块,还用于从所述至少一个连通域的任一根像素起,所述任一根像素对应的线程读取所述存储显存中的所述连通域数量,将所述连通域数量作为所述任一连通域的标记值;对所述连通域数量执行减法操作,得到更新后的存储数值,并将所述存储显存中存储的所述连通域数量替换为所述更新后的存储数值;其中,所述减法操作为对所述连通域数量减去预设数值;所述任一根像素的下一根像素对应的线程读取所述存储显存中的所述更新后的存储数值,并将所述更新后的存储数值确定所述下一根像素对应的连通域的标记值,对所述更新后的存储数值进行减法操作,得到再次更新后的存储数值,将所述再次更新后的存储数值对所述更新后的存储数值进行替换,直至得到各连通域分别对应的标记值。
需要说明的是,本申请实施例中图形处理器的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本图形处理器实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
图12是本申请实施例提供的连通域定位设备的结构示意图,图12所示的连通域定位设备120包括:至少一个图形处理器210、存储器250、至少一个网络接口220和用户接口230。连通域定位设备中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统240。
图形处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用图形处理器、数字信号图形处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用图形处理器可以是微图形处理器或者任何常规的图形处理器等。
用户接口230包括使得能够呈现媒体内容的一个或多个输出装置231,以及一个或多个输入装置232。
存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离图形处理器210的一个或多个存储设备。存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器250旨在包括任意适合类型的存储器。在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
输入处理模块253,用于对一个或多个来自一个或多个输入装置232之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
本申请实施例提供的图形处理器可以是采用硬件译码图形处理器形式的图形处理器,其被编程以执行本申请实施例提供的连通域定位方法,例如,硬件译码图形处理器形式的图形处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括可执行指令,该可执行指令是一种计算机指令;该可执行指令存储在计算机可读存储介质中。当控制器从计算机可读存储介质读取该可执行指令,控制器执行该可执行指令时,使得该图形处理器执行本申请实施例上述的连通域定位方法。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被控制器执行时,将引起控制器执行本申请实施例提供的连通域定位方法。
在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(FRAM,Ferromagnetic Random Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read Only Memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD-ROM,Compact Disk-Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (12)
1.一种连通域定位方法,应用于图形处理器;其特征在于,所述连通域定位方法包括:
获取包含至少一个连通域的连通域标记图;
对所述连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合;所述像素坐标集合的数量与所述连通域的数量相同;
基于所述至少一个像素坐标集合中各像素坐标集合中的像素坐标,生成表征各连通域在所述连通域标记图上位置的显存矩阵;其中,所述像素坐标至少包括:各连通域中的像素在所述图像坐标系第一方向上不重复的第一坐标数值和第二方向上不重复的第二坐标数值;所述第一方向与所述第二方向垂直;
对所述显存矩阵进行数据处理,得到各连通域对应的定位坐标;
基于所述定位坐标,确定各连通域的定位框,以对所述连通域标记图上的至少一个连通域进行定位。
2.根据权利要求1所述的连通域定位方法,其特征在于,所述基于所述至少一个像素坐标集合中各像素坐标集合中的像素坐标,生成表征各连通域在所述连通域标记图上位置的显存矩阵,包括:
基于所述第一坐标数值和所述第二坐标数值,生成表征各连通域在第一方向上位置的第一显存矩阵和表征各连通域在第二方向上位置的第二显存矩阵;所述显存矩阵包括所述第一显存矩阵和所述第二显存矩阵。
3.根据权利要求2所述的连通域定位方法,其特征在于,所述对所述显存矩阵进行数据处理,得到各连通域对应的定位坐标,包括:
遍历所述第一显存矩阵,确定各连通域在第一方向上的最大坐标数值和最小坐标数值,以及遍历所述第二显存矩阵,确定各连通域在第二方向上的最大坐标数值和最小坐标数值;
将所述各连通域在第一方向上的最大坐标数值和第二方向上的最大坐标数值确定为第一定位坐标,将所述各连通域在第一方向上的最小坐标数值和第二方向上的最小坐标数值确定为第二定位坐标;所述定位坐标包括所述第一定位坐标和第二定位坐标。
4.根据权利要求2所述的连通域定位方法,其特征在于,所述基于所述第一坐标数值和所述第二坐标数值,生成表征各连通域在第一方向上位置的第一显存矩阵和表征各连通域在第二方向上位置的第二显存矩阵,包括:
设置元素均为预设数值的第一初始矩阵和第二初始矩阵;其中,所述第一初始矩阵和所述第二初始矩阵的行数等于所述连通域标记图中连通域的数量,所述第一初始矩阵的列数与所述连通域标记图中第一方向的像素数量相同,所述第二初始矩阵的列数与所述连通域标记图中第二方向的像素数量相同;
从所述第一初始矩阵的第一行起,依次对一个连通域在第一方向上的第一坐标数值和所述第一初始矩阵中的一行元素进行替换,最终得到第一显存矩阵;
从所述第二初始矩阵的第一行起,依次对一个连通域在第二方向上的第二坐标数值和所述第二初始矩阵中的一行元素进行替换,最终得到第二显存矩阵。
5.根据权利要求3所述的连通域定位方法,其特征在于,所述基于所述定位坐标,确定各连通域的定位框,包括:
将各连通域对应的所述第一定位坐标和所述第二定位坐标,确定为各连通域对应的定位框的对角点;
基于各连通域的对角点,得到各连通域的定位框。
6.根据权利要求1至5任一项所述的连通域定位方法,其特征在于,所述图形处理器包括预先分配的多个线程;
所述对所述连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合,包括:
基于所述多个线程,对各连通域中像素的位置进行读取,分别确定各连通域中的像素在所述图像坐标系上第一方向的第一坐标和第二方向的第二坐标;
基于所述第一坐标和所述第二坐标,生成各连通域在图像坐标系上的像素坐标集合。
7.根据权利要求1至5任一项所述的连通域定位方法,其特征在于,所述连通域定位方法还包括:
获取待定位二值图像;
从所述待定位二值图像的第一个像素起,对所述待定位二值图像中的全部像素进行排序处理,确定所述全部像素分别对应的像素数值;
对所述待定位二值图像进行连通域标记,确定至少一个连通域和所述至少一个连通域的连通域数量,并基于所述像素数值分别确定各连通域对应的根像素;
基于所述各连通域对应的根像素和所述连通域数量,对各连通域进行标记处理,得到各连通域分别对应的标记值;
基于所述各连通域分别对应的标记值,对所述待定位二值图像中除所述连通域外的像素进行置零处理,得到所述连通域标记图。
8.根据权利要求7所述的连通域定位方法,其特征在于,所述对所述待定位二值图像进行连通域标记,确定至少一个连通域和所述至少一个连通域的连通域数量,并基于所述像素数值分别确定各连通域对应的根像素,包括:
从所述待定位二值图像的第一个像素起,将相邻且像素灰度值等于预设灰度值的像素确定为一个连通域,得到所述至少一个连通域;
基于所述至少一个连通域,对连通域的数量进行统计,得到所述至少一个连通域的连通域数量;
基于所述像素数值,从所述待定位二值图像的第一个连通域起,将各连通域对应的全部像素数值中数值最小的像素,确定为所述连通域的根像素,直至得到各连通域对应的根像素。
9.根据权利要求8所述的连通域定位方法,其特征在于,所述图形处理器至少包括预先设置的存储显存和多个线程;所述存储显存用于存储所述连通域数量;
所述基于所述各连通域对应的根像素和所述连通域数量,对各连通域进行标记处理,得到各连通域分别对应的标记值,包括:
从所述至少一个连通域的任一根像素起,所述任一根像素对应的线程读取所述存储显存中的所述连通域数量,将所述连通域数量作为所述任一连通域的标记值;
对所述连通域数量执行减法操作,得到更新后的存储数值,并将所述存储显存中存储的所述连通域数量替换为所述更新后的存储数值;其中,所述减法操作为对所述连通域数量减去预设数值;
所述任一根像素的下一根像素对应的线程读取所述存储显存中的所述更新后的存储数值,并将所述更新后的存储数值确定所述下一根像素对应的连通域的标记值,对所述更新后的存储数值进行减法操作,得到再次更新后的存储数值,将所述再次更新后的存储数值对所述更新后的存储数值进行替换,直至得到各连通域分别对应的标记值。
10.一种图形处理器,其特征在于,所述图形处理器包括:
获取模块,用于获取包含至少一个连通域的连通域标记图;
定位模块,用于对所述连通域标记图中各连通域中的像素进行定位,确定各连通域在图像坐标系上的至少一个像素坐标集合;所述像素坐标集合的数量与所述连通域的数量相同;
生成模块,用于基于所述至少一个像素坐标集合中各像素坐标集合中的像素坐标,生成表征各连通域在所述连通域标记图上位置的显存矩阵;其中,所述像素坐标至少包括:各连通域中的像素在所述图像坐标系第一方向上不重复的第一坐标数值和第二方向上不重复的第二坐标数值;所述第一方向与所述第二方向垂直;
数据处理模块,用于对所述显存矩阵进行数据处理,得到各连通域对应的定位坐标;
确定模块,用于基于所述定位坐标,确定各连通域的定位框,以对所述连通域标记图上的至少一个连通域进行定位。
11.一种连通域定位设备,其特征在于,包括存储器和图形处理器,所述存储器存储有可在图形处理器上运行的计算机程序,所述图形处理器执行所述程序时实现权利要求1至9任一项所述的连通域定位方法。
12.一种生产线,其特征在于,所述生产线至少包括:
上位机,用于发出对产线上的工件进行表面检测的检测请求;
图像采集设备,用于响应于所述检测请求,采集产线上工件的表面图像;
连通域定位设备,用于获取所述表面图像,形成连通域标记图,并基于所述连通域标记图实现权利要求1至9任一项所述的连通域定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311525668.3A CN117237442B (zh) | 2023-11-16 | 2023-11-16 | 连通域定位方法、图形处理器、设备和生产线 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311525668.3A CN117237442B (zh) | 2023-11-16 | 2023-11-16 | 连通域定位方法、图形处理器、设备和生产线 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117237442A CN117237442A (zh) | 2023-12-15 |
CN117237442B true CN117237442B (zh) | 2024-04-09 |
Family
ID=89097047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311525668.3A Active CN117237442B (zh) | 2023-11-16 | 2023-11-16 | 连通域定位方法、图形处理器、设备和生产线 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117237442B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022007431A1 (zh) * | 2020-07-07 | 2022-01-13 | 广东奥普特科技股份有限公司 | 一种Micro QR二维码的定位方法 |
WO2022148293A1 (zh) * | 2021-01-06 | 2022-07-14 | 维沃移动通信有限公司 | 信息提示方法及装置 |
CN115440159A (zh) * | 2022-08-22 | 2022-12-06 | 杭州海康威视数字技术股份有限公司 | 图像校正方法、led显示屏图像的校正方法及装置 |
CN115861162A (zh) * | 2022-08-26 | 2023-03-28 | 宁德时代新能源科技股份有限公司 | 定位目标区域的方法、装置及计算机可读存储介质 |
CN116420159A (zh) * | 2021-11-05 | 2023-07-11 | 宁德时代新能源科技股份有限公司 | 缺陷检测方法、装置和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITUA20161348A1 (it) * | 2016-03-04 | 2017-09-04 | System Spa | Metodo/dispositivo di rotazione di un’immagine e metodo/sistema di stampa comprendente detto metodo/dispositivo di rotazione |
-
2023
- 2023-11-16 CN CN202311525668.3A patent/CN117237442B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022007431A1 (zh) * | 2020-07-07 | 2022-01-13 | 广东奥普特科技股份有限公司 | 一种Micro QR二维码的定位方法 |
WO2022148293A1 (zh) * | 2021-01-06 | 2022-07-14 | 维沃移动通信有限公司 | 信息提示方法及装置 |
CN116420159A (zh) * | 2021-11-05 | 2023-07-11 | 宁德时代新能源科技股份有限公司 | 缺陷检测方法、装置和系统 |
CN115440159A (zh) * | 2022-08-22 | 2022-12-06 | 杭州海康威视数字技术股份有限公司 | 图像校正方法、led显示屏图像的校正方法及装置 |
CN115861162A (zh) * | 2022-08-26 | 2023-03-28 | 宁德时代新能源科技股份有限公司 | 定位目标区域的方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117237442A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190206071A1 (en) | Method and apparatus for recovering point cloud data | |
CN107544948B (zh) | 一种基于MapReduce的矢量文件转换方法和装置 | |
CN107564077B (zh) | 一种绘制道路网的方法及装置 | |
CN113112509B (zh) | 图像分割模型训练方法、装置、计算机设备和存储介质 | |
CN110782517B (zh) | 点云标注方法、装置、存储介质及电子设备 | |
CN109981311B (zh) | 图布局的实现方法及装置 | |
CN117237442B (zh) | 连通域定位方法、图形处理器、设备和生产线 | |
CN116682130A (zh) | 图签信息的提取方法、装置、设备及可读存储介质 | |
CN112528428B (zh) | 对工程结构的物理参数展示的方法、装置和计算机设备 | |
US20230298374A1 (en) | Method and device for determining picture with texts | |
CN112767239A (zh) | 一种样本自动生成方法、系统、设备和存储介质 | |
CN116486077B (zh) | 遥感影像语义分割模型样本集生成方法和装置 | |
CN114898357B (zh) | 缺陷识别方法、装置、电子设备及计算机可读存储介质 | |
CN113836115B (zh) | 数据获取方法、装置、电子设备及可读存储介质 | |
CN115082788A (zh) | 气压中心识别方法、装置、电子设备及存储介质 | |
Aboulhassan et al. | Comparative Visual Analysis of Structure‐Performance Relations in Complex Bulk‐Heterojunction Morphologies | |
CN114327611A (zh) | 接口描述文档的生成方法、装置、计算机设备及存储介质 | |
JP2023526703A (ja) | 物体に対する衝突検出方法、装置、電子デバイス、記憶媒体およびコンピュータプログラム | |
CN113704380A (zh) | 基于空间格网的分布式叠加分析方法、装置及存储介质 | |
CN117391011B (zh) | 层次版图验证中实现图形布尔处理的方法及装置 | |
CN111870954B (zh) | 一种高度图生成方法、装置、设备及存储介质 | |
CN113343999B (zh) | 基于目标检测的目标边界记录方法、装置和计算设备 | |
CN110869921A (zh) | 地图数据重构方法及其装置、记录介质 | |
US9870227B2 (en) | Performing stencil computations | |
CN111276193B (zh) | 气体水合物51264笼识别方法及系统 |
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 |