KR20230113371A - 이미지 또는 비디오 내의 객체 3차원 위치 식별 - Google Patents

이미지 또는 비디오 내의 객체 3차원 위치 식별 Download PDF

Info

Publication number
KR20230113371A
KR20230113371A KR1020237021894A KR20237021894A KR20230113371A KR 20230113371 A KR20230113371 A KR 20230113371A KR 1020237021894 A KR1020237021894 A KR 1020237021894A KR 20237021894 A KR20237021894 A KR 20237021894A KR 20230113371 A KR20230113371 A KR 20230113371A
Authority
KR
South Korea
Prior art keywords
root position
root
raw data
data
estimation engine
Prior art date
Application number
KR1020237021894A
Other languages
English (en)
Inventor
캐롤라인 루지에
콜린 조셉 브라운
Original Assignee
힌지 헬스 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 힌지 헬스 인크. filed Critical 힌지 헬스 인크.
Publication of KR20230113371A publication Critical patent/KR20230113371A/ko

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
    • 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
    • G06T3/0031
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/06Topological mapping of higher dimensional structures onto lower dimensional surfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • 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/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

장치가 제공된다. 장치는 원시 데이터를 수신하기 위한 통신 인터페이스를 포함한다. 원시 데이터는 2차원에서의 실제 객체의 표현을 포함한다. 장치는, 원시 데이터 및 참조 데이터를 저장하기 위한 메모리 저장 유닛을 더 포함한다. 또한, 장치는 원시 데이터 및 참조 데이터를 수신하기 위한 스케일 추정 엔진을 포함한다. 스케일 추정 엔진은 참조 데이터를 이용한 원시 데이터의 분석에 기초하여 3차원 공간에서의 실제 객체의 제1 루트 포지션을 계산하는 것이다. 또한, 장치는, 제1 루트 포지션에 기초하여 출력 데이터를 생성하기 위한 애그리게이터를 포함한다. 출력 데이터는 외부 디바이스로 전송될 것이다.

Description

이미지 또는 비디오 내의 객체 3차원 위치 식별
이미지 캡처 디바이스는 일반적으로 카메라 앞의 이미지를 캡처하기 위해 단안 카메라를 사용한다. 그 다음, 이미지는 이미지 파일에 저장되고, 이 이미지 파일은 나중에 스크린 상에 디스플레이되거나 다른 매체 상에 재생될 수 있다. 이미지 캡처 디바이스 앞의 객체는 3차원이지만, 단안 카메라에 의해 캡처된 이미지 파일에서의 표현은 2차원이다. 이미지를 볼 때, 사람들은 종종 이미지에 존재할 수 있는 다양한 단서를 사용하여 2차원 이미지로부터 3차원 구조를 분석하는 능력에 기초하여 2차원 이미지 내의 객체의 3차원 위치를 추론할 수 있다.
카메라 시스템으로부터 3차원 데이터를 생성하기 위해 다양한 컴퓨터 비전 알고리즘이 개발되었다. 예를 들어, 동기화된 멀티뷰 시스템은 3차원 삼각 측량에 의해 객체를 3차원으로 재구성하는 데 사용될 수 있다. 다수의 단안 시스템들로부터의 3차원 위치 식별(localization)을 조합(combine)하는 것도 또한, 3차원 객체 위치 식별을 생성하기 위한 솔루션이 될 수 있다.
이제, 단지 예로써 첨부 도면을 참조할 것이다.
도 1은 단안 카메라 시스템에 의해 촬영된 2차원 이미지로부터 루트 포지션(root position)의 3차원 위치를 추정하기 위한 예시적인 장치의 컴포넌트들의 개략적 표현이다.
도 2는 단안 카메라 시스템에 의해 촬영된 2차원 이미지로부터 루트 포지션의 3차원 위치를 추정하는 방법의 예의 흐름도이다.
도 3은 단안 카메라 시스템에 의해 촬영된 2차원 이미지로부터 루트 포지션의 3차원 위치를 추정하기 위한 또다른 예시적인 장치의 컴포넌트들의 개략적 표현이다.
도 4a는 지면 좌표 시스템에서의 객체의 골격을 나타내는 원시 데이터의 예이다.
도 4b는 T-포즈 좌표 시스템에서의 객체의 골격을 나타내는 원시 데이터의 예이다.
도 5는 단안 카메라 시스템에 의해 촬영된 2차원 이미지로부터 루트 포지션의 3차원 위치를 추정하는 방법의 또다른 예의 흐름도이다.
도 6은 단안 카메라 시스템에 의해 촬영된 2차원 이미지로부터 루트 포지션의 3차원 위치를 추정하기 위한 또다른 예시적인 장치의 컴포넌트들의 개략적 표현이다.
본원에서 사용되는 바와 같이, 절대 배향을 제안하는 용어들의 임의의 사용(예컨대, "상단", "하단", "위로", "아래로", "왼쪽", "우측", "로우", "하이" 등)은 예시적인 편의를 위한 것일 수 있고, 특정 도면에 도시된 배향을 지칭한다. 그러나, 이러한 용어들은 다양한 컴포넌트들이 실제로는 기재 또는 도시된 것과 동일하거나 상이한 배향으로 이용될 것으로 고려되기 때문에 제한적인 의미로 해석되어서는 안된다.
단안 카메라를 이용해 이미지를 캡처하는 시스템이 일반화되었다. 예를 들어, 폰과 같은 많은 휴대용 전자 디바이스들은 이제 이미지를 캡처하기 위한 카메라 시스템을 포함한다. 휴대용 전자 디바이스에 의해 캡처된 이미지는 사람과 같은 객체의 표현을 포함할 수 있다. 2차원 이미지를 보는 사람은 객체의 3차원 위치를 추론할 수 있을 수 있지만, 이는 많은 휴대용 전자 디바이스들의 경우 쉬운 작업이 아닐 수 있다. 3차원 공간에서의 객체의 위치를 식별하는 것은 추가적인 프로세싱을 위해 사용될 수 있다. 예를 들어, 추가 분석을 위해 객체가 비디오에서 추적될 수 있다. 다른 예에서, 3차원에서의 움직임들이 후속 재생을 위해 기록될 수 있다. 또다른 예로서, 증강 현실 피처를 생성하기 위한 것과 같은 애니메이션을 생성하기 위해 객체가 추적될 수 있다.
3차원 공간에서의 객체의 포지션을 추적하고 추정하기 위하여, 객체에 대한 루트 포지션이 정의되어야 한다. 인체와 같은 일부 객체는, 예컨대 T 포즈와 또다른 인간 포즈 사이에, 형상 및 형태를 변경할 수 있기 때문에, 객체의 다른 부분에 비해 실질적으로 움직이지 않는 객체의 포인트에 대한 루트 포지션이 일반적으로 선택된다. 예를 들어, 인간의 루트 포지션은 고관절 사이의 중간 지점으로서 정의된 포인트일 수 있다. 다른 예에서, 루트 포지션은 목의 기저부에 또는 몸체 중앙에 위치된 일부 다른 지점으로서 정의된 포인트일 수 있다. 따라서, 객체의 루트 포지션의 위치는 3차원 공간에서의 객체의 일반적인 포지션인 것으로 이해될 수 있고, 시간 경과에 따른 루트 포지션의 움직임은 일반적으로 손 흔들기 제스처와 같은 객체의 일부의 움직임 대신 전체로서의 객체의 움직임에 대응하는 것으로 간주될 수 있다.
객체의 3차원 루트 포지션을 추정하기 위한 장치 및 방법이 제공된다. 장치는 특별히 제한되지 않으며, 스마트폰 또는 태블릿과 같은 휴대용 전자 디바이스 상에 있는 것을 포함하는 임의의 단안 카메라 시스템일 수 있다. 단안 카메라 시스템으로 캡처된 이미지를 사용함으로써, 장치는 3차원 공간에서의 객체의 루트 포지션을 추정할 수 있다. 예에서, 장치는 3차원 루트 포지션을 추정하기 위해 객체와 연관된 알려진 참조 데이터를 사용할 수 있다. 다른 예에서, 단일 방법과 연관될 수 있는 임의의 오차를 감소시키기 위해 통합될 수 있는 다수의 추정을 형성하기 위해 추가적인 추정 방법이 사용될 수 있다.
도 1을 참조하면, 단안 카메라 시스템에 의해 촬영된 2차원 이미지로부터 루트 포지션의 3차원 위치를 추정하기 위한 장치의 개략적 표현이 일반적으로 50으로 도시되어 있다. 장치(50)는 장치(50)의 사용자와 상호작용하기 위해 표시기와 같은 다양한 추가 인터페이스 및/또는 입력/출력 디바이스와 같은 추가 컴포넌트를 포함할 수 있다. 상호작용은, 장치(50) 또는 장치(50)가 동작하는 시스템의 동작 상태를 보는 것, 장치(50)의 파라미터를 업데이트하는 것, 또는 장치(50)를 재설정하는 것을 포함할 수 있다. 본 예에서, 장치(50)는 통신 인터페이스(55), 메모리 저장 유닛(60), 스케일 추정 엔진(scale estimation engine)(65), 및 애그리게이터(aggregator)(80)를 포함한다.
통신 인터페이스(55)는 실제 객체를 나타내는 원시 데이터를 수신하는 것이다. 원시 데이터는 단안 카메라 시스템으로부터 수신되며, 여기서 단일 카메라가 이미지를 캡처하여 3차원 공간에서의 객체의 2차원 표현을 생성한다. 원시 데이터에서의 2차원 표현은 특별히 제한되지 않으며, 인간 포즈를 추정하기 위해 wrnchAI 엔진에서 사용되는 것과 같은 포즈 추정 모델에 의해 생성된 2차원 골격일 수 있다. 객체가 사람이 아닌 예에서, 포즈를 추정하기 위한 또다른 모델이 사용될 수 있다. 따라서, 통신 인터페이스(55)에서 수신된 원시 데이터는 어느 정도 사전 처리될 수 있다. 통신 인터페이스(55)는 특별히 제한되지 않는다. 예를 들어, 장치(50)는 원시 데이터를 캡처하기 위한 단안 카메라 시스템(도시되지 않음)을 포함하는 스마트폰 또는 다른 휴대용 전자 디바이스의 일부일 수 있다. 따라서, 이 예에서, 통신 인터페이스(55)는 휴대용 전자 디바이스의 장치(50) 부분을 카메라 시스템과 연결하기 위한 휴대용 전자 디바이스 내의 전기적 연결을 포함할 수 있다. 전기적 연결은 휴대용 전자 디바이스 내의 다양한 내부 버스를 포함할 수 있다.
다른 예에서, 통신 인터페이스(55)는 네트워크를 통해 외부 소스와 통신할 수 있으며, 이는 WiFi 네트워크 또는 셀룰러 네트워크와 같이 다수의 연결된 디바이스들과 공유되는 공용 네트워크일 수 있다. 다른 예에서, 통신 인터페이스(55)는 인트라넷 또는 다른 디바이스와의 유선 연결과 같은 사설 네트워크를 통해 외부 소스로부터 데이터를 수신할 수 있다. 또다른 예로서, 통신 인터페이스(55)는 블루투스 연결, 무선 신호, 또는 적외선 신호를 통해 또다른 근접 디바이스에 연결할 수 있다. 특히, 통신 인터페이스(55)는 메모리 저장 유닛(60) 상에 저장될 외부 소스로부터의 원시 데이터를 수신하기 위한 것이다. 외부 소스는 특별히 제한되지 않으며, 장치(50)는 외부 카메라 시스템 또는 원격 카메라 시스템과 통신할 수 있다. 예를 들어, 단안 카메라 시스템은 비디오 카메라, 웹캠, 또는 다른 이미지 센서와 같은 별도의 전용 카메라 시스템일 수 있다. 다른 예에서, 외부 소스는 또다른 스마트폰 또는 파일 서비스와 같은 또다른 휴대용 전자 디바이스일 수 있다.
원시 데이터에 의해 표현되는 이미지의 콘텐츠는 특별히 제한되지 않으며, 사람, 동물, 차량과 같은 3차원에서의 객체의 임의의 2차원 표현일 수 있다. 일반적으로, 루트 포지션이 추정되어야 할 원시 데이터 내의 관심 객체는 3차원 공간에서 움직일 수 있는 객체이지만, 다른 예에서 객체는 또한 고정 객체일 수도 있다. 원시 데이터에서의 객체로서 사람의 예를 계속하면, 사람은 T-포즈 포지션으로 서 있을 수 있다. 다른 예에서, 사람은 또한 A-포즈 포지션일 수 있거나 또는 카메라 시스템의 시야로부터 하나 이상의 관절이 가려지게 될 수 있는 자연 포즈에 있을 수 있다.
메모리 저장 유닛(60)은 통신 인터페이스(55)를 통해 수신된 원시 데이터를 저장하는 것이다. 본 예에서, 메모리 저장 유닛(60)은 궁극적으로 3차원 공간에서의 객체의 움직임을 추적하기 위해 2차원에서 비디오 데이터의 프레임을 나타내는 다수의 2차원 이미지들을 저장할 수 있다. 특히, 객체는 스포츠 경기 또는 춤이나 연기와 같은 공연 예술과 같은 다양한 동작을 수행하며 움직이는 사람일 수 있다. 본 예는 사람의 2차원 이미지에 관한 것이지만, 다른 예는 또한 동물 또는 기계와 같은 상이한 유형의 객체를 나타내는 이미지도 포함할 수 있다는 것이 본 설명의 이점으로 인식되어야 한다.
메모리 저장 유닛(60)은 또한, 장치(50)에 의해 사용될 참조 데이터를 저장하는 데 사용될 수 있다. 예를 들어, 메모리 저장 유닛(60)은 카메라로부터 알려진 거리에 있는 객체의 높이의 다양한 참조 데이터를 저장할 수 있다. 객체로서 사람의 본 예를 계속하면, 참조 데이터는 단안 카메라 시스템으로부터 다양한 거리에 있는 사람의 하나 이상의 높이를 포함할 수 있다. 참조 데이터의 생성은 특별히 제한되지 않으며, 특정 카메라 시스템에 대하여 측정 및 교정되고(calibrated) 메모리 저장 유닛(60)으로 전송될 수 있다. 다른 예에서, 참조 데이터는 교정 단계 동안 특정 카메라 시스템에 대해 획득될 수 있으며, 여기서 하나 이상의 교정 이미지에 대해 알려진 정보가 제공된다.
본 예에서, 메모리 저장 유닛(60)은 특별히 제한되지 않으며, 임의의 전자, 자기, 광학, 또는 다른 물리적 저장 디바이스일 수 있는 비일시적 기계 판독 가능 저장 매체를 포함한다. 메모리 저장 유닛(60)은 데이터베이스를 유지하는 데 사용되는 물리적 컴퓨터 판독가능 매체일 수 있거나 또는 중앙 서버 또는 클라우드 서버와 같은 하나 이상의 외부 서버에 걸쳐 분산될 수 있는 다수의 매체를 포함할 수 있다는 것이 본 설명의 이점으로 당업자에 의해 인식되어야 한다. 메모리 저장 유닛(60)은 통신 인터페이스(55)를 통해 수신된 원시 데이터 및 통신 인터페이스(55)를 통해 생성되거나 수신될 수도 있는 참조 데이터와 같은 정보를 저장하는 데 사용될 수 있다. 또한, 메모리 저장 유닛(60)은, 일반적인 동작을 위한 명령어와 같이, 일반적으로 장치(50)를 동작시키는 데 사용되는 추가적인 데이터를 저장하는 데 사용될 수 있다. 또한, 메모리 저장 유닛(60)은, 다양한 애플리케이션을 지원하는 기능과 같은 일반적인 기능을 장치(50)에 제공하기 위해 프로세서에 의해 실행가능한 운영 체제를 저장할 수 있다. 메모리 저장 유닛(60)은 스케일 추정 엔진(65) 및 애그리게이터(80)를 동작시키기 위한 명령어를 추가적으로 저장할 수 있다. 또한, 메모리 저장 유닛(60)은, 장치(50) 상에 설치될 수 있는 다른 컴포넌트 및 임의의 주변 디바이스, 예컨대 카메라 및 사용자 인터페이스를 동작시키기 위한 제어 명령어도 저장할 수 있다.
스케일 추정 엔진(65)은 메모리 저장 유닛으로부터 원시 데이터 및 참조 데이터를 수신하는 것이다. 이어서, 스케일 추정 엔진(65)은 통신 인터페이스(55)를 통해 수신된 원시 데이터 및 메모리 저장 유닛(60)에 저장된 참조 데이터를 분석하여 원시 데이터 내의 객체의 루트 포지션을 계산한다. 객체 및 루트 포지션의 정의는 특별히 제한되지 않는다는 것이 당업자에 의해 인식되어야 한다. 일반적으로, 객체의 루트 포지션은 3차원 공간에서의 그의 위치를 가장 잘 나타내는 객체의 포인트로서 정의될 수 있다. 객체로서 인간의 예를 계속하면, 루트 포지션은 사람의 3차원 골격 표현의 좌측 고관절과 우측 고관절 사이 라인 상의 중간점으로서 정의될 수 있다. 다른 예에서, 3차원 골격의 머리, 또는 보다 정밀하게는 좌측 눈과 우측 눈 사이 라인 상의 중간점과 같은 상이한 루트 포지션이 선택될 수 있다. 또다른 예로서, 목도 또한 루트 포지션으로서 선택될 수 있다.
스케일 추정 엔진(65)이 루트 포지션을 계산하는 방식은 특별히 제한되지 않는다. 예를 들어, 스케일 추정 엔진(65)은 참조 데이터에서의 참조 높이를 원시 데이터에서의 객체의 실제 높이와 비교할 수 있다. 이 예에서, 참조 데이터는 카메라 시스템에 의해 캡처된 사람의 2차원 표현을 포함한다. 참조 데이터에서의 사람의 2차원 높이(예컨대, 픽셀 수에 의한 높이 측정치)는 알려진 파라미터이고, 단안 카메라 시스템의 카메라로부터의 거리와 같은 3차원 공간에서의 포지션도 또한 알려진 파라미터이다. 알려진 파라미터는 사용자에 의해 수동으로 입력될 수 있거나 또는 범위 센서(도시되지 않음)와 같은 주변 디바이스를 사용하여 측정될 수 있다. 이 예에서, 원시 데이터에서 표현된 실제 사람의 2차원 높이는 3차원 공간에서 카메라로부터의 거리에 반비례하는 것으로 가정할 수 있다. 따라서, 스케일 추정 엔진(65)은 원시 데이터에서의 사람의 높이, 예컨대 현재 예에서의 픽셀 수와 같은 높이를 결정함으로써, 원시 데이터에서의 사람의 루트 포지션을 추정하는데 사용될 수 있다. 이를 위해, 카메라로부터의 거리가 계산될 수 있고 그 후에 루트 포지션이 획득될 수 있다.
다른 예에서, 다른 유형의 객체의 루트 포지션이 유사한 방법을 사용하여 계산될 수 있다는 것이 인식되어야 한다. 참조 높이는 특별히 제한되지 않으며 일부 예에서 높이가 아닐 수 있다는 것이 본 설명의 이점으로 당업자에 의해 인식되어야 한다. 특히, 스케일 추정 엔진(65)은 참조 데이터 및 원시 데이터에서의 2개의 참조 포인트 사이에 식별될 수 있는 임의의 참조 거리를 사용할 수 있다. 예를 들어, 참조 거리는 3차원 골격의 2차원 표현의 엉덩이와 발목 사이의 거리와 같은 뼈 세그먼트일 수 있다.
본 예에서, 애그리게이터(80)는 스케일 추정 엔진(65)으로부터 수신된 루트 포지션에 기초하여 출력 데이터를 생성하는 것이다. 출력 데이터는 특별히 제한되지 않고, 추가 프로세싱을 위해 외부 디바이스로의 후속 전송을 위해 메모리 저장 유닛(60) 상에 저장될 수 있다. 본 예에서, 스케일 추정 엔진(65)에 의해 계산된 단일 루트 포지션이 있을 수 있기 때문에, 출력 데이터는 루트 포지션 자체일 수 있다. 원시 데이터가 비디오 데이터를 포함하는 다른 예에서, 애그리게이터(80)는 출력 데이터가 추적 데이터를 나타내도록 다수의 프레임들의 루트 포지션을 조합할 수 있다.
도 2를 참조하면, 단안 카메라 시스템에 의해 촬영된 2차원 이미지에서 객체의 루트 포지션의 3차원 위치를 추정하는 예시적인 방법의 흐름도가 일반적으로 200으로 도시되어 있다. 방법(200)의 설명을 돕기 위해, 방법(200)은 장치(50)에 의해 수행될 수 있다고 가정할 것이다. 실제로, 방법(200)은 장치(50)가 구성될 수 있는 하나의 방식일 수 있다. 또한, 방법(200)에 대한 다음 설명은 장치(50) 및 그의 컴포넌트들에 대한 추가 이해로 이어질 수 있다. 또한, 방법(200)은 도시된 바와 같은 정확한 순서로 수행되지 않을 수 있고, 다양한 블록들이 순서대로가 아닌 병렬로 또는 모두 상이한 순서로 수행될 수 있다는 것이 강조되어야 한다.
블록 210에서 시작하여, 장치(50)는 통신 인터페이스(55)를 통해 실제 객체를 나타내는 원시 데이터를 수신한다. 본 예에서, 원시 데이터는 객체의 2차원 표현이다. 예를 들어, 원시 데이터는 단안 카메라 시스템으로부터의 센서 데이터에 의해 생성된 이미지 파일일 수 있다. 다른 예에서, 원시 데이터는 파일 서버 또는 다른 외부 디바이스와 같은 외부 소스로부터 수신될 수 있다. 원시 데이터는 카메라 시스템으로부터 나온 것이 아닐 수 있고 사진이 아닐 수 있다는 것이 당업자에 의해 인식되어야 한다. 이러한 예에서, 원시 데이터는 사람 또는 컴퓨팅 디바이스에 의해 생성된 예술 이미지일 수 있다. 2차원 이미지의 포맷과 같은, 원시 데이터가 객체를 갖는 이미지를 표현하는 방식은 특별히 제한되지 않는다. 본 예에서, 원시 데이터는 RGB 포맷으로 수신될 수 있다. 다른 예에서, 원시 데이터는, 카메라 시스템에 의해 캡처 및 프로세싱된 래스터 그래픽 파일 또는 압축된 이미지 파일과 같은 상이한 포맷일 수 있다.
원시 데이터에 의해 표현되는 이미지의 콘텐츠는 특별히 제한되지 않으며, 사람, 동물, 차량과 같이 3차원에서의 객체의 임의의 2차원 표현일 수 있다. 일반적으로, 루트 포지션이 추정되어야 할 원시 데이터에서의 관심 객체는 3차원 공간에서 움직일 수 있는 객체이지만, 다른 예에서 객체는 또한 고정 객체일 수도 있다. 객체의 배향도 특별히 제한되지 않는다. 원시 데이터에서의 객체가 사람인 예에서, 사람은 T-포즈 포지션으로 서 있을 수 있다. 다른 예에서, 사람은 또한 A-포즈 포지션일 수 있거나 또는 카메라 시스템의 시야로부터 하나 이상의 관절이 가려지게 될 수 있는 자연 포즈에 있을 수 있다.
장치(50)에서 수신되면, 원시 데이터는 메모리 저장 유닛(60)으로 전송될 것이며, 여기서 블록 220에서 스케일 추정 엔진에 의한 후속 사용을 위해 저장된다. 또한, 블록 220은 메모리 저장 유닛(60)에 참조 데이터를 저장하는 것을 포함한다. 참조 데이터는 특별히 제한되지 않으며, 특정 카메라 시스템에 대해 측정 및 교정될 수 있고, 통신 인터페이스(55) 또는 플래시 드라이브와 같은 휴대용 메모리 저장 디바이스를 통해 메모리 저장 유닛(60)으로 전송될 수 있다. 다른 예에서, 참조 데이터는 교정 단계 동안 특정 카메라 시스템에 대해 획득될 수 있으며, 여기서 하나 이상의 교정 이미지에 대해 알려진 정보가 제공된다.
블록 230은 원시 데이터에서 2차원 이미지로 표현되는 객체의 3차원 공간에서의 루트 포지션을 계산하는 것을 수반한다. 본 예에서, 루트 포지션은 메모리 저장 유닛(60)에 저장된 참조 데이터에 기초하여 원시 데이터를 분석함으로써 스케일 추정 엔진(65)에 의해 계산된다. 루트 포지션이 계산되는 방식은 특별히 제한되지 않으며, 참조 데이터에 의해 표현되는 이미지 내의 참조 객체의 참조 높이(이미지 내의 픽셀의 수로 측정됨)를 원시 데이터에서의 객체 실제 높이와 비교하는 것을 수반할 수 있다. 원시 데이터에서 표현되는 객체의 2차원 높이(이미지 내의 픽셀의 수로 측정됨)는 3차원 공간에서 카메라로부터의 거리에 반비례하는 것으로 가정할 수 있다. 따라서, 원시 데이터에서의 사람의 루트 포지션은 참조 데이터에 대한 비교 및 참조 데이터에서의 알려진 파라미터를 사용하여 추정된다.
다음으로, 블록 240은 블록 230에서 계산된 루트 포지션에 기초하여 출력 데이터를 생성하는 것을 포함한다. 본 예에서, 스케일 추정 엔진(65)에 의해 계산된 단일 루트 포지션이 있을 수 있기 때문에, 출력 데이터는 루트 포지션 자체일 수 있다. 원시 데이터가 비디오 데이터를 포함하는 다른 예에서, 애그리게이터(80)는 출력 데이터로서 추적 데이터를 생성하기 위해 다수의 프레임들의 루트 포지션을 조합할 수 있다. 블록 250은 그 후에 출력 데이터를 추가 프로세싱을 위해 외부 디바이스에 전송한다. 일부 예에서 블록 250은 동일한 디바이스 또는 시스템 내에서 내부적으로 출력 데이터를 전송할 수 있다는 것이 본 설명의 이점으로 당업자에 의해 인식되어야 한다. 예를 들어, 장치(50)가 추가적인 후처리 기능을 수행할 수 있는 스마트폰과 같은 휴대용 전자 디바이스의 일부인 경우, 출력 데이터는 동일한 휴대용 전자 디바이스 내에서 사용될 수 있다.
도 3을 참조하면, 단안 카메라 시스템에 의해 촬영된 2차원 이미지로부터 루트 포지션의 3차원 위치를 추정하기 위한 장치(50a)의 또다른 개략적 표현이 일반적으로 도시되어 있다. 장치(50a)의 유사한 컴포넌트들은 접미사 "a"가 뒤따르는 것을 제외하고는 장치(50)에서의 그의 대응부에 대해 유사한 참조를 갖는다. 본 예에서, 장치(50a)는 통신 인터페이스(55a), 메모리 저장 유닛(60a), 스케일 추정 엔진(65a), 지상 포지션(ground position) 추정 엔진(70a), 피처(feature) 추정 엔진(75a), 및 애그리게이터(80a)를 포함한다.
본 예에서, 장치(50a)는 원시 데이터에서의 객체의 루트 포지션을 추정하기 위해 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a), 및 피처 추정 엔진(75a)을 포함한다. 스케일 추정 엔진(65a)은, 통신 인터페이스(55a)를 통해 수신된 원시 데이터와 참조 데이터 사이의 측정의 상대적 스케일에 기초하여 루트 포지션을 계산하기 위해 스케일 추정 엔진(65)과 실질적으로 유사하게 기능한다.
지상 포지션 추정 엔진(70a)은 카메라에 대한 지상 포지션을 사용하여 객체의 루트 포지션을 계산하는 것이다. 특히, 지상 포지션 추정 엔진(70a)은 통신 인터페이스(55a)를 통해 수신된 원시 데이터의 2차원 이미지 내의 객체에 기초하여 지상 포지션을 결정하는 것이다. 지상 포지션은, 지상 평면 상에 있는 것으로 가정되는 객체의 피처를 식별하고 호모그래피(homography)를 적용함으로써 결정될 수 있다. 예를 들어, 객체가 사람인 경우, 사람의 발은 지상에 있는 것으로 가정할 수 있다. 이어서, 지상 평면 상의 포지션을 결정하기 위해 원시 데이터의 이미지에서의 2차원 포지션에 호모그래피가 적용될 수 있다
본 예에서, 원시 데이터에서의 이미지의 2차원 이미지와 지상 평면이 있는 3차원 표현 사이에 변환하기 위해 호모그래피를 정의하는데 교정 엔진이 사용될 수 있다. 교정 엔진이 호모그래피를 정의하는 방식은 특별히 제한되지 않으며, 다양한 평면 검출 또는 정의 방법을 수반할 수 있다.
초기 교정 단계는 3차원 공간에서 지상 평면을 검출하는 것을 수반할 수 있다. 지상 평면의 결정은 제한되지 않으며, 카메라 시스템으로 교정 방법을 수행하는 것을 수반할 수 있다. 예를 들어, iOS 디바이스에서 이용가능한 ARKit와 같은 네이티브 프로그램 또는 모듈이, 스마트폰 또는 태블릿 상의 단안 카메라 시스템을 교정하는 데 사용될 수 있다. 이 예에서, 프로그램은 도 4a에 도시된 바와 같이, ARKit과 같은 모듈에 의해 결정된 카메라 좌표 시스템에 대한 지상 평면(105)을 생성하기 위해 공간에서 디바이스를 이동시킴으로써 획득된 다수의 뷰포인트들로부터의 이미지들을 사용할 수 있다.
카메라 좌표 시스템에서의 지상 평면(100)의 결정 시, 교정 엔진은 도 4b에 도시된 바와 같이, 카메라 좌표 시스템에서의 지상 평면(100)을, T-포즈 포지션의 골격(105)이 카메라를 향하는 T-포즈 참조 시스템에서의 지상 평면(100')으로 변환할 수 있다. 지상 평면(100)을 지상 평면(100')으로 변환함으로써, 모듈에 의해 결정된 지상 평면(100)은, 회전되거나 중심 위치되지 않은 골격(105)을 수반하지 않을 수 있기 때문에, 객체의 높이가 2차원 이미지로부터 보다 쉽게 획득될 수 있다는 것을 알아야 한다.
본 예를 계속하면, 지상 포지션 추정 엔진(70a)은 T 포즈로 서 있는 사람의 루트 포지션을 식별하는 데 사용된다. 먼저, 지상 포지션 추정 엔진(70a)은 원시 데이터의 2차원 이미지에서 뒤꿈치(heel) 관절(110-1, 110-2)(일반적으로, 이들 뒤꿈치 관절은 본원에서 "뒤꿈치 관절(110)"로 지칭되고 집합적으로 "뒤꿈치 관절(110)"로 지칭됨) 및 발가락(toe) 관절(115-1 및 115-2)(일반적으로, 이들 발가락 관절은 본원에서 "발가락 관절(115)"로 지칭되고, 집합적으로 "발가락 관절(115)"로 지칭됨)를 식별할 수 있다. 지상 포지션 추정 엔진(70a)은 사람의 발의 위치를 각각의 뒤꿈치 관절(110)와 발가락 관절(115) 사이의 중간 지점 평균으로 결정한다. 발의 위치가 알려진 상태에서, 지상 포지션 추정 엔진(70a)은 원시 데이터로부터의 이미지에서의 2차원 위치를 교정 엔진에 의해 결정되는 정의된 호모그래피를 이용해 평면(100') 상의 T-포즈 시스템으로 변환한다.
위의 예는 지상에 놓인 사람의 양 발을 설명하지만, 사람이 지상에 놓인 하나의 발만 갖는 예에서도 루트 포지션을 식별하기 위해 지상 포지션 추정 엔진(70a)에 의해 사용될 수 있다는 것을 알아야 한다. 이러한 예에서, 바닥에 대한 골반의 투영은 지상 평면에 대한 수직을 사용하여 결정될 수 있다. 특히, 이 경우 발의 위치는 골반 위치를 통과하는 수직으로 지상 평면 상의 바닥에 대한 발의 투영에 의해 표현될 수 있다.
평면(100') 상의 포지션이 계산된 후에, 지상 평면(100')에 대한 루트 포지션의 높이가 결정될 것이다. 고관절 사이에 루트 포지션을 갖는 사람의 예를 계속하면, 높이는 카메라에 대한 지상 평면의 포지션 및 배향을 알고 있는 카메라 거리로부터 결정될 수 있다. 카메라로부터 골격(105)에 의해 표현되는 사람에 대한 거리를 결정하면, 3차원 공간에서의 골격(105)의 높이 및 폭이 결정될 수 있다. 특히, 카메라 거리는 평면(100') 위의 루트 포지션의 높이를 결정하는 데 사용될 수 있다.
변형이 가능하고 3차원 공간에서의 루트 포지션의 결정이 다른 변환 및 평면을 수반할 수 있다는 것을 알아야 한다. 예를 들어, 일부 예에서, 알려진 카메라 시스템에 대한 호모그래피는 미리 정의되고 메모리 저장 유닛(60a)에 직접 업로드될 수 있다. 따라서, 이러한 예에서, 지상 포지션 추정 엔진(70a)은 지상 포지션 추정을 행하기 전에 별도의 교정 엔진을 사용하지 않을 것이다. 대신에, 지상 포지션 추정 엔진(70a)은 알려진 호모그래피를 사용할 수 있다.
피처 추정 엔진(75a)은 원시 데이터의 2차원 이미지에서 표현하는 객체의 피처에 대해 3차원 포즈 추정 프로세스를 적용함으로써 사용하는 객체의 루트 포지션을 계산하는 것이다. 본 예에서, 피처 추정 엔진(75a)은, 루트 포지션을 추정하기 위해 사람의 몸통과 같은 피처의 2차원 투영, 피처의 3차원 측정 및 카메라의 고유 파라미터에 기초한다. 특정 예로서, 카메라 좌표 시스템(도 4a)에서의 루트 포지션의 위치를 제공하기 위해 입력 파라미터에 대해 원근-n-포인트(Perspective-n-point) 알고리즘이 수행될 수 있으며, 이는 T-포즈 좌표 시스템(도 4b)으로 변환될 수 있다.
애그리게이터(80a)는 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a)으로부터 수신된 루트 포지션에 기초하여 출력 데이터를 생성하는 것이다. 본 예에서, 애그리게이터(80a)는 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 각각에 의해 계산된 루트 포지션을 조합하여 조합된 루트 포지션을 출력 데이터로서 제공하는 것이다. 애그리게이터(80a)가 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a)으로부터의 루트 포지션을 조합하는 방식은 특별히 제한되지 않는다. 본 예에서, 애그리게이터는 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 각각으로부터 수신된 루트 포지션의 평균을 계산할 수 있고, 평균을 출력 데이터로서 제공할 수 있다.
일부 예에서, 애그리게이터(80a)는 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 각각에 의해 결정된 루트 포지션의 가중 평균을 계산할 수 있다. 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a)의 가중화는 특별히 제한되지 않으며, 일부 예에서 사전 지식(prior knowledge)에 의존할 수 있다. 예를 들어, 사전 지식은, 예컨대 객체가 추적 중일 때, 이전에 결정된 루트 포지션을 포함할 수 있다. 이 예에서, 가중화는, 이전 거리에 반비례하는 것과 같이, 이전에 계산된 루트 포지션으로부터의 거리에 의존할 수 있다.
추가 예에서, 애그리게이터(80a)는 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 각각에 의해 결정된 포지션으로부터 출력 데이터를 생성하기 위해 트레이닝된 모델을 사용할 수 있다. 모델은, 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 각각에 의해 결정된 노이즈 있는 루트 포지션으로부터 신뢰성 있는 추정 루트 포지션을 생성할 수 있는 머신 러닝 모델을 포함할 수 있다.
추가 예에서, 애그리게이터(80a)는 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 중 하나 이상으로부터의 루트 포지션의 이상치(outlier) 결정을 폐기할 수 있다. 이상치는 사전 지식으로부터 이전에 측정된 루트 포지션으로부터의 거리에 기초하여 결정될 수 있다. 이 예에서, 이상치를 식별하기 위해 미리 결정된 임계값이 사용될 수 있다.
스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 각각이 루트 포지션의 합리적인 추정치를 제공하지 못할 수 있다는 것이 본 설명의 이점으로 당업자에 의해 인식되어야 한다. 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 각각은 원시 데이터에서 캡처된 특정 이미지에 대하여 모델에 내재적인 약점을 가질 수 있다. 예를 들어, 스케일 추정 엔진(65a)은, 사람이 포즈 추정기에 의해 식별될 수 없는 흔치 않은 포즈로 있는 것으로 인해 원시 데이터에서의 높이가 정확하게 식별될 수 없고 참조 데이터와 비교될 수 없는 경우, 부정확할 수 있다. 지상 포지션 추정 엔진(70a)의 경우, 사람의 발이 지상에 놓이지 않은 경우, 예컨대 사람이 지면으로부터 다리를 점프하거나 들어올린 경우, 루트 포지션의 추정이 영향을 받을 수 있다. 피처 추정 엔진(75a)은, 몸통과 같은 피처가 꼬인 것으로 볼 수 없는 경우 실패할 수 있다. 따라서, 투표 시스템이 사용될 수 있거나 또는 다른 2개의 추정 엔진에 의해 계산된 루트 포지션으로부터 임계 거리 떨어진 것으로서 이상치가 식별될 수 있다.
추가 예에서, 변형이 가능하다는 것을 이해해야 한다. 예를 들어, 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 각각이 루트 포지션의 추정을 제공할 수 있다는 것을 이해해야 한다. 따라서, 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및 피처 추정 엔진(75a) 중 하나 이상이 일부 예에서 생략될 수 있다. 또한, 루트 포지션을 추정하는 상이한 방법을 이용하는 하나 이상의 다른 엔진이 장치(50a)에 추가될 수 있다는 것이 본 설명의 이점으로 당업자에 의해 인식되어야 한다. 추가적인 엔진은 추가적인 루트 포지션을 계산하여 애그리게이터(80a)가 위에서 설명된 방법을 사용하여 조합할 수 있다.
도 5를 참조하면, 단안 카메라 시스템에 의해 촬영된 2차원 이미지에서 객체의 루트 포지션의 3차원 위치를 추정하는 또다른 예시적인 방법의 흐름도가 일반적으로 200a로 도시되어 있다. 방법(200a)의 설명을 돕기 위해, 방법(200a)은 장치(50a)에 의해 수행될 수 있다고 가정할 것이다. 실제로, 방법(200a)은 장치(50a)가 구성될 수 있는 하나의 방식일 수 있다. 또한, 방법(200a)의 다음 설명은 장치(50a) 및 그의 컴포넌트들의 추가 이해로 이어질 수 있다. 또한, 방법(200a)은 도시된 바와 같은 정확한 순서로 수행되지 않을 수 있고, 다양한 블록들이 순서대로가 아닌 병렬로 또는 모두 상이한 순서로 수행될 수 있다는 것이 강조되어야 한다. 방법(200a)의 유사한 컴포넌트들은, 접미사 "a"가 뒤따르는 것을 제외하고, 방법(200)에서의 그의 대응부에 대해 유사한 참조를 갖는다. 본 예에서, 블록 210a, 220a, 240a 및 250a은 블록 210, 220, 240 및 250과 실질적으로 유사하다.
블록 230a은, 예컨대 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및/또는 피처 추정 엔진(75a)을 이용해, 다수의 방법을 사용하여 원시 데이터에서의 2차원 이미지에서 표현되는 객체의 3차원 공간에서의 루트 포지션을 계산하는 것을 수반한다. 예에서, 루트 포지션은 스케일 추정 엔진(65a)에 의해, 메모리 저장 유닛(60a)에 저장된 참조 데이터에 기초하여 원시 데이터를 분석함으로써 계산될 수 있다. 루트 포지션은 또한 지상 포지션 추정 엔진(70a)에 의해, 호모그래피에 기초하여 지상 평면 상의 지상 포지션을 결정하는 것에 기초하여 계산될 수 있다. 호모그래피는 특별히 제한되지 않으며, 교정 엔진을 사용하여 정의되거나 또는 알려진 카메라 시스템에 대하여 제공될 수 있다. 또한, 루트 포지션은 사람의 몸통과 같은 원시 데이터에서의 객체의 피처에 대해 3차원 포즈 추정 프로세스를 적용하는 것에 기초하여 계산될 수 있다. 다수의 방법을 사용함으로써, 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및/또는 피처 추정 엔진(75a) 중 하나가 정확한 추정을 제공하지 못하는 경우에도 비교적 정밀한 루트 포지션 추정이 획득될 수 있다는 것을 알아야 한다.
다음으로, 블록 235a는 블록 230a로부터 스케일 추정 엔진(65a), 지상 포지션 추정 엔진(70a) 및/또는 피처 추정 엔진(75a) 각각으로부터의 계산된 루트 포지션을 조합하는 것을 포함한다. 루트 포지션이 조합되는 방식은 특별히 제한되지 않는다. 예를 들어, 애그리게이터(80a)는 블록 230a으로부터 수신된 계산된 루트 포지션의 단순한 평균을 취할 수 있다. 다른 예에서, 애그리게이터는 사전 지식과 같은 다양한 인자에 기초하여 블록 230a으로부터 수신된 값을 가중화할 수 있다. 추가 예에서, 애그리게이터(80a)는 또한 모델 오차의 영향을 감소시키기 위해 블록 230a으로부터 수신된 이상치 값을 폐기할 수 있다. 그 다음, 조합된 루트 포지션은 블록 240a에서 출력 데이터를 생성하는 데 사용된다.
도 6을 참조하면, 단안 카메라 시스템에 의해 촬영된 2차원 이미지로부터 루트 포지션의 3차원 위치를 추정하기 위한 장치(50b)의 또다른 개략적 표현이 일반적으로 도시되어 있다. 장치(50b)의 유사한 컴포넌트들은 접미사 "b"가 뒤따르는 것을 제외하고는 장치(50a)에서의 그의 대응부에 대해 유사한 참조를 갖는다. 본 예에서, 장치(50b)는 통신 인터페이스(55b), 메모리 저장 유닛(60b), 프로세서(85b) 및 카메라(90b)를 포함한다. 프로세서(85b)는 스케일 추정 엔진(65b), 지상 포지션 추정 엔진(70b), 피처 추정 엔진(75b) 및 애그리게이터(80b)를 동작시키는 것이다.
본 예에서, 메모리 저장 유닛(60b)은 또한, 장치(50b)에 의해 사용되는 다양한 데이터를 저장하기 위한 데이터베이스를 유지할 수 있다. 예를 들어, 메모리 저장 유닛(60b)은, 카메라(90b)로부터 수신된 이미지와 같은 원시 데이터를 저장하기 위한 데이터베이스(300b), 및 스케일 추정 엔진(65b), 지상 포지션 추정 엔진(70b) 및/또는 피처 추정 엔진(75b)에서 생성된 루트 포지션 추정을 저장하기 위한 데이터베이스(310b)를 포함할 수 있다. 또한, 메모리 저장 유닛(60b)은 장치(50b)에 일반적인 기능을 제공하기 위해 프로세서(85b)에 의해 실행가능한 운영 체제(320b)를 포함할 수 있다. 또한, 메모리 저장 유닛(60b)은 프로세서(85b)가 방법(200) 또는 방법(200a)을 수행하기 위한 특정 단계들을 수행하도록 지시하기 위한 코드로 인코딩될 수 있다. 메모리 저장 유닛(60b)은 또한, 입력을 수신하거나 출력을 제공하기 위한 다양한 사용자 인터페이스와 같은, 장치(50b)의 다른 컴포넌트 및 주변 디바이스와 통신하기 위한 다른 하드웨어 드라이버 뿐만 아니라 드라이버 레벨에서 동작을 수행하기 위한 명령어를 저장할 수 있다. 메모리 저장 유닛(60b)은 또한, 카메라 내재, 지상 평면 위치 식별 및 호모그래피와 같은 교정 정보도 저장할 수 있다.
카메라(90b)는 원시 데이터로서 이미지를 캡처하기 위한 단안 카메라 시스템이다. 본 예에서, 원시 데이터는 RGB 포맷으로 캡처될 수 있다. 다른 예에서, 원시 데이터는 래스터 그래픽 파일 또는 압축된 이미지 파일과 같은 상이한 포맷일 수 있다. 본 예에서, 장치(50b)는 카메라(90b)를 갖는 스마트폰과 같은 휴대용 전자 디바이스일 수 있다는 것이 본 설명의 이점으로 당업자에 의해 인식되어야 한다.
위에서 제공된 다양한 예의 특징 및 양태들은 또한 본 개시의 범위 내에 속하는 추가 예로 조합될 수 있다는 것을 인식하여야 한다.

Claims (29)

  1. 장치에 있어서,
    원시 데이터를 수신하기 위한 통신 인터페이스 - 상기 원시 데이터는 2차원에서의 실제 객체의 표현을 포함함 - ;
    상기 원시 데이터 및 참조 데이터를 저장하기 위한 메모리 저장 유닛;
    상기 원시 데이터 및 상기 참조 데이터를 수신하기 위한 스케일 추정 엔진(scale estimation engine) - 상기 스케일 추정 엔진은 상기 참조 데이터를 이용한 상기 원시 데이터의 분석에 기초하여 3차원 공간에서의 상기 실제 객체의 제1 루트 포지션(root position)을 계산하는 것임 - ; 및
    상기 제1 루트 포지션에 기초하여 출력 데이터를 생성하기 위한 애그리게이터(aggregator) - 상기 출력 데이터는 외부 디바이스로 전송될 것임 -
    를 포함하는, 장치.
  2. 청구항 1에 있어서,
    상기 스케일 추정 엔진은 제1 루트 포지션을 결정하기 위해 상기 참조 데이터에서의 참조 높이를 상기 원시 데이터에서의 실제 높이와 비교하는 것인, 장치.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 원시 데이터 및 호모그래피(homography)에 기초하여 지상 포지션(ground position)을 결정하기 위한 지상 포지션 추정 엔진을 더 포함하고, 상기 지상 포지션은 제2 루트 포지션을 계산하는 데 사용되고, 상기 애그리게이터는 상기 출력 데이터를 생성하기 위해 상기 제2 루트 포지션을 상기 제1 루트 포지션과 조합하는 것인, 장치.
  4. 청구항 3에 있어서,
    상기 호모그래피를 정의하기 위한 교정(calibration) 엔진을 더 포함하는, 장치.
  5. 청구항 3 또는 청구항 4에 있어서,
    상기 실제 객체의 피처(feature)에 대해 3차원 포즈 추정 프로세스를 적용함으로써 제3 루트 포지션을 계산하기 위한 피처 추정 엔진을 더 포함하고, 상기 애그리게이터는 상기 출력 데이터를 생성하기 위해 상기 제3 루트 포지션을 상기 제1 루트 포지션 및 상기 제2 루트 포지션과 조합하는 것인, 장치.
  6. 청구항 5에 있어서,
    상기 애그리게이터는 출력 데이터를 생성하기 위해 상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션을 평균화하는 것인, 장치.
  7. 청구항 6에 있어서,
    상기 애그리게이터는 출력 데이터를 생성하기 위해 상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션의 가중 평균을 계산하는 것인, 장치.
  8. 청구항 7에 있어서,
    상기 가중 평균은 상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션의 사전 지식(prior knowledge)에 기초하는 것인, 장치.
  9. 청구항 6 내지 청구항 8 중 어느 한 항에 있어서,
    상기 애그리게이터는 상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션 중 하나가 이상치(outlier)인지 여부를 결정하고, 상기 애그리게이터는 상기 이상치를 폐기하는 것인, 장치.
  10. 청구항 1 내지 청구항 9 중 어느 한 항에 있어서,
    상기 실제 객체는 인간인 것인, 장치.
  11. 방법에 있어서,
    통신 인터페이스를 통해 원시 데이터를 수신하는 단계 - 상기 원시 데이터는 2차원에서의 실제 객체의 표현을 포함함 - ;
    메모리 저장 유닛에 상기 원시 데이터 및 참조 데이터를 저장하는 단계;
    스케일 추정 엔진에 의해 상기 참조 데이터를 이용한 상기 원시 데이터의 분석에 기초하여 3차원 공간에서의 상기 실제 객체의 제1 루트 포지션을 계산하는 단계;
    상기 제1 루트 포지션에 기초하여 출력 데이터를 생성하는 단계; 및
    상기 출력 데이터를 외부 디바이스로 전송되게 하는 단계
    를 포함하는, 방법.
  12. 청구항 11에 있어서,
    상기 제1 루트 포지션을 계산하는 단계는, 제1 루트 포지션을 결정하기 위해 상기 참조 데이터에서의 참조 높이를 상기 원시 데이터에서의 실제 높이와 비교하는 단계를 포함하는 것인, 방법.
  13. 청구항 11 또는 청구항 12에 있어서,
    지상 포지션 추정 엔진을 이용해 상기 원시 데이터 및 호모그래피에 기초하여 지상 포지션을 결정하는 단계;
    상기 지상 포지션에 기초하여 상기 지상 포지션 추정 엔진을 이용해 제2 루트 포지션을 계산하는 단계; 및
    애그리게이터를 이용해, 상기 출력 데이터를 생성하기 위해 상기 제2 루트 포지션을 상기 제1 루트 포지션과 조합하는 단계
    를 더 포함하는, 방법.
  14. 청구항 13에 있어서,
    교정 엔진을 이용해 상기 호모그래피를 정의하는 단계를 더 포함하는, 방법.
  15. 청구항 13 또는 청구항 14에 있어서,
    피처 추정 엔진을 이용해 상기 실제 객체의 피처에 대해 3차원 포즈 추정 프로세스를 적용함으로써 제3 루트 포지션을 계산하는 단계; 및
    상기 애그리게이터를 이용해, 상기 출력 데이터를 생성하기 위해 상기 제3 루트 포지션을 상기 제1 루트 포지션 및 상기 제2 루트 포지션과 조합하는 단계
    를 더 포함하는, 방법.
  16. 청구항 15에 있어서,
    상기 조합하는 단계는 상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션을 평균화하는 단계를 포함하는 것인, 방법.
  17. 청구항 16에 있어서,
    상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션을 평균화하는 단계는 출력 데이터를 생성하기 위해 가중 평균을 계산하는 단계를 포함하는 것인, 방법.
  18. 청구항 17에 있어서,
    상기 가중 평균을 상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션의 사전 지식에 기초로 하는 단계를 더 포함하는, 방법.
  19. 청구항 16 내지 청구항 18 중 어느 한 항에 있어서,
    상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션 중 하나가 이상치인지 여부를 결정하는 단계; 및
    상기 이상치를 폐기하는 단계
    를 더 포함하는, 방법.
  20. 청구항 11 내지 청구항 19 중 어느 한 항에 있어서,
    상기 실제 객체는 인간인 것인, 방법.
  21. 코드로 인코딩된 비일시적 컴퓨터 판독가능 매체에 있어서, 상기 코드는:
    통신 인터페이스를 통해 원시 데이터를 수신하고 - 상기 원시 데이터는 2차원에서의 사람의 표현을 포함함 - ;
    메모리 저장 유닛에 상기 원시 데이터 및 참조 데이터를 저장하고;
    상기 참조 데이터를 이용한 상기 원시 데이터의 분석에 기초하여 3차원 공간에서의 상기 사람의 제1 루트 포지션을 계산하고;
    상기 제1 루트 포지션에 기초하여 출력 데이터를 생성하고;
    상기 출력 데이터를 외부 디바이스로 전송되게 하도록
    프로세서에 지시하는 것인, 비일시적 컴퓨터 판독가능 매체.
  22. 청구항 21에 있어서,
    상기 코드가 상기 제1 루트 포지션을 계산하도록 상기 프로세서에 지시하는 것은, 제1 루트 포지션을 결정하기 위해 상기 참조 데이터에서의 참조 높이를 상기 원시 데이터에서의 실제 높이와 비교하는 것을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  23. 청구항 21 또는 청구항 22에 있어서,
    상기 코드는:
    상기 원시 데이터 및 호모그래피에 기초하여 지상 포지션을 결정하고;
    상기 지상 포지션에 기초하여 제2 루트 포지션을 계산하고;
    상기 출력 데이터를 생성하기 위해 상기 제2 루트 포지션을 상기 제1 루트 포지션과 조합하도록
    상기 프로세서에 지시하는 것인, 비일시적 컴퓨터 판독가능 매체.
  24. 청구항 23에 있어서,
    상기 코드는 상기 호모그래피를 정의하도록 상기 프로세서에 지시하는 것인, 비일시적 컴퓨터 판독가능 매체.
  25. 청구항 23 또는 청구항 24에 있어서,
    상기 코드는:
    상기 사람의 피처에 대해 3차원 포즈 추정 프로세스를 적용함으로써 제3 루트 포지션을 계산하고;
    상기 출력 데이터를 생성하기 위해 상기 제3 루트 포지션을 상기 제1 루트 포지션 및 상기 제2 루트 포지션과 조합하도록
    상기 프로세서에 지시하는 것인, 비일시적 컴퓨터 판독가능 매체.
  26. 청구항 25에 있어서,
    상기 코드는 조합할 때 상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션을 평균화하도록 상기 프로세서에 지시하는 것인, 비일시적 컴퓨터 판독가능 매체.
  27. 청구항 26에 있어서,
    상기 코드는 출력 데이터를 생성하기 위해 가중 평균을 계산하도록 상기 프로세서에 지시하는 것인, 비일시적 컴퓨터 판독가능 매체.
  28. 청구항 26에 있어서,
    상기 코드는 상기 가중 평균을 상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션의 사전 지식에 기초로 하도록 상기 프로세서에 지시하는 것인, 비일시적 컴퓨터 판독가능 매체.
  29. 청구항 26 내지 청구항 28 중 어느 한 항에 있어서,
    상기 코드는:
    상기 제1 루트 포지션, 상기 제2 루트 포지션 및 상기 제3 루트 포지션 중 하나가 이상치인지 여부를 결정하고;
    상기 이상치를 폐기하도록
    상기 프로세서에 지시하는 것인, 비일시적 컴퓨터 판독가능 매체.
KR1020237021894A 2020-12-04 2020-12-04 이미지 또는 비디오 내의 객체 3차원 위치 식별 KR20230113371A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2020/061548 WO2022118061A1 (en) 2020-12-04 2020-12-04 Object three-dimensional localizations in images or videos

Publications (1)

Publication Number Publication Date
KR20230113371A true KR20230113371A (ko) 2023-07-28

Family

ID=81853857

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237021894A KR20230113371A (ko) 2020-12-04 2020-12-04 이미지 또는 비디오 내의 객체 3차원 위치 식별

Country Status (7)

Country Link
US (1) US20230306636A1 (ko)
EP (1) EP4256522A4 (ko)
JP (1) JP2024501161A (ko)
KR (1) KR20230113371A (ko)
AU (1) AU2020480103B2 (ko)
CA (1) CA3200934A1 (ko)
WO (1) WO2022118061A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116580099A (zh) * 2023-07-14 2023-08-11 山东艺术学院 一种基于视频与三维模型融合的林地目标定位方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5839971B2 (ja) * 2010-12-14 2016-01-06 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
WO2018235923A1 (ja) * 2017-06-21 2018-12-27 国立大学法人 東京大学 位置推定装置、位置推定方法、及びプログラム
CN112017236B (zh) * 2020-07-13 2023-10-31 魔门塔(苏州)科技有限公司 一种基于单目相机计算目标物位置的方法及装置

Also Published As

Publication number Publication date
AU2020480103A1 (en) 2023-06-29
AU2020480103B2 (en) 2023-11-09
EP4256522A1 (en) 2023-10-11
US20230306636A1 (en) 2023-09-28
JP2024501161A (ja) 2024-01-11
CA3200934A1 (en) 2022-06-09
WO2022118061A1 (en) 2022-06-09
EP4256522A4 (en) 2024-02-14

Similar Documents

Publication Publication Date Title
US10789765B2 (en) Three-dimensional reconstruction method
JP6560480B2 (ja) 画像処理システム、画像処理方法、及びプログラム
KR101791590B1 (ko) 물체 자세 인식장치 및 이를 이용한 물체 자세 인식방법
CN107273846B (zh) 一种人体体型参数确定方法及装置
US7825948B2 (en) 3D video conferencing
JP6793151B2 (ja) オブジェクトトラッキング装置、オブジェクトトラッキング方法およびオブジェクトトラッキングプログラム
US10347029B2 (en) Apparatus for measuring three dimensional shape, method for measuring three dimensional shape and three dimensional shape measurement program
US11854228B2 (en) Methods and systems for volumetric modeling independent of depth data
KR102416523B1 (ko) 다시점 카메라로부터 획득된 조인트 기반의 캘리브레이션을 이용한 3차원 스켈레톤 생성 방법
CN111373442A (zh) 三维点群数据生成方法、位置推断方法、三维点群数据生成装置以及位置推断装置
JP2018207252A (ja) 画像処理システム、画像処理システムの制御方法、及び、プログラム
US20230306636A1 (en) Object three-dimensional localizations in images or videos
CN107330974B (zh) 商品展示方法、装置及移动设备
US20220084244A1 (en) Information processing apparatus, information processing method, and program
CN107515844B (zh) 字体设置方法、装置及移动设备
CN111354088A (zh) 环境地图建立方法以及其***
KR102083293B1 (ko) 모션 정보를 이용한 객체 복원 장치 및 이를 이용한 객체 복원 방법
JP7343237B2 (ja) 追跡方法
CN114463663A (zh) 一种人员身高的计算方法、装置、电子设备及存储介质
US12026823B2 (en) Volumetric imaging
US20230410451A1 (en) Augmented reality implement apparatus and method using mobile scanned object model scaling
JP7323234B2 (ja) ガイド方法
US20230008227A1 (en) Analysis apparatus, data generation method, and non-transitory computer readable medium
KR20220156873A (ko) 다수의 포즈 추정 엔진을 사용한 손의 마커리스 모션 캡쳐
Fikkert Pose Estimation in Stereo

Legal Events

Date Code Title Description
A201 Request for examination