The current common understanding of AR Technology is CV (computer Vision) +CG (computer Graphic). CV is a lot of ways, simple as FREAK+ICP (Artoolkit in the NFT), more complicated is slam (Magic Leap). CG has nothing to say, using the CV algorithm to obtain the graphics related information (such as CG in the model matrix, view matrix, projection matrix) to draw. From this point on, Pokemon go does not count as Ar game, after all, they are only based on lbs.
From now on the vision based AR system is the mainstream. But confined to my personal insight, only used Vuforia, Easyar, Artoolkit. If you are interested, you can take a look at the discussion-what are some of the best AR open source projects, or SDKs?
Vuforia not have to say, the business SDK, supported by more features, as if can support 3D Object Tracking, specific support to what extent, have not tried, we are interested can log in Vuforia official website. Easyar is a domestic sdk,ar recognition performance or to like a, we can go to see Easyar official website video, or very true to reflect its performance (unlike Magic Leap before the whale's video), the individual is still very optimistic, The biggest advantage over Vuforia is that watermarks are not required for free use (^_^;). and Artoolkit compared to the two SDK in the recognition performance and features are not very prominent, but Artoolkit wins in open source, if you need to do some AR business expansion, and Vuforia and Easyar can not meet you, Artoolkit is a good choice. And one of the trends in AR is to integrate into existing apps, so the cost of using Vuforia and Easyar is much higher. In addition, as a student, holding the study of the mentality of learning, Artoolkit is more appropriate.
So later I still focus on artoolkit research, I heard this fall ARToolKit6 will be released, or is very looking forward to, Artoolkit website link please poke.
The core idea of the Artoolkit system is this:
The following is an example of NFT (natural picture tracking, Natural Feature Tracking), which describes the AR implementation process
1. Through the camera calibration (calibration), to obtain the camera manufacturing process deviation caused by the distortion parameters, that is, camera reference (intrinsic matrix), to restore the camera model 3D space to 2D space of one by one correspondence. This has a significant effect on the subsequent feature extraction steps.
2. According to the camera's own hardware parameters, we can calculate the corresponding projection matrix (Projection matrix).
3. To identify the natural picture (that is, any two-dimensional image) for feature extraction, get to a set of feature points {P1}.
4. Real-time feature extraction of the image acquired by the camera is also a set of feature points {P2}.
5. Use the ICP (iterative Closest point) algorithm to iterate over the RT matrix (rotation&translation), the pose matrix, which is often said in the graphical view Matrix).
6. With the MVP matrix (Model View Projection), it is possible to draw graphically.
Artoolkit Support Features
For now, Artoolkit supports the identification of natural images/marker/2d barcode.
- Natural picture Processing
This application is more extensive, the restrictions on users will be much smaller. However, it is better to use some of the more obvious features of the image.
This is a special treatment of the image, need to wrap the two layers on the edge, the outer side is wrapped with a white/light edge, the inside is wrapped black edge, you can guess it is mainly to improve the recognition degree, but also convenient to calculate pose (because the edge can be directly extracted to calculate pose). Such as:
This is nothing to say, the most common.
In addition Artoolkit currently supports the rendering engine is OSG (openscenegraph), but the version is relatively low. Of course, you can also use OpenGL ES for drawing. After all we just need to get to the MVP matrix, in theory the drawing part can be completely separated.
Resources
- I want to say to everyone ar yesterday today tomorrow can? Welcome to discuss the Ar form of the future together?
- What are some of the best AR open source projects, or SDKs?
Actual Experience
ubuntu16.04 under Installation Artoolkit
GitHub has artoolkit installation documentation on Linux, HTTPS://GITHUB.COM/ARTOOLKIT/ARTOOLKIT5
Install dependencies
sudo apt install clang sudo apt install libc++-dev
Artoolkit follows the Linux model whereby required software is externally installed. The following packages is required to being installed in your package Manager to run the Artoolkit examples. (Additional packages required to build Artoolkit from source is listed on the help page.)
- C + + Runtime:use The libstdc++ or install the package ' libc++1 '.
- Opengl:package ' xorg '
- OpenCV (unless building with Clang). Packages: ' Libopencv-dev '.
- Glut:package ' Freeglut3 '. Alternatively, GLUT can be built from source and was also included in the MESA 3D libraries:
- Video4linux, LIB1394DC, or GStreamer. Packages: ' libv4l2-0 ', ' libdc1394-22 ' (for lib1394 version 2.x) or ' libdc1394-13 ' (for lib1394 version 1.x), and ' Libgstre amer1.0 ' or ' libgstreamer0.10 '.
- OpenSceneGraph (optional; The Artoolkit OSG renderer requires openscenegraph). Package ' OpenSceneGraph '.
- Installation RequiredOpenglopencv video4linux optional openscenegraph
sudo apt install libc++1sudo apt install libopencv-devsudo apt-get Install libdc1394- libraw1394-devsudo apt-get install libv4l-devsudo apt-get Install Libgstreamer1. 0 sudo apt-get install LIBGSTREAMER0. Ten
After the above dependencies are installed, you can download the Artoolkit source compilation installation
git clone https://github.com/artoolkit/artoolkit5.git
CD to the source file directory to execute
CD artoolkit5. /share/artoolkit5-setenv
./configure
./Configuremake
All the way y, without error, the installation was successful
Well, then you'll find that there is a bin directory:
When you run its example, pay attention to the following:
Linux:
Simplelite can launched from a terminal window thus:
- First, set the environment variable artoolkit5_vconf to indicate the video device to be used; For example, to use a video4linux2 camera, does:
export ARTOOLKIT5_VCONF="-module=V4L2" or to use a camera driven via GStreamer, doexport ARTOOLKIT5_VCONF="-module=GStreamer"
- Then CD to the bin directory and do
./simpleLite
You can also refer to his post: 73467764
Reference:
[1] http://www.cnblogs.com/polobymulberry/p/5857372.html
[2] 80607382
ubuntu16.04 under Installation artoolkit5