关键词:
裂纹检测
并行处理
数字图像处理
CUDA编程
摘要:
在云计算,智能,自动技术已渗透到了生活和生产的各个环节的今天,计算的实时性也成为了一个急需解决的问题。使用计算机对裂纹进行检测正以其安全,易操作的特点得到应用。在数字图像处理领域,GPU的使用正在飞速发展,基于GPU的数字图像处理,可以实现更快的处理速度,更早地得到结果在自动化生产中有着很高的前景。为解决现有的裂纹检测方法存在的精度和实时性不能同时满足的问题,针对零件表面图像的特点,本文基于CUDA实现使用数字图像处理的方法对裂纹进行检测,在实现的过程中,以精确度高为目标寻找到可并行化的算法,实现裂纹的检测的,并对算法进行加速,实现实时性的目的,本文专门针对裂纹检测的实现,对数字图像处理的算法的GPU实现进行了探索。在论文中,对检测用到的算法分别进行了不同的优化加速,在图像的处理阶段,使用了共享内存对直方图均衡化算法进行优化,并且将共享内存优化后的直方图计算应用于二值化分割中,本文并行实现的分割算法是最大方差阈值法,对于高斯滤波和形态学滤波以及边缘检测,利用模板对图像进行并行处理,并在模板上使用了优化。文中使用的图像细化算法基于二遍扫描实现了并行度的增加,连通区域检测算法对并查集的使用进一步升级,实现了各线程处理像素无关联独立写和随机读的效果,通过提高并行度提升了运行速度,另外,全文多个算法使用了并行度缩减的策略,实现了整个算法的进一步优化。实验中,对裂纹检测的各个算法使用了不同的加速策略,既保证了并行化的实现,又达到了运行时间的大幅降低,在最后的对比实验中,对每个用CUDA实现的并行算法都进行了与CPU中传统的标准算法的比较。实验结果说明,在CUDA上实现裂纹检测的算法,大大地提高了检测的效率,更快更有效地得到检测结果,对于实时性的实现有着很大的意义。