Kim, Sung-Ho School of Computer, Information and Communication Engineering Sangji Univ.

Slides:



Advertisements
Similar presentations
Development of a system to reproduce the drainage from Tsujun Bridge for environment education Hikari Takehara Kumamoto National College of Technology.
Advertisements

A Natural Interactive Game By Zak Wilson. Background This project was my second year group project at University and I have chosen it to present as it.
Automatic Color Gamut Calibration Cristobal Alvarez-Russell Michael Novitzky Phillip Marks.
Correcting Projector Distortions on Planar Screens via Homography
Bedroom Design Using Google Sketchup Mr. Martin Computers, Stella Maris Academy.
Mixed Reality Systems -Lab IV – Augmented Reality- Christoph Anthes.
Processing Processing is a simple programming environment that was created to make it easier to develop visually oriented applications with an emphasis.
Move With Me S.W Graduation Project An Najah National University Engineering Faculty Computer Engineering Department Supervisor : Dr. Raed Al-Qadi Ghada.
Robotics Simulator Intelligent Systems Lab. What is it ? Software framework - Simulating Robotics Algorithms.
Intro to Simulation and Virtual reality – CE ► An overview of VR and simulation ► Practical application of theory ► Module Leader - Bob Hobbs ►
DSA Processing. Links Processing.org My Processing page Ben Fry Ben Fry’s Thesis on Computational Information DesignThesis Casey Reas siteCasey Reas Casey.
ART: Augmented Reality Table for Interactive Trading Card Game Albert H.T. Lam, Kevin C. H. Chow, Edward H. H. Yau and Michael R. Lyu Department of Computer.
Camera parameters Extrinisic parameters define location and orientation of camera reference frame with respect to world frame Intrinsic parameters define.
Camera Parameters and Calibration. Camera parameters From last time….
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Automatic Camera Calibration
Created in 2011 at Liberty High School. Getting Started Overview on Magnet Tool – Graphics – Text – Image – Video – Sound – Wall A Sample Glog How to.
Augmented Reality and 3D modelling Done by Stafford Joemat Supervised by Mr James Connan and Mr Mehrdad Ghaziasgar.
Knowledge Systems Lab JN 8/24/2015 A Method for Temporal Hand Gesture Recognition Joshua R. New Knowledge Systems Laboratory Jacksonville State University.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Configuring the MagicInfo Pro Display
Shape Recognition and Pose Estimation for Mobile Augmented Reality Author : N. Hagbi, J. El-Sana, O. Bergig, and M. Billinghurst Date : Speaker.
Aver Vision 300 AF+. Software is needed rt-av300afplus.asp rt-av300afplus.asp.
EEC-693/793 Applied Computer Vision with Depth Cameras Lecture 13 Wenbing Zhao
OpenGL Shading Language (Advanced Computer Graphics) Ernest Tatum.
Speaker : Meng-Shun Su Adviser : Chih-Hung Lin Ten-Chuan Hsiao Ten-Chuan Hsiao Date : 2010/01/26 ©2010 STUT. CSIE. Multimedia and Information Security.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
Week 2 - Wednesday CS361.
1 k Jarek Rossignac,  2008 Processing  Install Processing  Learn how to edit, run, save, export, post programs  Understand.
3D Model Reconstruction with Voodoo Camera Tracker Jae Hyuk Kwak 2009 Fall CS682 George Mason Univ. 1.
School of Computer, Information and Communication Engineering
Microsoft Robotics Studio Simulation Kyle Johns Software Development Engineer Microsoft Corporation.
CS380 LAB IV OpenGL Jonghyeob Lee Reference1. [OpenGL course slides by Rasmus Stenholt] Reference2. [
Kim, Sung-Ho School of Computer, Information and Communication Engineering Sangji Univ.
Computer Science Department Pacific University Artificial Intelligence -- Computer Vision.
Lecture 11: Exam Revision 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271  Coursework.
Augmented Reality and 3D modelling By Stafford Joemat Supervised by Mr James Connan.
Modeling with OpenGL Practice with OpenGL transformations.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Augmented Reality Authorized By: Miss.Trupti Pardeshi. NDMVP, Comp Dept. Augmented Reality 1/ 23.
NA-MIC National Alliance for Medical Image Computing Slicer3 Tutorial: Registration Library Case 15 AC-PC Alignment Dominik Meier, Ron.
1 Graphics CSCI 343, Fall 2015 Lecture 3 Introduction to WebGL.
C++ LANGUAGE TUTORIAL LESSON 1 –WRITING YOUR FIRST PROGRAM.
Computer Graphics Lab 1 OpenGL.
Electrical and Computer Engineer Large Portable Projected Peripheral Touchscreen Team Jackson Brian Gosselin Jr. Greg Langlois Nick Jacek Dmitry Kovalenkov.
Spring 2007 COMP TUI 1 Computer Vision for Tangible User Interfaces.
CONTENT FOCUS FOCUS INTRODUCTION INTRODUCTION COMPONENTS COMPONENTS TYPES OF GESTURES TYPES OF GESTURES ADVANTAGES ADVANTAGES CHALLENGES CHALLENGES REFERENCE.
Border Code: an Efficient Code System for Augmented Reality Seong-hun Park and Young-guk Ha' Konkuk University, Department of Computer Science and Engineering,
Augmented Reality and 3D modelling Done by Stafford Joemat Supervised by Mr James Connan.
1 Perception and VR MONT 104S, Fall 2008 Lecture 20 Computer Graphics and VR.
Visualization Recreate the ping pong scene in 3D using ball and racket coordinates.
Frank Bergschneider February 21, 2014 Presented to National Instruments.
What you need: In order to use these programs you need a program that sends out OSC messages in TUIO format. There are a few options in programs that.
Optical Flow walk through Aidean Sharghi Spring 14.
Augmented Reality and 3D modelling Done by Stafford Joemat Supervised by Mr James Connan and Mehrdad Ghaziasgar.
OpenCV C++ Image Processing
Kim, Sung-Ho School of Computer, Information and Communication Engineering Sangji Univ.
Visual Information Processing. Human Perception V.S. Machine Perception  Human perception: pictorial information improvement for human interpretation.
Game Development with Unity3D
Using the Cyton Viewer Intro to the viewer.
Layers in Adobe After Effect
CS 4501: Introduction to Computer Vision Augmented and Virtual Reality
Adapting Files On A “Visual Webpage” (Ver /mb)
EEC-693/793 Applied Computer Vision with Depth Cameras
Window reshaping, Keyboard interaction, Camera, Drawing objects
Live Actor and Entity Representation in MAR
Introduction to R.
An Introduction of Marker and Markerless In AR
The department of Computer Engineering Shin ho hwan
Computer Graphics 5Practical Lesson
Presentation transcript:

Kim, Sung-Ho School of Computer, Information and Communication Engineering Sangji Univ.

증강현실의 개요 ARToolKit 의 특징 What does ARToolKit do? How does ARToolKit work? How to install & setting up it? Setting up ARToolKit Camera Calibration Coordinate System ARToolKit Tutorials References 차 례차 례차 례차 례 차 례

가상 현실 (Virtual Reality) 의 한 분야로 실제 환경에 가상 사물이나 정보를 합 성하여 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽스 기 법으로,“ 증대, 확대 ” 라는 의미를 담고 있는 증강 (Augmentation) 이라는 단어와 눈앞에 펼쳐진 실제 현실 (Reality) 이라는 단어가 합쳐진 합성어 어떤 특정한 환경이나 상황을 컴퓨터로 만들어서 그것을 사용하는 사람이 마 치 실제 주변 상황이나 환경과 상호작용을 하고 있는 것처럼 만들어 주는 인 간과 컴퓨터 사이의 인터페이스 (Interface) – 인공 현실 (Artificial Reality), 사이버 공간 (Cyber Space) – 가상 세계 (Virtual Worlds), 가상 환경 (Virtual Environment) – 합성 환경 (Synthetic Environment), 인공 환경 (Artificial Environment) – 시뮬레이션 기술 (Simulation Technology) 가상현실 : 현실 세계를 대체하여 창조된 새로운 환경 증강현실 : 현실 세계에 가상의 정보 ( 객체 ) 를 중첩함 (Mixing) 으로써 현실 세계 를 보충하여 사용자에게 보여 주는 환경 – 현실의 이미지와 가상의 이미지를 결합한 것 – 실시간으로 Interaction 이 가능한 것 – 3D 공간 안에 놓인 것 증강현실의 개요 증강현실의 개요

증강현실의 요소 기술 – Marker Detection Technology 기준 좌표 역할을 하는 사각형의 마커를 인식하고 그 마커를 기준점 으로 하는 기술 – Markerless Tracking Technology Feature based Tracking 영상 내에서 특징 점들을 추출하고 이 특징 점들을 기반으로 좌표 계 를 추출 특징 점을 이용하기 때문에 사용자가 정의한 특정 패턴을 마커로 이 용할 수도 있다. 증강현실 기술에 있어서 가장 난이도 있고 점차 더 중요한 기술이 될 것으로 평가 증강현실의 개요 ( 계속 ) 증강현실의 개요 (계속)

단일 카메라의 위치 / 방향을 추적한다 검은 사각형을 사용하는 추적코드는 간단하다 사각형의 Marker Pattern 을 사용한다 간편하게 카메라 코드를 보정 할 수 있다 빠른 실시간 어플리케이션이다 무료로 배포되는 오픈 소스이다 PC CAM( 화상카메라 ), Visual studio 6.0 이상, DirectX 9.0b 이상 ARToolKit 의 특징 ARToolKit의 특징

ARToolKit 의 Architecture ARToolKit의 Architecture

ARToolKit 의 Structure ARToolKit의 Structure

ARToolKit - Free tracking library – Software library for building AR applications based on OpenGL – Calculate the real camera position and orientation relative to physical markers in real time – 3D VRML support – Software Library for vision-based AR applications Open Source(C language), multi-platform(SGI IRIX, PC Linux, PC Windows) – Overlays 3D virtual objects on real markers Uses single tracking marker Determines camera pose information (6 DOF) – Includes utilities for marker-based interaction – ARToolKit Website Limitations – Monocular camera setup 을 사용하므로 3D 측정이 불가능함 – Lighting condition 과 Marker 의 재질에 민감하게 반응할 수 있음 What does ARToolKit do ? What does ARToolKit do ?

Principle of ARToolKit – How does ARToolKit work? How does ARToolKit work?

static void mainLoop(void) { static int contF = 0; ARUint8 *dataPtr; ARMarkerInfo *marker_info; int marker_num; int j, k; /* grab a vide frame */ if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL ) { arUtilSleep(2); return; } if( count == 0 ) arUtilTimerReset(); count++; argDrawMode2D();... How does ARToolKit work? (con’t) How does ARToolKit work? (con’t)

..... /* grab a vide frame */ if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL ) { arUtilSleep(2); return; } if( count == 0 ) arUtilTimerReset(); count++; argDrawMode2D(); argDispImage( dataPtr, 0,0 ); /* detect the markers in the video frame */ if( arDetectMarker(dataPtr, thresh, &marker_info, &marker_num) < 0 ) { cleanup(); exit(0); } arVideoCapNext();..... How does ARToolKit work? (con’t) How does ARToolKit work? (con’t)

.... if( arDetectMarker(dataPtr, thresh, &marker_info, &marker_num) < 0 ) { cleanup(); exit(0); } arVideoCapNext(); /* check for object visibility */ k = -1; for( j = 0; j < marker_num; j++ ) { if( patt_id == marker_info[j].id ) { if( k == -1 ) k = j; else if( marker_info[k].cf < marker_info[j].cf ) k = j; } if( k == -1 ) {.... How does ARToolKit work? (con’t) How does ARToolKit work? (con’t)

.... /* check for object visibility */.... /* get the transformation between the marker and the real camera */ arGetTransMat(&marker_info[k], patt_center, patt_width, patt_trans); draw(); argSwapBuffers(); } How does ARToolKit work? (con’t) How does ARToolKit work? (con’t)

static void draw( void ) {.... /* load the camera transformation matrix */ argConvGlpara(patt_trans, gl_para); glMatrixMode(GL_MODELVIEW); glLoadMatrixd( gl_para ); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightfv(GL_LIGHT0, GL_POSITION, light_position); glLightfv(GL_LIGHT0, GL_AMBIENT, ambi); glLightfv(GL_LIGHT0, GL_DIFFUSE, lightZeroColor); glMaterialfv(GL_FRONT, GL_SPECULAR, mat_flash); glMaterialfv(GL_FRONT, GL_SHININESS, mat_flash_shiny); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); glMatrixMode(GL_MODELVIEW); //glTranslatef( 0.0, 0.0, 25.0 ); glTranslatef( 0, 0, 25.0 ); glutSolidCube(50.0); glDisable( GL_LIGHTING ); glDisable( GL_DEPTH_TEST ); How does ARToolKit work? (con’t) How does ARToolKit work? (con’t)

– Live video image 를 binary image 로 변환 (lighting threshold value 사용 ) – binary image 에서 모든 square region 탐색 – 각 square region 내의 pattern 을 capture 하여 pre-trained pattern – template 들과 match 를 시도하여 실제 marker 인지를 결정 – 일단 한 marker 를 찾으면, 알려진 square size 와 pattern orientation 을 – 사용하여 (marker 에 상대적인 ) real video camera 의 position 을 계산함 – 실제 camera 를 계산하면, virtual object 들을 image 에 draw 할 수 있음 How does ARToolKit work? (continued..) How does ARToolKit work? (continued..)

Multiplateform library (Windows, Mac OS, Linux) For Windows – Download OpenGL – GLUT GLUT DSVL(DirectShow Video Processing Library) – Communication with the camera driver Communication with the camera driver ARToolkit library OpenVRML Libpng / jpeg Libpngjpeg DXSDK msvcr71d.dll, msvcp71d.dll msvcr71d.dllmsvcp71d.dll – Building library – Visual Studio 6 & Visual Studio.NET 2003 How to install & setting up it ? How to install & setting up it ?

Compile SimpleVRML with OpenVRML Setting up ARToolKit Setting up ARToolKit

Calibration – 특정조건에서 측정기기, 표준물질, 척도 또는 측정체계 등에 의하여 결정 된 값을 표준에 의하여 결정된 값 사이의 관계로 확정하는 일련의 작업을 말한다 Camera Calibration – 카메라의 정보 ( 내부변수 [intrinsic parameter] 와 외부변수 [extrinsic parameter]) 를 알아내는 작업으로서, 실 세계의 장면이 카메라를 통해 픽셀 로 변환되면 왜곡이 발생하는데 이러한 것들을 보정하는 작업을 말한다.. – 카메라의 정보 : ARToolKit/bin/Data/WDM_camera_flipV.xml – Two Step Calibration – One Step Calibration Camera Calibration Camera Calibration

– Computer Vision Coordinate System – Rendering Coordinate System Coordinate Systems Coordinate Systems

Tutorial 1 : Tracking Stability – Tutorial 2 : Camera and Marker Relationships – Tutorial 3 : Multi-Marker Tracking – Camera Calibration & Marker Generation – ARToolkit for Dummies – How to import a new VRML model How to make your own marker How to make your own AR applications ARToolKit Tutorials ARToolKit Tutorials

\ARToolkit\bin\Data\object_data_vrml for simpleVRML.exe Conceptual overview of the coherence between pattern, data and image files Expanding the S/W Expanding the S/W

The patterns to be recognized and their associated models are specified in the Data/object_data_vrml file This means that the VRML content associated with the pattern "patt.hiro" is specified in the file "Wrl/bud_B.dat" –#pattern 1 –VRML Wrl/bud_B.dat –Data/patt.hiro –80.0 – The file line specifies the actual VRML file to be loaded, while the next three lines set the translation, rotation and scale of the VRML file from the pattern original –Wrl/bud_B.wrl – # Translation - x,y,z from center of tracking pattern – # Rotation angle + axis, eg – # Scale x,y,z Expanding the S/W (Continued…) Expanding the S/W (Continued…)

1. Copy your_file.wrl into the Wrl directory 2. Make a your_file.dat file and associate it with your_file.wrl by typing Wrl/your_file.wrl on the first line. –You may take a copy of one the existing.dat files and edit it to fit your wrl file –Place it in the Wrl directory 3. Make a new marker or use one that is not yet in use. 4. Edit the Data/object_data_vrml file by adding a new paragraph: –#pattern 3 –VRML Wrl/your_file.dat –Data/patt.sample1 -- Alternatively your new marker –80.0 – How to import a new VRML model How to import a new VRML model

To make it simple you can use the blankPatt.gif located in the patterns folder of the ARToolKit installation Draw your new pattern inside the black square The next thing you have to do is start the mk_patt.exe file located in the bin folder. The file requires an input for the camera. You can use "data/camera_para.dat". This is the default setting for the camera. Position the camera right over the marker. You should be able to see a red and green square around the pattern. This means that ARToolKit has found your marker. Rotate the camera until the red corner is in the upper left How to make your own marker How to make your own marker

Left click your mouse inside the viewing frame. Switch to the command window and type the name of your pattern same as “data/patt.mysamplepattern” To use your new pattern you have to edit object_data_vrml It should look something like this: –#the number of patterns to be recognized –1 –#pattern 1 –VRML Wrl/bud_B.dat –Data/patt.hiro –80.0 – How to make your own marker (Continued…) How to make your own marker (Continued…)

Explanation: 1. When you add a new set the new number of patters to be recognized: –#The number of patterns to be recognized –2 2. Add a new pattern number: –#pattern 2 3. Insert reference to the DAT file of the VRML model to overlay the pattern: –VRML Wrl/maggie.dat 4. Insert reference to your new pattern. You can use any type of filename –Myfolder/mysamplepattern 5. Adjust the height of the overlayed object How to make your own marker (Continued…) How to make your own marker (Continued…)

Explanation (Continued…): 6. X and Y coordinates relative to the center of the pattern: – Then you should end up with something like this: –#The number of patterns to be recognized –2 –#pattern 1 –VRML Wrl/bud_B.dat –Data/patt.hiro –80.0 – –#pattern 2 –VRML Wrl/maggie.dat –Myfolder/mysamplepattern –105.0 – How to make your own marker (Continued…) How to make your own marker (Continued…)

Interesting Links Interesting Links

application%EB%93%A4/ References