Parallel processing Tesseract如何使用OpenCL?

Parallel processing Tesseract如何使用OpenCL?,parallel-processing,opencl,gpu,tesseract,Parallel Processing,Opencl,Gpu,Tesseract,我正在从事一个项目,该项目要求我使用Tesseract加速文本识别过程。我遇到一个消息,说Tesseract正在与OpenCL合作,将一些计算密集型任务卸载到可用的CPU或GPU上。 对于“Tesseract是如何利用OpenCL将计算密集型任务转移到并行CPU内核或GPU上的”有定性的解释吗 到Tesseract源的链接在这里Tesseract是一种OCR,因此它可以检测图像中的图案/字母。粗略地说,这就是图像处理,每个像素都可以并行计算,因此是GPU(OpenCL/CUDA/etc…)的一个

我正在从事一个项目,该项目要求我使用Tesseract加速文本识别过程。我遇到一个消息,说Tesseract正在与OpenCL合作,将一些计算密集型任务卸载到可用的CPU或GPU上。
对于“Tesseract是如何利用OpenCL将计算密集型任务转移到并行CPU内核或GPU上的”有定性的解释吗


到Tesseract源的链接在这里

Tesseract是一种OCR,因此它可以检测图像中的图案/字母。粗略地说,这就是图像处理,每个像素都可以并行计算,因此是GPU(OpenCL/CUDA/etc…)的一个很好的候选

如何使用它的细节将很难理解,但基本上它在OpenCL中处理以下内容(由评测代码打印):

基本上,就是在GPU中进行一些像素转换(非常有效),然后是直方图,最后是图像阈值

分析代码只是测量每个OpenCL设备所花费的时间,并选择最佳的一个。其他方法也是可能的


在它选择了一个最好的设备之后,设备的任务就是完成计算负载。在GPU的情况下,它将使用所有着色核心(计算核心)。对于CPU,它将只运行一个线程池。但是OpenCL不会进行GPU-CPU工作平衡。

谢谢您的回复。我的目标是使用Tesseract加快文本识别过程。我没有将整个图像发送给Tesseract,而是将图像分割成多个部分,并使用OpenCL在我的CPU或GPU的多个内核中处理。我能加速吗?或者Tesseract已经通过使用OpenCL饱和了GPU/CPU内核吗?OpenCL饱和了它使用的设备的内核。最多可以在多个设备(CPU和GPU)中拆分处理。但是,考虑到OpenCL任务的CPU速度要慢得多(比方说10比1),我认为使用多个设备(拆分、合并等)的开销将不值得。那么您有什么建议来提高Tesseract文本提取的速度吗?现在,根据图像的大小,每张图像大约需要10-15秒。如果你能正常工作,请告诉我。我一直在尝试将Tesseract 3.03-rc1与OpenCL结合使用,但出现了一些故障。AMDSDK中的示例程序运行良好——至少是使用单精度的程序。我的GPU显然不支持double。
 composeRGBPixel: 0.073872 (w=1.2)
 HistogramRect: 0.121674 (w=2.4)
 ThresholdRectToPix: 0.050257 (w=4.5)
 getLineMasksMorph: 0.350409 (w=5.0)