KR20220101565A - Apparatus and Method for 360°Image Stitching - Google Patents

Apparatus and Method for 360°Image Stitching Download PDF

Info

Publication number
KR20220101565A
KR20220101565A KR1020220000265A KR20220000265A KR20220101565A KR 20220101565 A KR20220101565 A KR 20220101565A KR 1020220000265 A KR1020220000265 A KR 1020220000265A KR 20220000265 A KR20220000265 A KR 20220000265A KR 20220101565 A KR20220101565 A KR 20220101565A
Authority
KR
South Korea
Prior art keywords
feature
degree image
projection
parameter
stitching
Prior art date
Application number
KR1020220000265A
Other languages
Korean (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 한국전자통신연구원
Priority to US17/573,161 priority Critical patent/US20220222774A1/en
Publication of KR20220101565A publication Critical patent/KR20220101565A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)

Abstract

An apparatus and method for 360-degree image stitching are disclosed. The apparatus for 360-degree image stitching according to an embodiment of the present invention includes a memory having at least one program recorded, and a processor for executing the program, wherein the program creates a single 360-degree image by stitching features of multiple input images based on at least one parameter included in a 360-degree stitching function description template, the 360-degree stitching function description template includes a setting parameter, which is an array of function parameters, the setting parameter includes a stitching parameter, a camera parameter, a feature parameter, and a projection parameter, the feature parameter includes a feature extraction method from each of the plurality of input images, and the projection parameter includes a projection type that is a type of projection surface onto which the plurality of input images are projected. The apparatus defines the feature parameter as information for post-processing of a stitching result to correct a 360-degree image stitching error, and the apparatus is executed based on the defined feature parameter.

Description

360도 영상 스티칭 장치 및 방법{Apparatus and Method for 360°Image Stitching}Apparatus and Method for 360°Image Stitching}

기재된 실시예는 복수의 영상들을 결합하여 하나의 360도 파노라마 영상을 생성하는 360도 영상 스티칭 기술에 관한 것이다.The described embodiment relates to a 360-degree image stitching technique for generating a single 360-degree panoramic image by combining a plurality of images.

일반적으로 영상 스티칭 기능은 복수의 입력 영상들 각각을 획득한 카메라와 같은 캡처(capture) 장치들간의 기하학적 관계를 추정하기 위해 캡처 장치의 내부 및 외부 특성을 필요로 한다. 그런데, 복수의 입력 영상들에는 내부 및 외부 매트릭스로 계산할 수 없는 불일치가 존재할 수 있으므로, 약간의 간격이 있어야 한다. 대부분의 영상 스티칭 기능이 특징 추출 및 매칭 기술을 적용하여 스티칭 품질을 보다 향상시킨다.In general, an image stitching function requires internal and external characteristics of a capture device to estimate a geometrical relationship between capture devices, such as a camera, that has acquired each of a plurality of input images. However, since there may be inconsistencies that cannot be calculated using the inner and outer matrices in the plurality of input images, there must be a slight gap. Most image stitching functions apply feature extraction and matching technology to further improve stitching quality.

또한, 대부분의 영상 스티칭 알고리즘에서는 특징 매칭점 집합에서 무작위로 선택된 특징 매칭점으로 호모그래피(homography)를 계산한 후, 대부분의 특징점들이 호모그래피 변환 모델을 만족하는지 여부를 판단한다. 그러나, 이와 같이 특징 매칭점을 무작위로 선택할 경우, 선택된 특징점이 국부적으로 집중된 위치에 나타나게 되므로 계산된 호모그래피가 전역적이지 않을 수 있다. 따라서, 이럴 경우 매칭 특징점을 재선택하여 호모그래피 변환 모델이 전역적이 되도록 업데이트해야 한다. 따라서, 전술한 바와 같은 스티칭 오류를 정정하기 위해 특징 대응(feature corrsepondences)의 재선택 또는 업데이트에 의한 경계 정보 조정과 같은 후처리(post-processing)를 위한 정보로 특징 파라미터(feature parameters)가 정의될 필요가 있다. In addition, in most image stitching algorithms, after calculating homography with a feature matching point randomly selected from a feature matching point set, it is determined whether most of the feature points satisfy the homography transformation model. However, when the feature matching points are randomly selected as described above, the calculated homography may not be global because the selected feature points appear at a locally concentrated position. Therefore, in this case, the homography transformation model should be updated to be global by reselecting the matching feature points. Therefore, in order to correct the stitching error as described above, feature parameters are defined as information for post-processing such as boundary information adjustment by reselection or update of feature correspondences. There is a need.

한편, 현재의 360도 스티칭 기능에서는 출력 범위 파라미터는 OMAF ("ISO/IEC 23090-2:2019 Information technology ― Coded representation of immersive media ― Part 2: Omnidirectional media format", Jan. 2019.) 에서 정의된 파라미터들에 의해 구체화되고 있다. 그런데, OMAF에서는 예컨대, Equirectangular 및 CubeMap과 같은 다양한 투영 형태(projection format)을 다루고 있는 반면, 현재의 360도 스티칭 기능에서는 이러한 다양한 투영 형태를 위한 파라미터는 제공하고 있지 않다. Meanwhile, in the current 360-degree stitching function, the output range parameter is a parameter defined in OMAF (“ISO/IEC 23090-2:2019 Information technology — Coded representation of immersive media — Part 2: Omnidirectional media format”, Jan. 2019.) are materialized by However, while OMAF handles various projection formats such as Equirectangular and CubeMap, the current 360-degree stitching function does not provide parameters for these various projection formats.

기재된 실시예는 360도 영상 스티칭 오류를 수정하기 위한 스티칭 결과의 후처리를 위한 정보로 특징 파라미터를 정의하고, 정의된 특징 파라미터를 기반으로 수행되는 360도 영상 스티칭 장치 및 방법을 제안하는 것을 그 목적으로 한다. The described embodiment defines a feature parameter as information for post-processing of a stitching result for correcting a 360-degree image stitching error, and proposes a 360-degree image stitching apparatus and method performed based on the defined feature parameter. do it with

또한, 기재된 실시예는 다양한 형태의 투영 형태를 가지는 입력 스트림을 투영하기 위한 투영 파라미터를 정의하고, 정의된 투영 파라미터를 기반으로 수행되는 360도 영상 스티칭 장치 및 방법을 제안하는 것을 그 목적으로 한다.In addition, the described embodiment defines projection parameters for projecting an input stream having various types of projection shapes, and aims to propose a 360-degree image stitching apparatus and method performed based on the defined projection parameters.

실시예에 따른 360도 영상 스티칭 장치는, 적어도 하나의 프로그램이 기록된 메모리 및 프로그램을 실행하는 프로세서를 포함하며, 프로그램은, 360도 스티칭 기능 설명 템플릿에 포함된 적어도 하나의 파라미터를 기반으로 다중 입력 영상들의 특징을 스티칭하여 하나의 360도 영상으로 생성하되, 360도 스티칭 기능 설명 템플릿은, 기능 파라미터들의 어레이인 설정 파라미터를 포함하고, 설정 파라미터는, 스티칭 파라미터, 카메라 파라미터, 특징 파라미터 및 투영 파라미터를 포함하고, 특징 파라미터는, 복수의 입력 영상들 각각으로부터의 특징 추출 방법을 포함하고, 투영 파라미터는, 복수의 입력 영상들이 투사되는 투영면의 종류인 투영 타입을 포함할 수 있다. A 360-degree image stitching apparatus according to an embodiment includes a memory in which at least one program is recorded and a processor executing the program, wherein the program is multi-input based on at least one parameter included in the 360-degree stitching function description template. Stitching features of images to create a single 360-degree image, wherein the 360-degree stitching function description template includes a setting parameter that is an array of function parameters, wherein the setting parameter includes a stitching parameter, a camera parameter, a feature parameter, and a projection parameter. The feature parameter may include a method of extracting a feature from each of the plurality of input images, and the projection parameter may include a projection type that is a type of a projection surface onto which the plurality of input images are projected.

이때, 프로그램은, 적어도 하나의 특징 추출 방법 중 하나를 이용하여 다중 입력 영상들 각각으로부터 키 포인트를 검출하고, 키포인트에 대한 디스크립터를 추출하되, 특징 추출 방법은, SIFT(Scale Invariant Feature Transform), SURF(Speeded Up Robust Features), 비선형 확산 필터(nonlinear diffusion filter), 가속 KAZE 알고리즘, FAST 키 포인트 검출 및 BRIEF 디스크립터의 결합을 기반으로 하는 ORB(Oriented FAST and Rotated BRIEF), 스케일 공간 키 포인트 및 로테이션 불변 키포인트 디스크립터를 이용하는 BRISK(Binary Robust Invariant Scalable Keypoints) 알고리즘, 매칭 포인트를 위한 BRIEF(Binary Independent Elementary Feature) 디스크립터를 사용하는 특징 디스크립터 및 영상의 LoG(Laplacian of Gaussian)을 사용하는 특징 검출 중 적어도 하나를 포함할 수 있다. In this case, the program detects a key point from each of the multiple input images using one of at least one feature extraction method and extracts a descriptor for the key point, wherein the feature extraction method is SIFT (Scale Invariant Feature Transform), SURF (Speeded Up Robust Features), nonlinear diffusion filter, accelerated KAZE algorithm, Oriented FAST and Rotated BRIEF (Oriented FAST and Rotated BRIEF) based on FAST key point detection and combination of BRIEF descriptors, scale space key points and rotation invariant key points BRISK (Binary Robust Invariant Scalable Keypoints) algorithm using descriptors, feature descriptors using BRIEF (Binary Independent Elementary Feature) descriptors for matching points, and feature detection using Laplacian of Gaussian (LoG) of images. can

이때, 특징 추출 방법은, ‘URI' 타입으로, URN이 특징 추출 방법을 나타낼 수 있다. In this case, the feature extraction method is a 'URI' type, and the URN may indicate the feature extraction method.

이때, 특징 파라미터는, 특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응관계(feature correspondence)을 더 포함할 수 있다. In this case, the feature parameter may further include a feature point number, feature point positions, and feature correspondence.

이때, 프로그램은, 복수의 입력 영상들을 복호화하는 단계, 복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계, 특징점에 기초하여, 카메라 파라미터를 추출하는 단계, 카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 360도 영상을 생성하는 단계, 카메라 파라미터에 기초하여, 360도 영상의 경계선 정보를 결정하는 단계, 경계선 정보에 기초하여, 360도 영상을 후처리하는 단계 및 상기 후처리된 360도 영상을 부호화하는 단계를 수행하되, 특징점을 추출하는 단계에서, 특징 파라미터의 특징 추출 방법을 기반으로 특징점을 추출하고, 후처리하는 단계에서, 특징 파라미터의 특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응 관계(feature correspondence)을 이용할 수 있다. In this case, the program includes the steps of decoding a plurality of input images, extracting a feature point of each of the plurality of decoded input images, extracting a camera parameter based on the feature point, based on the camera parameter, the decoded multiple generating a 360-degree image by projecting the input images onto a projection object, determining boundary line information of the 360-degree image based on camera parameters, post-processing the 360-degree image based on the boundary line information, and the The step of encoding the post-processed 360-degree image is performed, but in the step of extracting the feature point, the feature point is extracted based on the feature extraction method of the feature parameter, and in the post-processing step, the number of feature points of the feature parameter (feature point number) ), feature point positions, and feature correspondence may be used.

이때, 투영 타입은, 정방형(Equirectangular) 및 큐브맵(Cubemap)을 포함하는 테이블 형태의 전방향 투영 포맷 리스트를 포함하되, 테이블에서 Id가 '0'일 경우, 전방향 투영은 정방형(Equirectangular)이고, Id가 '1'일 경우, 전방향 투영은 큐브맵(Cubemap)이고, Id가 '2'일 경우, 전방향 투영은 다른 투영 포맷일 수 있다. At this time, the projection type includes a table-type omnidirectional projection format list including a square (Equirectangular) and a cubemap (Cubemap), but when Id is '0' in the table, the omnidirectional projection is a square (Equirectangular) and , when Id is '1', the omni-directional projection is a cubemap, and when Id is '2', the omni-directional projection may be in another projection format.

이때, 프로그램은, 복수의 입력 영상들을 복호화하는 단계, 복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계, 특징점에 기초하여, 카메라 파라미터를 추출하는 단계, 카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 360도 영상을 생성하는 단계, 카메라 파라미터에 기초하여, 360도 영상의 경계선 정보를 결정하는 단계, 경계선 정보에 기초하여, 360도 영상을 후처리하는 단계 및 상기 후처리된 360도 영상을 부호화하는 단계를 수행하되, 360도 영상을 생성하는 단계에서, 투영 파라미터의 투영 포맷을 기초로 수행할 수 있다. In this case, the program includes the steps of decoding a plurality of input images, extracting a feature point of each of the plurality of decoded input images, extracting a camera parameter based on the feature point, based on the camera parameter, the decoded multiple generating a 360-degree image by projecting the input images onto a projection object, determining boundary line information of the 360-degree image based on camera parameters, post-processing the 360-degree image based on the boundary line information, and the The encoding of the post-processed 360-degree image may be performed, but in the step of generating the 360-degree image, it may be performed based on the projection format of the projection parameter.

실시예에 따른 360도 영상 스티칭 방법은, 복수의 입력 영상들을 복호화하는 단계, 복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계, 특징점에 기초하여, 카메라 파라미터를 추출하는 단계, 카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 360도 영상을 생성하는 단계, 카메라 파라미터에 기초하여, 360도 영상의 경계선 정보를 결정하는 단계, 경계선 정보에 기초하여, 360도 영상을 후처리하는 단계 및 상기 후처리된 360도 영상을 부호화하는 단계를 포함하되, 상기 단계들은 360도 스티칭 기능 설명 템플릿을 기반으로 수행되고, 기능 파라미터들의 어레이인 설정 파라미터를 포함하되, 설정 파라미터는, 스티칭 파라미터, 카메라 파라미터, 특징 파라미터 및 투영 파라미터를 포함하고, 특징 파라미터는, 복수의 입력 영상들 각각으로부터의 특징 추출 방법을 포함하고, 투영 파라미터는, 복수의 입력 영상들이 투사되는 투영면의 종류인 투영 타입을 포함할 수 있다. A 360-degree image stitching method according to an embodiment includes the steps of decoding a plurality of input images, extracting feature points of each of the plurality of decoded input images, extracting camera parameters based on the feature points, Based on the decoded multi-input images by projecting the image to the projection, generating a 360-degree image, based on the camera parameter, determining the boundary line information of the 360-degree image, based on the boundary line information, the 360-degree image Post-processing and encoding the post-processed 360-degree image, wherein the steps are performed based on a 360-degree stitching function description template, and include a setting parameter that is an array of function parameters, wherein the setting parameter comprises: a stitching parameter, a camera parameter, a feature parameter, and a projection parameter, wherein the feature parameter includes a method of extracting a feature from each of a plurality of input images, and the projection parameter is a projection that is a type of a projection surface onto which the plurality of input images are projected. It can contain types.

이때, 특징점을 추출하는 단계에서, 특징 파라미터의 적어도 하나의 특징 추출 방법 중 하나를 이용하여 다중 입력 영상들 각각으로부터 키 포인트를 검출하고, 키포인트에 대한 디스크립터를 추출하되, 특징 추출 방법은, SIFT(Scale Invariant Feature Transform), SURF(Speeded Up Robust Features), 비선형 확산 필터(nonlinear diffusion filter), 가속 KAZE 알고리즘, FAST 키 포인트 검출 및 BRIEF 디스크립터의 결합을 기반으로 하는 ORB(Oriented FAST and Rotated BRIEF), 스케일 공간 키 포인트 및 로테이션 불변 키포인트 디스크립터를 이용하는 BRISK(Binary Robust Invariant Scalable Keypoints) 알고리즘, 매칭 포인트를 위한 BRIEF(Binary Independent Elementary Feature) 디스크립터를 사용하는 특징 디스크립터 및 영상의 LoG(Laplacian of Gaussian)을 사용하는 특징 검출 중 적어도 하나를 포함할 수 있다. At this time, in the step of extracting the key point, a key point is detected from each of the multiple input images using one of at least one feature extraction method of the feature parameter, and a descriptor for the key point is extracted, wherein the feature extraction method is SIFT ( Scale Invariant Feature Transform), Speeded Up Robust Features (SURF), nonlinear diffusion filter, accelerated KAZE algorithm, Oriented FAST and Rotated BRIEF (ORB), scale based on FAST key point detection and combination of BRIEF descriptors BRISK (Binary Robust Invariant Scalable Keypoints) algorithm using spatial keypoints and rotation invariant keypoint descriptors, using BRIEF (Binary Independent Elementary Feature) descriptors for matching points. Features using Laplacian of Gaussian (LoG) descriptors and images. at least one of detection.

이때, 특징 추출 방법은, 'URI' 타입으로, URN이 특징 추출 방법을 나타낼 수 있다. In this case, the feature extraction method is a 'URI' type, and the URN may indicate the feature extraction method.

이때, 특징 파라미터는, 특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응 관계(feature correspondence)을 더 포함할 수 있다. In this case, the feature parameter may further include a feature point number, feature point positions, and feature correspondence.

이때, 후처리하는 단계에서, 특징 파라미터의 특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응 관계 (feature correspondence)을 이용할 수 있다. In this case, in the post-processing step, the feature point number, feature point positions, and feature correspondence of the feature parameter may be used.

이때, 투영 타입은, 정방형(Equirectangular) 및 큐브맵(Cubemap)을 포함하는 테이블 형태의 전방향 투영 포맷 리스트를 포함하되, 테이블에서 Id가 '0'일 경우, 전방향 투영은 정방형(Equirectangular)이고, Id가 '1'일 경우, 전방향 투영은 큐브맵(Cubemap)이고, Id가 '2'일 경우, 전방향 투영은 다른 투영 포맷이고, 360도 영상을 생성하는 단계에서, 투영 파라미터의 투영 포맷을 기초로 수행될 수 있다. At this time, the projection type includes a table-type omnidirectional projection format list including a square (Equirectangular) and a cubemap (Cubemap), but when Id is '0' in the table, the omnidirectional projection is a square (Equirectangular) and , when Id is '1', the omni-directional projection is a cubemap, when Id is '2', the omni-directional projection is another projection format, in the step of generating a 360-degree image, the projection of the projection parameters It may be performed based on the format.

실시예에 따른 360도 영상 스티칭 워크플로우 생성 방법은, 360도 영상 스티칭에 대한 요청 및 360도 영상 스티칭 워크플로우의 생성에 필요한 360도 영상 파라미터를 획득하는 단계, 360도 영상 스티칭 워크플로우에 적용될 수 있는 기능(function) 리스트를 획득하는 단계, 기능 리스트로부터 선택된 기능들에 기초하여, 360도 영상 스티칭 워크플로우를 생성하는 단계, 360도 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 멀티미디어 처리 엔티티의 개수를 결정하고, 결정된 멀티미디어 처리 엔티티의 개수에 따라, 복수의 멀티미디어 처리 엔티티를 생성하는 단계 및 360도 영상 스티칭 워크플로우를 구성하는 작업들을 복수의 멀티미디어 처리 엔티티에 할당하는 단계를 포함하되, 360도 영상 스티칭 워크플로우를 구성하는 작업들은, 360도 스티칭 기능 설명 템플릿에 포함된 적어도 하나의 파라미터를 기반으로 수행되되, 360도 스티칭 기능 설명 템플릿은, 기능 파라미터들의 어레이인 설정 파라미터를 포함하되, 설정 파라미터는, 스티칭 파라미터, 카메라 파라미터, 특징 파라미터 및 투영 파라미터를 포함하되, 특징 파라미터는, 복수의 입력 영상들 각각으로부터의 특징 추출 방법을 포함하고, 투영 파라미터는, 복수의 입력 영상들이 투사되는 투영면의 종류인 투영 타입을 포함할 수 있다.The method for generating a 360-degree image stitching workflow according to an embodiment may include: obtaining a request for 360-degree image stitching and a 360-degree image parameter necessary for generating a 360-degree image stitching workflow; It can be applied to a 360-degree image stitching workflow A multimedia processing entity required to process tasks constituting a 360-degree image stitching workflow, obtaining a list of existing functions, based on functions selected from the function list, and generating a 360-degree image stitching workflow Determining the number of and according to the determined number of multimedia processing entities, generating a plurality of multimedia processing entities and assigning tasks constituting a 360-degree image stitching workflow to the plurality of multimedia processing entities, 360 Operations constituting the figure image stitching workflow are performed based on at least one parameter included in the 360 degree stitching function description template, wherein the 360 degree stitching function description template includes a setting parameter that is an array of function parameters, The parameters include a stitching parameter, a camera parameter, a feature parameter, and a projection parameter, wherein the feature parameter includes a method of extracting a feature from each of a plurality of input images, and the projection parameter includes: It can contain a projection type that is a kind.

기재된 실시예에 따라, 360도 영상 스티칭 오류를 수정하기 위한 스티칭 결과의 후처리를 위한 정보로 정의된 특징 파라미터를 기반으로 360도 영상 스티칭을 수행할 수 있어, 360도 스티칭 영상의 품질을 향상시킬 수 있다. According to the described embodiment, 360-degree image stitching can be performed based on the feature parameter defined as information for post-processing of the stitching result for correcting the 360-degree image stitching error, so that the quality of the 360-degree stitched image can be improved. can

또한, 기재된 실시예에 따라, 다양한 형태의 투영 형태로 360도 영상 스티칭을 수행할 수 있어, 360도 영상 스티칭 기능을 향상시킬 수 있다. In addition, according to the described embodiment, 360-degree image stitching can be performed in various projection forms, so that a 360-degree image stitching function can be improved.

도 1은 실시 예에 따른 360도 영상 스티칭 장치를 설명하기 위한 개략적인 블록 구성도이다.
도 2는 실시 예에 따른 영상 보정 과정을 설명하기 위한 도면이다.
도 3은 일 실시 예에 따른 360도 영상 스티칭의 작업을 수행하기 위한 워크플로우를 설정 방법을 자세히 설명한다.
도 4는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
1 is a schematic block diagram illustrating a 360-degree image stitching apparatus according to an embodiment.
2 is a diagram for explaining an image correction process according to an embodiment.
3 is a detailed description of a method of setting a workflow for performing a 360-degree image stitching operation according to an exemplary embodiment.
4 is a diagram showing the configuration of a computer system according to an embodiment.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the technical field to which the present invention belongs It is provided to fully inform the possessor of the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.

비록 "제1" 또는 "제2" 등이 다양한 구성요소를 서술하기 위해서 사용되나, 이러한 구성요소는 상기와 같은 용어에 의해 제한되지 않는다. 상기와 같은 용어는 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용될 수 있다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.Although "first" or "second" is used to describe various elements, these elements are not limited by the above terms. Such terms may only be used to distinguish one component from another. Accordingly, the first component mentioned below may be the second component within the spirit of the present invention.

본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소 또는 단계가 하나 이상의 다른 구성요소 또는 단계의 존재 또는 추가를 배제하지 않는다는 의미를 내포한다.The terminology used herein is for the purpose of describing the embodiment and is not intended to limit the present invention. In this specification, the singular also includes the plural, unless specifically stated otherwise in the phrase. As used herein, “comprises” or “comprising” implies that the stated component or step does not exclude the presence or addition of one or more other components or steps.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 해석될 수 있다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms used herein may be interpreted with meanings commonly understood by those of ordinary skill in the art to which the present invention pertains. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless clearly specifically defined.

이하에서는, 도 1 내지 도 4를 참조하여 실시예에 따른 360도 영상 스티칭(stitching) 장치 및 방법이 상세히 설명된다. Hereinafter, a 360-degree image stitching apparatus and method according to an embodiment will be described in detail with reference to FIGS. 1 to 4 .

도 1은 실시 예에 따른 360도 영상 스티칭 장치를 설명하기 위한 개략적인 블록 구성도이다. 1 is a schematic block diagram illustrating a 360-degree image stitching apparatus according to an embodiment.

도 1을 참조하면, 실시예에 따른 360도 영상 스티칭 장치에 해당하는 멀티 미디어 처리 엔티티(Multi-Media Processing Entity)(110)는, 네트워크 기반 미디어 처리(Network-based Media Processing, NBMP) 소스(이하 '미디어 처리 소스'로 기재함)(100)로부터 전송된 복수의 영상들을 함께 전달된 파라미터들을 기반으로 360도 스티칭 작업(360 Stitching Task)한 결과인 360도 스티칭 영상을 360도 영상을 처리하는 어플리케이션(120)에 제공할 수 있다. 1, a multi-media processing entity (Multi-Media Processing Entity) 110 corresponding to a 360-degree image stitching apparatus according to an embodiment is a network-based media processing (NBMP) source (hereinafter referred to as NBMP). An application that processes a 360-degree image of a 360-degree stitched image that is a result of a 360-degree stitching task based on parameters transmitted together with a plurality of images transmitted from the 'media processing source') 100 (120) can be provided.

우선, 미디어 처리 소스(100)는 설정 정보(Configuration)(102), 미디어 소스(Media Source)(104), 및 메타데이터(Metadata)(106)를 포함할 수 있다. First, the media processing source 100 may include configuration information 102 , a media source 104 , and metadata 106 .

설정 정보(102) 및 메타데이터(106)는 복수의 입력 비디오 스트림에 관련된 정보를 나타낸다. The setting information 102 and the metadata 106 represent information related to a plurality of input video streams.

미디어 소스(104)는 360도 영상의 재료가 되는 미가공 영상을 포함한다. 이때, 미디어 소스(104)는 텍스쳐 영상 및 깊이 영상을 포함하거나, 텍스쳐 영상만을 포함할 수도 있다. The media source 104 contains the raw image from which the 360-degree image is made. In this case, the media source 104 may include a texture image and a depth image, or may include only a texture image.

멀티미디어 처리 엔티티(110)는 후술될 도 3의 워크플로우 관리자(Workfloww Manager)(202)에 의해 설정될 수 있다. 이때, 영상 스티칭 워크플로우가 단일 처리 엔티티에 의하여 처리될 수 없다고 판단되면, 멀티미디어 처리 엔티티(110)는 2개 이상 설정될 수 있다. 만약 영상 스티칭 워크플로우가 단일 처리 엔티티에 의하여 처리될 수 있다고 판단되면, 멀티미디어 처리 엔티티(110)는 1개만 설정될 수 있다. 상기 멀티미디어 처리 엔티티(110)는 도 2의 워크플로우 관리자(204)에 의하여 도 2의 클라우드 플랫폼(208)에서 생성될 수 있다.The multimedia processing entity 110 may be set by a workflow manager 202 of FIG. 3 to be described later. In this case, if it is determined that the image stitching workflow cannot be processed by a single processing entity, two or more multimedia processing entities 110 may be set. If it is determined that the image stitching workflow can be processed by a single processing entity, only one multimedia processing entity 110 may be set. The multimedia processing entity 110 may be created in the cloud platform 208 of FIG. 2 by the workflow manager 204 of FIG. 2 .

만약 멀티미디어 처리 엔티티(110)가 2개 이상 설정될 경우, 도 1의 단계 130 내지 단계 142에 따른 작업들이 복수의 멀티미디어 처리 엔티티(110)에 할당될 수 있다. 따라서, 많은 컴퓨팅 리소스를 필요로 하는 영상 스티칭 작업이 복수의 멀티미디어 처리 엔티티(110)에 의하여 빠르게 처리될 수 있다.If two or more multimedia processing entities 110 are set, tasks according to steps 130 to 142 of FIG. 1 may be assigned to a plurality of multimedia processing entities 110 . Accordingly, an image stitching operation requiring a lot of computing resources can be quickly processed by the plurality of multimedia processing entities 110 .

영상 스티칭 작업이 복수의 멀티미디어 처리 엔티티(110)에 의하여 처리될 경우, 상기 작업들의 할당을 위하여, 영상 스티칭에 관련된, 예를 들어, 영상 복호화, 특징점 추출, 카메라 파라미터 추출, 영상 투영, 경계선 정보 추출, 블렌딩, 후처리 및 영상 부호화 등과 같은 세부적인 작업에 대한 설정 정보, 인풋 및 아웃풋 설명자, 및 메타 데이터가 필요하다. 상기 정보는 복수의 처리 엔티티에서 여러 작업들 간의 인터페이스를 처리하기 위해 사용된다. When an image stitching task is processed by a plurality of multimedia processing entities 110, for assignment of the tasks, for example, image decoding, feature point extraction, camera parameter extraction, image projection, boundary information extraction related to image stitching , setting information, input and output descriptors, and metadata for detailed operations such as blending, post-processing and image encoding are required. The information is used to interface between different tasks in a plurality of processing entities.

실시예에 따라, 이와 같이 세부 작업들 각각에 적용되는 세부 정보 및 파라미터는 후술되는 360도 영상 스티칭 기능 설명 템플릿에 의해 정의될 수 있다. 이로써, 멀티미디어 처리 엔티티(110)는, 360도 스티칭 기능 설명 템플릿에 포함된 적어도 하나의 파라미터를 기반으로 다중 입력 영상들의 특징을 스티칭하여 하나의 360도 영상으로 생성할 수 있다. 이러한 실시예에 따른 360도 스티칭 기능 설명 템플릿의 상세한 설명은 후술될 <표 2> 내지 <표 7>을 참조하여 후술하기로 한다. According to an embodiment, detailed information and parameters applied to each of the detailed tasks as described above may be defined by a 360-degree image stitching function description template to be described later. Accordingly, the multimedia processing entity 110 may generate a single 360-degree image by stitching features of multiple input images based on at least one parameter included in the 360-degree stitching function description template. A detailed description of the 360-degree stitching function description template according to this embodiment will be described later with reference to <Table 2> to <Table 7>.

이에 앞서, 360도 영상 스티칭 방법의 세부 단계(단계 130 내지 142)에 대하여 자세히 설명하기로 한다.Prior to this, detailed steps (steps 130 to 142) of the 360-degree image stitching method will be described in detail.

단계 130에서, 부호화된 영상이 복호화(Decoding)된다. 구체적으로, 단계 130에서 여러 스레드 또는 GPU의 연산에 따라, 미디어 소스(104)의 부호화된 미가공 영상이 복호화된다. 또한, 미디어 소스(104)뿐만 아니라, 클라우드 파라미터부터 부호화된 미디어 데이터 피드가 단계 130의 복호화에 사용될 수 있다. 상기 미가공 영상은 후처리 등이 적용되지 않은 원본 영상을 나타낸다.In step 130, the encoded image is decoded. Specifically, in step 130 , the encoded raw image of the media source 104 is decoded according to the operation of multiple threads or GPUs. In addition, the media data feed encoded from the cloud parameters as well as the media source 104 may be used for decoding in step 130 . The raw image represents an original image to which post-processing is not applied.

단계 132에서, 단계 130에서 복호화된 미가공 영상으로부터 특징점이 추출된다. In step 132 , a feature point is extracted from the raw image decoded in step 130 .

특징점은 복수의 영상에서 특정 물체를 추적하거나 인식할 때, 영상과 영상을 매칭하는 기준이 되는 지점을 의미한다. 특징점을 기준으로 분포하는 픽셀들의 값을 분석함으로써, 서로 다른 영상 간에 유사한 부분이 검출된다. 따라서, 단계 132에서 인접한 미가공 영상들 간의 특징점을 비교함으로써, 인접한 미가공 영상들 간의 대응점이 결정될 수 있다. 그리고 대응점에 따라, 인접한 미가공 영상들 간에 스티칭 프로세스가 수행될 수 있다.The feature point refers to a point serving as a reference point for matching an image with an image when tracking or recognizing a specific object in a plurality of images. By analyzing the values of the pixels distributed based on the feature point, similar portions between different images are detected. Accordingly, by comparing feature points between adjacent raw images in operation 132 , a corresponding point between adjacent raw images may be determined. And according to the corresponding point, a stitching process may be performed between adjacent raw images.

이때, 단계 132에서, 실시예에 따라 정의된 특징 파라미터(feature parameters)(후술될 <표 6> 참조)에 포함된 특징 추출 방법 중 하나를 이용하여 다중 입력 영상들 각각으로부터 키 포인트를 검출하고, 키포인트에 대한 디스크립터가 추출될 수 있다. 이때, 특징 추출 방법은, SIFT(Scale Invariant Feature Transform), SURF(Speeded Up Robust Features), 비선형 확산 필터(nonlinear diffusion filter), 가속 KAZE 알고리즘, FAST 키 포인트 검출 및 BRIEF 디스크립터의 결합을 기반으로 하는 ORB(Oriented FAST and Rotated BRIEF), 스케일 공간 키 포인트 및 로테이션 불변 키포인트 디스크립터를 이용하는 BRISK(Binary Robust Invariant Scalable Keypoints) 알고리즘, 매칭 포인트를 위한 BRIEF(Binary Independent Elementary Feature) 디스크립터를 사용하는 특징 디스크립터 및 영상의 LoG(Laplacian of Gaussian)을 사용하는 특징 검출 중 적어도 하나를 포함하는 추출 방법(feature extraction method)을 기반으로 수행될 수 있다.At this time, in step 132, a key point is detected from each of the multiple input images by using one of the feature extraction methods included in the feature parameters defined according to the embodiment (refer to <Table 6> to be described later), A descriptor for a keypoint may be extracted. At this time, the feature extraction method is ORB based on SIFT (Scale Invariant Feature Transform), SURF (Speed Up Robust Features), nonlinear diffusion filter, accelerated KAZE algorithm, FAST key point detection, and combination of BRIEF descriptors (Oriented FAST and Rotated BRIEF), BRISK (Binary Robust Invariant Scalable Keypoints) algorithm using scale space keypoints and rotation invariant keypoint descriptors, feature descriptors using BRIEF (Binary Independent Elementary Feature) descriptors for matching points, and LoG of images It may be performed based on a feature extraction method including at least one of feature detection using (Laplacian of Gaussian).

이때, 단계 132에서 입력된 특징 파라미터는 이어지는 단계들에서 필요에 따라 계속적으로 사용될 수 있다. In this case, the feature parameter input in step 132 may be continuously used as needed in subsequent steps.

단계 134에서, 특징점 및 대응점 세트에 따라, 외부(extrinsic) 및 내부(intrinsic) 카메라 파라미터가 계산된다. 상기 외부 카메라 파라미터는 카메라의 촬영 각도, 촬영 위치 등을 포함한다. 상기 내부 카메라 파라미터는 카메라의 초점거리, 주점, 비대칭 계수 등을 포함한다.In step 134, extrinsic and intrinsic camera parameters are calculated according to the set of feature points and corresponding points. The external camera parameter includes a photographing angle of the camera, a photographing position, and the like. The internal camera parameters include a focal length of a camera, a principal point, an asymmetry coefficient, and the like.

일 실시 예에 따르면, 특징점 및 대응점을 분석함으로써, 2개의 인접한 영상들의 촬영에 사용된 2개의 카메라 간의 촬영 각도 및 촬영 위치의 차이가 계산될 수 있다. 따라서, 상기 특징점 및 대응점에 따라, 카메라의 외부 파라미터가 결정될 수 있다.According to an embodiment, by analyzing the feature point and the corresponding point, the difference between the photographing angle and the photographing position between two cameras used to photograph two adjacent images may be calculated. Accordingly, an external parameter of the camera may be determined according to the feature point and the corresponding point.

일 실시 예에 따르면, 특징점 및 대응점을 분석함으로써, 2개의 카메라의 초점거리, 주점, 비대칭 계수의 차이가 계산될 수 있다. 따라서, 특징점 및 대응점에 따라, 카메라의 내부 파라미터가 결정될 수 있다.According to an embodiment, by analyzing the feature point and the corresponding point, a difference between a focal length, a main point, and an asymmetry coefficient of two cameras may be calculated. Accordingly, an internal parameter of the camera may be determined according to the feature point and the corresponding point.

또한, 단계 134에서, 선택적으로 카메라 파라미터에 기초한 영상 왜곡 보정 프로세스가 수행될 수 있다. 일 실시 예에 따르면, 영상 왜곡 보정 프로세스는 렌즈 특성에 따른 영상 왜곡을 보정하는 프로세스일 수 있다.Also, in step 134 , an image distortion correction process based on camera parameters may optionally be performed. According to an embodiment, the image distortion correction process may be a process of correcting image distortion according to lens characteristics.

단계 136에서, 단계 134에서 결정된 카메라 파라미터에 기초하여, 영상 투영면에 단계 130에서 복호화된 미가공 영상들이 투사된다. 구체적으로, 카메라 파라미터 및 영상 투영 면에 기초하여, 영상들이 기하학적으로 정렬된다. 그리고 기하학적으로 정렬된 영상들이 영상 투영 면에 투사된다. 영상 투영의 결과, 360도 영상이 생성된다.In step 136 , the raw images decoded in step 130 are projected on the image projection plane based on the camera parameter determined in step 134 . Specifically, based on the camera parameter and the image projection plane, the images are geometrically aligned. And the geometrically aligned images are projected on the image projection plane. As a result of the image projection, a 360-degree image is generated.

이때, 단계 136는, 실시예에 따라 정의된 투영 파라미터(projection parameters)(후술될 <표 7> 참조)를 기반으로 수행될 수 있다. 즉, 구면, 큐브, 다면체 및 ERP(EquiRectangular Projection)를 포함하는 다양한 형태의 투영면들 중 하나에 복호화된 미가공 영상들이 투사될 수 있다. In this case, step 136 may be performed based on projection parameters defined according to an embodiment (refer to Table 7 to be described later). That is, the decoded raw images may be projected onto one of various types of projection surfaces including a sphere, a cube, a polyhedron, and an ERP (EquiRectangular Projection).

이로써, 다양한 형태의 입력 스트림을 커버할 수 있다. 즉, 후술될 <표 3>의 스티칭 파라미터(stitching parameters)의 출력 영상의 범위(output-coverage)는 "Coverage of the output image may be specified by following parameters defined in OMAF 7.3.5, in the following order: [coverage_shape_type, centre_azimuth, centre_elevation, centre_tilt, azimuth_range, elevation_range]"라고 정의되어 있다. 즉, Equirectangular 및 CubeMap과 같은 다양한 투영 형태(projection format)을 다루고 있는 OMAF("ISO/IEC 23090-2:2019 Information technology ― Coded representation of immersive media ― Part 2: Omnidirectional media format", Jan. 2019.)에서 정의된 파라미터들에 의해 구체화되고 있는데, 실시예에 따른 투여 파라미터에 의해 360도 스티칭 기능에서도 이러한 다양한 투영 형태를 위한 파라미터는 제공할 수 있게 되어 OMAF에서 다루는 다양한 형태의 입력 스트림을 커버할 수 있다. Accordingly, various types of input streams can be covered. That is, the output-coverage of the stitching parameters of <Table 3> to be described later is "Coverage of the output image may be specified by following parameters defined in OMAF 7.3.5, in the following order: [coverage_shape_type, center_azimuth, center_elevation, center_tilt, azimuth_range, elevation_range]". That is, OMAF (“ISO/IEC 23090-2:2019 Information technology — Coded representation of immersive media — Part 2: Omnidirectional media format”, Jan. 2019.) dealing with various projection formats such as Equirectangular and CubeMap. It is embodied by the parameters defined in , and the 360-degree stitching function can provide parameters for these various projection shapes by the administration parameters according to the embodiment, so that various types of input streams handled by OMAF can be covered. .

단계 138에서, 단계 136에서 생성된 360도 영상으로부터 초기에 추출된 스티칭 파라미터를 기반으로 인접한 영상들의 경계선이 추출된다. 이때, 스티칭 파라미터는 경계선의 위치에 대한 경계선 위치 파라미터 또는 영상에서 경계선에 해당되는 영역을 나타내는 경계선 마스크 파라미터를 포함할 수 있다. 경계선에 대한 스티칭 파라미터는 단계 134로부터 결정된 카메라 파라미터에 기초하여 결정될 수 있다.In operation 138 , a boundary line of adjacent images is extracted based on the stitching parameter initially extracted from the 360-degree image generated in operation 136 . In this case, the stitching parameter may include a boundary line position parameter for the position of the boundary line or a boundary line mask parameter indicating a region corresponding to the boundary line in the image. The stitching parameter for the boundary line may be determined based on the camera parameter determined in step 134 .

단계 138에서, 인접한 영상의 중복 영역에 이전 시점에 존재하지 않던 객체가 갑자기 나타날 때, 스티칭 파라미터가 업데이트될 수 있다. 따라서, 중복 영역의 변화에 따라, 경계선 위치 파라미터 또는 경계선 마스크 파라미터가 변경될 수 있다.In operation 138 , when an object that did not exist at a previous time suddenly appears in the overlapping region of an adjacent image, the stitching parameter may be updated. Accordingly, according to the change of the overlapping area, the boundary line position parameter or the boundary line mask parameter may be changed.

단계 140에서, 단계 136에서 생성된 360도 영상의 중복 영역에 대하여 블렌딩, 색 보정 및 노이즈 필터링 프로세스 등이 수행될 수 있다. 블렌딩, 색 보정 및 노이즈 필터링 프로세스 등은 단계 138에서 추출된 경계선 정보에 기초하여 수행될 수 있다.In operation 140 , blending, color correction, and noise filtering processes may be performed on the overlapping region of the 360-degree image generated in operation 136 . Blending, color correction, and noise filtering processes may be performed based on the boundary information extracted in step 138 .

블렌딩 프로세스는, 360도 영상의 중복 영역에 대응되는 2개의 부분 영상을 섞어서, 360도 영상이 하나의 연속된 영상으로 시각적으로 인식될 수 있도록 처리하는 프로세스이다. 색 보정 프로세스는 360도 영상을 구성하는 영상들이 하나의 영상으로 인식될 수 있도록, 색상, 명도 및 채도 등과 같은 색 파라미터를 조절하는 프로세스를 의미한다. 노이즈 필터링 프로세스는 영상의 노이즈를 제거하는 프로세스를 의미한다. 단계 140의 프로세스에 따라, 복수의 영상으로부터 생성된 360도 영상이 시각적으로 하나의 영상으로 인지될 수 있다.The blending process is a process of mixing two partial images corresponding to overlapping regions of a 360-degree image so that the 360-degree image can be visually recognized as one continuous image. The color correction process refers to a process of adjusting color parameters such as color, brightness, and saturation so that images constituting a 360-degree image can be recognized as a single image. The noise filtering process refers to a process of removing noise from an image. According to the process of step 140 , a 360-degree image generated from a plurality of images may be visually recognized as one image.

도 2는 실시 예에 따른 영상 보정 과정을 설명하기 위한 도면이다.2 is a diagram for explaining an image correction process according to an embodiment.

도 2를 참조하면, 대부분의 영상 스티칭 알고리즘에서는 특징 매칭점 집합에서 무작위로 선택된 특징 매칭점으로 호모그래피(homography)를 계산한 후, 대부분의 특징점들이 호모그래피 변환 모델을 만족하는지 여부를 판단한다. 그러나, 이와 같이 특징 매칭점을 무작위로 선택할 경우, 선택된 특징점이 국부적으로 집중된 위치에 나타나게 되므로 계산된 호모그래피가 전역적이지 않을 수 있다. 따라서, 이럴 경우 매칭 특징점을 재선택하여 호모그래피 변환 모델이 전역적이 되도록 업데이트해야 한다. 따라서, 전술한 바와 같은 스티칭 오류를 정정하기 위해 특징 대응(feature corrsepondences)의 재선택 또는 업데이트에 의한 경계 정보 조정과 같은 후처리(post-processing)를 위한 정보로 특징 파라미터(feature parameters)가 정의될 필요가 있다.Referring to FIG. 2 , in most image stitching algorithms, after calculating a homography with a feature matching point randomly selected from a feature matching point set, it is determined whether most of the feature points satisfy the homography transformation model. However, when the feature matching points are randomly selected as described above, the calculated homography may not be global because the selected feature points appear at a locally concentrated position. Therefore, in this case, the homography transformation model should be updated to be global by reselecting the matching feature points. Therefore, in order to correct the stitching error as described above, feature parameters are defined as information for post-processing such as boundary information adjustment by reselection or update of feature correspondences. There is a need.

따라서, 실시예에 따라, 설정 파라미터의 기능 파라미터로 특징 파라미터(feature parameters)가 정의되고, 단계 140에서, 실시예에 따라 정의된 특징 파라미터(feature parameters)를 기반으로 수행될 수 있다.Accordingly, according to the embodiment, feature parameters are defined as the function parameters of the setting parameters, and in step 140 , it may be performed based on the feature parameters defined according to the embodiment.

이때, 특징 파라미터는, 특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응 관계 (feature correspondence)을 더 포함할 수 있다. In this case, the feature parameter may further include a feature point number, feature point positions, and feature correspondence.

단계 142에서, 단계 140에서 처리된 360도 영상이 부호화된다. 단계 142의 부호화는 클라우드 파라미터에 따라 수행될 수 있다. 그리고 부호화된 360도 영상은 클라우드 플랫폼에 의하여 출력될 수 있다. In step 142, the 360-degree image processed in step 140 is encoded. The encoding in step 142 may be performed according to cloud parameters. And the encoded 360-degree image may be output by the cloud platform.

단계 130 내지 단계 142를 거쳐서, 부호화된 2차원 영상으로 구성된 비디오 스트림으로부터 부호화된 360도 영상으로 구성된 비디오 스트림이 생성된다. Through steps 130 to 142, a video stream composed of an coded 360-degree image is generated from a video stream composed of an coded 2D image.

실시 예에 따라, 단계 130 내지 단계 142의 순서가 일부 변경될 수 있으며, 소정의 단계가 생략될 수 있다. 또한, 단계 130 내지 단계 142의 중간에, 영상 처리 분야에서 관용적인 영상 처리 기법이 적용될 수 있다. 단계 130 내지 단계 142에 대응되는 명령은 도 3의 클라우드 플랫폼(208)에서 수행될 수 있다. According to an embodiment, the order of steps 130 to 142 may be partially changed, and a predetermined step may be omitted. Also, in the middle of steps 130 to 142, an image processing technique conventional in the image processing field may be applied. Commands corresponding to steps 130 to 142 may be performed in the cloud platform 208 of FIG. 3 .

이하, <표 1>에서, 단계 130 내지 단계 142의 각 작업에 대한 설명, 입력 및 출력이 설명되어 있다.Hereinafter, in <Table 1>, descriptions, inputs and outputs for each operation of steps 130 to 142 are described.

TaskTask DescriptionDescription InputInput OutputOutput Decoding(130)Decoding(130) Involves video type conversion from encoded video stream feed from media source to raw video stream using several threads or GPUs.Involves video type conversion from encoded video stream feed from media source to raw video stream using several threads or GPUs. Encoded media data feed from media source, and media and cloud parametersEncoded media data feed from media source, and media and cloud parameters Decoded media data like raw imagesDecoded media data like raw images Feature point extraction(132)Feature point extraction(132) Involves feature point extraction and matching corresponding points process between neighboring raw images.Involves feature point extraction and matching corresponding points process between neighboring raw images. Raw images to be aligned(stitched), and feature extraction methodRaw images to be aligned(stitched), and feature extraction method Extracted feature points and correspondence setsExtracted feature points and correspondence sets Camera parameter extraction(134)Camera parameter extraction(134) Involves camera extrinsic and intrinsic parameter calculation using feature points and correspondence sets. Optionally, involves image distortion correction process using cameral parameters.Involves camera extrinsic and intrinsic parameter calculation using feature points and correspondence sets. Optionally, involves image distortion correction process using cameral parameters. Extracted feature points and correspondence setsExtracted feature points and correspondence sets Extrinsic/intrinsic camera parameters and Lens distortion corrected imagesExtrinsic/intrinsic camera parameters and Lens distortion corrected images Projection(136)Projection(136) Involves image projection on the sphere, cube, polyhedron, and ERP with geometric alignment based on the camera parameters.Involves image projection on the sphere, cube, polyhedron, and ERP with geometric alignment based on the camera parameters. Lens distortion corrected images and projection and camera parametersLens distortion corrected images and projection and camera parameters Projected 360 imagesProjected 360 images Seam information extraction(138)Seam information extraction(138) Involves seam extraction or update process required when suddenly an object appears on the overlapped region.Involves seam extraction or update process required when suddenly an object appears on the overlapped region. Projected 360 images and initially extracted stitching parameters including seam position or seam maskProjected 360 images and initially extracted stitching parameters including seam position or seam mask Extracted or updated stitching parameters including seam position or seam maskExtracted or updated stitching parameters including seam position or seam mask Blending and post-processing(140)Blending and post-processing(140) Involves blending, color correction, and noise filtering in the overlapped region of projected 360 imagesInvolves blending, color correction, and noise filtering in the overlapped region of projected 360 images Projected 360 images, and stitching parametersProjected 360 images, and stitching parameters Blended and post-processed 360 imagesBlended and post-processed 360 images Encoding(142)Encoding(142) Involves video encoding of blended and post-processed 360 images using several threads or GPUs.Involves video encoding of blended and post-processed 360 images using several threads or GPUs. Blended and post-processed 360 images and media and cloud parametersBlended and post-processed 360 images and media and cloud parameters Encoded 360 video
*It could be the output of cloud platform
Encoded 360 video
*It could be the output of cloud platform

미디어 서비스 제공자는 전술한 단계 130 내지 142에 따른 워크플로우를 사용하여, 사용자에게 360도 영상 스티칭 서비스를 제공할 수 있다.The media service provider may provide a 360-degree image stitching service to the user by using the workflow according to steps 130 to 142 described above.

미디어 서비스 제공자의 작업 디렉토리는 <표 1>의 각 작업에 대한 세부 사항을 포함할 수 있다. 그리고 도 3의 워크플로우 관리자(204)는 <표 1>의 각 작업을 선택하여 도 1에 설명된 워크플로우를 준비할 수 있다. The media service provider's working directory may include details about each job in <Table 1>. In addition, the workflow manager 204 of FIG. 3 may select each task in <Table 1> to prepare the workflow described in FIG. 1 .

이하, 도 1에서 설명된 단계 130 내지 단계 142에 따른 영상 스티칭 프로세스를 복수의 멀티미디어 처리 엔티티(110)에 분배하는 미디어 시스템에서의 영상 스티칭의 작업을 수행하기 위한 워크플로우가 설명된다.Hereinafter, a workflow for performing the task of image stitching in the media system for distributing the image stitching process according to steps 130 to 142 described in FIG. 1 to a plurality of multimedia processing entities 110 will be described.

도 3은 일 실시 예에 따른 360도 영상 스티칭의 작업을 수행하기 위한 워크플로우를 설정 방법을 자세히 설명한다.3 is a detailed description of a method of setting a workflow for performing a 360-degree image stitching operation according to an exemplary embodiment.

도 3은 일 실시 예에 따른 복수의 처리 엔티티에 따른 영상 스티칭을 위한 미디어 시스템의 일부 구성 요소들의 연동을 통해 수행되는데, 미디어 소스(NBMP Source)(202), 워크플로우 관리자(Workflow Manager)(204), 기능 레지스트리(Function Registry)(206), 클라우드 플랫폼(208) 및 미디어 작업 관리자(NBMP Task)(210)를 포함한다.3 is performed through interworking of some components of a media system for image stitching according to a plurality of processing entities according to an embodiment, a media source (NBMP Source) 202 and a workflow manager (Workflow Manager) 204 ), a Function Registry 206 , a Cloud Platform 208 , and a Media Task Manager (NBMP Task) 210 .

이때, 미디어 소스(202), 워크플로우 관리자(204), 기능 레지스트리(206) 및 미디어 작업 관리자(210)는 각각 별도의 프로세서에 의하여 동작될 수 있다. 또는 워크플로우 관리자(204), 미디어 소스(202), 기능 레지스트리(206) 및 미디어 작업 관리자(210) 중 전부 또는 일부는 하나의 프로세서에 의하여 동작될 수 있다. 그리고 워크플로우 관리자(204), 미디어 소스(202), 기능 레지스트리(206) 및 미디어 작업 관리자(210)는 각각 영상 스티칭을 위한 정보를 저장하기 위한 메모리 디바이스를 포함할 수 있다.In this case, the media source 202 , the workflow manager 204 , the function registry 206 , and the media task manager 210 may be operated by separate processors. Alternatively, all or part of the workflow manager 204 , the media source 202 , the function registry 206 , and the media operation manager 210 may be operated by one processor. In addition, the workflow manager 204 , the media source 202 , the function registry 206 , and the media operation manager 210 may each include a memory device for storing information for image stitching.

워크플로우 관리자(204)는 영상 스티칭을 위한 워크플로우를 생성할 수 있다. 그리고 워크플로우 관리자(204)는 클라우드 플랫폼(208)에 상기 워크플로우에 포함된 복수의 작업을 수행하기 위한 복수의 멀티미디어 처리 엔티티를 생성할 수 있다.The workflow manager 204 may create a workflow for image stitching. In addition, the workflow manager 204 may create a plurality of multimedia processing entities for performing a plurality of tasks included in the workflow in the cloud platform 208 .

클라우드 플랫폼(208)은 복수의 프로세서를 포함한다. 그리고 클라우드 플랫폼(208)에 설정된 복수의 멀티미디어 처리 엔티티에 의하여, 영상 스티칭을 위하여 필요한 작업들이 수행될 수 있다. The cloud platform 208 includes a plurality of processors. In addition, tasks necessary for image stitching may be performed by the plurality of multimedia processing entities set in the cloud platform 208 .

그러면, 워크플로우 관리자(204)에 의한 영상 스티칭의 워크플로우 설정 방법을 자세히 설명하기로 한다.Then, a method of setting a workflow of image stitching by the workflow manager 204 will be described in detail.

도 3을 참조하면, 단계 S302에서, 미디어 소스(202)는, CreateWorkflow API(Application Programming Interface)를 사용하여, 영상 스티칭에 대한 요청과 함께, 영상 스티칭을 위한 워크플로우를 생성한다. 상기 CreateWorkflow API는 워크플로우 생성을 위한 전용 API이다. 그리고 미디어 소스(202)는, 상기 생성된 워크플로우를 설명하는 워크플로우 설명 문서를 생성하고, 상기 워크플로우 설명 문서를 워크플로우 관리자(204)에 전송한다. Referring to FIG. 3 , in step S302 , the media source 202 uses the CreateWorkflow API (Application Programming Interface) to generate a workflow for image stitching together with a request for image stitching. The CreateWorkflow API is a dedicated API for creating a workflow. In addition, the media source 202 generates a workflow description document describing the generated workflow, and transmits the workflow description document to the workflow manager 204 .

워크플로우 관리자(204)는 전송된 워크플로우 설명 문서에 따라, 워크플로우를 생성한다.The workflow manager 204 creates a workflow according to the sent workflow description document.

단계 S304에서, 워크플로우 관리자(204)는 영상 스티칭을 위한 워크플로우에 배치될 기능을 찾기 위하여, 쿼리 또는 쿼리 세트를 기능 레지스트리(206)에 전송한다. 상기 쿼리 또는 쿼리 세트는, 단계 302의 워크플로우 설명 문서에 의하여 요구되는 워크플로우의 기능을 설명한다. 그리고 기능 레지스트리(206)는 미디어 시스템(200)에서 지원하는 기능들의 리스트를 보관한다.In step S304 , the workflow manager 204 sends a query or query set to the function registry 206 to find a function to be placed in the workflow for image stitching. The query or query set describes the functionality of the workflow required by the workflow description document of step 302 . In addition, the function registry 206 stores a list of functions supported by the media system 200 .

단계 S306에서, 각 쿼리에 대하여, 기능 레지스트리(206)는 영상 스티칭에 사용될 수 있는 기능들, 그리고 그것들의 설명 및 구성 정보의 목록을 워크플로우 관리자(204)에 제공한다. 기능 레지스트리(206)는 미디어 시스템(200)에서 지원하는 기능들의 리스트와 쿼리 또는 쿼리 세트에 설명된 워크플로우의 기능들의 설명을 비교한다.In step S306, for each query, the function registry 206 provides the workflow manager 204 with a list of functions that can be used for image stitching, and their description and configuration information. The function registry 206 compares the list of functions supported by the media system 200 with the description of the functions of the workflow described in the query or query set.

그리고 기능 레지스트리(206)는 미디어 시스템(200)에서 지원되는 기능들 중, 상기 워크플로우에 적용될 수 있는 기능들의 리스트를 워크플로우 관리자(204)에 제공할 수 있다.In addition, the function registry 206 may provide a list of functions applicable to the workflow among functions supported by the media system 200 to the workflow manager 204 .

단계 308에서, 워크플로우 관리자(204)는 단계 306에서 기능 레지스트리(206)로부터 제공된 기능들의 리스트로부터 워크플로우에 필요한 기능들을 선택한다. 그리고, 워크플로우 관리자(204)는, 클라우드 플랫폼(208)에 접속하여, 선택된 기능들의 요구 사항에 따라, 클라우드 플랫폼(208)에 하나 이상의 미디어 처리 엔티티들을 생성할 수 있다.In step 308 , the workflow manager 204 selects functions necessary for the workflow from the list of functions provided from the function registry 206 in step 306 . Then, the workflow manager 204 may connect to the cloud platform 208 and create one or more media processing entities in the cloud platform 208 according to the requirements of the selected functions.

단계 S310에서, 클라우드 플랫폼(208)은 하나 이상의 멀티미디어 처리 엔티티의 생성을 확인한다. 그리고 클라우드 플랫폼(208)은 하나 이상의 멀티미디어 처리 엔티티에 대한 네트워크 액세스 정보의 생성을 확인할 수 있다. 클라우드 플랫폼(208)은 하나 이상의 멀티미디어 처리 엔티티의 생성되었음을 워크플로우 관리자(204)에 전달한다.In step S310, the cloud platform 208 confirms the creation of one or more multimedia processing entities. The cloud platform 208 may then confirm the generation of network access information for one or more multimedia processing entities. The cloud platform 208 communicates to the workflow manager 204 that one or more multimedia processing entities have been created.

단계 S312에서, 워크플로우 관리자(204)는 각 작업(task)에 대한 설정 정보를 생성한다. 그리고 워크플로우 관리자(204)는 작업 관리자(210)에게 각 작업마다 설정 정보를 전송한다. 상기 설정 정보를 작업 관리자(210)에게 전송하기 위하여, 작업 API가 사용될 수 있다. 작업 API는 설정 정보를 생성하기 위한 전용 API이다In step S312, the workflow manager 204 creates setting information for each task. And the workflow manager 204 transmits the setting information for each job to the job manager 210 . In order to transmit the setting information to the job manager 210 , a job API may be used. The operation API is a dedicated API for generating configuration information.

단계 S314에서, 작업 관리자(210)는 각 작업에 대한 성공적인 설정이 이루어졌는지 확인한다. 만약 현재 작업에 대한 성공적인 설정이 이루어진 경우, 작업 관리자(210)는 워크플로우 관리자(204)가 다음 작업에 접근할 수 있도록 접근 정보를 생성한다. 그리고 작업 관리자(210)는 워크플로우 관리자(204)에게 접근 정보를 생성한다. 각 작업에 대하여 단계 312와 단계 314가 수행됨으로써, 전체 워크플로우에 대한 성공적인 설정이 이루어졌는지 확인될 수 있다.In step S314, the task manager 210 checks whether successful setting for each task has been made. If successful setting of the current task is made, the task manager 210 generates access information so that the workflow manager 204 can access the next task. And the task manager 210 generates access information to the workflow manager 204 . As steps 312 and 314 are performed for each task, it can be confirmed whether successful setting for the entire workflow has been made.

단계 316에서, 워크플로우 관리자(204)는 워크플로우의 생성을 확인하고, 미디어 소스(202)에 영상 스티칭을 위한 미디어 처리가 시작될 수 있음을 알린다. 그리고 미디어 소스(202)에서 제공되는 미디어 소스(104)가 워크플로우에 따라 처리됨으로써, 360도 영상이 생성될 수 있다.In step 316, the workflow manager 204 confirms the creation of the workflow, and notifies the media source 202 that media processing for image stitching can be started. In addition, as the media source 104 provided from the media source 202 is processed according to a workflow, a 360-degree image may be generated.

이상 설명된 바와 같이, 워크플로우에서 사용되는 기능(function)을 설정하고, 워크플로우의 작업을 수행하기 위한 적절한 개수의 멀티미디어 처리 엔티티를 생성하고, 워크플로우의 각 작업의 설정 정보를 결정하기 위하여, 워크플로우의 작업들에 대한 많은 파라미터들이 필요하다.As described above, in order to set a function used in the workflow, create an appropriate number of multimedia processing entities for performing the task of the workflow, and determine the setting information of each task of the workflow, Many parameters are needed for the tasks of the workflow.

이하, <표 2>는 360도 영상 스티칭 기능 설명 템플릿의 파라미터 리스트의 일 실시 예를 나타낸다. Hereinafter, <Table 2> shows an example of a parameter list of a 360-degree image stitching function description template.

DescriptorDescriptor Parameter NameParameter Name TypeType DescriptionDescription GeneralGeneral DescriptionDescription stringstring stitches multiple input frames into a 360 equirectangular projected output. stitches multiple input frames into a 360 equirectangular projected output. nbmp-brandnbmp-brand StringString "urn:mpeg:mpegi:nbmp:2020:360stitcher""urn:mpeg:mpegi:nbmp:2020:360stitcher" input-portsinput-ports Array of objectArray of objects Multiple input ports shall be defined for input media (e.g. images or videos). Specific media types supported by the implementation shall be defined by Input Descriptor (e.g. mime-type and the correspondent media type parameters).Multiple input ports shall be defined for input media (e.g. images or videos). Specific media types supported by the implementation shall be defined by Input Descriptor (e.g. mime-type and the correspondent media type parameters). output-portsoutput-ports Array of objectArray of objects One output port shall be defined for monoscopic output (image or video). Any other optional outputs for other output types if supported. Specific media types supported by the implementation shall be defined by Output Descriptor (e.g. mime-type and the correspondent media type parameters). The output media type shall be the same as the input media type.One output port shall be defined for monoscopic output (image or video). Any other optional outputs for other output types if supported. Specific media types supported by the implementation shall be defined by Output Descriptor (e.g. mime-type and the correspondent media type parameters). The output media type shall be the same as the input media type. ProcessingProcessing KeywordsKeywords Array of stringArray of string [
"360-degree panoramic stitcher",
"360-degree stitcher"
]
[
"360-degree panoramic stitcher",
"360-degree stitcher"
]
ConfigurationConfiguration ParametersParameters Array of parametersArray of parameters Function parameters:
· stitching parameters
· camera parameters
· feature parameters
· projection parameters
Function parameters:
· stitching parameters
· camera parameters
· feature parameters
· projection parameters

<표 2>를 참조하면, 실시예에 따른 360도 스티칭 기능 설명 템플릿은, 일반(General) 설명자, 처리(Processing) 설명자 및 설정(Configuration) 설명자가 포함될 수 있다. 설정(Configuration) 설명자는, 영상 스티칭 워크플로우에 필요한 작업들의 설정 정보를 위한 하위 파라미터들로 다양한 기능 파라미터들(Function parameters)이 포함된다. Referring to <Table 2>, the 360-degree stitching function description template according to the embodiment may include a general descriptor, a processing descriptor, and a configuration descriptor. The configuration descriptor includes various function parameters as sub-parameters for configuration information of tasks required for an image stitching workflow.

예를 들어, 스티칭 파라미터(stitching parameters)는 경계점 위치 및 경계점 마스크 등에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다. For example, the stitching parameters may be expressed as data in the form of an array including sub-parameters related to a boundary point position and a boundary point mask.

또한, 카메라 파라미터(camera parameters)는 카메라의 초점거리(focal length), 주점(principal point), 비대칭 계수(skew coefficient), 카메라의 이동 및 회전(translation and rotation) 등에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다. In addition, the camera parameters are an array type including sub-parameters related to the focal length, principal point, skew coefficient, and translation and rotation of the camera. can be expressed as data of

또한, 실시예에 따라 제안된 특징 파라미터(feature parameters)는 특징 추출 방법(feature extraction method), 특징점 개수(feature point number), 특징점 위치(feature point positions), 특징점 대응관계 (feature correspondence)에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다. In addition, the feature parameters proposed according to the embodiment are subordinate to a feature extraction method, a feature point number, feature point positions, and feature correspondence. It can be expressed as data in the form of an array including parameters.

또한, 실시예에 따라 제안된 투영 파라미터(projection parameter)는 투영 타입 등에 관한 하위 파라미터를 포함하는 어레이 형태의 데이터로 표현될 수 있다. In addition, the projection parameter proposed according to the embodiment may be expressed as data in the form of an array including sub-parameters related to a projection type and the like.

이하, <표 3> 내지 <표 7>에서 영상 스티칭의 각 작업에 필요한 파라미터들의 실시 예들이 설명된다.Hereinafter, examples of parameters required for each operation of image stitching are described in <Table 3> to <Table 7>.

<표 3>은 스티칭 파라미터(stitching parameters)의 실시 예를 나타낸다.<Table 3> shows examples of stitching parameters.

NameName Definitiondefinition UnitUnit TypeType Valid RangeValid Range stitching-typestitching-type Output panoramic type, one of "monoscopic" and "stereoscopic".The default value is "monoscopic".Output panoramic type, one of "monoscopic" and "stereoscopic". The default value is "monoscopic". N/AN/A StringString N/AN/A camera-parameterscamera-parameters Camera and capturing-related parameters Camera and capturing-related parameters N/AN/A Array of camera objectArray of camera objects N/AN/A v-seam-positionsv-seam-positions Interpolated vertical areas where overlapped field of views occurs between neighbouring frames. The number of positions is the same as the number of overlaps. Each position can be represented by a pair of position number in degree (starting and ending degrees) and the total size of the array equals to the seam number multiplied by 2.Interpolated vertical areas where overlapped field of views occurs between neighbouring frames. The number of positions is the same as the number of overlaps. Each position can be represented by a pair of position number in degree (starting and ending degrees) and the total size of the array equals to the seam number multiplied by 2. degreedegree Array of numberArray of numbers N/AN/A h-seam-positionsh-seam-positions Interpolated horizontal areas where overlapped field of views occurs between neighbouring frames. The number of positions is the same as the number of overlaps. Each position can be represented by a pair of position number in degree (starting and ending degrees) and the total size of the array equals to the seam number multiplied by 2.Interpolated horizontal areas where overlapped field of views occurs between neighbouring frames. The number of positions is the same as the number of overlaps. Each position can be represented by a pair of position number in degree (starting and ending degrees) and the total size of the array equals to the seam number multiplied by 2. degreedegree Array of numberArray of numbers N/AN/A seam-maskseam-mask Interpolated area locations may be represented by mask image, which has only 1 or 0 value.This parameter is optional.Interpolated area locations may be represented by mask image, which has only 1 or 0 value.This parameter is optional. URLURL StringString N/AN/A stitching-methodstitching-method Specific stitching algorithm may be specified for fast or fine stitching approaches. The value can be one of "fast", "normal", and "fine". The default value is "fast". Specific stitching algorithm may be specified for fast or fine stitching approaches. The value can be one of "fast", "normal", and "fine". The default value is "fast". N/AN/A StringString N/AN/A seam-extent-freedomseam-extent-freedom The seam margin may be expanded in degree. The size of the array must be the half of the seam position. The default value for each seam is 0 (zero).The seam margin may be expanded in degree. The size of the array must be the half of the seam position. The default value for each seam is 0 (zero). pixelpixel Array of numberArray of numbers N/AN/A convergence-distanceconvergence-distance Convergence distance selection criteria may be specified. It determines the handling of near and far detail reproduction around seam positions. The value is one of "auto", "near", "far". The default value is "auto".Convergence distance selection criteria may be specified. It determines the handling of near and far detail reproduction around seam positions. The value is one of "auto", "near", "far". The default value is "auto". N/AN/A StringString N/AN/A camera-weightingcamera-weighting The weighting value of the input in stitching process. The higher the weighting value is, the more important the input is. The value shall be normalized to the scale 0 to 100. The output quality changes when the value is changed. The value for each input shall be ordered in the same as the input-ports' order and the size of the array is equal to the number of input media streams.The weighting value of the input in stitching process. The higher the weighting value is, the more important the input is. The value shall be normalized to the scale 0 to 100. The output quality changes when the value is changed. The value for each input shall be ordered in the same as the input-ports' order and the size of the array is equal to the number of input media streams. N/AN/A Array of numberArray of numbers 0..1000..100 output-coverageoutput-coverage Coverage of the output image may be specified by following parameters defined in OMAF 7.3.5, in the following order: [coverage_shape_type, centre_azimuth, centre_elevation, centre_tilt, azimuth_range, elevation_range]Coverage of the output image may be specified by following parameters defined in OMAF 7.3.5, in the following order: [coverage_shape_type, center_azimuth, center_elevation, center_tilt, azimuth_range, elevation_range] degreedegree Array of numberArray of numbers -360..360-360..360

<표 4>는 카메라 파라미터(camera parameters)로써, 카메라 오브젝트 파라미터(camera object parameters)의 실시 예를 나타낸다.<Table 4> shows an example of camera object parameters as camera parameters.

NameName Definitiondefinition UnitUnit TypeType Valid RangeValid Range camera-intrinsiccamera-intrinsic Camera lens intrinsic parameters representing the optical center, focal length of the camera, as well as the skew coefficientCamera lens intrinsic parameters representing the optical center, focal length of the camera, as well as the skew coefficient N/AN/A ObjectObject N/AN/A camera-extrinsiccamera-extrinsic Camera transformation parameters representing a rigid transformation from 3-D world coordinate system to the 3-D camera's coordinate system. The structure is a 4x4 homogeneous transformation matrix in an array, which is in row major order. Camera transformation parameters representing a rigid transformation from 3-D world coordinate system to the 3-D camera's coordinate system. The structure is a 4x4 homogeneous transformation matrix in an array, which is in row major order. N/AN/A Array of NumberArray of Numbers N/AN/A camera-shutter-typecamera-shutter-type Camera shutter type, one of "rolling" and "global". The default value is "rolling".Camera shutter type, one of "rolling" and "global". The default value is "rolling". N/AN/A StringString N/AN/A camera-sync-skewcamera-sync-skew Camera shutter synchronization skew value with respect to the first camera when multiple cameras are used.The default value is 0.Camera shutter synchronization skew value with respect to the first camera when multiple cameras are used.The default value is 0. Millisecondmillisecond NumberNumber N/AN/A capturing-environmentcapturing-environment The capturing scene type, one of "indoor", "outdoor", or "unknown/unspecified". The default is "unknown".The capturing scene type, one of "indoor", "outdoor", or "unknown/unspecified". The default is "unknown". N/AN/A StringString N/AN/A shooting-typeshooting-type Capturing shooting type, one of "long shoot", "medium shoot", "close up", or "unspecified". The default is "unspecified".Capturing shooting type, one of "long shoot", "medium shoot", "close up", or "unspecified". The default is "unspecified". N/AN/A StringString N/AN/A

<표 5>는 카메라 파라미터(camera parameters)로써, 카메라 내부 오브젝트 파라미터(camera intrinsic object parameters)의 실시 예를 나타낸다.<Table 5> shows an example of camera intrinsic object parameters as camera parameters.

NameName Definitiondefinition UnitUnit TypeType Valid RangeValid Range camera-typecamera-type Camera type, one of "pinhole", "fisheye", "omnidirectional".
The default value is "pinhole".
Camera type, one of "pinhole", "fisheye", "omnidirectional".
The default value is "pinhole".
N/AN/A StringString N/AN/A
focal-lengthfocal length Focal length (x, y)Focal length (x, y) pixelpixel Array of numberArray of numbers N/AN/A principal-pointprincipal-point Principal point (optical center) (x, y)Principal point (optical center) (x, y) pixelpixel Array of numberArray of numbers N/AN/A distortiondistortion Coefficients of various radial and other distortions. The coefficients array follows the structure used by OpenCV like one-dimensional vector of (k1, k2, p1, p2 [,k3 [,k4, k5, k6 [, e1, e2 [, e3 ... ]]]]), with lengths like 4, 5, 8, 10 and more. The "e" coefficients are parameters for Entrance Pupil (EP) distortion correction, which is defined in MPEG-I Part 7 and OMAF Coefficients of various radial and other distortions. The coefficients array follows the structure used by OpenCV like one-dimensional vector of (k 1 , k 2 , p 1 , p 2 [,k 3 [,k 4 , k 5 , k 6 [, e1, e2 [, e3 . .. ]]]]), with lengths like 4, 5, 8, 10 and more. The "e" coefficients are parameters for Entrance Pupil (EP) distortion correction, which is defined in MPEG-I Part 7 and OMAF N/AN/A Array of numberArray of numbers N/AN/A

<표 6>는 특징 파라미터(feature parameters)의 실시 예를 나타낸다.<Table 6> shows examples of feature parameters.

NameName Definitiondefinition UnitUnit TypeType Valid RangeValid Range feature-extraction-methodfeature-extraction-method URN indicating the feature extraction method and take one of the following values according to the feature extraction methods in OpenCV
1. urn:opencv:cv:feature2d:sift
- extracting key points and computing descriptors using the Scale Invariant Feature Transform (SIFT) algorithm
2. urn:opencv:cv:feature2d:surf
- extracting Speeded Up Robust Features (SURF) from an image
3. urn:opencv:cv:feature2d:kaze
- keypoint detector and descriptor extractor using nonlinear diffusion filter in the scale space
4. urn:opencv:cv:feature2d:akaze
- keypoint detector and descriptor extractor using accelerated KAZE algorithm
5. urn:opencv:cv:feature2d:orb
- keypoint detector and descriptor extractor using ORB (Oriented FAST and Rotated BRIEF) based on the fusion of Oriented FAST keypoint detector and BRIEF descriptor
6. urn:opencv:cv:feature2d:brisk
- keypoint detector and descriptor extractor using BRISK (Binary Robust Invariant Scalable Keypoints) algorithm that utilizes scale space key point detection and rotation invariant key point descriptor
7. urn:opencv:cv:feature2d:brief
- feature descriptor using Binary Robust Independent Elementary Feature(BRIEF) descriptor for matching points described
8. urn:opencv:cv:feature2d:log
- feature detector using Laplacian of Gaussian(LoG) filter of an image, described
9. 'other URN'
- other URN indicating other feature extraction method

NOTE    Additional methods may become available. We need an extensive mechanism to support them.
URN indicating the feature extraction method and take one of the following values according to the feature extraction methods in OpenCV
1. urn:opencv:cv:feature2d:sift
- extracting key points and computing descriptors using the Scale Invariant Feature Transform (SIFT) algorithm
2. urn:opencv:cv:feature2d:surf
- extracting Speeded Up Robust Features (SURF) from an image
3. urn:opencv:cv:feature2d:kaze
- keypoint detector and descriptor extractor using nonlinear diffusion filter in the scale space
4. urn:opencv:cv:feature2d:akaze
- keypoint detector and descriptor extractor using accelerated KAZE algorithm
5. urn:opencv:cv:feature2d:orb
- keypoint detector and descriptor extractor using ORB (Oriented FAST and Rotated BRIEF) based on the fusion of Oriented FAST keypoint detector and BRIEF descriptor
6. urn:opencv:cv:feature2d:brisk
- keypoint detector and descriptor extractor using BRISK (Binary Robust Invariant Scalable Keypoints) algorithm that utilizes scale space key point detection and rotation invariant key point descriptor
7. urn:opencv:cv:feature2d:brief
- feature descriptor using Binary Robust Independent Elementary Feature (BRIEF) descriptor for matching points described
8. urn:opencv:cv:feature2d:log
- feature detector using Laplacian of Gaussian (LoG) filter of an image, described
9. 'other URN'
- other URN indicating other feature extraction method

NOTE Additional methods may become available. We need an extensive mechanism to support them.
N/AN/A URIURI N/AN/A

<표 7>은 투영 파라미터(projection parameter)의 실시 예를 나타낸다.<Table 7> shows examples of projection parameters.

NameName Definitiondefinition UnitUnit TypeType Valid RangeValid Range projection-typeprojection-type Projection type information for the following tasks which perform any video processing with the output of this stitching function, for instance OMAF Packager.
Takes one of the following values according to the projection format list:
- 'Equirectangular'
- 'Cubemap' 

Default is 'Equirectangular'
Omnidirectional projection formats
Id : Omnidirectional projection
0 : Equirectangular
1 : Cubemap
2 : Other projection format
Projection type information for the following tasks which perform any video processing with the output of this stitching function, for instance OMAF Packager.
Takes one of the following values according to the projection format list:
- 'Equirectangular'
- 'Cubemap'

Default is 'Equirectangular'
Omnidirectional projection formats
Id: Omnidirectional projection
0 : Equirectangular
1: Cubemap
2: Other projection format
N/AN/A StringString N/AN/A

<표 8>은 설정(Configuration) 설명자에 포함된 영상 스티칭 워크플로우에 필요한 작업들의 설정 정보를 위한 하위 파라미터들로 다양한 기능 파라미터들(Function parameters)를 Javascipt 언어로 정의한 JSOM schema의 실시 예를 나타낸다. 이러한 JSOM schema가 전술한 멀티미디어 처리 엔티티에 전달되어 360도 영상 스티칭 작성 작업에 사용될 수 있다. <Table 8> shows an embodiment of the JSOM schema in which various function parameters are defined in Javascipt language as sub-parameters for configuration information of tasks required for the image stitching workflow included in the configuration descriptor. This JSOM schema may be delivered to the aforementioned multimedia processing entity and used for creating 360-degree image stitching.

{
  "parameters": [
    {
      "name": "stitching-type",
      "id": 1,
      "datatype": "string",
      "values": [
        {
          "id": 11,
          "restrictions": [
            "monoscopic"
          ]
        },
        {
          "id": 12,
          "restrictions": [
            "stereoscopic"
          ]
        }
      ]
    },
    {
      "name": "camera-parameters",
      "id": 2,
      "datatype": "array",
      "schema": {
        "type": "object",
        "properties": {
          "camera-intrinsic": {
            "type": "object",
            "$ref": "#/definitions/camera-intrinsic"
          },
          "camera-extrinsic": {
            "type": "array",
            "items": {
              "type": "number",
              "minItems": 16,
              "maxItems": 16
            }
          },
          "camera-shutter-type": {
            "type": "string",
            "desciption": "The camera shutter type. One of 'rolling', and 'global'. Default is 'rolling'"
          },
          "camera-sync-skew": {
            "type": "number"
          },
          "capturing-environment": {
            "type": "string"
          },
          "shooting-type": {
            "type": "string"
          }
        }
      }
    },
    {
      "name": "v-seam-positions",
      "id": 3,
      "datatype": "array",
      "schema": {
        "type": "number"
      }
    },
    {
      "name": "h-seam-positions",
      "id": 4,
      "datatype": "array",
      "schema": {
        "type": "number"
      }
    },
    {
      "name": "seam-mask",
      "id": 5,
      "datatype": "string"
    },
    {
      "name": "stitching-method",
      "id": 6,
      "datatype": "string"
    },
    {
      "name": "seam-extent-freedom",
      "id": 7,
      "datatype": "array",
      "schema": {
        "type": "number"
      }
    },
    {
      "name": "convergence-distance",
      "id": 8,
      "datatype": "string"
    },
    {
      "name": "camera-weighting",
      "id": 9,
      "datatype": "array",
      "schema": {
        "type": "integer"
      }
    },
    {
      "name": "output-coverage",
      "id": 10,
      "datatype": "array",
      "schema": {
        "type": "number"
      }
    },
    {
      "name": "feature-parameter",
      "id": 11,
      "datatype": "object",
      "schema": {
            "$ref": "#/definitions/feature-parameter"
      }
    },    
    {
      "name": "projection-parameters",
      "id": 12,
      "datatype": "array",
      "schema": {
            "$ref": "#/definitions/projection-parameter"
      }
    }
  ],
  "definitions": {
    "camera-intrinsic": {
      "type": "object",
      "properties": {
        "camera-type": {
          "type": "string",
          "description": "Camera type. One of 'pinhole', 'fisheye', 'omnidirectional'. Default is 'pinhole'"
        },
        "focal-length": {
          "type": "array",
          "items": {
            "type": "number",
            "minItems": 2,
            "maxItems": 2
          }
        },
        "principal-point": {
          "type": "array",
          "items": {
              "type": "number",
            "minItems": 2,
            "maxItems":2
          }
        },
        "distortion": {
          "type": "array",
          "items": {
            "type": "number",
            "minItems": 4
          }
        }
      }
    },
    "feature-parameter": {
      "type": "object",
      "properties": {
        "feature-extraction-method": {
            "type": "string",
            "format": "uri", 
            "patternProperties": {
                "^urn:": {"type": "string"}
            },
          "additionalProperties": false
        }
      }
    },
    "projection-parameter": {
      "type": "string",
      "properties": {
        "projection-type": {
          "type": "string",
          "description": "Projection type. One of Equirectangular, Cubemap, or other projection type. Default is Equirectangular."            
        }
      }
    }     
  } 
}
{
"parameters": [
{
"name": "stitching-type",
"id": 1,
"datatype": "string",
"values": [
{
"id": 11,
"restrictions": [
"monoscopic"
]
},
{
"id": 12,
"restrictions": [
"stereoscopic"
]
}
]
},
{
"name": "camera-parameters",
"id": 2,
"datatype": "array",
"schema": {
"type": "object",
"properties": {
"camera-intrinsic": {
"type": "object",
"$ref": "#/definitions/camera-intrinsic"
},
"camera-extrinsic": {
"type": "array",
"items": {
"type": "number",
"minItems": 16,
"maxItems": 16
}
},
"camera-shutter-type": {
"type": "string",
"desciption": "The camera shutter type. One of 'rolling', and 'global'. Default is 'rolling'"
},
"camera-sync-skew": {
"type": "number"
},
"capturing-environment": {
"type": "string"
},
"shooting-type": {
"type": "string"
}
}
}
},
{
"name": "v-seam-positions",
"id": 3,
"datatype": "array",
"schema": {
"type": "number"
}
},
{
"name": "h-seam-positions",
"id": 4,
"datatype": "array",
"schema": {
"type": "number"
}
},
{
"name": "seam-mask",
"id": 5,
"datatype": "string"
},
{
"name": "stitching-method",
"id": 6,
"datatype": "string"
},
{
"name": "seam-extent-freedom",
"id": 7,
"datatype": "array",
"schema": {
"type": "number"
}
},
{
"name": "convergence-distance",
"id": 8,
"datatype": "string"
},
{
"name": "camera-weighting",
"id": 9,
"datatype": "array",
"schema": {
"type": "integer"
}
},
{
"name": "output-coverage",
"id": 10,
"datatype": "array",
"schema": {
"type": "number"
}
},
{
"name": "feature-parameter",
"id": 11,
"datatype": "object",
"schema": {
"$ref": "#/definitions/feature-parameter"
}
},
{
"name": "projection-parameters",
"id": 12,
"datatype": "array",
"schema": {
"$ref": "#/definitions/projection-parameter"
}
}
],
"definitions": {
"camera-intrinsic": {
"type": "object",
"properties": {
"camera-type": {
"type": "string",
"description": "Camera type. One of 'pinhole', 'fisheye', 'omnidirectional'. Default is 'pinhole'"
},
"focal-length": {
"type": "array",
"items": {
"type": "number",
"minItems": 2,
"maxItems": 2
}
},
"principal-point": {
"type": "array",
"items": {
"type": "number",
"minItems": 2,
"maxItems":2
}
},
"distortion": {
"type": "array",
"items": {
"type": "number",
"minItems": 4
}
}
}
},
"feature-parameter": {
"type": "object",
"properties": {
"feature-extraction-method": {
"type": "string",
"format": "uri",
"patternProperties": {
"^urn:": {"type": "string"}
},
"additionalProperties": false
}
}
},
"projection-parameter": {
"type": "string",
"properties": {
"projection-type": {
"type": "string",
"description": "Projection type. One of Equirectangular, Cubemap, or other projection type. Default is Equirectangular."
}
}
}
}
}

도 4는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.실시예에 따른 360도 영상 스티칭 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1000)에서 구현될 수 있다.4 is a diagram showing the configuration of a computer system according to an embodiment. The 360-degree image stitching apparatus according to the embodiment may be implemented in the computer system 1000 such as a computer-readable recording medium.

컴퓨터 시스템(1000)은 버스(1020)를 통하여 서로 통신하는 하나 이상의 프로세서(1010), 메모리(1030), 사용자 인터페이스 입력 장치(1040), 사용자 인터페이스 출력 장치(1050) 및 스토리지(1060)를 포함할 수 있다. 또한, 컴퓨터 시스템(1000)은 네트워크(1080)에 연결되는 네트워크 인터페이스(1070)를 더 포함할 수 있다. 프로세서(1010)는 중앙 처리 장치 또는 메모리(1030)나 스토리지(1060)에 저장된 프로그램 또는 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1030) 및 스토리지(1060)는 휘발성 매체, 비휘발성 매체, 분리형 매체, 비분리형 매체, 통신 매체, 또는 정보 전달 매체 중에서 적어도 하나 이상을 포함하는 저장 매체일 수 있다. 예를 들어, 메모리(1030)는 ROM(1031)이나 RAM(1032)을 포함할 수 있다.Computer system 1000 may include one or more processors 1010 , memory 1030 , user interface input device 1040 , user interface output device 1050 , and storage 1060 that communicate with each other via bus 1020 . can In addition, the computer system 1000 may further include a network interface 1070 coupled to the network 1080 . The processor 1010 may be a central processing unit or a semiconductor device that executes programs or processing instructions stored in the memory 1030 or storage 1060 . The memory 1030 and the storage 1060 may be a storage medium including at least one of a volatile medium, a non-volatile medium, a removable medium, a non-removable medium, a communication medium, and an information delivery medium. For example, the memory 1030 may include a ROM 1031 or a RAM 1032 .

이상에서 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although embodiments of the present invention have been described above with reference to the accompanying drawings, those of ordinary skill in the art to which the present invention pertains may practice the present invention in other specific forms without changing its technical spirit or essential features. You will understand that there is Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

Claims (19)

적어도 하나의 프로그램이 기록된 메모리; 및
프로그램을 실행하는 프로세서를 포함하며,
프로그램은,
360도 스티칭 기능 설명 템플릿에 포함된 적어도 하나의 파라미터를 기반으로 복수의 입력 영상들의 특징을 스티칭하여 하나의 360도 영상으로 생성하되,
360도 스티칭 기능 설명 템플릿은,
기능 파라미터들의 어레이인 설정 파라미터를 포함하되,
설정 파라미터는,
스티칭 파라미터, 카메라 파라미터, 특징 파라미터 및 투영 파라미터를 포함하되,
특징 파라미터는,
복수의 입력 영상들 각각으로부터의 특징 추출 방법을 포함하고,
투영 파라미터는,
복수의 입력 영상들이 투사되는 투영면의 종류인 투영 타입을 포함하는, 360도 영상 스티칭 장치.
a memory in which at least one program is recorded; and
a processor for executing a program;
program,
A 360-degree image is generated by stitching features of a plurality of input images based on at least one parameter included in the 360-degree stitching function description template,
The 360 degree stitching function description template is,
a configuration parameter that is an array of functional parameters;
The setting parameters are
including stitching parameters, camera parameters, feature parameters and projection parameters,
The characteristic parameter is
A method for extracting features from each of a plurality of input images,
The projection parameters are
A 360-degree image stitching apparatus, including a projection type, which is a type of a projection surface on which a plurality of input images are projected.
제1 항에 있어서, 프로그램은,
적어도 하나의 특징 추출 방법 중 하나를 이용하여 다중 입력 영상들 각각으로부터 키 포인트를 검출하고, 키포인트에 대한 디스크립터를 추출하되,
특징 추출 방법은,
SIFT(Scale Invariant Feature Transform), SURF(Speeded Up Robust Features), 비선형 확산 필터(nonlinear diffusion filter), 가속 KAZE 알고리즘, FAST 키 포인트 검출 및 BRIEF 디스크립터의 결합을 기반으로 하는 ORB(Oriented FAST and Rotated BRIEF), 스케일 공간 키 포인트 및 로테이션 불변 키포인트 디스크립터를 이용하는 BRISK(Binary Robust Invariant Scalable Keypoints) 알고리즘, 매칭 포인트를 위한 BRIEF(Binary Independent Elementary Feature) 디스크립터를 사용하는 특징 디스크립터 및 영상의 LoG(Laplacian of Gaussian)을 사용하는 특징 검출 중 적어도 하나를 포함하는, 360도 영상 스티칭 장치.
The method of claim 1, wherein the program
Detecting a key point from each of multiple input images using one of at least one feature extraction method, and extracting a descriptor for the key point,
The feature extraction method is
Oriented FAST and Rotated BRIEF (ORB) based on Scale Invariant Feature Transform (SIFT), Speeded Up Robust Features (SURF), nonlinear diffusion filter, accelerated KAZE algorithm, FAST key point detection and combination of BRIEF descriptors , BRISK (Binary Robust Invariant Scalable Keypoints) algorithm using scale space keypoints and rotation invariant keypoint descriptors, feature descriptors using BRIEF (Binary Independent Elementary Feature) descriptors for matching points, and Laplacian of Gaussian (LoG) of images. A 360-degree image stitching device comprising at least one of feature detection.
제2 항에 있어서, 특징 추출 방법은,
'URI' 타입으로, URN이 특징 추출 방법을 나타내는, 360도 영상 스티칭 장치.
The method of claim 2, wherein the feature extraction method comprises:
A 360-degree image stitching device, in which the URN represents a feature extraction method as a 'URI' type.
제2 항에 있어서, 특징 파라미터는,
특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응관계(feature correspondence)을 더 포함하는, 360도 영상 스티칭 장치.
The method of claim 2, wherein the feature parameter is
360-degree image stitching apparatus, further comprising a feature point number, feature point positions, and feature correspondence.
제3 항에 있어서, 프로그램은,
복수의 입력 영상들을 복호화하는 단계;
복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계;
특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 360도 영상을 생성하는 단계;
카메라 파라미터에 기초하여, 360도 영상의 경계선 정보를 결정하는 단계;
경계선 정보에 기초하여, 360도 영상을 후처리하는 단계; 및
상기 후처리된 360도 영상을 부호화하는 단계를 수행하되,
특징점을 추출하는 단계에서,
특징 파라미터의 특징 추출 방법을 기반으로 특징점을 추출하고,
후처리하는 단계에서,
특징 파라미터의 특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응관계(feature correspondence)을 이용하는, 360도 영상 스티칭 장치.
The method of claim 3, wherein the program
decoding a plurality of input images;
extracting a feature point of each of the plurality of decoded input images;
extracting a camera parameter based on the feature point;
generating a 360-degree image by projecting the decoded multi-input images onto a projector based on the camera parameters;
determining boundary line information of a 360-degree image based on the camera parameter;
Post-processing a 360-degree image based on the boundary line information; and
Performing the step of encoding the post-processed 360-degree image,
In the step of extracting the feature points,
Extracting feature points based on the feature extraction method of feature parameters,
In the post-processing stage,
A 360-degree image stitching apparatus using a feature point number, feature point positions, and feature correspondence of a feature parameter.
제1 항에 있어서, 투영 타입은,
정방형(Equirectangular) 및 큐브맵(Cubemap)을 포함하는 테이블 형태의 전방향 투영 포맷 리스트를 포함하되,
테이블에서 Id가 '0'일 경우, 전방향 투영은 정방형(Equirectangular)이고,
Id가 '1'일 경우, 전방향 투영은 큐브맵(Cubemap)이고,
Id가 '2'일 경우, 전방향 투영은 다른 투영 포맷인, 360도 영상 스티칭 장치.
The method of claim 1, wherein the projection type is:
Includes a list of omnidirectional projection formats in the form of a table, including square (Equirectangular) and cubemap (Cubemap),
If Id is '0' in the table, the omnidirectional projection is square (Equirectangular),
If Id is '1', the omnidirectional projection is a Cubemap,
When Id is '2', the omnidirectional projection is another projection format, 360 degree image stitching device.
제6 항에 있어서, 프로그램은,
복수의 입력 영상들을 복호화하는 단계;
복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계;
특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 360도 영상을 생성하는 단계;
카메라 파라미터에 기초하여, 360도 영상의 경계선 정보를 결정하는 단계;
경계선 정보에 기초하여, 360도 영상을 후처리하는 단계; 및
상기 후처리된 360도 영상을 부호화하는 단계를 수행하되,
360도 영상을 생성하는 단계에서,
투영 파라미터의 투영 포맷을 기초로 수행하는, 360도 영상 스티칭 장치.
7. The method of claim 6, wherein the program comprises:
decoding a plurality of input images;
extracting a feature point of each of the plurality of decoded input images;
extracting a camera parameter based on the feature point;
generating a 360-degree image by projecting the decoded multi-input images onto a projector based on the camera parameters;
determining boundary line information of a 360-degree image based on the camera parameter;
Post-processing a 360-degree image based on the boundary line information; and
Performing the step of encoding the post-processed 360-degree image,
In the step of creating a 360-degree image,
A 360-degree image stitching apparatus that performs based on the projection format of the projection parameter.
복수의 입력 영상들을 복호화하는 단계;
복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계;
특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 360도 영상을 생성하는 단계;
카메라 파라미터에 기초하여, 360도 영상의 경계선 정보를 결정하는 단계;
경계선 정보에 기초하여, 360도 영상을 후처리하는 단계; 및
상기 후처리된 360도 영상을 부호화하는 단계를 포함하되,
상기 단계들은 360도 스티칭 기능 설명 템플릿을 기반으로 수행되고,
기능 파라미터들의 어레이인 설정 파라미터를 포함하되,
설정 파라미터는,
스티칭 파라미터, 카메라 파라미터, 특징 파라미터 및 투영 파라미터를 포함하되,
특징 파라미터는,
복수의 입력 영상들 각각으로부터의 특징 추출 방법을 포함하고,
투영 파라미터는,
복수의 입력 영상들이 투사되는 투영면의 종류인 투영 타입을 포함하는, 360도 영상 스티칭 방법.
decoding a plurality of input images;
extracting a feature point of each of the plurality of decoded input images;
extracting a camera parameter based on the feature point;
generating a 360-degree image by projecting the decoded multi-input images onto a projector based on the camera parameters;
determining boundary line information of a 360-degree image based on the camera parameter;
Post-processing a 360-degree image based on the boundary line information; and
Including the step of encoding the post-processed 360 degree image,
The above steps are performed based on the 360 degree stitching function description template,
a configuration parameter that is an array of functional parameters;
The setting parameters are
including stitching parameters, camera parameters, feature parameters and projection parameters,
The characteristic parameter is
A method for extracting features from each of a plurality of input images,
The projection parameters are
A 360-degree image stitching method, including a projection type, which is a type of a projection plane on which a plurality of input images are projected.
제8 항에 있어서, 특징점을 추출하는 단계에서,
특징 파라미터의 적어도 하나의 특징 추출 방법 중 하나를 이용하여 다중 입력 영상들 각각으로부터 키 포인트를 검출하고, 키포인트에 대한 디스크립터를 추출하되,
특징 추출 방법은,
SIFT(Scale Invariant Feature Transform), SURF(Speeded Up Robust Features), 비선형 확산 필터(nonlinear diffusion filter), 가속 KAZE 알고리즘, FAST 키 포인트 검출 및 BRIEF 디스크립터의 결합을 기반으로 하는 ORB(Oriented FAST and Rotated BRIEF), 스케일 공간 키 포인트 및 로테이션 불변 키포인트 디스크립터를 이용하는 BRISK(Binary Robust Invariant Scalable Keypoints) 알고리즘, 매칭 포인트를 위한 BRIEF(Binary Independent Elementary Feature) 디스크립터를 사용하는 특징 디스크립터 및 영상의 LoG(Laplacian of Gaussian)을 사용하는 특징 검출 중 적어도 하나를 포함하는, 360도 영상 스티칭 방법.
The method of claim 8, wherein in the step of extracting the feature points,
Detecting a key point from each of multiple input images using one of at least one feature extraction method of a feature parameter, and extracting a descriptor for the key point,
The feature extraction method is
Oriented FAST and Rotated BRIEF (ORB) based on Scale Invariant Feature Transform (SIFT), Speeded Up Robust Features (SURF), nonlinear diffusion filter, accelerated KAZE algorithm, FAST key point detection and combination of BRIEF descriptors , BRISK (Binary Robust Invariant Scalable Keypoints) algorithm using scale space keypoints and rotation invariant keypoint descriptors, feature descriptors using BRIEF (Binary Independent Elementary Feature) descriptors for matching points, and Laplacian of Gaussian (LoG) of images. A 360-degree image stitching method comprising at least one of feature detection.
제9 항에 있어서, 특징 추출 방법은,
'URI' 타입으로, URN이 특징 추출 방법을 나타내는, 360도 영상 스티칭 방법.
The method of claim 9, wherein the feature extraction method comprises:
A 360-degree image stitching method, in which the URN represents a feature extraction method as a 'URI' type.
제9 항에 있어서, 특징 파라미터는,
특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응관계(feature correspondence)을 더 포함하는, 360도 영상 스티칭 방법.
The method of claim 9, wherein the feature parameter is
A 360-degree image stitching method, further comprising a feature point number, feature point positions, and feature correspondence.
제11 항에 있어서, 후처리하는 단계에서,
특징 파라미터의 특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응관계 (feature correspondence)을 이용하는, 360도 영상 스티칭 방법.
12. The method of claim 11, wherein in the post-processing step,
A 360-degree image stitching method using a feature point number, feature point positions, and feature correspondence of a feature parameter.
제9 항에 있어서, 투영 타입은,
정방형(Equirectangular) 및 큐브맵(Cubemap)을 포함하는 테이블 형태의 전방향 투영 포맷 리스트를 포함하되,
테이블에서 Id가 '0'일 경우, 전방향 투영은 정방형(Equirectangular)이고,
Id가 '1'일 경우, 전방향 투영은 큐브맵(Cubemap)이고,
Id가 '2'일 경우, 전방향 투영은 다른 투영 포맷이고,
360도 영상을 생성하는 단계에서,
투영 파라미터의 투영 포맷을 기초로 수행되는, 360도 영상 스티칭 방법.
10. The method of claim 9, wherein the projection type is:
Includes a list of omnidirectional projection formats in the form of a table, including square (Equirectangular) and cubemap (Cubemap),
If Id is '0' in the table, the omnidirectional projection is square (Equirectangular),
If Id is '1', the omnidirectional projection is a Cubemap,
If Id is '2', forward projection is another projection format,
In the step of creating a 360-degree image,
A 360-degree image stitching method performed based on a projection format of a projection parameter.
360도 영상 스티칭에 대한 요청 및 360도 영상 스티칭 워크플로우의 생성에 필요한 360도 영상 파라미터를 획득하는 단계;
360도 영상 스티칭 워크플로우에 적용될 수 있는 기능(function) 리스트를 획득하는 단계;
기능 리스트로부터 선택된 기능들에 기초하여, 360도 영상 스티칭 워크플로우를 생성하는 단계;
360도 영상 스티칭 워크플로우를 구성하는 작업들을 처리하기 위하여 필요한 멀티미디어 처리 엔티티의 개수를 결정하고, 결정된 멀티미디어 처리 엔티티의 개수에 따라, 복수의 멀티미디어 처리 엔티티를 생성하는 단계; 및
360도 영상 스티칭 워크플로우를 구성하는 작업들을 복수의 멀티미디어 처리 엔티티에 할당하는 단계를 포함하되,
360도 영상 스티칭 워크플로우를 구성하는 작업들은, 360도 스티칭 기능 설명 템플릿에 포함된 적어도 하나의 파라미터를 기반으로 수행되되,
360도 스티칭 기능 설명 템플릿은,
기능 파라미터들의 어레이인 설정 파라미터를 포함하되,
설정 파라미터는,
스티칭 파라미터, 카메라 파라미터, 특징 파라미터 및 투영 파라미터를 포함하되,
특징 파라미터는,
복수의 입력 영상들 각각으로부터의 특징 추출 방법을 포함하고,
투영 파라미터는,
복수의 입력 영상들이 투사되는 투영면의 종류인 투영 타입을 포함하는, 360도 영상 스티칭 워크플로우 생성 방법.
obtaining a 360-degree image parameter required for a request for 360-degree image stitching and creation of a 360-degree image stitching workflow;
obtaining a list of functions applicable to a 360-degree image stitching workflow;
generating a 360-degree image stitching workflow based on the functions selected from the function list;
determining the number of multimedia processing entities required to process tasks constituting the 360-degree image stitching workflow, and generating a plurality of multimedia processing entities according to the determined number of multimedia processing entities; and
assigning tasks constituting a 360-degree image stitching workflow to a plurality of multimedia processing entities;
Operations constituting the 360-degree image stitching workflow are performed based on at least one parameter included in the 360-degree stitching function description template,
The 360 degree stitching function description template is,
a configuration parameter that is an array of functional parameters;
The setting parameters are
including stitching parameters, camera parameters, feature parameters and projection parameters,
The characteristic parameter is
A method for extracting features from each of a plurality of input images,
The projection parameters are
A method of generating a 360-degree image stitching workflow, including a projection type, which is a type of a projection plane on which a plurality of input images are projected.
제14 항에 있어서, 360도 영상 스티칭 워크플로우를 구성하는 작업들은,
복수의 입력 영상들을 복호화하는 단계;
복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계;
특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 360도 영상을 생성하는 단계;
카메라 파라미터에 기초하여, 360도 영상의 경계선 정보를 결정하는 단계;
경계선 정보에 기초하여, 360도 영상을 후처리하는 단계; 및
상기 후처리된 360도 영상을 부호화하는 단계를 포함하되,
상기 단계들은 360도 스티칭 기능 설명 템플릿을 기반으로 수행되고,
기능 파라미터들의 어레이인 설정 파라미터를 포함하는, 360도 영상 스티칭 워크플로우 생성 방법.
The method of claim 14, wherein the tasks constituting the 360-degree image stitching workflow are:
decoding a plurality of input images;
extracting a feature point of each of the plurality of decoded input images;
extracting a camera parameter based on the feature point;
generating a 360-degree image by projecting the decoded multi-input images onto a projector based on the camera parameters;
determining boundary line information of a 360-degree image based on the camera parameter;
Post-processing a 360-degree image based on the boundary line information; and
Including the step of encoding the post-processed 360 degree image,
The above steps are performed based on the 360 degree stitching function description template,
A method of creating a 360 degree image stitching workflow, comprising a setup parameter that is an array of functional parameters.
제15 항에 있어서, 특징점을 추출하는 단계에서,
특징 파라미터의 적어도 하나의 특징 추출 방법 중 하나를 이용하여 다중 입력 영상들 각각으로부터 키 포인트를 검출하고, 키포인트에 대한 디스크립터를 추출하되,
특징 추출 방법은,
SIFT(Scale Invariant Feature Transform), SURF(Speeded Up Robust Features), 비선형 확산 필터(nonlinear diffusion filter), 가속 KAZE 알고리즘, FAST 키 포인트 검출 및 BRIEF 디스크립터의 결합을 기반으로 하는 ORB(Oriented FAST and Rotated BRIEF), 스케일 공간 키 포인트 및 로테이션 불변 키포인트 디스크립터를 이용하는 BRISK(Binary Robust Invariant Scalable Keypoints) 알고리즘, 매칭 포인트를 위한 BRIEF(Binary Independent Elementary Feature) 디스크립터를 사용하는 특징 디스크립터 및 영상의 LoG(Laplacian of Gaussian)을 사용하는 특징 검출 중 적어도 하나를 포함하는, 360도 영상 스티칭 워크플로우 생성 방법.
The method of claim 15, wherein in the step of extracting the feature point,
Detecting a key point from each of multiple input images using one of at least one feature extraction method of a feature parameter, and extracting a descriptor for the key point,
The feature extraction method is
Oriented FAST and Rotated BRIEF (ORB) based on Scale Invariant Feature Transform (SIFT), Speeded Up Robust Features (SURF), nonlinear diffusion filter, accelerated KAZE algorithm, FAST key point detection and combination of BRIEF descriptors , BRISK (Binary Robust Invariant Scalable Keypoints) algorithm using scale space keypoints and rotation invariant keypoint descriptors, feature descriptors using BRIEF (Binary Independent Elementary Feature) descriptors for matching points, and Laplacian of Gaussian (LoG) of images. A method of generating a 360-degree image stitching workflow, comprising at least one of feature detection.
제16 항에 있어서, 특징 추출 방법은,
'URI' 타입으로, URN이 특징 추출 방법을 나타내는, 360도 영상 스티칭 워크플로우 생성 방법.
The method of claim 16, wherein the feature extraction method comprises:
'URI' type, where the URN represents the feature extraction method, a 360-degree image stitching workflow creation method.
제16 항에 있어서, 특징 파라미터는,
특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응 관계(feature correspondence)을 더 포함하고,
후처리하는 단계에서,
특징 파라미터의 특징점 개수(feature point number), 특징점 위치(feature point positions) 및 특징점 대응 관계 (feature correspondence)을 이용하는, 360도 영상 스티칭 워크플로우 생성 방법.
The method of claim 16, wherein the feature parameter is:
It further includes a feature point number, feature point positions, and feature correspondence,
In the post-processing stage,
A 360-degree image stitching workflow generating method using feature point numbers, feature point positions, and feature correspondence of feature parameters.
제15 항에 있어서, 투영 타입은,
정방형(Equirectangular) 및 큐브맵(Cubemap)을 포함하는 테이블 형태의 전방향 투영 포맷 리스트를 포함하되,
테이블에서 Id가 '0'일 경우, 전방향 투영은 정방형(Equirectangular)이고,
Id가 '1'일 경우, 전방향 투영은 큐브맵(Cubemap)이고,
Id가 '2'일 경우, 전방향 투영은 다른 투영 포맷이고,
360도 영상을 생성하는 단계에서,
투영 파라미터의 투영 포맷을 기초로 수행되는, 360도 영상 스티칭 워크플로우 생성 방법.
The method of claim 15, wherein the projection type is:
Includes a list of omnidirectional projection formats in the form of a table, including square (Equirectangular) and cubemap (Cubemap),
If Id is '0' in the table, the omnidirectional projection is square (Equirectangular),
If Id is '1', the omnidirectional projection is a Cubemap,
If Id is '2', forward projection is another projection format,
In the step of creating a 360-degree image,
A method of creating a 360-degree image stitching workflow, performed based on a projection format of a projection parameter.
KR1020220000265A 2021-01-11 2022-01-03 Apparatus and Method for 360°Image Stitching KR20220101565A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/573,161 US20220222774A1 (en) 2021-01-11 2022-01-11 Apparatus and method for 360-degree video stitching

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20210003576 2021-01-11
KR1020210003576 2021-01-11
KR1020210006924 2021-01-18
KR20210006924 2021-01-18

Publications (1)

Publication Number Publication Date
KR20220101565A true KR20220101565A (en) 2022-07-19

Family

ID=82607228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220000265A KR20220101565A (en) 2021-01-11 2022-01-03 Apparatus and Method for 360°Image Stitching

Country Status (1)

Country Link
KR (1) KR20220101565A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102667946B1 (en) 2023-02-23 2024-05-22 경희대학교 산학협력단 Apparatus and method of image stitching using depth based seam generation matrix construction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102667946B1 (en) 2023-02-23 2024-05-22 경희대학교 산학협력단 Apparatus and method of image stitching using depth based seam generation matrix construction

Similar Documents

Publication Publication Date Title
WO2021227360A1 (en) Interactive video projection method and apparatus, device, and storage medium
US11475238B2 (en) Keypoint unwarping for machine vision applications
US20170180680A1 (en) Object following view presentation method and system
CN105957007B (en) Image split-joint method based on characteristic point plane similarity
CN109064404A (en) It is a kind of based on polyphaser calibration panorama mosaic method, panoramic mosaic system
Yang et al. A content-aware metric for stitched panoramic image quality assessment
US20160286138A1 (en) Apparatus and method for stitching panoramaic video
CN112085659B (en) Panorama splicing and fusing method and system based on dome camera and storage medium
US11694303B2 (en) Method and apparatus for providing 360 stitching workflow and parameter
CN110930310B (en) Panoramic image splicing method
JP2009049759A (en) Color correction apparatus, method and program
KR20180125878A (en) A system comprising a video camera and a client device and a method performed by the same
Huang et al. A 360-degree panoramic video system design
EP4226334A1 (en) Network-based spatial computing for extended reality (xr) applications
CN114331835A (en) Panoramic image splicing method and device based on optimal mapping matrix
KR20220101565A (en) Apparatus and Method for 360°Image Stitching
Chen et al. Full-frame video stabilization via SIFT feature matching
CN112215749B (en) Image stitching method, system, equipment and storage medium based on cylindrical projection
US20220222774A1 (en) Apparatus and method for 360-degree video stitching
CN116579923A (en) Image stitching method, device and storage medium
KR102389284B1 (en) Method and device for image inpainting based on artificial intelligence
CN117372247A (en) Image processing method, image processing apparatus, and storage medium
KR102268981B1 (en) Original image detection apparatus using feature values in 360 degree images and method thereof
KR101718309B1 (en) The method of auto stitching and panoramic image genertation using color histogram
KR20220144695A (en) Server, method and computer program for generating virtual view point image through video synthesis

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application