关于实现Halcon算法加速的基础知识

一、提高Halcon的运算速度,有以下几种方法:

1、Parallelization自动操作并行化(多核)

2、利用GPU提速,至少可以提高5~10倍的运算速度

 

 

二、多核并行

看看官方的说明《HALCON-多核性能》:

1、算子自动并行化(AOP)

多核和多处理器的计算机显著提升了计算机视觉系统的速度。八年多以来,HALCON提供了通过工业验证的算子并行化,能很好地支持这种速度的提升。当然,并不是全部的视觉操作都能受益于并行化这种方式。因此,HALCON的智能算法可以确定是否需要用并行化方式——会考虑到具体的算法,算法的输入值和硬件条件。

并行HALCON在多核计算机上会自动将数据,比如图像数据分配给多个线程,每一个线程对应一个内核。用户甚至不需要改动已有的HALCON程序来就能使用自动划分功能,从而立即获得显著的速度提升。

2、并行编程

HALCON支持并行编程,如多线程的程序。它不仅仅是线程安全的而且可多次调用。因此多个线程可在同一时刻同时调用HALCON算子。利用这种特性,用户可以将一个机器视觉应用软件分解成多个独立的部分,让它们在不同的处理器上并行运行。

在一个四核的计算机上运行算子,HALCON会自动将图像分为四部分,由四个线程并行处理。

在一个包含两个Quad-Core Intel Xeon E5345,2.33 GHz在内的计算机上使用median_image算子(13×13的模板)对1280×1024的图像进行滤波操作时,根据使用CPU核的数量的不同,加速因子分别为*1/1.96/2.90/3.79/4.51/5.48/6.34/6.93。注意:可以达到的最高加速因子与所用的HALCON算子和图像大小有关。

3、官方的手册

C:\Program Files\MVTec\HALCON-19.11-Progress\doc\pdf\reference\reference_hdevelop.pdf

Chapter 25 System --- 25.8 Parallelization
C:\Program Files\MVTec\HALCON-19.11-Progress\doc\pdf\manuals\parallel_programming.pdf
C:\Program Files\MVTec\HALCON-19.11-Progress\doc\pdf\manuals\programmers_guide.pdf

Chapter 2 Parallel Programming and HALCON

 

 

三、GPU

1、Halcon中使用GPU提速,效果明显。

官方自带的例程compute_devices.hdev,实现提速的优良效果,必须先关闭设备:dev_update_off()

可以使用get_operator_info算子来查看算子的GPU信息

2、GPU有关的算子:

query_available_compute_devices

get_compute_device_info

open_compute_device

init_compute_device

activate_compute_device

deactivate_compute_device

3、可以加速的算子 18.05:

关于实现Halcon算法加速的基础知识

 

 

---

欢迎访问姊妹篇《关于实现OpenCV算法加速的基础知识