嵌入式图像处理算法优化

http://blog.sina.com.cn/s/blog_1368ebb6d0102vuhg.html


嵌入式图像处理算法优化指南,适用于任何基于ARM或PC平台的视觉应用程序开发

转载 2015-08-05 15:09:15

第一章 绪论

1.1 

计算机视觉/图像处理研究者的困惑

作为一名从业近10年、一直致力于视频目标识别和跟踪的研究者,笔者认为视频图像处理的应用远远没有达到其应有的程度。究其原因,可能包括如下几个方面:

n  科研单位和高校的研究者多以理论研究为主,偏论文的评价体系使得研究者更关注理论是否新颖,忽略了算法效率及实用性,造成绝大多数的研究成果在实际应用中无法应用或成本太高。

n  Mathlab等工具和OpenCV等库函数加快了研究者出论文的效率,并加快了功能初步验证的过程,但其带来的负面影响不容小觑。由于对现有工具产生了很强的依赖,缺少对图像处理技术本质的认识及经验积累,需要新的功能时无法高效实现。

n  图像处理本身是一门工程技术,在一定程度上不具有“可推导性”和“通用性”,要想解决某一问题,必须针对性地提出解决方案才有可能研制出高效的功能模块。

n  硬件平台的依赖性太强,研制成本高。之前的图像处理算法通常运行于DSP或FPGA平台上,硬件研制和移植成本动辄上百万,使得普通开发者望而却步。

1.2 

让嵌入式图像处理技术流行起来

为加快图像处理技术的工程应用,“让嵌入式图像处理技术流行起来”,嵌视科技倡导开发者遵循如下两个原则:

n  除可购置的功能芯片外,针对特定应用设计针对性的解决方案,并自己编写所有的算法,保证整个模块的高效运行。在这个问题上周围经常有反对的声音,说自己实现的算法肯定没有成熟的库函数的快。在单个标准的功能函数方面,我们承认库函数在效率方面并不低,但结果往往是笔者开发的应用模块通常比调用库函数的快很多倍。比如,在目标跟踪的应用中,笔者开发的模块在双核2.4G

的PC上耗时只有

0.3ms

,事后分析发现所有代码没有用到任何一个“完整”的库函数(在此基础上开发了

QS-PTE9

中的“视觉跟踪示例程序”)。

“磨刀不误砍柴工”,只有熟练掌握图像处理的实现技巧,灵活设计应用模块的针对性实现方案,才能开发出高效稳定的嵌入式视觉应用模块,本手册将通过实例的形式带你进入这条路线。当然我们只是领进门,修行还得靠自身

n  选用基于ARM的嵌入式图像处理平台,以节省硬件及移植成本。原因在1.3节中介绍。

为节省彼此的时间,本手册推崇言简意赅的原则,希望您能理解。第二章 高效视频图像处理的几个基本原则

高效视频应用模块的开发更多需要的是长时间的经验积累,在这里我们仅仅列出一些原则性的经验:

  • 算法级的优化或简化永远放到第一位:算法的计算复杂度决定了经过优化后能够达到的最佳性能,没有好的算法作为基础,一切优化都是白搭。

  • 代码优化是必不可少的

:同一个算法,不同的人实现出来效率方面可能存在10

倍以上的差距,消除这10倍以上的差距是开发嵌入式视觉应用模块必须掌握的基本技能。

算法级的优化属于算法设计的问题,是图像处理研究的重点,不同应用差别很大,本手册不作介绍。

这里列出图像处理方面代码优化的几个基本原则:

  • 重点优化针对每个像素的操作,即for

循环里面的:理由再简单不过了,假设我们要处理的图像是30万像素的,每个for循环减少10次运算就减少了300万次运算,那效率方面就会提高很多。

  • 不要在大的for

循环里面调用函数:调用一次函数就涉及到函数寻址、参数传递过程,如果对每个像素调用一次函数想想会浪费多少时间啊。

  • 避免大量的除法运算

:不管是PC

,还是ARM、DSP等,除法运算都很慢,尽量以乘法和移位来替代。

  • 查表是实现高效运算的首选

:尽可能多的利用查表来代替计算。

  • 避免重复计算

  • 尽量采用定点整形运算,尽量避免大量的多层级的if…else…

:使得开发的算法能够支持更多的嵌入式图像处理开发平台。

是不是很枯燥和无从下手?后面所有的章节将以实例的形式一步一步教会你如何开发高效的图像处理算法。




  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值