COCO2017 数据集训练数据集包括 118K 张图片,验证集包括 5K 张图片,数据集比较大。在调试或者快速验证程序是否正确的场景下加载 json 会需要消耗较多资源和带来较慢的启动速度,这会导致程序体验不好。
extract_subcoco.py
脚本提供了按指定图片数量、类别、锚框尺寸来切分图片的功能,用户可以通过 --num-img
, --classes
, --area-size
参数来得到指定条件的 COCO 子集,从而满足上述需求。
例如通过以下脚本切分图片:
python tools/misc/extract_subcoco.py \
${ROOT} \
${OUT_DIR} \
--num-img 20 \
--classes cat dog person \
--area-size small
会切分出 20 张图片,且这 20 张图片只会保留同时满足类别条件和锚框尺寸条件的标注信息, 没有满足条件的标注信息的图片不会被选择,保证了这 20 张图都是有 annotation info 的。
注意: 本脚本目前仅仅支持 COCO2017 数据集,未来会支持更加通用的 COCO JSON 格式数据集
输入 root 根路径文件夹格式如下所示:
├── root
│ ├── annotations
│ ├── train2017
│ ├── val2017
│ ├── test2017
- 仅仅使用 5K 张验证集切分出 10 张训练图片和 10 张验证图片
python tools/misc/extract_subcoco.py ${ROOT} ${OUT_DIR} --num-img 10
- 使用训练集切分出 20 张训练图片,使用验证集切分出 20 张验证图片
python tools/misc/extract_subcoco.py ${ROOT} ${OUT_DIR} --num-img 20 --use-training-set
- 设置全局种子,默认不设置
python tools/misc/extract_subcoco.py ${ROOT} ${OUT_DIR} --num-img 20 --use-training-set --seed 1
- 按指定类别切分图片
python tools/misc/extract_subcoco.py ${ROOT} ${OUT_DIR} --classes cat dog person
- 按指定锚框尺寸切分图片
python tools/misc/extract_subcoco.py ${ROOT} ${OUT_DIR} --area-size small