基于Nvidia Jetson与Bangla OCR的技术实现及优化
在计算机视觉和光学字符识别领域,利用硬件资源进行算法优化以实现实时处理是一个重要的研究方向。本文将介绍基于Nvidia Jetson的立体视觉算法实现,以及一个全新的孟加拉语光学字符识别(OCR)语料库的构建。
1. Nvidia Jetson上的立体视觉算法实现
1.1 算法定制与优化
针对Jetson TK1开发板,对算法进行了定制设计。该开发板存在核心数量少(192个)、纹理内存速度慢和线程可用性等挑战。为解决这些问题,采用了以下优化策略:
- 利用GPU中每个块的共享内存。
- 使用CUDA PTX指令集。
- 将求和操作分为两步进行。
- 优化内存合并。
- 使用CUDA shuffle指令从GPU线程束内的相邻线程访问数据。
通过这些优化,实现了约30倍的加速,使得半全局匹配(SGM)算法能够在实时应用中使用。
1.2 SAD/CENSUS算法
在SAD和CENSUS算法中,每个像素需要一个9×7的窗口,因此使用2D GPU块是必要的。图像被划分为32×32的GPU块,每个线程处理一个像素。每个像素需要进行63次全局内存读取操作。为减少这一操作,通常会使用纹理内存,但在Jetson GPU中,纹理内存的实现实际上比全局内存慢,这可能是由于Jetson资源有限。因此,使用共享内存来减少内存读取操作。
数据集 | 全局内存时间(ms) | 纹理内存时间(ms) </ |
---|