KR102618285B1 - Method and system for determining camera pose - Google Patents

Method and system for determining camera pose Download PDF

Info

Publication number
KR102618285B1
KR102618285B1 KR1020210021195A KR20210021195A KR102618285B1 KR 102618285 B1 KR102618285 B1 KR 102618285B1 KR 1020210021195 A KR1020210021195 A KR 1020210021195A KR 20210021195 A KR20210021195 A KR 20210021195A KR 102618285 B1 KR102618285 B1 KR 102618285B1
Authority
KR
South Korea
Prior art keywords
coordinates
image
corner points
visual marker
corner
Prior art date
Application number
KR1020210021195A
Other languages
Korean (ko)
Other versions
KR20220117626A (en
Inventor
박순용
김덕화
이동환
Original Assignee
네이버랩스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버랩스 주식회사 filed Critical 네이버랩스 주식회사
Priority to KR1020210021195A priority Critical patent/KR102618285B1/en
Publication of KR20220117626A publication Critical patent/KR20220117626A/en
Application granted granted Critical
Publication of KR102618285B1 publication Critical patent/KR102618285B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/0093Geometric image transformation in the plane of the image for image warping, i.e. transforming by individually repositioning each pixel
    • G06T3/18
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Abstract

본 개시는 카메라 자세 결정 방법에 관한 것이다. 카메라 자세 결정 방법은 비주얼 마커를 포함하는 영상으로부터 비주얼 마커 상의 복수의 제1 코너 포인트를 추출하는 단계, 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 호모그래피를 산출하는 단계, 호모그래피를 이용하여 복수의 제2 코너 포인트의 가상 평면 상의 좌표에 대응하는 영상 내의 좌표를 결정하는 단계 및 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표에 기초하여 카메라의 자세를 결정하는 단계를 포함한다.This disclosure relates to a method for determining a camera pose. The camera pose determination method includes extracting a plurality of first corner points on a visual marker from an image including a visual marker, calculating homography based on coordinates on a virtual plane of the plurality of first corner points and coordinates in the image. , determining coordinates in the image corresponding to coordinates on the virtual plane of the plurality of second corner points using homography, and determining a pose of the camera based on the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image. Includes decision-making steps.

Figure R1020210021195
Figure R1020210021195

Description

카메라 자세 결정 방법 및 시스템{METHOD AND SYSTEM FOR DETERMINING CAMERA POSE}Camera pose determination method and system {METHOD AND SYSTEM FOR DETERMINING CAMERA POSE}

본 개시는 카메라 자세 결정 방법 및 시스템에 관한 것으로, 구체적으로 비주얼 마커를 이용하여 카메라의 자세를 결정하는 방법 및 시스템에 관한 것이다.The present disclosure relates to a method and system for determining a camera posture, and specifically to a method and system for determining the posture of a camera using a visual marker.

최근 증강 현실, 로보틱스 등 다양한 분야에서 카메라 캘리브레이션 또는 자세 측정을 위해 비주얼 마커가 사용되고 있다. 여기서, 비주얼 마커는 정사각형의 패턴들을 포함하는 일정한 포맷으로 만들어진 인공적인 랜드 마크를 지칭할 수 있다. 예를 들어, 카메라를 포함하는 기계 또는 전자 장치는, 카메라를 이용하여 비주얼 마커를 촬영하고, 촬영된 영상을 기초로 기준 좌표계 상의 비주얼 마커와 영상 좌표계 상의 비주얼 마커 사이의 변환 관계와 카메라의 파라미터를 산출할 수 있다. 장치는, 이와 같이 산출된 좌표계들 사이의 변환 관계 및 카메라 파라미터를 이용하여, 동작 대상이 되는 특정 위치 등을 식별하거나, 방향, 각도, 기울기 등을 포함하는 자신의 자세를 결정할 수 있다.Recently, visual markers have been used for camera calibration or posture measurement in various fields such as augmented reality and robotics. Here, the visual marker may refer to an artificial landmark made in a certain format including square patterns. For example, a mechanical or electronic device including a camera captures a visual marker using a camera, and determines the transformation relationship between the visual marker on the reference coordinate system and the visual marker on the image coordinate system and the parameters of the camera based on the captured image. It can be calculated. Using the transformation relationship between coordinate systems and camera parameters calculated in this way, the device can identify a specific location that is the target of operation, or determine its own posture including direction, angle, tilt, etc.

그러나, 기계 또는 전자 장치는, 동작 환경의 변화에 따라 비주얼 마커를 인식하고 동작 대상이 되는 특정 위치 등을 정확하게 식별하기 어려울 수 있다. 예를 들어, 장치와 비주얼 마커 사이의 거리가 멀거나, 비주얼 마커 상의 특정 포인트의 위치가 부정확한 경우, 장치는 동작에 필요한 특정 위치 등을 정확히 식별하기 어려울 수 있다. 이 경우, 장치 또는 그 장치에 설치된 카메라의 자세를 정확히 파악할 수 없어 그 자세에 기초하여 실행되는 동작의 결과도 부정확해질 수 있는 문제가 있다.However, it may be difficult for a mechanical or electronic device to recognize a visual marker and accurately identify a specific location to be operated depending on changes in the operating environment. For example, if the distance between the device and the visual marker is long or the location of a specific point on the visual marker is inaccurate, it may be difficult for the device to accurately identify a specific location required for operation. In this case, there is a problem that the posture of the device or the camera installed in the device cannot be accurately determined, so the results of the operation performed based on the posture may also be inaccurate.

본 개시는 상기와 같은 문제점을 해결하기 위한 카메라 자세 결정 방법, 기록 매체에 저장된 컴퓨터 프로그램 및 시스템(장치)을 제공한다.The present disclosure provides a method for determining a camera posture, a computer program stored in a recording medium, and a system (device) to solve the above problems.

본 개시는 방법, 시스템(장치) 또는 판독 가능한 기록(저장) 매체에 저장된 컴퓨터 프로그램을 포함한 다양한 방식으로 구현될 수 있다.The present disclosure may be implemented in various ways, including a method, a system (device), or a computer program stored in a readable recording (storage) medium.

본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서에 의해 실행되는 카메라 자세 결정 방법은, 비주얼 마커를 포함하는 영상으로부터 비주얼 마커 상의 복수의 제1 코너 포인트를 추출하는 단계, 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 호모그래피를 산출하는 단계, 호모그래피를 이용하여 복수의 제2 코너 포인트의 가상 평면 상의 좌표에 대응하는 영상 내의 좌표를 결정하는 단계 및 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표에 기초하여 카메라의 자세를 결정하는 단계를 포함한다.According to an embodiment of the present disclosure, a method for determining a camera pose executed by at least one processor includes extracting a plurality of first corner points on a visual marker from an image including a visual marker, the plurality of first corner points calculating homography based on the coordinates on the virtual plane and the coordinates in the image, determining coordinates in the image corresponding to the coordinates on the virtual plane of the plurality of second corner points using the homography, and a plurality of second corner points. It includes determining the pose of the camera based on the coordinates of the corner point on the virtual plane and the coordinates in the image.

본 개시의 일 실시예에 따른 카메라 자세 결정 방법을 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 제공된다.A computer program stored in a computer-readable recording medium is provided to execute the camera pose determination method according to an embodiment of the present disclosure on a computer.

본 개시의 일 실시예에 따른 컴퓨팅 장치는, 통신 모듈, 메모리 및 메모리와 연결되고, 메모리에 포함된 컴퓨터 판독 가능한 적어도 하나의 프로그램을 실행하도록 구성된 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로그램은, 비주얼 마커를 포함하는 영상으로부터 비주얼 마커 상의 복수의 제1 코너 포인트를 추출하고, 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 호모그래피를 산출하고, 호모그래피를 이용하여 복수의 제2 코너 포인트의 가상 평면 상의 좌표에 대응하는 영상 내의 좌표를 결정하고, 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표에 기초하여 카메라의 자세를 결정하기 위한 명령어들을 포함한다.A computing device according to an embodiment of the present disclosure includes a communication module, a memory, and at least one processor connected to the memory and configured to execute at least one computer-readable program included in the memory. At least one program extracts a plurality of first corner points on a visual marker from an image including a visual marker, and calculates homography based on coordinates on a virtual plane of the plurality of first corner points and coordinates in the image, Using homography, determine coordinates in the image corresponding to coordinates on the virtual plane of the plurality of second corner points, and determine the pose of the camera based on the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image. Includes commands for

본 개시의 다양한 실시예에서 컴퓨팅 장치는 복수의 제1 코너 포인트뿐만 아니라, 추출된 모든 복수의 제2 코너 포인트를 이용하여 카메라의 자세를 결정함으로써, 카메라 자세 결정의 정밀도를 향상시킬 수 있다.In various embodiments of the present disclosure, the computing device may improve the precision of camera pose determination by determining the pose of the camera using not only the plurality of first corner points but also all of the plurality of extracted second corner points.

본 개시의 다양한 실시예에서 프로세서는 추출된 복수의 코너 포인트 중 부정확한 코너 포인트를 제거하고/제거하거나 좌표를 조정하여, 코너 포인트 인식에 대한 오차를 줄이고 카메라 자세 결정의 정밀도를 향상시킬 수 있다.In various embodiments of the present disclosure, the processor may remove inaccurate corner points among a plurality of extracted corner points and/or adjust coordinates to reduce errors in corner point recognition and improve the precision of camera pose determination.

본 개시의 다양한 실시예에서 프로세서는 비주얼 마커로부터 추출된 복수의 제2 코너 포인트 각각의 영상 내의 상대적인 거리를 알지 못하는 경우에도, 호모그래피를 이용하여 복수의 제2 코너 포인트의 영상 내의 좌표를 산출하여 카메라 자세 결정에 사용할 수 있다.In various embodiments of the present disclosure, even when the processor does not know the relative distance within the image of each of the plurality of second corner points extracted from the visual marker, the processor calculates the coordinates within the image of the plurality of second corner points using homography. It can be used to determine the camera pose.

본 개시의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 다른 효과들은 청구범위의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자("통상의 기술자"라 함)에게 명확하게 이해될 수 있을 것이다.The effects of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned are clear to a person skilled in the art (referred to as “a person skilled in the art”) in the technical field to which the present disclosure pertains from the description of the claims. It will be understandable.

본 개시의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.
도 1은 본 개시의 일 실시예에 따른 컴퓨팅 장치가 카메라의 자세를 결정하는 예시를 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 컴퓨팅 장치의 내부 구성을 나타내는 블록도이다.
도 3은 본 개시의 일 실시예에 따른 프로세서의 내부 구성을 나타내는 기능적인 블록도이다.
도 4는 본 개시의 일 실시예에 따라 프로세서가 영상에 포함된 비주얼 마커로부터 복수의 코너 포인트를 추출하는 예시를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따라 프로세서가 복수의 제2 코너 포인트의 영상 내의 좌표를 산출하는 예시를 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따라 영상 내의 비주얼 마커 상에 표시된 코너 포인트의 위치를 나타내는 예시적인 도면이다.
도 7은 본 개시의 일 실시예에 따라 비주얼 마커의 코너 포인트의 영상 내의 좌표가 조정되는 예시를 나타내는 도면이다.
도 8은 본 개시의 일 실시예에 따라 프로세서가 카메라의 자세를 결정하는 예시를 나타내는 도면이다.
도 9는 본 개시의 일 실시예에 따라 비주얼 마커가 격자 지도 상에 정렬되는 예시를 나타내는 도면이다.
도 10은 본 개시의 일 실시예에 따라 비주얼 마커가 활용되는 예시를 나타내는 도면이다.
도 11은 본 개시의 일 실시예에 따른 카메라 자세 결정 방법의 예시를 나타내는 흐름도이다.
Embodiments of the present disclosure will be described with reference to the accompanying drawings described below, in which like reference numerals indicate like elements, but are not limited thereto.
FIG. 1 is a diagram illustrating an example of a computing device determining the posture of a camera according to an embodiment of the present disclosure.
Figure 2 is a block diagram showing the internal configuration of a computing device according to an embodiment of the present disclosure.
Figure 3 is a functional block diagram showing the internal configuration of a processor according to an embodiment of the present disclosure.
FIG. 4 is a diagram illustrating an example in which a processor extracts a plurality of corner points from a visual marker included in an image according to an embodiment of the present disclosure.
FIG. 5 is a diagram illustrating an example in which a processor calculates coordinates in an image of a plurality of second corner points according to an embodiment of the present disclosure.
FIG. 6 is an exemplary diagram showing the location of a corner point displayed on a visual marker in an image according to an embodiment of the present disclosure.
FIG. 7 is a diagram illustrating an example in which coordinates in an image of a corner point of a visual marker are adjusted according to an embodiment of the present disclosure.
FIG. 8 is a diagram illustrating an example in which a processor determines the posture of a camera according to an embodiment of the present disclosure.
FIG. 9 is a diagram illustrating an example in which visual markers are aligned on a grid map according to an embodiment of the present disclosure.
Figure 10 is a diagram illustrating an example of a visual marker being utilized according to an embodiment of the present disclosure.
11 is a flowchart illustrating an example of a method for determining a camera posture according to an embodiment of the present disclosure.

이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, specific details for implementing the present disclosure will be described in detail with reference to the attached drawings. However, in the following description, detailed descriptions of well-known functions or configurations will be omitted if there is a risk of unnecessarily obscuring the gist of the present disclosure.

첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.In the accompanying drawings, identical or corresponding components are given the same reference numerals. Additionally, in the description of the following embodiments, overlapping descriptions of identical or corresponding components may be omitted. However, even if descriptions of components are omitted, it is not intended that such components are not included in any embodiment.

개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments and methods for achieving them will become clear by referring to the embodiments described below in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely provided to ensure that the present disclosure is complete and that the present disclosure does not convey the scope of the invention to those skilled in the art. It is provided only for complete information.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. 본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail. The terms used in this specification are general terms that are currently widely used as much as possible while considering the function in the present disclosure, but this may vary depending on the intention or precedent of a technician working in the related field, the emergence of new technology, etc. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the relevant invention. Accordingly, the terms used in this disclosure should be defined based on the meaning of the term and the overall content of the present disclosure, rather than simply the name of the term.

본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.In this specification, singular expressions include plural expressions, unless the context clearly specifies the singular. Additionally, plural expressions include singular expressions, unless the context clearly specifies plural expressions. When it is said that a certain part includes a certain element throughout the specification, this does not mean excluding other elements, but may further include other elements, unless specifically stated to the contrary.

또한, 명세서에서 사용되는 '모듈' 또는 '부'라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, '모듈' 또는 '부'는 어떤 역할들을 수행한다. 그렇지만, '모듈' 또는 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈' 또는 '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서, '모듈' 또는 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 또는 변수들 중 적어도 하나를 포함할 수 있다. 구성요소들과 '모듈' 또는 '부'들은 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈' 또는 '부'들로 결합되거나 추가적인 구성요소들과 '모듈' 또는 '부'들로 더 분리될 수 있다.Additionally, the term 'module' or 'unit' used in the specification refers to a software or hardware component, and the 'module' or 'unit' performs certain roles. However, 'module' or 'unit' is not limited to software or hardware. A 'module' or 'unit' may be configured to reside on an addressable storage medium and may be configured to run on one or more processors. Thus, as an example, a 'module' or 'part' refers to components such as software components, object-oriented software components, class components and task components, processes, functions and properties. , procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, or variables. Components and 'modules' or 'parts' may be combined into smaller components and 'modules' or 'parts' or further components and 'modules' or 'parts'. Could be further separated.

본 개시의 일 실시예에 따르면, '모듈' 또는 '부'는 프로세서 및 메모리로 구현될 수 있다. '프로세서'는 범용 프로세서, 중앙 처리 장치(CPU), 마이크로프로세서, 디지털 신호 프로세서(DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서, '프로세서'는 주문형 반도체(ASIC), 프로그램가능 로직 디바이스(PLD), 필드 프로그램가능 게이트 어레이(FPGA) 등을 지칭할 수도 있다. '프로세서'는, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다. 또한, '메모리'는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. '메모리'는 임의 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비-휘발성 임의 액세스 메모리(NVRAM), 프로그램가능 판독-전용 메모리(PROM), 소거-프로그램가능 판독 전용 메모리(EPROM), 전기적으로 소거가능 PROM(EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.According to an embodiment of the present disclosure, a 'module' or 'unit' may be implemented with a processor and memory. 'Processor' should be interpreted broadly to include general-purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, etc. In some contexts, 'processor' may refer to an application-specific integrated circuit (ASIC), programmable logic device (PLD), field programmable gate array (FPGA), etc. 'Processor' refers to a combination of processing devices, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in combination with a DSP core, or any other such combination of configurations. You may. Additionally, 'memory' should be interpreted broadly to include any electronic component capable of storing electronic information. 'Memory' refers to random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable-programmable read-only memory (EPROM), May also refer to various types of processor-readable media, such as electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, etc. A memory is said to be in electronic communication with a processor if the processor can read information from and/or write information to the memory. The memory integrated into the processor is in electronic communication with the processor.

본 개시에서, '비주얼(시각적) 마커' 또는 '비주얼(시각적) 기준 마커(visual fiducial marker)'는, 증강현실(AR: augmented reality), 로보틱스, 자율주행차 등과 같이 3차원 공간에서 특정 기능 또는 행위의 대상이 되는 위치 또는 객체의 자세를 파악하기 위해 사용되는 표시자를 지칭할 수 있다. 예를 들어, 비주얼 마커는, 컴퓨팅 장치, 로봇, 자율주행차 등에 설치된 카메라에 의해 촬영되거나 식별될 수 있는 특정 패턴을 포함하도록 구성될 수 있다.In the present disclosure, a ‘visual (visual) marker’ or a ‘visual fiducial marker’ refers to a specific function or function in a three-dimensional space, such as augmented reality (AR), robotics, autonomous vehicles, etc. It may refer to an indicator used to identify the location of the target of an action or the posture of an object. For example, a visual marker may be configured to include a specific pattern that can be captured or identified by a camera installed on a computing device, robot, autonomous vehicle, etc.

본 개시에서, '카메라의 자세(camera pose)'는, 카메라의 방향(orientation)을 나타내는 회전(yaw) 및 기울기(pitch, roll)를 지칭하거나, 카메라의 자세 및 위치(예를 들어, 3차원 공간 상의 좌표)를 지칭할 수 있다. 예를 들어, 카메라의 자세는, 3차원 공간 상의 좌표(x, y, z), 앞뒤 기울기(pitch), 좌우 기울기(roll) 및 좌우 회전(yaw)을 포함하는 6 자유도(degrees of freedom)로 표현되거나, 6 자유도의 적어도 일부로 표현될 수 있다. 또한, 카메라의 자세를 결정하기 위해 사용되는 카메라의 내부 파라미터(camera intrinsic parameters)는 미리 결정되거나, 카메라 캘리브레이션(camera calibration) 등에 의해 추출될 수 있다.In the present disclosure, 'camera pose' refers to rotation (yaw) and tilt (pitch, roll) indicating the orientation of the camera, or the pose and position of the camera (e.g., three-dimensional coordinates in space). For example, the pose of a camera has 6 degrees of freedom, including coordinates (x, y, z) in three-dimensional space, pitch, roll, and yaw. It can be expressed as, or at least part of 6 degrees of freedom. Additionally, camera intrinsic parameters used to determine the camera posture may be determined in advance or extracted through camera calibration, etc.

도 1은 본 개시의 일 실시예에 따른 컴퓨팅 장치(110)가 카메라의 자세를 결정하는 예시를 나타내는 도면이다. 일 실시예에 따르면, 컴퓨팅 장치(110)는, 카메라(120)에 의해 촬영된 영상 내에 포함된 비주얼 마커(visual marker) 를 이용하여 해당 카메라(120)의 자세를 결정할 수 있다. 여기서, 컴퓨팅 장치(110)는, 카메라(이미지 센서)(120), 모션 센서 등을 포함하는 임의의 기계 장치를 지칭할 수 있다. 예를 들어, 컴퓨팅 장치(110)는, 카메라(120)에 의해 촬영된 영상을 기초로 자율 주행이 가능한 로봇 또는 차량, 증강현실 기능을 제공하는 휴대용 컴퓨터 또는 웨어러블 컴퓨터 등과 같이, 카메라 촬영 영상을 기초로 카메라(120)의 자세를 결정하고, 카메라(120) 자세에 따라 자율 주행 또는 특정 동작을 실행하도록 구성된 장치를 포함할 수 있으나, 이에 한정되는 것은 아니다.FIG. 1 is a diagram illustrating an example of how the computing device 110 determines the posture of a camera according to an embodiment of the present disclosure. According to one embodiment, the computing device 110 may determine the posture of the camera 120 using a visual marker included in an image captured by the camera 120. Here, the computing device 110 may refer to any mechanical device including a camera (image sensor) 120, a motion sensor, etc. For example, the computing device 110 is a robot or vehicle capable of autonomous driving based on the image captured by the camera 120, a portable computer or wearable computer that provides an augmented reality function, etc., based on the image captured by the camera. It may include, but is not limited to, a device configured to determine the posture of the camera 120 and perform autonomous driving or a specific operation according to the posture of the camera 120.

일 실시예에 따르면, 컴퓨팅 장치(110)는 임의의 영역을 이동하며, 컴퓨팅 장치(110)에 설치된 카메라(120)를 이용하여 주변 환경 또는 물체의 영상을 촬영할 수 있다. 예를 들어, 컴퓨팅 장치(110)는, 특정 물체의 일면에 부착되거나 프린트된 비주얼 마커를 포함하는 영상(130)을 촬영할 수 있다. 또한, 컴퓨팅 장치(110)는 영상(130)에 포함된 비주얼 마커에 대응하는 가상 평면 상의 비주얼 마커(140)에 대한 정보를 사전 저장하거나 외부로부터 수신할 수 있다. 여기서, 비주얼 마커(140)는 컴퓨팅 장치(110)에 특정 위치 또는 특정 영역에 위치한 대상 또는 목적물을 안내하거나 지시하기 위한 사전 결정된 패턴을 포함할 수 있다. 예를 들어, 비주얼 마커(140)는, ARToolKit, ARTag, AprilTag, ArUco 등과 같이 증강현실, 로보틱스 및 카메라 캘리브레이션을 위한 라이브러리 및/또는 어플리케이션 등을 기초로 생성된 시각적 기준 마커를 지칭할 수 있다. 비주얼 마커(140)는 일정한 간격의 격자들로 구성된 격자 지도 상에 정렬된 복수의 격자 패턴들을 포함할 수 있다. 예를 들어, 비주얼 마커(140)는, 복수의 제1 색상(예를 들어, 흰 색)의 격자 패턴 및 복수의 제2 색상(예를 들어, 검은색)의 격자 패턴을 포함할 수 있다. 다시 말해, 비주얼 마커(140)는 복수의 제1 색상의 격자 및 복수의 제2 색상의 격자의 조합으로 구성될 수 있다. 컴퓨팅 장치(110)는, 이와 같이 구성된 비주얼 마커를 포함하는 영상(130)을 이용하여 카메라(120)의 자세를 결정할 수 있다.According to one embodiment, the computing device 110 may move in an arbitrary area and capture images of the surrounding environment or objects using the camera 120 installed on the computing device 110. For example, the computing device 110 may capture an image 130 that includes a visual marker attached or printed on one side of a specific object. Additionally, the computing device 110 may pre-store or receive from the outside information about the visual marker 140 on the virtual plane corresponding to the visual marker included in the image 130. Here, the visual marker 140 may include a predetermined pattern for guiding or instructing the computing device 110 to an object or object located in a specific location or specific area. For example, the visual marker 140 may refer to a visual reference marker created based on libraries and/or applications for augmented reality, robotics, and camera calibration, such as ARToolKit, ARTag, AprilTag, ArUco, etc. The visual marker 140 may include a plurality of grid patterns arranged on a grid map composed of grids at regular intervals. For example, the visual marker 140 may include grid patterns of a plurality of first colors (eg, white) and grid patterns of a plurality of second colors (eg, black). In other words, the visual marker 140 may be composed of a combination of grids of a plurality of first colors and grids of a plurality of second colors. The computing device 110 may determine the posture of the camera 120 using the image 130 including the visual marker configured as described above.

컴퓨팅 장치(110)는, 제1 동작(112)에서, 비주얼 마커를 포함하는 영상(130)으로부터 비주얼 마커 상의 복수의 제1 코너 포인트를 추출할 수 있다. 예를 들어, 코너 포인트(corner point)는 비주얼 마커 내의 격자의 꼭짓점(vertex)들 중 상이한 색상의 격자들의 꼭짓점들이 만나는 점(point)을 지칭할 수 있다. 또한, 복수의 제1 코너 포인트는, 비주얼 마커에 포함된 사각형(즉, 비주얼 마커의 미리 정해진 포맷/규격에 의해 정해진 정사각형 또는 직사각형)의 꼭짓점에 대응하는 4개의 포인트를 지칭할 수 있으나, 이에 한정되지 않는다. 여기서, 비주얼 마커에 포함된 사각형은 하나 이상의 색상의 격자들의 조합으로 구성될 수 있다.In the first operation 112, the computing device 110 may extract a plurality of first corner points on the visual marker from the image 130 including the visual marker. For example, a corner point may refer to a point where vertices of grids of different colors meet among the vertices of grids in a visual marker. In addition, the plurality of first corner points may refer to four points corresponding to the vertices of a square (i.e., a square or rectangle determined by a predetermined format/standard of the visual marker) included in the visual marker, but are limited to this. It doesn't work. Here, the square included in the visual marker may be composed of a combination of grids of one or more colors.

컴퓨팅 장치(110)는, 제2 동작(114)에서, 복수의 제1 코너 포인트를 이용하여 호모그래피(homography)를 산출할 수 있다. 구체적으로, 컴퓨팅 장치(110)는 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 호모그래피를 산출할 수 있다. 여기서, 가상 평면은, 복수의 제1 코너 포인트를 포함하는 격자 패턴들이 정렬된 격자 지도의 평면을 나타낼 수 있다. 이 경우, 복수의 제1 코너 포인트의 영상 내의 좌표 및/또는 복수의 제1 코너 포인트 사이의 거리는 사전 결정된 비주얼 마커의 포맷(format)에 기초하여 정해질 수 있다. 또한, 호모그래피는 복수의 제1 코너 포인트의 가상 평면 상의 좌표를 복수의 제1 코너 포인트의 영상 내의 좌표로 변환하기 위한 행렬(matrix)을 포함하거나 지칭할 수 있다. 즉, 호모그래피는 아래와 같은 수학식 1에 의해 산출되는 행렬(H)을 포함할 수 있다.In the second operation 114, the computing device 110 may calculate homography using a plurality of first corner points. Specifically, the computing device 110 may calculate homography based on the coordinates of the plurality of first corner points on the virtual plane and the coordinates in the image. Here, the virtual plane may represent a plane of a grid map in which grid patterns including a plurality of first corner points are aligned. In this case, the coordinates in the image of the plurality of first corner points and/or the distance between the plurality of first corner points may be determined based on the format of the predetermined visual marker. Additionally, homography may include or refer to a matrix for converting coordinates on a virtual plane of a plurality of first corner points into coordinates in an image of a plurality of first corner points. That is, the homography may include a matrix (H) calculated by Equation 1 below.

그리고 나서, 컴퓨팅 장치(110)는, 제3 동작(116)에서, 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 산출된 호모그래피를 이용하여 가상 평면 상의 좌표에 대응하는 복수의 제2 코너 포인트의 영상 내의 좌표를 결정할 수 있다. 여기서, 복수의 제2 코너 포인트는 복수의 제1 코너 포인트를 포함할 수 있으나, 이에 한정되지 않는다. 예를 들어, 복수의 제2 코너 포인트는, 비주얼 마커 내의 격자의 꼭짓점들 중 상이한 색상의 격자들의 꼭짓점들이 만나는 5개 이상의 점을 포함할 수 있다. 또한, 컴퓨팅 장치(110)에 의해 산출된 복수의 제2 코너 포인트의 가상 평면 상의 좌표에 호모그래피를 적용하는 경우, 복수의 제2 코너 포인트의 영상 내의 좌표가 결정될 수 있다. 상술된 과정을 통해, 컴퓨팅 장치(110)는 비주얼 마커(140)로부터 추출된 복수의 제2 코너 포인트의 영상 내의 좌표를 결정할 수 있다.Then, in a third operation 116, computing device 110 uses the coordinates on the virtual plane of the plurality of second corner points and the calculated homography to generate a plurality of second corner points corresponding to the coordinates on the virtual plane. The coordinates within the image can be determined. Here, the plurality of second corner points may include a plurality of first corner points, but is not limited thereto. For example, the plurality of second corner points may include five or more points where vertices of grids of different colors meet among the vertices of grids in the visual marker. Additionally, when homography is applied to the coordinates on the virtual plane of the plurality of second corner points calculated by the computing device 110, the coordinates of the plurality of second corner points in the image may be determined. Through the above-described process, the computing device 110 may determine the coordinates of the plurality of second corner points extracted from the visual marker 140 in the image.

일 실시예에 따르면, 컴퓨팅 장치(110)는, 제4 동작(118)에서, 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표에 기초하여 카메라(120)의 자세를 결정할 수 있다. 이 경우, 컴퓨팅 장치(110)는 PnP(Perspective n-Point) 알고리즘을 이용하여, 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 카메라(120)의 자세를 측정하거나 결정할 수 있다. 예를 들어, PnP 알고리즘은 아래와 같은 수학식 2로 표현될 수 있다.According to one embodiment, in the fourth operation 118, the computing device 110 may determine the posture of the camera 120 based on the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image. In this case, the computing device 110 may measure or determine the posture of the camera 120 based on the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image using the Perspective n-Point (PnP) algorithm. there is. For example, the PnP algorithm can be expressed as Equation 2 below.

여기서, 는 스케일 상수이고, 는 복수의 제2 코너 포인트의 영상 내의 좌표이며, 는 복수의 제2 코너 포인트의 가상 평면 상의 좌표일 수 있다. 또한, 는 카메라(120)의 고유 행렬 또는 내부 파라미터를 나타내는 행렬로 카메라 캘리브레이션에 의해 사전 결정될 수 있으며, 은 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표 사이의 변환 관계를 나타내는 회전 및 이동 변환 행렬일 수 있다. 즉, PnP 알고리즘에 의해 결정되는 카메라(120)의 자세는 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표 사이의 변환 관계를 나타내는 회전 및 이동 변환 행렬 및/또는 카메라(120)의 내부 파라미터를 포함할 수 있다.here, is the scale constant, is the coordinate in the image of the plurality of second corner points, May be the coordinates on the virtual plane of the plurality of second corner points. also, is a matrix representing the intrinsic matrix or internal parameters of the camera 120 and may be predetermined by camera calibration, may be a rotation and movement transformation matrix representing a transformation relationship between coordinates on a virtual plane of a plurality of second corner points and coordinates in an image. That is, the posture of the camera 120 determined by the PnP algorithm is a rotation and movement transformation matrix representing the transformation relationship between the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image and/or the interior of the camera 120. Can contain parameters.

일 실시예에 따르면, 비주얼 마커로부터 추출된 복수의 제3 코너 포인트(즉, 복수의 제2 코너 포인트를 포함하는 복수의 제3 포인트)의 영상 내의 좌표 중 일부는 영상 내의 비주얼 마커 상의 코너와 대응되지 않을 수 있다. 이 경우, 컴퓨팅 장치(110)는 호모그래피를 이용하여 복수의 제3 코너 포인트의 가상 평면 상의 좌표에 대응하는 영상 내의 좌표를 결정하고, 복수의 제3 코너 포인트의 영상 내의 좌표가 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하는지 여부를 결정할 수 있다. 그리고 나서, 컴퓨팅 장치(110)는 복수의 제3 코너 포인트 중 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하지 않는 코너 포인트를 제거하여, 복수의 제2 코너 포인트의 영상 내의 좌표를 결정할 수 있다.According to one embodiment, some of the coordinates in the image of the plurality of third corner points (i.e., the plurality of third points including the plurality of second corner points) extracted from the visual marker correspond to the corners on the visual marker in the image. It may not work. In this case, the computing device 110 determines the coordinates in the image corresponding to the coordinates on the virtual plane of the plurality of third corner points using homography, and the coordinates in the image of the plurality of third corner points are the visual markers in the image. You can determine whether it corresponds to the coordinates of the corner of the image. Then, the computing device 110 may determine the coordinates of the plurality of second corner points in the image by removing corner points that do not correspond to the coordinates of the corners on the visual marker in the image among the plurality of third corner points.

일 실시예에 따르면, 비주얼 마커로부터 추출된 복수의 제2 코너 포인트의 영상 내의 좌표는 영상 내의 비주얼 마커 상의 코너의 좌표와 일치하지 않을 수 있다. 예를 들어, 복수의 제2 코너 포인트의 영상 내의 좌표의 각각은 대응되는 비주얼 마커 상의 코너의 미리 설정된 거리 이내의 근방을 나타낼 수 있다. 이 경우, 컴퓨팅 장치(110)는 복수의 제2 코너 포인트의 영상 내의 좌표를 영상 내의 비주얼 마커 상의 코너의 좌표와 일치하도록 복수의 제2 코너 포인트의 영상 내의 좌표를 조정할 수 있다. 예를 들어, 컴퓨팅 장치(110)는 복수의 제2 코너 포인트의 영상 내의 좌표에 대한 리파인먼트(refinement)를 수행할 수 있다. 이와 같은 구성에 의해, 컴퓨팅 장치(110)는 복수의 제1 코너 포인트뿐만 아니라, 추출된 모든 복수의 제2 코너 포인트를 이용하여 카메라(120)의 자세를 결정함으로써, 카메라(120) 자세 결정의 정밀도를 향상시킬 수 있다.According to one embodiment, the coordinates in the image of the plurality of second corner points extracted from the visual marker may not match the coordinates of the corners on the visual marker in the image. For example, each of the coordinates in the image of the plurality of second corner points may indicate a vicinity within a preset distance of the corner on the corresponding visual marker. In this case, the computing device 110 may adjust the coordinates of the plurality of second corner points in the image so that the coordinates of the plurality of second corner points match the coordinates of the corners on the visual marker in the image. For example, the computing device 110 may perform refinement on coordinates in an image of a plurality of second corner points. With this configuration, the computing device 110 determines the posture of the camera 120 using not only the plurality of first corner points but also all of the extracted second corner points, thereby determining the posture of the camera 120. Precision can be improved.

도 2는 본 개시의 일 실시예에 따른 컴퓨팅 장치(110)의 내부 구성을 나타내는 블록도이다. 컴퓨팅 장치(110)는 메모리(210), 프로세서(220), 통신 모듈(230) 및 입출력 인터페이스(240)를 포함할 수 있다. 도 2에 도시된 바와 같이, 컴퓨팅 장치(110)는 통신 모듈(230)을 이용하여 네트워크를 통해 정보 및/또는 데이터를 통신할 수 있도록 구성될 수 있다.FIG. 2 is a block diagram showing the internal configuration of the computing device 110 according to an embodiment of the present disclosure. The computing device 110 may include a memory 210, a processor 220, a communication module 230, and an input/output interface 240. As shown in FIG. 2 , computing device 110 may be configured to communicate information and/or data over a network using a communication module 230 .

메모리(210)는 비-일시적인 임의의 컴퓨터 판독 가능한 기록매체를 포함할 수 있다. 일 실시예에 따르면, 메모리(210)는 RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 다른 예로서, ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리와는 구분되는 별도의 영구 저장 장치로서 컴퓨팅 장치(110)에 포함될 수 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드(예를 들어, 컴퓨팅 장치(110)에 설치되어 구동되는 비주얼 마커 영상으로부터의 코너 포인트 추출, 호모그래피 산출, 코너 포인트의 좌표 산출, 카메라 자세 측정/결정 등을 위한 코드)가 저장될 수 있다.Memory 210 may include any non-transitory computer-readable recording medium. According to one embodiment, the memory 210 is a non-permanent mass storage device such as random access memory (RAM), read only memory (ROM), disk drive, solid state drive (SSD), flash memory, etc. mass storage device). As another example, non-perishable mass storage devices such as ROM, SSD, flash memory, disk drive, etc. may be included in the computing device 110 as a separate persistent storage device that is distinct from memory. In addition, the memory 210 includes an operating system and at least one program code (e.g., corner point extraction from a visual marker image installed and driven in the computing device 110, homography calculation, corner point coordinate calculation, camera posture code for measurement/decision, etc.) can be stored.

이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 이러한 컴퓨팅 장치(110)에 직접 연결가능한 기록 매체를 포함할 수 있는데, 예를 들어, 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 예로서, 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(230)을 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 통신 모듈(230)을 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(예를 들어, 코너 포인트 추출, 호모그래피 산출, 코너 포인트의 좌표 산출, 카메라의 자세 측정/결정 등을 위한 프로그램 등)에 기반하여 메모리(210)에 로딩될 수 있다.These software components may be loaded from a computer-readable recording medium separate from the memory 210. Recording media readable by such a separate computer may include recording media directly connectable to the computing device 110, for example, floppy drives, disks, tapes, DVD/CD-ROM drives, memory cards, etc. It may include a computer-readable recording medium. As another example, software components may be loaded into the memory 210 through the communication module 230 rather than a computer-readable recording medium. For example, at least one program is a computer program (e.g., corner point extraction, It may be loaded into the memory 210 based on a program for calculating graphics, calculating coordinates of a corner point, measuring/determining the pose of a camera, etc.).

프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 모듈(230)에 의해 사용자 단말(미도시) 또는 다른 외부 시스템으로 제공될 수 있다. 예를 들어, 프로세서(220)는 비주얼 마커를 포함하는 영상을 수신하고, 비주얼 마커로부터 복수의 제1 코너 포인트 및/또는 복수의 제2 코너 포인트를 추출할 수 있다. 이 경우, 프로세서(220)는 추출된 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 호모그래피를 산출하고, 호모그래피를 이용하여 복수의 제2 코너 포인트의 가상 평면 상의 좌표에 대응하는 영상 내의 좌표를 결정하고, 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표에 기초하여 카메라의 자세를 결정할 수 있다.The processor 220 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to a user terminal (not shown) or another external system by the memory 210 or the communication module 230. For example, the processor 220 may receive an image including a visual marker and extract a plurality of first corner points and/or a plurality of second corner points from the visual marker. In this case, the processor 220 calculates homography based on the coordinates on the virtual plane of the extracted plurality of first corner points and the coordinates in the image, and uses the homography to calculate the coordinates on the virtual plane of the plurality of second corner points. The coordinates in the image corresponding to may be determined, and the posture of the camera may be determined based on the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image.

통신 모듈(230)은 네트워크를 통해 사용자 단말(미도시)과 컴퓨팅 장치(110)가 서로 통신하기 위한 구성 또는 기능을 제공할 수 있으며, 컴퓨팅 장치(110)가 외부 시스템(일례로 별도의 클라우드 시스템 등)과 통신하기 위한 구성 또는 기능을 제공할 수 있다. 일례로, 컴퓨팅 장치(110)의 프로세서(220)의 제어에 따라 제공되는 제어 신호, 명령, 데이터 등이 통신 모듈(230)과 네트워크를 거쳐 사용자 단말 및/또는 외부 시스템의 통신 모듈을 통해 사용자 단말 및/또는 외부 시스템으로 전송될 수 있다. 예를 들어, 사용자 단말 및/또는 외부 시스템은 컴퓨팅 장치(110)로부터 수신된 비주얼 마커 영상, 결정된 카메라의 자세 등을 전달받을 수 있다.The communication module 230 may provide a configuration or function for a user terminal (not shown) and the computing device 110 to communicate with each other through a network, and the computing device 110 may be connected to an external system (for example, a separate cloud system). etc.) may provide a configuration or function for communication. For example, control signals, commands, data, etc. provided under the control of the processor 220 of the computing device 110 pass through the communication module 230 and the network to the user terminal and/or the communication module of the external system. and/or transmitted to an external system. For example, the user terminal and/or the external system may receive the visual marker image received from the computing device 110, the determined camera posture, etc.

또한, 컴퓨팅 장치(110)의 입출력 인터페이스(240)는 컴퓨팅 장치(110)와 연결되거나 컴퓨팅 장치(110)가 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 도 2에서는 입출력 인터페이스(240)가 프로세서(220)와 별도로 구성된 요소로서 도시되었으나, 이에 한정되지 않으며, 입출력 인터페이스(240)가 프로세서(220)에 포함되도록 구성될 수 있다. 컴퓨팅 장치(110)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다.Additionally, the input/output interface 240 of the computing device 110 may be connected to the computing device 110 or may be a means for interfacing with a device (not shown) for input or output that the computing device 110 may include. . In FIG. 2 , the input/output interface 240 is shown as an element configured separately from the processor 220, but the present invention is not limited thereto, and the input/output interface 240 may be included in the processor 220. Computing device 110 may include more components than those of FIG. 2 . However, there is no need to clearly show most prior art components.

컴퓨팅 장치(110)의 프로세서(220)는 복수의 사용자 단말 및/또는 복수의 외부 시스템으로부터 수신된 정보 및/또는 데이터를 관리, 처리 및/또는 저장하도록 구성될 수 있다. 일 실시예에 따르면, 프로세서(220)는 사용자 단말 및/또는 외부 시스템으로부터 비주얼 마커를 포함하는 영상을 수신할 수도 있다. 이 경우, 프로세서(220)는 수신된 영상을 기초로 비주얼 마커 상의 복수의 제1 코너 포인트를 추출하고, 호모그래피를 산출하고, 복수의 제2 코너 포인트의 영상 내의 좌표를 결정하고, 카메라의 자세를 측정하거나 결정할 수 있다.The processor 220 of the computing device 110 may be configured to manage, process, and/or store information and/or data received from a plurality of user terminals and/or a plurality of external systems. According to one embodiment, the processor 220 may receive an image including a visual marker from a user terminal and/or an external system. In this case, the processor 220 extracts a plurality of first corner points on the visual marker based on the received image, calculates homography, determines the coordinates of the plurality of second corner points in the image, and determines the pose of the camera. can be measured or determined.

도 3은 본 개시의 일 실시예에 따른 프로세서(220)의 내부 구성을 나타내는 기능적인 블록도이다. 도시된 바와 같이, 프로세서(220)는 촬영부(310), 호모그래피 산출부(320), 좌표 조정부(330), 자세 결정부(340) 등을 포함할 수 있다. 일 실시예에 따르면, 촬영부(310)는, 컴퓨팅 장치에 설치된 카메라를 제어하여 외부 영역의 영상을 지속적으로 또는 간헐적으로 촬영할 수 있다. 예를 들어, 촬영부(310)의 제어에 따라 카메라에 의해 촬영된 영상은 외부 영역의 일부에 부착되거나 표시된 비주얼 마커를 포함할 수 있다.FIG. 3 is a functional block diagram showing the internal configuration of the processor 220 according to an embodiment of the present disclosure. As shown, the processor 220 may include a photographing unit 310, a homography calculation unit 320, a coordinate adjustment unit 330, a posture determination unit 340, etc. According to one embodiment, the photographing unit 310 may continuously or intermittently capture images of an external area by controlling a camera installed in the computing device. For example, an image captured by a camera under the control of the capturing unit 310 may include a visual marker attached or displayed on a portion of the external area.

일 실시예에 따르면, 프로세서(220)는 촬영부(310)에 의해 촬영 및 획득된 영상으로부터 비주얼 마커 상의 복수의 제1 코너 포인트를 추출할 수 있다. 예를 들어, 복수의 제1 코너 포인트는 비주얼 마커에 포함된 정사각형의 꼭짓점에 대응되는 4개의 코너 포인트를 지칭할 수 있다. 그리고 나서, 프로세서(220)는 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 결정할 수 있다.According to one embodiment, the processor 220 may extract a plurality of first corner points on the visual marker from the image captured and acquired by the photographing unit 310. For example, the plurality of first corner points may refer to four corner points corresponding to the vertices of a square included in the visual marker. Then, the processor 220 may determine coordinates on the virtual plane and within the image of the plurality of first corner points.

호모그래피 산출부(320)는, 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 이용하여 호모그래피를 산출할 수 있다. 예를 들어, 호모그래피는 복수의 제1 코너 포인트의 가상 평면 상의 좌표를 복수의 제1 코너 포인트의 영상 내의 좌표로 변환하기 위한 행렬을 나타낼 수 있다. 이러한 호모그래피는 복수의 제1 코너 포인트를 포함하는 비주얼 마커 상의 모든 코너 포인트의 가상 평면 상의 좌표를 영상 내의 좌표로 변환하기 위해 사용될 수 있다. 즉, 프로세서(220)는 호모그래피 산출부(320)에 의해 산출된 호모그래피를 이용하여, 복수의 제2 코너 포인트 각각의 가상 평면 상의 좌표로부터 복수의 제2 코너 포인트 각각의 영상 내의 좌표를 산출할 수 있다.The homography calculation unit 320 may calculate homography using the coordinates of the plurality of first corner points on the virtual plane and the coordinates in the image. For example, homography may represent a matrix for converting coordinates on a virtual plane of a plurality of first corner points into coordinates in an image of the plurality of first corner points. This homography can be used to convert coordinates on a virtual plane of all corner points on a visual marker including a plurality of first corner points to coordinates in an image. That is, the processor 220 uses the homography calculated by the homography calculation unit 320 to calculate the coordinates in the image of each of the plurality of second corner points from the coordinates on the virtual plane of each of the plurality of second corner points. can do.

일 실시예에 따르면, 프로세서(220)는 호모그래피를 이용하여 복수의 제3 코너 포인트의 가상 평면 상의 좌표에 대응하는 영상 내의 좌표를 결정할 수 있다. 예를 들어, 복수의 제3 코너 포인트는 비주얼 마커로부터 추출된 포인트로서, 복수의 제1 코너 포인트 및 복수의 제2 코너 포인트를 포함할 수 있다. 프로세서(220)는 이러한 복수의 제3 코너 포인트의 영상 내의 좌표가 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하는지 여부를 결정할 수 있다. 그리고 나서, 프로세서(220)는 복수의 제3 코너 포인트 중 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하지 않는 코너 포인트를 제거하여, 복수의 제2 코너 포인트의 영상 내의 좌표를 결정할 수 있다. 이 경우, 프로세서(220)는 적절한 코너 디텍터(corner detector) 알고리즘을 이용하여, 영상 내의 비주얼 마커 상의 코너의 좌표를 추출하고, 복수의 제3 코너 포인트의 영상 내의 좌표가 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하는지 여부를 결정할 수 있다. 예를 들어, 코너 디텍터 알고리즘은, 해리스 코너 디텍터(Harris corner detector)와 같이 비주얼 마커를 포함하는 영상으로부터 코너의 좌표를 추출하기 위한 공지된 알고리즘을 포함할 수 있다.According to one embodiment, the processor 220 may determine coordinates in an image corresponding to coordinates on a virtual plane of a plurality of third corner points using homography. For example, the plurality of third corner points are points extracted from the visual marker and may include a plurality of first corner points and a plurality of second corner points. The processor 220 may determine whether the coordinates of the plurality of third corner points in the image correspond to the coordinates of the corners on the visual marker in the image. Then, the processor 220 may determine the coordinates of the plurality of second corner points in the image by removing corner points that do not correspond to the coordinates of the corners on the visual marker in the image among the plurality of third corner points. In this case, the processor 220 extracts the coordinates of the corner on the visual marker in the image using an appropriate corner detector algorithm, and the coordinates in the image of the plurality of third corner points are the corners of the corner on the visual marker in the image. You can determine whether it corresponds to the coordinates. For example, the corner detector algorithm may include a known algorithm for extracting corner coordinates from an image including a visual marker, such as a Harris corner detector.

좌표 조정부(330)는 복수의 제2 코너 포인트의 영상 내의 좌표를 영상 내의 비주얼 마커 상의 코너의 좌표와 일치하도록, 복수의 제2 코너 포인트의 영상 내의 좌표를 조정할 수 있다. 이 경우, 좌표를 조정하는 것은, 복수의 제2 코너 포인트 각각의 영상 내의 좌표를 비주얼 마커의 코너의 좌표와 일치하도록, 좌표를 보정하는 것을 포함할 수 있다. 여기서, 좌표들 사이의 일치는, 양 좌표가 동일한 것에 한정되지 않으며, 좌표들 중 적어도 하나를 조정하기 이전보다 양 좌표가 좀 더 가까워지거나 유사해지는 것을 포함할 수 있다. 이 경우, 프로세서(220)는 코너 디텍터를 이용하여, 영상 내의 비주얼 마커 상의 코너의 좌표를 추출하고, 영상 내의 비주얼 마커 상의 코너의 좌표와 일치하도록, 복수의 제2 코너 포인트의 영상 내의 좌표를 조정할 수 있다. 예를 들어, 코너 디텍터는 상술된 해리스 코너 디텍터를 포함할 수 있다.The coordinate adjustment unit 330 may adjust the coordinates of the plurality of second corner points in the image so that the coordinates of the plurality of second corner points match the coordinates of the corners on the visual marker in the image. In this case, adjusting the coordinates may include correcting the coordinates of each of the plurality of second corner points so that the coordinates in the image match the coordinates of the corners of the visual marker. Here, the coincidence between coordinates is not limited to both coordinates being the same, and may include both coordinates becoming closer or similar than before adjusting at least one of the coordinates. In this case, the processor 220 extracts the coordinates of the corners on the visual marker in the image using a corner detector, and adjusts the coordinates in the image of the plurality of second corner points to match the coordinates of the corners on the visual marker in the image. You can. For example, the corner detector may include the Harris corner detector described above.

일 실시예에 따르면, 자세 결정부(340)는 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표에 기초하여 카메라의 자세를 결정할 수 있다. 예를 들어, 자세 결정부(340)는 카메라의 자세를 결정하기 위한 PnP 알고리즘을 이용하여, 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 카메라의 자세를 결정할 수 있다. 이 경우, 자세 결정부(340)는, 상술된 바와 같이, 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하지 않는 코너 포인트를 제거한 후, 남은 코너 포인트 및/또는 좌표가 조정된 코너 포인트 각각의 가상 평면 상의 좌표 및 영상 내의 좌표를 PnP 알고리즘 상에 입력하여 카메라의 자세를 결정할 수 있다. 이 경우, PnP 알고리즘은 EPnP(Efficient Perspective-n-Point) 알고리즘을 포함할 수 있으나, 이에 한정되지 않고, 카메라의 자세 결정을 위한 적절한 알고리즘이 사용될 수 있다.According to one embodiment, the posture determination unit 340 may determine the posture of the camera based on the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image. For example, the posture determination unit 340 may use a PnP algorithm to determine the posture of the camera based on the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image. In this case, as described above, the posture determination unit 340 removes corner points that do not correspond to the coordinates of the corners on the visual marker in the image, and then creates a virtual plane for each of the remaining corner points and/or the corner points whose coordinates have been adjusted. The pose of the camera can be determined by inputting the coordinates of the image and the coordinates within the image into the PnP algorithm. In this case, the PnP algorithm may include, but is not limited to, the EPnP (Efficient Perspective-n-Point) algorithm, and an appropriate algorithm for determining the pose of the camera may be used.

도 3에서는 프로세서(220)의 구성을 각각의 기능별로 구분하여 설명하였으나, 반드시 물리적으로 구분되는 것을 의미하지 않는다. 예를 들어, 호모그래피 산출부(320)와 좌표 조정부(330)는 구분되어 상술되었으나, 이는 발명의 이해를 돕기 위한 것일 뿐이며, 프로세서(220)에 설치된 하나의 연산 장치에서 둘 이상의 기능을 수행할 수도 있다. 이와 같은 구성에 의해, 프로세서(220)는 비주얼 마커를 포함하는 영상으로부터 추출된 복수의 코너 포인트 중 부정확한 코너 포인트를 제거하고/제거하거나 코너 포인트의 좌표를 조정하여, 코너 포인트 인식에 대한 오차를 줄이고 카메라 자세 결정의 정밀도를 향상시킬 수 있다.In FIG. 3, the configuration of the processor 220 is described separately for each function, but this does not necessarily mean that they are physically separated. For example, the homography calculation unit 320 and the coordinate adjustment unit 330 are described separately, but this is only to aid understanding of the invention, and a single computing device installed in the processor 220 may perform more than one function. It may be possible. With this configuration, the processor 220 removes inaccurate corner points among a plurality of corner points extracted from an image including a visual marker and/or adjusts the coordinates of the corner points to reduce errors in corner point recognition. This can reduce and improve the precision of camera pose determination.

도 4는 본 개시의 일 실시예에 따라 프로세서(220)가 영상에 포함된 비주얼 마커(410)로부터 복수의 코너 포인트를 추출하는 예시를 나타내는 도면이다. 일 실시예에 따르면, 프로세서(220)는 비주얼 마커(410)를 포함하는 영상을 수신하는 경우, 비주얼 마커(410)로부터 복수의 제1 코너 포인트(420)를 추출할 수 있다. 이 경우, 복수의 제1 코너 포인트(420)는 비주얼 마커에 포함된 정사각형(즉, 비주얼 마커의 미리 정해진 포맷/규격에 의해 정해진 사각형)의 꼭짓점에 대응하는 4개의 가상 평면 상의 코너 포인트(420_1, 420_2, 420_3, 420_4)를 포함할 수 있다.FIG. 4 is a diagram illustrating an example in which the processor 220 extracts a plurality of corner points from the visual marker 410 included in an image according to an embodiment of the present disclosure. According to one embodiment, when receiving an image including a visual marker 410, the processor 220 may extract a plurality of first corner points 420 from the visual marker 410. In this case, the plurality of first corner points 420 are corner points (420_1, 420_1, 420_2, 420_3, 420_4).

일 실시예에 따르면, 프로세서(220)는 영상 내의 비주얼 마커(410)로부터 복수의 제1 코너 포인트(420)를 추출할 수 있는 미리 정해진 알고리즘을 이용하여, 복수의 제1 코너 포인트(420)를 추출할 수 있다. 추가적으로 또는 대안적으로, 프로세서(220)는 추출된 복수의 코너 포인트(예를 들어, 복수의 제2 코너 포인트, 복수의 제3 코너 포인트 등)로부터 복수의 제1 코너 포인트(420)를 결정할 수 있는 미리 정해진 알고리즘을 이용하여, 복수의 제1 코너 포인트(420)를 추출할 수 있다. 추가적으로 또는 대안적으로, 프로세서(220)는 영상에 포함된 비주얼 마커(410)와 동일하고, 컴퓨팅 장치에 미리 저장된 가상 평면 상의 비주얼 마커의 정보로부터 복수의 제1 코너 포인트(420)를 추출할 수 있다. 여기서, 복수의 제1 코너 포인트(420) 사이의 가상 평면 상의 거리는 비주얼 마커의 포맷에 의해 미리 정해질 수 있다. 즉, 프로세서(220)는 복수의 제1 코너 포인트(420)의 영상 내의 위치를 식별하고, 식별된 영상 내의 복수의 제1 코너 포인트(420)의 위치와 미리 정해진 복수의 제1 코너 포인트(420) 사이의 거리를 이용하여 복수의 제1 코너 포인트(420)의 영상 내의 좌표를 결정할 수 있다.According to one embodiment, the processor 220 creates a plurality of first corner points 420 using a predetermined algorithm that can extract the plurality of first corner points 420 from the visual marker 410 in the image. It can be extracted. Additionally or alternatively, the processor 220 may determine a plurality of first corner points 420 from the extracted plurality of corner points (e.g., a plurality of second corner points, a plurality of third corner points, etc.) A plurality of first corner points 420 can be extracted using a predetermined algorithm. Additionally or alternatively, the processor 220 may extract a plurality of first corner points 420 from information on the visual marker on the virtual plane that is the same as the visual marker 410 included in the image and is pre-stored in the computing device. there is. Here, the distance on the virtual plane between the plurality of first corner points 420 may be predetermined by the format of the visual marker. That is, the processor 220 identifies the positions of the plurality of first corner points 420 in the image, and the positions of the plurality of first corner points 420 in the identified image and the plurality of predetermined first corner points 420 ) can be used to determine the coordinates of the plurality of first corner points 420 in the image.

일 실시예에 따르면, 프로세서(220)는 복수의 제1 코너 포인트(420)의 가상 평면 상의 좌표 및 영상 내의 좌표를 이용하여 호모그래피를 생성할 수 있다. 여기서, 복수의 제1 코너 포인트(420)의 가상 평면 상의 좌표는 영상 내의 비주얼 마커를 가상 평면 상에 투영하여 결정된 임의의 좌표를 나타낼 수 있다. 즉, 복수의 제1 코너 포인트(420)의 가상 평면 상의 좌표는 영상 내의 복수의 제1 코너 포인트(420)의 위치 및 복수의 제1 코너 포인트(420) 사이의 거리 등에 비례하도록 임의로 결정될 수 있으나, 이에 한정되지 않는다.According to one embodiment, the processor 220 may generate homography using the coordinates of the plurality of first corner points 420 on a virtual plane and the coordinates in the image. Here, the coordinates on the virtual plane of the plurality of first corner points 420 may represent arbitrary coordinates determined by projecting the visual marker in the image onto the virtual plane. That is, the coordinates of the plurality of first corner points 420 on the virtual plane may be arbitrarily determined to be proportional to the positions of the plurality of first corner points 420 in the image and the distances between the plurality of first corner points 420, etc. , but is not limited to this.

도 5는 본 개시의 일 실시예에 따라 프로세서(220)가 복수의 제2 코너 포인트의 영상 내의 좌표(530)를 산출하는 예시를 나타내는 도면이다. 도시된 바와 같이, 프로세서(220)는 호모그래피(510) 및 복수의 제2 코너 포인트의 가상 평면 상의 좌표(520)를 이용하여 복수의 제2 코너 포인트의 영상 내의 좌표(530)를 산출할 수 있다. 예를 들어, 호모그래피(510)는 복수의 제2 코너 포인트가 추출된 비주얼 마커와 동일한 비주얼 마커의 복수의 제1 코너 포인트를 기초로 산출된 것일 수 있다.FIG. 5 is a diagram illustrating an example in which the processor 220 calculates coordinates 530 in an image of a plurality of second corner points according to an embodiment of the present disclosure. As shown, the processor 220 can calculate the coordinates 530 in the image of the plurality of second corner points using the homography 510 and the coordinates 520 on the virtual plane of the plurality of second corner points. there is. For example, the homography 510 may be calculated based on a plurality of first corner points of the same visual marker as the visual marker from which the plurality of second corner points are extracted.

일 실시예에 따르면, 프로세서(220)는 비주얼 마커로부터 복수의 제2 코너 포인트를 추출할 수 있다. 이 경우, 프로세서(220)는 복수의 제2 코너 포인트 각각의 가상 평면 상의 좌표(520)를 결정할 수 있다. 상술된 것과 마찬가지로, 복수의 제2 코너 포인트의 가상 평면 상의 좌표(520)는 영상 내의 비주얼 마커를 가상 평면 상에 투영하여 결정된 임의의 좌표를 나타낼 수 있다.According to one embodiment, the processor 220 may extract a plurality of second corner points from the visual marker. In this case, the processor 220 may determine the coordinates 520 of each of the plurality of second corner points on the virtual plane. Similar to what was described above, the coordinates 520 on the virtual plane of the plurality of second corner points may represent arbitrary coordinates determined by projecting visual markers in the image onto the virtual plane.

일 실시예에 따르면, 복수의 제2 코너 포인트의 가상 평면 상의 좌표(520)는 3차원 좌표값을 나타낼 수 있으며, 복수의 제2 코너 포인트의 영상 내의 좌표(530)는 2차원 픽셀 좌표값을 나타낼 수 있다. 즉, 호모그래피(510)는 3차원의 코너 포인트의 가상 평면 상의 좌표(520)를 2차원 코너 포인트의 영상 내의 좌표(530)로 변환하거나, 2차원 코너 포인트의 영상 내의 좌표(530)를 3차원의 코너 포인트의 가상 평면 상의 좌표(520)로 변환하기 위한 행렬을 포함할 수 있다. 이와 같은 구성에 의해, 프로세서(220)는 비주얼 마커로부터 추출된 복수의 제2 코너 포인트 각각의 영상 내의 상대적인 거리를 알지 못하는 경우에도, 호모그래피를 이용하여 복수의 제2 코너 포인트의 영상 내의 좌표(530)를 산출하여 카메라 자세 결정에 사용할 수 있다.According to one embodiment, the coordinates 520 on the virtual plane of the plurality of second corner points may represent three-dimensional coordinate values, and the coordinates 530 in the image of the plurality of second corner points may represent two-dimensional pixel coordinate values. It can be expressed. In other words, the homography 510 converts the coordinates 520 on the virtual plane of the 3D corner point into the coordinates 530 in the image of the 2D corner point, or converts the coordinates 530 in the image of the 2D corner point into 3 It may include a matrix for converting dimensional corner points into coordinates 520 on a virtual plane. With this configuration, even when the processor 220 does not know the relative distance within the image of each of the plurality of second corner points extracted from the visual marker, the coordinates ( 530) can be calculated and used to determine the camera pose.

도 6은 본 개시의 일 실시예에 따라 영상 내의 비주얼 마커 상에 표시된 코너 포인트의 위치를 나타내는 예시적인 도면이다. 상술된 바와 같이, 프로세서(220)는 호모그래피 및 코너 포인트(예를 들어, 복수의 제1 코너 포인트, 제2 코너 포인트, 제3 코너 포인트 등)의 가상 평면 상의 좌표를 이용하여, 코너 포인트의 영상 내의 좌표를 산출할 수 있다. 도시된 바와 같이, 코너 포인트의 영상 내의 좌표를 기초로, 각각의 코너 포인트는 영상 내의 비주얼 마커의 특정 포인트와 대응될 수 있다.FIG. 6 is an exemplary diagram showing the location of a corner point displayed on a visual marker in an image according to an embodiment of the present disclosure. As described above, the processor 220 uses homography and coordinates on a virtual plane of corner points (e.g., a plurality of first corner points, second corner points, third corner points, etc.) to determine the number of corner points. Coordinates within the image can be calculated. As shown, based on the coordinates of the corner point in the image, each corner point may correspond to a specific point of the visual marker in the image.

일 실시예에 따르면, 프로세서(220)는 비주얼 마커로부터 제1 포인트(610) 및 제2 포인트(620)를 포함하는 복수의 코너 포인트를 추출할 수 있다. 그리고 나서, 프로세서(220)는 호모그래피를 이용하여, 제1 포인트(610)에 대응하는 영상 내의 제3 포인트(630)를 추출하고, 제2 포인트(620)에 대응하는 영상 내의 제4 포인트(640)를 추출할 수 있다. 예를 들어, 제3 포인트(630) 및 제4 포인트(640)는 영상 내의 비주얼 마커의 코너와 대응되지 않을 수 있다. 이 경우, 제3 포인트(630) 및 제4 포인트(640)는 카메라의 자세를 결정하는데 사용되지 않고, 제거될 수 있다.According to one embodiment, the processor 220 may extract a plurality of corner points including the first point 610 and the second point 620 from the visual marker. Then, the processor 220 uses homography to extract a third point 630 in the image corresponding to the first point 610, and a fourth point in the image corresponding to the second point 620 ( 640) can be extracted. For example, the third point 630 and the fourth point 640 may not correspond to the corner of the visual marker in the image. In this case, the third point 630 and fourth point 640 are not used to determine the pose of the camera and can be removed.

일 실시예에 따르면, 프로세서(220)는 코너 디텍터를 이용하여, 영상 내의 비주얼 마커 상의 코너 및/또는 코너의 좌표를 추출할 수 있다. 예를 들어, 프로세서(220)는 비주얼 마커에서 제1 색상의 격자와 제2 색상의 격자가 교차하는 지점을 비주얼 마커 상의 코너로서 결정하고, 해당 코너의 좌표를 추출할 수 있다. 그리고 나서, 프로세서(220)는 영상 내의 비주얼 마커 상의 코너의 좌표 중 적어도 하나와 제3 포인트(630) 및/또는 제4 포인트(640)의 좌표가 대응되는지 여부를 판정할 수 있다. 좌표가 대응되지 않는 경우, 제3 포인트(630) 및/또는 제4 포인트(640)는 카메라의 자세를 결정하는데 사용되지 않고, 제거될 수 있다. 이와 같은 구성에 의해, 프로세서(220)는 영상 내의 비주얼 마커의 코너와 대응되지 않는 코너 포인트를 제거함으로써, 카메라 자세 결정의 정확도를 향상시킬 수 있다.According to one embodiment, the processor 220 may extract the corner and/or the coordinates of the corner on the visual marker in the image using a corner detector. For example, the processor 220 may determine a point where the grid of the first color and the grid of the second color intersect in the visual marker as a corner on the visual marker, and extract the coordinates of the corner. Then, the processor 220 may determine whether at least one of the coordinates of the corner on the visual marker in the image corresponds to the coordinates of the third point 630 and/or the fourth point 640. If the coordinates do not correspond, the third point 630 and/or the fourth point 640 are not used to determine the pose of the camera and may be removed. With this configuration, the processor 220 can improve the accuracy of camera pose determination by removing corner points that do not correspond to the corners of the visual marker in the image.

도 7은 본 개시의 일 실시예에 따라 비주얼 마커(710)의 코너 포인트(720)의 영상 내의 좌표가 조정되는 예시를 나타내는 도면이다. 일 실시예에 따르면, 코너 포인트(720)의 영상 내의 좌표는 영상 내의 비주얼 마커 상의 코너의 좌표와 일치하도록 조정될 수 있다. 다시 말해, 코너 포인트(720)의 영상 내의 좌표에 대한 보정 또는 조정(refinement)이 수행될 수 있다.FIG. 7 is a diagram illustrating an example in which coordinates in an image of a corner point 720 of a visual marker 710 are adjusted according to an embodiment of the present disclosure. According to one embodiment, the coordinates of the corner point 720 in the image may be adjusted to match the coordinates of the corner on the visual marker in the image. In other words, correction or refinement may be performed on the coordinates of the corner point 720 in the image.

상술된 바와 같이, 프로세서는 비주얼 마커(710)로부터 코너 포인트(720)를 추출하고, 추출된 코너 포인트(720)의 가상 평면 상의 좌표를 결정할 수 있다. 또한, 프로세서는 산출된 호모그래피 및 코너 포인트(720)의 가상 평면 상의 좌표를 기초로 코너 포인트(720)의 영상 내의 좌표를 결정할 수 있다. 이 경우, 코너 포인트(720)의 영상 내의 좌표는 비주얼 마커의 코너의 좌표와 일치하지 않을 수 있다.As described above, the processor may extract the corner point 720 from the visual marker 710 and determine the coordinates of the extracted corner point 720 on a virtual plane. Additionally, the processor may determine the coordinates of the corner point 720 in the image based on the calculated homography and the coordinates of the corner point 720 on the virtual plane. In this case, the coordinates of the corner point 720 in the image may not match the coordinates of the corner of the visual marker.

도시된 예에서, 제1 포인트(730)는 가상 평면 상의 코너 포인트(720)와 대응하는 포인트를 나타낼 수 있다. 또한, 제2 포인트(740)는 영상 내의 비주얼 마커의 코너에 대응하는 포인트를 나타낼 수 있다. 예를 들어, 제1 포인트(730)의 좌표는 코너 포인트(720) 및 호모그래피를 이용하여 결정될 수 있으며, 제2 포인트(740)의 좌표는 코너 디텍터에 의해 추출될 수 있다. 여기서, 제1 포인트(730)와 제2 포인트(740)는 비주얼 마커 상의 동일한 코너를 나타낼 수 있으나, 제1 포인트(730)의 좌표와 제2 포인트(740)의 좌표는 일치하지 않을 수 있다.In the illustrated example, the first point 730 may represent a point corresponding to the corner point 720 on the virtual plane. Additionally, the second point 740 may represent a point corresponding to the corner of the visual marker in the image. For example, the coordinates of the first point 730 may be determined using the corner point 720 and homography, and the coordinates of the second point 740 may be extracted using a corner detector. Here, the first point 730 and the second point 740 may represent the same corner on the visual marker, but the coordinates of the first point 730 and the coordinates of the second point 740 may not match.

일 실시예에 따르면, 프로세서는 제1 코너 포인트(730)의 좌표를 영상 내의 비주얼 마커 상의 제2 포인트(740)의 좌표와 일치하도록, 제1 포인트(730)의 영상 내의 좌표를 조정할 수 있다. 이 경우, 포인트의 좌표를 조정하기 위한 미리 정해진 알고리즘이 사용될 수 있다. 이와 같은 구성에 의해, 프로세서는 조정된 좌표를 이용하여 카메라의 자세를 결정함으로써, 카메라 자세 결정의 부정확성을 감소시킬 수 있다.According to one embodiment, the processor may adjust the coordinates of the first point 730 in the image so that the coordinates of the first corner point 730 match the coordinates of the second point 740 on the visual marker in the image. In this case, a predetermined algorithm for adjusting the coordinates of the point can be used. With this configuration, the processor can determine the pose of the camera using the adjusted coordinates, thereby reducing inaccuracy in determining the camera pose.

도 8은 본 개시의 일 실시예에 따라 프로세서(220)가 카메라의 자세(830)를 결정하는 예시를 나타내는 도면이다. 도시된 바와 같이, 프로세서(220)는 복수의 제2 코너 포인트의 가상 평면 상의 좌표(810) 및 복수의 제2 코너 포인트의 영상 내의 좌표(820)를 이용하여 카메라의 자세(830)를 결정할 수 있다.FIG. 8 is a diagram illustrating an example in which the processor 220 determines the posture 830 of a camera according to an embodiment of the present disclosure. As shown, the processor 220 may determine the pose 830 of the camera using the coordinates 810 on the virtual plane of the plurality of second corner points and the coordinates 820 in the image of the plurality of second corner points. there is.

상술된 바와 같이, 프로세서(220)는 PnP 알고리즘을 이용하여, 복수의 제2 코너 포인트의 가상 평면 상의 좌표(810) 및 영상 내의 좌표(820)를 기초로 카메라의 자세(830)를 측정하거나 결정할 수 있다. 예를 들어, PnP 알고리즘은 가상 평면 상의 좌표계와 카메라 좌표계 간의 회전 및 이동 변환 관계를 계산하기 위한 알고리즘일 수 있다. 즉, 가상 평면 상의 좌표(810)는 3차원 좌표에 해당할 수 있으며, 영상 내의 좌표(820)는 카메라 영상 내 2차원 픽셀 좌표에 해당할 수 있다.As described above, the processor 220 uses a PnP algorithm to measure or determine the pose 830 of the camera based on the coordinates 810 on the virtual plane of the plurality of second corner points and the coordinates 820 in the image. You can. For example, the PnP algorithm may be an algorithm for calculating rotation and translation transformation relationships between a coordinate system on a virtual plane and a camera coordinate system. That is, coordinates 810 on the virtual plane may correspond to three-dimensional coordinates, and coordinates 820 in the image may correspond to two-dimensional pixel coordinates in the camera image.

일 실시예에 따르면, PnP 알고리즘을 이용하여 결정되는 카메라의 자세(830)는 복수의 제2 코너 포인트의 가상 평면 상의 좌표(810) 및 영상 내의 좌표 사이의 변환 관계를 나타내는 회전 및 이동 변환 행렬을 포함할 수 있다. 이 경우, PnP 알고리즘에 카메라의 내부 파라미터가 입력될 수 있다. 예를 들어, 카메라의 내부 파라미터는 카메라의 초점 거리, 지면에서의 높이 등을 포함할 수 있다. 또한, 회전 및 이동 변환 행렬, 카메라의 내부 파라미터 등은 카메라의 6 자유도(6 Degrees of Freedom)를 결정하기 위해 사용될 수 있다. 즉, 프로세서(220)는 복수의 제2 코너 포인트의 가상 평면 상의 좌표(810) 및 복수의 제2 코너 포인트의 영상 내의 좌표(820)를 이용하여 카메라의 6 자유도를 측정하기 위한 카메라의 자세(830)를 결정할 수 있다.According to one embodiment, the pose 830 of the camera determined using the PnP algorithm includes a rotation and movement transformation matrix representing the transformation relationship between the coordinates 810 on the virtual plane of the plurality of second corner points and the coordinates in the image. It can be included. In this case, the camera's internal parameters can be input to the PnP algorithm. For example, the internal parameters of the camera may include the camera's focal length, height above the ground, etc. Additionally, rotation and translation transformation matrices, internal parameters of the camera, etc. can be used to determine the camera's 6 Degrees of Freedom. That is, the processor 220 uses the coordinates 810 on the virtual plane of the plurality of second corner points and the coordinates 820 in the image of the plurality of second corner points to measure the camera's 6 degrees of freedom (position) 830) can be determined.

도 9는 본 개시의 일 실시예에 따라 비주얼 마커(910)가 격자 지도(920) 상에 정렬되는 예시를 나타내는 도면이다. 일 실시예에 따르면, 비주얼 마커(910)는, 적어도 4개의 기준 코너 포인트를 포함하는 제1 비주얼 마커(910_1)와 적어도 1개의 추가 코너 포인트를 포함하는 제2 비주얼 마커(910_2)를 포함할 수 있다. 도시된 예에서, 제1 비주얼 마커(910_1)는 미리 정해진 규격/포맷에 의해 생성된 사각형의 마커를 나타낼 수 있으며, 제2 비주얼 마커(910_2)는 체커 보드(checker board) 형태로 구성될 수 있다. 상술된 바와 같이, 비주얼 마커(910)가 제1 비주얼 마커(910_1) 및 제2 비주얼 마커(910_2)를 포함하도록 구성되는 경우, 제1 비주얼 마커(910_1)만을 사용하는 경우보다 더 많은 코너 포인트(제1 코너 포인트, 제2 코너 포인트, 제3 코너 포인트 등)가 추출될 수 있다. 이와 같이, 더 많은 코너 포인트를 추출하여 카메라 자세 결정에 사용하는 경우, 카메라 자세 결정의 정확도를 향상시킬 수 있다.FIG. 9 is a diagram illustrating an example in which visual markers 910 are aligned on a grid map 920 according to an embodiment of the present disclosure. According to one embodiment, the visual marker 910 may include a first visual marker 910_1 including at least four reference corner points and a second visual marker 910_2 including at least one additional corner point. there is. In the illustrated example, the first visual marker 910_1 may represent a square marker created according to a predetermined standard/format, and the second visual marker 910_2 may be configured in the form of a checker board. . As described above, when the visual marker 910 is configured to include the first visual marker 910_1 and the second visual marker 910_2, there are more corner points ( first corner point, second corner point, third corner point, etc.) may be extracted. In this way, when more corner points are extracted and used to determine the camera pose, the accuracy of camera pose determination can be improved.

일 실시예에 따르면, 격자 지도(920)는 미리 정해진 크기의 격자를 포함할 수 있다. 예를 들어, 격자는 가로 및 세로의 길이가 미리 정해진 정사각형 또는 직사각형 형태로 구성될 수 있다. 이 경우, 격자 지도(920)의 격자의 크기와 제1 비주얼 마커(910_1) 및 제2 비주얼 마커(910_2)의 격자의 크기는 동일하게 생성될 수 있다. 즉, 제1 비주얼 마커(910_1) 및/또는 제2 비주얼 마커(910_2)를 구성하는 제1 색상의 격자 및 제2 색상의 격자는 격자 지도(920) 상의 격자의 미리 정해진 크기와 동일한 크기로 생성될 수 있다.According to one embodiment, the grid map 920 may include a grid of a predetermined size. For example, the grid may be composed of a square or rectangular shape with predetermined horizontal and vertical lengths. In this case, the grid size of the grid map 920 and the grid sizes of the first visual marker 910_1 and the second visual marker 910_2 may be created to be the same. That is, the first color grid and the second color grid constituting the first visual marker 910_1 and/or the second visual marker 910_2 are created with the same size as the predetermined size of the grid on the grid map 920. It can be.

일 실시예에 따르면, 비주얼 마커(910)와 격자 지도(920)를 결합하는 경우, 미리 정해진 크기의 격자를 포함하는 격자 지도(920) 상에 정렬된 비주얼 마커(930)가 생성될 수 있다. 여기서, 프로세서는 정렬된 비주얼 마커(930)로부터 상술된 바와 동일하게 복수의 제1 코너 포인트를 추출하고, 호모그래피를 산출하고, 복수의 제2 코너 포인트의 좌표를 결정하고, 카메라의 자세를 결정할 수 있다. 이 경우, 프로세서는 격자 지도 상에 정렬된 비주얼 마커(930)를 이용함으로써, 비주얼 마커(930)에 포함된 코너 포인트의 위치를 미리 식별하여 카메라 자세를 효과적으로 측정하거나 결정할 수 있다.According to one embodiment, when the visual marker 910 and the grid map 920 are combined, the visual marker 930 aligned on the grid map 920 including a grid of a predetermined size may be generated. Here, the processor extracts a plurality of first corner points from the aligned visual marker 930 as described above, calculates a homography, determines the coordinates of the plurality of second corner points, and determines the pose of the camera. You can. In this case, the processor can effectively measure or determine the camera posture by using the visual marker 930 aligned on the grid map to identify the location of the corner point included in the visual marker 930 in advance.

도 9에서는 제1 비주얼 마커(910_1)와 제2 비주얼 마커(910_2)가 연결되어 있는 것으로 도시되었으나, 이에 한정되지 않으며, 제1 비주얼 마커(910_1)와 제2 비주얼 마커(910_2)는 이격되어 표시될 수 있다. 또한, 도 9에서는 격자 지도(920) 상에 정렬된 비주얼 마커(930) 및 모든 격자가 표시된 것으로 도시되었으나, 이에 한정되지 않으며, 격자 지도(920)의 격자들이 모두 표시되거나 그 중 적어도 일부(예를 들어, 격자 지도의 외곽 부분)만이 표시될 수도 있다.In Figure 9, the first visual marker (910_1) and the second visual marker (910_2) are shown as connected, but this is not limited, and the first visual marker (910_1) and the second visual marker (910_2) are displayed spaced apart. It can be. In addition, in FIG. 9, the visual marker 930 and all grids aligned on the grid map 920 are shown as displayed, but the present invention is not limited thereto, and all grids of the grid map 920 are displayed or at least some of them (e.g. For example, only the outer portion of a grid map) may be displayed.

도 10은 본 개시의 일 실시예에 따라 비주얼 마커(1020)가 활용되는 예시를 나타내는 도면이다. 일 실시예에 따르면, 컴퓨팅 장치(1010)는 내장된 카메라에 의해 촬영된 비주얼 마커(1020)의 영상으로부터 코너 포인트를 추출하고, 카메라의 자세를 측정하거나 결정할 수 있는 장치일 수 있다. 예를 들어, 컴퓨팅 장치(1010)는, 카메라에 의해 촬영된 영상을 기초로 자율 주행이 가능한 로봇일 수 있다. 또한, 비주얼 마커(1020)는 컴퓨팅 장치(1010)에 충전을 위한 어댑터(1030)의 위치 및 방향을 안내하기 위한 기준 표시자일 수 있으며, 어댑터(1030)와 인접하여 표시될 수 있다.FIG. 10 is a diagram illustrating an example in which the visual marker 1020 is utilized according to an embodiment of the present disclosure. According to one embodiment, the computing device 1010 may be a device that extracts a corner point from an image of the visual marker 1020 captured by a built-in camera and measures or determines the posture of the camera. For example, the computing device 1010 may be a robot capable of autonomous driving based on images captured by a camera. Additionally, the visual marker 1020 may be a reference indicator for guiding the location and direction of the adapter 1030 for charging the computing device 1010, and may be displayed adjacent to the adapter 1030.

도시된 바와 같이, 컴퓨팅 장치(1010)는, 충전을 위한 어댑터(1030)에 접근하여 컴퓨팅 장치(1010)에 연결된 충전용 플러그를 어댑터(1030)에 결합하기 위해, 비주얼 마커(1020)를 포함하는 영상을 촬영하고, 수신할 수 있다. 그리고 나서, 컴퓨팅 장치(1010)는 수신된 영상으로부터 비주얼 마커(1020) 상의 복수의 제1 코너 포인트를 추출할 수 있다. 또한, 컴퓨팅 장치(1010)는 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 호모그래피를 산출하고, 호모그래피를 이용하여 복수의 제2 코너 포인트의 가상 평면 상의 좌표에 대응하는 영상 내의 좌표를 결정할 수 있다. 컴퓨팅 장치(1010)는 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표에 기초하여 카메라의 자세를 결정할 수 있다.As shown, the computing device 1010 includes a visual marker 1020 to access the adapter 1030 for charging and couple the charging plug connected to the computing device 1010 to the adapter 1030. You can shoot and receive video. Then, the computing device 1010 may extract a plurality of first corner points on the visual marker 1020 from the received image. In addition, the computing device 1010 calculates homography based on the coordinates on the virtual plane of the plurality of first corner points and the coordinates in the image, and uses the homography to correspond to the coordinates on the virtual plane of the plurality of second corner points. The coordinates within the image can be determined. The computing device 1010 may determine the pose of the camera based on the coordinates of the plurality of second corner points on the virtual plane and the coordinates in the image.

일 실시예에 따르면, 컴퓨팅 장치(1010)는 결정된 카메라의 자세를 기초로, 충전용 플러그를 어댑터(1030)에 결합하기 위한 이동 및 회전 동작을 결정할 수 있다. 예를 들어, 컴퓨팅 장치(1010)는 충전용 플러그를 어댑터(1030)에 결합하기 위해, 카메라의 자세 정보 중 이동 변환 행렬에 따라 컴퓨팅 장치(1010)에 연결된 충전용 플러그를 어댑터(1030)를 향해 이동시키고, 카메라의 자세 정보 중 회전 변환 행렬에 따라 충전용 플러그의 기울기 또는 회전 각도를 조절하거나 위치를 수정할 수 있다. 그리고 나서, 컴퓨팅 장치(1010)는 결정된 동작을 기초로 충전용 플러그를 어댑터(1030)와 결합하고, 충전을 수행할 수 있다. 도 10에서는 비주얼 마커(1020)가 도 9에서 상술된 제1 비주얼 마커인 것으로 도시되었으나, 이에 한정되지 않으며, 비주얼 마커는 제1 비주얼 마커 및 제2 비주얼 마커를 포함하도록 구성될 수 있다.According to one embodiment, the computing device 1010 may determine movement and rotation movements for coupling the charging plug to the adapter 1030 based on the determined posture of the camera. For example, in order to couple the charging plug to the adapter 1030, the computing device 1010 moves the charging plug connected to the computing device 1010 toward the adapter 1030 according to a movement transformation matrix among the posture information of the camera. You can move it, adjust the tilt or rotation angle of the charging plug, or modify its position according to the rotation transformation matrix among the camera's posture information. Then, the computing device 1010 may combine the charging plug with the adapter 1030 based on the determined operation and perform charging. In FIG. 10 , the visual marker 1020 is shown as the first visual marker described above in FIG. 9 , but the present invention is not limited thereto, and the visual marker may be configured to include a first visual marker and a second visual marker.

도 11은 본 개시의 일 실시예에 따른 카메라 자세 결정 방법(1100)의 예시를 나타내는 흐름도이다. 일 실시예에 따르면, 카메라 자세 결정 방법(1100)은 정보 처리 시스템(예를 들어, 컴퓨팅 장치의 적어도 하나의 프로세서)에 의해 수행될 수 있다. 카메라 자세 결정 방법(1100)은 프로세서가 비주얼 마커를 포함하는 영상으로부터 비주얼 마커 상의 복수의 제1 코너 포인트를 추출함으로써 개시될 수 있다(S1110). 예를 들어, 복수의 제1 코너 포인트는 적어도 4개의 코너 포인트를 포함할 수 있다.FIG. 11 is a flowchart illustrating an example of a method 1100 for determining a camera pose according to an embodiment of the present disclosure. According to one embodiment, the camera pose determination method 1100 may be performed by an information processing system (eg, at least one processor of a computing device). The camera pose determination method 1100 may be initiated by the processor extracting a plurality of first corner points on the visual marker from an image including the visual marker (S1110). For example, the plurality of first corner points may include at least four corner points.

프로세서는 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 호모그래피를 산출할 수 있다(S1120). 또한, 프로세서는 호모그래피를 이용하여 복수의 제2 코너 포인트의 가상 평면 상의 좌표에 대응하는 영상 내의 좌표를 결정할 수 있다(S1130). 예를 들어, 복수의 제2 코너 포인트는 적어도 5개의 코너 포인트를 포함할 수 있다. 또한, 복수의 제2 코너 포인트는 복수의 제1 코너 포인트를 포함할 수도 있다.The processor may calculate homography based on the coordinates of the plurality of first corner points on the virtual plane and the coordinates in the image (S1120). Additionally, the processor may use homography to determine coordinates in the image corresponding to coordinates on the virtual plane of the plurality of second corner points (S1130). For example, the plurality of second corner points may include at least 5 corner points. Additionally, the plurality of second corner points may include a plurality of first corner points.

프로세서는 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표에 기초하여 카메라의 자세를 결정할 수 있다(S1140). 일 실시예에 따르면, 프로세서는 PnP 알고리즘을 이용하여, 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표를 기초로 카메라의 자세를 결정할 수 있다. 여기서, 카메라의 자세는 복수의 제2 코너 포인트의 가상 평면 상의 좌표 및 영상 내의 좌표 사이의 변환 관계를 나타내는 회전 및 이동 변환 행렬 및/또는 카메라의 내부 파라미터를 포함할 수 있다.The processor may determine the pose of the camera based on the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image (S1140). According to one embodiment, the processor may use a PnP algorithm to determine the pose of the camera based on the coordinates on the virtual plane of the plurality of second corner points and the coordinates in the image. Here, the pose of the camera may include a rotation and movement transformation matrix representing a transformation relationship between coordinates on a virtual plane of a plurality of second corner points and coordinates in the image and/or internal parameters of the camera.

상술한 카메라 자세 결정 방법은 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램으로 제공될 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The above-described camera pose determination method may be provided as a computer program stored in a computer-readable recording medium for execution on a computer. The medium may continuously store a computer-executable program, or may temporarily store it for execution or download. In addition, the medium may be a variety of recording or storage means in the form of a single or several pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And there may be something configured to store program instructions, including ROM, RAM, flash memory, etc. Additionally, examples of other media include recording or storage media managed by app stores that distribute applications, sites or servers that supply or distribute various other software, etc.

본 개시의 방법, 동작 또는 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 통상의 기술자들은 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 대체를 명확하게 설명하기 위해, 다양한 예시적인 구성요소들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 요구사항들에 따라 달라진다. 통상의 기술자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안 된다.The methods, operations, or techniques of this disclosure may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those skilled in the art will understand that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented in electronic hardware, computer software, or combinations of both. To clearly illustrate this interchange of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and design requirements imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementations should not be interpreted as causing a departure from the scope of the present disclosure.

하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들(digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들(programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들(field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본 개시에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다.In a hardware implementation, the processing units used to perform the techniques may include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs). ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, and other electronic units designed to perform the functions described in this disclosure. , a computer, or a combination thereof.

따라서, 본 개시와 연계하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 구성의 조합으로서 구현될 수도 있다.Accordingly, the various illustrative logical blocks, modules, and circuits described in connection with this disclosure may be general-purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or It may be implemented or performed as any combination of those designed to perform the functions described in. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other configuration.

펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read-only memory; ROM), 비휘발성 RAM(non-volatile random access memory; NVRAM), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable PROM), 플래시 메모리, 컴팩트 디스크(compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로서 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본 개시에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.For firmware and/or software implementations, techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), and PROM ( on computer-readable media such as programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage devices, etc. It may also be implemented as stored instructions. Instructions may be executable by one or more processors and may cause the processor(s) to perform certain aspects of the functionality described in this disclosure.

이상 설명된 실시예들이 하나 이상의 독립형 컴퓨터 시스템에서 현재 개시된 주제의 양태들을 활용하는 것으로 기술되었으나, 본 개시는 이에 한정되지 않고, 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 본 개시에서 주제의 양상들은 복수의 프로세싱 칩들이나 장치들에서 구현될 수도 있고, 스토리지는 복수의 장치들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 장치들은 PC들, 네트워크 서버들, 및 휴대용 장치들을 포함할 수도 있다.Although the above-described embodiments have been described as utilizing aspects of the presently disclosed subject matter in one or more standalone computer systems, the disclosure is not limited thereto and may also be implemented in conjunction with any computing environment, such as a network or distributed computing environment. . Furthermore, aspects of the subject matter of this disclosure may be implemented in multiple processing chips or devices, and storage may be similarly effected across the multiple devices. These devices may include PCs, network servers, and portable devices.

본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 개시의 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present disclosure has been described in relation to some embodiments in this specification, various modifications and changes may be made without departing from the scope of the present disclosure as can be understood by those skilled in the art. Additionally, such modifications and changes should be considered to fall within the scope of the claims appended hereto.

110: 컴퓨팅 장치
112: 제1 동작
114: 제2 동작
116: 제3 동작
118: 제4 동작
120: 카메라
130: 영상
140: 비주얼 마커
110: computing device
112: first movement
114: Second operation
116: Third movement
118: Fourth movement
120: camera
130: Video
140: Visual marker

Claims (20)

적어도 하나의 프로세서에 의해 실행되는 카메라 자세 결정 방법에 있어서,
비주얼 마커(visual marker)를 포함하는 영상으로부터 상기 비주얼 마커 상의 복수의 제1 코너 포인트를 추출하는 단계;
상기 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 상기 영상 내의 좌표를 기초로 호모그래피(homography)를 산출하는 단계;
상기 호모그래피를 이용하여 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표에 대응하는 상기 영상 내의 좌표를 결정하는 단계; 및
상기 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표 및 상기 영상 내의 좌표에 기초하여 카메라의 자세를 결정하는 단계
를 포함하고,
상기 비주얼 마커는 특정 위치 또는 특정 영역에 위치한 대상 또는 목적물을 안내하거나 지시하기 위한 사전 결정된 패턴을 포함하고,
상기 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표 및 상기 영상 내의 좌표에 기초하여 카메라의 자세를 결정하는 단계는,
PnP(Perspective n-Point) 알고리즘을 이용하여, 상기 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표 및 상기 영상 내의 좌표를 기초로 상기 카메라의 자세를 결정하는 단계
를 포함하고,
상기 복수의 제1 코너 포인트는 적어도 4개의 코너 포인트를 포함하며,
상기 복수의 제2 코너 포인트는 적어도 5개의 코너 포인트를 포함하는, 카메라 자세 결정 방법.
A method for determining a camera pose executed by at least one processor, comprising:
extracting a plurality of first corner points on the visual marker from an image including the visual marker;
calculating homography based on coordinates of the plurality of first corner points on a virtual plane and coordinates within the image;
determining coordinates in the image corresponding to coordinates on the virtual plane of a plurality of second corner points using the homography; and
Determining the pose of the camera based on the coordinates of the plurality of second corner points on the virtual plane and the coordinates in the image
Including,
The visual marker includes a predetermined pattern for guiding or indicating an object or object located in a specific location or specific area,
Determining the pose of the camera based on the coordinates of the plurality of second corner points on the virtual plane and the coordinates in the image includes:
Determining the posture of the camera based on the coordinates of the plurality of second corner points on the virtual plane and the coordinates in the image using a Perspective n-Point (PnP) algorithm.
Including,
The plurality of first corner points include at least four corner points,
The method of determining a camera pose, wherein the plurality of second corner points include at least five corner points.
제1항에 있어서,
상기 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 상기 영상 내의 좌표를 기초로 호모그래피를 산출하는 단계는,
상기 복수의 제1 코너 포인트의 상기 가상 평면 상의 좌표를 상기 복수의 제1 코너 포인트의 상기 영상 내의 좌표로 변환하기 위한 행렬(matrix)을 상기 호모그래피로서 산출하는 단계
를 포함하는, 카메라 자세 결정 방법.
According to paragraph 1,
The step of calculating homography based on coordinates on a virtual plane of the plurality of first corner points and coordinates in the image includes:
Calculating a matrix for converting coordinates of the plurality of first corner points on the virtual plane into coordinates in the image of the plurality of first corner points as the homography.
Including, a method for determining a camera pose.
삭제delete 제1항에 있어서,
상기 카메라의 자세는, 상기 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표 및 상기 영상 내의 좌표 사이의 변환 관계를 나타내는 회전 및 이동 변환 행렬을 포함하는, 카메라 자세 결정 방법.
According to paragraph 1,
The pose of the camera includes a rotation and movement transformation matrix representing a transformation relationship between coordinates of the plurality of second corner points on the virtual plane and coordinates in the image.
제1항에 있어서,
상기 호모그래피를 이용하여 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표에 대응하는 상기 영상 내의 좌표를 결정하는 단계는,
상기 호모그래피를 이용하여 복수의 제3 코너 포인트의 상기 가상 평면 상의 좌표에 대응하는 상기 영상 내의 좌표를 결정하는 단계;
상기 복수의 제3 코너 포인트의 상기 영상 내의 좌표가 상기 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하는지 여부를 결정하는 단계; 및
상기 복수의 제3 코너 포인트 중 상기 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하지 않는 코너 포인트를 제거하여, 상기 복수의 제2 코너 포인트의 상기 영상 내의 좌표를 결정하는 단계
를 포함하는, 카메라 자세 결정 방법.
According to paragraph 1,
Determining coordinates in the image corresponding to coordinates on the virtual plane of a plurality of second corner points using the homography includes:
determining coordinates in the image corresponding to coordinates on the virtual plane of a plurality of third corner points using the homography;
determining whether coordinates of the plurality of third corner points in the image correspond to coordinates of a corner on a visual marker in the image; and
Determining the coordinates of the plurality of second corner points in the image by removing corner points that do not correspond to the coordinates of a corner on a visual marker in the image among the plurality of third corner points.
Including, a method for determining a camera pose.
제5항에 있어서,
상기 복수의 제3 코너 포인트의 상기 영상 내의 좌표가 상기 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하는지 여부를 결정하는 단계는,
코너 디텍터(corner detector)를 이용하여, 상기 영상 내의 비주얼 마커 상의 코너의 좌표를 추출하는 단계; 및
상기 복수의 제3 코너 포인트의 상기 영상 내의 좌표가 상기 영상 내의 비주얼 마커 상의 코너의 좌표와 대응하는지 여부를 결정하는 단계
를 포함하는, 카메라 자세 결정 방법.
According to clause 5,
The step of determining whether the coordinates of the plurality of third corner points in the image correspond to the coordinates of a corner on a visual marker in the image,
extracting the coordinates of a corner on a visual marker in the image using a corner detector; and
Determining whether coordinates of the plurality of third corner points in the image correspond to coordinates of a corner on a visual marker in the image
Including, a method for determining a camera pose.
제1항에 있어서,
상기 복수의 제2 코너 포인트의 상기 영상 내의 좌표를 상기 영상 내의 비주얼 마커 상의 코너의 좌표와 일치하도록, 상기 복수의 제2 코너 포인트의 상기 영상 내의 좌표를 조정하는 단계
를 더 포함하는, 카메라 자세 결정 방법.
According to paragraph 1,
Adjusting the coordinates of the plurality of second corner points in the image so that the coordinates of the plurality of second corner points in the image match the coordinates of a corner on a visual marker in the image.
A method for determining a camera pose, further comprising:
제7항에 있어서,
상기 복수의 제2 코너 포인트의 상기 영상 내의 좌표를 상기 영상 내의 비주얼 마커 상의 코너의 좌표와 일치하도록, 상기 복수의 제2 코너 포인트의 상기 영상 내의 좌표를 조정하는 단계는,
코너 디텍터를 이용하여, 상기 영상 내의 비주얼 마커 상의 코너의 좌표를 추출하는 단계; 및
상기 영상 내의 상기 비주얼 마커 상의 코너의 좌표와 일치하도록, 상기 복수의 제2 코너 포인트의 상기 영상 내의 좌표를 조정하는 단계
를 포함하는, 카메라 자세 결정 방법.
In clause 7,
Adjusting the coordinates of the plurality of second corner points in the image so that the coordinates of the plurality of second corner points in the image match the coordinates of a corner on a visual marker in the image, comprising:
extracting the coordinates of a corner on a visual marker in the image using a corner detector; and
Adjusting coordinates of the plurality of second corner points in the image to match the coordinates of corners on the visual marker in the image.
Including, a method for determining a camera pose.
제1항에 있어서,
상기 비주얼 마커는, 적어도 4개의 기준 코너 포인트를 포함하는 제1 비주얼 마커와 적어도 1개의 추가 코너 포인트를 포함하는 제2 비주얼 마커를 포함하는, 카메라 자세 결정 방법.
According to paragraph 1,
The visual marker includes a first visual marker including at least four reference corner points and a second visual marker including at least one additional corner point.
제9항에 있어서,
상기 제2 비주얼 마커는 체커 보드(checker board) 형태로 구성되는, 카메라 자세 결정 방법.
According to clause 9,
The second visual marker is configured in the form of a checker board.
제1항에 있어서,
상기 비주얼 마커는 미리 정해진 크기의 격자를 포함하는 격자 지도 상에 정렬되는, 카메라 자세 결정 방법.
According to paragraph 1,
The visual marker is aligned on a grid map including a grid of a predetermined size.
삭제delete 제1항에 있어서,
상기 비주얼 마커는 복수의 제1 색상의 격자 및 복수의 제2 색상의 격자를 포함하는, 카메라 자세 결정 방법.
According to paragraph 1,
The visual marker includes a grid of a plurality of first colors and a grid of a plurality of second colors.
제1항, 제2항, 제4항 내지 제11항 및 제13항 중 어느 한 항에 따른 카메라 자세 결정 방법을 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a computer-readable recording medium for executing the method for determining a camera posture according to any one of claims 1, 2, 4 to 11, and 13 on a computer.
컴퓨팅 장치로서,
통신 모듈;
메모리; 및
상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독 가능한 적어도 하나의 프로그램을 실행하도록 구성된 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로그램은,
비주얼 마커를 포함하는 영상으로부터 상기 비주얼 마커 상의 복수의 제1 코너 포인트를 추출하고,
상기 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 상기 영상 내의 좌표를 기초로 호모그래피를 산출하고,
상기 호모그래피를 이용하여 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표에 대응하는 상기 영상 내의 좌표를 결정하고,
상기 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표 및 상기 영상 내의 좌표에 기초하여 카메라의 자세를 결정하기 위한 명령어들을 포함하고,
상기 비주얼 마커는 특정 위치 또는 특정 영역에 위치한 대상 또는 목적물을 안내하거나 지시하기 위한 사전 결정된 패턴을 포함하고,
상기 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표 및 상기 영상 내의 좌표에 기초하여 카메라의 자세를 결정하는 것은,
PnP(Perspective n-Point) 알고리즘을 이용하여, 상기 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표 및 상기 영상 내의 좌표를 기초로 상기 카메라의 자세를 결정하는 것을 포함하고,
상기 복수의 제1 코너 포인트는 적어도 4개의 코너 포인트를 포함하며,
상기 복수의 제2 코너 포인트는 적어도 5개의 코너 포인트를 포함하는, 컴퓨팅 장치.
As a computing device,
communication module;
Memory; and
At least one processor connected to the memory and configured to execute at least one computer-readable program included in the memory
Including,
The at least one program is,
Extracting a plurality of first corner points on the visual marker from an image including the visual marker,
Calculate homography based on coordinates on a virtual plane of the plurality of first corner points and coordinates in the image,
Determine coordinates in the image corresponding to coordinates on the virtual plane of a plurality of second corner points using the homography,
Includes instructions for determining a pose of the camera based on coordinates of the plurality of second corner points on the virtual plane and coordinates in the image,
The visual marker includes a predetermined pattern for guiding or indicating an object or object located in a specific location or specific area,
Determining the pose of the camera based on the coordinates of the plurality of second corner points on the virtual plane and the coordinates in the image includes:
Using a PnP (Perspective n-Point) algorithm, determining the posture of the camera based on the coordinates of the plurality of second corner points on the virtual plane and the coordinates in the image,
The plurality of first corner points include at least four corner points,
The computing device of claim 1, wherein the plurality of second corner points includes at least five corner points.
제15항에 있어서,
상기 복수의 제1 코너 포인트의 가상 평면 상의 좌표 및 상기 영상 내의 좌표를 기초로 호모그래피를 산출하는 것은,
상기 복수의 제1 코너 포인트의 상기 가상 평면 상의 좌표를 상기 복수의 제1 코너 포인트의 상기 영상 내의 좌표로 변환하기 위한 행렬(matrix)을 상기 호모그래피로서 산출하는 것을 포함하는, 컴퓨팅 장치.
According to clause 15,
Calculating homography based on the coordinates on the virtual plane of the plurality of first corner points and the coordinates in the image,
Computing device comprising calculating a matrix for converting coordinates on the virtual plane of the plurality of first corner points into coordinates in the image of the plurality of first corner points as the homography.
삭제delete 제15항에 있어서,
상기 카메라의 자세는, 상기 복수의 제2 코너 포인트의 상기 가상 평면 상의 좌표 및 상기 영상 내의 좌표 사이의 변환 관계를 나타내는 회전 및 이동 변환 행렬을 포함하는, 컴퓨팅 장치.
According to clause 15,
The pose of the camera includes a rotation and translation transformation matrix representing a transformation relationship between coordinates on the virtual plane of the plurality of second corner points and coordinates within the image.
제15항에 있어서,
상기 적어도 하나의 프로그램은,
상기 복수의 제2 코너 포인트의 상기 영상 내의 좌표를 상기 영상 내의 비주얼 마커 상의 코너의 좌표와 일치하도록, 상기 복수의 제2 코너 포인트의 상기 영상 내의 좌표를 조정하기 위한 명령어들을 더 포함하는, 컴퓨팅 장치.
According to clause 15,
The at least one program is,
Computing device further comprising instructions for adjusting the coordinates of the plurality of second corner points in the image so that the coordinates of the plurality of second corner points in the image match the coordinates of a corner on a visual marker in the image. .
제15항에 있어서,
상기 비주얼 마커는, 적어도 4개의 기준 코너 포인트를 포함하는 제1 비주얼 마커와 적어도 1개의 추가 코너 포인트를 포함하는 제2 비주얼 마커를 포함하는, 컴퓨팅 장치.
According to clause 15,
The visual marker includes a first visual marker including at least four reference corner points and a second visual marker including at least one additional corner point.
KR1020210021195A 2021-02-17 2021-02-17 Method and system for determining camera pose KR102618285B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210021195A KR102618285B1 (en) 2021-02-17 2021-02-17 Method and system for determining camera pose

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210021195A KR102618285B1 (en) 2021-02-17 2021-02-17 Method and system for determining camera pose

Publications (2)

Publication Number Publication Date
KR20220117626A KR20220117626A (en) 2022-08-24
KR102618285B1 true KR102618285B1 (en) 2023-12-27

Family

ID=83111952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210021195A KR102618285B1 (en) 2021-02-17 2021-02-17 Method and system for determining camera pose

Country Status (1)

Country Link
KR (1) KR102618285B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102605696B1 (en) * 2022-12-12 2023-11-30 한국도로공사 Method and System of Estimating CCTV Camera Pose and 3D Coordinate of Mapping Object based on High Definition Map
CN116563336A (en) * 2023-04-03 2023-08-08 国网江苏省电力有限公司南通供电分公司 Self-adaptive positioning algorithm for digital twin machine room target tracking
CN117152257B (en) * 2023-10-31 2024-02-27 罗普特科技集团股份有限公司 Method and device for multidimensional angle calculation of ground monitoring camera

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102354299B1 (en) * 2017-03-16 2022-01-24 한국전자통신연구원 Camera calibration method using single image and apparatus therefor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
S. Y. Park 등, "Active Calibration of Camera-Projector Systems Based on Planar Homography," 2010 20th International Conference on Pattern Recognition, Istanbul, Turkey, pp. 320-323(2010.08.26)*

Also Published As

Publication number Publication date
KR20220117626A (en) 2022-08-24

Similar Documents

Publication Publication Date Title
KR102618285B1 (en) Method and system for determining camera pose
CN108297096B (en) Calibration device, calibration method, and computer-readable medium
KR102399630B1 (en) Method and apparatus for determining position and orientation of bucket of excavator
US10288418B2 (en) Information processing apparatus, information processing method, and storage medium
CN104249371B (en) Information processor and information processing method
CN110570477B (en) Method, device and storage medium for calibrating relative attitude of camera and rotating shaft
US9616569B2 (en) Method for calibrating an articulated end effector employing a remote digital camera
JP2018111166A (en) Calibration device of visual sensor, method and program
CN112258567B (en) Visual positioning method and device for object grabbing point, storage medium and electronic equipment
Tamas et al. Targetless calibration of a lidar-perspective camera pair
EP3537380B1 (en) Coordinate calibration between two-dimensional coordinate system and three-dimensional coordinate system
CN110926330B (en) Image processing apparatus, image processing method, and program
EP3115741A1 (en) Position measurement device and position measurement method
US20110235898A1 (en) Matching process in three-dimensional registration and computer-readable storage medium storing a program thereof
CN110774319B (en) Robot and positioning method and device thereof
CN110956660A (en) Positioning method, robot, and computer storage medium
US20180290300A1 (en) Information processing apparatus, information processing method, storage medium, system, and article manufacturing method
US11490062B2 (en) Information processing apparatus, information processing method, and storage medium
CN112258574A (en) Method and device for marking pose information and computer readable storage medium
JP5481397B2 (en) 3D coordinate measuring device
JP4926598B2 (en) Information processing method and information processing apparatus
KR102619083B1 (en) Method and system for localization of artificial landmark
JP2022111072A (en) Target-free rgbd camera alignment to robots
CN111742349B (en) Information processing apparatus, information processing method, and information processing storage medium
US20240123611A1 (en) Robot simulation device

Legal Events

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