[发明专利]基于FFT的超大图GPU并行检测OCA缺陷算法在审
申请号: | 202011256011.8 | 申请日: | 2020-11-11 |
公开(公告)号: | CN112750101A | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 北京平恒智能科技有限公司 |
主分类号: | G06T7/00 | 分类号: | G06T7/00;G06T1/20;G06T1/60;G06F17/14 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100176 北京市大兴区经*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fft 大图 gpu 并行 检测 oca 缺陷 算法 | ||
本发明提供一种基2‑FFT的并行GPU检测算法,主要为大型图像的检测提供快速计算方案。本方法将原有的FFT蝶形算法3层循环做以下处理:最外层循环做串行计算,内部2层循环用公式统一后做并行计算。最外层循环次数是计算量的对数,类似于二叉树的深度,所以外层串行计算量较小。计算量大的内部2层循环,统一好的公式用GPU并行方法计算。最终实现FFT的快速计算的目的。
技术领域
本发明主要涉及工业级高精度实时检测,具体地,解决超大图的小缺陷高精度检测问题,是高精度检测需求的图像处理技术。
背景技术
现代工业品的制造向精细化,高速化加工发展,伴随产品检测的要求越来越多,早期人工检测满足当时的需求,随着时间发展不论是检测速度还是检测精确度都越来越不能满足需求。随着图像处理与目标检测的发展,图像自动检测方式逐渐进入工业检测行业,取代人工检测。主要处理尺寸检测、各种缺陷检测等。
针对工业图像处理的需求,去除一些图像信息中的杂点、噪点等,需要采用傅里叶频域滤波处理,而傅里叶变换把连续信号处理成三角函数信号,从时域转到频域上,再在频域上处理过滤相关的信息,反变换到时域上,到达去除干扰信息,为有效寻找缺陷提供支撑。
现有的离散傅里叶变换基本采用快速傅里叶变换来达到加速的目的,但在加速前,需要做优化准备,时间稍长,正常用于检测时,也不能满足工厂实时检测需求,cuda做的cufft效果也不理想。
工业品检测在超大图比如(8K*13K、16K*30K)小缺陷(小于0.01mm2)和实时性(300ms)等多种要求下,检测速度是限制算法性能非常重要的指标。
发明内容
因此,为了解决FFT计算量大和速度快的问题,本发明考虑在快速傅里叶变换fft的基础上设计GPU的并行算法,用于解决上述需要。
本发明采用的技术方案为以下内容。
以2为基的FFT为基础,将非2n数量的数据,扩充成2n的指数(最近指数)。
做一维FFT的GPU并行,先将FFT变换系数W用数组保存,传输至GPU共享内存中。
将多重循环内部奇型和偶型结果用分支条件的bool型数组flag表示,先在CPU上用分支计算flag数组标识,然后传输至GPU共享内存中使用。
将FFT的蝶形算法三层循环(k,i,j)的内二层循环(i,j)合并做并行,保留最外层循环,最外层循环次数是计算量的对数log2m,类似于二叉树的深度,所以外层循环量较小。
内二层的循环并行有奇型项和偶型项,用第[0010]步flag数组加条件判断区分,分支数组flag的并行下标为 [(tid % (nNum)) + k*(1 r)] 。
对于奇型项采用数组f相加,两项数组的下标,优化整理成f[tid]和f[tid + (1 (r - k - 1))]]。
偶型项采用数组相减然后乘以变换系数W,两项相减数组下标,优化整理为f[tid]和f[tid + (1 (r - k - 1))]],变换系数数组W用[tid*(1k))%(1(r-1))作为下标表示。
外一层循环每遍历一遍,把计算得到的奇偶型结果赋给下一轮循环的输入数组。
上述外循环完成后,进行下标排序,得到正常变换点顺序的变换后的数组。
上述[0008]-[0016]步完成一维快速傅里叶并行算法。
在一维基础上扩展至二维,先选一个方向扩展,比如高度方向,每一行都是一维傅里叶并行算法,可以构成总并行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京平恒智能科技有限公司,未经北京平恒智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011256011.8/2.html,转载请声明来源钻瓜专利网。