66

多目标跟踪 | AI产品经理需要了解的CV通识(三)

 6 years ago
source link: http://www.pmcaff.com/article/index/1105828434821248?from=selection
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

多目标跟踪 | AI产品经理需要了解的CV通识(三)

fetch_file385dbccfb66764a63f2de41902dead19-picture

多目标跟踪(MOT, Multiple Object Tracking

多目标跟踪是CV领域一个热门方向,广泛应用于机器人导航、智能监控视频、工业检测、航空航天等领域。主要任务是找到图像序列中运动的物体,并将不同帧的运动物体一一对应,最后给出不同物体的运动轨迹

一、术语了解

1检测定位目标在图像中的位置。检测方法很多,例如帧间差分法、背景减除法、光流法等等;另外,检测常与识别结合。

2跟踪:在连续图像序列中完成对目标的检测,并把物理意义下同一目标相关联。

3轨迹(Trajectory):一条轨迹对于这一目标在一段时间内的位置序列;是多目标跟踪系统的输出量。

4数据关联:用于解决目标间的匹配问题;是多目标跟踪的核心问题。

5跟踪置信度:跟踪算法反应每一次跟踪的可靠程度。

二、技术流程详解

fetch_file00e68bfe82330f90f568bff6ae843fe8-picture

1、图像采集

多目标跟踪对于图像采集要求评估的因素与人脸识别差别不大。详见上一篇文章《人脸识别 | AI产品经理需要了解的CV通识(二)》。

2、图像预处理

典型的图像预处理方法是直方图均衡滤波

1)直方图均衡

直方图描述了一副图像的灰度级内容,而直方图均衡化的主要目的,是为了提高对比度和灰度色调的变化,使图像更加清晰。

fetch_file0739038ca443fc76815bd252c9b69a11-picture

2)滤波

图像滤波的主要目的是,在保持图像特征的情况下进行噪声消除,具体可以分为线性滤波非线性滤波。非线性滤波相比线性滤波来说,更能保护图像细节

fetch_file7d0932be8bc68884a65776eef1d38582-picture

3、基于深度学习的多目标检测识别

目标检测的实质是多目标的定位,即要在图片中定位多个目标物体。

例如下图,既要定位各个目标,还需要将不同目标用不同颜色的框表示。

fetch_filea51ff5e957eabba00bc88c9231b40cd6-picture

(By 深思考人工智能)

1)基于深度学习的目标检测算法:YOLO、YOLOv2、YOLO9000

YOLO(You Only Look Once)是基于深度学习方法的端到端实时目标检测系统。YOLO的升级版有两种:YOLOv2和YOLO9000。YOLO9000可以识别超过9000类别

YOLO对图片的处理步骤主要分为三个部分:

a.将图片缩放到448*448大小

b.运行卷积网络

c.设置模型置信度阈值,输出结果

fetch_filefd9e716804f4c0b7128032f2db20bf5b-picture

(By 代码学习者coding)

2)基于深度学习的目标检测算法:SSD

SSD(Single Shot MultiBOX Detector),截止目前是主要的检测框架之一,相比Fast-RNN速度更快;相比YOLO有明显的mAP优势(mAP:平均正确率),但不及YOLO9000。

SSD缺点:

a.调试过程非常依赖经验

b.检测小目标的召回率值不是很高

3)YOLO和SSD效果比较

fetch_file1f1cca8d3fd52f627199b3a1ea179ff5-picture

(By 代码学习者coding)

从图上可以看出,YOLO漏检率较高,SSD相对来说表现较好。

4)目标检测识别相关指标

a.精确率:计算方式详见《人脸识别 | AI产品经理需要了解的CV通识(二)

b.召回率:同上。

c.识别精度:目标检测中衡量检测出精度的指标是平均正确率均值mAP(mean average precision)

首先我们了解一下AP(平均正确率)

平均正确率:precision/recall曲线下方围成的曲面面积,如下图: 

fetch_filed44e9544b4773d4cae8bad4fe3f85d77-picture

其中横坐标是recall,纵坐标是precision。AP是这个曲线下的面积,而mAP就是多个类别AP的平均值,这个值介于0到1之间,且越大越好

d.检测响应:检测过程的输出量。

e.识别效率:识别的速度。相对应选择效率极大化的迭代算法。

f.交并比(IoU):可以理解为系统预测出来的框与原来图中标记框的重合程度,最理想的情况是完全重叠,即比值为1。

fetch_file2494fcf5168035e98cbecea5a0a0d8f6-picture

计算公式:

fetch_file32bf42510cf1aff7d420f70def84a022-picture

4、多目标跟踪

下图中的曲线是该目标的跟踪路径,图中线条即代表各个目标的轨迹

fetch_file343a6b1622b09ffe6c9d1b077a50576f-picture

目前跟踪的困难点:

a.遮挡、目标消失后再出现,会有丢失目标的现象;

b.相似目标容易被当成同一目标;

由于以上原因,在实际场景里多目标跟踪可能会发生人员重复检测、漏检、同一目标多条轨迹等情况。如果需求对人员统计非常严格,可以考虑由其他方案完成。多目标跟踪应用于一个区域(一个摄像头画面内),计算该区域内的目标数以及目标跟踪这样的场景会更好。

三、多目标跟踪的应用场景

目标识别常用来确定某画面或视频中包含什么物体、各个物体在什么位置、各个物体的轨迹。因此常用于监控,人机交互和虚拟现实的场景。

1)人员检测:计算画面中行人的数目,并确定其位置。

fetch_file4892ba35af745fc87b29ed3f4d55a959-picture

应用场景:

a.可用于计算区域人员密度过高告警

fetch_filea1d69adebc34cfbcbc6265aef21dcc33-picture

产品功能考虑:在监控画面对区域进行划分,并对人员密度(梳理)进行设置。阈值的设置可以考虑和时间结合,在某一段时间内超过某阈值即可告警。

利用本算法进行人员计算的缺点是如果发生目标丢失,会将同一人的两个状态识别为两个人,使得真实数目与检测数目误差大。

b.可用于范围监测告警(越界监测):例如闯红灯、翻墙等事件。

fetch_file9fe3e4ce5a72c712fb04277fdb54bf5c-picture

产品功能考虑:在监控地图里设置关注区域,当关注区域一旦出现人/车/其他物体,则可立即实现告警。特别适合对入侵行为需要重点防范的场合,比如展馆、监狱、禁区等地。

c.异常行为检测:目标突然发生剧烈变化,如打架斗殴等行为。

fetch_file4b667330868101f4f21ee27af18e6077-picture

产品功能考虑:对目标设定异常行为检测,当出现异常行为时即可告警。异常行为检测适合在对异常行为有需要重点防范的场合,比如学校、公共区域等地方。

2)车辆识别:计算画面中车辆的数目,并确定其位置。

fetch_filea457b38042e52c7f1834bae1f8198b28-picture

还可以和车型识别、车颜色识别、车辆逆流检测等结合。实现对车辆特点的全识别。

应用场景:

a.可用于交通疏散,针对有可能发生拥堵的区域提前进行部署。

b.可用于追踪黑名单车辆:车辆检测可识别车辆类型、车辆颜色等等,这些信息均可用来定位目标。

c.防车辆套牌方案:车辆识别和车牌识别结合,防止车辆套牌案件发生

3)应用于智能驾驶方案:目标识别和场景分割、SLAM结合,可识别出道路路况,提供智能驾驶所需要的路边物体信息。

fetch_file30fe76ff0be14d953844440221b58e51-picture

四、多目标跟踪监控产品系统分析

多目标跟踪监控类的产品现在已经有不少,拿商汤的软件产品作为典型例子:

fetch_file2520a13266335305e7fd2945c752c007-picture

1、产品功能分析

产品的功能主要有以下内容:摄像头个数、行人人次、非机动车车次、机动车车次、告警次数、监控画面、目标抓拍。

我们从大的划分来看,主要是四块:设备、统计、监控、抓拍。除了这四块之外,根据经验我们还需要考虑到历史的分析和检索

fetch_file646cfd12478e4d708d3035a829566b94-picture

1)设备

商汤的产品只体现了设备的数目,而更重要的是设备的筛选功能。其实设备的控制非常复杂,我们常常为了监控摄像头的状态设计一个新的管理系统。在另外一个设备的管理系统中,我们需要跟踪设备的使用状态,设备的详细信息(对应的摄像头编号位置等),以及摄像头的定位。

2)统计

统计除了上例时间段的统计之外,还可以进行某一时刻某一区域上的目标统计。某一时刻的统计的意义比时间段统计在一些特定需求上更为重要。特别是某时刻目标数如果超过阈值,跟告警系统匹配,能够捕捉群体行为。某时刻的目标数目是否超过设定阈值,是多目标最常见的需求,也是典型应用之一。

3)监控

监控界面结合了多种类别的识别:例如行人的性别、头发长短、衣物类型等等。这也是多目标最“酷炫”的一部分,人们常常被系统的自动识别吸引。多目标在前端的表示常常是一个Boxing加一条尾巴,即目标的定位和轨迹。而目标旁的标签(属性),则是多目标识别和其他垂直方向识别的结合。

产品在这块有两部分工作:

a.跟进多目标的漏检率以及IoU,以及思考同一管道多种属性识别的结合,以应对不同场景需求。更偏向技术类。

b.关注监控系统的流畅性稳定性。更偏向业务类。

4)抓拍

抓拍也是体现多目标价值的典型功能之一。抓拍能将监控中的目标单独地隔离出来,这是后续检索目标功能实现的前提。抓拍到的图片在界面展示时可利用缓存,之后建议存储至云端。

5)历史

a.搜索:跟普通搜索系统相比,多目标系统必不可少的一个功能一定是图片检索。在系统中利用文字(与多目标的标签关联)或图片进行图片检索,能更容易查找到目标。

b.分析:利用大数据技术,对历史的人流、车流、告警记录进行分析,有利于目标管控和后期阈值设置。

2、产品系统分析

1)实时性

监控系统最重要的一点是实时性,相比于普通监控产品,AI监控系统对设备硬件的要求更高。图像处理速度和网速需要被综合评估,监控系统的延时现象需要控制在用户可接受范围内。

2)耦合性

AI监控系统链路长、设计到的子系统众多,因此在产品架构设计上需要考虑到程序之间的耦合性。耦合程度太高会使系统的升级更新与维护更加困难。

3)稳定性

这里的稳定性不仅包括外界环境的影响,还有系统自身算法更新、程序更新对系统的影响。特别是算法更新,不仅需要在指标上有所提高,还需要具有一定兼容性。算法更新常常导致程序短时间内无法使用,所以每一次算法替换都需要谨慎考虑。

以上所有内容,就是本次对多目标跟踪的梳理。文章参考了大量文献,也结合了本人的实战项目经验,希望能通过这样体系化的梳理让大家有所收获。也非常欢迎大家和我沟通对多目标跟踪的见解和看法,可以关注我的公众号“AI产品的自我修养”,记得留言给我哦~

PS:非常感谢@黄钊hanniman 对本文作出的指导。黄钊hanniman,图灵机器人-人才战略官,前腾讯产品经理,5年AI实战经验,8年互联网背景,微信公众号/知乎/在行ID“hanniman”,饭团“AI产品经理大本营”(http://fantuan.guokr.net/groups/219/),分享人工智能相关原创干货。

附:参考文章如下


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK