伴随着城市化进程的不断加快和城市经济的高速增长,以及人们安全意识的不断提高,对视频监控的需求越来越强烈,其应用场景和使用环境也越来越丰富。不同的场景需求对视频监控技术提出了更高更复杂的要求,不仅仅要高清,更要智能。显然已经从过去的“看得见”、“看得清”到如今的“更好看”、“更易看”。
“更好看”——对视频图像处理技术的更高要求
就像对手机拍照像素需求的与日俱增一样,人们现今已经很难再接受分辨率低、噪声大、动态范围低的视频图像了。这不仅要求安防企业在光学部件的选择上不断追求更高的品质,在视频图像处理技术上更是不能落后。目前主流的视频图像处理技术都在与时俱进,以满足用户不断变化的需求,这里介绍一下当今比较热门、比较前沿的图像处理技术的发展情况。
![](/res/201604/28/20160428_1614590_27-1_796886_140493_0.jpg)
低照技术示意图
一、低照技术
这只是一个很笼统的称呼,对低照表现的要求是指在缺少光照的环境条件下仍然能展现出清晰明亮、色彩丰富、较低噪声的视频图像,宇视星光级相机就是在这种需求下应运而生的。该技术不仅对传感器、镜头的品质有很高的要求,还涵盖了ISP(图像信号处理)中的夜间图像增强、2D 降噪、3D 降噪等技术, 同时如何权衡以上功能,以得到最优质的画面表现,也是对ISP 调校技术的考验。
二、宽动态技术
宽动态技术可以分为数字宽动态和多帧宽动态两种。数字宽动态是指,对单帧图像利用色调映射技术使得画面的暗区和亮区同时能够看清,即增大图像动态范围。而多帧宽动态则是通过对同一场景获取多帧曝光程度不同的图像,然后利用图像融合和运动估计技术,将多帧画面合成一幅,以达到同样的目的。由于多帧宽动态获得的信息较单帧多,因此通常情况下可以获得更大的动态范围,和更自然的视觉感观。
![]() 数字宽动态处理前(左)和处理后对比 | ![]() 多帧宽动态处理前(左)和处理后对比 |
三、去模糊技术
品质再高清的相机,也可能由于人为拍摄的原因或者被拍摄物体本身的运动而导致模糊,分为失焦模糊和运动模糊两种情况。模糊本身在数学上来说,是清晰图像与扩散函数卷积的结果,因此去模糊就是一个逆卷积的过程,失焦模糊和运动模糊的主要差别是扩散函数形式上的差异。
![]() 失焦模糊处理前(左)和处理后对比 | ![]() 运动模糊处理前(左)和处理后对比 |
四、透雾增强技术
视频图像透雾增强技术,一般指将因雾气、水气和灰尘等导致画面朦胧不清的因素去除,使画面重新变得清晰通透,恢复原有的色调、饱和度,获得了良好的图像质量与视觉感受。宇视的透雾技术,已不再局限于简单的对比度增强而已,而是通过对雾霾浓度建模,获得大气分布情况,进而有针对性的去除,保持画面自然,并且不会丢失任何有用信息。
![](/res/201604/28/20160428_1614595_27-6_796886_140493_0.jpg)
基于大气模型的透雾技术与对比度增强技术对比示意图
另外值得一提的是,与利用图像处理算法进行透雾增强技术各有所长的,还有宇视的光学透雾技术。其原理主要是利用近红外波段对大气的穿透性要优于可见光波段,因而能在浓雾霾情况下,获得可见光图像所获取不到的信息。
![](/res/201604/28/20160428_1614596_27-7_796886_140493_0.jpg)
光学透雾处理前(左)和处理后对比
五、超分辨率重建技术
提高图像分辨率最直接的办法就是提高采集设备的传感器密度,然而高密度的图像传感器价格相对昂贵,在一般的应用中难以承受,同时传感器阵列密度目前也已接近极限。解决这一问题的有效途径是采用基于信号处理的软件方法对图像的空间分辨率进行提高,超分辨率重建技术可以分为单帧超分辨率重建和多帧超分辨率重建。单帧超分辨率通常是利用学习的方法对低分辨率图像进行恢复;多帧超分辨率的核心思想是用时间带宽(获取同一场景的多帧图像序列)换取空间分辨率,实现时间分辨率向空间分辨率的转换。
“更易看”——减少使用者的工作量,智能必不可少
近几年来随着监控行业的发展以及平安城市等大型工程的建设, 成千上万的视频图像给广大工作人员带来无力管理和监看等问题。应用智能分析技术对视频画面中的海量数据进行高速分析, 过滤掉用户不关心的信息, 仅仅为监控者提供有用的关键信息, 从而解决了视频量大工作人员无力监管等问题, 因此受到越来越多的关注。
目前国内智能分析技术已经不再局限于检测和识别,还逐渐发展为跟踪预测、行为分析等众多应用。检测是指通过前景提取等方法对画面中物体的移动进行检测,通过设定规则来区分不同的行为,例如拌线、周界等;识别是指利用模式识别技术对画面中所需要监控的物体进行针对性的建模,从而达到对视频中的特定物体进行检测、识别、分类等相关应用,例如智能检测与识别、车型识别等;跟踪是指对识别到的特定物体的运动轨迹进行跟踪预测,在视频图像序列中表示感兴趣的物体或者将不同时间序列中出现的物体浓缩进短短几分钟的画面,例如视频浓缩、摘要等;行为分析是指对运动物体的行为进行判断,并在使用者设定的条件下进行自动告警与记录,如离岗、徘徊、打架斗殴以及表情分析等。
智能处理的压力通常集中在性能上,如何在有限的服务器资源上同时满足更多路智能分析的需求,是除了算法效果以外开发者需要关注的另一个重要问题。目前越来越多的高速处理器得到普及,除了DSP 以外,GPU 和FPGA 的主流厂家如Intel、Nvidia、AMD、Altera 等纷纷推出基于OpenCL 平台的通用计算开发,宇视也基于GPU 和FPGA 进行了一系列的智能分析算法的优化加速。
GPU 与CPU 的差别在于更少的逻辑控制单元和更多的算术运算单元。由于GPU在逻辑判断方面的弱势,导致其通常不会用作主控芯片,而是与CPU 配合使用,处理大量数据计算问题。而针对数据交互的瓶颈问题, 各大厂家也各自开发出unifymemor y 等解决方案,减少数据拷贝。
![](/res/201604/28/20160428_1614598_27-9_796886_140493_0.jpg)
GPU 与CPU 资源对比
按应用类型可以分:
控制密集型(Control Int ensive),例如searching、parsing 等等,适合于CPU 的任务并行处理。数据密集型(Data Intensive),例如图像处理、数据挖掘等等,适合于GPU 的数据并行处理。
计算密集型(Compute Int ensive),例如迭代操作、金融建模等等, 适合于FPGA 的流水线并行处理。
GPU 的单指令多数据并行(SIMDParallelism)工作方式和FPGA 的流水线并行(Pipeline Parallelism) 工作方式对比如下图10 所示。GPU 是硬件固定的(fixed hardware), 同一个处理单元在每个时钟周期可以加载不同的指令,但是在每个时钟周期都是处理的同一条指令,并且无论处理何种指令,都必然占用一整个流处理器的资源(包括指令发射器、寄存器等);而FPGA 相当于是指令固定的(fixed instructions),每个时钟周期数据流水似的经过不同的处理,这在运行过程中不会发生变化,而不同的操作会消耗不同的资源,这在关注Performance PerWatt 时可能会有更好的表现。
另外一个重要的差别是遇到分支时,尽管GPU 和FPGA 都不像CPU 那样善于处理分支,它们会把分支都进行处理,但二者的做法也很不一样。GPU 由于为单指令多数据操作,只能通过时间上的“堆叠”,一条分支一条分支的处理,这种情况下GPU 的效率明显降低; 而FPGA 可以通过硬件的“堆叠”来同时处理多个分支,当然需要以牺牲资源为代价,如下图11 所示。
![]() SIMD 并行与流水线并行对比 | ![]() SIMD 并行和流水线并行分支行为的对比 |
总结——展望:万物联网
视频图像处理技术未来的发展趋势,绝对不仅仅是局限在技术本身而已。如何与其他技术结合、融合,来创造出更灵活、更人性化的应用,适应物联网浪潮的发展,才是未来值得关注的方向。