使用DOTA_devkit进行旋转框mAP计算

最近做了个旋转框的任务,leader说要计算mAP和每个类的AP,任务比较急,自己写脚本的话,恐怕一下子搞不定。后面得到遥感界大佬杨学小哥的帮助,找到并运行成功DOTA_devkit这个工具,发现很强大。先贴出github地址:
https://github.com/978326187/DOTA_devkit
照例贴出百度网盘地址,你懂的:
链接:https://pan.baidu.com/s/12znldGoHo_h6vEI3XlYYgg
提取码:4kp1

一、功能介绍:

The code is useful for DOTA or ODAI. The code provide the following function

1.Load and image, and show the bounding box on it.
2.Evaluate the result.
3.Split and merge the picture and label.

1.可以在图片上显示包围框
2.评估结果
3.切分图片和标签

二、如何安装:

1.install swig
首先安装swig
sudo apt-get install swig
2.create the c++ extension for python
在DOTA_devkit-master文件夹运行以下命令进行编译:
swig -c++ -python polyiou.i
python setup.py build_ext --inplace

三、如何使用:

1.For read and visualize data, you can use DOTA.py
2.For evaluation the result, you can refer to the “dota_evaluation_task1.py” and “dota_evaluation_task2.py”
3.For split the large image, you can refer to the “ImgSplit”
4.For merge the results detected on the patches, you can refer to the ResultMerge.py
其它的不是本文重点,主要是第二条,评估结果。
使用"dota_evaluation_task1.py" 和 “dota_evaluation_task2.py”

四、评估脚本讲解:

下面来重点看一下评估脚本
需要我们修改的就两个部分,如图,
一是三个路径:detpath、annopath、imagesetfile
二是类别名称:classnames
文件夹需要修改的部分要特别注意:我就趟过坑,只要改前面文件夹的部分,后面/{:S}.txt或者/Task1_{:S}.txt不用动。
评估脚本需要修改的部分
下面我们一个一个来看,先看第二个文件夹,里面存放的就是DOTA数据集格式的文件,一个图片对应一个txt文件

DOTA数据集的格式:
DOTA数据集的格式
前面两行不用管
后面的前八个数字为包围框的四点坐标,x0,y0,x1,y1,x2,y2,x3,y3,后面是类别,最后是difficult,不用管。

第一个文件夹,存放的是结果文件,每个类有一个txt文件,每个txt文件里面,一行对应一个目标,第一个参数是图片名称,第二个是置信度,后面八个是四点坐标。注意:所有的置信度都会被列出来,在评估的时候,P-R曲线是置信度由大到小计算的。另外,可以通过ovthresh设置预测框和标签iou的阈值,在上面提到的评估脚本里,很容易找到,这里就不贴图了,这个值越大,说明需要越大的iou才能被列为TP。

结果文件

第三个文件,是一个txt,列出了所有图片的名称,一行一个,没有后缀。
图片名称列表
最后会运行出来类似于下面的结果:
map: 0.701
classaps: [75.4753906 53.58937359 36.51126095 93.30143266 92.08902632]
classaps对应于前面说的classnames里面的每个类的AP值

至于怎么生成需要的那三个文件夹或文件,那可能就要自己写脚本转换啦,每个人的模型需要的训练文件格式、以及生成的结果不大一样,没有通用性,所以我就不贴出来自己的了,写转换脚本应该是分分钟的事情啦,O(∩_∩)O哈哈~。

写的有点乱,不喜可喷。

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值