CUDA之旅
ooMelloo
☆人工智能/机器学习/深度学习工程师进击中
☆立志成为数学好编程好业务好的三好青年
☆人必有痴 而后有成
展开
-
CUDA精进之路(零):CUDA开篇
前言 着手机器视觉项目时接触到了并行编程这一概念,那时候的目的是为了在图像识别的时候通过多个线程同时对多张传入的图片进行并行处理以达到加速程序运行速度,运用的方法主要是利用了C++自带的future库以及thread库,具体实现方法可参照此博客C++11 并发指南四此方法简单来说是利用了目前计算机为多核式结构(四核),因为在一般的串行编程中,一个程序的指令在单一的 ...原创 2019-04-09 13:54:46 · 716 阅读 · 0 评论 -
CUDA精进之路(二):图像处理——形态学滤波(膨胀、腐蚀、开闭运算)
引言从这篇文章起,开始将一些较为典型的OpenCV算法通过CUDA进行实现,本文实现的为图像处理中最为常见的形态学腐蚀以及膨胀,由于本文目的在于算法移植后的验证,故在图片的选择上用小图像作为输入的示例图像,有不当之处欢迎评论或私信~任务要求输入一张图片,将其转为灰度图后,通过CUDA在GPU中对图片实现形态学腐蚀、膨胀操作,最后将结果输出至CPU并进行显示,要求输出图与用OpenC...原创 2019-04-09 14:02:10 · 1817 阅读 · 3 评论 -
CUDA精进之路(一):图像处理——大图像分块处理(包括求均值、最大值)
引言在我的第一篇文章中我简单介绍了CUDA以及我的一些个人学习见解,在本文中我将开始正式开始CUDA实践之旅,众做周知CUDA目前应用的领域十分广泛,它能把一些普通的CPU代码提速几十倍甚至几百倍。在本人所从事的图像处理领域,在一些大图像的处理上(4K以上图像),仅仅依靠CPU进行计算已经完全无法满足工程项目所要求的运行时间,这时候我们就需要利用CUDA对代码进行加速。本文以一个8000*1...原创 2019-04-09 14:10:42 · 9992 阅读 · 10 评论 -
CUDA精进之路(三):图像处理——图像灰度化、灰度直方图统计
引言在大部分的图像处理程序中,其中必不可少的一步就是对传入的彩图进行灰度处理,将三个通道的RGB图片转化为单通道的Gray图,而对于灰度图进行直方图统计同样是观察检测图像特征的常用方法。在OpenCV中已经有成熟的封装函数进行上述功能的实现,本文主要讲述CUDA实现,加快对大图像的处理速度。任务要求输入一张彩色图片,通过CUDA将其转换为灰度图,并对灰度图进行灰度直方图统计。实...原创 2019-04-09 14:15:14 · 2524 阅读 · 1 评论 -
CUDA精进之路(四):图像处理——Sobel算子边缘检测
引言关于图像边缘检测,记得刚开始接触图像处理时,第一个自己实现的程序是通过笔记本摄像头采集图像,利用OpenCV自带的算法库进行Canny算子边缘检测,那时候当看到程序运行后,视频窗口实时显示经Canny算子边缘分割后的图像,觉得十分有科技感,后来慢慢开始自己写边缘检测的源代码,本博客以Sobel算子为例,将边缘检测通过CUDA实现。任务要求输入一张图片,将其转为灰度图后,通过CU...原创 2019-04-09 14:24:36 · 2436 阅读 · 5 评论 -
CUDA精进之路(五):图像处理——OTSU二值算法(最大类间方差法、大津法)
引言最近在做医疗设备相关的项目,故在项目中大量用到了各类图像分割的算法,为了在图像中分割出特定目标,用到的算法可以有很多,比如阈值分割,多通道分割,边缘分割以及一些前沿的组合分割。而对大多数图像来说,分割的一大难点是将待识别的目标与背景分离,其中一种有效简单的方法就是二值化(并不都有效),本博客试着将二值化算法中的OTSU算法进行cuda改写。任务要求输入一张8bit的灰度图,通过...原创 2019-04-09 14:29:59 · 2147 阅读 · 0 评论