SSD-pytorch yyds!
SSD:Single-Shot MultiBox Detector目标检测模型在Pytorch当中的实现
Annotation
中。 JPEGImages
中。 voc2ssd.py
文件生成对应的txt。 voc_annotation.py
,运行前需要将classes
改成你自己的classes
。注意不要使用中文标签,文件夹中不要有空格!
classes = ["aeroplane", "bicycle"]
2007_train.txt
,每一行对应其图片位置及其真实框的位置。 model_data/new_classes.txt
文件内容为:
cat
dog
...
utils.config
的num_classes
修改成所需要分的类的个数+1,运行train.py
即可开始训练。训练所需的
ssd_weights.pth
可以在百度云下载(提取码: uqnw)。 下载并放入model_data
。
如果你的训练不是在
pytorch<=1.3
进行的,预测会出错,你需要转化模型,可以使用load_save_model.py
。
ssd.py
文件里面,在如下部分修改model_path
和classes_path
使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类。
_defaults = {
"model_path": 'model_data/ssd_weights.pth',
"classes_path": 'model_data/voc_classes.txt',
"model_image_size" : (300, 300, 3),
"confidence": 0.5,
"cuda": True,
}
predict.py
,输入
img/street.jpg
video.py
可进行摄像头检测。 步骤是一样的,不需要自己再建立get_dr_txt.py
、get_gt_txt.py
等文件。
Annotation
中。 JPEGImages
中。 voc2ssd.py
文件生成对应的txt,评估用的txt为VOCdevkit/VOC2007/ImageSets/Main/test.txt
,需要注意的是,如果整个VOC2007里面的数据集都是用于评估,那么直接将trainval_percent
设置成0即可。 yolo.py
文件里面,在如下部分修改model_path
和classes_path
使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类。 get_dr_txt.py
和get_gt_txt.py
,在./input/detection-results
和./input/ground-truth
文件夹下生成对应的txt。 get_map.py
即可开始计算模型的mAP。