• 검색 결과가 없습니다.

A Ground Detection Technique based on Region Segmentation in Spherical Image

N/A
N/A
Protected

Academic year: 2021

Share "A Ground Detection Technique based on Region Segmentation in Spherical Image"

Copied!
14
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

게임 프로그래밍

영역 분할에 기반한 구면 영상에서의 바닥 검출 기법

김종윤, 박종승 인천대학교 컴퓨터공학부

[email protected], [email protected]

A Ground Detection Technique based on Region Segmentation in Spherical Image

Jong-Yoon Kim, Jong-Seung Park

Dept. of Computer Science & Engineering, Incheon National University 요 약

본 논문에서는 구면 영상에서 영역 분할 정보를 사용하여 바닥 영역을 검출하는 방법을 제시 한다. 평면 영상에서의 Watershed 영역 분할 방법을 수정하여 구면 영상의 영역 분할에 적용할 수 있도록 하였다. 영역들을 분할한 뒤 가정된 바닥 영역 픽셀의 색상과 질감을 그 외의 영역 들과 비교하여 바닥 영역을 검출한다. 구면 파노라마 영상에서는 구면 왜곡으로 인하여 평면에 서의 바닥 검출 방법을 그대로 적용할 수 없다. 구면 왜곡을 고려한 바닥 영역 검출을 위하여 바닥 영역의 외곽선을 검출하는 알고리즘을 설계하였다. 실험에서 지상물이 없는 경우와 있는 경우의 모두에서 적절하게 바닥 영역을 검출할 수 있는 결과를 보였다.

ABSTRACT

In this paper, we propose a ground area detection technique based on region segmentation in the spherical image. We modified the Watershed planar image segmentation method to segment spherical images. After regions are segmented, the ground area is detected by comparing colors and textures of pixels of the assumed ground region with the pixels of other regions. The ground detection technique for planar images cannot be used for spherical images due to the spherical distortion.

Considering the spherical distortion, we designed the ground shape detection algorithm to detect the ground area in the spherical images. Our experimental results show that the proposed technique properly detects ground areas both for the flat ground and the obstacle-filled ground environments.

Keywords : Spherical image(구면 영상), Watershed algorithm(유역 알고리즘), Ground(바닥)

Received: Nov. 11. 2017 Accepted: Dec. 15. 2017 Corresponding Author: Jong-Seung Park(Incheon National University)

E-mail: [email protected]

ISSN: 1598-4540 / eISSN: 2287-8211

Ⓒ The Korea Game Society. All rights reserved. This is an

open-access article distributed under the terms of the Creative

Commons Attribution Non-Commercial License

(http://creativecommons.otg/licenses/by-nc/3.0), which permits

unrestricted non-commercial use, distribution, and reproduction in

any medium, provided the original work is properly cited.

(2)

1. 서 론

VR/AR(Virtual Reality/Augmented Reality)는 발전 가능성과 신선함으로 대중들에게 찬사를 받고 있으며 관련 콘텐츠들이 점차 자리를 잡아가고 있 다. VR/AR 콘텐츠가 다양하게 활용되기 위해서는 영상에서의 바닥 영역 정보가 필요하다. 바닥 영역 은 중력의 영향을 받는 지표면 세계에서 물체의 배치 기준이 된다. 사람의 경우는 활동 범위가 대 부분 바닥 영역 안으로 제한되며, 자동차의 경우는 도로라는 바닥 영역의 일부로만 제한된다.

바닥 영역을 추정하는 여러 방법들이 제시되었 다. Cherian 등[1]은 로봇에 탑재된 카메라에 의해 촬영된 단일 영상에서 MRF(Markov Random Field)를 사용하여 3D 깊이 지도를 재구성하며 이 를 통해 지면의 경계를 찾는 것을 제안했다. Lin 등[2]은 로봇에 탑재된 단안 카메라를 이용하여 장 애물 회피 설계를 위해 지상 영역을 탐지하고 분 류하는 방법을 제안했다. Haines 등[3]은 기계 학 습을 이용하여 단일 영상에서 여러 개의 평면을 식별하고 방향성을 추정할 수 있는 평면 탐지 알 고리즘을 제안했다. Rahimi 등[4]은 단일 영상에서 RANSAC 알고리즘 등을 사용하여 지면에 해당하 는 부분을 추정했다.

본 논문에서는 바닥 영역을 검출하기 위해 먼저 Watershed 알고리즘을 사용하여 영상을 분할한다.

수학적 형태학에 기초한 Watershed 알고리즘은 영상 세분화 분야에서 널리 사용되고 있다[5]. 한 편 위상 기하학 알고리즘과 같이 활용되어 영역을 분리하는 방법[6]이나, 컬러 영상에서 물체의 영역 들을 분할하는 방법[7]이 제시되고 있다. 특징점 추출과 Clustering을 사용하여 영역들을 검출해내 는 방법도 제시되었다[8,9]. Gray 영상에서의 영역 을 찾는 방법이 제시되었고[10], 영역 분할과 더 나아가 Hybrid Gradient와 자기 적응형 마커추출 을 사용하여 영역을 더 완벽하게 분할하는 방법이 제시되었다[11].

Watershed 알고리즘은 다양한 분야에서 활용되

고 있다. 의학 분야에서는 CT 영상에서 간 영역을 검출하는 방법[12]이 제시되었으며, MRI 영상에서 뇌 영역을 분할해주는 방법[13]도 제시되었다. 관 측 분야에서는 3D 레이더 영상에서 Watershed 알 고리즘을 사용하여 물체를 더욱 뚜렷하게 만들어주 는 방법[14]이 제시되었다.

본 논문에서는 구면 영상에서 바닥 영역을 검출 하기 위해 Watershed 알고리즘을 사용하여 영역 들을 나누고 영역들의 색상과 질감을 이용하여 바 닥 영역을 검출하는 기법을 제시한다. 구면 영상은 평면 영상과는 달리 수평방향으로 360°와 수직 방 향으로 180°의 시야를 파노라마 형태의 평면 영상 안에 담아내기 때문에 왜곡 현상이 있다[15]. 왜곡 현상에 의하여 구면 영상은 평면 영상에서의 바닥 영역과는 다른 모양을 띄게 되는데, 이 때문에 평 면 영상에서의 바닥 검출 방법과는 차이가 있어야 한다. 따라서 본 논문에서는 구면 영상에서 나타나 는 바닥 영역의 모양을 표현하는 곡선을 계산하여 구면 영상에서의 바닥 영역을 검출하는 방법을 제 안한다.

2. 평면 영상에서의 바닥 영역 검출

//Input

SourceImage //Step 1: Segment image

Binarize(

)

SegmentRegions(

)

//Step 2: Extract properties of segmented regions

GetColor(

,

) //Color

EvaluateTexture(

) //Texture //Step 3: Find ground regions

FindGroundRegions(

,

,

)

[Fig. 1] Ground detection procedure in planar image

기존의 평면 영상에서의 영역을 검출하는 방법

은 많이 있으나 본 논문에서는 대표적인 영역 분

할 알고리즘인 Watershed 알고리즘을 활용한 방7

법을 사용한다. [Fig. 1]은 평면 영상에서의 바닥을

(3)

검출하는 방법에 대한 전체적인 절차를 도식으로 나타낸 것이다.

2.1 영역 분할

평면 영상에서 분할을 하는 방법은 Laplacian 필터링의 사용과 영상의 이진화, 거리 변환과 마커, Watershed 알고리즘을 사용한다. 우선 원본 영상 ( 

)에서 영역간의 구분이 잘 되기 위해 영상을 선 명화시킨다. 선명화 작업에는 에지를 구해야 하는 데 이를 위하여 Laplacian 필터링( 

)을 사용한다.

 ≡ 



  

(1)

은 식 (1)에서와 같이 x축과 y축 방향으로 2차 미분을 합한 것과 같다. 따라서 

은 주변 픽셀보 다 큰 값으로 둘러싸인 작은 덩어리 또는 한 점에 서 큰 양수 값을 반환한다. 이와 반대로 주변 픽셀 보다 작은 값으로 둘러싸인 덩어리 또는 픽셀에서 는 큰 음수 값이 반환된다. 이렇게 필터링된 영상 은 

에서 제거되어 영상을 더욱더 선명하게 보여 준다. [Fig. 2]는 원본 영상이고 [Fig. 3](a)는 필터 링을 거쳐 출력된 영상이다. 이를 

이라고 하자.

[Fig. 2] Original planar image

다음 단계로 

에 임계값을 주어 이진화시켜 흑 백 영상 

로 바꾼다. 그 결과가 [Fig. 3](b)에 있 다. 그 후에 DistanceTranceform(

)를 실행한다.

이는 모든 이미지의 픽셀에서 주변에 0을 갖는 픽 셀까지의 가장 가까운 거리를 계산해 주어 이를

결과 영상에 나타내주는 변환이다.

(a) (b)

(c) (d)

[Fig. 3] Region segmentation process

는 에지 영상인 

을 사용한다. 에지 영상은 에지라고 판별되는 곳은 픽셀을 0값을 가지며 이 가 아닌 경우는 0이 아닌 값을 가지게 된다. 거리 변환에서는 거리를 계산하는 척도에 따라 출력이 달라지며, 척도를 어떻게 정하는 가에 따라서 거리 변환의 수행 시간이 결정된다.

   

(2)

본 논문에서는 거리의 척도를 식 (2)로 하였다.

결과 값을 시각화 및 임계값을 주기 위하여 

을 거친 후의 영상을 정규화한다. [Fig. 3](c)는 

을 사용하여 출력된 영상이다. 이 정규화 과정을 거친 후의 결과를 

라고 하자.

다음으로 Watershed 알고리즘을 사용하기 위해 마커를 찾아야 한다. 마커를 찾기 위해서

findCountour 함수를 사용한다. 이 함수는 객체들을

감지하거나 인식하는데 유용한 윤곽선을 찾는 도구 이다. 이 함수를 사용하기 위해서는 

를 8비트의 정수형 단일 채널 영상으로 변환해야 한다. 변환된 영상에서 findCountour를 사용하여 외곽선들을 찾 는다. [Fig. 3](d)는 마커를 찾은 영상이며 이를 

이라고 하자.

마지막으로 Watershed 알고리즘( 

)과 찾은 외

곽선들을 사용하여 영상을 분할한다. [Fig. 4]는 평

면 영상에서 영역을 분할한 결과이며 이를 

라고

(4)

하자. [Fig. 5]는 영역을 분할하는 과정을 나타내는 의사코드이다.

[Fig. 4] Segmented image

Function: SegmentRegions Input:

Output:

,

,

,

Begin

← 

(

)≡ 



 

Binarize(

)

DistanceTranceform(

)

FindMarker(

)

Watershed(

) End

[Fig. 5] Pseudo code of the image segmentation method

2.2 바닥 특성값 연산

영상에서 바닥 영역을 검출해야 하므로 나누어 진 영역들의 속성값들을 계산하기 위해 영역들의 픽셀들을 구해야한다. 이때 나누어진 각 영역을 

라고 하고, 구하려는 픽셀들을 



라고 하자.



은 

에서의 픽셀값으로부터 구할 수 있다. 이후 저장된 픽셀들의 색상들을 검출하고, 검출된 색상 들의 평균 색상을 구하여 분할된 영역들의 



(첫 번째 속성값)에 저장한다.

다음으로는 픽셀들의 질감을 분석하여 그 결과 값의 평균들을 영역들의 두 번째 속성값( 



)으로 저장한다. 질감을 분석하는 방법에는 LBP (Local Binary Patterns)를 이용하여 분석을 실시한다.

LBP 방식은 주로 얼굴의 패턴을 인식하는 것에 사용되고 있다. LBP 방식을 활용하여 얼굴 영상의

특징을 더욱 발전시키는 방법[16]이 제시되었고, LBP 방식을 기반으로 유전적 알고리즘을 사용하 여 얼굴 분석의 정확도를 높이는 방법[17]도 제시 되었다. 본 논문에서의 바닥 영역의 경우 얼굴과는 다르게 복잡한 특징들이 좁은 영역 안에 있지 않 으므로 기본 방식에서 확장시키지 않고 그대로 사 용한다. [Fig. 6]은 LBP 방식으로 영상 전체의 각 각의 픽셀들의 대한 질감 값을 구하는 의사코드이 다. [Fig. 7]은 구동 예시를 보여준다.

Function: EvaluateTexture Input:

Output:

(Texture Image) Begin

For i

1 to (

.rows

1) preRow

← 

(i

1) curRow

← 

(i) nextRow

← 

(i+1) For j

1 to (

.cols

1)

resPix

(curRow[j

1]

curRow[j])? 1 : 0

7 resPix

(nextRow[j

1]

curRow[j])? 1 : 0

6 resPix

(nextRow[j]

curRow[j])? 1 : 0

5 resPix

(nextRow[j+1]

curRow[j])? 1 : 0

4 resPix

(curRow[j+1]

curRow[j])? 1 : 0

3 resPix

(preRow[j+1]

curRow[j])? 1 : 0

2 resPix

(preRow[j]

curRow[j])? 1 : 0

1 resPix

(preRow[j

1]

curRow[j])? 1 : 0

(i,j)

respix

EndFor EndFor End

[Fig. 6] Pseudo code for analyzing texture value of pixels

[Fig. 7] An example of LBP

2.3 바닥 영역 검출

이제 바닥을 검출할 수 있도록 가정을 세운다.

본 논문에서는 영상 촬영에 있어서 카메라를 바닥

위에서 대략적으로 전방으로 향하도록 촬영한다고

가정한다. 즉 카메라의 수평 방향의 팬(Pan) 회전

은 무관하지만 수직 방향의 틸트(Tilt) 회전이나

(5)

시선축의 롤(Roll) 회전은 과도하게 일어나지 않는 다고 가정한다. 구면 카메라의 경우도 동일하다.

이 가정으로부터 영상에서 하단에 해당하는 부분은 바닥영역의 일부라고 볼 수 있다. 이것을 

이라 고 하고, 

의 속성값( 



, 



)을 구한다. 마지막 으로 

의 중점 

와 분할된 각 영역의 중점



사이의 거리를 측정하여 가까운 곳부터 비교 를 실시한다. 

와 각 

의 평균 색상과 질감의 차이가 임계치보다 작다면 바닥이라고 판단하여 이 영역들을 따로 저장한다. 저장된 영역들을 특정 색 상으로 보이도록 최종 영상인

위에 표시한다.

[Fig. 8]은 평면 영상에서의 바닥을 찾는 방법을 의사코드로 나타낸 것이다. [Fig. 9]는 [Fig. 1]의 과정을 모두 거친 결과 영상이다.

Function: FindGroundRegions Input:

Output:

Begin

For i

0 to Contours.size If color  color of

(x,y)



AvgColor,



AvgTexture EndFor

For i

0 to Contours.size



[0]

i (



: contours sorted by Distance)



[0]

Distance(

)

EndFor

Sort(



.begin ,



.end ,



[1]) For i

0 to Contours.size diffColor

← 





diffTexture

← 





If (diffColor < T_dc && diffTexture < T_dt) SelectedCont(x,y)

← 



EndFor

Color of SelectedCont End

[Fig. 8] Pseudo code of finding ground area in a planar image

[Fig. 9] Determined ground area in a planar image

3. 구면 영상에서의 바닥 영역 검출

3.1 구면 영상에서의 바닥 특성

구면 영상에서는 구면 왜곡으로 평면 영상과는 다른 형태로 바닥 영역이 나타난다. [Fig. 10]을 보 면 중앙을 지나는 수평선을 기준으로 상단 혹은 하단으로 갈수록 많은 구면 왜곡이 일어나는 것을 알 수 있다. 이로 인하여 평면 영상과 구면 영상에 서 바닥영역은 서로 다른 모양을 가지고 있다.

[Fig. 10] A spherical panoramic image

(a) (b)

[Fig. 11] Ground shape that can appear in a spherical panoramic image

구면 영상에서 바닥 영역으로 나타날 수 있는 모양의 경우는 크게 다음의 세 경우로 구분된다.

첫 번째 모양은 바닥이 평야나 운동장과 같이 넓

게 펼쳐진 경우이다. 이 경우에는 평면 영상과 유

사하며, 보통 [Fig. 11](a)와 같은 모습으로 나타난

다. 두 번째 모양은 바닥이 도로나 길인 경우에

[Fig. 11](b)와 같이 나타난다. 도로 영역의 봉우리

가 솟은 모양은 카메라의 시선 방향에 따라서 달

라지며 그림의 경우에는 카메라가 도로 정면 방향

이 아닌 측면 방향으로 촬영한 경우이다. 구면 영

상에서 카메라가 팬 회전되면 보이는 영상이 좌우

로 시프트되는 특성이 있다.

(6)

3.2 바닥 영역 검출의 전체적인 절차

구면 영상에서의 바닥 영역의 모양 특성을 통하 여 바닥 영역을 효과적으로 검출하는 알고리즘을 제안한다. 구면 영상에서도 평면 영상과 같이 Watershed 알고리즘을 사용하여 영역을 분할하고, 속성값을 검출하여 바닥 영역을 찾는다. 영역을 분 할하는 함수를 SegmentRegions라고 하고, 바닥을 찾는 함수를

FindGroundRegions라고

하자.

SegmentRegions을 통해 얻은 영상을





라고 하고,

FindGroundRegions을 통해 얻은 영상을





이라고 하자.

구면 영상에서 나타나는 모양 중 평야를 제외한 나머지 모양들은 봉우리가 솟은 모양을 하고 있다.

이러한 봉우리들은 카메라의 팬 회전 각도에 따라 바닥 모양이 다르게 나타난다. 팬 회전 각도와 무 관하게 영상을 정규화한다면 바닥 검출이 훨씬 쉬 워질 것이다. 따라서 영상을 정규화하기 위해 영상 을 표준 모양으로 시프트한다. 이를 위해서는 도로 의 봉우리 위치를 찾고 최고점 봉우리가 영상의 중심 위치에 오도록 정규화한다. 두 개의 봉우리 중에서 더 높은 봉우리를 찾고 이를 



이라 하 자. 이제 



을 정중앙으로 시프트한다. 이 함수 를 ShiftSphericalImage라고 하고 출력된 영상을





라고 하자. [Fig. 12]은 구면 영상에서의 시 프트 전과 후의 모습을 보여주고 있다.

[Fig. 12] Before and after the shift operation

이제 구면 영상에서 바닥 영역은 ‘W’와 비슷한 모양으로 보이게 된다. 바닥 영역을 추출하기 위해 미리 찾은 바닥 영역에서 W형의 곡선을 그려주게 된다. 곡선을 위도 –90°에서 시작하여 곡선이 바 닥 영역 상에 있는지 없는지 검사를 하면서 바닥 상에 있다면 곡선의 위도를 높여간다. 곡선이 바닥 영역 상이 아닌 곳으로 바뀐다면 직전의 곡선을

현재 구면 영상에서의 바닥 영역과 나머지 영역을 분리하는 외곽선으로 확정한다. 이 과정의 함수를

FindSphericalGroundRegions라고 하고 출력된 결과

영상을



이라고 하자. 최종 외곽선을 설정했다

면, 외곽선 아래의 위치하고 있는 부분들은 구면 영상에서 나타나는 바닥 영역이 된다. [Fig. 13]은 구면 파노라마 영상에서의 바닥 검출의 전체적인 절차를 나타낸다.

//Input



SourceImage

//Step 1: Segment image & detect initial ground regions





SegmentRegions(



)





FindGroundRegions(



) //Step 2: Normalize spherical image



ShiftSphericalImage(



) //Step 3: Evaluate final ground regions



FindSphericalGroundRegions()

[Fig. 13] Ground detection procedure in

a spherical image

3.3 단계별 세부 절차

3.3.1 영역 분할 및 1차적 바닥 검출

구면 영상에서도 평면 영상과 같이 Watershed 를 사용하여 영역을 분할한다. 구면 파노라마 영상 에서의 영역 분할의 모든 과정과 속성값을 사용하 여 바닥을 검출하는 방법은

SegmentRegions와 FindGroundRegions를 사용한다. 구면 영상에서도

이 과정을 거치게 되면 대략적인 바닥 영역이 검 출 될 수 있으나 구면 왜곡으로 인해 정확히 검출 되지 못하는 단점이 있다. 따라서 구면 영상에 적 합한 과정이 필요하다. 최초로 검출해낸 바닥 영역 을 활용하여 구면 왜곡으로 인해 생기는 바닥 모 양을 찾아내고, 그 모양에 맞게 바닥을 검출하는 방식으로 진행한다.

3.3.2 구면 영상 시프트

구면 왜곡으로 인한 바닥 영역의 모양이 카메라

(7)

촬영 방향에 따라서 다르게 나타나므로 바닥 영역 을 검출하기 이전에 바닥 모양이 균일하게 나타나 도록 균일화 작업을 진행한다. 균일화 작업은 영상 의 수평 시프트 연산으로 해결할 수 있다. 먼저 바 닥 영역의 위로 솟은 최상단 봉우리 지점을 찾고 이 지점이 영상의 중심이 되도록 수평 시프트를 실시하여 균일화한다. 균일화 후에는 바닥 영역이

‘W’형으로 보이게 된다.

균일화 과정은 다음과 같다. 



에서 미리 찾은 바닥의 최상단에 위치한 영역을 구한다. 이는 앞서 언급했던 구면 왜곡으로 생기는 봉우리를 찾는 것 이다. 최상단 봉우리를 찾은 과정은 바닥 색상과 텍스처를 고려하여 바닥 영역의 최상단 지점을 찾 는 방식으로 진행된다. 검출된 바닥 영역의 경계가 부정확한 경우에는 봉우리의 위치에 오류가 있을 수 있으므로 영상 취득에서의 가정을 고려하여 잘 못 찾아지는 바닥 영역이 있는 지를 검사한다. 영 역의 평균 위치가 영상의 중심보다 높은 경우에는 가정에 위배되므로 이를 제외시킨다.

Function: ShiftSphericalImage Input:: 

Output: 

Begin

Contour Floor[i][j]

Marked regions in 

For i

0 to NumGroundRegions For j

1 to NumPixelsInTheRegion If (.y > Contour Floor[i][j].y) .x = ContourFloor[i][j].x .y = ContourFloor[i][j].y EndFor

EndFor

circle(.x, .y) If (.x

src.cols/2) difX = .xsrc.cols/2



Shift_Img(,



 × ) End

[Fig. 14] Shift pseudo code in spherical image

이제 최상단 지점을 검출한다. 우선 영상에서의 미리 바닥 영역이라고 구분 지어진 영역들의 높이 를 구한다. 높이는 영상의 각각의 열에 해당하는 픽셀의 y값이다. 각 열의 높이들을 구한 뒤에는 이 들 중에 제일 높이 있는 픽셀을 구한다. 구해진 픽 셀이 봉우리에 해당하는 지를 검사한다. 픽셀의 좌 우로 높이의 변화율이 양에서 음으로 바뀌는 경우

가 봉우리에 해당한다. 봉우리가 찾은 최상단 점이 좌우에 연속되어 있는 경우에는 최상단 점을 연속 된 점들 중에 정중앙에 해당 점으로 설정한다. 찾 은 봉우리의 위치를 



이라고 하자. 



이 영 상의 정중앙이 되도록 영상을 좌우로 시프트한다.

이제 파노라마 영상에서의 바닥 영역은 ‘W’ 형태 로 나타나게 될 것이다. [Fig. 14]는 구면 영상들을 시프트하여 바닥 모양을 ‘W’형으로 균일화시키는 절차를 나타내는 의사코드이다.

3.3.3 바닥 영역 검출

이제 균일화한 구면 영상으로부터 바닥 영역의 외곽선을 검출한다. 바닥 영역의 외곽선이란, 바닥 과 그 외의 요소들(하늘, 건물, 나무 등)의 경계가 되는 구분선을 말한다. 이전 단계에서 구면 영상의 바닥을 W형으로 균일화하였으므로 외곽선 또한 W 모양인 곡선으로 나타나게 된다. 이때 외곽선의 곡률은 구면 영상에서 생기는 구면 왜곡률과 관계 가 있다. 다시 말해서 위도에 따라 왜곡률이 달라 지듯이 외곽선의 곡률 또한 바뀌게 된다. 따라서 외곽선을 구할 때는 정중앙을 시작점으로 설정하고 이를 회전축을 기준으로 왼쪽으로 회전한다.

  

 



×   

  



×

(3)

  coscos   cossin   sin

(4) 회전 시에 첫 번째로 해야 하는 일은 시작점을 표시하는 것이다. 구면 파노라마 영상에서는 위도 와 경도만 나타낼 수 있으므로 이를 구면 좌표계 로 변환해야 한다. 식 (3)은 구면 파노라마 영상에 서 구 좌표계로 변환 식을 나타내었다. 위 식에서

와 는 각각 경도와 위도를 나타낸다. W와 H는

영상의 너비와 높이를 나타낸다. 3차원 회전을 하

기 위해 구 좌표계에서 3차원 직교 좌표계로 변환

해야 한다. 식 (4)는 (, )를 3차원 직교 좌표계

에서 (x, y, z)로 변환하는 식이다. 이제 시작점을 3

차원 직교 좌표계로 나타낼 수 있다. 이때의 시작

점의 쿼터니언 표현을 라고 하자. 를 본 논문

(8)

에서는 (0, 1, 0, 0)으로 둘 것이다.

회전축은 평면에 두어 정확한 회전을 할 수 있도록 하였다. 회전축의 각도에 따라 선의 경로가 달라진다. 이 경로를 구면 파노라마 영상에서 그리 면 해당하는 회전축의 각도에서 왜곡이 일어나는 정도만큼의 곡률을 알 수 있다. 따라서 이 곡률로 시작점에로부터 선을 그리면 구면 파노라마 영상에 서 바닥 영역의 외곽선을 정확히 구할 수 있다.

바닥 영역의 경우 왼쪽 부분과 오른쪽 부분의 높낮이가 다를 수 있기 때문에 외곽선을 검출할 때에 왼쪽 외곽선와 오른쪽 외곽선을 각각 구한다.

왼쪽과 오른쪽 외곽선 모두 곡률은 같기 때문에 회전 각도는 동일하게 가정한다. 단 오른쪽 외곽선 은 왼쪽 외곽선의 픽셀에서 W/2만큼 더 이동하면 된다. 이제 각도를 1°로 설정하여 첫 번째 곡선을 테스트한다. 첫 번째 곡선은 구면 파노라마 영상에 서 위도 –90°에 해당하는 곳부터 시작한다. 영상 촬영 가정에 따라 영상의 아랫부분이 바닥이라고 가정한다. 다음은 곡선 상의 픽셀들을 얻어

OutlinePixels

에 저장한다.

OutlineColor

에는 저장된 픽 셀들의 컬러 값을 저장한다. 만약

OutlinePixels

에서



의 색상과 같은 픽셀들의 개수가 일정 수를 넘 는다면, 이는 바닥 위에 있다고 판단을 하고 다음 각도의 외곽선으로 넘어간다. 이러한 과정을 각도 를 증가시키며 반복한다. 이후 외곽선이 위치해 있 는 곳의 픽셀들의 색상과



색상을 비교하여 같 은 색상의 픽셀들이 일정 수 미만일 시에는 직전 위도의 외곽선을 최종 외곽선으로 확정한다.

[Fig. 15] The process of detecting final outline

[Fig. 15]은 최종 외곽선을 검출하는 과정을 예

시로 보여준다. 맨 아랫부분의 첫 번째 외곽선을 시작으로 최종 외곽선을 검출하기까지 계속해서 반 복한다. 파란색 곡선은 위도의 변화에 따른 외곽선 을 나타낸 것이며 최종 외곽선은 마지막으로 구한 외곽선의 바로 전 위도의 외곽선으로 빨간색 곡선 에 해당한다. [Fig. 15]은 예시를 위해서 각도 간격 을 크게 하였지만 실제 알고리즘은 1° 단위의 간격 으로 진행하므로 최종 외곽선을 정확하게 구한다.

[Fig. 16]은 구면 영상에서의 바닥 영역의 최종 외 곽선을 검출하는 의사코드이다. 영상에서 왼쪽 절 반 영역과 오른쪽 절반 영역에 대해서 각각 별도 로 수행하여 외곽선을 결정한다.

Function FindSphericalGroundRegions Input : 

Output : 

Begin Angle

1 While (Angle

90)

[sp.x,sp.y,sp.z,sp.w]

(0, 1, 0, 0) [r.x,r.y,r.z,r.w]

[ cos 





 × sin 

 , 0,

 sin 





 × sin 

 , cos 



] For i

0 to W/2

(atan2(sp.x, sp.y) ≥ 0) ? atan2(sp.x, sp.y) :  +atan2(sp.x, sp.y)



If (isLeft) //left outline Add (,

  ) to OutlinePixels;

Else //right outline Add (  

 ,

  ) to OutlinePixels;

Add current pixel color to OutlineColor;

sp

× ×∼  //rotate sp EndFor

If (dist(Avg(OutlineColor), groundColor) < ) preOutlinePixels

OutlinePixels

OutlinePixels.clear CurvedColor.clear Angle

Angle+1 Else

break EndWhile

Generate  from preOutlinePixels;

End

[Fig. 16] Outline detection pseudo code in

spherical image

(9)

4. 실험 결과

다양한 실외 환경에서 촬영한 구면 파노라마 영 상을 대상으로 실험을 수행하였다. 입력 영상은 도 로 또는 인도만 있는 경우와 주변에 건물이 있는 경우로 나누어서 실험하였다. 도로 또는 인도 등의 보행 영역만 있는 영상의 경우 보행 영역만을 바 닥 영역으로 간주한다. 영역 분할에 사용되는 임계 값은 영상이 잘 분할되도록 경험적으로 결정하였 다. 분할된 영역들과 속성값을 비교하는 기준 영역

의 크기는 30×30으로 설정하였다.

4.1 지상물이 없는 경우의 실험

해당 실험의 입력 영상은 도로만 있는 영상이며, 도로 위에 카메라를 위치시켜 찍은 영상이다. 카메 라가 도로 위에 위치해 있고, 촬영 가정에 따라서 바닥 영역은 중·하단부근에서 나타나게 된다. 지상 물이 없는 경우에는 바닥 영역은 도로 또는 인도 영역과 그 주변에 위치한 흙바닥 또는 잔디밭 영 역의 두 부분으로 나뉘게 된다. 두 가지 영역의 구 분을 위해서 색상뿐만 아니라 질감 속성도 사용하 였다.

(a) (b) (c) (d)

[Fig. 17] Ground detection experiment in an image without an object on the ground

(10)

지상물이 없는 경우에 해당하는 입력 영상을 가 지고 바닥 영역을 검출해 내는 순차적인 과정이 [Fig. 17]에 표시되어 있다. 위에서 아래의 순서대 로 첫 번째는 입력 영상이며, 두 번째는 입력 영상 을 Watershed 알고리즘을 통해 영역별로 분할한 영상이다. 세 번째는 분할된 영역들의 속성값을 가 지고 기준 영역과 비교하여 최초로 바닥 영역을 검출한 결과이다. 영상에서의 노란색으로 칠해져 있는 영역들이 바닥 영역에 해당한다. 빨간색 점의 경우 영상의 균일화를 위하여 최초로 검출해낸 바 닥 영역에 해당하는 영역들 중에서 최상단에 위치 한 영역에서도 제일 위에 있는 픽셀을 표시해 놓

은 것이다. 네 번째 영상의 경우 두 가지 실험 결 과 모두 검출된 바닥 영역의 모양이 ‘W’형태의 모 양을 하고 있으며, 영상의 시프트를 통해 균일화가 되었다는 것을 볼 수 있다. 다섯 번째는 균일화 과 정을 마친 영상에서 [Fig. 15]의 과정을 통하여 최 종 외곽선을 검출해낸 영상이며, 검출된 외곽선 아 래의 영역은 곧 구면 파노라마 영상에서의 최종 바닥 영역이라고 할 수 있다. 외곽선의 경우 위도 에 따라 다르게 나타나는 구면 왜곡의 정도에 따 라 곡률을 구하기 때문에 바닥 영역이 구면 왜곡 과 거의 일치하는 것을 볼 수 있다.

(a) (b) (c) (d)

[Fig. 18] Ground detection experiment in spherical images with objects on the ground

(11)

4.2 지상물이 있는 경우의 실험

지상물이 없는 경우와 다르게 보행 영역 외에도 건물들이 배치해 있는 영상을 대상으로 실험하였 다. 카메라의 위치는 이전 실험과 같이 길 위에서 위치한 영상으로 설정한다. 지상물이 있는 경우와 같이 길 위에서 카메라를 위치시켰기 때문에 주 바닥 영역은 길 영역이 된다. 지상물이 없는 경우 는 길 영역과 나머지 영역의 속성값들이 많이 차 이가 나기 때문에 쉽게 검출 할 수 있었다. 하지만 지상물이 있는 경우에는 건물들의 재질이 도로의 재질과 비슷하며, 색상 또한 비슷한 색상이 많아 속성값으로 검출하기가 매우 힘들어진다. 따라서 지상물이 있는 경우에 초기에 검출하는 바닥 영역 에는 검출오류가 많이 발생한다. [Fig. 18]는 지상 물이 있는 경우에 해당하는 입력 영상을 바탕으로 바닥 영역을 검출해 내는 과정을 순차적으로 나열 한 것이다. 지상물이 없는 경우와 마찬가지로 과정 의 순서는 위에서 아래 방향이다. [Fig. 18]에서 모든 실험 결과의 초기 바닥 검출 결과에는 실제 로 바닥 영역이 아닌 건물 영역인 곳도 바닥 영역 이라고 추정하고 있다. 또 영상의 균일화를 위하여 최상단 영역의 최상점을 찾는 과정에서 건물 등 잘못된 영역이 탐지되는 경우가 있다. 제안 방법에 서는 최상점의 높이를 제한하여 최상점이 바닥 영 역이 아닌 곳에 위치해 있지 않도록 하였다. 확실 한 바닥 영역을 검출하기 위해서는 3.3.3절에서 언 급했던 외곽선 검출 방법을 사용하여 구면 파노라 마 영상에 맞게 바닥 영역을 검출한다. 외곽선 검 출 시에는 미리 검출된 바닥 영역의 색상과 비교 하게 되는데 이 때, 판정에 사용되는 임계치는 영 역이 분할된 수에 따라 다르게 결정된다.

5. 결 론

본 논문에서는 구면 영상에서 영역을 분할하고 바닥에 해당하는 영역들을 검출하여 바닥 부분을 결정하는 것이다. 평면 영상에서 영역을 분할하는 대표적인 방법인 Watershed 알고리즘을 사용하여

영상 분할을 하였으며, 얻어진 영역들의 속성값과 바닥의 기준 영역의 속성값(색상, 질감)을 비교하 여 초기 바닥 영역을 검출하였다. 이를 활용하여 구면 영상에서 발생하는 구면 왜곡 현상으로 인한 바닥 부분의 경계 곡선을 추출하여 바닥 영역의 최종 외곽선을 검출하였다. 영역들의 색상들을 비 교할 때, 영역 안의 픽셀들의 RGB 값으로 검출하 였다. 만약 영역들이 분할될 때 영역들의 크기가 작게 분할이 된다면, 픽셀들 각각의 색상 값들의 비중이 커지게 된다. 이러한 문제 때문에 바닥 영 역에 빛이 비치거나, 다른 물체가 있는 경우에는 영역들을 추출하기가 힘들다. 질감 또한 비슷한 문 제로서 부정확한 바닥 영역을 검출해 낼 수 있다.

또 날씨가 흐리거나 빛이 들지 않는 곳에서는 해 당 물체들의 정확한 RGB 값을 가질 수 없으므로 바닥이 아닌 하늘에 해당하는 영역들을 검출할 수 있다. 따라서 더욱더 정확한 색상을 검출할 수 있 거나, 또 다른 속성값을 검출하도록 이를 개선시켜 더 정확한 바닥 영역을 검출하는 것이 필요하다.

ACKNOWLEDGMENTS

This research was supported by Basic Science Research Program through the National Research Foundation of Korea(NRF) funded by the Ministry of Education(No.

NRF-2015R1D1A1A01058809).

REFERENCES

[1] Cherian, A., Morellas, V., Papanikolopoulos, N., “Accurate 3D ground plane estimation from a single image”, IEEE International Conference on Robotics and Automation, pp.

2243-2249, 2009.

[2] Lin, C. H., Jiang, S. Y., Pu, Y. J., Song, K.

T., “Robust ground plane detection for

obstacle avoidance of mobile robots using a

monocular camera”, IEEE/RSJ International

Conference on Intelligent Robots and Systems,

(12)

pp. 3706-3711, 2010.

[3] Haines, O., Calway, A., “Detecting planes and estimating their orientation from a single image”, British Machine Vision Conference, pp. 1-11, 2012.

[4] Rahimi, A., Moradi, H., Zoroofi, R. A.,

“Single image ground plane estimation”, 20th IEEE International Conference on Image Processing, pp. 2149-2153. IEEE, 2013.

[5] Zhao, Y., Liu, J., Li, H., Li, G., “Improved watershed algorithm for dowels image segmentation”, 7th World Congress on Intelligent Control and Automation, pp.

7644-7648, 2008.

[6] Yen, S. H., Tai, A. C., Wang, C. J.,

“Segmentation on color images based on watershed algorithm”, 10th International Multimedia Modelling Conference, pp.

227-232, 2004.

[7] Belaid, L. J., Mourou, W., “Image segmentation: a watershed transformation algorithm”, Image Analysis & Stereology, Vol. 28, No. 2, pp. 93-102, 2011.

[8] Tian, X., Yu, W., "Color image segmentation based on watershed transform and feature clustering", IEEE Advanced Information Management, Communicates, Electronic and Automation Control Conference, pp.

1830-1833, 2016.

[9] Karvelis, P. S., Fotiadis, D. I., Georgiou, I., Syrrou, M., "A watershed based segmentation method for multispectral chromosome images classification", International Conference of the IEEE Engineering in Medicine and Biology Society, pp. 3009-3012, 2006.

[10] Sergyán, S., Csink, L., "Automatic parametrization of region finding algorithms in gray images", 4th International Symposium on Applied Computational Intelligence and Informatics, pp. 199-202, 2007.

[11] Yuan, L., Yu, Q., Shen, C., Hu, W., Yang, Z., "New watershed segmentation algorithm based on hybrid gradient and self-adaptive marker extraction", 2nd IEEE International

Conference on Computer and

Communications, pp. 624-628, 2016.

[12] Zhanpeng, H., Qi, Z., Shizhong, J., Guohua, C., "Medical Image Segmentation Based on the Watersheds and Regions Merging", 3rd International Conference on Information Science and Control Engineering, pp.

1011-1014, 2016.

[13] Emambakhsh, M., Sedaaghi, M. H.,

"Automatic MRI brain segmentation using local features, self-organizing maps, and watershed", IEEE International Conference on Signal and Image Processing Applications, pp. 123-128, 2009.

[14] Elyounsi, A., Tlijani, H., Bouhlel, M. S.,

"Combining top-hat, Thresholding and watershed transformation for 3D Inverse Synthetic Aperture Radar Images segmentation", International Conference on Information and Digital Technologies, pp.

466-471, 2017.

[15] Kim, B.S., Park, J.S., "Estimating Geometric Transformation of Planar Pattern in Spherical Panoramic Image", Journal of KIISE, Vol. 42, No. 10, 1185-1194, 2015.

[16] Lim, K.T., Won C., "Face Image Analysis using Adaboost Learning and Non-Square Differential LBP", Journal of Korea Multimedia Society, Vol. 19, No. 6, pp.

1014-1023, 2016.

[17] Nazari, A., Shouraki, S. B., "A constructive genetic algorithm for LBP in face recognition", 3rd International Conference on Pattern Recognition and Image Analysis, pp.

182-188, 2017.

(13)

김 종 윤(Kim, Jong-Yoon)

2012- 인천대학교 컴퓨터공학부 학사과정 관심분야 : 컴퓨터게임, 게임엔진, 영상분석

박 종 승(Park, Jong-Seung)

1992 경북대학교 전자계산학과(이학사) 1994 포항공과대학교 컴퓨터공학과(공학석사) 1999 포항공과대학교 컴퓨터공학과(공학박사) 2004- 인천대학교 컴퓨터공학부 교수

관심분야 : 게임제작, 게임프로그래밍, 증강현실

(14)

참조

관련 문서

- Spring is any natural occurrence where water flows on to the surface of the earth from below the surface (aquifer surface meets the ground surface)5. - Ground

Buds on persistent shoots near the ground – woody plants with perennating buds borne close to the ground, no more than 25 cm above the soil surface, (e.g. bilberry

Buds on persistent shoots near the ground – woody plants with perennating buds borne close to the ground, no more than 25 cm above the soil surface, (e.g. bilberry

The index is calculated with the latest 5-year auction data of 400 selected Classic, Modern, and Contemporary Chinese painting artists from major auction houses..

The “Asset Allocation” portfolio assumes the following weights: 25% in the S&amp;P 500, 10% in the Russell 2000, 15% in the MSCI EAFE, 5% in the MSCI EME, 25% in the

S., An Experimental Study on the Cooling and Heating Performance of a Residential Ground Source Heat Pump System, Korean Journal of Air-Conditioning

The labial surfaces of 24 extracted bovine incisors were used. For the ground enamel, flat enamel surfaces at labial aspect were ground. However, for

(1) Differences: Ground/ Height/ Elevation/ Terrain (p.7, Li et al, 2005) - Ground: the solid surface of the earth, a solid base or foundation, a.. surface of the earth, bottom