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

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

Info

Publication number
KR20200040550A
KR20200040550A KR1020180120611A KR20180120611A KR20200040550A KR 20200040550 A KR20200040550 A KR 20200040550A KR 1020180120611 A KR1020180120611 A KR 1020180120611A KR 20180120611 A KR20180120611 A KR 20180120611A KR 20200040550 A KR20200040550 A KR 20200040550A
Authority
KR
South Korea
Prior art keywords
gain
layer
feature map
output
neural network
Prior art date
Application number
KR1020180120611A
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 KR1020180120611A priority Critical patent/KR20200040550A/ko
Priority to US16/596,660 priority patent/US20200118249A1/en
Priority to TW108136405A priority patent/TW202014934A/zh
Priority to CN201910955117.8A priority patent/CN111028158A/zh
Publication of KR20200040550A publication Critical patent/KR20200040550A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/001
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

본 개시의 기술적 사상의 일측면에 따른 복수의 레이어들이 포함된 뉴럴 네트워크(neural network) 연산을 수행하는 컴퓨팅 장치는, 상기 복수의 레이어들 각각에 대응되는 게인이 저장된 메모리 및 입력 이미지를 입력받아 상기 복수의 레이어들 각각에서 복수의 로우 피처맵(raw feature map)들을 생성하고, 상기 복수의 로우 피처맵들 각각에 대응되는 게인을 적용하여 복수의 출력 피처맵(output feature map)들을 생성하며, 이미지 복원 레이어에 의해 상기 복수의 출력 피처맵들을 합산한 결과로 출력 이미지를 생성하는 프로세서를 포함한다.

Description

뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법 {Device for computing neural network operation, and method of operation thereof}
본 개시의 기술적 사상은 반도체 장치에 관한 것으로서, 구체적으로 입력 이미지의 노이즈를 제거한 출력 이미지를 생성하는 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법에 관한 것이다.
뉴럴 네트워크(neural network)는 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조한다. 최근 뉴럴 네트워크(neural network) 기술이 발전함에 따라, 다양한 종류의 전자 시스템에서 뉴럴 네트워크 장치를 사용하여 입력 데이터를 분석하고 유효한 정보를 출력하는 연구가 활발히 진행되고 있다.
본 개시의 기술적 사상은 뉴럴 네트워크에 포함된 복수의 레이어들이 갖는 각각의 특성을 이용하여 입력 이미지의 노이즈를 제거한 출력 이미지를 생성하는 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법에 관한 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 복수의 레이어들이 포함된 뉴럴 네트워크(neural network) 연산을 수행하는 컴퓨팅 장치는, 상기 복수의 레이어들 각각에 대응되는 게인이 저장된 메모리 및 입력 이미지를 입력받아 상기 복수의 레이어들 각각에서 복수의 로우 피처맵(raw feature map)들을 생성하고, 상기 복수의 로우 피처맵들 각각에 대응되는 게인을 적용하여 복수의 출력 피처맵(output feature map)들을 생성하며, 이미지 복원 레이어에 의해 상기 복수의 출력 피처맵들을 합산한 결과로 출력 이미지를 생성하는 프로세서를 포함한다.
본 개시의 기술적 사상의 일측면에 따른 뉴럴 네트워크 모델을 이용하여 출력 이미지를 생성하는 프로그램을 기록한 비일시적 컴퓨터 판독 가능 기록 매체에 있어서, 상기 프로그램은 입력 이미지를 수신하는 단계, 상기 입력 이미지에 기초하여, 종속 접속된 컨볼루션 레이어들 중 일부 또는 전부에서 생성한 복수의 로우 피처맵들을 생성하는 단계, 생성된 상기 로우 피처맵들 각각에 대응되는 게인을 적용하여, 복수의 출력 피처맵들을 생성하는 단계 및 상기 복수의 출력 피처맵들에 기초하여 출력 이미지를 생성하는 단계를 포함하며, 상기 게인은, 상기 단계들이 수행되면 학습 알고리즘에 의해 학습되어 업데이트되는 것을 특징으로 할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 복수의 레이어들이 포함된 뉴럴 네트워크(neural network)로 연산을 수행하는 컴퓨팅 장치에 있어서, 제1 객체를 포함하는 입력 이미지를 생성하는 센서 모듈, 상기 복수의 레이어들 각각에 대응되는 게인이 저장된 메모리 및 상기 입력 이미지를 입력받아 상기 복수의 레이어들 각각에서 복수의 로우 피처맵(raw feature map)들을 생성하고, 상기 복수의 로우 피처맵들 각각에 대응되는 게인을 적용하여 복수의 출력 피처맵(output feature map)들을 생성하며, 이미지 복원 레이어에 의해 상기 복수의 출력 피처맵들을 합산한 결과로 제2 이미지를 생성하는 프로세서를 포함할 수 있다.
본 개시의 예시적 실시예에 따른 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법에 따르면, 이미지 센서와 피사체 사이에 존재하는 다양한 물체에 의해 발생하는 노이즈를 제거하여 높은 화질의 이미지를 획득할 수 있다.
도 1은 본 개시의 실시예에 따른 전자 시스템에 관한 블록도이다.
도 2는 뉴럴 네트워크 구조의 일 예에 관한 도면이다.
도 3은 본 개시의 실시예에 따른 뉴럴 네트워크 모델을 설명하기 위한 블록도이다.
도 4는 본 개시의 실시예에 따른 게인부를 설명하기 위한 도면이다.
도 5a는 본 개시의 실시예에 따른 게인 멀티플라이어를 이용한 뉴럴 네트워크 모델을 설명하기 위한 도면이고, 도 5b는 본 개시의 실시예에 따른 게인 커널을 이용한 뉴럴 네트워크 모델을 설명하기 위한 도면이다.
도 6은 본 개시의 실시예에 따른 뉴럴 네트워크 장치를 설명하기 위한 블록도이다.
도 7은 본 개시의 실시예에 따라 뉴럴 네트워크 모델이 학습되는 동작을 설명하기 위한 블록도이다.
도 8a, 도 8b 및 도 8c는 입력 이미지와 입력 이미지에 포함된 노이즈가 제거된 출력 이미지를 설명하기 위한 도면이다.
도 9는 본 개시의 실시예에 따른 전자 시스템의 동작 방법을 설명하기 위한 흐름도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 실시예에 따른 전자 시스템에 관한 블록도이다.
본 개시의 실시예에 따른 전자 시스템(10)은 뉴럴 네트워크를 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 전자 시스템(10)이 포함되는 전자 장치의 구성들을 제어할 수 있다. 예를 들어, 전자 시스템(10)은 스마트 폰, 모바일 장치, 영상 표시 장치, 계측 장치, 스마트 TV, 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 의료 장치, 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) 각각은 입력되는 이미지 프레임 또는 이전 레이어에서 생성된 피처 맵을 입력 피처 맵으로서 수신하고, 입력 피처 맵을 연산하여 출력 피처 맵을 생성할 수 있다. 이때, 피처 맵은 입력 데이터의 다양한 특징이 표현된 데이터를 의미한다. 피처 맵들(FM1, FM2, FMn)은 예컨대 2차원 매트릭스 또는 3차원 매트릭스 형태를 가질 수 있다. 피처 맵들(FM1 내지 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 레이어(L2)는 풀링을 통해 제2 피처 맵(FM2)의 공간적 크기(spatial size)를 변경함으로써, 제3 피처 맵(FM3)을 생성할 수 있다. 풀링은 샘플링 또는 다운-샘플링으로 지칭될 수 있다. 2 차원의 풀링 윈도우(PW)가 풀링 윈도우(PW)의 사이즈 단위로 제2 피처 맵(FM2) 상에서 쉬프트되고, 풀링 윈도우(PW)와 중첩되는 영역의 피처값들 중 최대값(또는 피처값들의 평균값)이 선택될 수 있다. 이에 따라, 제2 피처 맵(FM2)으로부터 공간적 사이즈가 변경된 제3 피처 맵(FM3)이 생성될 수 있다. 제3 피처 맵(FM3)의 채널과 제2 피처 맵(FM2)의 채널 개수는 동일하다.
실시예에 따라, 제2 레이어(L2)는 풀링 레이어에 한정되지 않는다. 즉, 제2 레이어(L2)는 풀링 레이어 또는 제1 레이어(L1)와 유사한 컨볼루션 레이어가 될 수 있다. 제2 레이어(L2)는 제2 피처 맵(FM2)을 웨이트 맵과 컨볼루션하여 제2 피처 맵(FM3)을 생성할 수 있다. 이 경우, 제2 레이어(L2)에서 컨볼루션 연산을 수행한 웨이트 맵은 제1 레이어(L1)에서 컨볼루션 연산을 수행한 웨이트 맵(WM)과 다를 수 있다.
제1 레이어(L1) 및 제2 레이어(L2)를 포함한 복수의 레이어들을 거쳐 제N 레이어에서 제N 피처 맵을 생성할 수 있다. 제N 피처 맵은 출력 데이터가 출력되는 뉴럴 네트워크(NN)의 백 엔드(back end)에 위치한 복원 레이어(reconstruction layer)에 입력될 수 있다. 복원 레이어는 제N 피처 맵과 웨이트 맵을 컨볼루션하여 출력 이미지를 생성할 수 있다. 복원 레이어는 컨벌루션 레이어를 포함할 수 있으며, 실시예에 따라 피처 맵으로부터 이미지를 복원할 수 있는 다른 종류의 레이어로 구현될 수도 있다.
계속하여 도 1을 참고하면, 뉴럴 네트워크 장치(13)에 수신되는 입력 데이터는 정지 이미지 또는 연속적으로 수신되는 이미지 프레임이 될 수 있다. 뉴럴 네트워크 장치(13)는 입력 데이터에 관한 피처 값을 포함하는 피처 맵을 생성하고, 피처 맵으로부터 정지 화상 데이터 또는 연속적으로 재생되는 이미지 프레임으로 복원할 수 있다.
이 경우, 뉴럴 네트워크 장치(13)는 피처 맵을 내부 메모리 또는 외부 메모리(예컨대, 메모리(14))에 저장하고, 저장된 피처 맵을 로드하여 웨이트 맵과 컨볼루션할 수 있다.
메모리(14)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 실시예에 따라, 메모리(14)는 뉴럴 네트워크 장치(13)의 연산 수행 과정에서 생성되는 피처 맵과 연산 수행에 필요한 웨이트 맵, 게인(gain)을 저장할 수 있다.
이하에서, 게인(gain)이란 컨볼루션 레이어에서 생성된 로우 피처맵(raw feature map)에 부여되는 값 및/또는 데이터를 총칭한다. 실시예에 따라, 게인은 게인 멀티플라이어(multiplier)에 의해 로우 피처맵에 곱해지는 게인 값 또는 게인 커널(kernel)에 포함된 게인 커널 값을 포함할 수 있다.
메모리(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은 본 개시의 실시예에 따른 뉴럴 네트워크 모델을 설명하기 위한 블록도이다.
뉴럴 네트워크 모델(300)은 레이어부(310), 게인부(320), 피처 합산부(330) 및 복원 레이어(340)를 포함할 수 있다. 레이어부(310)는 복수의 레이어들(310_1 내지 310_N)을 포함할 수 있고, 게인부(320)는 복수의 게인 멀티플라이어(gain multiplier)(321_1 내지 321_N)를 포함할 수 있다. 복수의 레이어들(310_1 내지 310_N)의 적어도 일부는 컨볼루션 레이어(convolutional layer), 풀링 레이어(pooling layer)등으로 구현될 수 있다. 이하에서는 설명의 편의상 복수의 레이어들(310_1 내지 310_N)이 컨볼루션 레이어인 것으로 설명하나, 컨볼루션 레이어 사이에는 풀링 레이어 등 다양한 레이어들이 포함될 수 있다.
입력 이미지(21)는 전자 시스템(10)의 메모리(14) 또는 외부 메모리로부터 뉴럴 네트워크 장치(13)에 의해 로드되거나, 센서 모듈(15)에 의해 촬영된 이미지 데이터일 수 있다. 입력 이미지(21)는 이미지 센서와 피사체 사이에 존재하는 다양한 물체에 의해 발생된 노이즈가 포함될 수 있다. 예컨대, 이미지 센서 일 측면에 위치한 렌즈에 먼지, 얼룩 등이 묻어있어 입력 이미지(21)의 선명도를 저하시키는 노이즈가 포함될 수 있다. 노이즈는 입력 이미지(21)의 일부에 포함되어 있을 수 있지만, 이미지 전체에 노이즈가 포함될 수도 있다. 예컨대, 사용자가 피사체를 촬영할 때, 안개가 짙은 날씨인 경우 이미지 전체에 노이즈가 발생하여 피사체의 선명도가 저하될 수 있다.
뉴럴 네트워크 모델(300)은 입력 이미지(21)를 수신하여 노이즈가 제거된 출력 이미지(22)를 제공하기 위해 다양한 연산이 수행되도록 구현될 수 있다.
뉴럴 네트워크 장치(13)는 레이어부(310)에 의해 입력 이미지(21)의 피처 값들을 포함하는 피처 맵들을 생성할 수 있다. 일 실시예에 따르면, 뉴럴 네트워크 장치(13)는 제1 레이어(310_1)에서 입력 이미지(21)와 제1 웨이트 맵을 컨볼루션하여 제1 로우 피처맵(raw feature map)(RFM_1)을 생성할 수 있다. 뉴럴 네트워크 장치(13)는 생성된 제1 로우 피처맵(RFM_1)을 제2 레이어(310_2)에 입력할 수 있다. 이 후, 뉴럴 네트워크 장치(13)는 제i+1 레이어에서 제i 로우 피처맵과 제i+1 웨이트 맵을 컨볼루션하여, 제i+2 레이어에 제i+1 로우 피처맵을 제공할 수 있다. i 는 0보다 큰 정수(즉, i = 1, 2, 3, ...)이며, 이하에서도 같다. 예컨대, 뉴럴 네트워크 장치(13)는 제2 레이어(310_2)에서 제1 로우 피처맵(RFM_1)과 제2 웨이트 맵을 컨볼루션하여, 제3 레이어(310_3)에 제2 로우 피처맵(RFM_2)을 제공할 수 있다.
다른 실시예에 따르면, 뉴럴 네트워크 장치(13)는 제1 레이어(310_1)에서 생성된 제1 로우 피처맵(RFM_1)을 제2 레이어(310_2)에 제공하고, 제1 로우 피처맵(RFM_1)에 기초한 제1 출력 피처맵(OFM_1)을 피처 합산부(330)에 제공할 수 있다.
여기서, 뉴럴 네트워크 장치(13)는 레이어부(310)에 포함된 복수의 레이어들(310_1 내지 310_N)에서 이미지와 관련된 특성들을 처리할 수 있다. 일 예로, 뉴럴 네트워크 장치(13)는 복수의 레이어들(310_1 내지 310_N)에서 이미지 데이터에 포함된 다양한 주파수 데이터를 처리할 수 있다. 뉴럴 네트워크 장치(13)는 제1 레이어(310_1)에서 높은 주파수 영역의 데이터를 처리하여, 이미지의 적어도 일부 영역의 선명도를 증가시킬 수 있으며, 제2 레이어(310_2)에서 낮은 주파수 영역의 데이터를 처리하여, 이미지의 적어도 일부 영역을 부드럽게 만들 수 있다. 또는, 뉴럴 네트워크 장치(13)는 각각의 레이어에서, 채도, 색온도, 명암, 밝기, 휘도, 감마값 등 다양한 영상 파라미터 값을 조절할 수 있다. 예를 들어, 뉴럴 네트워크 장치(13)는 각각의 레이어에서 서로 다른 영상 파라미터와 관련된 데이터를 처리할 수도 있으며, 동일한 영상 파라미터(예를 들어, 색온도)와 관련된 데이터를 각각의 레이어에서 서로 다른 정도로 처리할 수 있다. 즉, 뉴럴 네트워크 장치(13)는 제1 레이어(310_1)에서 이미지의 명암을 처리하고, 제2 레이어(310_2)에서 이미지의 채도를 처리할 수 있으며, 또한 뉴럴 네트워크 장치(13)는 제1 레이어(310_1)에서 제2 레이어(310_2)보다 높은 색온도의 데이터를 처리할 수 있다.
뉴럴 네트워크 장치(13)는 제1 로우 피처맵(RFM_1)에 제1 게인 값(G_1)을 적용하여 제1 출력 피처맵(OFM_1)을 생성할 수 있다. 예를 들어, 제1 출력 피처맵(OFM_1)은 제1 로우 피처맵(RFM_1)을 제1 게인 멀티플라이어(321_1)가 수신하여 제1 게인 값(G_1)을 곱한 피처맵이 될 수 있다.
즉, 뉴럴 네트워크 장치(130)는 제i 레이어에서 생성된 제i 로우 피처맵을 제i 로우 피처맵에 대응되는 게인을 연산함으로서 제i 출력 피처맵을 생성할 수 있다. 이 경우, 제i+1 로우 피처맵은 제i 로우 피처맵을 제i 웨이트맵과 컨볼루션한 피처맵이 될 수 있다. 특정한 로우 피처맵(RFM)에 대응되는 각각의 게인을 적용시킴으로써, 로우 피처맵(RFM)이 생성된 각각의 레이어의 특성을 반영할 수 있다. 즉, 각각의 로우 피처맵(RFM)에 적용되는 게인은 로우 피처맵(RFM)마다 상이할 수 있으며, 일부 레이어들의 특성을 게인을 이용하여 강조할 수 있으며, 다른 일부 레이어들의 특성을 다른 일부의 게인을 이용하여 약화할 수 있다. 예를 들어, 제1 레이어(310_1)의 특성을 제2 레이어(310_2) 보다 강조하기 위해, 제1 로우 피처맵(RFM_1)에 곱해지는 제1 게인 값(G_1)은 제2 게인 값(G_2) 보다 큰 값이 될 수 있다. 게인을 로우 피처맵(RFM)에 포함된 복수의 피처 값들에 곱함으로써 출력 피처맵(OFM)을 생성할 수 있다. 예컨대, 게인 값은 실수 값이 될 수 있으며, 복수의 게인 값들(G_1 내지 G_N)의 적어도 일부는 다른 실수 값을 가지므로, 복수의 로우 피처맵들(RFM_1 내지 RFM_N)의 특성을 서로 다르게 강조시킬 수 있다. 한편, 게인부(320)는 도 4와 같이 복수의 게인 커널들을 포함할 수도 있다.
도 4는 본 개시의 실시예에 따른 게인부를 설명하기 위한 도면이다. 게인부(320)는 도 3과 달리 복수의 게인 커널들(322_1 내지 322_N)을 포함할 수도 있다.
뉴럴 네트워크 장치(13)는 제i 로우 피처맵과 제i 게인 커널을 연산하여 제i 출력 피처맵을 생성할 수 있다.
일 실시예에 따르면, 뉴럴 네트워크 장치(13)는 제1 로우 피처맵(RFM_1)과 제1 게인 커널(322_1)을 컨볼루션하여 제1 출력 피처맵(OFM_1)을 생성할 수 있다. 복수의 게인 커널들(322_1 내지 322_N)은 매트릭스 형태로 구현될 수 있다.
이 경우, 제i 게인 커널은 제i 로우 피처맵의 매트릭스 사이즈에 대응될 수 있다. 예컨대, 제1 게인 커널(322_1)은 제1 로우 피처맵(RFM_1)의 사이즈에 대응되는 매트릭스로 구현될 수 있다. 다른 예로, 제1 로우 피처맵(RFM_1) 보다는 작은 사이즈의 매트릭스로 제1 게인 커널(322_1)이 구현될 수 있다. 뉴럴 네트워크 장치(13)는 제1 로우 피처맵(RFM_1)에 포함된 복수의 피처 값들을 제1 게인 커널(322_1)과 컨볼루션하여 제1 출력 피처맵(OFM_1)을 생성할 수 있다. 달리 말해서, 뉴럴 네트워크 장치(13)는 제1 로우 피처맵(RFM_1)에 포함된 피처 값과 제1 게인 커널(322_1)에 포함된 게인 커널 값이 컨볼루션 연산이 수행되어 제1 출력 피처맵(OFM_1)에 포함된 피처 값을 생성할 수 있다.
게인은 뉴럴 네트워크 장치(13)에 의해 학습 가능한 값일 수 있다. 구체적으로, 전술한 도 3에서 예시한 복수의 게인 값들(G_1 내지 G_N)은 학습 가능한(learnable) 값일 수 있다. 또한, 도 4에서 예시한 복수의 게인 커널들(322_1 내지 322_N)에 포함된 게인 커널 값들은 학습 가능한(learnable) 값일 수 있다. 이에 따라, 게인 커널들(322_1 내지 322_N) 또한 학습 가능한 매트릭스일 수 있다.
예를 들어, 뉴럴 네트워크 장치(13)는 뉴럴 네트워크 모델(300)을 학습하는 과정에서, 복수의 게인 값들(G_1 내지 G_N), 복수의 게인 커널들(322_1 내지 322_N)을 지속적으로 학습시킴으로서 입력 이미지(21)에 포함된 노이즈를 제거할 수 있다. 복수의 게인 값들(G_1 내지 G_N), 복수의 게인 커널들(322_1 내지 322_N)은 입력 이미지(21)에 포함된 노이즈를 제거하기 위한 최적의 값으로 학습될 수 있다. 뉴럴 네트워크 모델(300)을 구현함에 있어, 수신된 복수의 입력 이미지(21) 및 출력 이미지(22)의 쌍들을 이용하여 복수의 게인 값들(G_1 내지 G_N) 또는 복수의 게인 커널들(322_1 내지 322_N)을 학습시킬 수 있다. 이 경우, 복수의 입력 이미지(21) 및 출력 이미지(22)의 쌍들은, 사용자로부터 제공될 수 있고, 웹 서비스를 통해 수신될 수 도 있으며, 이미 저장된 이미지 쌍들이 될 수도 있다.
한편, 도 3 및 도 4에서 전술한 게인부(320)는 학습 가능한 값으로 구현될 수 도 있지만, 기설정된 값으로 구현될 수도 있다. 예를 들어, 게인부(320)에 포함된 복수의 게인 값들(G_1 내지 G_N) 또는 복수의 게인 커널들(322_1 내지 322_N)은 기설정된 값으로 구현될 수 있다.
계속해서 도 3을 참고하면, 뉴럴 네트워크 장치(13)는 종속 접속된 레이어들(310_1 내지 310_N) 중 일부 또는 전부에서 생성한 복수의 로우 피처맵들(RFM_1 내지 RFM_N)을 생성할 수 있다.
일 예로, 뉴럴 네트워크 장치(13)는 종속 접속된 레이어들(310_1 내지 310_N) 중 일부에서만 로우 피처맵들을 생성할 수 있다. 뉴럴 네트워크 장치(13)의 연산량을 감소시키기 위하여, 일부의 레이어들만 연산에 이용할 수 있다. 이 경우, 뉴럴 네트워크 장치(13)는 일부의 레이어들에서 생성된 로우 피처맵에 대응되는 출력 피처맵을 생성할 수 있다. 즉, 제1 내지 제N 출력 피처맵들(OFM_1 내지 OFM_N) 중 생성된 로우 피처맵에 대응되는 출력 피처맵들만 생성될 수 있다.
다른 예로, 뉴럴 네트워크 장치(13)는 종속 접속된 레이어들(310_1 내지 310_N) 전부에서 로우 피처맵들을 생성할 수 있다. 이에 따라, 뉴럴 네트워크 장치(13)는 제1 내지 제N 로우 피처맵들(RFM_1 내지 RFM_N)을 게인부(320)에 적용하여 제1 내지 제N 출력 피처맵들(OFM_1 내지 OFM_N)을 생성할 수 있다.
또 다른 예로, 뉴럴 네트워크 장치(13)는 일부의 출력 피처맵만 생성할 수 있다. 뉴럴 네트워크 장치(13)는 종속 접속된 레이어들(310_1 내지 310_N) 전부에서 로우 피처맵들을 생성할 수 있다. 이 경우, 게인부(320)에 포함된 일부의 게인 멀티 플라이어 또는 일부의 게인 커널들만 이용하여 출력 피처맵을 생성할 수 있다. 뉴럴 네트워크 장치(13)는 게인부(320)를 제어하여, 일부의 게인 값을 0으로 제어하거나, 일부의 게인 커널을 0으로 제어할 수 있다. 예컨대, 뉴럴 네트워크 장치(13)는 제N 레이어(310_N)에 기초하여 생성된 제N 출력 피처맵(OFM_N)을 제외한 제1 내지 제N-1 출력 피처맵들(OFM_1 내지 OFM_N-1)의 피처 값들은 0 이 될 수 있다.
뉴럴 네트워크 장치(13)는 복수의 출력 피처맵들(OFM_1 내지 OFM_N)을 피처 합산부(330)를 이용하여 합산한다. 일 예로, 복수의 출력 피처맵들(OFM_1 내지 OFM_N)의 사이즈가 서로 같은 경우, 뉴럴 네트워크 장치(13)는 피처 합산부(330)에서 출력 피처맵들(OFM_1 내지 OFM_N)을 합산할 수 있다. 다른 예로, 출력 피처맵들(OFM_1 내지 OFM_N)의 매트릭스 사이즈가 서로 달라질 수 있다. 이 경우, 뉴럴 네트워크 장치(13)는 서로 다른 사이즈의 출력 피처맵들(OFM_1 내지 OFM_N)의 평균값을 더할 수 있고, 또는 다운 사이징을 하여 매트릭스 사이즈가 가장 작은 출력 피처맵에 매트릭스 사이즈를 맞추거나, 업 사이징을 하여 매트릭스 사이즈가 가장 큰 출력 피처맵에 매트릭스 사이즈를 맞추어 복수의 출력 피처맵들(OFM_1 내지 OFM_N)을 합산할 수 있다. 이 밖에도, 뉴럴 네트워크 장치(13)는 각각의 출력 피처맵의 동일한 로우, 칼럼 및 깊이에 대응되는 피처 값들을 더하고, 매트릭스 사이즈가 맞지 않는 부분은 합산 과정에서 무시하는 방법 등 다양한 방법으로 합산할 수 있다. 즉, 뉴럴 네트워크 장치(13)는 출력 피처맵들(OFM_1 내지 OFM_N)의 피처 값들을 반영할 수 있는 다양한 방법으로 합산할 수 있다.
뉴럴 네트워크 장치(13)는 피처 합산부(330)에서 합산된 합산 피처맵(SFM)을 복원 레이어(340)에 제공할 수 있다. 복원 레이어(340)에서는 합산 피처맵(SFM)을 출력 이미지(22)로 복원할 수 있다. 즉, 복원 레이어(340)는 피처맵을 다시 이미지 데이터 형태로 복원하는 다양한 종류의 레이어가 될 수 있으며, 예컨대, 컨볼루션 레이어로 구현될 수 있다.
뉴럴 네트워크 장치(13)는 레이어부(310)에 포함된 복수의 레이어들(310_1 내지 310_N)에서 출력된 결과들 각각에, 게인부(320)를 통해 게인을 적용함으로써, 레이어들 각각에서 출력되는 피처 값들을 조절할 수 있다. 게인은 입력 이미지(21)의 노이즈가 최소화가 되기 위하여 최적의 게인으로 학습될 수 있다. 이에 따라, 뉴럴 네트워크 장치(13)는 레이어들 각각의 특성을 모두 반영하여 입력 이미지(21)의 노이즈를 효과적으로 제거할 수 있다.
도 5a는 본 개시의 실시예에 따른 게인 멀티플라이어를 이용한 뉴럴 네트워크 모델을 설명하기 위한 도면이고, 도 5b는 본 개시의 실시예에 따른 게인 커널을 이용한 뉴럴 네트워크 모델을 설명하기 위한 도면이다.
도 5a를 참고하면, 뉴럴 네트워크 장치(13)는 제1 로우 피처맵(RFM_1)에 제1 게인 값(G_1)을 적용하여 제1 출력 피처맵(OFM_1)을 생성할 수 있다. 예를 들어, 제1 게인 값(G_1)은 제1 게인 매트릭스(GM_1)에 포함된 값이 될 수 있다. 한편, 뉴럴 네트워크 장치(13)는 제1 웨이트맵(WM_1)과 제1 로우 피처맵(RFM_1)을 컨볼루션하여 제2 로우 피처맵(RFM_1)을 생성할 수 있다.
본 개시의 실시예에 따르면, 게인 멀티플라이어(321)는 제1 로우 피처맵(RFM_1)과 제1 게인 값(G_1)을 곱하여 제1 출력 피처맵(OFM_1)을 생성할 수 있다. 제1 게인 매트릭스(GM_1)는 제1 로우 피처맵(RFM_1)과 동일한 개수의 로우(H), 칼럼(W) 및 깊이(D)를 가질 수 있다. 한편, 게인 매트릭스(GM_1)는 도 5a에 도시된 바와 같이 단위 행렬에 제1 게인 값(G_1)을 곱한 형태로 구현될 수 있다. 또한, 제1 게인 매트릭스(GM_1)와 유사하게, 제2 게인 매트릭스(GM_2)는 단위 행렬에 제2 게인 값(G_2)을 곱한 형태로 구현될 수 있다. 즉, 제i 게인 매트릭스는 단위 행렬에 제i 게인 값을 곱한 형태로 구현될 수 있다.
뉴럴 네트워크 장치(13)는 게인 매트릭스(GM)에 포함된 게인 값에 따라 로우 피처맵(RFM)에 포함된 피처 값을 증가 또는 감소시킨 출력 피처맵(OFM)을 생성할 수 있다. 뉴럴 네트워크 장치(13)는 복수의 출력 피처맵들(OFM)을 피처 합산부(330)에서 합산하여 합산 피처맵(SFM)을 생성하고, 복원 레이어(340)에서 합산 피처맵(SFM)을 출력 이미지(22)로 복원할 수 있다.
도 5b를 참고하면, 뉴럴 네트워크 장치(13)는 제1 로우 피처맵(RFM_1)에 제1 게인 커널(322_1)을 적용하여 제1 출력 피처맵(OFM_1)을 생성할 수 있다. 제1 게인 커널(322_1)은 로우 및 칼럼은 각각 제1 로우 피처맵의 로우 및 칼럼보다 같거나 작을 수 있으며, 깊이는 서로 동일할 수 있다. 한편, 뉴럴 네트워크 장치(13)는 제1 웨이트맵(WM_1)과 제1 로우 피처맵(RFM_1)을 컨볼루션하여 제2 로우 피처맵(RFM_2)을 생성할 수 있다.
본 개시의 실시예에 따르면, 뉴럴 네트워크 장치(13)는 제1 로우 피처맵(RFM_1)과 제1 게인 커널(322_1)을 컨볼루션하여 제1 출력 피처맵(OFM_1)을 생성할 수 있다. 뉴럴 네트워크 장치(13)는 소정의 스트라이드에 따라 제1 로우 피처맵(RFM_1)을 슬라이딩 윈도우로하여 제1 게인 커널(322_1)을 횡단하는 방식으로 시프트하며 컨볼루션할 수 있다. 한편, 제1 게인 커널(322_1)은 복수의 게인 커널 값을 행렬 형태로 포함할 수 있다. 제1 게인 커널(322_1)에 포함된 게인 커널 값은 복수의 입력 이미지 및 출력 이미지 쌍들을 참고하여 학습된 값이 될 수 있다. 이 후, 피처 합산부(330)와 복원 레이어(340)를 거쳐 출력 이미지(22)가 생성되는 과정은 도 5a에서 전술한 바와 동일 또는 유사하므로 생략한다.
도 6은 본 개시의 실시예에 따른 뉴럴 네트워크 장치를 설명하기 위한 블록도이다.
도 6을 참고하면, 뉴럴 네트워크 장치(13)는 프로세서(40), 컨트롤러(50) 및 메모리(60)를 포함할 수 있다. 프로세서(40)는 복수의 프로세싱 회로들(41) 및 메모리(42)를 포함할 수 있다. 이 외에도, 뉴럴 네트워크 장치(13)는 외부의 메모리에 데이터를 저장하기 위하여 DMA(Direct Memory Access) 컨트롤러를 더 구비할 수 있다. 도 6에서, 뉴럴 네트워크 장치(13)는 하나의 프로세서(40)를 포함하는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 뉴럴 네트워크 장치(13)는 복수개의 프로세서(40)를 포함할 수 있다. 프로세서(40)는 하드웨어 회로들로 구현될 수 있다.
실시예에 있어서, 뉴럴 네트워크 장치(13)는 하나의 반도체 칩으로 구현될 수 있으며, 예컨대 시스템 온 칩(SoC)으로서 구현될 수 있다. 그러나 이에 제한되는 것은 아니며, 뉴럴 네트워크 장치(13)는 복수의 반도체 칩으로 구현될 수 있다. 설명의 편의를 위하여 프로세서(40) 내부에 구비되는 메모리(42)는 제1 메모리(42)로 지칭하고, 프로세서(40)의 외부에 구비되는 메모리(60)는 제2 메모리(60)로 지칭하기로 한다.
컨트롤러(50)는 CPU(central processing unit), 마이크로 프로세서 등으로 구현될 수 있으며, 뉴럴 네트워크 장치(13)의 전반적인 동작을 제어할 수 있다. 컨트롤러(50)는 프로세서(40)가 뉴럴 네트워크의 레이어들의 연산을 정상적으로 수행(computing)할 수 있도록 뉴럴 네트워크 연산 파라미터들을 세팅하고 관리할 수 있다. 또한, 컨트롤러(50)는 뉴럴 네트워크 장치(13)에 대한 관리 정책들을 기초로 복수의 프로세싱 회로(41)가 효율적으로 동작하도록 제어할 수 있으며, 프로세서(40) 내/외부의 구성들 간의 데이터의 입/출력, 연산 과정(flow) 등을 제어할 수 있다.
예를 들어서, 컨트롤러(50)는 제1 메모리(42) 또는 제2 메모리(60)에 저장된 로우 피처맵들(RFM_1 내지 RFM_N) 중 하나의 로우 피처맵과 이에 대응되는 게인을 연산하도록 복수의 프로세싱 회로(41) 중 연산을 수행할 프로세싱 회로에 로딩할 수 있다. 컨트롤러(50)는 프로세싱 회로가 복수의 출력 피처맵들(OFM_1 내지 OFM_N)을 생성하여 모두 합산함으로써 합산 피처맵(SFM)을 생성하고, 합산 피처맵(SFM)에 대응되는 출력 이미지(22)를 생성하도록 제어할 수 있다.
실시예에 있어서, 전술한 컨트롤러(50)의 동작과 관련한 알고리즘은 소프트웨어 또는 펌웨어로 구현되어 메모리(예컨대 제2 메모리(60))에 저장되며, 전술한 CPU(central processing unit), 마이크로 프로세서 등에 의하여 실행될 수 있다.
복수의 프로세싱 회로(41)는 컨트롤러(50)의 제어 하에, 할당된 연산을 수행할 수 있다. 복수의 프로세싱 회로(41)는 병렬적으로 동시에 동작되도록 구현될 수 있다. 나아가, 복수의 프로세싱 회로(41) 각각이 독립적으로 동작할 수 있다. 예를 들어, 각각의 프로세싱 회로(41)는 각각이 인스트럭션들을 실행할 수 있는 코어 회로로서 구현될 수 있다. 프로세싱 회로(41)는 전술한 도 1 내지 도 5b를 참고하여 설명한 본 개시의 실시예에 따른 뉴럴 네트워크 시스템의 연산 방법에 따라 뉴럴 네트워크 연산을 수행할 수 있다.
제1 메모리(42)는 프로세서(40)의 내장 메모리이며 SRAM(Static Random Access Memory)일 수 있다. 그러나, 이에 제한되는 것은 아니며, 제1 메모리(42)는 프로세서(40)의 단순 버퍼, 캐시 메모리, 또는 DRAM 과 같은 다른 종류의 메모리로 구현될 수 있다. 제1 메모리(42)는 복수의 프로세싱 회로(41)에서 수행되는 연산에 따라 생성되는 데이터, 예컨대 피처 맵들, 또는 연산 과정에서 생성되는 다양한 종류의 데이터 등을 저장할 수 있다. 제1 메모리(42)는 복수의 프로세싱 회로(41)의 공유 메모리일 수 있다.
제2 메모리(60)는 RAM(Random Access Memory), 예컨대 DRAM(Dynamic RAM) 또는 SRAM 등으로 구현될 수 있다. 그러나, 이에 제한되는 것은 아니며, 제2 메모리(60)는 비휘발성 메모리로 구현될 수도 있다. 제2 메모리(60)는 각종 프로그램들 및 데이터를 저장할 수 있다. 제2 메모리(60)는 호스트 프로세서 (예컨대 도 1의 CPU(11)) 또는 다른 외부 장치에 의하여 엑세스될 수 있다. 실시예에 있어서 제2 메모리(60)의 용량은 제1 메모리(42)의 용량보다 상대적으로 클 수 있다. 실시예에 있어서, 제1 메모리(42)의 엑세스 레이턴시는 제2 메모리(60)의 엑세스 레이턴시보다 상대적으로 짧을 수 있다.
도 7은 본 개시의 실시예에 따라 뉴럴 네트워크 모델이 학습되는 동작을 설명하기 위한 블록도이다.
전자 시스템(10)은 데이터 획득부(81), 모델 학습부(82) 및 모델 평가부(83)를 포함할 수 있다.
전자 시스템(10)은 입력 이미지(21)에서 노이즈 부분을 판단하기 위한 기준을 학습할 수 있다. 또한, 전자 시스템(10)은 입력 이미지(21)에서 노이즈를 제거한 출력 이미지(22)를 생성하기 위한 기준을 학습할 수 있다. 이를 위하여, 전자 시스템(10)은 복수의 로우 피처맵들(RFM_1 내지 RFM_N)에 각각 대응되는 게인을 학습할 수 있다. 예컨대, 케인 매트릭스 또는 게인 커널을 학습할 수 있으며, 게인 매트릭스 또는 게인 커널에 포함되는 값(예컨대, 게인 값 또는 게인 커널 값)들을 학습할 수 있다. 전자 시스템(10)은 학습에 이용될 데이터(이하에서, 학습 데이터라고 함)를 획득하고, 학습 데이터를 후술할 데이터 인식 모델에 적용함으로써, 상황 판단을 위한 기준을 학습할 수 있다.
데이터 획득부(81)는 학습 데이터, 예컨대, 입력 이미지(21)와 출력 이미지(22)의 쌍을 획득할 수 있다. 예를 들어, 데이터 획득부(81)는 노이즈가 있는 상황(예컨대, 안개가 낀 날씨)에서 피사체를 촬영한 입력 이미지(21)와 노이즈가 없는 상황(예컨대, 맑은 날씨)에서 피사체를 촬영한 출력 이미지(22)를 입력받을 수 있다. 즉, 데이터 획득부(81)는 유사한 피사체를 다른 환경에서 촬영한 복수의 입력 이미지(21) 및 출력 이미지(22)의 쌍들을 획득할 수 있다.
데이터 획득부(81)는 입출력 인터페이스로 구현될 수 있다. 예를 들어, 입력 이미지(21) 및 출력 이미지(22) 쌍들은 센서 모듈(15)에 의해 촬영된 이미지일 수 있다. 이 경우, 데이터 획득부(81)는 센서 모듈(15)로부터 이미지를 획득할 수 있다. 또한, 입력 이미지(21) 및 출력 이미지(22) 쌍들은 메모리에 저장된 이미지일 수 있다. 이 경우, 데이터 획득부(81)는 메모리(14), 제1 메모리(42) 및 제2 메모리(60) 중 적어도 어느 하나로부터 이미지를 획득할 수 있다. 또한, 입력 이미지(21) 및 출력 이미지(22) 쌍들은 외부 장치 및/또는 서버로부터 수신한 이미지일 수도 있다. 이 경우, 데이터 획득부(81)는 트랜시버 등 다양한 통신 모듈로부터 이미지를 획득할 수 있다.
모델 학습부(82)는 학습 데이터에 기초하여 입력 이미지(21)의 노이즈를 어떻게 판단하고, 노이즈를 어떻게 제거할 지에 관한 기준을 학습할 수 있다. 모델 학습부(82)는 노이즈를 제거하기 위해 게인을 최적 값으로 학습시킬 수 있다. 예를 들어, 모델 학습부(82)는 입력 이미지(21)에 포함된 노이즈를 제거하기 위해 제2 로우 피처맵(RFM_2)의 피처 값들보다 제1 로우 피처맵(RFM_1)의 피처 값들을 강조할 수 있다. 강조된 피처 값들은 합산 피처맵(SFM)에서 다른 피처 값들보다 두드러지게 나타나게 되며 노이즈 제거 등 소정의 목표를 달성할 수 있다. 이를 위해, 모델 학습부(82)는 복수의 게인들을 서로 달리 학습시킬 수 있다. 일 예로, 제1 레이어(310_1)에서 생성된 제1 로우 피처맵(RFM_1)에 대응되는 제1 게인(예컨대, 제1 게인 값(G_1) 또는 제1 게인 커널(322_1)), 각각 제2 로우 피처맵(RFM_2)에 대응되는 제2 게인(예컨대, 제2 게인 값(G_2) 또는 제2 게인 커널(322_2))과 달리 학습할 수 있다. 다른 예로, 모델 학습부(82)는 제2 게인 값(G_2)보다 제1 게인 값(G_1)이 큰 값을 갖도록 제1 게인 값(G_1) 및 제2 게인 값(G_2)을 학습시킬 수 있다.
모델 학습부(82)는 다양한 학습 알고리즘을 이용하여 뉴럴 네트워크 모델(300)을 학습시킬 수 있다. 예를 들어, 학습 알고리즘은 오류 역전파법(error back-propagation), 경사 하강법(gradient descent)등 다양한 알고리즘을 포함할 수 있다. 또한, 모델 학습부(82)는 학습 데이터(예컨대, 복수의 입력 이미지(21)와 출력 이미지(22)의 쌍들)를 입력 값으로 하는 지도 학습(supervised learning)을 통하여 뉴럴 네트워크 모델(300)을 학습시킬 수 있다. 한편, 모델 학습부(82)는 입력 이미지(21)와 출력 이미지(22)를 비교하여, 입력 이미지(21)의 노이즈가 적절하게 제거되었는지 여부에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여 뉴럴 네트워크 모델(300)을 학습시킬 수 있다.
모델 학습부(82)는 상술한 바와 같이 학습된 데이터 예컨대, 복수의 게인 값들(G_1 내지 G_N), 복수의 게인 매트릭스(GM_1 내지 GM_N) 및 복수의 게인 커널들(GK_1 내지 GK_N) 중 적어도 어느 하나를 전자 시스템(10)의 메모리에 저장할 수 있다. 전자 시스템(10)의 메모리는 메모리(14), 제1 메모리(42) 및 제2 메모리(60) 중 적어도 어느 하나를 포함할 수 있다. 또한, 모델 학습부(82)는 학습된 뉴럴 네트워크 모델(300) 및 이에 포함되는 데이터 및 파라미터 들응ㄹ 메모리에 저장할 수도 있다.
모델 평가부(83)는 뉴럴 네트워크 모델(300)에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 데이터가 소정 기준을 만족하지 못하는 경우, 모델 학습부(82)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 뉴럴 네트워크 모델(300)을 평가하기 위한 기 설정된 데이터, 예컨대 이미지 데이터 일 수 있다.
예를 들어, 모델 평가부(83)는 평가 데이터에 대한 학습된 뉴럴 네트워크 모델(300)의 출력 데이터 중에서, 입력 이미지(21)의 프레임 내에 노이즈가 잔존하는 영역의 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다.
한편, 데이터 획득부(81), 모델 학습부(82) 및 모델 평가부(83) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 시스템(10)에 탑재될 수 있다. 예를 들어, 데이터 획득부(81), 모델 학습부(82) 및 모델 평가부(83) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태, 뉴럴 네트워크 연산을 위한 전용 하드웨어 칩 형태(예컨대, NPU; Neuronal Processing Unit), 기존의 범용 프로세서(예컨대, CPU 또는 application processor) 또는 그래픽 전용 프로세서(GPU)의 일부로 제작되어 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(81), 모델 학습부(82) 및 모델 평가부(83)는 하나의 전자 시스템(10)에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(81), 모델 학습부(82) 및 모델 평가부(83) 중 일부는 전자 시스템(10)에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(81), 모델 학습부(82) 및 모델 평가부(83) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 8a, 도 8b 및 도 8c는 입력 이미지와 입력 이미지에 포함된 노이즈가 제거된 출력 이미지를 설명하기 위한 도면이다. 도 8a, 도 8b 및 도 8c의 제1 내지 제3 입력 이미지(21a, 21b 및 21c)에 각각 포함된 노이즈(91, 92 및 93)는 선명도, 명도, 채도, RGB 값 등 이미지 프레임의 적어도 일부의 영역에서 다양한 영상 파라미터의 변화가 일어난 이미지 영역이 될 수 있다.
도 8a를 참고하면, 카메라 렌즈에 작은 크기의 먼지가 있거나, 카메라 렌즈에 지문이 묻어 있는 등 작은 크기의 장애물이 렌즈에 근접하여 존재하는 상황을 나타낸다. 이 경우, 제1 입력 이미지(21a)에는 일부의 영역에서 불규칙적인 형태로 노이즈(91)가 발생할 수 있다.
도 8b를 참고하면, 피사체와 카메라 렌즈 사이에 철조망이 존재하고, 철조망이 피사체 보다는 카메라 렌즈와 가깝게 위치하는 경우, 철조망의 모양과 유사한 모양의 노이즈(92)가 발생할 수 있다. 즉, 카메라 렌즈와 철조망이 카메라 렌즈와 피사체보다 가깝게 위치하면서, 카메라의 초점은 피사체에 고정되어 있는 경우, 제2 입력 이미지(21b)와 같이 피사체의 형태는 촬영되지만 철조망과 유사한 모양의 노이즈(92)가 발생할 수 있다.
도 8c를 참고하면, 촬영 당시에 안개가 짙게 발생한 경우, 피사체가 전체적으로 흐려지는 노이즈(93)가 발생할 수 있다. 예를 들어, 촬영 시간, 날씨, 공간 등에 따라 노이즈(93)가 발생하여 피사체의 대부분의 영역이 흐려지거나 색상이 변화할 수 있다.
전술한 노이즈(91, 92 및 93) 및 다양한 형태의 노이즈를 제거하기 위해 뉴럴 네트워크 장치(13)는 입력 이미지(21)를 입력받아 뉴럴 네트워크 모델(300)에서 연산 처리를 수행하여 노이즈가 제거된 출력 이미지(22)를 생성할 수 있다.
한편, 일 실시예에 따르면, 제1 입력 이미지(21a) 및 출력 이미지(22)의 쌍, 제2 입력 이미지(21b) 및 출력 이미지(22)의 쌍, 제3 입력 이미지(21c) 및 출력 이미지(22)의 쌍과 같은 입력 이미지 및 출력 이미지의 쌍을 이용하여 뉴럴 네트워크 모델(300)을 학습시킬 수 있다. 예컨대, 게인 값들(G_1 내지 G_N), 게인 매트릭스(GM_1 내지 GM_N) 및 게인 커널(GK_1 내지 GK_N) 중 적어도 어느 하나가 학습될 수 있다.
도 9는 본 개시의 실시예에 따른 전자 시스템의 동작 방법을 설명하기 위한 흐름도이다.
단계 S710에서, 뉴럴 네트워크 장치(13)는 제1 레이어(310_1)에 의해 입력 이미지를 수신하여 제1 로우 피처맵(RFM_1)을 제2 레이어(310_2)로 제공할 수 있다.
단계 S720에서, 뉴럴 네트워크 장치(13)는 제x 레이어에 의해 제x-1 로우 피처맵에 기초하여 컨볼루션을 수행한 제x 로우 피처맵을 생성할 수 있다. 여기서, x 의 초기 값은 2 가 될 수 있다. 달리 말하면, 뉴럴 네트워크 장치(13)는 제2 레이어(310_2)에 의해 제1 로우 피처맵(RFM_1)을 제1 웨이트 맵과 컨볼루션하여 제2 로우 피처맵(RFM_2)을 생성할 수 있다.
단계 S730에서, 뉴럴 네트워크 장치(13)는 제x 로우 피처맵을 제x+1 레이어로 제공하고, 제x 로우 피처맵에 제x 게인을 적용한 제x 출력 피처맵을 저장할 수 있다. 예를 들어, 제2 로우 피처맵(RFM_2)을 제3 레이어(310_3)로 제공하고, 제2 로우 피처맵(RFM_2)에 대응되는 제2 게인을 제2 로우 피처맵(RFM_2)에 적용한 제2 출력 피처맵(OFM_2)을 생성할 수 있다.
단계 S720 및 S730이 수행되면, 뉴럴 네트워크 장치(13)는 제3 출력 피처맵, 제4 출력 피처맵 등 후순위 출력 피처맵을 생성하도록 반복할 수 있다. 즉, 뉴럴 네트워크 장치(13)는 제N 출력 피처맵(OFM_N)을 생성할 때 까지, 단계 S720 및 S730을 반복하여 수행할 수 있다.
단계 S740에서, 뉴럴 네트워크 장치(13)는 제N 레이어(310_N)에 의해 제N 로우 피처맵(RFM_N)에 제N 게인을 적용하여 제N 출력 피처맵(OFM_N)을 생성할 수 있다. 이 경우, 제1 레이어(310_1) 내지 제N 레이어(310_N)는 종속적으로 접속되어 있으며, 이는 도 3에서 상세히 전술하였으므로 생략한다.
일 실시예에 따르면, 뉴럴 네트워크 장치(13)는 x=2 내지 x=N-1 (N은 복수의 레이어들의 개수)를 1 씩 증가시키며 단계 S720 및 S730을 반복 수행하고, 단계 S740을 수행할 수 있다. 이에 따라 뉴럴 네트워크 장치(13)는 제1 내지 제N 출력 피처맵들(OFM_1 내지 OFM_N)을 생성할 수 있다.
다른 실시예에 따르면, 뉴럴 네트워크 장치(13)는 x=2 내지 x=N-1 중 일부의 값에서만 단계 S720 및 S730을 수행할 수 있으며, 단계 S740을 수행하지 않을 수도 있다. 단계 S740을 수행하지 않는 경우, 뉴럴 네트워크 장치(13)는 단계 S730을 수행한 이 후, S750을 수행할 수 있다. 예컨대, 뉴럴 네트워크 장치(13)는 제1 출력 피처맵, 제4 출력 피처맵, 제6 출력 피처맵 등 제1 내지 제N 출력 피처맵들(OFM_1 내지 OFM_N) 중에서 일부의 출력 피처맵들만 생성할 수 있다.
단계 S750에서, 뉴럴 네트워크 장치(13)는 생성된 출력 피처맵들을 합산하여 합산 피처맵(SFM)을 생성할 수 있다. 예컨대, 합산 피처맵(SFM)은 각각의 레이어들의 특성이 게인에 의해 차별적으로 반영되어 있는 피처맵일 수 있다.
단계 S760에서, 뉴럴 네트워크 장치(13)는 합산 피처맵(SFM)을 출력 이미지(20)로 복원할 수 있다. 일 예로, 뉴럴 네트워크 장치(13)는 복원 레이어(340)에 의해 합산 피처맵(SFM)을 출력 이미지(20)로 복원할 수 있다. 복원 레이어(340)는 컨볼루션 레이어일 수 있으며, 피처맵을 이미지 데이터 형태로 복원할 수 있는 다양한 레이어들로 구현될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 복수의 레이어들이 포함된 뉴럴 네트워크(neural network) 연산을 수행하는 컴퓨팅 장치에 있어서,
    상기 복수의 레이어들 각각에 대응되는 게인이 저장된 메모리; 및
    입력 이미지를 입력받아 상기 복수의 레이어들 각각에서 복수의 로우 피처맵(raw feature map)들을 생성하고, 상기 복수의 로우 피처맵들 각각에 대응되는 게인을 적용하여 복수의 출력 피처맵(output feature map)들을 생성하며, 이미지 복원 레이어에 의해 상기 복수의 출력 피처맵들을 합산한 결과로 출력 이미지를 생성하는 프로세서;를 포함하는 컴퓨팅 장치.
  2. 제1항에 있어서,
    상기 복수의 레이어들은 N 개의 레이어들을 포함하며, 제1 레이어부터 제N 레이어까지 각각 순차적으로 종속 접속(cascade connect)되고, 제i 레이어는 제i+1 레이어에 상기 로우 피처맵을 제공하고, 제i 레이어는 상기 로우 피처맵에 대응되는 게인을 적용하도록 상기 로우 피처맵을 출력하며, 상기 i는 1 내지 N-1 중 어느 하나인 것을 특징으로 하는 컴퓨팅 장치.
  3. 제1항에 있어서,
    상기 프로세서는 상기 복수의 출력 피처맵들을 합산한 합산 피처맵(summed feature map)을 상기 이미지 복원 레이어에 제공하고, 상기 이미지 복원 레이어는 상기 출력 이미지를 출력하는 것을 특징으로 하는 컴퓨팅 장치.
  4. 제1항에 있어서,
    상기 입력 이미지는 피사체 및 상기 입력 이미지의 적어도 일부 영역을 점유하는 노이즈를 포함하며, 상기 출력 이미지는 상기 입력 이미지의 상기 노이즈가 제거된 것을 특징으로 하는 컴퓨팅 장치.
  5. 제1항에 있어서,
    상기 프로세서는 복수의 입력 이미지 및 출력 이미지 쌍들에 기초하여 상기 게인을 학습시켜 상기 메모리에 저장하는 것을 특징으로 하는 컴퓨팅 장치.
  6. 제5항에 있어서,
    상기 학습된 게인은, 상기 게인에 대응되는 레이어에 의해 출력되는 피처 맵의 피처 값을 강화시키도록 학습된 것을 특징으로 하는 컴퓨팅 장치.
  7. 제1항에 있어서,
    상기 게인은 게인 커널(gain kernel)로서 구현되며,
    상기 복수의 출력 피처맵들은 상기 로우 피처맵 및 상기 로우 피처맵에 대응하는 상기 게인 커널에 기초하여 생성된 것을 특징으로 하는 컴퓨팅 장치.
  8. 뉴럴 네트워크 모델을 이용하여 출력 이미지를 생성하는 프로그램을 기록한 비일시적 컴퓨터 판독 가능 기록 매체에 있어서, 상기 프로그램은
    입력 이미지를 수신하는 단계;
    상기 입력 이미지에 기초하여, 종속 접속된 컨볼루션 레이어들 중 일부 또는 전부에서 생성한 복수의 로우 피처맵들을 생성하는 단계;
    생성된 상기 복수의 로우 피처맵들 각각에 대응되는 게인을 적용하여, 복수의 출력 피처맵들을 생성하는 단계; 및
    상기 복수의 출력 피처맵들에 기초하여 출력 이미지를 생성하는 단계를 포함하며,
    상기 게인은, 상기 복수의 단계들이 수행되면 학습 알고리즘에 의해 학습되어 업데이트되는 것을 특징으로 하는 비일시적 컴퓨터 판독 가능 기록 매체.
  9. 제8항에 있어서,
    제x 컨볼루션 레이어는 제x-1 컨볼루션 레이어로부터 수신한 제x-1 로우 피처맵을 제x 웨이트 맵과 컨볼루션하여 제x 로우 피처맵을 생성하고, 제x 로우 피처맵을 제x+1 컨볼루션 레이어로 제공하는 단계를 포함하며, 상기 x는 1 보다 큰 정수인 것을 특징으로 하는 비일시적 컴퓨터 판독 가능 기록 매체.
  10. 제8항에 있어서,
    상기 종속 접속된 컨볼루션 레이어들은 제1 컨볼루션 레이어 내지 제N 컨볼루션 레이어로 구성된 N 개의 컨볼루션 레이어들을 포함하고, 상기 N 은 1 보다 큰 정수이며,
    상기 복수의 로우 피처맵들을 생성하는 단계는, 상기 종속 접속된 컨볼루션 레이어들 전부에서 생성하고,
    상기 제N 컨볼루션 레이어에 기초하여 생성된 제N 출력 피처맵을 제외한 제1 출력 피처맵 내지 제N-1 출력 피처맵의 피처 값들은 0 인 것을 특징으로 하는 비일시적 컴퓨터 판독 가능 기록 매체.
KR1020180120611A 2018-10-10 2018-10-10 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법 KR20200040550A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180120611A KR20200040550A (ko) 2018-10-10 2018-10-10 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법
US16/596,660 US20200118249A1 (en) 2018-10-10 2019-10-08 Device configured to perform neural network operation and method of operating same
TW108136405A TW202014934A (zh) 2018-10-10 2019-10-08 電子系統以及非暫時性電腦可讀記錄媒體
CN201910955117.8A CN111028158A (zh) 2018-10-10 2019-10-09 电子系统、非暂时性计算机可读记录媒体及计算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180120611A KR20200040550A (ko) 2018-10-10 2018-10-10 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20200040550A true KR20200040550A (ko) 2020-04-20

Family

ID=70159025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180120611A KR20200040550A (ko) 2018-10-10 2018-10-10 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법

Country Status (4)

Country Link
US (1) US20200118249A1 (ko)
KR (1) KR20200040550A (ko)
CN (1) CN111028158A (ko)
TW (1) TW202014934A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210147662A (ko) * 2020-05-29 2021-12-07 (주)코셈 인공 지능 학습 데이터를 활용한 전자 현미경
KR20220000946A (ko) * 2020-05-08 2022-01-04 주식회사 스트라드비젼 오브젝트 디텍터를 위한 베이시안 듀얼 오토엔코더를 이용한 익스플레이너블 액티브 러닝 방법 및 이를 이용한 액티브 러닝 디바이스

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3629240B1 (en) * 2018-09-07 2023-08-23 Panasonic Intellectual Property Corporation of America Generative adversarial networks for local noise removal from an image
US20210357730A1 (en) * 2020-05-12 2021-11-18 Alibaba Group Holding Limited Multi-size convolutional layer background
WO2021251614A1 (en) * 2020-06-12 2021-12-16 Samsung Electronics Co., Ltd. Image processing apparatus and method of operating the same
GB2596834A (en) * 2020-07-08 2022-01-12 Continental Automotive Gmbh Mobile robot system and method for moving a mobile robot to a destination location
CN114343665B (zh) * 2021-12-31 2022-11-25 贵州省人民医院 一种基于图卷积空时特征融合选择的心律失常识别方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220000946A (ko) * 2020-05-08 2022-01-04 주식회사 스트라드비젼 오브젝트 디텍터를 위한 베이시안 듀얼 오토엔코더를 이용한 익스플레이너블 액티브 러닝 방법 및 이를 이용한 액티브 러닝 디바이스
KR20210147662A (ko) * 2020-05-29 2021-12-07 (주)코셈 인공 지능 학습 데이터를 활용한 전자 현미경

Also Published As

Publication number Publication date
TW202014934A (zh) 2020-04-16
CN111028158A (zh) 2020-04-17
US20200118249A1 (en) 2020-04-16

Similar Documents

Publication Publication Date Title
KR20200040550A (ko) 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법
US12008797B2 (en) Image segmentation method and image processing apparatus
US20220261615A1 (en) Neural network devices and methods of operating the same
US11074474B2 (en) Apparatus for performing neural network operation and method of operating the same
CN110188795B (zh) 图像分类方法、数据处理方法和装置
CN111914997B (zh) 训练神经网络的方法、图像处理方法及装置
KR20200091623A (ko) 위노그라드 변환에 기반한 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치
US11849226B2 (en) Image processing device including neural network processor and operating method thereof
US20200364567A1 (en) Neural network device for selecting action corresponding to current state based on gaussian value distribution and action selecting method using the neural network device
WO2022134971A1 (zh) 一种降噪模型的训练方法及相关装置
CN110473137A (zh) 图像处理方法和装置
CN112446834A (zh) 图像增强方法和装置
US11562046B2 (en) Neural network processor using dyadic weight matrix and operation method thereof
TW202018598A (zh) 神經網路處理器及其卷積操作方法
US20220157046A1 (en) Image Classification Method And Apparatus
JP7402623B2 (ja) フィルタ処理装置及びその制御方法
US20230289601A1 (en) Integrated circuit that extracts data, neural network processor including the integrated circuit, and neural network
WO2022100490A1 (en) Methods and systems for deblurring blurry images
KR20210001324A (ko) 인공 신경망 모델 및 이를 포함하는 전자 장치
CN112789627A (zh) 一种神经网络处理器、数据处理方法及相关设备
Ou et al. Real-time tone mapping: A state of the art report
KR20200129957A (ko) 피처맵 데이터에 대한 압축을 수행하는 뉴럴 네트워크 프로세서 및 이를 포함하는 컴퓨팅 시스템
KR20200132660A (ko) 가우시안 가치 분포에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법
KR20220147412A (ko) 이미지 센서 모듈, 이미지 처리 시스템 및 이미지 센서 모듈의 동작 방법
WO2023140869A1 (en) Method and apparatus for quantizing an output feature map using an activation function