InfiniTAM在Windows10的配置

cmake

cmake

image_1cs8jshp9oon56lj691ugooet9.png-302kB
image_1cs8jshp9oon56lj691ugooet9.png-302kB

直接下载exe文件安装;

opengl

OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用。如果需要在程序里直接使用OpenGL,会有很多非常恶心的预备工作要做,而且可能还要专门为平台的差异写一些代码。要跳过这些工作,可以用一个utility库,直接使用它提供的函数,就不用操心那些细节了。这样的库新一点的有GLEW,因为开源所以安装相对方便(大不了丢进去一起编译),但各种教程和书里常见的是闭源的GLUT。由于GLUT的作者已经很久没更新过了(最后更新于2000年!= =),所以其他人另外做了一个接口兼容GLUT的freeglut,开源而且一直在维护中。
在 Windows 下可以安装 GLUT 或者 freeglut 其中的一个,不过建议安装后者。在 Ubuntu 下安装 freeglut即可。

freeglut

1. 先介绍一种方法,使用MinGM

在Windows/Ubuntu下安装OpenGL环境GLUT/freeglut

  • 下载MinGW,请自行解决,这里不再赘述;
  • 点击下载freeglut3.0.0 for MinGW

注意!在64位版本的windows 7 下,win32版的freeglut.dll要放入sysWoW64,而x64版本的要放入system32。因为system32中的动态链接库其实是原生64位版本的。而为了兼顾兼容性,才有了sysWoW64,这个目录中存放的反而是32位的链接库。

```
C:\Windows\SysWOW64
└─ freeglut.dll(32位的mingw就用bin目录下那个,不是bin/x64那个)
D:\mingw
    ├─ include
    │   └─ GL
    │      ├─ freeglut.h
    │      ├─ freeglut_ext.h
    │      ├─ freeglut_std.h
    │      └─ glut.h (注意这个和老版的glut.h不同)
    └─ lib
        ├─ libfreeglut.a (这两个同样用lib目录下的两个)
        └─ libfreeglut_static.a
```

2. 如果上面的不可以,使用VS

没关系,windows就是这么坑,本人混迹Mac,Ubuntu各种操作系统未曾见过如此坑的(对开发者不友好),各种版本问题;吐槽结束,我们用微软的软件搞一下;

Freeglut在windows 7 64bit + visual studios 2010下的安装与配置
用 Visual C++ 2015 编译 FreeGLUT

  • 下载freeglut(本人是2.8.1版本)
    用Visual Studio 2013打开freeglut.sln文件,注意不要使用太高版本的VS,否则编译不成功,接下来编译就好了;


    image_1csalgl8h1api171ckg01bb4dfl9.png-72.8kB
    image_1csalgl8h1api171ckg01bb4dfl9.png-72.8kB
  • 几个重要的步骤就是复制dll和lib

    1. 然后进入“freeglut-2.8.1\lib”。分别复制x64和win32下的freeglut.dll文件到“C:\windows\system32”和“C:\windows\sysWoW64”下。
      强行安行第二次注意,这里一定要搞清楚;

      注意!在64位版本的windows 7 下,win32版的freeglut.dll要放入sysWoW64,而x64版本的要放入system32。因为system32中的动态链接库其实是原生64位版本的。而为了兼顾兼容性,才有了sysWoW64,这个目录中存放的反而是32位的链接库。
      2. 接着分别将x64和win32目录下的两个freeglut.lib放入“D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64”和“D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib”。这里就是正常对应的。
      3. 最后将“\freeglut-2.8.1\include”下的“GL”目录复制到“D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include”即可。
      4. 测试工程,网上找个glut的代码自己编一下吧!

这就成功了!
这就成功了!

InfiniTAM

重点来啦,前提是上面的你必须解决,否则你也将有更多的坑要踩,排除好嘛,排除法!!!

搞定驱动

既然要用到深度相机,首先要搞定硬件的驱动程序,把深度相机的Demo跑起来就算是成功了!

我这里用到的是Kinect V1设备,于是上网找kinect for sdk驱动程序,注意一下版本,具体只能试了;查了一下貌似Kinect SDK2对硬件有要求,觉得还是用v1的驱动(远离高版本),网上给出了两个下载,一个是v1.8的驱动Kinect for Windows SDK v1.8和一个开发者工具包toolkitKinect for Windows Developer Toolkit,下载下来安装。

image_1csan745clgk1r9k10jk1oqj8g2j.png-35.3kB
image_1csan745clgk1r9k10jk1oqj8g2j.png-35.3kB

接下来打开openni的示例程序,NiViewer,出来深度图你就搞定了!!!哈哈哈,图像分左右,左边是深度图,右边是本人;
一个小秘籍:测试demo跑不出来,大概率是驱动出了问题,查版本去吧!!!(是不是暴露了win的版本兼容很成问题,微软自己的软件啊这可是)

image_1csan9pu1jqu1653s7ko1dbi50.png-181.3kB
image_1csan9pu1jqu1653s7ko1dbi50.png-181.3kB

搞定工程

接下来就是用cmake打开你的InfiniTAM工程,并生成build路径,如图;

image_1csb48hqc1tka1kt2aaest1l3h5t.png-83.9kB
image_1csb48hqc1tka1kt2aaest1l3h5t.png-83.9kB

error MSB3073: The command setlocal问题

打开后build,出现error MSB3073: The command setlocal这个问题,貌似很棘手,下午4点,开始研究中,先搞杯咖啡去。。。
上面的这个问题卡了大哥一下午,现在已经是晚上七点,哥还在搞这个问题,现在正在下vs2010,准备编译一下freeglut2.8.0版本,之前用的是2.8.1,因为看到工程项目里说是用2.8.0或者3.0.0,之前用3.0.0没有成功,这个版本问题真的是坑;

接下来出现了三种解决方法:

  1. 如果编译出现这个错误估计是版本不太不同造成的,双击错误来到错误的地方,删除让你错误的那行,编译没必要搞那么复杂,编译通过,但是生成的程序仍然不能运行;
  2. 默认的 CMAKE_INSTALL_PREFIX 是 C 盘,没有权限。修改 CMAKE_INSTALL_PREFIX到非当前文件夹即可。修改这个路径是不起任何作用的;
  3. 解决办法:(install)项目–>属性–>生成事件–>后期生成事件–>在生成中使用–>否,这个修改了之后也是同第一种,减少了一个cmake命令;

总之以上虽然解决了编译的问题,但是TAM程序还是未能启动,现在是第二天上午10点,这个问题还在这里卡着。。。

运行过程出现cannot find or open the PDB file

这个是调试器的问题,直接按ctrl + F5解决,很恐慌,以为又要遇到什么大坑。

还是找不到驱动的问题

image_1csd5di1a155s1ddmhsdvkj1rq69a.png-332.5kB
image_1csd5di1a155s1ddmhsdvkj1rq69a.png-332.5kB

从驱动下手,然而我跑kinect的测试程序NiViewer是成功的啊,我想可能是这个程序的驱动要求不匹配造成的;

使用Visual Studio编译中的问题

  1. include移到系统库
    C:\Program Files(x86)\Windows Kits\10\Lib

  2. 添加Visual Studio工具并支持Visual C++ 64位编译器

  3. 解决打开以前版本工程不兼容问题,打开vs, 点击工具->扩展和更新,在弹出的对话框左侧单机联机,在右侧输入installer关键词,内容截屏如下,下载Microsoft Visual Studio 2015 Installer Projects;

  4. 提示找不到OpenNI2.dll,如下图所示,


    image_1cs8to8mhs2gptu19k9pulju5m.png-13.9kB
    image_1cs8to8mhs2gptu19k9pulju5m.png-13.9kB

    在OpenNI2安装目录bin中找到该文件复制到提示的路径下;

  5. 不是有效的win32应用程序怎么解决,这可能是你的.dll真的不符合它们的要求,从dll文件下手吧;


    image_1cs8u2h8q6dk10m1gje1gps193r2j.png-50.1kB
    image_1cs8u2h8q6dk10m1gje1gps193r2j.png-50.1kB
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容