KR20180051335A - 신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치 - Google Patents

신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20180051335A
KR20180051335A KR1020170028899A KR20170028899A KR20180051335A KR 20180051335 A KR20180051335 A KR 20180051335A KR 1020170028899 A KR1020170028899 A KR 1020170028899A KR 20170028899 A KR20170028899 A KR 20170028899A KR 20180051335 A KR20180051335 A KR 20180051335A
Authority
KR
South Korea
Prior art keywords
occlusion
value
bias
neural network
electronic device
Prior art date
Application number
KR1020170028899A
Other languages
English (en)
Other versions
KR102313773B1 (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 삼성전자주식회사
Priority to PCT/KR2017/011638 priority Critical patent/WO2018084473A1/ko
Priority to US16/338,579 priority patent/US10963738B2/en
Publication of KR20180051335A publication Critical patent/KR20180051335A/ko
Application granted granted Critical
Publication of KR102313773B1 publication Critical patent/KR102313773B1/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24137Distances to cluster centroïds
    • G06F18/2414Smoothing the distance, e.g. radial basis function networks [RBFN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle

Landscapes

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

Abstract

전자 장치가 개시된다. 상기 전자 장치는, 각각, 하나의 가중치 및 소정 범위 내의 복수개의 오클루전(occlusion) 레벨 중 n개(단, n>1)의 오클루전 레벨에 각각 대응하는 바이어스 세트를 포함하는, 파라미터 세트가 저장된 메모리, 및 입력 데이터를 상기 신경망에 입력하여 출력 데이터를 획득하도록 설정되는 적어도 하나의 프로세서를 포함할 수 있다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.

Description

신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치 {A METHOD FOR INPUT PROCESSING BASED ON NEURAL NETWORK LEARNING ALGORITHM AND A DEVICE THEREOF}
본 문서에서 개시되는 실시 예들은, 딥러닝 등의 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공지능(artificial intelligence, AI) 시스템 및 그 응용에 관련된 것이다. 구체적으로 신경망 학습에 기반하여 획득한 학습 결과를 이용하여 영상을 처리하는 기술과 관련된다.
인공 신경망(artificial neural network)은 동물 신경계의 뉴런 구조를 수학적 표현에 기초하여 획득한 통계학적 학습 알고리즘이다. 인공 신경망은 시냅스의 결합으로 네트워크를 형성한 인공 뉴런이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 가리킨다.
인공 지능 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이다. 인공 지능 시스템은, 기존 룰(Rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 스마트해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되다. 따라서, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계 학습 및 기계 학습을 활용한 요소 기술들로 구성된다. 기계 학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소 기술은 딥 러닝 등의 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술이다. 요소 기술은, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
최근에는 컨벌루션 신경망(CNN; convolutional neural network) 기반의 딥 러닝 알고리즘이 컴퓨터비전과 음성 인식 등의 분야에서 탁월한 성능을 보이고 있다. CNN은 전-역방향 인공 신경망의 일종으로, 추상화된 정보를 추출하는 다양한 영상 처리에서 활발하게 연구되고 있다. 전자 장치는 CNN에 기초하여 입력 영상을 작은 구역으로 나누어 특징을 인식하고 신경망 단계가 진행되면서 나뉘어진 영상을 결합해 전체를 인식할 수 있다.
기존의 CNN 알고리즘을 이용한 영상 처리에 있어서, 항상 입력 영상이 깨끗하게 제공되는 것은 아니다. 예를 들어, 입력 영상은 어느 정도 노이즈를 포함할 수 있다. 기존의 CNN 알고리즘은 노이즈와 무관하게 미리 학습된 파라미터를 이용할 수 있다.
만약, 노이즈 수준을 고려하더라도 기존의 CNN 알고리즘을 이용한 파라미터들의 용량은 제한된 환경에서 시스템의 부하를 가져온다. 예를 들어, 특정 하나의 노이즈 수준에 대하여 저장된 파라미터의 용량이 256Mb이고, 노이즈 수준이 20단계인 경우, 기존의 CNN 알고리즘을 수행하기 위해 5G가 넘는 메모리가 요구된다. 즉, 제한된 시스템 환경에서는 입력 영상을 처리하기 위해 기존의 CNN 알고리즘을 사용하는 것은 효율적이지 않다. 나아가, 영상 처리의 실시간성이 요구되는 상황, 예를 들어, 자율 주행 차량의 시스템이 비나 눈, 안개와 같은 악천후 상황에서 각종 표지판이나 사물의 인식을 하고자 하는 경우, 기존의 CNN 알고리즘은 적합하지 않다.
본 문서에서 개시되는 다양한 실시 예들은, 위에서 언급한 기존의 CNN 알고리즘이 갖는 문제점을 해결하고, 제한된 시스템 환경에서도 실시간성을 보장할 수 있는 새로운 CNN 알고리즘을 제시한다.
본 문서에 개시되는 일 실시 예에 따른 전자 장치는, 각각, 하나의 가중치 및 소정 범위 내의 복수개의 오클루전(occlusion) 레벨 중 n개(단, n>1)의 오클루전 레벨에 각각 대응하는 바이어스 세트를 포함하는, 파라미터 세트가 저장된 메모리, 및 입력 데이터를 상기 신경망에 입력하여 출력 데이터를 획득하도록 설정되는 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 오클루전 값을 획득하고, 상기 오클루전 값에 기반하여, 상기 복수개의 파라미터 세트 중 특정 파라미터 세트를 결정하고, 상기 오클루전 값에 기초하여, 상기 특정 파라미터 세트 내의 특정 바이어스 세트를 결정하고, 상기 특정 파라미터 세트에 대응하는 가중치 및 상기 특정 바이어스 세트를 이용하여 상기 출력 데이터를 획득하도록 설정될 수 있다.
또한, 본 문서에 개시되는 다른 실시 예에 전자 장치는, 각각, 하나의 가중치 및 소정 범위내의 복수개의 오클루전(occlusion) 레벨 중 n개(단, n>1)의 오클루전 레벨에 각각 대응하는 바이어스 값을 포함하는 제1 파라미터 세트 및 제2 파라미터 세트가 저장된 메모리, 및 입력 데이터를 상기 신경망에 입력하여 출력 데이터를 획득하는 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 오클루전 값을 획득하고, 상기 오클루전 값에 기초하여 상기 신경망에 적용하기 위한 파라미터 세트를 상기 제1 파라미터 세트로 결정하고, 상기 오클루전 값에 기초하여, 상기 제1 파라미터 세트 내의 특정 바이어스 값을 결정하고, 상기 제1 파라미터 세트에 대응하는 가중치 및 상기 특정 바이어스 값을 이용하여 상기 출력 데이터를 획득하도록 설정될 수 있다.
또한, 본 문서에 개시되는 또 다른 실시 예에 따른 저장 매체는, 오클루전(occlusion) 값을 획득하는 동작, 상기 오클루전 값에 기초하여 신경망 연산에 적용할 가중치를 결정하는 동작, 상기 오클루전 값 및 가중치에 기초하여 상기 신경망 연산에 적용할 바이어스 값을 결정하는 동작, 및 입력 데이터에 대한 출력 데이터를 상기 신경망 연산을 이용하여 획득하도록 하는 명령어를 저장할 수 있다.
본 문서에 개시되는 실시 예들에 따르면, 적은 메모리 공간을 이용하여 CNN 학습 결과를 저장할 수 있다.
본 문서에 개시되는 실시 예들에 따르면, 다양한 상황 별로 획득된 CNN 학습 결과를 이용하여 빠르고 신속하게 영상 처리 결과를 획득할 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 2는 본 발명의 다른 실시 예에 따른 전자 장치 및 전자 장치의 시스템 환경을 나타낸다.
도 3은 본 발명에 적용될 수 있는 신경망의 구조를 나타낸다.
도 4는 입력 데이터에 대한 결과를 산출하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예로서, 학습 데이터를 획득하는 방법을 예시한다.
도 6은 잡음 편차(standard deviation of noise)에 따른 백분율 오차를 나타낸 그래프이다.
도 7은 본 발명의 다른 실시 예에 따라, 오클루전 값에 따라 신경망 연산을 수행하는 방법의 순서도이다.
도 8은 본 발명의 또 다른 실시 예에 따라, 오클루전 값에 따라 신경망 연산을 수행하는 방법의 순서도이다.
도 9는 부가 백색 가우스 잡음이 더해진 영상 데이터 및 신경망 연산의 결과를 나타낸다.
도 10은 다양한 신경망 학습 데이터를 이용한 잡음에 따른 백분율 오차를 나타낸 그래프이다.
도 11은 본 발명의 또 다른 실시 예로서, 오클루전 값에 기초하여 신경망 연산을 수행하는 방법의 순서도이다.
도 12는 다양한 신경망 학습 데이터를 이용한 잡음에 따른 백분율 오차를 나타낸 그래프이다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다", "가질 수 있다", "포함한다", 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B", "A 또는/및 B 중 적어도 하나", 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성(또는 설정)된"은 하드웨어적으로 "특별히 설계된(specifically designed to)"것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성(또는 설정)된 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
이하, 첨부 도면을 참조하여, 다양한 실시 예에 따른 전자 장치가 설명된다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 실시 예에서의 전자 장치(100)는 영상 획득 장치(110), 적어도 하나의 프로세서(120), 및 메모리(140)를 포함할 수 있다. 도 1에 도시된 전자 장치(100)의 구성은 예시적인 것이며, 본 문서에 개시되는 다양한 실시 예를 구현할 수 있는 다양한 변형이 가능하다. 예를 들어, 전자 장치는 도 2에 도시된 전자 장치(220)와 같은 구성을 포함하거나, 이 구성들을 활용하여 적절하게 변형될 수 있다. 이하에서는 전자 장치(100)을 기준으로 본 발명의 다양한 실시 예들이 설명된다.
영상 획득 장치(110)는 신경망 학습 또는 신경망 연산을 수행하기 위한 영상을 획득할 수 있다. 영상은 그림, 사진 또는 문자 등 전자 장치(100)가 인식하여야 하는 대상을 의미할 수 있다. 영상 획득 장치(110)는 영상을 획득하여 전자 장치(100)가 인식할 수 있는 입력 데이터로 변환할 수 있다. 영상 획득 장치(110)는 입력 데이터 자체를 획득할 수도 있다. 영상 획득 장치(110)는 획득한 입력 데이터를 프로세서로 전달할 수 있다. 경우에 따라서, 입력 데이터는 학습의 대상이 되는 학습 데이터일 수 있다. 경우에 따라서, 입력 데이터는 학습 결과에 기반하여 신경망 연산을 수행하기 위한 테스트 데이터일 수 있다.
프로세서(120)는 전자 장치(100)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 프로세서(120)는, 영상 획득 장치(110)로부터 입력 데이터를 전달 받아, 입력 데이터를 처리할 수 있다. 프로세서(120)는 메모리(140)에 저장된 신경망 처리 모델(130)을 이용하여 입력 데이터에 대한 신경망 학습 결과를 획득할 수 있다. 프로세서(120)는 메모리(140)에 저장된 신경망 처리 모델(130)을 이용하여 입력 데이터에 대한 신경망 처리를 수행하고 출력 데이터를 획득할 수 있다. 프로세서(120)는 신경망 처리를 수행하기 위해 메모리(140)에 저장된 신경망 학습 결과를 이용할 수 있다.
프로세서(120)는 중앙처리장치(CPU; central processing unit), 그래픽처리장치(GPU; graphic processing unit), (어플리케이션 프로세서(AP; application processor), 또는 커뮤니케이션 프로세서(CP; communication processor) 중 하나 또는 그 이상을 포함할 수 있다.
메모리(140)는 신경망 처리 모델(130)을 저장할 수 있다. 메모리(140)는 출력 데이터를 저장할 수 있다. 출력 데이터는 신경망 연산 결과 또는 신경망 테스트 결과일 수 있다. 메모리(140)는 신경망 학습 결과를 저장할 수 있다. 신경망 학습 결과는, 상기 전자 장치(100)에서 획득한 것일 수도 있고, 외부 장치로부터 획득한 것일 수도 있다. 신경망 학습 결과는, 가중치 및 바이어스 값을 포함할 수 있다.
상기 각 구성 요소, 영상 획득 장치(110), 프로세서(120) 및/또는 메모리(140)는 버스로 연결될 수 있다. 버스는, 예를 들면, 구성요소들을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 전자 장치(220) 및 전자 장치(220)의 시스템 환경을 나타낸다. 본 발명의 전자 장치(220)는 영상 인식이 필요한 여러 가지 장치 또는 시스템에 적용될 수 있다. 대표적인 예로, 자율 주행 차, 드론, 로봇 등이 있다. 도 2에서는, 자율 주행 차에 적용되는 자율 주행 시스템(200)을 기준으로 본 발명의 전자 장치(220)가 다른 전자 장치들과 결합하는 실시 예를 설명한다.
도 2를 참조하면, 자율 주행 시스템(200)은 영상 획득 장치(210), 전자 장치(220) 및 출력 장치(230)를 포함할 수 있다.
전자 장치(220)는, 도 1에 도시된 전자 장치(100)의 전체 또는 일부를 포함할 수 있다. 전자 장치(220)는 프로세서(222), 신경망 처리 모델(224)을 저장하는 메모리(226), 및 통신 모듈(228)을 포함할 수 있다. 전자 장치(220)는 자율 주행 차에 부착되거나 임베디드될 수 있다.
프로세서(222), 메모리(226)는 도 1의 프로세서(120) 및 메모리(140)와 각각 중복되므로 이하 그 설명을 생략한다. 통신 모듈(228)은 무선 통신 또는 유선 통신을 통해서 외부 장치(예: 입력 장치(210) 및 출력 장치(230))와의 통신을 수행할 수 있다.
영상 획득 장치(210)는, 자율 주행 차 주변의 영상을 획득할 수 있다. 예를 들어, 영상 획득 장치(210)는 자율 주행 차 주변의 표지판을 촬영하고, 아날로그 신호를 디지털 신호로 변환할 수 있다. 영상 획득 장치(210)는 외부 장치(예: 전자 장치(220))로 디지털 신호를 전달할 수 있다. 영상 획득 장치(210)는 3D(3-dimension) 카메라, 디지털 카메라, 비디오 카메라, 열 카메라, 나이트 비전 카메라, 적외선 카메라, 엑스레이 카메라, 센서 또는 이들의 조합을 포함할 수 있다. 영상 획득 장치(210)는 입력 영상을 디지털 신호로 변환할 수 있는 아날로그/디지털(A/D; analog-to-digital) 컨버터(converter)를 포함할 수 있다. 영상 획득 장치(210)는 외부 장치(예: 전자 장치(220))로 획득한 입력을 전달할 수 있도록 통신 모듈을 더 포함할 수 있다.
출력 장치(230)는 상기 전자 장치(220)로부터의 데이터 또는 명령에 따른 동작을 수행할 수 있다. 예를 들어, 출력 장치(230)는 자율 주행 차의 동작을 수행할 수 있는 구성 요소들을 포함할 수 있다. 출력 장치(230)는 예를 들어, 라이트(light), 경보 장치, 및/또는 제동 장치를 포함할 수 있다.
이하, 본 발명의 실시 예들에서는 전자 장치(100)을 기준으로 설명한다.
도 3은 본 발명에 적용될 수 있는 신경망의 구조를 나타낸다.
신경망 구조를 이용한 신경망 학습은 방대한 양의 학습 데이터를 이용하여 전체 신경망의 비용 함수(cost function)를 최소화 시키는 방향으로 각 뉴런들의 특성들(예: 가중치, 바이어스 등)을 최적화 시키는 것이다. 신경망 학습은 피드포워드(feed-forward) 과정과 역전파(backpropagation) 과정을 통하여 수행될 수 있다. 전자 장치(100)는 피드포워드 과정을 통해 최종 출력 계층까지의 모든 뉴런들의 입력과 출력을 단계적으로 계산할 수 있다. 전자 장치(100)는 역전파 과정을 이용하여 최종 출력 계층에서의 오차를 단계적으로 계산할 수 있다. 전자 장치(100)는 계산된 오차값들을 이용하여 각 숨은 층의 특성들을 추정할 수 있다. 즉, 신경망 학습은 피드포워드 과정 및 역전파 과정을 이용하여 최적의 파라미터(예: 가중치 또는 바이어스)를 획득하는 동작일 수 있다.
도 3을 참조하면, 컨벌루션 신경망은 복수의 계층(layer)을 포함할 수 있다. 예를 들어, 컨벌루션 신경망은 입력 계층(310), 적어도 하나의 컨벌루션 계층(convolution layer, 320, 340), 적어도 하나의 풀링 계층(pooling layer, 330, 350), 완전 연결 계층(360)을 포함할 수 있다. 완전 연결 계층(360)은 복수개일 수 있으며, 마지막 완전 연결 계층(fully-connected layer, 360)은 출력층(360)으로 참조될 수 있다. 입력층(310)과 출력층(360) 이외의 계층들은 숨은 계층으로 참조될 수 있다.
컨벌루션 계층(320, 340)은 이전 계층의 뉴런 값들에 대하여 컨벌루션 연산을 수행한 결과 값들의 집합이다. 도 3을 참조하면, 입력 계층(310)의 지역 수용 부위 내의 뉴런들은 첫번째 컨벌루션 계층의 하나의 뉴런으로 연결될 수 있다. 입력 계층(310)의 일정 지역은 필터(370)로 마스크되어(masked) 하나의 뉴런으로 연결될 수 있다. 필터(370)에 대응하는 지역 수용 부위와 필터(370)의 컨벌루션 연산 값이 컨벌루션 계층(320)의 하나의 뉴런의 값이 된다. 필터(370)의 출력 값들은 컨벌루션 계층(320)의 복수개의 특징 맵(feature map)을 구성한다. 도 3에서는, 컨벌루션 계층(320)의 특징 맵의 개수는 3개이다. 두번째 컨벌루션 계층(340)은 풀링 계층(330)에 필터가 적용된 값들로 구성될 수 있다.
풀링 계층(330, 350)은 컨벌루션 계층(320, 340)의 출력 정보를 단순화한다. 풀링 계층(330, 350)에는 커널(kernel)이 적용될 수 있다. 커널은 일정 지역 내의 뉴런에서 특정 값을 뽑아낼 수 있다. 정보를 단순화하기 위한 풀링의 예로, 최대 풀링이 있다. 이 경우, 커널은 일정 지역 내의 뉴런들 중에서 최대 값을 뽑아낼 수 있다. 컨벌루션 계층(320) 및 풀링 계층(340)은 특징 추출(feature extraction)을 수행할 수 있다. 특징 추출은 데이터를 잘 표현할 수 있는 특징 값들을 추출하는 과정에 해당한다.
완전 연결 계층(360)은 이전 계층과 모든 뉴런이 연결되는 계층이다. 완전 연결 계층(360)은 분류기(classifier)의 역할을 할 수 있다. 분류(classifying)는 각 특징 값에 따라 결과를 산출하는 과정이다.
도 4는 학습 결과를 이용하여, 입력 데이터에 대한 결과를 산출하는 방법을 설명하기 위한 도면이다.
각 층의 뉴런들의 출력은 활성화(activation) 함수의 결과값일 수 있다. 활성화 함수는 예를 들어, 시그모이드(sigmoid) 함수, 쌍곡 탄젠트(hyperbolic tangent) 함수, 혹은 소프트맥스(softmax) 함수가 사용될 수 있다. 도 4는 스텝(step) 함수를 활성화 함수로 사용하는 경우를 예시한다.
도 4를 참조하면, 가중치 및 바이어스를 적용한 컨벌루션 연산의 결과가 0을 넘는 경우, 활성화 함수의 적용에 따라 출력 값은 1을 가진다. 컨벌루션 연산의 결과가 0을 넘지 못하는 경우 출력 값은 0을 가진다. 활성화 함수에 의해, 의미있는 특징이 추출될 수 있다.
컨벌루션 계층(320, 340) 및 풀링 계층(330, 350)에서의 연산으로 의미있는 특징이 추출된 경우, 해당 특징에 대한 인식 또는 분류 동작이 완전 연결 계층(360)에서 수행될 수 있다.
활성화 함수의 출력 결과들은 n-차원(n-dimensional) 공간 상에 나타날 수 있으며, 출력 결과들은 초평면(hyperplane)에 의해 분류될 수 있다. 초평면은 도 4의 음영 표시된 영역에 대응한다. 만약 특정 출력 값이 초평면 위에 있다면, 해당 출력 값은 출력될 수 있다. 반대로, 특정 출력 값이 초평면 아래에 있다면 해당 값은 출력되지 않을 수 있다.
도 4를 참조하면, 가중치 벡터(S={w0, w1, w2, w3, w4, w5, …, w8})는 초평면의 법선 벡터 N에 대응할 수 있다. 원점으로부터 입력 데이터까지의 벡터는 y로 참조될 수 있다. 가중치 벡터 S와 입력 데이터 y의 내적(inner-product) 값은 <S, y>로 참조될 수 있다. <S, y>는 가중치 및 입력 데이터 간의 컨벌루션 연산 값에 대응할 수 있다. <S, y>가 r보다 크거나 같은 경우 출력값은 1로 분류되고 초평면 상에 위치하게 된다. 여기서 r은 원점으로부터 초평면까지의 거리에 대응한다. <S, y>가 r보다 작은 경우는 데이터는 0으로 분류되고 초평면 아래에 위치하게 된다. 달리 표현하면, <S, y>-r이 0보다 크거나 같은 경우 출력 값은 1로 분류될 수 있다. <S, y>-r이 0보다 작은 경우 출력 값은 0으로 분류될 수 있다.
영상 인식률을 높이기 위해서는 초평면을 잘 설정하는 것이 중요할 수 있다. 입력 데이터에 잡음이 있는 경우에는 잡음으로 인하여 동일한 초평면을 사용하더라도 신경망의 인식률이 떨어지게 된다. 잡음이 생기는 경우에는, 데이터 분류의 역할을 하는 초평면의 위치를 변경시킴으로써 물체의 검출율을 높일 수 있다.
원점으로부터 초평면까지의 거리 r은 컨벌루션 연산에 적용되는 바이어스(또는 바이어스의 가중치) wβ 와 연관된다. 본 발명의 일 실시 예에서, 초평면의 위치는 바이어스 wβ 를 조정하여 변경시킬 수 있다. wβ는 원점으로부터 초평면 상의 점까지의 벡터 P와 가중치 벡터 N과의 내적 값 <P, N>에 대응할 수 있다. 원점에서 초평면까지의 거리는 ||B||에 대응한다.
본 발명의 일 실시 예에서는, 전자 장치(100)는 서로 다른 잡음 레벨 또는 가림의 정도를 나타내는 오클루전(occlusion) 레벨에 대하여, 가중치는 고정하되 바이어스 만을 변경시키며 학습을 수행할 수 있다. 본 발명의 실시 예에서는, 전자 장치(100)는 잡음 레벨 또는 오클루전 레벨에 따라 바이어스 만을 결정하고, 신경망 연산을 통해 출력 데이터를 출력할 수 있다.
한편, 신경망 학습의 목표는 그라디언트 디센트(gradient-decent)에 기초하여 최적의 가중치 및 바이어스를 구하는 것이다. 최적의 가중치 및 바이어스는 상기 비용 함수의 값이 가장 작아지게 하는 가중치 및 바이어스일 수 있다. 전자 장치(100)는 비용 함수와 그라디언트 디센트를 이용하여 출력 계층부터 입력 계층 방향으로, 순차적으로 비용함수에 대한 편미분 값을 이용하여 가중치와 바이어스 값을 갱신시킬 수 있다. 이러한 과정을 역전파 과정이라 한다. 
본 발명의 실시 예들에서, 전자 장치(100)는 학습은 오클루전(occlusion) 레벨에 따라서 가중치와 바이어스 값을 모두 학습할 수도 있고, 가중치는 고정하되 가중치에 대하여 바이어스 값만을 학습할 수도 있다. 오클루전 레벨은 영상에 대한 가림의 정도를 나타내는 값이다. 본 발명에서, 오클루전 레벨은 잡음 레벨과 혼용되어 사용될 수 있다.
도 5는 본 발명의 일 실시 예로서, 잡음 또는 오클루전 레벨 별로 데이터를 학습하는 방법을 예시한다. 도 5에서는 가중치를 고정하고, 오클루전 레벨 별로 바이어스를 조정하는 방법에 대하여 설명한다. 이하의 설명에서, 바이어스는 바이어스 값 또는 바이어스 세트일 수 있다. 이하의 설명에서, 전자 장치는 도 1의 전자 장치(100)을 기준으로 설명한다.
도 5를 참조하면, 동작 501에서 전자 장치(100)는 적절한 오클루전(occlusion) 범위를 선택할 수 있다. 동작 501에서 전자 장치(100)는 오클루전 레벨의 스텝(step) 크기를 결정할 수도 있다. 오클루전은, 가림의 정도를 나타낼 수 있다. 예를 들어, 전자 장치(100)는 오클루전 레벨을 강수량에 따라 구분될 수 있다. 오클루전 레벨의 스텝 크기는 강수량에 따라 결정될 수 있다. 예를 들어, 가장 낮은 레벨은 비가 오지 않음에 대응하는 값일 수 있다. 전자 장치(100)는 시간 당 0~10mm의 강수량을 레벨 1로 설정하고, 시간 당 10~20mm의 강수량을 레벨 2로 설정할 수 있다. 또는, 전자 장치(100)는 시간 당 10mm의 강수량을 레벨 1로 설정하고, 시간 당 20mm의 강수량을 레벨 2로 설정할 수 있다. 전자 장치(100)는 잡음 레벨을 설정할 수도 있다. 예를 들어, 맑은 날 낮에서 밤까지의 범위 내에서 잡음 레벨을 설정할 수도 있다. 이하의 설명에서는 오클루전 레벨을 기준으로 바이어스를 조절하는 실시 예를 설명하지만, 오클루전 레벨 대신 잡음 레벨에 대하여 실시 예를 적절히 변형할 수도 있다.
동작 503에서, 전자 장치(100)는 제1 레벨에 대하여 신경망 학습을 수행할 수 있다. 일 실시 예에서, 제1 레벨은 최소 오클루전 레벨에 해당할 수 있다. 신경망 학습의 수행 결과, 전자 장치(100)는 최소 오클루전 레벨에 대한 가중치 및/또는 바이어스를 획득할 수 있다. 동작 503과 동작 517과 연관하여, 최대 오클루전 레벨(예: 제5 레벨)에 대한 학습이 우선 수행될 수도 있다. 최소 오클루전 레벨에 대하여 동작 503이 수행된다면 동작 517에서는 최대 오클루전 레벨에 대하여 이하의 동작이 수행되고, 최대 오클루전 레벨에 대하여 동작 503이 수행된다면 동작 517에서는 최소 오클루전 레벨에 대하여 이하의 동작이 수행될 수 있다. 이하에서는, 최소 오클루전 레벨을 기준으로 본 발명의 동작을 설명한다.
동작 505에서, 전자 장치(100)는 학습한 가중치 및 바이어스를 저장할 수 있다. 전자 장치(100)는 최소 오클루전 레벨에 대한 가중치 및 바이어스를 저장할 수 있다. 전자 장치(100)는 최대 오클루전 레벨에 대한 가중치 및 바이어스를 저장할 수 있다.
동작 507에서, 전자 장치(100)는 특정 컨벌루션 계층의 바이어스를 제외한 나머지 가중치 및 바이어스를 신경망의 모든 계층에 로딩할 수 있다. 나머지 가중치는, 상기 특정 컨벌루션에 대한 가중치를 포함할 수 있다.
동작 509에서, 전자 장치(100)는 오클루전 범위 내에서 다음 오클루전 레벨을 선택할 수 있다. 예를 들어, 최소 오클루전 레벨(예: 레벨0)의 다음 오클루전 레벨(예: 레벨1)을 선택할 수 있다.
동작 511에서, 전자 장치(100)는 선택된 오클루전 레벨에 대한 컨벌루션 계층의 바이어스를 학습시킬 수 있다. 전자 장치(100)는 출력 값의 오차가 작아지도록, 해당 컨벌루션 계층에 대한 바이어스를 학습시킬(training) 수 있다. 이 경우, 전자 장치(100)는 동작 507의 가중치를 사용할 수 있다. 전자 장치(100)는 모든 컨벌루션 계층에 대하여 동작 511을 수행할 수 있다.
동작 513에서, 전자 장치(100)는 선택된 오클루전 레벨에 대하여 새로 학습된 컨벌루션 계층의 바이어스를 저장할 수 있다.
동작 515에서, 전자 장치(100)는 오클루전 레벨의 범위 내에서 남은 오클루전 레벨이 존재하는지 판단할 수 있다. 남은 오클루전 레벨이 있다면, 전자 장치(100)는 동작 509 이하의 동작을 반복할 수 있다.
남은 오클루전 레벨이 없다면 동작 517에서, 전자 장치(100)는 최대 오클루전 레벨에 대한 반복이 필요한지 판단할 수 있다. 최대 오클루전 레벨에 대하여 바이어스 값을 학습하는 동작이 필요한 경우, 전자 장치(100)는 동작 503 이하의 동작을 반복할 수 있다. 최대 오클루전 레벨에 대하여 바이어스 값을 학습하는 동작이 필요하지 않은 경우, 학습을 종료할 수 있다.
도 5의 동작에 따라, 전자 장치(100)는 최소 오클루전 레벨에 대한 가중치 및 바이어스를 저장할 수 있다. 전자 장치(100)는 최소 오클루전 레벨에 대한 가중치를 기준으로 각 레벨에 대하여 조정된 바이어스를 저장할 수 있다. 전자 장치(100)는 최대 오클루전 레벨에 대한 가중치 및 바이어스를 저장할 수 있다. 전자 장치(100)는 최대 오클루전 레벨에 대한 가중치를 기준으로 각 레벨에 대하여 조정된 바이어스를 저장할 수 있다.
도 6은 잡음 편차(standard deviation of noise)에 따른 백분율 오차의 결과를 나타낸 그래프이다.
도 6에서 실선과 점선은 타겟 값과 테스트 값에 기초하여 산출된 백분율 오차(error)를 나타낸다. 큰 오차 값은 신경망 연산의 결과가 부정확함을 의미한다.
도 6에서 실선은, 오클루전 레벨이 최저인 경우의 가중치에 대하여 바이어스를 잡음 편차에 따라 조정한 학습 결과를 이용한 경우의 오차를 나타낸다. 이 경우, 각 실험에 사용된 필터는 클린 필터(clean filter)로 참조될 수 있다. 필터는, 가중치 및 바이어스 값에 대응한다. 클린 필터는 최저 오클루전 레벨에 대한 가중치가 적용되는 필터를 의미할 수 있다.
도 6을 참조하면, 클린 필터를 이용한 결과, 낮은 잡음 편차에 대하여는 잡음 편차 간 오차의 차이가 크지 않다. 잡음 편차가 낮은 지점에서, 오차는 상당히 낮은 값을 보인다. 반면, 잡음 편차가 커질수록, 오차는 점점 커진다. 특히, 점선과 교차되는 지점을 지나는 순간부터 오차는 점선에 의해 나타나는 오차보다 커진다.
도 6에서 점선은, 최대 오클루전 레벨에 대한 가중치에 대하여 바이어스 값을 조정한 학습 결과를 이용한 경우의 오차를 나타낸다. 이 경우, 실험에 사용된 필터는 잡음 필터(noisy filter)로 참조될 수 있다. 잡음 필터는 최대 오클루전 레벨에 대한 가중치가 적용되는 필터일 수 있다.
도 6을 참조하면, 최대 오클루전 레벨에 대한 가중치를 기준으로 바이어스를 조정한 결과, 높은 잡음 편차에 대하여는 잡음 편차 간 오차의 차이가 크지 않다. 높은 잡음 편차에서 오차는 상당히 낮은 값을 보이며, 실선에 의해 나타나는 오차보다 작은 값을 가진다. 반면, 잡음 편차가 작아질수록, 오차는 점점 커진다. 특히, 실선과 교차되는 지점을 지나는 순간부터 점선에 대응하는 오차는 실선에 의해 나타나는 오차보다 커진다.
상술한 시뮬레이션 결과에 따르면, 일정 오클루전 레벨들에 대하여는 동일한 가중치를 사용하여도 비교적 정확한 영상 인식 결과가 획득될 수 있다. 즉, 도 5의 동작들에 따른 학습 결과를 이용하여 정확한 영상 인식 결과가 획득될 수 있다. 도 6의 결과에 따라 2개의 가중치를 이용할 수도 있으나, 오차 특성에 따라 더 많은 가중치를 사용할 수도 있다.
본 발명의 실시 예들에서 전자 장치(100)는 오클루전 레벨 별로 바이어스를 학습하고, 학습된 값을 활용할 수 있다. 본 발명의 실시 예들에서 전자 장치(100)는 도 6과 같은 시뮬레이션 결과를 참조하여 가중치 및 바이어스를 분류하여 저장하고, 저장된 값들을 활용할 수 있다.
도 7은 본 발명의 다른 실시 예에 따라, 오클루전 값에 따라 신경망 연산을 수행하는 방법의 순서도이다. 도 7을 참조하여 오클루전 값에 따라 신경망 연산에 적용할 파라미터를 결정하는 방법을 설명한다. 여기서, 파라미터는 가중치 및/또는 바이어스 값으로 참조될 수 있다.
도 7에 관한 설명에서, 특정 가중치에 대해 오클루전 레벨 별로 바이어스가 학습된 학습 결과가 저장되어 있는 것이 가정될 수 있다. 특정 가중치는 예를 들어, 오클루전 레벨이 가장 작은 경우의 가중치, 오클루전 레벨이 일정 범위 내에서 중간인 가중치, 및/또는 오클루전 레벨이 가장 큰 경우의 가중치일 수 있다.
동작 701에서, 전자 장치(100)는 입력 데이터를 획득할 수 있다. 전자 장치(100)는 입력 데이터를 영상 획득 장치(110)를 통해서 획득할 수도 있으나, 도 2에 도시된 바와 같이 외부 장치를 통해서 획득할 수도 있다.
동작 703에서, 전자 장치(100)는 입력 데이터에 대한 오클루전 값에 기초하여 가중치를 결정할 수 있다. 일 실시 예에서, 전자 장치(100)는 오클루전 값을 특정 임계값과 비교할 수 있다. 예를 들어, 도 6의 경우 임계값은 잡음 편차가 0.3 내지 0.4에 대응하는 오클루전 레벨(예: 레벨3)일 수 있다. 전자 장치(100)는 획득한 오클루전 값이 오클루전 레벨 3보다 작은 경우, 최소 오클루전 레벨에 대응하는 가중치를 선택할 수 있다. 전자 장치(100)는 획득한 오클루전 값이 3보다 큰 경우, 최대 오클루전 레벨에 대응하는 가중치를 선택할 수 있다.
동작 705에서, 전자 장치(100)는 결정된 가중치 및 오클루전 값에 기초하여 신경망 연산에 적용할 바이어스 값을 결정할 수 있다. 여기서, 바이어스 값은 상기 결정된 가중치에 대하여 오클루전 레벨 별로 학습된 바이어스 값 중 특정 값일 수 있다.
이하, 오클루전 레벨이 2와 3 사이인 2.5인 경우를 가정하여 바이어스 값을 결정하는 실시 예를 설명한다. 일 실시 예에서, 전자 장치(100)는 오클루전 레벨 2에 대하여 미리 획득된 바이어스 값을 선택할 수 있다. 미리 획득된 바이어스 값은 도 5의 동작에 따라 획득된 바이어스 값일 수 있다. 다른 실시 예에서, 전자 장치(100)는 오클루전 레벨 2 및 오클루전 레벨 3에 대해 보간법(interpolation)을 적용하여 바이어스 값을 결정할 수 있다. 바이어스 값을 결정하기 위해 상기 설명된 실시 예 외에도 다양한 방법들이 적용될 수 있다.
동작 707에서, 전자 장치(100)는 결정된 가중치 및 바이어스 값을 신경망 연산에 적용할 수 있다. 일 실시 예로, 전자 장치(100)는 결정된 가중치 및 바이어스 값을 컨벌루션 연산에 적용할 수 있다.
동작 709에서, 전자 장치(100)는 상기 신경망 연산에 기초하여 출력 데이터를 획득할 수 있다. 출력 데이터는 상기 입력 데이터에 대한 인식 결과(예: 우회전 표시) 및/또는 상기 인식 결과에 기초한 제어 명령을 포함할 수 있다.
도 8은 본 발명의 또 다른 실시 예에 오클루전 값에 따라 신경망 연산을 수행하는 방법의 순서도이다.
도 8에서는, 전자 장치(100)는 학습의 결과에 기초한 복수개의 파라미터 세트를 저장하고 있는 경우를 가정한다. 하나의 파라미터 세트는 하나의 가중치에 대응하는 바이어스 값들의 집합일 수 있다. 하나의 파라미터 세트는 특정 오클루전 레벨에 대하여 최적화된 가중치를 포함할 수 있다. 하나의 파라미터 세트는 상기 최적화된 가중치에 대하여 복수개의 레벨에 대하여 획득된 바이어스 값을 포함할 수 있다. 하나의 파라미터 세트는 상기 가중치 및 바이어스 결정에 사용된 하이퍼-파라미터(hyper-parameter)를 더 포함할 수 있다.
동작 801에서, 전자 장치(100)는 입력 데이터와 관련된 오클루전 값을 획득할 수 있다. 예를 들어, 강수량을 기준으로 설명하면, 오클루전 레벨은 50mm/h 단위로 1만큼 차이 나도록 설정될 수 있다. 특정 시점에 비가 50mm 가량 내리는 경우, 전자 장치(100)는 오클루전 값으로 오클루전 레벨 1을 획득할 수 있다. 특정 시점에 비가 25mm 정도 내리는 경우, 전자 장치(100)는 이에 대응하는 오클루전 값을 획득할 수 있다. 획득된 오클루전 값은 오클루전 레벨 1 또는 2 사이의 값에 대응할 수 있다.
동작 803에서, 전자 장치(100)는 오클루전 값에 기초하여 복수개의 파라미터 세트 중 특정 파라미터 세트를 선택할 수 있다. 도 8에서는 복수개의 파라미터 세트가 제1 파라미터 세트 및 제2 파라미터 세트를 포함하는 것을 예시하지만, 복수개의 파라미터 세트는 더 많은 파라미터 세트를 포함할 수 있다.
동작 805에서, 전자 장치(100)는 상기 특정 파라미터 세트가 제1 파라미터 세트인지 제2 파라미터 세트인지 여부를 판단할 수 있다. 상기 특정 파라미터 세트가 제1 파라미터 세트인 경우, 전자 장치(100)는 동작 8097서 상기 제1 파라미터 세트에 기초하여 바이어스 값을 결정할 수 있다. 상기 특정 파라미터 세트가 제2 파라미터 세트인 경우, 전자 장치(100)는 동작 809에서 상기 제2 파라미터 세트에 기초하여 바이어스 값을 결정할 수 있다.
동작 811에서, 전자 장치(100)는 상기 동작 807 또는 809에서 결정된 가중치 및 선택된 바이어스 값을 신경망 연산에 적용할 수 있다. 여기서, 결정된 가중치는 제1 파라미터 세트 또는 제2 파라미터 세트에 대응되는 값일 수 있다. 동작 803 내지 동작 805에서 제1 파라미터 세트를 선택하였다면, 전자 장치(100)는 상기 제1 파라미터 세트에 대응되는 가중치를 사용할 수 있다.
도 9는 부가 백색 가우스 잡음이 더해진 영상 데이터 및 신경망 연산의 결과를 나타낸다.
도 9는 숫자 8이 기재된 하나의 영상에 대하여 다양한 확률 변수를 가지는 부가 백색 가우스 잡음(AWGN; additive white Gaussian noise)이 더해진 영상들을 나타낸다. 도 9는 σ=0의 잡음에 대한 신경망 연산을 수행한 경우, σ=1의 잡음에 대한 신경망 연산을 수행한 경우를 각각 나타낸다. 이 경우, 컨벌루션 계층에 동일한 필터(예: 가중치와 바이어스 값이 동일한 필터)가 적용되는 것을 가정한다. σ=0인 경우에 대하여 σ=1인 경우와 동일한 필터를 적용한 경우, σ=0인 경우는 σ=1인 경우에 비하여 인식하기 어려움을 알 수 있다.
필터는 무작위로 정돈된 잡음이 있는 이미지 열에서 추정된다. 추정된 필터는 이론적으로는 잡음 수준과 관계가 없으나 실제로는 도 9에 나타난 바와 같이 잡음 수준의 영향을 받는다. 신경망 연산이 높은 인식율을 달성하기 위해서는 잡음 수준에 따라서 신경망의 컨벌루션 계층의 가중치 역시 바뀌어야 할 수 있다.
그러나, 모든 잡음을 고려하여 가중치를 변경하는 것은 지나치게 큰 용량의 메모리를 요구한다. 필터의 크기와 관계되어 필터의 크기가 클수록, 전자 장치(100)는 컨벌루션 계층의 깊이가 깊어질수록 더 많은 가중치를 저장하여야 한다. 따라서, 본 발명의 실시 예들에 따라서 잡음 레벨 별로 가중치 대신 다양한 값의 바이어스를 학습시킴으로써, 잡음 별로 정확한 영상 인식이 가능할 수 있다. 또한, 상대적으로 적은 양의 메모리를 이용하여 다양한 잡음 상황에 대비할 수 있다.
도 10은 다양한 신경망 학습 방법에 기초한 테스트 데이터의 백분율 오차 시뮬레이션 결과를 나타낸다. 테스트 데이터에 대한 오차 시뮬레이션 은 다양한 신경망 학습 결과를 이용할 수 있다. 신경망 학습 결과는, 바이어스를 조정하지 않는 경우, 클린 필터에 대하여 바이어스를 잡음에 따라 조정하는 경우, 노이즈 필터에 대하여 바이어스를 잡음에 따라 조정하는 경우, 모든 파라미터를 학습시키는 경우의 결과들을 포함한다. 클린 필터는 잡음의 수준이 낮은 경우에 대하여 획득한 가중치를 가지는 필터를 의미할 수 있다. 노이즈 필터는 잡음의 수준이 높은 경우에 대하여 획득한 가중치를 가지는 필터를 의미할 수 있다.
도 10을 참조하면, 바이어스 값을 변경하지 않는 경우는 잡음이 증가함에 따라서 오차가 매우 증가함을 알 수 있다. 클린 필터에 대해 바이어스 값을 조정한 학습 결과를 이용하는 경우, 잡음 편차가 낮은 잡음에 대하여는 매우 낮은 오차 값이 나타난다. 노이즈 필터에 대해 바이어스 값을 조정한 학습 결과를 이용하는 경우, 전반적으로 낮은 오차가 나타난다. 모든 노이즈에 대하여 모든 파라미터를 학습한 결과를 이용하는 경우, 노이즈 필터에 대해 바이어스 값을 조정하는 경우와 근소한 차이의 오차가 나타난다.
도 10을 참조하면, 바이어스 값을 조정하는 것은 적은 메모리 용량을 차지함에도 불구하고, 모든 파라미터를 학습하는 경우와 근접한 효과를 보이는 것을 알 수 있다. 이하, 도 11을 참조하여 본 발명과 같이 바이어스를 조정하여 획득한 학습 결과를 이용하는 경우의 실시 예를 설명한다.
도 11은 본 발명의 또 다른 실시 예로서, 오클루전 값에 기초하여 신경망 연산을 수행하는 방법의 순서도이다. 보다 구체적으로, 도 11은 입력 데이터에 관련된 오클루전 값에 따라 신경망 연산에 적용할 파라미터 세트 및 바이어스를 결정하는 방법의 순서를 나타낸다. 파라미터 세트의 결정은 가중치의 결정에 대응할 수 있다. 파라미터 세트 별로, 하나의 가중치가 지정될 있다.
도 11에서는, 전자 장치(100)가 학습의 결과에 기초한 복수개의 파라미터 세트를 저장하고 있는 것을 가정한다. 하나의 파라미터 세트는 하나의 가중치에 대응하는 바이어스 세트일 수 있다. 하나의 파라미터 세트는 특정 오클루전 레벨에 대하여 최적화된 가중치를 포함할 수 있다. 하나의 파라미터 세트는 상기 최적화된 가중치에 대하여 복수개의 레벨에 대하여 획득된 바이어스 세트를 포함할 수 있다. 하나의 파라미터 세트는 상기 가중치 및 바이어스 결정에 사용된 하이퍼-파라미터(hyper-parameter)를 포함할 수 있다.
바이어스 세트는 컨벌루션 계층에 적용되는 바이어스 값들의 집합일 수 있다. 바이어스 세트는, 각각의 컨벌루션 계층에 적용될 수 있는 바이어스 값들의 집합일 수 있다. 바이어스 세트는, 컨벌루션 계층에 적용되는 필터 별로 적용될 수 있는 바이어스 값들의 집합일 수 있다. 파라미터 세트는 복수개의 바이어스 세트를 포함할 수 있다. 각각의 바이어스 세트는 각각의 오클루전 레벨에 대하여 전자 장치(100)가 획득한 바이어스 값들의 집합일 수 있다. 각각의 바이어스 세트는 오클루전 레벨 별로 지정 또는 연동될 수 있다.
여기서, 파라미터 세트에 대한 오클루전 레벨은 일정 범위내의 오클루전 레벨들 중 일부이거나 전부일 수 있다. 파라미터 세트에 대한 오클루전 레벨은 단계적으로 일정 간격을 가지는 값일 수 있다. 이하의 설명에서, 학습된 오클루전 레벨은 해당 레벨에 대해 학습된 파라미터 세트가 저장된 레벨들을 지칭할 수 있다.
도 11을 참조하면, 동작 1101에서 전자 장치(100)는 오클루전 값을 획득할 수 있다. 오클루전 값에 관한 설명은 도 7의 동작 701에 관한 설명과 중복 되므로 이에 관한 설명은 생략한다.
동작 1103에서 전자 장치(100)는 획득한 오클루전 값에 기초하여 복수개의 파라미터 세트 중 특정 파라미터 세트를 선택할 수 있다. 일 예로, 전자 장치(100)는 파라미터 세트를 결정하기 위한 임계값을 설정하고 해당 임계값에 기초하여 상기 특정 파라미터 세트를 선택할 수 있다. 전자 장치(100)는 오클루전 레벨의 범위 별로 사용할 임계값을 미리 지정할 수 있다.
다른 예로, 전자 장치(100)는 오클루전 레벨 별로 파라미터 세트를 지정할 수 있다. 예를 들어, 전자 장치(100)는 오클루전 레벨이 1, 3 또는 5라면 제1 파라미터 세트를 사용하고 오클루전 레벨이 7이 2, 4 또는 6이라면 제2 파라미터 세트를 사용하도록 지정할 수 있다.
특정 파라미터 세트의 선택에 관한 정보는 전자 장치(100)가 지정할 수도 있으나 별도의 장치로부터 수신할 수도 있다.
동작 1105에서, 전자 장치(100)는 상기 특정 파라미터 세트가 이전에 선택된 파라미터 세트인지 여부를 판단한다.
특정 파라미터 세트가 이전에 선택된 파라미터 세트가 아닌 경우, 동작 1107에서 전자 장치(100)는 선택된 특정 파라미터 세트를 로딩(loading)한 후 동작 1109를 수행할 수 있다.
상기 특정 파라미터 세트가 이전에 선택된 파라미터 세트인 경우, 상기 전자 장치(100)는 이미 로딩되어 있는 파라미터 세트를 이용할 수 있다. 동작 1109에서 상기 전자 장치(100)는 오클루전 값 및 특정 파라미터 세트에 기초하여 특정 바이어스 세트를 결정할 수 있다. 특정 바이어스 세트는 전자 장치(100)가 신경망 연산에 사용하기 위한 바이어스 세트일 수 있다.
바이어스 결정의 일 예로, 오클루전 값이 상기 학습된 오클루전 레벨 중 어느 하나의 값인 경우, 전자 장치(100)는 상기 학습된 오클루전 레벨에 대응하는 바이어스 세트를 특정 바이어스 세트로 결정할 수 있다. 상기 전자 장치(100)는 상기 특정 파라미터 내의 바이어스 세트 중에서 상기 특정 바이어스 세트를 결정할 수 있다.
오클루전 값이 상기 학습된 오클루전 레벨에 대응하지 않는 경우, 일 예로 상기 전자 장치(100)는 상기 오클루전 값과 가장 거리가 가까운 학습된 오클루전 레벨에 대하여 획득된 바이어스 세트를 특정 바이어스 세트로 결정할 수 있다.
다른 예로, 상기 전자 장치(100)는 상기 오클루전 값의 주변 학습된 오클루전 레벨에 대응하는 바이어스 세트에 대해 보간법(interpolation)을 적용하여 특정 바이어스 세트를 결정할 수 있다. 예를 들어, 전자 장치(100)는 오클루전 값이 1.5인 경우 오클루전 레벨 1과 오클루전 레벨 2를 이용할 수 있다.
전자 장치(100)는 오클루전 값이 오클루전 레벨의 범위 내에 있는 경우에는 상기 실시 예들을 이용할 수 있으나, 오클루전 레벨의 범위 밖에 있는 경우에는 다음과 같이 동작할 수 있다.
일 예로, 전자 장치(100)는 오클루전 값에 가장 가까운 학습된 오클루전 레벨을 이용할 수 있다. 다른 예로, 전자 장치(100)는 상기 특정 바이어스 세트를 결정하기 위해 주변 학습된 오클루전 레벨을 이용하여 보외법(extrapolation)을 이용할 수 있다.
동작 1111에서, 전자 장치(100)는 상기 특정 바이어스 세트의 바이어스 값들을 신경망에 적용할 수 있다. 전자 장치(100)는 컨벌루션 연산에 상기 바이어스 값들을 적용할 수 있다. 전자 장치(100)는 상기 바이어스 값 각각을 가지는 필터들을 적용할 수 있다.
동작 1113에서, 전자 장치(100)는 잡음과 신호의 관계를 판단할 수 있다. <x, y>는 x와 y의 상호 관계(correlation)일 수 있다. 전자 장치(100)는, 예를 들어, 잡음과 신호의 내적 값(inner product)인 <잡음, 신호> 값과 신호와 신호의 내적 값인 <신호, 신호> 값을 비교할 수 있다.
입력 신호는 찾고 있는 신호와 잡음을 더하여 구성될 수 있다. 각 컨벌루션 계층의 특정 필터가 입력 신호를 살펴보면서 찾고 있는 신호의 특징을 찾을 수 있다. 찾고 있는 신호들은 컨벌루션 계층의 특정 필터들에 대한 가중치 일 수 있다.
컨벌루션 계층의 특정 필터는 <입력 신호, 찾고 있는 신호>를 적용할 수 있다. 여기서, 입력 신호는 찾고 있는 신호와 잡음의 합이거나, 찾고 있는 신호가 없는 경우에는 입력 신호는 잡음만 포함할 수 있다. 따라서, <입력, 신호> = <신호 + 잡음, 신호> = <신호, 신호> + <잡음, 신호>이거나, <입력, 신호>는 <잡음, 신호>일 수 있다.
컨벌루션 계층은 두개의 가설 중 하나를 결정할 수 있다. 첫 번째 가설은 영가설(null hypothesis, H0)로서 입력 신호에 찾고 있는 신호가 없고 잡음만을 포함하는 경우이다. 두 번째 가설은 대립 가설(alternative hypothesis, H1)로서 입력 신호가 찾고 있는 신호를 포함하는 경우이다. 이 경우, 입력 신호는 찾고 있는 신호와 잡음의 합일 수 있다.
 잡음은 입력 신호로부터 측정되거나 다른 측정기를 통해 측정될 수 있다. 잡음은 오클루전이거나, 오클루전의 크기에 관계될 수 있다. 신호는 컨벌루션 계층의 특정 필터에 대한 가중치 에너지일 수 있다. 신호는 특정 잡음에 대해서 찾고 있는 신호일 수 있다. 찾고 있는 신호는 입력 신호를 필터링하는 필터의 가중치에 의해 도출된 값들에 대응할 수 있다. 찾고 있는 신호는, 컨벌루션 계층의 뉴런의 가중치(예: aka 필터)에 인코딩된 신호일 수 있다.
전자 장치(100)는 <잡음, 신호> 값이 <신호, 신호> 값과의 관계에서 특정 조건을 만족하는 경우 동작 1115에서 가설(hypothesis)을 반전(invert)시킬 수 있다. 예를 들어, 전자 장치(100)는 가설을 영가설에서 대립가설로 바꿀 수 있다. H0는 찾고 있는 신호가 없는 것 또는 관계 없음을 나타내고, H1은 찾고 있는 신호가 있음 또는 관계 있음을 나타낼 수 있다. 전자 장치(100)는 가설을 반전시키고 <신호, 입력>의 최대값 대신 최소값을 찾을 수 있다. 예를 들어, 전자 장치(100)는 최대의 <신호, 입력> 값을 찾는 대신 최소의 <신호, 입력> 값을 찾을 수 있다. 상기 특정 조건은 <잡음, 신호> 값이 <신호, 신호>값보다 큰 경우일 수 있다. 또는 상기 특정 조건은 <잡음, 신호> 값이 <신호, 신호>값보다 크거나 같은 경우일 수 있다.
도 11에서 <잡음, 신호> 값이 <신호, 입력> 또는 <신호, 신호> 값보다 작거나 같은 경우 또는 작은 경우에는 가설의 반전 없이 도 11의 절차를 반복할 수 있다. 이 경우, 전자 장치(100)는 인식 결과를 출력할 수도 있다.
도 12는 다양한 신경망 학습에 기초한 테스트 데이터의 백분율 오차 시뮬레이션 결과를 나타낸다.
도 12는 영상 상에서 0 내지 255를 갖는 잡음 값들을 0에서 2의 범위로 나타낸 것이다. 또한, 일부 시뮬레이션 결과들은 신호와 잡음의 상관관계에 따라 잡음 1에서 가설을 반전하여 수행되었다.
도 12를 참조하면, 모든 잡음 수준에 대하여 파라미터가 학습된 경우, 테스트 결과는 전체 잡음 구간에서 10% 미만의 낮은 오차를 나타낸다.
잡음이 없는(clean) 경우에 대하여 가중치를 학습한 경우, 테스트 입력에 대한 테스트 결과는 낮은 잡음에 대하여는 낮은 오차를 나타내나 높은 잡음에 대하여는 높은 오차가 나타난다.
잡음이 없는 경우에 대하여 바이어스를 학습한 경우, 잡음이 없는 경우에 대하여 가중치를 학습한 경우에 비하여 상대적으로 낮은 오차가 나타난다.
높은 잡음 수준(예: 2.0)에 대하여 가중치를 학습한 경우 높은 잡음에 대하여는 낮은 오차가 나타나지만 낮은 잡음에 대하여는 높은 오차가 나타난다. 신호가 같은 정도의 잡음 수준에 대하여 가중치를 학습한 경우, 높은 잡음 수준에 비하여 상대적으로 낮은 오차가 나타난다.
상기 각 잡음 수준에 대하여 상기 도 11에 설명된 실시 예를 적용하여 바이어스를 학습시킨 경우, 테스트 결과는 상당히 향상되었다. 가설이 반전되는 잡음 (1.0) 근처를 제외한 나머지 잡음 수준들에 대하여 오차가 상당히 낮은 값으로 나타난다.
이와 같이, 본 발명의 실시 예를 적용하여 학습하고, 신경망 연산에 기초하여 영상을 인식하는 경우 종래 가중치에 대한 학습을 이용하는 경우에 비하여 보다 정확한 인식 결과를 획득할 수 있다.
또한, 하나의 컨벌루션 계층에 대하여만 학습한 경우에 비하여 두개의 컨벌루션 계층에 대하여 학습한 경우에 더 낮은 오차가 나타난다. 즉, 컨벌루션 계층의 개수가 많아질수록 많은 연산을 필요로 하는 대신 상대적으로 정확한 인식 결과를 획득할 수 있다.
본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성 요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시 예에서, 전자 장치는 본 문서에서 기술된 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시 예에 따른 전자 장치의 구성 요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성 요소들의 기능을 동일하게 수행할 수 있다.
본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 메모리(140)이 될 수 있다.
컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM, DVD(Digital Versatile Disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM, RAM, 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시 예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시 예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
그리고 본 문서에 개시된 실시 예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 발명의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 발명의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시 예를 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 신경망(neural network) 학습에 기반하여 영상을 처리하는 전자 장치에 있어서,
    각각, 하나의 가중치 및 소정 범위 내의 복수개의 오클루전(occlusion) 레벨 중 n개(단, n>1)의 오클루전 레벨에 각각 대응하는 바이어스 세트를 포함하는, 파라미터 세트가 저장된 메모리, 및 입력 데이터를 상기 신경망에 입력하여 출력 데이터를 획득하도록 설정되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
    오클루전 값을 획득하고, 상기 오클루전 값에 기반하여, 상기 복수개의 파라미터 세트 중 특정 파라미터 세트를 결정하고,
    상기 오클루전 값에 기초하여, 상기 특정 파라미터 세트 내의 특정 바이어스 세트를 결정하고,
    상기 특정 파라미터 세트에 대응하는 가중치 및 상기 특정 바이어스 세트를 이용하여 상기 출력 데이터를 획득하도록 설정되는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 복수개의 파라미터 세트는 제1 파라미터 세트 및 제2 파라미터 세트를 포함하고,
    상기 제1 파라미터 세트는 제1 가중치에 대하여 상기 오클루전 레벨 별로 획득된 복수개의 제1 바이어스 세트를 포함하고, 상기 제2 파라미터 세트는 제2 가중치에 대하여 상기 오클루전 레벨 별로 획득된 복수개의 제2 바이어스 세트를 포함하는, 전자 장치.
  3. 청구항 2에 있어서,
    상기 제1 가중치는 상기 오클루전 레벨의 범위내의 최소 오클루전 레벨에 대하여 상기 신경망에 대하여 최적화된 값이고,
    상기 제2 가중치는 상기 오클루전 레벨의 범위내의 최대 오클루전 레벨에 대하여 상기 신경망에 대하여 최적화된 값인, 전자 장치.
  4. 청구항 2에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 오클루전 값이 특정 값을 만족하는 경우 상기 제1 파라미터 세트를 선택하고, 상기 오클루전 값이 특정 값을 만족하지 않는 경우 상기 제2 파라미터 세트를 선택하도록 설정되는, 전자 장치.
  5. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는, 상기 n개의 오클루전 레벨 중 하나의 오클루전 레벨이 상기 획득한 오클루전 값과 일치하는 경우, 상기 하나의 오클루전 레벨에 대응하는 바이어스 세트로 상기 특정 바이어스 세트를 결정하고,
    상기 n개의 오클루전 레벨이 상기 획득한 오클루전 값과 일치하지 않는 경우, 상기 n개의 오클루전 레벨 중 두 개 이상의 오클루전 레벨에 기초하여 상기 특정 바이어스 세트를 결정하는, 전자 장치.
  6. 청구항 5에 있어서,
    상기 적어도 하나의 프로세서는, 상기 두 개 이상의 오클루전 레벨에 대응하는 바이어스 세트들의 보간법(interpolation)에 기초하여 상기 특정 바이어스 세트를 결정하도록 설정되는, 전자 장치.
  7. 청구항 5에 있어서,
    상기 적어도 하나의 프로세서는, 상기 두 개 이상의 오클루전 레벨에 대하여 획득된 바이어스 세트들의 보외법(extrapolation)에 기초하여 상기 특정 바이어스 세트를 결정하도록 설정되는, 전자 장치.
  8. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는, 상기 특정 파라미터 세트 내의 오클루전 레벨 중 상기 획득한 오클루전 값과 가장 거리가 작은 오클루전 레벨에 대응되는 바이어스 세트를 상기 특정 바이어스 세트로 결정하도록 설정되는, 전자 장치.
  9. 청구항 1에 있어서,
    상기 신경망은 컨벌루션 신경망(convolution neural network)인, 전자 장치.
  10. 청구항 1에 있어서,
    상기 전자 장치는, 상기 특정 파라미터 세트에 대응하는 가중치 및 상기 특정 바이어스 세트에 기초하여 컨벌루션 계층(convolution layer)의 특징 맵(feature map)을 생성하도록 설정되는, 전자 장치.
  11. 청구항 1에 있어서,
    상기 바이어스 세트는 상기 입력 데이터에 대한 인식을 위한 초영역(hyperplane)과 원점까지의 거리에 대응하는, 전자 장치.
  12. 청구항 1에 있어서,
    상기 바이어스 세트는 각각의 컨벌루션 계층(convolution layer)에 연관된 바이어스 값을 포함하는, 전자 장치.
  13. 청구항 1에 있어서,
    상기 바이어스 세트는 컨벌루션 계층(convolution layer)의 각각의 특징 맵(feature map)에 연관된 바이어스 값을 포함하는, 전자 장치.
  14. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는 그래픽 처리 유닛(GPU; graphic processing unit)을 포함하는, 전자 장치.
  15. 신경망(neural network) 학습에 기반하여 영상을 처리하는 전자 장치에 있어서,
    각각, 하나의 가중치 및 소정 범위내의 복수개의 오클루전(occlusion) 레벨 중 n개(단, n>1)의 오클루전 레벨에 각각 대응하는 바이어스 값을 포함하는 제1 파라미터 세트 및 제2 파라미터 세트가 저장된 메모리, 및
    입력 데이터를 상기 신경망에 입력하여 출력 데이터를 획득하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
    오클루전 값을 획득하고, 상기 오클루전 값에 기초하여 상기 신경망에 적용하기 위한 파라미터 세트를 상기 제1 파라미터 세트로 결정하고,
    상기 오클루전 값에 기초하여, 상기 제1 파라미터 세트 내의 특정 바이어스 값을 결정하고,
    상기 제1 파라미터 세트에 대응하는 가중치 및 상기 특정 바이어스 값을 이용하여 상기 출력 데이터를 획득하도록 설정되는, 전자 장치.
  16. 청구항 15에 있어서,
    상기 적어도 하나의 프로세서는, 상기 출력 데이터의 잡음 대 신호 상관관계와 신호 대 신호 상관관계가 특정 조건을 만족하는 경우, 상기 입력 데이터 값을 반전시키도록 설정되는, 전자 장치.
  17. 청구항 15에 있어서,
    상기 신경망은 컨벌루션 신경망(convolution neural network)인, 전자 장치.
  18. 청구항 15에 있어서,
    상기 적어도 하나의 프로세서는 그래픽 처리 유닛(GPU; graphic processing unit)을 포함하는, 전자 장치.
  19. 청구항 15에 있어서,
    상기 적어도 하나의 프로세서는 상기 바이어스 값을 컨벌루션 연산에 적용하여 상기 출력 데이터를 획득하도록 설정되는, 전자 장치.
  20. 컴퓨터 판독 가능한 명령어를 저장하고 있는 저장 매체에 있어서, 전자 장치의 적어도 하나의 프로세서에 의해 실행될 때,
    오클루전(occlusion) 값을 획득하는 동작,
    상기 오클루전 값에 기초하여 신경망 연산에 적용할 가중치를 결정하는 동작,
    상기 오클루전 값 및 가중치에 기초하여 상기 신경망 연산에 적용할 바이어스 값을 결정하는 동작, 및
    입력 데이터에 대한 출력 데이터를 상기 신경망 연산을 이용하여 획득하도록 하는 명령어를 저장하고 있는, 저장 매체.
KR1020170028899A 2016-11-07 2017-03-07 신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치 KR102313773B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2017/011638 WO2018084473A1 (ko) 2016-11-07 2017-10-20 신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치
US16/338,579 US10963738B2 (en) 2016-11-07 2017-10-20 Method for processing input on basis of neural network learning and apparatus therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160147735 2016-11-07
KR1020160147735 2016-11-07

Publications (2)

Publication Number Publication Date
KR20180051335A true KR20180051335A (ko) 2018-05-16
KR102313773B1 KR102313773B1 (ko) 2021-10-19

Family

ID=62452358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170028899A KR102313773B1 (ko) 2016-11-07 2017-03-07 신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치

Country Status (2)

Country Link
US (1) US10963738B2 (ko)
KR (1) KR102313773B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110770756A (zh) * 2018-09-28 2020-02-07 深圳市大疆创新科技有限公司 数据处理方法、设备以及无人机
KR20200057844A (ko) * 2018-11-15 2020-05-27 이화여자대학교 산학협력단 학습네트워크 기반의 비디오 보간 방법 및 비디오 보외 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102313773B1 (ko) * 2016-11-07 2021-10-19 삼성전자주식회사 신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치
US11328210B2 (en) 2017-12-29 2022-05-10 Micron Technology, Inc. Self-learning in distributed architecture for enhancing artificial neural network
US10522038B2 (en) 2018-04-19 2019-12-31 Micron Technology, Inc. Systems and methods for automatically warning nearby vehicles of potential hazards
KR102135632B1 (ko) * 2018-09-28 2020-07-21 포항공과대학교 산학협력단 뉴럴 프로세싱 장치 및 그것의 동작 방법
US10461076B1 (en) 2018-10-24 2019-10-29 Micron Technology, Inc. 3D stacked integrated circuits having functional blocks configured to accelerate artificial neural network (ANN) computation
US11373466B2 (en) 2019-01-31 2022-06-28 Micron Technology, Inc. Data recorders of autonomous vehicles
US11410475B2 (en) 2019-01-31 2022-08-09 Micron Technology, Inc. Autonomous vehicle data recorders
US11184285B2 (en) * 2019-04-23 2021-11-23 Cesium GS, Inc. Systems and methods for prioritizing requests for hierarchical level of detail content over a communications network
KR20200131952A (ko) * 2019-05-14 2020-11-25 삼성전자주식회사 쿼리에 응답하여 정보를 제공하는 전자 장치 및 쿼리에 응답하여 정보를 제공하기 위한 방법
US11392796B2 (en) 2019-08-20 2022-07-19 Micron Technology, Inc. Feature dictionary for bandwidth enhancement
US11755884B2 (en) 2019-08-20 2023-09-12 Micron Technology, Inc. Distributed machine learning with privacy protection
US11636334B2 (en) 2019-08-20 2023-04-25 Micron Technology, Inc. Machine learning with feature obfuscation
CN110852348B (zh) * 2019-10-18 2022-09-30 北京迈格威科技有限公司 特征图处理方法、图像处理方法及装置
US10936916B1 (en) * 2019-10-31 2021-03-02 Booz Allen Hamilton Inc. System and method for classifying image data
US20210295167A1 (en) * 2020-03-23 2021-09-23 Ansys, Inc. Generative networks for physics based simulations
US11599360B2 (en) * 2020-12-14 2023-03-07 Cognitive Science & Solutions, Inc. AI synaptic coprocessor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006140952A (ja) * 2004-11-15 2006-06-01 Toa Corp 画像処理装置および画像処理方法
JP2007512717A (ja) * 2003-11-24 2007-05-17 ヴェーデクス・アクティーセルスカプ 補聴器およびノイズ低減方法
WO2016141282A1 (en) * 2015-03-04 2016-09-09 The Regents Of The University Of California Convolutional neural network with tree pooling and tree feature map selection

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031440A (ja) 2004-07-16 2006-02-02 Konica Minolta Photo Imaging Inc 画像処理方法、画像処理装置、画像処理プログラム及び画像処理システム
US11256982B2 (en) 2014-07-18 2022-02-22 University Of Southern California Noise-enhanced convolutional neural networks
CN106156807B (zh) 2015-04-02 2020-06-02 华中科技大学 卷积神经网络模型的训练方法及装置
KR102313773B1 (ko) * 2016-11-07 2021-10-19 삼성전자주식회사 신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치
JP7169094B2 (ja) * 2017-06-01 2022-11-10 株式会社東芝 画像処理システム及び医用情報処理システム
US10896318B2 (en) * 2017-09-09 2021-01-19 Apple Inc. Occlusion detection for facial recognition processes
US11517197B2 (en) * 2017-10-06 2022-12-06 Canon Medical Systems Corporation Apparatus and method for medical image reconstruction using deep learning for computed tomography (CT) image noise and artifacts reduction
US10552944B2 (en) * 2017-10-13 2020-02-04 Adobe Inc. Image upscaling with controllable noise reduction using a neural network
JP7362297B2 (ja) * 2019-05-24 2023-10-17 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007512717A (ja) * 2003-11-24 2007-05-17 ヴェーデクス・アクティーセルスカプ 補聴器およびノイズ低減方法
JP2006140952A (ja) * 2004-11-15 2006-06-01 Toa Corp 画像処理装置および画像処理方法
WO2016141282A1 (en) * 2015-03-04 2016-09-09 The Regents Of The University Of California Convolutional neural network with tree pooling and tree feature map selection

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110770756A (zh) * 2018-09-28 2020-02-07 深圳市大疆创新科技有限公司 数据处理方法、设备以及无人机
KR20200057844A (ko) * 2018-11-15 2020-05-27 이화여자대학교 산학협력단 학습네트워크 기반의 비디오 보간 방법 및 비디오 보외 방법

Also Published As

Publication number Publication date
US20190251396A1 (en) 2019-08-15
KR102313773B1 (ko) 2021-10-19
US10963738B2 (en) 2021-03-30

Similar Documents

Publication Publication Date Title
KR20180051335A (ko) 신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치
CN111582201B (zh) 一种基于几何注意力感知的车道线检测系统
KR102596388B1 (ko) 이동체의 이동 속성 획득 방법 및 이를 수행하는 장치
US11651302B2 (en) Method and device for generating synthetic training data for an artificial-intelligence machine for assisting with landing an aircraft
KR20190113119A (ko) 합성곱 신경망을 위한 주의집중 값 계산 방법
US10699192B1 (en) Method for optimizing hyperparameters of auto-labeling device which auto-labels training images for use in deep learning network to analyze images with high precision, and optimizing device using the same
Fernando et al. Going deeper: Autonomous steering with neural memory networks
O'Callaghan et al. Contextual occupancy maps using Gaussian processes
KR20200074940A (ko) 약한 지도 학습에 기초한 뉴럴 네트워크의 계층적 학습 방법 및 장치
KR20170038622A (ko) 영상으로부터 객체를 분할하는 방법 및 장치
US10762440B1 (en) Sensor fusion and deep learning
KR20180048407A (ko) 차선 검출 장치 및 방법
CN110646787A (zh) 自运动估计方法和设备以及模型训练方法和设备
US20210192343A1 (en) Method and device for training generative adversarial network for converting between heterogeneous domain data
CN111507369B (zh) 自动行驶车辆空间学习方法及装置、测试方法及装置
CN111462131A (zh) 一种注意力驱动图像分割的方法和设备
CN111382686A (zh) 一种基于半监督生成对抗网络的车道线检测方法
CN111027627A (zh) 一种基于多层感知机的振动信息地形分类识别方法
CN111782840A (zh) 图像问答方法、装置、计算机设备和介质
CN112464930A (zh) 目标检测网络构建方法、目标检测方法、装置和存储介质
CN112052802A (zh) 一种基于机器视觉的前方车辆行为识别方法
JP2009096365A (ja) リスク認識システム
CN114266889A (zh) 图像识别方法及其装置、可读介质和电子设备
KR102372687B1 (ko) 비최대값 억제를 학습하는 병합 네트워크를 이용한 이종 센서 융합을 위한 학습 방법 및 학습 장치
CN111783716A (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