随着人们对生活质量要求的提高和全球反恐的大势所需,以及数字化技术本身的不断进步,依托指纹识别、虹膜识别、人脸识别等技术的生物识别方案和视频监控方案等正逐步成为提高个人、家庭、企业和社会安全性的重要手段。生物识别方案主要包括四个步骤:图像采集、图像预处理,特征取样,匹配分析;而视频监控方案则主要包括图像采集、图像预处理、图像处理与传输、图像显示及图像管理等。不难看出,无论是生物识别还是视频监控,图像预处理都是必需的。事实上,图像预处理算法的灵活度、复杂度、对图像处理芯片资源的占用度,以及处理时间的长度将直接对整个系统运行产生举足轻重的影响。因此,图像预处理对于整个安防方案来说都是一项艰巨而又关键的任务,直接决定了后续图像处理与分析的准确性和便捷性。
图像分析
从图像中抽取某些有用的度量、数据或信息。目的是得到某种数值结果,而不是产生另一个图像。图像分析的内容和模式识别、人工智能的研究领域有交叉,但图像分析与典型的模式识别有所区别。图像分析不限于把图像中的特定区域按固定数目的类别加以分类,它主要是提供关于被分析图像的一种描述。为此,既要利用模式识别技术,又要利用关于图像内容的知识库,即人工智能中关于知识表达方面的内容。图像分析需要用图像分割方法抽取出图像的特征,然后对图像进行符号化的描述。这种描述不仅能对图像中是否存在某一特定对象作出回答,还能对图像内容作出详细描述。
图像处理的各个内容是互相有联系的。一个实用的图像处理系统往往结合应用几种图像处理技术才能得到所需要的结果。图像数字化是将一个图像变换为适合计算机处理的形式的第一步。图像编码技术可用以传输和存储图像。图像增强和复原可以是图像处理的最后目的,也可以是为进一步的处理作准备。通过图像分割得出的图像特征可以作为最后结果,也可以作为下一步图像分析的基础。
图像匹配、描述和识别对图像进行比较和配准,通过分制提取图像的特征及相互关系,得到图像符号化的描述,再把它同模型比较,以确定其分类。图像匹配试图建立两张图片之间的几何对应关系,度量其类似或不同的程度。匹配用于图片之间或图片与地图之间的配准,例如检测不同时间所拍图片之间景物的变化,找出运动物体的轨迹。
从图像中抽取某些有用的度量、数据或信息称为图像分析。图像分析的基本步骤是把图像分割成一些互不重叠的区域,每一区域是像素的一个连续集,度量它们的性质和关系,最后把得到的图像关系结构和描述景物分类的模型进行比较,以确定其类型。识别或分类的基础是图像的相似度。一种简单的相似度可用区域特征空间中的距离来定义。另一种基于像素值的相似度量是图像函数的相关性。最后一种定义在关系结构上的相似度称为结构相似度。
以图片分析和理解为目的的分割、描述和识别将用于各种自动化的系统,如字符和图形识别、用机器人进行产品的装配和检验、自动军事目标识别和跟踪、指纹识别、X光照片和血样的自动处理等。在这类应用中,往往需综合应用模式识别和计算机视觉等技术,图像处理更多的是作为前置处理而出现的。多媒体应用的掀起,对图像压缩技术的应用起了很大的推动作用。图像,包括录像带一类动态图像将转为数字图像,并和文字、声音、图形一起存储在计算机内,显示在计算机的屏幕上。它的应用将扩展到教育、培训和娱乐等新的领域。
图像预处理分析
根据目的的不同,图像预处理可分为对采集图像进行清晰化处理,对图像进行识别前的预处理,以及对图像进行压缩前的预处理等。其中,对采集图像进行清晰化处理主要包括对CMOS或CCD图像传感器感光单元的不一致进行后续纠正,对实际环境与传感器采集的图像进行差异补偿(如背光),以及对采集到的原始图像进行去噪处理等。虽然这种预处理算法本身的难度不大,但随着实时性需求的普及,尤其是在像素较大时,这种算法还是对DSP的处理能力提出了很高的要求。
而对图像进行识别前的预处理则目的性很强,可能需要破坏原来的像素和分布,以便后续进行特征提取。这种预处理算法的难度视识别场合的不同而不同。要综合后面的识别算法部分,选择适当的DSP.图像压缩前的预处理主要是指将YUV422变为YUV420、将RGB变为YUV等。这类处理往往有实时性要求,如果采用软件实现,会对处理性能有较高的要求;如果采用硬件实现,则虽然在处理性能上有保证,但硬件成本会有所上升。
同时,根据应用不同,图像预处理又可分为生物识别应用中的图像预处理和视频监控应用中的图像预处理。对于生物识别应用,以指纹识别为例,其预处理主要包括指纹图像增强、指纹图像二值化、指纹图像细化、指纹图像细化后处理。而视频监控应用中的图像预处理主要是指对图像传感器输出的连续图像进行分析,获取足够的信息,并通过自动白平衡、伽马(Gamma)校正、自动聚焦、自动曝光、背光补偿等来提高图像的实际效果。
图像预处理的挑战
无论是生物识别还是视频监控,其图像预处理正面临以下挑战:
⑴用户对图像质量的要求越来越高,图像预处理的算法越来越复杂,从而对图像预处理主芯片处理能力及存储空间提出了更加苛刻的要求。
⑵用户对图像的实时性处理和传输要求越来越高,一方面要求图像预处理算法尽量优化、精简,另一方面也对图像预处理主芯片的内核处理能力、内部总线架构、数据传输能力、外围接口,以及硬件整体架构和指令集对预处理算法的支持提出了更高要求。
⑶不同于图像和视频编解码算法具有业界统一的算法标准和清晰的演进路线图,图像预处理算法不仅没有统一的标准和清晰的发展方向,甚至在很大程度上,方案提供商正是通过这些"秘密"的个性化算法来作为市场竞争的法宝。此外,随着应用领域的不同、需求的提高和技术本身的演进,原有算法会不断升级,新的算法会不断涌现,这些都要求图像预处理芯片具有更高的灵活性和适应能力。
⑷对于方案提供商来说,不仅其体现竞争力的核心算法需要防止被非法读取或拷贝,而且无论是生物识别还是视频监控,其图像数据往往都会涉及隐私,因此也需要提供可以信任的安全保证。以上两方面,都要求图像处理芯片必须提供一个可靠、完全的处理平台。
除了以上挑战,从系统设计的角度来讲,还面临以下几方面的需求:
⑴虽然图像预处理和图像处理工作巨大,但是工程师并不希望采用多个芯片来处理这件事情。因为信号处理和控制系统分别运行于不同处理器的传统DSP架构已经让工程师非常头疼,如果再把图像预处理和图像处理分开,则更加大了工程师进行系统开发、系统联调、系统维护的难度。因此,对于系统设计中的主芯片DSP来说,还面临集成度的要求--有没有可能在单芯片上实现图像预处理、图像处理,甚至包括系统控制等功能。
⑵随着包括预处理在内的整个图像处理算法复杂性的不断增加,作为主处理器的DSP,除了需要提供足够的硬件处理能力之外,还应该在软件上提供针对该处理器专门优化的指令集,从而帮助工程师降低对处理器物理架构的熟悉难度,最大限度的驾驭、发挥处理器的特性,尽快开发出精简、优化的图像处理算法。
⑶除了上面提到的专门优化的指令集以外,面对日益复杂的图像处理和产品上市时间的压力,工程师还期望处理器供应商能够分担一些他们的工作--比如,提供专门针对该处理器优化、仅占极少量时钟周期的底层图像处理软件模块,以帮助他们缩短图像处理算法开发流程,并加速软件移植。
另外,功能强大、界面友好、简单易学的开发工具也是系统开发中工程师要求的重点,而且随着系统复杂度和模块复用性需求的增加,对开发工具的兼容性也提出了更高的要求。
硬件特性
Blackfin系列处理器的硬件架构专门针对图像处理进行优化,多个DMA通道和可灵活配置的Cache能很好地解决大运算量、高数据吞吐率的图像处理应用要求。在图像处理应用中,虽然对图像数据进行的传输也可由软件实现,但是这样会消耗掉大量的CPU时钟周期,从而使DSP的高速数据处理能力难以发挥。如果由DMA独立负责数据传输,那么在系统内核对DMA进行初始设置并启动后,DMA控制器就可在无需内核参与的情况下直接把图像数据从PPI接口传输至SDRAM存储器进行存储。另外,通过二维DMA还能简化宏块进出外部存储器的传送,从而允许数据控制成为数据实际传送的一部分,这对色彩空间元素的交叉和解交叉来说非常方便也非常重要。
针对图像处理应用,Blackfin系列DSP还在不断强化硬件功能模块的支持,比如,ADSP-BF54x系列Blackfin处理器的最新版本中增加了一个用于处理叠加图像的硬件加速器和一个扩展视频接口,它使得色彩空间变换、缩放和图像叠加等任务可以在无需处理器参与计算的情况下完成,从而减轻了内核的处理压力,为进行更高性能、更高速度的图像处理提供了更多空间。
软件特性
在指令集方面,Blackfin系列DSP针对图像处理提供了丰富的向量指令和视频指令。其中向量指令可以实现对16位数的操作(大多指令可以并行完成两个16位数的操作)。由于图像处理运算中大多是针对16位数的操作,因此,通过合理使用这些向量指令来优化图像运算非常重要。不仅Blackfin指令集中的大多数算术指令和移位指令都有对应的向量指令,而且,向量指令中还有根据符号相加、32位数转16位数等特殊指令。在对图像预处理的汇编优化中合理的应用这些向量指令,可以提高算法的并行度,并大大加快运算速度。
视频像素指令主要包括BYTEOP16P、BYTEOP3P、BYTEOPIP、SAA、BYTEAPCK,以及BYTEUNAPCK等。一条视频像素操作指令可以在一个周期内完成4对视频数据分量的加、减、加减混合、取平均值,或者相减并求绝对值等11种视频像素运算。由于视频像素值一般都是按照8位存放的,所以使用视频像素指令可以大大提高包括求SAD、像素插值、8位数和16位数直接转换等在内的各种视频图像运算的速度。
安全特性
在安全性方面,ADI公司的BlackfinLockboxSecureTechnology通过提供一次可编程(OTP)存储器与安全处理模式(Blackfin安全模式),将软件与硬件保护相结合,为开发人员提供实现以上安全措施的手段,其中,在OTP存储器的公共、非安全、用户可编程区域开发人员可以用来存储公共密钥,这样可以通过可控制与可配置的方式来鉴别系统。而在OTP存储器的私有、安全、用户可编程区域,开发人员则可以设置私人密钥等私有器件资产,并保持这些器件资产的机密性与完整性。
软件模块库支持
ADI公司提供多种针对图像处理的软件模块,包括H.264BaselineProfileDecoder模块、能够按比例缩放具有不同输入及输出尺寸图像的增强视频后处理(eVPP)模块、JPEG编码器模块MPEG-2DecoderSimple&MainProfileDecoder库、MPEG-4SimpleProfile&AdvancedSimpleProfileDecoder库,以及MPEG-4SimpleProfile&AdvancedSimpleProfileVideoEncoder模块等,它们都专门针对Blackfin处理器而优化,并经过业界严格验证。
ADI公司还专门针对图像处理应用推出了"ImageToolBox"软件包,该软件包由一系列专用模块组成,并针对图像处理算法的一些常用和基本函数进行了专门优化,可以进行图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。这款软件包有利于降低工程师的开发难度,加速上层算法的实现和优化。
开发环境的支持
用于Blackfin系列DSP处理器开发应用和工程管理的VisualDSP++开发环境主要包括集成了ViusalDSP++内核的集成编译和调试环境(DIDE);带实时运行库的CC/++优化编译器;汇编器和链接器,以及仿真软件和程序例程等。其中,编译器允许程序开发人员用C或C++语言编写信号处理和控制代码,从而方便了系统的开发和维护。图形化的友好用户信息交换界面使工程师能够在窗口中进行工程管理、编辑、编译和调试程序,并在其间快速轻松地切换。此外,VisualDSP++开发工具还与GreenHills软件公司的MULTI环境、NI公司的LabVIEW软件,以及MathWorks公司的MATLAB和Simulink软件相兼容,为系统开发和模块复用提供了一个更加便捷、宽松的环境。