KR20230035403A - 준-지도된(semi-supervised) 키포인트 기반 모델 - Google Patents

준-지도된(semi-supervised) 키포인트 기반 모델 Download PDF

Info

Publication number
KR20230035403A
KR20230035403A KR1020237004635A KR20237004635A KR20230035403A KR 20230035403 A KR20230035403 A KR 20230035403A KR 1020237004635 A KR1020237004635 A KR 1020237004635A KR 20237004635 A KR20237004635 A KR 20237004635A KR 20230035403 A KR20230035403 A KR 20230035403A
Authority
KR
South Korea
Prior art keywords
neural network
training
loss function
keypoint
keypoints
Prior art date
Application number
KR1020237004635A
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 KR20230035403A publication Critical patent/KR20230035403A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7753Incorporation of unlabelled data, e.g. multiple instance learning [MIL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2155Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/254Fusion techniques of classification results, e.g. of results related to same input data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/16Image acquisition using multiple overlapping images; Image stitching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • G06V10/464Salient features, e.g. scale invariant feature transforms [SIFT] using a plurality of salient features, e.g. bag-of-words [BoW] representations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/809Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of classification results, e.g. where the classifiers operate on the same input data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

라벨링된 트레이닝 데이터와 라벨링되지 않은 트레이닝 데이터를 포함하는 트레이닝 데이터 세트를 사용하여 보이지 않는 객체들의 키포인트를 예측하도록 신경망을 트레이닝하는 방법을 설명한다. 이 방법은 복수의 트레이닝 샘플을 포함하는 트레이닝 데이터세트를 수신하는 단계와, 상기 트레이닝 샘플 각각은 개별 장면으로부터의 하나 이상의 객체의 동기화된 이미지 세트를 포함하고, 상기 세트 내의 각 이미지는 서로 다른 관점에서 개별 카메라에 의해 동시에 촬영되고, 그리고 상기 동기화된 이미지 세트의 서브세트는 실측 키포인트로 라벨링되고 세트 내의 나머지 이미지는 라벨링되지 않으며; 그리고 복수의 트레이닝 샘플의 하나 이상의 트레이닝 샘플 각각에 대해: 지도된 손실 함수와 비지도된 손실 함수의 조합인 손실 함수를 최소화하기 위해 신경망의 파라미터들의 현재 값을 업데이트함으로써 트레이닝 샘플에 대해 신경망을 트레이닝하는 단계를 포함한다.

Description

준-지도된(SEMI-SUPERVISED) 키포인트 기반 모델
본 출원은 2020년 7월 28일에 출원된 미국 가출원 번호 63/057,861에 대한 우선권을 주장하는 정규 출원으로서, 그 전문은 참조로 본 명세서에 포함된다.
본 명세서는 기계 학습 모델을 트레이닝하는 것에 관한 것이다.
기계 학습 모델은 입력을 수신하고 수신된 입력에 기초하여 출력, 예를 들어 예측 출력을 생성한다. 일부 기계 학습 모델은 파라메트릭 모델이며 수신된 입력과 모델의 파라미터 값에 기초하여 출력을 생성한다.
일부 기계 학습 모델은 수신된 입력에 대한 출력을 생성하기 위해 다중 계층의 모델을 사용하는 심층 모델이다. 예를 들어, 심층 신경망은 출력 계층 및 출력을 생성하기 위해 수신된 입력에 각각 비선형 변환을 적용하는 하나 이상의 은닉 계층을 포함하는 심층 기계 학습 모델이다.
본 명세서는 라벨링된 트레이닝 데이터와 라벨링되지 않은 트레이닝 데이터를 포함하는 트레이닝 데이터 세트를 사용하여 보이지 않는 객체들의 키포인트를 예측하기 위해 신경망을 트레이닝하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터상의 컴퓨터 프로그램으로 구현된 시스템을 설명한다.
일 양태에 따르면, 라벨링된 트레이닝 데이터와 라벨링되지 않은 트레이닝 데이터를 포함하는 트레이닝 데이터 세트를 이용하여 객체들의 키포인트를 예측하는 신경망을 트레이닝하기 위한 방법이 제공된다. 방법은 복수의 트레이닝 샘플을 포함하는 트레이닝 데이터세트를 수신하는 단계를 포함하고, 각각의 트레이닝 샘플은 개별 장면으로부터의 하나 이상의 객체의 동기화된 이미지 세트를 포함하고, 세트 내의 각각의 이미지는 서로 다른 관점에서 개별 카메라에 의해 동시에 촬영되고, 그리고 동기화된 이미지 세트의 서브세트는 실측 키포인트로 라벨링되고 세트 내의 나머지 이미지는 라벨링되지 않는다. 복수의 트레이닝 샘플의 하나 이상의 트레이닝 샘플 각각에 대해: 신경망은 손실 함수를 최소화하기 위해 신경망의 파라미터들의 현재 값을 업데이트함으로써 트레이닝 샘플에 대해 트레이닝된다. 손실 함수는 지도된 손실 함수와 비지도된 손실 함수의 조합이다. 지도된 손실 함수는 실측 키포인트와 신경망의 파라미터들의 현재 값에 따라 상기 라벨링된 이미지에 대해 신경망에 의해 생성된 예측 키포인트 사이의 차이를 최소화한다. 비지도된 손실 함수는 파라미터들의 현재 값에 따라 동일한 장면의 서로 다른 관점에서 촬영된 상기 라벨링되지 않은 이미지에 대해 신경망에 의해 생성된 각각의 예측 키포인트 간의 멀티-뷰 불일치를 최소화한다.
키포인트는 특정 작업을 수행하기 위해 검출하는데 유용한 환경의 임의의 관심 지점일 수 있다. 예를 들어, 키포인트는 객체 또는 객체의 움직임(motion)을 인식하는데 중요한 객체 상의 지점일 수 있다. 키포인트는 움직이는 동물의 머리, 앞발, 몸통 또는 꼬리의 한 지점일 수 있다. 다른 예로, 키포인트는 로봇 팔 또는 다리의 관절일 수 있다. 실측(ground-truth) 키포인트로 라벨링된 트레이닝 데이터 세트의 이미지는 신경망에 키포인트로 간주될 초기 타겟 포인트를 제공한다. 특정 트레이닝 방법은 키포인트를 예측하기 위해 신경망을 효과적으로 트레이닝하는데 필요한 라벨링된 트레이닝 데이터의 양을 크게 줄인다. 트레이닝 데이터세트는 임의의 라벨링된 이미지 없이 라벨링되지 않은 동기화된 이미지 세트만을 갖는 트레이닝 샘플을 포함할 수 있음을 알 수 있다(빈 세트도 서브세트임).
방법은 실질적으로 동시에 서로 다른 관점에서 환경의 이미지를 캡처하기 위해 동기화된 복수의 카메라 또는 복수의 서로 다른 관점을 캡처하도록 구성된 단일 카메라를 활용할 수 있다. 하나 이상의 카메라는 환경의 비디오 시퀀스를 캡처하도록 구성될 수 있고 이미지는 비디오 시퀀스의 프레임에 해당할 수 있다.
장면에 있는 하나 이상의 객체는 동적 객체일 수 있다. 예를 들어, 개체는 움직이거나 상호 작용할 때 변형될 수 있다.
신경망은 (i) 하나 이상의 다운-샘플링 계층, (ii) 하나 이상의 컨볼루션 계층, (iii) 하나 이상의 잔여 계층, (iv) 하나 이상의 업-샘플링 계층, (v) 공간 argmax 계층, (vi) 쌍선형(bilinear) 업-샘플링 계층, (vii) 3D 추정 계층, 또는 (viii) 소프트맥스 계층 중 하나 이상을 포함할 수 있다.
신경망은 장면을 묘사하는 입력 이미지를 수신하고 입력 이미지를 처리하여 출력을 생성하도록 구성된다. 신경망의 출력은 장면에 있는 하나 이상의 객체의 복수의 서로 다른 가능한 키포인트 각각에 대한 각각의 히트맵을 포함한다. 히트맵은 병렬로, 즉 신경망을 통해 단일 경로(pass)로 생성될 수 있다. 주어진 가능한 키포인트에 대한 히트-맵은 주어진 가능한 키포인트가 그 위치에 위치할 가능성을 나타내는 이미지의 복수의 위치 각각에 대한, 예를 들어 이미지의 각 픽셀에 대한 개별 스코어를 포함한다.
손실 함수는 파라미터들을 정규화하기 위한 추가 성분을 포함할 수 있다.
손실함수는 지도된 손실함수, 비지도된 손실함수 및 추가 성분의 가중 조합일 수 있다.
방법은 트레이닝 샘플의 각각의 라벨링된 이미지에 대해 및 라벨링된 이미지의 각각의 실측 키포인트에 대해: 라벨링된 이미지의 실측 키포인트에 대한 각각의 실측 히트맵을 구성하는 단계 및 파라미터들의 현재 값을 갖는 신경망을 사용하여, 라벨링된 이미지의 실측 키포인트에 대한 각각의 예측 히트맵을 생성하는 단계를 더 포함할 수 있다. 즉, 실측 키포인트의 각각의 예측 히트맵은 신겨망을 사용하여 상기 라벨링된 이미지를 처리함으로써 생성된 실측 키포인트에 해당하는 예측 히트맵일 수 있다. 방법은 각각의 실제 히트맵 및 각각의 예측 히트맵의 쿨백-라이블러(KL) 발산을 계산하는 단계를 더 포함할 수 있다. 지도된 손실 함수는 계산된 KL 발산의 조합일 수 있다. 예를 들어, 조합은 라벨링된 이미지의 각각의 실측 키포인트와 각각의 라벨링된 이미지에 대해 계산된 KL 다이버전스의 조합일 수 있다. 라벨링되지 않은 이미지가 해당하는 관점에 대한 실측 키포인트의 위치를 유도함으로써 트레이닝 샘플의 라벨링되지 않은 이미지에 대해 KL 발산이 계산될 수도 있다. 이 위치에 대한 실측 히트맵이 구성될 수 있으며 실측 히트맵과 예상 히트맵 사이의 KL 발산이 계산된다. 이러한 방식으로 라벨링되지 않은 이미지로부터 계산된 KL 발산은 지도된 손실 함수를 제공하기 위해 상기 라벨링된 이미지에 대해 계산된 KL 발산과 결합될 수 있다.
방법은 트레이닝 샘플의 라벨링되지 않은 이미지 각각에 대해: 라벨링되지 않은 이미지에 대한 각각의 부트스트랩된 키포인트를 생성하는 단계를 더 포함할 수 있으며, 부트스트랩된 키포인트는 라벨링되지 않은 이미지에 대한 라벨로 취급된다. 방법은 각 부트스트랩된 키포인트에 대해: 부트스트랩된 키포인트의 각각의 부트스트랩된 히트맵을 구성하는 단계와; 파라미터들의 현재 값에 따라 신경망을 사용하여, 부트스트랩된 키포인트의 각각의 예측 히트맵을 생성하는 단계와; 그리고 각각의 부트스트랩된 히트맵 및 각각의 예측 히트맵의 KL 발산를 계산하는 단계를 더 포함할 수 있다. 비지도된 손실 함수는 계산된 KL 발산의 조합일 수 있다. 예를 들어, 신경망은 라벨링되지 않은 이미지 각각에 대해 예측 히트맵을 생성하는데 사용될 수 있다. 이러한 예측 히트맵은 키포인트의 위치에 대한 개별 추정치를 제공한다. 라벨링되지 않은 이미지는 동일한 장면에 대해 서로 다른 관점을 제공하므로, 키포인트, 즉 부트스트랩된 키포인트의 위치에 대한 최종 추정치를 제공하기 위해 개별 추정치가 결합될 수 있다. 그런 다음 부트스트랩된 키포인트가 라벨로서 사용될 수 있다. 히트맵은 실측 키포인트에 대해 "실측" 히트맵이 구성되는 방식과 유사한 방식으로 부트스트랩된 키포인트로부터 구성될 수 있다. 원래 예측된 히트맵과 "실측" 부트스트랩된 키포인트 히트맵 사이의 KL 발산이 계산될 수 있다. 이 프로세스는 각 키포인트에 대해 반복될 수 있으며 각 키포인트에 대해 계산된 KL 발산은 비지도된 손실을 제공하기 위해 추가로 결합될 수 있다.
라벨링되지 않은 이미지의 각각의 부트스트랩 키포인트를 생성하는 단계는 가중된 최소-자승(least-squares) 최적화 문제를 해결하는 단계를 포함할 수 있다. 예를 들어, 부트스트랩된 키포인트의 위치를 제공하기 위한 키포인트에 대한 개별 추정치의 조합은 가중된 최소 자승 최적화 문제를 해결하는 것을 포함할 수 있다.
각 KL 발산는 손실 함수의 관련된 중요도 인자에 의해 더 가중될 수 있다. 각 KL 발산의 관련된 중요도 인자는 각각의 예측 히트맵의 발산의 함수일 수 있다.
개별 장면에 있는 하나 이상의 객체는 (i) 하나 이상의 로봇 시스템 또는 (ii) 하나 이상의 로봇 시스템이 상호 작용하는 환경에 있는 하나 이상의 객체일 수 있다.
트레이닝 데이터세트는 로봇 시스템이 자동화된 스크립트 액션을 수행하는 동안 이미지를 캡처함으로써 획득될 수 있다. 예를 들어, 로봇 시스템은 서로 다른 위치에서 로봇 및 환경의 이미지 캡처를 제공하기 위해 환경에서 다양한 방향으로 이동하도록 구성될 수 있다. 다른 예에서, 트레이닝 데이터세트는 작업의 시연을 제공하기 위해 인간 조작자가 로봇 시스템을 제어하는 위치의 이미지 캡처에 기초하여 획득될 수 있다.
신경망에 의해 생성된 예측 키포인트는 로봇 시스템을 제어하는데 사용될 수 있다. 예를 들어 키포인트는 로봇 시스템이 조작할 환경에 있는 객체들에 해당할 수 있다. 제어 시스템은 추적된 키포인트들과 로봇 시스템의 상태 사이의 위치 및 관계에 기초하여 로봇 시스템으로 액션을 발행(issue)할 수 있습니다. 액션에는 예를 들어 로봇 시스템의 하나 이상의 관절이나 부품 또는 상위 수준 명령(command)에 대한 위치, 속도 또는 힘/토크/가속도 연결이 포함될 수 있다
하나 이상의 로봇 시스템을 제어하는 것은 제어 정책을 학습하기 위해 강화 학습 기술을 사용하는 것을 포함할 수 있다. 예측 키포인트는 원시 이미지 대신 로봇 작업에 대한 시각적 특징으로서 사용될 수 있다. 따라서, 예측 키포인트는 강화 학습 시스템이 기반으로 행동을 결정하는 환경의 관찰/특성화의 일부를 형성할 수 있다. 그런 다음 강화 학습 시스템은 임의의 강화 학습 기술에 따라 작업을 수행하기 위한 액션 선택 정책을 학습할 수 있다. 시스템은 수신된 환경의 관찰, 즉 예측 키포인트를 기반으로 로봇 시스템이 수행할 액션을 선택할 수 있다. 그러면 로봇 시스템이 액션을 수행할 수 있다. 액션은 환경과 상호 작용하여 새로운 액션을 선택하는데 사용할 수 있는 새로운 관찰을 생성한다. 환경은 실세계 환경일 수 있고, 트레이닝 중인 환경일 수도 있고 실제 환경의 시뮬레이션일 수도 있다. 이러한 방식으로, 관찰은 실제 환경과 관련되고 선택된 액션은 로봇 시스템에 의해 수행될 액션과 관련된다. 하나 이상의 신경망으로 구현될 수 있는 액션 선택 정책은 실제 환경을 감지하는 하나 이상의 센서로부터 관찰을 획득함으로써 실제 환경과 상호 작용하면서 작업을 수행하도록 로봇 시스템을 제어하며, 이 경우 동기화된 카메라 이미지를 획득하고, 예측 키포인트를 생성하고, 로봇 에이전트가 작업을 수행하도록 제어하는 액션을 선택하기 위해 정책 출력을 사용한다.
본 명세서에 기술된 주제는 다음의 이점들 중 하나 이상을 실현하기 위해 특정 실시예로 구현될 수 있다. 신경망을 트레이닝하기 위해 소수의 라벨링된 샘플에 대한 지도된 손실과 함께 새로운 자기-지도된(self-supervised) 손실을 사용함으로써, 설명된 트레이닝 기술은 트레이닝된 신경망이 지도의 양, 즉 신경망의 트레이닝 데이터에 포함된 라벨링된 샘플의 양을 줄이면서 입력 이미지에서 캡처된 동적 객체의 3D 키포인트를 강력하게 추적할 수 있도록 한다.
특히, 설명된 기술은 사전 결정된 키포인트(예를 들어, 인간 주석)로 라벨링된 소량의 이미지 데이터를 사용하고, 라벨링되지 않았지만 멀티 뷰(multi-view) 3D 일치(consistency)를 통해 자기-지도하기 위해 서로 다른 관점에서 다수의 카메라에 의해 캡처된 동기화된 멀티-뷰 이미지 데이터의 큰 코퍼스(corpus)를 사용한다. 트레이닝에 사용되는 데이터는 일반적으로 저렴하게 구할 수 있다(예를 들어, RGB 카메라 이미지). 장면 자체는 카메라가 동기화되는 한 동적일 수 있다. 이러한 방식으로, 트레이닝된 신경망은 뷰와 사람 주석, 즉 라벨링된 이미지의 라벨 모두에 일치하는(consistent) 객체(보이지 않는 객체, 즉 신경망을 트레이닝하는데 사용되는 이미지에 나타나지 않는 객체)의 키포인트를 생성할 수 있다. 따라서, 설명된 기술은 주석자(annotator)의 기본 설정에 근거한 강력한 검출기로 이어질 수 있으며, 깊이 이미지, 3D 스캔 또는 임의의 다른 사전 프레임된 모델(예를 들어, 객체 분할 또는 전경/배경 검출)과 같은 고품질 데이터 없이도 강력하고 뷰 독립적인 키포인트 추적을 가능하여 고품질 데이터를 획득하는데 필요한 계산 리소스를 줄이고 트레이닝 시스템의 복잡성을 줄일 수 있다.
또한, 설명된 기술은 배경이 풍부한 경우에 적합하지 않은 이미지 공간 재구성에 의존하지 않는다. 트레이닝된 신경망에 의해 검출된 키포인트들은 또한 표면 포인트에 연결될 필요가 없다. 즉, 이들은 의미론적으로 그리고 기하학적으로 일치하는 한 객체 내부에 있거나 물리적 위치에 해당하지 않을 수 있다.
구조화되지 않은 시각적 표현과 달리, 키포인트는 사람이 이해할 수 있으며 로봇 컨트롤러에 실행 가능한 표현을 제공한다. 동적 객체들의 3D 키포인트에 대한 강력한 추적 기능을 제공함으로써, 설명된 기술을 통해 트레이닝된 신경망을 사용하여 제어되는 로봇은 적은 양의 인력만으로 정밀도와 일반화가 필요한 작업을 수행할 수 있다. 종종 복잡한 피드백이 필요하고 로봇 에이전트를 트레이닝하는데 오랜 시간이 걸리는 강화 학습 작업의 경우(특히 작업이 원시 이미지 처리가 필요한 경우), 트레이닝된 신경망에 의해 생성된 키포인트는 시각적 장면의 좋은 요약 역할을 할 수 있으며 원시 이미지로부터 학습할 필요가 없도록 로봇 작업을 위한 시각적 특징으로서 사용될 수 있다.
본 명세서의 주제의 하나 이상의 실시예의 세부사항은 첨부된 도면 및 아래의 설명에서 설명된다. 본 발명의 다른 특징, 양태 및 이점은 설명, 도면 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 신경망 시스템을 도시한다.
도 2는 지도된 손실 함수를 결정하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 비지도된 손실 함수를 결정하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 키포인트 예측 신경망을 트레이닝하기 위한 예시적인 프로세스의 흐름도이다.
도 5는 키포인트 예측 신경망의 예시적인 아키텍처를 도시한다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
본 명세서는 라벨링된 트레이닝 데이터와 라벨링되지 않은(비-라벨링된) 트레이닝 데이터를 포함하는 트레이닝 데이터 세트를 사용하여 보이지 않는 객체들의 키포인트를 예측하기 위해 키포인트 예측 신경망을 트레이닝하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터상의 컴퓨터 프로그램으로 구현된 시스템을 설명한다.
일부 구현에서, 객체는 사람, 동물, 차량 또는 로봇 에이전트와 같은 동적 객체일 수 있다. 객체의 키포인트(Keypoint, 핵심 포인트)는 객체 상의 지점, 예를 들어 객체를 인식하거나 객체의 모션을 인식하는데 중요한 포인트이다. 예를 들어, 키포인트는 움직이는 동물의 머리, 앞발, 몸통 또는 꼬리에 있는 지점일 수 있다. 다른 예로, 키포인트는 로봇 팔 또는 다리의 관절일 수 있다. 일부 다른 구현에서, 객체는 환경, 예를 들어 로봇 에이전트가 상호 작용하는 환경에 있는 정적 객체일 수 있다.
일부 구현에서, 트레이닝된 신경망에 의해 예측된 키포인트는 예를 들어 강화 학습 기술을 사용하여 제어 정책을 학습하여 로봇 작업(task)을 수행하는 로봇 시스템을 제어하는데 사용될 수 있다. 이러한 구현에서, 예측된 키포인트들은 시각적 장면의 좋은 요약 역할을 할 수 있으며, 원시(raw) 이미지로부터 특징을 학습할 필요가 없도록 로봇 작업을 위한 시각적 특징으로 사용될 수 있으므로 로봇 에이전트가 해당 작업을 수행하도록 트레이닝하는 시간을 줄일 수 있다. 예를 들어, 로봇 에이전트가 오디오 플러그를 소켓에 삽입해야 하는 작업이 주어지면, 트레이닝된 신경망이 플러그 팁, 플러그 베이스 및 소켓 위치인 키포인트를 예측하는데 사용될 수 있다. 다른 예로서, 로봇 에이전트가 환경을 탐색(navigate)해야 하는 작업이 주어지면(예를 들어, 목적지에 도달하기 위해 거리를 탐색하는 자율 차량), 트레이닝된 신경망은 자율 차량이 보행자 및 다른 차량과의 충돌을 피하고 안전하게 목적지에 도달할 수 있도록 도로에 있는 보행자 및/또는 다른 차량의 키포인트를 예측하는데 사용될 수 있다. 이러한 예측된 키포인트들을 통해 로봇 에이전트는 주변 환경을 탐색하고 매우 정확하게 작업을 신속하게 완료할 수 있다.
도 1은 예시적인 신경망 시스템을 도시한다. 시스템(100)은 아래에 설명된 시스템, 구성 요소 및 기술이 구현될 수 있는, 하나 이상의 위치에 있는 하나 이상의 컴퓨터상의 컴퓨터 프로그램으로 구현된 시스템의 예이다.
시스템(100)은 키포인트 예측 신경망(120)을 트레이닝하도록 구성된 트레이닝 엔진(110)을 포함한다. 트레이닝 엔진(110)은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 구성요소(components)로 구현될 수 있다.
키포인트 예측 신경망(120)은 복수의 파라미터를 갖는다. 시스템(100)은 네트워크(120)의 파라미터의 초기 값을 예를 들어 0 또는 적절한 분포로부터 샘플링된 랜덤 값으로 초기화할 수 있다.
일반적으로, 신경망(120)은 장면을 묘사하는 입력 이미지를 수신하고 그 입력 이미지를 처리하여 출력을 생성하도록 구성된다. 신경망(120)의 출력은 장면에서 하나 이상의 객체의 복수의 서로 다른 가능한 키포인트 각각에 대한 개별 히트맵(heat-map)을 포함한다. 히트맵은 병렬로, 즉 신경망을 통해 단일 경로(pass)로 생성될 수 있다. 주어진 가능한 키포인트에 대한 히트맵은 주어진 가능한 키포인트가 그 위치에 위치할 가능성(likelihood, 우도)을 나타내는 이미지의 복수의 위치(2D 위치) 각각에 대한, 예를 들어 이미지의 각 픽셀에 대한 개별 스코어를 포함한다.
신경망(120)은 (i) 하나 이상의 다운-샘플링 계층, (ii) 하나 이상의 컨볼루션 계층, (iii) 하나 이상의 잔여(residual) 계층, (iv) 하나 이상의 업 샘플링 계층, (v) 공간 argmax 계층, (vi) 쌍선형(bilinear) 업-샘플링 계층, (vii) 3D 추정 계층, 또는 (viii) 소프트맥스 계층 중 하나 이상을 포함할 수 있다.
키포인트 예측 신경망(120)의 예시적인 아키텍처(500)가 도 5에 도시되어 있다. 네트워크에 대한 입력은 장면을 묘사하는 단일 카메라 이미지(502)이고, 네트워크의 출력(534)은 장면에서 하나 이상의 객체의 복수의 서로 다른 가능한 키포인트 각각에 대한 개별 히트맵을 포함한다.
신경망의 예시적인 아키텍처(500)는 (i) 제1 컨볼루션 다운-샘플링 계층(504)에 이어 차례로 (ii) 제1 컨볼루션 신경망 계층(508), (iii) 제2 컨볼루션 다운-샘플링 계층(510), (iv) 제2 컨볼루션 신경망 계층, (v) 3개의 잔여 블록의 스택(블록(514), 블록(516) 이어 블록(518) 포함), (vi) 제3 컨볼루션 신경망 계층(520), (vii) 컨볼루션 업-샘플링 계층(522), (viii) 제4 컨볼루션 신경망 계층(524), (ix) 쌍선형 업-샘플링 계층(526), (x) 공간 소프트맥스 계층(528)이 뒤따른다.
아키텍처(500)의 각각의 계층은 개별 계층 입력을 수신하고 개별 계층 출력을 생성한다. 제1 컨벌루션 다운-샘플링 계층은 계층 입력으로서 입력 이미지(502)를 수신하도록 구성된다. 각 계층의 계층 출력은 아키텍처(500)의 다음 계층, 즉 다음 계층 또는 출력 계층에 대한 입력으로 사용된다. 아키텍처(500)의 각 계층은 신경망 파라미터의 현재 값에 따라 수신 입력으로부터 출력을 생성한다.
일부 구현에서, 계층은 다수의 이전 계층의 출력을 입력으로 수신할 수 있다. 예를 들어, 계층(526)은 계층(524)의 출력과 계층(504)의 출력 모두를 입력으로 수신할 수 있다. 계층(522)은 계층(520)의 출력과 계층(510)의 출력 모두를 입력으로 수신할 수 있다. 계층(524)은 계층(522)의 출력과 계층(508)의 출력 모두를 입력으로 수신할 수 있다.
도 1의 시스템(100)은 3D 추정 계층, 예를 들어 장면에서 하나 이상의 객체의 각각의 가능한 키포인트의 3D 위치의 추정치를 포함하는 출력(532)을 생성하기 위해 상이한 카메라 이미지에 대해 키포인트 예측 신경망에 의해 생성된 히트맵을 처리하도록 구성된 3D 추정 계층(530)을 더 포함할 수 있다.
다시 도 1을 참조하면, 신경망(120)을 트레이닝하기 위해, 트레이닝 엔진(110)은 복수의 트레이닝 샘플을 포함하는 트레이닝 데이터세트(102)를 수신한다. 각 트레이닝 샘플에는 개별 장면의 하나 이상의 객체에 대한 동기화된 이미지 세트가 포함되어 있다. 세트 내의 각 이미지는 동일한 장면의 다른 관점(또는 시각)에서 각각의 카메라에 의해 동시에 촬영된다. 각 트레이닝 샘플의 동기화된 이미지 세트에는 라벨링된 이미지의 서브세트와 라벨링되지 않은 이미지의 서브세트가 포함된다. 라벨링된 이미지의 서브세트에 있는 각각의 라벨링된 이미지는 장면에 있는 하나 이상의 객체에 대한 중요한 포인트(지점)를 나타내는 실측(ground-truth) 키포인트로 라벨링된다. 라벨링되지 않은 이미지의 서브세트에 있는 각각의 이미지는 실측 키포인트로 라벨링되지 않는다. 일부 트레이닝 샘플에는 라벨링된 이미지가 없을 수도 있다.
복수의 트레이닝 샘플 중 하나 이상의 트레이닝 샘플 각각에 대해, 시스템(100)은 신경망(120)의 파라미터의 현재 값을 업데이트하여 손실 함수(116)를 최소화함으로써 트레이닝 샘플에 대해 신경망(120)을 트레이닝한다. 손실 함수는 지도된 손실 함수(112)와 비지도된 손실 함수(114)의 조합이다.
Lsup로 표시되는 지도된 손실 함수(112)는 신경망(120)의 파라미터의 현재 값에 따라 상기 라벨링된 이미지에 대해 신경망(120)이 생성한 개별 예측 키포인트과 실측 키포인트 간의 차이를 최소화한다.
예를 들어, 트레이닝 샘플의 각각의 라벨링된 이미지 및 그 라벨링된 이미지의 각각의 실측 키포인트에 대해, 트레이닝 엔진(110)은 라벨링된 이미지에서 실측 키포인트의 개별 실측 히트맵을 구성한다. 트레이닝 엔진(110)은 신경망(120)의 파라미터의 현재 값을 갖는 신경망(120)을 사용하여, 라벨링된 이미지에서 실측 키포인트의 각각의 예측(된) 히트맵을 생성한다. 트레이닝 엔진(110)은 개별 실측 히트맵 및 개별 예측 히트맵의 쿨백-라이블러(Kullback-Leibler: KL) 발산을 계산한다. 지도된 손실 함수는 계산된 KL 발산의 조합이다. 지도된 손실 함수를 결정하기 위한 프로세스는 도 2를 참조하여 더 자세히 설명된다.
Lunsup으로 표시되는 비지도된 손실 함수(114)는 신경망(120)의 파라미터의 현재 값에 따라 동일한 장면의 서로 다른 관점에서 촬영된 라벨링되지 않은 이미지에 대해 신경망(120)이 생성한 각 예측 키포인트 간의 멀티-뷰(multi-view) 불일치를 최소화한다. 따라서, 비지도된 손실 함수(114)는 동일한 장면에 있는 하나 이상의 객체에 대해 신경망(120)이 생성한 예측 키포인트가 라벨링되지 않은 이미지에 걸쳐 일관(일치)되도록 권장하는데, 이는 라벨링되지 않은 이미지가 동일한 장면의 다른 관점에서 다른 카메라에 의해 촬영되어 동일한 개체를 묘사하기 때문이다.
예를 들어, 트레이닝 샘플의 라벨링되지 않은 각 이미지에 대해, 트레이닝 엔진(110)은 라벨링되지 않은 이미지에 대한 라벨로서 취급되는 라벨링되지 않은 이미지에 대한 각각의 부트스트랩된(bootstrapped) 키포인트를 생성한다. 각 부트스트랩된 키포인트에 대해, 엔진(110)은 부트스트랩된 키포인트의 개별 부트스트랩된 히트맵을 구성한다. 엔진(110)은 파라미터의 현재 값에 따라 신경망(120)을 사용하여, 부트스트랩된 키포인트의 각각의 예측된 히트맵을 생성한다. 엔진(110)은 각각의 부트스트랩된 히트맵 및 각각의 예측된 히트맵의 KL 발산를 계산한다. 비지도된 손실 함수(114)는 계산된 KL 발산의 조합이다. 비지도된 손실 함수(114)를 결정하기 위한 프로세스는 도 3을 참조하여 더 자세히 설명된다.
일부 구현에서, 손실 함수(116)는 신경망(120)의 파라미터를 정규화하기 위한 추가 성분(component)을 포함할 수 있다. 손실 함수(116)는 지도된 손실 함수, 비지도된 손실 함수 및 추가 성분의 가중(된) 조합일 수 있다. 예를 들어, Ltotal로 표시되는 손실 함수(116)는 다음과 같은 형식을 취할 수 있다.
Figure pct00001
여기서 α,λ는 하이퍼파라미터 또는 고정 상수인 가중치이고,
Figure pct00002
는 키포인트 예측 신경망(120)의 모든 비편향(non-bias) 파라미터에 대한 L2 정규화이다.
트레이닝 샘플의 하나 이상의 라벨링된 이미지와 하나 이상의 라벨링되지 않은 이미지의 각 배치(batch)에 대해, 트레이닝 엔진(110)은 기존의 신경망 트레이닝 기술, 예를 들어 기울기(gradient, 경사) 하강법 기반 트레이닝 기술을 사용하여 손실 함수(116)를 최소화하기 위해 신경망(120)의 파라미터의 현재 값을 업데이트함으로써 트레이닝 샘플에 대해 신경망(120)을 트레이닝한다. 특히, 트레이닝 엔진(110)은 손실 함수(116)의 기울기의 추정치를 결정하고 그 손실 함수(116)의 기울기의 추정치를 역전파하여 신경망(120)의 각각의 파라미터에 대한 각각의 업데이트된 값을 결정할 수 있다.
트레이닝 엔진(110)이 하나 이상의 트레이닝 예에 대해 신경망(120)을 트레이닝한 후, 시스템(100)은 파라미터의 최종 업데이트된 값을 갖는 트레이닝된 키포인트 예측 신경망(122)을 획득한다. 일부 구현에서, 시스템(100)은 트레이닝된 키포인트 예측 신경망(122)을 사용하여 새로운 이미지를 처리하여 그 새로운 이미지에 의해 묘사된 장면에서 하나 이상의 객체의 키포인트를 생성한다. 대안적으로 또는 추가적으로, 시스템(100)은 트레이닝된 키포인트 예측 신경망(122)을 사용하는 다른 시스템으로 트레이닝된 키포인트 예측 신경망(122)을 제공하여 새로운 이미지를 처리하여, 그 새로운 이미지에 의해 묘사된 장면에서 하나 이상의 객체의 키포인트을 생성할 수 있다. 이러한 경우 중 하나에서, 생성된 키포인트는 예를 들어 위에서 설명한 다운스트림 작업 중 하나와 같은 다운스트림 작업을 수행하는데 선택적으로 사용될 수 있다.
도 2는 키포인트 예측 신경망을 트레이닝하기 위한 지도된 손실 함수를 결정하기 위한 예시적인 프로세스(200)의 흐름도이다. 편의상, 프로세스(200)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 본 명세서에 따라 적절하게 프로그래밍된 신경망 시스템, 예를 들어 도 1의 신경망 시스템(100)은 프로세스(200)를 수행할 수 있다.
위에서 논의된 바와 같이, 각 트레이닝 샘플에는 라벨링된 이미지의 서브세트와 라벨링되지 않은 이미지의 서브세트가 포함된다. 각각의 라벨링된 이미지는 복수의 K개의 실측 키포인트로 라벨링된다. 각 실측 키포인트는 각각의 2D 위치 좌표와 연관된다.
각각의 라벨링된 이미지(c) 및 라벨링된 이미지(c) 내의 복수의 K개의 실측 키포인트의 각각의 실측 키포인트(k)에 대해, 시스템은 다음과 같이 단계(202-206)를 수행한다.
시스템은 라벨링된 이미지에 있는 실측 키포인트의 각각의 실측 히트맵을 구성한다(단계 202). 특히, 각각의 실측 키포인트(k)에 대해, 시스템은 실측 키포인트의 2D 위치 좌표에 기초하여 그리고 카메라 캘리브레이션(교정)에 기초하여 실측 키포인트의 3D 위치 좌표(xk)를 계산한다.
시스템은 3D 위치 좌표(xk)를 카메라(c)가 촬영한 라벨링된 이미지(Ic)의 이미지 평면 상에 투영한다. 라벨링된 이미지(Ic)에 역투영된(back-projected) 키포인트(k)의 이미지 좌표는 ick,jck로 표시될 수 있다. 시스템은 폭이 σ인 이미지 좌표(ick,jck)에 중심을 둔 가우시안 이미지를 구성한다. 이렇게 하면 다음 형식을 갖는 개별 실측 히트맵 Hck(ij)이 생성된다.
Figure pct00003
여기서 i와 j는 실측 히트맵의 좌표이다. 가우시안 이미지의 폭과 높이는 c라는 라벨링된 입력 이미지의 크기와 일치한다. 폭(σ)은 사전 결정된 하이퍼 파라미터이다.
시스템은 신경망의 파라미터들의 현재 값을 갖는 키포인트 예측 신경망을 사용하여, 라벨링된 이미지의 실측 키포인트의 각각의 예측(된) 히트맵을 생성한다(단계 204).
특히, f는 키포인트 예측 신경망, θ는 키포인트 예측 신경망의 파라미터라고 하면, 시스템은 다음과 같이 라벨링된 이미지(Ic)에서 실측 키포인트(k)의 각각의 예측 히트맵(Pck로 표시됨)을 생성한다.
Figure pct00004
여기서 softmax 연산은 각 키포인트 및 라벨링된 이미지에 대해 개별적으로 수행된다. 동일한 파라미터 값을 갖는 동일한 키포인트 예측 신경망이 각 시점(viewpoint)에 적용되어 해당 시점에서 촬영된 라벨링된 이미지의 모든 실측 키포인트에 대한 실측 히트맵을 획득한다는 점에 유의한다. 동일한 키포인트 예측 신경망이 각 시점에 적용되어 일반적으로 키포인트에 대한 예측 히트맵을 제공한다.
시스템은 각각의 실측 히트맵 및 각각의 예측 히트맵의 쿨백-라이블러(KL) 발산을 계산한다(단계 206). 각각의 실측 히트맵과 각각의 예측 히트맵의 KL 발산은 다음과 같이 나타낼 수 있다.
Figure pct00005
KL 발산는 Kullback, S. 및 Leibler, R.A(1951)의 정보 및 충분성(Information and Sufficiency), 수학 통계 연보, 22, 79-86(1951)에 자세히 설명되어 있다.
위의 방법은 트레이닝 샘플의 라벨링되지 않은 나머지 이미지도 포함할 수 있음을 알 수 있다. 실측 키포인트의 계산된 3D 위치 좌표(xk)는 라벨링되지 않은 각 이미지에 대해 실측 히트맵을 구성할 수 있는 2D 위치를 제공하기 위해 카메라 보정에 기초하여 라벨링되지 않은 이미지로 역투영될 수 있다. 그런 다음 KL 발산이 위에서 설명한 바와 같이 계산되고 지도된 손실 함수에 포함될 수 있다.
시스템은 각 라벨링된 이미지의 각 실측 키포인트에 대해 계산된 KL 발산를 결합하여 지도된 손실 함수를 결정한다(단계 208). 예를 들어, 지도된 손실 함수는 다음과 같이 결정될 수 있다.
Figure pct00006
일부 구현에서, 시스템은 계산된 KL 발산의 가중 조합을 결합하여 지도된 손실 함수를 결정할 수 있다. 각 KL 발산은 관련 중요도 인자(factor)로 가중될 수 있다. 각각의 KL 발산의 관련된 중요도 인자는 각각의 예측된 히트맵의 발산의 함수일 수 있다.
도 3은 키포인트 예측 신경망을 트레이닝하기 위한 비지도된 손실 함수를 결정하기 위한 예시적인 프로세스(300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 본 명세서에 따라 적절하게 프로그래밍된 신경망 시스템, 예를 들어 도 1의 신경망 시스템(100)은 프로세스(300)를 수행할 수 있다.
도 1의 설명에서 논의된 바와 같이, 각각의 트레이닝 샘플은 라벨링된 이미지의 서브세트와 라벨링되지 않은 이미지의 서브세트를 포함한다.
시스템은 트레이닝 샘플에서 라벨링되지 않은 이미지의 서브세트을 사용하여 비지도된 손실 함수를 결정한다. 라벨링되지 않은 이미지는 동일한 장면의 동시 이미지이다. 즉, 라벨링되지 않은 각 이미지는 동일한 장면의 다른 시점(또는 관점)에서 각각의 카메라에 의해 촬영되고, 라벨링되지 않은 모든 이미지는 각 카메라에 의해 동시에 촬영된다. 시스템에는 라벨링되지 않은 각 이미지에 대한 명시적인 라벨(즉, 실측 키포인트)이 없다.
따라서, 트레이닝 샘플의 라벨링되지 않은 각 이미지에 대해, 시스템은 라벨링되지 않은 이미지에 대한 각각의 부트스트랩된 키포인트를 생성한다(단계 302). 특히, 시스템은 장면의 하나 이상의 객체의 각각의 부트스트랩된 키포인트의 3D 위치 좌표를 추정한다. 부트스트랩된 각 키포인트의 3D 위치 좌표를 추정하기 위해, 시스템은 가중된 최소-자승 최적화 문제를 해결하며, 이에 대해서는 아래에서 자세히 설명한다. 부트스트랩된 키포인트는 라벨링되지 않은 이미지에 대한 라벨로서 처리되므로 신경망이 3D 일치(일관)된 방식으로 자체 예측에서 자기-지도(self-supervise)할 수 있다.
각각의 부트스트랩된 키포인트의 각 부트스트랩된 키포인트(k)에 대해, 시스템은 다음과 같이 단계(304-308)를 수행한다.
시스템은 부트스트랩된 키포인트(k)에 대한 각각의 부트스트랩된 히트맵을 구성한다(단계 304).
시스템은 추정된 3D 위치 좌표(
Figure pct00007
)를 카메라(c)에 의해 촬영된 라벨링되지 않은 이미지(Ic)의 이미지 평면 상에 투영한다. 라벨링된 이미지(Ic)에 역투영된 키포인트(k)의 이미지 좌표는 ick,jck로 표시될 수 있다. 시스템은 부트스트랩된 키포인트(k)의 각각의 부트스트랩된 히트맵 Hck(i,j)를 폭(σ)을 갖는 이미지 좌표(ick,jck)에 중심을 둔 가우시안 이미지로 구성한다. 이렇게 하면 각각의 부트스트랩된 히트맵
Figure pct00008
을 생성하며, 여기서 i와 j는 부트스트랩된 히트맵의 좌표이다.
시스템은 신경망 파라미터들의 현재 값에 따라 키포인트 예측 신경망을 사용하여, 부트스트랩된 키포인트에 대한 각각의 예측된 히트맵을 생성한다(단계 306).
특히, 시스템은 다음과 같이 라벨링되지 않은 이미지(Ic)에서 부트스트랩된 키포인트(k)의 각각의 예측된 히트맵(Pck로 표시됨)을 생성한다.
Figure pct00009
여기서 softmax 연산은 각 키포인트와 라벨링되지 않은 이미지에 대해 개별적으로 수행된다. 소프트맥스 연산의 합계는 라벨링되지 않은 이미지(Ic)의 이미지 픽셀에서 발생한다. 즉, 이미지 픽셀은 서로 다른 이미지 클래스로 취급된다.
단계(302)를 다시 참조하면, 각 부트스트랩된 키포인트의 3D 위치 좌표를 추정하기 위해, 시스템은 캘리브레이션을 통해 방향이 계산될 수 있는 이미지 위치에 해당하는 Pck의 평균((xmean,ymean)으로 표시됨)을 결정한다. 이미지 위치는 (xmean,ymean)으로 정의된 라벨링되지 않은 이미지(Ic)내의 위치이다. 방향은 Pck에 기초하여 계산된 이미지 위치의 방향으로 각 카메라에 대한 광선을 생성한다(3D 좌표에서, 카메라를 통과하는 가상선이 있다고 가정하면 그 선의 방향이 방향으로 지칭될 수 있으며 가상선은 해당 카메라의 광선을 나타낸다).
예를 들어, Pck의 평균을 결정하기 위해, 시스템은 Pck를 확률 분포로 사용하여 이미지 인덱스(즉, 이미지 클래스)의 예상 값을 결정할 수 있다. x와 y에서 평균의 이미지 위치를 찾기 위해, 시스템은
Figure pct00010
Figure pct00011
Figure pct00012
을 계산할 수 있으며, 여기서 (i, j)는 이미지(Ic)의 각 픽셀의 좌표를 나타낸다.
모든 키포인트가 장면에 정확히 한 번만 나타난다고 가정하면, 부트스트랩된 키포인트(k)(
Figure pct00013
)로 표시됨)의 3D 위치 추정은 이러한 광선에서 포인트까지 거리의 제곱의 합이 최소화되는 포인트로 정의될 수 있다. 이것은
Figure pct00014
에 대한 2차 비용(quadratic cost)을 정의하므로 분석적으로 풀 수 있다. 특히, 카메라(c)의 위치를 ac로 표시하고 카메라(c)에서 부트스트랩된 키포인트(k)를 통과하는 광선의 정규화된 방향을
Figure pct00015
로 가정하고, 위의 가중된 최소 자승 문제를 풀면, 시스템은 추정된 3D 위치 좌표를 산출하는 다음 방정식을 얻을 수 있다.
Figure pct00016
Figure pct00017
는 라벨(즉, 실측 키포인트)로 취급되며 트레이닝 중에 역전파되지 않는다.
단계(306)는 단계(302)의 일부로서 수행될 수 있음을 이해할 것이다.
시스템은 다음과 같이 각각의 부트스트랩된 히트맵과 각각의 예측 히트맵의 KL 발산을 계산한다(단계 308).
Figure pct00018
시스템은 각각의 라벨링되지 않은 이미지에서 각각의 부트스트랩된 키포인트에 대해 계산된 KL 발산를 결합하여 비지도된 손실 함수를 결정한다(단계 310). 예를 들어, 비지도된 손실 함수는 Lunsup으로 표시되고 다음과 같이 결정될 수 있다.
Figure pct00019
여기서
Figure pct00020
는 부트스트랩 키포인트의 3D 위치 좌표(
Figure pct00021
)로부터 생성된다.
일부 구현에서, 특정 키포인트가 시야에서 사라지거나 가려지기 때문에 모든 카메라로부터의 모든 예측을 통합하는 것이 항상 바람직한 것은 아니다. 또한, 키포인트에 대한 히트맵의 보다 확실한 예측이 있는 카메라 뷰에 더 높은 가중치를 두는 것이 바람직할 수 있다. 따라서, 일부 구현에서, 시스템은 계산된 KL 발산의 가중 조합에 기초하여 비지도된 손실 함수를 결정한다. 각각의 KL 발산는 각각의 예측된 히트맵(Pck)의 중요도를 나타내는 관련 중요도 인자에 의해 가중될 수 있다(즉, 보다 확실한 예측이 있는 카메라 뷰와 관련된 예측된 히트맵이 더 중요함). 각각의 KL 발산의 관련 중요도 인자는 각각의 예측된 히트맵의 발산의 함수일 수 있다. 예를 들어 관련 중요도 인자는 다음과 같이 계산될 수 있다.
Figure pct00022
여기서 varck는 각각의 예측된 히트맵(Pck)의 발산이고, sigm은 시그모이드 함수이며 tanh는 하이퍼볼릭 탄젠트 함수이다.
도 4는 키포인트 예측 신경망을 트레이닝하기 위한 예시적인 프로세스의 흐름도이다. 편의상, 프로세스(400)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 본 명세서에 따라 적절하게 프로그래밍된 신경망 시스템, 예를 들어 도 1의 신경망 시스템(100)은 프로세스(400)를 수행할 수 있다.
시스템은 복수의 트레이닝 샘플을 포함하는 트레이닝 데이터세트를 수신한다(단계 402). 각 트레이닝 샘플에는 개별 장면의 하나 이상의 객체에 대한 동기화된 이미지 세트가 포함되어 있다. 세트 내의 각 이미지는 서로 다른 관점에서 각각의 카메라에 의해 동시에 촬영된다. 동기화된 이미지 세트의 서브세트는 실측 키포인트로 라벨링되고 세트 내의 나머지 이미지는 라벨링되지 않는다.
각 트레이닝 샘플에 대해, 시스템은 손실 함수를 최소화하기 위해 신경망 파라미터들의 현재 값을 업데이트함으로써 트레이닝 샘플에 대해 신경망을 트레이닝한다(단계 404). 손실 함수는 지도된 손실 함수와 비지도된 손실 함수의 조합이다. 지도된 손실 함수는 실측 키포인트와 신경망 파라미터의 현재 값에 따라 상기 라벨링된 이미지에 대해 신경망에 의해 생성된 개별 예측 키포인트 간의 차이를 최소화한다. 비지도된 손실 함수는 파라미터의 현재 값에 따라 동일한 장면의 서로 다른 관점에서 촬영된 라벨링되지 않은 이미지에 대해 신경망에 의해 생성된 개별 예측 키포인트 간의 멀티-뷰 불일치를 최소화한다. 일부 구현에서, 손실 함수는 파라미터를 정규화하기 위한 추가 성분을 포함한다. 일부 구현에서, 손실 함수는 지도된 손실 함수, 비지도된 손실 함수 및 추가 성분의 가중 조합이다.
특히, 신경망을 트레이닝하기 위해, 복수의 트레이닝 샘플 중 하나 이상의 트레이닝 샘플 각각에 대해, 시스템은 다음과 같이 단계(406 및 408)를 수행한다.
시스템은 손실 함수의 기울기의 추정치를 결정한다(단계 406). 시스템은 배치(batch) 기울기(경사) 하강법, 확률적 기울기 하강법 또는 미니-배치 기울기 하강법과 같은 기울기 하강법을 사용하여 손실 함수의 기울기 추정치를 결정할 수 있다.
시스템은 신경망의 각각의 파라미터에 대한 각각의 업데이트된 값을 결정하기 위해 손실 함수의 기울기의 추정치를 역전파한다(단계 408). 예를 들어, 시스템은 적응적 모멘트 추정(Adaptive Moment Estimation: Adam) 최적화기 또는 RMSprop 최적화기 같은 기울기 하강 최적화기를 사용하여 각각의 파라미터에 대한 각각의 업데이트된 값을 결정하기 위해 손실 함수의 기울기의 추정치를 역전파할 수 있다.
시스템은 하나 이상의 기준이 충족될 때까지, 예를 들어, 신경망의 원하는 성능(예를 들어, 사전 결정된 레벨의 정확도)에 도달할 때까지, 트레이닝을 위한 계산 예산(budget)에 도달할 때까지, 또는 신경망이 사전 결정된 수의 트레이닝 샘플에 대해 트레이닝될 때까지 위의 트레이닝 프로세스를 반복할 수 있다.
트레이닝 후, 시스템은 파라미터의 최종 업데이트 값을 갖는 트레이닝된 키포인트 예측 신경망을 얻는다. 일부 구현에서, 시스템은 트레이닝된 키포인트 예측 신경망을 사용하여 새로운 이미지를 처리하여 그 새로운 이미지로 묘사된 장면에서 하나 이상의 객체의 예측된 키포인트를 생성한다. 대안적으로 또는 추가적으로, 시스템은 트레이닝된 키포인트 예측 신경망을 사용하는 다른 시스템에 트레이닝된 키포인트 예측 신경망을 제공하여 새로운 이미지를 처리하여 그 새로운 이미지에 의해 묘사된 장면에서 하나 이상의 객체의 예측된 키포인트를 생성할 수 있다.
본 명세서는 시스템 및 컴퓨터 프로그램 구성요소와 관련하여 "구성된"이라는 용어를 사용한다. 특정 동작 또는 액션을 수행하도록 구성되는 하나 이상의 컴퓨터로 구성된 시스템은 시스템이 프트웨어, 펌웨어, 하드웨어 또는 작동시 시스템으로 하여금 동작 또는 액션을 수행하게 하는 이들의 조합을 설치했음을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 동작 또는 액션을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 그 장치로 하여금 동작 또는 액션을 수행하게 하는 명령들을 포함한다는 것을 의미한다.
본 명세서에 기술된 주제 및 동작의 실시예는 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 본 명세서에 개시된 구조 및 이들의 구조적 등가물을 포함하는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행하거나 데이터 처리 장치의 동작을 제어하기 위해 유형의 비-일시적 저장 매체에 인코딩된 하나 이상의 컴퓨터 프로그램 명령 모듈로 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 디바이스, 기계 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스 또는 이들 중 하나 이상의 조합일 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령들은 인위적으로 생성된 전파 신호, 예를 들어 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하도록 생성된 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다.
"데이터 처리 장치"라는 용어는 데이터 처리 하드웨어를 지칭하며 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 비롯하여데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 또한 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)일 수 있거나 이를 더 포함할 수 있다. 장치는 선택적으로 하드웨어에 추가하여 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 지칭되거나 설명될 수 있는 컴퓨터 프로그램은 컴파일 언어 또는 해석 언어, 선언적 또는 절차적 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 모듈, 구성 요소, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 포함하는 파일의 일부, 문제의 프로그램 전용 단일 파일 또는 여러 조정 파일(예를 들어, 하나 이상의 모듈, 하위 프로그램 또는 코드 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되어 데이터 통신 네트워크로 상호 연결된 다수의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 "엔진"이라는 용어는 하나 이상의 특정 기능을 수행하도록 프로그래밍된 소프트웨어 기반 시스템, 서브시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로, 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터상에 설치된 하나 이상의 소프트웨어 모듈 또는 구성 요소로 구현된다. 일부 경우에는 하나 이상의 컴퓨터는 특정 엔진 전용이고, 다른 경우에는 다수의 엔진이 동일한 컴퓨터 또는 컴퓨터들 상에 설치되고 실행될 수 있다.
본 명세서에 기술된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 같은 특수 목적 논리 회로에 의해 또는 특수 목적 논리 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 범용 또는 특수 목적의 마이크로프로세서 또는 둘 모두 또는 임의의 다른 종류의 중앙 처리 장치를 기반으로 할 수 있다. 일반적으로, 중앙 처리 장치는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하거나 실행하는 중앙 처리 장치와 명령 및 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 중앙 처리 장치와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스(예를 들어, 자기, 광자기 디스크 또는 광학 디스크)로부터 데이터를 수신하거나 데이터를 전송하도록 또는 둘 모두를 수행하도록 작동 가능하게 연결되거나 포함할 것이다. 그러나, 컴퓨터에는 이러한 디바이스가 필요하지 않다. 또한, 컴퓨터는 다른 디바이스, 예를 들어 모바일폰, PDA, 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기, 또는 범용 직렬 버스(USB) 플래시 드라이브와 같은 휴대용 저장 디바이스에 내장될 수 있다.
컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크), 광자기 디스크, 및 CD-ROM 및 DVD-ROM 디스크를 비롯하여 모든 형태의 비-휘발성 메모리, 미디어 및 메모리 디바이스를 포함한다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 주제의 실시예는 사용자에게 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터)와 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스를 사용하여 사용자와의 상호 작용도 제공할 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 게다가, 컴퓨터는 예를 들어 웹 브라우저로부터 수신된 요청에 대한 응답으로 사용자 디바이스의 웹 브라우저로 웹 페이지를 전송함으로써 사용자가 사용하는 디바이스로 문서를 보내고 그 디바이스로부터 문서를 수신함으로써 사용자와 상호 작용할 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인 디바이스(예를 들어, 메시징 애플리케이션을 실행하는 스마트폰)로 전송하고 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호 작용할 수 있다.
기계 학습 모델을 구현하기 위한 데이터 처리 장치는 또한 예를 들어 기계 학습 트레이닝 또는 생산의 일반적이고 계산 집약적인 부분, 즉 추론, 워크로드를 처리하기 위한 특수 목적 하드웨어 가속기 유닛을 포함할 수 있다.
기계 학습 모델은 기계 학습 프레임워크(예를 들어, 텐서플로우 프레임워크, Microsoft Cognitive Toolkit 프레임워크, Apache Singa 프레임워크 또는 Apache MXNet 프레임워크)를 사용하여 구현 및 배포될 수 있다.
본 명세서에 기술된 주제의 실시예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 프론트엔드 컴포넌트(예를 들어, 그래픽 사용자 인터페이스가 있는 클라이언트 컴퓨터, 웹 브라우저 또는 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 앱)를 포함하거나, 또는 하나 이상의 백엔드, 미들웨어 또는 프론트 엔드 컴포넌트의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구서우 요소는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 LAN(Local Area Network) 및 WAN(Wide Area Network), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생한다. 일부 실시예에서, 서버는 예를 들어 클라이언트 역할을 하는 디바이스와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하기 위해 데이터, 예를 들어 HTML 페이지를 사용자 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 디바이스로부터 서버에서 수신될 수 있다.
본 명세서에는 많은 구체적인 구현 세부 정보가 포함되어 있지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정될 수 있는 특징의 설명으로 해석되어야 한다. 별도의 실시예의 맥락에서 본 명세서에 설명된 특정 특징은 또한 단일 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합에서 작용하는 것으로 위에서 기술될 수 있고 심지어 초기에도 그렇게 청구되더라도, 청구된 조합으로부터의 하나 이상의 특징은 경우에 따라 조합으로부터 제외될 수 있고 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에 묘사되고 특정 순서로 청구 범위에서 인용되지만, 이는 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 예시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 전술한 실시예에서 다양한 시스템 모듈 및 구성요소의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명된 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품으로 패키징될 수 있음을 이해해야 한다.
주제의 특정 실시예가 설명되었다. 다른 실시예는 다음의 청구 범위 내에 있다. 예를 들어, 청구 범위에 인용된 동작들은 다른 순서로 수행될 수 있으며 여전히 원하는 결과를 얻을 수 있다. 일 예로서, 첨부된 도면에 묘사된 프로세스는 원하는 결과를 얻기 위해 표시된 특정 순서 또는 순차적인 순서를 반드시 요구하지는 않는다. 일부 경우 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (18)

  1. 라벨링된 트레이닝 데이터와 라벨링되지 않은 트레이닝 데이터를 포함하는 트레이닝 데이터 세트를 사용하여 보이지 않는 객체들의 키포인트를 예측하기 위한 신경망 트레이닝 방법으로서, 상기 방법은,
    복수의 트레이닝 샘플을 포함하는 트레이닝 데이터세트를 수신하는 단계와, 상기 트레이닝 샘플 각각은 개별 장면으로부터의 하나 이상의 객체의 동기화된 이미지 세트를 포함하고, 상기 세트 내의 각 이미지는 서로 다른 관점에서 개별 카메라에 의해 동시에 촬영되고, 그리고 상기 동기화된 이미지 세트의 서브세트는 실측 키포인트로 라벨링되고 세트 내의 나머지 이미지는 라벨링되지 않으며; 그리고
    복수의 트레이닝 샘플의 하나 이상의 트레이닝 샘플 각각에 대해:
    손실 함수를 최소화하기 위해 신경망의 파라미터들의 현재 값을 업데이트함으로써 트레이닝 샘플에 대해 신경망을 트레이닝하는 단계를 포함하고,
    상기 손실 함수는 지도된 손실 함수와 비지도된 손실 함수의 조합이고, 상기 지도된 손실 함수는 실측 키포인트와 신경망의 파라미터들의 현재 값에 따라 상기 라벨링된 이미지에 대해 신경망에 의해 생성된 예측 키포인트 사이의 차이를 최소화하고, 그리고 상기 비지도된 손실 함수는 파라미터들의 현재 값에 따라 동일한 장면의 서로 다른 관점에서 촬영된 상기 라벨링되지 않은 이미지에 대해 신경망에 의해 생성된 각각의 예측 키포인트 간의 멀티-뷰 불일치를 최소화하는 것을 특징으로 하는 신경망 트레이닝 방법.
  2. 제1항에 있어서,
    상기 장면의 하나 이상의 객체는 동적 객체인 것을 특징으로 하는 신경망 트레이닝 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 신경망은,
    (i) 하나 이상의 다운-샘플링 계층, (ii) 하나 이상의 컨볼루션 계층, (iii) 하나 이상의 잔여 계층, (iv) 하나 이상의 업-샘플링 계층, (v) 공간 argmax 계층, (vi) 쌍선형(bilinear) 업-샘플링 계층, (vii) 3D 추정 계층, 또는 (viii) 소프트맥스 계층 중 하나 이상을 포함하는 것을 특징으로 하는 신경망 트레이닝 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 신경망은,
    입력 이미지를 수신하고 그 입력 이미지에 있는 하나 이상의 객체의 복수의 가능한 키포인트 각각에 대해, 가능한 키포인트에 대한 각각의 히트맵을 생성하도록 구성되는 것을 특징으로 하는 신경망 트레이닝 방법.
  5. 제4항에 있어서,
    상기 신경망은,
    각각의 히트맵을 병렬로 생성하도록 구성되는 것을 특징으로 하는 신경망 트레이닝 방법.
  6. 제5항에 있어서,
    상기 가능한 키포인트에 대한 히트맵은,
    입력 이미지의 복수의 위치 각각에 대한 개별 스코어를 포함하고, 상기 개별 스코어는 가능한 키포인트가 그 위치에 위치할 가능성(likelihood)을 나타내는 것을 특징으로 하는 신경망 트레이닝 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 손실 함수는,
    파라미터들을 정규화하기 위한 추가 성분을 포함하는 것을 특징으로 하는 신경망 트레이닝 방법.
  8. 제7항에 있어서,
    상기 손실함수는,
    지도된 손실함수, 비지도된 손실함수 및 추가 성분의 가중 조합인 것을 특징으로 하는 신경망 트레이닝 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 방법은,
    트레이닝 샘플의 각각의 라벨링된 이미지에 대해 및 라벨링된 이미지의 각각의 실측 키포인트에 대해:
    라벨링된 이미지의 실측 키포인트에 대한 각각의 실측 히트맵을 구성하는 단계와,
    파라미터들의 현재 값을 갖는 신경망을 사용하여, 라벨링된 이미지의 실측 키포인트에 대한 각각의 예측 히트맵을 생성하는 단계와, 그리고
    각각의 실제 히트맵 및 각각의 예측 히트맵의 쿨백-라이블러(KL) 발산을 계산하는 단계를 포함하고,
    상기 지도된 손실 함수는 계산된 KL 발산의 조합인 것을 특징으로 하는 신경망 트레이닝 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 방법은,
    트레이닝 샘플의 라벨링되지 않은 이미지 각각에 대해:
    라벨링되지 않은 이미지에 대한 각각의 부트스트랩된 키포인트를 생성하는 단계와, 상기 부트스트랩된 키포인트는 라벨링되지 않은 이미지에 대한 라벨로 취급되고;
    각 부트스트랩된 키포인트에 대해:
    부트스트랩된 키포인트의 각각의 부트스트랩된 히트맵을 구성하는 단계와;
    파라미터들의 현재 값에 따라 신경망을 사용하여, 부트스트랩된 키포인트의 각각의 예측 히트맵을 생성하는 단계와;
    각각의 부트스트랩된 히트맵 및 각각의 예측 히트맵의 KL 발산를 계산하는 단계를 포함하고,
    상기 비지도된 손실 함수는 계산된 KL 발산의 조합인 것을 특징으로 하는 신경망 트레이닝 방법.
  11. 제9항에 있어서,
    상기 라벨링되지 않은 이미지의 각각의 부트스트랩 키포인트를 생성하는 단계는 가중된 최소-자승(least-squares) 최적화 문제를 해결하는 단계를 포함하는 것을 특징으로 하는 신경망 트레이닝 방법.
  12. 제9항 또는 제10항에 있어서,
    상기 각 KL 발산는,
    손실 함수의 관련된 중요도 인자(factor)에 의해 더 가중되는 것을 특징으로 하는 신경망 트레이닝 방법.
  13. 제12항에 있어서,
    상기 각 KL 발산의 관련된 중요도 인자는,
    각각의 예측 히트맵의 발산의 함수인 것을 특징으로 하는 신경망 트레이닝 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 개별 장면의 하나 이상의 객체는,
    (i) 하나 이상의 로봇 시스템 또는 (ii) 하나 이상의 로봇 시스템이 상호 작용하는 환경의 하나 이상의 객체인 것을 특징으로 하는 신경망 트레이닝 방법.
  15. 제14항에 있어서,
    상기 예측 키포인트는,
    하나 이상의 로봇 시스템을 제어하는데 사용되는 것을 특징으로 하는 신경망 트레이닝 방법.
  16. 제15항에 있어서,
    상기 하나 이상의 로봇 시스템을 제어하는 것은,
    제어 정책을 학습하기 위해 강화 학습 기술을 사용하는 것을 포함하는 것을 특징으로 하는 신경망 트레이닝 방법.
  17. 하나 이상의 컴퓨터 및 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 제1항 내지 제16항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는 명령들을 저장하는 하나 이상의 저장 디바이스를 포함하는 것을 특징으로 하는 시스템.
  18. 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 제1항 내지 제16항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는 명령들을 저장한 하나 이상의 컴퓨터 저장 매체.
KR1020237004635A 2020-07-28 2021-07-28 준-지도된(semi-supervised) 키포인트 기반 모델 KR20230035403A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063057861P 2020-07-28 2020-07-28
US63/057,861 2020-07-28
PCT/EP2021/071202 WO2022023442A1 (en) 2020-07-28 2021-07-28 Semi-supervised keypoint based models

Publications (1)

Publication Number Publication Date
KR20230035403A true KR20230035403A (ko) 2023-03-13

Family

ID=77249832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237004635A KR20230035403A (ko) 2020-07-28 2021-07-28 준-지도된(semi-supervised) 키포인트 기반 모델

Country Status (6)

Country Link
US (1) US20230281966A1 (ko)
EP (1) EP4172861A1 (ko)
JP (1) JP2023535502A (ko)
KR (1) KR20230035403A (ko)
CN (1) CN116210030A (ko)
WO (1) WO2022023442A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115239889B (zh) * 2022-09-01 2023-05-26 北京百度网讯科技有限公司 3d重建网络的训练方法、3d重建方法、装置、设备和介质
CN115147426B (zh) * 2022-09-06 2022-11-29 北京大学 基于半监督学习的模型训练与图像分割方法和系统
CN115714888B (zh) * 2022-10-09 2023-08-29 名之梦(上海)科技有限公司 视频生成方法、装置、设备与计算机可读存储介质
CN117218715A (zh) * 2023-08-04 2023-12-12 广西壮族自治区通信产业服务有限公司技术服务分公司 一种少样本的关键节点识别方法、系统、设备及存储介质

Also Published As

Publication number Publication date
US20230281966A1 (en) 2023-09-07
JP2023535502A (ja) 2023-08-17
WO2022023442A1 (en) 2022-02-03
CN116210030A (zh) 2023-06-02
EP4172861A1 (en) 2023-05-03

Similar Documents

Publication Publication Date Title
US11734847B2 (en) Image depth prediction neural networks
EP3549102B1 (en) Determining structure and motion in images using neural networks
US20210192358A1 (en) Graph neural network systems for behavior prediction and reinforcement learning in multple agent environments
KR20230035403A (ko) 준-지도된(semi-supervised) 키포인트 기반 모델
US11100646B2 (en) Future semantic segmentation prediction using 3D structure
CN111727441A (zh) 实现用于高效学习的条件神经过程的神经网络系统
CN112771542A (zh) 以学习的视觉实体为基础的强化学习神经网络
US20230419521A1 (en) Unsupervised depth prediction neural networks
US20210103815A1 (en) Domain adaptation for robotic control using self-supervised learning
KR102241404B1 (ko) 시각 입력을 이용한 에이전트 네비게이션
US11610423B2 (en) Spatio-temporal-interactive networks
WO2019117970A1 (en) Adaptive object tracking policy
JP2023527510A (ja) ブートストラッピングされた潜在表現を使用する自己教師付き表現学習
US20220301298A1 (en) Multi-task self-training for learning general representations
CN113158539A (zh) 交通参与者的长期轨迹预测的方法
Güzel et al. Survey on learning-based scene extrapolation in robotics
US20240161318A1 (en) Object-based prediction of scene transitions using neural networks
US20230051565A1 (en) Hard example mining for training a neural network
Gigante A Machine Learning-Based Approach for Traversability Analysis and Path Planning in Martian Rovers
CN115315708A (zh) 通过整合代理运动和优化预测目标来生成空间嵌入