KR20220101565A - Apparatus and Method for 360°Image Stitching - Google Patents
Apparatus and Method for 360°Image Stitching Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000006870 function Effects 0.000 claims abstract description 60
- 238000000605 extraction Methods 0.000 claims abstract description 42
- 238000012805 post-processing Methods 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 23
- 238000001514 detection method Methods 0.000 claims description 13
- 238000009792 diffusion process Methods 0.000 claims description 7
- 238000012937 correction Methods 0.000 description 8
- 238000002156 mixing Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 4
- 238000005096 rolling process Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000003702 image correction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/97—Determining parameters from multiple pictures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image 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
Description
기재된 실시예는 복수의 영상들을 결합하여 하나의 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
설정 정보(102) 및 메타데이터(106)는 복수의 입력 비디오 스트림에 관련된 정보를 나타낸다. The
미디어 소스(104)는 360도 영상의 재료가 되는 미가공 영상을 포함한다. 이때, 미디어 소스(104)는 텍스쳐 영상 및 깊이 영상을 포함하거나, 텍스쳐 영상만을 포함할 수도 있다. The
멀티미디어 처리 엔티티(110)는 후술될 도 3의 워크플로우 관리자(Workfloww Manager)(202)에 의해 설정될 수 있다. 이때, 영상 스티칭 워크플로우가 단일 처리 엔티티에 의하여 처리될 수 없다고 판단되면, 멀티미디어 처리 엔티티(110)는 2개 이상 설정될 수 있다. 만약 영상 스티칭 워크플로우가 단일 처리 엔티티에 의하여 처리될 수 있다고 판단되면, 멀티미디어 처리 엔티티(110)는 1개만 설정될 수 있다. 상기 멀티미디어 처리 엔티티(110)는 도 2의 워크플로우 관리자(204)에 의하여 도 2의 클라우드 플랫폼(208)에서 생성될 수 있다.The
만약 멀티미디어 처리 엔티티(110)가 2개 이상 설정될 경우, 도 1의 단계 130 내지 단계 142에 따른 작업들이 복수의 멀티미디어 처리 엔티티(110)에 할당될 수 있다. 따라서, 많은 컴퓨팅 리소스를 필요로 하는 영상 스티칭 작업이 복수의 멀티미디어 처리 엔티티(110)에 의하여 빠르게 처리될 수 있다.If two or more
영상 스티칭 작업이 복수의 멀티미디어 처리 엔티티(110)에 의하여 처리될 경우, 상기 작업들의 할당을 위하여, 영상 스티칭에 관련된, 예를 들어, 영상 복호화, 특징점 추출, 카메라 파라미터 추출, 영상 투영, 경계선 정보 추출, 블렌딩, 후처리 및 영상 부호화 등과 같은 세부적인 작업에 대한 설정 정보, 인풋 및 아웃풋 설명자, 및 메타 데이터가 필요하다. 상기 정보는 복수의 처리 엔티티에서 여러 작업들 간의 인터페이스를 처리하기 위해 사용된다. When an image stitching task is processed by a plurality of
실시예에 따라, 이와 같이 세부 작업들 각각에 적용되는 세부 정보 및 파라미터는 후술되는 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
이에 앞서, 360도 영상 스티칭 방법의 세부 단계(단계 130 내지 142)에 대하여 자세히 설명하기로 한다.Prior to this, detailed steps (
단계 130에서, 부호화된 영상이 복호화(Decoding)된다. 구체적으로, 단계 130에서 여러 스레드 또는 GPU의 연산에 따라, 미디어 소스(104)의 부호화된 미가공 영상이 복호화된다. 또한, 미디어 소스(104)뿐만 아니라, 클라우드 파라미터부터 부호화된 미디어 데이터 피드가 단계 130의 복호화에 사용될 수 있다. 상기 미가공 영상은 후처리 등이 적용되지 않은 원본 영상을 나타낸다.In
단계 132에서, 단계 130에서 복호화된 미가공 영상으로부터 특징점이 추출된다. In
특징점은 복수의 영상에서 특정 물체를 추적하거나 인식할 때, 영상과 영상을 매칭하는 기준이 되는 지점을 의미한다. 특징점을 기준으로 분포하는 픽셀들의 값을 분석함으로써, 서로 다른 영상 간에 유사한 부분이 검출된다. 따라서, 단계 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
이때, 단계 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
이때, 단계 132에서 입력된 특징 파라미터는 이어지는 단계들에서 필요에 따라 계속적으로 사용될 수 있다. In this case, the feature parameter input in
단계 134에서, 특징점 및 대응점 세트에 따라, 외부(extrinsic) 및 내부(intrinsic) 카메라 파라미터가 계산된다. 상기 외부 카메라 파라미터는 카메라의 촬영 각도, 촬영 위치 등을 포함한다. 상기 내부 카메라 파라미터는 카메라의 초점거리, 주점, 비대칭 계수 등을 포함한다.In
일 실시 예에 따르면, 특징점 및 대응점을 분석함으로써, 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
단계 136에서, 단계 134에서 결정된 카메라 파라미터에 기초하여, 영상 투영면에 단계 130에서 복호화된 미가공 영상들이 투사된다. 구체적으로, 카메라 파라미터 및 영상 투영 면에 기초하여, 영상들이 기하학적으로 정렬된다. 그리고 기하학적으로 정렬된 영상들이 영상 투영 면에 투사된다. 영상 투영의 결과, 360도 영상이 생성된다.In
이때, 단계 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
단계 138에서, 인접한 영상의 중복 영역에 이전 시점에 존재하지 않던 객체가 갑자기 나타날 때, 스티칭 파라미터가 업데이트될 수 있다. 따라서, 중복 영역의 변화에 따라, 경계선 위치 파라미터 또는 경계선 마스크 파라미터가 변경될 수 있다.In
단계 140에서, 단계 136에서 생성된 360도 영상의 중복 영역에 대하여 블렌딩, 색 보정 및 노이즈 필터링 프로세스 등이 수행될 수 있다. 블렌딩, 색 보정 및 노이즈 필터링 프로세스 등은 단계 138에서 추출된 경계선 정보에 기초하여 수행될 수 있다.In
블렌딩 프로세스는, 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
도 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
이때, 특징 파라미터는, 특징점 개수(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
단계 130 내지 단계 142를 거쳐서, 부호화된 2차원 영상으로 구성된 비디오 스트림으로부터 부호화된 360도 영상으로 구성된 비디오 스트림이 생성된다. Through
실시 예에 따라, 단계 130 내지 단계 142의 순서가 일부 변경될 수 있으며, 소정의 단계가 생략될 수 있다. 또한, 단계 130 내지 단계 142의 중간에, 영상 처리 분야에서 관용적인 영상 처리 기법이 적용될 수 있다. 단계 130 내지 단계 142에 대응되는 명령은 도 3의 클라우드 플랫폼(208)에서 수행될 수 있다. According to an embodiment, the order of
이하, <표 1>에서, 단계 130 내지 단계 142의 각 작업에 대한 설명, 입력 및 출력이 설명되어 있다.Hereinafter, in <Table 1>, descriptions, inputs and outputs for each operation of
*It could be the output of cloud platformEncoded 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
미디어 서비스 제공자의 작업 디렉토리는 <표 1>의 각 작업에 대한 세부 사항을 포함할 수 있다. 그리고 도 3의 워크플로우 관리자(204)는 <표 1>의 각 작업을 선택하여 도 1에 설명된 워크플로우를 준비할 수 있다. The media service provider's working directory may include details about each job in <Table 1>. In addition, the
이하, 도 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
도 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
이때, 미디어 소스(202), 워크플로우 관리자(204), 기능 레지스트리(206) 및 미디어 작업 관리자(210)는 각각 별도의 프로세서에 의하여 동작될 수 있다. 또는 워크플로우 관리자(204), 미디어 소스(202), 기능 레지스트리(206) 및 미디어 작업 관리자(210) 중 전부 또는 일부는 하나의 프로세서에 의하여 동작될 수 있다. 그리고 워크플로우 관리자(204), 미디어 소스(202), 기능 레지스트리(206) 및 미디어 작업 관리자(210)는 각각 영상 스티칭을 위한 정보를 저장하기 위한 메모리 디바이스를 포함할 수 있다.In this case, the
워크플로우 관리자(204)는 영상 스티칭을 위한 워크플로우를 생성할 수 있다. 그리고 워크플로우 관리자(204)는 클라우드 플랫폼(208)에 상기 워크플로우에 포함된 복수의 작업을 수행하기 위한 복수의 멀티미디어 처리 엔티티를 생성할 수 있다.The
클라우드 플랫폼(208)은 복수의 프로세서를 포함한다. 그리고 클라우드 플랫폼(208)에 설정된 복수의 멀티미디어 처리 엔티티에 의하여, 영상 스티칭을 위하여 필요한 작업들이 수행될 수 있다. The
그러면, 워크플로우 관리자(204)에 의한 영상 스티칭의 워크플로우 설정 방법을 자세히 설명하기로 한다.Then, a method of setting a workflow of image stitching by the
도 3을 참조하면, 단계 S302에서, 미디어 소스(202)는, CreateWorkflow API(Application Programming Interface)를 사용하여, 영상 스티칭에 대한 요청과 함께, 영상 스티칭을 위한 워크플로우를 생성한다. 상기 CreateWorkflow API는 워크플로우 생성을 위한 전용 API이다. 그리고 미디어 소스(202)는, 상기 생성된 워크플로우를 설명하는 워크플로우 설명 문서를 생성하고, 상기 워크플로우 설명 문서를 워크플로우 관리자(204)에 전송한다. Referring to FIG. 3 , in step S302 , the
워크플로우 관리자(204)는 전송된 워크플로우 설명 문서에 따라, 워크플로우를 생성한다.The
단계 S304에서, 워크플로우 관리자(204)는 영상 스티칭을 위한 워크플로우에 배치될 기능을 찾기 위하여, 쿼리 또는 쿼리 세트를 기능 레지스트리(206)에 전송한다. 상기 쿼리 또는 쿼리 세트는, 단계 302의 워크플로우 설명 문서에 의하여 요구되는 워크플로우의 기능을 설명한다. 그리고 기능 레지스트리(206)는 미디어 시스템(200)에서 지원하는 기능들의 리스트를 보관한다.In step S304 , the
단계 S306에서, 각 쿼리에 대하여, 기능 레지스트리(206)는 영상 스티칭에 사용될 수 있는 기능들, 그리고 그것들의 설명 및 구성 정보의 목록을 워크플로우 관리자(204)에 제공한다. 기능 레지스트리(206)는 미디어 시스템(200)에서 지원하는 기능들의 리스트와 쿼리 또는 쿼리 세트에 설명된 워크플로우의 기능들의 설명을 비교한다.In step S306, for each query, the
그리고 기능 레지스트리(206)는 미디어 시스템(200)에서 지원되는 기능들 중, 상기 워크플로우에 적용될 수 있는 기능들의 리스트를 워크플로우 관리자(204)에 제공할 수 있다.In addition, the
단계 308에서, 워크플로우 관리자(204)는 단계 306에서 기능 레지스트리(206)로부터 제공된 기능들의 리스트로부터 워크플로우에 필요한 기능들을 선택한다. 그리고, 워크플로우 관리자(204)는, 클라우드 플랫폼(208)에 접속하여, 선택된 기능들의 요구 사항에 따라, 클라우드 플랫폼(208)에 하나 이상의 미디어 처리 엔티티들을 생성할 수 있다.In
단계 S310에서, 클라우드 플랫폼(208)은 하나 이상의 멀티미디어 처리 엔티티의 생성을 확인한다. 그리고 클라우드 플랫폼(208)은 하나 이상의 멀티미디어 처리 엔티티에 대한 네트워크 액세스 정보의 생성을 확인할 수 있다. 클라우드 플랫폼(208)은 하나 이상의 멀티미디어 처리 엔티티의 생성되었음을 워크플로우 관리자(204)에 전달한다.In step S310, the
단계 S312에서, 워크플로우 관리자(204)는 각 작업(task)에 대한 설정 정보를 생성한다. 그리고 워크플로우 관리자(204)는 작업 관리자(210)에게 각 작업마다 설정 정보를 전송한다. 상기 설정 정보를 작업 관리자(210)에게 전송하기 위하여, 작업 API가 사용될 수 있다. 작업 API는 설정 정보를 생성하기 위한 전용 API이다In step S312, the
단계 S314에서, 작업 관리자(210)는 각 작업에 대한 성공적인 설정이 이루어졌는지 확인한다. 만약 현재 작업에 대한 성공적인 설정이 이루어진 경우, 작업 관리자(210)는 워크플로우 관리자(204)가 다음 작업에 접근할 수 있도록 접근 정보를 생성한다. 그리고 작업 관리자(210)는 워크플로우 관리자(204)에게 접근 정보를 생성한다. 각 작업에 대하여 단계 312와 단계 314가 수행됨으로써, 전체 워크플로우에 대한 성공적인 설정이 이루어졌는지 확인될 수 있다.In step S314, the
단계 316에서, 워크플로우 관리자(204)는 워크플로우의 생성을 확인하고, 미디어 소스(202)에 영상 스티칭을 위한 미디어 처리가 시작될 수 있음을 알린다. 그리고 미디어 소스(202)에서 제공되는 미디어 소스(104)가 워크플로우에 따라 처리됨으로써, 360도 영상이 생성될 수 있다.In step 316, the
이상 설명된 바와 같이, 워크플로우에서 사용되는 기능(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.
"360-degree panoramic stitcher",
"360-degree stitcher"
][
"360-degree panoramic stitcher",
"360-degree stitcher"
]
·
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.
<표 4>는 카메라 파라미터(camera parameters)로써, 카메라 오브젝트 파라미터(camera object parameters)의 실시 예를 나타낸다.<Table 4> shows an example of camera object parameters as camera parameters.
<표 5>는 카메라 파라미터(camera parameters)로써, 카메라 내부 오브젝트 파라미터(camera intrinsic object parameters)의 실시 예를 나타낸다.<Table 5> shows an example of camera intrinsic object parameters as camera parameters.
The default value is "pinhole".Camera type, one of "pinhole", "fisheye", "omnidirectional".
The default value is "pinhole".
<표 6>는 특징 파라미터(feature parameters)의 실시 예를 나타낸다.<Table 6> shows examples of feature parameters.
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.
<표 7>은 투영 파라미터(projection parameter)의 실시 예를 나타낸다.<Table 7> shows examples of projection parameters.
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 formatProjection 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
<표 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
컴퓨터 시스템(1000)은 버스(1020)를 통하여 서로 통신하는 하나 이상의 프로세서(1010), 메모리(1030), 사용자 인터페이스 입력 장치(1040), 사용자 인터페이스 출력 장치(1050) 및 스토리지(1060)를 포함할 수 있다. 또한, 컴퓨터 시스템(1000)은 네트워크(1080)에 연결되는 네트워크 인터페이스(1070)를 더 포함할 수 있다. 프로세서(1010)는 중앙 처리 장치 또는 메모리(1030)나 스토리지(1060)에 저장된 프로그램 또는 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1030) 및 스토리지(1060)는 휘발성 매체, 비휘발성 매체, 분리형 매체, 비분리형 매체, 통신 매체, 또는 정보 전달 매체 중에서 적어도 하나 이상을 포함하는 저장 매체일 수 있다. 예를 들어, 메모리(1030)는 ROM(1031)이나 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.
적어도 하나의 특징 추출 방법 중 하나를 이용하여 다중 입력 영상들 각각으로부터 키 포인트를 검출하고, 키포인트에 대한 디스크립터를 추출하되,
특징 추출 방법은,
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.
'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.
특징점 개수(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.
복수의 입력 영상들을 복호화하는 단계;
복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계;
특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 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.
정방형(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.
복수의 입력 영상들을 복호화하는 단계;
복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계;
특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 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.
특징 파라미터의 적어도 하나의 특징 추출 방법 중 하나를 이용하여 다중 입력 영상들 각각으로부터 키 포인트를 검출하고, 키포인트에 대한 디스크립터를 추출하되,
특징 추출 방법은,
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.
'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.
특징점 개수(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.
특징 파라미터의 특징점 개수(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.
정방형(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도 영상 스티칭 워크플로우에 적용될 수 있는 기능(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.
복수의 입력 영상들을 복호화하는 단계;
복호화된 복수의 입력 영상들 각각의 특징점을 추출하는 단계;
특징점에 기초하여, 카메라 파라미터를 추출하는 단계;
카메라 파라미터에 기초하여, 복호화된 다중 입력 영상들을 투사체에 투사함으로써, 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.
특징 파라미터의 적어도 하나의 특징 추출 방법 중 하나를 이용하여 다중 입력 영상들 각각으로부터 키 포인트를 검출하고, 키포인트에 대한 디스크립터를 추출하되,
특징 추출 방법은,
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.
'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.
특징점 개수(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.
정방형(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.
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)
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 |
-
2022
- 2022-01-03 KR KR1020220000265A patent/KR20220101565A/en not_active Application Discontinuation
Cited By (1)
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 |