The invention discloses a hardware acceleration method of image processing functions in the OpenCV library, according to the following steps: A, there is a need for hardware acceleration function where the file defines the function pointer type; static int B, a definition of the function pointer type; C, define an assignment function for static global D, need to modify the variable assignment; the function of hardware acceleration, making a call to the static global variables function pointer; E, re compile the OpenCV library to generate the dynamic link library; F, OpenCV in the application code defined in the hardware acceleration function, need function hardware accelerated the completion of its function and the original part in the library the same function; G, call assignment function, the hardware acceleration function as a parameter to the assignment function; H, step F hardware acceleration function definition is replaced by the FPGA hard Piece logic to implement. The invention effectively improves the running speed.
【技术实现步骤摘要】
一种硬件加速OpenCV库中图像处理函数的方法
本专利技术涉及一种硬件加速OpenCV库中图像处理函数的方法。
技术介绍
计算机视觉技术几年来发展成为学术界一个相当成熟的科研领域,目前许多视觉算法来源数十年的科研成果。现在计算机视觉技术正快速渗透到我们生活的方方面面,我们拥有自动驾驶的汽车、能根据我们的每个动作做出反应的游戏机、自动工作的吸尘器、能根据我们手势做出响应的手机,以及其它等视觉产品。今天我们面临的挑战就是如何高效地实现上述这些及未来的各种视觉系统,同时满足严格的功耗和上市要求。嵌入式系统在计算方面的局限性,尤其是在处理大型图片、高帧率时计算能力低下严重限制了嵌入式系统在计算机/机器视觉实际方面的应用。现有对OpenCV(OpenSourceComputerVisionLibrary,计算机视觉函数库)的加速,主要有三种方案:A、GPU的方式,这种方式运行速度快,通用性强,但是GPU厂商基本都没有提供基于Linux的驱动源码,需要开发人员手动移植到对应的嵌入式平台,难度非常的大,对嵌入式系统的开发人员的专业水平要求非常高;B、DSP的方式,这种方式通用性强,但是并行性很差,并且价格昂贵;C、FPGA的方式,这种方式提供了强大的通用处理功能,此外还有稳健可靠的数字处理功能,能够实现计算强度高、存储高效的计算机视觉算法。Xilinx使用的就是FPGA的方式,利用高层次综合工具VivadoHLS,将OpenCV程序代码转换成硬件描述语言,最后综合成IP核,然后再手动进行软硬件集成。这种方式,需要软硬件开发人员同时参与,并且还需要进行手动软硬件的集成,开 ...
【技术保护点】
一种硬件加速OpenCV库中图像处理函数的方法,其特征在于,包括以下步骤:首先确定OpenCV库中需要进行硬件加速的图像处理函数;然后进行以下处理:A、从OpenCV库中需要进行硬件加速的图像处理函数中抽取复杂运算的代码,封装成新的函数,确保新的函数中没有再次对OpenCV库中的函数进行调用,都是基本的算术逻辑运算;B、在需要进行硬件加速的图像处理函数所在文件中定义与新抽取的函数对应的函数指针类型,函数指针类型的函数参数与新抽取的函数的参数保持一致;C、针对定义的每一个函数指针类型,在需要进行硬件加速的图像处理函数所在文件中定义相应的静态全局变量;D、针对每一个静态全局变量,定义一个可供OpenCV应用代码调用的赋值函数,用来对对应的静态全局变量赋值,并且确保赋值函数的函数参数的类型就是静态全局变量对应的函数指针类型;E、修改OpenCV库中步骤A确定的需要进行硬件加速的图像处理函数:首先,将其对新抽取的函数的调用注释掉;然后,将调用新抽取的函数的参数传递给步骤C中对应的函数指针类型的静态全局变量,这样就实现了将需要进行硬件加速的图像处理函数的内部代码改成对静态全局变量的函数指针的调用 ...
【技术特征摘要】
1.一种硬件加速OpenCV库中图像处理函数的方法,其特征在于,包括以下步骤:首先确定OpenCV库中需要进行硬件加速的图像处理函数;然后进行以下处理:A、从OpenCV库中需要进行硬件加速的图像处理函数中抽取复杂运算的代码,封装成新的函数,确保新的函数中没有再次对OpenCV库中的函数进行调用,都是基本的算术逻辑运算;B、在需要进行硬件加速的图像处理函数所在文件中定义与新抽取的函数对应的函数指针类型,函数指针类型的函数参数与新抽取的函数的参数保持一致;C、针对定义的每一个函数指针类型,在需要进行硬件加速的图像处理函数所在文件中定义相应的静态全局变量;D、针对每一个静态全局变量,定义一个可供OpenCV应用代码调用的赋值函数,用来对对应的静态全局变量赋值,并且确保赋值函数的函数参数的类型就是静态全局变量对应的函数指针类型;E、修改OpenCV库中步骤A确定的需要进行硬件加速的图像处理函数:首先,将其对新抽取的函数的调用注释掉;然后,将调用新抽取的函数的参数传递给步骤C中对应的函数指针类型的...
【专利技术属性】
技术研发人员:彭日光,田炜,周继辉,袁永奇,周琴,郭永贵,裴芳,
申请(专利权)人:长沙湘计海盾科技有限公司,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。