( ̄▽ ̄)"主要以行人作为例子,其它也是一样的思想。
1、总流程概述
① 建立拓扑
对于跨镜追踪,第一个任务一般是建立初步的摄像机拓扑,然后统计每个拓扑点上的运动目标到达的时间集合和离开的时间集合,计算两个集合之间的关联性,建立物理连接。其中,目前比较广泛的计算方式是利用高斯和互相函数的拓扑估计方法来计算节点之间的互相关函数。(当然,这种主要是针对于只有每个摄像头时序画面,其它什么信息都没有,给到的摄像头数量又不知道完不完整的情况,一个个串联起来统计比较麻烦的情况,才会用到计算关联,其实一般场景下,拓扑关联手画也就画出来了。)
② 追踪物体设予关联
建立拓扑之后,第二步便是建立摄像机间的目标关联,当一个运动目标第一次出现在一个摄像机的视野中时,应该首先确定该运动目标的身份,也就是赋予一个Id,然后将其和消失的目标进行关联或者建立一个新的身份标识,而目标关联的这一步便是基本的跨镜行人重识别。
③更新目标模型
最后一步则是,目标模型的更新和学习,一般摄像头目标关联后会出现两种结果,一种是该目标和所有候选目标集中的运动目标匹配失败,说明此为新出现的目标,应当创建新的标识身份,并建立该运动目标的模型并加入到计算机的序列池中。另一种则是目标与候选目标匹配成功,则证明该目标是从其他摄像机中离开的目标,这种情况应该赋予原来的标识并继续跟踪。
2、行人检测概述
① 基于行人特征的检测
在早期的特征提取中,大多数的特征提取都仅使用一种外观特征或者一种运动特征,外观特征主要有原始灰度和轮廓,也有少量的是使用了颜色. 由于每种特征的针对性不同 ,只使用一种特征的检测都难以获得较好的检测性能。随着行人特征提取类型逐渐发展,提取类型不仅仅只是外观和运动特征,目前来说分为三类:底层特征,基于学习的特征,以及混合特征。
② 基于背景建模与模板匹配的行人检测
背景建模首先是提取出前景运动的目标,在目标区域内进行特征提取,如计算运动区域内的残余光流,提取行人腿部运动特征或构建一个自适应时间延迟神经网络来判断是否是人体的运动图片序列,然后利用分类器进行分类,判断是否包含行人,但背景建模目前主要存在的问题是必须适应环境的变化。
而模板匹配则分为两种,全局匹配和局部匹配。全局模板方法则是基于轮廓的分层匹配算法,构造了大量的轮廓模板对行人进行匹配,从而识别出行人。局部匹配方法则是利用不同大小的二值图像模板来对人头和肩部进行建模,通过将输入图像的边缘图像与该二值模板进行比较从而识别行人。
③ 基于统计学的行人检测
统计学是目前行人检测最常用的方法,根据大量的样本构建行人检测分类器。提取的特征主要有目标的灰度、边缘、纹理、颜色、梯度直方图等信息。分类器主要包括神经网络、SVM、adaboost等等。
3、追踪方法概述
①质心追踪
质心追踪方法主要是通过对检测出来的物体的中心坐标进行路径预测,目前比较推荐的质心追踪算法有:dlib、Kalman Filter(质心追踪算法有很多,但个人来说,比较推荐喜欢这两种,dlib有第三方库,方便快捷,Kalman Filter则是老经典的算法了,像是deepsort那些都有包含这个算法在内)等,目前来说,如果是对于会出现遮挡以及会时不时隐身不见得行人来说,一般都会配合特征提取,按照:检测 、特征提取+运动预测 、相似度计算 、数据关联这四步去做跟踪。
②其它
主要记录两个,一个是适合空对地和地对地场景。这个算法跟踪场景中的背景锁定追踪,依据每个点的运动,从而估计整个场景全局运动,场景中的目标和定位是自动选择的。还有一个是根据边缘检测,这种最好就有一个比较固定的边缘部分,某个部分从不同角度看起来变化不会太大,而其它部分可以多变,去做使用,拿人举例的话,把整个场景二值化之后,圆圆的脑壳是不怎么变的部分,而其它边缘都是不断改变的。
4、见得比较多的重识别模型概述
①cosine_metric_learning
余弦度量学习分为余弦学习和度量学习两部分,余弦学习主要是计算两个对象之间的余弦距离来度量它们的相似程度,度量学习主要是解决聚类问题,通过学习后使得同类对象之间的度量距离较小产生聚集的效果,通过深度学习方法来学习对象之间的余弦距离,最后通过该网络得到的特征表达向量按照最邻近距离查找所属的聚类。
② 万能的ResNet系列
目前网络上很大一部分ReId的研究都是基于ResNet50模型修改版,以多粒度网络(MGN)为例,它使用了Resnet50前三层提取图像的基础特征,而在高层次的语意级特征作者设计了3个独立分支,第一个分支负责整张图片的全局信息提取,第二个分支会将图片分为上下两个部分提取中粒度的语意信息,第三个分支会将图片分为上中下三个部分提取更细粒度的信息。最终使用256维特征作为该行人的特征进行比较,使用欧氏距离作为两个行人相似度的度量。
③ OSNet模型
全尺度网络是专门为ReId设立的神经网络结构,它不仅能捕获不同的空间尺度,还能封装多个尺度的任意组合。我们称这些同构和异构尺度的特征为全尺度特征。这是通过设计一个由多个卷积特征流组成的残差块来实现的,每个残差块检测一定尺度的特征。重要的是,引入了一种新的统一聚合门用输入依赖的每个channel权重进行动态多尺度特征融合。总的来说就是,含有多个网络分支,可以搞出来好几个预测结果。
掺杂大量个人理解,记录准确性不担保,随时改(●ˇ∀ˇ●)