安装darknet
详细步骤和解释请参考 YOLOv3官网
详细 Darknet 编译请参考 大佬博客
博主介绍的非常详细,在此就不多赘述,我只是个无情的搬运工…
COCO数据集的下载和配置
根据 YOLOv3官网 通过脚本文件获取COCO数据集。这里使用的是COCO2014数据集
tips如果数据集下载速度特别慢,可以打开 get_coco_dataset.sh,在网站下载好数据集,再逐条运行每一条命令即可。
#!/bin/bash
# Clone COCO API
git clone https://github.com/pdollar/coco
cd coco
mkdir images
cd images
# Download Images
wget -c https://pjreddie.com/media/files/train2014.zip
wget -c https://pjreddie.com/media/files/val2014.zip
# Unzip
unzip -q train2014.zip
unzip -q val2014.zip
cd ..
# Download COCO Metadata
wget -c https://pjreddie.com/media/files/instances_train-val2014.zip
wget -c https://pjreddie.com/media/files/coco/5k.part
wget -c https://pjreddie.com/media/files/coco/trainvalno5k.part
wget -c https://pjreddie.com/media/files/coco/labels.tgz
tar xzf labels.tgz
unzip -q instances_train-val2014.zip
# Set Up Image Lists
paste <(awk "{print \"$PWD\"}" <5k.part) 5k.part | tr -d '\t' > 5k.txt
paste <(awk "{print \"$PWD\"}" <trainvalno5k.part) trainvalno5k.part | tr -d '\t' > trainvalno5k.txt
对COCO验证集进行检测
在darknet目录下运行下面的命令行
./darknet -i 0 detector valid cfg/coco.data cfg/yolov3.cfg yolov3.weights # '-i 0'代表使用0号GPU
运行完上述命令之后会生成results/coco_results.json文件,该文件保存了检测结果
计算mAP
该方法源于:https://blog.csdn.net/xidaoliang/article/details/88397280
1.安装pycocotools
pip install pycocotools
2.编写python脚本用于计算mAP,注意根据自己的实际情况修改两个文件路径
import matplotlib.pyplot as plt
from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval
import numpy as np
import skimage.io as io
import pylab,json
pylab.rcParams['figure.figsize'] = (10.0, 8.0)
def get_img_id(file_name):
ls = []
myset = []
annos = json.load(open(file_name, 'r'))
for anno in annos