KR20190134217A - 복수 개의 영상을 처리하는 방법 및 전자 장치 - Google Patents

복수 개의 영상을 처리하는 방법 및 전자 장치 Download PDF

Info

Publication number
KR20190134217A
KR20190134217A KR1020180059584A KR20180059584A KR20190134217A KR 20190134217 A KR20190134217 A KR 20190134217A KR 1020180059584 A KR1020180059584 A KR 1020180059584A KR 20180059584 A KR20180059584 A KR 20180059584A KR 20190134217 A KR20190134217 A KR 20190134217A
Authority
KR
South Korea
Prior art keywords
images
image
protrusion
pixel
processor
Prior art date
Application number
KR1020180059584A
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 KR1020180059584A priority Critical patent/KR20190134217A/ko
Priority to PCT/KR2018/009572 priority patent/WO2019225808A1/ko
Publication of KR20190134217A publication Critical patent/KR20190134217A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/684Vibration or motion blur correction performed by controlling the image sensor readout, e.g. by controlling the integration time
    • H04N5/2327
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • H04N5/23238
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)

Abstract

복수 개의 영상을 처리하는 전자 장치 및 그 동작 방법이 제공된다.
복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득하고, 각 픽셀에 대한 돌출값에 기초하여, 복수 개의 영상에 공통으로 포함된 오브젝트를 식별하고, 복수 개의 영상이 연속적으로 표시될 때, 식별된 오브젝트의 흔들림을 보정하기 위한, 이미지 안정화를 수행하고, 이미지 안정화가 수행된 복수 개의 영상을 표시하는, 전자 장치에서 복수 개의 영상을 처리하는 방법이 제공된다.

Description

복수 개의 영상을 처리하는 방법 및 전자 장치 {Method and electronic device for processing a plurality of images}
본 개시는, 복수 개의 영상을 처리하는 방법 및 전자 장치에 관한 것이다. 구체적으로, 복수 개의 영상에 대하여, 이미지 안정화(image stabilization) 또는 이미지 스티칭(image stitching)을 수행하는 방법 및 전자 장치에 관한 것이다.
고정되지 않은 카메라에 의해 야기되는 원치 않는 움직임과 떨림은 영상의 품질을 저하시키는 주요 요인이다. 따라서, 카메라의 흔들림으로부터 영상을 안정화시키는 과정은, 영상의 품질을 향상 시키기 위한 중요한 프로세스이다.
영상의 흔들림(jittering)을 보정하기 위한 방법으로, 자이로 센서를 이용한 하드웨어적인 방법, 영상 프레임간 모션 변화를 이용하는 방법 등이 있다.
그러나, 상술한 방법에 의하면, 상대적으로 시청자의 주의가 집중되는 영상의 전경 영역인지 여부에 대한 고려 없이, 영상 일부 또는 전체 영역에 대하여 이미지 안정화가 수행될 수 있다. 따라서, 영상에 대해 이미지 안정화가 수행되더라도, 영상의 전경 영역에 흔들림이 있거나 왜곡된 부분이 존재하는 경우, 영상을 시청하는 시청자가 체감하는 영상의 품질이 저하되는 문제가 존재한다.
일 실시 예는, 시청자가 체감하는 영상의 품질이 향상되도록, 복수 개의 영상에 대하여 이미지 안정화 또는 이미지 스티칭을 수행하기 위한 영상 처리 방법 및 전자 장치를 제공하기 위한 것이다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은, 복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득하는 단계; 상기 각 픽셀에 대한 돌출값에 기초하여, 상기 복수 개의 영상에 공통으로 포함된 오브젝트를 식별하는 단계; 상기 복수 개의 영상이 연속적으로 표시될 때, 상기 식별된 오브젝트의 흔들림을 보정하기 위한, 이미지 안정화를 수행하는 단계; 및 상기 이미지 안정화가 수행된 복수 개의 영상을 표시하는 단계를 포함하는, 전자 장치에서 시간적으로 연속된 복수 개의 영상을 처리하는 방법을 제공할 수 있다.
또한, 본 개시의 제2 측면은, 복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득하는 단계; 상기 각 픽셀에 대한 돌출값에 기초하여, 상기 복수 개의 영상에 공통으로 포함된 오브젝트를 식별하는 단계; 상기 식별된 오브젝트에 대한 왜곡이 최소화되도록, 상기 복수 개의 영상을 결합함으로써, 이미지 스티칭을 수행하는 단계; 및 상기 이미지 스티칭이 수행된 결과에 따라 상기 복수 개의 영상이 결합된 파노라마 영상을 표시하는 단계를 포함하는, 전자 장치에서 복수 개의 영상을 처리하는 방법을 제공할 수 있다.
또한, 본 개시의 제 3 측면은, 제 1 측면 및 제2 측면 중 적어도 하나의 방법을 수행하도록 하는 프로그램이 저장된 기록매체를 포함하는 컴퓨터 프로그램 제품을 제공할 수 있다.
일 실시 예에 의하면, 영상의 전경 영역에 포함된 오브젝트에 대한 왜곡 및 흔들림이 최소화되도록, 이미지 안정화 또는 이미지 스티칭을 수행할 수 있다.
일 실시 예에 의하면, 영상의 전경 영역에 포함된 오브젝트의 중심점에 기초하여 이미지 안정화 또는 이미지 스티칭을 수행할 수 있으므로, 다수의 특징점에 기초하여 이미지를 안정화하거나 이미지 스티칭을 수행하는 경우보다 낮은 연산량으로 영상이 처리될 수 있다.
도 1은 일 실시 예에 의한 복수 개의 영상을 처리하는 시스템을 나타낸 도면이다.
도 2 및 도 3은 일 실시 예에 의한 전자 장치의 내부 구성을 나타낸 블록도이다.
도 4는 일 실시 예에 의한 복수 개의 영상을 처리하는 방법을 나타낸 순서도이다.
도 5는 일 실시 예에 따라 오브젝트를 식별하는 방법을 나타낸 예시 도면이다.
도 6은 일 실시 예에 따라 복수 개의 영상을 안정화하는 일 예를 나타낸 도면이다.
도 7은 일 실시 예에 따라 복수 개의 영상을 움직임 예측에 기초하여 재정렬하는 일 예를 도시한 도면이다.
도 8 및 도 9는 일 실시 예에 따라 안정화된 영상 시퀀스의 일 예를 나타낸 도면이다.
도 10은 일 실시 예에 의한 안정화된 타임 랩스 영상의 일 예를 나타낸 도면이다.
도 11은 일 실시 예에 따라 이미지 스티칭을 수행하는 방법을 나타낸 순서도이다.
도 12는 일 실시 예에 따라 복수 개의 영상이 결합되어 생성된 파노라마 영상의 일 예를 나타낸 도면이다.
도 13은 일 실시 예에 따라 복수 개의 영상이 결합되어 생성된 파노라마 영상의 일 예를 나타낸 도면이다.
도 14는 일 실시 예에 따라 복수 개의 영상이 결합되어 생성된 파노라마 동영상의 일 예를 나타낸 도면이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 일 실시 예에 의한 복수 개의 영상을 처리하는 시스템을 나타낸 도면이다.
도 1을 참조하면, 일 실시 예에 따라 복수 개의 영상을 처리하는 시스템(100)에 의해 입력된 영상을 처리하는 단계 및 처리된 영상을 표시하는 단계가 수행될 수 있다. 예를 들어, 영상 처리 단계는, 시스템(100)의 영상 촬영 유닛(111), 외부 메모리(112), 프로세서(113) 및 내부 메모리(114)에 의해 수행될 수 있다. 또한, 영상 표시 단계는 시스템(100)의 디스플레이(121), 외부 메모리(122), 및 가상현실 헤드셋(123)에 의해 처리될 수 있다.
영상 촬영 유닛(111)은 적어도 하나의 카메라를 통해 영상을 촬영함으로써, 복수 개의 영상을 획득할 수 있다. 일 실시 예에 의하면, 복수 개의 영상은, 시간적으로 연속된 영상 시퀀스를 포함할 수 있다. 또는, 일 실시 예에 의하면, 복수 개의 영상은 파노라마 영상으로 합성될 수 있는 다수의 영상을 포함할 수 있다. 상기 다수의 영상은 서로 인접한 위치에서 촬영된 영상일 수 있으며, 이중 적어도 두 개의 영상은 동일한 오브젝트를 포함하는 영상일 수 있다.
외부 메모리(112)는 일 실시 예에 따라 처리될 수 있는 복수 개의 영상을 저장하는 메모리 장치일 수 있다. 복수 개의 영상은 영상 촬영 유닛(111)에 의해 촬영된 영상일 수 있다. 외부 메모리(112)는 일 실시 예에 따라 복수 개의 영상이 처리될 수 있도록, 외부 메모리(112)에 저장된 영상들을 프로세서(113)에 제공할 수 있다.
프로세서(113)는 영상 촬영 유닛(111)에 의해 획득된 복수 개의 영상 또는 외부 메모리(112)에 저장된 복수 개의 영상을 일 실시 예에 따라 처리할 수 있다. 일 실시 예에 의하면, 프로세서(113)는 복수 개의 영상에 공통으로 포함된 오브젝트를 식별할 수 있다. 예를 들면, 프로세서(113)는 영상의 각 픽셀에 대한 돌출값에 기초하여, 복수 개의 영상에 공통으로 포함된 오브젝트를 식별할 수 있다. 돌출값은 픽셀 영역이 돌출되어 있는 정도를 나타내는 값이다. 그리고, 프로세서(113)는, 복수 개의 영상이 연속적으로 표시되는 경우, 상기 식별된 오브젝트의 흔들림이 최소화되도록, 상기 복수 개의 영상을 안정화할 수 있다.
일 실시 예에 의하면, 프로세서(113)는 영상에서 돌출된(saliency) 영역을 오브젝트로 식별할 수 있다. 영상 촬영의 대상이 되는 피사체는, 일반적으로, 배경 부분 보다 카메라 가까이에 위치하게 되므로, 일 실시 예에 의한 돌출된 오브젝트로 식별될 수 있다. 따라서, 일 실시 예에 의하면, 시청자의 주의가 집중되는 피사체를 중심으로 영상의 안정화가 수행될 수 있다.
또한, 프로세서(113)는, 이미지 스티칭을 수행하여 파노라마 영상을 생성하는 경우, 각 영상에 공통으로 포함된 오브젝트를 식별하고, 식별된 오브젝트에 대한 왜곡이 최소화되도록 복수 개의 영상을 결합할 수 있다.
노출 차이, 카메라 움직임, 렌즈 뒤틀림 등 다양한 이유로 인해, 프로세서(113)가 왜곡 없이 이미지 스티칭을 수행하는 것은 거의 불가능하다. 그러나, 프로세서(113)는 영상의 배경 영역보다 시청자의 주의가 집중되는 피사체 영역에 대해 우선적으로 왜곡이 최소화되도록 처리함이 바람직하다. 일 실시예에 의하면, 전경 영역에 포함된 피사체를 기준으로 이미지 스티칭이 수행될 수 있으므로, 배경 영역보다 우선적으로 피사체 영역의 왜곡이 최소화될 수 있다.
내부 메모리(114)는 프로세서(113)에 의해 복수 개의 영상이 처리될 때 생성되는 중간 데이터를 저장할 수 있다. 예를 들면, 내부 메모리(114)는 영상의 각 영역에 대해 돌출된 정도에 관한 정보 및 오브젝트에 관한 식별 정보 등을 저장할 수 있다. 상술된 예에 한하지 않고, 내부 메모리(114)는 일 실시 예에 따라 영상이 처리되는 과정에서 발생된 다양한 종류의 중간 데이터를 저장할 수 있다.
디스플레이(121)는, 프로세서(113)에 의해 처리된 복수 개의 영상을 표시할 수 있다. 예를 들면, 디스플레이(121)는, 오브젝트의 흔들림 및 왜곡이 최소화되도록, 처리된 영상 시퀀스를 표시할 수 있다. 또한, 디스플레이(121)는 오브젝트에 대한 왜곡이 최소화되도록 생성된 파노라마 영상을 표시할 수 있다.
외부 메모리(122)는, 프로세서(113)에 의해 처리된 복수 개의 영상을 저장할 수 있다. 예를 들면, 외부 메모리(122)는, 일 실시 예에 따라 처리된 영상 시퀀스 및 파노라마 영상을 저장할 수 있다. 외부 메모리(122)에 저장된 복수 개의 영상은, 추후 사용자 입력에 따라 디스플레이(121)를 통해 표시되거나, 다른 외부 장치로 전송될 수 있다.
가상현실 헤드셋(123)은 일반적인 2D(2 dimentional) 영상보다 넓은 화각, 예를 들면, 120도, 180도, 360도 등의 화각을 가지는 영상을 표시하여, 사용자가 가상의 공간을 현실 세계와 같이 인식할 수 있는 컨텐츠를 제공할 수 있다.
일 실시 예에 의하면, 가상현실 헤드셋(123)에 의해 표시되는 넓은 화각의 영상은, 이미지 스티칭을 통해 복수 개의 영상들로부터 생성된 파노라마 영상일 수 있다. 또한, 가상현실 헤드셋(123)은 시간적으로 연속된 복수개의 파노라마 영상을 연속적으로 표시함으로써, 사용자가 가상 현실을 현실 세계와 같이 인식할 수 있는 환경을 제공할 수 있다.
일 실시 예에 따라, 가상현실 헤드셋(123)에 의해 표시되는 파노라마 영상은, 오브젝트에 대한 왜곡이 최소화되도록 이미지 스티칭이 수행됨으로써, 생성될 수 있다. 또한, 시간적으로 연속된 복수개의 파노라마 영상은, 영상의 오브젝트의 흔들림이 최소화되도록, 이미지 안정화가 수행됨으로써, 생성될 수 있다.
일 실시 예에 의한 이미지 안정화 또는 이미지 스티칭은, 영상 시퀀스의 안정화, 액션 숏 메이킹, GIF 파일 생성, 저속촬영, 파노라마 영상, 파노라마 시퀀셜 영상 등에 이용될 수 있다. 파노라마 시퀀셜 영상은, 시간적으로 연속된 파노라마 영상들을 포함하는 영상 시퀀스일 수 있다.
또한, 일 실시 예에 의한 이미지 안정화 또는 이미지 스티칭은 특정 오브젝트의 움직임을 검출하는 스마트 가드 시스템에 이용될 수 있다. 일 실시 예에 의하면, 오브젝트의 왜곡 및 흔들림이 최소화되도록 영상 시퀀스가 처리됨에 따라, 낮은 오류 발생률로 오브젝트의 움직임이 검출될 수 있다.
상술한 예에 한하지 않고, 일 실시 예에 의한 이미지 안정화 또는 이미지 스티칭은 영상을 생성하는 다양한 기술에 적용 및 응용될 수 있다.
도 2 및 도 3은 일 실시 예에 의한 전자 장치(1000)의 내부 구성을 나타낸 블록도이다.
도 2를 참조하면, 일 실시 예에 의한 전자 장치(1000)는 메모리(1700), 프로세서(1300), 및 디스플레이(1210)를 포함할 수 있다. 도 2에 도시된 프로세서(1300) 및 디스플레이(1210)는 도 1에 도시된 프로세서(113) 및 디스플레이(121)와 대응될 수 있다.
그러나, 도 2에 도시된 구성 요소 모두가 전자 장치(1000)의 필수 구성 요소인 것은 아니다. 도 2에 도시된 구성 요소보다 많은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있고, 도 2에 도시된 구성 요소보다 적은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있다.
예를 들어, 도 3에 도시된 바와 같이, 일부 실시예에 따른 전자 장치(1000)는, 메모리(1700), 디스플레이부(1210) 및 프로세서(1300) 이외에 사용자 입력부(1100), 통신부(1500), 출력부(1200), 센싱부(1400) 및 A/V 입력부(1600)를 더 포함할 수도 있다.
사용자 입력부(1100)는, 사용자가 전자 장치(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
일 실시 예에 의하면, 사용자 입력부(1100)는, 복수 개의 영상을 처리하거나, 처리된 복수 개의 영상을 표시하기 위한 사용자 입력을 수신할 수 있다.
출력부(1200)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(1200)는 디스플레이부(1210), 음향 출력부(1220), 및 진동 모터(1230)를 포함할 수 있다.
디스플레이부(1210)는 전자 장치(1000)에서 처리되는 정보를 표시 출력한다. 예를 들어, 디스플레이부(1210)는, 일 실시 예에 따라 이미지 안정화 또는 이미지 스티칭이 수행된 복수 개의 영상을 디스플레이할 수 있다.
한편, 디스플레이부(1210)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(1210)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(1210)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 전자 장치(1000)의 구현 형태에 따라 전자 장치(1000)는 디스플레이부(1210)를 2개 이상 포함할 수도 있다.
음향 출력부(1220)는 통신부(1500)로부터 수신되거나 메모리(1700)에 저장된 오디오 데이터를 출력한다.
진동 모터(1230)는 진동 신호를 출력할 수 있다. 또한, 진동 모터(1230)는 터치스크린에 터치가 입력되는 경우 진동 신호를 출력할 수도 있다.
프로세서(1300)는, 통상적으로 전자 장치(1000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1300)는, 메모리(1700)에 저장된 프로그램들을 실행함으로써, 사용자 입력부(1100), 출력부(1200), 센싱부(1400), 통신부(1500), A/V 입력부(1600) 등을 전반적으로 제어할 수 있다.
구체적으로, 프로세서(1300)는 복수 개의 영상으로부터 돌출된 오브젝트를 식별하고, 식별된 오브젝트의 흔들림을 보정하기 위한 이미지 안정화를 수행할 수 있다.
또한, 프로세서(1300)는, 복수 개의 영상으로부터 돌출된 오브젝트를 식별하고, 식별된 오브젝트에 대한 왜곡이 최소화되도록 이미지 스티칭을 수행하여 파노라마 영상을 생성할 수 있다.
또한, 프로세서(1300)는 복수 개의 영상에서 식별된 돌출된 오브젝트의 중심점을 결정하고, 중심점이 서로 중첩되어 표시되도록 복수 개의 영상을 정렬시킴으로써, 이미지 안정화 또는 이미지 스티칭을 수행할 수 있다.
센싱부(1400)는, 전자 장치(1000)의 상태 또는 전자 장치(1000) 주변의 상태를 감지하고, 감지된 정보를 프로세서(1300)로 전달할 수 있다.
센싱부(1400)는, 지자기 센서(Magnetic sensor)(1410), 가속도 센서(Acceleration sensor)(1420), 온/습도 센서(1430), 적외선 센서(1440), 자이로스코프 센서(1450), 위치 센서(예컨대, GPS)(1460), 기압 센서(1470), 근접 센서(1480), 및 RGB 센서(illuminance sensor)(1490) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다.
통신부(1500)는, 전자 장치(1000)가 다른 전자 디바이스(2000) 또는 외부 디바이스(미도시)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(1500)는, 근거리 통신부(1510), 이동 통신부(1520), 방송 수신부(1530)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(1510)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(1520)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(1530)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 전자 장치(1000)가 방송 수신부(1530)를 포함하지 않을 수도 있다.
일 실시 예에 의한, 통신부(1500)는, 외부 장치(미도시)와 데이터를 송수신할 수 있다. 예를 들면, 통신부(1500)는, 프로세서(1300)에 의해 안정화된 영상 시퀀스 또는 이미지 스티칭이 수행된 결과 생성된 파노라마 영상을 외부 장치로 전송할 수 있다.
A/V(Audio/Video) 입력부(1600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(1610)와 마이크로폰(1620) 등이 포함될 수 있다. 카메라(1610)는 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 프로세서(1300) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다. 일 실시 예에 의하면, A/V 입력부(1600)에 의해 생성된 비디오 신호에 대해 이미지 안정화 또는 이미지 스티칭이 수행될 수 있다.
마이크로폰(1620)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(1620)은 외부 디바이스 또는 화자로부터 음향 신호를 수신할 수 있다.
메모리(1700)는, 프로세서(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치(1000)로 입력되거나 전자 장치(1000)로부터 출력되는 데이터를 저장할 수도 있다. 일 실시 예에 의한 메모리(1700)는 이미지 안정화가 수행된 영상 시퀀스를 저장할 수 있다. 또한, 메모리(1700)는 이미지 스티칭이 수행된 결과 생성된 파노라마 영상을 저장할 수 있다.
메모리(1700)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(1700)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(1710), 터치 스크린 모듈(1720), 알림 모듈(1730) 등으로 분류될 수 있다.
UI 모듈(1710)은, 애플리케이션 별로 전자 장치(1000)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(1720)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 프로세서(1300)로 전달할 수 있다. 일부 실시예에 따른 터치 스크린 모듈(1720)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(1720)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
터치스크린의 터치 또는 근접 터치를 감지하기 위해 터치스크린의 내부 또는 근처에 다양한 센서가 구비될 수 있다. 터치스크린의 터치를 감지하기 위한 센서의 일례로 촉각 센서가 있다. 촉각 센서는 사람이 느끼는 정도로 또는 그 이상으로 특정 물체의 접촉을 감지하는 센서를 말한다. 촉각 센서는 접촉면의 거칠기, 접촉 물체의 단단함, 접촉 지점의 온도 등의 다양한 정보를 감지할 수 있다.
사용자의 터치 제스처에는 탭, 터치&홀드, 더블 탭, 드래그, 패닝, 플릭, 드래그 앤드 드롭, 스와이프 등이 있을 수 있다.
알림 모듈(1730)은 전자 장치(1000)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다.
도 4는 일 실시 예에 의한 복수 개의 영상을 처리하는 방법을 나타낸 순서도이다.
일 실시 예에 의해 처리되는 복수 개의 영상은 시간적으로 연속하여 표시될 수 있는 영상 시퀀스일 수 있다. 영상 시퀀스는, 예를 들면 동영상 파일, GIF(graphics interchange format) 파일 등의 포맷으로 구성될 수 있다.
도 4를 참조하면, 단계 410에서, 복수 개의 영상을 처리하는 전자 장치(1000)는, 복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득할 수 있다. 예를 들면, 돌출값이 클수록, 픽셀 영역은 전경 영역에 속할 수 있다. 각 픽셀에 대한 돌출값은, 영상의 밝기, 에지, 대칭성, 컬러, 선명도, 초점 정보 등 영상에 대한 다양한 정보에 기초하여 다양한 방법에 의해 결정될 수 있다.
일 실시 예에 의한 돌출값은 0과 1 사이의 값을 가질 수 있다. 예를 들면, 돌출값이 1에 가까울수록, 대응되는 픽셀 영역은 시각적인 중요도가 높은 전경(foreground) 영역일 수 있다. 또한, 돌출값이 0에 가까울수록, 대응되는 픽셀 영역은 시각적인 중요도가 낮은 배경(background) 영역일 수 있다.
따라서, 일 실시 예에 의하면, 전자 장치(1000)는 돌출값에 기초하여 시각적인 중요도가 높은 전경 영역을 오브젝트로서 식별할 수 있고, 식별된 오브젝트를 중심으로, 이미지 안정화 또는 이미지 스티칭을 수행할 수 있다. 시청자의 주의가 집중되는 전경 영역에 대한 왜곡 및 흔들림이 최소화됨에 따라, 시청자에 의해 체감되는 영상의 품질이 향상될 수 있다.
단계 420에서, 전자 장치(1000)는 단계 410에서 획득된 각 픽셀에 대한 돌출값에 기초하여, 오브젝트를 식별할 수 있다. 일 실시 예에 따라 식별된 오브젝트는, 시각적인 중요도가 높은 전경 영역을 포함할 수 있다.
예를 들면, 전자 장치(1000)는 돌출값에 기초하여, 오브젝트를 식별하기 위한 기준값을 결정하고, 기준값을 이용하여 오브젝트를 식별할 수 있다. 전자 장치(1000)는 돌출값이 기준값 이상의 값을 가지는 영역을 오브젝트가 표시된 영역으로 식별할 수 있다. 일 실시 예에 의하면, 전자 장치(1000)는 기준값에 따라 영상과 대응되는 영역에서 0 또는 1 값을 가지는 바이너리 마스크를 생성할 수 있다. 바이너리 마스크에 의해 구분된 영상 영역이 오브젝트로서 식별될 수 있다.
일 실시 예에 의한 돌출값의 기준값은, 각 픽셀의 돌출값, 엣지 영역, 및 오브젝트의 형태 등 다양한 정보에 기초하여 결정될 수 있다. 예를 들면, 전자 장치(1000)는 돌출값에 따라 영상 영역을 두 개의 영역, 예를 들면, 오브젝트 영역과 나머지 영역(ex. 배경 영역)으로 구분하기 위한 기준값을 결정할 수 있다.
일 실시 에에 의하면, 영상에 포함된 오브젝트의 중심점을 기준으로, 이미지 안정화가 수행될 수 있으므로, 다수의 특징점을 기준으로 이미지 안정화를 수행하는 경우보다 낮은 연산량으로, 일 실시 예에 의한 이미지 안정화가 수행될 수 있다.
단계 430에서, 전자 장치(1000)는 복수 개의 영상이 연속적으로 표시될 때 식별된 오브젝트의 흔들림을 보정하기 위한 이미지 안정화를 수행할 수 있다. 예를 들면, 전자 장치(1000)는, 오브젝트의 흔들림이 최소화되도록, 복수 개의 영상이 디스플레이에서 표시되는 위치를 수정함으로써, 복수 개의 영상들을 안정화할 수 있다. 일 실시 예에 의하면, 영상의 배경 영역에 대한 흔들림 보정이 미흡하더라도, 시각적인 중요도가 높은 오브젝트에 대한 흔들림 및 왜곡이 최소화되도록 영상이 수정될 수 있다.
단계 440에서, 전자 장치(1000)는 단계 430에서 안정화가 수행된 복수 개의 영상을 표시할 수 있다. 예를 들면, 안정화가 수행된 복수 개의 영상을 연속적으로 표시할 수 있다.
도 5는 일 실시 예에 따라 오브젝트를 식별하는 방법을 나타낸 예시 도면이다.
도 5을 참조하면, 전자 장치(1000)는 원본 영상(510)에 대하여, 돌출 값을 계산함으로써, 각 픽셀에 대한 돌출값을 나타내는 돌출맵(520)을 생성할 수 있다. 돌출맵(520)에서, 돌출값은 0에서 1 사이의 값일 수 있고, 돌출값이 1에 가까울수록, 대응되는 픽셀은, 시각적인 중요도가 높은 전경 영역에 포함된 픽셀일 수 있다.
전자 장치(1000)는 전경 영역의 오브젝트를 식별하기 위하여, 돌출값에 대한 기준값을 획득할 수 있다. 돌출값에 대한 기준값은 미리 설정된 값으로 결정되거나, 각 픽셀의 돌출값에 기초하여 오브젝트를 배경 영역으로부터 구분할 수 있는 값으로 결정될 수 있다. 상술한 예에 한하지 않고, 기준값은 다양한 방법에 따라 결정될 수 있다.
전자 장치(1000)는, 다양한 방법에 따라 결정된 기준값에 기초하여, 영상에서 오브젝트를 식별하기 위한 바이너리 마스크(530)를 생성할 수 있다. 바이너리 마스크(530)에서 각 픽셀은, 각 픽셀에 대한 돌출값이 기준값보다 크면 1, 작으면 0의 값을 가질 수 있다. 도 5에 도시된 바이너리 마스크(530)에 의하면, 1의 값을 가지는 픽셀은 흰색, 0의 값을 가지는 픽셀은 검은색으로 표시될 수 있다. 일 실시 예에 의한 전자 장치(1000)는, 바이너리 마스크(530)에 의해, 구분된 흰색 영역을 오브젝트 영역으로 식별할 수 있다.
전자 장치(1000)는 540에 도시된 바와 같이, 바이너리 마스크(530)에 의해 식별된 오브젝트를 포함하는 제1 도형(541)을 생성할 수 있다. 제1 도형(541)은, 오브젝트를 포함한 최소 영역을 포함하도록 생성될 수 있다. 오브젝트 영역을 포함한 제1 도형(541)은 540에 도시된 바와 같이, 직사각형 모양으로 생성될 수 있으나, 이에 한하지 않고, 다양한 형태의 도형으로 생성될 수 있다. 상술한 제1 도형(541)은, 후술될 도 6과 관련된 설명에서 움직임 예측을 통해 영상을 재정렬하는 데에 이용될 수 있다.
또한, 전자 장치(1000)는, 오브젝트에 대한 중심점(542)을 결정할 수 있다. 전자 장치(1000)는 중심점(542)을 이용하여 복수 개의 영상을 정렬시킴으로써 이미지 안정화를 수행할 수 있다.
오브젝트의 중심점(542)은, 아래 수학식 1와 같이 돌출값에 의한 무게중심을 찾는 수식에 따라서 결정될 수 있다.
Figure pat00001
수학식 1에서, saliency(x)는, 픽셀 x의 돌출값을 나타내고, Foreground 는 바이너리 마스크(530)에 따라 식별된 오브젝트 영역을 의미할 수 있다. 또한, x는 픽셀 x의 좌표 값을 나타낼 수 있다. 수학식 1에 의하면, 기존의 무게중심을 구하는 수식에 따라 중심점(Saliency Center)이 결정될 수 있으므로, 돌출값이 큰 영역와 인접한 영역에서 중심점(542)이 결정될 수 있다. 다만, 오브젝트의 중심점(542)은 상술한 예시 방법에 한하지 않고, 다양한 방법에 따라 결정될 수 있다.
일 실시 예에 따라 오브젝트를 식별하는 방법은 이하 코드에 따라서 수행될 수 있다. 아래 제시된 코드는 예시일 뿐, 이에 한정되지 않는다.
bool SalientRegionDetector::calculate(const media::Image* image)
{
mSalientRectInfo.rect.setSize(mvg::Size::empty);
if (0 == image)
{
LOGE("Zero image\n");
return false;
}
if (0 == mSaliency)
{
LOGE("Saliency engine is zero\n");
return false;
}
uint longImageSide = image->longSide();
if (0 == longImageSide)
{
LOGE("Zero image side length\n");
return false;
}
float scaleAspect = (float)kImageSizeForSaliency / longImageSide;
if (scaleAspect < mvg::epsilon)
{
LOGE("Scaling aspect is zero\n");
return false;
}
media::ImagePtr scaledImg = image->createResizedImage(int(image->width() * scaleAspect),
int(image->height() * scaleAspect), media::KEEP_NO_ASPECT_RATIO, media::Nearest);
if (0 == scaledImg)
{
LOGE("Scaled image was not created in saliency predictor\n");
return false;
}
mvg::matrix<uint> imageMatrix(scaledImg->height(), scaledImg->width(), (uint*)(scaledImg->data()));
mvg::matrix<float> saliencyMap;
mSaliency->saliency(imageMatrix, saliencyMap);
if (0 == saliencyMap.size())
{
LOGE("Saliency was not calculated\n");
return false;
}
uint matrixSize = saliencyMap.size();
if (matrixSize > kSaliencyBufSize)
{
LOGE("Too much size of saliency map\n");
return false;
}
memcpy(mSaliecyBuffer, saliencyMap.raw(), sizeof(float) * matrixSize);
mvg::Threshold otsuRes = mvg::getOtsuSmoothResult(mSaliecyBuffer, matrixSize);
float threshold = otsuRes.threshold;
if (otsuRes.threshold > mvg::epsilon && otsuRes.sigma / otsuRes.threshold > kMinOtsuRatio
&& otsuRes.sigma > kSigmaLowerThreshold && otsuRes.sigma < kSigmaUpperThreshold)
threshold = mvg::min(otsuRes.threshold + kSigmaMultiplier * otsuRes.sigma, 0.9f);
findSaliencyCenter(saliencyMap, threshold, mSalientRectInfo.center);
mSalientRectInfo.center.x = mvg::round<short>(mSalientRectInfo.center.x / scaleAspect);
mSalientRectInfo.center.y = mvg::round<short>(mSalientRectInfo.center.y / scaleAspect);
findSaliencyRect(saliencyMap, threshold, mSalientRectInfo.rect);
mSalientRectInfo.rect = mSalientRectInfo.rect * (1.f / scaleAspect);
return true;
}
static void findSaliencyCenter(const mvg::matrix<float>& saliencyMap, float threshold, mvg::Point& salCenter)
{
const int rows = saliencyMap.num_rows();
const int cols = saliencyMap.num_cols();
float totalSaliency = 0.f;
float totalX = 0.f;
float totalY = 0.f;
for (int i = 0; i < cols; ++i)
for (int j = 0; j < rows; ++j)
{
float currSaliency = saliencyMap(j, i);
if (currSaliency >= threshold)
{
totalSaliency += currSaliency;
totalX += currSaliency * i;
totalY += currSaliency * j;
}
}
if (totalSaliency >= mvg::epsilon)
{
salCenter.x = mvg::round<short>(totalX / totalSaliency);
salCenter.y = mvg::round<short>(totalY / totalSaliency);
}
else
{
salCenter.x = (short)cols / 2;
salCenter.y = (short)rows / 2;
LOGI("Totally homogenuous image was detected\n");
}
}
도 6은 일 실시 예에 따라 복수 개의 영상을 안정화하는 일 예를 나타낸 도면이다.
도 6의 610, 620 및 630은 각각 시간적으로 연속된 복수 개의 영상이다. 610, 620 및 630의 영상은 시간적으로 서로 인접한 영상일 수 있다. 또한, 611, 621 및 631은, 각 영상에서 식별된 오브젝트를 포함한 도형을 나타낸다. 상기 도형은, 오브젝트를 포함하되 최소 영역을 포함하도록 생성될 수 있다. 또한, 612, 622 및 632는, 각 영상에서 식별된 오브젝트 영역에 대한 중심점을 나타낸다. 도 6에 도시된 중심점은 상술한 수학식 1에 따라 결정될 수 있다.
일 실시 예에 의하면, 복수 개의 영상들(610, 620 및 630)은, 640에 도시된 것과 같이, 각 영상의 중심점(612, 622 및 632)이 동일한 위치(642)에 고정되도록 정렬될 수 있다.
또한, 복수 개의 영상들이 640과 같이 정렬된 후, 복수 개의 영상들이 서로 교차된 영역(641)에서 표시되는 영상이 최종적으로 획득될 수 있다. 복수 개의 영상들이 640과 같이 정렬됨에 따라 교차 영역(641) 밖에서는 표시될 영상 데이터가 존재하지 않는 경우가 발생하므로, 교차 영역(641)에 포함된 영상 부분만 표시되도록 복수 개의 영상들이 처리될 수 있다.
도 7은 일 실시 예에 따라 복수 개의 영상을 움직임 예측에 기초하여 재정렬하는 일 예를 도시한 도면이다.
도 7을 참조하면, 시간적으로 인접한 두 개의 영상(711, 721)에서, 각각 식별된 오브젝트를 포함하는 도형(712, 722)과, 중심점(713, 723)이 결정될 수 있다. 일 실시 예에 따라서, 두 영상(711, 721)은, 730에 도시된 것과 같이, 각 영상의 중심점(713, 723)이 동일한 위치(731)에 고정되도록 정렬될 수 있다.
730에서, 각 영상의 오브젝트 영역을 포함한 제1 도형(712, 722)이 서로 교차되는 영역을 포함하는 제2 도형(732)이 생성될 수 있다. 또한, 각 영상에서 제2 도형(732)과 각 영상에 대한 제2 도형(714, 724)은 서로 대응될 수 있다.
도 7에 도시된 715, 725는 각각 두 영상(711, 721)의 제2 도형(714, 724)에 포함된 영상을 나타낸 것이다. 일 실시 예에 의하면, 각 영상에 대한 제2 도형(714, 724)이 포함하는 영상 영역(715, 725)에서 움직임 예측(T)이 수행될 수 있고, 움직임 예측 결과(T)에 기초하여, 두 영상이 재정렬될 수 있다. 예를 들면, 움직임 예측(T)에 따라, 각 영상에 포함된 오브젝트의 위치가 다시 결정됨에 따라, 오브젝트의 중심점의 위치도 조정될 수 있다. 움직임 예측(T)에 따라 조정된 오브젝트 중심점의 위치에 따라서, 각각의 영상이 재정렬될 수 있다.
또한, 움직임 예측(T)은, 영상 시퀀스에 포함된 복수 개의 영상에서, 제2 도형 영역이 포함하는 영상 영역에 대해 수행될 수 있다. 따라서, 일 실시 예에 의하면, 제2 도형 영역에서 수행된 움직임 예측에 따라, 영상 시퀀스에 포함된 영상들이 재정렬될 수 있다.
도 8은 일 실시 예에 따라 안정화된 영상 시퀀스의 일 예를 나타낸 도면이다.
도 8을 참조하면, 원본 영상 시퀀스(810, 820, 830)에 대해 일 실시 예에 의한 이미지 안정화가 수행된 결과, 안정화된 영상 시퀀스(811, 821, 831)가 생성될 수 있다. 원본 영상 시퀀스(810, 820, 830)의 영상들은, 시간적으로 연속된 영상들일 수 있다.
도 8에 도시된 안정화된 영상 시퀀스(811, 821, 831)를 참조하면, 전경 영역에 해당되는 오브젝트의 흔들림을 보정하기 위해, 원본 영상들(810, 820, 830)이 정렬될 수 있다. 정렬된 영상들(810, 820, 830)이 서로 교차되는 영역에서 영상 시퀀스가 표시되도록 영상들이 처리됨에 따라, 안정화된 영상 시퀀스(811, 821, 831)는, 원본 영상들(810, 820, 830)의 크기보다 더 작은 크기로 표시될 수 있다.
도 9는 일 실시 예에 의한 안정화된 영상 시퀀스의 일 예를 나타낸 도면이다.
도 9를 참조하면, 움직이는 오브젝트가 촬영된 원본 영상 시퀀스(910)에 대해 이미지 안정화가 수행될 수 있다. 원본 영상 시퀀스(910)는 각각 다른 시점(time point)에서 동일한 피사체가 촬영된 영상들을 포함할 수 있다.
도 9의 영상 시퀀스(910)에서는, 오브젝트의 움직임이 커서, 흔들림이 있어도, 시청자가 이를 체감하기 어렵다. 그러나, 각 영상의 고정된 위치에서 공통적으로 표시되는 배경 영역에 대한 흔들림은 시청자에 의해 쉽게 체감될 수 있다. 따라서, 도 9의 영상 시퀀스(910)에 대해, 배경 영역의 흔들림이 최소화되도록 이미지 안정화가 수행될 수 있다.
예를 들면, 돌출값에 기초하여, 각 영상의 배경 영역이 식별될 수 있고, 각 영상의 배경 영역에 대한 중심점이 하나의 위치에 고정되도록, 영상들이 정렬될 수 있다. 배경 영역에 대한 흔들림이 보정되도록 영상 시퀀스(910)의 영상들이 정렬됨에 따라, 도 9에 도시된 바와 같이, 배경 영역이 안정화된 영상 시퀀스(920)가 생성될 수 있다.
도 10은 일 실시 예에 의한 안정화된 타임 랩스 영상의 일 예를 나타낸 도면이다.
타임랩스(Time-lapse)는 긴 지속 시간을 건너 띄면서 미리 예정된 일정한 간격에 따라 한번에 한 프레임씩 촬영하는 방식으로, 간헐 촬영, 미속 촬영 또는 완속 촬영이라고 한다. 타임랩스 영상을 정상 속도로 영사하면, 시간과 속도의 압축으로 인해 한 순간의 동작으로 나타나게 된다. 이렇게 생성된 다수의 영상 파일들을 동영상 편집 프로그램을 이용하여 편집함으로써 타입랩스 영상이 제작될 수 있다.
도 10의 타임랩스 영상들(1010, 1020, 1030 및 1040)도, 도 9와 같이, 영상들이 연속적으로 표시되는 경우, 오브젝트의 움직임이 커서, 흔들림이 있어도, 시청자가 체감하기 어렵다. 그러나, 각 영상에 고정된 위치에서 공통적으로 표시되는 배경 영역에 대한 흔들림은 시청자에 의해 쉽게 체감될 수 있다. 따라서, 도 10의 타임랩스 영상들(1010, 1020, 1030 및 1040)의 경우, 배경 영역의 흔들림이 최소화되도록 이미지 안정화가 수행될 수 있다.
예를 들면, 돌출값에 기초하여, 각 영상의 배경 영역이 식별될 수 있고, 각 영상의 배경 영역에 대한 중심점이 하나의 위치에 고정되도록, 영상들이 정렬될 수 있다. 일 실시 예에 따라 타임랩스 영상들(1010, 1020, 1030 및 1040)이 정렬됨으로써, 배경 영역이 안정화된 타임랩스 영상 시퀀스가 생성될 수 있다.
도 11은 일 실시 예에 따라 이미지 스티칭을 수행하는 방법을 나타낸 순서도이다.
도 11을 참조하면, 단계 1110에서, 복수 개의 영상을 처리하는 전자 장치(1000)는, 복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득할 수 있다. 각 픽셀에 대한 돌출값은, 영상의 밝기, 에지, 대칭성, 컬러 등 영상에 대한 다양한 정보에 기초하여 다양한 방법을 통해 결정될 수 있다.
일 실시 예에 의한 돌출값은 0과 1 사이의 값을 가질 수 있다. 예를 들면, 돌출값이 1에 가까울수록, 대응되는 픽셀 영역은 시각적인 중요도가 높은 전경(foreground) 영역에 해당될 수 있다. 또한, 돌출값이 0에 가까울수록, 대응되는 픽셀 영역은 시각적인 중요도가 낮은 배경(background) 영역에 해당될 수 있다.
단계 1120에서, 전자 장치(1000)는 단계 1110에서 획득된 각 픽셀에 대한 돌출값에 기초하여, 오브젝트를 식별할 수 있다. 일 실시 예에 따라 식별된 오브젝트는, 시각적인 중요도가 높은 전경 영역을 포함할 수 있다.
예를 들면, 전자 장치(1000)는 돌출값에 기초하여, 오브젝트를 식별하기 위한 기준값을 획득할 수 있다. 전자 장치(1000)는 돌출값이 기준값 이상의 값을 가지는 영역을 오브젝트가 표시된 영역으로 식별할 수 있다.
일 실시 에에 의하면, 영상에 포함된 오브젝트의 중심점을 기준으로, 이미지 스티칭이 수행될 수 있으므로, 다수의 특징점을 기준으로 이미지 스티칭을 수행하는 경우보다 낮은 연산량으로, 일 실시 예에 의한 이미지 스티칭이 수행될 수 있다.
단계 1130에서, 전자 장치(1000)는 식별된 오브젝트에 대한 왜곡이 최소화되도록 복수 개의 영상을 결합함으로써, 이미지 스티칭을 수행할 수 있다. 예를 들면, 전자 장치(1000)는 각 영상에서 식별된 오브젝트 영역에 대한 기준점이 서로 중첩되도록, 복수 개의 영상을 결합함으로써, 오브젝트에 대한 왜곡을 최소화하면서 이미지 스티칭을 수행할 수 있다. 오브젝트 영역에 대한 기준점은, 상술한 수학식 1에 따라 결정될 수 있다.
일 실시 예에 의하면, 영상의 배경 부분에 대한 결합이 부자연스럽더라도, 시각적인 중요도가 높은 오브젝트가 왜곡 없이 안정적으로 표시되도록 이미지 스티칭이 수행될 수 있다.
일 실시 예에 의하면, 이미지 스티칭 시 엣지 평활화 처리 등 파노라마 영상 보정을 위해 필요한 프로세스가 추가로 수행될 수 있다.
단계 1140에서, 전자 장치(1000)는 단계 1130에서 이미지 스티칭이 수행된 결과 복수 개의 영상이 결합된 파노라마 영상이 표시될 수 있다.
도 12는 일 실시 예에 따라 복수 개의 영상이 결합되어 생성된 파노라마 영상의 일 예를 나타낸 도면이다.
도 12를 참조하면, 복수 개의 영상(1210, 1211)은 동일한 피사체에 대해 촬영된 영상을 포함하고, 서로 결합됨으로써 파노라마 영상(1220, 1221)이 생성될 수 있다.
도 12에 도시된 예와 같이, 일 실시 예에 의하면, 피사체의 중심점을 기준으로 이미지 스티칭이 수행됨으로써, 피사체의 왜곡이 최소화된 파노라마 영상(1221)이 획득될 수 있다.
도 12를 참조하면, 영상들(1210, 1211)의 배경 부분 중 산봉우리의 중심점을 지나가는 기준선(1213)에 따라 두 영상(1210, 1211)이 정렬될 수 있다. 배경 부분을 기준으로 두 영상(1210, 1211)이 정렬됨에 따라, 첫번째 영상(1210)에 표시된 기준선(1214)은, 피사체의 중심점을 지나가지만, 두번째 영상(1210)에 표시된 기준선(1214)은 피사체의 중심에서 벗어나 있다.
배경 부분을 중심으로 표시된 기준선(1213)에 따라서 두 영상(1210, 1211)이 결합되는 경우, 피사체가 왜곡되어 있는 파노라마 영상(1220)이 획득될 수 있다. 그러나, 피사체를 기준으로 두 영상(1210, 1211)이 결합되는 경우, 피사체가 왜곡되어 있지 않은 파노라마 영상(1221)이 획득될 수 있다.
예를 들면, 전자 장치(1000)는 각 영상에서 식별된 오브젝트 영역에 대한 기준점이 서로 중첩되도록, 두 영상(1210, 1211)을 결합함으로써, 오브젝트에 대한 왜곡을 최소화하면서 이미지 스티칭을 수행할 수 있다. 오브젝트 영역에 대한 기준점은, 상술한 수학식 1에 따라 결정될 수 있다.
도 13은 일 실시 예에 따라 복수 개의 영상이 결합되어 생성된 파노라마 영상의 일 예를 나타낸 도면이다.
도 13을 참조하면, 복수 개의 영상(1310, 1320)은 동일한 피사체에 대해 촬영된 영상을 포함하고, 서로 결합됨으로써 파노라마 영상(1330)이 생성될 수 있다.
도 13에 도시된 예와 같이, 일 실시 예에 의하면, 피사체의 중심점을 기준으로 이미지 스티칭이 수행됨에 따라, 피사체의 왜곡이 최소화된 파노라마 영상(1221)이 획득될 수 있다. 일 실시 예에 의하면, 피사체는, 영상의 각 픽셀에 대한 돌출값에 기초하여, 오브젝트로 식별될 수 있다.
예를 들면, 도 5에 도시된 예에 따라, 각각의 영상(1310, 1320)에서 오브젝트가 식별될 수 있고, 식별된 오브젝트의 중심점(1312, 1322)이 결정될 수 있다. 따라서, 일 실시 예에 의한 이미지 스티칭은, 각 영상의 중심점(1312, 1322)이 서로 중첩되도록, 두 영상(1310,1320)이 결합됨으로써 수행될 수 있다.
도 14는 일 실시 예에 따라 복수 개의 영상이 결합되어 생성된 파노라마 동영상의 일 예를 나타낸 도면이다.
도 14를 참조하면, 일 실시 예에 따라 복수 개의 영상이 결합됨으로써, 파노라마 영상이 생성될 수 있다. 도 14에 도시된 1410 내지 1440은, 시간적으로 연속된 복수 개의 파노라마 영상들이 결합됨으로써 생성된 파노라마 동영상을 나타낸다.
파노라마 동영상에서, 움직이는 오브젝트(1421)의 왜곡이 최소화되도록 이미지 스티칭이 수행될 수 있다. 예를 들면, 복수 개의 영상에 대하여, 오브젝트(1421)의 움직임이 흔들리지 않고 안정되면서, 왜곡이 최소화되도록 이미지 스티칭 및 이미지 안정화가 수행될 수 있다. 따라서, 일 실시 예에 의하면, 영상에서 오브젝트(1421)를 제외한 배경 부분은 이미지 스티칭 및 이미지 안정화에 의해 왜곡되거나 흔들릴 수 있으나, 오브젝트(1421) 부분은 왜곡되지 않고 안정감 있게 표시될 수 있다. 시청자는, 배경보다는 오브젝트(1421) 부분에 집중하여 시청할 가능성이 높으므로, 배경 부분이 다소 왜곡되거나 흔들리더라도, 오브젝트(1421)의 왜곡 및 흔들림이 최소화되는 경우, 시청자에 의해 체감되는 영상 품질은 향상될 수 있다.
일 실시 예에 의하면, 영상의 전경 영역에 포함된 오브젝트에 대한 왜곡 및 흔들림이 최소화되도록, 이미지 안정화 또는 이미지 스티칭을 수행할 수 있다.
일 실시 예에 의하면, 영상의 전경 영역에 포함된 오브젝트의 중심점에 기초하여 이미지 안정화 또는 이미지 스티칭을 수행할 수 있으므로, 다수의 특징점에 기초하여 이미지를 안정화하거나 이미지 스티칭을 수행하는 경우보다 낮은 연산량으로 영상이 처리될 수 있다.
일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 또는 프로그램 모듈을 포함하며, 임의의 정보 전달 매체를 포함한다.
또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 전자 장치에서 시간적으로 연속된 복수 개의 영상을 처리하는 방법에 있어서, 상기 방법은
    상기 복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득하는 단계;
    상기 각 픽셀에 대한 돌출값에 기초하여, 상기 복수 개의 영상에 공통으로 포함된 오브젝트를 식별하는 단계;
    상기 복수 개의 영상이 연속적으로 표시될 때, 상기 식별된 오브젝트의 흔들림을 보정하기 위한, 이미지 안정화(stabilization)를 수행하는 단계; 및
    상기 이미지 안정화가 수행된 복수 개의 영상을 표시하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 오브젝트를 식별하는 단계는,
    상기 돌출값에 대한 기준값을 결정하는 단계;
    상기 기준값 이상의 돌출값을 가지는 영역을 식별하기 위한, 바이너리 마스크를 생성하는 단계; 및
    상기 바이너리 마스크를 이용하여, 상기 복수 개의 영상에서, 상기 오브젝트를 식별하는 단계를 포함하는, 방법.
  3. 제1항에 있어서, 상기 이미지 안정화를 수행하는 단계는
    상기 복수 개의 영상에서, 상기 식별된 오브젝트에 대한 중심점을 결정하는 단계; 및
    상기 복수 개의 영상에 대하여 결정된 중심점이 서로 중첩되도록, 상기 복수 개의 영상을 정렬(align)시킴으로써, 상기 이미지 안정화를 수행하는 단계를 포함하는, 방법.
  4. 제3항에 있어서, 상기 오브젝트에 대한 중심점은,
    상기 오브젝트에 포함된 각 픽셀에 대한 돌출값의 무게 중심으로 결정되는, 방법.
  5. 제1항에 있어서, 상기 이미지 안정화를 수행하는 단계는
    상기 복수 개의 영상에서, 상기 식별된 오브젝트를 포함하는 제1 도형을 생성하는 단계;
    상기 복수 개의 영상에 포함된 오브젝트의 중심점이 서로 중첩되도록 상기 복수 개의 영상을 정렬시키고, 상기 정렬된 복수 개의 영상에 포함된 각각의 제1 도형이 서로 중첩된 영역을 식별하는 단계;
    상기 식별된 영역을 포함하는 제2 도형을 생성하고, 상기 제2 도형이 포함하는 영역에서 움직임 예측을 수행하는 단계; 및
    상기 움직임 예측을 수행한 결과에 기초하여, 상기 복수 개의 영상을 다시 정렬함으로써, 상기 이미지 안정화를 수행하는 단계를 포함하는, 방법.
  6. 전자 장치에서 복수 개의 영상을 처리하는 방법에 있어서, 상기 방법은
    상기 복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득하는 단계;
    상기 각 픽셀에 대한 돌출값에 기초하여, 상기 복수 개의 영상에 공통으로 포함된 오브젝트를 식별하는 단계;
    상기 식별된 오브젝트에 대한 왜곡이 최소화되도록, 상기 복수 개의 영상을 결합함으로써, 이미지 스티칭을 수행하는 단계; 및
    상기 이미지 스티칭이 수행된 결과에 따라 상기 복수 개의 영상이 결합된 파노라마 영상을 표시하는 단계를 포함하는, 방법.
  7. 제6항에 있어서, 상기 이미지 스티칭을 수행하는 단계는
    상기 복수 개의 영상에서, 상기 식별된 오브젝트에 대한 중심점을 결정하는 단계; 및
    상기 복수 개의 영상에 대하여 결정된 중심점이 서로 중첩되도록, 상기 복수 개의 영상을 정렬시켜 결합함으로써, 상기 이미지 스티칭을 수행하는 단계를 포함하는, 방법.
  8. 전자 장치에 있어서,
    복수 개의 영상을 표시하는 디스플레이;
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
    상기 프로세서는, 상기 복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득하고, 상기 각 픽셀에 대한 돌출값에 기초하여, 상기 복수 개의 영상에 공통으로 포함된 오브젝트를 식별하고, 상기 복수 개의 영상이 연속적으로 표시될 때, 상기 식별된 오브젝트의 흔들림을 보정하기 위한, 이미지 안정화를 수행하고, 상기 이미지 안정화가 수행된 복수 개의 영상을 표시하도록 상기 디스플레이를 제어하는, 전자 장치.
  9. 제8항에 있어서, 상기 프로세서는
    상기 돌출값에 대한 기준값을 결정하고, 상기 기준값 이상의 돌출값을 가지는 영역을 식별하는 바이너리 마스크를 생성하고, 상기 바이너리 마스크를 이용하여, 상기 복수 개의 영상에서, 상기 오브젝트를 식별하는, 전자 장치.
  10. 제8항에 있어서, 상기 프로세서는
    상기 복수 개의 영상에서, 상기 식별된 오브젝트에 대한 중심점을 결정하고, 상기 복수 개의 영상에 대하여 결정된 중심점이 서로 중첩되어 표시되도록, 상기 복수 개의 영상을 정렬시킴으로써, 상기 복수 개의 영상을 안정화하는, 전자 장치.
  11. 제8항에 있어서, 상기 오브젝트에 대한 중심점은,
    상기 오브젝트에 포함된 각 픽셀에 대한 돌출값의 무게 중심으로 결정되는, 전자 장치.
  12. 제8항에 있어서, 상기 프로세서는
    상기 복수 개의 영상에서, 상기 식별된 오브젝트를 포함하는 제1 도형을 생성하고, 상기 복수 개의 영상에 포함된 오브젝트의 중심점이 서로 중첩되도록 상기 복수 개의 영상을 정렬시키고, 상기 정렬된 복수 개의 영상에 포함된 각각의 제1 도형이 서로 중첩된 영역을 식별하고, 상기 식별된 영역을 포함하는 제2 도형을 생성하고, 상기 제2 도형이 포함하는 영역에서 움직임 예측을 수행하고, 상기 움직임 예측을 수행한 결과에 기초하여, 상기 복수 개의 영상을 다시 정렬하는, 전자 장치.
  13. 전자 장치에 있어서,
    복수 개의 영상을 표시하는 디스플레이;
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
    상기 프로세서는, 상기 복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득하고, 상기 각 픽셀에 대한 돌출값에 기초하여, 상기 복수 개의 영상에 공통으로 포함된 오브젝트를 식별하고, 상기 식별된 오브젝트에 대한 왜곡이 최소화되도록, 상기 복수 개의 영상을 결합함으로써, 이미지 스티칭을 수행하고, 상기 이미지 스티칭이 수행된 결과에 따라 상기 복수 개의 영상이 결합된 파노라마 영상을 표시하도록 상기 디스플레이를 제어하는, 전자 장치.
  14. 제13항에 있어서, 상기 프로세서는
    상기 복수 개의 영상에서, 상기 식별된 오브젝트에 대한 중심점을 결정하고, 상기 복수 개의 영상에 대하여 결정된 중심점이 서로 중첩되도록, 상기 복수 개의 영상을 정렬시켜 결합함으로써, 상기 이미지 스티칭을 수행하는, 전자 장치.
  15. 복수 개의 영상에서, 각 픽셀에 대해 돌출된 정도를 나타내는 돌출값을 획득하는 동작;
    상기 각 픽셀에 대한 돌출값에 기초하여, 상기 복수 개의 영상에 공통으로 포함된 오브젝트를 식별하는 동작;
    상기 복수 개의 영상이 연속적으로 표시될 때, 상기 식별된 오브젝트의 흔들림을 보정하기 위한, 이미지 안정화(stabilization)를 수행하는 동작; 및
    상기 이미지 안정화가 수행된 복수 개의 영상을 표시하는 동작을 수행하도록 하는 프로그램이 저장된 기록매체를 포함하는 컴퓨터 프로그램 제품.
KR1020180059584A 2018-05-25 2018-05-25 복수 개의 영상을 처리하는 방법 및 전자 장치 KR20190134217A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180059584A KR20190134217A (ko) 2018-05-25 2018-05-25 복수 개의 영상을 처리하는 방법 및 전자 장치
PCT/KR2018/009572 WO2019225808A1 (ko) 2018-05-25 2018-08-21 복수 개의 영상을 처리하는 방법 및 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180059584A KR20190134217A (ko) 2018-05-25 2018-05-25 복수 개의 영상을 처리하는 방법 및 전자 장치

Publications (1)

Publication Number Publication Date
KR20190134217A true KR20190134217A (ko) 2019-12-04

Family

ID=68616409

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180059584A KR20190134217A (ko) 2018-05-25 2018-05-25 복수 개의 영상을 처리하는 방법 및 전자 장치

Country Status (2)

Country Link
KR (1) KR20190134217A (ko)
WO (1) WO2019225808A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101130963B1 (ko) * 2010-05-24 2012-04-04 중앙대학교 산학협력단 형태와 특징 정보를 이용한 비정형 객체 추적 장치 및 그 방법
KR101885961B1 (ko) * 2016-08-04 2018-08-06 영남대학교 산학협력단 이미지를 기반으로 한 객체 위치 추정 방법 및 장치
KR20180016187A (ko) * 2016-08-05 2018-02-14 한국전자통신연구원 복수의 카메라들을 정렬하기 위한 카메라 영상 분석 방법 및 영상 분석 표시 장치
KR20180028962A (ko) * 2016-09-09 2018-03-19 광운대학교 산학협력단 영상이동검출장치 및 방법
KR102558473B1 (ko) * 2016-09-30 2023-07-25 삼성전자주식회사 이미지를 표시하기 위한 방법 및 그 전자 장치

Also Published As

Publication number Publication date
WO2019225808A1 (ko) 2019-11-28

Similar Documents

Publication Publication Date Title
KR102338576B1 (ko) 이미지를 이용하여 획득된 깊이 정보의 속성에 따라 이미지와 연관하여 깊이 정보를 저장하는 전자 장치 및 전자 장치 제어 방법
US10593014B2 (en) Image processing apparatus, image processing system, image capturing system, image processing method
EP3092790B1 (en) Adaptive camera control for reducing motion blur during real-time image capture
US20180270417A1 (en) Image processing apparatus, image capturing system, image processing method, and recording medium
US9036072B2 (en) Image processing apparatus and image processing method
US9516223B2 (en) Motion-based image stitching
US10855916B2 (en) Image processing apparatus, image capturing system, image processing method, and recording medium
EP3687161A1 (en) Image capturing method, device, terminal, and storage medium
US11839721B2 (en) Information processing apparatus, information processing method, and storage medium
US10725723B2 (en) Image processing apparatus and image processing method for dynamic thumbnail generation of omnidirectional image
KR20120022512A (ko) 전자 카메라, 화상 처리 장치 및 화상 처리 방법
KR102423295B1 (ko) 심도 맵을 이용하여 객체를 합성하기 위한 장치 및 그에 관한 방법
US20190289206A1 (en) Image processing apparatus, image capturing system, image processing method, and recording medium
EP3316568A1 (en) Digital photographing device and operation method therefor
US9445073B2 (en) Image processing methods and systems in accordance with depth information
US20160353021A1 (en) Control apparatus, display control method and non-transitory computer readable medium
JP2016085380A (ja) 制御装置、制御方法、及び、プログラム
CN108986117B (zh) 视频图像分割方法及装置
EP3826290A1 (en) Head mount display and control method of head mount display, information processing device, display device, and program
KR20190014959A (ko) 움직임 정보에 기반하여 동영상을 재생하기 위한 장치 및 그의 동작 방법
CN110622501B (zh) 图像处理装置及电子设备
CN111742550A (zh) 一种3d影像拍摄方法、3d拍摄设备及存储介质
KR20190134217A (ko) 복수 개의 영상을 처리하는 방법 및 전자 장치
US20170091905A1 (en) Information Handling System Defocus Tracking Video
KR102591582B1 (ko) 컨텐츠를 표시하는 방법 및 전자 장치