当前位置: 代码迷 >> 综合 >> BING代码:BingObjectnessCVPR14在VS2013+win64+opencv2.4.12位下的运行方法
  详细解决方案

BING代码:BingObjectnessCVPR14在VS2013+win64+opencv2.4.12位下的运行方法

热度:55   发布时间:2024-01-22 00:27:42.0

源码下载地址:http://mmcheng.net/code-data/

点击图中框框那个位置下载就可以了,下载下来的文件是BingObjectnessCVPR14。作者设置了解压密码:mmcheng.net


文件解压后:


作者没有在项目文件中放数据集,你可以单独去下载一个数据集,作者也在主页中放了下载链接。



接下来,打开项目文件(用VS2013打开解决方案,提示升级VC++编译器和库,直接点击确定就好):


1、配置LibLinear

在解决方案页,右键LibLinear,选为启动项目;


② 在linear.cpp文件中,修改print_string_stdout函数为extern “C” static void print_string_stdout(const char *s)


③ 代码生成


生成静态库

ctrl+F5之后在相应目录下生成LibLinear.lib静态库。


看到上面显示的那个静态库的输出位置了吗?因为一会儿要引用这个库,所以最好确定一下你的静态库生成在了哪里。比如我的就是在这里,和截图中显示的位置是一致的。


2、配置Objectness

在解决方案页,右键Objectness,选为启动项目;


② 打开Debug属性,链接器->附加库目录,添加LibLinear.lib的目录;(注意:链接库依赖项 要设为是(yes))




③ 配置opencv

 我的建议是专门为opencv建立一个属性表,这样就不用每次都配置了,只需要在项目中添加之前配置好的属性表就可以了。不过为了这次方法的完整性,我决定还是把opencv的配置方法再写一遍。

debug新建属性表:

右键Debug|x64->添加新项目属性表,新建一个opencv_debug.props文件(建议保存在很好找的位置,便于很多项目添加它)。



打开opencv_debug.props,VC++目录->包含目录的修改如下:



VC++目录->库目录的修改如下:



链接器->输入->附加依赖项:



为了粘贴方便,就是这些:(注意改成你的opencv版本)

opencv_ml2412d.lib
opencv_calib3d2412d.lib
opencv_contrib2412d.lib
opencv_core2412d.lib
opencv_features2d2412d.lib
opencv_flann2412d.lib
opencv_gpu2412d.lib
opencv_highgui2412d.lib
opencv_imgproc2412d.lib
opencv_legacy2412d.lib
opencv_objdetect2412d.lib
opencv_ts2412d.lib
opencv_video2412d.lib
opencv_nonfree2412d.lib
opencv_ocl2412d.lib
opencv_photo2412d.lib
opencv_stitching2412d.lib
opencv_superres2412d.lib
opencv_videostab2412d.lib


release新建属性表:

右键Release|x64->添加新项目属性表,新建一个opencv_release.props文件(建议保存在很好找的位置,便于很多项目添加它)。

VC++目录->包含目录以及VC++目录->库目录debug中的一致,不再赘述。

链接器->输入->附加依赖项:Debug版本就用d结尾的库,Release版本就用不带d结尾的库。

??

④ 代码生成


⑤ 框出的Main.cpp这句代码原本是注释掉的,我们让它执行,这样就能最终看到算法在图中的展示效果。


⑥ 在release模式下,右键Objectness,重新生成。



⑦ 在release模式下,ctrl+F5执行程序。出现下图就是运行成功啦~



运行结果说明:

VOC2007文件夹下多了下面这两个文件夹:



Local->ResIlu下存放的是依据该算法在每张测试图像中生成的proposal


Results文件夹下存放的是中间结果,包括:

BBoxesB2W8MAXBGR:存放每张测试图像中生成的所有window的得分以及位置。

Filter.png:第一级训练模型的参数w归一化到1-255之后可视化的结果。

.idx:激活的尺度索引

.wS1第一级SVM训练学习到的参数w(是一个8×8的矩阵)。

.wS2第二级SVM训练学习到参数结果viti,(是一个NUM_SZ×2的矩阵)。

.xN送入第一级SVM所有负样本特征矩阵(负样本数目*64)

.xP送入第一级SVM的所有正样本特征矩阵(正样本数目*64)

PerImgAll.m 用于绘制DR-#WIN曲线,已经将相应参数写入“PerImgAll.m”文档中,可以利用matlab画图。


  相关解决方案