🔍半监督自训练

手动配置

  1. 数据准备:

准备未标注图像,建议把图像放在 'Semi-Supervised/JPEGImages' 目录下

  1. 利用源域数据训练好的模型生成伪标签:

运行getPseudoLabel.py,注意修改相关路径,imgs_path为目标域图像所在路径,output_xml_path为标签保存路径

torchrun getPseudoLabel.py \
  --imgs_path 'Semi-Supervised/JPEGImages' \
  --output_xmlpath 'Semi-Supervised/Annotations'
  1. 与源域数据集合并

运行merge_data.py ,origin代表源域数据路径,new代表目标域数据路径

python3 merge_data.py \
  --origin_image_path 'VOCdevkit/VOC2007/JPEGImages'\
  --origin_xml_path 'VOCdevkit/VOC2007/Annotations'\
  --new_image_path 'Semi-Supervised/JPEGImages'\
  --new_xml_path 'Semi-Supervised/Annotations'
  1. 标签处理

运行voc_annotation.py

  1. 使用新数据集继续训练模型

训练步骤参考训练YOLO模型 部分

一键式实现

本代码提供一键式的半监督自训练脚本,您可以通过在控制台运行self_training.sh实现此功能

Last updated