哒啦啦啦,哒啦啦啦,唉,这是什么人间疾苦啊,让我走上了使用paddle来开发的道路,有几个难点问题首先就是有错搜不到,全靠你自己聪明的小脑袋瓜,这是客观原因,使用的人数少,讨论的也少。用法要现搜,这是主观原因,之前keras,tenorflow,pytorch用的多一些。
报错一:
1.报错展示:
RuntimeError: Shape not matching: the Program requires a parameter with a shape of ((18, 256, 1, 1)), while the loaded parameter (namely [ conv094.conv.weights ]) has a shape of ((255, 256, 1, 1)).
2.解决方案
我的分类类别是1个,只识别人,而训练模型分类80种,我猜测可能是分类类别什么地方出错了。把预训练模型的参数删除就可以,因为分类数不一样,有些参数不能用了,例如这里报conv094.conv.weights参数格式不合格,那我就把这个模型文件删除,应该还会有别的模型文件接着报错,那就一直删,删到不报错为止。
报错二:
1.报错展示:
AttributeError: ‘NoneType’ object has no attribute ‘shape’
2.解决方案
检查图片地址
报错三:
1.报错展示:
直接使用open打开文件,读的是字节类型而不是字符类型而不是字符串类型
with open() as f:
row = f.readline()
print(type(row)) #byte
2.解决方案
with open() as f:
row = f.readline()
row = row.decode()
print(type(row)) #str
四.mot20数据集:
MOT 数据集
数据集用的最多的是 MOTChallenge,专注于行人追踪的。
15 年的都是采集的老的数据集的视频做的修正。参考论文:MOTChallenge 2015: Towards a Benchmark for Multi-Target Tracking16 年的是全新的数据集,相比于 15 年的行人密度更高、难度更大。特别注意这个 DPM 检测器,效果非常的差,全是漏检和误检。参考论文:MOT16: A Benchmark for Multi-Object Tracking:
17 年的视频和 16 年一模一样,只是提供了三个检测器,相对来说更公平。也是现在论文的主流数据集。
19 年的是针对特别拥挤情形的数据集,只有 CVPR19 比赛时才能提交。
MOT2020
一共8个视频序列,4个训练集,4个测试集。测试集的gt没有给出,因此想要得到测试集的结果需要在MOT官网上传你的结果去评估。每个图片都是jpg格式,且命名为6个数字的文件如(000001.jpg)平均每帧有246个行人。除了行人,注释还包括车辆和自行车等其他类别。
训练集和测试集
标注det.txt和gt.txt文件
如图所示:每一列分别代表,
1:该目标出现的帧号
2:该目标被分配的唯一ID号,在det(检测)文件中为-1
3:目标bbox左上角的x坐标。
4:目标bbox左上角的y坐标。
5:目标bbox的宽
6:目标bbox的高
7:置信度。det中表示该目标是行人的概率,gt中若评估该目标则设为1,忽略则设置为0
8:gt中表示该目标的类别,Det为-1
9:可见率,gt中表示该目标可见的程度,可能被遮挡或者是图像边框裁剪导致目标不完整,值为0-1。det中为-1
类别表示
评估
评价跟踪性能的好坏,MOTchallenge提供了一个评估脚本可以直接下载使用
数据关联
即预测和gt进行匹配。
通过计算GT和预测的框的IOU,当大于阈值0.5时被认为是一个目标,然后评估是TP或者FP。所有预测都没有找到gt中的目标,则被评估为FN。
4个例子表示匹配的情况。虚线表示gt的轨迹。实线表示预测的轨迹,不同颜色表示不同ID,如红线表示ID1,蓝线表示ID2。阴影部分表示gt和预测的阈值范围。阴影中的轨迹没有被涂黑的gt,表示没有预测和gt匹配被评估为FN,被涂黑的表示被跟踪到,实线连接的目标被涂成实心表示该ID和gt匹配成功,评估为TP。空心被评估为FP,FN。当gt在第t帧和ID2匹配成功,然而在第t-1帧和ID1匹配成功,即发生了ID转换。如(a)的4,5。
度量
目标类别定义为沿着视野范围可达的没有物理遮挡的所有直立行走的人。
reflections,反射,在透明墙和窗户背后的人被排除。
骑自行车或者其他交通工具的人也被排除在目标类别之外。
在最终评估的时候只使用那些被标记为pedestrains的框。
MOTA
MOTP
Track quality measures 跟踪质量度量
每个gt的轨迹可以被分为:
mostly tracked(MT)
partially tracked(PT)
mostly lost(ML)
这个度量不需要gt在整个轨迹中保持相同ID。
如果跟踪到的时间占gt的生命周期的80%,则被认为是MT,如果少于20%则被认为是ML,其他都是PT。
the number of track fragmentations(FM) 轨迹段的数量表示没有跟踪到的gt轨迹的次数。