hand_dataset开源数据集的处理及标注

  • 步骤1:点击链接,下载hand_dataset开源数据集,如下图所示:
    在这里插入图片描述
  • 下载成功后,得hand_date.rar压缩包,解压此压缩包,其数据内容如下图所示:
    在这里插入图片描述由于开源数据集数据标注部分采用的M语言开发,这里开发者需下载Matlab,本文使用的Matlab 2019b版本,关于Matlab的下载和安装这里自行下载安装即可。
  • 步骤2:下载成功后,打开Matlab,如下图所示:
    在这里插入图片描述
  • 步骤3:接下来进行训练数据的制作,进入Matlab点击打开按钮,进入hand_dataset数据集,选择相应training_dateset/displaydata.m文件,如下图所示:
    在这里插入图片描述
    在这里插入图片描述
  • 步骤4:利用已经标注好的数据集,点击运行按钮,即可显示原始手势框,imshow结果如下图所示:
    在这里插入图片描述
    由于darknet只支持矩形框,不能存在旋转的情况,当存在不是矩形的情况时,需进行转换,通常用外接矩形来作为手部框,如下图所示:
    在这里插入图片描述
  • 步骤5:下载下面的代码,并对里面的hand_dataset_mcoding.rar进行解压缩,进入hand_dataset_mcoding目录下,将下载的/traing_dataset/displaydata.m代码替换原始开源代码,该代码设计的思想通过外接矩形的思想,从向量的角度,重新拟合手部框,并按照darknet接受的数据格式进行制作。
链接:https://pan.baidu.com/s/1qJfgRDNgeSDTVtrhEcHIYg  提取码:d7t9 
darknet标注信息的数据格式如下:
Class id    center_x    center_y    w    h
对数据格式解释如下:
Class id:表示标注框的类别,从0开始计算,当前只要手部1类检测物体,故Class id全为0;
center_x:表示归一化后的手部框中心点坐标的X值。归一化坐标 = 实际坐标 / 整个图片宽
center_y:表示归一化后的手部框中心点坐标的Y值。归一化坐标 = 实际坐标 / 整个图片高
w:表示归一化后的手部框的宽。归一化长度 = 实际长度 / 整个图片宽
h:表示归一化后的手部框的高。归一化长度 = 实际长度 /整个图片高
  • 步骤6:运行displaydata.m之前需要仔细检查代码路径是否跟实际路径相匹配,更改成功后,在运行此代码,命令行窗口会出现日志信息,如下图所示:
    在这里插入图片描述
  • 由于数据量较大,需稍等几分钟,等待转换完成。
  • 转换完成后,即可在创建的目录下生成标注的txt格式文件,如下图所示:
    在这里插入图片描述
  • 步骤7:在跟labels的平齐文件夹下新建一个JPEGImages文件夹,将原始.jpg复制到该文件下,如下图所示:
    在这里插入图片描述
    其中要保证标注文件的文件名与JPEGImages中的图片名一一对应,且标注的数据量与原始图片需保持一致,这里需要仔细检查
    在这里插入图片描述
  • 生成成功后,点开任意的标注文件,如Poselet_159.txt,如下图所示:
    在这里插入图片描述
  • 步骤8:在training_dataset目录下,新建一个list文件夹,并在里面创建一个hand_train.txt文件,该文件存放训练JPEGImages中的所有图片的全局路径,如下图所示:
    在这里插入图片描述
  • 步骤9:进入hand_dataset_mcoding目录下,/traing_dataset/listcode.m代码放到跟displaydata.m平级目录下,如下图所示:
    在这里插入图片描述
  • 步骤10:分析listcode.m代码,其中相对路径需根据实际路径进行修改,可参考下图进行修改:
    在这里插入图片描述
  • 步骤11:点击运行按钮,稍等片刻,即可完成自动转换,如下图所示:
    在这里插入图片描述
    至此,训练集制作完毕,同理test_dataset以及validation_dataset转换方式跟训练集一样,这里不再详细,转换代码可参考test_dataset文件夹下的.m文件及validation_dataset文件夹下的.m文件,如下图所示:
    在这里插入图片描述
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Wu_GuiMing/article/details/123718854