算法不是通用的,基于深度学习的应用系统不但做不到通用,即使对于同一类业务场景,还需要为每个场景做定制、特殊处理,这样才能有可能到达实用标准。这种局限性在计算机视觉领域的应用中表现得尤其突出,本文介绍基于深度学习的交通行业视频结构化类应用在实际使用场景中遇到的一些问题。计算机视觉处理的目标是图片,因此图片直接影响最终算法的效果,实际场景中碰到的问题基本都是由于各种原因导致视频图片发生变化最后影响系统的使用效果。
露天天气环境影响
由于天气变化、光照季节性变化等各种原因,视频画面经常出现干扰性噪声,直接影响到最终目标检测算法的准确性。大致分为以下几类:
(1)光照阴影。道路两旁树木、路牌等投影在路面上的阴影造成的误检。这种情况不是时刻都发生,受太阳光照射角度、强度影响。
(2)路面反光。路面不平偶尔出现反光偏暗的情况,被误检成抛洒物、车辆。这种情况不是时刻都发生,受太阳光照射角度影响。
(3)镜头光晕。受太阳逆光照射,镜头上产生光晕,最终会影响视频画面,产生各种误检。
(4)镜头雨点。下雨天气摄像机镜头沾雨水,最终会影响视频画面,产生各种误检。
(5)大雨大雾。碰到大雨大雾时,直接遮挡路面上的目标,影响检测效果,造成漏检。
(6)风吹导致镜头偏移。交通类视频结构化应用要求摄像机视角不能异常移动(程序控制除外),原因有两个,一是交通类应用需要测速、计数,这两个功能要求事先在视频画面中做一些描点配置,视角偏移会影响该项功能;二是交通类应用只需要检测路面上的目标(其他场景其实也只需要检测特定区域中的目标),如果摄像机偏移,非路面目标容易进入事先配置的检测区域,容易造成误报,比如路牌进入检测区域,容易误检成车辆。
受外在环境影响,算法的检出率大大降低,误报率上升,同时还会影响目标跟踪效果,因为目标的跟踪效果严重依赖于目标检测效果,如果目标锁定不稳定,跟踪就会很差,目标行为分析结果就很差。
——红色箭头处光影和地面箭头一起造成的误检——
外场缺少亮度照明
外场道路夜间没有灯光照明时,人眼分辨目标就比较困难,再加上车辆远光灯照射镜头,系统基本无法工作:
(1)夜间完全无灯光照明时,行驶车辆即使打开近光灯,算法检出率也不高,尤其当摄像机正对车头位置时(正对车尾效果还好)。
(2)夜间完全无灯光照明时,行驶车辆打开远光灯,当摄像机角度偏平(平视姿态),远光灯会直射镜头,画面完全无法分辨。
部分道路夜间有灯光照明时,系统工作效果非常好,几乎跟白天效果接近。目标检测的前提是目标轮廓清晰,如果由于灯光等原因,目标轮廓无法与环境有明显区分,那么系统效果非常差。
——夜间无灯光照明——
三维场景到二维画面的信息丢失
现实世界是三维的,视频画面是二维的,三维到二维的映射会造成一些场景信息的丢失,比如由于透视造成的坐标映射刻度不可知或者需要相当复杂的配置过程,这就导致在进行目标行为分析时会碰到非常多的困难:
(1)停车误检。道路尽头的大卡车由于行驶速度比较慢,车型体积又比较大,从二维画面中观察,人眼很难判断目标是否静止不动,行为分析算法逻辑同样会出现这种情况。
(2)车辆测速配置过程复杂。汽车在平面上匀速行驶,但是通过摄像机画面看到的目标并非如此,画面中观察到的结果是“远慢近快”,目标在画面中的“像素速度”与“实际物理速度”不能简单一一映射,需要复杂的配置过程。
检测区域配置复杂
如果需要进行目标行为分析,系统使用之前需要对每个场景(摄像机视角)进行单独的区域配置、参数标定,这个过程非常复杂,如果场景数目多,这个工作量非常大:
(1)人工标定检测区域。只有在检测区域内部的目标才会被处理,忽略其余检测目标。这样做的好处是可以避免一些误检,因为我们只对道路范围内的目标感兴趣。可以自动识别感兴趣区域,但是这个增加了复杂度,并且识别结果准确性不高。
(2)人工标定计数线和测速参照物。交通类应用需要测速和计数,由于二维画面透视成像的原因,需要事先标定各种参照物,这个工作量不仅大还不太好做,因为现实中可能没有合适的参照物给你去标。
这些事先的配置参数跟场景关联密切,一旦场景变化(比如摄像机转动导致画面变化)这些参数统统失效。
前端视频采集设备不可掌控
在算法、模型固定的前提下,系统准确性严重依赖于视频画面中目标的分布情况,如果前端摄像机安装位置不理想,太低或太高、拍摄距离太远、角度太偏横对道路行车方向等等,都不利于目标的检出率:
(1)摄像机安装太高、拍摄距离太远。就算在高清画面中(1920*1080),道路上的目标依然非常小,只有近处的车辆才能被算法准确检测到,远处的车辆要么不能被稳定锁定、要么不能识别出正确的车型或者其他属性。
(2)摄像机安装太低。车辆经过视频画面中的时间非常短,大车甚至完全将画面遮挡,导致其他目标无法被即使检测到。
(3)摄像机安装角度太偏。由于安装条件有限,大部分摄像机只能安装在道路两侧,车辆车身遮挡、绿化带遮挡,导致对向车道车辆经过时无法准确检测。
现实场景中大部分前端设备都已提前安装完毕,客户无法根据视频结构化的需求去调整前端视频采集设备,成本太高。
——摄像机角度太偏,对向车道被大车遮挡、绿化带遮挡——
摄像机人为干扰
前面提到过,摄像机角度偏移会造成各种问题,比如配置失效,误检增多、计数测速不准。监控类摄像机大部分都可以人为切换视角,焦距变化、云台变化等等:
(1)出现剐蹭等交通事件时监控员人为变焦。当出现交通事故导致车辆停止,行车道出现行人时,监控员通常会拉近镜头查看具体交通事件详细。
(2)出现拥堵等路况时监控员人为切换预置位。当出现拥堵等路况时,监控员移动云台摄像机360度移动查看拥堵程度。
现实场景中,出于各种原因,摄像机会被人为移动,导致事先配置参数失效、误检增加等问题,这时候需要及时通过视频画面发现场景变化、及时停止检测,等场景恢复之后再恢复检测,但是这种“偏移停检”的算法也做不到100%准确。
——监控员人为操控摄像机,场景变化——