1.계획서

프로젝트 계획서 요약보고서


I. 프로젝트 개요

0. 시연 영상

자막을 보시려면 유투브 사이트에 '자막'버튼을 누르십시오.

MYTH 시연 동영상

검색어 : 17조 미네르바 MYTH 시연 동영상

자막은 영어로 제공됩니다.


1.1 프로젝트 개요

최근 몇 년간 터치 패널을 이용한 스마트폰, 태블릿 PC 등이 활발히 보급되어서 터치 인터페이스를 제공하는 기기들이 많아졌고 과거 SF 공상 영화에서나 볼 수 있었던 기술들이 개발되고 있다. 그에 따라 GUI를 넘어서 터치스크린의 동작과 같은 자연스러운 상호작용에 의한 사용자 인터페이스를 뜻하는 NUI가 각광받고 있다. 이 프로젝트는 이 점에서 착안하여 Kinect를 이용해 기존에 사용하던 모니터나 빔 프로젝터를 터치스크린처럼 사용할 수 있게 된다.

개발 내용 : Kinect의 적외선 센서를 이용해 깊이 정보를 읽어서 빔 프로젝터가 쏜 화면 혹은 모니터(통칭 화면 출력 장치)의 depth 값과 사용자 몸까지의 depth 값을 비교한다. 화면과 사용자 손의 접촉을 판별해 이벤트를 발생시킨다.


1.2 추진 배경 및 필요성

1.2.1 유사한 컨셉의 기술

  • 빅노트
  • 펜과 수신기를 이용하여 벽면 혹은 모니터에 펜이 접촉했을 때 펜에서 수신기로 접촉이 일어났다는 정보를 전달해서 이벤트를 발생시킨다.

1.2.2 프로젝트의 활용 방안

프레젠테이션을 할 때 혹은 커다란 화면을 터치스크린으로 구성해야 할 때 화면 전체를 터치 패널로 교체하거나 새로 구매 할 필요 없이 Kinect를 이용하여 터치스크린으로 구현한다. 교육센터 혹은 행사장과 같이 체험을 요구하는 장소에서 커다란 터치스크린을 대체할 수 있다.

1.2.3 발전 방향

현재는 Kinect가 PC환경에서만 작동하고 블루투스를 지원하지 않는다. 블루투스가 지원되는 Kinect, 또는 Kinect와 유사하게 깊이 정보를 읽을 수 있는 블루투스 지원 기기로 컴퓨터 화면에서뿐만 아니라 모바일환경에서도 구동이 가능하다.


1.3 개발 목표

  • 색(RGB) 정보를 이용해 빔 프로젝터의 화면을 인식하여 캘리브레이션을 한다.
  • 깊이 정보를 이용하여 벽과 사람을 인식한다.
  • 사람의 동작을 디바이스를 조작할 수 있는 input data로 전환한다.
  • 실제 디스플레이를 사용하는 것 같은 직관적인 터치를 제공하는 알고리즘을 구현한다.
  • 스마트폰, 태블릿 PC 등의 디스플레이 기반 디바이스를 빔 프로젝터를 사용하여 큰 화면으로 터치 가능한 프로그램을 개발한다.


1.4 연구/개발 내용

  • 하드웨어의 사양과 배치
  • Kinect와 빔 프로젝터 사양을 조사한다.
  • 위 사양과 사용자의 편의를 고려하여 Kinect와 빔 프로젝터의 위치를 결정한다.
  • 빔 프로젝터 화면 캘리브레이션
  • Kinect가 바라보는 벽에서 빔 프로젝터의 화면만을 터치 가능한 영역으로 설정한다.
  • 빔 프로젝터의 화면이 사각형이 아니기 때문에 실제 디스플레이의 해상도로 변환하는 알고리즘을 적용한다.
  • Kinect depth data
  • 초기 depth 값과 현재 depth 값을 비교하여 터치 동작을 인식한다.
  • 실제 디스플레이를 사용하는 것 같은 최적화 알고리즘을 구현한다.


1.5 기대 효과 및 활용 방안

본 프로젝트는 디스플레이 기반의 디바이스를 다수의 사람들과 함께 화면을 공유하거나 큰 화면으로 사용함으로써 디스플레이의 물리적인 제한을 극복하는 환경을 제공한다. 기존의 빔 프로젝터를 사용했을 때 화면을 출력하는 디바이스의 직접적인 접근으로 제어를 했지만, 벽면을 하나의 터치스크린으로 사용하면서 벽면의 터치만으로 디바이스를 제어하는 것이 가능하게 된다.


II. 배경기술

2.1 기술적 요구사항

2.1.1 기술적 요구사항

  • Kinect로 depth 값을 받아 사람이 하는 행동 감지
  • 사람이 하는 행위(클릭 이벤트, 드래그 이벤트 등)를 인식
  • 인식한 이벤트들을 모바일 기기의 해당 좌표로 넘김
  • 인식한 이벤트들이 정상적으로 수행됨

2.1.2 개발 환경

  • Window7(혹은 그 이상) : Kinect와 MYTH 개발을 위한 운영체제
  • Kinect(Microsoft window 용) : user의 depth 이미지와 camera 정보를 받아오는 기기
  • Kinect SDK 1.7 : Skeleton, Depth 이미지 등의 정보가 저장된 라이브러리
  • OpenCV library : 동작 인식과 패턴 인식을 위한 라이브러리
  • C# : Kinect library에서 사용하는 프로그래밍 언어
  • 모비즌 : 핸드폰과 다른 태블릿 기기를 컴퓨터와 미러링하는 application

2.1.3 출력 환경

  • 빔 프로젝터 : 프로그래밍의 결과 및 사용자의 디스플레이를 출력할 장비
  • Every Wall : 사용자의 input과 처리 결과의 output을 출력하는 곳


2.2 현실적 제한 요소 및 그 해결 방안

2.2.1 하드웨어

  • 하드웨어의 위치 고정이 필요하다. 위치가 이동되면 캘리브레이션 함수가 제대로 발동되지 않을 수 있다. Kinect와 빔 프로젝터의 위치를 잘 고정해야 한다. 이 문제점은 하드웨어를 고정할 수 있는 기구들을 실제로 제작하여 사용할 예정이다.
  • 빔 프로젝터가 화면을 송출할 때 사람이 가리고 있으면 그 부분은 화면이 제대로 출력되지 않는다. 이 경우 사용자들이 불편함을 느낄 수 있으므로 최소한 빔 프로젝터를 사람이 가리지 않도록 위치를 바닥과 가까운 곳에 놓거나 천장에 다는 방향으로 해결할 것이다.

2.2.2 소프트웨어

  • Kinect가 제공하는 library의 skeleton 인식이 정확하지 않다. Skeleton 인식이 오래 걸린다는 것과 손목과 손의 인식이 부정확하고 제대로 된 좌표 값이 출력되지 않는 단점이 있다. 이것을 보완하기 위해 상반신만 인식하는 방법을 고려하였으나, 이 또한 정확하지 않아 순수한 depth 이미지의 변화만으로 이벤트를 인식할 계획이다.
  • 화면이 송출될 벽에서 실제로 화면이 비춰지는 영역을 자동으로 설정할 필요가 있다. 초기 아이디어는 빔 프로젝터로 특정 색을 가진 사각형 모양의 화면을 송출하여 Kinect의 RGB 카메라로 그 색들이 나타내는 범위만을 유효한 화면으로 설정하고자 하였다. 그러나 흰 벽 및 반사 재질의 벽의 경우에는 특정 영역에만 임의의 색을 송출하더라도 빛 반사에 의해 반사 된 주변이 같이 인식되는 문제가 있었다. 조도에 따라 색의 차이가 심하여 인식 자체도 부정확하다. 때문에 사용자가 직접적으로 화면의 네 꼭짓점을 터치하여 유효 화면을 설정하는 방법을 생각하고 있다.

2.2.3 기타

  • Kinect library를 이전에 사용한 팀원이 없어 기초부터 시작해야 한다. 또한 library에 어떠한 기능들이 제공되는지를 숙지하는 데에 시간이 오래 걸릴 것으로 예상된다.


III. 역할분담

이름

역할

이광헌

- Gesture Recognition Programming

- Multi-Touch Programming

전새미

- Multi-Touch Programming

- Contents Design

정하엽

- Gesture Recognition Programming

- Depth Pixel Correction

최여진

- Depth Camera Setting

- Unity Programming

최준환

- Touch Coordinate Extraction

- Display Calibration

바데르

- Touch Coordinate Extraction

- Optimization



IV. 성과물 계획

4.1 결과물 목록 및 상세 사양

4.1.1 시스템 비기능(품질) 요구사항

  • 사용자가 발생시키는 이벤트인 터치를 손으로 하기 때문에 손을 몸으로 가린다면 인식할 수 없다.
  • 빔 프로젝터의 화면을 사용자가 가릴 수 있다.
  • PC를 통해 터치 디스플레이를 표현하기 때문에 멀티 터치가 가능해야 한다.
  • 키보드가 없기 때문에 가상 키보드를 지원한다.

4.1.2 시스템 기능 및 구조

시스템의 전체적인 과정은 디스플레이 기반의 디바이스 화면을 빔 프로젝터를 사용하여 벽에 출력하게 하고 kinect를 이용하여 depth 정보를 PC로 전달한다. MRS는 depth 정보를 통해 사용자의 동작을 인식하고 그에 맞는 좌표와 이벤트를 control module로 넘겨준다. Control module에서 원하는 동작의 이벤트를 실행한다.

4.1.3 결과물 목록

대분류

소분류

기능

형식

비고

파일

이미지 파일 저장

현재 화면을 저장한다.

C# 함수

입력

키넥트

Depth 정보를 얻는다.

Module

출력

빔 프로젝터

벽에 화면을 출력한다.

Module

알고리즘

동작인식

키넥트 depth 정보를 이용하여 사용자 동작을 인식한다.

C#

INPUT DATA

사용자의 동작을 인식하여

INPUT DATA로 전환한다.

C#


4.1.4 하드웨어 및 사용 프로그램 사양

항 목

요 구 사 항

Beam Projector

키스톤 기능 지원

명암 비 10이상

1000ANSI루멘 이상

빛의 반사가 심하지 않고, 암막 커튼이 따로 없기 때문에 주변이 밝아도 선명하게 화면을 송출할 수 있어야 한다. 또한 LED 광원은 하루에 4시간 이상 사용하더라도 손상이 없어야 하며 수명이 긴 광원이어야 한다. 키스톤 기능을 지원하여 상하 기울어짐을 스스로 조정할 수 있어야 한다.

Kinect

Windows

Plug in Kinect 라이브러리를 설치하여 개발 환경을 갖출 수 있어야 한다.

스마트폰 or 태블릿

안드로이드 5.0 롤리팝 OS를 제외한 안드로이드 기기

안드로이드 5.0 롤리팝 OS는 화면 제어가 불가능 하고, 화면 공유만 가능하다. 미러링을 할 컴퓨터와 휴대폰이 같은 wi-fi를 사용하거나, usb연결로 컴퓨터와 연결해야 하므로 해당 조건이 필요하며 모비즌이 설치 되어있어야 하고 모비즌의 계정이 필요하다.

모비즌

안드로이드 기반 스마트폰이나 태블릿 기기

스마트폰 혹은 태블릿 기기와 호환이 가능하며 Windows OS 기반의 컴퓨터에 설치가 가능하여야 한다.


V. 개발 일정

항목

세부내용

1

2

3

4

5

6

비고

요구사항분석

아이디어 구상 회의

아이디어 선정, 정보수집

관련분야연구 및 준비

Kinect Interface 연구

컨텐츠 구상

관련 시스템 분석

개발 환경 구축

설계

컨텐츠 설계

User Interface 설계

프로그램 설계

구현

컨텐츠 구현

User Interface 구현

프로그램 최적화

테스트

시스템 테스트



첨부 성과물 문서와 발표자료 포함


1PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
17조_계획서.pdf
2PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
17조_계획서_발표_슬라이드.pdf
3성과물이 프로젝트의 성과물입니다.
17조_계획서_발표_슬라이드_쇼.ppsx
4PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
중간보고서_MYTH.pdf
5PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
2차중간보고서_MYTH_최종.pdf
6PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
17조최종슬라이드.pdf
7PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
17조_포스터_최종.pdf
8PDF
인쇄자료
보고서/포스터등과 발표자료 인쇄본을 포함합니다.
결과보고서_미네르바.pdf