课程实录:视频流车辆计数与轨迹跟踪
May的山楂木 发布于2021-05 浏览:12819 回复:1
1
收藏

主题:视频流车辆计数与轨迹跟踪

本次百度EasyDL打造的【零门槛AI开发实训营】聚焦多个产业级经典项目,场景覆盖自动驾驶、智慧农业、视频流车辆行人检测、垃圾分类等实用案例,从AI开发流程入手,讲解不同环节需要关注的技术重点,配合模型开发实战演示,为企业AI应用开发者提供零门槛上手AI项目开发的实用课程!

欢迎大家来到百度EasyDL的零门槛AI开发实训营,本次共六次课,今天是第四节,已经结束的课程大家可以扫描右侧二维码进去观看,今天我们主要是讲视频流车辆计数与轨迹跟踪。

课程亮点:

    零门槛:EasyDL零门槛AI开发平台,无需算法基础即可上手。

    重实战:多个产业级AI项目开发实战,课后作业加强巩固,学习更高效。

    讲技术:每个项目精讲一个技术点或应用场景,快速获取核心重点知识。

    可落地:每节课配合不同部署方式讲解,贯穿企业模型开发应用全流程。

本节课的同学会有一些专项福利,一是完成听课打卡与作业提交,赠送10小时V100训练时长,社群不定时好礼掉落,参与社群互动,抽取多款百度定制的极客周边。

这一节课主要讲的是视频流车辆计数与轨迹跟踪,主要是由我和我的同事阿达为大家一起讲解。分享主要分三部分,一是目标跟踪模型任务介绍,第二部分是如何提升目标跟踪的精度,第三部分是实操,教你从训练到部署打造高精度的目标跟踪的模型。

首先介绍一下目标跟踪的应用场景。第一个场景是零件流水线计数,这个业务场景是指工业场景下需要对流水线上的零件进行计数,利用视觉技术可以以极低的成本去实现功能。第二应用是智慧交通,车辆人流计数与轨迹跟踪,业务背景指的是智能交通场景下需要对车辆及人流进行计数及轨迹跟踪。

在应用中存在一些任务难点:

- 目标物之间存在遮挡,容易发生误召,漏检或者ID切换

- 目标物密集

- 有一些目标物还是比较小。   

 

介绍一下EasyDL零门槛AI开发平台,开发平台分三部分,第一部分就是数据,第二是模型,第三是部署,我们现在支持了图片、文本、视频、音频和结构化数据的格式的输入。在数据准备环节可以对数据进行采集、清洗、扩充、标注和可视化管理,模型训练完以后还可以进行数据回流,数据准备完了以后可以进入模型训练,模型训练我们提供了非常多提升模型精度的能力,提升模型训练速度的能力,帮助用户用比较短时间获得高精度的模型。当模型训练完成以后就可以进入到模型部署环节,提供了像公有云部署,私有化部署,设备端部署和软硬一体部署方案。现在也是支持了工业质检,安全生产,智能硬件,零售快消和互联网场景应用能力的构建。

现在开始四讲目标跟踪任务综述。目标跟踪任务定义是指给定视频流,对多个感兴趣的目标进行同时定位,并且维持个体的ID信息记录它们的轨迹。

 

这一页展示了目标跟踪和物体检测任务的差异,因为它都是能够输出检测信息,两者差异在哪呢,对于物体检测而言,输入一短视频流,它能够输出像类别和位置的定位信息,但是像图三帧没有任何关联信息,因为物体检测无法对帧与帧进行建模。下面目标跟踪模型增加了一维物体的个体ID信息,利用这个模型可以构建出帧和帧之间的联系,比如说左侧黄色框的人属于ID1,第二个框还知道是ID1,第三个也是这样。对比上面的模型,就无法构建,第一帧的物体到第二帧就不知道是哪个人了。

我们也从应用场景角度看一下两个任务的差异。对于物体检测而言,它的场景像钢筋计数,工业质检,电力巡检,麦穗检测,目标跟踪像增强现实,智慧交通,医疗分析,牲畜盘点。两者任务差异点是在于目标跟踪需要持续追踪物体运动状态,物体检测只需要检测出物体在某个瞬间某个点,某个静止时刻的状态,这应该是两者非常本质的差异。

我们来看目标跟踪的主流的算法框架,video sequence展示了独立的检测器和独立的跟踪器,也就是一个两阶段的框架,输入一段视频帧先送到检测器提取出感兴趣的物体的位置和类别信息,我们把感兴趣的区域送到下一个环节,送到roi特征提取环节,提取出roi,把位置信息送到运动预测环节,提取出比roi位置区域更加精确运动状态特征,把两者静态图像特征和运动准备特征再进行融合,送入到下一个相似度计算的模块,计算出感兴趣的roi区域,和历史的物体有一个ID库相似的程度。下面框架是联合优化的框架,核心差异就是在这里,视频通过提取特征直接送到这么一个统一的模块,同时可以输出感兴趣检测框和ID特征,后面两个差不多,两个算法框架有一些有劣势对比。第一个两阶段,缺点就是效率低,检测和跟踪器需要独立优化,当然这种独立优化是说既是缺点,有时候也是优点,检测器可以单独训练,跟踪器也可以单独训练,这是它的另外一个优点。下面这个框架优点是效率高,第二是检测与跟踪网络课实现联合优化。也就是说一次模型训练可以优化到两个模型,将检测和跟踪进行联合的优化。

我们以目标跟踪里经典的模型deepsort讲解两个跟踪的总体,我们在这两个框架里有一些核心模块的特点,像检测器,reid特征提取器,都是使用了深度学习的模型,像运用状态估计使用是卡尔曼滤波算法,还有相似度计算,融合图像特征和运动特征,数据匹配是匈牙利算法,我们对这些核心特点做一下介绍。首先是深度模型,具有更强的特征提取能力和目标定位能力,利用目标检测深度学习模型来提取目标物体框,比如对之前看到的这张图输入到目标检测模型里面,可以输出人的这些位置的定位信息,对于这些目标跟踪信息我们不赘述了,因为之前课程中有非常详细的介绍。第二我们把位置定位出来以后,把对应的人扣出来,再送到reid特征提取,就是深度模型,提取出像特征向量1,特征向量2,具有一定维度,小一点的维度都是可以的。接下来介绍一下运动状态估计,这里采用的是卡尔曼滤波算法,这是非常经典的算法,在这种自动控制,像工业领域应用非常多,在deepsort是用卡尔曼滤波估计物体运动状态,对于跟踪而言,需要估计的运动状态其实就是一个检测框,它的位置和移动的速度。我们根据历史帧的信息,其实能够得到现在帧的检测框的位置和估计值,根据现有帧的检测器,也可以得到现在检测框位置的观测值,已经有两个数值出现,这里就是卡尔曼解决的问题,卡尔曼滤波是综合了估计值和观测值,从而获得更加精准的数值。我们输入的变量是四维检测框相关变量,和四维检测框相关变量的动量。跟踪问题检测框可能不断的变化,因为物体是不断的运动,变大变小就代表的动量,通过当前的帧的修正可以得到现在的估计值,把估计值拿到下一帧,预测下一帧的数值,预测出来以后又通过修正进一步进行迭代,通过不断的迭代卡尔曼滤波估计出来的运动状态会越来越精准。当然卡尔曼滤波本身有一些假设条件,我们也不赘述了,对卡尔曼滤波更有兴趣的朋友可以看一下网上的综述或者论文。

再讲一下相似度计算环节,目标是计算当前的检测框特征和历史ID库特征的相似度。左侧一种方式是计算图像特征和运动特征和距离的相似度,这个流程是输入一个视频流,通过检测器找出检测框,这就是之前说的检测框拿到提取reid的特征,这个体征就是当前静止状态的图像特征。这里有一个历史帧的集合,从里面拿到之前帧的图像特征,我们把两个特征进行距离计算,我们认为这是一个图像的特征。右侧就是利用刚才的卡尔曼滤波算法,输入之前帧的轨迹和当前帧的轨迹,通过两者结合就输出了更加精准的检测框的位置,我们把输出来的检测框和当前检测器输出的检测框同时输入到一个距离值中,反映了这个运动状态的不确定性,然后再把这两个距离进行融合输入到相似度计算的矩阵里面。有一些情况下,我们有一些情况图像会有一些遮挡,这种情况下图像特征不太明显,我们还有一种兜底方案,我们将视频流输入,也是通过刚才的流程,通过卡尔曼滤波得到预测的框和检测框进行IOU计算,利用IOU矩阵作为相似度条件,这个像上一帧成功了,这一帧没有匹配到,可能就是当前帧被遮挡了,通过这种方式是可以输出的相似度的矩阵。

有了相似度矩阵就要进行数据匹配,这里采用的是匈牙利算法,是解决带权二分图的最大匹配问题,这里不再介绍术语含义了。直接拿一个实例进行介绍,先介绍1-相似度矩阵,匈牙利算法就是解决怎么在最低成本情况下,对历史ID库体征和当前预测框特征进行匹配,看第一个图,当前帧是输出了一些ID1、ID2、ID3,还有历史的ID1、ID2、ID3,现在就要进行一一匹配,三个矩阵里要找到能够一一匹配的点,要满足最低成本。我们看一下这一行最小的值是0.25,这一行是0.35,这一行是0.2,第一步拿每一行减去最小值,一减就得到0、0.2、0.1这么一串矩阵。为什么做这一步呢,我们可以考虑一下,计算一个最低成本是我们做了一般对整个行减去同样的值,是做一个等价变换,得到的结果是说我们能够找到最低成本下面的位置信息,通过这种等价变换,我们在这个矩阵里找最低成本的对应关系和在之前的矩阵里找是一样的。我们同样的思路,第二步就是对这一列减去每一列的最小值,我们发现这里有四个0,我们找覆盖这些0的直线数,拿到两条直线的时候,我们可以看这个图,这四个0怎么凑都无法对三对三匹配上,这里有一个定理是最少的直线数要和当前的制3是匹配上,要相当那么认为结束,2小于3,说明匹配没有结束,我们就要进入下一个环节。

 

下面一个环节是我们和直线就相关了,这时候我们找到没有覆盖红色区域的最小的值就是0.05,可以看到最右边最下面,找到这个0.05以后,对这个直线没有覆盖的行,就是第一行和第三行直线没有完全覆盖,这两行减掉0.05,这时候得了负数,不用担心,因为下一步会把这个负数变成0的,所以对于负数不用惊慌,为什么会展现负数的成本,也是为了给大家看清楚每一步等价变换得到的形式。这两步其实是可以结合起来的。第六步是我们对直线完全覆盖的列,完全覆盖就是第一列,加上最小值0.05,这里是加,这时候负数全部变成0了。到这一幅图我们发现有5个0了,我们再拿一条直线框出能覆盖所有的0,这时候必须需要三条直线,到了这一步我们的匹配已经结束了。为什么呢,你找到最上面的这个0,最中间的这个0,和最右下角这个0,同时找到,我们的匹配问题就结束了。也就是说通过匈牙利的算法是能够找到有效的最小匹配的对应关系,这种对应关系在整个流程里面都是做了一些等价变换,没有说有不明确的步骤,当然整个推导过程涉及到一些定理的应用,这些定理我们就不再赘述了,有兴趣可以看一下匈牙利算法的论文。

接下来我们看一下怎么提升目标跟踪的模型精度

对于单帧数据标准有一个要求就是不漏标,在之前物体检测里面也说了,标注是要求不错标和不漏标,我们现在不说错标,现在的场景为了简单就认为是单标签的物体跟踪的模型,这个时候不能漏标。比如第一张图,后面两个人是存在的,如果不标注的话,这两人会成为背景,那模型训练的时候会认为后面的人不是人,其实他本身是人,这样的话模型就会陷入一种自信的表现里面,最后的效果里面不会好,我们要修正及把后面的两个人有扣出来。对于连续帧表述的时候,这个定位一定要精准,比如对于老鹰进行一个框定,第二和第三图老鹰的位置已经错开了,为什么呢,这个云因各位可能会觉得奇怪,标注的时候不太可能标歪吧,这是视频跟踪的标注工具,往往会出现差距的能力,这些框是自动生成的,这是有一些前提的假设,像标注不精确的场景往往是物体有一些非匀速运动或者曲线运动标注的时候尤其要注意的,我们要检查修正过来。

再看一下目标跟踪模型常见的评估指标,第一就是MOTA,衡量了跟踪器在检测物体和保持轨迹时的性能,与物体位置的估计精度无关。MOTP是衡量检测器的定位精度,这两个是衡量的方面不一样的。IDFDscore是评价了跟踪器的好坏,召回率评价了跟踪器的召回能力,IDSW衡量跟踪器对于ID切换的程度,下面就是平台提供的指标,也是EasyDL提供这些指标的可视化,由评估指标及badcase我们可以发现上面的问题。

我们看一下目标检测常见的难点:

第一个就是遮挡,上面是机器人,下面手伸过去了,就把人挡住了,这种情况下要把它检测出来是需要有更强的检测器,光有检测器还不够,还要增加一些遮挡系数的定义,帮助模型定义这种遮挡场景下应该怎么检测,提供这种遮挡系数。

第二个难点是消失再出现,后面这些人为了让大家看清楚想关注的重点,所以没有标注,实际一定要标注上,这里有三个人,第二张个图第一个人被遮挡住了,第三个图第一个人出现了,这个ID就变了,从1变成了4,这就出现了ID切换,出现4的时候,reid提取的特征和1的特征不太一致,所以发生了切换,它认为是新的人。怎么解决这类问题呢,这个优化思路上就需要更好的reid特征的检测器。

第三个难点是物体尺度变化剧烈,比如云放一辆车开近了,开到这里,这个车和原来车变化幅度是非常大,从优化思路上面,从检测器的层面,需要配置自适应anchor算法,增强对于不同尺度物体召回的能力。从相似度计算层面,对于reid特征变化大的,需要用运动特征判定相似度。从实践经验上看,对于这种场景模型预测的帧是要密集一些比较好,帧数越高,轨迹预测的持续性会更好。

第四个难点是形态的变化大,比如同样的篮球运动员,下一帧是运动的状态,这两帧特征发生了变化,优化思路是增大运动特征在相似度计算中的比重,并辅助reid特征更新。像这种reid特征更新,像第一帧的图像和第二帧的图像都是一个人的状态,这两帧的特征是我们应该能够用一定的策略结合起来的,而不是说这个reid特征不断的更新,但是历史的就遗忘掉了,所以reid特征也是探究的一个问题。

刚才我们模型上讲了一些事情及我们也在模型调优上面讲了一些,发现目标跟踪这个事情是很复杂的情况,模型调优又非常困难,怎么在实际场景下引用这个目标跟踪呢,这边介绍一下EasyDL可以快速获取目标跟踪AI服务,我们以零件计数场景为例,先选择一个模型,上传并标注数据,支持CVAT标注工具上传,即将支持在线标注。然后就是模型的训练,目前支持单标签多目标跟踪的模型训练,多标签多目标跟踪即将上线。然后发布模型,现在支持像Linux英伟达GPU服务器,Jetson软硬一体部署即将上线,然后会进入集成的流程,集成在GPU服务器中的计算。这里介绍服务端部署的情况,GPU服务器部署,还有Jetson软硬一体部署,Linux、WindowsGPU、CPU,无损加速,我们都会支持上线的。

接下来就进入目标跟踪模型训练实操,会从数据集准备,训练模型和服务器端部署讲解,我们请阿达进行演示。

 

大家好,刚刚哈利老师跟大家讲了一些原理上面的东西,有的小伙伴觉得这些非常深奥,但是利用EasyDL平台进行目标跟踪的模型训练以及部署其实是非常简单的,接下来由我给大家演示一下。

我们可以在百度上面搜索EasyDL,进入官方主页。在这里可以看到有EasyDL提供的一些通用产品,图像、文本、语音、视频等等。我们点击EasyDL视频,点击立即使用,点击目标跟踪。

进入到这个页面之后,可以在这里创建模型。比方说现在是车辆检测,创建一个车辆检测,模型归属个人,功能描述。创建好模型以后就点击训练,训练的时候需要数据,在这里我本身自己有一些标注好的数据,从数据总览可以看到,至于我们怎么标注数据的呢,Easy Data之后会上线在线标注,如何利用cvat开源工具进行数据标注,由于时间有限我提前录屏了一个。来看一下怎么利用cvat进行数据标注,进入cvat在线网页,创建项目目标,就是任务,这里有一个frame step,在这里我们可以自己设置一些数据,比如说1、2,因为中间的视频是进行差值自动的标注,所以说间隔越小,我们自己人工标注的更加精细,可能出现漏标或者错标的概率就会更小。在这里上传了本地的视频,在这里用框标注选择的物体,这一帧图像上面有三辆车,可以看到这边的框里出现了车ID1、ID2、ID3,可以看到mp4视频有多少帧,这是第一帧,第二帧,我们可以进行这样一个框的调整。在第71帧时候发现这里多了一个小车辆,这里出现了ID是4的车辆。还是像刚才一样,每一帧进行框的调整,到最后这个视频一共有两百多帧。标注完成以后就点击保存,保存之后返回这个Tasks,然后导出,是MOT1.1格式,然后进入到数据总览里,就可以对刚才下的包进行导入。等它上传完了以后确认返回,这就是一个完整的标注和数据导入的流程。

回到目标跟踪这个任务训练页面上面,训练模型现在部署方式只有服务器端,之后我们会上线一些Jetson系列软硬一体部署,还有Windows和LinuxCPU的部署,我们在这里添加训练的数据集,现在只有单标签,之后会上线多标签的支持。成功添加数据集以后可以点击开始训练,模型训练在这里可以展示大概的进度,完成以后会以短信通知到你。下面是我们之前已经训练好的车流的检测目标模型,在这里可以看到完整的评估结果,在这里可以点击申请发布,为了节约大家的时间,我们有一个提前录屏的结果,告诉大家如何进行LinuxGPU离线部署。

这就是刚刚看到的模型的评估报告,在这里点击申请发布,现在是本地部署,Linux英伟达GPU,这里填写一些基本信息,这是显示的状态是发布中,一会就发布好了,我们可以看一下详情,下载这个SDK的任务包,这里有一个获取序列号,我们可以新增一个测试序列号,激活后有30天的试用时间,然后在LinuxGPU服务器上面把下载好的包解压,进入这个CPP,SDK的包,在这里可以看到用到刚申请的测试序列号,把它进行导入,激活这个测试序列号,然后就可以对这个视频进行预测。

在这里可以看到,这个视频也是一张图像差不多是200多毫秒,相当于一秒钟可以预测5张图片,一个小的视频差不多两三百张,我们就可以把目标跟踪的模型跑一遍,把效果跑出来看一看。刚刚跑的车流检测的效果给大家展示一下。这些就是每个车流检测以后会标一个ID号码以及目标框。这是一个停车场周期的情况。

Q&A

Q:为什么是一个是余弦距离,一个是马氏距离?

A:这个是为了识别图像和图像的体征,没有用余弦距离,马氏距离是用来衡量运动的不确定性,运动状态之间是有很多的变量,每个变量之间的关系我们在余弦距离是可以的,马氏距离可以考虑到输入的变量,有一些协方差的矩阵在里面,它们俩衡量的层面不一样,一个衡量两个图像之间的距离,马氏距离是衡量运动状态内部的不确定性,这就是一个静态,一个是运动状态。

 

Q:FPS能做到多少?

A:个FPS能做到多少,我们现在有一些数据,在P4上面是可以做到大概30秒能够预测200帧这样子,GPU预测,CPU预测大概能做到16帧30秒,GPU上基本能做到7帧左右吧,如果换更好的就更高了,这是因为模型尺寸大一点,我们现在用的模型尺寸偏大,如果模型输入图像尺寸进一步减少,做到基本实时的话,人脸是25帧吧,好一点的GPU或者进行专门定制优化。

Q:什么算法可以检测3D信息?

A:我们现在算法都是二维的信息,3D要从点云算法的层面考虑,这个不在我们这一次课程范畴,有兴趣可以查一下点云相关的算法。

 

Q:驾驶的reid模型怎么训练的?

A:reid其实就是深度学习的特征,之所以能够reid,就是我们提取一个深度学习模型,每个特征个体提取出来还有特征向量,比较历史特征向量和现在的特征向量的差异,这是核心环节,我们可以用检测算法比较这两个向量的相似度,reid的模型基本上都是这么做的。

   

Q:有没有比较好用的多目标跟踪的标注工具?

A:刚才用的CVAT我们自己用下来比较好。演示的时候有一点卡,是因为我们演示的是在线的CVAT,这种工具其实可以离线部署的。后续我们会自己上线跟踪的标注工具,我们提供的标注工具肯定是比开源的还要更好。

 

Q:多类别多目标MOT应该怎么做?

A:当然业界是有一些开源模型专门做像多目标多类别的,有一些比赛,专门做的多类别多目标跟踪,有兴趣可以查一下这些比赛,有一些方案可能解决这些问题,我们这边不再介绍了。

 

Q:如果运动的图像糊里怎么办?

A:这个我们没有专门强调,其实这的确是一个难点,用的图像都糊了,图像特征已经不明显了,这个时候可能需要用运动信息,运动的信息可能更多一些,我们刚才提到了,运动的特征和图像的特征是结合的,图像特征效果不好可能就要切正运动特征来进一步兜底。

 

Q:有自动检测功能吗?每一帧调的好慢?

A:cvat你标注第一帧和第二帧,标后它会自动给你一个匀速的差值,刚才没有演示到这方面,没关系,大家可以去平台看我们标注功能的介绍,视频里是有介绍这样的能力,后续平台上线也会说,第一第一帧第十帧第二十帧,中间二到九会自动帮你生成的。

 

Q:这个能做到实时吗?

A:我们说了一下,实时大概25帧左右,就是人肉眼实时程度,我们可以进行优化。包括像GPU上,我们把图像尺寸调小一点,模型用的更轻量化,这个实时也是没有问题的。

 

Q:计数是怎么实现的?

A:计数刚才已经讲到了,比如这张图,123,这就是计数,对单帧何以输出ID信息,它就告诉你12345,已经告诉你信息了,这个计数就实现了。如果是流水线,比如10分钟的流水线结束了,我们跟这个ID已经到了多少程度,每一帧3帧,可以识别出哪些问题是重复的,自动取重,10中图片完了以后就有几千个零件检测出来了。

 

Q:一个是像素级的,一个是状态特征吗?

A:这个指应该是刚才图像特征和运动特征。图像特征就是一个特征层面的,它已经是提取出的高维的特征了。运动特征是运动状态的轨迹,图像特征可谓是更高纬的像素的线路的特征向量,可能这么描述更准确。

 

Q:怎么提高跟踪的速度?

A:这是一个很好的问题,刚才大概聊过,我们提升跟踪的速度,核心环节在于前面的检测器,检测器选择更加轻量,模型运行更快。回到结构图,不管哪种框架,检测器要做的轻量化,reid提取的变量也要轻量化一些,这些模块更加轻量化,效果不要损失太多,这时候跟踪效果有一些比较明显的提升。

 

Q:EasyDL默认的跟踪算法是什么?

A:EasyDL默认的跟踪算法,用户其实不需要关心算法的细节,因为用我们平台本身是零基础的,地只要上传数据,模型训练就可以,不需要关心我们平台后台用了哪种算法,做了什么优化,因为用户自己关心这些信息的话,可能一关心就回到我们刚才提到的难点问题,这些蓝靛问题用户都要关心的话,那投入的人力成本和开发成本很难控制。

 

Q:是否可以用类似方法识别人流数据?

A:这是可以的,刚才第一次演示的这个视频里其实就有对人流的检测,这个视频上已经就有。

   

Q:目标跟踪的技术ID是随着视频累加的吗?

A:它不一定是视频累加,应该是随着个体累加,就是个体出现了新的个体,目标跟踪的ID不断累加上去,我们可以设置高一点,或者根据时间长短设置,这也是可以的。

   

Q:有离线包可以试用吗?

A:这位用户可以去平台上试用一下,我们提供了一些数据集。

   

Q:轨迹跟踪用的是什么方法?

A:刚才其实已经大概介绍了,绝大部分都是相通的,数据匹配就是匈牙利算法,前面卡尔曼滤波估计运动的状态,你每一帧运动状态都估计出来,其实地的轨迹已经出来了,这一步已经结束了,卡尔曼滤波是力不知道每个个体到底谁是谁,你需要用匹配进行相同人物的匹配关系。

   

Q:如果视频流帧中跳帧很多怎么解决?

A:这个问题不是非常理解,跳帧是什么概念,为什么视频流会出现跳帧,用户指的是实际场景比如该社视频的帧率比较低,比如一秒一帧,这样会导致物体运动的情况一下子变得很远,差异很大,这种情况当然不是很好,一般来说跟踪模型,当然不要非常长距离的跟踪,相邻的帧不是间隔非常远,这种跟踪模型一般都能解决。

模型的速度慢调整更多,他想做的尽量实时,但是这个模型的速度又不快,只能跳帧,模型只能做到比如说两个FPS,为了做实时,每秒2帧,这个问题是对的,比较好的解决方案是从模型本身入手,把这个模型本身做的小一些,尽量把帧率提上去,而不是我们解决这个跳帧本身识别的问题,这样做的话难度更小一些。

   

Q:可以用来跟踪小目标吗?

A:可以,这也是我们平台自己优化的,我们刚才大概提到,检测器层面这些小目标很容易丢,如果模型不知道怎么针对这些小目标建模,那你就检测不到,谈何跟踪呢。

   

Q:跟踪后怎么预测未来的轨迹?

A:这个问题可能就不是这一堂课的内容了,跟踪未来的轨迹不是目标跟踪要解决的,目标跟踪是已经发生的轨迹和当今的轨迹,未来涉及到预测,预测的这一节课就不说了,有兴趣查一下相关的领域。

 

Q:实际场景统计ID无数量就可以代表车辆数吗?

A:如果跟踪模型构建比较好,ID的数量是可以代表车辆数。

   

Q:视场内特定区域没有遮挡,召回能不能百分之百?

A:这个召回百分之百,我们刚才说了召回率有两种,首先召回主要是检测器一样的召回,没有任何的遮挡,检测器一般能够召回一般问题都不大了。但是检测器召回了,它也有可能是运动状态发生了形变,有一些尺度或者形变的变化,有可能识别这个新的个性,发生ID切换,这个时候召回也低了,这是两个方面的召回,这些问题其实都是目标跟踪里比较困难的问题,我们希望提供一种能力,用户不用关心模型的细节,就能得到比较好的模型。

 

Q:车辆在一个封闭车场内交叉通行,车辆的颜色一致,型号一致,有没有可能跟踪住?比如就跟踪某一台。

A:这种场景还是比较苛刻的,如果是这样的场景,ID特征已经分辨不出来了,针对这种情况也是要进行定制化,把reid特征降低,这时候应该更关注运动的特征,运动特征本身希望把这个物体进行持续的追踪,这个和单目标检测有点像,就是第一帧我们把某一个物体框出来,我们希望对这个物体进行持续的追踪。刚才用户说的这个问题难度稍微大一点,但我觉得,如果没有遮挡,问题还是比较好解决,如果又发生遮挡,又发生颜色一模一样,这种情况是非常的困难的问题,当然也可以定制来做,我们完全依赖于卡尔曼滤波运动状态的工具。

   

Q:消失再出现一定比原来数量多吗?

A:不一定,就看你的ID切换是不是少,如果是零,统计的数量不会增多,也是和实际一样的。

   

Q:数据集做完以后可以导出吗?

A:这个细节我需要确认一下,可能暂时还不支持导出,未来是可能支持的,像图像分割,图像检测我们是可以导出给用户用的,未来我们也可以导出数据集。

   

Q:这个平台可以用来搞科研吗?

A:搞科研可以用我们的BML,像Notebook作业,脚本调参之类的能力,搞科研更合适。EasyDL是零门槛,你不知道模型。假设这位学生用户是不关心这个模型的细节,他也是用项目里的某一个环节用到我们能力,也是可以用EasyDL,EasyDL也是有非常多的大学生用户,很多用我们EasyDL打比赛,做一些科研创新也是可以,如果以学习为目的学习模型本身的性能,用BML更合适。

   

Q:是否可以跟踪外观完全一致的个体并进行区分?

A:刚才说了,外观完全一样要依赖于运动状态的轨迹,这种情况我们可以进行优化,让它更专注于运动特征的表现,把reid特征幅度降低一点,因为它并不能做有效区分。

   

Q:标注的新序列的ID还是从1开始吗?

A:这个指的是标注的视频,视频的ID还是重新开始的,用户不需要关心这些细节,比如我们标注这个数据本身,比如在cvat上标注,你可以看一下平台数据标注,我们是以一个视频为例,不用担心ID之间干扰,我们本身是一个一个的,不用担心多个视频ID重叠的情况。

   

Q:目标跟踪有没有实现过速度检测?

A:速度检测比较困难。当然也可以做,因为刚才说了卡尔曼滤波实现了速度变量的导出,是有速度的图形量,但是要检测速度可能需要依赖一些标注物标定当前什么样速度反映实际状况下是一个什么样的真实世界,这个要尝试,就是说有能力做,但是实际效果可能要做项目才知道。

   

Q:不标注每一帧状态,标注怎么实现?

A:这个问题可能想问的是,标了第一帧第三帧第五帧,模型是怎么用这些帧数,力标注了多少帧,我们模型就拿到这个帧数了,你标135就跳过24了,填充出来就是一个完整的序列,也是可以给我们,跳帧标注不用担心,但我希望帧标的越密越好。

   

Q:数据标注完要怎么使用?

A:刚才大概讲过,数据标注完以后就训练,直接在平台上发起训练,发布,模型集成,刚才阿达老师进行了演示,如果还有疑问可以看录播,再看一下这个是怎么操作的。

   

Q:填充的标注会准确吗?

A:有可能不准确,这种不准确会发生在什么场景,就是刚才那张图,就是非匀速的,一会变,速度越来越快,大的标注工具本身会标的不好,因为要看它有没有实现状态轨迹,可能实现的非常粗糙,是一个均匀的差值,那就标不上了。还有一些曲线运动,自动预测帧的能力可能做的没有那么好,当然也有一些优化比较好的标注工具可能何以实现,遇到非匀速曲线运动的时候,标注一定要注意。

   

Q:一辆车在不同的时间出现会标注成同一帧吗?

A:是这样,比如说一些算法会在一定的帧的范围内把ID保留下来,比如说有一些变量可以设置,比如200帧把某一辆车ID信息保留下来,过了200帧就流失掉了,如果想实现更长ID信息保存,这个可以做,但我们需要有一个数据库,把ID信息保留下来,这个也可以做,要看速度怎么样,因为总数据库里拿数据也是需要有一定的时间开销的。

 

这是课程专享福利,刚才讲过一遍,我们会赠送一些时长,还有一些社群里不定期发一些小礼物。右侧大家注意,这一节课的实战的数据集,这里是提交作业的二维码,大家可以试验一下,用我们平台试验一下整个流程,提交一下作业,会有一些福利。

    这一张简单介绍一下明晚直播的预告,明晚8点为大家带来定制化OCR原理解析与实操演示,内容包括OCR典型应用场景与产品讲解,还有EasyDL OCR关键技术解析,定制化OCR模型实操演示。群里我们会有回放的地址,还有小礼物可以领取礼品。

 

 

收藏
点赞
1
个赞
共1条回复 最后由186******52回复于2022-07
#2陈工126回复于2021-05

看了一遍

0
TOP
切换版块