KR20230107805A - 이미지 분할 프로세스들에 대한 일관성 측정 - Google Patents

이미지 분할 프로세스들에 대한 일관성 측정 Download PDF

Info

Publication number
KR20230107805A
KR20230107805A KR1020237015363A KR20237015363A KR20230107805A KR 20230107805 A KR20230107805 A KR 20230107805A KR 1020237015363 A KR1020237015363 A KR 1020237015363A KR 20237015363 A KR20237015363 A KR 20237015363A KR 20230107805 A KR20230107805 A KR 20230107805A
Authority
KR
South Korea
Prior art keywords
image
segmentation
feature
determining
image frame
Prior art date
Application number
KR1020237015363A
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 KR20230107805A publication Critical patent/KR20230107805A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • 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/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • 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/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • 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/776Validation; Performance evaluation
    • 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/40Scenes; Scene-specific elements in video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/70Labelling scene content, e.g. deriving syntactic or semantic representations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • 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/30236Traffic on road, railway or crossing

Landscapes

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

Abstract

이미지 분할에 대한 일관성 측정치들을 결정하기 위한 기법들이 제공된다. 예컨대, 시스템은 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정할 수 있다. 시스템은 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정할 수 있다. 제2 분할 특징은 제1 분할 특징에 대응한다. 시스템은 제1 분할 특징에 대응하는, 제1 이미지 프레임의 제1 이미지 특징, 및 제2 분할 특징에 대응하는, 제2 이미지 프레임의 제2 이미지 특징을 결정할 수 있다. 시스템은 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정할 수 있다. 시스템은 추가로, 제1 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정할 수 있다.

Description

이미지 분할 프로세스들에 대한 일관성 측정
[0001] 본 개시내용은 일반적으로 이미지 분할 프로세스(image segmentation process)들을 평가하는 것에 관한 것이다. 예컨대, 본 개시내용의 일부 양상들은 이미지 분할 프로세스들에 대한 시간적 일관성 측정치(temporal consistency measure)들을 결정하는 것에 관한 것이다.
[0002] 많은 디바이스들 및 시스템들은 장면의 이미지들(또는 프레임들) 및/또는 비디오 데이터(다수의 프레임들을 포함함)를 생성함으로써 이 장면이 캡처될 수 있게 한다. 예컨대, 카메라 또는 카메라를 포함하는 디바이스는 장면의 프레임들의 시퀀스(예컨대, 장면의 비디오)를 캡처할 수 있다. 일부 경우들에서, 프레임들의 시퀀스는, 다른 용도(use)들 중에서도, 하나 이상의 기능들을 수행하기 위해 프로세싱될 수 있고, 디스플레이를 위해 출력될 수 있고, 프로세싱 및/또는 다른 디바이스들에 의한 소비를 위해 출력될 수 있다.
[0003] 프레임들의 시퀀스에 대해 수행되는 일반적인 타입의 프로세싱은 이미지 분할이며, 이는 이미지 및 비디오 프레임들을 다수의 부분들로 분할하는 것을 수반한다. 예컨대, 이미지 및 비디오 프레임들은 전경 및 배경 부분들로 분할될 수 있다. 분할된 이미지 및 비디오 프레임들은 그 다음, 다양한 애플리케이션들에 사용될 수 있다. 이미지 분할을 사용하는 애플리케이션들은, 다른 애플리케이션들 중에서도, 예컨대 컴퓨터 비전 시스템들, 확장 현실 시스템들, 데이터 압축, 이미지 분할, 자율 주행차 동작을 포함하여, 많다. 다양한 이미지 분할 프로세스들의 품질 및/또는 성능을 측정하기 위한 효과적인 기법들이 필요하다.
[0004] 이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위해 구현될 수 있는 시스템들 및 기법들이 본원에서 설명된다. 적어도 하나의 예에 따르면, 이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치들이 제공된다. 예시적인 장치는 적어도 하나의 메모리(하나의 메모리 또는 다수의 메모리 디바이스들) 및 메모리에 커플링된 프로세서 또는 다수의 프로세서들(예컨대, 회로부로 구현됨)을 포함할 수 있다. 프로세서(또는 프로세서들)는, 복수의 이미지 프레임들 중 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정하고; 복수의 이미지 프레임들 중 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정하고 ―제2 분할 특징은 제1 분할 특징에 대응함―; 제1 분할 특징에 대응하는, 제1 이미지 프레임의 제1 이미지 특징을 결정하고; 제2 분할 특징에 대응하는, 제2 이미지 프레임의 제2 이미지 특징을 결정하고; 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정(similarity measurement)을 결정하고; 그리고 제1 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하도록 구성된다.
[0005] 다른 예에서, 이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법들이 제공된다. 예시적인 방법은, 복수의 이미지 프레임들 중 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정하는 단계를 포함할 수 있다. 방법은 또한, 복수의 이미지 프레임들 중 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정하는 단계를 포함할 수 있고, 제2 분할 특징은 제1 분할 특징에 대응한다. 방법은, 제1 분할 특징에 대응하는, 제1 이미지 프레임의 제1 이미지 특징을 결정하는 단계를 포함할 수 있다. 방법은 또한, 제2 분할 특징에 대응하는, 제2 이미지 프레임의 제2 이미지 특징을 결정하는 단계를 포함할 수 있다. 방법은, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하는 단계를 더 포함할 수 있다. 방법은, 제1 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 단계를 더 포함할 수 있다.
[0006] 다른 예에서, 이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 비-일시적인 컴퓨터-판독가능 매체들이 제공된다. 예시적인 비-일시적인 컴퓨터-판독가능 매체는, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 복수의 이미지 프레임들 중 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정하게 하고; 복수의 이미지 프레임들 중 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정하게 하고 ―제2 분할 특징은 제1 분할 특징에 대응함―; 제1 분할 특징에 대응하는, 제1 이미지 프레임의 제1 이미지 특징을 결정하게 하고; 제2 분할 특징에 대응하는, 제2 이미지 프레임의 제2 이미지 특징을 결정하게 하고; 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하게 하고; 그리고 제1 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하게 하는 명령들을 저장할 수 있다.
[0007] 다른 예에서, 복수의 이미지 프레임들 중 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정하기 위한 수단; 복수의 이미지 프레임들 중 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정하기 위한 수단 ―제2 분할 특징은 제1 분할 특징에 대응함―; 제1 분할 특징에 대응하는, 제1 이미지 프레임의 제1 이미지 특징을 결정하기 위한 수단; 제2 분할 특징에 대응하는, 제2 이미지 프레임의 제2 이미지 특징을 결정하기 위한 수단; 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하기 위한 수단; 및 제1 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하기 위한 수단을 포함하는 장치가 제공된다.
[0008] 일부 양상들에서, 제1 이미지 프레임은 복수의 이미지 프레임들 내에서 제2 이미지 프레임에 인접할 수 있다. 다른 양상들에서, 복수의 이미지 프레임들은 제1 이미지 프레임과 제2 이미지 프레임 사이에 적어도 하나의 중간 이미지 프레임을 포함할 수 있다.
[0009] 일부 양상들에서, 위에서 설명된 방법, 장치 및 컴퓨터-판독가능 매체는, 제2 분할 마스크와 연관된 복수의 분할 특징들을 결정하는 것 ―복수의 분할 특징들은 제2 분할 특징을 포함함―; 제1 분할 특징과, 제2 분할 마스크와 연관된 복수의 분할 특징들 사이의 복수의 유사성 측정들을 결정하는 것; 및 복수의 유사성 측정들 중 가장 높은 유사성 측정이 제2 분할 특징에 대응한다고 결정하는 것에 적어도 부분적으로 기반하여, 제2 분할 특징은 제1 분할 특징에 대응한다고 결정하는 것을 포함할 수 있다.
[0010] 일부 양상들에서, 위에서 설명된 방법, 장치 및 컴퓨터-판독가능 매체는, 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크와 연관된 분할 특징들을 결정하는 것을 포함할 수 있다. 일부 양상들에서, 이미지 분할을 위해 트레이닝된 머신 러닝 모델은 복수의 계층들을 포함하는 뉴럴 네트워크일 수 있다. 일부 예들에서, 제1 분할 마스크 및 제2 분할 마스크와 연관된 분할 특징들을 결정하는 것은, 뉴럴 네트워크의 복수의 계층들 중의 계층에 의해 출력된 하나 이상의 특징 맵들을 획득하는 것을 포함할 수 있다.
[0011] 일부 양상들에서, 위에서 설명된 방법, 장치 및 컴퓨터-판독가능 매체는, 특징 추출을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 이미지 프레임의 이미지 특징들 및 제2 이미지 프레임의 이미지 특징들을 결정하는 것을 포함할 수 있다.
[0012] 일부 양상들에서, 위에서 설명된 방법, 장치 및 컴퓨터-판독가능 매체는, 제1 분할 특징에 대응하는, 제1 이미지 프레임 내의 제1 위치를 결정하는 것; 제1 위치에 적어도 부분적으로 기반하여 제1 이미지 프레임의 제1 이미지 특징을 결정하는 것; 제2 분할 특징에 대응하는, 제2 이미지 프레임 내의 제2 위치를 결정하는 것; 및 제2 위치에 적어도 부분적으로 기반하여 제2 이미지 프레임의 제2 이미지 특징을 결정하는 것을 포함할 수 있다.
[0013] 일부 양상들에서, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하는 것은, 제1 이미지 특징에 대응하는 제1 이미지 데이터와 제2 이미지 특징에 대응하는 제2 이미지 데이터를 비교하는 것을 포함할 수 있다.
[0014] 일부 양상들에서, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하는 것은, 제1 이미지 특징에 대응하는 제1 특징 벡터와 제2 이미지 특징에 대응하는 제2 특징 벡터를 비교하는 것을 포함할 수 있다. 일부 예들에서, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정은 코사인 유사성 측정일 수 있다.
[0015] 일부 양상들에서, 위에서 설명된 방법, 장치 및 컴퓨터-판독가능 매체는, 제1 분할 마스크와 연관된 제3 분할 특징을 결정하는 것; 제2 분할 마스크와 연관된 제4 분할 특징을 결정하는 것 ―제4 분할 특징은 제3 분할 특징에 대응함―; 제3 분할 특징에 대응하는, 제1 이미지 프레임의 제3 이미지 특징을 결정하는 것; 제4 분할 특징에 대응하는, 제2 이미지 프레임의 제4 이미지 특징을 결정하는 것; 및 제3 이미지 특징과 제4 이미지 특징 사이의 제2 유사성 측정을 결정하는 것을 포함할 수 있다. 일부 양상들은, 제1 유사성 측정 및 제2 유사성 측정의 대표 값에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 것을 더 포함할 수 있다.
[0016] 일부 양상들에서, 위에서 설명된 방법, 장치 및 컴퓨터-판독가능 매체는, 시간적 일관성 측정에 기반하여, 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 맵을 생성하는 것을 포함할 수 있고, 시간적 일관성 맵은 제1 이미지 특징과 연관하여 제1 유사성 측정 및 제2 이미지 특징과 연관하여 제2 유사성 측정을 저장한다.
[0017] 일부 양상들에서, 위에서 설명된 방법, 장치 및 컴퓨터-판독가능 매체는, 복수의 이미지 프레임들 중 제3 이미지 프레임의 제3 분할 마스크와 연관된 제3 분할 특징을 결정하는 것 ―제3 분할 특징은 제2 분할 특징에 대응함―; 제3 분할 특징에 대응하는, 제3 이미지 프레임의 제3 이미지 특징을 결정하는 것; 및 제2 이미지 특징과 제3 이미지 특징 사이의 제2 유사성 측정을 결정하는 것을 포함할 수 있다. 일부 양상들은, 제1 유사성 측정 및 제2 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제3 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 것을 더 포함할 수 있다.
[0018] 일부 양상들에서, 위에서 설명된 방법, 장치 및 컴퓨터-판독가능 매체는, 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크를 생성하는 것; 및 시간적 일관성 측정에 적어도 부분적으로 기반하여 머신 러닝 모델의 품질을 결정하는 것을 포함할 수 있으며, 시간적 일관성 측정의 값은 머신 러닝 모델의 품질과 연관된다.
[0019] 일부 양상들은, 이미지 분할을 위해 트레이닝되는 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크를 생성하는 것; 및 이미지 분할을 위해 머신 러닝 모델을 트레이닝하기 위한 피드백으로서 제1 유사성 측정을 사용하는 것을 더 포함할 수 있다.
[0020] 일부 양상들에서, 컴퓨팅 디바이스 및/또는 장치는 모바일 디바이스(예컨대, 모바일 전화 또는 소위 "스마트 폰" 또는 다른 모바일 디바이스), 웨어러블 디바이스, 확장 현실(XR; extended reality) 디바이스(예컨대, 가상 현실(VR; virtual reality) 디바이스, 증강 현실(AR; augmented reality) 디바이스 또는 혼합 현실(MR; mixed reality) 디바이스), 차량 또는 컴퓨팅 디바이스 또는 차량(예컨대, 자율 주행차)의 컴포넌트, 로봇 디바이스 또는 시스템, 또는 로봇 디바이스 또는 시스템의 컴퓨팅 디바이스 또는 컴포넌트, 개인용 컴퓨터, 랩톱 컴퓨터, 서버 컴퓨터, 카메라 또는 다른 디바이스이고, 이들의 일부이고, 그리고/또는 이들을 포함한다. 일부 양상들에서, 컴퓨팅 디바이스, 장치들 및/또는 차량은 하나 이상의 이미지들을 캡처하기 위한 카메라 또는 다수의 카메라들을 포함한다. 일부 양상들에서, 컴퓨팅 디바이스, 장치들 및/또는 차량은 하나 이상의 이미지들, 통지들 및/또는 다른 디스플레이가능 데이터를 디스플레이하기 위한 디스플레이를 더 포함한다. 일부 양상들에서, 위에서 설명된 컴퓨팅 디바이스, 장치들 및/또는 차량은 하나 이상의 센서들(예컨대, 하나 이상의 IMU(inertial measurement unit)들, 이를테면, 하나 이상의 자이로미터들, 하나 이상의 가속도계들, 이들의 임의의 조합, 및/또는 다른 센서)을 포함할 수 있다.
[0021] 이 요약은 청구된 청구 대상의 핵심적인 또는 필수적인 특징들을 식별하는 것으로 의도되지도, 청구된 청구 대상의 범위를 결정하기 위해 별도로 사용되는 것으로 의도되지도 않는다. 청구 대상은 본 특허의 전체 명세서의 적절한 부분들, 임의의 또는 모든 도면들, 및 각각의 청구항에 대한 참조에 의해 이해되어야 한다.
[0022] 전술된 내용은, 다른 특징들 및 예들과 함께, 다음의 명세서, 청구항들 및 첨부된 도면들을 참조할 때 더욱 자명해질 것이다.
[0023] [0001] 본 출원의 예시적인 예들은 다음의 도면들을 참조하여 아래에서 상세히 설명된다:
[0024] 도 1은 일부 예들에 따른 예시적인 이미지 분할 시스템을 예시하는 블록 다이어그램이고;
[0025] 도 2a 및 도 2b는 일부 예들에 따른 예시적인 분할 마스크들의 예시들이고;
[0026] 도 3a, 도 3b, 도 3c 및 도 3d는 일부 예들에 따른 예시적인 분할 마스크들의 다른 예시들이고;
[0027] 도 4는 일부 예들에 따른 예시적인 이미지 분할 평가 시스템을 예시하는 블록 다이어그램이고;
[0028] 도 5a 및 도 5b는 일부 예들에 따른 예시적인 이미지 분할 평가 시스템들을 예시하는 블록 다이어그램들이고;
[0029] 도 6a 및 도 6b는 일부 예들에 따른 분할 특징 맵들의 예들을 예시하는 이미지들이고;
[0030] 도 7a, 도 7b, 도 7c, 도 7d 및 도 7e는 일부 예들에 따른, 이미지 분할 프로세스들을 평가하는 것과 연관된 예시적인 실험 데이터를 예시하고;
[0031] 도 8은 일부 예들에 따른, 이미지 분할 프로세스들을 평가하기 위한 프로세스의 예를 예시하는 흐름도이고;
[0032] 도 9는 일부 예들에 따른 딥 러닝 네트워크의 예를 예시하는 블록 다이어그램이고;
[0033] 도 10은 일부 예들에 따른, 콘볼루션 뉴럴 네트워크(convolutional neural network)의 예를 예시하는 블록 다이어그램이고;
[0034] 도 11은 본원에서 설명되는 특정 양상들을 구현하기 위한 시스템의 예를 예시하는 다이어그램이다.
[0035] 본 개시내용의 특정 양상들 및 예들이 아래에서 제공된다. 이들 양상들 및 예들 중 일부는 독립적으로 적용될 수 있고, 이들 중 일부는 당업자들에게 자명할 바와 같이 조합하여 적용될 수 있다. 다음의 설명에서, 설명의 목적들을 위해, 본 출원의 청구 대상의 완전한 이해를 제공하기 위해서 특정 세부사항들이 제시된다. 그러나, 이들 특정 세부사항들 없이 다양한 예들이 실시될 수 있다는 것이 자명할 것이다. 도면들 및 설명은 제한적인 것으로 의도되지 않는다.
[0036] 다음의 설명은 단지 예시적인 예들을 제공하며, 본 개시내용의 범위, 적용가능성 또는 구성을 제한하는 것으로 의도되지 않는다. 오히려, 다음의 설명은 예시적인 예들을 구현하기 위한 가능한 설명을 당업자들에게 제공할 것이다. 첨부된 청구항들에서 제시되는 바와 같은 본 출원의 사상 및 범위를 벗어나지 않으면서 엘리먼트들의 기능 및 배열에 다양한 변화들이 행해질 수 있다는 것이 이해되어야 한다.
[0037] 비디오 시맨틱 분할(semantic segmentation)은 비디오들에서의 순차적인 이미지 프레임들에 대한 분할 결과들을 생성하는 태스크이다. 예컨대, 시맨틱 분할 네트워크는 비디오의 이미지 프레임들의 전부 또는 일부에 적용될 수 있다. 분할 결과들을 평가하기 위한 일부 기존의 기법들은 프레임 단위 방식으로 분할 네트워크에 의해 생성된 분할 마스크들을 실측 자료 이미지들(예컨대, 정확한 것으로 알려진 이미지들)에 대해 비교하는 것을 포함할 수 있다. 그러한 비교들은 평균 IoU(intersection over union) 측정치들, 픽셀-레벨 정확도 측정치들, 또는 다른 측정치들을 사용하여 수행될 수 있다. 일부 경우들에서, 이들 기법들은 이미지-레벨 분할 평가에 충분할 수 있다. 그러나, 비디오 분할을 평가할 때, 시간에 걸쳐 분할 변화들의 일관성과 관련된 부가적인 우려들이 있을 수 있다. 일반적으로, 비디오 분할 시간적 일관성에 대한 신뢰할 수 있고 견고한 측정치들이 부족하다.
[0038] 비디오 분할을 평가하기 위한 하나의 기법은 분할 출력 레벨에서만 분할 시간적 일관성을 측정하는 것을 포함한다. 그러나, 그러한 측정치는 미가공(raw) 데이터 변화들을 참조하지 않을 수 있고, 이미지 프레임들 사이의 폐색 및/또는 큰 움직임들이 발생할 때 신뢰할 수 없을 수 있다. 다른 기법은 뉴럴 네트워크(예컨대, 콘볼루션 뉴럴 네트워크)의 출력들에서 높은 시간적 주파수들의 양(amount)을 컴퓨팅하는 것에 기반하여 시간적 안정성을 측정하는 것을 포함한다. 그러나, 그러한 측정치는 단지 네트워크의 출력들을 조사하며, 출력들의 변화들이 미가공 이미지 프레임들의 변화들을 반영하는지 여부를 측정하지는 않는다. 추가적인 기법은 광학 흐름(optical flow)을 사용하여 모션들(예컨대, 비일관성(inconsistency)들)을 직접 추정하는 것을 포함한다. 그러나, 광학 흐름을 추정하는 것은 쉬운 태스크가 아니다. 많은 실세계 애플리케이션들에서, 정확한 광학 흐름을 획득하는 것은 일부 시맨틱 분할 태스크들보다 훨씬 더 어려울 수 있다. 게다가, 광학 흐름 추정 동작에 의해 커미팅된 에러들은, 부정확하고 그리고/또는 오도하는 시간적 일관성 측정치(temporal consistency measure)들로 이어질 수 있다.
[0039] 이미지 분할(및 비디오 분할) 프로세스들을 평가하기 위한 시스템들, 장치들, 방법들 및 컴퓨터-판독가능 매체(총괄하여 "시스템들 및 기법들"로 지칭됨)가 본원에서 설명된다. 아래에서 더 상세히 설명될 바와 같이, 이들 시스템들 및 기법들은 이미지 분할 프로세스들을 평가할 수 있다. 예컨대, 2 개의 이미지 프레임들(예컨대, 이미지 프레임들(t1 및 t2))과 연관된 분할 특징 맵들이 주어지면, 분할 특징 맵(t1)의 위치(A)에서의 분할 특징이 분할 특징 맵(t2)의 위치(B)에서의 분할 특징과 유사하면, 위치들(A 및 B)에 대응하는 이미지 데이터는 이미지(예컨대, 지각) 특징 공간에서 유사해야 한다. 예컨대, 시간(t1) 및 시간(t2)에서의 분할 특징들 사이의 상관이 시간(t1) 및 시간(t2)에서의 미가공 이미지 특징들 사이의 상관과 "매칭(match)"하면, 시간(t1)과 시간(t2) 사이의 분할은 (예컨대, 미가공 이미지 도메인에 대해) 시간적으로 일관성 있다. 이러한 방식으로, 개시된 시스템들 및 기법들은 이미지 분할 프로세스들의 시간적 일관성을 측정하기 위해 "교차-프레임(cross-frame)들" 및 "교차-특징(cross-feature)들" 상관을 활용할 수 있다.
[0040] 일 예에서, 이미지 분할 평가 시스템은 연속적인 이미지 프레임들 또는 인근(close-by) 이미지 프레임들(예컨대, 1, 2, 3, 또는 다른 수의 중간 프레임들에 의해 분리된 이미지 프레임들)에 대한 지각 특징들(예컨대, 이미지 특징들) 및 분할 네트워크의 출력 특징들을 교차-참조(cross-reference)할 수 있다. 예컨대, 분할 네트워크의 출력 특징들은 공간 및 시간에 걸쳐 특징들에 대한 친화도 매트릭스(affinity matrix)를 생성하기 위한 기구로서 활용될 수 있다. 이미지 분할 평가 시스템은 하나의 타임스탬프를 갖는 이미지 프레임으로부터 다른 타임스탬프를 갖는 이미지 프레임으로 지각 특징들을 이동시키기 위해 친화도 매트릭스를 사용할 수 있다. 그 다음, 이미지 분할 평가 시스템은 이동된 지각 특징들과 오리지널 지각 특징들 사이의 유사성 측정치(예컨대, 코사인 유사성 또는 거리 또는 다른 유사성 측정치)를 결정할 수 있다. 이러한 유사성 측정치는 분할 레벨에서의 특징 상관이 2 개의 이미지 프레임들 사이의 지각 특징 레벨에서의 상관에 얼마나 정확하게 대응하는지를 표시할 수 있다. 일부 경우들에서, 이미지 분할 평가 시스템은 (예컨대, 비-연속적인 이미지 프레임들에 대응하는) 1보다 더 큰 시간 샘플링 갭으로 2 개의 타임스탬프들을 세팅함으로써 장거리 시간적 일관성을 결정할 수 있다. 추가로, 이미지 분할 평가 시스템은 2-프레임 시간적 일관성 측정치를 결정하는 프로세스를 다중-프레임 시간적 일관성 측정치들을 결정하는 것으로 확장할 수 있다.
[0041] 일부 경우들에서, 이미지 분할 평가 시스템은 지도되지 않을 수 있다(예컨대, 라벨링된 데이터에 기반한 지도를 사용하지 않으면서 트레이닝됨). 예컨대, 이미지 분할 평가 시스템은 실측 자료 주석들 및/또는 제3 자 광학 흐름 추정 네트워크들의 이용가능성을 요구하지 않을 수 있다. 일부 예들에서, 이미지 분할 평가 시스템에 의해 결정된 시간적 일관성 측정치들은 (예컨대, 라벨링된 이미지 프레임들 근처의 또는 이들에 인접하는 라벨링되지 않은 이미지 프레임들을 활용함으로써) 분할 일관성 및/또는 정확도를 개선하기 위한 트레이닝 손실로서 활용될 수 있다.
[0042] 도 1은 이미지 분할 시스템(102)의 예를 예시하는 다이어그램이다. 이미지 분할 시스템(102)은 분할 엔진(104), 모션 결정 엔진(109) 및 픽셀 조정 엔진(108)을 포함하는 다양한 컴포넌트들을 포함한다. 렌더링 엔진(110)은 또한, 이미지 분할 시스템(102)과 통신하는 것으로 도시된다. 일부 구현들에서, 렌더링 엔진(110)은 이미지 분할 시스템(102)의 일부일 수 있다. 이미지 분할 시스템(102) 및 렌더링 엔진(110)의 컴포넌트들은 본원에서 설명되는 다양한 동작들을 수행하기 위해 하나 이상의 프로그램가능 전자 회로들(예컨대, 마이크로프로세서들, GPU(graphics processing unit)들, DSP(digital signal processor)들, CPU(central processing unit)들, NPE(neural processing engine)들 또는 NPU(neural processing unit)들, 또는 다른 적절한 전자 회로들), 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있는 전자 회로들 또는 다른 전자 하드웨어를 포함할 수 있다. 분할 시스템(102)은, 다른 것들 중에서도, 레이턴시, 스루풋, 배터리, 메모리, CPU와 같은 메트릭들을 최적화하면서, 뉴럴 네트워크를 실행하기 위한 최상의 수단을 동적으로 결정하기 위해 CPU, DSP, GPU, 및 NPU 또는 NPE의 아키텍처들을 레버리징할 수 있다. 하나의 예시적인 예에서, 분할 엔진(104)의 동작들은 하나 이상의 뉴럴 네트워크들을 실행할 수 있는 NPE, GPU 및/또는 DSP를 사용하여 구현될 수 있다. 다른 예에서, 모션 결정 엔진(109)의 동작들은 CPU를 사용하여 구현될 수 있다. 다른 예에서, 렌더링 엔진(110)의 동작들은 GPU를 사용하여 구현될 수 있다. 이미지 분할 시스템(102)이 특정 컴포넌트들을 포함하는 것으로 도시되지만, 당업자는 이미지 분할 시스템(102)이 도 1에 도시된 컴포넌트들보다 더 많거나 또는 더 적은 컴포넌트들을 포함할 수 있다는 것을 인식할 것이다. 예컨대, 이미지 분할 시스템(102)은 또한, 일부 인스턴스들에서, 도 1에 도시되지 않은 하나 이상의 메모리(예컨대, RAM, ROM, 캐시, 버퍼 등) 및/또는 프로세싱 디바이스들을 포함할 수 있다.
[0043] 다수의 프레임들(예컨대, 프레임들(103))은 이미지 분할 시스템(102)의 컴포넌트들에 의해 프로세싱될 수 있다. 프레임은 한 세트의 연속적으로 캡처된 정지 이미지(still image)들 중의 정지 이미지 또는 비디오 시퀀스의 비디오 프레임을 포함할 수 있다. 하나의 예시적인 예에서, 한 세트의 연속적으로 캡처된 정지 이미지들이 카메라의 시야에 있는 것의 프리뷰로서 캡처되어 사용자에게 디스플레이될 수 있으며, 이는 사용자가 저장을 위해 언제 이미지를 캡처할지를 결정하는 것을 도울 수 있다. 다른 예시적인 예에서, 한 세트의 연속적으로 캡처된 정지 이미지들은 버스트 모드 또는 다수의 연속적인 이미지들을 캡처하는 다른 유사한 모드를 사용하여 캡처될 수 있다.
[0044] 프레임은 픽셀당 적색, 녹색 및 청색 컬러 컴포넌트들을 갖는 RGB(red-green-blue) 프레임, 픽셀당 루마 컴포넌트 및 2 개의 크로마 (컬러) 컴포넌트들, 이를테면, 크로마-적색 및 크로마-청색을 갖는 YUV 프레임 또는 루마, 크로마-적색, 크로마-청색(YCbCr) 프레임, 임의의 다른 적절한 타입의 컬러 또는 단색화 픽처, 온도 값들을 갖는 열 이미지들, 깊이 값들을 갖는 범위 또는 깊이 이미지들, 모션 델타들(deltax, deltay)을 갖는 광학 흐름 이미지들, 컬러 대역 값들을 갖는 다중-분광 및 초-분광 이미지들, 이들의 임의의 조합, 및/또는 다른 타입들의 프레임들 또는 이미지들일 수 있다. 일부 경우들에서, 프레임들은 멀티-뷰(multi-view) 이미지 프레임들(예컨대, 동시에 캡처된 대응하는 좌우 이미지 프레임들을 생성하는 스테레오 카메라 셋업으로부터의 이미지 프레임들)을 포함할 수 있다. 일부 예들에서, 이미지 분할 프로세스는, 카메라 또는 카메라를 포함하는 컴퓨팅 디바이스(예컨대, 모바일 디바이스, XR(extended reality) 디바이스, 이를테면, 머리-장착 디스플레이 또는 XR 안경, 차량 또는 차량의 컴퓨팅 디바이스 또는 시스템, 또는 다른 컴퓨팅 디바이스)에 의해 하나 이상의 이미지 프레임들이 캡처되는 것에 대한 응답으로 수행될 수 있다. 예시적인 예에서, 이미지 분할 프로세스는 하나 이상의 이미지 프레임들에 걸친 오브젝트들의 움직임을 추적하기 위해서 수행될 수 있다. 다른 예시적인 예에서, 이미지 분할 프로세스는 셔터 버튼, 시각 효과로 프레임이 캡처되게 하는 하나 이상의 그래픽 아이콘들, 및/또는 카메라 또는 컴퓨팅 디바이스의 다른 선택 옵션의 선택에 대한 응답으로 호출(invoke)될 수 있다. 시각 효과는 프레임의 배경 픽셀들이 블러링 아웃(blur out)되는 것, 블랙 아웃(black out)되는 것, 상이한 컬러로 변화되는 것, 상이한 배경으로 대체되는 것, 조정된 조명 및/또는 컬러 특성을 갖는 것, 및/또는 임의의 다른 적절한 효과와 함께 적용되는 것을 포함할 수 있다. 다른 예에서, 시각 효과는 출력 프레임의 전경 픽셀들을 수정하는 것(예컨대, 조명, 블러링 등을 변화시키는 것) 또는 전경 픽셀들을 컴퓨터-생성 오브젝트, AR(augmented reality) 오브젝트 또는 다른 적절한 오브젝트와 같은 상이한 오브젝트로 대체하는 것을 포함할 수 있다.
[0045] 프레임들(103)을 송신하는 프레임 소스(101)는 하나 이상의 이미지 캡처 디바이스들 및/또는 하나 이상의 비디오 캡처 디바이스들(예컨대, 디지털 카메라, 디지털 비디오 카메라, 카메라를 갖는 폰, 카메라를 갖는 태블릿, 또는 다른 적절한 캡처 디바이스), 이미지 및/또는 비디오 저장 디바이스, 저장된 이미지들을 포함하는 이미지 및/또는 비디오 아카이브, 이미지 및/또는 비디오 데이터를 제공하는 이미지 및/또는 비디오 서버 또는 콘텐츠 제공자, 비디오 서버 또는 콘텐츠 제공자로부터 이미지들을 수신하는 이미지 및 /또는 비디오 피드 인터페이스, 컴퓨터 그래픽스 이미지 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽스 시스템, 그러한 소스들의 조합, 또는 이미지 프레임 콘텐츠의 다른 소스를 포함할 수 있다. 일부 경우들에서, 다수의 프레임 소스들은 이미지 분할 시스템(102)에 프레임들을 제공할 수 있다.
[0046] 이미지 분할 시스템(102)(및 렌더링 엔진(110))은 컴퓨팅 디바이스 또는 다수의 컴퓨팅 디바이스들의 일부일 수 있다. 일부 경우들에서, 이미지 분할 시스템(102)을 포함하는 컴퓨팅 디바이스(또는 디바이스들)는 또한, 무선 통신들을 위한 하나 이상의 무선 트랜시버들 및/또는 하나 이상의 이미지들을 디스플레이 하기 위한 디스플레이를 포함할 수 있다. 일부 예들에서, 이미지 분할 시스템(102)을 포함하는 컴퓨팅 디바이스는 전자 디바이스, 이를테면, 카메라(예컨대, 디지털 카메라, IP 카메라, 비디오 카메라, 카메라 폰, 비디오 폰, 또는 다른 적절한 캡처 디바이스), 모바일 또는 고정식 디바이스(예컨대, 전화 핸드셋, 이를테면, 스마트폰, 셀룰러 전화 등), XR(extended reality) 디바이스(예컨대, VR(virtual reality) 디바이스, AR(augmented reality) 디바이스, MR(mixed reality) 디바이스 등), 이를테면, 머리-장착 디스플레이 또는 XR 안경, 차량 또는 차량의 컴퓨팅 디바이스 또는 시스템, 로봇 디바이스, 데스크톱 컴퓨터, 랩톱 또는 노트북 컴퓨터, 태블릿 컴퓨터, 셋-톱 박스, 텔레비전, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게이밍 콘솔, 비디오 스트리밍 디바이스, 또는 임의의 다른 적절한 전자 디바이스일 수 있다. 일부 구현들에서, 이미지 분할 시스템(102) 및 프레임 소스(101)는 동일한 컴퓨팅 디바이스의 일부일 수 있다. 예컨대, 일부 경우들에서, 카메라, 폰, 태블릿, 및/또는 프레임 또는 이미지 소스(예컨대, 카메라, 저장부 등)를 갖는 다른 디바이스는 통합 이미지 분할 시스템(예컨대, 이미지 분할 시스템(102))을 포함할 수 있다. 일부 구현들에서, 이미지 분할 시스템(102) 및 프레임 소스(101)는 별개의 컴퓨팅 디바이스들의 일부일 수 있다. 하나의 예시적인 예에서, 프레임 소스(101)는 하나 이상의 카메라들을 포함할 수 있고, 이미지 분할 시스템(102)을 포함하는 컴퓨팅 디바이스는 모바일 또는 고정식 전화 핸드셋, 데스크톱 컴퓨터, 랩톱 또는 노트북 컴퓨터, 태블릿 컴퓨터, 또는 다른 컴퓨팅 디바이스를 포함할 수 있다.
[0047] 일부 예들에서, 이미지 분할 시스템(102)에 의해 수행되는 이미지 분할 프로세스는 컴퓨팅 디바이스의 단일 카메라 시스템을 사용하여 수행될 수 있다. 다른 예들에서, 이미지 분할 시스템(102)에 의해 수행되는 이미지 분할은 컴퓨팅 디바이스의 듀얼 카메라 시스템을 사용하여 수행될 수 있다. 일부 경우들에서, 2 개 초과의 카메라들이 이미지 분할 프로세스를 수행하기 위해 카메라 시스템에서 사용될 수 있다.
[0048] 이미지 분할 시스템(102)의 분할 엔진(104)은 이미지 분할(시맨틱 분할로 또한 지칭됨)을 사용하여 프레임을 프로세싱하여 분할 마스크(분할 맵으로 또한 지칭됨)를 생성할 수 있다. 예컨대, 프레임들(예컨대, 프레임들(103))의 시퀀스로부터의 분할 프레임(M)은 분할 프레임(M)에 대한 분할 마스크를 결정하기 위해서 분할 엔진(104)에 의해 프로세싱될 수 있다. 본원에서 사용되는 바와 같은 분할 프레임은 이미지 분할이 수행되는 임의의 프레임이다. 일부 예들에서, 분할 마스크는 프레임 내의 어느 픽셀들이 전경 픽셀들인지 그리고 어느 픽셀들이 배경 픽셀들인지를 표시할 수 있다. 예컨대, 분할 마스크는 사람(전경)에 속하는 픽셀들에 대한 제1 값(예컨대, 255, 1의 값 또는 다른 적절한 값) 및 배경에 속하는 픽셀들에 대한 제2 값(예컨대, 0의 값)을 포함할 수 있다. 제1 값(예컨대, 255)은 백색 컬러에 대응할 수 있으며, 이 경우, 관심 오브젝트에 대응하는 픽셀들은 백색이다. 그러한 경우들에서, 제2 값(예컨대, 0)은 흑색 컬러에 대응할 수 있으며, 이 경우, 배경에 대응하는 픽셀들은 흑색이다. 일부 경우들에서, 분할 마스크는 전경 및 배경 픽셀들 사이의 트랜지션 구역들에 속하는 픽셀들, 프레임을 분할하기 위해 분류 뉴럴 네트워크가 사용될 때 관심 오브젝트(예컨대, 사람) 이외의 분류된 오브젝트들에 속하는 픽셀들 등과 같은 (전경 및 배경 픽셀들 이외의) 다른 픽셀들의 표시들을 포함할 수 있다. 도 7b는 도 7a에 도시된 이미지를 사용하여 생성된 분할 마스크의 예이다. 아래에서 더 상세히 설명되는 바와 같이, 트레이닝된 딥 뉴럴 네트워크는 이미지 분할을 수행하기 위해 사용될 수 있다. 일부 경우들에서, 뉴럴 네트워크는 오브젝트들의 다수의 클래스들을 식별하도록 트레이닝되는 분류 네트워크를 포함할 수 있고, 여기서 오브젝트 클래스들 중 하나는 관심 오브젝트(예컨대, 사람, 자전거, 차량, 또는 다른 적절한 관심 오브젝트)이다. 그러한 경우들에서, 분할 마스크는 각각의 픽셀이 어느 클래스에 속하는지를 표시하는, 각각의 픽셀에 대한 값을 포함할 수 있다.
[0049] 위에서 주목된 바와 같이, 분할 엔진(104)은 일부 경우들에서 (트레이닝된 딥 뉴럴 네트워크를 사용하여) 딥 러닝 기반 이미지 분할을 수행할 수 있다. 딥 뉴럴 네트워크들의 예시적인 예들은 도 9 및 도 10과 관련하여 아래에서 설명된다. 딥 러닝 기반 이미지 분할의 복잡한 성질은 분할 프로세스로 하여금 대량들의 컴퓨팅 자원들 및 전력을 소비하게 할 수 있으며, 레이턴시들 및 성능 문제들이 발생하게 할 수 있다.
[0050] 이미지 분할 프로세스들을 평가하기 위한 다양한 기법들이 존재한다. 하나의 기법에 따르면, 이미지 분할 평가 시스템은 한 세트의 시험 이미지 프레임들에 대한 실측 자료 주석들과 분할 네트워크로부터의 분할 출력들을 직접 비교할 수 있다. 이 기법은 평균 IoU들(예컨대, 구역-기반 평가를 위한 메트릭)을 활용할 수 있다. 구역-기반 평가에 부가하여, 평균 IoU들은 또한, 경계들에 초점을 맞추어 이미지 분할 정확도를 평가하기 위해 사용될 수 있다. 추가로, 평균 IoU(intersection-over-union) 측정치들은 더 높은 차원의 데이터(예컨대, 3D(three-dimensional) 또는 비디오 분할 결과들)로 평가하기 위해서 볼륨-기반 정밀도 및 리콜(recall)에 대해 확장될 수 있다. 그러나, 평균 IoU들을 활용하는 기법들은 여러 결점들 및/또는 단점들을 가질 수 있다. 예컨대, 조밀하고 그리고/또는 정확한 실측 자료 주석은 특히 비디오 데이터에 대해 획득하는 데 비용이 많이 들(예컨대, 자원-집약적일) 수 있다. 추가로, 모든 이용가능한 이미지 프레임들에 정확하게 주석을 다는 것은 실현가능하지 않거나 또는 현실적이지 않을 수 있어서, 주석을 위한 검증 세트(예컨대, 시험 세트)를 형성하기 위해 한 세트의 이미지 프레임들을 선택할 필요가 있게 된다. 이러한 선택 프로세스는 평가 결과들에 바이어스를 도입할 수 있다. 게다가, 기존의 평가 기법들은 시간적 일관성을 명시적으로 해결하지 못할 수 있다. 예컨대, 시간적으로 일관성 없는 분할 프로세스 및 시간적으로 일관성 있는 분할 프로세스가 동일한(또는 유사한) 평균 IoU를 산출하는 것이 가능하다.
[0051] 이미지 분할 프로세스들을 평가하기 위한 다른 기법은 이미지 프레임들 사이의 형상 및/또는 윤곽 매칭을 포함할 수 있다. 예컨대, 이 기법은 초기 이미지 프레임의 오브젝트 마스크를 후속 이미지 프레임들로 전파하는 것을 포함할 수 있다. 일 예에서, 2 개의 이미지 프레임들의 오브젝트 마스크들 사이의 시간적 일관성의 측정치는 이미지 프레임들과 연관된 매칭 형상 디스크립터들에 기반하여 결정될 수 있다. 낮은 매칭 비용은 시간에 걸쳐 안정적인(예컨대, 일관성 있는) 이미지 분할 프로세스를 표시할 수 있다. 이 기법은 형상 및/또는 오브젝트 마스크 변화들이 안정적이고 연속적이라는 가정에 기반할 수 있다. 따라서, 폐색 또는 뷰포인트의 변화가 발생하는 경우들에서 오브젝트의 형상이 급격하게 변화할 수 있기 때문에, 이 기법은 (예컨대, 미가공 이미지들을 다시 참조하지 않으면서 출력 형상들만을 평가하는 기법으로 인해) 시간적 안정성을 정확하게 반영하는 데 실패할 수 있다. 다른 기법은 분할 네트워크의 출력들의 시간적 변화들(예컨대, 고주파수들)의 총량을 실측 자료들의 시간적 변화들(예컨대, 고주파수들)의 총량과 비교하는 것을 포함할 수 있다. 이 기법에서, 더 적은 변화를 갖는 출력들은 더 우수한 시간적 일관성을 표시할 수 있다. 그러나, 이러한 측정치는 출력 안정성이 미가공 이미지 프레임들의 변화들을 정확하게 반영하는지 여부를 해결하지 못할 수 있다. 예컨대, 분할 네트워크가 모션을 갖는 비디오들에 대한 정적 출력들을 생성하는 것이 가능하다. 부정확하지만, 이들 정적 출력들은 안정적인 것으로(예컨대, 실측 자료들보다 훨씬 더 안정적인 것으로) 간주될 수 있다.
[0052] 이미지 분할 프로세스들을 평가하기 위한 다른 기법은 광학 흐름 추정을 수반한다. 이 기법에서, 분할 시간적 일관성은 일관성 있게 라벨링된 트랙(track)들의 프랙션(fraction)으로서 정의될 수 있다. 트랙들은 프레임-대-프레임 광학 흐름 추정을 사용하여 획득될 수 있다. 일부 경우들에서, 매칭 트랙들의 높은 프랙션은 높은 시간적 일관성을 표시할 수 있다. 관련 기법은 2 개의 미가공 이미지 프레임들 사이(예컨대, 이미지 프레임(t-1)과 이미지 프레임(t) 사이)의 광학 흐름을 추정하는 것, 그리고 추정된 광학 흐름을 사용하여 분할 마스크를 t-1로부터 t로 와핑(warp)하는 것을 포함할 수 있다. 그 다음, 시간(t)에 분할 네트워크에 의해 생성된 분할과 와핑된 분할 사이에서 평균 IoU 측정치가 컴퓨팅될 수 있다. 높은 평균 IoU 측정치는 이미지 프레임(t-1)과 이미지 프레임(t) 사이의 높은 분할 시간적 일관성을 표시할 수 있다. 일부 경우들에서, 이미지 분할 프로세스들을 평가하기 위해 광학 흐름 추정을 사용하는 것은 다양한 결점들 및/또는 단점들을 가질 수 있다. 예컨대, 실세계 데이터(예컨대, 시뮬레이팅되지 않은 데이터)에 대한 정확한 광학 흐름을 추정하는 것은 어려운 태스크일 수 있다(예컨대, 분할 태스크들보다 더 어려울 수 있음). 추가로, 정확한 광학 흐름 추정은 시간-소모적이어서, 시간적 일관성이 중요할 수 있는 애플리케이션들(예컨대, 자율 주행)에서 실시간 시간적 일관성 측정들을 하지 못하게 할 수 있다. 게다가, 다른 고도 파라메트릭 모델(highly parametric model)(예컨대, 분할 네트워크)을 평가하기 위해 파라메트릭 모델(예컨대, 광학 흐름 추정 네트워크)에 의존하는 것은 문제가 될 수 있다. 예컨대, 고-품질 광학 흐름 추정의 보장들 없이, 광학 흐름 추정에 기반한 와핑에 의존하는 시간적 일관성 측정치는 부정확하거나 또는 오도할 수 있다. 그러나, 개시되는 시스템들 및 기법들의 일부 예들은 시간적 일관성 측정들을 결정하기 위해 광학 흐름 추정에 기반하여 와핑된 분할 마스크들을 활용할 수 있다.
[0053] 도 2a 및 도 2b는 이미지 프레임들 상에 오버레이된 예시적인 분할 마스크들의 예시들을 제공한다. 이들 예시들은 다수의 이미지 프레임들에 걸쳐 분할 마스크들 내에서 발생할 수 있는 예시적인 시간적 비일관성들을 표현한다. 도 2a는 이미지 프레임(202) 및 이미지 프레임(204)을 도시한다. 일 예에서, 이미지 프레임(202) 및 이미지 프레임(204)은 일련의 이미지 프레임들에서 인접한(또는 인근의) 이미지 프레임들을 표현할 수 있다. 이미지 프레임(202)은 이미지 프레임(202) 내의 하나의 특징(예컨대, 하나의 오브젝트)에 대응하는, 이미지 프레임(202)에 대한 분할 마스크의 부분을 표현하는 세그먼트(segment)(206)를 예시한다. 이미지 프레임(204)은 이미지 프레임(204)에 대한 분할 마스크의 대응하는 부분을 표현하는 세그먼트(206)를 예시한다. 도시된 바와 같이, 세그먼트(206)의 형상은 세그먼트(208)의 형상과 상이하다. 이러한 차이는 시간적 비일관성의 예이다. 예컨대, 세그먼트(206) 및 세그먼트(208)는, 세그먼트들(206 및 208)에 대응하는 특징이 이미지 프레임들(202 및 204) 사이에서 움직이지 않았기 때문에, 동일한(또는 대략 동일한) 형상 및 사이즈를 가져야 한다. 이러한 시간적 비일관성은 분할 마스크들이 다양한 애플리케이션들(예컨대, 컴퓨터 비전 애플리케이션들, 확장 현실 애플리케이션들, 자율주행차 애플리케이션들 등)에서 사용될 때 바람직하지 않은 시각 출력(예컨대, "깜박거림(flicker)") 또는 다른 에러를 초래할 수 있다. 도 2b는 시간적 비일관성의 다른 예를 예시한다. 예컨대, 이미지 프레임(210)은 세그먼트(214)를 포함하고, 이미지 프레임(212)(예컨대, 인접한 이미지 프레임)은 대응하는 세그먼트(219)를 포함한다. 도시된 바와 같이, 세그먼트(219)는 세그먼트(214)에 의해 나타나지 않은 부정확도를 포함한다.
[0054] 도 3a, 도 3b, 도 3c 및 도 3d는 이미지 분할 프로세스들을 평가하는 예들을 제공한다. 이들 예들은 평균 IoU 측정치들을 사용하여 분할 프로세스들을 평가하는 단점들을 예시할 수 있다. 이들 도면들은 각각, 동일한 2 개의 이미지 프레임들(시간(t1) 및 시간(t2)에 대응함), 2 개의 이미지 프레임들에 대한 분할 마스크들, 및 이미지 프레임들 상에 오버레이된 분할 마스크들을 도시한다. 각각의 도면에서 분할 마스크들을 생성하기 위해 사용되는 이미지 분할 프로세스들은 상이하다. 도 3a의 예에서, 분할 마스크들 둘 모두에 대한 평균 IoU는 높다(예컨대, 0.0-1.0의 스케일에서 1.0의 값). 추가로, 분할 마스크들 둘 모두가 매우 정확하기 때문에, 시간적 일관성(TC; temporal consistency)이 또한 높다. 도 3b의 예에서, 분할 마스크들 둘 모두에 대한 평균 IoU는 더 낮다(예컨대, 0.8). 그러나, 분할 마스크들 둘 모두는 동일한(또는 유사한) 위치들에서 에러들을 갖는다. 예컨대, 도시된 바와 같이, 분할 마스크들 둘 모두는 자전거의 바퀴들을 포함하는 데 실패한다. 따라서, 분할 마스크들의 시간적 일관성이 높다. 도 3c에서, 제1 이미지 프레임에 대응하는 분할 마스크의 평균 IoU는 높고(예컨대, 1.0), 제2 이미지 프레임에 대응하는 분할 마스크의 평균 IoU는 더 낮으며(예컨대, 0.8), 이는 제1 분할 마스크에 의해 나타나지 않은 에러들이 제2 분할 마스크에 있다는 것을 표시한다. 따라서, 분할 마스크들의 시간적 일관성이 낮다. 도 3a에서, 분할 마스크들 둘 모두의 평균 IoU는 동일하다(예컨대, 0.9). 그러나, 이들 분할 마스크들에 대한 시간적 일관성은 상이한 특징들과 연관된 에러들을 갖는 분할 마스크들로 인해 낮다. 예컨대, 도시된 바와 같이, 제1 분할 마스크는 자전거의 뒷바퀴를 포함하지 않는 한편, 제2 분할 마스크는 자전거의 뒷바퀴를 포함한다. 이에 따라서, 일부 경우들에서, 평균 IoU는 이미지 분할 프로세스들을 평가하기 위한 정확하거나 또는 신뢰할 수 있는 메트릭이 아닐 수 있다. 예컨대, 2 개 이상의 프레임들과 연관된 평균 IoU들이 모두 높지 않거나(예컨대, 1에 가깝지 않거나) 또는 2 개의 이미지 프레임들 사이의 평균 IoU에서 명확한 차이가 있지 않는 한, 단순히 프레임당 평균 IoU 값들에 기반하여 시간적 일관성이 추론될 수는 없다. 따라서, 분할 시간적 일관성은 분할 프레임당 정확도(segmentation per-frame accuracy)에 대응하지 않을 수 있다.
[0055] 도 4는 이미지 분할 평가 시스템(400)의 예를 예시하는 다이어그램이다. 일부 경우들에서, 이미지 분할 평가 시스템(400)의 전부 또는 일부는 도 1의 이미지 분할 시스템(102) 내에 포함될 수 있고 그리고/또는 이와 통신할 수 있다. 예컨대, 이미지 분할 평가 시스템(400)은 이미지 분할 시스템(102)의 출력 프레임들(112)(또는 다른 이미지 분할 출력들)을 평가할 수 있다. 다른 예에서, 이미지 분할 평가 시스템(400)은 이미지 분할 시스템(102)에 의해 구현된 이미지 분할 프로세스(예컨대, 뉴럴 네트워크)를 트레이닝하도록 구성될 수 있다.
[0056] 도 4에 도시된 바와 같이, 이미지 분할 평가 시스템(400)은 프레임 엔진(402), 분할 특징 엔진(404), 이미지 특징 엔진(406) 및 유사성 엔진(408)과 같은 하나 이상의 엔진들을 포함할 수 있다. 일 예에서, 프레임 엔진(402)은 하나 이상의 이미지 또는 비디오 프레임들(예컨대, 이미지 프레임들(410))을 수신할 수 있다. 이미지 프레임들(410)은 도 1에 도시된 프레임들(103) 중 하나 이상에 대응할 수 있다. 일부 경우들에서, 프레임 엔진(402)은 이미지 프레임들(410)이 이미지 캡처 디바이스 및/또는 비디오 캡처 디바이스(예컨대, 디지털 카메라, 디지털 비디오 카메라, 카메라를 갖는 폰, 카메라를 갖는 태블릿, 또는 다른 적절한 캡처 디바이스)에 의해 캡처될 때 이미지 프레임들(410)을 수신할 수 있다. 프레임 엔진(402)은 이미지 프레임들(410) 전부 또는 일부를 분할 특징 엔진(404) 및/또는 이미지 특징 엔진(406)에 전달할 수 있다.
[0057] 일부 예들에서, 분할 특징 엔진(404)은 이미지 프레임들(410)의 분할 특징들(412)을 결정할 수 있다. 본원에서 사용되는 바와 같이, "분할 특징"라는 용어는 분할 마스크와 연관된 특징을 지칭할 수 있다. 예컨대, 분할 특징은 이미지 분할 프로세스에 적어도 부분적으로 기반하여 결정된 특징 벡터를 포함할 수 있다. 일 예에서, 분할 특징은 이미지 분할을 위해 트레이닝된 뉴럴 네트워크(예컨대, 복수의 계층들을 갖는 딥 뉴럴 네트워크)의 계층에 의해 출력된 특징 벡터에 대응할 수 있다. 예시적인 예에서, 뉴럴 네트워크의 최종 계층은 (아래에서 더 상세히 설명될 바와 같이) "argmax" 함수를 구현하는 계층 및/또는 완전 연결 계층일 수 있다. 이 예에서, 분할 특징 엔진(404)은 뉴럴 네트워크의 마지막에서 두 번째 계층의 출력에 기반하여 이미지 프레임과 연관된 분할 특징들을 결정할 수 있다. 일부 경우들에서, 이 계층에 의해 생성된 특징 벡터들은 다양한 타입들의 특징들과 연관된 특징 정보를 포함할 수 있다. 예컨대, 특징 벡터들은 로우-레벨 특징들(예컨대, 오브젝트들의 코너들 및/또는 에지들), 중간-레벨 특징들(예컨대, 오브젝트들의 경계들, 형상들 등) 및/또는 하이-레벨 특징들(예컨대, 오브젝트들)과 연관된 특징 정보를 포함할 수 있다. 일부 예들에서, 이미지 프레임과 연관된 분할 특징들(예컨대, 이미지 프레임과 연관된 각각의 분할 특징)은 총괄하여 분할 특징 맵에 대응할 수 있다.
[0058] 일부 예들에서, 이미지 특징 엔진(406)은 이미지 프레임들(410)의 이미지 특징들(414)을 결정할 수 있다. 본원에서 사용되는 바와 같이, "이미지 특징"(또한 "지각 특징")이라는 용어는 이미지 프레임과 연관된 임의의 특징을 지칭할 수 있다. 일 예에서, 이미지 특징은 미가공 이미지 데이터에 대해 수행되는 특징 추출 알고리즘에 적어도 기반하여 결정된 특징 벡터에 대응할 수 있다. 다른 예에서, 이미지 특징은 미가공 이미지 데이터에 대응할 수 있고 그리고/또는 미가공 이미지 데이터를 포함할 수 있다. 일부 경우들에서, 이미지 특징 엔진(406)은 ImageNet 네트워크 및/또는 ResNet 네트워크(예컨대, ResNet18, ResNet101 등)와 같은, 특징 추출을 위해 트레이닝된 뉴럴 네트워크를 사용하여 이미지 특징들(414)을 결정할 수 있다. 일 예에서, 이미지 특징 엔진(406)은 미리 트레이닝된 뉴럴 네트워크들의 저장소(예컨대, PyTorch 모델 주(model zoo))로부터 뉴럴 네트워크를 획득할 수 있다. 일부 경우들에서, 이미지 특징들(414)의 사이즈(예컨대, 분해능)는 분할 특징들(412)의 사이즈와 상이할 수 있다. 이들 경우들에서, 이미지 특징 엔진(406)은 분할 특징들(412)의 사이즈와 매칭하도록 이미지 특징들(414)을 리사이징(resize)할 수 있다. 일부 예들에서, 이미지 프레임과 연관된 이미지 특징들(예컨대, 이미지 프레임과 연관된 각각의 이미지 특징)은 총괄하여 이미지 특징 맵에 대응할 수 있다.
[0059] 일부 경우들에서, 유사성 엔진(408)은 분할 특징들(412) 및 이미지 특징들(414)에 적어도 부분적으로 기반하여 유사성 측정들(416)을 결정할 수 있다. 유사성 측정들(416)은 2 개 이상의 이미지 프레임들과 연관된 분할 마스크들 사이의 시간적 일관성의 레벨을 표시하는 하나 이상의 시간적 일관성 측정들을 포함할 수 있다. 일 예에서, 유사성 측정들(416)은 이미지 프레임의 개별적인 특징들에 대응하는 복수의 시간적 일관성 측정들을 포함할 수 있다. 다른 예에서, 유사성 측정들(416)은 이미지 프레임의 각각의 특징을 나타내는 전체(예컨대, 단일) 시간적 일관성 측정을 포함할 수 있다. 유사성 엔진(408)은 다양한 방식들로 유사성 측정들(416)을 결정할 수 있다. 일 예에서, 분할 특징 엔진(404)은 2 개(또는 그 초과)의 이미지 프레임들에 대한 분할 특징 맵들을 결정할 수 있고, 이미지 특징 엔진(406)은 2 개(또는 그 초과)의 이미지 프레임들에 대한 이미지 특징 맵들을 결정할 수 있다. 이미지 프레임들은 일련의 이미지 프레임들에서 인접한(예컨대, 연속적인) 이미지 프레임들일 수 있거나, 또는 이미지 프레임들은 하나 이상의 중간 이미지 프레임들에 의해 분리될 수 있다. 분할 특징 맵들 및 이미지 특징 맵들에 기반하여, 유사성 엔진(408)은 맵들 내의 대응하는 특징 쌍들을 결정할 수 있다. 예컨대, 하나의 분할 특징 맵의 각각의 분할 특징에 대해, 유사성 엔진(408)은 다른 분할 특징 맵의 가장 유사한 분할 특징을 결정할 수 있다. 추가로, 하나의 이미지 특징 맵의 각각의 이미지 특징에 대해, 유사성 엔진(408)은 다른 이미지 특징 맵의 가장 유사한 이미지 특징을 결정할 수 있다. 그 다음, 유사성 엔진(408)은 분할 특징 쌍들 사이의 유사성 측정들 및/또는 이미지 특징 쌍들 사이의 유사성들에 기반하여 2 개의 대응하는 이미지 프레임들과 연관된 시간적 일관성 측정을 결정할 수 있다.
[0060] 도 5a 및 도 5b는 각각, 도 4의 이미지 분할 평가 시스템(400)의 예시적인 구현들(500(A) 및 500(B))을 예시한다. 구현(500(A))에서, 이미지 분할 평가 시스템(400)은 이미지 프레임(502) 및 이미지 프레임(504)을 수신할 수 있다. 이미지 분할 평가 시스템(400)은 분할 네트워크(506)(예컨대, 이미지 분할을 위해 트레이닝된 뉴럴 네트워크)에 이미지 프레임들(502 및 504)을 입력할 수 있다. 도시된 바와 같이, 분할 네트워크(506)는 이미지 프레임(502)과 연관된 분할 특징 맵(508) 및 이미지 프레임(504)과 연관된 분할 특징 맵(510)을 생성할 수 있다. 이미지 분할 평가 시스템(400)은 또한, 특징 추출기(520)(예컨대, 특징 추출을 위해 트레이닝된 뉴럴 네트워크)에 이미지 프레임들(502 및 504)을 입력할 수 있다. 도시된 바와 같이, 특징 추출기(520)는 이미지 프레임(502)과 연관된 이미지 특징 맵(512) 및 이미지 프레임(504)과 연관된 이미지 특징 맵(514)을 생성할 수 있다. 구현(500(A))에서, 이미지 특징 맵들(512 및 514)은 특징 추출기(520)에 의해 추출된 각각의 특징과 연관된 특징 벡터를 포함할 수 있다.
[0061] 일부 경우들에서, 분할 특징 맵들(508 및 510) 및 이미지 특징 맵들(512 및 514) 내의 각각의 위치(예컨대, 박스)는 하나의 특징(예컨대, 하나의 특징 벡터)에 대응할 수 있다. 일 예에서, 이미지 분할 평가 시스템(400)은 분할 특징 맵(510)의 분할 특징 벡터들과 분할 특징 맵(508)의 분할 특징 벡터들 사이의 친화도들(예컨대, 상관들 또는 유사성들)을 결정할 수 있다. 예컨대, 분할 특징 맵(510)의 각각의 분할 특징에 대해, 이미지 분할 평가 시스템(400)은 분할 특징 맵(508)의 대응하는 분할 특징(예컨대, 가장 유사한 분할 특징)을 결정할 수 있다. 일 예에서, 이미지 분할 평가 시스템(400)은 대응하는 분할 특징 쌍들을 친화도 매트릭스로 표현할 수 있다. 예컨대, 이미지 분할 평가 시스템(400)은, 한 세트의 이용가능한 인수(argument)들로부터 타깃 함수의 최대 값을 야기하는 인수를 결정하는 "argmax" 연산을 사용하여 친화도 매트릭스를 생성할 수 있다. 이 예에서, 한 세트의 이용가능한 인수들은 분할 특징 맵(508)의 분할 특징 벡터들에 대응할 수 있고, 타깃 함수는 2 개의 분할 특징 벡터들 사이의 유사성 측정을 출력하는 유사성 함수에 대응할 수 있다. 예시적인 예에서, 도 5a에 도시된 분할 특징 A에 대응하는 분할 특징 벡터 및 분할 특징 맵(508)이 주어지면, argmax 연산은 분할 특징 맵(508)의 어느 분할 특징이 분할 특징 A와 가장 유사한지를 식별할 수 있다. 일 예에서, 유사성 함수는 인식(예컨대, 얼굴 인식) 및 딥 뉴럴 네트워크들을 수반하는 애플리케이션들에서 널리 사용되는 코사인 유사성 측정치에 대응할 수 있다. 유사성 함수는 임의의 다른 유사성 함수, 이를테면, 역 norm-2 거리 측정치일 수 있다. 완전한 친화도 매트릭스를 생성하기 위해, 이미지 분할 평가 시스템(400)은 분할 특징 맵(510)의 각각의 분할 특징 벡터에 대해 argmax 연산을 반복할 수 있다. 예컨대, 일반적인 용어들로, 프레임(t2)과 연관된 분할 특징 맵 내의 모든 각각의 위치(x,y)에 대해, 분할 특징 엔진(404)은 방정식 를 사용하여 프레임(t1)과 연관된 분할 특징 맵 의 위치에서의 대응하는 특징을 결정할 수 있으며, 여기서 는 유사성 함수이다.
[0062] 일부 경우들에서, 이미지 분할 평가 시스템(400)은 분할 네트워크에 의해 생성된 분할 마스크들을 인코딩하도록 트레이닝된 형상 인코더에 적어도 부분적으로 기반하여 대응하는 분할 특징들을 결정할 수 있다. 예컨대, 이미지 분할 평가 시스템(400)은 하나의 이미지 프레임과 연관된 분할 특징 맵 내의 특정(예컨대, 중요한) 형상, 오브젝트 또는 다른 구조를 결정하기 위해 형상 인코더를 사용할 수 있으며, 이는 다른 이미지 프레임과 연관된 분할 특징 맵 내의 대응하는 형상, 오브젝트 또는 구조를 결정하는 것을 가능하게 할 수 있다.
[0063] 예시적인 예에서, 이미지 분할 평가 시스템(400)은 분할 특징 맵(510)의 분할 특징 A가 분할 특징 맵(508)의 분할 특징 B에 대응한다고 결정할 수 있다. 일부 경우들에서, 이미지 분할 평가 시스템(400)은 이미지 특징 맵들(512 및 514)의 대응하는 이미지 특징들 사이의 유사성 측정에 적어도 부분적으로 기반하여 분할 특징들 A 및 B와 연관된 시간적 일관성 측정(522)을 결정할 수 있다. 예컨대, 이미지 분할 평가 시스템(400)은 분할 특징 A가 이미지 특징 맵(514)의 이미지 특징 C에 대응한다고 결정할 수 있다. 예시적인 예에서, 이미지 분할 평가 시스템(400)은 분할 특징 맵(510) 내의 분할 특징 A의 위치(예컨대, 픽셀 좌표들)에 기반하여 대응하는 이미지 특징 C를 결정할 수 있다. 예컨대, 이미지 분할 평가 시스템(400)은 대응하는 위치에서 이미지 특징을 식별함으로써 이미지 특징 C를 결정할 수 있다. 도시된 바와 같이, 이미지 분할 평가 시스템(400)은 또한, 분할 특징 맵(508)의 분할 특징 B가 이미지 특징 맵(512)의 이미지 특징 D에 대응한다고 결정할 수 있다.
[0064] 일부 경우들에서, 이미지 분할 평가 시스템(400)은 이미지 특징들 C 및 D와 연관된 이미지 특징 벡터들 사이의 유사성 측정에 적어도 부분적으로 기반하여 시간적 일관성 측정(522)을 결정할 수 있다. 유사성 측정은 코사인 유사성 측정 또는 임의의 다른 적절한 유사성 측정일 수 있다. 예시적인 예에서, 시간적 일관성 측정(522)은 이미지 특징 벡터들 사이의 유사성 측정에 직접 대응할 수 있다. 다른 예들에서, 이미지 분할 평가 시스템(400)은 하나 이상의 부가적인 유사성 측정들에 기반하여 시간적 일관성 측정(522)을 결정할 수 있다. 예컨대, 이미지 분할 평가 시스템(400)은 분할 특징들 A 및 B와 연관된 시간적 일관성 측정을 결정할 수 있다. 일반적인 용어들로, 프레임(t1)과 연관된 분할 특징 맵 의 위치에 대해, 이미지 분할 평가 시스템(400)은 방정식 를 사용하여 프레임(t2)과 연관된 분할 특징 맵 내의 대응하는 위치(x,y)에 대한 시간적 일관성 측정을 결정할 수 있으며, 여기서 는 유사성 함수이다. 이 방정식은 방향(t1 → t2)에 대한 시간적 일관성 측정을 줄 수 있다. 방향(t2 → t1)에 대한 시간적 일관성 측정을 위해, 대응하는 분할 특징들은 방정식 을 사용하여 결정될 수 있고, 시간적 일관성 측정은 방정식 에 의해 주어질 수 있다. 일부 경우들에서, 이미지 분할 평가 시스템(400)은 방정식 을 사용하여 단일 양방향 시간적 일관성 측정을 결정할 수 있으며, 여기서 m 및 n은 분할 특징 맵들의 디멘션(dimension)들이다. 단일 양방향 시간적 일관성 측정은 한 쌍의 이미지 프레임들 내의 각각의 특징에 대한 시간적 일관성 측정들의 대표(예컨대, 전체) 값일 수 있다.
[0065] 일부 경우들에서, 이미지 분할 평가 시스템(400)은 연속적인 또는 인근 이미지 프레임들과 연관된 연속성의 레벨에 적어도 부분적으로 기반하여 시간적 일관성 측정들을 결정할 수 있다. 예컨대, 2 개 이상의 이미지 프레임들 사이의 연속성은 다른 팩터들 중에서도 프레임 레이트, 촬영 조건들(예컨대, 조명 또는 다른 조건들), 캡처된 시나리오들, 뷰 내의 오브젝트들을 포함하는 팩터들에 기반하여 변할 수 있다. 2 개의 이미지 프레임들 사이의 연속성의 레벨을 결정하기 위해, 이미지 분할 평가 시스템(400)은, 이미지 프레임(t1)과 연관된 이미지 특징 맵 의 모든 각각의 위치(x,y)에 대해, 유사성 함수를 사용하여 이미지 프레임(t2)과 연관된 이미지 특징 맵 의 가장 유사한 이미지 특징을 찾을 수 있다. 방향(t1 → t2)에서의 한 쌍의 가장 유사한 이미지 특징들 사이의 시간적 일관성 측정은 에 의해 주어질 수 있다. 유사하게, 방향(t2 → t1)에서의 한 쌍의 가장 유사한 이미지 특징들 사이의 시간적 일관성 측정은 에 의해 주어질 수 있다. 추가로, 이미지 분할 평가 시스템(400)은 방정식 을 사용하여 단일 양방향 시간적 일관성 측정을 결정할 수 있다.
[0066] 일부 경우들에서, 이미지 분할 평가 시스템(400)은 분할 특징 맵들(508 및 510)과 연관된 양방향 시간적 일관성 측정 및 이미지 특징 맵들(512 및 514)과 연관된 양방향 시간적 일관성 측정 둘 모두에 기반하여 시간적 일관성 측정(522)을 결정할 수 있다. 예컨대, 이미지 분할 평가 시스템(400)은 다음의 방정식을 사용하여 (정규화되지 않은) 양방향 측정들 둘 모두를 정규화할 수 있다:
[0067] 이러한 정규화된 방정식은 분할 레벨에서의 시간적 일관성과 미가공 이미지(예컨대, 지각) 레벨에서의 시간적 일관성을 비교하는 것을 가능하게 할 수 있다.
[0068] 일부 경우들에서, 이미지 분할 평가 시스템(400)은 (예컨대, 단일-방향 시간적 일관성 측정들에 기반하여) 개별적인 시간적 일관성 측정들을 개개의 특징들과 연관시키는 시간적 일관성 맵을 생성할 수 있다. 부가적으로 또는 대안적으로, 이미지 분할 평가 시스템(400)은 (예컨대, 양방향 시간적 일관성 측정들에 기반하여) 전체 시간적 일관성 측정을 결정할 수 있다. 이미지 분할 평가 시스템(400)은 위에서 설명된 시간적 일관성 측정들의 임의의 변동 또는 조합뿐만 아니라 임의의 부가적인 또는 대안적으로 시간적 일관성 측정들을 사용하여 시간적 일관성 측정(522)을 결정할 수 있다.
[0069] 추가로, 이미지 분할 평가 시스템(400)은 개시되는 시간적 일관성 측정 기법들을 2 개의 이미지 프레임들로부터 2 개 초과의 이미지 프레임들로 확장시킬 수 있다. 예컨대, i=1,...,K에 대해, 일련의 이미지 프레임들()에 대한 시간적 일관성 측정은 다음과 같이 정의될 수 있다:
[0070] 일부 경우들에서, w보다 더 큰 시간 갭을 갖는 이미지 프레임들의 쌍은 유효 쌍으로서 간주되지 않을 수 있다. 이들 경우들에서, 무효 쌍을 포함하는 일련의 이미지 프레임들에 대한 시간적 일관성 측정은 다음과 같이 정의될 수 있다:
[0071] 추가로, 이미지 분할 평가 시스템(400)은 비-연속적인 이미지 프레임들에 대한 시간적 일관성 측정들을 결정할 수 있다. 예컨대, 장거리 시간적 일관성을 결정하기 위해, 하나의 프레임의 시간(t1) 및 다른 프레임의 시간(t2)은 |t1-t2|>1이 되도록 세팅될 수 있다.
[0072] 도 5b를 참조하면, 구현(500(B))은 일반적으로 도 5a의 구현(500(A))과 유사할 수 있다. 예컨대, 구현들(500(A) 및 500(B)) 둘 모두에서, 이미지 분할 평가 시스템(400)은 이미지 프레임들(502 및 504)에 기반하여 분할 특징 맵들(508 및 510)을 결정할 수 있다. 그러나, 구현(500(B))에서, 특징 추출기(520)는 이미지 프레임(502)과 연관된 이미지 데이터 맵(516) 및 이미지 프레임(504)과 연관된 이미지 데이터 맵(518)을 생성할 수 있다. 일부 경우들에서, 이미지 데이터 맵들(516 및 518)은 (예컨대, 특징 벡터들보다는) 미가공 이미지 데이터를 포함할 수 있다. 구현(500(B))에서, 이미지 분할 평가 시스템(400)은 이미지 특징들에 대응하는 이미지 데이터 사이의 유사성 측정들에 적어도 부분적으로 기반하여 시간적 일관성 측정(522)을 결정할 수 있다.
[0073] 시간적 일관성 측정들은 다양한 방식들로 그리고 다양한 애플리케이션들에 활용될 수 있다. 일 예에서, 최상의(예컨대, 최고 품질의) 또는 가장 적절한 분할 네트워크를 선택하기 위해 시간적 일관성 측정들이 사용될 수 있다. 예컨대, 이미지 분할 평가 시스템(400)은 분할 네트워크들의 그룹에 의해 생성된 분할 마스크들과 연관된 시간적 일관성 측정들을 결정할 수 있다. 이미지 분할 평가 시스템(400)은 최상의(예컨대, 최고 품질의) 시간적 일관성 측정들을 갖는 특정 분할 네트워크를 선택 및/또는 추천할 수 있다. 다른 예에서, 이미지 분할 평가 시스템(400)은 실시간으로(또는 거의 실시간으로) 분할 네트워크의 성능을 평가할 수 있다. 예컨대, 이미지 분할 평가 시스템(400)은 분할 네트워크가 적합하거나 또는 충분한 정확도로 수행되고 있지 않을 때를 검출할 수 있다. 예시적인 예에서, 자율주행차는 내비게이션 및/또는 안전을 위해 분할 네트워크를 활용할 수 있다. 이 예에서, 이미지 분할 평가 시스템(400)이 분할 네트워크가 시간적 일관성에 대해 특정 표준 또는 임계치 미만으로 수행하고 있다는 것을 검출하면, 이미지 분할 평가 시스템(400)은 차량의 제어를 운전석에 앉은 사람에게 리턴할 수 있다.
[0074] 도 6a 및 도 6b는 예시적인 분할 특징 맵들의 예시들을 제공한다. 예컨대, 도 6a의 분할 특징 맵 데이터(602)는 분할 네트워크의 19 개의 채널들에 대응하는 분할 특징 맵 데이터를 보여준다. 각각의 채널은 하나의 클래스 카테고리에 대응할 수 있다. 추가로, 도 6b의 분할 특징 맵 데이터(604)는 분할 네트워크의 (예컨대, 128 개의 채널들 중) 12 개의 채널들에 대응하는 분할 특징 맵 데이터를 보여준다. 각각의 채널은 하나의 클래스 카테고리에 대응할 수 있다.
[0075] 도 7a는 이미지 분할 프로세스들을 평가하기 위한 개시되는 기법들의 유효성을 정량화(quantifying)하는 예시적인 실험 데이터(702)를 예시한다. 실험 데이터(702)는 DAVIS 데이터세트를 사용하여 획득될 수 있으며, 이는 데이터세트 내의 각각의 이미지 프레임에 대한 조밀하고 고품질의 실측 자료 주석을 포함한다. 실험 데이터(702)를 획득하기 위해 사용되는 실험 셋업에서, 2 개의 연속적인 또는 인근 이미지 프레임들에 대해, 하나의 이미지 프레임(예컨대, 이미지 프레임(t1))에 대한 분할이 높은 정확도(예컨대, 1.0의 평균 IoU)를 갖는다면, 다음 이미지 프레임(예컨대, 이미지 프레임(t2))에 대한 이미지 분할 마스크에 대한 평균 IoU는 이미지 프레임(t1)과 이미지 프레임(t2) 사이의 분할 시간적 일관성이다. 실험 데이터(702)는 (예컨대, 이미지 프레임(t1)에 대한 이상적인 이미지 분할이 주어지면) 이미지 프레임(t2)에 대한 평균 IoU의 다양한 변화들에 대한 시간적 일관성 측정들의 변화들을 보여준다. 실험 데이터(702)의 각각의 그래프는 이미지 프레임(t2)에 대한 상이한 평균 IoU에 대응한다.
[0076] 도 7b는 다수의 프레임들에 걸친 분할 마스크들 및/또는 이미지 데이터의 변화들을 수반하는 다양한 상황들에 대한 시간적 일관성 측정들을 표시하는 예시적인 실험 데이터(704)를 예시한다. 도 7c는 시간적 일관성 측정들을 사용하는 분할 마스크들 및 시간적 일관성 측정들을 사용하지 않는 분할 네트워크들과 연관된 시간적 일관성 측정들을 표시하는 예시적인 실험 데이터(706)를 예시한다. 도 7d는 광학 흐름 추정을 사용하는 분할 네트워크들 및 시간적 일관성 측정들을 사용하는 분할 네트워크들에 의해 생성된 분할 마스크들과 연관된 시간적 일관성 측정들을 표시하는 예시적인 실험 데이터(708)를 예시한다. 도 7e는 시간적 일관성 측정들을 사용하여 트레이닝된 분할 네트워크들 및 시간적 일관성 측정들 없이 트레이닝된 분할 네트워크들에 의해 생성된 분할 마스크들과 연관된 시간적 일관성 측정들을 표시하는 예시적인 실험 데이터(710)를 예시한다.
[0077] 일부 경우들에서, 이미지 분할 프로세스들을 평가하기 위한 개시되는 시스템들 및 기법들은 이미지 분할을 위한 뉴럴 네트워크들의 트레이닝을 개선하기 위해 사용될 수 있다. 예컨대, 분할 네트워크를 트레이닝하는 프로세스 동안, 시간적 일관성 측정들이 손실 값들로서 사용될 수 있다. 이러한 방식으로 시간적 일관성 측정들을 사용하는 것은 라벨링되지 않은 데이터를 사용하여 트레이닝된 분할 네트워크들을 개선할 수 있다. 예컨대, 일부 기존의 분할 데이터세트들(예컨대, 도시 경관들, CamVid 등)은 대량들의 라벨링되지 않은 데이터를 포함하며, 이미지 프레임들의 작은 부분만이 (예컨대, 실측 자료에 대해) 주석이 달린다. i=1…N에 대해, 한 세트의 이미지 프레임들() 및 대응하는 주석 맵 이 주어지면, 통상적인 지도식 트레이닝 셋업은 이들 이미지 및 주석 쌍들을 사용하여 분할 네트워크를 트레이닝하기 위한 것일 수 있다. 이러한 트레이닝 셋업은 시간적 일관성 측정들 및 한 세트의 라벨링되지 않은 이미지들()을 사용하여 개선될 수 있으며, 이들 각각은 의 연속적인 타임 스탬프들을 갖는다. 다음의 PyTorch 코드는 위에서 설명된 시간적 일관성 측정들을 사용하여 시간적 일관성 트레이닝 손실을 컴퓨팅하는 예를 제공한다:
[0078] 위의 시간적 일관성 손실은 분할 교차 엔트로피 손실과 함께 적용되어서, 손실 을 초래할 수 있다.
[0079] 도 8은 이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 예시적인 프로세스(800)를 예시하는 흐름 다이어그램이다. 본원에서 약술되는 동작들은 예들이며, 특정 동작들을 배제, 부가 또는 수정하는 조합들을 포함하여, 이들의 임의의 조합으로 구현될 수 있다.
[0080] 동작(802)에서, 프로세스(800)는 복수의 이미지 프레임들 중 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정하는 것을 포함한다. 동작(804)에서, 프로세스(800)는 복수의 이미지 프레임들 중 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정하는 것을 포함하고, 제2 분할 특징은 제1 분할 특징에 대응한다. 일 예에서, 제1 이미지 프레임은 제2 이미지 프레임에 인접할 수 있다. 다른 예에서, 복수의 이미지 프레임들은 제1 이미지 프레임과 제2 이미지 프레임 사이에 적어도 하나의 중간 이미지 프레임을 포함할 수 있다. 일부 경우들에서, 제1 분할 마스크 및 제2 분할 마스크와 연관된 분할 특징들은 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 결정될 수 있다. 일 예에서, 이미지 분할을 위해 트레이닝된 머신 러닝 모델은 복수의 계층들을 포함하는 뉴럴 네트워크일 수 있다. 이 예에서, 제1 분할 마스크 및 제2 분할 마스크와 연관된 분할 특징들을 결정하는 것은, 뉴럴 네트워크의 복수의 계층들 중의 계층에 의해 출력된 하나 이상의 특징 맵들을 획득하는 것을 포함할 수 있다.
[0081] 일부 예들에서, 제2 분할 특징은 제1 분할 특징에 대응한다고 결정하는 것은 (1) 제2 분할 마스크와 연관된 복수의 분할 특징들을 결정하는 것 ―복수의 분할 특징들은 제2 분할 특징을 포함함―, (2) 제1 분할 특징과, 제2 분할 마스크와 연관된 복수의 분할 특징들 사이의 복수의 유사성 측정들을 결정하는 것, 및 (3) 복수의 유사성 측정들 중 가장 높은 유사성 측정이 제2 분할 특징에 대응한다고 결정하는 것을 포함할 수 있다.
[0082] 동작(806)에서, 프로세스(800)는 제1 분할 특징에 대응하는, 제1 이미지 프레임의 제1 이미지 특징을 결정하는 것을 포함한다. 동작(808)에서, 프로세스(800)는 제2 분할 특징에 대응하는, 제2 이미지 프레임의 제2 이미지 특징을 결정하는 것을 포함한다. 일부 경우들에서, 제1 이미지 프레임의 이미지 특징들 및 제2 이미지 프레임의 이미지 특징들은 특징 추출을 위해 트레이닝된 머신 러닝 모델을 사용하여 결정될 수 있다. 일부 예들에서, 제1 이미지 프레임의 제1 이미지 특징을 결정하는 것은 (1) 제1 분할 특징에 대응하는, 제1 이미지 프레임 내의 제1 위치를 결정하는 것, 및 (2) 제1 위치에 적어도 부분적으로 기반하여 제1 이미지 프레임의 제1 이미지 특징을 결정하는 것을 포함할 수 있다. 유사하게, 제2 이미지 프레임의 제2 이미지 특징을 결정하는 것은 (1) 제2 분할 특징에 대응하는, 제2 이미지 프레임 내의 제2 위치를 결정하는 것, 및 (2) 제2 위치에 적어도 부분적으로 기반하여 제2 이미지 프레임의 제2 이미지 특징을 결정하는 것을 포함할 수 있다.
[0083] 동작(810)에서, 프로세스(800)는 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하는 것을 포함한다. 일부 예들에서, 제1 유사성 측정을 결정하는 것은 제1 이미지 특징에 대응하는 제1 이미지 데이터와 제2 이미지 특징에 대응하는 제2 이미지 데이터를 비교하는 것을 포함할 수 있다. 다른 예들에서, 제1 유사성 측정을 결정하는 것은 제1 이미지 특징에 대응하는 제1 특징 벡터와 제2 이미지 특징에 대응하는 제2 특징 벡터를 비교하는 것을 포함할 수 있다. 예시적인 예에서, 제1 유사성 측정은 코사인 유사성 측정일 수 있다.
[0084] 동작(812)에서, 프로세스(800)는 제1 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 것을 포함한다.
[0085] 일부 예들에서, 프로세스(800)는 제1 분할 마스크와 연관된 제3 분할 특징을 결정하는 것, 및 제2 분할 마스크와 연관된 제4 분할 특징을 결정하는 것을 포함할 수 있다. 제4 분할 특징은 제3 분할 특징에 대응한다. 프로세스(800)는 제3 분할 특징에 대응하는, 제1 이미지 프레임의 제3 이미지 특징을 결정하는 것, 제4 분할 특징에 대응하는, 제2 이미지 프레임의 제4 이미지 특징을 결정하는 것, 및 제3 이미지 특징과 제4 이미지 특징 사이의 제2 유사성 측정을 결정하는 것을 더 포함할 수 있다. 일 예에서, 프로세스(800)는 또한, 제1 유사성 측정 및 제2 유사성 측정의 대표 값(예컨대, 양방향 시간적 일관성 측정 또는 다른 대표 값)에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 것을 포함할 수 있다.
[0086] 부가적으로 또는 대안적으로, 프로세스(800)는, (예컨대, 제1 유사성 측정에 기반하여 그리고/또는 제1 유사성 측정 및 제2 유사성 측정의 대표 값에 기반하여 결정된) 시간적 일관성 측정에 기반하여, 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 맵을 생성하는 것을 포함할 수 있다. 예컨대, 시간적 일관성 맵은 제1 이미지 특징과 연관하여 제1 유사성 측정 및 제2 이미지 특징과 연관하여 제2 유사성 측정을 저장할 수 있다.
[0087] 일부 예들에서, 프로세스(800)는 복수의 이미지 프레임들 중 제3 이미지 프레임의 제3 분할 마스크와 연관된 제3 분할 특징을 결정하는 것을 포함할 수 있다. 제3 분할 특징은 제2 분할 특징에 대응한다. 프로세스(800)는 제3 분할 특징에 대응하는, 제3 이미지 프레임의 제3 이미지 특징을 결정하는 것, 및 제2 이미지 특징과 제3 이미지 특징 사이의 제2 유사성 측정을 결정하는 것을 더 포함할 수 있다. 일 예에서, 프로세스(800)는 또한, 제1 유사성 측정 및 제2 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제3 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 것을 포함할 수 있다.
[0088] 일부 예들에서, 프로세스(800)는 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크를 생성하는 것을 포함할 수 있다. 프로세스(800)는 제1 유사성 측정에 적어도 부분적으로 기반하여 그리고/또는 시간적 일관성 측정에 기반하여 머신 러닝 모델의 품질을 결정하는 것을 더 포함할 수 있다. 그러한 예들에서, 제1 유사성 측정의 값은 머신 러닝 모델의 품질과 연관된다(예컨대, 높은 값은 고품질과 연관됨). 부가적으로 또는 대안적으로, 프로세스(800)는 이미지 분할을 위해 트레이닝되는 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크를 생성하는 것을 포함할 수 있다. 프로세스(800)는 이미지 분할을 위해 머신 러닝 모델을 트레이닝하기 위한 피드백으로서 제1 유사성 측정을 사용하는 것을 더 포함할 수 있다.
[0089] 일부 예들에서, 본원에서 설명되는 프로세스(800) 및/또는 다른 프로세스들은 하나 이상의 컴퓨팅 디바이스들 또는 장치들에 의해 수행될 수 있다. 일부 예들에서, 본원에서 설명되는 프로세스(800) 및/또는 다른 프로세스들은 도 1에 도시된 이미지 분할 시스템(102), 도 4에 도시된 이미지 분할 평가 시스템(400), 및/또는 도 11에 도시된 컴퓨팅 디바이스 아키텍처(1100)를 갖는 하나 이상의 컴퓨팅 디바이스들에 의해 수행될 수 있다. 일부 경우들에서, 그러한 컴퓨팅 디바이스 또는 장치는 프로세스(800)의 단계들을 수행하도록 구성된 프로세서, 마이크로프로세서, 마이크로컴퓨터, 또는 디바이스의 다른 컴포넌트를 포함할 수 있다. 일부 예들에서, 그러한 컴퓨팅 디바이스 또는 장치는 이미지 데이터를 캡처하도록 구성된 하나 이상의 센서들을 포함할 수 있다. 예컨대, 컴퓨팅 디바이스는 스마트폰, 카메라, 머리-장착 디스플레이, 모바일 디바이스 또는 다른 적절한 디바이스를 포함할 수 있다. 일부 예들에서, 그러한 컴퓨팅 디바이스 또는 장치는 하나 이상의 이미지들 또는 비디오들을 캡처하도록 구성된 카메라를 포함할 수 있다. 일부 경우들에서, 그러한 컴퓨팅 디바이스는 이미지들을 디스플레이하기 위한 디스플레이를 포함할 수 있다. 일부 예들에서, 하나 이상의 센서들 및/또는 카메라는 컴퓨팅 디바이스와 별개이며, 이 경우, 컴퓨팅 디바이스는 감지된 데이터를 수신한다. 그러한 컴퓨팅 디바이스는 데이터를 통신하도록 구성된 네트워크 인터페이스를 더 포함할 수 있다.
[0090] 컴퓨팅 디바이스의 컴포넌트들은 회로부로 구현될 수 있다. 예컨대, 컴포넌트들은, 하나 이상의 프로그램가능 전자 회로들(예컨대, 마이크로프로세서들, GPU(graphics processing unit)들, DSP(digital signal processor)들, CPU(central processing unit)들, 및/또는 다른 적절한 전자 회로들)을 포함할 수 있고 그리고/또는 본원에서 설명되는 다양한 동작들을 수행하기 위해 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있고 그리고/또는 이를 사용하여 구현될 수 있는 전자 회로들 또는 다른 전자 하드웨어를 포함할 수 있고 그리고/또는 이를 사용하여 구현될 수 있다. 컴퓨팅 디바이스는 (출력 디바이스의 예로서 또는 출력 디바이스에 부가하여) 디스플레이, 데이터를 통신 및/또는 수신하도록 구성된 네트워크 인터페이스, 이들의 임의의 조합, 및/또는 다른 컴포넌트(들)를 더 포함할 수 있다. 네트워크 인터페이스는 IP(Internet Protocol) 기반 데이터 또는 다른 타입의 데이터를 통신 및/또는 수신하도록 구성될 수 있다.
[0091] 프로세스(800)는 논리 흐름 다이어그램으로서 예시되며, 논리 흐름 다이어그램의 동작들은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 표현한다. 컴퓨터 명령들의 맥락에서, 동작들은, 하나 이상의 프로세서들에 의해 실행될 때, 열거된 동작들을 수행하는, 하나 이상의 컴퓨터-판독가능 저장 매체 상에 저장된 컴퓨터-실행가능 명령들을 표현한다. 일반적으로, 컴퓨터-실행가능 명령들은, 특정 기능들을 수행하거나 또는 특정 데이터 타입들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되는 것으로 의도되지 않으며, 임의의 수의 설명된 동작들은 프로세스들을 구현하기 위해 임의의 순서로 그리고/또는 병렬로 조합될 수 있다.
[0092] 부가적으로, 프로세스(800) 및/또는 본원에서 설명되는 다른 프로세스들은 실행가능 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수 있고, 하드웨어에 의해 하나 이상의 프로세서들 상에서 총괄하여 실행되는 코드(예컨대, 실행가능 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들)로서 또는 이들의 조합들에 의해 구현될 수 있다. 위에서 주목된 바와 같이, 코드는 컴퓨터-판독가능 또는 머신-판독가능 저장 매체 상에, 예컨대 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 형태로 저장될 수 있다. 컴퓨터-판독가능 또는 머신-판독가능 저장 매체는 비-일시적일 수 있다.
[0093] 위에서 설명된 바와 같이, 일부 경우들에서, 본원에서 설명되는 시스템들 및 기법들은 뉴럴 네트워크-기반 머신 러닝 시스템을 사용하여 구현될 수 있다. 사용될 수 있는 뉴럴 네트워크들의 예시적인 예들은 하나 이상의 CNN(convolutional neural network)들, 오토인코더(autoencoder)들, DBN(deep belief net)들, RNN(Recurrent Neural Network)들, GAN(Generative Adversarial Network)들, GRU(Gated Recurrent Unit)들, 이들의 임의의 조합, 및/또는 임의의 다른 적절한 뉴럴 네트워크를 포함한다.
[0094] 도 9는 오브젝트 검출기에 의해 사용될 수 있는 딥 러닝 뉴럴 네트워크(900)의 예시적인 예이다. 입력 계층(920)은 입력 데이터를 포함한다. 하나의 예시적인 예에서, 입력 계층(920)은 입력 비디오 프레임의 픽셀들을 표현하는 데이터를 포함할 수 있다. 뉴럴 네트워크(900)는 다수의 은닉 계층들(922a, 922b 내지 922n)을 포함한다. 은닉 계층들(922a, 922b 내지 922n)은 "n” 개의 은닉 계층들을 포함하며, 여기서 "n"은 1 이상의 정수이다. 은닉 계층들의 수는 주어진 애플리케이션에 필요한 만큼 많은 계층들을 포함하도록 만들어질 수 있다. 뉴럴 네트워크(900)는 은닉 계층들(922a, 922b 내지 922n)에 의해 수행되는 프로세싱으로부터 생기는 출력을 제공하는 출력 계층(924)을 더 포함한다. 하나의 예시적인 예에서, 출력 계층(924)은 입력 비디오 프레임 내의 오브젝트에 대한 분류를 제공할 수 있다. 분류는 오브젝트(예컨대, 사람, 개, 고양이, 또는 다른 오브젝트)의 타입을 식별하는 클래스를 포함할 수 있다.
[0095] 뉴럴 네트워크(900)는 상호연결된 노드들의 다층 뉴럴 네트워크이다. 각각의 노드는 정보의 피스(piece)를 표현할 수 있다. 노드들과 연관된 정보는 상이한 계층들 사이에서 공유되고, 각각의 계층은 정보가 프로세싱될 때 정보를 보유한다. 일부 경우들에서, 뉴럴 네트워크(900)는 피드-포워드 네트워크를 포함할 수 있으며, 이 경우, 네트워크의 출력들이 그 자체로 피드백되는 피드백 연결들이 없다. 일부 경우들에서, 뉴럴 네트워크(900)는 순환 뉴럴 네트워크(recurrent neural network)를 포함할 수 있고, 순환 뉴럴 네트워크는 입력을 판독하는 동안 노드들에 걸쳐 정보가 전달될 수 있게 하는 루프들을 가질 수 있다.
[0096] 정보는 다양한 계층들 사이의 노드-대-노드 상호연결들을 통해 노드들 사이에서 교환될 수 있다. 입력 계층(920)의 노드들은 제1 은닉 계층(922a)에서의 한 세트의 노드들을 활성화할 수 있다. 예컨대, 도시된 바와 같이, 입력 계층(920)의 입력 노드들 각각은 제1 은닉 계층(922a)의 노드들 각각에 연결된다. 은닉 계층들(922a, 922b 내지 922n)의 노드들은 각각의 입력 노드의 정보에 활성화 함수들을 적용함으로써 이들 정보를 변환할 수 있다. 그 다음, 변환으로부터 도출된 정보는 그들 자신의 지정된 기능들을 수행할 수 있는 다음 은닉 계층(922b)의 노드들에 전달될 수 있고 이러한 노드들을 활성화할 수 있다. 예시적인 기능들은 콘볼루션(convolutional), 업-샘플링(up-sampling), 데이터 변환, 및/또는 임의의 다른 적절한 기능들을 포함한다. 그 다음, 은닉 계층(922b)의 출력이 다음 은닉 계층의 노드들을 활성화하는 식일 수 있다. 마지막 은닉 계층(922n)의 출력은 출력이 제공되는 출력 계층(924)의 하나 이상의 노드들을 활성화할 수 있다. 일부 경우들에서, 뉴럴 네트워크(900)의 노드들(예컨대, 노드(926))은 다수의 출력 라인들을 갖는 것으로서 도시되지만, 노드는 단일 출력을 가지며, 노드로부터 출력되는 것으로서 도시된 바와 같은 모든 라인들은 동일한 출력 값을 표현한다.
[0097] 일부 경우들에서, 각각의 노드 또는 노드들 사이의 상호연결은 뉴럴 네트워크(900)의 트레이닝으로부터 도출된 파라미터들의 세트인 가중치를 가질 수 있다. 일단 뉴럴 네트워크(900)가 트레이닝되면, 이는 하나 이상의 오브젝트들을 분류하기 위해 사용될 수 있는 트레이닝된 뉴럴 네트워크로 지칭될 수 있다. 예컨대, 노드들 사이의 상호연결은 상호연결된 노드들에 관해 학습된 정보의 피스를 표현할 수 있다. 상호연결은 (예컨대, 트레이닝 데이터세트에 기반하여) 튜닝될 수 있는 튜닝가능 수치 가중치(numeric weight)를 가질 수 있어서, 뉴럴 네트워크(900)가 입력들에 대해 적응적이 될 수 있게 하고 점점 더 많은 데이터가 프로세싱됨에 따라 학습할 수 있게 한다.
[0098] 뉴럴 네트워크(900)는 출력 계층(924)을 통해 출력을 제공하기 위해서 상이한 은닉 계층들(922a, 922b 내지 922n)을 사용하여 입력 계층(920) 내의 데이터로부터 특징들을 프로세싱하도록 미리 트레이닝된다. 뉴럴 네트워크(900)가 이미지들에서 오브젝트들을 식별하기 위해 사용되는 예에서, 뉴럴 네트워크(900)는 이미지들 및 라벨들 둘 모두를 포함하는 트레이닝 데이터를 사용하여 트레이닝될 수 있다. 예컨대, 트레이닝 이미지들이 네트워크에 입력될 수 있으며, 각각의 트레이닝 이미지는 각각의 이미지 내의 하나 이상의 오브젝트들의 클래스들을 표시하는(기본적으로, 오브젝트들이 무엇인지 그리고 오브젝트들이 어떤 특징들을 갖는지를 네트워크에 표시하는) 라벨을 갖는다. 하나의 예시적인 예에서, 트레이닝 이미지는 수 2의 이미지를 포함할 수 있으며, 이 경우, 이미지에 대한 라벨은 [0 0 1 0 0 0 0 0 0 0]일 수 있다.
[0099] 일부 경우들에서, 뉴럴 네트워크(900)는 역전파(backpropagation)로 불리는 트레이닝 프로세스를 사용하여 노드들의 가중치들을 조정할 수 있다. 역전파는 순방향 패스(pass), 손실 함수, 역방향 패스, 및 가중치 업데이트를 포함할 수 있다. 하나의 트레이닝 반복에 대해 순방향 패스, 손실 함수, 역방향 패스 및 파라미터 업데이트가 수행된다. 뉴럴 네트워크(900)가 계층들의 가중치들이 정확하게 튜닝되도록 충분히 잘 훈련될 때까지, 프로세스는 트레이닝 이미지들의 각각의 세트에 대해 특정 수의 반복들 동안 반복될 수 있다.
[0100] 이미지들에서 오브젝트들을 식별하는 예의 경우, 순방향 패스는 뉴럴 네트워크(900)를 통해 트레이닝 이미지를 전달하는 것을 포함할 수 있다. 가중치들은 뉴럴 네트워크(900)가 트레이닝되기 이전에 초기에 랜덤화된다. 이미지는, 예컨대, 이미지의 픽셀들을 표현하는 수들의 어레이를 포함할 수 있다. 어레이 내의 각각의 수는 어레이 내의 그 포지션에서의 픽셀 세기를 설명하는, 0 내지 255의 값을 포함할 수 있다. 일 예에서, 어레이는 픽셀들 및 3 개의 컬러 컴포넌트들(이를테면, 적색, 녹색 및 청색, 또는 루마 및 2 개의 크로마 컴포넌트들 등)의 28 개의 행들 및 28 개의 열들을 갖는, 수들의 28 x 28 x 3 어레이를 포함할 수 있다.
[0101] 뉴럴 네트워크(900)에 대한 제1 트레이닝 반복의 경우, 출력은 초기화 시에 랜덤하게 선택되는 가중치들로 인해 임의의 특정 클래스를 선호하지 않는 값들을 포함할 가능성이 있을 것이다. 예컨대, 출력이, 오브젝트가 상이한 클래스들을 포함할 확률들을 갖는 벡터이면, 상이한 클래스들 각각에 대한 확률 값은 동일하거나 또는 적어도 매우 유사할 수 있다(예컨대, 10 개의 가능한 클래스들에 대해, 각각의 클래스는 0.1의 확률 값을 가질 수 있음). 초기 가중치들을 이용하면, 뉴럴 네트워크(900)는 로우 레벨 특징들을 결정할 수 없고, 따라서 오브젝트의 분류가 무엇일 수 있는지에 대한 정확한 결정을 행할 수 없다. 출력의 에러를 분석하기 위해 손실 함수가 사용될 수 있다. 임의의 적절한 손실 함수 정의가 사용될 수 있다. 손실 함수의 일 예는 평균 제곱 에러(MSE; mean squared error)를 포함한다. MSE는 로서 정의되며, 이는 실제 답에서 예측 (출력) 답을 뺀 값의 제곱에 1/2을 곱한 값의 합을 계산한다. 손실은 Etotal의 값과 동일하도록 세팅될 수 있다.
[0102] 손실(또는 에러)은, 실제 값들이 예측 출력과 매우 상이할 것이기 때문에, 제1 트레이닝 이미지들에 대해 높을 것이다. 트레이닝의 목표는, 예측 출력이 트레이닝 라벨과 동일하도록 손실의 양(amount)을 최소화하는 것이다. 뉴럴 네트워크(900)는 어느 입력들(가중치들)이 네트워크의 손실에 가장 많이 기여했는지를 결정함으로써 역방향 패스를 수행할 수 있고, 손실이 감소되고 궁극적으로 최소화되도록 가중치들을 조정할 수 있다.
[0103] 네트워크의 손실에 가장 많이 기여한 가중치들을 결정하기 위해, 가중치들에 대한 손실의 도함수(dL/dW로서 표기되며, 여기서 W는 특정 계층에서의 가중치들임)가 컴퓨팅될 수 있다. 도함수가 컴퓨팅된 이후에, 필터들의 가중치들 전부를 업데이트함으로써 가중치 업데이트가 수행될 수 있다. 예컨대, 가중치들은, 가중치들이 구배(gradient)의 반대 방향으로 변화하도록 업데이트될 수 있다. 가중치 업데이트는 로서 표기될 수 있으며, 여기서 w는 가중치를 표기하고, 는 초기 가중치를 표기하며, 그리고 η는 학습 레이트(learning rate)를 표기한다. 학습 레이트는 임의의 적절한 값으로 세팅될 수 있으며, 높은 학습 레이트는 더 큰 가중치 업데이트들을 포함하고, 더 낮은 값은 더 작은 가중치 업데이트들을 표시한다.
[0104] 뉴럴 네트워크(900)는 임의의 적절한 딥 네트워크를 포함할 수 있다. 일 예는, 입력 계층 및 출력 계층을 포함하는 CNN(convolutional neural network)을 포함하며, 입력 계층과 출력 계층 사이에 다수의 은닉 계층들이 있다. CNN의 예는 도 9와 관련하여 아래에서 설명된다. CNN의 은닉 계층들은 일련의 콘볼루션, 비선형, (다운샘플링을 위한) 풀링(pooling), 및 완전 연결 계층들을 포함한다. 뉴럴 네트워크(900)는, 다른 것들 중에서도, CNN 이외의 임의의 다른 딥 네트워크, 이를테면, 오토인코더, DBN(deep belief net)들, RNN(Recurrent Neural Network)들을 포함할 수 있다.
[0105] 도 10은 콘볼루션 뉴럴 네트워크(1000)(CNN(1000))의 예시적인 예이다. CNN(1000)의 입력 계층(1020)은 이미지를 표현하는 데이터를 포함한다. 예컨대, 데이터는 이미지의 픽셀들을 표현하는 수들의 어레이를 포함할 수 있으며, 어레이 내의 각각의 수는 어레이 내의 그 포지션에서의 픽셀 세기를 설명하는, 0 내지 255의 값을 포함한다. 위로부터의 이전 예를 사용하면, 어레이는 픽셀들 및 3 개의 컬러 컴포넌트들(이를테면, 적색, 녹색 및 청색, 또는 루마 및 2 개의 크로마 컴포넌트들 등)의 28 개의 행들 및 28 개의 열들을 갖는, 수들의 28 x 28 x 3 어레이를 포함할 수 있다. 이미지는 콘볼루션 은닉 계층(1022a), 선택적인 비선형 활성화 계층, 풀링 은닉 계층(1022b), 및 완전 연결 은닉 계층들(1022c)을 통과하여, 출력 계층(1024)에서 출력을 얻을 수 있다. 각각의 은닉 계층 중 단 하나만이 도 10에 도시되지만, 다수의 콘볼루션 은닉 계층들, 비선형 계층들, 풀링 은닉 계층들 및/또는 완전 연결 계층들이 CNN(1000)에 포함될 수 있다는 것을 당업자는 인식할 것이다. 이전에 설명된 바와 같이, 출력은 오브젝트의 단일 클래스를 표시할 수 있거나 또는 이미지 내의 오브젝트를 가장 잘 설명하는 클래스들의 확률을 포함할 수 있다.
[0106] CNN(1000)의 제1 계층은 콘볼루션 은닉 계층(1022a)이다. 콘볼루션 은닉 계층(1022a)은 입력 계층(1020)의 이미지 데이터를 분석한다. 콘볼루션 은닉 계층(1022a)의 각각의 노드는 수용 필드로 불리는, 입력 이미지의 노드들(픽셀들)의 구역에 연결된다. 콘볼루션 은닉 계층(1022a)은 하나 이상의 필터들(각각의 필터는 상이한 활성화 또는 특징 맵에 대응함)로서 간주될 수 있으며, 필터의 각각의 콘볼루션 반복은 콘볼루션 은닉 계층(1022a)의 노드 또는 뉴런이다. 예컨대, 각각의 콘볼루션 반복에서 필터가 커버하는, 입력 이미지의 구역은 필터에 대한 수용 필드일 것이다. 하나의 예시적인 예에서, 입력 이미지가 28x28 어레이를 포함하고, 각각의 필터(및 대응하는 수용 필드)가 5x5 어레이이면, 콘볼루션 은닉 계층(1022a)에 24x24 개의 노드들이 있을 것이다. 노드와 그 노드에 대한 수용 필드 사이의 각각의 연결은 가중치 및 일부 경우들에서는 전체 바이어스를 학습하여서, 각각의 노드는 입력 이미지에서 자신의 특정 로컬 수용 필드를 분석하도록 학습한다. 은닉 계층(1022a)의 각각의 노드는 동일한 가중치들 및 바이어스(공유된 가중치 및 공유된 바이어스로 불림)를 가질 것이다. 예컨대, 필터는 입력과 동일한 깊이 및 가중치들(수들)의 어레이를 갖는다. 필터는 (입력 이미지의 3 개의 컬러 컴포넌트들에 따라) 비디오 프레임 예에 대해 3의 깊이를 가질 것이다. 필터 어레이의 예시적인 예 사이즈는 노드의 수용 필드의 사이즈에 대응하는 5 x 5 x 3이다.
[0107] 콘볼루션 은닉 계층(1022a)의 콘볼루션 성질은 콘볼루션 계층의 각각의 노드가 자신의 대응하는 수용 필드에 적용되기 때문이다. 예컨대, 콘볼루션 은닉 계층(1022a)의 필터는 입력 이미지 어레이의 최상부-좌측 코너에서 시작될 수 있고, 입력 이미지를 중심으로 콘볼빙(convolve)할 수 있다. 위에서 주목된 바와 같이, 필터의 각각의 콘볼루션 반복은 콘볼루션 은닉 계층(1022a)의 노드 또는 뉴런으로 간주될 수 있다. 각각의 콘볼루션 반복에서, 필터의 값들은 이미지의 오리지널 픽셀 값들의 대응하는 수와 곱셈된다(예컨대, 5x5 필터 어레이는 입력 이미지 어레이의 최상부-좌측 코너에서 입력 픽셀 값들의 5x5 어레이로 곱셈됨). 각각의 콘볼루션 반복으로부터의 곱셈들은 그 반복 또는 노드에 대한 총 합을 획득하기 위해 함께 합산될 수 있다. 프로세스는 다음으로, 콘볼루션 은닉 계층(1022a)에서의 다음 노드의 수용 필드에 따라 입력 이미지 내의 다음 위치에서 계속된다. 예컨대, 필터는 다음 수용 필드로 스텝량만큼 이동될 수 있다. 스텝량은 1 또는 다른 적절한 양으로 세팅될 수 있다. 예컨대, 스텝량이 1로 세팅되면, 필터는 각각의 콘볼루션 반복에서 1 픽셀만큼 우측으로 이동될 것이다. 입력 볼륨의 각각의 고유한 위치에서 필터를 프로세싱하는 것은 그 위치에 대한 필터 결과들을 표현하는 수를 생성하여서, 콘볼루션 은닉 계층(1022a)의 각각의 노드에 대해 총 합산 값이 결정되게 한다.
[0108] 입력 계층으로부터 콘볼루션 은닉 계층(1022a)으로의 맵핑은 활성화 맵(또는 특징 맵)으로 지칭된다. 활성화 맵은 입력 볼륨의 각각의 위치들에서의 필터 결과들을 표현하는 각각의 노드에 대한 값을 포함한다. 활성화 맵은 입력 볼륨에 대한 필터의 각각의 반복으로부터 생기는 다양한 총 합 값들을 포함하는 어레이를 포함할 수 있다. 예컨대, 28 x 28 입력 이미지의 각각의 픽셀(1의 스텝량)에 5 x 5 필터가 적용되면, 활성화 맵은 24 x 24 어레이를 포함할 것이다. 콘볼루션 은닉 계층(1022a)은 이미지 내의 다수의 특징들을 식별하기 위해서 여러 활성화 맵들을 포함할 수 있다. 도 10에 도시된 예는 3 개의 활성화 맵들을 포함한다. 3 개의 활성화 맵들을 사용하여, 콘볼루션 은닉 계층(1022a)은 3 개의 상이한 종류들의 특징들을 검출할 수 있으며, 각각의 특징은 전체 이미지에 걸쳐 검출가능하다.
[0109] 일부 예들에서, 비선형 은닉 계층은 콘볼루션 은닉 계층(1022a) 이후에 적용될 수 있다. 비선형 계층은 선형 연산들을 컴퓨팅해 온 시스템에 비선형성을 도입하기 위해 사용될 수 있다. 비선형 계층의 하나의 예시적인 예는 ReLU(rectified linear unit) 계층이다. ReLU 계층은 입력 볼륨에서의 값들 전부에 함수(f(x) = max(0, x))를 적용할 수 있으며, 이는 네거티브 활성화들 전부를 0으로 변화시킨다. 따라서, ReLU는 콘볼루션 은닉 계층(1022a)의 수용 필드들에 영향을 미치지 않으면서 네트워크(1000)의 비선형 특성들을 증가시킬 수 있다.
[0110] 풀링 은닉 계층(1022b)은 콘볼루션 은닉 계층(1022a) 이후에(그리고 사용되는 경우 비선형 은닉 계층 이후에) 적용될 수 있다. 풀링 은닉 계층(1022b)은 콘볼루션 은닉 계층(1022a)으로부터의 출력 내의 정보를 단순화하기 위해 사용된다. 예컨대, 풀링 은닉 계층(1022b)은 콘볼루션 은닉 계층(1022a)으로부터 출력된 각각의 활성화 맵을 취할 수 있고, 풀링 함수를 사용하여, 압축(condense)된 활성화 맵(또는 특징 맵)을 생성할 수 있다. 최대-풀링은 풀링 은닉 계층에 의해 수행되는 기능의 일 예이다. 평균 풀링, L2-norm 풀링, 또는 다른 적절한 풀링 함수들과 같은 다른 형태들의 풀링 함수들이 풀링 은닉 계층(1022a)에 의해 사용된다. 풀링 함수(예컨대, 최대-풀링 필터, L2-norm 필터, 또는 다른 적절한 풀링 필터)는 콘볼루션 은닉 계층(1022a)에 포함된 각각의 활성화 맵에 적용된다. 도 10에 도시된 예에서, 콘볼루션 은닉 계층(1022a)에서의 3 개의 활성화 맵들에 대해 3 개의 풀링 필터들이 사용된다.
[0111] 일부 예들에서, 최대-풀링은, 콘볼루션 은닉 계층(1022a)으로부터 출력된 활성화 맵에 스텝량(예컨대, 2의 스텝량과 같이, 필터의 디멘션과 동일함)을 갖는 (예컨대, 2x2의 사이즈를 가지는) 최대-풀링 필터를 적용함으로써 사용될 수 있다. 최대-풀링 필터로부터의 출력은, 필터가 컨볼빙하는 모든 각각의 하위-구역에서의 최대 수를 포함한다. 예로서 2x2 필터를 사용하여, 풀링 계층에서의 각각의 유닛은 이전 계층에서의 2x2 노드들의 구역을 요약할 수 있다(각각의 노드는 활성화 맵 내의 값임). 예컨대, 활성화 맵 내의 4 개의 값들(노드들)은 필터의 각각의 반복에서 2x2 최대-풀링 필터에 의해 분석될 것이며, 4 개의 값들로부터의 최대 값이 "최대" 값으로서 출력된다. 그러한 최대-풀링 필터가 24x24 노드들의 디멘션을 갖는, 콘볼루션 은닉 계층(1022a)으로부터의 활성화 필터에 적용되면, 풀링 은닉 계층(1022b)으로부터의 출력은 12x12 노드들의 어레이일 것이다.
[0112] 일부 예들에서, L2-norm 풀링 필터가 또한 사용될 수 있다. L2-norm 풀링 필터는 (최대-풀링에서 수행되는 바와 같이 최대 값들을 컴퓨팅하는 대신에) 활성화 맵의 2x2 구역(또는 다른 적절한 구역)에서의 값들의 제곱들의 합의 제곱근을 컴퓨팅하는 것 및 컴퓨팅된 값들을 출력으로서 사용하는 것을 포함한다.
[0113] 직관적으로, 풀링 함수(예컨대, 최대-풀링, L2-norm 풀링, 또는 다른 풀링 함수)는 주어진 특징이 이미지의 일 구역에서의 임의의 위치에서 발견되는지 여부를 결정하고, 정확한 포지션 정보를 폐기한다. 이는, 특징 검출의 결과들에 영향을 미치지 않으면서 수행될 수 있는데, 그 이유는 일단 특징이 발견되었다면 특징의 정확한 위치는 다른 특징들에 대한 자신의 대략적인 위치만큼 중요하지 않기 때문이다. 최대-풀링(뿐만 아니라 다른 풀링 방법들)은, 훨씬 더 적은 풀링된 특징들이 있어서, CNN(1000)의 나중의 계층들에서 필요한 파라미터들의 수를 감소시키는 이점을 제공한다.
[0114] 네트워크에서의 연결들의 최종 계층은 풀링 은닉 계층(1022b)으로부터 모든 각각의 노드를 출력 계층(1024)에서의 출력 노드들 중 모든 각각의 출력 노드에 연결하는 완전 연결 계층이다. 위의 예를 사용하여, 입력 계층은 입력 이미지의 픽셀 세기들을 인코딩하는 28 x 28 노드들을 포함하고, 콘볼루션 은닉 계층(1022a)은 3 개의 활성화 맵들에 대한 (필터들을 위한) 5x5 로컬 수용 필드의 적용에 기반하여 3x24x24 은닉 특징 노드들을 포함하고, 그리고 풀링 계층(1022b)은 3 개의 특징 맵들 각각에 걸쳐 2x2 구역들에 대한 최대-풀링 필터의 적용에 기반하여 3x12x12 은닉 특징 노드들의 계층을 포함한다. 이 예를 확장하면, 출력 계층(1024)은 10 개의 출력 노드들을 포함할 수 있다. 그러한 예에서, 3x12x12 풀링 은닉 계층(1022b)의 모든 각각의 노드는 출력 계층(1024)의 모든 각각의 노드에 연결된다.
[0115] 완전 연결 계층(1022c)은 이전 풀링 계층(1022b)의 출력(이는 하이-레벨 특징들의 활성화 맵들을 표현해야 함)을 획득할 수 있고, 특정 클래스와 가장 상관되는 특징들을 결정한다. 예컨대, 완전 연결 계층(1022c) 계층은 특정 클래스와 가장 강하게 상관되는 하이-레벨 특징들을 결정할 수 있고, 하이-레벨 특징들에 대한 가중치들(노드들)을 포함할 수 있다. 상이한 클래스들에 대한 확률들을 획득하기 위해, 완전 연결 계층(1022c) 및 풀링 은닉 계층(1022b)의 가중치들 사이의 곱(product)이 컴퓨팅될 수 있다. 예컨대, 비디오 프레임 내의 오브젝트가 사람이라고 예측하기 위해 CNN(1000)이 사용되고 있다면, 사람들의 하이-레벨 특징들을 표현하는 높은 값들이 활성화 맵들에 존재할 것이다(예컨대, 2 개의 다리들이 존재하고, 얼굴이 오브젝트의 최상부에 존재하고, 2 개의 눈들이 얼굴의 최상부 좌측 및 최상부 우측에 존재하고, 코가 얼굴의 중간에 존재하고, 입이 얼굴의 최하부에 존재하고, 그리고/또는 사람에 대해 공통적인 다른 특징들이 있음).
[0116] 일부 예들에서, 출력 계층(1024)으로부터의 출력은 M-차원 벡터(이전 예에서, M=10)를 포함할 수 있으며, 여기서 M은 클래스들의 수를 포함할 수 있으며, 이로부터, 이미지 내의 오브젝트를 분류할 때 프로그램이 선정해야 한다. 다른 예시적인 출력들이 또한 제공될 수 있다. N-차원 벡터에서의 각각의 수는 오브젝트가 특정 클래스에 속할 확률을 표현할 수 있다. 하나의 예시적인 예에서, 10-차원 출력 벡터가 오브젝트들의 10 개의 상이한 클래스들이 [0 0 0.05 0.8 0 0.15 0 0 0 0]임을 표현하면, 벡터는, 이미지가 제3 클래스의 오브젝트(예컨대, 개)일 확률이 5%, 이미지가 제4 클래스의 오브젝트(예컨대, 인간)일 확률이 80%, 그리고 이미지가 제6 클래스의 오브젝트(예컨대, 캥거루)일 확률이 15%임을 표시한다. 클래스에 대한 확률은 오브젝트가 그 클래스의 일부인 신뢰 레벨로 간주될 수 있다.
[0117] 도 11은 본 기술의 특정 양상들을 구현하기 위한 시스템의 예를 예시하는 다이어그램이다. 특히, 도 11은, 예컨대 내부 컴퓨팅 시스템을 구성하는 임의의 컴퓨팅 디바이스, 원격 컴퓨팅 시스템, 카메라, 또는 이들의 임의의 컴포넌트일 수 있는 컴퓨팅 시스템(1100)의 예를 예시하며, 여기서 시스템의 컴포넌트들은 연결(1105)을 사용하여 서로 통신한다. 연결(1105)은 버스를 사용하는 물리적 연결, 또는 이를테면 칩셋 아키텍처에서의 프로세서(1110)로의 직접 연결일 수 있다. 연결(1105)은 또한, 가상 연결, 네트워킹된 연결, 또는 논리적 연결일 수 있다.
[0118] 일부 예들에서, 컴퓨팅 시스템(1100)은 본 개시내용에서 설명되는 기능들이 데이터센터, 다수의 데이터 센터들, 피어 네트워크 등 내에 분산될 수 있는 분산 시스템이다. 일부 예들에서, 설명되는 시스템 컴포넌트들 중 하나 이상은 많은 그러한 컴포넌트들을 표현하며, 이 컴포넌트들 각각은 컴포넌트가 설명되는 기능의 일부 또는 전부를 수행한다. 일부 경우들에서, 컴포넌트들은 물리적 또는 가상 디바이스들일 수 있다.
[0119] 예시적인 시스템(1100)은 적어도 하나의 프로세싱 유닛(CPU 또는 프로세서)(1110), 및 시스템 메모리(1115), 이를테면 ROM(read-only memory)(1120) 및 RAM(random access memory)(1125)을 포함하는 다양한 시스템 컴포넌트들을 프로세서(1110)에 커플링하는 연결(1105)을 포함한다. 컴퓨팅 시스템(1100)은, 프로세서(1110)와 직접 연결되거나, 프로세서(1110)에 매우 근접하거나, 또는 프로세서(1110)의 일부로서 통합되는 고속 메모리의 캐시(1112)를 포함할 수 있다.
[0120] 프로세서(1110)는 임의의 범용 프로세서, 및 프로세서(1110)뿐만 아니라 소프트웨어 명령들이 실제 프로세서 설계에 통합되는 특수 목적 프로세서를 제어하도록 구성된, 저장 디바이스(1130)에 저장된 서비스들(1132, 1134 및 1135)과 같은 소프트웨어 서비스 또는 하드웨어 서비스를 포함할 수 있다. 프로세서(1110)는 본질적으로, 다수의 코어들 또는 프로세서들, 버스, 메모리 제어기, 캐시 등을 포함하는 완전히 자립적인 컴퓨팅 시스템일 수 있다. 멀티-코어 프로세서는 대칭적 또는 비대칭적일 수 있다.
[0121] 사용자 상호작용을 가능하게 하기 위해, 컴퓨팅 시스템(1100)은 임의의 수의 입력 메커니즘들을 표현할 수 있는 입력 디바이스(1145), 이를테면, 스피치를 위한 마이크로폰, 제스처 또는 그래픽 입력을 위한 터치-감지 스크린, 키보드, 마우스, 모션 입력, 스피치 등을 포함한다. 컴퓨팅 시스템(1100)은 또한, 다수의 출력 메커니즘들 중 하나 이상일 수 있는 출력 디바이스(1135)를 포함할 수 있다. 일부 인스턴스들에서, 멀티모달 시스템들은 사용자가 컴퓨팅 시스템(1100)과 통신하기 위해 다수의 타입들의 입력/출력을 제공하는 것을 가능하게 할 수 있다. 컴퓨팅 시스템(1100)은, 일반적으로 사용자 입력 및 시스템 출력을 통제 및 관리할 수 있는 통신 인터페이스(1140)를 포함할 수 있다. 통신 인터페이스는, 오디오 잭/플러그, 마이크로폰 잭/플러그, USB(universal serial bus) 포트/플러그, Apple® Lightning® 포트/플러그, 이더넷 포트/플러그, 광섬유 포트/플러그, 독점 유선 포트/플러그, BLUETOOTH® 무선 신호 전송, BLUETOOTH® BLE(low energy) 무선 신호 전송, IBEACON® 무선 신호 전송, RFID(radio-frequency identification) 무선 신호 전송, NFC(near-field communications) 무선 신호 전송, DSRC(dedicated short range communication) 무선 신호 전송, 1102.11 Wi-Fi 무선 신호 전송, WLAN(wireless local area network) 신호 전송, VLC(Visible Light Communication), WiMAX(Worldwide Interoperability for Microwave Access), IR(Infrared) 통신 무선 신호 전송, PSTN(Public Switched Telephone Network) 신호 전송, ISDN(Integrated Services Digital Network) 신호 전송, 3G/4G/5G/LTE 셀룰러 데이터 네트워크 무선 신호 전송, 애드-혹 네트워크 신호 전송, 라디오 파 신호 전송, 마이크로파 신호 전송, 적외선 신호 전송, 가시광 신호 전송, 자외선 광 신호 전송, 전자기 스펙트럼을 따르는 무선 신호 전송, 또는 이들의 어떤 조합을 사용하는 트랜시버들을 포함하여, 유선 및/또는 무선 트랜시버들을 사용하여 수신 및/또는 송신 유선 또는 무선 통신들을 수행하거나 또는 가능하게 할 수 있다. 통신 인터페이스(1140)는 또한, 하나 이상의 GNSS(Global Navigation Satellite System)와 연관된 하나 이상의 위성들로부터의 하나 이상의 신호들의 수신에 기반하여 컴퓨팅 시스템(1100)의 위치를 결정하기 위해 사용되는 하나 이상의 GNSS 수신기들 또는 트랜시버들을 포함할 수 있다. GNSS 시스템들은 미국-기반 GPS(Global Positioning System), 러시아-기반 GLONASS(Global Navigation Satellite System), 중국-기반 BeiDou 내비게이션 위성 시스템(BDS), 및 유럽-기반 갈릴레오 GNSS를 포함하지만, 이에 제한되지 않는다. 임의의 특정 하드웨어 어레인지먼트(arrangement) 상에서의 동작에 대한 어떠한 제한도 없으며, 그러므로 여기서의 기본 특징들은, 개선된 하드웨어 또는 펌웨어 어레인지먼트들이 개발될 때, 이러한 개선된 하드웨어 또는 펌웨어 어레인지먼트들로 쉽게 대체할 수 있다.
[0122] 저장 디바이스(1130)는 비-휘발성 및/또는 비-일시적 및/또는 컴퓨터-판독가능 메모리 디바이스일 수 있고, 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 하드 디스크 또는 다른 타입들의 컴퓨터-판독가능 매체, 이를테면, 자기 카세트들, 플래시 메모리 카드들, 솔리드 스테이트 메모리 디바이스들, 디지털 다목적 디스크들, 카트리지들, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 자기 스트립/스트라이프, 임의의 다른 자기 저장 매체, 플래시 메모리, 멤리스터(memristor) 메모리, 임의의 다른 솔리드 스테이트 메모리, CD-ROM(compact disc read only memory) 광학 디스크, 재기록가능 CD(compact disc) 광학 디스크, DVD(digital video disk) 광학 디스크, 블루레이 디스크(BDD) 광학 디스크, 홀로그래픽 광학 디스크, 다른 광학 매체, SD(secure digital) 카드, 마이크로 보안 디지털(microSD) 카드, Memory Stick® 카드, 스마트카드 칩, EMV 칩, SIM(subscriber identity module) 카드, 미니/마이크로/나노/피코 SIM 카드, 다른 IC(integrated circuit) 칩/카드, RAM(random access memory), SRAM(static RAM), DRAM(dynamic RAM), ROM(read-only memory), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), FLASHEPROM(flash EPROM), 캐시 메모리(L1/L2/L3/L4/L5/L#), 저항성 랜덤-액세스 메모리(RRAM/ReRAM), PCM(phase change memory), STT-RAM(spin transfer torque RAM), 다른 메모리 칩 또는 카트리지, 및/또는 이들의 조합일 수 있다.
[0123] 저장 디바이스(1130)는 소프트웨어 서비스들, 서버들, 서비스들 등을 포함할 수 있으며, 그러한 소프트웨어를 정의하는 코드가 프로세서(1110)에 의해 실행될 때, 이는 시스템으로 하여금 기능을 수행하게 한다. 일부 예들에서, 특정 기능을 수행하는 하드웨어 서비스는 기능을 수행하기 위해 프로세서(1110), 연결(1105), 출력 디바이스(1135) 등과 같은 필요한 하드웨어 컴포넌트들과 관련하여 컴퓨터-판독가능 매체에 저장된 소프트웨어 컴포넌트를 포함할 수 있다.
[0124] 본원에서 사용되는 바와 같이, "컴퓨터-판독가능 매체"라는 용어는 휴대용 또는 비-휴대용 저장 디바이스들, 광학 저장 디바이스들, 및 명령(들) 및/또는 또는 데이터를 저장, 포함 또는 반송할 수 있는 다양한 다른 매체들을 포함하지만, 이에 제한되지 않는다. 컴퓨터-판독가능 매체는, 데이터가 저장될 수 있고 그리고 무선으로 또는 유선 연결들을 통해 전파되는 일시적 전자 신호들 및/또는 반송파들을 포함하지 않는 비-일시적인 매체를 포함할 수 있다. 비-일시적인 매체의 예들은 자기 디스크 또는 테이프, 광학 저장 매체, 이를테면, CD(compact disk) 또는 DVD(digital versatile disk), 플래시 메모리, 메모리 또는 메모리 디바이스들을 포함할 수 있지만, 이에 제한되지 않는다. 컴퓨터-판독가능 매체는 절차, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들 또는 프로그램 스테이트먼트들의 임의의 조합을 표현할 수 있는 코드 및/또는 머신-실행가능 명령들을 저장하고 있었을 수 있다. 코드 세그먼트는 정보, 데이터, 인수들, 파라미터들 또는 메모리 콘텐츠들을 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 포함하는 임의의 적절한 수단을 사용하여 전달, 포워딩 또는 송신될 수 있다.
[0125] 일부 예들에서, 컴퓨터-판독가능 저장 디바이스들, 매체들 및 메모리들은 비트 스트림 등을 포함하는 무선 신호 또는 케이블을 포함할 수 있다. 그러나, 언급될 때, 비-일시적인 컴퓨터-판독가능 저장 매체는 에너지, 캐리어 신호들, 전자기파들, 및 신호들 그 자체와 같은 매체를 명시적으로 배제한다.
[0126] 본원에서 제공되는 예들의 철저한 이해를 제공하기 위해 특정 세부사항들이 위의 설명에서 제공된다. 그러나, 예들이 이들 특정 세부사항들 없이 실시될 수 있다는 것이 당업자에 의해 이해될 것이다. 설명의 명확성을 위해, 일부 인스턴스들에서, 본 기술은 디바이스들, 디바이스 컴포넌트들, 소프트웨어로 구현되는 방법의 단계들 또는 루틴들, 또는 하드웨어와 소프트웨어의 조합들을 포함하는 기능 블록들을 포함하는 개별적인 기능 블록들을 포함하는 것으로서 제시될 수 있다. 도면들에 도시되고 그리고/또는 본원에서 설명되는 컴포넌트들 이외의 부가적인 컴포넌트들이 사용될 수 있다. 예컨대, 회로들, 시스템들, 네트워크들, 프로세스들 및 다른 컴포넌트들은 불필요한 세부사항으로 예들을 모호하게 하지 않기 위해서 블록 다이어그램 형태의 컴포넌트들로서 도시될 수 있다. 다른 인스턴스들에서, 예들을 모호하게 하는 것을 회피하기 위해서, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들 및 기법들이 불필요한 세부사항 없이 도시될 수 있다.
[0127] 개별적인 예들은 흐름도, 흐름 다이어그램, 데이터 흐름 다이어그램, 구조 다이어그램, 또는 블록 다이어그램으로서 묘사되는 프로세스 또는 방법으로서 위에서 설명될 수 있다. 흐름도가 순차적인 프로세스로서 동작들을 설명할 수 있지만, 동작들 중 많은 동작들은 병렬로 또는 동시에 수행될 수 있다. 부가하여, 동작들의 순서는 재배열될 수 있다. 프로세스는, 자신의 동작들이 완료될 때 종료되지만, 도면에 포함되지 않은 부가적인 단계들을 가질 수 있다. 프로세스는 방법, 함수, 절차, 서브루틴, 서브프로그램 등에 대응할 수 있다. 프로세스가 함수에 대응할 때, 프로세스의 종료는 콜링 함수 또는 메인 함수로의 함수의 리턴에 대응할 수 있다.
[0128] 위에서 설명된 예들에 따른 프로세스들 및 방법들은, 컴퓨터-판독가능 매체에 저장되거나 또는 컴퓨터-판독가능 매체로부터 달리 이용가능한 컴퓨터-실행가능 명령들을 사용하여 구현될 수 있다. 그러한 명령들은, 예컨대, 범용 컴퓨터, 특수 목적 컴퓨터 또는 프로세싱 디바이스로 하여금 특정 기능 또는 기능들의 그룹을 수행하게 하거나 또는 특정 기능 또는 기능들의 그룹을 수행하도록 범용 컴퓨터, 특수 목적 컴퓨터 또는 프로세싱 디바이스를 달리 구성하는 명령들 및 데이터를 포함할 수 있다. 사용되는 컴퓨터 자원들의 부분들은 네트워크를 통해 액세스가능할 수 있다. 컴퓨터 실행가능 명령들은, 예컨대, 바이너리들, 중간 포맷 명령들, 이를테면, 어셈블리 언어, 펌웨어, 소스 코드 등일 수 있다. 설명되는 예들에 따른 방법들 동안 생성된 정보, 사용된 정보 및/또는 명령들을 저장하기 위해 사용될 수 있는 컴퓨터-판독가능 매체의 예들은 자기 또는 광학 디스크들, 플래시 메모리, 비-휘발성 메모리가 제공된 USB 디바이스들, 네트워킹된 저장 디바이스들 등을 포함한다.
[0129] 이들 개시내용들에 따른 프로세스들 및 방법들을 구현하는 디바이스들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어들, 또는 이들의 임의의 조합을 포함할 수 있고, 다양한 폼 팩터들 중 임의의 폼 팩터를 취할 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 태스크들(예컨대, 컴퓨터-프로그램 제품)을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 컴퓨터-판독가능 또는 머신-판독가능 매체에 저장될 수 있다. 프로세서(들)는 필요한 태스크들을 수행할 수 있다. 폼 팩터들의 통상적인 예들은 랩톱들, 스마트 폰들, 모바일 폰들, 태블릿 디바이스들 또는 다른 소형 폼 팩터 개인용 컴퓨터들, 개인용 디지털 보조기기들, 랙마운트 디바이스들, 독립형 디바이스들 등을 포함한다. 본원에서 설명되는 기능성은 또한, 주변기기들 또는 애드-인 카드(add-in card)들로 구현될 수 있다. 그러한 기능성은 또한, 추가적인 예로서, 단일 디바이스에서 실행되는 상이한 프로세스들 또는 상이한 칩들 사이의 회로 보드 상에서 구현될 수 있다.
[0130] 명령들, 그러한 명령들을 전달하기 위한 매체, 명령들을 실행하기 위한 컴퓨팅 자원들, 및 그러한 컴퓨팅 자원들을 지원하기 위한 다른 구조들은 본 개시내용에서 설명되는 기능들을 제공하기 위한 예시적인 수단이다.
[0131] 전술된 설명에서, 본 출원의 양상들은 본 출원의 특정 예들을 참조하여 설명되지만, 당업자들은 본 출원이 이에 제한되지 않는다는 것을 인식할 것이다. 따라서, 본 출원의 예시적인 예들이 본원에서 상세히 설명되었지만, 본 발명의 개념들은 달리 다양하게 구현 및 이용될 수 있으며, 선행 기술에 의해 제한되는 바를 제외하고, 첨부된 청구항들은 그러한 변형들을 포함하는 것으로 해석되는 것으로 의도된다는 것이 이해되어야 한다. 위에서 설명된 출원의 다양한 특징들 및 양상들은 개별적으로 또는 공동으로 사용될 수 있다. 추가로, 예들은 본 명세서의 더 넓은 사상 및 범위를 벗어나지 않으면서 본원에서 설명되는 것들을 넘어서는 임의의 수의 환경들 및 애플리케이션들에서 활용될 수 있다. 이에 따라서, 명세서 및 도면들은 제한적인 것이 아니라 예시적인 것으로 간주되어야 한다. 예시의 목적들을 위해, 방법들이 특정 순서로 설명되었다. 대안적인 예들에서, 방법들은 설명된 순서와 상이한 순서로 수행될 수 있다는 것이 인식되어야 한다.
[0132] 당업자는, 본원에서 사용되는 미만("<") 및 초과(">") 심볼들 또는 용어가 본 설명의 범위를 벗어나지 않으면서 이하("≤") 및 이상("≥”) 심볼들로 각각 대체될 수 있다는 것을 인식할 것이다.
[0133] 컴포넌트들이 특정 동작들을 수행"하도록 구성"되는 것으로서 설명되는 경우, 그러한 구성은, 예컨대, 동작을 수행하기 위한 전자 회로들 또는 다른 하드웨어를 설계함으로써, 동작을 수행하기 위한 프로그램가능 전자 회로들(예컨대, 마이크로프로세서들 또는 다른 적절한 전자 회로들)을 프로그래밍함으로써, 또는 이들의 임의의 조합에 의해 달성될 수 있다.
[0134] "~에 커플링된"이라는 문구는, 직접적으로 또는 간접적으로 다른 컴포넌트에 물리적으로 연결되는 임의의 컴포넌트, 및/또는 직접적으로 또는 간접적으로 다른 컴포넌트와 통신하는(예컨대, 유선 또는 무선 연결, 및/또는 다른 적절한 통신 인터페이스를 통해 다른 컴포넌트에 연결되는) 임의의 컴포넌트를 지칭한다.
[0135] 세트 "중 적어도 하나" 및/또는 세트 중 "하나 이상"을 언급하는 청구항 언어 또는 다른 언어는, 세트의 하나의 멤버 또는 (임의의 조합으로) 세트의 다수의 멤버들이 청구항을 충족한다는 것을 표시한다. 예컨대, "A 및 B 중 적어도 하나"를 언급하는 청구항 언어는 A, B, 또는 A 및 B를 의미한다. 다른 예에서, "A, B 및 C 중 적어도 하나"를 언급하는 청구항 언어는 A, B, C, 또는 A 및 B, 또는 A 및 C, 또는 B 및 C, 또는 A 및 B 및 C를 의미한다. 세트 "중 적어도 하나" 및/또는 세트 중 "하나 이상"이라는 언어는 세트를 그 세트에 열거된 항목들로 제한하지 않는다. 예컨대, "A 및 B 중 적어도 하나"를 언급하는 청구항 언어는 A, B, 또는 A 및 B를 의미할 수 있고, 부가적으로, A 및 B의 세트에 열거되지 않은 항목들을 포함할 수 있다.
[0136] 본원에서 개시되는 예들과 관련하여 설명되는 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합들로서 구현될 수 있다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확하게 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들은 일반적으로 그들의 기능성 측면에서 위에서 설명되었다. 그러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 특정 애플리케이션 및 전체 시스템에 부과된 설계 제약들에 의존한다. 당업자들은 설명되는 기능성을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 그러한 구현 판단들이 본 출원의 범위를 벗어나게 하는 것으로서 해석되지는 않아야 한다.
[0137] 본원에서 설명되는 기법들은 또한, 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 그러한 기법들은 무선 통신 디바이스 핸드세트들 및 다른 디바이스들에서의 애플리케이션을 포함하여 다수의 용도들을 갖는 범용 컴퓨터들, 무선 통신 디바이스 핸드세트들 또는 집적 회로 디바이스들과 같은 다양한 디바이스들 중 임의의 디바이스로 구현될 수 있다. 모듈들 또는 컴포넌트들로서 설명되는 임의의 특징들은 통합 논리 디바이스로 함께 구현될 수 있거나, 또는 별개이지만 상호동작가능한 논리 디바이스들로서 개별적으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기법들은, 실행될 때, 위에서 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터-판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수 있다. 컴퓨터-판독가능 데이터 저장 매체는 패키징 재료들을 포함할 수 있는 컴퓨터 프로그램 제품의 일부를 형성할 수 있다. 컴퓨터-판독가능 매체는 메모리 또는 데이터 저장 매체, 이를테면 RAM(random access memory), 이를테면 SDRAM(synchronous dynamic random access memory), ROM(read-only memory), NVRAM(non-volatile random access memory), EEPROM(electrically erasable programmable read-only memory), FLASH 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수 있다. 기법들은 부가적으로 또는 대안적으로, 명령들 또는 데이터 구조들의 형태로 프로그램 코드를 반송 또는 통신하고 그리고 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터-판독가능 통신 매체, 이를테면 전파된 신호들 또는 파들에 의해 적어도 부분적으로 실현될 수 있다.
[0138] 프로그램 코드는 하나 이상의 프로세서들, 이를테면, 하나 이상의 DSP(digital signal processor)들, 범용 마이크로프로세서들, ASIC(application specific integrated circuit)들, FPGA(field programmable logic array)들, 또는 다른 등가의 집적 또는 이산 논리 회로부를 포함할 수 있는 프로세서에 의해 실행될 수 있다. 그러한 프로세서는 본 개시내용에서 설명되는 기법들 중 임의의 기법을 수행하도록 구성될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 통상적인 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예컨대 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다. 이에 따라서, 본원에서 사용되는 바와 같은 "프로세서"라는 용어는 전술된 구조, 전술된 구조의 임의의 조합, 또는 본원에서 설명되는 기법들의 구현에 적절한 임의의 다른 구조 또는 장치 중 임의의 것을 지칭할 수 있다. 부가하여, 일부 양상들에서, 본원에서 설명되는 기능성은, 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에 제공되거나, 또는 결합된 비디오 인코더-디코더(CODEC)에 통합될 수 있다.
[0139] 양상 1: 이미지 분할 프로세스(image segmentation process)들에 대한 일관성 측정치(consistency measure)들을 결정하기 위한 장치가 제공된다. 장치는, 적어도 하나의 메모리 및 적어도 하나의 메모리에 커플링된 적어도 하나의 프로세서를 포함하며, 적어도 하나의 프로세서는, 복수의 이미지 프레임들 중 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정하고; 복수의 이미지 프레임들 중 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정하고 ―제2 분할 특징은 제1 분할 특징에 대응함―; 제1 분할 특징에 대응하는, 제1 이미지 프레임의 제1 이미지 특징을 결정하고; 제2 분할 특징에 대응하는, 제2 이미지 프레임의 제2 이미지 특징을 결정하고; 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정(similarity measurement)을 결정하고; 그리고 제1 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하도록 구성된다.
[0140] 양상 2: 양상 1에 따른 장치에 있어서, 제1 이미지 프레임은 복수의 이미지 프레임들 내에서 제2 이미지 프레임에 인접한다.
[0141] 양상 3. 양상 1 또는 양상 2 중 어느 한 양상에 따른 장치에 있어서, 복수의 이미지 프레임들은 제1 이미지 프레임과 제2 이미지 프레임 사이에 적어도 하나의 중간 이미지 프레임을 포함한다.
[0142] 양상 4: 양상 1 내지 양상 3 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는, 제2 분할 마스크와 연관된 복수의 분할 특징들을 결정하는 것 ―복수의 분할 특징들은 제2 분할 특징을 포함함―; 제1 분할 특징과, 제2 분할 마스크와 연관된 복수의 분할 특징들 사이의 복수의 유사성 측정들을 결정하는 것; 및 복수의 유사성 측정들 중 가장 높은 유사성 측정이 제2 분할 특징에 대응한다고 결정하는 것에 적어도 부분적으로 기반하여, 제2 분할 특징은 제1 분할 특징에 대응한다고 결정하도록 구성된다.
[0143] 양상 5: 양상 1 내지 양상 4 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크와 연관된 분할 특징들을 결정하도록 구성된다.
[0144] 양상 6: 양상 5에 따른 장치에 있어서, 이미지 분할을 위해 트레이닝된 머신 러닝 모델은 복수의 계층들을 포함하는 뉴럴 네트워크이고; 적어도 하나의 프로세서는 뉴럴 네트워크의 복수의 계층들 중의 계층에 의해 출력된 하나 이상의 특징 맵들에 적어도 부분적으로 기반하여 제1 분할 마스크 및 제2 분할 마스크와 연관된 분할 특징들을 결정하도록 구성된다.
[0145] 양상 7: 양상 1 내지 양상 6 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는 특징 추출을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 이미지 프레임의 이미지 특징들 및 제2 이미지 프레임의 이미지 특징들을 결정하도록 구성된다.
[0146] 양상 8: 양상 1 내지 양상 7 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는 추가로, 제1 분할 특징에 대응하는, 제1 이미지 프레임 내의 제1 위치를 결정하고; 제1 위치에 적어도 부분적으로 기반하여 제1 이미지 프레임의 제1 이미지 특징을 결정하고; 제2 분할 특징에 대응하는, 제2 이미지 프레임 내의 제2 위치를 결정하고; 그리고 제2 위치에 적어도 부분적으로 기반하여 제2 이미지 프레임의 제2 이미지 특징을 결정하도록 구성된다.
[0147] 양상 9: 양상 1 내지 양상 8 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는, 제1 이미지 특징에 대응하는 제1 이미지 데이터와 제2 이미지 특징에 대응하는 제2 이미지 데이터 사이의 비교에 적어도 부분적으로 기반하여, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하도록 구성된다.
[0148] 양상 10: 양상 1 내지 양상 9 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는, 제1 이미지 특징에 대응하는 제1 특징 벡터와 제2 이미지 특징에 대응하는 제2 특징 벡터 사이의 비교에 적어도 부분적으로 기반하여, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하도록 구성된다.
[0149] 양상 11: 양상 1 내지 양상 10 중 어느 한 양상에 따른 장치에 있어서, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정은 코사인 유사성 측정이다.
[0150] 양상 12: 양상 1 내지 양상 11 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는, 제1 분할 마스크와 연관된 제3 분할 특징을 결정하고; 제2 분할 마스크와 연관된 제4 분할 특징을 결정하고 ―제4 분할 특징은 제3 분할 특징에 대응함―; 제3 분할 특징에 대응하는, 제1 이미지 프레임의 제3 이미지 특징을 결정하고; 제4 분할 특징에 대응하는, 제2 이미지 프레임의 제4 이미지 특징을 결정하고; 그리고 제3 이미지 특징과 제4 이미지 특징 사이의 제2 유사성 측정을 결정하도록 구성된다.
[0151] 양상 13: 양상 12에 따른 장치에 있어서, 적어도 하나의 프로세서는 제1 유사성 측정 및 제2 유사성 측정의 대표 값(representative value)에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하도록 구성된다.
[0152] 양상 14: 양상 12 또는 양상 13에 따른 장치에 있어서, 시간적 일관성 측정에 기반하여, 적어도 하나의 프로세서는 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 맵을 생성하도록 구성되고, 시간적 일관성 맵은 제1 이미지 특징과 연관하여 제1 유사성 측정 및 제2 이미지 특징과 연관하여 제2 유사성 측정을 저장한다.
[0153] 양상 15: 양상 1 내지 양상 14 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는, 복수의 이미지 프레임들 중 제3 이미지 프레임의 제3 분할 마스크와 연관된 제3 분할 특징을 결정하고 ―제3 분할 특징은 제2 분할 특징에 대응함―; 제3 분할 특징에 대응하는, 제3 이미지 프레임의 제3 이미지 특징을 결정하고; 그리고 제2 이미지 특징과 제3 이미지 특징 사이의 제2 유사성 측정을 결정하도록 구성된다.
[0154] 양상 16: 양상 15에 따른 장치에 있어서, 적어도 하나의 프로세서는 제1 유사성 측정 및 제2 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제3 이미지 프레임과 연관된 시간적 일관성 측정을 결정하도록 구성된다.
[0155] 양상 17: 양상 1 내지 양상 16 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는, 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크를 생성하고; 그리고 시간적 일관성 측정에 적어도 부분적으로 기반하여 머신 러닝 모델의 품질을 결정하도록 구성되며, 시간적 일관성 측정의 값은 머신 러닝 모델의 품질과 연관된다.
[0156] 양상 18: 양상 1 내지 양상 17 중 어느 한 양상에 따른 장치에 있어서, 적어도 하나의 프로세서는, 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크를 생성하고; 그리고 이미지 분할을 위해 머신 러닝 모델을 트레이닝하기 위한 피드백으로서 제1 유사성 측정을 사용하도록 구성된다.
[0157] 양상 19: 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법이 제공된다. 방법은, 복수의 이미지 프레임들 중 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정하는 단계; 복수의 이미지 프레임들 중 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정하는 단계 ―제2 분할 특징은 제1 분할 특징에 대응함―; 제1 분할 특징에 대응하는, 제1 이미지 프레임의 제1 이미지 특징을 결정하는 단계; 제2 분할 특징에 대응하는, 제2 이미지 프레임의 제2 이미지 특징을 결정하는 단계; 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하는 단계; 및 제1 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 단계를 포함한다.
[0158] 양상 20: 양상 19에 따른 방법에 있어서, 제1 이미지 프레임은 복수의 이미지 프레임들 내에서 제2 이미지 프레임에 인접한다.
[0159] 양상 21: 양상 19 또는 양상 20 중 어느 한 양상에 따른 방법에 있어서, 복수의 이미지 프레임들은 제1 이미지 프레임과 제2 이미지 프레임 사이에 적어도 하나의 중간 이미지 프레임을 포함한다.
[0160] 양상 22: 양상 19 내지 양상 21 중 어느 한 양상에 따른 방법에 있어서, 제2 분할 마스크와 연관된 복수의 분할 특징들을 결정하는 것 ―복수의 분할 특징들은 제2 분할 특징을 포함함―; 제1 분할 특징과, 제2 분할 마스크와 연관된 복수의 분할 특징들 사이의 복수의 유사성 측정들을 결정하는 것; 및 복수의 유사성 측정들 중 가장 높은 유사성 측정이 제2 분할 특징에 대응한다고 결정하는 것에 적어도 부분적으로 기반하여, 제2 분할 특징은 제1 분할 특징에 대응한다고 결정하는 단계를 더 포함한다.
[0161] 양상 23: 양상 19 내지 양상 22 중 어느 한 양상에 따른 방법에 있어서, 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크와 연관된 분할 특징들을 결정하는 단계를 더 포함한다.
[0162] 양상 24: 양상 23에 따른 방법에 있어서, 이미지 분할을 위해 트레이닝된 머신 러닝 모델은 복수의 계층들을 포함하는 뉴럴 네트워크이고; 그리고 제1 분할 마스크 및 제2 분할 마스크와 연관된 분할 특징들을 결정하는 단계는, 뉴럴 네트워크의 복수의 계층들 중의 계층에 의해 출력된 하나 이상의 특징 맵들을 획득하는 단계를 포함한다.
[0163] 양상 25: 양상 19 내지 양상 24 중 어느 한 양상에 따른 방법에 있어서, 특징 추출을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 이미지 프레임의 이미지 특징들 및 제2 이미지 프레임의 이미지 특징들을 결정하는 단계를 더 포함한다.
[0164] 양상 26: 양상 19 내지 양상 25 중 어느 한 양상에 따른 방법에 있어서, 제1 분할 특징에 대응하는, 제1 이미지 프레임 내의 제1 위치를 결정하는 단계; 제1 위치에 적어도 부분적으로 기반하여 제1 이미지 프레임의 제1 이미지 특징을 결정하는 단계; 제2 분할 특징에 대응하는, 제2 이미지 프레임 내의 제2 위치를 결정하는 단계; 및 제2 위치에 적어도 부분적으로 기반하여 제2 이미지 프레임의 제2 이미지 특징을 결정하는 단계를 더 포함한다.
[0165] 양상 27: 양상 19 내지 양상 26 중 어느 한 양상에 따른 방법에 있어서, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하는 단계는, 제1 이미지 특징에 대응하는 제1 이미지 데이터와 제2 이미지 특징에 대응하는 제2 이미지 데이터를 비교하는 단계를 포함한다.
[0166] 양상 28: 양상 19 내지 양상 27 중 어느 한 양상에 따른 방법에 있어서, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정을 결정하는 단계는, 제1 이미지 특징에 대응하는 제1 특징 벡터와 제2 이미지 특징에 대응하는 제2 특징 벡터를 비교하는 단계를 포함한다.
[0167] 양상 29: 양상 19 내지 양상 28 중 어느 한 양상에 따른 방법에 있어서, 제1 이미지 특징과 제2 이미지 특징 사이의 제1 유사성 측정은 코사인 유사성 측정이다.
[0168] 양상 30: 양상 19 내지 양상 29 중 어느 한 양상에 따른 방법에 있어서, 제1 분할 마스크와 연관된 제3 분할 특징을 결정하는 단계; 제2 분할 마스크와 연관된 제4 분할 특징을 결정하는 단계 ―제4 분할 특징은 제3 분할 특징에 대응함―; 제3 분할 특징에 대응하는, 제1 이미지 프레임의 제3 이미지 특징을 결정하는 단계; 제4 분할 특징에 대응하는, 제2 이미지 프레임의 제4 이미지 특징을 결정하는 단계; 및 제3 이미지 특징과 제4 이미지 특징 사이의 제2 유사성 측정을 결정하는 단계를 더 포함한다.
[0169] 양상 31: 양상 30에 따른 방법에 있어서, 제1 유사성 측정 및 제2 유사성 측정의 대표 값에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 단계를 더 포함한다.
[0170] 양상 32: 양상 30 또는 양상 31 중 어느 한 양상에 따른 방법에 있어서, 시간적 일관성 측정에 기반하여, 제1 이미지 프레임 및 제2 이미지 프레임과 연관된 시간적 일관성 맵을 생성하는 단계를 더 포함하고, 시간적 일관성 맵은 제1 이미지 특징과 연관하여 제1 유사성 측정 및 제2 이미지 특징과 연관하여 제2 유사성 측정을 저장한다.
[0171] 양상 33: 양상 19 내지 양상 32 중 어느 한 양상에 따른 방법에 있어서, 복수의 이미지 프레임들 중 제3 이미지 프레임의 제3 분할 마스크와 연관된 제3 분할 특징을 결정하는 단계 ―제3 분할 특징은 제2 분할 특징에 대응함―; 제3 분할 특징에 대응하는, 제3 이미지 프레임의 제3 이미지 특징을 결정하는 단계; 및 제2 이미지 특징과 제3 이미지 특징 사이의 제2 유사성 측정을 결정하는 단계를 더 포함한다.
[0172] 양상 34: 양상 33에 따른 방법에 있어서, 제1 유사성 측정 및 제2 유사성 측정에 적어도 부분적으로 기반하여 제1 이미지 프레임 및 제3 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 단계를 더 포함한다.
[0173] 양상 35: 양상 19 내지 양상 34 중 어느 한 양상에 따른 방법에 있어서, 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크를 생성하는 단계; 및 시간적 일관성 측정에 적어도 부분적으로 기반하여 머신 러닝 모델의 품질을 결정하는 단계를 더 포함하며, 시간적 일관성 측정의 값은 머신 러닝 모델의 품질과 연관된다.
[0174] 양상 36: 양상 19 내지 양상 35 중 어느 한 양상에 따른 방법에 있어서, 이미지 분할을 위해 트레이닝되는 머신 러닝 모델을 사용하여 제1 분할 마스크 및 제2 분할 마스크를 생성하는 단계; 및 이미지 분할을 위해 머신 러닝 모델을 트레이닝하기 위한 피드백으로서 제1 유사성 측정을 사용하는 단계를 더 포함한다.
[0175] 양상 37: 이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 비-일시적인 컴퓨터-판독가능 저장 매체가 제공된다. 비-일시적인 컴퓨터-판독가능 저장 매체는, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 양상 1 내지 양상 36의 동작들 중 임의의 동작을 수행하게 하는 명령들을 내부에 저장하고 있다.
[0176] 양상 38: 양상 1 내지 양상 36의 동작들 중 임의의 동작을 수행하기 위한 하나 이상의 수단들을 포함하는 이미지 분할 시스템이 제공된다.

Claims (30)

  1. 이미지 분할 프로세스(image segmentation process)들에 대한 일관성 측정치(consistency measure)들을 결정하기 위한 장치로서,
    적어도 하나의 메모리; 및
    상기 적어도 하나의 메모리에 커플링된 적어도 하나의 프로세서
    를 포함하며,
    상기 적어도 하나의 프로세서는,
    복수의 이미지 프레임들 중 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정하고;
    상기 복수의 이미지 프레임들 중 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정하고 ―상기 제2 분할 특징은 상기 제1 분할 특징에 대응함―;
    상기 제1 분할 특징에 대응하는, 상기 제1 이미지 프레임의 제1 이미지 특징을 결정하고;
    상기 제2 분할 특징에 대응하는, 상기 제2 이미지 프레임의 제2 이미지 특징을 결정하고;
    상기 제1 이미지 특징과 상기 제2 이미지 특징 사이의 제1 유사성 측정(similarity measurement)을 결정하고; 그리고
    상기 제1 유사성 측정에 적어도 부분적으로 기반하여 상기 제1 이미지 프레임 및 상기 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하도록
    구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  2. 제1 항에 있어서,
    상기 제1 이미지 프레임은 상기 복수의 이미지 프레임들 내에서 상기 제2 이미지 프레임에 인접하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  3. 제1 항에 있어서,
    상기 복수의 이미지 프레임들은 상기 제1 이미지 프레임과 상기 제2 이미지 프레임 사이에 적어도 하나의 중간 이미지 프레임을 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  4. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제2 분할 마스크와 연관된 복수의 분할 특징들을 결정하는 것 ―상기 복수의 분할 특징들은 상기 제2 분할 특징을 포함함―;
    상기 제1 분할 특징과, 상기 제2 분할 마스크와 연관된 상기 복수의 분할 특징들 사이의 복수의 유사성 측정들을 결정하는 것; 및
    상기 복수의 유사성 측정들 중 가장 높은 유사성 측정이 상기 제2 분할 특징에 대응한다고 결정하는 것
    에 적어도 부분적으로 기반하여, 상기 제2 분할 특징은 상기 제1 분할 특징에 대응한다고 결정하도록
    구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  5. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는 이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 상기 제1 분할 마스크 및 상기 제2 분할 마스크와 연관된 분할 특징들을 결정하도록 구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  6. 제5 항에 있어서,
    상기 이미지 분할을 위해 트레이닝된 머신 러닝 모델은 복수의 계층들을 포함하는 뉴럴 네트워크이고; 그리고
    상기 적어도 하나의 프로세서는 상기 뉴럴 네트워크의 상기 복수의 계층들 중의 계층에 의해 출력된 하나 이상의 특징 맵들에 적어도 부분적으로 기반하여 상기 제1 분할 마스크 및 상기 제2 분할 마스크와 연관된 분할 특징들을 결정하도록 구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  7. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는 특징 추출을 위해 트레이닝된 머신 러닝 모델을 사용하여 상기 제1 이미지 프레임의 이미지 특징들 및 상기 제2 이미지 프레임의 이미지 특징들을 결정하도록 구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  8. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로,
    상기 제1 분할 특징에 대응하는, 상기 제1 이미지 프레임 내의 제1 위치를 결정하고;
    상기 제1 위치에 적어도 부분적으로 기반하여 상기 제1 이미지 프레임의 상기 제1 이미지 특징을 결정하고;
    상기 제2 분할 특징에 대응하는, 상기 제2 이미지 프레임 내의 제2 위치를 결정하고; 그리고
    상기 제2 위치에 적어도 부분적으로 기반하여 상기 제2 이미지 프레임의 상기 제2 이미지 특징을 결정하도록
    구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  9. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 제1 이미지 특징에 대응하는 제1 이미지 데이터와 상기 제2 이미지 특징에 대응하는 제2 이미지 데이터 사이의 비교에 적어도 부분적으로 기반하여, 상기 제1 이미지 특징과 상기 제2 이미지 특징 사이의 상기 제1 유사성 측정을 결정하도록 구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  10. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 제1 이미지 특징에 대응하는 제1 특징 벡터와 상기 제2 이미지 특징에 대응하는 제2 특징 벡터 사이의 비교에 적어도 부분적으로 기반하여, 상기 제1 이미지 특징과 상기 제2 이미지 특징 사이의 상기 제1 유사성 측정을 결정하도록 구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  11. 제1 항에 있어서,
    상기 제1 이미지 특징과 상기 제2 이미지 특징 사이의 상기 제1 유사성 측정은 코사인 유사성 측정인,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  12. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 분할 마스크와 연관된 제3 분할 특징을 결정하고;
    상기 제2 분할 마스크와 연관된 제4 분할 특징을 결정하고 ―상기 제4 분할 특징은 상기 제3 분할 특징에 대응함―;
    상기 제3 분할 특징에 대응하는, 상기 제1 이미지 프레임의 제3 이미지 특징을 결정하고;
    상기 제4 분할 특징에 대응하는, 상기 제2 이미지 프레임의 제4 이미지 특징을 결정하고; 그리고
    상기 제3 이미지 특징과 상기 제4 이미지 특징 사이의 제2 유사성 측정을 결정하도록
    구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  13. 제12 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 제1 유사성 측정 및 상기 제2 유사성 측정의 대표 값(representative value)에 적어도 부분적으로 기반하여 상기 제1 이미지 프레임 및 상기 제2 이미지 프레임과 연관된 상기 시간적 일관성 측정을 결정하도록 구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  14. 제12 항에 있어서,
    상기 시간적 일관성 측정에 기반하여, 상기 적어도 하나의 프로세서는 상기 제1 이미지 프레임 및 상기 제2 이미지 프레임과 연관된 시간적 일관성 맵을 생성하도록 구성되고, 상기 시간적 일관성 맵은 상기 제1 이미지 특징과 연관하여 상기 제1 유사성 측정 및 상기 제2 이미지 특징과 연관하여 상기 제2 유사성 측정을 저장하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  15. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 복수의 이미지 프레임들 중 제3 이미지 프레임의 제3 분할 마스크와 연관된 제3 분할 특징을 결정하고 ―상기 제3 분할 특징은 상기 제2 분할 특징에 대응함―;
    상기 제3 분할 특징에 대응하는, 상기 제3 이미지 프레임의 제3 이미지 특징을 결정하고; 그리고
    상기 제2 이미지 특징과 상기 제3 이미지 특징 사이의 제2 유사성 측정을 결정하도록
    구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  16. 제15 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 제1 유사성 측정 및 상기 제2 유사성 측정에 적어도 부분적으로 기반하여 상기 제1 이미지 프레임 및 상기 제3 이미지 프레임과 연관된 시간적 일관성 측정을 결정하도록 구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  17. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 상기 제1 분할 마스크 및 상기 제2 분할 마스크를 생성하고; 그리고
    상기 시간적 일관성 측정에 적어도 부분적으로 기반하여 상기 머신 러닝 모델의 품질을 결정하도록
    구성되며,
    상기 시간적 일관성 측정의 값은 상기 머신 러닝 모델의 품질과 연관되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  18. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 상기 제1 분할 마스크 및 상기 제2 분할 마스크를 생성하고; 그리고
    이미지 분할을 위해 상기 머신 러닝 모델을 트레이닝하기 위한 피드백으로서 상기 제1 유사성 측정을 사용하도록
    구성되는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 장치.
  19. 이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법으로서,
    복수의 이미지 프레임들 중 제1 이미지 프레임의 제1 분할 마스크와 연관된 제1 분할 특징을 결정하는 단계;
    상기 복수의 이미지 프레임들 중 제2 이미지 프레임의 제2 분할 마스크와 연관된 제2 분할 특징을 결정하는 단계 ―상기 제2 분할 특징은 상기 제1 분할 특징에 대응함―;
    상기 제1 분할 특징에 대응하는, 상기 제1 이미지 프레임의 제1 이미지 특징을 결정하는 단계;
    상기 제2 분할 특징에 대응하는, 상기 제2 이미지 프레임의 제2 이미지 특징을 결정하는 단계;
    상기 제1 이미지 특징과 상기 제2 이미지 특징 사이의 제1 유사성 측정을 결정하는 단계; 및
    상기 제1 유사성 측정에 적어도 부분적으로 기반하여 상기 제1 이미지 프레임 및 상기 제2 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 단계
    를 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  20. 제19 항에 있어서,
    상기 제2 분할 마스크와 연관된 복수의 분할 특징들을 결정하는 것 ―상기 복수의 분할 특징들은 상기 제2 분할 특징을 포함함―;
    상기 제1 분할 특징과, 상기 제2 분할 마스크와 연관된 상기 복수의 분할 특징들 사이의 복수의 유사성 측정들을 결정하는 것; 및
    상기 복수의 유사성 측정들 중 가장 높은 유사성 측정이 상기 제2 분할 특징에 대응한다고 결정하는 것
    에 적어도 부분적으로 기반하여, 상기 제2 분할 특징은 상기 제1 분할 특징에 대응한다고 결정하는 단계를 더 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  21. 제19 항에 있어서,
    이미지 분할을 위해 트레이닝된 머신 러닝 모델을 사용하여 상기 제1 분할 마스크 및 상기 제2 분할 마스크와 연관된 분할 특징들을 결정하는 단계를 더 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  22. 제21 항에 있어서,
    상기 이미지 분할을 위해 트레이닝된 머신 러닝 모델은 복수의 계층들을 포함하는 뉴럴 네트워크이고; 그리고
    상기 제1 분할 마스크 및 상기 제2 분할 마스크와 연관된 분할 특징들을 결정하는 단계는, 상기 뉴럴 네트워크의 상기 복수의 계층들 중의 계층에 의해 출력된 하나 이상의 특징 맵들을 획득하는 단계를 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  23. 제19 항에 있어서,
    특징 추출을 위해 트레이닝된 머신 러닝 모델을 사용하여 상기 제1 이미지 프레임의 이미지 특징들 및 상기 제2 이미지 프레임의 이미지 특징들을 결정하는 단계를 더 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  24. 제19 항에 있어서,
    상기 제1 분할 특징에 대응하는, 상기 제1 이미지 프레임 내의 제1 위치를 결정하는 단계;
    상기 제1 위치에 적어도 부분적으로 기반하여 상기 제1 이미지 프레임의 상기 제1 이미지 특징을 결정하는 단계;
    상기 제2 분할 특징에 대응하는, 상기 제2 이미지 프레임 내의 제2 위치를 결정하는 단계; 및
    상기 제2 위치에 적어도 부분적으로 기반하여 상기 제2 이미지 프레임의 상기 제2 이미지 특징을 결정하는 단계
    를 더 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  25. 제19 항에 있어서,
    상기 제1 이미지 특징과 상기 제2 이미지 특징 사이의 상기 제1 유사성 측정을 결정하는 단계는, 상기 제1 이미지 특징에 대응하는 제1 이미지 데이터와 상기 제2 이미지 특징에 대응하는 제2 이미지 데이터를 비교하는 단계를 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  26. 제19 항에 있어서,
    상기 제1 이미지 특징과 상기 제2 이미지 특징 사이의 상기 제1 유사성 측정을 결정하는 단계는, 상기 제1 이미지 특징에 대응하는 제1 특징 벡터와 상기 제2 이미지 특징에 대응하는 제2 특징 벡터를 비교하는 단계를 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  27. 제19 항에 있어서,
    상기 제1 분할 마스크와 연관된 제3 분할 특징을 결정하는 단계;
    상기 제2 분할 마스크와 연관된 제4 분할 특징을 결정하는 단계 ―상기 제4 분할 특징은 상기 제3 분할 특징에 대응함―;
    상기 제3 분할 특징에 대응하는, 상기 제1 이미지 프레임의 제3 이미지 특징을 결정하는 단계;
    상기 제4 분할 특징에 대응하는, 상기 제2 이미지 프레임의 제4 이미지 특징을 결정하는 단계; 및
    상기 제3 이미지 특징과 상기 제4 이미지 특징 사이의 제2 유사성 측정을 결정하는 단계
    를 더 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  28. 제27 항에 있어서,
    상기 제1 유사성 측정 및 상기 제2 유사성 측정의 대표 값에 적어도 부분적으로 기반하여 상기 제1 이미지 프레임 및 상기 제2 이미지 프레임과 연관된 상기 시간적 일관성 측정을 결정하는 단계를 더 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  29. 제27 항에 있어서,
    상기 시간적 일관성 측정에 기반하여, 상기 제1 이미지 프레임 및 상기 제2 이미지 프레임과 연관된 시간적 일관성 맵을 생성하는 단계를 더 포함하고, 상기 시간적 일관성 맵은 상기 제1 이미지 특징과 연관하여 상기 제1 유사성 측정 및 상기 제2 이미지 특징과 연관하여 상기 제2 유사성 측정을 저장하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
  30. 제19 항에 있어서,
    상기 복수의 이미지 프레임들 중 제3 이미지 프레임의 제3 분할 마스크와 연관된 제3 분할 특징을 결정하는 단계 ―상기 제3 분할 특징은 상기 제2 분할 특징에 대응함―;
    상기 제3 분할 특징에 대응하는, 상기 제3 이미지 프레임의 제3 이미지 특징을 결정하는 단계;
    상기 제2 이미지 특징과 상기 제3 이미지 특징 사이의 제2 유사성 측정을 결정하는 단계; 및
    상기 제1 유사성 측정 및 상기 제2 유사성 측정에 적어도 부분적으로 기반하여 상기 제1 이미지 프레임 및 상기 제3 이미지 프레임과 연관된 시간적 일관성 측정을 결정하는 단계
    를 더 포함하는,
    이미지 분할 프로세스들에 대한 일관성 측정치들을 결정하기 위한 방법.
KR1020237015363A 2020-11-13 2021-11-12 이미지 분할 프로세스들에 대한 일관성 측정 KR20230107805A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063113725P 2020-11-13 2020-11-13
US63/113,725 2020-11-13
US17/524,253 2021-11-11
US17/524,253 US20220156943A1 (en) 2020-11-13 2021-11-11 Consistency measure for image segmentation processes
PCT/US2021/059096 WO2022104026A1 (en) 2020-11-13 2021-11-12 Consistency measure for image segmentation processes

Publications (1)

Publication Number Publication Date
KR20230107805A true KR20230107805A (ko) 2023-07-18

Family

ID=81586714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237015363A KR20230107805A (ko) 2020-11-13 2021-11-12 이미지 분할 프로세스들에 대한 일관성 측정

Country Status (5)

Country Link
US (1) US20220156943A1 (ko)
EP (1) EP4244811A1 (ko)
KR (1) KR20230107805A (ko)
CN (1) CN116547711A (ko)
WO (1) WO2022104026A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220166976A1 (en) * 2020-11-26 2022-05-26 Electronics And Telecommunications Research Institute Method, apparatus and storage medium for image encoding/decoding using segmentation map
US11727576B2 (en) * 2020-12-18 2023-08-15 Qualcomm Incorporated Object segmentation and feature tracking
TWI824861B (zh) * 2022-11-30 2023-12-01 國立陽明交通大學 機器學習裝置及其訓練方法
CN115941872B (zh) * 2023-02-08 2023-06-16 吉林大学 一种水下高速移动目标的视频插帧方法及其系统
CN116935189B (zh) * 2023-09-15 2023-12-05 北京理工导航控制科技股份有限公司 一种基于神经网络的伪装目标检测方法、装置及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977802B2 (en) * 2018-08-29 2021-04-13 Qualcomm Incorporated Motion assisted image segmentation
EP3683767A1 (en) * 2019-01-15 2020-07-22 Koninklijke Philips N.V. Image analysis method and device

Also Published As

Publication number Publication date
WO2022104026A1 (en) 2022-05-19
CN116547711A (zh) 2023-08-04
EP4244811A1 (en) 2023-09-20
US20220156943A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
US10943126B2 (en) Method and apparatus for processing video stream
US20220156943A1 (en) Consistency measure for image segmentation processes
US11557085B2 (en) Neural network processing for multi-object 3D modeling
US10977802B2 (en) Motion assisted image segmentation
US11644890B2 (en) Image capturing in extended reality environments
US20220101539A1 (en) Sparse optical flow estimation
US11600039B2 (en) Mechanism for improved light estimation
US11727576B2 (en) Object segmentation and feature tracking
US20140044359A1 (en) Landmark Detection in Digital Images
US11941822B2 (en) Volumetric sampling with correlative characterization for dense estimation
US20230237819A1 (en) Unsupervised object-oriented decompositional normalizing flow
US20240007760A1 (en) Low-power fusion for negative shutter lag capture
US20230093827A1 (en) Image processing framework for performing object depth estimation
CN116964643A (zh) 面部表情识别
EP4211595A1 (en) Video-based activity recognition
US20230386052A1 (en) Scene segmentation and object tracking
US20240119721A1 (en) Processing data using convolution as a transformer operation
US20240135559A1 (en) Depth estimation using image and sparse depth inputs
US20240070812A1 (en) Efficient cost volume processing within iterative process
US20230410447A1 (en) View dependent three-dimensional morphable models
WO2024076865A1 (en) Processing data using convolution as a transformer operation
WO2023056149A1 (en) Image processing framework for performing object depth estimation
CN115362481A (zh) 运动模糊鲁棒图像特征描述符