数据集创建¶
本工程最终目标是实现一个汽车检测器,在训练过程中需要依次实现以下数据集
- 从
VOC
数据集中提取汽车类别 - 创建微调数据集
- 创建分类器数据集
Note 1:有关数据集创建程序均位于py/utils/data/
目录
Note 2:本次实验使用VOC 2007
数据集
PSACAL VOC 2007¶
从VOC数据集中提取汽车类别¶
python文件:¶
pascal_voc.py
pascal_voc_car.py
下载并完成解析操作后,可从VOCdevkit/VOC2007/ImageSets/Main
目录下查找car_train.txt
和car_val.txt
文件,里面保存了相关的汽车类别图像名
数据集格式¶
创建得到数据集voc_car
,其格式如下:
├── train
│ ├── Annotations
│ ├── car.csv
│ └── JPEGImages
└── val
├── Annotations
├── car.csv
└── JPEGImages
创建微调数据集¶
python文件:¶
create_finetune_data.py
通过选择性搜索算法的质量模式获取候选建议,然后计算候选建议与标注边界框的IoU
- 正样本:
IoU
大于等于0.5
- 负样本:剩余的候选区域
在代码实现中,为了进一步减小负样本数据集,我修改了负样本判定规则
- 副样本(修改后):
IoU
大于0
,小于0.5
。为了进一步限制负样本数目,其大小必须大于标注框的1/5
数据集格式¶
创建得到数据集finetune_car
,其格式如下:
├── train
│ ├── Annotations
│ ├── car.csv
│ └── JPEGImages
└── val
├── Annotations
├── car.csv
└── JPEGImages
训练集和验证集的正负样本个数如下:
# train
# positive num: 66517
# negatie num: 464340
# val
# positive num: 64712
# negative num: 415134
创建分类器数据集¶
python文件:¶
create_classifier_data.py
通过选择性搜索算法的质量模式获取候选建议,然后计算候选建议与标注边界框的IoU
- 正样本:标注边界框
- 负样本:
IoU
小于0.3
的候选区域
在代码实现中,为了进一步减小负样本数据集,我修改了负样本判定规则
- 副样本(修改后):
IoU
大于0
,小于0.3
。为了进一步限制负样本数目,其大小必须大于标注框的1/5
数据集格式¶
创建得到数据集classifier_car/
,其格式如下:
├── train
│ ├── Annotations
│ ├── car.csv
│ └── JPEGImages
└── val
├── Annotations
├── car.csv
└── JPEGImages
训练集和验证集的正负样本个数如下:
# train
# positive num: 625
# negative num: 366028
# val
# positive num: 625
# negative num: 321474