目标检测——RON网络——Tensrflow版本使用文档--------------测试流程(windows)

论文:RON: Reverse Connection with Objectness Prior Networks for Object Detection

论文链接:https://arxiv.org/abs/1707.01691

代码链接:https://github.com/taokong/RON(caffe框架版本)

代码链接:https://github.com/HiKapok/RON_Tensorflow(tensorflow框架版本)

本篇文章只是讲这份代码的使用方法,如何让它跑起来。本人由于看了这篇论文后想跑起来这份代码,发现没有什么资料,RON-tensorflow版本的代码是在SSD-tensorflow版本基础上改的,所以作者在github里的readme就写的不是很详细,作者让参考SSD——tensorflow版本的readme,https://github.com/balancap/SSD-Tensorflow/blob/master/README.md,

在跑通SSD后理解RON如何运行的。本人电脑配置:Windows10 +pycharm+tensorflow1.9.0+python3.6+cuda9.0+cudnn7.0

具体步骤:

1.下载代码到本地,下载pascal voc数据集到本地,将其复制到工程中。

如下图所示,在test2007数据集下新建一个文件夹VOC2007_tfrecord,用于储存将数据集的信息转化为TF-Records。运行tf.convert_data.py,在运行脚本前需要给它相应的参数:选中改.py文件,点Run-->edit configuration--->在Parameters中输入参数:

参数为:

--dataset_name=pascalvoc        //这里作者写死了

--dataset_dir=./pascal_VOC/VOCtest_06-Nov-2007/VOCdevkit/VOC2007/     //这里是给数据级的路径

--output_name=voc_2007_test                           //这里是输出的生成的tfrecord名字

--output_dir=./pascal_VOC/VOCtest_06-Nov-2007/VOCdevkit/VOC2007_tfrecord/   //这里是生成的tfrecord的路径

在pascalvoc_to_tfrecords.py中改下 SAMPLES_PER_FILES=200,//这里的意思是将200张图片生成一个tfrecord文件,我不能设置太大因为显卡不行。。。

可能出现的错误:could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED

解决方法:在代码中加这个

原因是,版本不兼容,加参数向下兼容的意思。

转换成功了。然后就是测评VOC2007的数据集map。首先在工程目录下新建一个文件夹checkpoints,来存储训练好的模型,

在readme中点here下载模型,放在该文件夹下。

再给eval_ron_network.py参数:和上面一样的方法:

--eval_dir=./log_files/log_eval/  

--dataset_dir=./pascal_VOC/VOCtest_06-Nov-2007/VOCdevkit/VOC2007_tfrecord/  

--dataset_name=pascalvoc_2007  

--dataset_split_name=test  

--model_name=ron_320_vgg 

--checkpoint_path=./checkpoints/model.ckpt-109176

--batch_size=1

运行该.py会出现错误

解决:新建一个文件夹叫Debug。

还有一个错误是期望给的是int64,但是给的只是int 32,具体截图忘记截图了,意思是这个意思,

解决方法:这个就改第246行,int64改成int32.

 

运行结果:

我也不知道为什么出现上面那个错误,但是我结果是可以运行出来的,我之前SSD出现同样的错误,SSD运行结果只有49%,50%的样子。RON能达到百分之70多。

出现的问题:

Failed to run optimizer ArithmeticOptimizer, stage HoistCommonFactor. Error: Node average_precision_voc07/ArithmeticOptimizer/HoistCommonFactor_Add_AddN is missing output properties at position :0 (num_outputs=0)

我查网上也没人讲为什么怎么解决,我查到相似工程出现这个问题,别人解决方法是把tensorflow-gpu版本降到1.7,我尝试降了,但是还是有新的问题大概意思就是cuda和cudnn和tensorflow版本不匹配,要改很多配置,所以我就又给升回来了。我也不是很能理解这里,但感觉应该就是一些版本不匹配的问题。

第二个问题是,我只给了VOC2007数据集,但是结果还有VOC2012这个我也不知道什么原因,具体应该看代码吧,我看别人教程只测试这个也出现两个,还没有人回答这个问题。

后期准备看懂这个代码吧!!1

如有问题欢迎沟通~~~

参考链接:

https://blog.csdn.net/weixin_39881922/article/details/80569803

 

 

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值