一种基于图像处理的道路损毁检测优化方法技术

技术编号:10817838 阅读:107 留言:0更新日期:2014-12-25 23:30
本发明专利技术公开了一种基于图像处理的道路损毁检测优化方法,构建像素点模板,取垂直方向和水平方向各两个区域,求取各个领域内的像素点的均值比;并求出均值比的最小值,通过判断均值来确定此像素点是否发生损毁;为提高运算效率,将线程和对应的像素点结合起来,均值比和极小值求取放在一个核函数内,设置一个中间存储变量sum,设初始sum为从第一个像素点开始的前七个元素的和,每次递增取第八个元素和第一个元素的差值,将计算的差值数组存储起来,对应的sum累加,sum累加的过程中进行并行处理,分配到相应的线程中进行并行处理。本发明专利技术减少了额外的GPU线程计算指令,实现将待处理的图像像素点与创建的OpenCl线程一一对应起来,提高了算法运行效率。

【技术实现步骤摘要】

本专利技术属于道路领域,尤其涉及。
技术介绍
道路损毁算法的核心是三个相邻区域中,中间区域是道路区域,以7个点位一个模板,取垂直方向上下两个领域,水平方向左右两个区域,每个区域类似道路区域7个像素点的模板,也会有7个像素点,求取各个领域内的像素点的均值,然后求出均值比的最小值,最后通过判断均值来确定此像素点是否发生损毁。逐个像素点构建模板,然后计算平均值,再根据构建的水平垂直方向的道路相应位置,利用像素点的均值比,求取均值比的最小值。 每个像素点的模板构建算不存在数据依赖,每个像素点的变换也不存在读写依赖,完全可以用OpenCl对和计其进行并行处理。对照以上算法,每个线程负责一个像素点的模板构建计算,通过读取自身模板内的七个像素点和上下左右每个区域内的七个像素点,来计算相对应的道路损毁因子,同时对于边界点的处理,可能有些边界点的模板构建最终会超出原图像大小,因此对道路边界点和中心点的处理要分别对待,当计算边界元素时,要根据边界类型来确定。 传统的道路损毁算法由于读取算法元素的时候,要对道路上每个元素进行模板构建,这样对于道路上相邻的点,会有六个像素点重合,不利于充分利用GPU设备。
技术实现思路
本专利技术的目的在于提供,旨在解决传统的道路损毁检测算法要对道路上每个元素进行模板构建,对于道路上相邻的点,会有六个像素点重合,不利于充分利用GPU设备的问题。 本专利技术是这样实现的,,该方法包括以下步骤: 步骤一:道路损毁算法的核心是三个相邻区域中,中间区域是道路区域,以7个点为一个模板,构建逐个像素点的模板; 步骤二:取垂直方向上下两个领域,水平方向左右两个区域,每个区域类似道路区域7个像素点的模板,也会有7个像素点,求取各个领域内的像素点的均值比; 步骤三:利用像素点的均值比,求出均值比的最小值,通过判断均值来确定此像素点是否发生损毁; 步骤四:将线程和对应的像素点结合起来,均值比和极小值求取放在一个核函数内,求取均值比以及计算极小值,需要两个核函数; 步骤五:根据采取的函数类型不同,通过指定核函数内的线程在索引空间的索引和对应工作组中的线程索引号可唯一确定由执行核函数运算的具体线程; 步骤六:实现将图像中待处理的图像像素点,与创建的OpenCl线程和图像的像素点一一的对应起来; 步骤七:设置一个中间存储变量sum,设初始sum为从第一个像素点开始的前七个元素的和,然后每次递增取第八个元素和第一个元素的差值; 步骤八:将计算的差值数组存储起来,然后对应的sum累加,sum累加的过程中进行并行处理,分配到相应的线程中进行并行处理。 进一步,在步骤二中,根据构建的水平垂直方向的道路相应位置,利用像素点的均值比,求取均值比的最小值的公式如(I)所示 § <2 <2 Ff = yfk +Ff( j ) 上式中,ιγ表示水平构建模板的均值比最小值,rF表示垂直方向的均值比最小值。 进一步,在步骤二中,每个像素点的模板构建和计算不存在数据依赖,每个像素点的变换也不存在读写依赖,可以用OpenCl对其进行并行处理。 进一步,在步骤二中,每个线程负责一个像素点的模板构建计算,通过读取自身模板内的七个像素点和上下左右每个区域内的七个像素点,来计算相对应的道路损毁因子,同时对道路边界点和中心点的处理要分别对待,当计算边界元素时,要根据边界类型来确定。 进一步,读取算法元素时要对道路上每个元素进行模板构建,为了消除原始算法中每次循环迭代有六个元素点重复,设置一个中间存储变量sum,设初始sum为从第一个像素点开始的前七个元素的和,然后每次递增取第八个元素和第一个元素的差值,这样只会重复一个元素。 进一步,为了消除重复元素的缺点,采取本地分块策略,首先以工作组的形式对所处理的道路上所有像素点为单位将各矩阵进行分块,在本地内存中完成各数据块的和累加和加减,然后将每隔七个元素的差值集合到一个数组中,并将此差值存储起来,最后将差值数组的各个元素与初始七个点的像素和累加,改进后的部分求取像素和的伪代码如下 for (i = O ;i<width ;i++) for (j = 0 ;j〈height ; j++) Sum+ = data_sub [k++] 这里sum的初始值为第一个像素点模板内七个像素点的和,后面每个像素点的模板内的七个像素点的和只需要读取相应的data_sub数组内的值就可以了。 进一步,将计算的差值数组存储起来,然后对应的sum累加,sum累加的过程中进行并行处理,分配到相应的线程中进行并行处理,在算法设计中采取双buffer的形式,为每个数据分块申请同样大小的本地内存空间交替使用,以避免数据重写,两个buffer交替重写,使用本地同步操作,并将差值数组做一个优化。 进一步,具体的差值数组优化步骤为:差值数组第一个元素为%,a0其实为道路上首个像素点构建模板内像素点总和,从开始一直到最后都是差值数组的值,假设取差值数组的前七个元素,道路损毁中每个构建模板的像素点总和可以模拟为下述计算公式,即给定一个数值序列 [&0,&1,&2,&3,&4,&5,&6,&7,&8,&9,^lO ?...,£ln-1 I 要计算出计算结果,并保存 [a0, (ao+a^ , Cafa^a2), ,] 这里可以对其隔项相加,比如用差值数组的第一项加第二项,标记为[%,&1],这样经过一次循环迭代就可以分出n/2组,但是新分出来的组中只有一个目标项Bfa1,再在新的组里面,补充遗漏的元素,然后再隔两个元素进行加和。 进一步,当η很大时,对数部分的时间耗费会大大降低程序的执行效率,具体的优化算法还可以采用平衡树计算方法,将总共计算次数减少到ο (η),从根节点的出发,利用第一阶段计算的部分和计算相应的总和,利用一个线程处理一个数据元素将最终各个加和结果加上最前端数据元素,将最后的加和结果加上最末端元素,最后对于处理的核函数,分配工作组以及工作项,每个工作组中有256个线程,每个线程对应一个工作项,根据对应的坐标来找到相应的全局索引index: index = bxX 256+byXwidth+tx (2) tx为线程索引,(bx, by)为NDRange内的索引,根据(bx, by, tx)可唯一确定某个像素点在索引空间对应的全局ID,这样就可以将对应的像素点和相应的线程联系起来; OpenCl指定的核函数如下 —global—static void MoistInvert1nKernel (...) int posit1n = y*width+x*256+ldx ; if ((x*256+Idx)〈width) Data[posit1n] = 255*M ; 其中y对应执行的线程在全局中的垂直方向坐标,χ表示对应的水平方向坐标,Idx代表对应的work-group中的线程索引。 本专利技术提供的,通过设置一个中间存储变量sum,设初始sum为从第一个像素点开始的前七个元素的和,然后每次递增取第八个元素和第一个元素的差值,这样本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201410339506.html" title="一种基于图像处理的道路损毁检测优化方法原文来自X技术">基于图像处理的道路损毁检测优化方法</a>

【技术保护点】
一种基于图像处理的道路损毁检测优化方法,其特征在于,该方法包括以下步骤:步骤一:道路损毁算法的核心是三个相邻区域中,中间区域是道路区域,以7个点为一个模板,构建逐个像素点的模板;步骤二:取垂直方向上下两个领域,水平方向左右两个区域,每个区域类似道路区域7个像素点的模板,也会有7个像素点,求取各个领域内的像素点的均值比;步骤三:利用像素点的均值比,求出均值比的最小值,通过判断均值来确定此像素点是否发生损毁;步骤四:将线程和对应的像素点结合起来,均值比和极小值求取放在一个核函数内,求取均值比以及计算极小值,需要两个核函数;步骤五:根据采取的函数类型不同,通过指定核函数内的线程在索引空间的索引和对应工作组中的线程索引号可唯一确定由执行核函数运算的具体线程;步骤六:实现将图像中待处理的图像像素点,与创建的OpenCl线程和图像的像素点一一的对应起来;步骤七:设置一个中间存储变量sum,设初始sum为从第一个像素点开始的前七个元素的和,然后每次递增取第八个元素和第一个元素的差值;步骤八:将计算的差值数组存储起来,然后对应的sum累加,sum累加的过程中进行并行处理,分配到相应的线程中进行并行处理...

【技术特征摘要】
1.一种基于图像处理的道路损毁检测优化方法,其特征在于,该方法包括以下步骤: 步骤一:道路损毁算法的核心是三个相邻区域中,中间区域是道路区域,以7个点为一个模板,构建逐个像素点的模板; 步骤二:取垂直方向上下两个领域,水平方向左右两个区域,每个区域类似道路区域7个像素点的模板,也会有7个像素点,求取各个领域内的像素点的均值比; 步骤三:利用像素点的均值比,求出均值比的最小值,通过判断均值来确定此像素点是否发生损毁; 步骤四:将线程和对应的像素点结合起来,均值比和极小值求取放在一个核函数内,求取均值比以及计算极小值,需要两个核函数; 步骤五:根据采取的函数类型不同,通过指定核函数内的线程在索引空间的索引和对应工作组中的线程索引号可唯一确定由执行核函数运算的具体线程; 步骤六:实现将图像中待处理的图像像素点,与创建的OpenCl线程和图像的像素点一一的对应起来; 步骤七:设置一个中间存储变量sum,设初始sum为从第一个像素点开始的前七个元素的和,然后每次递增取第八个元素和第一个元素的差值; 步骤八:将计算的差值数组存储起来,然后对应的sum累加,sum累加的过程中进行并行处理,分配到相应的线程中进行并行处理。2.如权利要求1所述的基于图像处理的道路损毁检测优化方法,其特征在于,在步骤二中,根据构建的水平垂直方向的道路相应位置,利用像素点的均值比,求取均值比的最小值的公式如(I)所示 Pf = + Tw1 ( 1 ) 上式中,ιγ表示水平构建模板的均值比最小值,rF表示垂直方向的均值比最小值。3.如权利要求1所述的基于图像处理的道路损毁检测优化方法,其特征在于,在步骤二中,每个像素点的模板构建和计算不存在数据依赖,每个像素点的变换也不存在读写依赖,可以用OpenCl对其进行并行处理。4.如权利要求1所述的基于图像处理的道路损毁检测优化方法,其特征在于,在步骤二中,每个线程负责一个像素点的模板构建计算,通过读取自身模板内的七个像素点和上下左右每个区域内的七个像素点,来计算相对应的道路损毁因子,同时对道路边界点和中心点的处理要分别对待,当计算边界元素时,要根据边界类型来确定。5.如权利要求1所述的基于图像处理的道路损毁检测优化方法,其特征在于,读取算法元素时要对道路上每个元素进行模板构建,为了消除原始算法中每次循环迭代有六个元素点重复,设置一个中间存储变量sum,设初始sum为从第一个像素点开始的前七个元素的和,然后每次递增取第八个元素和第一个元素的差值,这样只会重复一个元素。6.如权利要求1所述的基于图像处理的道路损毁检测优化方法,其特征在于,为了消除重复元素的缺点,采取本地分块策略,首先以工作组的形式对所处理的道路上所有像素点为单位将各矩阵进行分块,在本地内存中完成各数据块的和累加和加减,然后将每隔七个元素的差值集合到一个数组中,并将此差值存储起来,最后将差值数组的各个元素与初始七个点的像素和累加,改进后的部分求取像素和的伪代码如下for (i = 0 ;i<w...

【专利技术属性】
技术研发人员:陈云坪陈彦吴龙辉韩威宏鄢阳天高斌童玲
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1