深度学习目标检测通常需要较大的数据规模,但是数据集的标注通常是费时费力但又意义不大的一件事,我们可以先标注三五百张图片,然后训练一个较为初步的模型,然后使用这个模型对未标注的图像进行推理,将推理结果导出为voc格式,再将图片和标注文件使用本地图像标注软件labelimg打开,手动调整边框位置后,标注文件即可作为数据集用于后续的模型训练。
推理
!python /home/aistudio/PaddleDetection/tools/infer.py \
-c /home/aistudio/PaddleDetection/configs/cascade_rcnn/cascade_rcnn_r50_fpn_1x_coco.yml \
--draw_threshold=0.5 \
--infer_dir=img \
--output_dir=toolinfer \
--use_vdl=True \
--save_txt=True \
-o weights=/home/aistudio/output/cascade_rcnn_r50_fpn_1x_coco/model_final
将推理结果保存到txt文件中
推理结果修改为voc格式标注
将产生的推理结果文件移动到指定文件夹中,将对应的坐标信息进行修改对应,生成voc格式的xml标注文件。
转换代码
import os
import cv2
headstr = """\
<annotation>
<folder>VOC</folder>
<filename>%s</filename>
<source>
<database>My Database</database>
<annotation>VOC</annotation>
<image>flickr</image>
<flickrid>NULL</flickrid>
</source>
<owner>
<flickrid>NULL</flickrid>
<name>company</name>
</owner>
<size>
<width>%d</width>
<height>%d</height>
<depth>%d</depth>
</size>
<segmented>0</segmented>
"""
objstr = """\
<object>
<na