摘要:本文主要向大家介绍了Windows运维之DPM算法源程序voc-release5在Windows中的配置修改过程,通过具体的内容向大家展现,希望对大家学习Windows运维有所帮助。
本文主要向大家介绍了Windows运维之DPM算法源程序voc-release5在Windows中的配置修改过程,通过具体的内容向大家展现,希望对大家学习Windows运维有所帮助。
最近的《视频处理与分析》课程中有一个大作业,是有关DPM物体检测算法的。网上有DPM的源代码,但是原版只能在Linux或Mac上运行,而我的电脑是Windows系统,于是在网上搜了一下在怎样Windows在运行,最后通过一些代码的修改,可以在Windows上正常运行,下面记录我的修改过程。
DPM源程序下载:Discriminatively Trained Deformable Part Models (Release 5)
我下载的是voc-release5版本。
voc-release5原版并不支持在Windows系统中编译运行,但只需进行以下几项代码修改即可完美解决。
源代码修改步骤
1. 修改features目录下的features.cc文件:在所有#include下面添加下面两行代码(因为Windows系统上缺少这样的定义);
#define bzero(a, b) memset(a, 0, b) int round(float a) { float tmp = a - (int)a; if( tmp >= 0.5 ) return (int)a + 1; else return (int)a; }
2. 修改features目录下的resize.cc文件:同样添加上面两行代码,再将第39行
alphainfo ofs[len];
改为
struct alphainfo *ofs = (struct alphainfo *)malloc(sizeof(struct alphainfo)*len);
再在第80行后(该函数最后)添加一行
free(ofs);
3. 修改fv_cache目录下的fv_compile.m文件:将第13~15行代码注释掉(即允许在Windows系统上编译);
4. 修改gdetect目录下的bounded_dt.cc文件:在所有#include下面添加下面两行代码(同样是因为Windows系统上缺少这样的定义);
#define int32_t int#define INFINITY 1e8
5. 修改gdetect目录下的dt.cc文件:在所有#include下面添加下面一行代码(同样是因为Windows系统上缺少这样的定义);
#define int32_t int
6. 修改star-cascade目录下的cascade.cc文件:在所有#include下面添加下面一行代码(同样是因为Windows系统上缺少这样的定义);
#define INFINITY 1e8
7. 修改star-cascade目录下的cascade_compile.m文件:将第13~15行代码注释掉(即允许在Windows系统上编译);
8. 修改star-cascade目录下的timer.h文件:删掉第6行代码#include
#include
9. 修改compile.m文件:将第13~15行代码注释掉(即允许在Windows系统上编译),再注释掉第64行并取消注释第68行(即选择编译fconv_var_dim.cc而不是fconvsse.cc),再注释掉第72行并取消注释第74行(即选择编译fconv_var_dim.cc而不是fconv_var_dim_MT.cc),再将所有的-o改为-output;
按上述步骤修改完之后,在Matlab中运行demo.m即可(如果你的Matlab还没有配置mex的话,需要提前配置一下,即在Matlab命令窗口执行mex -setup,选择一个编译器即可)。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维windows频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号