KR20200095339A - 폴트 톨러런스 및 플럭츄에이션 로버스트를 위한 복수의 뉴럴 네트워크를 사용하여 흔들리는 카메라로 인해 생성된 비디오에서 지터링을 제거하기 위한 학습 방법 및 학습 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치 - Google Patents

폴트 톨러런스 및 플럭츄에이션 로버스트를 위한 복수의 뉴럴 네트워크를 사용하여 흔들리는 카메라로 인해 생성된 비디오에서 지터링을 제거하기 위한 학습 방법 및 학습 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치 Download PDF

Info

Publication number
KR20200095339A
KR20200095339A KR1020190147109A KR20190147109A KR20200095339A KR 20200095339 A KR20200095339 A KR 20200095339A KR 1020190147109 A KR1020190147109 A KR 1020190147109A KR 20190147109 A KR20190147109 A KR 20190147109A KR 20200095339 A KR20200095339 A KR 20200095339A
Authority
KR
South Korea
Prior art keywords
image
neural network
jittering
vector
test
Prior art date
Application number
KR1020190147109A
Other languages
English (en)
Other versions
KR102320999B1 (ko
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 KR20200095339A publication Critical patent/KR20200095339A/ko
Application granted granted Critical
Publication of KR102320999B1 publication Critical patent/KR102320999B1/ko

Links

Images

Classifications

    • 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
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • 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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • 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
    • G06N3/0454
    • 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
    • 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
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/30Noise filtering
    • 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/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/217
    • 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/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]

Landscapes

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

Abstract

극한 상황에서 폴트 톨러런스(Fault Tolerance) 및 플럭츄에이션 로버스트(Fluctuation Robustness)를 위해 제공되는, 뉴럴 네트워크(Neural Network)를 사용하여 비디오 상의 지터링을 제거하기 위해 흔들리는 카메라로 인해 생성된 비디오에서 지터링을 검출하는 방법에 관한 것으로, 컴퓨팅 장치가, 제t 이미지 내의 각각의 객체에 대응하는 각각의 제t 마스크를 생성하는 단계; 각각의 제t 마스크, 각각의 제t 크롭된 이미지, 각각의 제t-1 마스크 및 각각의 제t-1 크롭된 이미지(Cropped Image)에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하여 제t 이미지에 포함된 각각의 객체 픽셀의 각각의 제t 객체 모션 벡터를 생성하는 단계; 및 각각의 제t 객체 모션 벡터를 참조하여 제t이미지 내의 픽셀 중 각각의 참조 픽셀(Reference Pixel)에 대응하는 각각의 제t지터링 벡터를 생성하는 단계를 포함하는 것을 특징으로 함으로써, 본 발명은 비디오 안정화, 초정밀 객체 추적, 행동 예측, 모션(Motion) 분해 등에 사용될 수 있다.

Description

폴트 톨러런스 및 플럭츄에이션 로버스트를 위한 복수의 뉴럴 네트워크를 사용하여 흔들리는 카메라로 인해 생성된 비디오에서 지터링을 제거하기 위한 학습 방법 및 학습 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치{LEARNING METHOD AND LEARNING DEVICE FOR REMOVING JITTERING ON VIDEO ACQUIRED THROUGH SHAKING CAMERA BY USING A PLURALITY OF NEURAL NETWORKS FOR FAULT TOLERANCE AND FLUCTUATION ROBUSTNESS IN EXTREME SITUATIONS, AND TESTING METHOD AND TESTING DEVICE USING THE SAME}
본 발명은 자동주행 자동차와 함께 이용하는 학습 방법 및 학습 장치에 관한 것으로, 보다 상세하게는, 적어도 하나의 뉴럴 네트워크(Neural Network)를 사용하여 비디오(Video) 상의 지터링(Jittering)을 제거하기 위해, 흔들리는 카메라로 인해 생성된 상기 비디오에서 지터링을 검출하는 학습 방법 및 학습 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치에 관한 것이다.
딥 컨벌루션 뉴럴 네트워크(Deep Convolution Neural Networks; Deep CNNs)는 딥 러닝 분야에서 일어난 놀라운 발전의 핵심이다. CNNs은 글자 인식 문제를 풀기 위해 90년대에 이미 사용되었지만, 현재처럼 널리 쓰이게 된 것은 최근의 연구 결과 덕분이다. 이러한 CNN은 2012년 ImageNet 이미지 분류 시합에서 다른 경쟁자들을 이기고 우승을 차지했다. 그리고 나서 컨벌루션 뉴럴 네트워크는 기계 학습(Machine Learning) 분야에서 매우 유용한 툴이 되었다.
CNN은 자동차의 자율 주행 분야에서도 널리 사용되고 있는데, 이는 주로 자동차에 부착된 카메라를 통해 획득된 이미지를 분석함으로써 장애물을 검출하고, 프리 스페이스(Free Space)를 검출하는 등의 기능을 수행하여 안전하게 차량이 주행될 수 있도록 한다.
그런데, 이와 같이 CNN을 이용해 자동차가 자율 주행하도록 하는 방법은, 특정 상황에서 수행이 어려울 수 있다. 즉, CNN은 카메라를 통해 얻어진 이미지를 사용해야 하는데, 카메라가 흔들리는 등의 문제로 이미지가 많이 흔들리면, 비디오의 각각의 프레임마다 이미지가 크게 바뀌는 지터링(Jittering) 현상이 발생하게 된다. 이와 같은 지터링 현상이 발생하면 CNN이 이미지 상의 객체의 움직임을 추적하기 어렵게 된다. 특히, 이와 같은 지터링 현상은, 오프로드에서 자주 주행하는 군용 차량의 자율 주행 상황에서 매우 흔히 발생하는 바, 이를 막기 위한 방법이 매우 중요하다.
이와 같은 지터링을 막기 위한 종래 기술로서, 물리적으로 카메라의 움직임을 측정한 후 이를 이용하여 지터링이 발생한 이미지를 보정하는 방법이 있는데, 이는 비용이 많이 들고, 카메라 모듈의 무게가 더 나가게 되며, 복수의 장치를 사용하게 되므로 고장을 일으킬 위험이 높아진다. 위에서 언급한 물리적인 방법이 아닌 소프트웨어적인 방법이 종래 기술로서 존재하기는 하나, 이 역시 이미지의 객체의 옵티컬 플로우만을 고려하므로 지터링이 발생한 이미지를 보정하는 과정에서 이미지에 큰 왜곡을 발생시키는 문제점이 있다.
본 발명은 상술한 문제점을 해결하는 것을 목적으로 한다.
본 발명은 복수의 뉴럴 네트워크(Neural Network)를 통해 지터링(Jittering)이 발생한 이미지를 보정하여 카메라가 흔들리더라도 적절한 이미지를 획득할 수 있도록 하는 것을 다른 목적으로 한다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 태양에 따르면, 적어도 하나의 뉴럴 네트워크(Neural Network)를 사용하여 비디오(Video) 상의 지터링(Jittering)을 제거하기 위해, 흔들리는 카메라로 인해 생성된 상기 비디오에서 지터링을 검출하는 방법에 있어서, (a) 상기 비디오의 제t 프레임에 해당하는 제t 이미지가 획득되면, 컴퓨팅 장치가, 제1 뉴럴 네트워크로 하여금, 상기 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 제t 이미지 내의 각각의 객체에 대응하는 제t 마스크 각각을 생성하도록 하는 단계; (b) 상기 컴퓨팅 장치가, 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 제t 마스크, (ii) 이에 대응하는, 상기 제t 이미지의 일부분인 각각의 제t 크롭된(Cropped) 이미지, (iii) 각각의 제t-1 마스크 및 (iv) 이에 대응하는, 제t-1 이미지의 일부분인 각각의 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 제t 이미지에 포함된, 각각의 상기 객체에 대응하는 객체 픽셀 각각에 대한 제t 객체 모션 벡터(Object Motion Vector) 각각을 생성하도록 하는 단계; 및 (c) 상기 컴퓨팅 장치가, 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 제t 객체 모션 벡터 각각을 참조로 하여 상기 제t 이미지 내의 픽셀 중 참조 픽셀(Reference Pixel) 각각에 대응하는 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하는 단계;를 포함하는 것을 특징으로 한다.
일 실시예에서, (d) 상기 컴퓨팅 장치가, 상기 지터링 예측 유닛으로 하여금, 상기 제t 지터링 벡터를 참조로 하여 상기 제t 이미지의 지터링을 완화한 제t 조정 이미지(Adjusted Image)를 생성하도록 하는 단계;를 더 포함하는 것을 특징으로 한다.
일 실시예에서, (e) 상기 컴퓨팅 장치가, 학습 유닛(Learning Unit)으로 하여금, (i) 상기 제t 지터링 벡터를 생성하기 위한 프로세스를 통해 최적화된 제t 조정 객체 모션 벡터 및 (ii) 최적화되기 전의 상기 제t 객체 모션 벡터를 참조로 하여 적어도 하나의 로스를 산출하도록 하고, 상기 로스를 백프로파게이션함으로써 상기 제2 뉴럴 네트워크의 적어도 하나의 파라미터의 적어도 일부를 학습하도록 하는 단계;를 더 포함하는 것을 특징으로 한다.
일 실시예에서, 상기 (c) 단계에서, 상기 컴퓨팅 장치가, 상기 지터링 예측 유닛으로 하여금, (i) 상기 카메라로 상기 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 상기 제t 이미지 내의 픽셀 각각에 대응하는 지점 각각의 움직인 정도를 나타내는 각각의 제t 옵티컬 플로우 벡터(Optical Flow Vector) 및 (ii) 상기 카메라로 상기 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 3차원 상에서의 상기 지점 각각의 움직인 정도를 나타내는 각각의 제t FPV 벡터를 더 참조하여 상기 제t 지터링 벡터를 생성하도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 (d) 단계에서, 상기 컴퓨팅 장치가, 상기 지터링 예측 유닛으로 하여금,
Figure pat00001
상기 수식을 최소화시키는
Figure pat00002
,
Figure pat00003
,
Figure pat00004
를 산출하도록 함으로써 상기 제t 지터링 벡터를 생성하도록 하되,
Figure pat00005
는 상기 제t 지터링 벡터를 의미하고,
Figure pat00006
는 상기 제t FPV 벡터를 의미하며,
Figure pat00007
는 상기 제t 객체 모션 벡터를 의미하고,
Figure pat00008
는 제t-1 FPV 벡터를 의미하고,
Figure pat00009
는 제t-1 객체 모션 벡터를 의미하며,
Figure pat00010
Figure pat00011
Figure pat00012
Figure pat00013
에 대한 각각의 가중치를 의미하는 것을 특징으로 한다.
일 실시예에서, 상기 수식은,
Figure pat00014
상기 조건을 만족하는 항(Term)에 대해 유효하도록 하되,
Figure pat00015
는 상기 제t 옵티컬 플로우 벡터 중 일부인, 상기 참조 픽셀에 대한 제1의 t번째 옵티컬 플로우 벡터를 의미하고,
Figure pat00016
는 상기 참조 픽셀이 아닌 나머지 픽셀에 대한 제2의 t번째 옵티컬 플로우 벡터를 의미하며,
Figure pat00017
는 상기 제t 객체 모션 벡터 중 일부인, 상기 객체 픽셀이면서 상기 참조 픽셀인 특정 픽셀에 대한 제t 객체 모션 벡터를 의미하며, 시그마 기호 하단의
Figure pat00018
은 소정 픽셀을 포함하는 그리드 내의 상기 참조 픽셀 중 일부에 대한 정보를 사용하는 것임을 나타내며,
Figure pat00019
는 상기 그리드 내의 상기 소정 픽셀의 적어도 하나의 위치에 따른 각각의 가중치를 나타내는 것을 특징으로 한다.
일 실시예에서, 상기 컴퓨팅 장치가, 상기 지터링 예측 유닛으로 하여금,
Figure pat00020
상기 수식을 최소화시키는
Figure pat00021
,
Figure pat00022
,
Figure pat00023
를 산출하도록 하되,
Figure pat00024
는 상기 제t 지터링 벡터를 의미하고,
Figure pat00025
는 상기 제t FPV 벡터를 의미하며,
Figure pat00026
는 상기 제t 객체 모션 벡터를 의미하고,
Figure pat00027
는 제t-k 이미지에 대한 제t-k FPV 벡터를 의미하고,
Figure pat00028
는 상기 제t-k 이미지에 대한 제t-k 객체 모션 벡터를 의미하며,
Figure pat00029
Figure pat00030
Figure pat00031
에 대한 각각의 가중치를 의미하고, K는 소정 상수인 것을 특징으로 한다.
일 실시예에서, 상기 (b) 단계에서, 상기 제2 뉴럴 네트워크는, 제2_1 뉴럴 네트워크 및 제2_2 뉴럴 네트워크를 포함하되, 상기 제2_1 뉴럴 네트워크는, 각각의 상기 제t 마스크, 각각의 상기 제t 크롭된 이미지, 각각의 상기 제t-1 마스크 및 각각의 상기 제t-1 크롭된 이미지에 대해 분석하는, 상기 제2 뉴럴 네트워크 연산에 포함된 제2_1 뉴럴 네트워크 연산을 적어도 한 번 수행함으로써 적어도 하나의 중간 특징 맵(Intermediate Feature Map)을 생성하고, 상기 제2_2 뉴럴 네트워크는, 상기 제t 이미지가 획득되기 이전에 입력된 값에 대한 분석 내용을 참조로 하여 상기 중간 특징 맵에 대하여 상기 제2 뉴럴 네트워크 연산에 포함된 제2_2 뉴럴 네트워크 연산을 적어도 한 번 적용함으로써 상기 제t 객체 모션 벡터를 생성하는 것을 특징으로 한다.
일 실시예에서, 상기 제2_2 뉴럴 네트워크는, (i) 제1 이미지 내지 상기 제t-1 이미지 중 적어도 일부에 대한 값들에 대한 분석을 반영하여, 상기 제2_1 뉴럴 네트워크가 생성된, 상기 제2_2 뉴럴 네트워크의 스테이트 벡터(State Vector)를 사용하여, 상기 제t 객체 모션 벡터를 생성하도록 하고, (ii) 상기 스테이트 벡터를 업데이트하도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 참조 픽셀은, 상기 제t 이미지 상의 상기 그리드의 그리드 셀(Grid Cell)의 바운더리(Boundary) 상에 위치하는 꼭지점인 것을 특징으로 한다.
일 실시예에서, 상기 (a) 단계에서, 상기 제1 뉴럴 네트워크는 적어도 하나의 RPN(Region Proposal Network), 적어도 하나의 컨벌루션 레이어 및 적어도 하나의 풀링 레이어를 포함하고, 상기 RPN이 적어도 하나의 ROI를 생성하면, 상기 제1 뉴럴 네트워크는, 이중 선형 보간법(Bilinear Interpolation)을 이용해 상기 ROI에 대응하는 적어도 하나의 영역을 상기 제t 이미지 상에서 선택한 후 이에 상기 컨벌루션 레이어에 의한 연산을 적어도 한 번 적용함으로써 상기 제t 마스크를 생성하는 것을 특징으로 한다.
본 발명의 다른 태양에 따르면, 적어도 하나의 뉴럴 네트워크(Neural Network)를 사용하여 테스트용 비디오(Video) 상에서 지터링(Jittering)을 제거하기 위해, 흔들리는 카메라로 인해 생성된 상기 테스트용 비디오에 상기 지터링을 제거하는 테스트 방법에 있어서, (a) 학습 장치가, (1) 학습용 비디오 상의 학습용 제t 프레임에 해당하는 학습용 제t 이미지가 획득되면, 제1 뉴럴 네트워크로 하여금, 상기 학습용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 학습용 제t 이미지 내의 각각의 학습용 객체에 대응하는 학습용 제t 마스크 각각을 생성하도록 하고, (2) 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 학습용 제t 마스크, (ii) 이에 대응하는, 상기 학습용 제t 이미지의 일부분인 각각의 학습용 제t 크롭된(Cropped) 이미지, (iii) 각각의 학습용 제t-1 마스크 및 (iv) 이에 대응하는, 학습용 제t-1 이미지의 일부분인 각각의 학습용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 학습용 제t 이미지에 포함된, 각각의 상기 학습용 객체에 대응하는 학습용 객체 픽셀 각각에 대한 학습용 제t 객체 모션 벡터(Object Motion Vector)를 생성하도록 하고, (3) 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 학습용 제t 객체 모션 벡터 각각을 참조로 하여 상기 학습용 제t 이미지 내의 픽셀 중 학습용 참조 픽셀(Reference Pixel) 각각에 대응하는 학습용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하고, (4) 학습 유닛으로 하여금 (i) 상기 학습용 제t 지터링 벡터를 생성하기 위한 프로세스를 통해 최적화된 학습용 제t 조정 객체 모션 벡터 및 (ii) 최적화되기 전의 상기 학습용 제t 객체 모션 벡터를 참조로 하여 적어도 하나의 로스를 산출하도록 하고, 상기 로스를 백프로파게이션함으로써 상기 제2 뉴럴 네트워크의 적어도 하나의 파라미터의 적어도 일부를 학습 완료된 상태에서, 상기 테스트용 비디오의 테스트용 제t 프레임에 해당하는 테스트용 제t 이미지가 획득되면, 테스트 장치가, 상기 제1 뉴럴 네트워크로 하여금, 상기 테스트용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적용하도록 하여 상기 테스트용 제t 이미지 내의 각각의 테스트용 객체에 대응하는 테스트용 제t 마스크 각각을 생성하도록 하는 단계; (b) 상기 테스트 장치가, 상기 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 테스트용 제t 마스크, (ii) 이에 대응하는, 상기 테스트용 제t 이미지의 일부분인 각각의 테스트용 제t 크롭된(Cropped) 이미지, (iii) 각각의 테스트용 제t-1 마스크 및 (iv) 이에 대응하는, 테스트용 제t-1 이미지의 일부분인 각각의 테스트용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적용하도록 하여 상기 테스트용 제t 이미지에 포함된, 각각의 상기 테스트용 객체에 대응하는 테스트용 객체 픽셀 각각에 대한 테스트용 제t 객체 모션 벡터(Object Motion Vector) 각각을 생성하도록 하는 단계; 및 (c) 상기 테스트 장치가, 상기 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 테스트용 제t 객체 모션 벡터 각각을 참조로 하여 상기 테스트용 제t 이미지 내의 픽셀 중 테스트용 참조 픽셀(Reference Pixel) 각각에 대응하는 테스트용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하는 단계;를 포함하는 것을 특징으로 한다.
일 실시예에서, (d) 상기 컴퓨팅 장치가, 상기 지터링 예측 유닛으로 하여금, 상기 테스트용 제t 지터링 벡터를 참조로 하여 상기 테스트용 제t 이미지의 지터링을 완화한 테스트용 제t 조정 이미지(Adjusted Image)를 생성하도록 하는 단계;를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 태양에 따르면, 적어도 하나의 뉴럴 네트워크(Neural Network)를 사용하여 비디오(Video) 상의 지터링(Jittering)을 제거하기 위해, 흔들리는 카메라로 인해 생성된 상기 비디오에서 지터링을 검출하는 컴퓨팅 장치에 있어서, 인스트럭션을 저장하는 적어도 하나의 메모리; 및 (I) 상기 비디오의 제t 프레임에 해당하는 제t 이미지가 획득되면, 제1 뉴럴 네트워크로 하여금, 상기 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 제t 이미지 내의 각각의 객체에 대응하는 제t 마스크 각각을 생성하도록 하는 프로세스, (II) 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 제t 마스크, (ii) 이에 대응하는, 상기 제t 이미지의 일부분인 각각의 제t 크롭된(Cropped) 이미지, (iii) 각각의 제t-1 마스크 및 (iv) 이에 대응하는, 제t-1 이미지의 일부분인 각각의 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 제t 이미지에 포함된, 각각의 상기 객체에 대응하는 객체 픽셀 각각에 대한 제t 객체 모션 벡터(Object Motion Vector) 각각을 생성하도록 하는 프로세스, 및 (III) 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 제t 객체 모션 벡터 각각을 참조로 하여 상기 제t 이미지 내의 픽셀 중 참조 픽셀(Reference Pixel) 각각에 대응하는 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하는 프로세스를 수행하기 위한 상기 인스트럭션을 실행하도록 구성된 적어도 하나의 프로세서;를 포함하는 것을 특징으로 한다.
일 실시예에서, 상기 프로세서가, (IV) 상기 지터링 예측 유닛으로 하여금, 상기 제t 지터링 벡터를 참조로 하여 상기 제t 이미지의 지터링을 완화한 제t 조정 이미지(Adjusted Image)를 생성하도록 하는 프로세스;를 더 포함하는 것을 특징으로 한다.
일 실시예에서, 상기 프로세서가, (V) 학습 유닛(Learning Unit)으로 하여금, (i) 상기 제t 지터링 벡터를 생성하기 위한 프로세스를 통해 최적화된 제t 조정 객체 모션 벡터 및 (ii) 최적화되기 전의 상기 제t 객체 모션 벡터를 참조로 하여 적어도 하나의 로스를 산출하도록 하고, 상기 로스를 백프로파게이션함으로써 상기 제2 뉴럴 네트워크의 적어도 하나의 파라미터의 적어도 일부를 학습하도록 하는 프로세스;를 더 포함하는 것을 특징으로 한다.
일 실시예에서, 상기 (III) 프로세스에서, 상기 프로세서가, 상기 지터링 예측 유닛으로 하여금, (i) 상기 카메라로 상기 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 상기 제t 이미지 내의 픽셀 각각에 대응하는 지점 각각의 움직인 정도를 나타내는 각각의 제t 옵티컬 플로우 벡터(Optical Flow Vector) 및 (ii) 상기 카메라로 상기 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 3차원 상에서의 상기 지점 각각의 움직인 정도를 나타내는 각각의 제t FPV 벡터를 더 참조하여 상기 제t 지터링 벡터를 생성하도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 (IV) 프로세스에서, 상기 프로세서는, 상기 지터링 예측 유닛으로 하여금,
Figure pat00032
상기 수식을 최소화시키는
Figure pat00033
,
Figure pat00034
,
Figure pat00035
를 산출하도록 함으로써 상기 제t 지터링 벡터를 생성하도록 하되,
Figure pat00036
는 상기 제t 지터링 벡터를 의미하고,
Figure pat00037
는 상기 제t FPV 벡터를 의미하며,
Figure pat00038
는 상기 제t 객체 모션 벡터를 의미하고,
Figure pat00039
는 제t-1 FPV 벡터를 의미하고,
Figure pat00040
는 제t-1 객체 모션 벡터를 의미하며,
Figure pat00041
Figure pat00042
Figure pat00043
Figure pat00044
에 대한 각각의 가중치를 의미하는 것을 특징으로 한다.
일 실시예에서, 상기 수식은,
Figure pat00045
상기 조건을 만족하는 항(Term)에 대해 유효하도록 하되,
Figure pat00046
는 상기 제t 옵티컬 플로우 벡터 중 일부인, 상기 참조 픽셀에 대한 제1의 t번째 옵티컬 플로우 벡터를 의미하고,
Figure pat00047
는 상기 참조 픽셀이 아닌 나머지 픽셀에 대한 제2의 t번째 옵티컬 플로우 벡터를 의미하며,
Figure pat00048
는 상기 제t 객체 모션 벡터 중 일부인, 상기 객체 픽셀이면서 상기 참조 픽셀인 특정 픽셀에 대한 제t 객체 모션 벡터를 의미하며, 시그마 기호 하단의
Figure pat00049
은 소정 픽셀을 포함하는 그리드 내의 상기 참조 픽셀 중 일부에 대한 정보를 사용하는 것임을 나타내며,
Figure pat00050
는 상기 그리드 내의 상기 소정 픽셀의 적어도 하나의 위치에 따른 각각의 가중치를 나타내는 것을 특징으로 한다.
일 실시예에서, 상기 프로세서가, 상기 지터링 예측 유닛으로 하여금,
Figure pat00051
상기 수식을 최소화시키는
Figure pat00052
,
Figure pat00053
,
Figure pat00054
를 산출하도록 하되,
Figure pat00055
는 상기 제t 지터링 벡터를 의미하고,
Figure pat00056
는 상기 제t FPV 벡터를 의미하며,
Figure pat00057
는 상기 제t 객체 모션 벡터를 의미하고,
Figure pat00058
는 제t-k 이미지에 대한 제t-k FPV 벡터를 의미하고,
Figure pat00059
는 상기 제t-k 이미지에 대한 제t-k 객체 모션 벡터를 의미하며,
Figure pat00060
Figure pat00061
Figure pat00062
에 대한 각각의 가중치를 의미하고, K는 소정 상수인 것을 특징으로 한다.
일 실시예에서, 상기 (II) 프로세스에서, 상기 제2 뉴럴 네트워크는, 제2_1 뉴럴 네트워크 및 제2_2 뉴럴 네트워크를 포함하되, 상기 제2_1 뉴럴 네트워크는, 각각의 상기 제t 마스크, 각각의 상기 제t 크롭된 이미지, 각각의 상기 제t-1 마스크 및 각각의 상기 제t-1 크롭된 이미지에 대해 분석하는, 상기 제2 뉴럴 네트워크 연산에 포함된 제2_1 뉴럴 네트워크 연산을 적어도 한 번 수행함으로써 적어도 하나의 중간 특징 맵(Intermediate Feature Map)을 생성하고, 상기 제2_2 뉴럴 네트워크는, 상기 제t 이미지가 획득되기 이전에 입력된 값에 대한 분석 내용을 참조로 하여 상기 중간 특징 맵에 대하여 상기 제2 뉴럴 네트워크 연산에 포함된 제2_2 뉴럴 네트워크 연산을 적어도 한 번 적용함으로써 상기 제t 객체 모션 벡터를 생성하는 것을 특징으로 한다.
일 실시예에서, 상기 제2_2 뉴럴 네트워크는, (i) 제1 이미지 내지 상기 제t-1 이미지 중 적어도 일부에 대한 값들에 대한 분석을 반영하여, 상기 제2_1 뉴럴 네트워크가 생성된, 상기 제2_2 뉴럴 네트워크의 스테이트 벡터(State Vector)를 사용하여, 상기 제t 객체 모션 벡터를 생성하도록 하고, (ii) 상기 스테이트 벡터를 업데이트하도록 하는 것을 특징으로 한다.
일 실시예에서, 상기 참조 픽셀은, 상기 제t 이미지 상의 상기 그리드의 그리드 셀(Grid Cell)의 바운더리(Boundary) 상에 위치하는 꼭지점인 것을 특징으로 한다.
일 실시예에서, 상기 (I) 프로세스에서, 상기 제1 뉴럴 네트워크는 적어도 하나의 RPN(Region Proposal Network), 적어도 하나의 컨벌루션 레이어 및 적어도 하나의 풀링 레이어를 포함하고, 상기 RPN이 적어도 하나의 ROI를 생성하면, 상기 제1 뉴럴 네트워크는, 이중 선형 보간법(Bilinear Interpolation)을 이용해 상기 ROI에 대응하는 적어도 하나의 영역을 상기 제t 이미지 상에서 선택한 후 이에 상기 컨벌루션 레이어에 의한 연산을 적어도 한 번 적용함으로써 상기 제t 마스크를 생성하는 것을 특징으로 한다.
본 발명의 또 다른 태양에 따르면, 적어도 하나의 뉴럴 네트워크(Neural Network)를 사용하여 테스트용 비디오(Video) 상에서 지터링(Jittering)을 제거하기 위해, 흔들리는 카메라로 인해 생성된 상기 테스트용 비디오에 상기 지터링을 제거하는 테스트 장치에 있어서, 인스트럭션을 저장하는 적어도 하나의 메모리; 및 학습 장치가, (1) 학습용 비디오 상의 학습용 제t 프레임에 해당하는 학습용 제t 이미지가 획득되면, 제1 뉴럴 네트워크로 하여금, 상기 학습용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 학습용 제t 이미지 내의 각각의 학습용 객체에 대응하는 학습용 제t 마스크 각각을 생성하도록 하고, (2) 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 학습용 제t 마스크, (ii) 이에 대응하는, 상기 학습용 제t 이미지의 일부분인 각각의 학습용 제t 크롭된(Cropped) 이미지, (iii) 각각의 학습용 제t-1 마스크 및 (iv) 이에 대응하는, 학습용 제t-1 이미지의 일부분인 각각의 학습용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 학습용 제t 이미지에 포함된, 각각의 상기 학습용 객체에 대응하는 학습용 객체 픽셀 각각에 대한 학습용 제t 객체 모션 벡터(Object Motion Vector)를 생성하도록 하고, (3) 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 학습용 제t 객체 모션 벡터 각각을 참조로 하여 상기 학습용 제t 이미지 내의 픽셀 중 학습용 참조 픽셀(Reference Pixel) 각각에 대응하는 학습용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하고, (4) 학습 유닛으로 하여금 (i) 상기 학습용 제t 지터링 벡터를 생성하기 위한 프로세스를 통해 최적화된 학습용 제t 조정 객체 모션 벡터 및 (ii) 최적화되기 전의 상기 학습용 제t 객체 모션 벡터를 참조로 하여 적어도 하나의 로스를 산출하도록 하고, 상기 로스를 백프로파게이션함으로써 상기 제2 뉴럴 네트워크의 적어도 하나의 파라미터의 적어도 일부를 학습 완료된 상태에서, (I) 상기 테스트용 비디오의 테스트용 제t 프레임에 해당하는 테스트용 제t 이미지가 획득되면, 테스트 장치가, 상기 제1 뉴럴 네트워크로 하여금, 상기 테스트용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적용하도록 하여 상기 테스트용 제t 이미지 내의 각각의 테스트용 객체에 대응하는 테스트용 제t 마스크 각각을 생성하도록 하는 프로세스, (II) 상기 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 테스트용 제t 마스크, (ii) 이에 대응하는, 상기 테스트용 제t 이미지의 일부분인 각각의 테스트용 제t 크롭된(Cropped) 이미지, (iii) 각각의 테스트용 제t-1 마스크 및 (iv) 이에 대응하는, 테스트용 제t-1 이미지의 일부분인 각각의 테스트용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적용하도록 하여 상기 테스트용 제t 이미지에 포함된, 각각의 상기 테스트용 객체에 대응하는 테스트용 객체 픽셀 각각에 대한 테스트용 제t 객체 모션 벡터(Object Motion Vector) 각각을 생성하도록 하는 프로세스, 및 (III) 상기 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 테스트용 제t 객체 모션 벡터 각각을 참조로 하여 상기 테스트용 제t 이미지 내의 픽셀 중 테스트용 참조 픽셀(Reference Pixel) 각각에 대응하는 테스트용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하는 프로세스를 수행하기 위한 상기 인스트럭션을 실행하도록 구성된 적어도 하나의 프로세서;를 포함하는 것을 특징으로 한다.
일 실시예에서, 상기 프로세서가, (IV) 상기 지터링 예측 유닛으로 하여금, 상기 테스트용 제t 지터링 벡터를 참조로 하여 상기 테스트용 제t 이미지의 지터링을 완화한 테스트용 제t 조정 이미지(Adjusted Image)를 생성하도록 하는 프로세스;를 포함하는 것을 특징으로 한다.
이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명은 복수의 뉴럴 네트워크(Neural Network)를 사용하여 흔들린 카메라로부터 획득된, 지터링(Jittering)이 발생한 이미지를 보정하는 방법을 제공함으로써, 카메라가 흔들리더라도 적절한 이미지를 획득할 수 있도록 하는 효과가 있다.
본 발명은 극한 상황에서 폴트 톨러런스(Fault Tolerance) 및 플럭츄에이션 로버스트(Fluctuation Robustness)한 복수의 뉴럴 네트워크를 제공하는 다른 효과가 있다.
본 발명의 실시예의 설명에 이용되기 위하여 첨부된 아래 도면들은 본 발명의 실시예들 중 단지 일부일 뿐이며, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자(이하 "통상의 기술자")에게 있어서는 발명적 작업이 이루어짐 없이 이 도면들에 기초하여 다른 도면들이 얻어질 수 있다.
도 1은 본 발명의 일 실시예에 따른 복수의 뉴럴 네트워크(Neural Network)를 사용하여 비디오 상에서 지터링(Jittering)을 제거하는 방법을 수행하는 컴퓨팅 장치의 구성을 간략하게 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 복수의 뉴럴 네트워크를 사용하여 비디오 상에서 지터링을 제거하는 방법을 학습하는 프로세스를 간략하게 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 복수의 뉴럴 네트워크를 사용하여 비디오 상에서 지터링을 제거하는 방법을 수행하기 위한 제2 뉴럴 네트워크의 예시적인 구조를 간략하게 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 복수의 뉴럴 네트워크를 사용하여 비디오 상에서 지터링을 제거하는 방법을 수행하기 위해 제t 이미지 상의, 참조 픽셀(Reference Pixel)이 아닌 특정 픽셀의 옵티컬 플로우 벡터(Optical Flow Vector)를 모델링한 예시를 간략하게 나타낸 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
본 발명에서 언급하는 각종 이미지는 포장 또는 비포장 도로 관련 이미지를 포함할 수 있으며, 이 경우 도로 환경에서 등장할 수 있는 물체(가령, 자동차, 사람, 동물, 식물, 물건, 건물, 비행기나 드론과 같은 비행체, 기타 장애물)를 상정할 수 있을 것이나, 반드시 이에 한정되는 것은 아니며, 본 발명에서 언급하는 각종 이미지는 도로와 상관 없는 이미지(가령, 비포장도로, 골목길, 공터, 바다, 호수, 강, 산, 숲, 사막, 하늘, 실내와 관련된 이미지)일 수도 있으며, 이 경우, 비포장도로, 골목길, 공터, 바다, 호수, 강, 산, 숲, 사막, 하늘, 실내 환경에서 등장할 수 있는 물체(가령, 자동차, 사람, 동물, 식물, 물건, 건물, 비행기나 드론과 같은 비행체, 기타 장애물)를 상정할 수 있을 것이나, 반드시 이에 한정되는 것은 아니다.
또한, 본 발명의 상세한 설명 및 청구항들에 걸쳐, "포함하다"라는 단어 및 그것의 변형은 다른 기술적 특징들, 부가물들, 구성요소들 또는 단계들을 제외하는 것으로 의도된 것이 아니다. 통상의 기술자에게 본 발명의 다른 목적들, 장점들 및 특성들이 일부는 본 설명서로부터, 그리고 일부는 본 발명의 실시로부터 드러날 것이다. 아래의 예시 및 도면은 실례로서 제공되며, 본 발명을 한정하는 것으로 의도된 것이 아니다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 복수의 뉴럴 네트워크(Neural Network)를 사용하여 비디오 상에서 지터링(Jittering)을 제거하는 방법을 수행하는 컴퓨팅 장치의 구성을 나타낸 간략하게 도면이다.
도 1을 참조하면, 컴퓨팅 장치(100)는 추후 자세히 설명할 구성요소인 제1 뉴럴 네트워크(130), 제2 뉴럴 네트워크(140), 지터링 예측 유닛(Jittering Estimation Unit)(150) 및 학습 유닛(160)을 포함할 수 있다. 제1 뉴럴 네트워크(130), 제2 뉴럴 네트워크(140), 지터링 예측 유닛(150) 및 학습 유닛(160)의 입출력 및 연산 과정은 각각 통신부(110) 및 프로세서(120)에 의해 이루어질 수 있다. 다만, 도 1에서는 통신부(110) 및 프로세서(120) 사이의 구체적인 연결 관계를 생략하였다. 이 때, 메모리(115)는 후술할 여러 가지 인스트럭션을 저장한 상태일 수 있고, 프로세서(120)는 메모리(115)에 저장된 인스트럭션을 수행하도록 설정되되, 프로세서(120)는 추후 설명할 프로세스를 수행함으로써 본 발명을 수행할 수 있다. 이와 같이 컴퓨팅 장치(100)가 묘사되었다고 하여, 컴퓨팅 장치(100)가 본 발명을 실시하기 위한 프로세서, 메모리, 매체 또는 다른 컴퓨팅 장치의 모든 조합을 포함하는 통합 프로세서(Integrated Processor)를 포함하는 경우를 배제하는 것은 아니다.
이상 컴퓨팅 장치(100)의 전체적인 구성에 대해 설명한 바, 컴퓨팅 장치(100)가 수행하는, 복수의 뉴럴 네트워크를 사용하여 비디오 상에서 지터링을 제거하는 방법에 대해 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 복수의 뉴럴 네트워크를 사용하여 비디오 상에서 지터링을 제거하는 방법을 학습하는 과정에 대한 도면이다.
도 2를 참조로 하면, 제1 뉴럴 네트워크(130), 제2 뉴럴 네트워크(140) 및 지터링 예측 유닛(150)에 의해 순차적으로 연산이 수행될 수 있다. 학습 유닛(160)이 연산 결과를 이용해 적어도 하나의 로스를 생성한 후 이 로스를 백프로파게이션함으로써 제2 뉴럴 네트워크(140)의 적어도 하나의 파라미터의 적어도 일부를 학습할 수 있다.
구체적으로, 먼저, 컴퓨팅 장치(100)는, 제t 이미지를 획득하거나 타 장치로 하여금 획득하도록 지원할 수 있다. 제t 이미지는, 카메라가 흔들려, 그로부터 획득된 영상, 즉, 비디오에 지터링이 발생했을 때, 해당 비디오의 t번째 프레임일 수 있다. 한편, 본 발명의 일 실시예에 따른 방법은, 카메라가 흔들려 지터링이 발생한 경우에 적용되는 것이고, 흔들린 카메라의 효과는 비디오의 첫 프레임 이후부터 발생하게 되므로, 이하 상세한 설명에서 t는 2 이상인 것으로 가정한 것임을 밝혀 둔다. 획득된 상기 제t 이미지는 먼저 제1 뉴럴 네트워크(130)에 입력된다. 컴퓨팅 장치(100)는, 제1 뉴럴 네트워크(130)로 하여금, 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하여, 제t 이미지 내의 각각의 객체에 대응하는 각각의 제t 마스크를 생성하도록 할 수 있다.
제t 마스크는, 제1 뉴럴 네트워크(130)를 통해 제t 이미지에 대해 객체 검출 및 이미지 세그멘테이션이 적용된 결과일 수 있다. 구체적으로, 제1 뉴럴 네트워크(130)는 적어도 하나의 RPN(Region Proposal Network), 적어도 하나의 컨벌루션 레이어 및 적어도 하나의 풀링 레이어를 포함할 수 있다. 이 때, RPN이 적어도 하나의 ROI를 생성하면, 제1 뉴럴 네트워크는, 이중 선형 보간법(Bilinear Interpolation)을 통해, ROI에 대응하는 적어도 하나의 영역을 제t 이미지 상에서 선택한 후, 상기 적어도 하나의 영역에 대하여 컨벌루션 레이어 연산을 적어도 한 번 적용함으로써 제t 마스크를 생성할 수 있다. 따라서, 각각의 제t 마스크는, 제t 이미지 상의 각각의 객체를 포함하는 바운딩 박스(Bounding Box) 각각일 수 있으며, 각각의 제t 마스크는, 객체에 해당하는 픽셀은 1로, 객체에 해당하지 않는 픽셀은 0으로 표시된 구조를 가질 수 있다.
이 때, 예시적으로, 제1 뉴럴 네트워크(130)는, 널리 알려진 마스크 R-CNN(Mask R-CNN)과 유사한 구조를 가질 수 있다. 또한, 제1 뉴럴 네트워크(130)는, 본 발명의 일 실시예에 따른 방법을 학습하는 과정이 수행되기 전에, 상기와 같은, 제t 마스크를 생성하는 방법을 학습하였을 수 있다.
이후, 컴퓨팅 장치(100)는, 제2 뉴럴 네트워크(140)로 하여금, (i) 각각의 제t 마스크, (ii) 이에 대응하는, 제t 이미지의 일부분인 각각의 제t 크롭된(Cropped) 이미지, (iii) 각각의 제t-1 마스크 및 (iv) 이에 대응하는, 제t-1 이미지의 일부분인 각각의 제t-1 크롭된 이미지를 획득하도록 하되, (iii) 및 (iv)은 제t 프레임의 이전 프레임인 제t-1 프레임에 대응하는 제t-1 이미지일 수 있다. 제t 크롭된 이미지는 제t이미지의 일부에 대응하는 이미지일 수 있으며 상기 일부는 제t 마스크에 대응한다. 또한, 제t-1 마스크 및 제t-1 크롭된 이미지는, 제2 뉴럴 네트워크(140)가 제t-1 이미지에 대해 처리할 때 생성된 것일 수 있다.
각각의 제t 마스크, 각각의 제t 크롭된 이미지, 각각의 제t-1 마스크 및 각각의 제t-1 크롭된 이미지가 획득되면, 컴퓨팅 장치(100)는, 제2 뉴럴 네트워크(140)로 하여금, 각각의 제t 마스크, 각각의 제t 크롭된 이미지, 각각의 제t-1 마스크 및 각각의 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여, 제t 객체 모션 벡터를 생성하도록 할 수 있다.
각각의 제t 객체 모션 벡터는, 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 각각의 객체가 움직인 정도를 나타내는 벡터이다. 즉, 제t-1 특정 마스크 및 특정 제t 마스크에 대응하는 특정 객체가 존재한다면, 제2 뉴럴 네트워크(140)는, (i) 특정 객체에 대응하는 특정 객체 픽셀의 제t―1 특정 마스크 상의 위치와 특정 제t 마스크에서의 위치를 비교한 위치 비교 정보(Comparison Information)를 획득하고, (ii) 제t-1 특정 크롭된 이미지와 특정 제t 크롭된 이미지를 비교함으로써 배경의 변화에 대한 변화 정보(Change Information)를 획득한 후, (iii) 위치 비교 정보 및 변화 정보를 참조로 하여 특정 객체가 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 움직인 정도를 나타내는 특정 제t 객체 모션 벡터를 생성할 수 있는 것이다.
이 때, 제2 뉴럴 네트워크(140)는 단일한 CNN의 구조를 가질 수 있고, 이에 의해 수행되는 제2 뉴럴 네트워크 연산은 적어도 하나의 컨벌루션 연산 및 이에 부가되는 연산을 포함할 수 있다. 다만, 이는 더욱 효율적으로, 적은 자원을 사용함에도 불구하고 더 좋은 결과를 내기 위한 구조로서, 제2 뉴럴 네트워크(140)가 제2_1 뉴럴 네트워크 및 제2_2 뉴럴 네트워크를 포함할 수 있다. 이에 대해 설명하기 위해 도 3을 참조하도록 한다.
도 3은 본 발명의 일 실시예에 따른 복수의 뉴럴 네트워크를 사용하여 비디오에서 지터링을 제거하는 방법을 수행하기 위한 제2 뉴럴 네트워크의 예시적인 구조를 간략하게 나타낸 도면이다.
도 3을 참조로 하면, 제2_1 뉴럴 네트워크(141)와 제2_2 뉴럴 네트워크(142)가 순차적으로 연산을 수행함으로써 제t 지터링 벡터를 생성함을 알 수 있다.
구체적으로 설명하면, 제2_1 뉴럴 네트워크(141)은, CNN의 구조를 가질 수 있고, 이는, 각각의 제t 마스크, 각각의 제t 크롭된 이미지, 각각의 제t-1 마스크 및 각각의 제t-1 크롭된 이미지에 대하여, 컨벌루션 연산을 포함하는, 제2_1 뉴럴 네트워크 연산을 적어도 한 번 적용함으로써, 입력된 값에 대한 분석 정보를 포함하는 적어도 하나의 중간 특징 맵(Intermediate Feature Map)을 생성할 수 있다. 이후, RNN 구조를 가진 제2_2 뉴럴 네트워크(142)는, 중간 특징 맵을 획득할 수 있고, 이를 통해 입력된 값에 대한 분석 정보를 참조로 하여 중간 특징 맵에 대하여 제2_2 뉴럴 네트워크 연산을 적용함으로써 제t 객체 모션 벡터를 생성할 수 있다. 상기 분석 결과는, 제t 이미지가 획득되기 이전에 제2_2 뉴럴 네트워크에 입력되었던 값에 대한 분석 결과를 포함한다. 이 프로세스는, 제2_2 뉴럴 네트워크 연산이 수행되면 제2_2 뉴럴 네트워크(142)가 자신에게 입력된 값을 처리할 때마다 업데이트되는 스테이트 벡터(State Vector)를 참조함으로써 제2_2 뉴럴 네트워크(142)를 통해 이루어질 수 있다.
이후, 컴퓨팅 장치(100)는, 지터링 예측 유닛(150)으로 하여금, 제t 객체 모션 벡터를 참조로 하여 제t 지터링 벡터를 생성하도록 할 수 있다. 이 과정에서 제2 뉴럴 네트워크(140)의 적어도 일부 파라미터의 학습을 위한 로스가 산출될 수 있는데, 각각의 과정에 대해 아래에서 살펴본다.
구체적으로, 컴퓨팅 장치(100)가, 지터링 예측 유닛(150)으로 하여금, 제t 객체 모션 벡터를 참조로 하여, 제t 이미지에 포함된 픽셀 중 참조 픽셀(Reference Pixel)에 대응하는 제t 지터링 벡터를 생성하도록 할 수 있다. 참조 픽셀이란, 제t 이미지 상에 생성된 그리드의 적어도 하나의 그리드 셀(Grid Cell)의 바운더리(Boundary) 상에 위치하는 꼭지점이다. 실질적으로, 제t 이미지 내의 모든 픽셀에 대해 지터링의 정도를 계산한다면, 그 연산량이 너무 크게 되고, 이는 실시간성이 중요한 자율 주행에서 딜레이를 발생시킬 수 있는 바, 제t 이미지를 분할하는 그리드를 사용하고, 그리드 셀의 꼭지점이 되는 픽셀의 지터링을 계산함으로써 제t 이미지에 대한 제t 지터링 벡터를 생성할 수 있다. 즉, 제t 지터링 벡터란, 제t 이미지 내의 각각의 픽셀을 대표할 수 있는 참조 픽셀의 지터링을 추적한 결과로서 카메라의 지터링의 진폭과 방향을 나타내는 지표가 된다.
제t 지터링 벡터를 생성하기 위해, 컴퓨팅 장치(100)는, 지터링 예측 유닛(150)으로 하여금 추가적으로 제t 옵티컬 플로우 벡터 및 제t FPV 벡터를 참조로 하여 제t 객체 모션 벡터에 대한 최적화 과정을 거치도록 하는 바, 이에 대해 구체적으로 본다.
먼저, (i) 각각의 제t 옵티컬 플로우 벡터는, 제t 이미지 내의 각각의 픽셀에 대응하는 각각의 지점이, 제t-1 이미지를 촬영한 시점과 제t 이미지를 촬영한 시점 사이에 움직인 정도를 나타내고, (ii) 각각의 제t FPV 벡터는, 카메라가 제t-1 이미지를 촬영한 시점과 제t 이미지를 촬영한 시점 사이에, 각각의 지점이 3차원 상에서 움직인 정도를 나타낼 수 있다. 이 때, 제t 옵티컬 플로우 벡터는, 언급하였던 다른 벡터과 달리, 추정된 것이 아니라, 루카스 카나데 방법(Lucas-Kanade Method)을 통해 제t-1 이미지 및 제t 이미지를 비교하여 적용함으로써 정확히 계산되는 것이다. 즉, 이는 하기 설명할 최적화 과정에 의해 변하는 것이 아닌 상수다. 또한, 제t 지터링 벡터, 제t FPV 벡터는 참조 픽셀에 대해서만 산출되고, 제t 객체 모션 벡터는 제t 이미지 상에서 객체에 대응하는 것으로 판별된 객체 픽셀이 아닌 픽셀에 대해서는 0으로 설정될 수 있다.
최적화 과정을 위해, 제t 옵티컬 플로우 벡터, 제t FPV 벡터, 제t 객체 모션 벡터, 제t 지터링 벡터 사이에 아래의 두 개의 수식과 같은 관계가 있다고 가정한다.
Figure pat00063
상기 수식은, 기본적으로, 측정된 제t 옵티컬 플로우 벡터가, 제t FPV 벡터, 제t 객체 모션 벡터, 제t 지터링 벡터의 합으로 이루어진다는 가정을 나타낸다. 구체적으로 보면, 첫 번째 왼쪽 수식의 항(Term) 중,
Figure pat00064
는, 참조 픽셀에 대한 제1의 t번째 옵티컬 플로우 벡터를 의미하고,
Figure pat00065
는 객체 픽셀 및 참조 픽셀인 특정 픽셀의 제t 객체 모션 벡터를 의미하며,
Figure pat00066
는 제t FPV 벡터를 의미하고,
Figure pat00067
는 제t 지터링 벡터를 의미한다.
참조 픽셀의 제1의 t번째 옵티컬 플로우 벡터는 첫 번째 수식과 같이 나머지 벡터의 합(Sum)으로 모델링되는데, 이와 달리, 참조 픽셀이 아닌 픽셀의 제2의 t번째 옵티컬 플로우 벡터는, 주변 참조 픽셀에 대한 제t FPV 벡터 및 제t 지터링 벡터의 가중합(Weighted Sum)으로 모델링된다.
Figure pat00068
는 참조 픽셀이 아닌 나머지 픽셀에 대한 제t 옵티컬 플로우 벡터를 의미하고,
Figure pat00069
는 참조 픽셀이 아닌 나머지 픽셀의 제t 객체 모션 벡터을 의미하며, 시그마 기호는, 그리드를 이루는, 참조 픽셀 중 일부 참조 픽셀에 대한 제t FPV 벡터 및 제t 지터링 벡터의 가중합을 의미한다. 이에 대해 예시를 들어 설명하기 위해 도 4를 참조하도록 한다.
도 4는 본 발명의 일 실시예에 따라 복수의 뉴럴 네트워크를 사용하여 비디오에서 지터링을 제거하는 방법을 수행하기 위해 제t 이미지 상의, 참조 픽셀이 아닌 특정 픽셀의 옵티컬 플로우 벡터를 모델링한 것을 나타낸 간략하게 도면이다.
상기 설명을 도 4를 예로 들어 부연 설명하면, 사람 객체의 팔 부분에 대응하는 특정 픽셀의 제t 옵티컬 플로우 벡터(151)가, 제t 객체 모션 벡터(152), 특정 픽셀 주변의 참조 픽셀에 대한 제t FPV 벡터 (153_1, 153_2, 153_3, 153_4) 및 특정 픽셀 주변의 참조 픽셀에 대한 제t 지터링 벡터(154_1, 154_2, 154_3, 154_4)로 이루어져 있는 것으로 모델링했다는 것이다. 이 때, 각각의 제t FPV 벡터(153_1, 153_2, 153_3, 153_4) 및 각각의 제t 지터링 벡터(154_1, 154_2, 154_3, 154_4)를 얼마나 반영할지는, 상기 수식의 시그마 기호 안에 있는 가중치인
Figure pat00070
에 의해 결정될 수 있다. 예시적으로, 상기 가중치는, 특정 픽셀과 각각의 참조 픽셀 간의 거리에 따라 결정될 수 있다.
상기와 같은 가정 하에서, 제t 옵티컬 플로우 벡터를 제외한 나머지 벡터는, 하기와 같은 수식에 따라 최적화될 수 있다.
Figure pat00071
즉, 전술하였던 가정 하에서, 상기 수식을 최소화하는
Figure pat00072
,
Figure pat00073
,
Figure pat00074
를 찾음으로써 제t 객체 모션 벡터를 최적화하고, 제t FPV 벡터, 제t 지터링 벡터를 생성하는 것이다. 제t 객체 모션 벡터의 경우, 제2 뉴럴 네트워크(140)에 의해 생성되었던 제t 객체 모션 벡터를 기준으로 하여, 상기 식을 이용해 조정되는 방식으로 최적화될 수 있다.
상기 수식에서,
Figure pat00075
는 제t-1 FPV 벡터를 의미하고,
Figure pat00076
는 제t-1 객체 모션 벡터를 의미하며,
Figure pat00077
Figure pat00078
Figure pat00079
Figure pat00080
에 대한 각각의 가중치를 의미한다. 이때,
Figure pat00081
는, 자명한 해(Trivial Solution)을 방지하고, 지터링이 아닌 움직임의 벡터에 대한 정보의 양을 최대화할 수 있다. 나머지 항은, 제t FPV 벡터 및 제t 객체 모션 벡터가, 각각 제t-1 FPV 벡터 및 제t-1 객체 모션 벡터에 비해 비현실적으로 크게 나오지 않도록 하는 역할을 한다. 이는, 지터링이 아닌 모션(Motion)은 한 프레임 단위의 짧은 시간 동안 크게 변화하지 않는 특성이 있기 때문이다.
다른 예로서, 다른 수식에 따라 최적화 과정을 거치는 실시예에 대해 설명하도록 한다.
Figure pat00082
본디의 수식과 상기 수식이 다른 것은, 본디 수식은 제t 프레임 바로 전의 프레임에 대응하는 제t-1 이미지를 참조로 하여 생성된 정보를 이용했다면, 새로운 실시예의 상기 다른 수식은, 제t 프레임 직전 이전의 K개의 프레임에 대응하는 이미지를 참조로 하여 생성된 정보를 이용한다는 것이다.
Figure pat00083
는 제 t-k 이미지에 대한 제t-k FPV 벡터를 의미하고,
Figure pat00084
는 제 t-k 이미지에 대한 제t-k 객체 모션 벡터를 의미하는 바, 상기 새로운 수식이 직전 설명한 바와 같은 역할을 할 수 있는 것이다.
Figure pat00085
Figure pat00086
Figure pat00087
에 대한 가중치를 의미할 수 있는데, 예시적으로
Figure pat00088
와 같은 수식으로 표현될 수 있다. 이와 같은 프로세스를 사용하면, 연산량이 늘어나는 대신 더욱 정확하게 제t 객체 모션 벡터를 최적화하고, 제t FPV 벡터 및 제t 지터링 벡터를 생성할 수 있게 된다.
이와 같이 제t 이미지의 지터링을 완화한 제t 조정 이미지를 생성하기 위해 제t 지터링 벡터를 참조할 수 있다. 예시적으로, 각각의 참조 픽셀의 각각의 위치를 각각에 대응하는 제t 지터링 벡터와 진폭은 같고 방향은 반대로 움직인 후, 이에 맞추어 그리드 내부에 포함된 각각의 이미지를 조정함으로써 지터링을 완화하고 제t 조정 이미지를 생성할 수 있다.
이상 최적화 과정에 대해 설명한 바, 최적화 과정 중에 산출될 수 있는 로스를 이용하여 제2 뉴럴 네트워크(140)를 학습하는 과정에 대해 살피도록 한다.
최적화 과정에서, 전술했던 바와 같이, 제t 객체 모션 벡터는 제t FPV 벡터, 제t 지터링 벡터가 생성됨과 동시에 최적화된다. 이 때, 학습 유닛(160)은, (i) 지터링 예측 유닛(150)으로부터 최적화된 제t 객체 모션 벡터를 획득하고, (ii) 제2 뉴럴 네트워크(140)으로부터, 최적화되기 이전의 제t 객체 모션 벡터를 획득한 후, (iii) 서로 대응되는, 최적화되기 전과 최적화된 후 각각의 제t 객체 모션 벡터의 차이 정보(Difference Information)를 생성하고, (iv) 상기 차이 정보를 참조로 하여 로스를 생성할 수 있다. 이후, 이 로스를 백프로파게이션함으로써 제2 뉴럴 네트워크(140)을 학습할 수 있다. 제1 뉴럴 네트워크(130)은 전술한 바와 같이 기학습된 상태일 수 있고, 지터링 예측 유닛(150)은, 기설정된 수식을 사용하는 것이므로 학습될 것이 없다.
상기 본 발명의 일 실시예에 따른 학습 방법을 살핀 바, 본 발명을 테스트하는 방법에 대해 설명하도록 한다.
참고로 이하의 설명에서 혼동을 피하기 위해 "학습용"이란 문구는 앞서 설명한 학습 프로세스와 관련된 용어에 대해 추가되고, "테스트용"이란 문구는 테스트 프로세스와 관련된 용어에 대해 추가된다.
학습 장치가, (1) 학습용 비디오 상의 학습용 제t 프레임에 해당하는 학습용 제t 이미지가 획득되면, 제1 뉴럴 네트워크(130)로 하여금, 학습용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 학습용 제t 이미지 내의 각각의 학습용 객체에 대응하는 학습용 제t 마스크 각각을 생성하도록 하고, (2) 제2 뉴럴 네트워크(140)로 하여금, (i) 각각의 학습용 제t 마스크, (ii) 이에 대응하는, 학습용 제t 이미지의 일부분인 각각의 학습용 제t 크롭된(Cropped) 이미지, (iii) 각각의 학습용 제t-1 마스크 및 (iv) 이에 대응하는, 학습용 제t-1 이미지의 일부분인 각각의 학습용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 학습용 제t 이미지에 포함된, 각각의 학습용 객체에 대응하는 학습용 객체 픽셀 각각에 대한 학습용 제t 객체 모션 벡터(Object Motion Vector)를 생성하도록 하고, (3) 지터링 예측 유닛(150)으로 하여금, 학습용 제t 객체 모션 벡터 각각을 참조로 하여 학습용 제t 이미지 내의 픽셀 중 학습용 참조 픽셀(Reference Pixel) 각각에 대응하는 학습용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하고, (4) 학습 유닛(160)으로 하여금 (i) 학습용 제t 지터링 벡터를 생성하기 위한 프로세스를 통해 최적화된 학습용 제t 조정 객체 모션 벡터 및 (ii) 최적화되기 전의 학습용 제t 객체 모션 벡터를 참조로 하여 적어도 하나의 로스를 산출하도록 하고, 로스를 백프로파게이션함으로써 제2 뉴럴 네트워크(140)의 적어도 하나의 파라미터의 적어도 일부를 학습하는 프로세스를 완료된 상태에서, 테스트용 비디오의 테스트용 제t 프레임에 해당하는 테스트용 제t 이미지가 획득되면, 테스트 장치가, 제1 뉴럴 네트워크로 하여금, 테스트용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적용하도록 하여 테스트용 제t 이미지 내의 각각의 테스트용 객체에 대응하는 테스트용 제t 마스크 각각을 생성하도록 할 수 있다.
그 후, 테스트 장치가, 제2 뉴럴 네트워크로 하여금, (i) 각각의 테스트용 제t 마스크, (ii) 이에 대응하는, 테스트용 제t 이미지의 일부분인 각각의 테스트용 제t 크롭된(Cropped) 이미지, (iii) 각각의 테스트용 제t-1 마스크 및 (iv) 이에 대응하는, 테스트용 제t-1 이미지의 일부분인 각각의 테스트용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적용하도록 하여 테스트용 제t 이미지에 포함된, 각각의 테스트용 객체에 대응하는 테스트용 객체 픽셀 각각에 대한 테스트용 제t 객체 모션 벡터(Object Motion Vector) 각각을 생성하도록 할 수 있다.
그리고 테스트 장치가, 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 테스트용 제t 객체 모션 벡터 각각을 참조로 하여 테스트용 제t 이미지 내의 픽셀 중 테스트용 참조 픽셀(Reference Pixel) 각각에 대응하는 테스트용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 할 수 있다.
또한, 테스트 장치가 상기 지터링 예측 유닛으로 하여금, 테스트용 제t 지터링 벡터를 참조로 하여 테스트용 제t 이미지의 지터링을 완화한 테스트용 제t 조정 이미지(Adjusted Image)를 생성하도록 할 수 있다.
이와 같은 본 발명의 일 실시예에 따라 복수의 뉴럴 네트워크를 사용하여 흔들린 카메라로부터 획득된, 지터링이 발생한 이미지를 보정하는 방법을 수행함으로써, 카메라가 흔들리더라도 이를 보정하여 해당 카메라로부터 적절한 이미지를 획득할 수 있다.
또한, 본 발명의 일 실시예에 따른 방법은 영상 안정화, 초정밀 객체 추적, 행동 예측, 모션(Motion) 분해에 사용될 수 있다.
본 발명 기술분야의 통상의 기술자에게 이해될 수 있는 바로서, 위에서 설명된 이미지, 예컨대 원본 이미지, 원본 레이블 및 추가 레이블과 같은 이미지 데이터의 송수신이 학습 장치 및 테스트 장치의 통신부들에 의하여 이루어질 수 있으며, 특징 맵과 연산을 수행하기 위한 데이터가 학습 장치 및 테스트 장치의 프로세서(및/또는 메모리)에 의하여 보유/유지될 수 있고, 컨벌루션 연산, 디컨벌루션 연산, 로스 값 연산 과정이 주로 학습 장치 및 테스트 장치의 프로세서에 의하여 수행될 수 있으나, 본 발명이 이에 한정되지는 않을 것이다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (26)

  1. 적어도 하나의 뉴럴 네트워크(Neural Network)를 사용하여 비디오(Video) 상의 지터링(Jittering)을 제거하기 위해, 흔들리는 카메라로 인해 생성된 상기 비디오에서 지터링을 검출하는 방법에 있어서,
    (a) 상기 비디오의 제t 프레임에 해당하는 제t 이미지가 획득되면, 컴퓨팅 장치가, 제1 뉴럴 네트워크로 하여금, 상기 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 제t 이미지 내의 각각의 객체에 대응하는 제t 마스크 각각을 생성하도록 하는 단계;
    (b) 상기 컴퓨팅 장치가, 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 제t 마스크, (ii) 이에 대응하는, 상기 제t 이미지의 일부분인 각각의 제t 크롭된(Cropped) 이미지, (iii) 각각의 제t-1 마스크 및 (iv) 이에 대응하는, 제t-1 이미지의 일부분인 각각의 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 제t 이미지에 포함된, 각각의 상기 객체에 대응하는 객체 픽셀 각각에 대한 제t 객체 모션 벡터(Object Motion Vector) 각각을 생성하도록 하는 단계; 및
    (c) 상기 컴퓨팅 장치가, 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 제t 객체 모션 벡터 각각을 참조로 하여 상기 제t 이미지 내의 픽셀 중 참조 픽셀(Reference Pixel) 각각에 대응하는 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    (d) 상기 컴퓨팅 장치가, 상기 지터링 예측 유닛으로 하여금, 상기 제t 지터링 벡터를 참조로 하여 상기 제t 이미지의 지터링을 완화한 제t 조정 이미지(Adjusted Image)를 생성하도록 하는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    (e) 상기 컴퓨팅 장치가, 학습 유닛(Learning Unit)으로 하여금, (i) 상기 제t 지터링 벡터를 생성하기 위한 프로세스를 통해 최적화된 제t 조정 객체 모션 벡터 및 (ii) 최적화되기 전의 상기 제t 객체 모션 벡터를 참조로 하여 적어도 하나의 로스를 산출하도록 하고, 상기 로스를 백프로파게이션함으로써 상기 제2 뉴럴 네트워크의 적어도 하나의 파라미터의 적어도 일부를 학습하도록 하는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 (c) 단계에서,
    상기 컴퓨팅 장치가, 상기 지터링 예측 유닛으로 하여금, (i) 상기 카메라로 상기 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 상기 제t 이미지 내의 픽셀 각각에 대응하는 지점 각각의 움직인 정도를 나타내는 각각의 제t 옵티컬 플로우 벡터(Optical Flow Vector) 및 (ii) 상기 카메라로 상기 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 3차원 상에서의 상기 지점 각각의 움직인 정도를 나타내는 각각의 제t FPV 벡터를 더 참조하여 상기 제t 지터링 벡터를 생성하도록 하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서,
    상기 (d) 단계에서,
    상기 컴퓨팅 장치가, 상기 지터링 예측 유닛으로 하여금,
    Figure pat00089

    상기 수식을 최소화시키는
    Figure pat00090
    ,
    Figure pat00091
    ,
    Figure pat00092
    를 산출하도록 함으로써 상기 제t 지터링 벡터를 생성하도록 하되,
    Figure pat00093
    는 상기 제t 지터링 벡터를 의미하고,
    Figure pat00094
    는 상기 제t FPV 벡터를 의미하며,
    Figure pat00095
    는 상기 제t 객체 모션 벡터를 의미하고,
    Figure pat00096
    는 제t-1 FPV 벡터를 의미하고,
    Figure pat00097
    는 제t-1 객체 모션 벡터를 의미하며,
    Figure pat00098
    Figure pat00099
    Figure pat00100
    Figure pat00101
    에 대한 각각의 가중치를 의미하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 수식은,
    Figure pat00102

    상기 조건을 만족하는 항(Term)에 대해 유효하도록 하되,
    Figure pat00103
    는 상기 제t 옵티컬 플로우 벡터 중 일부인, 상기 참조 픽셀에 대한 제1의 t번째 옵티컬 플로우 벡터를 의미하고,
    Figure pat00104
    는 상기 참조 픽셀이 아닌 나머지 픽셀에 대한 제2의 t번째 옵티컬 플로우 벡터를 의미하며,
    Figure pat00105
    는 상기 제t 객체 모션 벡터 중 일부인, 상기 객체 픽셀이면서 상기 참조 픽셀인 특정 픽셀에 대한 제t 객체 모션 벡터를 의미하며, 시그마 기호 하단의
    Figure pat00106
    은 소정 픽셀을 포함하는 그리드 내의 상기 참조 픽셀 중 일부에 대한 정보를 사용하는 것임을 나타내며,
    Figure pat00107
    는 상기 그리드 내의 상기 소정 픽셀의 적어도 하나의 위치에 따른 각각의 가중치를 나타내는 것을 특징으로 하는 방법.
  7. 제 4 항에 있어서,
    상기 컴퓨팅 장치가, 상기 지터링 예측 유닛으로 하여금,
    Figure pat00108

    상기 수식을 최소화시키는
    Figure pat00109
    ,
    Figure pat00110
    ,
    Figure pat00111
    를 산출하도록 하되,
    Figure pat00112
    는 상기 제t 지터링 벡터를 의미하고,
    Figure pat00113
    는 상기 제t FPV 벡터를 의미하며,
    Figure pat00114
    는 상기 제t 객체 모션 벡터를 의미하고,
    Figure pat00115
    는 제t-k 이미지에 대한 제t-k FPV 벡터를 의미하고,
    Figure pat00116
    는 상기 제t-k 이미지에 대한 제t-k 객체 모션 벡터를 의미하며,
    Figure pat00117
    Figure pat00118
    Figure pat00119
    에 대한 각각의 가중치를 의미하고, K는 소정 상수인 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 (b) 단계에서,
    상기 제2 뉴럴 네트워크는, 제2_1 뉴럴 네트워크 및 제2_2 뉴럴 네트워크를 포함하되,
    상기 제2_1 뉴럴 네트워크는, 각각의 상기 제t 마스크, 각각의 상기 제t 크롭된 이미지, 각각의 상기 제t-1 마스크 및 각각의 상기 제t-1 크롭된 이미지에 대해 분석하는, 상기 제2 뉴럴 네트워크 연산에 포함된 제2_1 뉴럴 네트워크 연산을 적어도 한 번 수행함으로써 적어도 하나의 중간 특징 맵(Intermediate Feature Map)을 생성하고,
    상기 제2_2 뉴럴 네트워크는, 상기 제t 이미지가 획득되기 이전에 입력된 값에 대한 분석 내용을 참조로 하여 상기 중간 특징 맵에 대하여 상기 제2 뉴럴 네트워크 연산에 포함된 제2_2 뉴럴 네트워크 연산을 적어도 한 번 적용함으로써 상기 제t 객체 모션 벡터를 생성하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    상기 제2_2 뉴럴 네트워크는,
    (i) 제1 이미지 내지 상기 제t-1 이미지 중 적어도 일부에 대한 값들에 대한 분석을 반영하여, 상기 제2_1 뉴럴 네트워크가 생성된, 상기 제2_2 뉴럴 네트워크의 스테이트 벡터(State Vector)를 사용하여, 상기 제t 객체 모션 벡터를 생성하도록 하고, (ii) 상기 스테이트 벡터를 업데이트하도록 하는 것을 특징으로 하는 방법.
  10. 제 1 항에 있어서,
    상기 참조 픽셀은, 상기 제t 이미지 상의 상기 그리드의 그리드 셀(Grid Cell)의 바운더리(Boundary) 상에 위치하는 꼭지점인 것을 특징으로 하는 방법.
  11. 제 1 항에 있어서,
    상기 (a) 단계에서,
    상기 제1 뉴럴 네트워크는 적어도 하나의 RPN(Region Proposal Network), 적어도 하나의 컨벌루션 레이어 및 적어도 하나의 풀링 레이어를 포함하고,
    상기 RPN이 적어도 하나의 ROI를 생성하면, 상기 제1 뉴럴 네트워크는, 이중 선형 보간법(Bilinear Interpolation)을 이용해 상기 ROI에 대응하는 적어도 하나의 영역을 상기 제t 이미지 상에서 선택한 후 이에 상기 컨벌루션 레이어에 의한 연산을 적어도 한 번 적용함으로써 상기 제t 마스크를 생성하는 것을 특징으로 하는 방법.
  12. 적어도 하나의 뉴럴 네트워크(Neural Network)를 사용하여 테스트용 비디오(Video) 상에서 지터링(Jittering)을 제거하기 위해, 흔들리는 카메라로 인해 생성된 상기 테스트용 비디오에 상기 지터링을 제거하는 테스트 방법에 있어서,
    (a) 학습 장치가, (1) 학습용 비디오 상의 학습용 제t 프레임에 해당하는 학습용 제t 이미지가 획득되면, 제1 뉴럴 네트워크로 하여금, 상기 학습용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 학습용 제t 이미지 내의 각각의 학습용 객체에 대응하는 학습용 제t 마스크 각각을 생성하도록 하고, (2) 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 학습용 제t 마스크, (ii) 이에 대응하는, 상기 학습용 제t 이미지의 일부분인 각각의 학습용 제t 크롭된(Cropped) 이미지, (iii) 각각의 학습용 제t-1 마스크 및 (iv) 이에 대응하는, 학습용 제t-1 이미지의 일부분인 각각의 학습용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 학습용 제t 이미지에 포함된, 각각의 상기 학습용 객체에 대응하는 학습용 객체 픽셀 각각에 대한 학습용 제t 객체 모션 벡터(Object Motion Vector)를 생성하도록 하고, (3) 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 학습용 제t 객체 모션 벡터 각각을 참조로 하여 상기 학습용 제t 이미지 내의 픽셀 중 학습용 참조 픽셀(Reference Pixel) 각각에 대응하는 학습용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하고, (4) 학습 유닛으로 하여금 (i) 상기 학습용 제t 지터링 벡터를 생성하기 위한 프로세스를 통해 최적화된 학습용 제t 조정 객체 모션 벡터 및 (ii) 최적화되기 전의 상기 학습용 제t 객체 모션 벡터를 참조로 하여 적어도 하나의 로스를 산출하도록 하고, 상기 로스를 백프로파게이션함으로써 상기 제2 뉴럴 네트워크의 적어도 하나의 파라미터의 적어도 일부를 학습 완료된 상태에서, 상기 테스트용 비디오의 테스트용 제t 프레임에 해당하는 테스트용 제t 이미지가 획득되면, 테스트 장치가, 상기 제1 뉴럴 네트워크로 하여금, 상기 테스트용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적용하도록 하여 상기 테스트용 제t 이미지 내의 각각의 테스트용 객체에 대응하는 테스트용 제t 마스크 각각을 생성하도록 하는 단계;
    (b) 상기 테스트 장치가, 상기 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 테스트용 제t 마스크, (ii) 이에 대응하는, 상기 테스트용 제t 이미지의 일부분인 각각의 테스트용 제t 크롭된(Cropped) 이미지, (iii) 각각의 테스트용 제t-1 마스크 및 (iv) 이에 대응하는, 테스트용 제t-1 이미지의 일부분인 각각의 테스트용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적용하도록 하여 상기 테스트용 제t 이미지에 포함된, 각각의 상기 테스트용 객체에 대응하는 테스트용 객체 픽셀 각각에 대한 테스트용 제t 객체 모션 벡터(Object Motion Vector) 각각을 생성하도록 하는 단계; 및
    (c) 상기 테스트 장치가, 상기 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 테스트용 제t 객체 모션 벡터 각각을 참조로 하여 상기 테스트용 제t 이미지 내의 픽셀 중 테스트용 참조 픽셀(Reference Pixel) 각각에 대응하는 테스트용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  13. 제12항에 있어서,
    (d) 상기 컴퓨팅 장치가,
    상기 지터링 예측 유닛으로 하여금, 상기 테스트용 제t 지터링 벡터를 참조로 하여 상기 테스트용 제t 이미지의 지터링을 완화한 테스트용 제t 조정 이미지(Adjusted Image)를 생성하도록 하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  14. 적어도 하나의 뉴럴 네트워크(Neural Network)를 사용하여 비디오(Video) 상의 지터링(Jittering)을 제거하기 위해, 흔들리는 카메라로 인해 생성된 상기 비디오에서 지터링을 검출하는 컴퓨팅 장치에 있어서,
    인스트럭션을 저장하는 적어도 하나의 메모리; 및
    (I) 상기 비디오의 제t 프레임에 해당하는 제t 이미지가 획득되면, 제1 뉴럴 네트워크로 하여금, 상기 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 제t 이미지 내의 각각의 객체에 대응하는 제t 마스크 각각을 생성하도록 하는 프로세스, (II) 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 제t 마스크, (ii) 이에 대응하는, 상기 제t 이미지의 일부분인 각각의 제t 크롭된(Cropped) 이미지, (iii) 각각의 제t-1 마스크 및 (iv) 이에 대응하는, 제t-1 이미지의 일부분인 각각의 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 제t 이미지에 포함된, 각각의 상기 객체에 대응하는 객체 픽셀 각각에 대한 제t 객체 모션 벡터(Object Motion Vector) 각각을 생성하도록 하는 프로세스, 및 (III) 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 제t 객체 모션 벡터 각각을 참조로 하여 상기 제t 이미지 내의 픽셀 중 참조 픽셀(Reference Pixel) 각각에 대응하는 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하는 프로세스를 수행하기 위한 상기 인스트럭션을 실행하도록 구성된 적어도 하나의 프로세서;
    를 포함하는 것을 특징으로 하는 장치.
  15. 제14항에 있어서,
    상기 프로세서가,
    (IV) 상기 지터링 예측 유닛으로 하여금, 상기 제t 지터링 벡터를 참조로 하여 상기 제t 이미지의 지터링을 완화한 제t 조정 이미지(Adjusted Image)를 생성하도록 하는 프로세스;
    를 더 포함하는 것을 특징으로 하는 장치.
  16. 제14항에 있어서,
    상기 프로세서가,
    (V) 학습 유닛(Learning Unit)으로 하여금, (i) 상기 제t 지터링 벡터를 생성하기 위한 프로세스를 통해 최적화된 제t 조정 객체 모션 벡터 및 (ii) 최적화되기 전의 상기 제t 객체 모션 벡터를 참조로 하여 적어도 하나의 로스를 산출하도록 하고, 상기 로스를 백프로파게이션함으로써 상기 제2 뉴럴 네트워크의 적어도 하나의 파라미터의 적어도 일부를 학습하도록 하는 프로세스;
    를 더 포함하는 것을 특징으로 하는 장치.
  17. 제14항에 있어서,
    상기 (III) 프로세스에서,
    상기 프로세서가,
    상기 지터링 예측 유닛으로 하여금, (i) 상기 카메라로 상기 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 상기 제t 이미지 내의 픽셀 각각에 대응하는 지점 각각의 움직인 정도를 나타내는 각각의 제t 옵티컬 플로우 벡터(Optical Flow Vector) 및 (ii) 상기 카메라로 상기 제t-1 이미지를 촬영한 시점과 상기 제t 이미지를 촬영한 시점 사이에 3차원 상에서의 상기 지점 각각의 움직인 정도를 나타내는 각각의 제t FPV 벡터를 더 참조하여 상기 제t 지터링 벡터를 생성하도록 하는 것을 특징으로 하는 장치.
  18. 제14항에 있어서,
    상기 (IV) 프로세스에서,
    상기 프로세서는, 상기 지터링 예측 유닛으로 하여금,
    Figure pat00120

    상기 수식을 최소화시키는
    Figure pat00121
    ,
    Figure pat00122
    ,
    Figure pat00123
    를 산출하도록 함으로써 상기 제t 지터링 벡터를 생성하도록 하되,
    Figure pat00124
    는 상기 제t 지터링 벡터를 의미하고,
    Figure pat00125
    는 상기 제t FPV 벡터를 의미하며,
    Figure pat00126
    는 상기 제t 객체 모션 벡터를 의미하고,
    Figure pat00127
    는 제t-1 FPV 벡터를 의미하고,
    Figure pat00128
    는 제t-1 객체 모션 벡터를 의미하며,
    Figure pat00129
    Figure pat00130
    Figure pat00131
    Figure pat00132
    에 대한 각각의 가중치를 의미하는 것을 특징으로 하는 장치.
  19. 제18항에 있어서,
    상기 수식은,
    Figure pat00133

    상기 조건을 만족하는 항(Term)에 대해 유효하도록 하되,
    Figure pat00134
    는 상기 제t 옵티컬 플로우 벡터 중 일부인, 상기 참조 픽셀에 대한 제1의 t번째 옵티컬 플로우 벡터를 의미하고,
    Figure pat00135
    는 상기 참조 픽셀이 아닌 나머지 픽셀에 대한 제2의 t번째 옵티컬 플로우 벡터를 의미하며,
    Figure pat00136
    는 상기 제t 객체 모션 벡터 중 일부인, 상기 객체 픽셀이면서 상기 참조 픽셀인 특정 픽셀에 대한 제t 객체 모션 벡터를 의미하며, 시그마 기호 하단의
    Figure pat00137
    은 소정 픽셀을 포함하는 그리드 내의 상기 참조 픽셀 중 일부에 대한 정보를 사용하는 것임을 나타내며,
    Figure pat00138
    는 상기 그리드 내의 상기 소정 픽셀의 적어도 하나의 위치에 따른 각각의 가중치를 나타내는 것을 특징으로 하는 장치.
  20. 제 17 항에 있어서,
    상기 프로세서가, 상기 지터링 예측 유닛으로 하여금,
    Figure pat00139

    상기 수식을 최소화시키는
    Figure pat00140
    ,
    Figure pat00141
    ,
    Figure pat00142
    를 산출하도록 하되,
    Figure pat00143
    는 상기 제t 지터링 벡터를 의미하고,
    Figure pat00144
    는 상기 제t FPV 벡터를 의미하며,
    Figure pat00145
    는 상기 제t 객체 모션 벡터를 의미하고,
    Figure pat00146
    는 제t-k 이미지에 대한 제t-k FPV 벡터를 의미하고,
    Figure pat00147
    는 상기 제t-k 이미지에 대한 제t-k 객체 모션 벡터를 의미하며,
    Figure pat00148
    Figure pat00149
    Figure pat00150
    에 대한 각각의 가중치를 의미하고, K는 소정 상수인 것을 특징으로 하는 장치.
  21. 제 14 항에 있어서,
    상기 (II) 프로세스에서,
    상기 제2 뉴럴 네트워크는, 제2_1 뉴럴 네트워크 및 제2_2 뉴럴 네트워크를 포함하되,
    상기 제2_1 뉴럴 네트워크는, 각각의 상기 제t 마스크, 각각의 상기 제t 크롭된 이미지, 각각의 상기 제t-1 마스크 및 각각의 상기 제t-1 크롭된 이미지에 대해 분석하는, 상기 제2 뉴럴 네트워크 연산에 포함된 제2_1 뉴럴 네트워크 연산을 적어도 한 번 수행함으로써 적어도 하나의 중간 특징 맵(Intermediate Feature Map)을 생성하고,
    상기 제2_2 뉴럴 네트워크는, 상기 제t 이미지가 획득되기 이전에 입력된 값에 대한 분석 내용을 참조로 하여 상기 중간 특징 맵에 대하여 상기 제2 뉴럴 네트워크 연산에 포함된 제2_2 뉴럴 네트워크 연산을 적어도 한 번 적용함으로써 상기 제t 객체 모션 벡터를 생성하는 것을 특징으로 하는 장치.
  22. 제 21 항에 있어서,
    상기 제2_2 뉴럴 네트워크는,
    (i) 제1 이미지 내지 상기 제t-1 이미지 중 적어도 일부에 대한 값들에 대한 분석을 반영하여, 상기 제2_1 뉴럴 네트워크가 생성된, 상기 제2_2 뉴럴 네트워크의 스테이트 벡터(State Vector)를 사용하여, 상기 제t 객체 모션 벡터를 생성하도록 하고, (ii) 상기 스테이트 벡터를 업데이트하도록 하는 것을 특징으로 하는 장치.
  23. 제 14 항에 있어서,
    상기 참조 픽셀은, 상기 제t 이미지 상의 상기 그리드의 그리드 셀(Grid Cell)의 바운더리(Boundary) 상에 위치하는 꼭지점인 것을 특징으로 하는 장치.
  24. 제 14 항에 있어서,
    상기 (I) 프로세스에서,
    상기 제1 뉴럴 네트워크는 적어도 하나의 RPN(Region Proposal Network), 적어도 하나의 컨벌루션 레이어 및 적어도 하나의 풀링 레이어를 포함하고,
    상기 RPN이 적어도 하나의 ROI를 생성하면, 상기 제1 뉴럴 네트워크는, 이중 선형 보간법(Bilinear Interpolation)을 이용해 상기 ROI에 대응하는 적어도 하나의 영역을 상기 제t 이미지 상에서 선택한 후 이에 상기 컨벌루션 레이어에 의한 연산을 적어도 한 번 적용함으로써 상기 제t 마스크를 생성하는 것을 특징으로 하는 장치.
  25. 적어도 하나의 뉴럴 네트워크(Neural Network)를 사용하여 테스트용 비디오(Video) 상에서 지터링(Jittering)을 제거하기 위해, 흔들리는 카메라로 인해 생성된 상기 테스트용 비디오에 상기 지터링을 제거하는 테스트 장치에 있어서,
    인스트럭션을 저장하는 적어도 하나의 메모리; 및
    학습 장치가, (1) 학습용 비디오 상의 학습용 제t 프레임에 해당하는 학습용 제t 이미지가 획득되면, 제1 뉴럴 네트워크로 하여금, 상기 학습용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 학습용 제t 이미지 내의 각각의 학습용 객체에 대응하는 학습용 제t 마스크 각각을 생성하도록 하고, (2) 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 학습용 제t 마스크, (ii) 이에 대응하는, 상기 학습용 제t 이미지의 일부분인 각각의 학습용 제t 크롭된(Cropped) 이미지, (iii) 각각의 학습용 제t-1 마스크 및 (iv) 이에 대응하는, 학습용 제t-1 이미지의 일부분인 각각의 학습용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적어도 한 번 적용하도록 하여 상기 학습용 제t 이미지에 포함된, 각각의 상기 학습용 객체에 대응하는 학습용 객체 픽셀 각각에 대한 학습용 제t 객체 모션 벡터(Object Motion Vector)를 생성하도록 하고, (3) 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 학습용 제t 객체 모션 벡터 각각을 참조로 하여 상기 학습용 제t 이미지 내의 픽셀 중 학습용 참조 픽셀(Reference Pixel) 각각에 대응하는 학습용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하고, (4) 학습 유닛으로 하여금 (i) 상기 학습용 제t 지터링 벡터를 생성하기 위한 프로세스를 통해 최적화된 학습용 제t 조정 객체 모션 벡터 및 (ii) 최적화되기 전의 상기 학습용 제t 객체 모션 벡터를 참조로 하여 적어도 하나의 로스를 산출하도록 하고, 상기 로스를 백프로파게이션함으로써 상기 제2 뉴럴 네트워크의 적어도 하나의 파라미터의 적어도 일부를 학습 완료된 상태에서, (I) 상기 테스트용 비디오의 테스트용 제t 프레임에 해당하는 테스트용 제t 이미지가 획득되면, 테스트 장치가, 상기 제1 뉴럴 네트워크로 하여금, 상기 테스트용 제t 이미지에 대하여 제1 뉴럴 네트워크 연산을 적용하도록 하여 상기 테스트용 제t 이미지 내의 각각의 테스트용 객체에 대응하는 테스트용 제t 마스크 각각을 생성하도록 하는 프로세스, (II) 상기 제2 뉴럴 네트워크로 하여금, (i) 각각의 상기 테스트용 제t 마스크, (ii) 이에 대응하는, 상기 테스트용 제t 이미지의 일부분인 각각의 테스트용 제t 크롭된(Cropped) 이미지, (iii) 각각의 테스트용 제t-1 마스크 및 (iv) 이에 대응하는, 테스트용 제t-1 이미지의 일부분인 각각의 테스트용 제t-1 크롭된 이미지에 대하여 제2 뉴럴 네트워크 연산을 적용하도록 하여 상기 테스트용 제t 이미지에 포함된, 각각의 상기 테스트용 객체에 대응하는 테스트용 객체 픽셀 각각에 대한 테스트용 제t 객체 모션 벡터(Object Motion Vector) 각각을 생성하도록 하는 프로세스, 및 (III) 상기 지터링 예측 유닛(Jittering Estimation Unit)으로 하여금, 상기 테스트용 제t 객체 모션 벡터 각각을 참조로 하여 상기 테스트용 제t 이미지 내의 픽셀 중 테스트용 참조 픽셀(Reference Pixel) 각각에 대응하는 테스트용 제t 지터링 벡터(Jittering Vector) 각각을 생성하도록 하는 프로세스를 수행하기 위한 상기 인스트럭션을 실행하도록 구성된 적어도 하나의 프로세서;
    를 포함하는 것을 특징으로 하는 장치.
  26. 제25항에 있어서,
    상기 프로세서가,
    (IV) 상기 지터링 예측 유닛으로 하여금, 상기 테스트용 제t 지터링 벡터를 참조로 하여 상기 테스트용 제t 이미지의 지터링을 완화한 테스트용 제t 조정 이미지(Adjusted Image)를 생성하도록 하는 프로세스;
    를 포함하는 것을 특징으로 하는 장치.
KR1020190147109A 2019-01-31 2019-11-15 폴트 톨러런스 및 플럭츄에이션 로버스트를 위한 복수의 뉴럴 네트워크를 사용하여 흔들리는 카메라로 인해 생성된 비디오에서 지터링을 제거하기 위한 학습 방법 및 학습 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치 KR102320999B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/262,996 2019-01-31
US16/262,996 US10482584B1 (en) 2019-01-31 2019-01-31 Learning method and learning device for removing jittering on video acquired through shaking camera by using a plurality of neural networks for fault tolerance and fluctuation robustness in extreme situations, and testing method and testing device using the same

Publications (2)

Publication Number Publication Date
KR20200095339A true KR20200095339A (ko) 2020-08-10
KR102320999B1 KR102320999B1 (ko) 2021-11-03

Family

ID=68536108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190147109A KR102320999B1 (ko) 2019-01-31 2019-11-15 폴트 톨러런스 및 플럭츄에이션 로버스트를 위한 복수의 뉴럴 네트워크를 사용하여 흔들리는 카메라로 인해 생성된 비디오에서 지터링을 제거하기 위한 학습 방법 및 학습 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치

Country Status (5)

Country Link
US (1) US10482584B1 (ko)
EP (1) EP3690811A1 (ko)
JP (1) JP6901803B2 (ko)
KR (1) KR102320999B1 (ko)
CN (1) CN111507906B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019207524A1 (en) * 2018-04-25 2019-10-31 Seesure Single image completion from retrieved image collections
US20210181758A1 (en) * 2019-10-26 2021-06-17 Zoox, Inc. Object detection and tracking
CN111901532B (zh) * 2020-09-30 2020-12-25 南京理工大学 基于循环神经网络迭代策略的视频稳定方法
US20220138903A1 (en) * 2020-11-04 2022-05-05 Nvidia Corporation Upsampling an image using one or more neural networks
WO2023140446A1 (ko) * 2022-01-19 2023-07-27 한화비전 주식회사 영상처리장치 및 그의 영상처리방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107566688A (zh) * 2017-08-30 2018-01-09 广州华多网络科技有限公司 一种基于卷积神经网络的视频防抖方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5012270A (en) * 1988-03-10 1991-04-30 Canon Kabushiki Kaisha Image shake detecting device
JPH11283040A (ja) * 1998-01-29 1999-10-15 Mitsubishi Electric Corp 操作制御装置および動作解析プログラムを記録したコンピュ―タ読み取り可能な記録媒体
US8350916B2 (en) * 2007-12-03 2013-01-08 Panasonic Corporation Image processing device, photographing device, reproducing device, integrated circuit, and image processing method
JP5414405B2 (ja) * 2009-07-21 2014-02-12 キヤノン株式会社 画像処理装置、撮像装置及び画像処理方法
JP2015039085A (ja) * 2011-12-14 2015-02-26 パナソニック株式会社 画像処理装置及び画像処理方法
WO2014094313A1 (en) * 2012-12-21 2014-06-26 Thomson Licensing Video quality model, method for training a video quality model, and method for determining video quality using a video quality model
US9374532B2 (en) * 2013-03-15 2016-06-21 Google Inc. Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization
US10181195B2 (en) * 2015-12-28 2019-01-15 Facebook, Inc. Systems and methods for determining optical flow
US10346740B2 (en) * 2016-06-01 2019-07-09 Kla-Tencor Corp. Systems and methods incorporating a neural network and a forward physical model for semiconductor applications
CN106485226A (zh) * 2016-10-14 2017-03-08 杭州派尼澳电子科技有限公司 一种基于神经网络的视频行人检测方法
WO2018119240A1 (en) * 2016-12-21 2018-06-28 Massachusetts Institute Of Technology Determining soil state and controlling equipment based on captured images
US20180181864A1 (en) * 2016-12-27 2018-06-28 Texas Instruments Incorporated Sparsified Training of Convolutional Neural Networks
JP6914699B2 (ja) * 2017-04-04 2021-08-04 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US10534962B2 (en) * 2017-06-17 2020-01-14 Matterport, Inc. Automated classification based on photo-realistic image/model mappings
US10217028B1 (en) * 2017-08-22 2019-02-26 Northrop Grumman Systems Corporation System and method for distributive training and weight distribution in a neural network
US10089743B1 (en) * 2017-10-05 2018-10-02 StradVision, Inc. Method for segmenting an image and device using the same
KR101935399B1 (ko) * 2018-07-11 2019-01-16 주식회사 두원전자통신 심층 신경망 알고리즘 기반 광역 다중 객체 감시 시스템
CN109064507B (zh) * 2018-08-21 2021-06-22 北京大学深圳研究生院 一种用于视频预测的多运动流深度卷积网络模型方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107566688A (zh) * 2017-08-30 2018-01-09 广州华多网络科技有限公司 一种基于卷积神经网络的视频防抖方法及装置

Also Published As

Publication number Publication date
JP2020126617A (ja) 2020-08-20
US10482584B1 (en) 2019-11-19
CN111507906A (zh) 2020-08-07
CN111507906B (zh) 2023-10-10
EP3690811A1 (en) 2020-08-05
KR102320999B1 (ko) 2021-11-03
JP6901803B2 (ja) 2021-07-14

Similar Documents

Publication Publication Date Title
KR102320999B1 (ko) 폴트 톨러런스 및 플럭츄에이션 로버스트를 위한 복수의 뉴럴 네트워크를 사용하여 흔들리는 카메라로 인해 생성된 비디오에서 지터링을 제거하기 위한 학습 방법 및 학습 장치, 그리고 이를 이용한 테스트 방법 및 테스트 장치
US11064178B2 (en) Deep virtual stereo odometry
KR20200095367A (ko) 거리 예측이 가능한 레이더를 통해 획득되는 정보와 카메라를 통해 획득되는 정보를 통합하는 센서 융합을 수행함으로써 자율 주행을 지원하는 뉴럴 네트워크를 향상시키는 학습 방법 및 학습 장치, 그리고 이를 사용한 테스트 방법 및 테스트 장치
CN111008999A (zh) 用包含跟踪网络的cnn跟踪对象的方法和使用该方法的装置
EP3686837B1 (en) Learning method and learning device for reducing distortion occurred in warped image generated in process of stabilizing jittered image by using gan to enhance fault tolerance and fluctuation robustness in extreme situations
US11138742B2 (en) Event-based feature tracking
US20150279021A1 (en) Video object tracking in traffic monitoring
JP2021518622A (ja) 自己位置推定、マッピング、およびネットワークトレーニング
JP6957050B2 (ja) モバイルデバイスまたは小型ネットワークに適用可能なハードウェアを最適化するのに利用可能なroiをプーリングするために、マスキングパラメータを利用する方法及び装置、そしてこれを利用したテスト方法及びテスト装置{learning method and learning device for pooling roi by using masking parameters to be used for mobile devices or compact networks via hardware optimization, and testing method and testing device using the same}
KR20200091318A (ko) 자율주행 자동차의 레벨 4를 충족시키기 위해 요구되는 hd 맵 업데이트에 이용될 적어도 하나의 어댑티브 로스 가중치 맵을 이용한 어텐션 드리븐 이미지 세그먼테이션 학습 방법 및 학습 장치, 그리고 이를 이용한 테스팅 방법 및 테스팅 장치
US10796206B2 (en) Method for integrating driving images acquired from vehicles performing cooperative driving and driving image integrating device using same
KR20190030474A (ko) 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치
US20190301871A1 (en) Direct Sparse Visual-Inertial Odometry Using Dynamic Marginalization
KR20200092845A (ko) 인스턴스 세그멘테이션을 이용한 객체의 자세에 따라 모드를 전환할 수 있는 cnn 기반의 수도-3d 바운딩 박스를 검출하는 방법 및 이를 이용한 장치
US11960294B2 (en) Self-supervised attention learning for depth and motion estimation
US11789466B2 (en) Event camera based navigation control
US10402686B1 (en) Learning method and learning device for object detector to be used for surveillance based on convolutional neural network capable of converting modes according to scales of objects, and testing method and testing device using the same
CN111581313A (zh) 一种基于实例分割的语义slam鲁棒性改进方法
KR20200095357A (ko) 비최대값 억제를 학습하는 병합 네트워크를 이용한 이종 센서 융합을 위한 학습 방법 및 학습 장치
CN111488783A (zh) 基于cnn检测伪3d边界框的方法及其装置
US20230394693A1 (en) Method for training depth estimation model, training apparatus, and electronic device applying the method
EP3690706A1 (en) Method and device for detecting lane elements to plan the drive path of autonomous vehicle by using a horizontal filter mask, wherein the lane elements are unit regions including pixels of lanes in an input image
de Boer et al. Choosing between optical flow algorithms for UAV position change measurement
KR102372988B1 (ko) 시계열 이벤트를 이용하여 카메라의 자세 변화 결과를 추정하기 위한 학습 방법 및 학습 장치 그리고 이를 이용한 테스트 방법 및 테스트 장치
CN116295507B (zh) 一种基于深度学习的激光惯性里程计优化方法、系统

Legal Events

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