[发明专利]一种基于并行计算的像素筛查方法有效
申请号: | 201910099964.9 | 申请日: | 2019-01-31 |
公开(公告)号: | CN109859191B | 公开(公告)日: | 2021-02-09 |
发明(设计)人: | 计时鸣;郑启明;蔡超鹏;黄程;张利 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06T7/00 | 分类号: | G06T7/00;G06T7/11;G06T7/136 |
代理公司: | 杭州浙科专利事务所(普通合伙) 33213 | 代理人: | 吴秉中 |
地址: | 310014 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于并行计算的像素筛查方法,包括以下步骤:步骤一:首先根据图片像素的数量分配相应的threads;步骤二:通过每个线程协作运行对分块图像进行运算;步骤三:对每个像素和预设设定的缺陷阈值进行比较;步骤四:利用规约算法对共享内存中的数据进行计算得出最终结果;本发明能够有效减少像素筛查的计算时间,完成待处理图像的缺陷统计所需的时间将远小于传统串行筛查算法,从而保证缺陷检测的实时性。 | ||
搜索关键词: | 一种 基于 并行 计算 像素 方法 | ||
【主权项】:
1.一种基于并行计算的像素筛查方法,其特征在于:包括以下步骤:步骤一:首先根据一个像素分配到一个线程的原则将图像中的像素分配到各个线程,CUDA架构中thread的分布结构为多个thread组成一个block;多个block构成一个grid;其中,thread为线程,block为块,grid为格,每个分割图像的线程索引为idx=threadIdx.x+blockDim*blockIdx.x;式中:threadIdx表示线程块X维度上的线程索引,blockDim.x表示一个线程块X维度上的线程数量,blockIdx.x表示块所在grid中X维度上的块号,idx得到的是当前线程在整个线程网格中X维度的索引;步骤二:通过每个线程协作运行对分块图像进行运算:当一个线程完成一个像素的运算之后,把结果存放到共享内存当中去,接着马上直接运算第二个分块的相应像素的计算,同时把运算结果直接和第一个共享内存中的数据相加,图像的大小就是blockDim.x*gridDim.x,其中blockDim.x表示一个线程块X维度上的线程数量,gridDim.x表示一个线程格中X维度上的块数量,也就是每隔blockDim.x*gridDim.x像素的值在一个线程中计算,其结果存放在相应的共享内存中,依次类推,最后所有的相加结果都在共享内存中,其数组大小就是blockDim.x*gridDim.x;步骤三:对每个像素和预设设定的缺陷阈值进行比较:如果像素值小于这个阈值,就是赋值1,大于这个阈值就赋值0,然后存入共享内存;步骤四:利用规约算法对共享内存中的数据进行计算得出最终结果:把每block中的线程数对半分,让共享内存中的第一个数值和第一半加1的数值相加,结果仍然存在共享内存中,这样依次相加,得到结果的数组数量正好是原来的一半,然后接着再分一半,按照上面的方法再次相加,直到加到最后变成一个数值,然后存入一个长度是块数的数组变量,把这个数组变量直接从GPU拷贝到CPU中去,再采用传统的方法相加每个元素,最后得到一个数值,这个数值就是缺陷点数。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910099964.9/,转载请声明来源钻瓜专利网。
- 上一篇:一种基于深度学习的目标区域检测方法
- 下一篇:圆形高反光工件的检测识别方法