Date: 2020/10/11
Author: CW
在做 detection 任务时,我们通常会使用 mAP 作为评估指标,要计算 mAP,我们要先计算出 Recall(召回率) 和 Precision(精度),而这两者的计算需要先统计出 TP、FP 以及 TP+FN。然而,coco api 已封装了这一系列的计算与实现,能让我们很方便地使用。既然这么香,我就试着在windows上安装看,谁知安装过程还花费了我一些功夫,于是我打算在本文中记录下这个安装过程,日后有需要的朋友们也可以此作为参考。
下载源码安装
由于原作者没考虑到windows下的安装(windows内心独白:我就不配拥有姓名!?),于是我找到了另一个开源版本:pycocotools源码。

将该项目 git clone 下来,打开命令行终端cmd,然后进入项目的 cocoapi/PythonAPI 目录,运行(以下方式2选1):
# install pycocotools locally
python setup.py build_ext --inplace
-----------------------------------------------------------------
# install pycocotools to the Python site-packages
python setup.py build_ext install
验证
打开python终端,输入:
import pycocotools
from pycocotools.coco import COCO
from pycocotools.cocoevalimport COCOeval
问题解决
1. 安装过程报错
error: command 'cl.exe' failed: No such file or directory
// 或者
error: Unable to find vcvarsall.bat
// 或者
error: Microsoft Visual C++ 14.0 is required.
遇到以上错误,是因为缺少Visual C++ 编译环境,作者在项目的README中有提到:
On Windows, you must have the Visual C++ 2015 build tools on your path.
在项目README中有提供下载链接,下载后按默认指示安装即可解决该问题。
2. 导入模块报错
ImportError: No module named 'pycocotools._mask'
这个错误在项目的README中也有提到,通常是由于当前处于刚刚下载的源码目录 cocoapi/PythonAPI 中,因此导入模块时首先从本地导入,从而出错 。

解决方法是退出当前目录,或者把这个刚下载下来的 cocoapi 文件夹放到其他路径,或删掉,再次进行验证就能成功了。
网友评论