KR20190078292A - 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법 - Google Patents

뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20190078292A
KR20190078292A KR1020170180131A KR20170180131A KR20190078292A KR 20190078292 A KR20190078292 A KR 20190078292A KR 1020170180131 A KR1020170180131 A KR 1020170180131A KR 20170180131 A KR20170180131 A KR 20170180131A KR 20190078292 A KR20190078292 A KR 20190078292A
Authority
KR
South Korea
Prior art keywords
feature map
memory
delta
neural network
current
Prior art date
Application number
KR1020170180131A
Other languages
English (en)
Inventor
박준석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170180131A priority Critical patent/KR20190078292A/ko
Priority to DE102018133582.2A priority patent/DE102018133582A1/de
Priority to TW107147043A priority patent/TWI790338B/zh
Priority to CN201811598979.1A priority patent/CN109961072B/zh
Priority to US16/232,616 priority patent/US11074474B2/en
Publication of KR20190078292A publication Critical patent/KR20190078292A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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/211Selection of the most significant subset of features
    • G06F18/2113Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/254Analysis of motion involving subtraction of images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • 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/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20224Image subtraction
    • 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/30248Vehicle exterior or interior

Landscapes

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

Abstract

뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법이 개시된다. 본 개시의 실시예에 따른, 뉴럴 네트워크(neural network) 장치의 동작 방법은, 프로세싱 회로가, 제1 이전 피처 맵과 제1 현재 피처 맵 간의 피처값들의 차이에 기초하여 생성되는 제1 델타 피처 맵에 대하여 선형 연산을 수행함으로써, 제2 델타 피처 맵을 생성하는 단계; 적어도 하나의 메모리에 저장된 제2 피처 맵 중 업데이트될 제1 부분 영역에 대응하는 피처값들을 상기 적어도 하나의 메모리로부터 상기 프로세싱 회로에 제2 이전 피처 맵으로서 로드하는 단계; 상기 프로세싱 회로가, 상기 제2 델타 피처 맵과 상기 제2 이전 피처 맵을 기초로 제2 현재 피처 맵을 생성하는 단계; 및 상기 제2 현재 피처 맵을 상기 적어도 하나의 메모리에 저장함으로써, 상기 제2 피처 맵을 업데이트하는 단계를 포함할 수 있다.

Description

뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법 {Device for computing neural network operation, and method of operation thereof}
본 개시의 기술적 사상은 반도체 장치에 관한 것으로서, 보다 상세하게는 연속적으로 수신되는 이미지 프레임들에 대한 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법에 관한 것이다.
뉴럴 네트워크(neural network)는 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조한다. 최근 뉴럴 네트워크(neural network) 기술이 발전함에 따라, 다양한 종류의 전자 시스템에서 뉴럴 네트워크 장치를 사용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다.
뉴럴 네트워크 장치는 복잡한 입력 데이터에 대한 많은 양의 연산을 필요로 한다. 뉴럴 네트워크 장치가 연속적으로 입력되는 이미지 프레임을 실시간으로 분석하고, 정보를 추출하기 위해서 뉴럴 네트워크 연산을 효율적으로 처리할 수 있는 기술이 요구된다.
본 개시의 기술적 사상이 해결하려는 과제는 처리 속도를 증가시키고, 소비 전력을 감소시킬 수 있는 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 개시의 실시예에 따른 연속하여 입력되는 이미지 프레임들에 대하여 뉴럴 네트워크 연산을 수행하는 뉴럴 네트워크(neural network) 장치의 동작 방법은, 프로세싱 회로가, 제1 이전 피처 맵과 제1 현재 피처 맵 간의 피처값들의 차이에 기초하여 생성되는 제1 델타 피처 맵에 대하여 선형 연산을 수행함으로써, 제2 델타 피처 맵을 생성하는 단계; 적어도 하나의 메모리에 저장된 제2 피처 맵 중 업데이트될 제1 부분 영역에 대응하는 피처값들을 상기 적어도 하나의 메모리로부터 상기 프로세싱 회로에 제2 이전 피처 맵으로서 로드하는 단계; 상기 프로세싱 회로가, 상기 제2 델타 피처 맵과 상기 제2 이전 피처 맵을 기초로 제2 현재 피처 맵을 생성하는 단계; 및 상기 제2 현재 피처 맵을 상기 적어도 하나의 메모리에 저장함으로써, 상기 제2 피처 맵을 업데이트하는 단계를 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 개시의 실시예에 따른 뉴럴 네트워크(neural network) 연산을 수행하는 애플리케이션 프로세서의 동작 방법은, 컴퓨팅 모듈이, 이전 입력 프레임 및 현재 입력 프레임 간의 차이에 기초하여 생성되는 델타 피처 맵에 선형 연산을 수행함으로써 선형 델타 피처 맵을 생성하는 단계; 제1 메모리 및 제2 메모리 중 적어도 하나에 저장된 이전 피처 맵의 복수의 블록들 중 선형 델타 피처 맵의 유효 블록들에 대응하는 적어도 하나의 제1 블록에 포함된 피처값들을 상기 제1 메모리 및 제2 메모리 중 적어도 하나로부터 상기 컴퓨팅 모듈의 프로세싱 회로로 로딩하는 단계; 상기 컴퓨팅 모듈이 상기 선형 델타 피처 맵의 상기 유효 블록들에 포함된 델타 피처값들 각각을 상기 피처값들 중 대응하는 피처값과 합산함으로써, 현재 피처 맵을 생성하는 단계; 및 상기 컴퓨팅 모듈이 상기 현재 피처 맵을 기초로 상기 이전 피처 맵을 업데이트하는 단계를 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 개시의 실시예에 따른, 연속하여 수신되는 입력 프레임들에 대하여 뉴럴 네트워크(neural network) 연산을 수행하는 컴퓨팅 장치에 있어서, 상기 컴퓨팅 장치는, 제1 이전 피처 맵과 제1 현재 피처 맵 간의 피처값들의 차이에 기초하여 생성되는 제1 델타 피처 맵에 대하여 선형 연산을 수행함으로써 제2 델타 피처 맵을 생성하고, 제2 이전 피처 맵과 상기 제2 델타 피처 맵을 기초로 제2 현재 피처 맵을 생성하는 프로세싱 회로; 및 상기 제2 이전 피처 맵을 저장하는 메모리를 포함하고, 상기 제2 이전 피처 맵 중 업데이트될 제1 부분 영역의 피처값들이 상기 메모리로부터 독출되어 상기 프로세싱 회로에 제공될 수 있다.
본 개시의 실시예에 따른 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법에 따르면, 상기 장치가 이전 이미지 프레임에 대한 중간 연산 결과들을 메모리에 저장하고, 현재 이미지 프레임에 대한 연산 수행 시, 상기 중간 연산 결과들을 재이용하여 효율적으로 연산을 수행함에 따라 뉴럴 네트워크 연산의 연산량이 감소될 수 있다.
본 개시의 실시예에 따른 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법에 따르면, 상기 장치가 메모리에 저장된 중간 연산 결과들, 즉 메모리에 저장된 피처 맵을 재이용함에 있어서, 피처 맵에서 업데이트가 될 피처들만 메모리로부터 선택적으로 독출하거나, 또는 현재 이미지 프레임에 대하여 생성된 피처 맵에서 다음 이미지 프레임에 대한 연산 수행 시 업데이트 가능성이 높은 피처들을 버퍼 또는 연산 회로와 상대적으로 가까운 메모리에 저장함으로써 메모리 트랜잭션 및 메모리 트랜잭션에 따른 소비 시간이 감소될 수 있다. 또한, 상기 장치가 현재 프레임에 대한 연산 결과를 추정하고 이전 프레임에 대한 연산 결과와 상기 추정된 현재 프레임에 대한 연산 결과 간에 연산 결과의 변화가 작은 경우, 현재 프레임에 대한 연산의 수행을 스킵함으로써, 뉴럴 네트워크 연산의 연산량 및 메모리 트랜잭션이 감소될 수 있다. 이에 따라서, 뉴럴 네트워크 연산을 수행하는 장치 및 상기 장치가 탑재되는 전자 시스템의 동작 속도가 향상되고 소비 전력이 감소될 수 있다.
도 1은 본 개시의 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 2는 뉴럴 네트워크 구조의 일 예를 나타낸다.
도 3은 본 개시의 실시예에 따른 뉴럴 네트워크 장치에 연속하여 입력되는 이미지 프레임들 및 이미지 프레임들 간의 차이를 나타내는 도면이다.
도 4는 본 개시의 실시예에 따른 뉴럴 네트워크 장치를 포함하는 뉴럴 네트워크 시스템의 연산 방법을 나타내는 도면이다.
도 5a 및 도 5b는 본 개시의 실시예에 따른 델타 레이어에 대한 일 구현예이다.
도 6은 본 개시의 실시예에 따른 뉴럴 네트워크 장치를 나타내는 블록도이다.
도 7은 본 개시의 실시예에 따른 프로세싱 회로의 일 구현예를 나타내는 도면이다.
도 8은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 설명하는 도면이다.
도 9 는 델타 피처값들 및 피처값들이 블록 단위로 관리되는 예시적 실시예를 나타내는 도면이다.
도 10은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 흐름도이다. 도 8을 참조하여 설명한 내용은 본 실시예에 적용될 수 있다.
도 11은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 설명하는 도면이다.
도 12a 및 도 12b는 연속적인 이미지 프레임들을 나타낸다.
도 13은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작을 설명하는 흐름도이다.
도 14는 본 개시의 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다.
도 15는 본 개시의 실시예에 따른 뉴럴 네트워크 시스템에서 현재 이미지 프레임에 대한 연산 결과를 추정하는 방법을 나타내는 도면이다.
도 16은 본 개시의 실시예에 따른 뉴럴 네트워크 시스템의 동작 방법을 나타내는 흐름도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 실시예에 따른 전자 시스템을 나타내는 블록도이다.
본 개시의 실시예에 따른 전자 시스템(10)은 뉴럴 네트워크를 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황 판단을 하거나 또는 전자 시스템(10)이 탑재되는 전자 장치의 구성들을 제어할 수 있다. 예컨대 전자 시스템(10)은 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트 폰, 의료 장치, 모바일 장치, 영상 표시 장치, 계측 장치, IoT(Internet of Things) 장치 등에 적용될 수 있으며, 이 외에도 다양한 종류의 전자 장치 중 하나에 탑재될 수 있다. 실시예에 있어서, 도 1의 전자 시스템(10)은 애플리케이션 프로세서일 수 있다. 전자 시스템(10)이 뉴럴 네트워크 연산 기능을 수행하는 점에서, 전자 시스템(10)은 뉴럴 네트워크 시스템을 포함하는 것으로 정의될 수 있다.
도 1을 참조하면, 전자 시스템(10)은 CPU(Central Processing Unit)(11), RAM(Random Access memory)(12), 뉴럴 네트워크 장치(13), 메모리(14), 및 센서 모듈(15)을 포함할 수 있다. 전자 시스템(10)은 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있으며, 또한 다양한 종류의 연산 장치를 더 포함할 수 있다. 실시예에 있어서, 전자 시스템(10)의 구성들(CPU(11), RAM(12), 뉴럴 네트워크 장치(13), 메모리(14), 센서 모듈(15)) 중 일부 또는 전부는 하나의 반도체 칩에 탑재될 수 있다. 예컨대 전자 시스템(10)은 시스템 온 칩(SoC)으로서 구현될 수 있다. 전자 시스템(10)의 구성들은 버스(16)를 통해 서로 통신할 수 있다.
CPU(11)는 전자 시스템(10)의 전반적인 동작을 제어한다. CPU(11)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. CPU(11)는 메모리(14)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 일 실시예에 있어서, CPU(11)는 메모리(14)에 저장된 프로그램들을 실행함으로써, 뉴럴 네트워크 장치(13)의 기능을 제어할 수 있다.
RAM(12)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대 메모리(14)에 저장된 프로그램들 및/또는 데이터는 CPU(11)의 제어 또는 부팅 코드에 따라 RAM(12)에 일시적으로 저장될 수 있다. RAM(12)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다.
뉴럴 네트워크 장치(13)는 수신되는 입력 데이터를 기초로 뉴럴 네트워크 연산, 즉 제공되는 뉴럴 네트워크에 포함되는 연산들을 수행하고, 뉴럴 네트워크 연산의 수행 결과(이하 연산 결과라고 함)를 기초로 정보 신호를 생성할 수 있다. 뉴럴 네트워크 장치(13)는 컴퓨팅 장치, 컴퓨팅 모듈 등으로 지칭될 수 있다.
뉴럴 네트워크는 CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restricted Boltzman Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network 등 다양한 종류의 뉴럴 네트워크 모델들을 포함할 수 있으나 이에 제한되지 않는다. 또한, 하나의 테스크를 수행하는 뉴럴 네트워크는 전술한 뉴럴 네트워크 모델들로 구현되는 서브 뉴럴 네트워크들을 포함할 수 있다. 도 2를 참조하여 뉴럴 네트워크 구조의 일 예를 설명하기로 한다.
도 2는 뉴럴 네트워크 구조의 일 예로서, 컨볼루션 뉴럴 네트워크의 구조를 나타낸다. 도 2를 참조하면, 뉴럴 네트워크(NN)는 복수의 레이어들(L1 내지 Ln)을 포함할 수 있다. 복수의 레이어들(L1 내지 Ln) 각각은 선형 레이어 또는 비선형 레이어일 수 있으며, 실시예에 있어서, 적어도 하나의 레이어 및 적어도 하나의 비선형 레이어가 겹합되어 하나의 레이어로 지칭될 수도 있다. 예시적으로, 선형 레이어는 컨볼루션 레이어(convolution), 풀리 커넥티드(fully connected) 레이어를 포함할 수 있으며, 비선형 레이어는 풀링(pooling) 레이어, 액티베이션 레이어를 포함할 수 있다.
예시적으로, 제1 레이어(L1)는 컨볼루션 레이어이고, 제2 레이어(L2)는 풀링(pooling) 레이어이고, 제n 레이어(Ln)는 출력 레이어로서 풀리 커넥티드(fully connected) 레이어일 수 있다. 뉴럴 네트워크(NN)는 활성(activation) 레이어를 더 포함할 수 있으며, 다른 종류의 연산을 수행하는 레이어를 더 포함할 수 있다.
복수의 레이어들(L1 내지 Ln) 각각은 입력되는 이미지 프레임 또는 이전 레이어에서 생성된 피처 맵을 입력 피처 맵으로서 수신하고, 입력 피처 맵을 연산하여 출력 피처 맵 또는 인식 신호(REC)를 생성할 수 있다. 이때, 피처 맵은 입력 데이터의 다양한 특징이 표현된 데이터를 의미한다. 피처 맵들(FM1, FM2, FMn)은 예컨대 2차원 매트릭스 또는 3차원 매트릭스(또는 텐서(tensor)라고 함) 형태를 가질 수 있다. 피처 맵들(FM1, FM2, FMn)은 너비(W)(또는 칼럼이라고 함), 높이(H)(또는 로우라고 함) 및 깊이(D)를 가지며, 이는 좌표상의 x축, y축 및 z축에 각각 대응할 수 있다. 이때, 깊이(D)는 채널 수로 지칭될 수 있다.
제1 레이어(L1)는 제1 피처 맵(FM1)을 웨이트 맵(WM)과 컨볼루션하여 제2 피처 맵(FM2)을 생성할 수 있다. 웨이트 맵(WM)은 제1 피처 맵(FM1)을 필터링할 수 있으며, 필터 또는 커널로 지칭될 수 있다. 웨이트 맵(WM)의 깊이, 즉 채널 개수는 제1 피처 맵(FM1)의 깊이, 즉 채널 개수와 동일하며, 웨이트 맵(WM)과 제1 피처 맵(FM1)의 동일한 채널끼리 컨볼루션될 수 있다. 웨이트 맵(WM)이 제1 입력 피처 맵(FM1)을 슬라이딩 윈도로하여 횡단하는 방식으로 시프트된다. 시프트되는 양은 "스트라이드(stride) 길이" 또는 "스트라이드"로 지칭될 수 있다. 각 시프트동안, 웨이트 맵(WM)에 포함되는 웨이트들 각각이 제1 피처 맵(FM1)과 중첩된 영역에서의 모든 피처값과 곱해지고 더해질 수 있다. 제1 피처 맵(FM1)과 웨이트 맵(WM)이 컨볼루션 됨에 따라, 제2 피처 맵(FM2)의 하나의 채널이 생성될 수 있다. 도 2에는 하나의 웨이트 맵(WM)이 표시되었으나, 실질적으로는 복수개의 웨이트 맵이 제1 피처 맵(FM1)과 컨볼루션 되어, 제2 피처 맵(FM2)의 복수개의 채널이 생성될 수 있다. 다시 말해, 제2 피처 맵(FM2)의 채널의 수는 웨이트 맵의 개수에 대응할 수 있다.
제2 레이어(12)는 풀링을 통해 제2 피처 맵(FM2)의 공간적 크기(spatial size)를 변경함으로써, 제3 피처 맵(FM3)을 생성할 수 있다. 풀링은 샘플링 또는 다운-샘플링으로 지칭될 수 있다. 2 차원의 풀링 윈도우(PW)가 풀링 윈도우(PW)의 사이즈 단위로 제2 피처 맵(FM2) 상에서 쉬프트되고, 풀링 윈도우(PW)와 중첩되는 영역의 피처값들 중 최대값(또는 피처값들의 평균값)이 선택될 수 있다. 이에 따라, 제2 피처 맵(FM2)으로부터 공간적 사이즈가 변경된 제3 피처 맵(FM3)이 생성될 수 있다. 제3 피처 맵(FM3)의 채널과 제2 피처 맵(FM2)의 채널 개수는 동일하다.
제n 레이어(Ln)는 제n 피처 맵(FMn)의 피처들을 조합하여 입력 데이터의 클래스(class)(CL)를 분류할 수 있다. 또한, 클래스에 상응하는 인식 신호(REC)를 생성할 수 있다. 실시예에 있어서, 입력 데이터는 비디오 스트림(video stream)에 포함되는 프레임 데이터에 상응할 수 있으며, 제n 레이어(Ln)는 이전 레이어로부터 제공되는 제n 피처 맵(FMn)을 기초로 프레임 데이터가 나타내는 이미지에 포함되는 사물에 해당하는 클래스를 추출함으로써, 사물을 인식하고, 인식된 사물에 상응하는 인식 신호(REC)를 생성할 수 있다.
계속하여 도 1을 참조하면, 뉴럴 네트워크 장치(13)에 수신되는 입력 데이터는 연속적으로 수신되는 이미지 프레임이고, 정보 신호는 사물 인식 신호, 영상 인식 신호 등과 같은 이미지 기반의 신호일 수 있다. 예를 들어, 뉴럴 네트워크 장치(13)는 비디오 스트림의 이미지 프레임을 수신하고, 이미지 프레임이 나타내는 이미지 중 사물(object)에 대한 인식 신호를 생성할 수 있다.
비디오 스트림을 기반으로 상황을 인지하는 뉴럴 네트워크 시스템에서, 뉴럴 네트워크 장치(13)는 유사한 형태의 연속된 이미지 프레임들을 입력받아서 거의 동일한 뉴럴 네트워크 연산 결과들을 출력할 수 있다. 뉴럴 네트워크 시스템의 입력과 출력이 유사하면, 뉴럴 네트워크 연산 과정에서 생성되는 중간 연산 결과들 (예컨대 피처 맵들)도 유사할 가능성이 높다. 본 개시의 실시예에 따른 뉴럴 네트워크 장치(13)는 이전 이미지 프레임에 대한 중간 연산 결과들을 현재 이미지 프레임에 대한 뉴럴 네트워크 연산 수행 시 재이용함으로써, 연산량을 감소시키고, 연산 처리 속도를 향상시킬 수 있다.
한편, 뉴럴 네트워크 장치(13)는 이전 이미지 프레임에 대한 적어도 하나의 중간 연산 결과(예컨대 피처 맵)를 뉴럴 네트워크 장치(13) 내부의 메모리 또는 외부 메모리(예컨대 메모리 (14))에 저장하고, 이후 중간 연산 결과를 재이용할 때, 중간 연산 결과의 전체가 아닌, 재이용되어야 하거나 (즉 업데이트되어야 하거나) 또는 재이용될 것으로 예측되는 일부 값들(예컨대 피처 맵의 일부 피처들)을 엑세스하고 업데이트할 수 있다.
실시예에 있어서, 뉴럴 네트워크 장치(13)는 현재 프레임에 대하여 생성된 중간 연산 결과 중 다음 프레임에 대한 뉴럴 네트워크 수행 시 재이용될 확률이 상대적(또는 절대적)으로 높은 일부 값들을 뉴럴 네트워크 연산을 수행하는 연산 회로, 예컨대 프로세싱 유닛과의 거리가 상대적으로 짧은 메모리에 저장하고, 다른 값들, 예컨대 다음 프레임에 대한 뉴럴 네트워크 수행 시 재이용될 확률이 낮은 값들은 연산 회로와의 거리가 상대적으로 긴 메모리에 저장할 수 있다. 이때, 메모리와 연산 회로와의 거리는 물리적 또는 시간적 거리를 의미하며, 메모리와 연산 회로와의 거리가 상대적으로 짧다는 것은 메모리에 저장된 데이터를 연산 회로에 로딩하거나, 연산 회로로부터 출력되는 데이터를 메모리에 저장함에 있어서, 메모리에 대한 엑세스가 상대적으로 용이하거나 또는 엑세스에 소요되는 시간이 상대적으로 짧다는 것을 의미할 수 있다. 실시예에 있어서, 프로세싱 유닛과의 거리가 상대적으로 짧은 메모리의 엑세스 레이턴시는 프로세싱 유닛과의 거리가 상대적으로 긴 메모리의 엑세스 레이턴시보다 짧을 수 있다.
실시예에 있어서, 뉴럴 네트워크 장치(13)는 수신되는 이미지 프레임들 간의 기하학적 특성에 기초하여 이미지 프레임에 대한 연산 결과를 추정하고, 추정되는 연산 결과에 기초하여 이미지 프레임 중 적어도 일부에 대한 뉴럴 네트워크 연산을 스킵할 수 있다.
이에 따라, 뉴럴 네트워크 장치(13)가 중간 연산 결과들을 메모리에 저장하고, 메모리에 저장된 중간 연산 결과들을 재이용함에 있어서, 메모리 트랜젝션 및 메모리 트랜젝션에 따른 소비 시간이 감소될 수 있다. 이와 같이 메모리 트랜젝션 및 메모리 트랜젝션에 따른 소비 시간이 감소될 수 있는 뉴럴 네트워크 장치의 구체적인 동작 방법에 관해서는 후술하기로 한다.
메모리(14)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 실시예에 있어서, 메모리(14)는 뉴럴 네트워크 장치(13)의 연산 수행 과정에서 생성되는 중간 연산 결과들을 저장할 수 있다. 또한, 메모리(14)는 뉴럴 네트워크 장치(130)에서 이용되는 각종 파라미터들, 예컨대 웨이트 맵, 바이어스 맵 등을 저장할 수 있다. 메모리(14)에 중간 연산 결과들이 저장된 경우, 메모리(14)에 대한 엑세스가 빈번해질 수 있으며 메모리 트랜잭션이 증가될 수 있다. 그러나, 본 개시의 실시예에 따른 뉴럴 네트워크 장치(13)의 동작 방법에 따르면, 메모리 트랜젝션의 증가가 방지 또는 완화될 수 있다.
메모리(14)는 DRAM일 수 있으나, 이에 한정되는 것은 아니다. 메모리(14)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(nonvolatile memory) 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다. 휘발성 메모리는 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등을 포함한다. 실시예에 있어서, 메모리(14)는 HDD(Hard Disk Drive), SSD(Solid State Drive), CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 중 적어도 하나를 포함할 수 있다.
센서 모듈(15)은 전자 시스템(10)이 탑재되는 전자 장치 주변의 정보를 수집할 수 있다. 센서 모듈(15)은 전자 장치의 외부로부터 이미지 신호를 센싱 또는 수신하고, 센싱 또는 수신된 이미지 신호를 이미지 데이터, 즉 이미지 프레임으로 변환할 수 있다. 이를 위해, 센서 모듈(15)은 센싱 장치, 예컨대 촬상 장치, 이미지 센서, 라이더(LIDAR; light detection and ranging) 센서, 초음파 센서, 적외선 센서 등 다양한 종류의 센싱 장치 중 적어도 하나를 포함하거나, 또는 상기 장치로부터 센싱 신호를 수신할 수 있다.
센서 모듈(15)은 이미지 프레임을 뉴럴 네트워크 장치(13)에 제공할 수 있다. 예를 들어, 센서 모듈(15)은 이미지 센서를 포함할 수 있으며, 전자 장치(10)의 외부 환경을 촬영하여 비디오 스트림을 생성하고, 비디오 스트림의 연속하는 이미지 프레임들을 뉴럴 네트워크 장치(13)에 순서대로 제공할 수 있다.
도 3은 본 개시의 실시예에 따른 뉴럴 네트워크 장치에 연속하여 입력되는 이미지 프레임들 및 이미지 프레임들 간의 차이를 나타내는 도면이다.
선행하여 입력되는 이미지 프레임(IF(t-1))을 이전 이미지 프레임(PF)이라고 지칭하고, 이후에 입력되는 이미지 프레임(IF(t))을 현재 이미지 프레임(CF)이라고 지칭하기로 한다. 도 3을 참조하면, 연속하여 입력되는 이전 이미지 프레임(PF)과 현재 이미지 프레임(CF)은 매우 유사한 이미지를 가질 수 있다. 현재 이미지 프레임(PF)과 이전 이미지 프레임(CF) 간의 차이는 델타 프레임(DF)으로 나타낼 수 있다.
델타 프레임(DF)에서, 어두운 부분은 이전 이미지 프레임(PF)과 현재 이미지 프레임(CF) 간에 픽셀값의 차이가 없거나 매우 작은 픽셀들로서, 제로 값 또는 임계값 미만의 값을 갖는 델타 픽셀들이고, 밝은 부분은 이전 이미지 프레임(PF)과 현재 이미지 프레임(CF) 간에 픽셀값의 차이가 있는 픽셀들로서, 비제로 값 또는 임계값 이상의 값을 갖는 델타 픽셀들을 나타낸다. 비제로 값 또는 임계값 이상의 값을 갖는 델타 픽셀은 유효 픽셀로 지칭하고, 제로 값 또는 을 임계값 미만의 값을 갖는 델타 픽셀은 무효 픽셀로 지칭하기로 한다. 델타 프레임(DF)에서, 대부분의 델타 픽셀들은 무효 픽셀들이고, 유효 픽셀들이 매우 적을 수 있다. 이와 같이, 델타 프레임(DF)에서, 유효 픽셀들이 무효 픽셀들보다 상대적으로 매우 적을 수 있다.
도 4는 본 개시의 실시예에 따른 뉴럴 네트워크 장치를 포함하는 뉴럴 네트워크 시스템의 연산 방법을 나타내는 도면이다.
본 개시의 실시예에 따른 뉴럴 네트워크 시스템은 이전 이미지 프레임에 대한 중간 연산 결과들을 현재 이미지 프레임에 대한 뉴럴 네트워크 연산 수행 시 이용할 수 있다.
도 4를 참조하면, 이전 피처 맵들(PFM1 내지 PFM5)은 이전 이미지 프레임(PF)에 대하여 수행된 뉴럴 네트워크 연산의 중간 연산 결과들이고 델타 피처 맵들(DFM1 내지 DFM 5)은 델타 프레임(DF)에 대하여 수행되는 뉴럴 네트워크 연산의 중간 연산 결과들이다. 다시 말해서, 이전 시점(t-1)에 제1 레이어 내지 제5 레이어 각각에서 수행된 연산 결과가 이전 피처 맵들(PFM1 내지 PFM5)로서 출력되고, 현재 시점(t)에 제1 델타 레이어 내지 제5 델타 레이어 각각에서 수행된 연산 결과가 현재 시점(t)의 델타 피처 맵들(DFM1 내지 DFM 5)로서 출력된다. 한편, 제1 델타 레이어 내지 제5 델타 레이어의 연산자, 및 피연산자 (예컨대 바이어스, 웨이트 등)는 제1 레이어 내지 제5 레이어와 동일 또는 유사할 수 있다. 예컨대, 제1 델타 레이어의 연산자 및 피연산자는 제1 레이어의 연산자 및 피연산자와 동일 또는 유사할 수 있다. 다만 제1 델타 레이어는 입력 프레임이 아닌 델타 프레임에 대하여 연산을 수행한다는 점 및 연산 수행 과정에서 이전 피처 맵들(PFM1 내지 PFM5)을 이용할 수 있다는 점에서 제1 레이어와 상이할 수 있다. 델타 레이어에 대해서는 도 5a 및 5b를 참조하여 후술하기로 한다.
현재 이미지 프레임(CF)에 대한 뉴럴 네트워크 연산없이, 이전 피처 맵들(PFM1 내지 PFM5)과 델타 피처 맵들(DFM1 내지 DFM 5)을 기초로 현재 이미지 프레임(CF)에 대한 뉴럴 네트워크 연산의 중간 연산 결과들, 예컨대, 현재 피처 맵들(CFM1 내지 CFM5)이 생성될 수 있다. 예를 들어서, 제1 이전 피처 맵(PFM1)과 제1 델타 피처 맵(DFM1)이 합산되어 제1 현재 피처 맵(CFM1)이 생성될 수 있다. 이와 같이, 이전 이미지 프레임(PF)과 현재 이미지 프레임(PF) 간의 데이터 차이에 기반하여 연산이 수행되는 바, 이러한 뉴럴 네트워크 시스템의 연산 방법은 델타 네트워크로 지칭될 수 있다.
도 3을 참조하여 전술한 바와 같이 델타 프레임(DF)의 유효 픽셀들의 개수는 무효 픽셀들의 개수보다 상대적으로 매우 적을 수 있다. 델타 프레임(DF)의 무효 픽셀들은 델타 프레임(DF)에 대한 연산 결과에 영향을 미치지 않으므로, 무효 픽셀들에 대한 연산은 생략될 수 있다. 이에 따라서, 델타 피처 맵들(DFM1 내지 DFM 5)에서, 제로값을 갖는 델타 피처들에 대한 연산이 생략됨으로써, 이전 피처 맵들(PFM1 내지 PFM5)과 현재 피처 맵들(CFM1 내지 CFM5)의 피처들에 대한 중복 연산이 감소될 수 있다. 따라서, 델타 프레임(DF)에 대한 연산량은 일반적인 이미지 프레임, 예컨대 이전 이미지 프레임(PF)에 대한 연산량 대비 매우 적을 수 있다. 그러므로 뉴럴 네트워크 시스템은, 이전 이미지 프레임(PF)에 대한 중간 연산 결과들과 델타 프레임(DF)에 대한 중간 연산 결과들을 기초로 현재 이미지 프레임(CF)에 대한 중간 연산 결과들 생성함으로써, 현재 이미지 프레임(CF)에 대하여 뉴럴 네트워크 연산을 수행하는 경우보다 연산량을 감소시킬 수 있다. 이에 따라서 뉴럴 네트워크 장치(도 1의 13)의 처리 속도, 즉 뉴럴 네트워크 연산 속도가 향상되고, 소비 전력이 감소될 수 있다.
도 5a 및 도 5b는 본 개시의 실시예에 따른 델타 레이어에 대한 일 구현예이다. 예컨대, 도 4의 제1 델타 레이어 내지 제5 델타 레이어 중 적어도 하나는 도 5a 또는 도 5b의 델타 레이어 구조로 구현될 수 있을 것이다.
도 5a를 참조하면, 델타 레이어(DLa)는 선형 연산, 가산 및 비선형 연산을 포함할 수 있다. 선형 연산 및 가산은 선형 레이어를 구성하고, 비선형 연산은 비선형 레이어를 구성할 수 있다. 이전 델타 레이어로부터 제1 델타 피처 맵(DFM1)이 입력될 수 있다. 제1 델타 피처 맵(DFM1)은 델타 레이어(DLa)의 입력 데이터이다. 제1 델타 피처 맵(DFM1)은 이전 레이어에서 출력되는 델타 피처 맵이거나 또는 이전에 입력된 이전 이미지 프레임과 현재 입력된 현재 이미지 프레임에 기초하여 생성되는 델타 프레임일 수 있다. 제1 델타 피처 맵(DFM1)은 제로값을 갖는 델타 피처(또는 델타 픽셀로 지칭될 수 있음)들 및 비제로값을 갖는 델타 피처들을 포함할 수 있다. 제1 델타 피처 맵(DFM1)에 대하여 선형 연산이 수행되어 제2 델타 피처 맵(DFM2)이 생성될 수 있다.
한편, 비선형 연산은 이전 이미지 프레임과 현재 이미지 프레임 간의 차이, 즉 델타 피처 맵에 대해서 수행될 수 없으며 비선형 연산의 수행을 위해, 이전 피처 맵(PFM)과 현재 피처 맵(CFM)이 요구된다. 이전 피처 맵(PFM)에 제2 델타 피처 맵(DFM2)이 더해져 현재 피처 맵(CFM)이 생성될 수 있다. 이전 피처 맵(PFM)과 현재 피처 맵(CFM)에 대하여 비선형 연산이 수행되고, 비선형 연산의 수행 결과를 기초로 제3 델타 피처 맵(DFM3)이 생성될 수 있다. 예컨대, 이전 피처 맵(PFM)에 대하여 비선형 연산이 수행된 결과와 현재 피처 맵(CFM)에 대하여 비선형 연산이 수행된 결과의 차이가 제3 델타 피처 맵(DFM3)으로서 생성될 수 있다. 제3 델타 피처 맵(DFM3)은 다음 델타 레이어의 입력 데이터로서 제공될 수 있다.
도 5a에서는, 델타 레이어(DLa)가 선형 연산 및 비선형 연산을 포함하는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 실시예에 있어서, 도 5b에 도시된 바와 같이, 델타 레이어(DLb)는 선형 연산만을 포함할 수도 있다. 선형 연산에 의하여 생성되는 제2 델타 피처 맵(DFM2)에 이전 피처 맵(PFM)이 더해져 현재 피처 맵(CFM)이 생성되고, 현재 피처 맵(CFM)이 출력될 수도 있다.
도 5a 및도 5b를 참조하여 전술한 바와 같이, 델타 레이어에서 현재 피처 맵(CFM)을 생성하기 위하여 이전 피처 맵(PFM)이 요구되며, 현재 피처 맵(CFM)은 다음 이미지 프레임에 대한 연산 시, 이전 피처 맵으로서 제공될 것이다. 따라서, 이전 피처 맵(PFM)을 업데이트하는 과정이 필요하다. 이때, 이전 피처 맵(PFM)은 메모리에 저장되어 이용되므로, 이전 피처 맵(PGM)을 메모리로부터 독출하고, 또한, 생성된 현재 피처 맵(CFM)을 메모리에 저장하기 위하여, 추가적인 메모리 대역폭(Bandwidth)이 요구될 수 있다.
그러나, 후술할 본 개시의 실시예에 따른 뉴럴 네트워크 장치는 메모리에 저장된 피처 맵, 예컨대 이전 피처 맵을 재이용함에 있어서, 이전 피처 맵에서 업데이트가 될 피처들만 메모리로부터 독출하거나, 현재 피처 맵의 피처들 중 다음 이미지 프레임에 대한 뉴럴 네트워크 연산 수행 시 업데이트될 가능성이 높은 피처들을 내부 버퍼 또는 연산 회로와의 거리가 상대적으로 짧은 메모리에 저장하거나, 또는 뉴럴 네트워크 연산 결과를 추정하고, 추정된 연산 결과에 기초하여 연산 결과의 변화가 작은 경우에는 연산의 수행을 스킵할 수 있다. 이에 따라서, 메모리 트랜잭션 및 메모리 트랜잭션에 따른 소비 시간이 감소될 수 있으며, 뉴럴 네트워크 장치는 추가적인 메모리 대역폭의 증가 없이, 효율적으로 뉴럴 네트워크 연산을 수행할 수 있다.
도 6은 본 개시의 실시예에 따른 뉴럴 네트워크 장치를 나타내는 블록도이다.
도 6을 참조하면, 뉴럴 네트워크 장치(13)는 프로세서(100), 컨트롤러(200) 및 메모리(300)를 포함할 수 있다. 또한 프로세서(100)는 컨트롤러(200)복수의 프로세싱 회로들(120) 및 메모리(140)를 포함할 수 있다. 이 외에도 뉴럴 네트워크 장치(13)는 외부의 메모리에 데이터를 저장하기 위하여 DMA(Direct Memory Access) 컨트롤러를 더 구비할 수 있다. 도 6에서, 뉴럴 네트워크 장치(13)는 하나의 프로세서(100)를 포함하는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 뉴럴 네트워크 장치(13)는 복수개의 프로세서(100)를 포함할 수 있다. 프로세서(100)는 하드웨어 회로들로 구현될 수 있다.
실시예에 있어서, 뉴럴 네트워크 장치(13)는 하나의 반도체 칩으로 구현될 수 있으며, 예컨대 시스템 온 칩(SoC)으로서 구현될 수 있다. 그러나 이에 제한되는 것은 아니며, 뉴럴 네트워크 장치(13)는 복수의 반도체 칩으로 구현될 수 있다. 설명의 편의를 위하여 프로세서(100) 내부에 구비되는 메모리(140)는 제1 메모리(140)로 지칭하고, 프로세서(100)의 외부에 구비되는 메모리(300)는 제2 메모리(300)로 지칭하기로 한다.
컨트롤러(200)는 CPU(central processing unit), 마이크로 프로세서 등으로 구현될 수 있으며, 뉴럴 네트워크 장치(13)의 전반적인 동작을 제어할 수 있다. 컨트롤러(200)는 프로세서(100)가 뉴럴 네트워크의 레이어들의 연산을 정상적으로 수행(computing)할 수 있도록 뉴럴 네트워크 연산 파라미터들을 세팅하고 관리할 수 있다. 또한, 컨트롤러(200)는 네트워크 장치(13)에 대한 관리 정책들을 기초로 복수의 프로세싱 회로(120)가 효율적으로 동작하도록 제어할 수 있으며, 프로세서(100) 내/외부의 구성들 간의 데이터의 입/출력, 연산 과정(flow) 등을 제어할 수 있다.
예를 들어서, 컨트롤러(200)는 제1 메모리(140) 또는 제2 메모리(300)에 저장된 피처 맵, 즉 이전 피처 맵 중 업데이트될 부분 영역을 판단하고, 업데이트될 부분 영역의 피처값들을 복수의 프로세싱 회로(120) 중 상기 피처 맵을 기초로 연산을 수행할 프로세싱 회로에 로딩할 수 있다.
실시예에 있어서, 컨트롤러(200)는 연속하여 수신되는 이미지 프레임들을 분석하여 이미지에 포함되는 오브젝트의 기하학적 특징, 예컨대 기하학적 움직임을 분석할 수 있다. 컨트롤러(200)는, 기하학적 움직임을 기초로, 피처 맵 중 업데이트될 확률이 높은 부분 영역을 판단할 수 있다. 예컨대, 컨트롤러(200)는 이전 이미지 프레임과 현재 이미지 프레임을 기초로 피처 맵 중 다음 프레임에 대한 뉴럴 네트워크 연산 수행 시, 업데이트될 부분 영역을 예측하고, 상기 부분 영역의 피처값들을 복수의 프로세싱 회로(120)와의 거리가 상대적으로 짧은 메모리, 예컨대 제1 메모리(140)에 저장할 수 있다. 컨트롤러(200)는 기하학적 움직임을 기초로, 변환 함수를 산출하고, 이전 이미지 프레임에 대한 연산 결과를 산출된 변환 함수를 기초로 변환하여, 현재 이미지 프레임에 대한 연산 결과를 추정할 수도 있다.
실시예에 있어서, 전술한 컨트롤러(200)의 동작과 관련한 알고리즘은 소프트웨어 또는 펌웨어로 구현되어 메모리(예컨대 제2 메모리(300))에 저장되며, 전술한 CPU(central processing unit), 마이크로 프로세서 등에 의하여 실행될 수 있다.
복수의 프로세싱 회로(120)는 컨트롤러(200)의 제어 하에, 할당된 연산을 수행할 수 있다. 복수의 프로세싱 회로(120)는 병렬적으로 동시에 동작되도록 구현될 수 있다. 나아가, 복수의 프로세싱 회로(120) 각각이 독립적으로 동작할 수 있다. 예를 들어, 각각의 프로세싱 회로(120)는 각각이 인스트럭션들을 실행할 수 있는 코어 회로로서 구현될 수 있다. 프로세싱 회로(120)는 도 4 를 참조하여 설명한 본 개시의 실시예에 따른 뉴럴 네트워크 시스템의 연산 방법에 따라 뉴럴 네트워크 연산을 수행할 수 있다.
제1 메모리(140)는 프로세서(100)의 내장 메모리이며 SRAM(Static Random Access Memory)일 수 있다. 그러나, 이에 제한되는 것은 아니며, 제1 메모리(140)는 프로세서(100)의 단순 버퍼, 캐시 메모리, 또는 DRAM 과 같은 다른 종류의 메모리로 구현될 수 있다. 제1 메모리(140)는 복수의 프로세싱 회로(120)에서 수행되는 연산에 따라 생성되는 데이터, 예컨대 피처 맵들, 또는 연산 과정에서 생성되는 다양한 종류의 데이터 등을 저장할 수 있다. 제1 메모리(140)는 복수의 프로세싱 회로(120)의 공유 메모리일 수 있다.
제2 메모리(300)는 RAM(Random Access Memory), 예컨대 DRAM(Dynamic RAM) 또는 SRAM 등으로 구현될 수 있다. 그러나, 이에 제한되는 것은 아니며, 제2 메모리(300)는 비휘발성 메모리로 구현될 수도 있다. 제2 메모리(300)는 각종 프로그램들 및 데이터를 저장할 수 있다. 제2 메모리(300)는 호스트 프로세서 (예컨대 도 1의 CPU(110)) 또는 다른 외부 장치에 의하여 엑세스될 수 있다. 실시예에 있어서 제2 메모리(300)의 용량은 제1 메모리(100)의 용량보다 상대적으로 클 수 있다. 실시예에 있어서, 제1 메모리(140)의 엑세스 레이턴시는 제2 메모리(300)의 엑세스 레이턴시보다 상대적으로 짧을 수 있다.
도 7은 본 개시의 실시예에 따른 프로세싱 회로의 일 구현예를 나타내는 도면이다.
도 7을 참조하면, 프로세싱 회로(120a)는 레지스터(121), 곱셈기 어레이(122), 누산기 어레이(123), 액티베이션 함수부(124)를 포함할 수 있다. 이 외에도 프로세싱 회로(120a)는 다른 구성들, 예컨대, 가산기, 산술 논리 연산 회로 등을 더 포함할 수 있다.
레지스터(121)에는 연산에 필요한 각종 데이터, 예컨대 입력 델타 피처 맵(IDFM), 웨이트 맵(WM) 및 이전 피처 맵(PFM)이 로딩될 수 있다. 웨이트 맵(WM) 및 이전 피처 맵(PFM)은 메모리, 예컨대 도 5의 제1 메모리(140) 또는 제2 메모리(300)로부터 로딩될 수 있다. 곱셈기 어레이(122), 누산기 어레이(123) 및 액티베이션 함수부(124)는 선형 연산 또는 비선형 연산을 수행할 수 있다. 연산 결과로서, 출력 델타 피처 맵(ODFM) 및 현재 피처 맵(CFM)이 생성될 수 있으며, 현재 피처 맵(CFM)이 메모리에 저장됨으로써, 피처 맵, 즉 이전 피처 맵(CFM)이 업데이트될 수 있다. 출력 델타 피처 맵(ODFM)은 레지스터(121) 또는 다른 프로세싱 회로의 레지스터에 로딩되거나, 또는 메모리에 저장될 수 있다.
도 8은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 설명하는 도면이다. 도 8의 동작 방법은 본 개시의 실시예에 따른 뉴럴 네트워크 장치가 적어도 하나의 델타 레이어 연산을 수행하는 과정에서의 메모리 엑세스 방법을 나타낸다. 프로세싱 회로(120)가 도 5a를 참조하여 설명한 선형 연산 및 비선형 연산을 수행하는 것을 가정하여 설명하기로 한다.
도 5a 및 도 8을 참조하면, 프로세싱 회로(120)는 선형 연산을 수행하여 제2 델타 피처 맵(DFM2)을 생성할 수 있다. 이후, 비선형 연산의 수행을 위해 프로세싱 회로(120)는 현재 피처 맵(CFM)을 생성하여야 하며, 이를 위해 이전 피처 맵(PFM)을 로딩하여야 한다. 메모리(MEM)에 저장된 피처 맵(FM)이 이전 피처 맵(PFM)으로서 로딩될 수 있다. 예컨대, 이전 피처 맵(PFM)은 레지스터(도 6의 121)에 로딩될 수 있다. 이때, 메모리(MEM)는 제1 메모리(도 6의 130), 제2 메모리(도 6의 200) 및 뉴럴 네트워크 장치(13) 외부의 메모리(예컨대, 도 1의 14) 중 적어도 하나일 수 있다. 프로세싱 회로(120)는 이전 피처 맵(PFM)과 제2 델타 피처 맵(DFM2)이 합산하여 현재 피처 맵(CFM)을 생성할 수 있으며, 이후, 현재 피처 맵(CFM)과 이전 피처 맵(PFM)에 대한 비선형 연산을 수행함으로써, 제3 델타 피처 맵(DFM3)을 생성할 수 있다.
한편, 제2 델타 피처 맵(DFM2)에서 제로값을 갖는 델타 피처는 연산 결과, 즉 제3 델타 피처 맵(DFM3) 및 현재 피처 맵(CFM)에 영향을 미치지 못한다. 그러므로, 본 개시의 실시예에 따른 뉴럴 네트워크 장치는 제2 델타 피처 맵(DFM2)의 델타 피처값들을 기초로, 피처 맵(FM)에서 업데이트될 부분 영역을 판단하고, 업데이트될 부분 영역에 대응하는 피처값들을 이전 피처 맵(PFM)으로서 메모리(MEM)로부터 로딩할 수 있다.
실시예에 있어서, 뉴럴 네트워크 장치는, 제2 델타 피처 맵(DFM2) 중 문턱값 이상의 델타 피처값들을 갖는 델타 피처들의 위치에 대응하는 피처 맵(FM) 상의 일부 영역을 업데이트될 부분 영역으로 판단할 수 있다.
실시예에 있어서, 도 8에 도시된 바와 같이, 델타 피처 맵들(예컨대 제2 델타 피처 맵(DFM2) 및 제3 델타 피처 맵(DFM3)) 및 피처 맵들(예컨대, 현재 피처 맵(CFM) 및 이전 피처 맵(PFM))은 매트릭스 형태의 복수의 블록으로 구분될 수 있으며, 데이터들은, 즉 델타 피처값들 또는 피처값들은 블록 단위로 관리될 수 있다. 도 8에서, 제2 델타 피처 맵(DFM2)과 피처 맵들(PFM, FM, CFM)은 동일한 개수의 블록을 포함하는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 메모리(130)의 엑세스 단위 등에 의하여 블록의 개수는 결정될 수 있다.
도 9 는 델타 피처값들 및 피처값들이 블록 단위로 관리되는 예시적 실시예를 나타내는 도면이다. 도 9 를 참조하면, 예시적으로, 제2 델타 피처 맵(DFM2) 및 피처 맵(FM)은 20개의 블록을 포함할 수 있다.
실시예에 있어서, 뉴럴 네트워크 장치는, 제2 델타 피처 맵(DFM2)에서, 문턱값 이상의 델타 피처값들, 즉 유효 델타 피처를 적어도 하나 이상 또는 기준 개수 이상 포함하는 블록을 유효 델타 블록(VDB)으로 판단하고, 유효 델타 피처를 포함하지 않거나, 기준 개수 미만의 유효 델타 피처들을 포함하는 블록을 무효 델타 블록(UDB)으로 판단할 수 있다. 뉴럴 네트워크 장치는, 피처 맵(FM) 상에서 유효 델타 블록(VDB)들에 대응하는 블록들, 예컨대, 유효 델타 블록(VDB)과 같은 위치의 블록들을 업데이트될 블록(UPB)으로 판단하고, 나머지 블록들은 업데이트되지 않을 블록(NUB)으로 판단할 수 있다. 뉴럴 네트워크 장치는, 업데이트될 블록(UPB)의 피처값들을 메모리(MEM)로부터 프로세싱 회로(120)로 로딩할 수 있다.
계속하여 도 8을 참조하면, 제2 델타 피처 맵(DFM2)에서 어두운 부분은 무효 델타 블록(UDB)들이고, 밝은 부분은 유효 델타 블록(VDB)들이다. 도시된 바와 같이, 메모리(MEM)에 저장된 피처 맵(FM) 중 유효 델타 블록(VDB)에 대응하는 블록들의 피처값들이 이전 피처 맵(PFM)으로서 로딩될 수 있다. 제2 델타 피처 맵(DFM2)의 델타 피처값들과 이전 피처 맵(PFM)의 대응하는 피처값들이 합산되어 현재 피처 맵(CFM)이 생성되며, 현재 피처 맵(CFM) 상에서, 이전 피처 맵(PFM)(또는 제2 델타 피처 맵(DFM2)의 유효 블록들)과 동일한 위치의 블록들이 유효 피처값들을 포함할 수 있다. 따라서, 상기 블록들에 포함된 유효 피처값들이 메모리(MEM)에 저장됨으로써, 메모리(MEM)에 저장된 피처 맵(FM)이 업데이트될 수 있다.
이상에서 설명한 바와 같이, 본 개시의 실시예에 따른 뉴럴 네트워크 장치는 메모리(MEM)에 저장된 피처 맵(FM) 중 업데이트될 영역의 피처값들만을 선택적으로 프로세싱 회로(120)에 로딩하고, 업데이트된 피처값들을 다시 메모리(MEM)에 저장함으로써, 메모리 트랜잭션을 감소시킬 수 있다.
도 10은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 흐름도이다. 도 10의 동작 방법은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 델타 레이어 연산 방법 및 메모리 엑세스 방법을 나타내며, 도 8을 참조하여 설명한 내용은 본 실시예에 적용될 수 있다.
도 10을 참조하면, 뉴럴 네트워크 장치는 입력되는 제1 델타 피처 맵에 대하여 선형 연산을 수행함으로써 제2 델타 피처 맵을 생성할 수 있다(S110). 예컨대, 뉴럴 네트워크 장치에 구비되는 프로세싱 회로가 제1 델타 피처 맵을 기초로 선형 연산을 수행함으로써, 제2 델타 피처 맵을 생성할 수 있다.
이후, 뉴럴 네트워크 장치는 제2 델타 피처 맵의 델타 피처값들을 기초로 적어도 하나의 메모리에 저장된 피처 맵 중 업데이트될 부분 영역을 판단할 수 있다(S120). 피처 맵, 즉 이전에 수행된 뉴럴 네트워크 연산의 중간 연산 결과인 이전 피처 맵은 적어도 하나의 메모리에 저장되어 있을 수 있다. 피처 맵은 하나의 메모리에 저장되어 있을 수 있으며, 두 개 이상의 메모리에 분리되어 저장되어 있을 수 있다. 한편, 도 8 및 도 9를 참조하여 설명한 바와 같이, 복수의 피처들을 포함하는 블록 단위로 업데이트될 부분 영역이 판단될 수 있다. 그러나, 이에 제한되는 것은 아니며, 피처 단위로 업데이트될 부분 영역이 판단될 수도 있다.
뉴럴 네트워크 장치는 업데이트될 부분 영역에 대응하는 피처값들을 적어도 하나의 메모리로부터 프로세싱 회로로 로딩할 수 있다(S130). 피처값들은 이전 피처 맵으로서 로딩될 수 있다. 예시적으로 피처값들은 프로세싱 회로 내부의 버퍼 또는 레지스터에 로딩될 수 있다.
뉴럴 네트워크 장치는 제2 델타 피처 맵과 이전 피처 맵들을 기초로 현재 피처 맵을 생성할 수 있다(S140). 예컨대, 프로세싱 회로가 제2 델타 피처 맵의 델타 피처값들을 로딩된 이전 피처 맵들의 피처값들 중 대응하는 값과 합산함으로써, 현재 피처 맵을 생성할 수 있다. 또한, 프로세싱 회로는 이전 피처 맵 및 현재 피처 맵에 대하여 비선형 연산을 수행하고(S150), 비선형 연산 수행 결과들을 기초로 제3 델타 피처 맵을 생성할 수 있다(S160). 이전 피처 맵에 대한 비선형 연산 수행 결과와 현재 피처 맵에 대한 비선형 연산 순행 결과의 차이가 제3 델타 피처 맵으로서 생성될 수 있다.
뉴럴 네트워크 장치는 현재 피처 맵을 기초로 적어도 하나의 메모리에 저장된 피처 맵을 업데이트할 수 있다(S170). 현재 피처 맵이 메모리에 저장됨으로써 피처 맵이 업데이트될 수 있다. 메모리에 저장된 현재 피처 맵은 다음 프레임에 대한 연산 수행 시, 이전 피처 맵으로서 제공될 수 있다. 제3 피처 맵은 다음 델타 레이어에 대한 입력으로 제공될 수 있다. 다음 델타 레이어에서 제3 델타 피처 맵에 대한 선형 연산이 수행될 수 있다.
도 11은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 설명하는 도면이다. 도 11의 동작 방법은 본 개시의 실시예에 따른 뉴럴 네트워크 장치가, 적어도 하나의 델타 레이어 연산의 수행 과정에서 생성된 현재 피처 맵(CFM)을 메모리에 저장하는 방법을 나타낸다.
본 실시예에서, 뉴럴 네트워크 장치는 현재 피처 맵(CFM) 중에서 다음 이미지 프레임에 대한 연산 수행 시 업데이트될 확률이 높은 부분 영역을 판단함으로써, 업데이트될 부분 영역을 예측할 수 있다. 예컨대, 뉴럴 네트워크 장치는 업데이트될 확률이 상대적으로 높거나, 소정의 기준 확률 이상인 부분 영역을 업데이트될 부분 영역으로 예측할 수 있다. 뉴럴 네트워크 장치는, 현재 피처 맵(CFM) 생성 전에, 업데이트될 부분 영역을 예측하고, 현재 피처 맵(CFM)이 생성되면, 예측 결과를 기초로 현재 피처 맵(CFM) 중 업데이트될 부분 영역 즉, 업데이트 예측된 부분 영역을 프로세싱 회로(120)와의 거리가 상대적으로 짧은 메모리, 예컨대 제1 메모리(140)에 저장하고, 나머지 영역을 프로세싱 회로(120)와의 거리가 상대적으로 긴 메모리, 예컨대 제2 메모리(300)에 저장할 수 있다. 이하, 설명의 편의를 위하여, 도 11에 도시된 바와 같이, 업데이트 예측된 부분 영역은 제1 메모리(140)에 저장되고, 다른 영역은 제2 메모리(300)에 저장되는 것을 가정하여 설명하기로 한다. 그러나, 이에 제한되는 것은 아니며, 뉴럴 네트워크 장치 및/또는 뉴럴 네트워크 장치가 탑재된 전자 장치에 구비되는 메모리들의 체계(hierarchy)에 따라서, 업데이트 예측된 부분 영역이 저장될 메모리 및 다른 영역이 저장될 다른 메모리가 결정될 수 있다.
도 11에서, 현재 피처 맵(CFM)의 블록들 중 자동차, 나무, 창문이 많은 건물 등과 같은 오브젝트들에 대응하는 블록들은 다음 이미지 프레임에서 업데이트될 확률이 높을 수 있다. 반면에, 하늘, 땅과 같은 배경에 대응하는 블록들은 다음 이미지 프레임에서 업데이트될 확률이 상대적으로 낮을 수 있다. 이에 따라, 오브젝트들에 대응하는 블록은 제1 메모리(140)에 저장되고, 배경에 대응하는 블록들은 제2 메모리(300)에 저장될 수 있다.
한편, 현재 제1 메모리(140) 또는 제2 메모리(300)에 저장된, 피처 맵(FM)의 블록들 중에서 현재 피처 맵(CFM) 생성 시 이용되지 않은 블록들 중 업데이트 예측된 부분 영역에 포함되는 블록들 또한 제1 메모리(140)에 저장되고, 업데이트 예측된 부분 영역에 포함되지 않은 블록들은 제2 메모리(300)에 저장될 수 있다. 예컨대, 예측 결과를 기초로, 제1 메모리(140)에 저장되었던 블록이 제2 메모리(300)에 저장되거나 또는 제2 메모리(300)에 저장되었던 블록이 제1 메모리(140)에 저장될 수 있다.
뉴럴 네트워크 장치는 다음 이미지 프레임에 대한 연산 수행 시, 제1 메모리(140) 및 제2 메모리(300)로부터 이전 피처 맵(PFM)을 로딩할 수 있다. 다만, 제1 메모리(140)로부터 로딩되는 블록들이 상대적으로 많을 수 있다.
한편, 제1 메모리(130) 및 제2 메모리(200) 모두 뉴럴 네트워크 장치의 내장 메모리이지만, 이에 제한되는 것은 아니다. 업데이트 예측된 부분 영역은 내장 메모리에 저장되고, 나머지 영역은 외장 메모리에 저장될 수도 있다. 또는 두 영역 모두 외장 메모리에 저장될 수도 있다. 다만, 전술한 바와 같이, 업데이트 예측된 부분 영역이 저장되는 메모리는 나머지 영역이 저장되는 메모리보다 프로세싱 회로(120)와의 거리가 상대적으로 짧을 수 있다.
도 12a 및 도 12b를 참조하여, 업데이트될 부분 영역을 예측하는 방법에 대하여 설명하기로 한다.
도 12a 및 도 12b는 연속적인 이미지 프레임들을 나타낸다.
도 12a를 참조하면, 이전 시점(t-1)에서의 이미지 프레임, 즉 이전 이미지 프레임과 현재 시점(t)에서의 이미지 프레임, 즉 현재 이미지 프레임의 이미지는 동일한 오브젝트(OBJ)를 포함하며, 오브젝트(OBJ)는 이미지 상에서 위치가 변화될 수 있다. 즉 오브젝트(OBJ)가 움직일 수 있다. 뉴럴 네트워크 장치는 다양한 이미지 프로세싱 방식, 예컨대, 비젼 프로세싱, 옵티컬 플로우, 움직임 추정 방식 등에 기초하여 오브젝트(OBJ)의 이미지 상에서의 움직임을 트래킹할 수 있다. 이에 따라서, 뉴럴 네트워크 장치는 이미지 상의 오브젝트의 기하학적 움직임(geometric movement)을 도출할 수 있다.
도 12b를 참조하면, 뉴럴 네트워크 장치는 오브젝트의 기하학적 움직임을 기초로 다음 시점(t+1)에서의 이미지 프레임, 즉 다음 이미지 프레임 상에서의 오브젝트(OBJ(t+1))의 위치를 추정할 수 있다.
뉴럴 네트워크 장치는, 추정된 위치를 기초로 다음 이미지 프레임에서 업데이트될 확률이 높은 부분 영역을 판단할 수 있다. 실시예에 있어서, 뉴럴 네트워크 장치는 오브젝트의 기하학적 움직임을 기초로 이미지 프레임 상의 복수의 부분 영역들 각각에 대하여 다음 이미지 프레임에서 업데이트될 확률을 산출하고, 상대적으로 또는 소정의 기준 확률을 기초로 업데이트될 확률이 높은 부분 영역을 판단할 수 있다.
한편, 이미지 프레임 상의 부분 영역은 피처 맵 상의 부분 영역에 투사될 수 있다. , 뉴럴 네트워크 장치는 이미지 프레임 상에서 업데이트될 확률이 높은 부분 영역을 피처 맵 상에 투사함으로써, 현재 피처 맵 중 업데이트될 확률이 높은 부분 영역을 판단할 수 있다. 이로써, 뉴럴 네트워크 장치는, 현재 피처 맵 중 다음 이미지 프레임에 대한 연산 수행 시 업데이트될 부분 영역을 예측할 수 있다.
도 13은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작을 설명하는 흐름도이다.
도 13을 참조하면, 뉴럴 네트워크 장치는 현재 이미지 프레임이 수신되면, 이전 이미지 프레임 및 현재 이미지 프레임을 기초로 기하학적 움직임을 도출할 수 있다(S11). 도 12a 및 도 12b를 참조하여 설명한 바와 같이, 다양한 방식의 이미지 트래킹을 통해 이미지 프레임들에 포함된 오브젝트의 기하학적 움직임, 즉 기하학적 특징을 판단할 수 있다. 실시예에 있어서, 기하학적 움직임의 도출은 다른 장치, 예컨대 다른 컴퓨팅 장치에서 수행될 수도 있다. 뉴럴 네트워크 장치는 도출 결과를 다른 장치로부터 수신하고 이를 기초로 동작할 수도 있다.
뉴럴 네트워크 장치는 기하학적 움직임을 기초로 현재 피처 맵의 부분 영역들 중 다음 이미지 프레임에 대한 뉴럴 네트워크 연산 수행 시 업데이트될 부분 영역을 예측할 수 있다(S12). 예컨대 현재 피처 맵의 부분 영역들 중 업데이트될 확률이 높은 영역을 판단함으로써, 업데이트될 부분 영역을 예측할 수 있다. 전술한 바와 같이 기하학적 움직임을 기초로, 현재 이미지 프레임 상에서 업데이트될 부분 영역을 예측할 수 있고, 현재 이미지 프레임 상에서 업데이트가 예측된 부분 영역을 기초로 피처 맵 상에서 업데이트될 부분 영역을 예측할 수 있다.
이후, 뉴럴 네트워크 장치는 현재 피처 맵을 생성할 수 있다(S13). 예컨대, S13 단계는 도 10을 참조하여 설명한 동작 방법에 따라 수행될 수 있다.
뉴럴 네트워크 장치는 현재 피처 맵을 메모리에 저장할 때, 예측 결과를 기초로 현재 피처 맵의 부분 영역들 중 업데이트 예측된 부분 영역, 즉 업데이트될 확률이 높은 부분 영역을 제1 메모리에 저장하고 나머지 영역을 제2 메모리에 저장할 수 있다(S14). 이때, 제1 메모리는 현재 피처 맵을 기초로 연산을 수행할 연산 회로, 예컨대 프로세싱 회로와의 거리가 상대적으로 짧은 메모리이고, 제2 메모리는 연산 회로와의 거리가 상대적으로 긴 메모리일 수 있다. 제1 메모리의 레이턴시는 제2 메모리의 레이턴시보다 짧을 수 있다.
도 14는 본 개시의 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다.
도 14를 참조하면, 뉴럴 네트워크 시스템(200)은 소프트웨어부(210) 및 뉴럴 네트워크 장치(220)(즉, 하드웨어부)를 포함할 수 있다. 전술한 본 개시의 실시예들에 따른 뉴럴 네트워크 장치가 뉴럴 네트워크 시스템(200)에 적용될 수 있다.
소프트웨어부(210)는 애플리케이션(211) 및 딥 러닝 프래임워크(212)를 포함할 수 있다. 애플리케이션(211) 및 딥 러닝 프래임워크(212)는 프로그램들, 명령들, 인스트럭션 등으로 메모리(도 1의 14)에 저장되고, CPU(11) 또는 다른 프로세서에 의해 실행될 수 있다.
애플리케이션(211)은 뉴럴 네트워크 연산을 통해 수행될 테스크들을 발행할 수 있다. 예컨대 애플리케이션(211)은 수신되는 이미지 프레임에 대한 객체 인식, 영상 분할 등을 요청할 수 있다. 애플리케이션(211)에서 요청한 테스크들을 수행하기 위하여 딥 러닝 프레임워크(212)는 딥 러닝 알고리즘 기반의 뉴럴 네트워크 모델을 제공하고, 뉴럴 네트워크 장치(220)에 뉴럴 네트워크 연산을 할당할 수 있다. 뉴럴 네트워크 장치(220)는 딥 러닝 프레임워크(212)로부터 할당된 뉴럴 네트워크 연산을 수행할 수 있다.
실시예에 있어서, 뉴럴 네트워크 장치(220)는 수신되는 이미지 프레임들 간의 기하학적 특징, 예컨대 이미지 프레임들에 포함된 오브젝트의 기하학적 움직임을 도출하고, 기하학적 특징을 기초로 현재 이미지 프레임에 대한 연산 결과(예컨대 뉴럴 네트워크 연산의 최종 연산 결과 또는 뉴럴 네트워크의 복수의 레이어들을 포함하는 레이어 그룹의 출력 피처 맵)를 추정할 수 있다. 한편, 연산 결과의 추정은 뉴럴 네트워크 장치(220) 이외의 장치, 예컨대 다른 연산 장치에서 수행될 수 있다.
딥 러닝 프레임워크(212)는 추정된 연산 결과를 기초로 현재 이미지 프레임에 대한 뉴럴 네트워크 연산 수행 여부를 결정할 수 있다. 또는 딥 러닝 프레임워크(212)는 추정된 연산 결과를 기초로 현재 이미지 프레임의 복수의 영역들에 대한 뉴럴 네트워크 연산 수행 여부를 결정하고, 현재 이미지 프레임의 복수의 영역들 중 일부 영역들에 대해서만 뉴럴 네트워크 연산을 수행하도록 결정할 수 있다. 뉴럴 네트워크 장치(220)는 현재 이미지 프레임의 복수의 영역들 중 뉴럴 네트워크 연산이 수행되도록 결정된 영역들에 대하여 뉴럴 네트워크 연산을 수행할 수 있다.
도 15는 본 개시의 실시예에 따른 뉴럴 네트워크 시스템에서 현재 이미지 프레임에 대한 연산 결과를 추정하는 방법을 나타내는 도면이다.
도 15의 연산 결과를 추정하는 방법은, 뉴럴 네트워크 장치에서 수행될 수 있다. 그러나, 이에 제한되는 것은 아니며 연산 결과의 추정은 다른 연산 장치에서 수행될 수도 있다.
뉴럴 네트워크 장치는 이미지 프레임들에 포함된 오브젝트의 기하학적 움직임을 기초로, 입력되는 이미지 프레임들 간의 변환 관계를 나타내는 변환 함수 H(예컨대, affine 변환 등을 위한 변환 함수)를 산출할 수 있다. 예컨대, 변환 함수 H를 이용하여 이전 이미지 프레임(PF)에 대하여 변환이 수행될 경우, 이전 이미지 프레임(PF)은 현재 이미지 프레임(CF)으로 변환될 수 있다.
입력되는 이미지 프레임들 간의 변화는 연산 결과들, 예컨대 출력 피처 맵들 간의 변화로 나타날 수 있다. 입력 이미지 프레임들 간의 변환 관계는 출력 피처 맵들 간의 변환 관계와 유사할 수 있다. 따라서, 출력 피처 맵들 간의 변환 관계를 나타내는 변환 함수 H'는 변환 함수 H와 동일 또는 유사할 수 있다. 뉴럴 네트워크 장치는 이전 출력 피처 맵(POFM)에 변환 함수 H를 적용하여, 변환을 수행함으로써, 현재 출력 피처 맵(EOFM)을 추정할 수 있다.
도 16은 본 개시의 실시예에 따른 뉴럴 네트워크 시스템의 동작 방법을 나타내는 흐름도이다.
도 16을 참조하면, 뉴럴 네트워크 시스템은 이전 이미지 프레임 및 현재 이미지 프레임을 기초로 기하학적 움직임을 도출할 수 있다(S21). 뉴럴 네트워크 시스템은 도 12a및 도 12b를 참조하여 설명한 바와 같이, 수신되는 이미지 프레임들을 기초로 기하학적 움직임, 예컨대 이미지 프레임들에 포함된 오브젝트의 기하학적 움직임을 도출할 수 있다.
뉴럴 네트워크 시스템은 이전 이미지 프레임(PF)에 대한 이전 출력 피처 맵(POFM)을 기하학적 움직임에 기초하여 변환함으로써, 현재 이미지 프레임(CF)에 대한 출력 피처 맵(EOFM)을 추정할 수 있다(S22). 도 15를 참조하여 전술한 바와 같이, 뉴럴 네트워크 시스템은 S21 단계에서 도출된 기하학적 움직임에 기초하여 변환 함수 H(예컨대, affine 변환 등을 위한 변환 함수)를 산출하고, 변환 함수 H 를 기초로, 이전 출력 피처 맵(POFM)에 변환함으로써 현재 출력 피처 맵(EOFM)을 추정할 수 있다.
뉴럴 네트워크 시스템은 이전 출력 피처 맵(POFM)과 추정된 현재 출력 피처 맵(EOFM)과의 차이, 예컨대 피처값들의 차이를 기초로 현재 이미지 프레임(CF)의 복수의 영역들 중 적어도 하나의 영역의 뉴럴 네트워크 연산을 차단할 수 있다(S23). 예를 들어서, 뉴럴 네트워크 시스템은 이전 출력 피처 맵(POFM)과 추정된 현재 출력 피처 맵(EOFM)과의 차이가 소정의 기준값 이하이면, 뉴럴 네트워크 연산을 수행하지 않을 수 있다. 실시예에 있어서, 현재 이미지 프레임(CF)의 복수의 영역들 중 일부 영역들에 대응하는 이전 출력 피처 맵(POFM)과 추정된 현재 출력 피처 맵(EOFM)과의 차이, 예컨대 피처값들의 차이가 소정의 기준값 미만이면, 뉴럴 네트워크 시스템은 상기 일부 영역들의 뉴럴 네트워크 연산을 차단할 수 있다.
뉴럴 네트워크 시스템은 현재 이미지 프레임(CF)의 복수의 영역들 중 차단된 적어도 하나의 영역을 제외한 다른 영역들에 대하여 뉴럴 네트워크 연산을 수행할 수 있다(S24). 상기 다른 영역들에 대한 뉴럴 네트워크 연산의 수행 및 연산 수행 과정에서의 메모리 엑세스는 도 8 내지 도 11을 참조하여 설명한 방법에 따라 수행될 수 있다.
예컨대, 딥 러닝 프래임워크(도 14의 212)는 현재 이미지 프레임(CF)의 복수의 영역들 중 이전 출력 피처 맵(POFM)과 추정된 현재 출력 피처 맵(EOFM) 간의 차이가 소정의 기준값 이하인 일부 영역들을 마스킹하고, 상기 일부 영역들에 대하여 연산이 수행되지 않도록 처리할 수 있다. 딥 러닝 프래임워크(212)는 현재 입력 프레임(CF)의 복수의 영역들 중 마스킹된 영역 이외의 영역들에 대한 뉴럴 네트워크 연산을 뉴럴 네트워크 장치에 할당할 수 있다. 뉴럴 네트워크 장치는 할당된 영역들에 대한 뉴럴 네트워크 연산을 수행할 수 있다.
이와 같이 본 개시의 실시예에 따른 뉴럴 네트워크 시스템은 이전 이미지 프레임(PF)과 현재 입력 이미지 프레임(CF) 간의 관계를 기초로 현재 출력 피처 맵(EOFM)을 추정하고, 추정된 현재 출력 피처 맵(EOFM)과 이전 출력 피처 맵(POFM) 간의 차이가 소정의 기준값 미만이라면, 뉴럴 네트워크 연산을 생략함으로써, 연산량을 감소시킬 수 있다.
전술한 본 개시의 다양한 실시예들에 따른 뉴럴 네트워크 장치의 동작 방법에 따르면, 뉴럴 네트워크 장치가 이전 이미지 프레임에 대한 중간 연산 결과들을 메모리에 저장하고, 현재 이미지 프레임에 대한 연산 수행 시, 상기 중간 연산 결과들을 재이용하여 효율적으로 연산을 수행함에 따라 뉴럴 네트워크 연산의 연산량이 감소될 수 있다. 뉴럴 네트워크 장치는 중간 연산 결과들, 즉 메모리에 저장된 피처 맵을 재이용함에 있어서, 피처 맵에서 업데이트가 될 피처들만 메모리로부터 선택적으로 독출하거나, 또는 현재 이미지 프레임에 대하여 생성된 피처 맵에서 다음 이미지 프레임에 대한 연산 수행 시 업데이트 가능성이 높은 피처들을 버퍼 또는 연산 회로와 상대적으로 가까운 메모리에 저장하며, 이에 따라서 메모리 트랜잭션 및 메모리 트랜잭션에 따른 소비 시간이 감소될 수 있다. 또한, 뉴럴 네트워크 장치가 현재 프레임에 대한 연산 결과를 추정하고 이전 프레임에 대한 연산 결과와 상기 추정된 현재 프레임에 대한 연산 결과 간에 연산 결과의 변화가 작은 경우, 딥 러닝 프레임 워크의 제어에 따라 현재 프레임에 대한 연산, 또는 현재 프레임의 일부 영역에 대한 연산 수행을 차단(또는 스킵)함으로써, 뉴럴 네트워크 연산의 연산량 및 메모리 트랜잭션이 감소될 수 있다. 이에 따라서, 뉴럴 네트워크 연산 장치 및 뉴럴 네트워크 연산 장치가 탑재되는 전자 시스템의 동작 속도가 향상되고 소비 전력이 감소될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 연속하여 입력되는 이미지 프레임들에 대하여 뉴럴 네트워크 연산을 수행하는 뉴럴 네트워크(neural network) 장치의 동작 방법에 있어서,
    프로세싱 회로가, 제1 이전 피처 맵과 제1 현재 피처 맵 간의 피처값들의 차이에 기초하여 생성되는 제1 델타 피처 맵에 대하여 선형 연산을 수행함으로써, 제2 델타 피처 맵을 생성하는 단계;
    적어도 하나의 메모리에 저장된 제2 피처 맵 중 업데이트될 제1 부분 영역에 대응하는 피처값들을 상기 적어도 하나의 메모리로부터 상기 프로세싱 회로에 제2 이전 피처 맵으로서 로드하는 단계;
    상기 프로세싱 회로가, 상기 제2 델타 피처 맵과 상기 제2 이전 피처 맵을 기초로 제2 현재 피처 맵을 생성하는 단계; 및
    상기 제2 현재 피처 맵을 상기 적어도 하나의 메모리에 저장함으로써, 상기 제2 피처 맵을 업데이트하는 단계를 포함하는, 뉴럴 네트워크 장치의 동작 방법.
  2. 제1 항에 있어서,
    상기 프로세싱 회로가, 상기 제2 이전 피처 맵 및 상기 제2 현재 피처 맵에 대하여 비선형 연산을 수행함으로써, 제3 델타 피처 맵을 생성하는 단계를 더 포함하는 뉴럴 네트워크 장치의 동작 방법.
  3. 제1 항에 있어서,
    상기 제2 델타 피처 맵의 델타 피처값들을 기초로, 상기 제2 피처 맵 중 상기 제1 부분 영역을 판단하는 단계를 더 포함하는 뉴럴 네트워크 장치의 동작 방법.
  4. 제3 항에 있어서, 상기 업데이트될 제1 부분 영역을 판단하는 단계는,
    상기 제2 피처 맵에서, 상기 제2 델타 피처 맵 중 문턱값 이상의 델타 피처값들을 갖는 델타 피처들의 위치들에 대응하는 영역을 상기 제1 부분 영역으로 판단하는 것을 특징으로 하는 뉴럴 네트워크 장치의 동작 방법.
  5. 제3 항에 있어서, 상기 업데이트될 제1 부분 영역을 판단하는 단계는,
    상기 제2 델타 피처 맵의 복수의 영역들 중, 문턱값 이상의 델타 피처값들을 기준 개수 이상 포함하는 적어도 하나의 유효 영역을 판단하는 단계; 및
    상기 제2 피처 맵의 복수의 영역들 중, 상기 적어도 하나의 유효 영역에 대응하는 적어도 하나의 영역을 상기 제1 부분 영역으로 판단하는 단계를 포함하는 뉴럴 네트워크 장치의 동작 방법.
  6. 제1 항에 있어서,
    이전 이미지 프레임 및 현재 이미지 프레임을 기초로, 이미지 상의 오브젝트의 기하학적 움직임(geometric movement)을 도출하는 단계를 더 포함하는 뉴럴 네트워크 장치의 동작 방법.
  7. 제6 항에 있어서,
    상기 기하학적 움직임을 기초로 상기 제2 현재 피처 맵 중 다음 이미지 프레임에 대하여 상기 뉴럴 네트워크 연산 수행 시 업데이트될 제2 부분 영역을 예측하는 단계를 더 포함하고,
    상기 제2 피처 맵을 업데이트하는 단계는, 상기 예측 결과를 기초로 상기 제2 현재 피처 맵 중 상기 제2 부분 영역을 제1 메모리에 저장하고, 상기 제2 현재 피처 맵 중 상기 제2 부분 영역을 제외한 다른 영역을 제2 메모리에 저장하는 것을 특징으로 하는 뉴럴 네트워크 장치의 동작 방법.
  8. 제7 항에 있어서,
    상기 제1 메모리의 엑세스 레이턴시는 상기 제2 메모리의 엑세스 레이턴시보다 짧은 것을 특징으로 하는 뉴럴 네트워크 장치의 동작 방법.
  9. 제7 항에 있어서,
    상기 제1 메모리는 내장 메모리이고, 상기 제2 메모리는 외부 메모리인 것을 특징으로 하는 뉴럴 네트워크 장치의 동작 방법.
  10. 제6 항에 있어서,
    상기 기하학적 움직임을 기초로 상기 이전 이미지 프레임과 상기 현재 이미지 프레임 간의 변환 관계를 나타내는 변환 함수를 산출하는 단계; 및
    상기 변환 함수에 기초하여, 상기 이전 이미지 프레임에 대하여 상기 뉴럴 네트워크를 수행함에 따라 생성된 이전 출력 피처 맵을 변환하여 상기 현재 이미지 프레임에 대한 출력 피처 맵을 추정하는 단계를 더 포함하고,
    상기 제1 델타 피처 맵은, 상기 현재 이미지 프레임의 복수의 영역들 중 이전 출력 피처 맵과 추정된 상기 출력 피처 맵 간의 피처값들의 차이가 기준값 이상인 영역에 대응하는 것을 특징으로 하는 뉴럴 네트워크 장치의 동작 방법.
  11. 뉴럴 네트워크(neural network) 연산을 수행하는 애플리케이션 프로세서의 동작 방법에 있어서,
    컴퓨팅 모듈이, 이전 입력 프레임 및 현재 입력 프레임 간의 차이에 기초하여 생성되는 델타 피처 맵에 선형 연산을 수행함으로써 선형 델타 피처 맵을 생성하는 단계;
    제1 메모리 및 제2 메모리 중 적어도 하나에 저장된 이전 피처 맵의 복수의 블록들 중 선형 델타 피처 맵의 유효 블록들에 대응하는 적어도 하나의 제1 블록에 포함된 피처값들을 상기 제1 메모리 및 제2 메모리 중 적어도 하나로부터 상기 컴퓨팅 모듈의 프로세싱 회로로 로딩하는 단계;
    상기 컴퓨팅 모듈이 상기 선형 델타 피처 맵의 상기 유효 블록들에 포함된 델타 피처값들 각각을 상기 피처값들 중 대응하는 피처값과 합산함으로써, 현재 피처 맵을 생성하는 단계; 및
    상기 컴퓨팅 모듈이 상기 현재 피처 맵을 기초로 상기 이전 피처 맵을 업데이트하는 단계를 포함하는 애플리케이션 프로세서의 동작 방법.
  12. 제11 항에 있어서,
    상기 유효 블록들 각각은 비제로 델타 피처값을 포함하는 것을 특징으로 하는 애플리케이션 프로세서의 동작 방법.
  13. 제11 항에 있어서, 상기 이전 피처 맵을 업데이트하는 단계는,
    상기 현재 피처 맵의 복수의 블록들 중 다음 입력 프레임에 대한 상기 뉴럴 네트워크 연산 수행 시 업데이트될 확률이 상대적으로 높다고 판단된 적어도 하나의 제2 블록을 상기 제1 메모리에 저장하는 단계; 및
    상기 현재 피처 맵의 복수의 블록들 중 상기 적어도 하나의 제2 블록을 제외한 나머지 블록들을 상기 제2 메모리에 저장하는 단계를 포함하고,
    상기 제1 메모리의 엑세스 레이턴시는 상기 제2 메모리의 엑세스 레이턴시보다 짧은 것을 특징으로 하는 애플리케이션 프로세서의 동작 방법.
  14. 제13 항에 있어서,
    상기 제1 메모리는 상기 컴퓨팅 모듈의 내장 메모리를 포함하고,
    상기 제2 메모리는 상기 컴퓨팅 모듈 외부의 메모리를 포함하는 것을 특징으로 하는 애플리케이션 프로세서의 동작 방법.
  15. 제13 항에 있어서,
    상기 제2 블록에 대한 업데이트될 확률은, 상기 제1 입력 프레임 및 상기 제2 입력 프레임을 기초로 도출되는 기하학적 움직임을 기초로 판단되는 것을 특징으로 하는 애플리케이션 프로세서의 동작 방법.
  16. 제11 항에 있어서,
    상기 이전 입력 프레임에 대한 이전 출력 피처 맵을 상기 이전 입력 프레임 및 상기 현재 입력 프레임을 기초로 추정되는 기하학적 움직임을 기초로 변환함으로써, 현재 출력 피처 맵을 추정하는 단계; 및
    상기 이전 출력 피처 맵 및 추정된 상기 현재 출력 피처 맵을 기초로 상기 현재 입력 프레임의 복수의 영역들 중 적어도 하나의 영역에 대하여 상기 뉴럴 네트워크 연산을 차단하는 단계를 더 포함하는 것을 특징으로 하는 애플리케이션 프로세서의 동작 방법.
  17. 연속하여 수신되는 입력 프레임들에 대하여 뉴럴 네트워크(neural network) 연산을 수행하는 컴퓨팅 장치에 있어서,
    제1 이전 피처 맵과 제1 현재 피처 맵 간의 피처값들의 차이에 기초하여 생성되는 제1 델타 피처 맵에 대하여 선형 연산을 수행함으로써 제2 델타 피처 맵을 생성하고, 제2 이전 피처 맵과 상기 제2 델타 피처 맵을 기초로 제2 현재 피처 맵을 생성하는 프로세싱 회로; 및
    상기 제2 이전 피처 맵을 저장하는 메모리를 포함하고,
    상기 제2 이전 피처 맵 중 업데이트될 제1 부분 영역의 피처값들이 상기 메모리로부터 독출되어 상기 프로세싱 회로에 제공되는 것을 특징으로 하는 컴퓨팅 장치.
  18. 제17 항에 있어서,
    상기 제2 델타 피처 맵의 델타 피처 값들을 기초로 상기 제1 부분 영역을 판단하는 컨트롤러를 더 포함하는 컴퓨팅 장치.
  19. 제17 항에 있어서,
    상기 프로세싱 회로는, 상기 제2 이전 피처 맵 및 상기 제2 현재 피처 맵에 대하여 비선형 연산을 수행함으로써, 제3 이전 피처 맵 및 제3 현재 피처 맵을 생성하고, 상기 제3 이전 피처 맵 및 상기 제3 현재 피처 맵 간의 피처값들의 차이를 기초로 제3 델타 피처 맵을 생성하는 것을 특징으로 하는 컴퓨팅 장치.
  20. 제18 항에 있어서,
    상기 컨트롤러는, 상기 입력 프레임들 간의 기하학적 특성에 기초하여 상기 제2 현재 피처 맵들 중 업데이트가 예측되는 제2 부분 영역을 미리 판단하고,
    상기 프로세싱 회로는, 상기 제2 현재 피처 맵 중 상기 제2 부분 영역을 제1 메모리에 저장하고, 상기 제2 현재 피처 맵 중 상기 제2 부분 영역을 제외한 다른 부분 영역을 제2 메모리에 저장하며, 상기 제1 메모리는 상기 제2 메모리보다 상기 프로세싱 회로가 엑세스하기가 상대적으로 용이한 것을 특징으로 하는 컴퓨팅 장치.
KR1020170180131A 2017-12-26 2017-12-26 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법 KR20190078292A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020170180131A KR20190078292A (ko) 2017-12-26 2017-12-26 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법
DE102018133582.2A DE102018133582A1 (de) 2017-12-26 2018-12-24 Vorrichtung zur Ausführung einer neuronalen Netzoperation und Verfahren zum Betreiben dieser Vorrichtung
TW107147043A TWI790338B (zh) 2017-12-26 2018-12-25 操作神經網路元件的方法、操作應用處理器的方法及計算元件
CN201811598979.1A CN109961072B (zh) 2017-12-26 2018-12-26 用于执行神经网络操作的设备和操作该设备的方法
US16/232,616 US11074474B2 (en) 2017-12-26 2018-12-26 Apparatus for performing neural network operation and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170180131A KR20190078292A (ko) 2017-12-26 2017-12-26 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20190078292A true KR20190078292A (ko) 2019-07-04

Family

ID=66768673

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170180131A KR20190078292A (ko) 2017-12-26 2017-12-26 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법

Country Status (5)

Country Link
US (1) US11074474B2 (ko)
KR (1) KR20190078292A (ko)
CN (1) CN109961072B (ko)
DE (1) DE102018133582A1 (ko)
TW (1) TWI790338B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022098606A1 (en) * 2020-11-05 2022-05-12 Fyusion, Inc. Deferred neural rendering for view extrapolation
KR102486525B1 (ko) * 2022-07-20 2023-01-11 김병천 뉴럴 네트워크를 이용한 nft 발행 방법 및 장치
US11580393B2 (en) 2019-12-27 2023-02-14 Samsung Electronics Co., Ltd. Method and apparatus with neural network data input and output control

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10181195B2 (en) * 2015-12-28 2019-01-15 Facebook, Inc. Systems and methods for determining optical flow
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
KR102532230B1 (ko) * 2018-03-30 2023-05-16 삼성전자주식회사 전자 장치 및 그 제어 방법
US11022693B1 (en) * 2018-08-03 2021-06-01 GM Global Technology Operations LLC Autonomous vehicle controlled based upon a lidar data segmentation system
CN110569702B (zh) * 2019-02-14 2021-05-14 创新先进技术有限公司 视频流的处理方法和装置
CN111182303A (zh) * 2019-10-08 2020-05-19 腾讯科技(深圳)有限公司 共享屏幕的编码方法、装置、计算机可读介质及电子设备
TWI737228B (zh) 2020-03-20 2021-08-21 國立清華大學 基於記憶體內運算電路架構之量化方法及其系統
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
US11263077B1 (en) * 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5402521A (en) 1990-02-28 1995-03-28 Chiyoda Corporation Method for recognition of abnormal conditions using neural networks
JP3560670B2 (ja) 1995-02-06 2004-09-02 富士通株式会社 適応的認識システム
US20030233233A1 (en) 2002-06-13 2003-12-18 Industrial Technology Research Institute Speech recognition involving a neural network
US20110134120A1 (en) * 2009-12-07 2011-06-09 Smart Technologies Ulc Method and computing device for capturing screen images and for identifying screen image changes using a gpu
US20110264614A1 (en) 2010-04-23 2011-10-27 Gardner Richard D Human Expert Assisted Evolutionary Computational Model
US9661351B2 (en) 2013-03-15 2017-05-23 Sony Interactive Entertainment America Llc Client side frame prediction for video streams with skipped frames
CN109871259A (zh) 2013-08-16 2019-06-11 运软网络科技(上海)有限公司 一种仿脑计算虚拟化的方法和系统
US9159137B2 (en) 2013-10-14 2015-10-13 National Taipei University Of Technology Probabilistic neural network based moving object detection method and an apparatus using the same
WO2015187247A2 (en) 2014-04-14 2015-12-10 Research Foundation For The State University Of New York Biomimetic multichannel neurostimulation
US9195903B2 (en) * 2014-04-29 2015-11-24 International Business Machines Corporation Extracting salient features from video using a neurosynaptic system
WO2016021411A1 (ja) * 2014-08-06 2016-02-11 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
US9286524B1 (en) 2015-04-15 2016-03-15 Toyota Motor Engineering & Manufacturing North America, Inc. Multi-task deep convolutional neural networks for efficient and robust traffic lane detection
US20170178346A1 (en) 2015-12-16 2017-06-22 High School Cube, Llc Neural network architecture for analyzing video data
US10733532B2 (en) 2016-01-27 2020-08-04 Bonsai AI, Inc. Multiple user interfaces of an artificial intelligence system to accommodate different types of users solving different types of problems with artificial intelligence
US9830709B2 (en) * 2016-03-11 2017-11-28 Qualcomm Incorporated Video analysis with convolutional attention recurrent neural networks
US10963775B2 (en) 2016-09-23 2021-03-30 Samsung Electronics Co., Ltd. Neural network device and method of operating neural network device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11580393B2 (en) 2019-12-27 2023-02-14 Samsung Electronics Co., Ltd. Method and apparatus with neural network data input and output control
US11790232B2 (en) 2019-12-27 2023-10-17 Samsung Electronics Co., Ltd. Method and apparatus with neural network data input and output control
WO2022098606A1 (en) * 2020-11-05 2022-05-12 Fyusion, Inc. Deferred neural rendering for view extrapolation
US11887256B2 (en) 2020-11-05 2024-01-30 Fyusion, Inc. Deferred neural rendering for view extrapolation
KR102486525B1 (ko) * 2022-07-20 2023-01-11 김병천 뉴럴 네트워크를 이용한 nft 발행 방법 및 장치

Also Published As

Publication number Publication date
DE102018133582A1 (de) 2019-06-27
US11074474B2 (en) 2021-07-27
CN109961072A (zh) 2019-07-02
US20190197350A1 (en) 2019-06-27
CN109961072B (zh) 2024-06-07
TW201937410A (zh) 2019-09-16
TWI790338B (zh) 2023-01-21

Similar Documents

Publication Publication Date Title
CN109961072B (zh) 用于执行神经网络操作的设备和操作该设备的方法
US11816585B2 (en) Machine learning models operating at different frequencies for autonomous vehicles
US11003893B2 (en) Face location tracking method, apparatus, and electronic device
CN113286194B (zh) 视频处理方法、装置、电子设备及可读存储介质
US20190095212A1 (en) Neural network system and operating method of neural network system
US11461992B2 (en) Region of interest selection for object detection
US11256921B2 (en) System and method for identifying events of interest in images from one or more imagers in a computing network
CN111028158A (zh) 电子系统、非暂时性计算机可读记录媒体及计算装置
CN109063603B (zh) 基于区域动态筛选的图像预测方法和装置及电子设备
KR20200115704A (ko) 영상 인식 장치 및 방법
KR102143034B1 (ko) 객체의 미래 움직임 예측을 통한 동영상에서의 객체 추적을 위한 방법 및 시스템
CN115546681A (zh) 一种基于事件和帧的异步特征跟踪方法和系统
KR101555876B1 (ko) 영상 합성을 위한 객체 추적 방법 및 시스템
US11657530B2 (en) Stereo matching method and apparatus of images
US11706546B2 (en) Image sensor with integrated single object class detection deep neural network (DNN)
US10074187B2 (en) Image recognition system and semiconductor integrated circuit
KR101204866B1 (ko) 윈도우 기반 영상 처리에서 고속으로 윈도우 영역 내 화소 연산을 수행하기 위한 방법 및 장치
CN111160370A (zh) 车头位置估计方法、装置、计算机设备和存储介质
CN114419093A (zh) 一种目标跟踪方法、装置、设备及存储介质
CN117642770A (zh) 自适应对象检测
KR20220033008A (ko) 포즈 식별 방법 및 장치
CN113689465A (zh) 对目标对象进行预测的方法及装置、存储介质及电子设备
井上優良 Adaptive Frame-Rate Control for Low Energy Object Tracking Systems
KR20230061846A (ko) 객체 추적 방법 및 이를 수행하기 위한 컴퓨팅 장치
KR20240009723A (ko) 이미지 처리 장치 및 이미지 처리 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal