KR20180088801A - 화상 처리 장치 및 화상 처리 방법 - Google Patents

화상 처리 장치 및 화상 처리 방법 Download PDF

Info

Publication number
KR20180088801A
KR20180088801A KR1020187013125A KR20187013125A KR20180088801A KR 20180088801 A KR20180088801 A KR 20180088801A KR 1020187013125 A KR1020187013125 A KR 1020187013125A KR 20187013125 A KR20187013125 A KR 20187013125A KR 20180088801 A KR20180088801 A KR 20180088801A
Authority
KR
South Korea
Prior art keywords
point
thdepth
image data
color
dimensional
Prior art date
Application number
KR1020187013125A
Other languages
English (en)
Other versions
KR102646019B1 (ko
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 소니 주식회사
Publication of KR20180088801A publication Critical patent/KR20180088801A/ko
Application granted granted Critical
Publication of KR102646019B1 publication Critical patent/KR102646019B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/001
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/564Depth or shape recovery from multiple images from contours
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

본 개시는, 가상 시점의 고속 이동에 추종하여 고정밀도의 화상을 변경할 수 있도록 하는 화상 처리 장치 및 화상 처리 방법에 관한 것이다. 위치 보정부는, 소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 생성된, 복수의 점의 3차원 위치와 색 정보를 포함하는 3차원 데이터에 포함되는, 복수의 점 중 오클루전 영역의 경계의 점의 3차원 위치를 보정한다. 본 개시는, 예를 들어 소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 가상 시점의 컬러 화상 데이터를 생성하는 화상 처리 장치 등에 적용할 수 있다.

Description

화상 처리 장치 및 화상 처리 방법
본 개시는, 화상 처리 장치 및 화상 처리 방법에 관한 것이며, 특히 가상 시점의 고속 이동에 추종하여 고정밀도의 화상을 변경할 수 있도록 한 화상 처리 장치 및 화상 처리 방법에 관한 것이다.
소정의 시점의 촬영 화상으로부터 임의의 가상 시점의 화상을 생성하는 기술은 오래전부터 연구되고 있다. 이 기술에서는, 오클루전 영역(Occlusion area)에의 대책이 필요로 된다.
즉, 화상은, 3차원 공간을 2차원 공간에 사영한 것이기 때문에, 화상에서는, 배경의 물체가 전경의 물체에 의해 은폐된다. 따라서, 가상 시점이 촬영 시의 시점과 상이한 경우, 촬영 화상에서는 전경의 물체에 의해 은폐되었지만, 가상 시점의 화상에 있어서는 은폐되지 않는 배경의 물체의 영역인 오클루전 영역이 발생한다. 오클루전 영역의 화상은, 촬영 화상에는 존재하지 않기 때문에, 새롭게 생성할 필요가 있다.
오클루전 영역의 화상의 생성 방법으로서는, 예를 들어, 소정의 가상 시점에 있어서의 오클루전 영역의 화상을, 소정의 시점과는 상이한 시점의 촬영 화상을 사용하여 생성하는 방법이 있다(예를 들어, 특허문헌 1 참조).
일본 특허 공개 제2006-285415호 공보
그러나, 종래의 오클루전 영역의 화상의 생성 방법에서는, 가상 시점마다 오클루전 영역의 화상을 생성할 필요가 있기 때문에, 가상 시점의 결정 후에 오클루전 영역의 화상이 생성된다. 따라서, 예를 들어 헤드 마운트 디스플레이를 장착한 헤드의 움직임에 연동시켜, 헤드 마운트 디스플레이에 표시되는 화상에 대응하는 가상 시점을 고속 이동시키는 경우, 오클루전 영역의 화상이 제시간에 생성되지 않아, 변경 후의 가상 시점의 화상을 표시할 수 없는 경우가 있다.
본 개시는, 이와 같은 상황을 감안하여 이루어진 것이며, 가상 시점의 고속 이동에 추종하여 고정밀도의 화상을 변경할 수 있도록 하는 것이다.
본 개시의 일 측면의 화상 처리 장치는, 소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 생성된, 복수의 점의 3차원 위치와 색 정보를 포함하는 3차원 데이터에 포함되는, 상기 복수의 점 중 오클루전 영역의 경계의 점의 상기 3차원 위치를 보정하는 위치 보정부를 구비하는 화상 처리 장치이다.
본 개시의 일 측면의 화상 처리 방법은, 본 개시의 일 측면의 화상 처리 장치에 대응한다.
본 개시의 일 측면에 있어서는, 소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 생성된, 복수의 점의 3차원 위치와 색 정보를 포함하는 3차원 데이터에 포함되는, 상기 복수의 점 중 오클루전 영역의 경계의 점의 상기 3차원 위치가 보정된다.
또한, 본 개시의 일 측면의 화상 처리 장치는, 컴퓨터에 프로그램을 실행시킴으로써 실현할 수 있다.
또한, 본 개시의 일 측면의 화상 처리 장치를 실현하기 위해, 컴퓨터에 실행시키는 프로그램은, 전송 매체를 통해 전송함으로써, 또는, 기록 매체에 기록하여, 제공할 수 있다.
본 개시의 일 측면에 따르면, 화상을 처리할 수 있다. 또한, 본 개시의 일측면에 따르면, 가상 시점의 고속 이동에 추종하여 고정밀도의 화상을 변경할 수 있다.
또한, 여기에 기재된 효과는 반드시 한정되는 것은 아니고, 본 개시 중에 기재된 어느 효과여도 된다.
도 1은 본 개시를 적용한 화상 처리 장치의 일 실시 형태의 구성예를 도시하는 블록도이다.
도 2는 입력 화상 데이터의 예를 도시하는 도면이다.
도 3은 도 2의 배경, 부분 원, 직사각형 및 원통의 3차원 위치를 도시하는 도면이다.
도 4는 도 1의 화상 처리 장치의 컬러 화상 데이터 생성 처리를 설명하는 흐름도이다.
도 5는 도 4의 오클루전 대책 처리의 상세를 설명하는 흐름도이다.
도 6은 도 5의 초기 위치 산출 처리의 상세를 설명하는 흐름도이다.
도 7은 도 5의 패치 생성 처리의 상세를 설명하는 흐름도이다.
도 8은 접속 정보에 대응하는 삼각형 패치의 예를 도시하는 도면이다.
도 9는 도 5의 이동 산출 처리의 상세를 설명하는 흐름도이다.
도 10은 도 9의 이동 방향 결정 처리의 상세를 설명하는 흐름도이다.
도 11은 도 10의 이동 방향 결정 코어 처리의 상세를 설명하는 흐름도이다.
도 12는 이동 방향의 예를 도시하는 도면이다.
도 13은 뎁스에 대응하는 2차원 위치를 설명하는 도면이다.
도 14는 도 9의 이동 벡터 결정 처리의 상세를 설명하는 흐름도이다.
도 15는 도 14의 이동 벡터 결정 코어 처리의 상세를 설명하는 흐름도이다.
도 16은 도 15의 alpha 결정 처리를 설명하는 흐름도이다.
도 17은 도 15의 mvz 산출 처리의 상세를 설명하는 흐름도이다.
도 18은 도 5의 색 보정 처리의 상세를 설명하는 흐름도이다.
도 19는 도 18의 색 참조 위치 결정 코어 처리의 상세를 설명하는 흐름도이다.
도 20은 도 19의 beta 결정 처리의 상세를 설명하는 흐름도이다.
도 21은 도 18의 색 보정 코어 처리를 설명하는 흐름도이다.
도 22는 도 5의 위치 보정 처리의 흐름도를 설명하는 도면이다.
도 23은 도 22의 위치 보정 코어 처리의 상세를 설명하는 흐름도이다.
도 24는 위치 산출부에 의해 생성된 각 점의 3차원 위치 중, y 좌표가 y1인 점의 x 좌표와 z 좌표를 나타낸 그래프이다.
도 25는 도 24의 그래프에 있어서 접속 정보를 나타낸 그래프이다.
도 26은 색 정보 및 3차원 위치가 보정된 3차원 데이터 중, y 좌표가 y1인 점의 x 좌표 및 z 좌표 및 접속 정보를 나타낸 그래프이다.
도 27은 위치 산출부에 의해 생성된 각 점의 3차원 위치 중, x 좌표가 x1인 점의 y 좌표와 z 좌표를 나타낸 그래프이다.
도 28은 도 27의 그래프에 있어서 접속 정보를 나타낸 그래프이다.
도 29는 색 정보 및 3차원 위치가 보정된 3차원 데이터 중, x 좌표가 x1인 점의 y 좌표 및 z 좌표 및 접속 정보를 나타낸 그래프이다.
도 30은 이동 방향의 다른 예를 도시하는 도면이다.
도 31은 컴퓨터의 하드웨어의 구성예를 도시하는 블록도이다.
이하, 본 개시를 실시하기 위한 형태(이하, 실시 형태라 함)에 대하여 설명한다. 또한, 설명은 이하의 순서로 행한다.
1. 제1 실시 형태 : 화상 처리 장치(도 1 내지 도 30)
2. 제2 실시 형태 : 컴퓨터(도 31)
<제1 실시 형태>
(화상 처리 장치의 일 실시 형태의 구성예)
도 1은 본 개시를 적용한 화상 처리 장치의 일 실시 형태의 구성예를 도시하는 블록도이다.
도 1의 화상 처리 장치(10)는 3차원 데이터 생성부(11), 이동 벡터 산출부(12), 색 보정부(13), 위치 보정부(14) 및 컬러 화상 데이터 생성부(15)에 의해 구성된다. 화상 처리 장치(10)는 소정의 1시점의 각 화소의 색 정보를 포함하는 컬러 화상 데이터와, 각 화소의 피사체의 깊이 방향의 위치를 나타내는 뎁스를 포함하는 뎁스 화상 데이터로부터, 그 1시점과는 상이한 소정의 범위 내의 임의의 가상 시점의 컬러 화상 데이터를 생성한다.
구체적으로는, 화상 처리 장치(10)의 3차원 데이터 생성부(11)는 위치 산출부(31)와 패치 생성부(32)에 의해 구성된다. 3차원 데이터 생성부(11)는 컬러 화상 데이터와 뎁스 화상 데이터로부터, 복수의 점(Vertex)의 3차원 위치, 색 정보 및 접속 관계를 나타내는 접속 정보를 포함하는 3차원 데이터를 생성한다.
보다 상세하게는, 위치 산출부(31)에는, 도시하지 않은 카메라 등으로부터 소정의 1시점의 컬러 화상 데이터와 뎁스 화상 데이터가 입력 화상 데이터로서 입력된다. 위치 산출부(31)는 컬러 화상 데이터의 각 화소를 점으로 하고, 뎁스 화상 데이터에 기초하여 각 점의 3차원 위치를 생성한다. 위치 산출부(31)는 컬러 화상 데이터에 기초하여, 각 점의 3차원 위치와 색 정보를 대응지어, 패치 생성부(32)에 공급한다.
패치 생성부(32)는 위치 산출부(31)로부터 공급되는 각 점의 3차원 위치에 기초하여, 각 점을 정점으로 하여 1 이상의 삼각형 패치가 형성되도록, 접속 정보를 생성한다. 패치 생성부(32)는 각 점의 3차원 위치, 색 정보 및 접속 정보를 포함하는 3차원 데이터를 이동 벡터 산출부(12)에 공급한다.
이동 벡터 산출부(12)는 패치 생성부(32)로부터 공급되는 3차원 데이터에 기초하여, z 방향(깊이 방향)의 위치(뎁스)가 비연속으로 되는 오클루전 영역의 경계의 점을 검출한다. 이동 벡터 산출부(12)는 각 점의 3차원 위치에 기초하여, 오클루전 영역의 경계의 점의 화면 상의 2차원 위치의 이동 방향과 3차원 위치의 이동 벡터를 결정한다. 또한, 이동 벡터 산출부(12)는 오클루전 영역의 경계 이외의 점의 2차원 위치의 이동 방향과 3차원 위치의 이동 벡터를, 이동하지 않는 것을 나타내는 것으로 결정한다. 이동 벡터 산출부(12)는 각 점의 이동 방향 및 이동 벡터, 및 3차원 데이터를 색 보정부(13)에 공급한다.
색 보정부(13)는 이동 벡터 산출부(12)로부터 공급되는 이동 방향과 이동 벡터에 기초하여, 3차원 데이터에 포함되는 색 정보를 보정한다. 색 보정부(13)는 보정 후의 색 정보를 포함하는 3차원 데이터와 이동 벡터를 위치 보정부(14)에 공급한다.
위치 보정부(14)는 색 보정부(13)로부터 공급되는 이동 벡터에 기초하여, 3차원 데이터에 포함되는, 복수의 점 중 오클루전 영역의 경계의 점의 3차원 위치를 보정한다. 위치 보정부(14)는 보정 후의 3차원 데이터를 컬러 화상 데이터 생성부(15)에 공급한다.
컬러 화상 데이터 생성부(15)는 위치 보정부(14)로부터 공급되는 3차원 데이터에 기초하여, 유저의 조작 등에 의해 입력되는 가상 시점의 컬러 화상 데이터를 생성한다. 구체적으로는, 컬러 화상 데이터 생성부(15)는 3차원 데이터에 기초하여 3차원 공간에 배치되는 피사체를, 가상 시점으로부터 2차원 평면에 투영함으로써 가상 시점의 컬러 화상 데이터를 생성한다. 컬러 화상 데이터 생성부(15)는 가상 시점의 컬러 화상 데이터를 출력한다.
이상과 같이, 이동 벡터 산출부(12)는 가상 시점에 상관없이, 동일한 3차원 데이터를 사용하여 가상 시점의 컬러 화상 데이터를 생성한다. 따라서, 사전에 3차원 데이터를 생성해 둠으로써, 가상 시점의 고속 이동에 추종하여 가상 시점의 컬러 화상 데이터를 변경할 수 있다.
(입력 화상 데이터의 예)
도 2는 입력 화상 데이터의 예를 도시하는 도면이다.
도 2의 입력 화상 데이터는, 도 2의 A의 컬러 화상 데이터(51)와, 도 2의 B의 뎁스 화상 데이터(52)에 의해 구성된다. 도 2의 A에서는, 컬러 화상 데이터의 색 정보가 모양으로 표시되어 있다. 도 2의 A에 도시한 바와 같이, 컬러 화상 데이터에는, 배경(70), 일부가 결여된 원인 부분 원(71) 및 부분 원(72), 직사각형(73), 및 원통(74) 및 원통(75)이 포함되어 있다.
또한, 도 2의 B의 예에서는, 뎁스 화상 데이터의 화소값은, 멀수록 크게 되어 있다. 도 2의 B의 예에서는, 배경(70)이 가장 희고(밝고), 부분 원(71), 부분 원(72)과 직사각형(73), 원통(74), 원통(75)의 순으로 서서히 검게(어둡게) 되어 있고, 이 순서로, 깊이 방향의 위치가 멀다.
(3차원 위치의 예)
도 3은 도 2의 배경(70), 부분 원(71), 부분 원(72), 직사각형(73), 원통(74) 및 원통(75)의 3차원 위치를 도시하는 도면이다.
도 3에 도시한 바와 같이, 배경(70), 부분 원(71), 부분 원(72), 직사각형(73), 원통(74) 및 원통(75)의 3차원 위치의 x 좌표 및 y 좌표는, 컬러 화상 데이터(51)의 화면 상의 수평 방향 및 수직 방향의 위치 좌표에 대응한다. 또한, 배경(70), 부분 원(71), 부분 원(72), 직사각형(73), 원통(74) 및 원통(75)의 3차원 위치의 z 좌표는, 뎁스 화상 데이터(52)의 화소값에 대응한다.
원통(75)과 부분 원(72)이 겹치는 영역, 원통(74)과 부분 원(72)이 겹치는 영역, 원통(74)과 부분 원(71)이 겹치는 영역, 및, 배경(70)과, 부분 원(71), 부분 원(72), 직사각형(73), 원통(74) 및 원통(75)이 겹치는 영역은, 입력 화상 데이터의 시점으로부터는 은폐되어 보이지 않지만, 가상 시점에 있어서는 은폐되지 않는 오클루전 영역이다.
오클루전 영역은, 입력 화상 데이터의 시점으로부터 보이지 않는 영역이기 때문에, 입력 화상 데이터에는, 오클루전 영역의 컬러 화상 데이터는 존재하지 않는다. 따라서, 화상 처리 장치(10)는 입력 화상 데이터로부터 3차원 데이터를 생성하고, 그 3차원 데이터 중의 오클루전 영역의 경계의 점의 3차원 위치를 이동시킴으로써, 오클루전 영역의 컬러 화상 데이터를 고정밀도로 생성 가능하게 한다.
(화상 처리 장치의 처리의 설명)
도 4는 도 1의 화상 처리 장치(10)의 컬러 화상 데이터 생성 처리를 설명하는 흐름도이다. 이 컬러 화상 데이터 생성 처리는, 예를 들어 입력 화상 데이터가 화상 처리 장치(10)에 입력되었을 때 개시된다. 또한, 컬러 화상 데이터 생성 처리에 있어서의 변수는 전체 처리에서 공통의 변수이며, 각 처리에 있어서 참조 및 갱신이 가능하다.
도 4의 스텝 S11에 있어서, 화상 처리 장치(10)는 오클루전 영역의 컬러 화상 데이터를 고정밀도로 생성 가능하게 하는 오클루전 대책 처리를 행한다. 이 오클루전 대책 처리의 상세는, 후술하는 도 5를 참조하여 설명한다.
스텝 S12에 있어서, 화상 처리 장치(10)의 컬러 화상 데이터 생성부(15)는 유저의 조작 등에 의해 입력되는 가상 시점이 변경되었는지 여부를 판정한다. 스텝 S12에서 가상 시점이 변경되었다고 판정된 경우, 스텝 S13에 있어서, 컬러 화상 데이터 생성부(15)는 위치 보정부(14)로부터 공급되는 3차원 데이터에 기초하여, 가상 시점의 컬러 화상 데이터를 생성하여, 출력한다. 그리고, 처리는 스텝 S14로 진행한다.
한편, 스텝 S12에서 가상 시점이 변경되지 않았다고 판정된 경우, 처리는 스텝 S14로 진행한다.
스텝 S14에 있어서, 화상 처리 장치(10)는 컬러 화상 데이터 생성 처리를 종료하였는지 여부를 판정한다. 스텝 S14에서 컬러 화상 데이터 생성 처리를 종료하지 않았다고 판정된 경우, 처리는 스텝 S12로 되돌아가, 컬러 화상 데이터 생성 처리를 종료할 때까지, 스텝 S12 내지 S14의 처리가 반복된다.
한편, 스텝 S14에서 컬러 화상 데이터 생성 처리를 종료하였다고 판정된 경우, 처리는 종료된다.
도 5는 도 4의 스텝 S11의 오클루전 대책 처리의 상세를 설명하는 흐름도이다.
도 5의 스텝 S31에 있어서, 3차원 데이터 생성부(11)의 위치 산출부(31)는 각 점의 3차원 위치와 색 정보를 대응짓는 초기 위치 산출 처리를 행한다. 이 초기 위치 산출 처리의 상세는, 후술하는 도 6을 참조하여 설명한다.
스텝 S32에 있어서, 패치 생성부(32)는 각 점의 접속 정보를 생성하는 패치 생성 처리를 행한다. 이 패치 생성 처리의 상세는, 후술하는 도 7을 참조하여 설명한다.
스텝 S33에 있어서, 이동 벡터 산출부(12)는 각 점의 이동 방향과 이동 벡터를 산출하는 이동 산출 처리를 행한다. 이 이동 산출 처리의 상세는, 후술하는 도 9를 참조하여 설명한다.
스텝 S34에 있어서, 색 보정부(13)는 각 점의 색 정보를 보정하는 색 보정 처리를 행한다. 이 색 보정 처리의 상세는, 후술하는 도 18을 참조하여 설명한다.
스텝 S35에 있어서, 위치 보정부(14)는 이동 벡터에 기초하여 오클루전 영역의 경계의 점의 3차원 위치를 보정하는 위치 보정 처리를 행한다. 이 위치 보정 처리의 상세는, 후술하는 도 22를 참조하여 설명한다. 스텝 S35의 처리 후, 처리는 도 4의 스텝 S11로 되돌아가, 스텝 S12로 진행한다.
도 6은 도 5의 스텝 S31의 초기 위치 산출 처리의 상세를 설명하는 흐름도이다.
도 6의 스텝 S51에 있어서, 위치 산출부(31)는 처리 대상의 점(이하, 대상점이라 함)으로 하는 화소가 좌측으로부터 몇 번째의 화소인지를 나타내는 x를 0으로 설정하고, 하방으로부터 몇 번째의 화소인지를 나타내는 y를 0으로 설정한다.
스텝 S52에 있어서, 위치 산출부(31)는, y가, 입력 화상 데이터 중의 컬러 화상 데이터의 수직 방향의 화소수 height보다 작은지 여부를 판정한다. 스텝 S52에서 y가 화소수 height보다 작다고 판정된 경우, 처리는 스텝 S53으로 진행한다.
스텝 S53에 있어서, 위치 산출부(31)는, x가, 입력 화상 데이터 중의 컬러 화상 데이터의 수평 방향 화소수 width보다 작은지 여부를 판정한다. 스텝 S53에서 x가 화소수 width보다 작다고 판정된 경우, 처리는 스텝 S54로 진행한다.
스텝 S54에 있어서, 위치 산출부(31)는 입력 화상 데이터 중의 컬러 화상 데이터로부터, 좌측으로부터 x번째이며, 하방으로부터 y번째인 화소의 화면 상의 위치 (x, y)의 색 정보를 취득한다.
스텝 S55에 있어서, 위치 산출부(31)는 입력 화상 데이터 중의 뎁스 화상 데이터로부터, 위치 (x, y)의 뎁스 z를 취득한다.
스텝 S56에 있어서, 위치 산출부(31)는 3차원 위치 (x, y, z)에 위치 (x, y)의 색 정보를 대응지어, 패치 생성부(32)에 공급한다.
스텝 S57에 있어서, 위치 산출부(31)는 x를 1만큼 인크리먼트한다. 그리고, 처리는 스텝 S53으로 되돌아가, x가 화소수 width로 될 때까지, 스텝 S53 내지 S57의 처리가 반복된다.
한편, 스텝 S53에서, x가 화소수 width 이상이라고 판정된 경우, 즉 하방으로부터 y번째의 행의 모든 화소가 대상점으로 된 경우, 처리는 스텝 S58로 진행한다.
스텝 S58에 있어서, 위치 산출부(31)는 x를 0으로 설정하고, y를 1만큼 인크리먼트한다. 그리고, 처리는 스텝 S52로 되돌아가, y가 화소수 height로 될 때까지, 스텝 S52 내지 S58의 처리가 반복된다.
한편, 스텝 S52에서 y가 화소수 height 이상이라고 판정된 경우, 즉 모든 화소가 대상점으로 된 경우, 처리는 도 5의 스텝 S31로 되돌아가, 스텝 S32로 진행한다.
도 7은 도 5의 스텝 S32의 패치 생성 처리의 상세를 설명하는 흐름도이다.
도 7의 스텝 S71 내지 S73, S75 및 S76의 처리는, 위치 산출부(31)가 아니라 패치 생성부(32)에 의해 행해지는 것을 제외하고, 도 6의 스텝 S51 내지 S53, S57 및 S58의 처리와 마찬가지이므로, 설명은 적절히 생략한다.
스텝 S73에서 x가 화소수 width보다 작다고 판정된 경우, 처리는 스텝 S74로 진행한다.
스텝 S74에 있어서, 패치 생성부(32)는 위치 산출부(31)로부터 공급되는 대상점의 3차원 위치 (x, y, z)에 기초하여, 대상점을 정점으로 하는 삼각형 패치가 형성되도록, 대상점의 접속 정보를 생성한다. 그리고, 처리는 스텝 S75로 진행한다.
또한, 스텝 S72에서 y가 화소수 height 이상이라고 판정된 경우, 즉 모든 화소가 대상점으로 된 경우, 패치 생성부(32)는 각 점의 3차원 위치 (x, y, z), 색 정보 및 접속 정보를 포함하는 3차원 데이터를 이동 벡터 산출부(12)에 공급한다. 그리고, 처리는 도 5의 스텝 S32로 되돌아가, 스텝 S33으로 진행한다.
(삼각형 패치의 예)
도 8은 도 1의 패치 생성부(32)에 의해 생성되는 접속 정보에 대응하는 삼각형 패치의 예를 도시하는 도면이다.
도 8의 횡축은, 각 점(91)의 3차원 위치 (x, y, z)의 x 좌표를 나타내고, 종축은 y 좌표를 나타낸다. 또한, 도 8에서는, 3차원 데이터에 대응하는 점(91) 중, 7×7개의 점(91)만을 기재하고 있다.
도 8에 도시한 바와 같이, 패치 생성부(32)는, 예를 들어 근방의 3개의 점(91)을 정점으로 하는 삼각형 패치(92)가 형성되도록, 각 점(91)의 접속 정보를 생성한다. 구체적으로는, 패치 생성부(32)는 각 2×2개의 점(91) 중 우측 하방의 점(91)을 제외한 3개의 점(91)이 서로 접속하고, 좌측 상방의 점(91)을 제외한 3개의 점(91)이 서로 접속하도록, 각 점(91)의 접속 정보를 생성한다.
도 9는 도 5의 스텝 S33의 이동 산출 처리의 상세를 설명하는 흐름도이다.
도 9의 스텝 S91에 있어서, 이동 벡터 산출부(12)는 모든 점(91)의 이동 방향을 결정하는 이동 방향 결정 처리를 행한다. 이 이동 방향 결정 처리의 상세는, 후술하는 도 10을 참조하여 설명한다.
스텝 S92에 있어서, 이동 벡터 산출부(12)는 모든 점(91)의 이동 벡터를 결정하는 이동 벡터 결정 처리를 행한다. 이 이동 벡터 결정 처리의 상세는, 후술하는 도 14를 참조하여 설명한다.
도 10은 도 9의 스텝 S91의 이동 방향 결정 처리의 상세를 설명하는 흐름도이다.
도 10의 스텝 S111 내지 S113, S115 및 S116의 처리는, 위치 산출부(31)가 아니라 이동 벡터 산출부(12)에 의해 행해지는 것을 제외하고, 도 6의 스텝 S51 내지 S53, S57 및 S58의 처리와 마찬가지이므로, 설명은 적절히 생략한다.
스텝 S113에서 x가 화소수 width보다 작다고 판정된 경우, 처리는 스텝 S114로 진행한다.
스텝 S114에 있어서, 이동 벡터 산출부(12)는 대상점의 이동 방향을 결정하는 이동 방향 결정 코어 처리를 행한다. 이 이동 방향 결정 코어 처리의 상세는, 후술하는 도 11을 참조하여 설명한다. 스텝 S114의 처리 후, 처리는 스텝 S115로 진행한다.
또한, 스텝 S112에서 y가 화소수 height 이상이라고 판정된 경우, 즉 모든 화소가 대상점으로 된 경우, 이동 벡터 산출부(12)는 모든 점(91)의 이동 방향을 색 보정부(13)에 공급한다. 그리고, 처리는, 도 9의 스텝 S91로 되돌아가, 스텝 S92로 진행한다.
도 11은 도 10의 스텝 S114의 이동 방향 결정 코어 처리의 상세를 설명하는 흐름도이다.
도 11의 스텝 S131에 있어서, 이동 벡터 산출부(12)는 대상점의 화면 상의 2차원 위치의 이동 방향 dir을, 이동하지 않는 것을 나타내는 NONE로 설정한다. 이동 방향 dir로서는, 도 12에 도시한 바와 같이, NONE 이외에, 상측 방향을 나타내는 UU, 우측 방향을 나타내는 RR, 하측 방향을 나타내는 DD, 좌측 방향을 나타내는 LL을 설정할 수 있다.
스텝 S132에 있어서, 이동 벡터 산출부(12)는 대상점의 근방의 점(91)의 뎁스 z_LL, z_DL, z_UU, z_DD, z_UR, z_RR을 취득한다. 뎁스 z_LL, z_DL, z_UU, z_DD, z_UR, z_RR은, 각각, 대상점의 좌측, 좌측 하방, 상측, 하측, 우측 상방, 우측의 점(91)의 뎁스이다. 구체적으로는, 도 13에 도시한 바와 같이, 대상점의 화면 상의 2차원 위치를 (x, y)라 하면, 뎁스 z_LL, z_DL, z_UU, z_DD, z_UR, z_RR은, 각각, 위치 (x-1, y), (x-1, y-1), (x, y+1), (x, y-1), (x+1, y+1), (x+1, y)의 점(91)의 뎁스이다. 또한, 도 13에 있어서, 정사각형은 각 점(91)에 대응하는 화소를 나타내고 있다.
스텝 S133에 있어서, 이동 벡터 산출부(12)는 대상점의 뎁스 z와 뎁스 z_LL, z_DL, z_UU, z_DD, z_UR, z_RR 각각의 차분 diffLL, diffDL, diffUU, diffDD, diffUR, diffRR을 구한다.
스텝 S134에 있어서, 이동 벡터 산출부(12)는 조건식 dir_UU를 만족시키는지 여부를 판정한다. 조건식 dir_UU는,
(diffLL> ThDepth && diffUU > ThDepth && diffUR > ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL <= ThDepth) ||
(diffLL <= ThDepth && diffUU > ThDepth && diffUR > ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL <= ThDepth) ||
(diffLL <= ThDepth && diffUU > ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL <= ThDepth) ||
(diffLL > ThDepth && diffUU > ThDepth && diffUR > ThDepth && diffRR > ThDepth && diffDD <= ThDepth && diffDL <= ThDepth)
이다.
즉, 차분 diff_UU와 diff_UR이 역치 ThDepth보다 크고, 차분 diff_RR, diff_DD 및 diff_DL이 역치 ThDepth 이하인 경우, 차분 diff_UU만이 역치 ThDepth보다 큰 경우, 또는, 차분 diff_DD와 diff_DL만이 역치 ThDepth 이하인 경우, 이동 벡터 산출부(12)는 조건식 dir_UU를 만족시킨다고 판정한다.
스텝 S134에서 조건식 dir_UU를 만족시킨다고 판정된 경우, 이동 벡터 산출부(12)는 대상점을 오클루전 영역의 경계의 점(91)으로서 검출하고, 처리를 스텝 S135로 진행시킨다. 스텝 S135에 있어서, 이동 벡터 산출부(12)는 이동 방향 dir을, 상측 방향을 나타내는 UU로 설정한다. 그리고, 처리는 스텝 S142로 진행한다.
한편, 스텝 S134에서 조건식 dir_UU를 만족시키지 않는다고 판정된 경우, 스텝 S136에 있어서, 조건식 dir_RR을 만족시키는지 여부를 판정한다. 조건식 dir_RR은,
(diffLL <= ThDepth && diffUU > ThDepth && diffUR > ThDepth && diffRR > ThDepth && diffDD <= ThDepth && diffDL <= ThDepth) ||
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR > ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL <= ThDepth) ||
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR > ThDepth && diffRR > ThDepth && diffDD <= ThDepth && diffDL <= ThDepth) ||
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR > ThDepth && diffDD <= ThDepth && diffDL <= ThDepth) ||
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR > ThDepth && diffRR > ThDepth && diffDD > ThDepth && diffDL <= ThDepth) ||
(diffLL <= ThDepth && diffUU > ThDepth && diffUR > ThDepth && diffRR > ThDepth && diffDD > ThDepth && diffDL <= ThDepth) ||
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR > ThDepth && diffRR > ThDepth && diffDD > ThDepth && diffDL > ThDepth) ||
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR > ThDepth && diffDD > ThDepth && diffDL <= ThDepth)
이다.
즉, 차분 diff_UR과 diff_RR이 역치 ThDepth보다 크고, 차분 diff_LL과 diff_DL이 역치 ThDepth 이하이고, 차분 diff_UU와 diff_DD 중 적어도 한쪽이 역치 ThDepth보다 큰 경우, 차분 diff_LL, diff_UU, diff_DD 및 dif_DL이 역치 ThDepth 이하이고, 차분 diff_UR과 diff_RR 중 적어도 한쪽이 역치 ThDepth보다 큰 경우, 차분 diff_RR과 차분 diff_DD가 역치 ThDepth보다 크고, 차분 diff_LL과 diff_UU가 역치 ThDepth 이하이고, 차분 diff_UR과 차분 diff_DL이 양쪽 모두 역치 ThDepth보다 크거나, 또는, 역치 ThDepth 이하인 경우, 이동 벡터 산출부(12)는 조건식 dir_RR을 만족시킨다고 판정한다.
스텝 S136에서 조건식 dir_RR을 만족시킨다고 판정된 경우, 이동 벡터 산출부(12)는 대상점을 오클루전 영역의 경계의 점(91)으로서 검출하고, 처리를 스텝 S137로 진행시킨다. 스텝 S137에 있어서, 이동 벡터 산출부(12)는 이동 방향 dir을 우측 방향을 나타내는 RR로 설정한다. 그리고, 처리는 스텝 S142로 진행한다.
한편, 스텝 S136에서 조건식 dir_RR을 만족시키지 않는다고 판정된 경우, 스텝 S138에 있어서, 이동 벡터 산출부(12)는 조건식 dir_DD를 만족시키는지 여부를 판정한다. 조건식 dir_DD는,
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR > ThDepth && diffDD > ThDepth && diffDL > ThDepth) ||
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD > ThDepth && diffDL <= ThDepth) ||
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD > ThDepth && diffDL > ThDepth) ||
(diffLL > ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR > ThDepth && diffDD > ThDepth && diffDL > ThDepth)
이다.
즉, 차분 diff_DD와 diff_DL이 역치 ThDepth보다 크고, 차분 diff_LL, diff_UU 및 diff_UR이 역치 ThDepth 이하인 경우, 차분 diff_DD만이 역치 ThDepth보다 큰 경우, 또는, 차분 diff_UU와 diff_UR만이 역치 ThDepth 이하인 경우, 이동 벡터 산출부(12)는 조건식 dir_DD를 만족시킨다고 판정한다.
스텝 S138에서 조건식 dir_DD를 만족시킨다고 판정된 경우, 이동 벡터 산출부(12)는 대상점을 오클루전 영역의 경계의 점(91)으로서 검출하고, 처리를 스텝 S139로 진행시킨다. 스텝 S139에 있어서, 이동 벡터 산출부(12)는 이동 방향 dir을, 하측 방향을 나타내는 DD로 설정한다. 그리고, 처리는 스텝 S142로 진행한다.
한편, 스텝 S138에서 조건식 dir_DD를 만족시키지 않는다고 판정된 경우, 스텝 S140에 있어서, 조건식 dir_LL을 만족시키는지 여부를 판정한다. 조건식 dir_LL은,
(diffLL > ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD > ThDepth && diffDL > ThDepth) ||
(diffLL <= ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL > ThDepth) ||
(diffLL > ThDepth && diffUU > ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL > ThDepth) ||
(diffLL > ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL <= ThDepth) ||
(diffLL > ThDepth && diffUU <= ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL > ThDepth) ||
(diffLL > ThDepth && diffUU > ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD > ThDepth && diffDL > ThDepth) ||
(diffLL > ThDepth && diffUU > ThDepth && diffUR > ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL > ThDepth) ||
(diffLL > ThDepth && diffUU > ThDepth && diffUR <= ThDepth && diffRR <= ThDepth && diffDD <= ThDepth && diffDL <= ThDepth)
이다.
즉, 차분 diff_LL과 diff_DL이 역치 ThDepth보다 크고, 차분 diff_UR과 diff_RR이 역치 ThDepth 이하이고, 차분 diff_UU와 diff_DD 중 적어도 한쪽이 역치 ThDepth보다 큰 경우, 차분 diff_UU, diff_UR, diff_RR 및 dif_DD가 역치 ThDepth 이하이고, 차분 diff_LL과 diff_DL 중 적어도 한쪽이 역치 ThDepth보다 큰 경우, 차분 diff_LL과 차분 diff_UU가 역치 ThDepth보다 크고, 차분 diff_RR과 diff_DD가 역치 ThDepth 이하이고, 차분 diff_UR과 차분 diff_DL이 양쪽 모두 역치 ThDepth보다 크거나, 또는, 역치 ThDepth 이하인 경우, 이동 벡터 산출부(12)는 조건식 dir_LL을 만족시킨다고 판정한다.
스텝 S140에서 조건식 dir_LL을 만족시킨다고 판정된 경우, 이동 벡터 산출부(12)는 대상점을 오클루전 영역의 경계의 점(91)으로서 검출하고, 처리를 스텝 S141로 진행시킨다. 스텝 S141에 있어서, 이동 벡터 산출부(12)는 이동 방향 dir을 좌측 방향을 나타내는 LL로 설정한다. 그리고, 처리는 스텝 S142로 진행한다.
스텝 S142에 있어서, 이동 벡터 산출부(12)는 대상점의 이동 방향 dir을 보존한다. 그리고, 처리는, 도 10의 스텝 S114로 되돌아가, 스텝 S115로 진행한다.
이상과 같이, 이동 벡터 산출부(12)는 대상점이, 조건식 dir_UU, dir_RR, dir_DD 또는 dir_LL을 만족시키는 경우, 대상점을 오클루전 영역의 경계의 점(91)으로서 검출하고, 대상점의 이동 방향 dir을 NONE 이외로 설정한다.
도 14는 도 9의 스텝 S92의 이동 벡터 결정 처리의 상세를 설명하는 흐름도이다.
도 14의 스텝 S151 내지 S153, S155 및 S156의 처리는, 위치 산출부(31)가 아니라 이동 벡터 산출부(12)에 의해 행해지는 것을 제외하고, 도 6의 스텝 S51 내지 S53, S57 및 S58의 처리와 마찬가지이므로, 설명은 적절히 생략한다.
스텝 S153에서 x가 화소수 width보다 작다고 판정된 경우, 처리는 스텝 S154로 진행한다.
스텝 S154에 있어서, 이동 벡터 산출부(12)는 대상점의 이동 벡터를 결정하는 이동 벡터 결정 코어 처리를 행한다. 이 이동 벡터 결정 코어 처리의 상세는, 후술하는 도 15를 참조하여 설명한다. 스텝 S154의 처리 후, 처리는 스텝 S155로 진행한다.
또한, 스텝 S152에서 y가 화소수 height 이상이라고 판정된 경우, 즉 모든 화소가 대상점으로 된 경우, 이동 벡터 산출부(12)는 모든 점(91)의 이동 벡터와 3차원 데이터를 색 보정부(13)에 공급한다. 그리고, 처리는, 도 9의 스텝 S92로 되돌아가고, 도 5의 스텝 S33으로 되돌아가, 스텝 S34로 진행한다.
도 15는 도 14의 스텝 S154의 이동 벡터 결정 코어 처리의 상세를 설명하는 흐름도이다.
도 15의 스텝 S171에 있어서, 이동 벡터 산출부(12)는 대상점의 이동 방향 dir이 NONE인지 여부를 판정한다. 스텝 S171에서 대상점의 이동 방향이 NONE가 아니라고 판정된 경우, 스텝 S172에 있어서, 이동 벡터 산출부(12)는 depth_cur을, 대상점의 뎁스 z로 설정한다.
스텝 S173에 있어서, 이동 벡터 산출부(12)는 이동 방향 dir이 나타내는 방향의 x 좌표의 정부를 나타내는 alphaX와 y 좌표의 정부를 나타내는 alphaY를 결정하는 alpha 결정 처리를 행한다. 이 alpha 결정 처리의 상세는, 후술하는 도 16을 참조하여 설명한다.
스텝 S174에 있어서, 이동 벡터 산출부(12)는 대상점의 이동량을 화소수로 나타내는 move를 1로 설정한다. 또한, 이동 벡터 산출부(12)는 behind_flag를 0으로 설정한다.
behind_flag는, 화면 상의 2차원 위치가, 후술하는 스텝 S176에서 구해지는 위치 (tar_x, tar_y)인 점(91)의 깊이 방향의 위치보다 대상점이 안쪽으로 되었는지 여부를 나타내는 플래그이다. behind_flag는, 화면 상의 2차원 위치가 위치 (tar_x, tar_y)인 점(91)의 깊이 방향의 위치보다 대상점이 안쪽으로 된 것을 나타내는 경우 1이며, 안쪽으로 되지 않은 것을 나타내는 경우 0이다.
스텝 S175에 있어서, 이동 벡터 산출부(12)는 move가 최대 이동량보다 작은지 여부를 판정한다. 최대 이동량은, 가상 시점이 취할 수 있는 범위에 따라서 결정된다. 스텝 S175에서 move가 최대 이동량보다 작다고 판정된 경우, 처리는 스텝 S176으로 진행한다.
스텝 S176에 있어서, 이동 벡터 산출부(12)는 대상점의 x 좌표와 move의 alphaX배를 가산하여 tar_x를 구한다. 또한, 이동 벡터 산출부(12)는 대상점의 y 좌표와 move의 alphaY배를 가산하여 tar_y를 구한다.
스텝 S177에 있어서, 이동 벡터 산출부(12)는 화면 상의 2차원 위치가 위치 (tar_x, tar_y)인 점(91)의 뎁스 tar_z를 depth_tar로 설정한다. 스텝 S178에 있어서, 이동 벡터 산출부(12)는 depth_tar이, depth_cur로부터 이동 역치를 감산한 값보다 작은지 여부를 판정한다. 이동 역치는, 뎁스의 오차를 고려하여 설정된다.
스텝 S178에서, depth_tar이, depth_cur로부터 이동 역치를 감산한 값 이상이라고 판정된 경우, 이동 벡터 산출부(12)는, 대상점이, 위치 (tar_x, tar_y)의 점(91)보다 앞쪽에 있다고 판단하고, 처리를 스텝 S180으로 진행시킨다.
한편, 스텝 S178에서, depth_tar이, depth_cur로부터 이동 역치를 감산한 값보다 작다고 판정된 경우, 이동 벡터 산출부(12)는, 대상점이, 위치 (tar_x, tar_y)의 점(91)보다 안쪽에 있다고 판단하고, 처리를 스텝 S179로 진행시킨다.
스텝 S179에 있어서, 이동 벡터 산출부(12)는 behind_flag를 1로 설정하고, 처리를 스텝 S180으로 진행시킨다.
스텝 S180에 있어서, behind_flag가 1이며, 또한, depth_tar이 depth_cur보다 큰지 여부를 판정한다.
스텝 S180에서, behind_flag가 1이며, 또한, depth_tar이 depth_cur보다 큰 경우, 즉, 위치 (tar_x, tar_y)의 점(91)이 대상점보다 앞쪽에 있는 상태로부터 안쪽에 있는 상태로 변화된 경우, 처리는 스텝 S183으로 진행한다.
한편, 스텝 S180에서, behind_flag가 1이 아니거나, 또는, depth_tar이 depth_cur 이하인 경우, 즉, 위치 (tar_x, tar_y)의 점(91)이 모두 대상점보다 안쪽에 있거나, 또는, 위치 (tar_x, tar_y)의 점(91)이 대상점보다 앞쪽에 있는 상태로부터 안쪽에 있는 상태로 변화되지 않은 경우, 처리는 스텝 S181로 진행한다.
스텝 S181에 있어서, 이동 벡터 산출부(12)는 move를 1만큼 인크리먼트하고, 처리를 스텝 S175로 되돌려, 이후의 처리를 반복한다.
또한, 스텝 S175에서, move가 최대 이동량 이상이라고 판정된 경우, 처리는 스텝 S182로 진행한다. 스텝 S182에 있어서, 이동 벡터 산출부(12)는 behind_flag가 1인지 여부를 판정한다.
스텝 S182에서 behind_flag가 1이라고 판정된 경우, 즉, 위치 (tar_x, tar_y)의 점(91)이 대상점보다 앞쪽에 있는 상태로부터 안쪽에 있는 상태로 변화되지 않은 경우, 처리는 스텝 S183으로 진행한다.
스텝 S183에 있어서, 이동 벡터 산출부(12)는 대상점의 이동 벡터의 x 성분 mvx를, alphaX의 (move-1)배로 결정하고, y 성분 mvy를, alphaY의 (move-1)배로 결정한다.
즉, 위치 (tar_x, tar_y)의 점(91)이 대상점보다 앞쪽에 있는 상태로부터 안쪽에 있는 상태로 변화된 경우, 또는, 위치 (tar_x, tar_y)의 점(91)이 대상점보다 앞쪽에 있는 상태로부터 안쪽에 있는 상태로 변화되지 않고, move가 최대 이동량으로 된 경우, 이동 벡터 산출부(12)는 직전의 move, 즉 현재의 move로부터 1을 감산한 값을 최종적인 move로 하고, x 성분 mvx와 y 성분 mvy를 결정한다.
스텝 S184에 있어서, 이동 벡터 산출부(12)는 대상점의 이동 벡터의 z 성분 mvz를 산출하는 mvz 산출 처리를 행한다. 이 mvz 산출 처리의 상세는, 후술하는 도 17을 참조하여 설명한다. 스텝 S184의 처리 후, 처리는 스텝 S186으로 진행한다.
한편, 스텝 S171에서 이동 방향 dir이 NONE라고 판정된 경우, 즉, 대상점이 오클루전 영역의 경계의 점이 아닌 경우, 처리는 스텝 S185로 진행한다. 또한, 스텝 S182에서 behind_flag가 1이 아니라고 판정된 경우, 즉, move가 0으로부터 최대 이동량으로 될 때까지의 동안에 한 번도 위치 (tar_x, tar_y)의 점(91)이 대상점보다 앞쪽으로 되지 않는 경우, 처리는 스텝 S185로 진행한다.
스텝 S185에 있어서, 이동 벡터 산출부(12)는 x 성분 mvx, y 성분 mvy 및 z 성분 mvz를 0으로 설정하고, 스텝 S186으로 진행시킨다.
스텝 S186에 있어서, 이동 벡터 산출부(12)는 이동 벡터 (mvx, mvy, mvz)를 보존하고, 처리를 도 14의 스텝 S154로 되돌려, 처리를 스텝 S155로 진행시킨다.
이상과 같이, 이동 벡터 산출부(12)는 대상점이 오클루전 영역의 경계의 점(91)이며, 또한, 대상점으로부터 이동 방향 dir이 나타내는 방향으로, 대상점보다 앞쪽에 있는 대상점의 근방의 점(91)이 존재하는 경우, 그 점(91)(참조점)의 2차원 위치로 대상점의 2차원 위치를 이동시키는 x 성분 mvx와 y 성분 mvy를 결정한다.
도 16은 도 15의 스텝 S173의 alpha 결정 처리를 설명하는 흐름도이다.
도 16의 스텝 S201에 있어서, 이동 벡터 산출부(12)는 alphaX와 alphaY를 0으로 설정한다.
스텝 S202에 있어서, 이동 벡터 산출부(12)는 이동 방향 dir이 LL인지 여부를 판정한다. 스텝 S202에서 이동 방향 dir이 LL이라고 판정된 경우, 스텝 S203에 있어서, 이동 벡터 산출부(12)는 alphaX를 -1로 설정한다. 그리고, 처리는 도 15의 스텝 S173으로 되돌아가, 스텝 S174로 진행한다.
한편, 스텝 S202에서 이동 방향 dir이 LL이 아니라고 판정된 경우, 스텝 S204에 있어서, 이동 벡터 산출부(12)는 이동 방향 dir이 RR인지 여부를 판정한다. 스텝 S204에서 이동 방향 dir이 RR이라고 판정된 경우, 스텝 S205에 있어서, 이동 벡터 산출부(12)는 alphaX를 1로 설정한다. 그리고, 처리는 도 15의 스텝 S173으로 되돌아가, 스텝 S174로 진행한다.
또한, 스텝 S204에서 이동 방향 dir이 RR이 아니라고 판정된 경우, 스텝 S206에 있어서, 이동 벡터 산출부(12)는 이동 방향 dir이 UU인지 여부를 판정한다. 스텝 S206에서 이동 방향 dir이 UU라고 판정된 경우, 스텝 S207에 있어서, 이동 벡터 산출부(12)는 alphaY를 1로 설정한다. 그리고, 처리는 도 15의 스텝 S173으로 되돌아가, 스텝 S174로 진행한다.
한편, 스텝 S206에서 이동 방향 dir이 UU가 아니라고 판정된 경우, 즉, 이동 방향 dir이 DD인 경우, 스텝 S208에 있어서, 이동 벡터 산출부(12)는 alphaY를 -1로 설정한다. 그리고, 처리는 도 15의 스텝 S173으로 되돌아가, 스텝 S174로 진행한다.
도 17은 도 15의 스텝 S184의 mvz 산출 처리의 상세를 설명하는 흐름도이다.
도 17의 스텝 S221에 있어서, 이동 벡터 산출부(12)는 비율 ratio를, 대상점의 이동 벡터의 x 성분 mvx와 y 성분 mvy의 절댓값의 합을, 최대 이동량의 절반으로 제산한 값을 1로부터 감산한 값으로 설정한다. 비율 ratio는, 대상점의 이동 후의 뎁스 depth_new에 있어서의, 위치 (tar_x, tar_y)의 점(91)의 뎁스 depth_tar의 비율이다.
스텝 S222에 있어서, 비율 ratio가 0보다 작은지 여부를 판정한다. 스텝 S222에서 비율 ratio가 0 이상이라고 판정된 경우, x 성분 mvx와 y 성분 mvy의 합이 최대 이동량의 절반 이하인 경우, 처리는 스텝 S224로 진행한다.
한편, 스텝 S222에서 비율 ratio가 0보다 작다고 판정된 경우, 즉, x 성분 mvx와 y 성분 mvy의 합이 최대 이동량의 절반보다 큰 경우, 처리는 스텝 S223으로 진행한다. 스텝 S223에 있어서, 이동 벡터 산출부(12)는 비율 ratio를 0으로 변경하고, 처리를 스텝 S224로 진행시킨다.
스텝 S224에 있어서, 이동 벡터 산출부(12)는 대상점의 이동 후의 뎁스 depth_new를, 이동 전의 뎁스 depth_cur에 (1-ratio)를 승산한 값과 위치 (tar_x, tar_y)의 점(91)(참조점)의 뎁스 depth_tar에 ratio를 승산한 값의 합으로 결정한다.
스텝 S225에 있어서, 이동 벡터 산출부(12)는 대상점의 이동 후의 뎁스 depth_new로부터 대상점의 이동 전의 뎁스 depth_cur을 감산한 값을, 대상점의 이동 벡터의 z 성분 mvz로 결정한다. 그리고, 처리는 도 15의 스텝 S184로 되돌아가, 스텝 S186으로 진행한다.
이상과 같이, 대상점의 이동 벡터의 x 성분 mvx와 y 성분 mvy의 합이, 역치로서의 최대 이동량의 절반보다 작은 경우, 이동 벡터 산출부(12)는 대상점의 이동 벡터의 z 성분 mvz를 0 이외로 설정한다.
도 17의 예에서는, 최대 이동량의 절반을 역치로 하여 대상점의 이동 벡터의 z 성분 mvz를 0 이외로 설정할지, 또는, 0으로 설정할지가 결정되었지만, 역치는 최대 이동량의 절반으로 한정되지 않는다.
도 18은 도 5의 스텝 S34의 색 보정 처리의 상세를 설명하는 흐름도이다.
도 18의 스텝 S241 내지 S243, S246 및 S247의 처리는, 위치 산출부(31)가 아니라 색 보정부(13)에 의해 행해지는 것을 제외하고, 도 6의 스텝 S51 내지 S53, S57 및 S58의 처리와 마찬가지이므로, 설명은 적절히 생략한다.
스텝 S243에서 x가 화소수 width보다 작다고 판정된 경우, 처리는 스텝 S244로 진행한다.
스텝 S244에 있어서, 색 보정부(13)는 대상점의 색 정보의 보정 시에 참조하는 색 정보에 대응하는 점(91)의 위치를 결정하는 색 참조 위치 결정 코어 처리를 행한다. 이 색 참조 위치 결정 코어 처리의 상세는, 후술하는 도 19를 참조하여 설명한다.
스텝 S245에 있어서, 색 보정부(13)는 대상점의 색 정보를 보정하는 색 보정 코어 처리를 행한다. 이 색 보정 코어 처리의 상세는, 후술하는 도 21을 참조하여 설명한다. 스텝 S245의 처리 후, 처리는 스텝 S246으로 진행한다.
또한, 스텝 S242에서 y가 화소수 height 이상이라고 판정된 경우, 즉 모든 화소가 대상점으로 된 경우, 색 보정부(13)는 색 정보가 보정된 3차원 데이터와, 이동 벡터 산출부(12)로부터 공급되는 이동 벡터 (mvx, mvy, mvz)를 위치 보정부(14)에 공급한다. 그리고, 처리는 도 5의 스텝 S34로 되돌아가, 스텝 S35로 진행한다.
도 19는 도 18의 스텝 S244의 색 참조 위치 결정 코어 처리의 상세를 설명하는 흐름도이다.
도 19의 스텝 S261에 있어서, 색 보정부(13)는 offset를 0으로 설정한다. 스텝 S262에 있어서, 색 보정부(13)는 이동 벡터 산출부(12)로부터 공급되는 이동 방향 dir이 NONE인지 여부를 판정한다. 스텝 S262에서 이동 방향 dir이 NONE가 아니라고 판정된 경우, 처리는 스텝 S263으로 진행한다.
스텝 S263에 있어서, 색 보정부(13)는 depth_cur을 대상점의 뎁스 z로 설정한다. 스텝 S264에 있어서, 색 보정부(13)는 이동 방향 dir이 나타내는 방향과는 역의 방향의 x 좌표의 정부를 나타내는 betaX와 y 좌표의 정부를 나타내는 betaY를 결정하는 beta 결정 처리를 행한다. 이 beta 결정 처리의 상세는, 후술하는 도 20을 참조하여 설명한다.
스텝 S265에 있어서, 색 보정부(13)는 offset가 최대 오프셋양 이하인지 여부를 판정한다. 스텝 S265에서 offset가 최대 오프셋양 이하라고 판정된 경우, 처리는 스텝 S266으로 진행한다.
스텝 S266에 있어서, 색 보정부(13)는 대상점의 색 정보의 보정 시에 참조하는 색 정보에 대응하는 점(91)의 위치의 x 좌표 ref_x를, 대상점의 x 좌표와 betaX배의 offset의 합으로 결정한다. 또한, 색 보정부(13)는 대상점의 색 정보의 보정 시에 참조하는 색 정보에 대응하는 점(91)의 위치의 y 좌표 ref_y를, 대상점의 y 좌표와 betaY배의 offset의 합으로 결정한다.
스텝 S267에 있어서, 색 보정부(13)는 depth_ref를 위치 (ref_x, ref_y)의 점(91)의 뎁스 ref_z로 설정한다. 스텝 S268에 있어서, 색 보정부(13)는 depth_ref로부터 depth_cur을 감산한 값의 절댓값이 오프셋 역치보다 큰지 여부를 판정한다.
스텝 S268에서 depth_ref로부터 depth_cur을 감산한 값의 절댓값이 오프셋 역치 이하라고 판정된 경우, 색 보정부(13)는 대상점과 위치 (ref_x, ref_y)의 점(91)의 피사체가 동일하다고 판단하고, 처리를 스텝 S269로 진행시킨다. 스텝 S269에 있어서, 색 보정부(13)는 offset를 1만큼 인크리먼트하고, 처리를 스텝 S265로 되돌려, 이후의 처리를 반복한다.
한편, 스텝 S268에서 depth_ref로부터 depth_cur을 감산한 값의 절댓값이 오프셋 역치보다 크다고 판정된 경우, 색 보정부(13)는 대상점과 위치 (ref_x, ref_y)의 점(91)의 피사체가 상이하다고 판단하고, 처리를 스텝 S270으로 진행시킨다.
또한, 스텝 S265에서 offset가 최대 오프셋양보다 크다고 판정된 경우, 처리는 스텝 S270으로 진행한다.
스텝 S270에 있어서, 색 보정부(13)는 offset를 1만큼 디크리먼트한다. 즉, 대상점과 위치 (ref_x, ref_y)의 점(91)의 피사체가 상이한 경우, 또는, 대상점과 위치 (ref_x, ref_y)의 점(91)의 피사체가 동일한 상태로부터 다른 상태로 변화되지 않고, offset가 최대 오프셋양을 초과한 경우, 색 보정부(13)는 직전의 offset를 최종적인 offset로 설정한다. 그리고, 처리는 도 18의 스텝 S244로 되돌아가, 스텝 S245로 진행한다.
한편, 스텝 S262에서 이동 방향 dir이 NONE라고 판정된 경우, 즉 대상점이 오클루전 영역의 경계의 점(91)이 아닌 경우, 처리는 도 18의 스텝 S244로 되돌아가, 스텝 S245로 진행한다.
이상에 의해, 최종적인 위치 (ref_x, ref_y)는 오클루전 영역의 경계의 점(91)이 대상점인 경우에, 대상점에 연속하는 대상점과의 깊이 방향의 위치의 차분이 오프셋 역치 이내인 대상점으로부터 가장 먼 점(91)의 2차원 위치로 된다.
도 20은 도 19의 스텝 S264의 beta 결정 처리의 상세를 설명하는 흐름도이다.
도 20의 스텝 S291에 있어서, 색 보정부(13)는 betaX와 betaY를 0으로 설정한다.
스텝 S292에 있어서, 색 보정부(13)는 이동 방향 dir이 LL인지 여부를 판정한다. 스텝 S292에서 이동 방향 dir이 LL이라고 판정된 경우, 스텝 S293에 있어서, 색 보정부(13)는 betaX를 1로 설정한다. 그리고, 처리는 도 19의 스텝 S264로 되돌아가, 스텝 S265로 진행한다.
한편, 스텝 S292에서 이동 방향 dir이 LL이 아니라고 판정된 경우, 스텝 S294에 있어서, 색 보정부(13)는 이동 방향 dir이 RR인지 여부를 판정한다. 스텝 S294에서 이동 방향 dir이 RR이라고 판정된 경우, 스텝 S295에 있어서, 색 보정부(13)는 betaX를 -1로 설정한다. 그리고, 처리는 도 19의 스텝 S264로 되돌아가, 스텝 S265로 진행한다.
또한, 스텝 S294에서 이동 방향 dir이 RR이 아니라고 판정된 경우, 스텝 S296에 있어서, 색 보정부(13)는 이동 방향 dir이 UU인지 여부를 판정한다. 스텝 S296에서 이동 방향 dir이 UU라고 판정된 경우, 스텝 S297에 있어서, 색 보정부(13)는 betaY를 -1로 설정한다. 그리고, 처리는 도 19의 스텝 S264로 되돌아가, 스텝 S265로 진행한다.
한편, 스텝 S296에서 이동 방향 dir이 UU가 아니라고 판정된 경우, 즉, 이동 방향 dir이 DD인 경우, 스텝 S298에 있어서, 색 보정부(13)는 betaY를 1로 설정한다. 그리고, 처리는 도 19의 스텝 S264로 되돌아가, 스텝 S265로 진행한다.
도 21은 도 18의 스텝 S245의 색 보정 코어 처리를 설명하는 흐름도이다.
도 21의 스텝 S310에 있어서, 색 보정부(13)는 offsetX와 offsetY를 offset로 설정한다. 스텝 S311에 있어서, 색 보정부(13)는 이동 방향 dir이 LL 또는 RR인지 여부를 판정한다. 스텝 S311에서 이동 방향 dir이 LL 또는 RR이 아니라고 판정된 경우, 처리는 스텝 S312로 진행한다.
스텝 S312에 있어서, 색 보정부(13)는 이동 방향 dir이 UU 또는 DD인지 여부를 판정한다. 스텝 S312에서 이동 방향 dir이 UU 또는 DD라고 판정된 경우, 스텝 S313에 있어서, 색 보정부(13)는 offsetX를 1로 변경하고, 처리를 스텝 S315로 진행시킨다.
한편, 스텝 S312에서 이동 방향 dir이 UU 또는 DD가 아니라고 판정된 경우, 즉 이동 방향 dir이 NONE인 경우, 처리는 스텝 S315로 진행한다.
또한, 스텝 S311에서 이동 방향 dir이 LL 또는 RR이라고 판정된 경우, 스텝 S314에 있어서, 색 보정부(13)는 offsetY를 1로 변경하고, 처리를 스텝 S315로 진행시킨다.
스텝 S315에 있어서, 색 보정부(13)는 xx와 yy를 0으로 설정한다. 스텝 S316에 있어서, 색 보정부(13)는 yy가 offsetY보다 작은지 여부를 판정한다. 스텝 S316에서 yy가 offsetY보다 작다고 판정된 경우, 스텝 S317에 있어서, 색 보정부(13)는 xx가 offsetX보다 작은지 여부를 판정한다.
스텝 S317에서 xx가 offsetX보다 작다고 판정된 경우, 스텝 S318에 있어서, 색 보정부(13)는 대상점의 x 좌표와 xx의 betaX배의 합을 dst_x로 결정한다. 또한, 색 보정부(13)는 대상점의 y 좌표와 yy의 betaY배의 합을 dst_y로 결정한다.
스텝 S319에 있어서, 색 보정부(13)는 위치 (dst_x, dst_y)의 점(91)의 색 정보를, 이동 벡터 산출부(12)로부터 공급되는 3차원 데이터 중의 위치 (ref_x, ref_y)의 점(91)의 색 정보로 치환한다. 스텝 S320에 있어서, 색 보정부(13)는 xx를 1만큼 인크리먼트하고, 처리를 스텝 S317로 되돌려, xx가 offsetX 이상으로 될 때까지 스텝 S317 내지 S320의 처리를 반복한다.
또한, 스텝 S317에서 xx가 offsetX 이상이라고 판정된 경우, 색 보정부(13)는 xx를 0으로 설정하고, yy를 1만큼 인크리먼트한다. 그리고, 처리는 스텝 S316으로 되돌아가, yy가 offsetY 이상으로 될 때까지 스텝 S316 내지 S321의 처리가 반복된다.
한편, 스텝 S316에서 yy가 offsetY 이상이라고 판정된 경우, 처리는 종료되고, 도 18의 스텝 S245의 처리로 되돌아가, 스텝 S246의 처리로 진행한다.
이상과 같이, 색 보정부(13)는 위치 (ref_x, ref_y)의 점(91)으로부터 대상점까지의 점(91)의 색 정보를, 위치 (ref_x, ref_y)의 점(91)의 색 정보로 치환한다.
도 22는 도 5의 스텝 S35의 위치 보정 처리의 흐름도를 설명하는 도면이다.
도 22의 스텝 S331 내지 S333, S335 및 S336의 처리는, 위치 산출부(31)가 아니라 위치 보정부(14)에 의해 행해지는 것을 제외하고, 도 6의 스텝 S51 내지 S53, S57 및 S58의 처리와 마찬가지이므로, 설명은 적절히 생략한다.
스텝 S333에서 x가 화소수 width보다 작다고 판정된 경우, 처리는 스텝 S334로 진행한다. 스텝 S334에 있어서, 위치 보정부(14)는 대상점의 3차원 위치를 보정하는 위치 보정 코어 처리를 행한다. 이 위치 보정 코어 처리의 상세는, 후술하는 도 23을 참조하여 설명한다. 스텝 S334의 처리 후, 처리는 스텝 S335로 진행한다.
또한, 스텝 S332에서 y가 화소수 height 이상이라고 판정된 경우, 즉 모든 화소가 대상점으로 된 경우, 위치 보정부(14)는 점(91)의 3차원 위치가 보정된 3차원 데이터를 컬러 화상 데이터 생성부(15)에 공급한다. 그리고, 처리는, 도 5의 스텝 S35로 되돌아가고, 도 4의 스텝 S11로 되돌아가, 스텝 S12로 진행한다.
도 23은 도 22의 스텝 S334의 위치 보정 코어 처리의 상세를 설명하는 흐름도이다.
도 23의 스텝 S351에 있어서, 위치 보정부(14)는 색 보정부(13)로부터 이동 벡터 (mvx, mvy, mvz)를 취득한다. 스텝 S352에 있어서, 위치 보정부(14)는 이동 벡터 (mvx, mvy, mvz)가 (0, 0, 0)인지 여부를 판정한다.
스텝 S352에서 이동 벡터 (mvx, mvy, mvz)가 (0, 0, 0)이 아니라고 판정된 경우, 스텝 S353에 있어서, 위치 보정부(14)는 대상점의 위치 (x, y, z)를 위치 (x+mvx, y+mvy, z+mvz)로 보정한다. 그리고, 처리는, 도 22의 스텝 S334로 되돌아가, 스텝 S335로 진행한다.
한편, 스텝 S352에서 이동 벡터 (mvx, mvy, mvz)가 (0, 0, 0)이라고 판정된 경우, 위치 보정부(14)는 대상점의 위치 (x, y, z)를 보정하지 않고, 처리를 도 22의 스텝 S334로 되돌려, 스텝 S335로 진행시킨다.
(효과의 설명)
도 24는 위치 산출부(31)에 의해 생성된 각 점(91)의 3차원 위치 중, y 좌표가 도 2의 y1인 점(91)의 x 좌표와 z 좌표를 나타낸 그래프이다.
도 24에 있어서, 횡축은, 각 점(91)의 x 좌표를 나타내고, 종축은 z 좌표를 나타내고 있다. 또한, 도 24에 있어서, 각 점(91)은 동그라미로 표현되고, 동그라미에 부여된 모양은, 그 점(91)에 대응하는 도 2의 배경(70), 부분 원(71), 부분 원(72), 직사각형(73) 또는 원통(75)에 부여된 모양이다. 이들의 것은, 후술하는 도 25 및 도 26에 있어서도 마찬가지이다.
도 25는, 도 24의 그래프에 있어서, 패치 생성부(32)에 의해 생성되는 점(91)의 접속 정보를 도시한 것이다.
도 25의 그래프에 있어서, 오클루전 영역은 영역 S1로 나타내어지고, 영역 S1의 색 정보는 입력 화상 데이터의 3차원 데이터에는 존재하지 않는다. 따라서, 입력 화상 데이터의 3차원 데이터로부터 가상 시점의 컬러 화상 데이터가 생성되는 경우, 예를 들어 가상 시점의 컬러 화상 데이터의 화소에 투영되는 영역 S1의 소정의 위치의 색 정보는, 그 위치를 포함하는 삼각형 패치(92)의 정점이 되는 점(91)의 색 정보를 사용하여 보간된다.
예를 들어, 도 25에 도시한 바와 같이, 가상 시점의 방향이 화살표 P의 방향인 경우, 가상 시점의 컬러 화상 데이터에 투영되는 영역 S1의 위치 a의 색 정보는, 배경(70)의 점(111)과 원통(75)의 점(112)의 색 정보로부터 보간된다.
이 경우, 가상 시점의 컬러 화상 데이터를 생성할 수 있다. 그러나, 위치 a에 대응하는 가상 시점의 컬러 화상 데이터의 화소의 색은, 배경(70)의 색과 원통(75)의 색의 혼색으로 되어, 유저는 위화감을 느낀다.
도 26은 컬러 화상 데이터 생성부(15)에 공급되는 색 정보 및 3차원 위치가 보정된 3차원 데이터 중의, y 좌표가 도 2의 y1인 점(91)의 x 좌표 및 z 좌표 및 접속 정보를 나타낸 그래프이다.
도 26에 도시한 바와 같이, 컬러 화상 데이터 생성부(15)에 공급되는 3차원 데이터에서는, 오클루전 영역의 경계의 점(91) 중, 안쪽의 점(91)의 x 좌표가, 그 점(91)의 근방의 앞쪽의 점(91)의 x 좌표와 동일하게 되도록 보정되어 있다.
예를 들어, 오클루전 영역의 경계의 점(91) 중 안쪽의 점(111)의 x 좌표는, 점(111)의 2화소 우측의, 점(111)보다 앞쪽의 점(91)인 점(113)의 x 좌표와 동일하게 되도록 보정되어 있다.
따라서, 도 26의 그래프에 있어서, 오클루전 영역은 영역 S2로 나타내어지고, 영역 S2는 영역 S1보다 작다. 따라서, 가상 시점의 컬러 화상 데이터 내의 영역 S2가 투영되는 화소수가 적어진다. 그 결과, 유저의 위화감을 경감할 수 있다.
예를 들어, 가상 시점의 방향이 화살표 P의 방향인 경우, 가상 시점의 컬러 화상 데이터에 투영되는 위치 a는, 영역 S2 밖의 3차원 위치 보정 후의 점(111)의 위치로 된다. 따라서, 위치 a에 대응하는 가상 시점의 컬러 화상 데이터의 화소의 색은, 배경(70)의 색과 원통(75)의 색의 혼색으로는 되지 않아, 위화감이 없는 색으로 된다.
또한, 도 26의 예에서는, 최대 이동량이 2 이상이기 때문에, 오클루전 영역의 경계의 점(91) 중, 1화소 좌측의, 보다 앞쪽의 점(91)인 점(114)과 x 좌표가 동일하게 되도록 보정된 점(115)의 뎁스 z는, 점(114)의 뎁스 z에 가까워지도록 보정되어 있다.
도 27은 위치 산출부(31)에 의해 생성된 각 점(91)의 3차원 위치 중, x 좌표가 도 2의 x1인 점(91)의 y 좌표와 z 좌표를 나타낸 그래프이다.
도 27에 있어서, 횡축은, 각 점(91)의 y 좌표를 나타내고, 종축은 z 좌표를 나타내고 있다. 또한, 도 27에 있어서, 각 점(91)은 동그라미로 나타내어지고, 동그라미에 부여된 모양은, 그 점(91)에 대응하는 도 2의 배경(70), 부분 원(72) 또는 원통(74)에 부여된 모양이다. 이들의 것은, 후술하는 도 28 및 도 29에 있어서도 마찬가지이다.
도 28은 도 27의 그래프에 있어서, 패치 생성부(32)에 의해 생성되는 점(91)의 접속 정보를 나타낸 것이다.
도 28의 그래프에 있어서, 오클루전 영역은 영역 S3으로 나타내어지고, 영역 S3의 색 정보는 입력 화상 데이터의 3차원 데이터에는 존재하지 않는다. 따라서, 입력 화상 데이터의 3차원 데이터로부터 가상 시점의 컬러 화상 데이터가 생성되는 경우, 예를 들어 가상 시점의 컬러 화상 데이터의 화소에 투영되는 영역 S3의 소정의 위치의 색 정보는, 그 위치를 포함하는 삼각형 패치(92)의 정점으로 되는 점(91)의 색 정보를 사용하여 보간된다.
예를 들어, 도 28에 도시한 바와 같이, 가상 시점의 방향이 화살표 Q의 방향인 경우, 가상 시점의 컬러 화상 데이터에 투영되는 영역 S3의 위치 b의 색 정보는, 부분 원(72)의 점(131)과 배경(70)의 점(132)의 색 정보로부터 보간된다. 그 결과, 위치 b에 대응하는 가상 시점의 컬러 화상 데이터의 화소의 색은, 부분 원(72)의 색과 배경(70)의 색의 혼색으로 되어, 유저는 위화감을 느낀다.
도 29는 컬러 화상 데이터 생성부(15)에 공급되는 색 정보 및 3차원 위치가 보정된 3차원 데이터 중, x 좌표가 도 2의 x1인 점(91)의 y 좌표 및 z 좌표 및 접속 정보를 나타낸 그래프이다.
도 29에 도시한 바와 같이, 컬러 화상 데이터 생성부(15)에 공급되는 3차원 데이터에서는, 오클루전 영역의 경계의 점(91) 중, 안쪽의 점(91)의 y 좌표가, 그 점(91)의 근방의 앞쪽의 점(91)의 y 좌표와 동일하게 되도록 보정되어 있다.
예를 들어, 오클루전 영역의 경계의 점(91) 중 안쪽의 점(131)의 y 좌표는, 점(131)의 2화소 좌측의, 점(131)보다 앞쪽의 점(91)인 점(113)의 y 좌표와 동일하게 되도록 보정되어 있다.
따라서, 도 29의 그래프에 있어서, 오클루전 영역은 영역 S4로 나타내어지고, 영역 S4는, 영역 S3보다 작다. 따라서, 가상 시점의 컬러 화상 데이터 내의 오클루전 영역 S4가 투영되는 화소가 적어진다. 그 결과, 유저의 위화감을 경감할 수 있다.
예를 들어, 가상 시점의 방향이 화살표 Q의 방향인 경우, 가상 시점의 컬러 화상 데이터에 투영되는 위치 b는, 영역 S4 밖의 3차원 위치 보정 후의 점(131)의 위치로 된다. 따라서, 위치 b에 대응하는 가상 시점의 컬러 화상 데이터의 화소의 색은, 배경(70)의 색과 원통(75)의 색의 혼색으로는 되지 않고, 위화감이 없는 색으로 된다.
또한, 상술한 설명에서는, 이동 방향 dir은, UU, DD, LL 및 RR의 4방향으로 하였지만, 이동 방향 dir의 종류는 이것에 한정되지 않는다.
(이동 방향의 다른 예)
도 30은 이동 방향 dir의 다른 예를 도시하는 도면이다.
도 30에 도시한 바와 같이, 이동 방향 dir은, UU, DD, LL 및 RR의 4방향에, 좌측 상방을 나타내는 UL, 우측 상방을 나타내는 UR, 좌측 하방을 나타내는 DL 및 우측 하방을 나타내는 DR의 4방향을 더한 8방향으로 할 수도 있다.
이 경우, 도 11의 이동 방향 결정 코어 처리의 조건식의 수가 8개로 되고, 각 조건식은 도 11에서 설명한 조건식과는 상이하다.
이상과 같이, 화상 처리 장치(10)는 입력 화상 데이터의 3차원 데이터에 포함되는 오클루전 영역의 경계의 점의 3차원 위치를 보정하므로, 오클루전 영역을 축소할 수 있다. 따라서, 가상 시점마다 오클루전 영역의 색 정보를 생성하지 않고, 위화감이 적은 가상 시점의 컬러 화상 데이터를 생성할 수 있다. 그 결과, 가상 시점의 고속 이동에 추종하여 고정밀도의 가상 시점의 컬러 화상 데이터를 생성할 수 있다. 또한, 가상 시점의 컬러 화상 데이터를 생성하는 처리의 부하를 경감할 수 있다.
<제2 실시 형태>
(본 개시를 적용한 컴퓨터의 설명)
상술한 일련의 처리는, 하드웨어에 의해 실행할 수도 있고, 소프트웨어에 의해 실행할 수도 있다. 일련의 처리를 소프트웨어에 의해 실행하는 경우에는, 그 소프트웨어를 구성하는 프로그램이 컴퓨터에 인스톨된다. 여기서, 컴퓨터에는, 전용의 하드웨어에 내장되어 있는 컴퓨터나, 각종 프로그램을 인스톨함으로써, 각종 기능을 실행하는 것이 가능한, 예를 들어 범용의 퍼스널 컴퓨터 등이 포함된다.
도 31은 상술한 일련의 처리를 프로그램에 의해 실행하는 컴퓨터의 하드웨어의 구성예를 도시하는 블록도이다.
컴퓨터(200)에 있어서, CPU(Central Processing Unit)(201), ROM(Read Only Memory)(202), RAM(Random Access Memory)(203)은 버스(204)에 의해 서로 접속되어 있다.
버스(204)에는, 또한, 입출력 인터페이스(205)가 접속되어 있다. 입출력 인터페이스(205)에는, 입력부(206), 출력부(207), 기억부(208), 통신부(209) 및 드라이브(210)가 접속되어 있다.
입력부(206)는 키보드, 마우스, 마이크로폰 등을 포함한다. 출력부(207)는 디스플레이, 스피커 등을 포함한다. 기억부(208)는 하드 디스크나 불휘발성의 메모리 등을 포함한다. 통신부(209)는 네트워크 인터페이스 등을 포함한다. 드라이브(210)는 자기 디스크, 광 디스크, 광자기 디스크, 또는 반도체 메모리 등의 리무버블 미디어(211)를 구동한다.
이상과 같이 구성되는 컴퓨터(200)에서는, CPU(201)가, 예를 들어 기억부(208)에 기억되어 있는 프로그램을, 입출력 인터페이스(205) 및 버스(204)를 통해, RAM(203)에 로드하여 실행함으로써, 상술한 일련의 처리가 행해진다.
컴퓨터(200)(CPU(201))가 실행하는 프로그램은, 예를 들어 패키지 미디어 등으로서의 리무버블 미디어(211)에 기록하여 제공할 수 있다. 또한, 프로그램은, 로컬 에어리어 네트워크, 인터넷, 디지털 위성 방송 등의, 유선 또는 무선의 전송 매체를 통해 제공할 수 있다.
컴퓨터(200)에서는, 프로그램은, 리무버블 미디어(211)를 드라이브(210)에 장착함으로써, 입출력 인터페이스(205)를 통해, 기억부(208)에 인스톨할 수 있다. 또한, 프로그램은, 유선 또는 무선의 전송 매체를 통해, 통신부(209)에서 수신하여, 기억부(208)에 인스톨할 수 있다. 그 밖에, 프로그램은, ROM(202)이나 기억부(208)에, 미리 인스톨해 둘 수 있다.
또한, 컴퓨터(200)가 실행하는 프로그램은, 본 명세서에서 설명하는 순서에 따라서 시계열로 처리가 행해지는 프로그램이어도 되고, 병렬로, 혹은 호출이 행해졌을 때 등의 필요한 타이밍에 처리가 행해지는 프로그램이어도 된다.
본 명세서에 기재된 효과는 어디까지나 예시이며 한정되는 것은 아니고, 다른 효과가 있어도 된다.
또한, 본 개시의 실시 형태는, 상술한 실시 형태에 한정되는 것은 아니고, 본 개시의 요지를 일탈하지 않는 범위에 있어서 다양한 변경이 가능하다.
예를 들어, 본 개시는, 1개의 기능을 네트워크를 통해 복수의 장치에서 분담, 공동하여 처리하는 클라우드 컴퓨팅의 구성을 취할 수 있다.
또한, 상술한 흐름도에서 설명한 각 스텝은, 1개의 장치에서 실행하는 것 외에, 복수의 장치에서 분담하여 실행할 수 있다.
또한, 1개의 스텝에 복수의 처리가 포함되는 경우에는, 그 1개의 스텝에 포함되는 복수의 처리는, 1개의 장치에서 실행하는 것 외에, 복수의 장치에서 분담하여 실행할 수 있다.
또한, 본 개시는 이하와 같은 구성도 취할 수 있다.
(1)
소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 생성된, 복수의 점의 3차원 위치와 색 정보를 포함하는 3차원 데이터에 포함되는, 상기 복수의 점 중 오클루전 영역의 경계의 점의 상기 3차원 위치를 보정하는 위치 보정부를 구비하는 화상 처리 장치.
(2)
상기 위치 보정부는, 상기 오클루전 영역의 경계의 점의 2차원 위치를, 상기 오클루전 영역의 경계의 점의 근방 또한 앞쪽의 점인 참조점의 2차원 위치로 보정하도록 구성된 상기 (1)에 기재된 화상 처리 장치.
(3)
상기 위치 보정부는, 상기 오클루전 영역의 경계의 점의 깊이 방향의 위치를 보정하도록 구성된 상기 (2)에 기재된 화상 처리 장치.
(4)
상기 위치 보정부는, 상기 오클루전 영역의 경계의 점의 2차원 위치의 보정량이 역치보다 작은 경우, 상기 오클루전 영역의 경계의 점의 깊이 방향의 위치를 보정하는 상기 (3)에 기재된 화상 처리 장치.
(5)
상기 위치 보정부는, 상기 참조점의 깊이 방향의 위치를 사용하여, 상기 오클루전 영역의 경계의 점의 깊이 방향의 위치를 보정하는 상기 (4)에 기재된 화상 처리 장치.
(6)
상기 위치 보정부에 의해 상기 오클루전 영역의 경계의 점의 3차원 위치가 보정된 상기 3차원 데이터에 기초하여, 상기 소정의 시점과는 상이한 시점의 컬러 화상 데이터를 생성하는 컬러 화상 데이터 생성부를 더 구비하는 상기 (1) 내지 (5) 중 어느 한 항에 기재된 화상 처리 장치.
(7)
상기 색 정보를 보정하는 색 보정부를 더 구비하는 상기 (1) 내지 (6) 중 어느 한 항에 기재된 화상 처리 장치.
(8)
상기 색 보정부는, 상기 오클루전 영역의 경계의 점에 연속하는, 그 점과의 깊이 방향의 위치의 차분이 소정의 범위 내인 점의 상기 색 정보를, 그 점 중, 상기 오클루전 영역의 경계의 점으로부터 가장 먼 점의 상기 색 정보로 보정하도록 구성된 상기 (7)에 기재된 화상 처리 장치.
(9)
상기 소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 상기 3차원 데이터를 생성하는 3차원 데이터 생성부를 더 구비하는 상기 (1) 내지 (8) 중 어느 한 항에 기재된 화상 처리 장치.
(10)
화상 처리 장치가,
소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 생성된, 복수의 점의 3차원 위치와 색 정보를 포함하는 3차원 데이터에 포함되는, 상기 복수의 점 중 오클루전 영역의 경계의 점의 상기 3차원 위치를 보정하는 위치 보정 스텝을 포함하는 화상 처리 방법.
10 : 화상 처리 장치
14 : 위치 보정부
51 : 컬러 화상 데이터
52 : 뎁스 화상 데이터
91, 111, 113, 114, 115 : 점

Claims (10)

  1. 소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 생성된, 복수의 점의 3차원 위치와 색 정보를 포함하는 3차원 데이터에 포함되는, 상기 복수의 점 중 오클루전 영역의 경계의 점의 상기 3차원 위치를 보정하는 위치 보정부를 구비하는 화상 처리 장치.
  2. 제1항에 있어서,
    상기 위치 보정부는, 상기 오클루전 영역의 경계의 점의 2차원 위치를, 상기 오클루전 영역의 경계의 점의 근방 또한 앞쪽의 점인 참조점의 2차원 위치로 보정하도록 구성된 화상 처리 장치.
  3. 제2항에 있어서,
    상기 위치 보정부는, 상기 오클루전 영역의 경계의 점의 깊이 방향의 위치를 보정하도록 구성된 화상 처리 장치.
  4. 제3항에 있어서,
    상기 위치 보정부는, 상기 오클루전 영역의 경계의 점의 2차원 위치의 보정량이 역치보다 작은 경우, 상기 오클루전 영역의 경계의 점의 깊이 방향의 위치를 보정하는 화상 처리 장치.
  5. 제4항에 있어서,
    상기 위치 보정부는, 상기 참조점의 깊이 방향의 위치를 사용하여, 상기 오클루전 영역의 경계의 점의 깊이 방향의 위치를 보정하는 화상 처리 장치.
  6. 제1항에 있어서,
    상기 위치 보정부에 의해 상기 오클루전 영역의 경계의 점의 3차원 위치가 보정된 상기 3차원 데이터에 기초하여, 상기 소정의 시점과는 상이한 시점의 컬러 화상 데이터를 생성하는 컬러 화상 데이터 생성부를 더 구비하는 화상 처리 장치.
  7. 제1항에 있어서,
    상기 색 정보를 보정하는 색 보정부를 더 구비하는 화상 처리 장치.
  8. 제7항에 있어서,
    상기 색 보정부는, 상기 오클루전 영역의 경계의 점에 연속하는, 그 점과의 깊이 방향의 위치의 차분이 소정의 범위 내인 점의 상기 색 정보를, 그 점 중, 상기 오클루전 영역의 경계의 점으로부터 가장 먼 점의 상기 색 정보로 보정하도록 구성된 화상 처리 장치.
  9. 제1항에 있어서,
    상기 소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 상기 3차원 데이터를 생성하는 3차원 데이터 생성부를 더 구비하는 화상 처리 장치.
  10. 화상 처리 장치가,
    소정의 시점의 컬러 화상 데이터와 뎁스 화상 데이터로부터 생성된, 복수의 점의 3차원 위치와 색 정보를 포함하는 3차원 데이터에 포함되는, 상기 복수의 점 중 오클루전 영역의 경계의 점의 상기 3차원 위치를 보정하는 위치 보정 스텝을 포함하는 화상 처리 방법.
KR1020187013125A 2015-12-01 2016-11-21 화상 처리 장치 및 화상 처리 방법 KR102646019B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2015-234468 2015-12-01
JP2015234468 2015-12-01
PCT/JP2016/084381 WO2017094536A1 (ja) 2015-12-01 2016-11-21 画像処理装置および画像処理方法

Publications (2)

Publication Number Publication Date
KR20180088801A true KR20180088801A (ko) 2018-08-07
KR102646019B1 KR102646019B1 (ko) 2024-03-12

Family

ID=58797233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187013125A KR102646019B1 (ko) 2015-12-01 2016-11-21 화상 처리 장치 및 화상 처리 방법

Country Status (6)

Country Link
US (1) US10846916B2 (ko)
EP (1) EP3367326A4 (ko)
JP (1) JP6807034B2 (ko)
KR (1) KR102646019B1 (ko)
CN (1) CN108475408A (ko)
WO (1) WO2017094536A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10165259B2 (en) * 2017-02-15 2018-12-25 Adobe Systems Incorporated Generating novel views of a three-dimensional object based on a single two-dimensional image
JP6894873B2 (ja) * 2018-07-24 2021-06-30 Kddi株式会社 画像処理装置、方法及びプログラム
JP2022026844A (ja) * 2020-07-31 2022-02-10 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285415A (ja) 2005-03-31 2006-10-19 Sony Corp 画像処理方法、その装置およびプログラム
KR20070036720A (ko) * 2005-09-29 2007-04-03 소니 가부시끼 가이샤 표시 화상 보정장치, 화상 표시장치, 및 표시 화상보정방법
KR20090082782A (ko) * 2008-01-28 2009-07-31 삼성전자주식회사 시점 변화에 따른 영상 복원 방법 및 장치
KR20120018915A (ko) * 2010-08-24 2012-03-06 삼성전자주식회사 컬러 영상과 시점 및 해상도가 동일한 깊이 영상 생성 방법 및 장치
JP2012186781A (ja) * 2011-02-18 2012-09-27 Sony Corp 画像処理装置および画像処理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397120B1 (en) * 1999-12-30 2002-05-28 David A. Goldman User interface and method for manipulating singularities for automatic embroidery data generation
JP3748545B2 (ja) 2002-09-19 2006-02-22 株式会社ナムコ プログラム、情報記憶媒体及び画像生成装置
JP4537104B2 (ja) 2004-03-31 2010-09-01 キヤノン株式会社 マーカ検出方法、マーカ検出装置、位置姿勢推定方法、及び複合現実空間提示方法
US7609899B2 (en) * 2004-05-28 2009-10-27 Ricoh Company, Ltd. Image processing apparatus, image processing method, and recording medium thereof to smooth tile boundaries
CN101790103B (zh) * 2009-01-22 2012-05-30 华为技术有限公司 一种视差计算方法及装置
WO2011096136A1 (ja) 2010-02-02 2011-08-11 コニカミノルタホールディングス株式会社 疑似画像生成装置および疑似画像生成方法
CN101937578B (zh) * 2010-09-08 2012-07-04 宁波大学 一种虚拟视点彩色图像绘制方法
US20120206440A1 (en) 2011-02-14 2012-08-16 Dong Tian Method for Generating Virtual Images of Scenes Using Trellis Structures
JP2014211829A (ja) 2013-04-19 2014-11-13 富士通株式会社 画像処理装置、画像処理回路、画像処理プログラム、及び画像処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285415A (ja) 2005-03-31 2006-10-19 Sony Corp 画像処理方法、その装置およびプログラム
KR20070036720A (ko) * 2005-09-29 2007-04-03 소니 가부시끼 가이샤 표시 화상 보정장치, 화상 표시장치, 및 표시 화상보정방법
KR20090082782A (ko) * 2008-01-28 2009-07-31 삼성전자주식회사 시점 변화에 따른 영상 복원 방법 및 장치
KR20120018915A (ko) * 2010-08-24 2012-03-06 삼성전자주식회사 컬러 영상과 시점 및 해상도가 동일한 깊이 영상 생성 방법 및 장치
JP2012186781A (ja) * 2011-02-18 2012-09-27 Sony Corp 画像処理装置および画像処理方法

Also Published As

Publication number Publication date
US20180315239A1 (en) 2018-11-01
CN108475408A (zh) 2018-08-31
KR102646019B1 (ko) 2024-03-12
US10846916B2 (en) 2020-11-24
JPWO2017094536A1 (ja) 2018-09-13
EP3367326A4 (en) 2018-10-03
WO2017094536A1 (ja) 2017-06-08
EP3367326A1 (en) 2018-08-29
JP6807034B2 (ja) 2021-01-06

Similar Documents

Publication Publication Date Title
CN106780601B (zh) 一种空间位置追踪方法、装置及智能设备
JP6363863B2 (ja) 情報処理装置および情報処理方法
KR102152432B1 (ko) 동적 3차원 모델을 이용한 실사 콘텐츠 생성 시스템 및 방법
CN110458932B (zh) 图像处理方法、装置、系统、存储介质和图像扫描设备
US11694313B2 (en) Computer-generated image processing including volumetric scene reconstruction
CN111080776B (zh) 人体动作三维数据采集和复现的处理方法及系统
KR102199458B1 (ko) 3차원 컬러 메쉬 복원 방법 및 장치
KR102416523B1 (ko) 다시점 카메라로부터 획득된 조인트 기반의 캘리브레이션을 이용한 3차원 스켈레톤 생성 방법
JP6807034B2 (ja) 画像処理装置および画像処理方法
Zhang et al. Mixedfusion: Real-time reconstruction of an indoor scene with dynamic objects
US20140340397A1 (en) Method and arrangement for 3d model morphing
KR20200031678A (ko) 장면의 타일식 3차원 이미지 표현을 생성하기 위한 장치 및 방법
CN113643342A (zh) 一种图像处理方法、装置、电子设备及存储介质
JP2010121945A (ja) 3次元形状生成装置
CN111742352A (zh) 3d对象建模方法以及相关设备和计算机程序产品
Kim et al. Real‐Time Human Shadow Removal in a Front Projection System
JP2015197374A (ja) 3次元形状推定装置及び3次元形状推定方法
WO2022107245A1 (ja) マップ生成装置、マップ生成方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
JP6835455B2 (ja) 時系列の奥行き画像におけるデプス値を補正するプログラム、装置及び方法
JP2017199285A (ja) 情報処理装置、情報処理方法、プログラム
US9092840B2 (en) Image processing apparatus, control method of the same and non-transitory computer-readable storage medium
JP5590680B2 (ja) 映像合成装置、映像合成方法、および映像合成プログラム
JP5865092B2 (ja) 画像処理装置、画像処理方法及びプログラム
KR102016988B1 (ko) 3차원 정보 생성을 위한 카메라 자세 벡터 보정 방법
JP2016162034A (ja) 3次元モデル生成システム、3次元モデル生成装置および3次元モデル生成方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant