基于GPU的图像处理计算方法的相关研究

2022-09-14

随着我国社会经济的快速发展, 各种自动化的装备层出不穷, 自动化装备在高速发展的过程中对于计算处理的速度和精度要求也越来越高, 机器视觉处理部分的速度也必须要随之提高, 这样才能够满足机械自动化装备的发展需求。如果单纯依靠CPU进行计算处理, 很容易导致在长时间高频率运作下造成计算能力无法提升。尽管通过多核心CPU的发展与应用, 但是也无法满足计算速度的需求, 通过运用计算机图形处理器的开发, 能够运用图形渲染、包括浮点运算、生成三角形以及顶点处理和着色处理, GPU的技术发展速度飞快, 更新换代的速度也明显快过CPU由于GPU自身的功能更新非常迅速, 平均每半年就有新的GPU诞生, 这样也能够增强自身的运转速度, 运用GPU来代替CPU, 能够有效解决计算机图形处理速度存在的不足。由于GPU自身的内部结构也发生了非常巨大的改变, 从最初的固定渲染管直接转变为可编程流处理器, 导致其可编程性得到了大幅度增强, 也使得GPU能够进行通用运算, 在针对图形处理的过程中, 各种数据库和大规模计算都能够符合GPU内部结构三维图形设计的要求。在工业机器视觉检测的过程中, 最重要的就是保证视觉系统自身的高速和高精度, 通过运用GPU的高速并行处理, 可以代替CPU完成大量的计算工作, 保证整个系统的运行性能。

一、GPU和CUDA技术

(一) GPU硬件的发展历程

从NVIDIA公司在1999年发布的NVIDIA TNT2、ATI Rage和3DFx Voodoo3。这是图形处理器能够针对三角形进行光大化, 并且使用1-2个纹理并且在运行二维和三维应用时, 能够使得图形处理器完全将CPU从单独的像素中解放出来, 但是第一代的图形处理器具有两个非常明显的缺点, 首先就是缺乏三维物体顶点变换的效果, 而大多数的顶点变换必须在CPU中实现, 其次, 第一代图形处理器, 由于只有一个有限的数学操作集合。

随后NVIDIA公司发布的。GeForce256和GeForce2档图形处理器继承了顶点变换和光照的工作快速的点点变化, 作为高端工作站与个人计算机之间最关键的差距。尽管能够取代CPU大部分的工作, 但是这一代的图形处理器去还并不能够真正的实现可编程。

在2001年NVIDIA公司发布的GeForce3和GeForce4Ti系列的GPU, 具备顶点编程的功能, 而且图形处理器也可以根据应用程序指定的序列命令来进行顶点处理。但是这一代的图形处理器, 尽管提供了多像素及设置的功能, 但是还并没有真正实现可编程, 因为这一代的图形处理器, 尽管支持了顶点编程, 但还不能够真正的实现像素编程, 尤其是在像素着色程序中, 由于纹理访问和格式都受到限制, 该部分的图形处理器只属于一个替代品。

NVIDIA公司第四代图形处理器包括GeForceFX以及ATI的Radeon9700/9800, 不仅能够提供顶点集合像素级的可编程能力, 而且也可以通过索引方式针对数据进行访问, 具备了浮点的功能, 在文里保存的过程中也并不局限于某一个范围, 可以恰当的读写浮点数正是因为这一级别的可编程能力, 也使得图形处理器能够对复杂的顶点变换和像素着色进行操作。

随后NVIDIA公司发布第五代图形处理器GeForce6800/7800/7900作为第五代图形处理器, 具备的功能较之以往更加的全面, 不仅可以访问纹理, 而且也能够实现程序的动态分支、像素及程序, 也可以实现分支操作, 并且同时支持多个渲染目标, NVIDIA公司GeForce8800作为第六代图形处理器, 通过采用统一渲染架构。可以实现GPU的核心操作也提供了128位浮点数精度, HDR的支持, 并且第六代的图形处理器已经具备了统一渲染架构的可编程性能, 具有高带宽的高纯传输能力, 同时也能够实现庞大数据量的吞吐。

(二) 渲染架构发展过程

图形硬件最初主要以固定渲染管线设计的方式, 能够独立的完成特定的任务, 通过顶点集的光照计算以及坐标变换来判断不同顶点的光照颜色值, 还可以将顶点坐标从物体坐标系转换到裁剪空间中, 并且能够对不同的三角形进行光大化处理, 通过对三角形顶点的颜色进行差值, 可以获得三角形每个像素的不同颜色, 对于结果进行纹理映射, 也可以结合不同的像素纹理坐标值进行分析, 最后将不同的颜色进行混合语物化, 获得仿真缓存, 并且直接在屏幕上显示。但是由于分离流水线内部的各个固件功能固定, 数量固定, 这样也就限制了GPU的整体执行效率此外GPU自身的性能提升也并不明显, 在最开始的图形流水线处理过程中, 由于处理单元仅能够提供极少或者完全没必要的可编程功能, 这时的图形硬件还不能够称之为图形处理器, 也不能够进行计算。

对于GPU的应用程序来说, 一般的片段处理器要比顶点处理器使用频次更多, 因为在一般的可编程图形处理器中, 片段处理器大多处于顶点位置, 而且片段处理器输出或直接输入到存储器中, 这样也可以直接填给一个新的纹理数据流, 此外顶点处理的输出在到达存储器之前必须要通过光照器和片段处理器, 这样也就使得顶点处理器自身的输出流程增多, 片段处理器可以通过纹理的方式来访问存储器, 并且专门拾取纹理单元, 保证数据读取的速度, 运用GPU进行计算时, 必须要给GPU指定和程序, 即根据指定的CPU执行指令进行判断, 通常和程序包括渲染语言, 通过加载GPU需要处理的数据, 并制定指定的计算范围调整和函数, 最后将处理的数据取回到CPU中实现GPU的通用计算流程。

二、GPU在工业视觉中的应用

随着工业视觉的快速发展, 对速度和精度的要求也在不断提升, 但是视觉中缺少专门的硬件加速功能, 如果单纯的采用CPU无法满足超负荷运转的需求, 通过GPU在工业视觉中应用, 能够有效提高处理速度。

(一) 利用GPU加速圆投影模板匹配

在工业视觉设计的过程中, 为了判断物体的加工质量, 往往会与标准物体进行比对, 而通过视觉语言的方式, 能够利用模板匹配的方式进行快速检查, 因为模板匹配原理简单易于实现在工业视觉中能够广泛的应用, 通过模板匹配的算法, 可以将金属角与加工完好的金属角进行比较, 判断是否存在加工缺陷, 并且根据金属角相对中心的位置判断加工是否符合装配需求, 通过对三个目标进行检测, 必须要进行大量的数据计算, 这时就会导致CPU自身的运行效率大打折扣, 导致计算时间延长, 无法满足视觉系统高精度快速化的需求, 为此可以通过GPU的方式对算法进行加速。例如通过运用二值法处理, 当物体在拍摄时会受到外部光照以及零件自身一致性的影响, 使得拍摄到的图像不能够直接进行检测, 为此必须要针对拍摄图像进行预处理, 由于光照和材料自身的因素造成三个金属脚与背景并没有分离, 为了能够将金属角与背景隔离, 可以通过对图形进行二值化处理, 二值化过程就是门线处理的过程, 能够保证图像分割算法最为简单。从图中可见, 由于整幅图由暗的目标和量的背景共同组成, 图像构成的方式能够直接设定门限值, 并且将对象和背景所有的灰度像素设置成两组不同的模型根据图中的明暗背景, 能够直接的观察图中的两个区域主要以120附近为主要的分界点, 门限值也可以设置为120。经过二值化处理之后, 可以直接将目标从背景中脱离, 然后根据三个金属角进行查找, 在视觉中最常用的查找方法就是圆投影模板匹配法。通过在目标图上移动模板图像, 并且计算各个要点的数关系, 数值最大的就是最佳的匹配位置, 但是由于在检测过程中, 必须要针对金属零件的三个金属脚进行全面的检测, 保证三个金属脚的形状一致, 但是相对中心存在旋转, 必须采用元投影模板匹配方法。由于在采用圆投影模板匹配方法, 在计算过程中, 整个计算流程非常复杂, 必须要对算法进行优化, 由于任意一个领域之间的点相对中心位置都是固定的, 也就是说点到中心距离是固定不变的, 而且该点属于哪一个环也是固定不变的, 如果能够事先判断领域之间的哪些点属于哪个环, 就能够针对该数据进行保存, 并且对目标图像中的任意点进行全面的计算, 通过上述查找表的方式来判断领域之中的点属于哪一个环, 通过这样的以点判断环的位置, 可以有效减少计算量, 而且由于CPU计算速度和内存读取之间存在明显差异。半导体技术CPU计算高度也要超过内存读取速度, 在工程应用中应该尽可能的减少内存读取流程为此可以通过利用查询表的方式, 对几何知识进行全面优化。通过对相似的数据以及最大值点进行分析, 能够固定第一个金属角的位置, 而最大值点相邻的点相似度, 依然要比其他区域点速度更高, 在第二个金属角位置查找时, 应该先与第一个匹配点周围的所有相似值清零, 并且对应模板中心最大值点, 充分考虑金属脚的尺寸, 在上述范围内由于不可能存在第二个金属脚, 可以设定清零范围与模板大小一致, 再次查找最大相似度值, 就能够获得第二个金属脚的具体位置, 通过再次清零或者剩下的区域最大相似度点来判断第三个金属脚的位置。

(二) 彩色负片处理算法

彩色负片处理算法在使用的过程中具有非常明显的优势, 能够对每一个数字图像都可以用像素点进行处理, 增强整个图片的效果。但是在长时间使用的过程中, 彩色负片算法会造成图像处理的时间不断延长, 导致大规模的图像处理工作效率下降。而专业技术人员能够根据附片来看出整个图片处理的工作流程, 所以能够对像素进行单独处理, 为此GPU在使用过程中能够发挥更大的优势。

(三) 透明合并处理算法

通过运用CUDA框架结构, 可以充分运用GPU技术进行头像透明处理, 确定原有的头像位置, 保证图像处理工作可以顺利进行, 并且在实际的图像处理过程中图像的大小也存在比较大的区别, 必须要对图像进行分析, 增强整个图像处理的效率。

三、结论

在我国社会经济快速发展的过程中, 人民生活水平不断提高, 通过计算机设备能够给人们的生活带来极大的便利, 所以计算机设备的快速发展也能够促进社会经济的稳定增长, 当图形处理技术在实际运用的过程中, 通过将GPU技术进行整合, 能够保证图像处理的效率, 而且也可以满足图像处理技术, 应用范围不断拓宽。本文通过基于GPU的图像处理技术算法进行分析, 明确当前GPU的数据图像处理算法还存在着不足, 从而促进我国电子计算机技术的快速发展。

摘要:由于当前我国自动化装备对精度和速度的要求不断提高, 机器视觉处理的速度也必须同步提升, 如果单纯运用CPU进行视觉部分的处理很难满足这一效果。随着图形处理器GPU的快速发展, GPU在通用计算中也被非常广泛的应用, GPU能够更好的保证内部高数据带宽和执行计算能力, 有效代替CPU的部分计算。但是由于GPU作为一种专用硬件, 所有的通用计算开发都是利用图形渲染语言开发的, 这就要求不仅需要对GPU的硬件结构进行全面的掌握, 而且还应该熟悉并正确的使用图形渲染语言, 这样才能够保证GPU的计算开发效果。NVIDIA公司通过发布CUDA开发框架, 能够有效降低GPU开发的难度, 并且直接通过C语言代替图形渲染语言, 在GPU上进行算法映射, 能够更好的利用GPU进行通用计算问题的处理。本文通过对于GPU图形处理算法进行深入的研究总结出GPU运行过程中图形处理的主要算法充分挖掘GPU的特性以及在机器视觉处理中的实际应用。

关键词:GPU,图像处理,计算方法

参考文献

[1] 菅瑞琴, 王玲桃, 王伟.基于图像处理的输电线路覆冰厚度计算方法[J].电气自动化, 2018, 40 (03) :116-118.

[2] 陈念.基于结构光视觉的植保无人机障碍物图像加速处理技术研究[D].杭州电子科技大学, 2018.

[3] 李文瑞.基于OpenGL2.0标准的图像处理单元设计与实现[D].西安:西安电子科技大学, 2017.

[4] 张祎.基于DCP理论的图像去雾算法改进与并行优化[D].西安:西安电子科技大学, 2017.

[5] 周天驰.基于GPU的图像处理计算方法分析[J].科技风, 2017 (03) :68.

[6] 古伟楷.基于异构计算技术的视频与图像处理研究[D].广州:华南理工大学, 2015.

[7] 高鹏军.基于GPU的载波干涉快速再现方法研究[D].哈尔滨:哈尔滨工程大学, 2015.

[8] 宋长贺.基于GPU的高性能遥感图像解码方法研究[D].西安:西安电子科技大学, 2015.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:数据驱动时代的管理会计创新研究下一篇:文书形成时间鉴定技术评价和完善对策研究