代码运行:CornerNet源码

论文题目:CornerNet: Detecting Objects as Paired Keypoints

论文地址:https://arxiv.org/pdf/1808.01244.pdf

代码地址:https://github.com/princeton-vl/CornerNet

 

代码目录层次:

代码运行:CornerNet源码_第1张图片

各个目录含义:

cache:存放训练好的模型,训练过程中,每隔5000步存一次模型

config:配置文件,Cornernet训练的配置文件由config/CornerNet.json 和 config.py组成,测试加上db/detections.py

data:存放coco数据集,需要包含coco的PythonAPI

db:数据类别、基础参数、读取加载等,运行自己数据集需要修改db/coco.py下的self._cat_ids

external:存放用c写的NMS和soft_NMS算法

models和nnet:网络结构代码

result:村粗 python test.py的结果

test:test.py调用coco.py里面的kp_detection方法

utils:工具类

test.py和train.py:测试和训练

第一步,跟着README.md配置运行环境,主要是下载conda_packagelist.txt里面的包比较费时间;

第二步,制作自己的coco数据集;附上voc转coco的github源码:https://github.com/shiyemin/voc2coco

第三步:根据自己数据修改config/CornerNet.json里面的dataset,batch_size,chunk_sizes,data_dir(看情况),categories,其中batch_size等于chunk_sizes每个数据的和,chunk_sizes里面每个数表示分到每张网卡的图片数,单张网卡一般也就只能3-5张;

第四步:修改config.py,display:隔几步输出一次loss;snapshot:隔几步存一次模型;batch_size;pretrain:与训练模型地址;

第五步:运行python train.py

第六步:运行python test.py,debug参数决定是不是生成测试图片,即把结果框画到原图上并保存到/result目录

另外测试时:test/coco.py里面:kp_detection方法调用了db.evaluate(result_json, cls_ids, image_ids),需要把db/coco.py里面的:       

if self._split == "testdev":
            return None

注释掉,才会输出结果。

 

跑我们的数据集,结果并不好:

 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.354
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.602
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.374
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.114
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.383
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.310
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.398
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.580
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.601
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.404
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.574
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.606
------------eval result--------------
0.3539904837352708
 

检测时间:1帧/s

 

发现cornertnet对一张图片中存在多个相同类别的目标时,容易存在多检现象,如下图的框01和02代码运行:CornerNet源码_第2张图片

你可能感兴趣的:(object,detection)