CN105894514B - 一种基于gpu并行运算的印刷品缺陷检测方法及系统 - Google Patents
一种基于gpu并行运算的印刷品缺陷检测方法及系统 Download PDFInfo
- Publication number
- CN105894514B CN105894514B CN201610210057.3A CN201610210057A CN105894514B CN 105894514 B CN105894514 B CN 105894514B CN 201610210057 A CN201610210057 A CN 201610210057A CN 105894514 B CN105894514 B CN 105894514B
- Authority
- CN
- China
- Prior art keywords
- image
- binary image
- module
- difference
- region
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
- G06T7/0008—Industrial image inspection checking presence/absence
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/84—Systems specially adapted for particular applications
- G01N21/88—Investigating the presence of flaws or contamination
- G01N21/95—Investigating the presence of flaws or contamination characterised by the material or shape of the object to be examined
- G01N21/956—Inspecting patterns on the surface of objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20228—Disparity calculation for image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
Abstract
本发明公开了一种基于GPU并行运算的印刷品缺陷检测方法及系统,方法包括:采集产品图像;将产品图像与标准图像进行差分;对差分图像进行二值化处理;对二值化图像相邻两行进行与运算,并将运算的结果存储在缓存图像的相同位置;将缓存图像区域内单个像素值为255的像素置0;根据缓存图像中像素值大于设定阈值的位置确定填充范围并进行填充;对填充后的二值化图像进行区域间的合并操作;将合并后的图像沿X轴方向、Y轴方向进行偏移,然后将偏移后的图像与合并后的图像进行差分,得到缺陷在产品图像中的位置。本发明具有适用性广、检测准确和处理速度快的优点,可广泛用于机器视觉和工业检测技术领域。
Description
技术领域
本发明涉及于机器视觉和工业检测技术领域,尤其是一种基于GPU并行运算的印刷品缺陷检测方法及系统。
背景技术
近年来,随着人们生活水平的不断提高,人们对印刷品的质量要求越来越高。传统的人工目检方式由于疲劳、个体差异等原因会造成误检或漏检的情况。而印刷品质量自动检测技术凭借其高速、非接触、稳定等优点,有效地避免了误检或漏检的问题,并提高了检测效率和检测速度,降低了企业的生产成本。
随着印刷品质量检测系统的广泛应用,针对印刷品的缺陷检测,已出现了各种各样的方法。缺陷的形态各种各样,常见的有套色误差、飞墨、文字模糊、漏印、黑点、偏色等,然而目前的这些检测方法都只能在一定程度上识别出缺陷,在实际的工程应用中仍存在着较大的改善空间。随着对印刷品质量的要求越来越高,检测精度不断地提高,所需检测图片的分辨率越来越高,图片也越来越大,现有的基于CPU的印刷品缺陷检测方法在面对如此大规模的数据时,处理速度和检测精度都不能满足要求。
国外对机器视觉在印刷工业的应用研究开展得比较早,因此,机器视觉系统在国外的应用很普遍,相反地,国内对这方面的研究起步较晚,还是处于一个发展阶段。国内能够开发出相关的成熟视觉检测系统的公司不多,比较有代表性的有北京大恒图像公司开发的针对人民币印刷质量的印刷在线质量检测系统和上海利盟德有限公司开发的高速字符/条码在线识别的RAYMONDE系统。此外国内的也对商业票证的缺陷识别算法进行了研究。在国外,检测票据类比较有名的视觉检测系统有法国Axode公司的安全印务质量监测系统,它在日本彩票、韩国彩票、欧元等印刷号码的检测中有广泛的应用,但是由于Axode公司的系统价格昂贵,限制了它在国内的普及。
而在产品包装材料方面的印刷品缺陷检测的视觉检测系统,则以日本FUTEC公司研发的全自动印品检测和监控系统以及以色列AVT公司研发的该类监控设备比较有名。而日本的DAC、TOKIMEC和Keyence公司也有类似的产品。在国内,对印刷品缺陷检测的相关研究也不少,有人提出了一种利用行程长编码对印刷品缺陷进行检测的方法,也有人对整个检测系统的实现进行了研究。但是目前国内对印刷品缺陷检测方法由于在检测速度上达不到要求,大部分相关技术的公司都是以代理外国的产品为主,并没有自主研发的成熟的视觉检测系统。而国外的相关系统大多价格昂贵,严重制约了其在国内的推广和应用。
GPU在2007年6月英伟达公司推出了CUDA之后得到了迅速的发展。CUDA是C语言的一种扩展,采用了类C语言进行开发;同时,CUDA采用了统一处理架构,降低了编程的难度。而且相比AMD公司的GPU,NVIDIA公司的GPU加入了片内共享存储器,提高了效率。这些改进使得CUDA架构非常适合进行GPU通用计算。CUDA平台采用的是异构的并行计算平台,即CPU+GPU的计算平台,CUDA认为CPU可以控制和指挥GPU进行工作,GPU是CPU的协处理器。基于CPU和GPU的设计特点,这样的异构计算平台可以让CPU去处理逻辑复杂的事务和一些简单的计算任务,而大规模的数据运算则可以交给GPU来进行,这样子就大大提高了处理的效率。
目前,GPU通用计算已经在科学计算、石油勘测、金融、图像处理、视频编码等领域有了广泛的应用,但在印刷品缺陷检测方面,还没有相关的基于GPU的印刷品缺陷检测方法出现。
发明内容
为解决上述技术问题,本发明的目的在于:提供一种适用性广、检测准确和处理速度快的,基于GPU并行运算的印刷品缺陷检测方法。
本发明的另一目的在于:提供一种适用性广、检测准确和处理速度快的,基于GPU并行运算的印刷品缺陷检测系统。
本发明所采取的技术方案是:
一种基于GPU并行运算的印刷品缺陷检测方法,包括以下步骤:
S1、采集产品图像;
S2、将采集的产品图像与标准图像进行差分,得到差分图像;
S3、对差分图像进行二值化处理,得到二值化图像,并根据二值化图像的尺寸,确定CUDA编程模型中线程网格和网格内线程的数量,以对二值化图像进行区域划分;
S4、对二值化图像每个区域内的相邻两行进行与运算,并将运算的结果存储在缓存图像的相同位置,所述缓存图像的存储空间与二值化图像的存储空间大小相同;
S5、将缓存图像区域内单个像素值为255的像素置0;
S6、根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定填充范围并进行填充;
S7、对填充后的二值化图像进行区域间的合并操作,得到包围着缺陷的最小矩形;
S8、将合并后的图像沿X轴方向、Y轴方向进行偏移,然后将偏移后的图像与合并后的图像进行差分,得到缺陷在产品图像中的位置。
进一步,所述步骤S3包括:
S31、将差分图像中灰度大于或等于设定阈值的像素置为255,将灰度小于设定阈值的像素置为0,从而得到二值化图像;
S32、分别设置好CUDA编程模型中每个线程块内X轴方向和Y轴方向的线程数量a和b,然后根据二值化图像的分辨率分别计算出X轴方向和Y轴方向上线程块的数量c和d,从而将二值化图像划分为c×d个区域。
进一步,所述步骤S4具体为:
先将二值化图像区域内的奇数行与它的上一行进行与运算,并将运算的结果存储在缓存图像的相同位置;再将二值化图像区域内的偶数行与它的上一行进行与运算,并将运算的结果存储在缓存图像的相同位置。
进一步,所述步骤S5具体为:
若缓存图像中第i行第j列的像素值在设定阈值范围之内,而且第i行第j-1列的像素值以及第i行第j+1列的像素值均不在设定阈值范围之内,则将缓存图像中第i行第j列的像素值由255置为0。
进一步,所述步骤S6包括:
S61、根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定二值化图像两行中连通域的起始位置和结束位置;
S62、根据连通域的起始位置和结束位置确定填充范围并进行填充;
S63、判断填充后的二值化图像每个区域执行的线程数量是否达到CUDA编程模型的线程数量要求,若是,则执行步骤S7,反之,则返回步骤S4。
进一步,所述步骤S7具体为:
判断填充后的二值化图像中待合并的两个区域的边界之间是否有缺陷连接,若是,则返回步骤S6,确定填充的范围并进行填充;反之,则直接将待合并的两个区域进行合并。
进一步,所述步骤S8包括:
S81、将合并后的图像沿X轴方向、Y轴方向进行偏移,得到偏移后的图像;
S82、将偏移后的图像与合并后的图像进行差分,得到包围着缺陷的最小矩形的长、宽和缺陷在产品图像中的位置。
本发明所采取的另一技术方案是:
一种基于GPU并行运算的印刷品缺陷检测系统,包括以下模块:
采集模块,用于采集产品图像;
差分模块,用于将采集的产品图像与标准图像进行差分,得到差分图像;
二值化与区域划分模块,用于对差分图像进行二值化处理,得到二值化图像,并根据二值化图像的尺寸,用于确定CUDA编程模型中线程网格和网格内线程的数量,以对二值化图像进行区域划分;
与运算模块,用于对二值化图像每个区域内的相邻两行进行与运算,并将运算的结果存储在缓存图像的相同位置,所述缓存图像的存储空间与二值化图像的存储空间大小相同;
消除模块,用于将缓存图像区域内单个像素值为255的像素置0;
填充模块,用于根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定填充范围并进行填充;
合并模块,用于对填充后的二值化图像进行区域间的合并操作,得到包围着缺陷的最小矩形;
偏移差分模块,用于将合并后的图像沿X轴方向、Y轴方向进行偏移,然后将偏移后的图像与合并后的图像进行差分,得到缺陷在产品图像中的位置;
所述采集模块的输出端依次通过差分模块、二值化与区域划分模块、与运算模块、消除模块、填充模块和合并模块进而与偏移差分模块的输入端连接。
进一步,所述二值化与区域划分模块包括:
二值化单元,用于将差分图像中灰度大于或等于设定阈值的像素置为255,将灰度小于设定阈值的像素置为0,从而得到二值化图像;
区域划分单元,用于分别设置好CUDA编程模型中每个线程块内X轴方向和Y轴方向的线程数量a和b,然后根据二值化图像的分辨率分别计算出X轴方向和Y轴方向上线程块的数量c和d,从而将二值化图像划分为c×d个区域;
所述二值化单元的输入端与差分模块的输出端连接,所述二值化单元的输出端与区域划分单元的输入端连接,所述区域划分单元的输出端和与运算模块的输入端连接。
进一步,所述填充模块包括:
搜索单元,用于根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定二值化图像两行中连通域的起始位置和结束位置;
填充单元,用于根据连通域的起始位置和结束位置确定填充范围并进行填充;
判断单元,用于判断填充后的二值化图像每个区域执行的线程数量是否达到CUDA编程模型的线程数量要求,若是,则转至合并模块,反之,则返回与运算模块;
所述搜索单元的输入端与消除模块的输出端连接,所述搜索单元的输出端通过填充单元进而与判断单元的输入端连接,所述判断单元的输出端分别与合并模块的输入端以及与运算模块的输入端连接。
本发明的方法的有益效果是:综合应用了差分、二值化处理、与运算、干扰像素置0、填充和合并操作来找到包围着缺陷的最小矩形,进而通过偏移和差分得到缺陷在产品图像中的位置,能适应多种形状的缺陷检测要求,大大提高了缺陷检测的准确性和增加了所能检测的缺陷种类,适用性更广且检测更准确;使用了基于GPU并行运算的缺陷检测方法来取代基于CPU的缺陷检测方法,在面对高分辨率的图像时,仍然能保持较高的运算速度;且专门针对CUDA的并行架构,对缺陷检测算法进行了优化,进一步提高了算法的运算效率。
本发明的系统的有益效果是:综合应用了差分、二值化处理、与运算、干扰像素置0、填充和合并操作来找到包围着缺陷的最小矩形,进而通过偏移和差分得到缺陷在产品图像中的位置,能适应多种形状的缺陷检测要求,大大提高了缺陷检测的准确性和增加了所能检测的缺陷种类,适用性更广且检测更准确;使用了基于GPU并行运算的缺陷检测方法来取代基于CPU的缺陷检测方法,在面对高分辨率的图像时,仍然能保持较高的运算速度;且专门针对CUDA的并行架构,对缺陷检测算法进行了优化,进一步提高了算法的运算效率。
附图说明
图1为本发明一种基于GPU并行运算的印刷品缺陷检测方法的整体流程图;
图2为本发明一种基于GPU并行运算的印刷品缺陷检测系统的结构框图;
图3为本发明实施例一在印刷品质量检测系统中使用的基于GPU并行运算的印刷品缺陷检测方法的流程图;
图4为相邻两行进行与运算以及填充的过程示意图;
图5为区域合并时边界之间有缺陷连接的结构示意图;
图6为区域合并时边界之间没有缺陷连接的结构示意图。
具体实施方式
参照图1,一种基于GPU并行运算的印刷品缺陷检测方法,包括以下步骤:
S1、采集产品图像;
S2、将采集的产品图像与标准图像进行差分,得到差分图像;
S3、对差分图像进行二值化处理,得到二值化图像,并根据二值化图像的尺寸,确定CUDA编程模型中线程网格和网格内线程的数量,以对二值化图像进行区域划分;
S4、对二值化图像每个区域内的相邻两行进行与运算,并将运算的结果存储在缓存图像的相同位置,所述缓存图像的存储空间与二值化图像的存储空间大小相同;
S5、将缓存图像区域内单个像素值为255的像素置0;
S6、根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定填充范围并进行填充;
S7、对填充后的二值化图像进行区域间的合并操作,得到包围着缺陷的最小矩形;
S8、将合并后的图像沿X轴方向、Y轴方向进行偏移,然后将偏移后的图像与合并后的图像进行差分,得到缺陷在产品图像中的位置。
进一步作为优选的实施方式,所述步骤S3包括:
S31、将差分图像中灰度大于或等于设定阈值的像素置为255,将灰度小于设定阈值的像素置为0,从而得到二值化图像;
S32、分别设置好CUDA编程模型中每个线程块内X轴方向和Y轴方向的线程数量a和b,然后根据二值化图像的分辨率分别计算出X轴方向和Y轴方向上线程块的数量c和d,从而将二值化图像划分为c×d个区域。
进一步作为优选的实施方式,所述步骤S4具体为:
先将二值化图像区域内的奇数行与它的上一行进行与运算,并将运算的结果存储在缓存图像的相同位置;再将二值化图像区域内的偶数行与它的上一行进行与运算,并将运算的结果存储在缓存图像的相同位置。
进一步作为优选的实施方式,所述步骤S5具体为:
若缓存图像中第i行第j列的像素值在设定阈值范围之内,而且第i行第j-1列的像素值以及第i行第j+1列的像素值均不在设定阈值范围之内,则将缓存图像中第i行第j列的像素值由255置为0。
进一步作为优选的实施方式,所述步骤S6包括:
S61、根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定二值化图像两行中连通域的起始位置和结束位置;
S62、根据连通域的起始位置和结束位置确定填充范围并进行填充;
S63、判断填充后的二值化图像每个区域执行的线程数量是否达到CUDA编程模型的线程数量要求,若是,则执行步骤S7,反之,则返回步骤S4。
进一步作为优选的实施方式,所述步骤S7具体为:
判断填充后的二值化图像中待合并的两个区域的边界之间是否有缺陷连接,若是,则返回步骤S6,确定填充的范围并进行填充;反之,则直接将待合并的两个区域进行合并。
进一步作为优选的实施方式,所述步骤S8包括:
S81、将合并后的图像沿X轴方向、Y轴方向进行偏移,得到偏移后的图像;
S82、将偏移后的图像与合并后的图像进行差分,得到包围着缺陷的最小矩形的长、宽和缺陷在产品图像中的位置。
参照图2,一种基于GPU并行运算的印刷品缺陷检测系统,包括以下模块:
采集模块,用于采集产品图像;
差分模块,用于将采集的产品图像与标准图像进行差分,得到差分图像;
二值化与区域划分模块,用于对差分图像进行二值化处理,得到二值化图像,并根据二值化图像的尺寸,用于确定CUDA编程模型中线程网格和网格内线程的数量,以对二值化图像进行区域划分;
与运算模块,用于对二值化图像每个区域内的相邻两行进行与运算,并将运算的结果存储在缓存图像的相同位置,所述缓存图像的存储空间与二值化图像的存储空间大小相同;
消除模块,用于将缓存图像区域内单个像素值为255的像素置0;
填充模块,用于根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定填充范围并进行填充;
合并模块,用于对填充后的二值化图像进行区域间的合并操作,得到包围着缺陷的最小矩形;
偏移差分模块,用于将合并后的图像沿X轴方向、Y轴方向进行偏移,然后将偏移后的图像与合并后的图像进行差分,得到缺陷在产品图像中的位置;
所述采集模块的输出端依次通过差分模块、二值化与区域划分模块、与运算模块、消除模块、填充模块和合并模块进而与偏移差分模块的输入端连接。
进一步作为优选的实施方式,所述二值化与区域划分模块包括:
二值化单元,用于将差分图像中灰度大于或等于设定阈值的像素置为255,将灰度小于设定阈值的像素置为0,从而得到二值化图像;
区域划分单元,用于分别设置好CUDA编程模型中每个线程块内X轴方向和Y轴方向的线程数量a和b,然后根据二值化图像的分辨率分别计算出X轴方向和Y轴方向上线程块的数量c和d,从而将二值化图像划分为c×d个区域;
所述二值化单元的输入端与差分模块的输出端连接,所述二值化单元的输出端与区域划分单元的输入端连接,所述区域划分单元的输出端和与运算模块的输入端连接。
进一步作为优选的实施方式,所述填充模块包括:
搜索单元,用于根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定二值化图像两行中连通域的起始位置和结束位置;
填充单元,用于根据连通域的起始位置和结束位置确定填充范围并进行填充;
判断单元,用于判断填充后的二值化图像每个区域执行的线程数量是否达到CUDA编程模型的线程数量要求,若是,则转至合并模块,反之,则返回与运算模块;
所述搜索单元的输入端与消除模块的输出端连接,所述搜索单元的输出端通过填充单元进而与判断单元的输入端连接,所述判断单元的输出端分别与合并模块的输入端以及与运算模块的输入端连接。
下面结合说明书附图和具体实施例对本发明作进一步详细说明。
实施例一
参照图3-6,本发明的第一实施例:
针对现有缺陷检测方法适用性不广且无法满足检测速度和检测精度要求的问题,本发明提出了一种在印刷品质量检测系统中使用的基于GPU并行运算的印刷品缺陷检测方法。如图3所示,该检测方法包括以下步骤:
(一)采集产品图像。
一般来说,对于窄面的印刷品,采用一个摄像机采集一幅对象即可。
(二)将采集的产品图像与标准图像作差分。
作差分具体来说,就是将采集的产品图像减去标准图像(二者除了缺陷外的其他位置的像素值是一样的,减去之后就得到了只含有缺陷的图像了)。
(三)对图像进行二值化处理。
对图像进行二值化处理具体来说,就是将大于或等于设定阈值的像素值置255,小于设定阈值的像素值置0.
(四)基于图像尺寸,确定线程块和块内线程的数量。
该检测方法是基于GPU并行运算实现的,使用的是CUDA平台来进行编程。而GPU并行运算是通过线程来实现的,GPU线程是以网格的方式组织的,而每个网格中又包含若干个线程块,线程块中又包含了若干个线程,每个线程对应处理图像的每个像素。由于图像分辨率和程序效率的问题,不同图像使用的线程块数量和每个线程块内的线程数量会有所不同。本实施例确定线程块和线程块内线程的数量的方法是:预先设置好每个线程块内X轴方向、Y轴方向的线程数量a、b,再根据图像的分辨率大小计算得出X轴、Y轴方向上线程块数量c、d,相当于将图像分了“c×d”个区域。
(五)每个区域内的相邻两行做与运算,将结果记录在新开辟的与图像大小一样的储存空间的相同位置。
为了提高并行算法的效率,在对相邻两行做与运算的时候,本实施例采取了偶数行和奇数行交替做运算的方法,即先对区域内的奇数行与它的上一行做与运算,然后把结果记录在新开辟的与图像储存空间大小一样的缓存图像的相同位置,再对区域内的偶数行与它的上一行进行与奇数行相同的操作。
如图4所示,其中带斜线的格代表了像素值为255的像素,不带斜线的格代表了像素值为0的像素,具体操作时,对相邻的n和n+1这两行进行与运算,同时,开辟一个与二值化图像大小一样的缓存空间,然后把与运算结果记录到缓存空间的n+1行中。
(六)将区域内单个像素值为255的像素在缓存图像置0。
如图4所示,在做了与运算之后,若在缓存图像中存在单个像素值在设定阈值范围之内的像素,会对下一步确定填充范围的步骤造成影响,所以要将单个像素值在设定阈值范围之内的像素消除,具体做法为:若图像中第i行第j列的像素值在设定阈值范围之内,而且第i行第j-1列的像素值和第i行第j+1列的像素值均不在阈值范围之内的时候,将该像素由255置0,以消除该像素的影响。
(七)确定填充范围并进行填充。
如图4所示,本实施例确定填充范围的方法为:若缓存空间相邻两行某位置的像素值大于预定阈值,则从该位置开始向前和向后搜索,一直到某位置的像素值小于预定阈值,记下两行当前的起始位置和结束位置为i_start和i_end,i_start1和i_end1;然后,通过比较i_start和i_end,i_start1和i_end1的大小,来确定填充的范围。
(八)重复步骤(五)、(六)、(七),直到达到循环次数。本实施例的循环次数为区域在Y轴方向的线程数量b。
由于是并行运算,所以步骤(五)、(六)、(七)都是在同一时间对图像的各个区域进行操作的,而区域内缺陷的尺寸是未知的,区域内的每相邻两行都要比较,故循环次数就是每个区域在Y轴方向的线程数量b。
(九)进行区域间的合并操作。
图5和图6分别是区域合并时,边界之间有缺陷连接和没有缺陷连接的示意图。划分区域的时候并不知道缺陷的具体位置,难免会出现同一个缺陷分在两个区域内的情况,所以在进行区域合并的时候,先要判断区域的边界之间是否有缺陷连接,如图5所示,标号1和2的位置就是出现了一个缺陷分在两个区域内的情况,此时就要对两个区域内的边界执行步骤(五)、(六)、(七)的操作。而图6中标号3和4的位置就没有出现上述的情况,直接进行合并即可。
区域合并之后,得到的合并后的图像就是本发明需要寻找的包围着缺陷的最小矩形。
(十)将合并后的图像向X、Y方向偏移,将偏移后的图像与合并后的图像做差分,得到图像在缺陷中的位置。
将合并后的图像向X轴、Y轴方向偏移,再把偏移后的图像与合并后的图像做差分,就可以得到包围着缺陷的最小矩形的长、宽以及缺陷在产品图像中的位置。
与现有技术相比,本发明具有以下优点:
(1)增加了检测的准确性和检测缺陷的种类。本发明通过找到包围着缺陷的最小矩形,进而得到缺陷在产品图像中的位置,可以适应多种形状的缺陷检测,尤其适用于对不规则形状的缺陷进行检测,大大提高了缺陷检测的准确性和增加了可以检测的缺陷种类。
(2)高速性。本发明使用了基于GPU并行的缺陷检测方法,在面对高分辨率的图像时,仍然可以保持较高的运算速度;而且在算法结构上,专门针对CUDA的并行架构,对算法进行了优化,进一步提高了算法的运算效率,检测速度可以达到300m/min以上。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (9)
1.一种基于GPU并行运算的印刷品缺陷检测方法,其特征在于:包括以下步骤:
S1、采集产品图像;
S2、将采集的产品图像与标准图像进行差分,得到差分图像;
S3、对差分图像进行二值化处理,得到二值化图像,并根据二值化图像的尺寸,确定CUDA编程模型中线程网格和网格内线程的数量,以对二值化图像进行区域划分;
S4、对二值化图像每个区域内的相邻两行进行与运算,并将运算的结果存储在缓存图像的相同位置,所述缓存图像的存储空间与二值化图像的存储空间大小相同;
S5、将缓存图像区域内单个像素值为255的像素置0;
S6、根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定填充范围并进行填充;
S7、对填充后的二值化图像进行区域间的合并操作,得到包围着缺陷的最小矩形;
S8、将合并后的图像沿X轴方向、Y轴方向进行偏移,然后将偏移后的图像与合并后的图像进行差分,得到缺陷在产品图像中的位置;
所述步骤S4具体为:
先将二值化图像区域内的奇数行与它的上一行进行与运算,并将运算的结果存储在缓存图像的相同位置;再将二值化图像区域内的偶数行与它的上一行进行与运算,并将运算的结果存储在缓存图像的相同位置。
2.根据权利要求1所述的一种基于GPU并行运算的印刷品缺陷检测方法,其特征在于:所述步骤S3包括:
S31、将差分图像中灰度大于或等于设定阈值的像素置为255,将灰度小于设定阈值的像素置为0,从而得到二值化图像;
S32、分别设置好CUDA编程模型中每个线程块内X轴方向和Y轴方向的线程数量a和b,然后根据二值化图像的分辨率分别计算出X轴方向和Y轴方向上线程块的数量c和d,从而将二值化图像划分为c×d个区域。
3.根据权利要求1所述的一种基于GPU并行运算的印刷品缺陷检测方法,其特征在于:所述步骤S5具体为:
若缓存图像中第i行第j列的像素值在设定阈值范围之内,而且第i行第j-1列的像素值以及第i行第j+1列的像素值均不在设定阈值范围之内,则将缓存图像中第i行第j列的像素值由255置为0。
4.根据权利要求1所述的一种基于GPU并行运算的印刷品缺陷检测方法,其特征在于:所述步骤S6包括:
S61、根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定二值化图像两行中连通域的起始位置和结束位置;
S62、根据连通域的起始位置和结束位置确定填充范围并进行填充;
S63、判断填充后的二值化图像每个区域执行的线程数量是否达到CUDA编程模型的线程数量要求,若是,则执行步骤S7,反之,则返回步骤S4。
5.根据权利要求1所述的一种基于GPU并行运算的印刷品缺陷检测方法,其特征在于:所述步骤S7具体为:
判断填充后的二值化图像中待合并的两个区域的边界之间是否有缺陷连接,若是,则返回步骤S6,确定填充的范围并进行填充;反之,则直接将待合并的两个区域进行合并。
6.根据权利要求1-5任一项所述的一种基于GPU并行运算的印刷品缺陷检测方法,其特征在于:所述步骤S8包括:
S81、将合并后的图像沿X轴方向、Y轴方向进行偏移,得到偏移后的图像;
S82、将偏移后的图像与合并后的图像进行差分,得到包围着缺陷的最小矩形的长、宽和缺陷在产品图像中的位置。
7.一种基于GPU并行运算的印刷品缺陷检测系统,其特征在于:包括以下模块:
采集模块,用于采集产品图像;
差分模块,用于将采集的产品图像与标准图像进行差分,得到差分图像;
二值化与区域划分模块,用于对差分图像进行二值化处理,得到二值化图像,并根据二值化图像的尺寸,用于确定CUDA编程模型中线程网格和网格内线程的数量,以对二值化图像进行区域划分;
与运算模块,用于对二值化图像每个区域内的相邻两行进行与运算,并将运算的结果存储在缓存图像的相同位置,所述缓存图像的存储空间与二值化图像的存储空间大小相同;
消除模块,用于将缓存图像区域内单个像素值为255的像素置0;
填充模块,用于根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定填充范围并进行填充;
合并模块,用于对填充后的二值化图像进行区域间的合并操作,得到包围着缺陷的最小矩形;
偏移差分模块,用于将合并后的图像沿X轴方向、Y轴方向进行偏移,然后将偏移后的图像与合并后的图像进行差分,得到缺陷在产品图像中的位置;
所述采集模块的输出端依次通过差分模块、二值化与区域划分模块、与运算模块、消除模块、填充模块和合并模块进而与偏移差分模块的输入端连接;
所述与运算模块具体用于:
先将二值化图像区域内的奇数行与它的上一行进行与运算,并将运算的结果存储在缓存图像的相同位置;再将二值化图像区域内的偶数行与它的上一行进行与运算,并将运算的结果存储在缓存图像的相同位置。
8.根据权利要求7所述的一种基于GPU并行运算的印刷品缺陷检测系统,其特征在于:所述二值化与区域划分模块包括:
二值化单元,用于将差分图像中灰度大于或等于设定阈值的像素置为255,将灰度小于设定阈值的像素置为0,从而得到二值化图像;
区域划分单元,用于分别设置好CUDA编程模型中每个线程块内X轴方向和Y轴方向的线程数量a和b,然后根据二值化图像的分辨率分别计算出X轴方向和Y轴方向上线程块的数量c和d,从而将二值化图像划分为c×d个区域;
所述二值化单元的输入端与差分模块的输出端连接,所述二值化单元的输出端与区域划分单元的输入端连接,所述区域划分单元的输出端和与运算模块的输入端连接。
9.根据权利要求7所述的一种基于GPU并行运算的印刷品缺陷检测系统,其特征在于:所述填充模块包括:
搜索单元,用于根据缓存图像中像素值大于设定阈值的位置在二值化图像内进行向前和向后搜索,确定二值化图像两行中连通域的起始位置和结束位置;
填充单元,用于根据连通域的起始位置和结束位置确定填充范围并进行填充;
判断单元,用于判断填充后的二值化图像每个区域执行的线程数量是否达到CUDA编程模型的线程数量要求,若是,则转至合并模块,反之,则返回与运算模块;
所述搜索单元的输入端与消除模块的输出端连接,所述搜索单元的输出端通过填充单元进而与判断单元的输入端连接,所述判断单元的输出端分别与合并模块的输入端以及与运算模块的输入端连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610210057.3A CN105894514B (zh) | 2016-04-06 | 2016-04-06 | 一种基于gpu并行运算的印刷品缺陷检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610210057.3A CN105894514B (zh) | 2016-04-06 | 2016-04-06 | 一种基于gpu并行运算的印刷品缺陷检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105894514A CN105894514A (zh) | 2016-08-24 |
CN105894514B true CN105894514B (zh) | 2019-01-11 |
Family
ID=57013445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610210057.3A Expired - Fee Related CN105894514B (zh) | 2016-04-06 | 2016-04-06 | 一种基于gpu并行运算的印刷品缺陷检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105894514B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106568783B (zh) * | 2016-11-08 | 2019-12-03 | 广东工业大学 | 一种五金零件缺陷检测系统及方法 |
CN106770321B (zh) * | 2016-12-08 | 2019-07-19 | 广东工业大学 | 一种基于多阈值区间的塑料零件缺陷检测方法 |
CN108470330B (zh) * | 2017-02-21 | 2021-10-01 | 北京君正集成电路股份有限公司 | 图像检测方法及系统 |
CN108537085A (zh) * | 2018-03-07 | 2018-09-14 | 阿里巴巴集团控股有限公司 | 一种扫码图像识别方法、装置以及设备 |
JP2019158757A (ja) * | 2018-03-15 | 2019-09-19 | コニカミノルタ株式会社 | 画像処理装置およびプログラム |
CN108327398A (zh) * | 2018-03-30 | 2018-07-27 | 湖北工程学院 | 合拼面膜检测方法及装置 |
KR102175286B1 (ko) * | 2018-10-11 | 2020-11-06 | 라온피플 주식회사 | 결함 검출 장치 및 방법 |
CN109859191B (zh) * | 2019-01-31 | 2021-02-09 | 浙江工业大学 | 一种基于并行计算的像素筛查方法 |
CN111060527B (zh) * | 2019-12-30 | 2021-10-29 | 歌尔股份有限公司 | 一种字符缺陷检测方法及装置 |
CN111242896A (zh) * | 2019-12-31 | 2020-06-05 | 电子科技大学 | 一种彩色印刷标签缺陷检测与质量评级方法 |
EP3865304B1 (de) * | 2020-02-13 | 2022-01-05 | Heidelberger Druckmaschinen AG | Deterministische bildinspektion |
CN111507966B (zh) * | 2020-04-17 | 2024-02-06 | 无锡雪浪数制科技有限公司 | 一种基于unet深度网络的复合材料孔隙检测方法 |
CN112964736A (zh) * | 2021-02-04 | 2021-06-15 | 杭州富庆纸制品有限公司 | 印刷机的印刷质量控制系统、方法、智能终端及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2555160A1 (de) * | 2011-08-05 | 2013-02-06 | Sick Ag | Erzeugung eines in interessante und uninteressante Bereiche vorsegmentierten Bildes |
CN104123119A (zh) * | 2014-07-07 | 2014-10-29 | 北京信息科技大学 | 基于gpu的动态视觉测量特征点中心快速定位方法 |
-
2016
- 2016-04-06 CN CN201610210057.3A patent/CN105894514B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2555160A1 (de) * | 2011-08-05 | 2013-02-06 | Sick Ag | Erzeugung eines in interessante und uninteressante Bereiche vorsegmentierten Bildes |
CN104123119A (zh) * | 2014-07-07 | 2014-10-29 | 北京信息科技大学 | 基于gpu的动态视觉测量特征点中心快速定位方法 |
Non-Patent Citations (4)
Title |
---|
Automatic visual inspection and defect detection on variable data prints;Sagi Schein等;《Journal of Electronic Imaging》;20110216;第20卷(第1期);全文 |
全自主足球机器人混合视觉系统的设计与实现;张学习等;《机器人》;20100531;第32卷(第3期);全文 |
基于GPU 的金属工件表面缺陷检测算法的研究;蒋财运等;《计算机应用与软件》;20150331;第32卷(第3期);第3页右栏、摘要 |
基于图像处理的印刷品缺陷检测技术研究;刘海娟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140415;第2014年卷(第04期);第13页、第30-31页 |
Also Published As
Publication number | Publication date |
---|---|
CN105894514A (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105894514B (zh) | 一种基于gpu并行运算的印刷品缺陷检测方法及系统 | |
CN110570396B (zh) | 一种基于深度学习的工业产品缺陷检测方法 | |
CN105913093A (zh) | 一种用于文字识别处理的模板匹配方法 | |
CN110264445A (zh) | 分块模板匹配结合形态学处理的电池丝印质量检测方法 | |
CN104992449A (zh) | 基于机器视觉的信息识别及表面缺陷在线检测方法 | |
CN112270310A (zh) | 一种基于深度学习的跨摄像头行人多目标跟踪方法和装置 | |
CN104990926A (zh) | 一种基于视觉的tr元件定位和缺陷检测方法 | |
CN103424409A (zh) | 一种基于dsp的视觉检测系统 | |
CN104318559A (zh) | 用于视频图像匹配的特征点快速检测方法 | |
CN116704516B (zh) | 一种用于水溶肥料包装的视觉检测方法 | |
WO2017036264A1 (zh) | 一种二维码初步定位方法及系统 | |
CN104331693A (zh) | 一种印刷品对称性检测方法及系统 | |
CN107876530A (zh) | 一种实验室内基础设施智能清洗方法 | |
CN115775236A (zh) | 基于多尺度特征融合的表面微小缺陷视觉检测方法及系统 | |
CN108182700B (zh) | 一种基于两次特征检测的图像配准方法 | |
CN112101060B (zh) | 基于平移不变性和小区域模板匹配的二维码定位方法 | |
Kang et al. | An adaptive feature reconstruction network for the precise segmentation of surface defects on printed circuit boards | |
Zhou et al. | BV-Net: Bin-based Vector-predicted Network for tubular solder joint detection | |
CN103996200A (zh) | 一种基于图像子块参数的快速图像配准方法 | |
CN110033469A (zh) | 一种亚像素边缘检测方法及系统 | |
CN116071437A (zh) | 水工隧洞表观缺陷空间标定方法 | |
Akhyar et al. | Lightning YOLOv4 for a surface defect detection system for sawn lumber | |
CN111709429A (zh) | 一种基于卷积神经网络的机织物结构参数识别方法 | |
CN104713888B (zh) | 使用计算机检测织物疵点的方法 | |
Juan et al. | Tunnel Lining Multi-Defect Detection Based on an Improved You Only Look Once Version 7 Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190111 Termination date: 20190406 |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
RR01 | Reinstatement of patent right |
Former decision: termination of patent right due to unpaid annual fee Former decision publication date: 20200327 |
|
RR01 | Reinstatement of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190111 |
|
CF01 | Termination of patent right due to non-payment of annual fee |