KR20210152446A - 제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법 - Google Patents

제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법 Download PDF

Info

Publication number
KR20210152446A
KR20210152446A KR1020210174705A KR20210174705A KR20210152446A KR 20210152446 A KR20210152446 A KR 20210152446A KR 1020210174705 A KR1020210174705 A KR 1020210174705A KR 20210174705 A KR20210174705 A KR 20210174705A KR 20210152446 A KR20210152446 A KR 20210152446A
Authority
KR
South Korea
Prior art keywords
equation
alu
simplex
pair
cpu
Prior art date
Application number
KR1020210174705A
Other languages
English (en)
Other versions
KR102385018B1 (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 KR20210152446A publication Critical patent/KR20210152446A/ko
Application granted granted Critical
Publication of KR102385018B1 publication Critical patent/KR102385018B1/ko

Links

Images

Classifications

    • 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
    • G06F17/12Simultaneous equations, e.g. systems of linear equations
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • 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
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/285Analysis of motion using a sequence of stereo image pairs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • G06T7/85Stereo camera calibration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • 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
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Computing Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Studio Devices (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Image Processing (AREA)

Abstract

저 미가공 데이터 시리즈 z를 수신하여 평활하게 하고, 가중치들 w0, w1, w2, 및 w3을 수신하여 출력 통로의 평활화(smoothness)를 제어하고, L1 표준값에 기초한 포뮬레이션(formulation)을 나타내는 L1 추이(trend) 필터링 문제를 하는 L1 컨트롤러; 상기 L1 컨트롤러에 연결되고, 상기 L1 추이 필터링 문제를 원-쌍대(primal-dual) LP(Linear Programming) 최적화 문제 쌍으로 전송하는 L1 CPU(Central Processing Unit); 및 상기 L1 CPU에 연결되고, 확장된 심플렉스 표형(tableau simplex) 방법으로 상기 원-쌍대 LP 최적화 문제 쌍의 원(primal) 문제를 해결하는 L1 ALU(Arithmetic Logic Unit)을 포함하는 장치가 제공된다.

Description

제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법{APPARATUS AND METHOD OF LOW COMPLEXITY OPTIMIZATION SOLVER FOR PATH SMOOTHING WITH CONSTRAINT VARIATION}
본 발명은 일반적으로 최적화 솔버(solver)에 관한 것으로, 보다 상세하게는, 제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법에 관한 것이다.
경로 최적화 혹은 추이 필터링(trend filtering)은 미가공 경로에 기초한 최적 경로를 찾는 것을 목표로 하며, 이는 미가공 경로 및 계산될 최적 경로의 포뮬레이션(formulation)으로써 값을 최소화한다. 경로 최적화는 로봇 공학, 항공 및 금융을 포함하여 광범위한 응용 프로그램을 갖추었다. 예를 들어, 비디오 안정화를 위해 흔들리는 미가공 카메라 경로를 평활하게 하는데 사용될 수 있다.
LP(Linear Programming)은 출력 또는 비용과 같은 여러 변수의 선형 함수를 최대화 혹은 최소화하기 위한 수학적 기법이다. QP(Quadratic Programming)는 수학적 최적화 문제, 특히 선형 제한 2차 최적화 문제, 즉, 선형 제약에 종속된 여러 변수들의 최적화(최소화 혹은 최대화) 문제를 이러한 변수들 상에서 해결하는 특별한 유형의 프로세스이다.
본 발명이 해결하고자 하는 기술적 과제는 LP 최적화 문제 쌍의 원(primal) 문제를 해결하는 L1 ALU(Arithmetic Logic Unit)을 제공하는 것이다.
본 개시의 임의의 실시예의 상기 및 다른 양상들, 특징들 및 이점들은 첨부된 도면들과 관련하여 취해진 다음의 상세한 설명으로부터 보다 명확해질 것이다.
도 1은 일 실시예에 따른, 자이로스코프 기반 3D 비디오 안정화 시스템의 블록도이다.
도 2는 일 실시예에 따른, L1 통로 최적화기 장치를 도시한 도면이다.
도 3은 일 실시예에 따른, 확장된 전체 심플렉스 표형 기반 LP 솔버의 방법을 도시한 흐름도이다.
도 4는 일 실시예에 따른, L1 ALU의 방법을 도시한 흐름도이다.
도 5는 일 실시예에 따른, L2 경로 최적화기 장치를 도시한 도면이다.
도 6은 일 실시예에 따른, ADMM 기반 QP 솔버의 방법을 도시한 흐름도이다.
도 7은 일 실시예에 따른, L2 ALU의 방법을 도시한 흐름도이다.
도 8은 일 실시예에 따른, 네트워크 환경 내 전자 장치를 도시한 블록도이다.
도 9는 일 실시예에 따른, 카메라 모듈을 도시한 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 비록 동일한 도면 부호는 상이한 도면에 도시되어 있지만, 동일한 요소는 동일한 도면 부호로 표시된다는 점에 유의해야 한다. 다음의 설명에서, 상세한 구성 및 구성 요소와 같은 특정 세부 사항은 본 개시의 실시예의 전반적인 이해를 돕기 위해 제공된다. 따라서, 본 개시물의 범위를 벗어나지 않으면서 여기에 기술된 실시예들의 다양한 변경 및 수정이 이루어질 수 있음은 당업자에게 명백할 것이다. 또한, 공지된 기능 및 구성에 대한 설명은 명확성 및 간결성을 위해 생략되었다. 이하에서 설명되는 용어는 본 발명의 기능을 고려하여 정의된 용어로써, 사용자의 의도 또는 관습에 따라 달라질 수 있다. 그러므로 용어의 정의는 본 명세서 전반에 걸쳐 내용을 기반으로 결정되어야 한다.
본 개시물은 다양한 수정 및 다양한 실시예를 가질 수 있으며, 그 중 첨부된 도면을 참조하여 이하에 실시예가 상세하게 설명된다. 그러나, 본 발명은 실시예에 한정되지 않고, 본 발명의 범위 내에서 모든 수정, 등가물 및 대안을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같은 서수를 포함하는 용어가 다양한 구성 요소를 설명하기 위해 사용될 수 있지만, 구조적 구성 요소는 용어에 의해 제한되지 않는다. 이 용어는 한 요소를 다른 요소와 구별하기 위해서만 사용된다. 예를 들어, 본 개시의 범위를 벗어나지 않으면서, 제1 구조 구성요소는 제2 구조 구성요소로 지칭될 수 있다. 유사하게, 제2 구조 구성요소는 또한 제1 구조 구성요소로 지칭될 수 있다. 본원에 사용된 바와 같이 "및/또는"이라는 용어는 하나 이상의 관련 아이템의 임의의 조합 및 모든 조합을 포함한다.
본 명세서에서 사용되는 용어는 본 개시의 다양한 실시예를 설명하기 위해 사용되었지만, 본 개시를 제한하고자 하는 것은 아니다. 단수 형태는 문맥에 달리 명시되어 있지 않는 한 복수 형태를 포함한다. 본 개시에서, 용어 "포함하는" 또는 "가지는"은 특징, 수, 단계, 동작, 구조적 요소, 부품 또는 이들의 조합의 존재를 나타내며, 이들을 배제하지 않는 다는 것을 이해해야 한다. 숫자, 단계, 동작, 구조적 요소, 부품 또는 이들의 조합의 추가, 존재 또는 확률을 포함할 수 있다.
다르게 정의되지 않는 한, 본원에서 사용되는 모든 용어는 본 발명이 속하는 기술 분야의 당업자에 의해 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 것과 같은 용어는 관련 분야의 문맥상의 의미와 동일한 의미를 갖는 것으로 해석되어야 하며, 본 개시에서 명확하게 정의되지 않는 한 이상적이거나 과도하게 공식적인 의미를 갖는 것으로 해석되어서는 안 된다.
몇몇 실시예에 따른 전자 장치는 다양한 유형의 전자 장치 중 하나일 수 있다. 전자 장치는 예를 들어 휴대용 통신 장치(예를 들어, 스마트폰), 컴퓨터, 휴대용 멀티미디어 장치, 휴대용 의료 장치, 카메라, 착용식 장치 또는 가전 제품을 포함할 수 있다. 본 발명의 일 실시예에 따르면, 전자 장치는 상술된 것에 제한되지 않는다.
본 개시물에 사용된 용어는 본 개시 내용을 제한하는 것이 아니라 대응하는 실시예에 대한 다양한 변경, 등가물 또는 대체를 포함하도록 의도된다. 첨부 도면의 설명과 관련하여, 유사한 참조 번호는 유사하거나 관련된 요소를 나타내기 위해 사용될 수 있다. 하나의 항목에 해당하는 명사의 단수 형태는 관련 문맥이 다른 것을 분명하게 나타내지 않는 한 하나 이상의 사물을 포함할 수 있다. 본 명세서에 사용된 바와 같이, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B, 및 C" 및 "A, B 또는 C 중 적어도 하나"는 해당 구에 열거된 항목의 가능한 모든 조합을 포함할 수 있습니다. 본 명세서에 사용된 바와 같이, "제1", "제2", "첫번째", "두번째"와 같은 용어는 대응하는 구성 요소를 다른 구성 요소와 구별하기 위해 사용될 수 있지만, 다른 측면(예를 들어, 중요성 또는 순서)에서 구성 요소들을 제한하기 위한 의도로 쓰이진 않습니다. 만약 요소(예를 들어, 제1 요소)가 "동작 가능하게" 또는 "통신 가능하게"와 함께 혹은 함께하지 않고 다른 요소(예를 들어, 제2 요소)와 "결합된" 또는 "연결된" 것은, 다른 요소와 직접(예를 들어, 유선의), 무선의 또는 제3 요소를 통해 연결된 것을 나타낸다.
본 명세서에 사용된 바와 같이, "모듈"이라는 용어는 하드웨어, 소프트웨어 또는 펌웨어로 구현되는 유닛을 포함할 수 있으며, 예를 들어 "로직", "로직 블록", "부품" 및 "회로"와 같은 다른 용어와 상호 교환 가능하게 사용될 수 있다. 모듈은 하나 이상의 기능을 수행하도록 구성된 단일 필수 구성 요소 또는 최소 단위 또는 그 일부일 수 있다. 예를 들어, 일 실시예에 따르면, 모듈은 주문형 집적 회로(ASIC)의 형태로 구현될 수 있다. 일 실시예에 따르면, 본 개시의 방법은 컴퓨터 프로그램 제품에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 판매자와 구매자 사이의 제품으로 거래될 수 있다. 컴퓨터 프로그램 제품은 기계 판독 가능 저장 매체(예를 들어, CD-ROM)의 형태로 배포되거나, 어플리케이션 저장소(예를 들어, CD-ROM)를 통해 온라인으로 배포(예를 들어, 다운로드 또는 업로드)될 수 있다. 또는 두 사용자 장치(예를 들어, 스마트 폰)간에 직접 연결할 수 있다. 온라인으로 배포되는 경우, 컴퓨터 프로그램 제품의 적어도 일부가 일시적으로 생성되거나 제조 업체 서버의 메모리, 응용 프로그램 저장소의 서버 또는 릴레이 서버와 같은 기계 판독 가능 저장 매체에 적어도 임시로 저장될 수 있다.
일 실시예에 따르면, 상술한 구성 요소들의 각 요소(예를 들어, 모듈 또는 프로그램)는 단일 엔티티 또는 다수의 엔티티를 포함할 수 있다. 일 실시예에 따르면, 전술 한 구성 요소 중 하나 이상이 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 선택적으로 또는 부가적으로, 복수의 구성 요소(예를 들어, 모듈 또는 프로그램)가 단일 구성 요소로 통합될 수 있다. 이 경우, 통합 구성 요소는 통합 이전에 복수의 구성 요소 중 대응하는 구성 요소에 의해 수행되는 것과 동일하거나 유사한 방식으로 복수의 구성 요소 각각의 하나 이상의 기능을 여전히 수행할 수 있다. 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작은 순차적으로, 병렬로, 반복적으로 또는 경험적으로 수행될 수 있거나, 하나 이상의 동작이 다른 순서로 실행되거나 생략되거나, 하나 이상의 다른 동작이 추가될 수 있다.
몇몇 실시예에서, L1 표준(norm)을 이용한 경로 최적화에 대한 저 복잡도 솔버가 아래 설명된다. 표준은 길이가 0인 영 벡터를 제외한, 벡터 공간 내 각 벡터에 엄격하게 양의 길이 혹은 크기를 할당하는 함수이다. L1은 L1 표준값에 기초한 포뮬레이션(formulation)을 나타내고 L2는 L2 표준 값에 기초한 포뮬레이션(formulation)을 나타낸다. L1 표준 값은 목표값과 측정값 사이의 차이의 절대값의 합을 측정한다. L1 표준값을 사용하는 솔버(L1 솔버)는 특별한 경로 최적화 구조를 사용하고 표준 LP 솔버를 사용한 것과 비교하여 상당한 복잡도 감소를 달성한다.
몇몇 실시예에서, L2 표준(norm)을 이용한 경로 최적화에 대한 저 복잡도 솔버가 아래 설명된다. L2 표준값은 목표값과 측정값 사이의 차이 제곱의 합을 측정한다. L2 표준값을 이용한 솔버(L2 솔버)는 최적화 경로의 특별한 구조를 사용하고 표준 QP 솔버를 이용한 것과 비교하여 상당한 복잡도 감소를 달성한다.
몇몇 실시예에서, 솔버는 비디오 흔들림 방지(stabilization)를 위한 흔들린 미가공 카메라 경로를 평활하게 만드는데 사용된다. 실시간 구현상에서, 스마트 폰 상 비디오 흔들림 방지 시스템을 구현하는데 낮은 계산의 값을 갖는 효율적인 솔버가 바람직하다. 그러나, 본 발명은 비디오 흔들림 방지를 위한 흔들린 미가공 카메라 경로에 제한되지 않는다.
비디오 안정화는 의도하지 않은 움직임 지터(motion jitter)를 제거하고 원본 흔들림 영상을 일반 시청자의 영화적 지각을 만족시키는 안정화된 비디오로 재구성한다. 비디오 안정화 기술에는 두 개의 주요 범주, OIS(Optical Image Stabilization)과 DIS(Digital Image Stabilization)가 있다. OIS는 일반적으로 자이로스코프에 의해 측정된 순간 카메라 움직임을 기반으로 한 카메라 렌즈 또는 센서를 기계적으로 움직임으로써 수행된다. 따라서, 이미지가 기록되기 전에 필요치 않은 움직임들이 제거된다. DIS는 이미지가 기록된 후에 필요치 않은 움직임들을 제거한다. DIS에서, 카메라 동작은 다수 프레임들에 걸쳐 측정될 수 있다(예를 들어, 측정된 미가공 경로). 평활화된 경로는 경로 최적화기를 이용한 미가공 경로의 측정을 기초로 결정된다. 이미지 워핑(warping) 처리를 통해, 평활화된 경로를 따라 이동하는 영상이 기록된 카메라인 것처럼 비디오가 수정될 수 있다. 본 발명은 DIS에 응용될 수 있지만, 이에 제한되지는 않는다.
몇몇 실시예에서, L1 표준값 포뮬레이션(formulation)을 이용한 경로 평활화 문제 해에 대한 확장된 전체 심플렉스 표형(tableau simplex) 기반 LP 솔버, 그리고 L2 표준값 포뮬레이션(formulation)을 이용한 경로 평활화 문제 해에 대한 ADMM 기반 QP(Quadratic Programming) 솔버의 두 부분이 있다.
L1 표준 기반 경로 평활화 문제는 표준 LP 식으로 변환될 수 있다. 몇몇 실시예에서, 표준 LP 식의 쌍대 식이 고려되며, 상당한 복잡도 감소를 달성하는 웜 스타트(warm-start) 방법과 함께 균일하게 적용될 수 있다. L2 표준 기반 경로 최적화 문제는 쌍대 분석을 통해 박스 제한들을 갖는 QP 문제로 전환될 수 있다. QP 문제의 특별한 구조를 이용함으로써, 각 반복(iteration)에서 닫힌 형태(closed-form) 업데이트를 포함한 ADMM 기반 방법이 제공된다. 따라서, ADMM 기반 QP 솔버는 다른 해들보다 더 효율적이다.
확장된 전체 심플렉스 표형 방법은 계산 복잡성을 감소시키고 수치 안정을 향상 시킨다. 저 복잡도 LP 솔버는 웜 스타트와 함께 확장된 전체 심플렉스 표형 방법을 이용하여 듀얼 도메인 내 L1 표준 기반 경로 평활화 문제를 해결한다. ADMM 기반 방법은 반복(iteration)상에서 닫힌 형태 업데이트들만 사용하는 박스 제한을 갖는 QP 문제를 해결한다. 저 복잡도 QP 솔버는 ADMM 기반 웜 스타트를 갖는 반복(iterative) 방법을 이용해 L2 표준 기반 경로 평활화 문제를 해결한다.
L1 표준 기반 경로 평활화에 대한 확장된 심플렉스 기반 LP 솔버는 이점들을 제공한다. 예를 들어, 듀얼 도메인의 LP 포뮬레이팅(formulating)은 수렴 속도를 높이기 위해 웜 스타트를 갖는 일에 더욱 적합하다. 확장된 전체 심플렉스 표형은 각 반복(iteration) 내 계산을 간단히 하고 수치 안정을 증진시킨다.
L2 표준 기반 경로 평활화에 대한 ADMM 기반 QP 솔버는 이점들을 제공한다. 예를 들어, 듀얼 도메인으로부터 야기된 QP 문제는 최적화 되기 위해 변수들의 수를 최소화한다. ADMM 기반 순환(iterative) 식은 닫힌 형태 계산으로 각 순환 내 업데이트를 간략화 한다. 수렴 속도를 높이기 위해 웜 스타트를 이용함으로써, ADMM 기반 QP 솔버는 기존의 QP 솔버들 보다 더 효율적이다.
비디오 흔들림 방지에 카메라 경로 평활화 식을 사용하는 솔버가 이하에서 설명된다. 그러나, 솔버들은 유사한 형식들을 취함으로써 좀 더 일반적인 최적화 문제에 적용될 수 있다.
카메라 경로 평활화 문제는 각 프레임에 식 1 내 기능 값을 최소화하도록 포뮬레이팅(formulating)될 수 있다.
Figure pat00001
식 (1)
z는 미가공 카메라 경로 입력, y는 최적화를 위한 평활화된 카메라 경로를 나타낸다. D i 행렬들은 식 2, 3, 및 4에 따른 미분 차수의 미분 행렬들이다.
Figure pat00002
식 (2)
Figure pat00003
식 (3)
Figure pat00004
식 (4)
3차 도함수는 카메라의 역동성을 포착하기 충분하다. 다른 어플리케이션들에 대해, 미분 차수는 수정을 통해 선택적으로 결정될 수 있다. d(y, z) 항은 미가공 카메라 경로와 안정화된 카메라 경로 사이의 거리를 나타낸다. 몇몇 실시예에서, L1 거리는
Figure pat00005
와 L2 거리
Figure pat00006
가 모두 고려된다. 각 비디오 프레임에서, 미가공 카메라 경로의 각 차원에 대한 하나의 입력 벡터 z가 있을 수 있다. 예를 들어, 만약 미가공 카메라 경로가 카메라의 3D 회전을 모델링 한다면, 3개의 최적화 경로 식을 3D 회전 경로의 각 차원에 대해 독립적으로 풀 수 있다. 아래 설명은 단일 차원과 관련된다. 입력 벡터는 이전 a1 프레임, 현재 프레임, 및 미래 a2-1 프레임들 내 경로 값들을 포함한다.
최적화 문제는 식 5에 나와있다.
Figure pat00007
식 (5)
임계 벡터 r th 는 미가공 카메라 경로에 근접한 최적화 경로를 제한하기 위해 추가된다. 다른 일관성 제약이 이전에 최적화된 경로가 식 6에서와 같이 현재 업데이트에서 변경될 수 없도록 강제하기 위해 추가될 수 있다.
Figure pat00008
식 (6)
Figure pat00009
는 이전 프레임들로부터 측정된 결과이다.
L1 표준에 기초한 LP 문제에 대해, 만약
Figure pat00010
라면 식 5 내 최적화 문제는 LP 문제이다. 여유 변수들(slack variable)
Figure pat00011
,
Figure pat00012
,
Figure pat00013
, and
Figure pat00014
을 나타냄으로써 식 5는 식 7, 8의 LP 문제로 전환될 수 있다.
Figure pat00015
는 벡터
Figure pat00016
요소별 절대값을 취한 것을 나타낸다.
Figure pat00017
식 (7)
Figure pat00018
식 (8)
I와 0은 적당한 크기의 단위 행렬과 영 행렬이며 1은 모두 1인 벡터이다. 각 L1 표준 항
Figure pat00019
의 최소화는 두 개의 부등식 제한 조건
Figure pat00020
을 갖는
Figure pat00021
의 최소화로 변형된다.
Figure pat00022
의 일부 열과 행을 제거하고 이전에 최적화된 값들을 이용하여 c를 업데이트함으로써 식 6 내 이전 최적화 값들로 일관성을 유지한다.
확장된 전체 심플렉스 표형에 의해 풀어진 쌍대 문제가 아래 설명된다. 어떤 LP 문제든 식 9의 표준 형식으로 변환될 수 있다.
Figure pat00023
Figure pat00024
Figure pat00025
식 (9)
쌍대 문제는 식 10으로 나타낼 수 있다.
Figure pat00026
Figure pat00027
Figure pat00028
식 (10)
A의 차원은
Figure pat00029
, 일반적으로
Figure pat00030
이다. 즉, A는 fat 행렬이다. LP 식은 원(primal) 혹은 쌍대(dual) 형식으로 전환될 수 있다. 그러나, 식 9의 원 형식으로의 전환은 식 7의 듀얼 도메인으로 직접 전환하는 것보다 더 많은 여유 변수들을 요구한다. 따라서, 식 7은 쌍대 식으로 처리될 수 있고 상응하는 원 문제가 해결될 수 있다. 이것은
Figure pat00031
,
Figure pat00032
로 설정하고 식 7로부터 같은
Figure pat00033
Figure pat00034
를 이용함으로써 달성될 수 있다. 쌍대 이론에 따르면, 식 9 및 10에 대한 최적해는
Figure pat00035
을 만족할 것이다.
본 개시물에서, 심플렉스 알고리즘의 증진은 계산 복잡도를 감소시키고 수치 안정을 증진시킴으로써 개시된다.
원 문제 9에 대한 해는 실행 가능 기저해(basic feasible solution)로 명명된다. 만약 (a) 모든 등식 제한 조건(equality constraints)이 활성화되고 (b) 활성 제약 밖이라면 해
Figure pat00036
는 실행 가능 기저해이다. 활성 제약의 n은 선형 독립이다. 실행 가능 기저해는 n 값들 외에 0이 아닌 요소들 m만을 갖는다. 실행 가능 기저해의 0이 아닌 부분은 식 11이다.
Figure pat00037
식 (11)
B 행렬은 A의 독립 열들 m을 포함한다. 즉,
Figure pat00038
이다. 이런 경우 B(1), ??, B(m)은 상응하는 열 인덱스들이고
Figure pat00039
는 실행 가능 기저해의 기저내에 있는 A의 하나의 열을 나타낸다. 상응하는 실행 가능 기저해는 영들 혹은 다른 기저해에 있지 않은 다른 좌표들로 영들을 추가함으로써 얻어진다. 현재는 B인 열들 A B(l) 중 하나를 대체하기 위해 B 내에 있지 않은 A의 열 A j 가 각 심플렉스 반복(iteration) 내에서 찾아진다. 이를 통해, 새로운 기저 행렬
Figure pat00040
가 된다. 새로운 실행 가능 기저해의 0이 아닌 부분은
Figure pat00041
로 주어진다. 심플렉스 방법은 하나의 극점으로부터 다른 극점으로 각 반복 내에서 값을 줄여가며 필수적으로 이동한다. 심플렉스 방법은 더 이상 값을 줄일 수 있는 입력 열이 없게 되는 경우 멈춘다.
Figure pat00042
는 쌍대적 식에 대한 해이며, 심플렉스 방법을 통해 발견된 최적 기저를 포함하는 행렬 B를 이용한
Figure pat00043
를 통해 계산될 수 있다.
심플렉스 방법 중 가장 계산 집약적인 부분은 B -1 을 계산하는 것이다. 몇몇 실시예에서, 확장된 전체 심플렉스 표형 방법은 심플렉스 방법의 더 효율적인 구현을 사용한다. 즉, 행 연산 기반 업데이트는 표 1의 확장된 전체 표형을 업데이트 함으로써 각 반복 내 심플렉스 업데이트를 현실화시키는데 사용된다.
Figure pat00044
Figure pat00045
Figure pat00046
Figure pat00047
Figure pat00048
Figure pat00049
표 1의 확장된 전체 표형은 전체 심플렉스 표형의 확장이며 아래 상세히 설명된다.반복(iteration)은 B 기저 행렬과 연관된 확장된 전체 표형과 함께 시작되며 실현 가능 기저해
Figure pat00050
에 상응한다.
확장된 전체 표형의 0번째 행 내 감소된
Figure pat00051
값들이 검사된다. 만약 감소된 값
Figure pat00052
이 모두 음이 아니라면, 현재 실행 가능 기저 해는 최적이고, 방법은 종료된다. 그렇지 않으면,
Figure pat00053
이 되는 j가 선택된다.
표형 내 j+1 번째 열의 중간 아래 부분의 벡터
Figure pat00054
에 대해,
Figure pat00055
의 어떤 요소도 양이 아니라면, 방법은 종료된다.
Figure pat00056
가 양수인 각 i에 대해,
Figure pat00057
비율이 계산된다. l은 가장 작은 비율에 상응하는 행의 인덱스이며,
Figure pat00058
는 확장된 전체 표형의 아래 왼쪽 부분으로부터 읽어질 수 있다. 열 A B(l)은 기저 내에 존재하며 열 A j 는 기저로 입력된다.
표형의 각 행에 l 번째 행의 상수곱이 추가되어 ul(예를 들어, 피벗 요소)는 1이 되고 다른 모든 피벗 열의 엔트리들은 영이 된다.
확장된 전제 심플렉스 표형 방법의 종료시,
Figure pat00059
항이 확장된 전체 표형의 우측 꼭대기 블록인
Figure pat00060
를 통해 최적화 쌍대 해를 획득한다. 확장된 전체 표형 방법의 몇몇 실시예에서
Figure pat00061
이다. 즉, 새롭게 업데이트된 기저에 상응하는,
Figure pat00062
의 m번째 열 상에 행 기능을 수행할 필요가 없다. 대신, 블록의 상응하는 부분은 단위 행렬로 설정된다.
웜 스타트 방법은 수렴 속도를 높이기 위해 연속적인 프레임들에 대한 최적
Figure pat00063
에 대한 솔버를 사용할 수 있다. 예를 들어, 이전 프레임 내 획득된 최적 확장된 전체 표형은 현재 프레임의 확장된 전체 표형을 초기화하는데 사용될 수 있다. 이러한 방법은 식 7이 듀얼 도메인에 적합하고 원 도메인에 상응하는 문제가 해결된 경우에만 유효하다. 이것은
Figure pat00064
에 의해 주어진 원 실현 가능 세트가 프레임들을 가로질러 변하지 않기 때문이다. 이것은 이전 프레임 내 최적 해를 여전히 현재 프레임의 LP에 대한 실현 가능 기저해로 보장한다. C는 인접 프레임 내에서 약간만 변경되기 때문에 수렴이 가속된다.
웜 스타트를 갖는 확장된 전체 심플렉스 표형은 또한 일반 경로 최적화 문제들을 해결하는데 이용될 때 매우 중요한 수치 안정을 증진시킨다. 웜 스타트가 이용될 때, B -1 은 다중 프레임들을 가로질러 연속적으로 업데이트 된다. 따라서, 반올림 오차는 한 프레임에서 다른 프레임으로 전파된다. 심플렉스 방법의 한 버전, 즉, 수정된 심플렉스 방법은 웜 스타트와 함께 이러한 오류 전파로 어려움을 겪을 것이다. 확장된 전체 표형은 전체 표형 내 B -1 이 업데이트 되었을 지라도, B -1 이 어떤 행렬 곱에 직접적으로 이용되지 않기 때문에 이러한 오류 전파에 대해 덜 민감하다.
도 1은 몇몇 실시예에 따른, 자이로스코프 기반 3D 비디오 안정화 시스템의 블록도를 도시한 도면이다.
자이로스코프 기반 3D 비디오 안정화 시스템(100)은 3D 회전 측정기(101), 3D 회전 평활기(103), 왜곡 계산기(105), 및 왜곡 보상기(107)를 포함한다.
3D 회전 측정기(101)은 입력(109)과 출력(111)을 포함한다. 3D 측정기(101)은 입력 (109)에 자이로스코프에 의해 측정된 각속도를 수신하고 각속도를 사용하여 카메라의 3D 회전을 측정하고 출력(111)에 축적된 3D 회전 미가공 데이터 경로를 출력한다.
3D 회정 평활기(103)는 3D 회전 측정기(101)의 출력(111)에 연결된 입력과 출력(113)을 포함한다. 3D 회전 평활기(103)는 3D 회전 측정기(101)로부터 수신한 3D 미가공 카메라 경로를 평활하게 하고 3D 미가공 카메라 통로와 3D 평활화된 카메라 통로를 출력(113)으로 출력한다.
왜곡 계산기(105)는 3D 회전 평활기(103)의 출력(113)에 연결된 입력과 왜곡된 그리드(grid)를 제공하는 출력(115)을 포함한다. 3D 미가공 카메라 통로와 3D 평활화된 카메라 통로를 이용해, 왜곡 계산기(105)는 왜곡된 그리드를 결정한다.
왜곡 보상기(107)는 왜곡 계산기(105)의 출력(115)에 연결된 제1 입력, 제2 입력(117), 및 출력(119)를 포함한다. 왜곡 보상기(107)는 왜곡 계산기(105)에 의해 결정된 왜곡된 그리드를 수신하고, 제2 입력(117)으로 이미지 시퀀스를 수신하고, 왜곡된 그리드를 사용하여 이미지 시퀀스의 3D 회전에 대한 보상을 한다.
도 2는 몇몇 실시예에 따른, L1 경로 최적화기에 대한 장치를 도시한 도면이다.
확장된 전체 심플렉스 표형 기반 LP 솔버(200)는 L1 추이 필터링 문제를, 확장된 전체 심플렉스 표형 방법과 웜 스타트 기술의 효율적인 사용을 가능하게하는 LP 원-쌍대 문제 쌍으로 전환한다.
도 2에 따르면, 확장된 전체 심플렉스 표형 기반 LP 솔버(200)는 L1 컨트롤러(201), L1 CPU(203), 및 L1 ALU(205)를 포함한다.
L1 컨트롤러(201)는 미가공 데이터 시리즈 z를 수신하여 평활하게 하게 하기위한 제1 입력(207), 출력 통로의 평활도를 제어하기 위한 선택된 가중치 w0, w1, w2, 및 w3을 수신하는 제2 입력(209), 및 출력(211)을 포함한다. L1 컨트롤러(201)는 L1 추이 필터링 문제를 식 12로 포뮬레이팅(formulating) 한다.
Figure pat00065
식 (12)
L1 CPU(203)는 L1 컨트롤러(201)의 출력(211)에 연결된 입력과 출력(213)을 포함한다. L1 CPU(203)는 식 12의 L1 추이 필터링 문제를 원-쌍대 문제 쌍으로 전환한다.
L1 ALU(205)는 L1 CPU(203)의 출력(213)에 연결된 제1 입력, 출력(215), 및 출력(215)에 연결된 제2 입력을 포함한다. L1 ALU(205)는 원 문제에 대한 이전 해가 웜 스타트로써 사용되고 평활화된 통로 y를 출력하는 웜 스타트를 갖는 확장된 전체 심플렉스 표형 방법을 갖는 원 문제를 푼다. L1 ALU(205)의 기능이 도 4에 자세히 설명된다.
도 3은 몇몇 실시예에 따른, 확장된 전체 심플렉스 표형 기반 LP 솔버의 방법을 도시한 흐름도이다.
단계(301)에서, L1 컨트롤러에 의해, 확장된 전체 심플렉스 표형 기반 LP 솔버가 미가공 데이터 시리즈 z를 평활하게 만들기 위해 미가공 데이터 시리즈 z를 수신한다. 단계(303)에서 L1 컨트롤러에 의해, 확장된 전체 심플렉스 표형 기반 LP 솔버가 출력 통로의 평활화를 제어하기 위해 선택된 가중치 w0, w1, w2, 및 w3를 수신한다. 단계(305)에서, L1 컨트롤러에 의해, 확장된 전체 심플렉스표형 기반 LP 솔버는 L1 추이 필터링 문제를 식 12로 포뮬레이팅(formulating) 한다.
단계(307)에서, L1 CPU에 의해, 확장된 전체 심플렉스 표형 기반 LP 솔버는 식 12의 L1 추이 필터링 문제를 원-쌍대 문제로 변형시킨다. 단계(309)에서 L1 ALU에 의해, 확장된 전체 심플렉스 표형 기반 LP 솔버는 웜 스타트를 갖는 확장된 전체 심플렉스 표형 방법을 갖는 원 문제를 해결한다. 단계(311)에서, L1 ALU에 의해, 확장된 전체 심플렉스 표형 기반 LP 솔버는 이전 해(예를 들어, 솔루션(309))를 원 문제에 웜 스타트로써 이용한다. 단계(313)에서, L1 ALU에 의해, 확장된 전체 심플렉스 표형 기반 LP 솔버는 평활화된 경로 y를 출력한다.
도 4는 몇몇 실시예에 따른, L1 ALU의 방법(예를 들어, 도 2 내 L1 ALU(205)와 도 3의 단계(309))을 도시한 흐름도이다.
단계(401)에서, L1 ALU는 k 번째 프레임 입력 zk를 이용하여 c를 업데이트 한다.
단계(403)에서, k가 0인지 L1 ALU가 결정한다. 단계(405)에서, k가 0이라면 표준 심플렉스 초기화를 이용해 전체 표형을 초기화한다. 단계(407)에서, k가 0이 아니라면 L1 ALU가 웜 스타트를 갖는 전체 표형(예를 들어, 마지막으로 업데이트된 전체 표형을 이용하여)을 초기화한다.
단계(409)에서, L1 ALU는 현재 전체 표형을 결정한다. 단계(411)에서, L1 ALU는
Figure pat00066
가 모두 음이 아닌지 결정한다. 단계(413)에서, L1 ALU는
Figure pat00067
가 모두 음이 아니라면
Figure pat00068
를 출력한다.
단계(415)에서, L1 ALU는
Figure pat00069
가 모두 음이 아닌 것으로 결정되지 않는 다면
Figure pat00070
인 입력 열 j를 결정한다. 단계(417)에서
Figure pat00071
가 양이 아닌지 결정한다. 단계(419)에서 L1 ALU는 만약
Figure pat00072
가 양이 아니라면 무한해를 결정한다.
단계(421)에서, L1 ALU는
Figure pat00073
가 양이라면 모든 양의 ui에 대해 가장 작은 xB(i)/ui를 제공하는 현존하는 열 j를 결정한다. 단계(423)에서, L1 ALU는 기본 행 연산(elementary row operation)을 수행하고 전체 표형을 업데이트 한다.
QP 문제 기반 L2 표준이 아래 설명된다. 식 5의 최적화 문제는 만약 식 13의 d
Figure pat00074
라면 QP 문제가 된다.
Figure pat00075
식 (13)
식 13은 표준 QP 형태로 변환될 수 있다. 이런 경우, 듀얼 도메인이 더 적은 여유 변수들(slack variables)을 요구하기 때문에, 듀얼 도메인 변환이 수행된다. 따라서, 식 13은 식 14로 쓰일 수 있다.
Figure pat00076
Figure pat00077
Figure pat00078
식 (14)
식 14의 라그랑주 함수는 식 15로 주어진다.
Figure pat00079
Figure pat00080
식 (15)
Figure pat00081
Figure pat00082
에 대한 라그랑주 승수이고
Figure pat00083
,
Figure pat00084
Figure pat00085
에 대한 라그랑주 승수이다. x를 유일한 상수로써 취급하면 식 15는 식 16이 된다.
Figure pat00086
식 (16)
따라서, 추가 제약
Figure pat00087
이 추가된다.
Figure pat00088
제약 아래 식 16의 최적화 y에 대한 해결은
Figure pat00089
를 야기한다. 쌍대 이론에 따르면, 쌍대식은 식 17로부터 유도되는
Figure pat00090
가 된다.
Figure pat00091
식 (17)
Figure pat00092
여기서
Figure pat00093
이다.
쌍대해
Figure pat00094
가 구해지면, 원 해는 식 18을 통해 되찾게된다.
Figure pat00095
식 (18)
식 18은 박스 제약을 갖는 양의 준정부호(positive semidefinite) QP 문제이다. QP 문제를 해결하는 방법은 예를들어 QP 내부점해법(interior point method) 및 좌표 하강법(coordinate descent meshod)을 포함한다. 몇몇 실시예에서, ADMM은 식 17에서 QP 문제를 해결하기 위해 사용된다.
ADMM에 기반한 쌍대해가 아래 설명된다. 식 17은 식 19로 쓰여질 수 있다.
Figure pat00096
Figure pat00097
식 (19)
여기서,
Figure pat00098
,
Figure pat00099
Figure pat00100
이다. 식 (20)과 같다.
Figure pat00101
Figure pat00102
Figure pat00103
식 (20)
제한
Figure pat00104
에 대한 쌍대를 고려하면, 식 20의 확장 라그랑지안(augmented Lagrangian)은 식 21이다.
Figure pat00105
식 (21)
여기서, ρ는 2차 패널티 상의 가중치이다. 식 21 해결을 위한 ADMM 기반 업데이트가 식 22, 23, 및 24에 주어진다.
Figure pat00106
식 (22)
Figure pat00107
식 (23)
Figure pat00108
식 (24)
만약 원 갭
Figure pat00109
이고 쌍대 갭
Figure pat00110
이면 방법은 아래 미리 결정된
Figure pat00111
임계로 종료한다.
Figure pat00112
Figure pat00113
로 업데이트 되고, 식 25로 계산될 수 있는 제약 없는 QP 문제이다.
Figure pat00114
식 (25)
고정된 ρ가 사용되기 때문에, 역행렬
Figure pat00115
은 오직 한 번 계산될 수 있고 모든 프레임들을 거쳐 모든 반복(iterations)에 대해 다시 사용될 수 있다.
Figure pat00116
업데이트는 식 26의 닫힌 형태 해 또한 포함하는 박스 제한
Figure pat00117
하의
Figure pat00118
지점까지의 최소 거리를 필수적으로 찾는다.
Figure pat00119
식 (26)
ADMM 기반 QP 솔버는 또한
Figure pat00120
를 이전 프레임 내 최적해로 설정함으로써 웜 스타트와 함께 동작할 수 있다. 저 복잡도를 갖는 닫힌 형태 업데이트 때문에, 기존 방법들에 비해 더 빨리 수행한다.
도 5는 몇몇 실시예에 따른, L2 경로 최적화기를 도시한 도면이다.
ADMM QP 솔버(500)는 L2 컨트롤러(501), L2 CPU(503), 및 L2 ALU(505)를 포함한다.
L2 컨트롤러(501)는 미가공 데이터 시리즈 z를 평활화 시키기 위해 미가공 데이터 시리즈 z를 수신하는 제1 입력(507), 출력 통로의 평활도를 제어하기 위해 선택된 가중치들 w0, w1, w2 및 w3를 수신하는 제2 입력(509), 및 출력(511)을 포함한다. L2 컨트롤러(501)는 L2 추이 필터링 문제를 식 27로 수식화 한다.
Figure pat00121
식 (27)
L2 CPU(503)는 L2 컨트롤러(501)의 출력(511)에 연결된 입력, 및 출력(513)을 포함한다. L2 CPU(503)는 쌍대 변환을 통해 QP 문제를 야기한다.
L2 ALU(505)는 L2 CPU(503)의 출력(513)에 연결된 제1 입력, 출력(515), 및 출력(515)에 연결된 제2 입력을 포함한다. L2 ALU(505)는 웜 스타트를 갖는 닫힌 형태 업데이트를 갖는 ADMM 기반 해를 이용해 QP 문제를 해결하는데, 닫힌 형태 업데이트를 갖는 ADMM 기반 해의 이전 해가 웜 스타트로 이용되고, 평활화된 경로 y를 출력한다. L2 ALU(505)의 동작은 도 7에 자세히 설명된다.
도 6은 몇몇 실시예에 따른, ADMM 기반 QP 솔버의 방법을 도시한 흐름도이다.
단계(601)에서 L2 컨트롤러에 의해, ADMM 기반 QP 솔버는 미가공 데이터 시리즈 z를 평활화 시키기 위해 미가공 데이터 시리즈 z를 수신한다. 단계(603)는 L2 컨트롤러에 의해, ADMM 기반 QP 솔버가 출력 통로의 평활도를 제어하기 위해 선택된 가중치 w0, w1, w2, 및 w3를 수신한다. 단계(605)에서, L2 컨트롤러에 의해, ADMM 기반 QP 솔버는 L2 추이 필터링 문제를 식 27로 수식화 한다.
단계(607)에서 L2 CPU에 의해, ADMM 기반 QP 솔버는 쌍대 변환을 통해 QP 문제를 야기한다. 단계(609)에서 L2 ALU에 의해, ADMM 기반 QP 솔버는 닫힌 형태 업데이트를 갖는 ADMM 기반 해를 이용해 QP 문제를 해결한다. 단계(611)에서 L2 ALU에 의해, ADMM 기반 QP 솔버는 이전 해를 사용하여 QP 문제를 웜 스타트로써 사용한다. 단계(613)에서 L1 ALU에 의해, ADMM 기반 QP 해는 평활화된 경로 y를 출력한다.
L1 추이 필터링은 L2 추이 필터링과 다르다. 무엇을 선택해 사용할 지는 거리 패널티 항의 다른 선택들이 평활화된 출력 통로 내 속성을 바꿀 것이기 때문에, 어플리캐이션 요구량에 종속된다.
LP 솔버와 QP 솔버는 식 1에서 다른 수의 미분 항을 취할 수 있다. ADMM 기반 QP 솔버는 L2 표준을 갖는 미분 항을 처리할 수 있다. LP 솔버와 QP 솔버는 높은 차수 항들을 고려하여 필터링 문제들을 풀기 위해 일반화 될 수 있다.
도 7은 몇몇 실시예에 따른, L2 ALU(예를 들어, 도 5의 L2 ALU(505) 및 도 6의 단계(609))의 방법을 도시한 흐름도이다.
단계(701)에서, L2 ALU는 n 번째 프레임 입력 zn을 이용해 f를 업데이트 한다.
단계(703)에서, L2 ALU는 n이 0인지 결정한다. 단계(705)에서, L2 ALU는 변수 x0와 라그랑지 승수 a0를 무작위적으로 초기화 시키고, n이 0이라면 반복 숫자 k를 0으로 설정한다. 단계(707)에서, L2 ALU는 이전 프레임 n-1로부터의 최정 업데이트를 사용하여 x0 및 a0를 초기화하고 n이 0이 아니라면 반복 숫자 k를 0과 같게 설정한다.
단계(709)에서, L2 ALU는 식 28, 29, 및 30에 따라 ADMM 기반 업데이트를 결정한다.
Figure pat00122
식 (28)
Figure pat00123
식 (29)
Figure pat00124
Figure pat00125
식 (30)
단계(711)에서, L2 ALU는 식 32에 따라 잔차(residual) 갭을 계산한다.
Figure pat00126
식 (31)
Figure pat00127
식 (32)
단계(713)에서, L2 ALU는
Figure pat00128
이고
Figure pat00129
인지 결정한다. 단계(715)에서, L2 ALU는 만약
Figure pat00130
,
Figure pat00131
이 아니라면 반복 숫자 k를 k+1로 설정한다. 단계(717)에서, L2 ALU는 만약
Figure pat00132
,
Figure pat00133
라면
Figure pat00134
를 출력한다.
도 8은 몇몇 실시예에 따른, 네트워크 환경 내 전자 장치를 도시한 블록도이다.
네트워크 환경(800) 내 전자 장치(801)는 제1 네트워크(898)(예를 들어, 단거리 무선 통신 네트워크)를 통해 전자 장치(802)로, 또는 제2 네트워크(899)(예를 들어, 장거리 무선 통신 네트워크)를 통해 전자 장치(804) 또는 서버(808)로 통신할 수 있다. 몇몇 실시예에 따르면, 전자 장치(801)는 서버(808)를 통해 전자 장치(804)와 통신할 수 있다. 전자 장치(801)는 프로세서(820), 메모리(830), 입력 장치(850), 소리 출력 장치(855), 디스플레이 장치(860), 오디오 모듈(870), 센서 모듈(876), 인터페이스(877), 햅틱 모듈(879), 카메라 모듈(880), 파워 관리 모듈(888), 배터리(889), 통신 모듈(890), SIM(Subscriber Identification Module)(896), 또는 안테나 모듈(897)을 포함할 수 있다. 몇몇 실시예에서, 구성 요소들 중 하나(예를 들어, 디스플레이 장치(860) 또는 카메라 모듈(880))은 전자 장치(801)에서 생략될 수 있다. 또는 하나 이상의 구성 요소들이 전자 장치(801)에 추가될 수 있다. 몇몇 실시예에서, 일부 구성요소들은 단일 집적 회로로 구현될 수 있다. 예를 들어, 센서 모듈(876)(예를 들어, 지문감지 센서, 홍채 센서, 또는 조도 센서)가 디스플레이 장치(860)(예를 들어, 디스플레이) 내 내장될 수 있다.
예를 들어, 프로세서(820)는 프로세서와 연결된 전자 장치(801)의 최소한 하나의 다른 구성 요소(예를 들어, 하드웨어 또는 소프트웨어 구성요소)를 제어하기 위해 소프트웨어를 실행할 수 있고, 다양한 데이터 처리 또는 계산을 수행할 수 있다. 몇몇 실시예에 따르면, 데이터 프로세싱 혹은 연산의 일부로써, 프로세서(820)가 명령 또는 휘발성 메모리(832) 내 다른 구성 요소(예를 들어, 센서 모듈(876) 또는 통신 모듈(890))로부터 수신된 데이터를 로드할 수 있고 비휘발성 메모리(834) 내 결과 데이터를 저장할 수 있다. 몇몇 실시예에 따르면, 프로세서(820)는 메인 프로세서(821)(예를 들어 CPU) 또는 AP(Application Processor) 그리고 메인 프로세서(821)와 함께 혹은 독립적으로 동작 가능한 보조 프로세서(예를 들어, GPU(Graphics Processing Unit), ISP(Image Signal Processor), 센서 허브 프로세서, 또는 CP(Communication Processor))를 포함할 수 있다. 이에 더하여 혹은 대신에, 보조 프로세서(823)는 메인 프로세서(821) 보다 적은 전력을 소비할 수 있고, 또는 특별한 기능을 수행할 수 있다. 보조 프로세서(823)는 메인 프로세서(821)과 분리되어 혹은 그 일부로 구현될 수 있다.
보조 프로세서(823)는 최소한 여러 개의 기능들 혹은 메인 프로세서(821)가 비활성 상태(예를 들어, 수면)에 있는 동안은 메인 프로세서(821) 대신, 또는 메인 프로세서(821)가 활성 상태(예를 들어, 어플리캐이션의 실행)에 있는 동안은 메인 프로세서(821)와 함께, 전자 장치(801)의 구성 요소들 중의 최소한 하나의 구성 요소(예를 들어, 디스플레이 장치(860), 센서 모듈(876), 또는 통신 모듈(890))와 관련있는 상태를 제어할 수 있다. 몇몇 실시예에 따르면, 보조 프로세서(823)(예를들어 이미지 처리 프로세서 혹은 통신 프로세서)는 보조 프로세서(823)과 기능적으로 연결된 다른 구성 요소(예를 들어, 카메라 모듈(880) 또는 통신 모듈(890))의 일부로써 구현될 수 있다.
메모리(830)는 전자 장치(801)의 최소한 하나의 구성 요소(예를 들어, 프로세서(820) 또는 센서 모듈(876))에 의해 사용된 다양한 데이터를 저장할 수 있다. 다양한 데이터는 예를 들어, 소프트웨어(예를 들어, 프로그램(840)) 및 명령과 관련된 입력 데이터 혹은 출력 데이터를 포함할 수 있다. 메모리(830)는 휘발성 메모리(832) 또는 비휘발성 메모리(834)를 포함할 수 있다.
프로그램(840)은 메모리(830) 내에 소프트웨어로써 저장될 수 있고, 예를 들어 OS(Operating System)(842), 미들웨어(844), 또는 어플리케이션(846)을 포함할 수 있습니다.
입력 장치(850)는 전자 장치(801)의 다른 구성 요소(예를 들어, 프로세서(820))에 의해, 전자 장치(801)의 외부(예를 들어, 사용자)로부터 사용될 명령 혹은 데이터를 수신할 수 있다. 입력 장치(850)는 예를 들어, 마이크로폰, 마우스, 또는 키보드를 포함할 수 있다.
소리 출력 장치(855)는 전자 장치(801)의 외부로 소리 신호들을 출력할 수 있다. 소리 출력 장치(855)는 예를 들어, 스피커 또는 수신기를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음과 같은 일반적인 목적들을 위해 사용될 수 있고, 수신기는 수신 전화 수신에 사용될 수 있다. 몇몇 실시예에 따르면, 수신기는 스피커와 분리되어 혹은 그 일부로 구현될 수 있다.
디스플레이 장치(860)는 전자 장치(801)의 외부(예를 들어, 사용자)로 시각적으로 정보를 제공할 수 있다. 디스플레이 장치(860)는 예를 들어, 디스플레이, 홀로그램 장치, 혹은 프로젝터 그리고 디스플레이, 홀로그램 장치, 및 프로젝터에 상응하는 것들 중 하나를 제어하기 위한 제어 회로를 포함할 수 있다. 몇몇 실시예에 따르면, 디스플레이 장치(860)는 터치를 감지할 수 있는 터치 회로, 또는 터치에 의해 발생한 압력의 강도를 측정하는 감지 회로(예를 들어, 압력 센서)를 포함할 수 있다.
오디오 모듈(870)은 소리를 전자 신호로 변환할 수 있고 그 반대일 수 있다. 몇몇 실시예에 따르면, 오디오 모듈(870)은 입력 장치(850)를 통해 소리를 얻거나 또는 출력 장치(855)를 통한 소리의 출력 또는 외부 전자 장치(예를 들어, 전자 장치(802))의 해드폰에 유선 혹은 무선으로 전자 장치(801)이 연결될 수 있다.
센서 모듈(876)은 전자 장치(801)의 동작 상태(예를 들어, 전력 또는 온도) 또는 전자 장치(801)의 외부 환경 상태(예를 들어, 사용자의 상태)를 감지할 수 있고, 감지된 상태에 따른 전자 신호 또는 데이터 값을 발생한다. 몇몇 실시예에 따르면, 센서 모듈(876)은 예를 들어, 동작 센서, 자이로 센서, 대기압 센서, 자기 센서, 가속 센서, 그립 센서, 근접 센서, 컬러 센서, 적외선 센서, 생체 인식 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(877)는 외부 전자 장치(예를 들어, 전자 장치(802))에 직접적(예를 들어 유선) 혹은 무선으로 연결된 전자 장치(801)에 사용되는 하나 이상의 특정 프로토콜들을 지원할 수 있다.
몇몇 실시예에 따르면, 인터페이스(877)는 예를 들어, HDMI(High Definition Multimedia Interface), USB(Universal Serial Bus) 인터페이스, SD(Secure Digital) 카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 터미널(878)은 외부 전자 장치(예를 들어, 전자 장치(802))와 전자 장치(801)를 물리적으로 연결할 수 있는 컨낵터를 포함할 수 있다. 몇몇 실시예에서, 연결 단자(878)은 예를 들어, HDMI 컨낵터, USB 컨낵터, SD 카드 컨낵터 또는 오디오 컨낵터(예를 들어 해드폰 컨낵터)를 포함할 수 있다.
햅틱 모듈(879)은 전기적 신호를 기계석 자극(예를 들어, 진동 혹은 움직임) 또는 촉각 혹은 근감각을 통해 사용자에 의해 인식되는 전기적 자극으로 변환될 수 있다. 몇몇 실시예에 따르면, 햅틱 모듈(879)은 예를 들어, 모터, 압전 소자, 또는 전기 자극기를 포함할 수 있다.
카메라 모듈(880)은 정지 이미지 혹은 움직이는 이미지를 캡쳐할 수 있다. 몇몇 실시예에 따르면, 카메라 모듈(880)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 신호 프로세서들 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(888)은 전자 장치(801)에 공급되는 전력을 관리할 수 있다. 몇몇 실시예에 따르면, 전력 관리 모듈(888)은 예를 들어 PMIC(Power Management Integrated Circuit)의 적어도 일부로써 구현될 수 있다.
배터리(889)는 전자 장치(801)의 최소 하나 구성요소에 공급되는 전력을 공급할 수 있다. 몇몇 실시예에 따르면, 배터리(889)는 예를 들어, 충전식이 아닌 1차 전지, 재충전 가능한 2차 전지 혹은 연료 전지를 포함할 수 있다.
통신 모듈(890)은 전자 장치(801)와 외부 전자 장치(예를 들어, 전자 장치(802), 전자 장치(804), 또는 서버(808)) 간의 직접(예를 들어, 유선) 통신 채널 혹은 무선 통신 채널의 형성을 지원할 수 있고 형성된 통신 채널을 통해 통신을 수행할 수 있다. 통신 모듈(890)은 프로세서(820)(예를 들어, AP)로부터 독립적으로 동작하는 하나 이상의 통신 프로세서들을 포함할 수 있고 직접(예를 들어, 유선) 통신 혹은 무선 통신을 지원할 수 있다. 몇몇 실시예에 따르면, 통신 모듈(890)은 무선 통신 모듈(892)(예를 들어, 휴대폰 통신 모듈, 단거리 무선 통신 모듈, 또는 GNSS(Global Navigation Satellite System) 통신 모듈) 또는 유선 통신 모듈(894)(예를 들어, LAN(Local Area Network) 통신 모듈 또는 PLC(Power Lime Communication) 모듈)을 포함할 수 있다. 이들 통신 모듈 중 대응하는 하나는 제1 네트워크(898)(예를 들어, BluetoothTM, Wi-Fi 다이렉트, 또는 IrDA(Infrared Data Association)와 같은 단거리 통신 네트워크) 또는 제2 네트워크(899)(예를 들어, 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예를 들어, LAN 또는 WAN)과 같은 장거리 통신 네트워크)를 통해 외부 전자 장치와 통신할 수 있다. 이러한 다양한 유형의 통신 모듈은 서로 분리되어 있는 단일 구성 요소(예를 들어, 단일 IC)로 구현될 수 있고, 또는 다중 구성 요소들(예를 들어, 다중 IC)로써 구현될 수 있다. 무선 통신 모듈(892)은 가입자 식별 모듈(896)에 저장된 가입자 정보(예를 들어, IMSI(International Mobile Subscriber Identity))를 이용하여 제1 네트워크(898) 혹은 제2 네트워크(899)와 같은 통신 네트워크 내 전자 장치(801)를 식별하고 증명할 수 있다.
안테나 모듈(897)은 전자 장치의 바깥으로(예를 들어, 외부 전자 장치)로 전송 혹은 바깥으로부터 수신할 수 있다. 몇몇 실시예에 따르면, 안테나 모듈(897)은 하나 이상의 안테나들을 포함할 수 있으며, 이로부터 제1 네트워크(898) 또는 제2 네트워크(890)와 같은 통신 내트워크 내 사용되는 통신 방식에 적합한 최소 하나가 예를 들어, 통신 모듈(890)(예를 들어, 무선 통신 모듈(892)에 의해 선택될 수 있다. 신호 또는 전력은 통신 모듈(890)과 외부 전자 장치 사이에 최소 하나의 선택된 안테나를 통해 전송되거나 수신될 수 있다.
상술된 구성 요소들 중 적어도 일부는 주변 통신 방식(예를 들어, 버스, GPIO(General Purpose Input Output), SPI(Serial Peripheral Interface), 또는 MPI(Mobile Industry Processor Interface))을 통해 그들 사이의 상호 연결되고 신호들(예를 들어, 명령 또는 데이터)을 통신할 수 있다.
몇몇 실시예에 따르면, 명령들 또는 데이터는 제2 네트워크(899)와 연결된 서버(808)를 통해 전자 장치(801)와 외부 전자 장치(804) 사이에 전송되거나 수신될 수 있다. 전자 장치들(802, 804) 각각은 전자 장치(801)와 같은 종류 혹은 다른 종류의 장치들일 수 있다. 몇몇 실시예에 따르면, 전자 장치(801)에서 수행되는 동작의 전부 혹은 일부가 전자 장치들(802, 804 또는 808)의 하나 이상에서 실행될 수 있다. 예를 들어, 만약 전자 장치(801)가 기능 또는 서비스를 자동으로 수행해야 하거나, 혹은 사용자 혹은 다른 장치로부터의 요구에 대한 응답을 해야 한다면, 전자 장치(801)은 대신에 혹은 그에 덧붙여, 기능 또는 서비스를 수행하고 기능 또는 서비스의 적어도 일부를 수행하도록 하나 이상의 외부 전자 장치들에 요청할 수 있다. 요청을 수신하는 하나 이상의 외부 전자 장치들은 요구된 기능 혹은 서비스의 적어도 일부 또는 요구와 관련된 추가적인 기능 혹은 서비스를 수행할 수 있고, 전자 장치(801)에 수행 결과를 전송할 수 있다. 전자 장치(801)는 요구에 대한 응답의 적어도 일부로써, 결과의 추가 처리를 하거나 혹은 추가 처리를 하지 않고 결과를 제공할 수 있다. 이를 위해, 예를 들어, 클라우드 컴퓨팅, 분산 컴퓨팅 또는 클라이언트-서버 컴퓨팅 기술을 사용할 수 있다.
몇몇 실시예는 기계(예를 들어, 전자 장치(801))에 의해 읽을 수 있는 저장 매체(예를 들어, 내부 메모리(836) 또는 외부 메모리(838)) 내 저장된 하나 이상의 명령들을 포함하는 소프트웨어(예를 들어, 프로그램(840))로써 구현될 수 있다. 예를 들어, 기계(예를 들어, 프로세서(820))의 프로세서(예를 들어, 프로세서(820))는 저장 매체 내 저장된 하나 이상의 명령들 중 적어도 하나를 호출할 수 있고 프로세서의 제어 하에 하나 이상의 구성 요소들을 사용하거나 사용하지 않고 실행할 수 있다. 따라서, 적어도 하나의 호출된 명령에 따라 적어도 하나의 명령을 수행하도록 기계가 동작될 수 있다. 하나 이상의 명령들은 인터프리터에 의해 실행 가능한 컴파일러 혹은 코드에 의해 발생되는 코드를 포함할 수 있다. 기계-판독 가능 저장 매체는 비 일시적 저장 매체의 형내로 제공될 수 있다. "비 일시적"이라는 용어는 실재하는 장치인 저장 매체를 가리키고 신호(예를 들어, 전자기파)를 포함하지 않으나, 이 용어는 저장 매체 내 반영구적으로 저장된 데이터의 위치와 저장 매체 내 일시적으로 저장된 데이터 위치 사이와 다르지 않다.
도 9는 몇몇 실시예에 따른, 카메라 모듈의 블록도를 도시한 도면이다.
카메라 모듈(1000)은 렌즈 어셈블리(1010), 플래시(1020), 이미지 센서(1030), 이미지 흔들림 방지기(1040), 메모리(1050)(예를 들어, 버퍼 메모리), 또는 이미지 신호 프로세서(1060)를 포함할 수 있다. 렌즈 어셈블리(1010)는 이미지가 촬영되는 대상물로부터 방출되거나 반사된 빛을 모을 수 있다. 렌즈 어셈블리(1010)는 하나 이상의 렌즈들을 포함할 수 있다. 몇몇 실시예에 따르면, 카메라 모듈(1000)은 복수의 렌즈 어셈블리들(1010)을 포함할 수 있다. 이 경우, 카메라 모듈(1000)은 예를 들어, 듀얼 카메라, 360도 회전 카메라 또는 구형 카메라를 구성할 수 있다. 복수의 렌즈 어셈블리들(1010)의 일부는 동일한 렌즈 속성(예를 들어, 시야각, 초점 거리, 자동 포커싱, f 넘버 또는 광학 줌)을 가질 수 있고, 또는 렌즈 어셈블리의 적어도 하나는 다른 렌즈 어셈블리와는 다른 하나 이상의 속성들을 가질 수 있다. 렌즈 어셈블리(1010)는 예를 들어, 광각렌즈 또는 망원 렌즈를 포함할 수 있다.
플래시(1020)는 물체로부터 반사된 광을 보강하는데 사용되는 광을 방출할 수 있다. 몇몇 실시예에서, 플래시(1020)는 하나 이상의 LEDs(Light Emmiting Diodes)(예를 들어, RGB(Red-Green-Blue) LED, 백색 LED, IR(Infrared) LED 또는 UV(UltraViolet) LED) 또는 제논 램프를 포함할 수 있다. 이미지 센서(1030)는 상으로부터 방출되거나 반사되고 랜즈 어샘블리(1010)를 통해 전달된 빛을 전기 신호로 변환시킴으로써 상응하는 이미지를 획득할 수 있다. 몇몇 실시예에 따르면, 이미지 센서(1030)는 RGB 센서, BW(Black-and-White) 센서, 적외선 센서, 또는 UV 센서, 같은 속성을 갖는 복수의 이미지 센서들, 혹은 다른 속성들을 같는 복수의 센서들과 또는 다른 속성들을 갖는 복수의 이미지 센서들로부터 선택될 수 있다. 이미지 센서(1030) 내 포함된 각 이미지 센서는 예를 들어, CCD(Charged Coupled Device) 센서 또는 CMOS(Complementary Metal Oxide Semiconductor) 센서를 이용해 구현될 수 있다.
이미지 흔들림 방지기(1040)는 이미지 센서(1030) 또는 렌즈 어셈블리(1010) 내 포함된 적어도 하나의 렌즈들을 특정 방향으로 이동할 수 있고 또는 카메라 모듈(1000) 또는 카메라 모듈(1000)을 포함하는 전자 장치(801)의 움직임에 대한 응답으로 이미지 센서(1030)의 동작 속성(예를 들어, 판독 타이밍 조절)을 제어할 수 있다. 이는 캡쳐되는 이미지 상 움직임의 부정적 효과(예를 들어, 이미지 블러링)의 적어도 일부를 보상할 수 있게 한다. 몇몇 실시예에 따르면, 이미지 흔들림 방지기(1040)는 카메라 모듈(1000) 또는 자이로 센서를 이용한 전자 장치(801) 또는 카메라 모듈(1000)의 안 또는 밖에 배치된 가속 센서에 의한 움직임을 감지할 수 있다. 몇몇 실시예에 따르면, 이미지 흔들림 방지기(1040)는 예를 들어, 광학 이미지 흔들림 방지기로써 구현될 수 있다.
메모리(1050)는 적어도 일시적으로, 후속적인 이미지 처리 태스크를 위한 이미지 센서(1030)을 통해 획득된 이미지의 적어도 일부를 저장할 수 있다. 예를 들어, 셔터 래그로 인해 이미지 캡쳐가 지연되거나 다중 이미지들이 빠르게 캡쳐되면, 획득된 미가공 이미지(예를 들어, Bayer 패턴 이미지, 고해상도 이미지)가 메모리(1050) 내 저장될 수 있고, 이에 상응하는 복사 이미지(예를 들어, 저 해상도 이미지)가 디스플레이 장치(860)를 통해 프리뷰될 수 있다. 그 후, 특정 조건이 충족되면(예를 들어, 사용자의 입력에 의해 또는 시스템 명령에 의해), 메모리(1050) 내 저장된 미가공 이미지의 적어도 일부가 예를 들어, 이미지 신호 프로세서(1060)에 의해 획득될 수 있고 처리될 수 있다. 몇몇 실시예에 따르면, 메모리(1050)는 메모리(830)의 적어도 일부로써 구성되거나 메모리(830)로부터 독립적으로 동작하는 별개 메모리로써 구성될 수 있다.
이미지 신호 프로세서(1060)는 이미지 센서(1030) 또는 메모리(1050) 내 저장된 이미지를 통해 획득된 이미지에 대해 하나 이상의 이미지 처리를 수행할 수 있다. 하나 이상의 이미지 처리는 예를 들어, 깊이 맵 생성, 3D 모델링, 파노라마 생성, 특징점 추출, 이미지 합성 또는 이미지 보상(예를 들어, 노이즈 감소, 해상도 조절, 밝기 조절, 블러링, 선명화 또는 연화)을 포함한다. 부가적으로 또는 대안적으로, 이미지 신호 처리기(1060)는 카메라 모듈(880)에 포함된 구성 요소들 중 적어도 하나(예를 들어, 이미지 센서(1030))에 대한 제어(예를 들어, 노출 시간 제어 또는 판독 타이밍 제어)를 수행할 수 있다. 이미지 신호 처리기(1060)에 의해 처리된 이미지는 메모리(1050) 내에서 부가적인 처리를 위해 저장될 수 있거나 카메라 모듈(1000) 밖의 외부 구성 요소(예를 들어, 메모리(830), 디스플레이 장치(860), 전자 장치(802), 전자 장치(804), 또는 서버(808))로 제공될 수 있다. 몇몇 실시예에 따르면, 이미지 신호 처리기(1060)는 프로세서(820)의 적어도 일부로써, 혹은 프로세서(820)와 독립적으로 동작하는 별개 프로세서로써 구성될 수 있다. 만약, 이미지 신호 처리기(1060)가 프로세서(820)와 별개의 프로세서로써 구성된다면, 이미지 신호 프로세서(360)에 의해 처리된 적어도 하나의 처리된 이미지는 디스플레이 장치(860)를 통해 또는 추가 처리된 후에 표시될 수 있다.
몇몇 실시예에 따르면, 전자 장치(801)는 다른 속성들 혹은 기능들을 갖는 복수의 카메라 모듈들(880)을 포함할 수 있다. 이 경우, 복수의 카메라 모듈(880)의 적어도 하나는 예를 들어, 광각 카메라를 형성할 수 있고 복수의 카메라 모듈들(880)의 적어도 다른 하나는 망원 카메라를 형성할 수 있다. 유사하게, 복수의 카메라 모듈들(880)의 적어도 하나는 예를 들어, 전방 카메라를 형성할 수 있고 복수 카메라 모듈들(880)의 적어도 다른 하나는 후방 카메라를 형성할 수 있다.
본 발명의 특정 실시예가 본 개시의 상세한 설명에서 설명되었지만, 본 개시는 본 개시의 범위를 벗어나지 않으면서 다양한 형태로 변형될 수 있다. 따라서, 본 개시의 범위는 단지 설명된 실시예에 기초하여 결정되어서는 안 되고 오히려 첨부된 청구 범위 및 그에 대응하는 것에 기초하여 결정된다.
109, 117: 입력
111, 113, 119, 211, 215, 513, 515: 출력
207, 507: 제1 입력
209, 509: 제2 입력

Claims (20)

  1. L1 추이 필터링 문제를 원-쌍대(primal-dual) LP(Linear Programming) 최적화 문제 쌍으로 변형하는 L1 CPU(Central Processing Unit); 및
    상기 L1 CPU에 연결되고, 상기 원-쌍대 LP 최적화 문제 쌍의 원(primal) 문제를 해결하는 L1 ALU(Arithmetic Logic Unit)를 포함하는 장치.
  2. 제 1항에 있어서,
    상기 L1 ALU는 상기 원-쌍대 LP 최적화 문제 쌍의 이전 해(previous solution)를 웜 스타트(warm start)로 사용하는 장치.
  3. 제 1항에 있어서,
    상기 L1 추이 필터링 문제는 [수학식 1]로 포뮬레이팅(formulating)되고,
    [수학식 1]
    Figure pat00135

    여기서 z는 미가공 데이터(raw data) 시리즈이며, w0, w1, w2, 및 w3는 가중치들이며, y는 평활화된 출력 통로, D i 는 i차 미분 행렬이고 rth는 임계 벡터인 장치.
  4. 제 1항에 있어서,
    상기 L1 ALU는 표 2의 확장된 전체(full) 심플렉스 표형 방법으로 상기 원-쌍대 LP 최적화 문제 쌍의 상기 원 문제를 해결하고,
    [표 2]
    Figure pat00136

    여기서 A는 팻(fat) 행렬, c는 열 행렬, B는 기저 행렬, T는 전치 행렬이고 b = Ax이며 x는 벡터인 장치.
  5. 제 1항에 있어서,
    상기 L1 ALU는,
    k번째 프레임 입력 zk(k는 정수)를 이용한 c를 업데이트 함으로써 상기 원-쌍대 LP 최적화 문제 쌍의 상기 원 문제를 해결하고,
    k가 0과 같은지 결정하고,
    k가 0이면 심플렉스 초기화를 이용하여 상기 확장된 전체 심플렉스 표형을 초기화하고,
    k가 0이 아니면 최종 업데이트 된 상기 확장된 전체 확장된 심플렉스 표형 방법의 최종 업데이트의 웜 스타트로 상기 확장된 전체 심플렉스 표형 방법을 초기화하고,
    현재 확장된 전체 심플렉스 표형 방법을 결정하고,
    Figure pat00137
    값이 모두 음이 아닌지 결정하고,
    Figure pat00138
    값이 모두 음이 아니라면
    Figure pat00139
    를 출력하고,
    Figure pat00140
    값 중 적어도 하나가 양이라면
    Figure pat00141
    인 j열 입력을 결정하고,
    Figure pat00142
    가 양이 아닌지 결정하고,
    Figure pat00143
    가 양이 아니라면 무한대 해(unbounded solution)를 결정하고,
    Figure pat00144
    가 양이라면 모든 양의 ui 가운데 가장 작은 xB(i)/ui를 주는 j열의 존재를 결정하고,
    기본 행 연산을 수행하고 상기 확장된 전체 심플렉스 표형 방법을 업데이트 하는 장치.
  6. L1 CPU에 의해, L1 추이 필터링 문제를 원-쌍대(primal-dual) LP(Linear Programming) 최적화 문제 쌍으로 변형하고,
    상기 L1 CPU에 연결된 L1 ALU를 통해, 상기 원-쌍대 LP 최적화 문제 쌍의 원(primal) 문제를 해결하는 것을 포함하는 방법.
  7. 제 6항에 있어서,
    상기 L1 ALU에 의해, 상기 원 문제의 이전 해를 웜 스타트로 사용하는 것을 더 포함하는 방법.
  8. 제 6항에 있어서,
    상기 L1 추이 필터링 문제를 포뮬레이팅(formulating)하는 것은 상기 L1 추이 필터링 문제를 [수학식 2]로 포뮬레이팅(formulating)하는 것을 포함하는 방법.
    [수학식 2]
    Figure pat00145

    여기서 z는 평활화된(smoothed) 미가공 데이터(raw data) 시리즈이며, w0, w1, w2, 및 w3는 가중치들이며, y는 평활화된 출력 통로, D i 는 i차 미분 행렬이고 rth는 임계 벡터인 방법.
  9. 제 6항에 있어서,
    상기 L1 CPU에 연결된 상기 L1 ALU에 의해, 상기 확장된 전체 심플렉스 표형 방법으로 상기 원-쌍대 LP 최적화 문제 쌍의 상기 원 문제를 해결하는 것은,
    표 3의 상기 확장된 전체 심플렉스 표현 방법으로 상기 원-쌍대 LP 최적화 문제 쌍의 상기 원 문제를 해결하고,
    [표 3]
    Figure pat00146

    여기서 A는 팻(fat) 행렬, c는 열 행렬, B는 기저 행렬, T는 전치 행렬이고 b = Ax이며 x는 벡터인 것을 포함하는 방법.
  10. 제 6항에 있어서,
    상기 L1 CPU에 연결된 상기 L1 ALU에 의해 상기 확장된 전체 심플렉스 표형 방법으로 상기 원-쌍대 LP 최적화 문제 쌍의 상기 원 문제를 해결하는 것은,
    k번째 프레임 입력 zk(k는 정수)를 이용해 c를 업데이트하고,
    k가 0과 같은지 결정하고,
    k가 0과 같다면 심플렉스 초기화를 이용하여 상기 확장된 전체 심플렉스 방법을 초기화 하고,
    k가 0이 아니면 최종 업데이트 된 상기 확장된 전체 심플렉스 표형 방법의 웜 스타트로 상기 확장된 전체 심플렉스 표형 방법을 초기화하고,
    현재 확장된 전체 심플렉스 표형 방법을 결정하고,
    Figure pat00147
    값이 모두 음이 아닌지 결정하여
    Figure pat00148
    값이 모두 음이 아니라면
    Figure pat00149
    를 출력하고,
    Figure pat00150
    값 중 적어도 하나가 양이라면
    Figure pat00151
    인 j열 입력을 결정하고,
    Figure pat00152
    가 양이 아닌지 결정하고,
    Figure pat00153
    가 양이 아니라면 무한대 해를 결정하고,
    Figure pat00154
    가 양이라면 모든 양의 ui 가운데 가장 작은 xB(i)/ui를 주는 j열의 존재를 결정하고,
    기본 행 연산을 수행하고 상기 확장된 전체 심플렉스 표형 방법을 업데이트 하는 것을 포함하는 방법.
  11. 쌍대 전환(dual transformation)을 통해 QP(Quadratic Programming) 문제를 야기하는 L2 CPU; 및
    상기 L2 CPU에 연결되고, 닫힌 형태(closed-form) 업데이트를 갖는 ADMM(Alternating Direction Method of Multipliers) 기반 해를 이용해 상기 QP 문제를 해결하는 L2 ALU를 포함하는 장치.
  12. 제 11항에 있어서,
    상기 L2 ALU는 상기 ADMM 기반 해의 이전 해를 웜 스타트로 사용하는 장치.
  13. 제 11항에 있어서,
    L2 추이 필터링 문제를 [수학식 3]으로 포뮬레이팅(formulate)하는 L2 컨트롤러를 더 포함하되,
    [수학식 3]
    Figure pat00155

    여기서 z는 미가공 데이터(raw data) 시리즈이며, w0, w1, w2, 및 w3는 가중치들이며, y는 평활화된 출력 통로, D i 는 i차 미분 행렬이고 rth는 임계 벡터인 장치.
  14. 제 11항에 있어서,
    상기 L2 ALU는 쌍대 전환을 통해 상기 QP 문제를 야기하는 장치.
  15. 제 11항에 있어서,
    상기 L2 ALU는,
    n 번째 프레임 입력 zn을 이용해 f를 업데이트 함으로써 닫힌 형태 업데이트를 갖는 ADMM 기반 해를 이용해 상기 QP 문제를 해결하고,
    n이 0인지 결정하고,
    변수 x0와 라그랑주 승수 a0를 무작위로 초기화하고,
    n이 0이라면 반복 횟수 k를 0으로 설정하고,
    이전 프레임 n-1로부터의 최종 업데이트를 이용해 상기 x0와 상기 a0를 초기화하고,
    n이 0이 아니라면 상기 반복 횟수 k를 0으로 설정하고,
    ADMM 기반 업데이트를 [수학식 4], [수학식 5], 및 [수학식 6]에 따라 결정하고,
    [수학식 4]
    Figure pat00156

    [수학식 5]
    Figure pat00157

    [수학식 6]
    Figure pat00158
    Figure pat00159

    잔차(residual) 갭을 [수학식 7] 및 [수학식 8]에 따라 계산하고,
    [수학식 7]
    Figure pat00160

    [수학식 8]
    Figure pat00161

    rp < y 이고 rd < y인지 결정하고,
    rp < y 이고 rd < y가 아니라면 상기 반복 횟수 k를 k+1로 설정하고,
    rp < y 이고 rd < y라면
    Figure pat00162
    을 출력하고,
    Figure pat00163
    ,
    Figure pat00164
    , A 는 팻 행렬, T 는 전치 행렬, B 는 기저 행렬, n, k는 정수, z는 미가공 데이터 시리즈, ρ는 이차(quadratic) 패널티 상 가중치, γlb는 하한 임계값, 및 γub는 상한 임계인 장치.
  16. L2 CPU에 의해, 쌍대 전송을 통한 QP 문제를 야기하고,
    상기 L2 CPU에 연결된 L2 ALU에 의해, 닫힌 형태 업데이트를 갖는 ADMM 기반 해를 이용해 상기 QP 문제를 해결하는 것을 포함하는 방법.
  17. 제 16항에 있어서,
    상기 L2 ALU에 의해 상기 ADMM 기반 해의 이전 해를 웜 스타트로 사용하는 것을 더 포함하는 방법.
  18. 제 16항에 있어서,
    L2 추이 필터링 문제를 [수학식 9]로 포뮬레이팅(formulating)하는 것을 더 포함하되,
    [수학식 9]
    Figure pat00165

    여기서 z는 미가공 데이터(raw data) 시리즈이며, w0, w1, w2, 및 w3는 가중치들이며, y는 평활화된 출력 통로, D i 는 i차 미분 행렬이고 rth는 임계 벡터인 방법.
  19. 제 16항에 있어서,
    상기 L2 CPU에 의해, 쌍대 전환을 통한 QP 문제를 야기하는 방법.
  20. 제 16항에 있어서,
    상기 L2 CPU에 연결된 상기 L2 ALU에 의해, 닫힌 형태 업데이트를 갖는 ADMM 기반 해를 이용해 상기 QP 문제를 해결하는 것은,
    n 번째 프레임 입력 zn을 이용해 f를 업데이트 하고,
    n이 0인지 결정하고,
    변수 x0와 라그랑주 승수 a0를 무작위로 초기화하고, n이 0이 라면 반복 횟수 k를 0으로 설정하고,
    이전 프레임 n-1로부터의 최종 업데이트를 이용해 상기 x0와 상기 a0를 초기화하고, n이 0이 아니라면 상기 반복 횟수 k를 0으로 설정하고,
    ADMM 기반 업데이트를 [수학식 10], [수학식 11], 및 [수학식 12]에 따라 결정하고,
    [수학식 10]
    Figure pat00166

    [수학식 11]
    Figure pat00167

    [수학식 12]
    Figure pat00168
    Figure pat00169

    잔차 갭을 [수학식 13] 및 [수학식 14]에 따라 계산하고,
    [수학식 13]
    Figure pat00170

    [수학식 14]
    Figure pat00171

    rp < y 이고 rd < y인지 결정하고,
    rp < y 이고 rd < y가 아니라면 반복 횟수 k를 k+1로 설정하고,
    rp < y 이고 rd < y라면
    Figure pat00172
    을 출력하고,
    Figure pat00173
    ,
    Figure pat00174
    , A 는 팻 행렬, T 는 전치 행렬, B 는 기저 행렬, n, k는 정수, z는 미가공 데이터 시리즈, ρ는 이차(quadratic) 패널티 상 가중치, γlb는 하한 임계값, 및 γub는 상한 임계인 것을 포함하는 방법.

KR1020210174705A 2017-11-13 2021-12-08 제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법 KR102385018B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762585187P 2017-11-13 2017-11-13
US62/585,187 2017-11-13
US16/016,256 US10534837B2 (en) 2017-11-13 2018-06-22 Apparatus and method of low complexity optimization solver for path smoothing with constraint variation
US16/016,256 2018-06-22
KR1020180089156A KR102339906B1 (ko) 2017-11-13 2018-07-31 제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180089156A Division KR102339906B1 (ko) 2017-11-13 2018-07-31 제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210152446A true KR20210152446A (ko) 2021-12-15
KR102385018B1 KR102385018B1 (ko) 2022-04-08

Family

ID=66432195

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020180080512A KR102385024B1 (ko) 2017-11-13 2018-07-11 카메라 및 자이로스코프의 융합을 이용한 5차원 (5d) 비디오 안정화 장치 및 방법
KR1020180089156A KR102339906B1 (ko) 2017-11-13 2018-07-31 제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법
KR1020210174705A KR102385018B1 (ko) 2017-11-13 2021-12-08 제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020180080512A KR102385024B1 (ko) 2017-11-13 2018-07-11 카메라 및 자이로스코프의 융합을 이용한 5차원 (5d) 비디오 안정화 장치 및 방법
KR1020180089156A KR102339906B1 (ko) 2017-11-13 2018-07-31 제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법

Country Status (4)

Country Link
US (4) US10740431B2 (ko)
KR (3) KR102385024B1 (ko)
CN (2) CN109783432B (ko)
TW (2) TWI773808B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017132903A1 (zh) * 2016-02-03 2017-08-10 徐鹤菲 与可见光复用的生物特征复合成像系统和方法
US10740431B2 (en) * 2017-11-13 2020-08-11 Samsung Electronics Co., Ltd Apparatus and method of five dimensional (5D) video stabilization with camera and gyroscope fusion
EP3798869A4 (en) * 2018-05-23 2021-06-23 Mitsubishi Electric Corporation SYSTEM FOR THE SOLUTION OF LINEAR PROGRAMMING PROBLEMS, DEVICE FOR CALCULATION OF SOLUTION CANDIDATES, DEVICE FOR CALCULATION OF THE OPTIMAL SOLUTION, DEVICE FOR CONTROLLING THE ENGINES OF SPACE VEHICLES AND EQUIPMENT FOR MOVING LIFE TRUCKS
CN110557522A (zh) * 2018-05-31 2019-12-10 阿里巴巴集团控股有限公司 一种去除视频抖动的方法及装置
JP6966395B2 (ja) * 2018-08-23 2021-11-17 株式会社日立製作所 最適化システム及び最適化方法
CN110519507B (zh) * 2019-07-23 2021-03-19 影石创新科技股份有限公司 一种相机镜头平滑处理方法、装置及便携式终端
CN110677179B (zh) * 2019-10-09 2020-11-10 河北科技大学 接收天线选择方法、装置及终端设备
US11968453B2 (en) * 2020-08-12 2024-04-23 Corephotonics Ltd. Optical image stabilization in a scanning folded camera
CN112750088B (zh) * 2020-12-16 2022-07-26 北京大学 基于线性规划的视频图像自动扭正和稳像的方法
US11729505B2 (en) 2021-02-10 2023-08-15 Samsung Electronics Co., Ltd. Image signal processor, electronic device, and image stabilization method
CN112819886B (zh) * 2021-02-23 2023-01-03 中国人民解放军军事科学院国防科技创新研究院 基于倾角传感器的动态绳索摆角测量方法及系统
CN115689898A (zh) * 2021-07-29 2023-02-03 北京字跳网络技术有限公司 一种姿态估计方法、装置、设备及介质
US11823346B2 (en) * 2022-01-17 2023-11-21 Snap Inc. AR body part tracking system
CN117775005B (zh) * 2023-11-23 2024-07-30 西部科学城智能网联汽车创新中心(重庆)有限公司 车辆轨迹的滤波平滑处理方法及装置

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ID27878A (id) 1997-12-05 2001-05-03 Dynamic Digital Depth Res Pty Konversi image yang ditingkatkan dan teknik mengenkodekan
US7221776B2 (en) 2001-10-31 2007-05-22 Arcsoft, Inc. Video stabilizer
US20050010388A1 (en) * 2003-07-11 2005-01-13 International Business Machines Corporation Dynamic online multi-parameter optimization system and method for autonomic computing systems
US8134603B2 (en) * 2005-08-12 2012-03-13 Nxp B.V. Method and system for digital image stabilization
US20080112630A1 (en) * 2006-11-09 2008-05-15 Oscar Nestares Digital video stabilization based on robust dominant motion estimation
TWI317898B (en) * 2006-12-12 2009-12-01 Ind Tech Res Inst Inertial sensing input apparatus and method
GB0807411D0 (en) * 2008-04-23 2008-05-28 Mitsubishi Electric Inf Tech Scale robust feature-based indentfiers for image identification
US8102428B2 (en) * 2008-08-28 2012-01-24 Adobe Systems Incorporated Content-aware video stabilization
CN101459954A (zh) * 2009-01-06 2009-06-17 东南大学 适用于分布式天线系统的功率分配方法
US8290297B2 (en) 2009-01-20 2012-10-16 Mitsubishi Electric Research Laboratories, Inc. Method for editing images and videos
US9189859B2 (en) 2009-06-11 2015-11-17 Kabushiki Kaisha Toshiba 3D image generation
US10454645B2 (en) 2009-08-14 2019-10-22 Hmd Global Oy Coordinated multipoint transmission
US9197736B2 (en) 2009-12-31 2015-11-24 Digimarc Corporation Intuitive computing methods and systems
US8896715B2 (en) * 2010-02-11 2014-11-25 Microsoft Corporation Generic platform video image stabilization
US8531504B2 (en) * 2010-06-11 2013-09-10 Intel Corporation System and method for 3D video stabilization by fusing orientation sensor readings and image alignment estimates
US8924331B2 (en) 2010-09-03 2014-12-30 Honeywell International Inc. System and method for solving quadratic programming problems with bound constraints utilizing a semi-explicit quadratic programming solver
US8872928B2 (en) * 2010-09-14 2014-10-28 Adobe Systems Incorporated Methods and apparatus for subspace video stabilization
US8531535B2 (en) * 2010-10-28 2013-09-10 Google Inc. Methods and systems for processing a video for stabilization and retargeting
CN102148934B (zh) * 2011-04-02 2013-02-06 北京理工大学 一种多模式实时电子稳像系统
US8686943B1 (en) 2011-05-13 2014-04-01 Imimtek, Inc. Two-dimensional method and system enabling three-dimensional user interaction with a device
US9177256B2 (en) * 2011-07-27 2015-11-03 International Business Machines Corporation Method for solving linear programs
US8719194B2 (en) * 2011-09-19 2014-05-06 Siemens Aktiengesellschaft Hybrid interior-point alternating directions algorithm for support vector machines and feature selection
US8553096B2 (en) * 2011-12-06 2013-10-08 Cisco Technology, Inc. Systems and methods for performing gyroscopic image stabilization
US9024970B2 (en) 2011-12-30 2015-05-05 Here Global B.V. Path side image on map overlay
US10495725B2 (en) * 2012-12-05 2019-12-03 Origin Wireless, Inc. Method, apparatus, server and system for real-time vital sign detection and monitoring
TWI435162B (zh) * 2012-10-22 2014-04-21 Nat Univ Chung Cheng Low complexity of the panoramic image and video bonding method
US10013477B2 (en) 2012-11-19 2018-07-03 The Penn State Research Foundation Accelerated discrete distribution clustering under wasserstein distance
US9374532B2 (en) 2013-03-15 2016-06-21 Google Inc. Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization
JP6045430B2 (ja) * 2013-04-18 2016-12-14 オリンパス株式会社 撮像装置及びその像ブレ補正方法
JP6108940B2 (ja) * 2013-04-25 2017-04-05 キヤノン株式会社 像振れ補正装置及びその制御方法、プログラム、記憶媒体
WO2015010244A1 (en) * 2013-07-23 2015-01-29 Microsoft Corporation Adaptive path smoothing for video stabilization
US9953400B2 (en) 2013-07-23 2018-04-24 Microsoft Technology Licensing, Llc Adaptive path smoothing for video stabilization
WO2015119207A1 (ja) * 2014-02-07 2015-08-13 株式会社モルフォ 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
US10002640B2 (en) 2014-02-28 2018-06-19 Microsoft Technology Licensing, Llc Hyper-lapse video through time-lapse and stabilization
US9854168B2 (en) * 2014-03-07 2017-12-26 Futurewei Technologies, Inc. One-pass video stabilization
CN103810725B (zh) * 2014-03-12 2016-06-08 北京理工大学 一种基于全局优化的视频稳定方法
US10586378B2 (en) * 2014-10-31 2020-03-10 Fyusion, Inc. Stabilizing image sequences based on camera rotation and focal length parameters
CN105872345A (zh) * 2015-01-20 2016-08-17 北京理工大学 基于特征匹配的全帧电子稳像方法
KR101703013B1 (ko) 2015-04-22 2017-02-06 (주) 리얼밸류 3차원 스캐너 및 스캐닝 방법
KR102352681B1 (ko) * 2015-07-27 2022-01-18 삼성전자주식회사 동영상 안정화 방법 및 이를 위한 전자 장치
US9633274B2 (en) * 2015-09-15 2017-04-25 Mitsubishi Electric Research Laboratories, Inc. Method and system for denoising images using deep Gaussian conditional random field network
WO2017087537A1 (en) * 2015-11-16 2017-05-26 Google Inc. Stabilization based on accelerometer data
EP3182373B1 (en) * 2015-12-17 2019-06-19 STMicroelectronics S.A. Improvements in determination of an ego-motion of a video apparatus in a slam type algorithm
KR102523997B1 (ko) 2016-02-12 2023-04-21 삼성전자주식회사 360도 영상 처리 방법 및 장치
JP6702796B2 (ja) 2016-05-16 2020-06-03 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法および画像処理プログラム
US9967539B2 (en) 2016-06-03 2018-05-08 Samsung Electronics Co., Ltd. Timestamp error correction with double readout for the 3D camera with epipolar line laser point scanning
CN106101535B (zh) 2016-06-21 2019-02-19 北京理工大学 一种基于局部及整体运动差异补偿的视频稳定方法
CN106130066B (zh) 2016-07-11 2018-07-17 温州大学 一种用于独立微电网系统的多目标鲁棒频率控制方法
CN106851102A (zh) * 2017-02-24 2017-06-13 北京理工大学 一种基于捆绑测地线路径优化的视频稳像方法
US10591926B2 (en) * 2017-09-18 2020-03-17 Baidu Usa Llc Smooth road reference for autonomous driving vehicles based on 2D constrained smoothing spline
US10740431B2 (en) * 2017-11-13 2020-08-11 Samsung Electronics Co., Ltd Apparatus and method of five dimensional (5D) video stabilization with camera and gyroscope fusion

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Matthias Grundmann 외 2명, Auto-directed video stabilization with robust L1 optimal camera paths, CVPR 2011. doi:10.1109/cvpr.2011.5995525, 2011.06.25 *

Also Published As

Publication number Publication date
KR102385024B1 (ko) 2022-04-08
CN109783432B (zh) 2024-01-09
TWI773808B (zh) 2022-08-11
TWI808987B (zh) 2023-07-21
US10885145B2 (en) 2021-01-05
CN109783432A (zh) 2019-05-21
US20200356619A1 (en) 2020-11-12
US10534837B2 (en) 2020-01-14
US20190147013A1 (en) 2019-05-16
CN109788189A (zh) 2019-05-21
CN109788189B (zh) 2022-04-29
KR102339906B1 (ko) 2021-12-17
US20200151237A1 (en) 2020-05-14
US20190147606A1 (en) 2019-05-16
TW201918906A (zh) 2019-05-16
US10762162B2 (en) 2020-09-01
US10740431B2 (en) 2020-08-11
KR20190054890A (ko) 2019-05-22
TW201918772A (zh) 2019-05-16
KR20190054898A (ko) 2019-05-22
KR102385018B1 (ko) 2022-04-08

Similar Documents

Publication Publication Date Title
KR102385018B1 (ko) 제약 변경을 갖는 경로 평활화를 위한 저 복잡도 최적화 솔버 장치 및 방법
US20200134848A1 (en) System and method for disparity estimation using cameras with different fields of view
US10979612B2 (en) Electronic device comprising plurality of cameras using rolling shutter mode
KR20190032061A (ko) 이미지 보정을 수행하는 전자 장치 및 그 동작 방법
CN111080687A (zh) 用于主动深度感测的方法和装置及其校准方法
US11363199B2 (en) Apparatus and method for estimating optical image stabilization motion
US11107198B2 (en) Method and apparatus for incorporating noise pattern into image on which bokeh processing has been performed
US11108961B2 (en) Electronic device for controlling shaking of lens part contained in camera module and operation method for electronic device
CN109803066B (zh) 用于在相机模块内生成时钟信号的电子装置和方法
KR20210029089A (ko) 시간적 일관성이 개선된 비디오 처리를 위한 시스템 및 방법
US10965871B2 (en) Apparatus and method for compensating for image change caused by optical image stabilization motion
US10929961B2 (en) Electronic device and method for correcting images using external electronic device
KR20200048609A (ko) 인공 신경망을 이용한 이미지 처리 방법 및 이를 지원하는 전자 장치
US11423510B2 (en) System and method for providing dolly zoom view synthesis
US10827125B2 (en) Electronic device for playing video based on movement information and operating method thereof
CN111866483A (zh) 颜色还原方法及装置、计算机可读介质和电子设备
US20200244875A1 (en) Electronic device and method for processing line data included in image frame data into multiple intervals
CN113544734A (zh) 用于通过使用红外传感器调整图像数据的颜色的电子装置和方法
KR20200107755A (ko) 회전에 영향을 받지 않는 뉴럴 네트워크를 제공하기 위한 방법 및 시스템
US20220360713A1 (en) Electronic device including camera
KR20240050969A (ko) 슬로우 셔터 기능을 제공하는 전자 장치 및 방법
KR20190061981A (ko) Simd 연산을 이용하여 이미지 데이터의 주파수 변환을 수행하는 전자 장치 및 전자 장치의 동작 방법
KR20240068029A (ko) 기계 학습 모델을 이용하여 영상을 획득하는 전자 장치 및 그 동작 방법
KR20190063639A (ko) 이미지 처리 방법 및 그 전자 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant