- 转载请注明作者和出处:http://blog.csdn.net/u011475210
- 操作系统:WINDOWS 10
- 软件版本:VS2013+OpenCV2.4.13
- 编者: WordZzzz
一、资源
1.论文作者主页:http://mmcheng.net/zh/bing/
2.代码下载地址:http://mmcheng.net/zh/code-data/
3.数据集下载地址:http://mmcheng.net/zh/bing/
二、环境配置
如果你用的是Visual Studio 2012,正好电脑也支持X64平台,那么你只需要配置一下VS2012下的OpenCV(版本要求2.4.8以上),下载的程序就可以直接用了。
我做了一些排雷的动作,尝试了Visual Studio 2013中Release、Debug中的x64和win32版本,即:Release+x64、Debug+x64、Release+win32、Debug+win32.但是因为本渣渣能力有限,最终没能把Visual Studio 2013中的Debug+win32版本跑出来。
1.解压下载的源码:
解压后文件夹内容如图所示:
2.解压VOC2007数据集:
在上图的源码文件中我们也可以看到有个VOC2007文件夹,里面只有ImageSets一个文件夹(里面是训练时会用到的文本文档)。在这一步,我们要把下载好的800多MB的数据集解压到源码的VOC2007文件夹下。(注意在解压过程中当出现是否覆盖的选项时,一律选择跳过,虽然覆盖了也不是很影响效果。)
3.用VS2013打开解决方案,提示升级VC++编译器和库,直接点击确定就好:
4.X64->WIN32:
添加win32配置管理器,注意一定要从x64继承下来其他东西。
5.配置LibLinear:
- 右键LibLinear,选为启动项目;
- 在linear.cpp文件中,修改print_string_stdout函数为:extern “C” static void print_string_stdout(const char *s)
- 静态库配置:
6.LibLinear代码生成:
最重要的就是这一块的东西了,我直接把四种配置的截图贴在这里,注意,MT对应Release,MTD对应Debug,但是作者的Debug版本用的是DLL(/MDd),所以本渣渣在Debug版本中也没做更改:
Release+x64:
Debug+x64:
Release+win32:
Debug+win32(失败):
ctrl+F5之后在相应目录下生成LibLinear.lib静态库,记下这个地址。
7.配置Objectness:
以Debug+win32的配置为例进行介绍(虽然配置失败,但是这些属性设置是通用的,所以没有更新截图)
- 右键Objectness,选为启动项目;
打开Debug属性,链接器->附加库目录,添加LibLinear.lib的目录;(注意:链接库依赖项 要设为是(yes))
用_popcnt函数实现_popcnt64函数功能:需要自己动手在INT64类型基础上写函数。要加头文件#include
在stdafx.h中。 1
2
3
4inline INT64 __popcnt64(INT64 x)
{
return __popcnt((unsigned int)(x )) +__popcnt((unsigned int)(x>> 32));
}
8.配置opencv:
这里大家可以参考浅墨的博客进行配置,当然本渣渣要是有时间了也会写一篇博客并在此更新链接。浅墨opencv配置链接:
http://blog.csdn.net/poem_qianmo/article/details/19809337
这里我只贴出一些需要填写路径的截图:
需要注意的是上图部分,Debug版本就用d结尾的库,Release版本就用不带d结尾的库,千万不要像浅墨那样两个版本都塞进去,否则会莫名其妙报错。
9.再次配置Objectness的代码生成,和第6步是一样的。
ctrl+F5之后,运行成功。
10.效果展示:
11.其他:
如果想优化代码,可以打开openmp,并且设置一下优化等级,本渣渣在这里只是为了看处理效果,所以就没做优化的配置。关于优化配置可参考链接(有些情况不一定好使):http://www.cnblogs.com/larch18/p/4560690.html
系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~
完的汪(∪。∪)。。。zzz