KR101900797B1 - 루빅스 큐브를 이용한 증강현실 제공 방법 - Google Patents

루빅스 큐브를 이용한 증강현실 제공 방법 Download PDF

Info

Publication number
KR101900797B1
KR101900797B1 KR1020170118575A KR20170118575A KR101900797B1 KR 101900797 B1 KR101900797 B1 KR 101900797B1 KR 1020170118575 A KR1020170118575 A KR 1020170118575A KR 20170118575 A KR20170118575 A KR 20170118575A KR 101900797 B1 KR101900797 B1 KR 101900797B1
Authority
KR
South Korea
Prior art keywords
cube
detecting
pattern
image
rubik
Prior art date
Application number
KR1020170118575A
Other languages
English (en)
Inventor
이상준
김수빈
황성수
Original Assignee
한동대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한동대학교 산학협력단 filed Critical 한동대학교 산학협력단
Priority to KR1020170118575A priority Critical patent/KR101900797B1/ko
Application granted granted Critical
Publication of KR101900797B1 publication Critical patent/KR101900797B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06K9/20
    • G06K9/4652
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/028Multiple view windows (top-side-front-sagittal-orthogonal)

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 루빅스 큐브를 이용한 증강현실 제공 방법에 관한 것이다.
본 발명은 단말기의 카메라부가 큐브를 영상 촬영하는 단계와, 촬영된 영상에서 큐브 위에 부착된 마커를 특징점 검출하고, 검출된 마커의 위치로부터 ROI영역내에서 원을 검출하는 단계와, 상기 원의 중심으로부터 일정한 영역 내에서 큐브의 외곽선을 검출하는 단계와, 검출된 상기 외곽선에 기초하여 상기 큐브의 윗면의 꼭지점을 찾아 큐브의 윗면을 검출하는 단계와, 상기 큐브의 윗면에 대한 꼭지점을 재배열하고, 상기 큐브의 윗면의 색과 패턴을 검출하여 패턴을 인식하는 단계를 포함한다.

Description

루빅스 큐브를 이용한 증강현실 제공 방법{METHOD FOR PROVIDING AUGMENTED REALITY USING RUBIK'S CUBE}
본 발명은 루빅스 큐브를 이용한 증강현실 제공 방법에 관한 것으로, 특히 루빅스 큐브의 다양한 패턴을 정확하게 인식하여 패턴에 대응하는 물체를 증강하기 위한 큐브 검출 방법과 패턴 인식 방법에 관한 것이다.
증강현실(AR; Augmented Realiity)은 사용자가 눈으로 보는 현실세계와 부가정보를 갖는 가상세계를 합쳐 하나의 영상으로 보여주는 가상현실 서비스의 일종이다. 실제 영상에 가상물체를 생성하기 위해 가상물체와 실제 영상 간의 매개체가 요구되며, 이러한 매개체를 지속적으로 추적 및 인식하여 기준이 되는 좌표계를 설정한다. 추적 및 인식을 위한 방법과 관련하여, 증강현실은 크게 마커를 이용한 증강현실, 센서를 이용한 증강현실, 마커가 없이 영상처리를 이용하는 마커리스 증강현실로 분류될 수 있다.
최근에는 번거롭게 마커를 이용하지 않고도 영상처리를 통해 추적 및 인식을 수행하는 마커리스 증강현실 기술이 각광을 받고 있다. 마커리스 증강현실은 대상 물체의 영상 특징점들(visual feature)을 학습을 통하여 저장한 후에 실시간으로 입력되는 영상에서 특징점을 찾아내어 학습된 영상과 비교한 결과를 기초로 추적 및 인식을 수행한다.
한편, 패턴의 변형이 손쉽게 이루어지는 객체로 루빅스 큐브가 있다. 루빅스 큐브는 약 43x1018의 다양한 패턴을 생성할 수 있다. 루빅스 큐브를 이용하여 마커리스 증강현실 기술인 SFM(structure from motion)이나 SLAM(simultaneous localication and mapping)을 적용하는 경우 큐브 패턴의 다양성으로 인해 예측 불가한 색의 패턴과 조명에 의해 특징점 검출이 어려우며, 큐브의 여섯 면의 형태가 유사하여 특정한 면을 일관성 있게 추출하기 어려운 문제가 있다. 선행기술문헌으로는 등록특허 제10-1572870호 큐알코드 규브를 이용한 증강현실 서비스 시스템이 있다.
본 발명이 해결하고자 하는 과제는 상기의 문제점을 해결하기 위해 안출된 것으로 루빅스 큐브의 다양한 패턴의 특징점을 정확히 검출하고 패턴을 인식하여 물체를 증강하는 루빅스 큐브를 이용한 증강현실 제공 방법을 제공하는 데 있다.
상기한 목적을 달성하기 위한 본 발명은 단말기의 카메라부가 큐브를 영상 촬영하는 단계와, 촬영된 영상에서 큐브 위에 부착된 마커를 특징점 검출하고, 검출된 마커의 위치로부터 ROI영역내에서 원을 검출하는 단계와, 상기 원의 중심으로부터 일정한 영역 내에서 큐브의 외곽선을 검출하는 단계와, 검출된 상기 외곽선에 기초하여 상기 큐브의 윗면의 꼭지점을 찾아 큐브의 윗면을 검출하는 단계와, 상기 큐브의 윗면에 대한 꼭지점을 재배열하고, 상기 큐브의 윗면의 색과 패턴을 검출하여 패턴을 인식하는 단계를 포함한다.
위와 같은 과제해결수단을 통하여 본 발명은 하나의 루빅스 큐브를 이용하여 여러 가지 객체를 증강시킬 수 있어 다수개의 컨텐츠 증강이 필요한 이벤트에 활용할 수 있다.
또한, 루빅스 큐브는 다양한 패턴을 가진 장난감으로써 증강현실 기술을 접목시켜 흥미를 높이는 장난감 기념품이 될 수 있다.
도 1은 본 발명의 일실시예에 따른 루빅스 큐브를 이용한 증강현실 제공 방법을 설명하는 흐름도이다.
도 2는 본 발명의 일실시예에 따른 큐브 검출 알고리즘을 설명하는 흐름도이다.
도 3은 본 발명의 일실시예에 따른 큐브 윗면 검출 알고리즘과 패턴인식 알고리즘을 설명하는 흐름도이다.
도 4 내지 도 13은 본 발명의 일실시예에 따른 루빅스 큐브를 이용한 증강현실 제공 방법을 설명하는 참고도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 루빅스 큐브를 이용한 증강현실 제공 방법을 설명하는 흐름도이다. 도 1을 참조하면, 루빅스 큐브를 이용한 증강현실 제공 방법은 먼저 이동단말기의 카메라부가 루빅스 큐브를 영상 촬영하고(S110), 마커 검출부가 촬영된 영상에서 큐브 상에 부착된 마커를 검출한다(S120). 이후에 외곽선 검출부가 큐브의 외곽선을 검출하고(S130), 윗면 검출부가 큐브의 윗면을 검출한다(S140). 이후에 패턴인식부가 큐브의 윗면의 패턴을 인식하고(S150), 증강부가 데이터베이스에 저장된 상기 패턴에 대응하는 객체를 증강한다(S160). 도 2와 도 3에서 큐브 검출 방법과 패턴 인식 방법을 자세히 설명하도록 한다. 이동단말기는 큐브를 촬영하는 카메라부, 큐브검출부, 큐브 윗면 검출부, 패턴인식부, 증강부를 포함한다. 본 발명의 명세서에서의 이동단말기는 컴퓨팅 장치로서, 스마트폰, 태블릿PC처럼 운영체제 소프트웨어와 다양한 애플리케이션 소프트웨어에 의해 정해진 프로세서를 실행할 수 있고, 휴대가 용이하여 이동중에도 쉽게 활용할 수 있는 모바일 컴퓨팅 디바이스이나 이에 대해 한정하는 것은 아니다.
도 2는 본 발명의 일실시예에 따른 큐브 검출 알고리즘을 설명하는 흐름도이다. 도 2를 참조하면, 촬영된 영상내의 큐브 위에 부착된 마커를 특징점 검출한다(S210). 마커 검출은 영상으로부터 큐브의 위치를 대략적으로 인지하기 위한 것이다. 마커검출부는 데이터베이스에 저장된 마커 이미지를 특징점 검출기를 통해 특징점을 검출하고, 영상으로부터 특징점 검출을 통해 얻은 특징점과 매칭하여 데이터베이스에 저장된 마커의 영상 위치를 파악한다. 도 4를 참조하면, 특징점 검출을 통해 얻어진 영상위의 마커의 위치를 알 수 있다. 특징점 검출 이후에 검출된 마커의 위치로부터 특정 영역의 ROI(Region of Interest)를 생성하고, ROI 내에서 원을 검출한다(S220). 예컨대, 도 5(b)는 도 5(a)에서 지정해준 ROI내에서 원을 찾은 경우이고, 도 5(b)의 큐빅의 우측 상단의 하늘색 원이 특징점 검출을 통해 얻어진 부정확한 마커의 위치이며, 큐빅의 중간 파란색 원이 검출된 원의 형태이다. 도 5(c)의 빨간색 원은 검출된 원의 위치로부터 큐브의 외곽선을 검출할 영역을 지정한 것이다. 이후에, 빨간색 원의 내부로부터 노란색 원의 외부까지 외곽선 검출을 시도한다. 노란색 원은 이후에 라인 검출을 시도할 때 마커 부분까지 라인으로 검출하는 것을 방지할 수 있다.
이후에, 외곽선 검출부는 마커 검출부로부터 얻어진 원의 중심으로부터 일정한 영역 내에서 외곽선을 검출한다. 큐브는 직선 형태로 이루어져 있어 라인 검출을 통해 큐브를 검출할 수 있다(S230). 획득된 영상으로부터 색상의 변화가 큰 가장자리 선분(edge)들을 모두 검출한다. 각 선분들을 각도의 크기(degree) d로 정렬한 뒤 각도의 크기 변화가 D(D⊂N)이상 차이나는 구간의 중간 값을 문턱치 값(threshold) T들로 지정한 뒤, 문턱치 값으로 직선들의 기울기를 비교하여 직선 l 들을 집합 S로 분류한다. 문턱치 값은 최대 2개까지 나와야 하는데, 그 이유는 문턱치 값이 최대 2개일 경우에 직선들이 3개의 분류로 나뉘게 되고 이것이 각각 큐브의 가로, 세로, 높이에 해당하는 직선들의 집합이며 영상으로부터 큐브가 세 면이 모두 투사된 경우이다. 문턱치 값이 1개 일 때는 큐브에서 면이 2개밖에
표현되지 않아 세로와 높이 또는 가로와 높이에 해당하는 직선들이 유사한 기울기를 가지는 경우이며 따라서 직선들의 기울기의 집합이 두가지로 분류된 경우이다. 그 외에 문턱치 값이 없거나 3개 이상인 경우는 예외처리한다.
Figure 112017089910470-pat00001
영상에서 엣지를 검출하기 위해 Canny엣지 검출법을 사용하고, HoughLine검출법을 통해 라인을 검출할 수 있다(도 6의 1번째 참조).
이후에, 3차원 공간상의 큐브는 가로, 세로, 높이의 세 가지 값을 가지고 있으며 그 기울기 값은 독립적이므로 큐브의 외곽선을 검출하기 위해서 이 세 값에 대한 라인들을 분류한다(S240). 분류는 라인들의 기울기 값을 통해 이루어지며 분류를 위한 threshold값은 sorting을 통해 추출이 가능하다. 도 8(a)의 우측 도면은 라인들의 기울기 값을 sorting한 후의 결과 그래프이다. 라인들의 가로, 세로, 높이에 대응되는 라인들의 기울기 또한 독립적인 구간으로 분류되어 있음을 알 수 있다. 마지막으로 기울기의 변화가 급격히 변하는 구간을 threshold로 설정하고, 도 6의 2번째 사진은 threshold로 기울기를 분류했을 때의 모습이다.
이후에, partitional clustering을 이용한 라인 병합을 한다(S250). 분류된 라인들의 중점을 출력해 보면 도 6의 3번째 사진과 같이 많은 라인들이 분포해 있음을 볼 수 있다. 이 때 partitional clustering 기법을 사용하여 중점들의 거리가 서로 일정 거리 내에 존재할 경우 해당하는 라인들을 clustering하고, 각 집군마다 하나의 라인으로 병합시킨다. Partitional clustering 기법을 통해 병합시킨 결과는 도 6의 4번째 사진과 같다. 도 6의 4번째 사진을 보면 이론상 하나의 직선 위에 있어야 할 라인이 끊어지는 현상을 볼 수 있다. 이를 하나의 라인으로 이어주기 위해 strongly connected graph를 이용하여 라인 병합을 한다(S260). Strongly connected graph는 방향성을 가지는 그래프로써 그래프의 노드들 중 서로 양쪽 방향으로 경로를 가지는 쌍에 대하여 Strongly connected graph로 정의한다. Partitional clustering을 통해 병합된 라인들의 중점들을 양 끝점으로 하여 기울기를 구하고, 그 값이 threshold를 통해 분류된 기울기 영역 내에 존재한다면 양 끝점에 대해 경로를 이어준다. 그렇게 모든 가능한 경로를 이어준 후 양쪽 방향으로 이어주는 쌍이 있을 경우 Strongly connected graph 후보군으로 등록한 후 등록된 노드들을 모두 병합시켜준다(도 6의 5번째 사진 참조). Strongly connected graph를 통해 라인들을 병합하게 되면 지저분하게 검출되었던 다량의 라인들이 하나의 라인으로 정리되어 검출된다.
각 직선의 집합 Sk(k=1,...3)에 포함된 직선 li(i=0,..N)에 대하여 di는 직선 li의 각도의 값을 나타내고, pl는 직선 li의 중점의 좌표를 나타낸다. 이 때, 두 직선 li,lj(i,j=0,..N)에 대하여 중점 pi,pj을 잇는 직선Li,j의 기울기 Mi를 아래와 같이 구한다.
Figure 112017089910470-pat00002
그런 뒤, 기울기 값 Mi을 각도값(degree) Di,j로 변환한다. 이때, 각 분류 Sk에 포함된 모든 직선 li에 대하여,
Figure 112017089910470-pat00003
상기 수학식 3이 성립할 경우, Di,j 을 생성한 직선 li, lj를 Strongly connected graph의 후보군으로 등록한다. Strongly connected graph의 후보군으로 등록된 직선들은 서로를 방향 그래프(direct graph)로 가리키고 있다. 후보군을 찾는 작업을 마치고 나서 순환 고리(cycle)를 갖는 모든 Strongly connected graph들의 부분 집합 직선들을 하나의 직선으로 병합시킨다. Strongly connected graph를 통해 직선들을 병합하게 되면 다량으로 검출되었던 직선들이 하나의 직선으로 병합되어 검출된다.
이후에, Regression line을 이용한 라인 정렬 및 외곽선 검출을 한다(S270). Strongly connected graph로 정리된 라인들 중에서 처음과 끝 라인을 도출해 낸다. 처음과 끝 라인을 정하는 기준은 Regression Line을 사용한다. 각 라인들의 중점을 가지고 Regression Line을 통해 방향성을 확인하여 회귀 라인 선상에서 중점의 위치를 sorting하면, 가장 왼쪽에 있는 것과 오른쪽에 있는 라인을 외곽선으로 검출할 수 있다. 도 10은 Regression Line을 이용하여 각 중점의 정렬 관계를 파악하고 점의 순서를 정렬한 결과이며 도 6의 6번째 그림은 정렬 후 처음과 끝의 라인을 추출하여 외곽선으로 검출한 결과이다.
도 3은 본 발명의 일실시예에 따른 큐브 윗면 검출 알고리즘과 패턴인식 알고리즘을 설명하는 흐름도이다. 도 3을 참조하면, 먼저 큐브의 윗면 꼭지점을 검출한다(S310). 앞서 큐브 검출 알고리즘에서 검출한 외곽선 중, 윗면에 해당하는 외곽선은 원의 중점으로부터 가장 가까운 두 개의 선이므로, 검출한 원의 중점과 가장 가까운 외곽선 2개를 찾는다. 도 6의 7번째 사진은 외곽선으로부터 원의 중점과 가장 가까운 두 개의 외곽선을 추출한 결과이다. 검출된 두 라인을 통해 교점을 구하면 도 7의 위의 도면과 같이 윗면의 꼭지점 하나를 얻을 수 있다. 또한 교점으로부터 원의 중점과 반대되는 점을 꼭지점으로 추정할 수 있다. 이 점을 지나면서 이전에 검출했던 두 외곽선과 평행한 라인을 구하면 도 10의 아래 그림과 같이 구할 수 있고, 이들과 원래의 외곽선 간의 교점을 구해 윗면에 대한 4개의 꼭지점을 추정할 수 있으나 원근법에 의해 항상 정확히 예측되지 않는 문제가 있다. 이를 해결하기 위해 영상상에서 큐브에 대한 실제 코너점을 검출한 뒤, 추정한 꼭지점 4개가 각각 가까운 코너점들로 보정한다. 그 결과 도 9의 오른쪽 그림처럼 보다 정확한 꼭지점 4개를 찾을 수 있다. 그림에서의 회색 점은 평행이동을 통해 추정된 꼭지점들을 나타내며 빨간 점은 코너점을 이용해 보정 후의 꼭지점들을 나타낸다.
이후에, 에러 교정 및 안정화 단계를 수행한다(S320). 꼭지점을 검출하면 대표적으로 도 11의 도면과 같은 에러들을 발견할 수 있다. 도 11의 1번째 도면은 검출한 코너 특징점이 부족하여 정확한 꼭지점으로 검출되지 못한 경우이며, 2번째 도면은 큐브검출부의 첫번째인 직선 검출에서 직선이 충분히 검출되지 않아 최종적으로 잘못된 외곽선을 검출한 경우이다. 이 두 경우의 에러가 합쳐져 다른 여러 오검출의 결과를 만들어 낸다. 대표적인 이 두 경우의 에러를 보정하기 위해 도 11의 3번째와 4번째 그림과 같은 방법을 사용한다. 3번째 도면은 정확한 코너점의 미검출로 꼭지점이 잘못 잡힌 경우이다. 이 경우 코너 특징점을 사용하기 이전의 평행점을 사용한다. 4번째의 에러의 경우 2번째 그림과 같이 검출된 꼭지점들을 잇는 분의 비율을 비교하여 그 비율이 맞도록 꼭지점들을 확장 시켜준다. 세 프레임동안 검출된 각각의 꼭지점들의 평균 값을 최종 꼭지점으로 사용한다.
이후에, 큐브 윗면에 대한 꼭지점을 재배열한다(S330). 큐브 윗면에 대한 패턴을 찾기 위해서는 먼저 영상상에 projective transform에 의해 마름모, 혹은 평행사변형 모양으로 찌그러진 윗면을 정사각형으로 펼쳐야 한다. 이때, 윗면의 각 꼭지점과 펼치고자 하는 정사각형의 네 꼭지점은 서로 대응되어야 한다. 때문에 큐브 윗면의 꼭지점을 찾는 과정에서 어떤 엣지를 찾느냐에 따라 해당 꼭지점이 무작위로 저장되므로 이를 다시 좌상단을 기준으로 시계방향으로 저장한 정사각형의 네 꼭지점과 대응되도록 재배열하는 과정이 필요하다. 그러기 위해서는 먼저 얻어진 네 꼭지점을 영상의 원점을 기준으로 가장 가까운 순서대로 sorting한다. 그렇게 되면 윗면의 좌상단과 우하단은 항상 처음과 마지막에 저장되게 되고, 우상단과 좌하단의 x좌표를 비교하여 우상단의 점이 두 번째에 저장한다. 마지막으로 좌하단과 우하단의 순서를 바꾸어 저장하면 큐브 윗면의 네 꼭지점을 좌상단을 기준으로 시계방향으로 저장할 수 있다.
이후에, 큐브 윗면의 색과 패턴을 검출한다(S340). 큐브 윗면을 정사각형으로 잘 펼치고나면, 윗면을 이루는 각 칸을 분할한다. 정사각형을 세로로 3등분 가로로 3등분하여 총 9개의 칸으로 나누어준 뒤, 각 칸의 중점에 대한 픽셀 값을 저장한다. 이때, 스티커를 붙여둔 가운데 칸은 제외한다. 그 후, 각 픽셀 주위로 약 25개의 픽셀에 대한 R, G, B값의 평균을 구하여 해당 색이 빨강, 파랑, 주황, 노랑, 초록, 흰색 중 어떤 색에 속하는지 threshold를 통해 구별한다. 그리고 그 순서를 패턴으로 저장하여 미리 저장해둔 패턴들 중 어떤 패턴과 일치하는지 알아낸다(도 12 참조).
이후에, 큐브의 방향성을 구한다(S350). 같은 패턴임에도 불구하고 큐브를 90°, 180°, 270° 회전시켰을 때, 색의 배열이 다르게 저장되기 때문에 다른 패턴으로 인식하는 것을 막는 과정이 필요하다. 이를 위해 하나의 패턴에 대해 각 방향에 대한 4가지 경우를 모두 저장하여 현재 영상에서 큐브가 어떤 방향을 갖는지 알아내고, 영상 좌표계 상에서 좌상단을 기준으로 꼭지점을 배열하는 방식을 중앙 스티커의 좌상단을 기준으로 배열하는 방식으로 바꾼다.
이후에 카메라의 자세를 획득한다(S360). 물체를 증강시키기 위해서는 먼저 카메라의 Rotation값과 Translation값을 구하여 카메라가 물체를 어느 방향에서 바라보고 있는지 구해야 한다. 이는 solvePnP(solve Perspective-n-Problem)를 통해 구할 수 있다. solvePnP를 통해 카메라 R/T를 구하기 위해서는 먼저 월드 좌표계 상의 물체의 좌표와 그에 대응하는 영상 좌표계 상의 물체의 좌표, 그리고 카메라로 영상을 찍었을 때 생기는 왜곡을 표현하는 카메라 내부 파라미터 값이 필요하다. 월드 좌표계 상의 물체의 좌표는 큐브의 실제 물리적인 좌표를 말하는데, 큐브 윗면의 좌상단을 임의로 (0, 0, 0)으로 지정하면, 나머지 우상단, 우하단, 좌하단 또한 지정할 수 있게 된다. 또한 영상 좌표계 상의 물체 좌표는 위 과정에서 구한 좌표를 이용하며, 내부 파라미터는 사전에 calibration을 통해 구할 수 있다. 이를 통해 최종적으로 월드 좌표계 상에서의 카메라의 R/T를 구할 수 있게 되며, 큐브를 오른쪽에서 보았을 때, 증강하고자 하는 물체도 오른쪽에서 바라보게끔 증강시킬 수 있다.
이후에 물체를 증강한다(S370). 물체를 증강시키는 단계부터는 openGL을 통해 증강시킨다. 먼저 glut함수를 이용하여 윈도우를 초기화한 후, 이벤트를 관리하는 콜백 함수, 즉 gl함수를 이용하여 물체를 큐브 위에 올리도록 하였다. 마지막으로 gl함수 내에서 증강하고자 하는 물체를 지정해주면 물체를 증강시킬 수 있다. 즉, openGL로 만든 3D물체에 대한 픽셀 값을 따로 저장하고 이를 openCV로 만들어 놓은 배경영상에서 읽어들임으로써 물체를 증강시킬 수 있다. 이때 물체가 증강되는 위치는 이전 단계에서 설정한 월드 좌표계 상의 큐브의 원점을 기준으로 하며, solvePnP를 통해 구한 카메라의 R/T값을 통해 도 12와 같이 카메라의 위치에 따라 물체를 볼 수 있다.
도 13을 참조하면 큐브를 위에서 바라보아 카메라 시점에 따라 물체의 윗 모습이 증강됨을 확인 할 수 있다. 하지만 조명에 의해서 큐브 윗면에 대한 색깔을 제대로 검출하지 못하는 경우가 발생하기도 한다. 이러한 오류를 제거하기 위해 이전 frame에서 구한 패턴을 적용하는 방안을 사용할 수 있다. 또한 이러한 방식으로 오류를 수정하였을 때, 생기는 2차 오류로 영상 도중 큐브를 제거하였을 때, 영상에 큐브가 없음에도 불구하고 마지막으로 얻은 패턴을 이용하여 계속해서 물체를 증강시키는 경우가 발생하였다. 해당 오류를 제거하기 위해 5 frame동안 사전에 저장해둔 패턴과 일치하는 패턴을 찾을 수 없는 경우 아무것도 증강시키지 않는 방안을 사용할 수 있다. 하지만, 영상 중간에 물체가 y축 방향으로 뒤집어 지는 경우가 발생한다. 이는 solvePnP를 통해 Object Point와 image Point를 비교하는 데에 있어서 그 순서가 바뀌었을 때, 나타나는 현상이다. 이는 image Point가 순서대로 들어가지 않았을 때 발생한다. 현재 시스템은 영상에서 큐브 윗면에 대한 4개의 점을 찾으면 각 점을 영상의 (0,0) 즉, 원점을 중심으로 거리가 가장 가까운 순서대로 정렬한 뒤, 큐브의 좌 상단을 시작으로 시계방향으로 좌표의 배열을 수정한다. 하지만 종종 영상에서 두 개의 꼭지점과 원점과의 거리가 같은 경우 의도치 않은 배열로 재배열하는 경우가 발생한다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
없음

Claims (4)

  1. 루빅스 큐브의 다양한 패턴에 따라 대응하는 객체를 증강시키는 방법에 관한 것으로,
    (a) 단말기의 카메라부가 큐브를 영상 촬영하는 단계;
    (b) 촬영된 영상에서 큐브 위에 부착된 마커를 특징점 검출하고, 검출된 마커의 위치로부터 ROI영역내에서 원을 검출하는 단계;
    (c) 상기 원의 중심으로부터 일정한 영역 내에서 큐브의 외곽선을 검출하는 단계;
    (d) 검출된 상기 외곽선에 기초하여 상기 큐브의 윗면의 꼭지점을 찾아 큐브의 윗면을 검출하는 단계; 및
    (e) 상기 큐브의 윗면에 대한 꼭지점을 재배열하고, 상기 큐브의 윗면의 색과 패턴을 검출하여 패턴을 인식하는 단계를 포함하는 루빅스 큐브를 이용한 증강현실 제공 방법.
  2. 제1항에 있어서,
    상기 (c) 단계는,
    상기 영상으로부터 색상의 변화가 큰 가장자리 라인을 검출하는 단계;
    상기 검출된 라인을 분류하는 단계;
    분류된 라인을 partitional clustering 및 strongly connected graph를 이용하여 라인을 병합하는 단계; 및
    병합된 라인을 Regression line을 이용한 라인 정렬 및 외곽선을 검출하는 단계를 포함하는 루빅스 큐브를 이용한 증강현실 제공 방법.
  3. 제1항에 있어서,
    상기 (d) 단계는,
    윗면의 꼭지점을 검출하고, 에러 교정 및 안정화 단계를 더 포함하는 루빅스 큐브를 이용한 증강현실 제공 방법.
  4. 제1항에 있어서,
    상기 (e) 단계는, 하나의 패턴에 대해 각 방향에 큐브의 방향성을 구하는 단계를 더 포함하는 루빅스 큐브를 이용한 증강현실 제공 방법
KR1020170118575A 2017-09-15 2017-09-15 루빅스 큐브를 이용한 증강현실 제공 방법 KR101900797B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170118575A KR101900797B1 (ko) 2017-09-15 2017-09-15 루빅스 큐브를 이용한 증강현실 제공 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170118575A KR101900797B1 (ko) 2017-09-15 2017-09-15 루빅스 큐브를 이용한 증강현실 제공 방법

Publications (1)

Publication Number Publication Date
KR101900797B1 true KR101900797B1 (ko) 2018-09-20

Family

ID=63719653

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170118575A KR101900797B1 (ko) 2017-09-15 2017-09-15 루빅스 큐브를 이용한 증강현실 제공 방법

Country Status (1)

Country Link
KR (1) KR101900797B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102132552B1 (ko) * 2019-02-15 2020-07-09 (주)앤스브릭코리아 Ar기술을 활용한 블록형 학습교구

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101572870B1 (ko) 2014-11-20 2015-11-30 홍익대학교 산학협력단 큐알코드 큐브를 이용한 증강현실 서비스 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101572870B1 (ko) 2014-11-20 2015-11-30 홍익대학교 산학협력단 큐알코드 큐브를 이용한 증강현실 서비스 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102132552B1 (ko) * 2019-02-15 2020-07-09 (주)앤스브릭코리아 Ar기술을 활용한 블록형 학습교구

Similar Documents

Publication Publication Date Title
US20210366124A1 (en) Graphical fiducial marker identification
US10846844B1 (en) Collaborative disparity decomposition
Wetzler et al. Rule of thumb: Deep derotation for improved fingertip detection
US10719727B2 (en) Method and system for determining at least one property related to at least part of a real environment
Bourdis et al. Constrained optical flow for aerial image change detection
CN108734087B (zh) 物体自动识别方法以及系统、购物设备和存储介质
JP4525519B2 (ja) 四辺形評価方法及び装置及びプログラム
US20060204035A1 (en) Method and apparatus for tracking a movable object
US10909369B2 (en) Imaging system and method for object detection and localization
CN102612704A (zh) 用于提供针对图像的至少一个特征的描述符的方法和用于匹配特征的方法
Castillo et al. Wide-baseline stereo for face recognition with large pose variation
Taneja et al. Modeling dynamic scenes recorded with freely moving cameras
CN109271937A (zh) 基于图像处理的运动场地标志物识别方法及系统
Muñoz et al. Fast 6D pose from a single RGB image using Cascaded Forests Templates
CN109493384A (zh) 相机位姿估计方法、系统、设备及存储介质
Kagarlitsky et al. Piecewise-consistent color mappings of images acquired under various conditions
Li et al. RGBD relocalisation using pairwise geometry and concise key point sets
KR101753360B1 (ko) 시점 변화에 강인한 특징점 정합 방법
JP6558803B2 (ja) 幾何検証装置及びプログラム
KR102577663B1 (ko) 특징점 매칭쌍 필터링을 이용한 이미지 포즈 추정 시스템 및 이를 이용한 이미지 포즈 추정방법
KR101900797B1 (ko) 루빅스 큐브를 이용한 증강현실 제공 방법
JP4390487B2 (ja) 頭部領域抽出装置
WO2023193763A1 (zh) 数据处理方法及装置、追踪标记、电子设备及存储介质
Wang et al. Handling occlusion and large displacement through improved RGB-D scene flow estimation
CN112016495A (zh) 人脸识别的方法、装置和电子设备

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant