Yolov3 mAp计算,吐血整理,含Bug处理

用了两天时间把计算mAp值该踩的坑基本上踩了一遍,整理一下,以免以后忘记

一.所需材料

训练好的权重weights
验证集图片
验证集的xml格式标记
Fastrcnn的voc_eval.py下载地址:
https://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/datasets/voc_eval.py
python2环境

二.步骤

(1)首先运行以下命令

 ./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_900.weights -out " " -thresh .5 

把其中的weights改为你自己的weights名

在result中生成了几个以你的class为名的txt文件

里面大致长这样

如果发现文本里是空的,那么检查你的yolov3文件,把里面的train注销掉,改成test

(2)新建python文件 compute_mAp.py 然后在里面输入以下代码

from voc_eval import voc_evalrec,prec,ap = voc_eval('/home/casiie/yolo/harbor.txt', '/home/casiie/yolo/vallab/{}.xml', '/home/casiie/yolo/val.txt', 'harbor', '.')print('rec',rec)
print('prec',prec)
print('ap',ap)

这里详细解释下各个路径:
/home/casiie/yolo/harbor.txt 刚才生成的txt文件
/home/casiie/yolo/vallab/{}.xml 存储的验证集xml文件夹
/home/casiie/yolo/val.txt 验证图片的名字txt 这个长这样,注意里面只有文件名,没有路径

'harbor’这个是你要检测的类名
‘.’ 留着,eval_voc.py至少输入四个值

(3)运行,如果不出意外的话就能显示出ap值了

注意:每次计算完ap值要记得把annots.pkl删除再重新编译

mAP(airplane,ship,car)= [AP(airplane)+AP(ship)+AP(car)] / 3

三.错误解决

(1)

Traceback (most recent call last):File "computer_mAp.py", line 1, in <module>from voc_eval import voc_evalFile "/home/casiie/文档/yolot2/voc_eval.py", line 111print 'Reading annotation for {:d}/{:d}'.format(^
SyntaxError: invalid syntax

原因:没有使用python2环境
解决办法:安装python2.7 推荐使用虚拟环境

(2)
检查eval_voc的

#obj_struct['pose'] = obj.find('pose').text

因为有的xml文件没有pose这一栏,如果不注释掉会报错

参考:

https://blog.csdn.net/zhuoyuezai/article/details/78494126
https://blog.csdn.net/hongxingabc/article/details/80090736
https://blog.csdn.net/LeeWanzhi/article/details/79690275
https://blog.csdn.net/lucky__ing/article/details/78310510#commentBox
https://blog.csdn.net/cgt19910923/article/details/80524173#comments
https://blog.csdn.net/Gentleman_Qin/article/details/84800188#commentsedit
https://blog.csdn.net/yinhuan1649/article/details/82258703#commentBox

Yolov3 mAp计算,吐血整理,含Bug处理相关推荐

  1. Mobileye专利 US9665100 - Sparse map for autonomous vehicle navigation 吐血整理

    Mobileye专利 US9665100 - Sparse map for autonomous vehicle navigation 吐血整理 1. Autonomous Vehicle Overv ...

  2. yolov3实现Kitti baseline(含评估代码:easy、moderate和hard的AP计算,fps计算)(下)

    yolov3实现Kitti baseline(含评估代码:easy.moderate和hard的AP计算,fps计算) 上篇博客谈到如何训练基于kitti的yolov3模型,这篇主要讨论如何使用模型参 ...

  3. 怎么知道你训练的靠不靠谱?yolov3的mAP计算教程来了

    都2020年了还有人写python2的求解教程,python2都快停止维护了好嘛? 本教程针对darknet版本的yolov3进行计算mAP 第一步:通过darknet valid命令计算yolo3推 ...

  4. Ubuntu16.04下实现darknet-yolov3训练自己的数据(含loss图、mAP计算)

    记录一下本地编译darknet并用自己的数据集来训练yolov3的过程,最后补充了mAP的计算方法. 1.环境配置 首先CUDA和Cudnn是必备的,安装有很多教程就不多写了,opencv安装比较麻烦 ...

  5. 【计算机视觉算法岗面经】“吐血”整理:2019秋招面经

    相关链接:[计算机视觉算法岗面经]"吐血"整理:2019秋招资料 //2018/09/28 当初开始面试时就想着,以后我一定要写一篇面经,现在是来还愿的时候了. 首先,嗯,非常感谢 ...

  6. 别人的【计算机视觉算法岗面经】“吐血”整理:2019秋招面经

    别人的[计算机视觉算法岗面经]"吐血"整理:2019秋招面经 相关链接:[计算机视觉算法岗面经]"吐血"整理:2019秋招资料 //2018/09/28 当初开 ...

  7. 【网络】计算机网络常见面试题 - 前端面试必备 - 吐血整理

    文章目录 1. 参考模型 1. OSI 参考模型 七层 2. TCP/IP参考模型 四层 2. 在浏览器中输入网址之后执行 会发生什么? 3.URL和URI的区别? 4. 关于HTTP协议 4.1 为 ...

  8. Webpack面试题超全面【吐血整理】

    0.有哪些常见的Loader?你用过哪些Loader? (我开始熟悉的报起了菜名) raw-loader:加载文件原始内容(utf-8) file-loader:把文件输出到一个文件夹中,在代码中通过 ...

  9. google map Api接口整理

    Google Map Api接口整理 一:基本知识: 1. 使用谷歌地图 API 的第一步就是要注册一个 API 密钥,需要注意一下两点: 1.如果使用 API 的页面还没有发布,只是在本地调试,可以 ...

最新文章

  1. 【代码段】UITableView Section圆角
  2. springboot+jsp中文乱码_【spring 国际化】springMVC、springboot国际化处理详解
  3. 使用VHDL编程的直接扩频发生器
  4. 四针角oled屏连接arduino_使用Arduino开发板连接OLED显示屏制作一款智能手表
  5. 混合精度训练amp,torch.cuda.amp.autocast():
  6. Socket基础知识分享
  7. 初次了解struts的action类
  8. 《暗黑3》是如何设计随机地下城的?
  9. 如何将SQL卸载干净
  10. Spring新手教程
  11. python银行排队系统仿真_离散事件仿真简例——银行排队系统
  12. ips细胞最新进展:利用iPS细胞成功培养出抑制宫颈癌繁殖的免疫杀伤T细胞,有望实现宫颈癌的免疫细胞疗法
  13. Linux系统命令行常识问答
  14. java 感想_Java课程感想
  15. Jupyter Notebook与Pycharm代码连接Docker容器中的远程服务器运行
  16. matlab彩色图像的R、G、B三个分量以灰色和彩色的形式显示
  17. lhgdialog弹出框组件 参数详解
  18. MVC 音乐商店 第 6 部分: 使用数据批注模型验证
  19. [Beta] Scrum Meeting 7 - TEAM LESS ERROR
  20. 详解Redis和Memcached

热门文章

  1. 2.HTML+CSS制作一闪一闪亮晶晶的星星(stars)
  2. 利用python爬虫技术动态爬取地理空间数据云中的元数据(selenium)
  3. PDM信号与PCM信号
  4. 傍上阿里系大款,禧云国际如何守住“自由身”?
  5. Cmake 命令语句(一)
  6. ArcBlock ⑦ 月报 | Forge 框架升级更新 开发者社区建设如火如荼
  7. [转发]贝茨方法改善视力的几种方法
  8. 好记性不如烂笔头之 App widgets(一)
  9. lan8742a怎么用_LAN8742A
  10. Java工程师培训课(十六【新的领域】)