失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > paddle - crowdHuman数据集训练人体识别模型

paddle - crowdHuman数据集训练人体识别模型

时间:2022-12-22 15:01:52

相关推荐

paddle - crowdHuman数据集训练人体识别模型

paddle - crowdHuman数据集训练人体识别模型

数据集annotationcrowdhuman的odgt文件各项意义转换为paddle yolo的格式输入哪些数据?输出模型

数据集annotation

使用paddle paddle yolo v3的模型,将这个数据集的json内容转换为xml格式。

crowdhuman的odgt文件各项意义

参考官网:/download.html

但说得并不明确,这里对照图片总结了一下:

JSON{"ID" : image_filename, ---> filename"gtboxes" : [gtbox], ---> gtbox框列表}gtbox{"tag" : "person" or "mask", ---> mask表示是人群,或者反光,或者像人的东西,需要被忽略的数据,此时extra中的ignore = 1"vbox": [x, y, w, h], ---> visible box,可看见的部分的检测框,框坐标为左上角x,y + weight, height"fbox": [x, y, w, h], ---> full box,预测的全部的检测框,当extra的occ == 0时, 这个值和vbox相等"hbox": [x, y, w, h], ---> head box,预测头的部分的检测框"extra" : extra, ---> person额外描述"head_attr" : head_attr, ---> head额外描述}extra{ ---> 内容均为可选项"ignore": 0 or 1, ---> 对应上述mask,ignore = 1"box_id": int, ---> 当前gtbox的id"occ": int, ---> 图像是否有遮挡, =1有遮挡}head_attr{ ---> 内容均为可选项"ignore": 0 or 1, ---> 未知?"unsure": int, ---> 图像是否不确定(置信度低)"occ": int, ---> 同上}

转换为paddle yolo的格式

输入哪些数据?

一开始:

box分为三类,只用于摄像头采集的场景ignore = 1,unsure = 1时, 不使用这个box遮挡:一开始occ = 1也输入,发现效果不好,loss不下降,不使用分辨率:数据集中很多人群图片,box像素太少的,不使用

发现loss一直不下降,怀疑是数据集问题。再看了下这个odgt文件中的数据,发现occ为0时,fbox和vbox相等。

于是:

分为两类,head and body,只输入vbox和hboxignore/ unsure == 1时,对应的vbox/hbox忽略head_attr的occ==1时,忽略hbox图片先缩放为XXX*480的大小,再根据缩放后的box,过滤较小尺寸的box。发现剩下的图片里,有很多人体重合度高的情形,因此再过滤次小尺寸,且occ==1的vbox调整尺寸过滤的阈值,使最终的总boxes里,两类样本数量接近。

剔除后,验证集acc在85左右就不能提升了,loss也很高。另外一个使用项目场景的图片训练的人脸识别模型,效果就非常好,实际使用到项目时,还是以项目场景的图片作训练效果最好,同时要剔除那些可能存在干扰的项。

输出模型

yolo模型的输入图片像素需要为32的倍数。采用192*192,384*384等分辨率freeze模型。较小的输入图像速度会快很多,相较之下会损失检测框精度,最主要的是画面中较小目标的识别能力。因此输入图像分辨率也是根据实际情况来权衡。

如果觉得《paddle - crowdHuman数据集训练人体识别模型》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。