"Thinking조"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
(구성원 및 추진체계)
(결과 및 평가)
 
(같은 사용자의 중간 판 11개는 보이지 않습니다)
139번째 줄: 139번째 줄:
 
===기술개발 일정 및 추진체계===
 
===기술개발 일정 및 추진체계===
 
====개발 일정====
 
====개발 일정====
내용
+
[[파일:06.PNG]]
 +
 
 
====구성원 및 추진체계====
 
====구성원 및 추진체계====
 
  ◇ 예상 사용자 산정 및 예상 사용자의 필요 정보 산정 - 김준영, 배용욱
 
  ◇ 예상 사용자 산정 및 예상 사용자의 필요 정보 산정 - 김준영, 배용욱
154번째 줄: 155번째 줄:
 
===설계사양===
 
===설계사양===
 
====제품의 요구사항====
 
====제품의 요구사항====
내용
+
◇ R1: 사용자의 디바이스의 익숙한 운영체제로 제작한다.
====설계 사양====
+
◇ R2: 3D객체로서 우리 학교 내 건물을 타겟으로서 Vuforia 엔진에 저장한다.
내용
+
◇ R3: 각 건물에 대한 부서의 위치 정보를 조사하여 데이터베이스에 저장한다.
 +
◇ R4: 디바이스에 내장된 카메라를 통해 학교 내 건물을 원활하게 인식한다.
 +
◇ R5: 해당 건물을 인식하였을 때 디바이스 화면에 각 부서의 위치를 증강현실로서 명확하게 표현한다.
 +
◇ R6: 우리 학교 내 건물 및 건물 내 부서의 실제 물리적 위치를 조사한다.
 +
◇ R7: 사용자가 디바이스를 통해 가고자 하는 건물이나 부서를 검색할 수 있도록 데이터베이스화하여 저장한다.
 +
◇ R8: 각 건물이나 부서의 위치를 디바이스에 내장된 GPS 센서로 인식을 잘 하도록 한다.
 +
◇ R9: 검색한 장소로 이동할 수 있도록 네비게이션 기능을 수행한다.
 +
◇ R10: 이미지 처리에 대한 라이브러리를 활용하여 디바이스 내장 카메라에 투사된 건물의 외부로 건물을 인식한다.
 +
◇ R11: 사용자가 이용하기 편하도록 UI를 제작한다.
  
 
===개념설계안===
 
===개념설계안===
내용
+
◇ Vuforia와 Unity엔진을 이용한 개발 및 구현 환경
 +
 
 +
[[파일:07.PNG]]
 +
 
 +
 
 +
    마커 기반 추적과 무마커 기반 추적 모두 증강 현실 어플리케이션 구현 플랫 폼인 Vuforia와 3D 게임이나 구조물의 시각화 등을 개발할 수 있는 오픈 플랫폼으로 빌드시 다양한 플랫폼을 사용할 수 있도록 하는 Unity엔진을 이용하여 제작한다. 즉, 특별한 오픈 소스는 이용하지 않고 엔진을 이용한다. Vuforia 모듈을 이용하는 이유는 디바이스에 내장된 카메라를 통해 객체를 인식하면, 카메라를 이동하더라도 인식된 객체를 따라가는 기술인 Image Tracking을 지원하기 때문이다.
 +
    Vuforia의 특징으로는 다음과 같은 특징이 있다. 증강 현실(AR) 및 혼합 현실(MR) 어플리케이션 구현 플랫폼이며, 드래그-앤-드롭 방식을 사용하며 안드로이드와 IOS 어플리케이션 제작 가능하다. 또한 마커 기반 추적(Marker tracking)과 무마커 기반 추적(Markerless tracking)을 지원한다.
 +
    Unity의 특징으로는 다음과 같은 특징이 있다. 3D 게임이나 구조물의 시각화, 3D 애니메이션 등을 개발할 수 있는 오픈 플랫폼으로 빌드시 다양한 플랫폼을 사용할 수 있는 장점이 있으며 최신 버전의 Unity를 설치할 때 프로젝트 구현을 하기 위해 필요한 Vuforia 및 Android 개발 환경 모듈을 함께 설치할 수 있다. 이 때 Unity 개발환경에서 Vuforia의 모듈을 사용하기 위해서는 라이센스가 필요하다. 또한 특정한 구현 내용에 있어서 C# 코드를 작성하여 구현한다. C#코드는 주로 무마커 기반 추적 기술에 필요한 코드 부분을 작성하는 부분에 이용된다.
 +
 +
 +
 
 +
◇ Vuforia엔진을 이용한 마커 기반 추적 인식, AR 구현 시뮬레이션
 +
    인식하고자 하는 사물이나 3D 객체의 이미지를 Vuforia엔진에 Target Management에 이미지 업로드를 한다. 이를 통해 이미지를 클라우드화하여 저장되며, 마커로서 활용할 수 있도록 해준다. Vuforia를 이용하면 마커 기반 기술뿐만 아니라 무마커 기반 기술을 이용할 수 있지만, 마커 기반 기술에서 마커로서 인식되는 부분과, 마커를 인식했을 때 어떤 자료가 증강현실로서 활용되는지에 이용하고자 한다.
 +
 
 +
[[파일:08.PNG]]
 +
 
 +
◇ C#을 이용한 무마커 기반 추적 기술 구현
 +
    Unity 엔진내에서 C# 코드를 이용하여 스크립트를 추가하여 GPS를 인식하는 부분을 작성한다. 현재 디바이스를 사용하는 사람의 좌표, 목적지 좌표, 이를 계산한 거리 등을 사용하여 무마커 기반 기술을 이용할 수 있도록한다.
 +
 
 +
◇ 디바이스에서의 자이로센서 보정
 +
    사용자가 디바이스를 이용하여 어플리케이션을 이용할 때, 디바이스 내의 자이로 센서를 이용하게된다. 이 때, 가로 방향으로 디바이스 기기를 이용하는지, 세로 방향으로 디바이스 기기를 이용하는 지에 따라 동서남북 방향이 바뀌게 된다. 개발하고자 하는 어플리케이션은 가로 방향으로 이용하고자 하기 때문에 센서에서 인식하는 값을 Unity엔진에서 설계상에서 보정하고자 한다. X축, Y축, Z축을 이용하여 보정하여 사용한다. Unity엔진에서 X축은 빨간색, Y축은 초록색, Z축은 파란색 화살표로 각각 화면에 나타나게 된다.
 +
 
 +
◇ openCV를 이용한 건물 인식
 +
    오픈 소스 컴퓨터 비전 라이브러리로 크로스플랫폼과 실시간 이미지 프로세싱에 중점을 둔 라이브러리이다. 영상처리가 들어간다면 필수적으로 사용하게 되는 라이브러리이며, 외곽선 검출(edge detection) 및 패턴인식과 기계학습을 가능케 하는 알고리즘을 간단한 코드 몇 줄로 사용할 수 있다. 특히 패턴인식에서 강점을 보이는데 이를 이용하여 모바일 카메라를 통해 촬영된 건물의 이미지를 분석하여 건물의 외곽선 검출하고 특성을 학습하여 이 정보를 저장한다.
 +
[[파일:09.PNG]]
 +
[[파일:10.PNG]]
 +
     
 +
◇ openCV를 이용한 기계학습
 +
    머신러닝을 사용하면 트레이닝 데이터 셋을 통해 학습을 시킬 수 있다. openCV에는 머신러닝에 대한 라이브러리가 잘 구현되어있어 간단한 코드로 머신러닝을 사용할 수 있다. 머신러닝을 통해 건물의 특징을 학습하고 이를 기반으로 다음 촬영시에는 건물을 빠른 속도로 인식하여 인식률과 속도를 상승시킬 수 있다.
 +
[[파일:11.PNG]]
  
 
===이론적 계산 및 시뮬레이션===
 
===이론적 계산 및 시뮬레이션===
내용
+
◇ 마커 기반 추적 인식, AR 구현 시뮬레이션
 +
 
 +
[[파일:12.PNG]]
 +
 
 +
    마커 기반 추적 기반을 개발 환경에서 시뮬레이션을 실행하였다. 마커로서 기존에 가지고 있던 사물을 활용하였고, 증강현실로서 시뮬레이션하기 위해 진한 갈색 양동이를 사물 위에 구현하였다.
 +
 
 +
◇ GPS (Global positioning system)
 +
    실제 사용자와 목적지 사이의 거리나 방향을 계산하기 위하여 GPS 센서를 이용하여 사용자의 위치와 목적지의 위치 사이를 받아온 후 다음 식을 활용하여 계산한다. 이 때 위치는 위도 및 경도를 활용한다.
 +
 
 +
[[파일:13.PNG]]
 +
 
 +
    위 식에서 DISTANCE는 두 좌표 간의 거리를 의미하며, 실제 지구는 구의 형태를 띄기 때문에 삼각함수를 사용한다.
 +
    LAT1 : 사용자의 위도
 +
    LONG1 : 사용자의 경도
 +
    LAT2 : 목적지의 위도
 +
    LONG2 : 목적지의 경도
 +
 
 +
◇ openCV(Computer Vision)
 +
    오픈 소스 컴퓨터 비전 라이브러리 중 하나로 크로스플랫폼과 실시간 이미지 프로세싱에 중점을 둔 라이브러리이다. 조금이라도 영상처리가 들어간다면 필수적으로 사용하게 되는 라이브러리이며, 외곽선 검출(edge detection) 및 패턴인식과 기계학습을 가능케 하는 알고리즘을 간단한 코드 몇 줄로 사용할 수 있다. 이를 이용하여 모바일 카메라를 통해 촬영된 건물의 이미지를 분석하여 건물의 외곽선 검출 및 특성을 학습하고 이 정보를 저장합니다. 저장된 정보를 통해 다음번 건물을 촬영할 때는 빠른 속도로 인식률을 상승시킬 수 있다.
 +
 
 +
[[파일:14.PNG]]
 +
 
 +
◇ SLAM
 +
    SLAM에 사용하는 센서들(거리센서, IR, 초음파, 레이져, GPS, 블루투스 등)을 이용하면 문제가 자연스럽게 발생한다. 센서들을 이용하더라도 오차는 항상 발생하기 때문이다. 오차에는 여러 가지가 있는데 간단하게 생각하면 벽 등의 장애물에 의해 왜곡이 생길 수도 있다. 더 큰 문제는 로봇이 센서를 통해 받아들인 정보가 오차로 인식하지 못하는 것이다. 따라서 로봇이 얻은 정보를 이용하기 위해서는 확률을 이용한다. 이를 해결 하기 위한 방법에는 Kalman-Filter 기반 방법과 Particle Filter를 이용한 방법, 그리고 Graph 기반이 있다.
 +
    아래 그림에서 색이 없는 기호들은 임의 공간에서의 실제 물리적 위치들을 의미한다. 그리고 속이 채워진 기호들은 로봇이 센서등을 이용하여 측정한 위치들을 뜻한다. SLAM은 로봇과 공간상에서 로봇이 식별 가능한 위치 간의 관계를 기반으로 연산을 수행한다. 예를 들어카메라를 이용한 센서를 사용한다면, 장롱이나 벽걸이TV 등이 해당될 것이다.
 +
 
 +
◇ 오픈 소스로 구현할 부분
 +
  Ⅰ. 마커 기반 기술과 무마커 기반 기술을 활용하는 오픈 소스
 +
    오픈 소스를 이용하지 않고 Image Target을 지원하는 Vuforia SDK를 Unity환경에서 개발하고자한다. 즉, 특별한 오픈 소스는 이용하지 않고 엔진을 이용한다. Vuforia 모듈을 이용하는 이유는 디바이스에 내장된 카메라를 통해 객체를 인식하면, 카메라를 이동하더라도 인식된 객체를 따라가는 기술인 Image Tracking을 지원하기 때문이다.
 +
  Ⅱ. 이미지 처리에 대한 라이브러리를 활용하여 건물을 인식하는 오픈 소스
 +
      OpenCV를 활용하여 디바이스 내장 카메라에 투사된 건물의 외부를 이용하여 어떠한 건물인지 인식한다.
 +
  Ⅲ. 동시적 위치 추적과 매핑을 동시에 하는 기법을 활용하여 건물 내부 정보를 인식하는 오픈소스
 +
      SLAM을 활용하여 건물 내부를 카메라로 촬영했을 때 특정 위치까지 가지 않더라도 그 위치를 인식한다.
 +
 
 +
 
 +
 
 +
[[파일:15.PNG]]
 +
 
 +
 
 +
 
 +
 
 +
 
 +
◇ 자체 구현할 내용
 +
  Ⅰ. 필요 정보 데이터베이스화
 +
    프로젝트에서 제작하고자하는 마커 기반 추적기술과 무마커 기반 추적기술에서 공통적으로 데이터베이스화해야하는 부분으로 각 건물 내부에 어떤 부서가 있는지를 조사하여 이를 건물 별로 데이터화하는 것이다. 예를 들어, 전농관에는 카페와, 교통공학과 사무실 등이 있는데 이를 데이터베이스화 하여 저장해두어야한다. 이를 각 건물 별로 분류하여 서버에 데이터를 저장해둔다.
 +
  Ⅱ. 마커 기반 기술을 활용하는 부분
 +
    마커 기반 추적 기술에서는 건물을 인식하여 해당 건물에 대한 정보를 증강현실로서 구현하고자하기 때문에 사용자들이 디바이스 기기를 이용하여 건물을 인식할 때 인식률을 높이기 위하여 좋은 3D 객체 이미지를 활용하여 서버에 저장해두어 이를 인식하기 좋도록 해야한다. 건물이 디바이스 기기를 통해 인식되었을 때 해당 건물에 대한 데이터를 미리 저장해 둔 서버로부터 받아와서 각 층, 위치 별로 다른 부서를 증강현실로서 나타내야하기 때문에 물리적인 각 층 및 위치와 일치하도록 해당 정보를 구현해야한다.
 +
  Ⅲ. 무마커 기반 기술을 활용하는 부분
 +
    무마커 기반 추적 기술은 디바이스 기기내의 GPS나 자이로센서와 같은 센서들을 활용하여 사용자의 위치 기반으로 건물이나 부서를 검색하여 목적지로 설정하게 되기 때문에 미리 서버에 건물의 물리적인 위치를 저장하여 검색가능하도록 해야한다. 또한 서버에 저장했던 부분을 디바이스 기기에 활용하면서 정확한 위치를 알 수 있도록 하기 위해 기기의 자이로센서와 GPS 기능을 분석하여 정확성을 높이도록 한다.
  
 
===상세설계 내용===
 
===상세설계 내용===
내용
+
◇ 건물 외부를 디바이스 기기에 내장된 카메라를 통해 어떤 건물인지 판별하는 SW구조
 +
    디바이스에 내장된 카메라를 활용하여 특정 건물임을 인식하여, 미리 데이터베이스화 해둔 교내 건물의 내부 정보 등을 사용자의 디바이스에 가상현실로서 보여주는 구조이다. 입력으로서 사용자가 촬영하는 건물의 사진이 이용되며, 내부 프로세스는 건물임을 인식하고, 필요한 정보를 서버에서 판별하여 저장된 데이터 베이스에서 자료를 추출하여 클라이언트 디바이스에 보내준다. 그리고 결과물로서 증강현실로 필요한 정보를 보여준다. 전처리과정으로, 미리 건물 사진에 대한 정보를 저장해두거나, 데이터베이스에 학교 건물 내부에 대한 정보를 데이터베이스화 해두는 과정이 필요하다.
 +
 
 +
 
 +
 
 +
 
 +
[[파일:16.PNG]]
 +
 
 +
 
 +
 
 +
◇ 디바이스 기기에 내장된 센서를 통해 현재 위치를 판별하는 SW구조
 +
    사용자가 특정 부서나 건물에 가려고 하는 경우, 미리 저장해 놓은 데이터베이스를 바탕으로 해당 부서나 건물이 어디에 위치해있는지 알 수 있다. 이 경우에는 디바이스에 내장된 GPS나 자이로 센서 등을 활용하여 현재 사용자의 위치를 판별하고 사용자로부터의 거리와 방향을 증강현실로서 보여줌으로서 길안내를 하는 역할을 수행한다. 전처리 과정으로 특정 부서의 건물 등을 데이터화한 뒤, 이를 검색하여 특정 건물로서 안내를 시작하도록한다. 입력 값으로 사용자의 위치 정보를 얻으면 출력 값으로 현재 사용자로부터의 위치나 거리를 증강현실로서 표현하도록 한다. 처리 과정으로 미리 데이터 베이스에 저장해 놓은 장소로부터 현재 사용자의 거리 계산과 방향 제시 등을 하도록한다.
 +
 
 +
 
 +
 
 +
 
 +
[[파일:17.PNG]]
 +
 
 +
 
 +
 +
◇ 위치 추적과 매핑을 동시에 하는 기법을 활용하여 건물 내부에 어느 위치에 어떠한 정보가 들어있는지 확인하여 그 위치까지 가지 않아도 자리에 서서 확인할 수 있도록 한다.
 +
 
 +
[[파일:18.PNG]]
  
 
==결과 및 평가==
 
==결과 및 평가==
 
===완료 작품의 소개===
 
===완료 작품의 소개===
 
====프로토타입 사진 혹은 작동 장면====
 
====프로토타입 사진 혹은 작동 장면====
내용
+
 
====포스터====
+
[[파일:19.PNG]]
내용
 
  
 
===관련사업비 내역서===
 
===관련사업비 내역서===
내용
 
 
===완료작품의 평가===
 
내용
 
 
===향후계획===
 
내용
 
  
===특허 출원 내용===
+
[[파일:20.PNG]]
내용
 

2019년 6월 15일 (토) 07:56 기준 최신판

프로젝트 개요

기술개발 과제

국문 : 3D 객체 추적과 무마커 추적 기능을 활용한 교내 건물 인식 및 정보 제공 증강 현실

영문 : Augmented Reality of Building Recognition and Information Provision using 3D Object Tracking and Non-marker Tracking

과제 팀명

thinking

지도교수

김민호 교수님

개발기간

2019년 3월 ~ 2019년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부·과 2014XXX0** 김**(팀장)

서울시립대학교 컴퓨터과학부·과 2014XXX0** 배**

서론

개발 과제의 개요

개발 과제 요약

01.PNG

3D 객체 인식을 통한 건물에 대한 정보 제공(예상도 1) 무마커 기반 추적 기능을 이용한 네비게이션(예상도 2)


OpenCV를 통한 건물 인식(예상도 3) SLAM기술을 활용한 건물 내부 지도화(예상도 4)


◇ 포터블(Portable) 디바이스 운영체제(OS) 시장에서 높은 점유율을 갖고 있는 안드로이드를 기반으로하여 서비스를 이용하고자 하는 사용자들의 특별한 매개체가 아닌 개인이 갖고 있는 포터블 디바이스 전용 어플리케이션을 토대로 마커 기반 추적을 이용하여 이미지 인식 기능을 구현하여 우리 학교 만의 건물을 카메라로 비추면 어느 건물인지 인식하며, 디바이스 기기 속 화면에 나타난 건물에서 각층에 어느 부서가 있는지 등 건물마다 특징을 살려서 필요한 정보를 제공하고자 한다. 또한 무마커 추적이라는 개념을 활용하여 사용자가 현재 위치에서 가고자 하는 목적지를 검색하면 거리와 길의 방향을 알려주는 네비게이션 또한 제작하여 서비스를 이용 가능하도록 한다. 이 방법은 Vuforia라는 AR 플랫폼과 통합개발환경 Unity를 이용하여 우리 학교(서울시립대학교)내에서 증강 현실을 개발한다.
◇ OpenCV를 이용하여 건물 외부면의 특징점을 구분하여 해당 건물이 어떤 건물인지 인식할 수 있도록 하는 기술을 접목하여 해당 건물에 대한 부서에 대해 층 및 위치에 대해 아래 표에서의 예상도 1처럼 나타내도록 한다. 
◇ SLAM기술을 이용하여 건물 내부에 들어갔을 때 건물 내부의 정보를 화면에 띄워 복도에서 서있어도 어디에 어떤 것이 위치하고 있는지 알려줄 수 있도록 한다.

개발 과제의 배경 및 효과

◇ 학교 지리에 익숙하지 않은 사용자들(특히 신입생, 편입생, 신입사원, 학교 주변에 주거하는 주민 및 학교에 처음 방문하는 사람)이 긴급하게 ATM기를 가거나, 교내 우체국, 은행, 서점을 이용하고자 할 때, 또 공학단과대 사무실, 컴퓨터과학부 사무실, 산학협력단과 같은 특정 부서 방문이 필요할 때 어떤 건물, 어느 층, 어느 방향 으로 가야하는지 등을 위치기반 뿐만 아니라 증강현실로 카메라를 건물에 비추면 어떠한 위치에 있는지 알려주는 이 어플리케이션을 상당히 유용하게 활용될 수 있을 것으로 기대된다.
◇ 일반적으로 현재 널리 사용되고 있는 구글 맵, 카카오 지도나 네이버 지도 등 지도 서비스는 2D(항공뷰, 스트리트뷰와 같은 사진형태) 혹은 3D 모델링을 통해서 나타내고 있다. 실제로 길찾기 서비스를 이용하는 사람들의 불편사항 중 가장 빈도수가 높게 꼽히는 사항은 이전에 가보지 않은 장소(전에는 존재하지 않던 건물이나 상가가 새로이 개발되었지만 아직 지도서비스에 반영되지 않은 경우)가 나타나거나 목적지 근처에 가서도 입간판이나 해당 장소라는 표시가 없는 경우(요즘 뜨고있는 카페거리인 을지로와 같은 경우에는 전혀 간판이 세워져있지 않은 상황) 많은 사람들이 어느 건물인지 정확하게 찾지 못하는 경우가 다반사이다. 이를 해결하기 위해 위치기반 AR서비스를 제공한다 면, 이 서비스를 이용하여 현재 위치를 GPS로 파악한 후에 카메라를 이용하여 자신의 주변에 있는 건물들을 촬영하면 그 건물들의 층 수 마다 어떠한 것들이 존재하는지 확인하게 되어 정확한 건물, 목적지를 확신을 갖고 찾아갈 수 있을 것이다. 또한, 현실 세계에 기반하여 부수적인 정보화된 인공물을 나타내는 AR의 특성을 이용, 얻고자 하는 정보가 있을 때 우선시 되는 순위를 현실 세계에게 부여하여 위험(지도를 보면서 걷다가 보행자가 차도로 진입하는 경우)에 빠지지 않도록 해줄 수 있을 것으로 예상된다.

개발 과제의 목표 및 내용

1) AR 모델링 및 개발
  마커 기반 추적 기술로 우리 학교 건물이라는 3D 객체를 디바이스의 카메라로 인식하여 어느 건물인지 인식하는 기술이 첫 번째 목표이다. 미리 우리 학교의 모든 건물들을 마커로 설정하여, 각 건물의 각 층안에서의 주요 부서 나 정보들을 데이터화하여 미리 저장해둔 뒤, 해당 건물 앞에서 디바이스로 건물을 인식하면 위와 같은 정보들을 건물 속에서 해당 부서의 위치에 맞게 증강현실을 구현한다. 두 번째 목표는 무마커 추적(Marketless tracking)은 사용자의 현재 위치에 따라 정확한 정보를 제공하기 위해 정확한 위치에 대한 신뢰성을 제공하고, 실제 위치와 기계적 인식 위치의 인식 오차범위를 줄이기 위해 노력한다. 이를 통해 사용자의 위치 기반으로 하여 네비게이션 기능을 이용할 수 있도록 한다. 예상 사용자가 서울시립대학교 지리에 익숙하지 않은 사람이기 때문에, 사용자들이 필요한 정보를 선정하여 이를 현재 위치에서 방향과 거리를 나타내도록 구현한다.
2) 클라이언트 구축
  안드로이드 스튜디오는 구글이 안드로이드 앱 개발을 위해 JetBrains 사의 IntelliJ IDEA를 기반으로 만든 통합 개발 환경이다. 2014년 10월부터 이클립스를 대체해 안드로이드의 공식 IDE가 되었고, 무료로 제공되고 있으며 Windows, macOS, 리눅스를 지원한다. 안드로이드 스튜디오를 통해 증강현실을 실행시킬 클라이언트(안드로이드 어플리케이션)을 개발한다. 디자인은 최대한 사용자 편의성에 중점을 두어 개발한다. 사용언어는 JAVA, XML을 이용한다.
3) 서버 구축
  파이어베이스(Firebase)는 구글의 인수된 모바일 및 웹 애플리케이션 개발 플랫폼이다. 장점으로는 인증, 데이터베이스, 스토리지, 호스팅 등을 서버를 다룰줄 몰라도 화면에서 클릭 몇번으로 가능하다. 가령 구글인증으로 로그인을 시도하는 기능을 만든다고 한다면 이전에는 구글에서 제공하는 API를 찾아서 직접 서버에 구축했었다면 여기서는 마우스 클릭으로 바로 설정이 가능하다. 서버에 대한 개발 지식이 많지 않기 때문에 일체형 서비스인 파이어베이스를 이용한다. 사용언어는 개발용 로컬 웹서버를 실행하는데 필요한 Node.js를 이용한다.
4) 데이터베이스 구축
  오라클의 MySQL은 다중 스레드, 다중 사용자를 지원하는 구조 질의어 형식의 데이터베이스 관리 시스템이다. MySQL을 선택한 이유는 고성능이면서 상대적으로 단순한 DBMS이고 또한 설치 및 관리도 쉬운 편이기 때문이다. 그리고 응용 프로그램에서 MySQL 데이터베이스에 접근하기 위해 C, C++, JAVA, Python 등 다양한 프로그래밍 언어로 된 API를 사용할 수 있다는 장점도 있다.
5) 서버/데이터베이스 연동
  서버 구축에 사용될 플랫폼인 파이어베이스를 이용하여 서버와 데이터(MySQL)를 연동시킨다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황
◇ 구글 글래스
   구글 글래스는 헤드 마운티드 디스프레이가 장착된 웨어러블 디바이스로, 의료나 자동차 산업, 스포츠 분야 뿐만 아니라 사용자가 이동시 내비게이션처럼 이동 경로를 제공하거나, 사물이나 상황에 맞게 식별 정보를 보여주기 때문에 생활의 편리성을 제공하며, 보다 나은 몰입감과 현실감을 주는 장점을 가지고 있다.
◇ 포켓몬 고(증강현실 게임)
   증강 현실을 이용해서 현실에서 나타나는 포켓몬을 잡거나 게임 상의 몬스터와 겨루는 컨셉의 게임이다.
◇ Head-up Display(HUD)
   도형과 숫자, 글자로 조종사에게 현재 속도, 고도, 방향, 자세 같은 다양한 정보들을 알려준다. 군용기들은 여기에 더해 표적의 방향, 거리나 표적이 미사일의 사정거리 이내에 들어왔는지의 여부, 혹은 지금 기관포를 쏘거나 항공 폭탄을 투하하면 그것들이 어떠한 경로로 날아갈지를 알려주는 무장 조준을 돕는 역할을 한다. 
◇ 프로젝트 솔리(In-air Gesture)
   허공의 손동작으로 컴퓨터와 상호작용하는 방법으로 디지털 요소를 화면 밖으로 옮기기 위하여 AR을 이용해 구현하고 각 기능을 실행한다.

02.PNG

  • 특허조사 및 특허 전략 분석
◇ US20140267399A1 (구글)
   AR을 이용하여 현실의 정보를 결정하는 특허로서 구글 글래스와 같은 뷰어를 통해 사물을 바라볼 때, 특정한 관련 정보를 화면에 띄우게 하고 그 정보가 실제로 상호작용하게 만드는 특허다
◇ Small Form Factor with large field of view (페이스북)
   작은 화면을 통해 넓은 가상현실을 제공하는 기기에 대한 특허다.
◇ US20160063876A1 (구글, Storytelling device)
   상호작용 가능한 책을 이용하여 센서들이 책의 내용을 AR로 구현하게 만드는 특허다.
◇ AR map from iPhone (애플)
   애플 기기에서 구동 가능한 애플 지도를 기반으로 3D flyover 환경을 구현하는 특허다.
◇ AR manufacturing System (테슬라)
   구글 글래스 형태의 AR기기를 착용하여 전기차 생산조립라인을 경험할 수 있도록 하는 특허다.
◇ Ride sharing with AR (리프트)
   차량 공유 서비스인 리프트에서 픽업 장소를 AR을 통해 보여줄 수 있도록 하는 특허다.

04.PNG

  • 기술 로드맵
 ◇ 예상 사용자들을 설정하여, 미리 어떤 정보가 필요한지 직접 조사하여 구현하기에 앞서 어떤 데이터를 탑재할지 결정한다.
 ◇ 사전 조사를 바탕으로 얻은 정보를 바탕으로 설계 방향성에 대한 전략을 수립한다.
 ◇ 실제로 완성하기 전에 앞서, 실제로 시제품을 통해 Vuforia라는 AR 플랫폼과 통합개발환경 Unity를 이용하여 증강현실 어플리케이션 프로토타입 개발한 뒤, 안드로이드 디바이스에서도 작동일 잘 되는 지, 오류 여부 등 다양한 테스트를 한다.
 ◇ 시제품을 예상 사용자들에게 이용해 보도록 하게 한 뒤, 제품의 오류나 부족한 점 또는 개선한 점을 분석한 뒤 다시 프로토타입을 개발한다.
 ◇ 여러 번의 프로토타입을 통해 최선의 품질 및 사용자의 요구 사항을 만족하도록 노력한다.
 ◇ 구글 플레이 스토어에 어플리케이션을 출시 후 사용자의 반응 조사하여 더 넓은 시장에서의 평가를 토대로 더욱 완성도 있는 어플리케이션을 구현한다.
 ◇ 완성된 프로그램을 유지 및 보수하여 관리한다.

03.PNG

시장상황에 대한 분석

  • 경쟁제품 조사 비교
◇ 네이버 랩스 ‘인도어 AR 네이게이션’
     코엑스 쇼핑몰과 같은 대규모 실내 공간에서 길을 헤매는 경우, 지도를 이용해야하지만, 실내에서는 GPS를 이용할 수 없기 때문에 다른 방법을 이용하여 사용자의 위치를 파악하고 길안내를 수행한다. 여러 가지 센서 데이터와 visual localization 기술을 사용하여 위치를 파악한다. 즉, 디바이스의 카메라로 이미지를 분석하여 얻은 데이터를 기반으로 네비게이션을 수행한다. 본 프로젝트에서 하는 3D 객체를 인식하는 점도 유사하고 가상 현실을 이용하여 네비게이션을 수행하는 것도 비슷하지만, 우리 조에서 구현하고자 하는 3D 객체를 인식하여 해당 건물이나 점포의 정보 제공 기능은 크게 중점적으로 다루지 않은 측면이 있다.
◇ Mixare
     Mixare은 증강 현실의 대표적인 오픈 소스로서, GPS나 자이로 센서 등 디바이스의 센서들을  이용하여 지도를 기반으로 미리 설계된 장소를 표시해주는 오픈 소스이다. Mixare은 단순히 디바이스 내에 있는 센서를 통해 위도나 경도등을 이용하여 사용자의 실시간 위치를 받아오며, 브라우저 연결을 통하여 설계 시 미리 마킹해둔 장소를 증강 현실로서 표현하게 한다. 이 오픈 소스는 우리가 개발하고자하는 우리가 구현하고자 하는 Image tracking 기술은 지원하지 않는다.
◇ 애플의 ARKit 
     ARkit은 2017년 9월 공개된 증강현실 개발자 키트로, IOS 운영체제를 사용하는 환경에서 활용할 수 있는 프레임워크이다. 현실 세계에서 마커나 초기화 및 카메라 기술 등에서 개발자가 이용할 때 특별한 개발 도구를 요구하지 않고, 시각적 관성 이동거리 측정(VIO) 기술 외에도 상당히 많은 편리 요소가 적용되어 있다. 또한 빠르고 안정적인 움직임 추적, 기본적인 경계를 사용한 평면 추정, 환경광 추정, 규모 추정 등 다양한 기능을 제공하고 있다. 
◇ 증강 현실 SNS ‘Astral'
     Caspar Wylie라는 개발자가 개발 중인 증강 현실 사회관계망서비스(SNS)로 사용자가 어느 특정 장소에 핀 형태의 메시지를 작성하여 남기면 다른 사용자가 이 장소에 가서 답글을 남길 수 있는 형태의 어플리케이션이다. 사실상 단순 증강 현실 SNS라기 보다는 위치기반 증강 현실을 이용한 SNS라는 점에서 우리 조가 개발하고자 하는 서비스와는 다른 점이 있지만, 사용자의 위치를 기반으로 작동한다는 맥락에서 바라본 우리의 프로젝트에서도 무마켓 추적으로 사용자의 위치를 파악하여 구현하고자 하므로 일부분 비슷한 부분이 있다.
◇ 아마존의 ‘AR View'
     아마존에서 개발한 카탈로그에는 증강 현실을 이용하여 구매하여 가구나 제품을 실제로 배치하지않아도 실제 크기에 맞는 형태로 구현이 되어 미리 배치해보는 느낌을 받을 수 있다. 이 카탈로그에는 가상의 물건뿐만 아니라 가격과 정보, 기능을 화면에 표시하여 사용자가 실용적으로 사용할 수 있는 증강 현실이 탑재되어 있다. 거시적인 관점에서 해당 서비스는 우리가 구현하고자 하는 서비스와 다르지만, 본래의 목적뿐만 아니라 실용적인 정보도 포함하는 점에서 유사하다.
◇ 휴먼아이티솔루션의 무인민원발급기 APP
     휴먼아이티솔루션의 무인민원발급기 어플리케이션은 현재 위치를 GPS 기반으로 이를 이용하여 사용자 근처 무인민원발급기의 위치 정보를 사용자에게 제공하며, 이때 화면을 터치하게 되면 무인 민원발급기의 이름, 주소, 운영시간 등의 사용자가 필요한 정보가 표시된다. 또한 VR기능도 탑제되어 있다. 이 어플리케이션은 우리 조에서 구현하고자 하는 어플리케이션과 유사한 위치 기반 기능도 있지만, 마커 기반 추적으로 하여 3D 객체를 디바이스에서 인식하지 못하며 트리거로서 역할을 하지 못하는 점에서 차이가 보인다.

05.PNG

  • 마케팅 전략 제시
◇ 실제로 개발하기에 앞서 시장에 대한 이해와 예상 사용자 범위를 설정한다.
   설계 단계에 들어가기 앞서 잠정적 사용 예상자와 시장에 대한 이해를 필요로 한다. 본 프로젝트에서 실제로 사용하게 될 사람들은 기본적으로 우리 학교의 지리를 모른다고 가정하며, 이처럼 타겟 예상 사용자 관점에 맞게 필요한 정보를 제공하는 것을 우선시로 한다. 우리 학교의 차도는 일방 통행으로 정문에서 학생회관을 바라보는 기준으로 반시계 방향으로 돌아가게 되어 있고, 교수님들 전용 주차장이 아닌 방문객이 주차할 수 있는 곳은 반 시계 방향으로 돌았을 때 다시 정문으로 향하기 바로 직전에 지하 주차장이 위치하고 있다. 학교 지리에 익숙하지 않은 사람들은 누구나 당황할 수 있는 부분이다. 이러한 것처럼 예상 고객에 대한 전문적인 이해도와 함께 공감하는 능력이 동반되어야 이 서비스의 완성도를 높일 수 있다.
◇ 예상 사용자들에 대한 맞춤형 서비스를 제공하기 위해 요구 사항을 잘 반영하며, 프로토타입 체험을 통해 실제로 사용하게 유도하여 피드백을 얻고, 기능이나 인터페이스를 개선하기 위하여 커뮤니케이션에 능하도록 한다.
   서울시립대학교 맞춤형 위치 기반 서비스이기 때문에, 우리 학교를 방문하는 사람이 일반적으로 많이 방문하는 장소나, 더 자세한 정보를 맞춤화하여 가공하여 정보를 제공하는 것이 우리 프로젝트의 목표이다. 이에 대한 프로토타입을 우선적으로 만들어서 신입생과 같은 예상 사용자들에게 체험해보도록 한 후에, 피드백을 반영하여 가능한 부분은 수정하여 다시 체험하도록 하게 할 계획이다. 이를 통해 자연스럽게 체험해본 사람들의 만족도를 높여가는 방법을 이용하고자 한다. 또한 여러 기업들의 성공적인 마케팅 사례를 조사해보면, 많은 기업들이 자신의 제품과 함께 여러 가지 팁을 제시하고 있다. 이를 벤치마킹하여 본다면, 우리 학교에도 여러 가지 팁들이 존재하는데 이런 부분 또한 함께 구현하여 사용자 만족도를 높이는 전략을 사용할 예정이다. 이렇게 다수에 걸쳐서 비개발자들과 소통을 해야하기 때문에 개발적인 측면 뿐만 아니라 마케팅 커뮤니케이션이 또한 전략적인 접근이 필요하다.
◇ 현재 관련 어플리케이션의 시장성
   현재 우리 학교에서 증강 현실을 이용하여 캠퍼스 맵을 활용하는 어플리케이션이 따로 없기 때문에 학교 내에서 활용하는 목표 하에 시장성이 좋다고 평가할 수 있다. 서울시립대학교 홈페이지에 캠퍼스를 VR 시범 서비스를 시행하고 있지만 이 또한 한계가 있다. 증강 현실을 이용하여 현실 세계에 따른  따라서 우선적으로 이 서비스를 구현한 후, 빠르게 제품을 프로모션한다면 서울시립대 학교 학생뿐만 아니라 캠퍼스 투어를 하러 온 미래의 우리 학교 가족원 또한 널리 사용하는 어플리케이션이 될 것으로 전망한다.

개발과제의 기대효과

기술적 기대효과

◇ 실시간 상호작용
  증강 현실은 가상 현실의 차이점에서 특징적인 기술적으로 기대효과를 갖는다. 위에서 언급한 것 처럼증강 현실은 실세계를 기반으로 하여 인공물 또는 사물 등을 함께 시각적으로 나타내어 실세계에는 없는 정보나 광고 등 가상의 사물을 보강하여 제공하는 기술이다. 반면에 가상 현실은 그래픽 기술을 통해 실세계와는 비슷하지만 다른 차원을 만들어 내는 기술이다. 따라서 증강 현실은 사용자와 현실에서의 실시간으로 상호 작용이 가능하여 가상 현실과의 차이점을 만들어 내는 것이다. 이를 통해 효과적으로 실세계에서 가상 객체간의 활용이 가능할 것으로 기대된다.
◇ 사용자 맞춤형 서비스
   포터블 디바이스를 이용한 위치 기반 서비스는 현 위치에서의 사용자 맞춤형 서비스를 제공한다는 점에서 큰 이점으로 작용한다. 이 뿐만 아니라 공공의 목적으로 활용될 수도 있고, 위치 기반의 날씨, 근처에서 발생한 긴급한 사건 등을 제공할 수 있다는 점에서 다양하게 활용될 수 있다. 
◇ 확장가능성
   증강 현실의 적용 환경이 위치 기반 기술에서 벗어나 영상 인식 기술 기반으로 발전되어 보다 더 다양한 미디어나 산업에 적용될 수 있다.

경제적, 사회적 기대 및 파급효과

 ◇ 빅데이터 활용가능성
   현 시대에 중요시 되는 빅데이터 기반 서비스에도 활용될 수 있는데, 이 서비스의 서버를 구축하여 사용자들에게 위치 정보 제공 동의를 받아 이 정보를 서버에 제공한다면, 다양한 측면에서 이 데이터는 유용하게 사용될 수 있다. 한 기업의 예로서, 차량 공유 서비스인 우버 택시의 현재 시장가치는 미국의 3대 자동차를 합친 것보다 높게 측정되고 있다. 하지만 우버 택시의 수 년간 적자였고, 흑자였던 분기가 많지 않다. 하지만 이렇게 가치가 높게 측정되는 이유는 여러 가지 이유가 있지만, 가장 큰 이유는 많은 국가에서 장악한 우버 서비스를 이용하여 사용자들의 이동경로가 우버 서버에 기록에 남겨지기 때문이다. 이러한 데이터를 통해, 어느 시간대에, 어디로 사람들이 이동하는지 등의 거대한 데이터베이스를 갖고 있기 때문이다. 즉, 미래에 사람들이 어디로 이동하는지 예측할 수 있는 데이터를 얻기 때문이다. 이러한 거대한 데이터베이스를 통해 다양한 산업에 활용될 수 있기 때문에 우버 택시는 시장 가치가 높게 평가되고 있다.이와 마찬가지로 우리 조에서 구현하고자 하는 서비스 는 실시간으로 현재 위치를 활용하기 때문에, 성공적으로 서비스를 구축하여 교내에서 활용하는 서비스에서 발전하여 더 넓은 시장에서 활용된다면, 경제적으로, 사회적으로 파급 효과가 클 것으로 예상된다.
◇ 사전 효과 및 시뮬레이션
   증강 현실의 특징으로 현실 세계를 반영하여 가상 객체를 시각화하여 보여주기 때문에 가상 시뮬레이션이 가능하고, 사전에 계획하고 시험이 가능해지므로 생산의 효율성과 생산성이 증가된다. 우리 조에서 실현하고자 하는 서비스를 이용하게 된다면, 실제로 거리가 어느 정도 되는지 알 수 있기 때문에, 학교에 익숙하지 않은 예상 사용자들은 해당 목적지에 도착하기 위해 얼마나 시간이 소요 되는지 등 미리 계산해볼 수 있다. 이러한 방식으로 미리 예상 가능한 이동 시간으로 삶의 질이 향상될 수 있을 것으로 기대된다. 또한 디바이스를 통해 교내 건물이나 건축물 등을 카메라로 인식하면 필요한 구체적 정보를 얻을 수 있기 때문에, 따로 사용자가 건물 내에서도 어느 방향으로 가야하는 지 등을 미리 한 눈에 알 수 있기 때문에 시인성 측면에서 효율적이다.

기술개발 일정 및 추진체계

개발 일정

06.PNG

구성원 및 추진체계

◇ 예상 사용자 산정 및 예상 사용자의 필요 정보 산정 - 김준영, 배용욱
◇ 각 건물 내에 부서 및 예상 사용자의 필요 요소 데이터 베이스화 - 김준영
◇ Unity 3D 및 Vuforia, OpenCV등 툴을 이용한 어플리케이션 인터페이스 구축 - 김준영, 배용욱
◇ Firebase를 이용한 서버 구축 및 DB연동 - 김준영, 배용욱
◇ Android Studio를 이용한 Client 구축 - 김준영
◇ Oracle MySQL를 이용한 Database 설계 및 구축 - 김준영, 배용욱
◇ 개발 어플리케이션의 UI 등 시각적인 평가 요소 구현 - 김준영
◇ 어플리케이션의 테스트, 예상 사용자가 실제로 편의를 갖는지 등 사용자와 커뮤니케이션 - 배용욱
◇ 프로젝트 진행 관련 보고서 작성 - 김준영, 배용욱

설계

설계사양

제품의 요구사항

◇ R1: 사용자의 디바이스의 익숙한 운영체제로 제작한다.
◇ R2: 3D객체로서 우리 학교 내 건물을 타겟으로서 Vuforia 엔진에 저장한다.
◇ R3: 각 건물에 대한 부서의 위치 정보를 조사하여 데이터베이스에 저장한다.
◇ R4: 디바이스에 내장된 카메라를 통해 학교 내 건물을 원활하게 인식한다.
◇ R5: 해당 건물을 인식하였을 때 디바이스 화면에 각 부서의 위치를 증강현실로서 명확하게 표현한다.
◇ R6: 우리 학교 내 건물 및 건물 내 부서의 실제 물리적 위치를 조사한다.
◇ R7: 사용자가 디바이스를 통해 가고자 하는 건물이나 부서를 검색할 수 있도록 데이터베이스화하여 저장한다.
◇ R8: 각 건물이나 부서의 위치를 디바이스에 내장된 GPS 센서로 인식을 잘 하도록 한다.
◇ R9: 검색한 장소로 이동할 수 있도록 네비게이션 기능을 수행한다.
◇ R10: 이미지 처리에 대한 라이브러리를 활용하여 디바이스 내장 카메라에 투사된 건물의 외부로 건물을 인식한다.
◇ R11: 사용자가 이용하기 편하도록 UI를 제작한다.

개념설계안

◇ Vuforia와 Unity엔진을 이용한 개발 및 구현 환경

07.PNG


   마커 기반 추적과 무마커 기반 추적 모두 증강 현실 어플리케이션 구현 플랫 폼인 Vuforia와 3D 게임이나 구조물의 시각화 등을 개발할 수 있는 오픈 플랫폼으로 빌드시 다양한 플랫폼을 사용할 수 있도록 하는 Unity엔진을 이용하여 제작한다. 즉, 특별한 오픈 소스는 이용하지 않고 엔진을 이용한다. Vuforia 모듈을 이용하는 이유는 디바이스에 내장된 카메라를 통해 객체를 인식하면, 카메라를 이동하더라도 인식된 객체를 따라가는 기술인 Image Tracking을 지원하기 때문이다.
   Vuforia의 특징으로는 다음과 같은 특징이 있다. 증강 현실(AR) 및 혼합 현실(MR) 어플리케이션 구현 플랫폼이며, 드래그-앤-드롭 방식을 사용하며 안드로이드와 IOS 어플리케이션 제작 가능하다. 또한 마커 기반 추적(Marker tracking)과 무마커 기반 추적(Markerless tracking)을 지원한다.
   Unity의 특징으로는 다음과 같은 특징이 있다. 3D 게임이나 구조물의 시각화, 3D 애니메이션 등을 개발할 수 있는 오픈 플랫폼으로 빌드시 다양한 플랫폼을 사용할 수 있는 장점이 있으며 최신 버전의 Unity를 설치할 때 프로젝트 구현을 하기 위해 필요한 Vuforia 및 Android 개발 환경 모듈을 함께 설치할 수 있다. 이 때 Unity 개발환경에서 Vuforia의 모듈을 사용하기 위해서는 라이센스가 필요하다. 또한 특정한 구현 내용에 있어서 C# 코드를 작성하여 구현한다. C#코드는 주로 무마커 기반 추적 기술에 필요한 코드 부분을 작성하는 부분에 이용된다.


◇ Vuforia엔진을 이용한 마커 기반 추적 인식, AR 구현 시뮬레이션

   인식하고자 하는 사물이나 3D 객체의 이미지를 Vuforia엔진에 Target Management에 이미지 업로드를 한다. 이를 통해 이미지를 클라우드화하여 저장되며, 마커로서 활용할 수 있도록 해준다. Vuforia를 이용하면 마커 기반 기술뿐만 아니라 무마커 기반 기술을 이용할 수 있지만, 마커 기반 기술에서 마커로서 인식되는 부분과, 마커를 인식했을 때 어떤 자료가 증강현실로서 활용되는지에 이용하고자 한다.

08.PNG

◇ C#을 이용한 무마커 기반 추적 기술 구현
   Unity 엔진내에서 C# 코드를 이용하여 스크립트를 추가하여 GPS를 인식하는 부분을 작성한다. 현재 디바이스를 사용하는 사람의 좌표, 목적지 좌표, 이를 계산한 거리 등을 사용하여 무마커 기반 기술을 이용할 수 있도록한다.
◇ 디바이스에서의 자이로센서 보정
   사용자가 디바이스를 이용하여 어플리케이션을 이용할 때, 디바이스 내의 자이로 센서를 이용하게된다. 이 때, 가로 방향으로 디바이스 기기를 이용하는지, 세로 방향으로 디바이스 기기를 이용하는 지에 따라 동서남북 방향이 바뀌게 된다. 개발하고자 하는 어플리케이션은 가로 방향으로 이용하고자 하기 때문에 센서에서 인식하는 값을 Unity엔진에서 설계상에서 보정하고자 한다. X축, Y축, Z축을 이용하여 보정하여 사용한다. Unity엔진에서 X축은 빨간색, Y축은 초록색, Z축은 파란색 화살표로 각각 화면에 나타나게 된다.
◇ openCV를 이용한 건물 인식
   오픈 소스 컴퓨터 비전 라이브러리로 크로스플랫폼과 실시간 이미지 프로세싱에 중점을 둔 라이브러리이다. 영상처리가 들어간다면 필수적으로 사용하게 되는 라이브러리이며, 외곽선 검출(edge detection) 및 패턴인식과 기계학습을 가능케 하는 알고리즘을 간단한 코드 몇 줄로 사용할 수 있다. 특히 패턴인식에서 강점을 보이는데 이를 이용하여 모바일 카메라를 통해 촬영된 건물의 이미지를 분석하여 건물의 외곽선 검출하고 특성을 학습하여 이 정보를 저장한다. 

09.PNG 10.PNG

◇ openCV를 이용한 기계학습
   머신러닝을 사용하면 트레이닝 데이터 셋을 통해 학습을 시킬 수 있다. openCV에는 머신러닝에 대한 라이브러리가 잘 구현되어있어 간단한 코드로 머신러닝을 사용할 수 있다. 머신러닝을 통해 건물의 특징을 학습하고 이를 기반으로 다음 촬영시에는 건물을 빠른 속도로 인식하여 인식률과 속도를 상승시킬 수 있다.

11.PNG

이론적 계산 및 시뮬레이션

◇ 마커 기반 추적 인식, AR 구현 시뮬레이션

12.PNG

   마커 기반 추적 기반을 개발 환경에서 시뮬레이션을 실행하였다. 마커로서 기존에 가지고 있던 사물을 활용하였고, 증강현실로서 시뮬레이션하기 위해 진한 갈색 양동이를 사물 위에 구현하였다.
◇ GPS (Global positioning system)
   실제 사용자와 목적지 사이의 거리나 방향을 계산하기 위하여 GPS 센서를 이용하여 사용자의 위치와 목적지의 위치 사이를 받아온 후 다음 식을 활용하여 계산한다. 이 때 위치는 위도 및 경도를 활용한다.

13.PNG

   위 식에서 DISTANCE는 두 좌표 간의 거리를 의미하며, 실제 지구는 구의 형태를 띄기 때문에 삼각함수를 사용한다.
   LAT1 : 사용자의 위도
   LONG1 : 사용자의 경도 
   LAT2 : 목적지의 위도
   LONG2 : 목적지의 경도
◇ openCV(Computer Vision)
   오픈 소스 컴퓨터 비전 라이브러리 중 하나로 크로스플랫폼과 실시간 이미지 프로세싱에 중점을 둔 라이브러리이다. 조금이라도 영상처리가 들어간다면 필수적으로 사용하게 되는 라이브러리이며, 외곽선 검출(edge detection) 및 패턴인식과 기계학습을 가능케 하는 알고리즘을 간단한 코드 몇 줄로 사용할 수 있다. 이를 이용하여 모바일 카메라를 통해 촬영된 건물의 이미지를 분석하여 건물의 외곽선 검출 및 특성을 학습하고 이 정보를 저장합니다. 저장된 정보를 통해 다음번 건물을 촬영할 때는 빠른 속도로 인식률을 상승시킬 수 있다.

14.PNG

◇ SLAM
   SLAM에 사용하는 센서들(거리센서, IR, 초음파, 레이져, GPS, 블루투스 등)을 이용하면 문제가 자연스럽게 발생한다. 센서들을 이용하더라도 오차는 항상 발생하기 때문이다. 오차에는 여러 가지가 있는데 간단하게 생각하면 벽 등의 장애물에 의해 왜곡이 생길 수도 있다. 더 큰 문제는 로봇이 센서를 통해 받아들인 정보가 오차로 인식하지 못하는 것이다. 따라서 로봇이 얻은 정보를 이용하기 위해서는 확률을 이용한다. 이를 해결 하기 위한 방법에는 Kalman-Filter 기반 방법과 Particle Filter를 이용한 방법, 그리고 Graph 기반이 있다.
   아래 그림에서 색이 없는 기호들은 임의 공간에서의 실제 물리적 위치들을 의미한다. 그리고 속이 채워진 기호들은 로봇이 센서등을 이용하여 측정한 위치들을 뜻한다. SLAM은 로봇과 공간상에서 로봇이 식별 가능한 위치 간의 관계를 기반으로 연산을 수행한다. 예를 들어카메라를 이용한 센서를 사용한다면, 장롱이나 벽걸이TV 등이 해당될 것이다. 
◇ 오픈 소스로 구현할 부분
  Ⅰ. 마커 기반 기술과 무마커 기반 기술을 활용하는 오픈 소스
   오픈 소스를 이용하지 않고 Image Target을 지원하는 Vuforia SDK를 Unity환경에서 개발하고자한다. 즉, 특별한 오픈 소스는 이용하지 않고 엔진을 이용한다. Vuforia 모듈을 이용하는 이유는 디바이스에 내장된 카메라를 통해 객체를 인식하면, 카메라를 이동하더라도 인식된 객체를 따라가는 기술인 Image Tracking을 지원하기 때문이다.
  Ⅱ. 이미지 처리에 대한 라이브러리를 활용하여 건물을 인식하는 오픈 소스
     OpenCV를 활용하여 디바이스 내장 카메라에 투사된 건물의 외부를 이용하여 어떠한 건물인지 인식한다.
  Ⅲ. 동시적 위치 추적과 매핑을 동시에 하는 기법을 활용하여 건물 내부 정보를 인식하는 오픈소스
     SLAM을 활용하여 건물 내부를 카메라로 촬영했을 때 특정 위치까지 가지 않더라도 그 위치를 인식한다.


15.PNG



◇ 자체 구현할 내용
  Ⅰ. 필요 정보 데이터베이스화
   프로젝트에서 제작하고자하는 마커 기반 추적기술과 무마커 기반 추적기술에서 공통적으로 데이터베이스화해야하는 부분으로 각 건물 내부에 어떤 부서가 있는지를 조사하여 이를 건물 별로 데이터화하는 것이다. 예를 들어, 전농관에는 카페와, 교통공학과 사무실 등이 있는데 이를 데이터베이스화 하여 저장해두어야한다. 이를 각 건물 별로 분류하여 서버에 데이터를 저장해둔다.
  Ⅱ. 마커 기반 기술을 활용하는 부분
   마커 기반 추적 기술에서는 건물을 인식하여 해당 건물에 대한 정보를 증강현실로서 구현하고자하기 때문에 사용자들이 디바이스 기기를 이용하여 건물을 인식할 때 인식률을 높이기 위하여 좋은 3D 객체 이미지를 활용하여 서버에 저장해두어 이를 인식하기 좋도록 해야한다. 건물이 디바이스 기기를 통해 인식되었을 때 해당 건물에 대한 데이터를 미리 저장해 둔 서버로부터 받아와서 각 층, 위치 별로 다른 부서를 증강현실로서 나타내야하기 때문에 물리적인 각 층 및 위치와 일치하도록 해당 정보를 구현해야한다.
  Ⅲ. 무마커 기반 기술을 활용하는 부분
   무마커 기반 추적 기술은 디바이스 기기내의 GPS나 자이로센서와 같은 센서들을 활용하여 사용자의 위치 기반으로 건물이나 부서를 검색하여 목적지로 설정하게 되기 때문에 미리 서버에 건물의 물리적인 위치를 저장하여 검색가능하도록 해야한다. 또한 서버에 저장했던 부분을 디바이스 기기에 활용하면서 정확한 위치를 알 수 있도록 하기 위해 기기의 자이로센서와 GPS 기능을 분석하여 정확성을 높이도록 한다.

상세설계 내용

◇ 건물 외부를 디바이스 기기에 내장된 카메라를 통해 어떤 건물인지 판별하는 SW구조
   디바이스에 내장된 카메라를 활용하여 특정 건물임을 인식하여, 미리 데이터베이스화 해둔 교내 건물의 내부 정보 등을 사용자의 디바이스에 가상현실로서 보여주는 구조이다. 입력으로서 사용자가 촬영하는 건물의 사진이 이용되며, 내부 프로세스는 건물임을 인식하고, 필요한 정보를 서버에서 판별하여 저장된 데이터 베이스에서 자료를 추출하여 클라이언트 디바이스에 보내준다. 그리고 결과물로서 증강현실로 필요한 정보를 보여준다. 전처리과정으로, 미리 건물 사진에 대한 정보를 저장해두거나, 데이터베이스에 학교 건물 내부에 대한 정보를 데이터베이스화 해두는 과정이 필요하다.



16.PNG


◇ 디바이스 기기에 내장된 센서를 통해 현재 위치를 판별하는 SW구조
   사용자가 특정 부서나 건물에 가려고 하는 경우, 미리 저장해 놓은 데이터베이스를 바탕으로 해당 부서나 건물이 어디에 위치해있는지 알 수 있다. 이 경우에는 디바이스에 내장된 GPS나 자이로 센서 등을 활용하여 현재 사용자의 위치를 판별하고 사용자로부터의 거리와 방향을 증강현실로서 보여줌으로서 길안내를 하는 역할을 수행한다. 전처리 과정으로 특정 부서의 건물 등을 데이터화한 뒤, 이를 검색하여 특정 건물로서 안내를 시작하도록한다. 입력 값으로 사용자의 위치 정보를 얻으면 출력 값으로 현재 사용자로부터의 위치나 거리를 증강현실로서 표현하도록 한다. 처리 과정으로 미리 데이터 베이스에 저장해 놓은 장소로부터 현재 사용자의 거리 계산과 방향 제시 등을 하도록한다.



17.PNG


◇ 위치 추적과 매핑을 동시에 하는 기법을 활용하여 건물 내부에 어느 위치에 어떠한 정보가 들어있는지 확인하여 그 위치까지 가지 않아도 자리에 서서 확인할 수 있도록 한다.

18.PNG

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

19.PNG

관련사업비 내역서

20.PNG