KR20230164980A - 전자 장치 및 그 영상 처리 방법 - Google Patents

전자 장치 및 그 영상 처리 방법 Download PDF

Info

Publication number
KR20230164980A
KR20230164980A KR1020220064784A KR20220064784A KR20230164980A KR 20230164980 A KR20230164980 A KR 20230164980A KR 1020220064784 A KR1020220064784 A KR 1020220064784A KR 20220064784 A KR20220064784 A KR 20220064784A KR 20230164980 A KR20230164980 A KR 20230164980A
Authority
KR
South Korea
Prior art keywords
image
depth information
weight
image frame
difference value
Prior art date
Application number
KR1020220064784A
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 KR1020220064784A priority Critical patent/KR20230164980A/ko
Priority to PCT/KR2023/003761 priority patent/WO2023229185A1/ko
Priority to US18/195,516 priority patent/US20230386057A1/en
Publication of KR20230164980A publication Critical patent/KR20230164980A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation

Abstract

전자 장치가 개시된다. 전자 장치는, 제1 영상 프레임 및 제1 영상 프레임의 제1 깊이 정보를 저장하는 메모리 및, 메모리와 연결되어 전자 장치를 제어하는 적어도 하나의 프로세서를 포함하며, 적어도 하나의 프로세서는, 제1 영상 프레임 이후의 제2 영상 프레임의 제2 깊이 정보를 획득하고, 제1 영상 프레임 및 제2 영상 프레임의 영상 차이 값을 획득하고, 획득된 영상 차이 값 및 임계 값에 기초하여 제1 깊이 정보 및 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하고, 제1 가중치 및 제2 가중치를 각각 제1 깊이 정보 및 제2 깊이 정보에 적용하여 제2 영상 프레임에 대응되는 최종 깊이 정보를 획득하고, 획득된 최종 깊이 정보에 기초하여 제2 영상 프레임과 관련된 영상을 생성하거나 획득된 최종 깊이 정보를 외부 장치로 전송할 수 있다.

Description

전자 장치 및 그 영상 처리 방법 { Electronic apparatus and image processing method thereof }
본 개시는 전자 장치 및 그 영상 처리 방법에 관한 것으로, 더욱 상세하게는2D 영상에서 깊이 정보를 획득하는 전자 장치 및 그 영상 처리 방법에 관한 것이다.
일반적으로 3D 공간 정보를 획득하기 위해서는 2대 이상의 2D 카메라를 사용하여 깊이 정보를 예측하는 방법, 라이더(ridar) 센서를 활용하여 깊이 정보를 측정하는 방법, 자이로 센서와 결합된 2D 카메라를 활용하여 공간 정보를 구성하는 방법, 여러 장의 2D 영상을 합성하여 공간 정보를 구성하는 방법 등이 사용된다. 하지만 이와 같은 방법은 별도의 장비를 이용해야 한다는 점에서 높은 비용이 요구되거나, 촬영자가 움직여서 공간 정보를 획득할 수 있는 많은 2D 영상을 촬영한 후 합성해야 하는 불편함이 존재한다.
따라서 최근에는 DNN(deep neural network) 기술을 기반으로 1장의 고정된 2D 카메라 영상을 기반으로 깊이 정보를 예측하는 방법에 대한 연구가 학계에서 활발히 이루어지고 있으며 일 예로, monocular depth estimation 기술이 연구되고 있다. 해당 기술을 구현하기 위해서는 먼저 DNN을 학습하기 위한 학습 데이터의 구축이 필요하다. 보통 이를 위해서 수만 장의 2D RGB 이미지와 각 이미지의 GT(ground truth) 데이터를 한 쌍으로 준비하게 된다. GT 데이터는 대응되는 2D 이미지의 깊이 정보를 나타내는 데이터로써 2D 이미지 픽셀 1개 당 1개의 정보를 가진 것이 일반적이다. 해당 데이터 셋이 준비되면 DNN 모델 구조를 설계하고, 이를 학습하여 예측 엔진을 만들게 된다. 이후 실제 활용 단계에서 만들어진 모델의 입력에 2D 이미지를 넣으면, DNN이 학습된 정보를 기반으로 입력 영상의 깊이 정보를 예측하게 된다. 하지만 monocular depth estimation 기술은 정확도가 여러 대의 2D 카메라를 사용하거나 라이더 센서를 사용하는 방법에 비하여 높지는 않다는 문제가 있다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은, 인접 프레임 간 영상 차이 값을 이용하여 2D 영상의 정확한 깊이 정보를 획득하는 전자 장치 및 그 영상 처리 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는 제1 영상 프레임 및 상기 제1 영상 프레임의 제1 깊이 정보를 저장하는 메모리 및, 상기 메모리와 연결되어 상기 전자 장치를 제어하는 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 상기 제1 영상 프레임 이후의 제2 영상 프레임의 제2 깊이 정보를 획득하고, 상기 제1 영상 프레임 및 상기 제2 영상 프레임의 영상 차이 값을 획득하고, 상기 획득된 영상 차이 값 및 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하고, 상기 제1 가중치 및 상기 제2 가중치를 각각 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 적용하여 상기 제2 영상 프레임에 대응되는 최종 깊이 정보를 획득하고, 상기 획득된 최종 깊이 정보에 기초하여 상기 제2 영상 프레임과 관련된 영상을 생성하거나 획득된 최종 깊이 정보를 외부 장치로 전송한다.
한편, 일 실시 예에 따른 전자 장치의 영상 처리 방법은, 제1 영상 프레임의 제1 깊이 정보 및 상기 제1 영상 프레임 이후의 제2 영상 프레임의 제2 깊이 정보를 획득하는 단계, 상기 제1 영상 프레임 및 상기 제2 영상 프레임의 영상 차이 값을 획득하는 단계, 상기 획득된 영상 차이 값 및 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하는 단계, 상기 제1 가중치 및 상기 제2 가중치를 각각 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 적용하여 상기 제2 영상 프레임에 대응되는 최종 깊이 정보를 획득하는 단계 및, 상기 획득된 최종 깊이 정보에 기초하여 상기 제2 영상 프레임과 관련된 영상을 생성하거나 획득된 최종 깊이 정보를 외부 장치로 전송하는 단계를 포함한다.
또한, 일 실시 예에 따른 전자 장치의 프로세서에 의해 실행되는 경우 상기 전자 장치가 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은, 제1 영상 프레임의 제1 깊이 정보 및 상기 제1 영상 프레임 이후의 제2 영상 프레임의 제2 깊이 정보를 획득하는 단계, 상기 제1 영상 프레임 및 상기 제2 영상 프레임의 영상 차이 값을 획득하는 단계, 상기 획득된 영상 차이 값 및 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하는 단계, 상기 제1 가중치 및 상기 제2 가중치를 각각 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 적용하여 상기 제2 영상 프레임에 대응되는 최종 깊이 정보를 획득하는 단계 및, 상기 획득된 최종 깊이 정보에 기초하여 상기 제2 영상 프레임과 관련된 영상을 생성하거나 획득된 최종 깊이 정보를 외부 장치로 전송하는 단계를 포함할 수 있다.
본 개시의 다양한 실시 예에 따르면, 높은 비용을 들이지 않고 간단한 영상 처리 기법을 활용하여 2D 영상으로부터 정확한 깊이 정보를 획득할 수 있게 된다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구현 예를 설명하기 위한 도면들이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 3a 및 도 3b는 일 실시 예에 따라 인공 지능 모델을 이용하여 깊이 정보를 획득하는 방법을 설명하기 위한 도면들이다.
도 4는 일 실시 예에 따른 영상 처리 방법을 설명하기 위한 흐름도이다.
도 5는 다른 실시 예에 따른 영상 처리 방법을 설명하기 위한 흐름도이다.
도 6, 도 7a, 도 7b 및 도 7c는 다른 실시 예에 따른 영상 처리 방법을 설명하기 위한 도면들이다.
도 8, 도 9a, 도 9b 및 도 9c은 다른 실시 예에 따른 영상 처리 방법을 설명하기 위한 도면들이다.
도 10은 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 일 구현 예를 나타내는 도면이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 명세서에서 이용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. 
본 개시의 실시 예에서 이용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 이용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 이용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 이용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
A 또는 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구현 예를 설명하기 위한 도면들이다.
전자 장치(100)는 도 1에 도시된 바와 같이 TV 로 구현될 수 있으나, 이에 한정되는 것은 아니며 서버, set-top box, 스마트 폰, 태블릿 PC, 노트북 PC, HMD(Head mounted Display), NED(Near Eye Display), 카메라, 캠코더, LFD(large format display), Digital Signage(디지털 간판), DID(Digital Information Display), 비디오 월(video wall), 프로젝터 등과 같이 영상 처리 기능을 갖춘 장치라면 한정되지 않고 적용 가능하다.
전자 장치(100)는 입력 영상에 기초하여 깊이 정보(또는 깊이 값, 깊이 추정 정보, 깊이 추정 값)를 획득하고, 획득된 깊이 정보에 기초하여 다양한 타입의 영상을 생성할 수 있다. 일반적으로 깊이 정보는 영상 내에 존재하는 객체의 3차원 거리 정보를 나타내는 것으로, 영상의 픽셀 별로 부여될 수 있다. 일 예로, 8bit의 뎁스는 0~255까지의 그레이 스케일(grayscale) 값을 가질 수 있다. 예를 들어, 흑/백을 기준으로 나타낼 때, 검은색(낮은 값)이 시청자로부터 먼 곳을 나타내며, 흰색(높은 값)이 시청자로부터 가까운 곳을 나타낼 수 있다.
여기서, 입력 영상은 외부 장치(예를 들어 카메라를 구비한 장치)로부터 수신되거나, 전자 장치(100)에 구비된 카메라를 통해 촬영된 2D 영상이 될 수 있다. 일 예에 따라 전자 장치(100)는 2D 영상에서 깊이 정보를 획득하고 획득된 깊이 정보에 기초하여 가상 공간 영상을 생성할 수 있다. 예를 들어, 전자 장치(100)가 서버로 구현되는 경우 외부 장치로부터 수신된 2D 영상에서 깊이 정보를 획득하고 획득된 깊이 정보에 기초하여 가상 공간 영상(또는 메타버스 영상)을 생성할 수 있다. 다른 예에 따라 전자 장치(100)는 획득된 2D 영상에서 획득된 깊이 정보를 외부 장치로 전송하고, 외부 장치에서 가상 공간 영상을 생성하는 것도 가능하다. 예를 들어, 전자 장치(100)가 TV 등과 같이 카메라를 구비한 장치로 구현되는 경우 카메라를 통해 획득된 2D 영상에서 깊이 정보를 획득하고 획득된 깊이 정보를 서버 등과 같은 외부 장치로 전송할 수 있다. 여기서, 가상 공간이란 현 실세계와 같은 사회·경제·문화 활동이 이뤄지는 3차원 가상 세계를 의미하며, 가상 공간 영상은 3차원 가상 세계 영상이 될 수 있다. 2D 영상에서 획득된 깊이 정보는 가상 공간 영상 내에 포함된 다양한 오브젝트, 예를 들어, 건물, 가구, 조형물, 사물, 자연 등의 입체감을 표현하거나, 사용자를 대신하는 아바타의 입체감을 표현하는데 이용될 수 있다.
일 실시 예에 따라 전자 장치(100)가 도 1에 도시된 바와 같이 카메라(10)를 구비하는 TV로 구현되는 경우를 상정하도록 한다. 이 경우, 전자 장치(100)는 카메라(10)를 통해 획득된 2D 영상에 기초하여 깊이 정보를 획득하고, 획득된 깊이 정보에 기초하여 가상 공간 영상을 생성하거나, 획득된 깊이 정보를 외부 장치로 전송할 수 있다.
한편, 현재 2D 영상에서 깊이 정보를 추정하는 기술은 2D 이미지 프레임 한 장에 기초하여 뎁스 값을 예측하는데 최적화된 기법으로, 동영상에 대해 뎁스 값을 예측할 때는 기준값이 없어, 동일 위치에서 예측된 뎁스 값이 연속된 프레임 간에 상이하게 예측되어 플리커(flicker)가 발생하게 된다. 영상 내 대부분의 오브젝트가 고정되어 있을 경우에는 뎁스 값이 어느 정도 일정하게 유지되나, 영상 내부에 움직이는 영역이 많은 경우에는 주변의 뎁스 추정 값에 많은 플리커가 발생하게 된다. 이러한 문제를 저감하기 위해서 Long Short Term Memory(LSTM)이나 3D DNN 등을 이용하여 연속된 영상을 GT 데이터와 함께 학습시키는 방법을 이용할 수 있다. 하지만 이를 위해서는 방대한 양의 깊이 정보를 가지는 영상 데이터가 필요하고 최적으로 학습시킬 수 있는 모델을 개발해야 하므로 많은 시간과 비용이 소요된다는 문제점이 있다.
이에 따라 이하에서는 높은 비용을 들이지 않고, 간단한 영상 처리 기법을 활용하여 2D 영상으로부터 정확한 깊이 정보를 획득할 수 있는 다양한 실시 예에 대해 설명하도록 한다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 2에 따르면, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함한다.
메모리(110)는 프로세서(120)와 전기적으로 연결되며, 본 개시의 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(110)는 데이터 저장 용도에 따라 전자 장치(100)에 임베디드된 메모리 형태로 구현되거나, 전자 장치(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 전자 장치(100)의 구동을 위한 데이터의 경우 전자 장치(100)에 임베디드된 메모리에 저장되고, 전자 장치(100)의 확장 기능을 위한 데이터의 경우 전자 장치(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 전자 장치(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. 또한, 전자 장치(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
일 예에 따라 메모리(110)는 전자 장치(100)를 제어하기 위한 적어도 하나의 인스트럭션(instruction) 또는 인스트럭션들을 포함하는 컴퓨터 프로그램을 저장할 수 있다.
다른 예에 따라 메모리(110)는 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB), 외부 서버(예를 들어 웹 하드) 등으로부터 수신된 영상, 즉 입력 영상을 저장할 수 있다. 또는 메모리(110)는 전자 장치(100)에 구비된 카메라(미도시)를 통해 획득된 영상을 저장할 수 있다. 여기서, 영상은 2D 동영상이 될 수 있으나 이에 한정되는 것은 아니다.
또 다른 예에 따라, 메모리(110)는 화질 처리에 필요한 다양한 정보, 예를 들어 Noise Reduction, Detail Enhancement, Tone Mapping, Contrast Enhancement, Color Enhancement 또는 Frame rate Conversion 중 적어도 하나를 수행하기 위한 정보, 알고리즘, 화질 파라미터 등을 저장할 수 있다. 또한, 메모리(110)는 영상 처리에 의해 생성된 중간 영상, 깊이 정보를 기초로 생성된 영상을 저장할 수도 있다.
일 실시 예에 따르면, 메모리(110)는 본 개시에 따른 다양한 동작들에서 생성되는 데이터를 저장하는 단일 메모리로 구현될 수 있다. 다만, 다른 실시 예에 따르면, 메모리(110)는 상이한 타입의 데이터를 각각 저장하거나, 상이한 단계에서 생성되는 데이터를 각각 저장하는 복수의 메모리를 포함하도록 구현될 수도 있다.
상술한 실시 예에서는 다양한 데이터가 프로세서(120)의 외부 메모리(110)에 저장되는 것으로 설명하였으나, 상술한 데이터 중 적어도 일부는 전자 장치(100) 또는 프로세서(120) 중 적어도 하나의 구현 예에 따라 프로세서(120) 내부 메모리에 저장될 수도 있다.
적어도 하나의 프로세서(120)(이하, 프로세서)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작을 제어한다. 적어도 하나의 프로세서(120)는 하나 또는 복수의 프로세서로 구성될 수 있다. 여기서, 하나 또는 복수의 프로세서는 적어도 하나의 소프트웨어 또는 적어도 하나의 하드웨어 또는, 적어도 하나의 소프트웨어 및 적어도 하나의 하드웨어의 조합으로 구현될 수 있다. 일 예에 따라 적어도 하나의 프로세서에 해당하는 소프트웨어 또는 하드웨어 로직이 하나의 칩 내에 구현될 수 있다. 다른 예에 따라 복수의 프로세서 중 일부에 해당하는 소프트웨어 또는 하드웨어 로직은 하나의 칩 내에, 나머지에 해당하는 소프트웨어 또는 하드웨어 로직은 다른 칩 내에 구현될 수 있다.
구체적으로, 프로세서(120)는 메모리(110)에 저장된 적어도 하나의 인스트럭션(instruction)을 실행함으로써, 본 개시의 다양한 실시 예에 따른 전자 장치(100)의 동작을 수행할 수 있다.
일 실시 예에 따라 프로세서(120)는 디지털 영상 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), GPU(Graphics Processing Unit), AI(Artificial Intelligence) 프로세서, NPU (Neural Processing Unit), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, ASIC(application specific integrated circuit), FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
또한, 일 실시 예에 따른 인공 지능 모델(또는 신경망 모델)을 실행하기 위한 프로세서(120)는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU(Neural Processing Unit)와 같은 인공 지능 전용 프로세서과 소프트웨어의 조합을 통해 구현될 수 있다. 프로세서(120)는, 메모리(110)에 저장된 기 정의된 동작 규칙 또는 인공 지능 모델에 따라, 입력 데이터를 처리하도록 제어할 수 있다. 또는, 프로세서(120)가 전용 프로세서(또는 인공 지능 전용 프로세서)인 경우, 특정 인공 지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다. 예를 들어, 특정 인공 지능 모델의 처리에 특화된 하드웨어는 ASIC, FPGA 등의 하드웨어 칩으로 설계될 수 있다. 프로세서(120)가 전용 프로세서로 구현되는 경우, 본 개시의 실시 예를 구현하기 위한 메모리를 포함하도록 구현되거나, 외부 메모리를 이용하기 위한 메모리 처리 기능을 포함하도록 구현될 수 있다.
프로세서(120)는 입력 영상에서 깊이 정보를 획득할 수 있다. 여기서, 입력 영상은 정지 영상, 복수의 연속된 정지 영상(또는 프레임), 또는 동영상을 포함할 수 있다. 예를 들어, 입력 영상은 2D 영상이 될 수 있다. 여기서, 깊이 정보는 뎁스 맵 형태가 될 수 있다. 뎁스 맵(Depth map)이란 영상의 각 영역 별 깊이 정보를 포함하고 있는 테이블을 의미한다. 영역은 픽셀 단위로 구분될 수도 있고, 픽셀 단위보다 큰 기설정된 영역으로 정의될 수도 있다. 일 예에 따라 뎁스 맵은 0~255까지의 그레이 스케일(grayscale) 값 중 127 또는 128을 기준 값 즉, 0(또는 포컬 플레인)으로 하여 127 또는 128 보다 작은 값을 - 값으로 나타내고, 큰 값을 + 값으로 나타내는 형태가 될 수 있다. 포컬 플레인의 기준값은 0~255 사이에서 임의로 선택할 수 있다. 여기서, - 값은 침강을 의미하며, + 값은 돌출을 의미한다. 다만, 이는 일 예일 뿐이며, 뎁스 맵은 다양한 기준에 따라 다양한 값으로 뎁스를 표현할 수 있다.
일 예에 따라 프로세서(120)는 입력 영상을 영상 처리한 후, 영상 처리된 영상에 기초하여 깊이 정보를 획득할 수 있다. 여기서, 영상 처리는 영상 개선(image enhancement), 영상 복원(image restoration), 영상 변환(image transformation), 영상 분석(image analysis), 영상 인식(image understanding), 영상 압축(image compression), 영상 디코딩(image decoding) 또는 스케일링(scaling) 중 적어도 하나를 포함하는 디지털 영상 처리가 될 수 있다. 일 예에 따라 전자 장치(100)가 복수의 디스플레이 모듈를 포함하는 비디오 월(video wall) 디스플레이를 포함하도록 구현되는 경우 본 개시의 다양한 실시 예에 따른 동작은 입력된 영상을 처리하는 마스터 디스플레이 모듈에 포함된 메인 프로세서(또는 메인 프로세서를 포함하는 영상 처리 장치)에 의해 수행될 수 있다. 이 경우, 프로세서(120)는 획득된 출력 영상을 복수의 디스플레이 모듈 각각에서 디스플레이될 영상 영역으로 구분하고, 각 영상 영역에 대응되는 영상을 대응되는 디스플레이 모듈로 전송할 수 있다. 예를 들어, 복수의 디스플레이 모듈이 데이지 체인(daisy chain) 통신 방식으로 연결된 경우 해당 통신 방식으로 각 영상 영역에 대응되는 영상을 전송할 수 있다.
일 예에 따라 입력 영상에 대한 깊이 정보 획득 전에 다양한 전처리가 수행될 수 있으나, 이하에서는 설명의 편의를 위하여 입력 영상과 전처리된 영상을 구분하지 않고, 입력 영상이라고 명명하도록 한다.
프로세서(120)는 입력 영상에 포함된 제1 영상 프레임 및 제1 영상 프레임에 대응되는 제1 깊이 정보를 메모리(110)에 저장할 수 있다. 일 예에 따라 프로세서(120)는 제1 영상 프레임이 입력되면, 제1 영상 프레임을 전처리 또는/및 후처리를 적용하면서 제1 깊이 정보를 획득하여 메모리(110)에 저장할 수 있다. 여기서, 제1 영상 프레임 및 후술하는 제2 영상 프레임은 2D 단안 이미지 프레임일 수 있다.
일 예에 따라 프로세서(120)는 다양한 영상 처리 방법, 예를 알고리즘, 수식, 인공 지능 모델 등에 기초하여 제1 영상 프레임의 깊이 정보를 획득할 수 있다.
도 3a 및 도 3b는 일 실시 예에 따라 인공 지능 모델을 이용하여 깊이 정보를 획득하는 방법을 설명하기 위한 도면들이다.
일 실시 예에 따르면, 인공 지능 모델은 복수의 신경망 레이어를 포함하는 신경망 네트워크로 구현될 수 있다. 인공 지능 모델은 DNN(Deep Neural Network), CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등으로 구현될 수 있으나, 이에 한정되지 않는다. 인공 지능 모델은 영상이 입력되면, 깊이 정보를 출력하도록 기 학습될 수 있다. 여기서, 인공 지능 모델이 학습된다는 것은, 기본 인공 지능 모델(예를 들어 임의의 랜덤한 파라미터를 포함하는 인공 지능 모델)이 학습 알고리즘에 의하여 다수의 훈련 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공 지능 모델이 만들어짐을 의미한다. 이러한 학습은 별도의 서버 및/또는 시스템을 통해 이루어질 수 있으나, 이에 한정되는 것은 아니며 전자 장치에서 이루어질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다. 도 3b는 깊이 정보를 출력하도록 학습된 DNN 모델의 일 예시를 나타낸다. 다만, 도 3b에 도시된 DNN 모델은 일 예시일 뿐이며, 깊이 정보를 출력하도록 학습된 다양한 인공 지능 모델이 본 개시에 적용될 수 있음은 물론이다.
도 3a에 따르면, 프로세서(120)는 영상(예를 들어, 제1 영상 프레임)이 입력되면, 입력된 영상을 전처리(311)할 수 있다. 여기서, 전처리는 인공 지능 모델(312)이 인퍼런스(Inference)할 수 있도록 영상을 처리하는 것을 의미하며, 예를 들어, 영상 크기조절, 컬러 영역 변경, 영상 누적 등의 처리를 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, 인공 지능 모델(312)의 타입, 구조, 용량 등에 따라 다양한 전처리 기법이 적용될 수 있다.
전처리된 입력 영상은 인공 지능 모델(312)로 입력되어 처리(예를 들어, Inference)될 수 있다. 예를 들어, 인공 지능 모델(312)로 입력된 영상은 TFLite, Pytorch등의 소프트웨어 플랫폼과 GPU나 TPU 등 H/W 플랫폼을 동시에 활용하여 처리될 수 있다.
이 후, 인공 지능 모델(312)의 출력 값은 후처리될 수 있다. 예를 들어, softmax, maxlocation, roi conversion등 최종단에 필요한 여러 가지 프로세싱을 인공 지능 모델의 Inference 과정에서 플랫폼 내에서 처리할 수도 있고, 또는 DNN 결과 값을 프로세서(120)가 직접 후처리할 수 있다. 프로세서(120)는 후처리 결과에 기초하여 영상의 깊이 정보를 획득할 수 있다.
이어서, 프로세서(120)는 제1 영상 프레임 이후의 제2 영상 프레임이 입력되면, 다양한 실시 예에 따라 제2 영상 프레임을 처리하여 제2 영상 프레임의 깊이 정보를 획득할 수 있다.
이하에서는 도면을 참조하여 프로세서(120)가 제2 영상 프레임의 깊이 정보(이하에서 최종 깊이 정보라 함)를 획득하는 다양한 실시 예에 대해 설명하도록 한다.
도 4는 일 실시 예에 따른 영상 처리 방법을 설명하기 위한 흐름도이다.
도 4에 따르면, 프로세서(130)는 프로세서(120)는 제1 영상 프레임 이후의 제2 영상 프레임로부터 제2 깊이 정보를 획득한다(S310). 이 경우, 프로세서는 제1 영상 프레임과 동일/유사한 방식으로 제2 깊이 정보를 획득할 수 있다. 여기서, 제2 영상 프레임이 현재 프레임인 경우 제1 영상 프레임은 제2 영상 프레임에 시간적으로 연속되는 이전 프레임이 될 수 있다.
프로세서(120)는 제1 영상 프레임 및 제2 영상 프레임의 영상 차이 값을 획득할 수 있다(S320). 다만, 제1 영상 프레임이 입력되는 첫번째 프레임인 경우 기 저장된 기준 프레임, 기 저장된 깊이 정보 등에 기초하여 제1 영상 프레임에 대응되는 영상 차이 값을 획득하는 것도 가능하다, 다만, 이에 한정되는 것은 아니며, 두번째 프레임부터 영상 차이 값을 산출하는 것도 가능하다.
한편, 영상 차이 값은 R(red)/G(green)/B(blue) 픽셀 값 차이에 기초하여 획득되거나, 옵티컬 플로우(optical flow) 정보에 기초하여 획득될 수 있다. 다만, 경우에 따라 R/G/B 외 다른 픽셀이 포함되어 있는 경우(예를 들어, white 픽셀) 해당 픽셀 값도 영상 차이 값을 산출하는데 이용될 수 있음은 물론이다. 예를 들어, 8비트 영상의 경우 픽셀 값은 0~255 사이의 값이 될 수 있다.
일 실시 예에 따라 프로세서(120)는 제1 영상 프레임에 포함된 복수의 제1 픽셀 영역 및 제2 영상 프레임에 포함된 대응되는 복수의 제2 픽셀 영역 간 픽셀 차이 값을 획득하고, 픽셀 차이 값에 기초하여 영상 차이 값을 획득할 수 있다. 여기서, 픽셀 영역은 적어도 하나의 픽셀 블록 또는 픽셀 블록들의 집합을 의미할 수 있다. 또한, 픽셀 블록(pixel block)은 하나의 픽셀 또는 적어도 하나의 픽셀을 포함하는 인접한 픽셀들의 집합을 의미할 수 있다.
일 예로, 프로세서(120)는 제1 및 제2 영상 프레임에 포함된 픽셀 영역 간 R/G/B 픽셀 값 차이를 각각 산출하여 영상 차이 값을 획득할 수 있다. 구체적으로, 제1 영상 프레임에서 위치(X, Y)의 픽셀 데이터가 P1x,y = (R1x,y, G1x,y, B1x,y)이고, 제2 영상 프레임에서 위치(X, Y)의 픽셀 데이터가 P2x,y = (R2x,y, G2x,y, B2x,y)인 경우 각 픽셀 데이터를 단순 평균((R+G+B)/3)하거나, minMax 평균((max(R,G,B) + min(R,G,B))/2)하여 영상 차이 값을 획득할 수 있다. 이 경우, 대응되는 R/G/B/ 픽셀 데이터 간 차(ABS(P2x,y - P1x,y) = (ABS(R2x,y - R1x,y), ABS(G2x,y - G1x,y), ABS(B2x,y- B1x,y)))를 산출하는 이를 이용할 수 있다. 여기서, ABS는 절대 값을 의미할 수 있다. 또는, 프로세서(120)는 제1 및 제2 영상 프레임에 포함된 픽셀 영역 간 R/G/B 픽셀 값 차이를 Luminance로 환산하여 영상 차이 값을 획득할 수 있다.
첫번째 예시로, 프로세서(120)는 하기 수학식 1과 같이 3채널 값, 예를 들어, RGB 값의 단순 평균에 기초하여 영상 차이 값을 산출할 수 있다.
Figure pat00001
두번째 예시로, 프로세서(120)는 하기 수학식 2와 같이 minMax평균에 기초하여 영상 차이 값을 산출할 수 있다.
여기서, D-Tx,y는 (x, y) 픽셀 위치에서 영상 차이 값을 의미한다.
Figure pat00002
세번째 예시로, 프로세서(120)는 하기 수학식 3과 같이 휘도(Luminance)에 기초하여 영상 차이 값을 산출할 수 있다.
Figure pat00003
여기서, 0.299, 0.587, 0.114는 relative luminance을 위해 잘 알려진 수식에서 정의된 상수일 수 있다. 다만, 이는 일 예시일 뿐이며 RGB 값을 Luminace로 변경하는 다양한 알고리즘이 적용될 수 있음은 물론이다.
다른 예로, 프로세서(120)는 R/G/B 3채널을 1채널로 변경한 후 1채널에 대응되는 픽셀 영역 간 차이에 기초하여 영상 차이 값을 획득할 수 있다. 이 경우에도 단순 평균, minMax 평균, Luminance 가 이용될 수 있다.
첫번째 예시로, 프로세서(120)는 하기 수학식 4와 같이 1채널 값의 단순 평균에 기초하여 영상 차이 값을 산출할 수 있다.
Figure pat00004
Figure pat00005
두번째 예시로, 프로세서(120)는 하기 수학식 5와 같이 minMax평균에 기초하여 영상 차이 값을 산출할 수 있다.
Figure pat00006
Figure pat00007
Figure pat00008
세번째 예시로, 프로세서(120)는 하기 수학식 6와 같이 Luminance에 기초하여 영상 차이 값을 산출할 수 있다.
Figure pat00009
Figure pat00010
다른 실시 예에 따라 프로세서(120)는 제1 영상 프레임 및 제2 영상 프레임에서 획득된 옵티컬 플로우(optical flow) 정보에 기초하여 영상 차이 값을 획득할 수 있다. 여기서, 옵티컬 플로우란 시간축에 연속적인 이미지 데이터에서 각 픽셀의 위치를 추적하는 기술로, 복수의 연속하는 프레임에서 각 픽셀의 이동 경로를 예측할 수 있다. 일 예에 따라 옵티컬 플로우는 딥러닝 네트워크를 이용하여 획득될 수 있다. 예를 들어, FlowNet이라는 딥러닝 네트워크를 이용할 수 있으나, 이에 한정되는 것은 아니다. 구체적으로, 컨벌루션 레이어(convolution layer)를 통해 피쳐(feature)를 추출하고 리파인(refine)하여 옵티컬 플로우 맵(optical flow map)을 예측할 수 있다. 이 경우 복수의 프레임을 입력으로 하여, 예측된 값과 정답 이미지를 비교하여 학습을 진행하는 방식을 이용할 수 있다.
일 예에 따라 프로세서(120)는 획득된 영상 차이 값에 기초하여 제1 깊이 정보 및 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별할 수 있다(S430). 일 예에 따라 프로세서(120)는 제1 영상 프레임 및 제2 영상 프레임의 영상 차이 값에 비례하여 제2 가중치는 증가되고 제1 가중치는 감소되도록 제1 가중치 및 제2 가중치를 식별할 수 있다. 즉, 프로세서(120)는 영상 차이 값이 크면, 제2 영상 프레임 즉, 현재 프레임의 가중치가 상대적으로 크고, 영상 차이 값이 작으면 제1 영상 프레임, 즉 이전 프레임의 가중치가 상대적으로 크도록 가중치를 결정할 수 있다. 일 예에 따라 영상 차이 값이 매우 커서 제2 가중치가 1로 설정되고 제1 가중치가 0으로 설정되는 경우 프로세서(120)는 현재 프레임의 제2 깊이 정보, 예를 들어, 현재 프레임을 인공 지능 모델에 입력하여 획득한 깊이 정보를 현재 프레임의 최종 깊이 정보로서 식별하게 된다.
일 예에 따라 프로세서(120)는 하기 수학식 7에 기초하여 제2 영상 프레임의 최종 깊이 정보를 획득할 수 있다.
Figure pat00011
REx,y는 X,Y 위치에서 깊이 예측값, Dx,y 는 영상차, RPx,y는 이전 프레임의 깊이값, RTx,y는 현재 프레임의 깊이 값을 의미한다. 여기서, 영상차 Dx,y 는 8bit unsigned int 기준 0~255의 값을 가질 수 있으나, 이에 한정되는 것은 아니다.
이와 같이 영상 차이 값의 크기에 기초하여 가중치를 조정하게 되면 인접 프레임 간 영상 차이가 크지 않을 경우 이전 프레임의 깊이 예측 값을 계속하여 이용할 수 있게 되므로 깊이 예측 값에 따른 플리커를 저감하는 효과가 있게 된다.
다른 예에 따라 프로세서(120)는 획득된 영상 차이 값 및 제1 임계 값에 기초하여 제1 깊이 정보 및 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별할 수 있다(S430).
구체적으로, 프로세서(120)는 획득된 영상 차이 값이 제1 임계 값보다 큰 경우 획득된 영상 차이 값을 이용하고 제1 임계 값 미만인 경우 기 설정된 값을 영상 차이 값으로 이용할 수 있다. 이는 카메라 노이즈 등으로 인한 오차를 포함하는 다양한 오차를 반영하기 위함이다. 여기서, 기 설정된 값은 0을 포함할 수 있으나, 이에 한정되는 것은 아니며, 실험에 의해 획득된 값으로 설정 가능하다.
예를 들어, 하기 수학식 8에 기초하여 제1 임계 값(thr 1)에 기초한 영상 차이 값 D_THRx,y를 획득할 수 있다.
Figure pat00012
여기서, D_Tx,y는 현재 프레임의 뎁스 값을 의미한다. 예를 들어, "Thresholding" 함수는 D-Tx,y > thr 1인 경우 결과 값이 D-Tx,y 이고, 그 밖의 경우 0인 함수일 수 있으나, 반드시 이에 한정되는 것은 아니다. 수학식 8에서는 영상 차이 값이 제1 임계 값 이하인 경우, 기 설정된 값은 0인 것으로 상정하였으나 기 설정된 값이 반드시 이에 한정되는 것은 아니다. 만약 기 설정된 값이 0으로 설정되면, 프로세서(120)는 영상 차이 값이 제1 임계 값보다 큰 경우에만 제1 가중치 및 제2 가중치를 이용하여 최종 영상 차이 값을 획득할 수 있게 된다.
일 실시 예에 따라 프로세서(120)는 노이즈 등으로 인한 오차가 반영된 영상 차이 값에 대해 보다 강한 게인을 적용하기 위하여 제2 임계 값에 기초하여 영상 차이 값을 획득할 수 있다. 일 예에 따라 상술한 방법으로 획득된 영상 차이 값이 제2 임계 값을 초과하면 기 설정된 값을 영상 차이 값으로 이용하고, 영상 차이 값이 제2 임계 값 이하이면 상술한 다양한 방법으로 획득된 영상 차이 값을 이용할 수 있다. 여기서, 적용되는 제2 임계 값은 수학식 8에서 이용되는 제1 임계 값과 다른 임계 값을 의미한다. 예를 들어, 하기 수학식 9에 기초하여 제2 임계 값에 기초한 영상 차이 값 Dx,y 를 획득할 수 있다.
Figure pat00013
여기서, "Thresholding" 함수는 D-Tx,y > thr2인 경우 결과 값이 기설정된 값 예를 들어, 255 이고, 그 밖의 경우 D-Tx,y 인 함수일 수 있으나, 반드시 이에 한정되는 것은 아니다. 다만, 경우에 따라 수학식 11(또는 수학식 12)에 따른 공간 확산이 적용되는 경우 D-Tx,y 은 D-Sx,y 로 대체될 수 있음은 물론이다.
이 후, 프로세서(120)는 획득된 제1 가중치 및 제2 가중치를 각각 제1 깊이 정보 및 제2 깊이 정보에 적용하여 제2 영상 프레임에 대응되는 최종 깊이 정보를 획득할 수 있다(S440). 이어서, 프로세서(120)는 획득된 최종 깊이 정보에 기초하여 제2 영상 프레임과 관련된 영상을 생성하거나 획득된 최종 깊이 정보를 외부 장치로 전송할 수 있다.
도 5는 다른 실시 예에 따른 영상 처리 방법을 설명하기 위한 흐름도이다.
도 5에 도시된 과정 중 S510 내지 S540의 과정은 도 4에 도시된 S410 내지 S440의 과정과 동일 유사하므로 중복되는 설명은 생략하도록 한다.
이전 프레임의 깊이 정보 및 현재 프레임의 깊이 정보는 적어도 하나의 픽셀 단위로 산출되므로 인접 픽셀 간 깊이 정보 값이 큰 경우 로컬 공간적으로 지터(jitter)가 발생될 수 있게 된다. 이에 따라 도 5에서는 이러한 지터를 방지하기 위하 필터링, 예를 들어, IIR 필터링을 적용하여 현재 프레임의 최종 깊이 정보를 산출할 수 있다.
이에 따라 도 5에 따르면, 프로세서(120)는 제1 가중치가 적용된 제1 깊이 정보 및 제2 가중치가 적용된 제2 깊이 정보에 IIR(Infinite Impulse Response) 필터링을 위한 제3 가중치 및 제4 가중치를 적용하여 최종 깊이 정보를 획득할 수 있다.
일 예에 따라 프로세서(120)는 하기 수학식 10에 기초하여 제2 영상 프레임의 최종 깊이 정보를 획득할 수 있다.
Figure pat00014
여기서, R x,y 는 최종 깊이 예측 값을 의미한다. w1 및 w2는 IIR(Infinite Impulse Response) 필터링 방식에 기초하여 결정된 가중치 값이며, w1 및 w2는 합은 1일 수 있다.
이와 같은 필터링을 이용하게 되면, 제2 영상 프레임의 깊이 정보는 상대적으로 안정적인 상태를 유지할 수 있게 된다.
다만, 필터링을 위한 가중치(즉, 수학식 10의 가중치)가 적용되는 경우 반드시 수학식 7의 가중치가 적용된 후 수학식 10의 가중치가 적용될 필요는 없다. 예를 들어, 해당 가중치는 수학식 7의 가중치에 게인 형태로 반영 즉, 수학식 7의 가중치가 수정될 수 있음은 물론이다.
도 6, 도 7a, 도 7b 및 도 7c는 다른 실시 예에 따른 영상 처리 방법을 설명하기 위한 도면들이다.
도 6에 도시된 과정 중 S610 및 S620의 과정은 도 4에 도시된 S410 및 S420의 과정과 동일 유사하므로 중복되는 설명은 생략하도록 한다.
일 실시 예에 따르면, 프로세서(120)는 제1 영상 프레임 및 상기 제2 영상 프레임에 포함된 적어도 일 영역에서 획득된 영상 차이 값을 기 설정된 횟수만큼 공간적으로 확산시키고, 공간적으로 확산된 영상 차이 값 및 제1 임계 값에 기초하여 제1 깊이 정보 및 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별할 수 있다. 예를 들어, 프로세서(120)는 dilate morphology, blurring 등을 이용하여 영산 차이 값을 확산시킬 수 있다.
도 7a는 dilate morphology 처리의 예시를 설명하기 위한 도면이고, 도 7b 및 도 7c는 blurring 처리의 예시를 설명하기 위한 도면이다.
프로세서(120)는 dilate morphology 처리를 통해 영상 차이 값이 발생된 영역을 확장시킬 수 있다. 예를 들어, 프로세서(120)는 도 7a에 도시된 바와 같은 structuring element를 이용하여 확장 처리를 복수 회 반복하여 dilate morphology 처리를 수행할 수 있다.
프로세서(120)는 blurring 처리를 통해 영상 차이 값이 발생된 영역을 확장시킬 수 있다. 예를 들어, 프로세서(120)는 가우시안 필터를 이용하여 blurring 처리를 수행할 수 있다. 여기서, 가우시안 분포는 도 7b에 도시된 바와 같이 x축의 0은 가중치가 크고, +/- 부분로 갈수록 가중치가 적어지는 형태가 될 수 있고, 이러한 가우시안 분포를 3*3 형태의 마스크(70)에 적용하면 마스크(70) 중심은 가중치가 크고, 마스크(70)의 가장자리로 갈수록 가중치가 적어지는 형태가 될 수 있다. 다만 도 7b에 도시된 수치는 예로 든 것이며, 필터링 수치는 가우시안 함수의 시그마 값에 따라 달라짐은 물론이다. 프로세서(120)는 가우시안 마스크(70)를 임계 값 이상의 영상 차이가 발생된 영상차 영역에 적용하여 블러링 처리할 수 있다. 일반적으로, 가우시안 필터는 스무딩을 통한 정규 분포, 확률 분포에 의해 생성된 잡음을 제거하기 위한 필터로 쓰이지만, 일 실시 예에서는 영상차 영역을 스무딩시켜 영상차가 발생된 픽셀을 포함한 그 주변 픽셀 영역까지 대상 영역을 확장시키는 기능을 할 수 있다.
이는 영상 차이 값의 발생된 영역의 크기가 작거나, 동일한 색상으로 인해 모션이 발생했음에도 영상 차이 값이 없다고 판단되어 이전 영상 프레임의 깊이 정보가 지속적으로 누적될 우려가 있기 때문이다. 이에 따라 프로세서(120)는 영상 차이 값을 공간적으로 확산시키는 로직을 적용하여 이러한 문제를 해결할 수 있다.
일 예에 따라 프로세서(130)는 하기 수학식 11 및/또는 수학식 12에 기초하여 공간 확산이 적용된 영상 차이 값을 획득할 수 있다. 일 예에 따라 수학식 11에 기초하여 dilate morphology 처리를 하거나, 수학식 12에 기초하여 blurring 처리를 할 수 있다.
Figure pat00015
여기서, Dilate는 dilate morphology 처리 함수를 의미하며, tap은 확장의 반복 횟수를 의미한다. 수학식 11에서 tap을 50으로 설정하였으나, 이는 일 예일 뿐이며, tap의 횟수는 소스 영역의 크기, 확산 타겟 영역의 크기 등에 기초하여 다양하게 변경 설정 가능함은 물론이다.
Figure pat00016
여기서, Blur는 blurring 처리 함수를 의미하며, tap은 블러링의 반복 횟수를 의미한다. 수학식 11에서 tap을 101로 설정하였으나, 이는 일 예일 뿐이며, tap의 횟수는 소스 영역의 크기, 확산 타겟 영역의 크기 등에 기초하여 다양하게 변경 설정 가능함은 물론이다.
수학식 11 및 12에서, D-THRx,y는 수학식 8에 따라 제1 임계 값이 적용된 영상 차이 값 또는 수학식 9에 따라 제2 임계 값이 적용된 영상 차이 값이 될 수 있다. 다만, 일 실시 예에 따라 제1 임계 값, 제2 임계 값 등이 적용되지 않는 경우 수학식 7에서 산출된 REx,y는 등의 값으로도 대체될 수 있음은 물론이다.
다만, 이러한 확산 로직은 영상차를 산출한 방식(예를 들어, 픽셀차 기반, 옵티컬 플로우 기반), 애플리케이션의 타입 등에 따라 선택적으로 적용 가능하다. 예를 들어, DNN 기반의 옵티컬 플로우를 이용하여 영상차를 산출하는 경우 실제 움직임이 발생한 부분만 비교적 정확하게 구분이 가능하므로 확산 로직을 이용하지 않을 수 있다. 또는, 애플리케이션에 따라 확산 로직이 아닌, 일정 시간 이후 누적된 이전 프레임의 깊이 정보를 리셋하여 이용하는 방법을 이용하는 것도 가능하다.
한편, 상술한 방식으로 공간 확산을 통한 영상 차이 값이 획득되면, 프로세서(120)는 획득된 영상 차이 값 및 제1 임계 값에 기초하여 제1 깊이 정보 및 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별할 수 있다(S640).
이 후, 프로세서(120)는 제1 가중치 및 제2 가중치를 각각 제1 깊이 정보 및 제2 깊이 정보에 적용하여 제2 영상 프레임에 대응되는 최종 깊이 정보를 획득할 수 있다(S650). 여기서, S640, S650 과정은 도 4에서 설명한 S430, S440 과정과 동일/유사하므로 자세한 설명은 생략하도록 한다.
도 8, 도 9a, 도 9b 및 도 9c은 다른 실시 예에 따른 영상 처리 방법을 설명하기 위한 도면들이다.
일 실시 예에 따르면, 프로세서(120)는 제2 영상 프레임 중 적어도 일 영역을 식별하고 식별된 영역에 대해서만 본 개시의 일 실시 예에 따른 영상차를 반영한 깊이 정보를 획득할 수 있다.
도 8에 도시된 흐름도에 따르면, 프로세서(120)는 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션(segmentation)할 수 있다(S810). 이 경우, 프로세서(120)는 제2 영상 프레임에 포함된 각 픽셀 영역 별 깊이 값에 기초하여 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션할 수 있다. 또는 프로세서(120)는 제2 영상 프레임에 포함된 각 픽셀 영역 별 픽셀 값에 기초하여 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션할 수 있다.
일 예에 따라 도 9a에 도시된 영상(910)과 같이 동일 오브젝트의 경우 유사한 깊이 값을 가질 수 있다. 여기서, 세그먼테이션기법(예를 들어, K-means clustering algorithm)을 적용하여 제2 영상 프레임을 복수의 제2 영역 즉, 복수의 세그먼테이션 그룹으로 식별할 수 있다. k-평균 알고리즘(K-means clustering algorithm)은 주어진 데이터를 k개의 클러스터로 묶는 알고리즘으로, 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작한다. 이 알고리즘은 자율 학습의 일종으로, 레이블이 달려 있지 않은 입력 데이터에 레이블을 달아주는 역할을 수행한다. 이 알고리즘은 EM 알고리즘을 이용한 클러스터링과 비슷한 구조를 가지고 있다. 도 9b는 현재 프레임 즉, 제2 영상 프레임(920)에 포함된 깊이 값에 k-평균 알고리즘을 적용하여 큰 세그먼테이션 그룹으로 식별한 일 예를 도시한다.
다만, 깊이 값을 기분으로 세그먼트하는 것을 일 예일 뿐이며, 컬러 클러스터링, 픽셀 값 기반 오브젝트 구분 방법, ROI(Region of interest) 식별 방법 등 다양한 방식을 적용하여 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션할 수도 있다.
이어서, 프로세서(120)는 제1 영상 프레임에서 복수의 제2 영역 각각에 대응되는 제1 영역을 식별할 수 있다(S820). 예를 들어, 프로세서는(120)는 제2 영상 프레임에서 복수의 제2 영역 각각에 포함된 픽셀들의 위치(좌표 정보)에 대응되는 픽셀들을 포함하는 복수의 제1 영역을 식별할 수 있다.
이어서, 복수의 제1 영역 각각에 대응되는 제2 영역 간 차이 값(또는 변화량)을 식별할 수 있다(S830). 여기서, 제1 영역 및 제2 영역 간 차이 값(또는 변화량)은 제1 영역 및 대응되는 제2 영역에 포함된 픽셀들의 차이값에 기초하여 획득될 수 있다. 일 예로, 제1 영역 및 제2 영역에 포함된 대응되는 픽셀들의 R/G/B 픽셀 차이 값들의 평균 값에 기초하여 차이 값을 획득할 수 있다. 예를 들어, 제1 영역 및 제2 영역에 포함된 대응되는 픽셀들의 R/G/B 픽셀 차이 값들의 절대 값을 합산한 후 3으로 나누어 영역 간 차이 값을 획득할 수 있다.
일 예에 따라 복수의 제1 영역 및 제2 영역을 S=[S1, S2, S3,.., Sn]이라 정의한다. 이 경우, 현재 프레임에서 S1, S2,.., Sn 영역에 각각에 속하는 픽셀을 IC1x,y∈S1, IC2x,y∈S1,..., ICnx,y∈Sn이라 정의하고, 이전 프레임에서 S1, S2,.., Sn 영역에 각각에 속하는 픽셀을 IP1x,y∈S1, IP2x,y∈S1,..., IPnx,y∈Sn이라 정의할 수 있다.
이 경우, 프로세서(120)는 하기 수학식 13에 기초하여 각 영역 간 차이 값을 획득할 수 있다.
Figure pat00017
Figure pat00018
...
Figure pat00019
여기서, SD1은 S1 영역에 대응되는 차이 값, SD2는 S2 영역에 대응되는 차이 값, SDn은 S1 영역에 대응되는 차이 값을 의미한다.
이어서, 프로세서(120)는 각 영역 별로 식별된 차이 값에 기초하여 복수의 제1 영역 중 적어도 하나의 영역을 식별할 수 있다(S840). 이 경우, 프로세서(120)는 식별된 영역에 대해서만 획득된 영상 차이 값 및 제1 임계 값에 기초하여 제1 깊이 정보 및 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별한 후, 최종 영상 차이 값을 산출할 수 있다(S850). 다만, 다른 실시 예에 따라 각 영역 별로 식별된 차이 값에 기초하여 제1 임계 값의 크기를 상이하게 설정하여 S850 과정을 진행하는 것도 가능할 수 있다.
일 예에 따라 프로세서(120)는 각 세그먼테이션 그룹에 대응되는 인접 프레임 간의 픽셀 차이 값(또는 픽셀 변화량)을 계산해서 픽셀 차이값이 일정 값 미만인 그룹의 깊이 값은 이전 프레임의 깊이 값을 최종 깊이 값으로 이용하고, 차이 값(또는 변화량)이 일정 값 이상인 그룹의 깊이 값은 현재 프레임에 포함된 픽셀 값들에 대응되는 깊이 값을 최종 깊이 값으로 이용할 수 있다.
예를 들어, 도 9c에 도시된 바와 같이 현재 영상 프레임을 n frame이라고 하면 깊이 추정 값에 세그먼테이션을 적용한 결과는 우측 하단의 뎁스 영상(943)과 같다. 예를 들어, 1 영역의 경우, n-1 frame 최상측의 영상(931)의 해당 영역의 feature값(RGB 평균, RGB histogram 등)이 n frame의 해당 영역의 영상 feature 값과 거의 유사함을 알 수 있다. 이에 반해 2 영역 및 3 영역의 경우 손 영역에 의해 n frame 및 n-1 frame의 영상 feature가 변하게 된다. 따라서 1 영역은 기존 n-1 frame의 깊이 추정 값을 그대로 이용하고 2 영역 및 3 영역은 n frame의 깊이 추정 값을 이용할 수 있다. 단, 깊이 추정 값을 바로 이용할 경우 flicker 등이 발생할 수 있으므로 2 영역 및 3 영역에 해당하는 픽셀에 대응하는 깊이 추정 값은 상술한 임계 값을 이용하는 방식을 적용하여 획득할 수 있다.
이와 같은 실시 예에 따르면, 모션이 거의 없는 영역에 대해서는 이전 프레임의 깊이 정보를 그대로 이용하고, 나머지 영역에 대해서만 깊이 정보를 계산하게 되므로 연산량이 작아지며, 영역 단위로 적용되므로 픽셀 단위에서 발생할 수 있는 플리커를 감소시킬 수 있게 된다.
한편, 상술한 실시 예에서는 현재 프레임의 깊이 추정 값에 기초하여 세그먼테이션을 적용하는 것으로 설명하였으나, 이전 프레임의 깊이 추정 값을 기초로 세그먼테이션을 적용할 수 있음은 물론이다.
상술한 도 3 내지 도 9c에 도시된 다양한 처리 중 중복되는 처리에 대해서는 상세 설명을 하지 않았지만 동일/유사한 처리가 수행될 수 있음은 물론이다.
도 10은 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 도면이다.
도 10에 도시된 실시 예에 따르면, 프로세서(120)는 입력 영상, 예를 들어 제1 영상 프레임이 수신되면, 제1 영상 프레임을 메모리(110)에 저장하고, 전처리 모듈(121)을 통해 제1 영상 프레임을 전처리할 수 있다. 여기서, 전처리는 DNN 모델(122)이 인퍼런스(Inference)할 수 있도록 영상을 처리하는 것을 의미하며, 예를 들어, 영상 크기 조절, 컬러 영역 변경, 영상 누적 등의 처리를 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, DNN 모델(122)의 타입, 구조, 용량 등에 따라 다양한 전처리 기법이 적용될 수 있다.
전처리된 제1 영상 프레임은 DNN 모델(122)로 입력되어 처리(예를 들어, Inference)될 수 있다. 예를 들어, DNN 모델(122)로 입력된 영상은 TFLite, Pytorch등의 소프트웨어 플랫폼과 GPU나 TPU 등 H/W 플랫폼을 동시에 활용하여 처리될 수 있다.
이어서, DNN 모델(122)의 출력 값은 후처리 모듈(123)을 통해 후처리될 수 있다. 예를 들어, softmax, maxlocation, roi conversion등 최종단에 필요한 여러 가지 프로세싱을 인공 지능 모델의 Inference 과정에서 플랫폼 내에서 처리할 수도 있고, 또는 DNN 결과 값을 프로세서(120)가 직접 후처리할 수 있다. 프로세서(120)는 후처리 결과에 기초하여 제1 영상 프레임의 깊이 정보를 획득하여 메모리(110)에 저장할 수 있다.
이 후, 프로세서(120)는 제1 영상 프레임 이후의 제2 영상 프레임이 입력되면, 상술한 방식으로 제2 영상 프레임을 처리하여 제2 영상 프레임의 깊이 정보를 획득할 수 있다.
또한, 프로세서(120)는 제1 영상 프레임 이후의 제2 영상 프레임이 입력되면, 제2 영상 프레임을 메모리(110)에 저장하고, 영상차 계산 모듈(125)을 통해 메모리(110)에 저장된 제1 영상 프레임 및 제2 영상 프레임 간 영상 차이 값을 산출할 수 있다.
이 후, 프로세서(120)는 안정화 모듈(124)을 이용하여 영상 차이 값 및 제1 영상 프레임의 깊이 정보 및/또는 제2 영상 프레임의 깊이 정보에 기초하여 제2 영상 프레임에 대응되는 최종 깊이 정보 값을 획득할 수 있다.
상술한 실시 예에서 전처리 모듈(121), DNN 모델(122), 후처리 모듈(123), 안정화 모듈(124) 및 영상차 계산 모듈(125) 등을 구분하여 설명하였으나, 이는 구현 예에 따라 하나의 모듈로 구현되거나, 적어도 일부 모듈이 기존 모듈에 결합되거나, 기존 모듈이 수정되는 형태로 구현될 수 있다. 또한, 각 모듈 들은 구현 예에 따라 적어도 하나의 하드웨어, 또는/및 적어도 하나의 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 일 구현 예를 나타내는 도면이다.
도 11에 따르면, 전자 장치(100')는 메모리(110), 프로세서(120), 디스플레이(130), 통신 인터페이스(140), 사용자 인터페이스(150), 카메라(160) 및 출력부(170)를 포함한다. 도 11에 도시된 구성 중 도 2에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
디스플레이(130)는 자발광 소자를 포함하는 디스플레이 또는 비자발광 소자 및 백라이트를 포함하는 디스플레이로 구현될 수 있다. 예를 들어, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, LED(Light Emitting Diodes), PDP(Plasma Display Panel), QLED(Quantum dot light-emitting diodes) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(160) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(130)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 롤러블 디스플레이(rollable display), 3차원 디스플레이(3D display), 복수의 디스플레이 모듈이 물리적으로 연결된 디스플레이 등으로 구현될 수 있다. 프로세서(120)는 본 개시의 다양한 실시 예에 따라 처리된 출력 영상을 출력하도록 디스플레이(130)를 제어할 수 있다.
통신 인터페이스(140)는 외부 장치와 통신을 수행하는 구성 요소일 수 있다. 예를 들어 통신 인터페이스(140)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 웹 하드) 등으로부터 스트리밍 또는 다운로드 방식으로 영상 신호를 입력받을 수 있다. 여기서, 영상 신호는 SD(Standard Definition), HD(High Definition), Full HD 또는 Ultra HD 영상 중 어느 하나의 디지털 영상 신호가 될 수 있으나 이에 한정되는 것은 아니다. 일 실시 예에 따라 프로세서(120)는 획득된 깊이 정보를 통신 인터페이스(140)를 통해 외부 장치(예를 들어, 외부 서버, 사용자 단말 등)으로 전송할 수 있다. 다른 예에 따라 프로세서(120)는 깊이 정보에 기초하여 획득된 영상을 통신 인터페이스(140)를 통해 헤드셋, 안경, 헬멧 등 같은 웨어러블 장치로 전송할 수도 있다.
사용자 인터페이스(150)는 버튼, 터치 패드, 마우스 및 키보드와 같은 장치로 구현되거나, 상술한 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린, 리모콘 송수신부 등으로 구현될 수 있다. 리모콘 송수신부는 적외선 통신, 블루투스 통신 또는 와이파이 통신 중 적어도 하나의 통신 방식을 통해 외부 원격 제어 장치로부터 리모콘 신호를 수신하거나, 리모콘 신호를 송신할 수 있다.
카메라(160)는 기 설정된 이벤트에 따라 턴 온 되어 촬영을 수행할 수 있다. 카메라(160)는 촬상된 영상을 전기적인 신호로 변환하고 변환된 신호에 기초하여 영상 데이터를 생성할 수 있다. 예를 들어, 피사체는 반도체 광학소자(CCD; Charge Coupled Device)를 통해 전기적인 영상 신호로 변환되고, 이와 같이 변환된 영상 신호는 증폭 및 디지털 신호로 변환된 후 신호 처리될 수 있다.
출력부(170)는 음향 신호를 출력한다. 예를 들어, 출력부(170)는 프로세서(120)에서 처리된 디지털 음향 신호를 아날로그 음향 신호로 변환하고 증폭하여 출력할 수 있다. 예를 들어, 출력부(170)는 적어도 하나의 채널을 출력할 수 있는, 적어도 하나의 스피커 유닛, D/A 컨버터, 오디오 앰프(audio amplifier) 등을 포함할 수 있다. 일 예에 따라 출력부(170)는 다양한 멀티 채널 음향 신호를 출력하도록 구현될 수 있다. 이 경우, 프로세서(120)는 입력 영상의 인핸스 처리에 대응되도록 입력된 음향 신호를 인핸스 처리하여 출력하도록 출력부(170)를 제어할 수 있다. 예를 들어, 프로세서(120)는 입력된 2채널 음향 신호를 가상의 멀티 채널(예를 들어, 5.1 채널) 음향 신호로 변환하거나, 전자 장치(100')가 놓인 위치를 인식해 공간에 최적화된 입체 음향 신호로 처리하거나, 입력 영상의 타입(예를 들어 컨텐츠 장르)에 따라 최적화된 음향 신호를 제공할 수 있다.
전자 장치 (100')는 구현 예에 따라 튜너 및 복조부를 추가적으로 포함할 수 있다. 튜너(미도시)는 안테나를 통해 수신되는 RF(Radio Frequency) 방송 신호 중 사용자에 의해 선택된 채널 또는 기 저장된 모든 채널을 튜닝하여 RF 방송 신호를 수신할 수 있다. 복조부(미도시)는 튜너에서 변환된 디지털 IF 신호(DIF)를 수신하여 복조하고, 채널 복호화 등을 수행할 수도 있다. 일 실시 예에 따라 튜너를 통해 수신된 입력 영상은 복조부(미도시)를 통해 처리된 후, 본 개시의 일 실시 예에 따른 섀도우 처리를 위해 프로세서(120)로 제공될 수 있다.
상술한 다양한 실시 예들에 따르면, 높은 비용을 들이지 않고 간단한 영상 처리 기법을 활용하여 2D 영상으로부터 정확한 깊이 정보를 획득할 수 있게 된다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다. 또는 상술한 본 개시의 다양한 실시 예들에 따른 방법들 중 적어도 일부는 딥 러닝 기반의 인공 지능 모델 즉, 학습 네트워크 모델을 이용하여 수행될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 전자 장치 110: 메모리
120: 프로세서 130: 디스플레이
140: 통신 인터페이스 150: 사용자 인터페이스
160: 카메라 170: 출력부

Claims (20)

  1. 전자 장치에 있어서,
    제1 영상 프레임 및 상기 제1 영상 프레임의 제1 깊이 정보를 저장하는 메모리; 및
    상기 메모리와 연결되어 상기 전자 장치를 제어하는 적어도 하나의 프로세서;를 포함하며,
    상기 적어도 하나의 프로세서는,
    상기 제1 영상 프레임 이후의 제2 영상 프레임의 제2 깊이 정보를 획득하고,
    상기 제1 영상 프레임 및 상기 제2 영상 프레임의 영상 차이 값을 획득하고,
    상기 획득된 영상 차이 값 및 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하고,
    상기 제1 가중치 및 상기 제2 가중치를 각각 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 적용하여 상기 제2 영상 프레임에 대응되는 최종 깊이 정보를 획득하고,
    상기 획득된 최종 깊이 정보에 기초하여 상기 제2 영상 프레임과 관련된 영상을 생성하거나 획득된 최종 깊이 정보를 외부 장치로 전송하는, 전자 장치.
  2. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 영상 차이 값에 비례하여 상기 제2 가중치는 증가되고 상기 제1 가중치는 감소되도록 상기 제1 가중치 및 상기 제2 가중치를 식별하는, 전자 장치.
  3. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 가중치가 적용된 상기 제1 깊이 정보 및 상기 제2 가중치가 적용된 상기 제2 깊이 정보에 IIR(Infinite Impulse Response) 필터링을 위한 제3 가중치 및 제4 가중치를 적용하여 상기 최종 깊이 정보를 획득하는, 전자 장치.
  4. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션(segmentation)하고,
    상기 제1 영상 프레임에서 상기 복수의 제2 영역 각각에 대응되는 제2 영역을 식별하고,
    상기 복수의 제2 영역 각각에 대응되는 제1 영역 간 차이 값을 식별하고,
    상기 식별된 차이 값에 기초하여 상기 복수의 제2 영역 중 적어도 하나의 영역을 식별하고,
    상기 식별된 영역에 대해 상기 획득된 영상 차이 값 및 상기 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하는, 전자 장치.
  5. 제4항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제2 영상 프레임에 포함된 각 픽셀 영역 별 깊이 값에 기초하여 상기 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션하거나, 상기 제2 영상 프레임에 포함된 각 픽셀 영역 별 픽셀 값에 기초하여 상기 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션하는, 전자 장치.
  6. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 영상 프레임 및 상기 제2 영상 프레임에 포함된 적어도 일 영역에서 획득된 영상 차이 값을 기 설정된 횟수만큼 공간적으로 확산시키고,
    상기 공간적으로 확산된 영상 차이 값 및 상기 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하는, 전자 장치.
  7. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 영상 프레임에 포함된 복수의 제1 픽셀 영역 및 상기 제2 영상 프레임에 포함된 복수의 제2 픽셀 영역 간 픽셀 차이 값을 획득하고, 상기 픽셀 차이 값에 기초하여 상기 영상 차이 값을 획득하거나,
    상기 제1 영상 프레임 및 상기 제2 영상 프레임에서 획득된 옵티컬 플로우(optical flow) 정보에 기초하여 상기 영상 차이 값을 획득하는, 전자 장치.
  8. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 획득된 영상 차이 값이 상기 임계 값을 초과하면, 상기 영상 차이 값 및 상기 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하고,
    상기 영상 차이 값이 상기 임계 값 이하이면, 기 설정된 값을 상기 영상 차이 값으로 획득하는, 전자 장치.
  9. 제1항에 있어서,
    상기 제1 영상 프레임 및 상기 제2 영상 프레임은,
    2차원 단안 이미지 프레임인, 전자 장치.
  10. 제1항에 있어서,
    디스플레이;를 더 포함하며,
    상기 적어도 하나의 프로세서는,
    상기 획득된 최종 깊이 정보에 기초하여 상기 제2 영상 프레임과 관련된 가상 공간 영상을 생성하고,
    상기 가상 공간 영상을 표시하도록 상기 디스플레이를 제어하는, 전자 장치.
  11. 전자 장치의 영상 처리 방법에 있어서,
    제1 영상 프레임의 제1 깊이 정보 및 상기 제1 영상 프레임 이후의 제2 영상 프레임의 제2 깊이 정보를 획득하는 단계;
    상기 제1 영상 프레임 및 상기 제2 영상 프레임의 영상 차이 값을 획득하는 단계;
    상기 획득된 영상 차이 값 및 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하는 단계;
    상기 제1 가중치 및 상기 제2 가중치를 각각 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 적용하여 상기 제2 영상 프레임에 대응되는 최종 깊이 정보를 획득하는 단계; 및
    상기 획득된 최종 깊이 정보에 기초하여 상기 제2 영상 프레임과 관련된 영상을 생성하거나 획득된 최종 깊이 정보를 외부 장치로 전송하는 단계;를 포함하는 영상 처리 방법.
  12. 제11항에 있어서,
    상기 제1 가중치 및 제2 가중치를 식별하는 단계는,
    상기 영상 차이 값에 비례하여 상기 제2 가중치는 증가되고 상기 제1 가중치는 감소되도록 상기 제1 가중치 및 상기 제2 가중치를 식별하는, 영상 처리 방법.
  13. 제11항에 있어서,
    상기 최종 깊이 정보를 획득하는 단계는,
    상기 제1 가중치가 적용된 상기 제1 깊이 정보 및 상기 제2 가중치가 적용된 상기 제2 깊이 정보에 IIR(Infinite Impulse Response) 필터링을 위한 제3 가중치 및 제4 가중치를 적용하여 상기 최종 깊이 정보를 획득하는, 영상 처리 방법.
  14. 제11항에 있어서,
    상기 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션(segmentation)하는 단계;
    상기 제1 영상 프레임에서 상기 복수의 제2 영역 각각에 대응되는 제1 영역을 식별하는 단계;
    상기 복수의 제2 영역 각각에 대응되는 제1 영역 간 차이 값을 식별하는 단계; 및
    상기 식별된 차이 값에 기초하여 상기 복수의 제2 영역 중 적어도 하나의 영역을 식별하는 단계;를 더 포함하며,
    상기 제1 가중치 및 제2 가중치를 식별하는 단계는,
    상기 식별된 영역에 대해 상기 획득된 영상 차이 값 및 상기 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하는 단계;를 포함하는, 영상 처리 방법.
  15. 제14항에 있어서,
    상기 복수의 제2 영역으로 세그먼테이션하는 단계는,
    상기 제2 영상 프레임에 포함된 각 픽셀 영역 별 깊이 값에 기초하여 상기 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션하거나, 상기 제2 영상 프레임에 포함된 각 픽셀 영역 별 픽셀 값에 기초하여 상기 제2 영상 프레임을 복수의 제2 영역으로 세그먼테이션하는, 영상 처리 방법.
  16. 제11항에 있어서,
    상기 제1 영상 프레임 및 상기 제2 영상 프레임에 포함된 적어도 일 영역에서 획득된 영상 차이 값을 기 설정된 횟수만큼 공간적으로 확산시키는 단계;를 더 포함하며,
    상기 제1 가중치 및 제2 가중치를 식별하는 단계는,
    상기 공간적으로 확산된 영상 차이 값 및 상기 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하는, 영상 처리 방법.
  17. 제11항에 있어서,
    상기 영상 차이 값을 획득하는 단계는,
    상기 제1 영상 프레임에 포함된 복수의 제1 픽셀 영역 및 상기 제2 영상 프레임에 포함된 복수의 제2 픽셀 영역 간 픽셀 차이 값을 획득하고, 상기 픽셀 차이 값에 기초하여 상기 영상 차이 값을 획득하거나,
    상기 제1 영상 프레임 및 상기 제2 영상 프레임에서 획득된 옵티컬 플로우(optical flow) 정보에 기초하여 상기 영상 차이 값을 획득하는, 영상 처리 방법.
  18. 제11항에 있어서,
    상기 제1 가중치 및 제2 가중치를 식별하는 단계는,
    상기 획득된 영상 차이 값이 상기 임계 값을 초과하면, 상기 영상 차이 값 및 상기 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하고,
    상기 영상 차이 값이 상기 임계 값 이하이면, 기 설정된 값을 상기 영상 차이 값으로 획득하는, 영상 처리 방법.
  19. 제11항에 있어서,
    상기 획득된 최종 깊이 정보에 기초하여 상기 제2 영상 프레임과 관련된 가상 공간 영상을 생성하고, 상기 가상 공간 영상을 표시하는 단계;를 더 포함하는, 영상 처리 방법.
  20. 전자 장치의 프로세서에 의해 실행되는 경우 상기 전자 장치가 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서,
    상기 동작은,
    제1 영상 프레임의 제1 깊이 정보 및 상기 제1 영상 프레임 이후의 제2 영상 프레임의 제2 깊이 정보를 획득하는 단계;
    상기 제1 영상 프레임 및 상기 제2 영상 프레임의 영상 차이 값을 획득하는 단계;
    상기 획득된 영상 차이 값 및 임계 값에 기초하여 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 대응되는 제1 가중치 및 제2 가중치를 식별하는 단계;
    상기 제1 가중치 및 상기 제2 가중치를 각각 상기 제1 깊이 정보 및 상기 제2 깊이 정보에 적용하여 상기 제2 영상 프레임에 대응되는 최종 깊이 정보를 획득하는 단계; 및
    상기 획득된 최종 깊이 정보에 기초하여 상기 제2 영상 프레임과 관련된 영상을 생성하거나 획득된 최종 깊이 정보를 외부 장치로 전송하는 단계;를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
KR1020220064784A 2022-05-26 2022-05-26 전자 장치 및 그 영상 처리 방법 KR20230164980A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220064784A KR20230164980A (ko) 2022-05-26 2022-05-26 전자 장치 및 그 영상 처리 방법
PCT/KR2023/003761 WO2023229185A1 (ko) 2022-05-26 2023-03-22 전자 장치 및 그 영상 처리 방법
US18/195,516 US20230386057A1 (en) 2022-05-26 2023-05-10 Electronic apparatus and image processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220064784A KR20230164980A (ko) 2022-05-26 2022-05-26 전자 장치 및 그 영상 처리 방법

Publications (1)

Publication Number Publication Date
KR20230164980A true KR20230164980A (ko) 2023-12-05

Family

ID=88919513

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220064784A KR20230164980A (ko) 2022-05-26 2022-05-26 전자 장치 및 그 영상 처리 방법

Country Status (2)

Country Link
KR (1) KR20230164980A (ko)
WO (1) WO2023229185A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090066693A1 (en) * 2007-09-06 2009-03-12 Roc Carson Encoding A Depth Map Into An Image Using Analysis Of Two Consecutive Captured Frames
US8325978B2 (en) * 2008-10-30 2012-12-04 Nokia Corporation Method, apparatus and computer program product for providing adaptive gesture analysis
CN103139578A (zh) * 2011-11-24 2013-06-05 联咏科技股份有限公司 调整影像的运动景深的方法
KR20130114420A (ko) * 2012-04-09 2013-10-18 한국전자통신연구원 2차원 동영상의 3차원 동영상으로의 변환 방법 및 장치
KR102320198B1 (ko) * 2017-04-05 2021-11-02 삼성전자주식회사 깊이 영상 보정 방법 및 장치

Also Published As

Publication number Publication date
WO2023229185A1 (ko) 2023-11-30

Similar Documents

Publication Publication Date Title
US11610082B2 (en) Method and apparatus for training neural network model used for image processing, and storage medium
US9826149B2 (en) Machine learning of real-time image capture parameters
US11003951B2 (en) Image processing apparatus and image processing method thereof
US10909394B2 (en) Real-time multiple vehicle detection and tracking
CN112399120B (zh) 电子装置及其控制方法
KR102616700B1 (ko) 영상 처리 장치 및 그 영상 처리 방법
KR102410907B1 (ko) 영상 처리 장치 및 그 영상 처리 방법
US11978178B2 (en) Electronic device, control method thereof, and system
US11893748B2 (en) Apparatus and method for image region detection of object based on seed regions and region growing
US10810462B2 (en) Object detection with adaptive channel features
CN112866803B (zh) 电子装置及其控制方法
KR102246954B1 (ko) 영상 처리 장치 및 그 영상 처리 방법
CN114937050A (zh) 绿幕抠图方法、装置及电子设备
KR102246110B1 (ko) 영상 처리 장치 및 그 영상 처리 방법
KR20230164980A (ko) 전자 장치 및 그 영상 처리 방법
US11436442B2 (en) Electronic apparatus and control method thereof
US20230386057A1 (en) Electronic apparatus and image processing method thereof
US20230115371A1 (en) Efficient vision perception
KR20240034010A (ko) 전자 장치 및 그 영상 처리 방법
CN115767091A (zh) 使用神经网络进行基于熵的预滤波用于流式传输应用