LZ最近在看一些关于利用maker对相机位姿进行估计和跟踪的问题,在查阅资料的过程中,发现有一款非常好的开源代码就是ARToolkit,哈哈,可高兴了,因为又可以有好玩的可以尝试一下。官方的教程LZ尝试发现并没有配置成功,然后继续各种百度谷歌,主要的教程好像都是基于windows下的,关于Linux的介绍很少,所以,这里做一个总结的帖子,以免后续的小伙伴们再重新走一遍坑(当然也是LZ自己要留个笔记,不然LZ这脑子肯定记不住。。。)
讲了这么多,开始进入正题了。
1.配置必要的环境
官网上是这个状态。。。然后我还是简单的翻译一下。
首先要安装OpenGL和GLUT
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
可以在/usr/inlcude或者/usr/local/include找到opengl.h,glut.h,glu.h的头文件,这个算是一个简单的检验。
安装video library
这个主要是要使用电脑的摄像头,要对摄像头输入输出进行一个配置吧,上面有好几种方式,具体的LZ因为接触时间不长,对不同的视频特性也不是很了解,如果有了解的小伙伴可以多多指教。LZ就只说自己是配置的那种方法了。
LZ使用的是GStreamer0.10
sudo apt-get install libgstreamer0.10-dev gstreamer-tools gstreamer0.10-tools gstreamer0.10-doc gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse
后面看到optional就不是强制性的就没有进行配置了,如果小伙伴感兴趣可以自己配置一下。
到这里基本的环境就配置好啦!
2.安装ARToolkit
下载安装包,LZ下载的版本是ARToolKit-2.72.1.tgz是比较老的版本了
//解压到需要的文件夹中
tar zxvf ARToolKit-2.71.tgz
//下载的源代码的配置有些问题,解压后需要修改原来的配置文件,在解压后的路径下,打开Configure文件,按如下说明修改
elif [ "$ANS" = "5" ]
then
VIDEO_DRIVER="VideoGStreamer"
GST_INCLUDE=pkg-config --cflags gstreamer-0.10
GST_LIBS=pkg-config --libs gstreamer-0.10
CFLAG=”-O $GST_INCLUDE -I/usr/X11R6/include”
LDFLAG=”$GST_LIBS -L/usr/X11R6/lib -L/usr/local/lib”
ARFLAG=”rs”
RANLIB=””
#在“-lm”后增加“$GST_LIBS”
LIBS=”-lpthread -lglut -lGLU -lGL -lXi -lX11 -lm $GST_LIBS”
CONFIG=”AR_INPUT_GSTREAMER”
else
echo “Please enter 1,2,3,4 or 5.”
exit 0
fi
//修改保存后,在Terminal中执行如下命令。
//进行配置
cd {ARToolKit}
./Configure
//分别输入5, N,N。
此时执行make并运行一些sample会提示错误:
GStreamer-CRITICAL **: gst_parse_launch_full: assertion ‘pipeline_description != NULL’ failed
这是因为还缺少对camera的描述。可在相应sample源码中对vconf变量赋下面的值。
char *vconf = “v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! Fakesink”
这个是要在源代码中进行修改的,如果说不想修改源码,也可以在终端中输入如下命令:
export ARTOOLKIT_CONFIG=“v4l2src device=/dev/video0 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! Fakesink”
如果是上述方法的话,每次运行终端都要输入这段命令,所以看小伙伴们自己的习惯进行配置。
这段描述可在解压目录/doc/video/index.html中查看详情。其中的device=/dev/video0需要去设备中确认并进行修改。
3.运行各种例子
make并去解压路径/bin下运行各sample。
cd bin
./videoTest
这个就是检验摄像头有没有配置成功的,如果配置成功,电脑的摄像头就会打开并进行工作。
./graphicTest
这个是检验opengl是否正常工作,如果运行成功,可以看到一个快速旋转的水壶。截图如下所示:
./simpleLite
最基础的一个增强现实的例子,具体截图如下所示:
嗯,这样ARToolkit也算是配置完成啦O(∩_∩)O哈哈~
在整理草稿的时候,发现有几个问题遗漏了,现在补充一下。下载的ARToolkit用的是OpenCV 2版本的,LZ安装的是OpenCV3.2版本,汇报如下错误:
error:"CV_CALIB_CB_ADAPTIVE_THRESH" was not declared in this scope
解决方案很简单,加上如下的头文件:
#include<opencv2/calib3d/calib3d.hpp>