insightface
insightface copied to clipboard
关于标签格式以及训练自己数据集的一些问题?
@yingfeng 大佬你好,就是我是一名大二学生,然后是在中北大学的robomaster战队里负责用神经网络识别装甲板实现自动瞄准,不过就是之前我用yolo系列训练出来的模型最后实际测试时得到的bbox和装甲板的轮廓并不能很好的拟合,导致后续使用pnp进行姿态解算时会有较大误差,所以我想将传统yolo的数据集格式改为用四个角点的归一化坐标,现在的数据集格式是像这样:1 0.673029 0.373564 0.678429 0.426232 0.830433 0.401262 0.824525 0.351212,第一个数字是类别id,后面八个数字是归一化后的装甲板的四个角点坐标,之前我使用yolov5-face已经训练出来一个可以直接定位装甲板四个角点的模型,效果如下:
然后很早之前就想尝试一些其他的人脸检测模型对比一下关键点定位精度,最开始是想用retinaface,但是当时也是因为数据集使用的widerface,我标注的yolo格式不能直接用于训练,当时也想过离线数据转换,就是写一个脚本将yolo格式转化为widerface格式,不过由于忙其他事一直没什么时间,后来就看到了scrfd这个模型,在人脸检测的速度和精度上都有不错的表现,而且使用的mmdet框架训练,注册机制对于修改模型很方便,但是现在我同样遇到了数据集格式转化的问题
0--Parade/0_Parade_marchingband_1_849.jpg 1024 1385
449.00000 330.00000 571.00000 479.00000 488.90601 373.64301 0.00000 542.08899 376.44199 0.00000 515.03101 412.82999 0.00000 485.17401 425.89301 0.00000 538.35699 431.49100 0.00000
这是在你们提供的标签文件中的一部分,按照你们README.md里所说的,前四个应该是左上和右下点的坐标,后面依次是5个关键点的坐标,而且每个点之间用0.00000隔开,就是这里我有疑问,因为在后面的部分中有些时候0.00000有变为-1.00000或者1.00000,如下图:
所以我想请教一下你们0.00000还有-1.00000和1.00000分别代表什么意思,而且还有个问题就是我想实现多个装甲板的分类的话是否需要改动模型结构,之前使用yolov5face只需要更改yaml中的nc和names就行,希望大佬能不吝赐教!