如何跑通论⽂上提供的代码(Real-
TimeHumanDetectionUsingCont。。。
以下⽂章属原创,如有雷同请通知我,有错误的地⽅请⼤⽜批评指正。
本⼈在研究计算机视觉的时候,在赞叹作者的奇妙构想之余,会去寻相应的源代码,源代码可以在论⽂或者作者的⽹页中到,然⽽跑通作者的代码却不是⼀件容易的事情,今天分享⼀下本⼈跑通⼀篇基于传统⽅法的⾏⼈检测代码的全过程,或许能给各位带来些许启⽰。
⽂章:Real-Time Human Detection Using Contour Cues
代码名称:Pedestrian_ICRA
得到代码之后,第⼀时间是查看作者提供的README⽂件,如下所⽰:
上图画黄⾊部分就是我们要重点关注的地⽅,这些地⽅说明,这段代码可以在ubuntu环境下⽤系统⾃带的g++跑,并且需要OPENCV的⽀持,满⾜这两个条件,就可以在终端输⼊make得到detect程序,接下来运⾏detect程序即可。
这段⽂字看上去很简单,ubuntu系统+opencv环境,但事实上在配环境和运⾏所花的时间⽐想象的要多得多。
为什么?因为作者所⽤的操作系统版本,软件版本以及很多复杂的库等等都可能与你⽬前的配置完全不同,这时候贸然的去CSDN
g++,make,opencv等的配置⽅法可能会浪费很多时间。所以我们可以先在⽂章的Experimence部分看看作者有没有介绍相关的配置信息,下图是另外⼀篇⽂章的截图,截图是作者对配置的详细介绍:
因此,我们也来看看,这篇⾏⼈检测有没有提供配置指南,如下图:
很可惜,作者没有提供关于ubuntu系统的版本和opencv的版本,甚⾄说,⾥⾯提供的配置信息⾮常有限,基本都是在描述⾃⼰提出c4特征的性能,所以我们为了节省时间,还有⼀个办法,我们发现,代码⾥⾯提供了ubuntu版本和window版本,我们在window版本⾥⾯可以发现这么⼀条信息:
黄⾊的这句话的意思是说:我使⽤的是opencv2.2的版本,那么如果想节省时间的话,那么在window系统下配合opencv2.2就可以了。
但是如果⽤window跑opencv的话得配合VS使⽤,作者没有提供VS的具体配置,这可能就更⿇烦了,为了不这么⿇烦,硬着头⽪⽤ubuntu系统跑可不可以呢?
其实也是可以的,⾸先我们可以根据我们的ubuntu系统寻合适的opencv安装包,⽐如我的ubuntu系统是16.0.4,64位,那么我就可以在⽹站下载相应的包,这⾥提供OPENCV以及opencv_contrib的下载地址:
opencv源码下载地址:
contrib源码下载地址:
具体的安装过程很多博客上⾯都有,这⾥分享⼀篇⽐较靠谱的博客:
(写的⽐较详细,⽐较适合我的系统)
重点:
现在我们终于满⾜了作者的要求,但是由于我们的操作系统和OPENCV版本都不是作者使⽤的,所以可能会遇到各种各样的问题,下⾯简单讲⼀下我遇到的问题及解决办法。
最初遇到的是这个问题,我很纳闷我的opencv已经安装好了,为何会不到cxtypes.h,这时搜索⽹上的办法会让你安装这个⽂件,但是这个⽂件不是这么好的,⼜来发现cxtypes.h是在opencv低版本中出现的,⾼版本的opencv已经⽤其他⽂件包含了cxtypes.h⾥⾯的代码,那我们只要在源代码中删去就可以了,然⽽我们查看了各种cpp和h⽂件,⾥⾯并没有包含这个库,这种时候我们可以借助强⼤的sublime⽂件帮我们出来,如下图所⽰:
对着⽂件夹(不要对着⾥⾯的⽂件)点击右键,点击在⽂件夹中查,输⼊cxtypes,就到了结果
,原来在隐藏⽂件.deps⾥⾯,这样我们只要在根⽬录按Ctrl+h让隐藏⽂件现形,然后将⾥⾯多余的语句删去就可以了。
然后⼜出现了第⼆个问题,在输⼊make按回车后,出现了下⾯的情况:
这个错误产⽣的原因是链路不匹配,也就是调⽤opencv的时候,不能到opencv⾥⾯这些封装好的函数,但是配置路径让⽂件夹指向opencv实在是⽐较⿇烦,我们可以看到终端⾥⾯有这么⼀句话:
我们都知道,makefile⽂件其实就是代替了我们⼿动打这些指令的过程,很明显,makefile⽂件在代替我们输⼊上述指令的时候跑不通,那么我们只要在终端⼿动打这段话(复制粘贴),然后加上链接opencv的指令即可,也就是在在pkg-config 和--libs之间加⼊--cflags就可以了,最后我们可以得到程序detect了,但是这还没完,只完成了⼀半⽽已,⼀般来说,这种时候如果我们输⼊./detect,往往⼀个结果也没有,这时候就需要深⼊了解主代码的结构了,如下图所⽰:免费源码下载网站有哪些
这段代码是说,我们得⾃⼰新建⼀个名为video2的⽂件夹,并且把图⽚放进去才⾏,不过这都是⼩问题,在得到程序之后,记得查看⼀下main.cpp函数⾥⾯的主函数,这个函数往往是整份代码的第⼆个README⽂件。
那么就先分享到这⾥,哪⾥说的不对请各位CV⼤神批评指正。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论