KR20180062422A - 해상도-제한 소규모 cnn 모듈에 기초한 컨볼루션 뉴트럴 네트워크(cnn) 시스템 - Google Patents

해상도-제한 소규모 cnn 모듈에 기초한 컨볼루션 뉴트럴 네트워크(cnn) 시스템

Info

Publication number
KR20180062422A
KR20180062422A KR1020170162650A KR20170162650A KR20180062422A KR 20180062422 A KR20180062422 A KR 20180062422A KR 1020170162650 A KR1020170162650 A KR 1020170162650A KR 20170162650 A KR20170162650 A KR 20170162650A KR 20180062422 A KR20180062422 A KR 20180062422A
Authority
KR
South Korea
Prior art keywords
sub
images
cnn
module
input image
Prior art date
Application number
KR1020170162650A
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 알텀뷰 시스템즈 인크.
Publication of KR20180062422A publication Critical patent/KR20180062422A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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
    • 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
    • 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
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/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
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • G06V40/169Holistic features and representations, i.e. based on the facial image taken as a whole
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/251Fusion techniques of input or preprocessed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • 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/20021Dividing image into blocks, subimages or windows
    • 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/20221Image fusion; Image merging
    • 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/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • G06V20/625License plates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/178Human faces, e.g. facial parts, sketches or expressions estimating age from face image; using age information for improving recognition

Landscapes

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

Abstract

해상도-제한 소형 CNN 모듈의 이용에 기초한 컨벌루션 신경망(CNN) 시스템의 실시예가 개시된다. 일부 실시예에서, CNN 시스템은 제 1 이미지 크기의 입력 이미지를 수신하기 위한 수신 모듈 - 상기 수신 모듈은 입력 이미지를 제 2 이미지 크기의 서브이미지 세트로 분할하는데 사용될 수 있음 - 과, 최대 입력 이미지 크기로 구성된 제 1 하드웨어 CNN 모듈을 포함하는 제 1 프로세싱 스테이지 - 상기 제 1 하드웨어 CNN 모듈은 상기 서브이미지 세트를 순차적으로 수신하여 수신된 서브이미지를 순차적으로 처리하여 출력 세트를 발생시키도록 구성됨 - 와, 출력 세트를 병합 특징 맵 세트로 병합하기 위한 병합 모듈과, 특징 맵 세트를 수신하고 특징 맵 세트를 처리하여 입력 이미지 상에 적어도 하나의 예측값을 포함하는 출력을 발생시키기 위한 제 2 프로세싱 스테이지를 포함한다.

Description

해상도-제한 소형 CNN 모듈에 기초한 컨벌루션 신경망(CNN) 시스템 {a Convolutional Neural Network (CNN) system based on resolution-limited Small-scale CNN modules}
우선권 주장 및 관련 특허 출원
본 특허 출원은 2016년 11월 30일 출원된 발명자 Xing Wang, Him Wai Ng, Jie Liang에 의한 "CONVOLUTIONAL NEURAL NETWORKS(CNN) BASED ON RESOLUTION-LIMITED SMALL-SCALE CNN MODULES"이라는 명칭의 미국특허가출원 제62/428,497호(대리인 번호:AVS001.PRV01)에 기초하여 35 U.S.C. 119(e) 하의 우선권을 주장한다. 위 출원의 본 개시 전체는 본 문서의 일부분으로 참고자료로 포함된다.
기술 분야
본 발명은 일반적으로 기계 학습 및 인공 지능 분야에 관한 것으로서, 특히, 해상도-제한 소규모 하드웨어 컨볼루션 뉴트럴 네트워크(CNN) 모듈을 이용하여 CNN을 구현하기 위한 시스템, 장치, 및 기술에 관한 것이다.
심화 학습(DL)은 다중 처리 계층을 갖는 심화 그래프(deep graph)를 이용하여 데이터에서 높은 레벨의 추상화를 모델링하려는 알고리즘 집합에 기초한 기계 학습 및 인공 뉴트럴 네트워크의 한 분야이다. 일반적인 DL 아키텍처는 많은 신경 계층과 수백만 개의 파라미터를 포함할 수 있다. 이러한 파라미터는 정류 선형 유닛(ReLU), 드롭 아웃, 데이터 증강 및 SGD(Stochastic Gradient descent)와 같이, 많은 계층과 함께 작동할 수 있는 새로운 교육 기법을 통해 고속 GPU가 장착된 컴퓨터 상에서 대용량 데이터로부터 학습될 수 있다.
기존의 DL 아키텍처 중에서, CNN(convolutional neural network)은 가장 널리 사용되는 DL 아키텍처 중 하나이다. CNN의 개념은 20년 이상 알려져 왔지만 CNN의 진정한 힘은 최근의 심화 학습 이론이 발달한 후에야 인식되었다. 현재 CNN은 이미지 분류, 이미지 캡션 생성, 시각적 질문 응답 및 자동 운전 차량과 같은, 많은 인공 지능 및 기계 학습 응용프로그램에서 많은 성공을 거두었다.
그러나, 기존 CNN 시스템의 복잡도는 상당히 높게 유지되고 있다. AlexNet은 6천만개의 파라미터를 포함하고, 단일 이미지의 분류를 위해 7억2천9백만개 이상의 FLOP(FLoating-point Operations Per Second: 부동 소숫점 연산)를 필요로하며, Oxford University로부터의 VGG 네트워크는 19개의 계층 및 1억4천4백만개의 파라미터를 포함하고, 단일 이미지 분류에 수반되는 FLOP의 수는 196억개다. 불행하게도, 이러한 고복잡도 네트워크 구현은 NvidiaTM GPU 코어 및 대규모 FPGA와 같은, 상당한 양의 값비싼 하드웨어 리소스를 종종 필요로할 것이다. 예를 들어, 일부 CNN 시스템에 사용되는 NvidiaTM TK1 칩의 가격은 적어도 미화 80불/칩이고, 더 강력한 NvidiaTM TX1 칩의 가격은 적어도 미화 120불/칩이다. 비용 문제는 종종 비용 제한을 받는 임베디드 시스템에 있어서 특히나 성가신 문제다. 더욱이, 이러한 칩은 또한 종래의 임베디드 플랫폼의 전력 제한보다 동작에 더 큰 전력을 필요로하여, 기본적인 심화 학습 기능들이 요구되는, 그러나 이와 동시에 비용 및 전력 소모에 대한 소정의 제한들이 또한 충족되어야 하는, 많은 응용예에 대해 부적합하게 된다.
결과적으로, 기존 CNN 구조 및 시스템은 많은 임베디드 시스템 응용예에 대해 비용-경쟁력이 떨어진다.
여기서 기술되는 실시예는 소규모 저비용 하드웨어 CNN 모듈에 기초하여 구성되는 컨볼루션 뉴트럴 네트워크(CNN)의 다양한 예를 제공한다. 개시되는 CNN 구조 및 시스템은 통상적으로 대규모의 값비싼 CNN 시스템을 필요로하는 작업을 이러한 시스템들로 하여금 수행하게 하는 리소스-제한 임베디드 시스템에서 구현될 수 있다. 예를 들어, 개시되는 CNN 구조 및 시스템에서는 리소스-제한 임베디드 시스템에 대해 원래 가능하지 않던 고해상도 입력 이미지 처리와 같은, 고복잡도 CNN 응용예에 대해 저비용 CNN-가능 임베디드 시스템을 이용할 수 있다.
개시되는 CNN 시스템의 다양한 실시예는 분할 정복(divide and conquer) 기법에 기초하여 복잡한 작업을 관리한다. 일부 실시예에서, 개시되는 CNN 시스템은 2개 이상의 계층/스테이지로 구성되며, 2개 이상의 계층/스테이지 각각은 하나 이상의 소규모 저비용 하드웨어 CNN 모듈로, 또는, 저해상도 입력에 대해 작용하는 소프트웨어로, 구현된다. 이와 같이, 2개 이상의 계층/스테이지 각각은 매우 낮은 복잡도를 가질 수 있다. 특히, 개시되는 CNN 시스템을 이용하기 위해, 원래의 고해상도 입력 이미지가 원래의 입력 이미지 크기보다 훨씬 작은, 동일한 크기 또는 실질적으로 동일한 크기의 한 세트의 서브이미지로 분할될 수 있고, 이러한 분할은 저해상도 입력 이미지를 취급하도록 설계된 하나 이상의 소규모 하드웨어 CNN 모듈을 포함하는 개시되는 CNN 시스템의 제 1 계층/스테이지로 순차적으로 공급된다. 이러한 방식으로, 고해상도 입력 이미지가 한 세트의 서브이미지에 대해 반복적으로 소규모 하드웨어 CNN 모듈의 재사용을 통해 주어진 소규모 하드웨어 CNN 모듈에 의해 처리될 수 있다. 한 세트의 서브이미지에 기초한 제 1 계층/스테이지로부터의 출력들이 이어서 병합된다. 일부 실시예에서, 개시되는 CNN 시스템은 병합된 결과가 입력 이미지 분할없이 전체 고해상도 입력 이미지를 처리하는 대규모 CNN의 출력과 실질적으로 또는 정확이 동일함을 보장하기 위해 입력 이미지 및 서브이미지의 크기에 대한 프로비전을 포함한다. 그 다음, 병합된 결과가, 하나 이상의 저복잡도 처리 유닛으로 또한 구현될 수 있는 개시되는 CNN 시스템의 제 2 계층/스테이지에 의해 처리된다. 이러한 방식으로, 개시되는 CNN 시스템은 대규모의 값비싼 하드웨어 모듈 필요없이, 고해상도 입력 이미지 처리와 같은 고복잡도 작업을 관리하며, 따라서, 성능과 비용 간의 절충을 개선시킨다.
일 실시 형태에서, 서브이미지-기반 컨볼루션 뉴트럴 네트워크(CNN) 시스템이 개시된다. 이러한 CNN 시스템은 제 1 이미지 크기의 입력 이미지를 수신하기 위한 수신 모듈을 포함하고, 상기 수신 모듈은 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하는데 사용될 수 있다. CNN 시스템은 최대 입력 이미지 크기로 구성된 제 1 하드웨어 CNN 모듈을 포함하는 제 1 처리 스테이지를 또한 포함한다. 상기 제 1 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 각각을 수신하여, 수신된 서브이미지 각각을 순차적으로 처리하여 한 세트의 출력을 생성하도록 구성된다. CNN 시스템은 상기 제 1 처리 스테이지로부터 출력 세트를 순차적으로 수신하여 출력 세트를 한 세트의 병합된 특징 맵으로 병합하도록 구성되는 병합 모듈을 더 포함한다. CNN 시스템은 상기 한 세트의 특징 맵을 수신하고 상기 한 세트의 특징 맵을 처리하여 상기 CNN 시스템의 출력을 생성하도록 구성되는 제 2 처리 스테이지를 추가로 포함하며, 상기 출력은 상기 입력 이미지에 대한 적어도 하나의 예측치를 포함한다. 일부 실시예에서, 상기 제 1 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크고, 상기 제 2 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 작거나 동일하다.
일부 실시예에서, 상기 한 세트의 서브이미지는 제 1 서브세트의 서브이미지 및 제 2 서브세트의 서브이미지를 포함한다. 상기 수신 모듈은 입력 이미지를 한 세트의 서브이미지로 분할하도록 구성되며, 이는 상기 제 1 서브세트의 서브이미지의 일 로우 내 한 쌍의 인접한 서브이미지들이 제 1 갭에 의해 분리되고, 상기 제 1 서브세트의 서브이미지 중 일 칼럼 내 한 쌍의 인접한 서브이미지들이 제 2 갭에 의해 분리되도록 입력 이미지를 갭에 의해 분리되는 로우 및 칼럼의 상기 제 1 서브세트의 서브이미지로 분할함으로써, 그리고, 상기 제 2 서브세트의 서브이미지 각각이, 한 쌍의 인접한 서브이미지들 사이의 제 1 갭 또는 제 2 갭에 걸쳐, 상기 제 1 서브세트의 서브이미지 내 적어도 한 쌍의 인접한 서브이미지들과 부분적으로 오버랩되도록 위치하도록, 상기 제 2 서브세트의 서브이미지들을 생성함으로써 이루어진다.
일부 실시예에서, 상기 제 1 하드웨어 CNN 모듈은 직렬로 연결되는 한 세트의 컨볼루션(CONV) 계층, 한 세트의 ReLU 계층, 및 한 세트의 풀링 계층을 포함한다. 더욱이, 제 1 하드웨어 CNN 모듈을 이용하여 수신되는 서브이미지 각각을 처리하는 과정은, 수신되는 서브이미지에 대하여 상기 한 세트의 CONV 계층 내 일 CONV 계층, 상기 한 세트의 ReLU 계층 내 일 ReLU 계층, 및 상기 한 세트의 풀링 계층 내 일 풀링 계층을 교대로 적용하는 과정을 포함한다.
일부 실시예에서, 상기 제 1 하드웨어 CNN 모듈은 한 세트의 필터를 더 포함하고, 처리되는 서브이미지 각각과 관련된 상기 한 세트의 출력은 상기 한 세트의 필터에 대응한다.
일부 실시예에서, 상기 한 세트의 병합된 특징 맵은 입력 이미지의 분할없이 입력 이미지를 전체로서 처리하는 대규모 CNN 시스템의 컨볼루션-ReLU-풀링 계층에 의해 생성되는 한 세트의 특징 맵과 실질적으로 동일하다.
일부 실시예에서, 상기 제 2 처리 스테이지는 직렬로 연결된 한 세트의 완전-연결(FC) 계층 및 한 세트의 ReLU 계층을 포함하고, 한 세트의 병합된 특징 맵을 처리하는 과정은, 상기 한 세트의 병합된 특징 맵에 대하여 상기 한 세트의 FC 계층 내 일 FC 계층과 상기 한 세트의 ReLU 계층 내 일 ReLU 계층을 교대로 적용하는 과정을 포함한다.
일부 실시예에서, 상기 제 2 처리 스테이지가 소프트웨어적으로 구현된다.
일부 실시예에서, 상기 제 2 처리 스테이지가 제 2 하드웨어 CNN 모듈로 하드웨어적으로 구현된다.
일부 실시예에서, 상기 제 1 하드웨어 CNN 모듈 및 제 2 하드웨어 CNN 모듈 모두가 한 세트의 컨볼루션 계층, 제 1 세트의 ReLU 계층, 한 세트의 풀링 계층, 한 세트의 완전-연결(FC) 계층, 및 제 2 세트의 ReLU 계층을 포함하는 임베디드 시스템의 소규모 하드웨어 CNN 모듈에 기초하여 구현된다. 더욱이, 상기 제 1 하드웨어 CNN 모듈은 상기 소규모 하드웨어 CNN 모듈 내 상기 한 세트의 FC 계층 및 제 2 세트의 ReLU 계층을 우회함으로써 구현되고, 반면 상기 제 2 하드웨어 CNN 모듈은 상기 소규모 하드웨어 CNN 모듈 내 상기 한 세트의 컨볼루션 계층, 제 1 세트의 ReLU 계층, 및 한 세트의 풀링 계층을 우회함으로써 구현된다.
일부 실시예에서, 상기 제 1 하드웨어 CNN 모듈은 수기 숫자 인식 및 번호판 인식과 같은 응용예를 위한 저해상도 입력 이미지를 처리하도록 구성된 소규모 저비용 하드웨어 CNN 모듈이다.
다른 실시 형태에서, 서브이미지 기반 CNN을 이용한 이미지 처리 수행 프로세스가 개시된다. 이 프로세스는 제 1 이미지 크기의 입력 이미지를 수신하는 단계와, 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하는 단계와, 최대 입력 이미지 크기로 구성되는 제 1 하드웨어 CNN 모듈을 이용하여 상기 한 세트의 서브이미지를 처리하는 단계를 포함하며, 상기 처리는 상기 한 세트의 서브이미지 각각을 순차적으로 수신하는 과정과, 한 세트의 출력을 생성하도록 수신된 서브이미지 각각을 순차적으로 처리하는 과정을 포함한다. 이 프로세스는 출력 세트를 한 세트의 병합된 특징 맵으로 병합하는 단계와, 상기 입력 이미지에 대한 적어도 하나의 예측치를 생성하도록 상기 한 세트의 병합된 특징 맵을 처리하는 단계를 더 포함한다. 일부 실시예에서, 상기 제 1 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크고, 상기 제 2 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 작거나 동일하다.
일부 실시예에서, 상기 한 세트의 서브이미지는 제 1 서브세트의 서브이미지와 제 2 서브세트의 서브이미지를 포함하고, 상기 입력 이미지를 분할하는 단계는, 상기 제 1 서브세트의 서브이미지의 일 로우 내 한 쌍의 인접한 서브이미지들은 제 1 갭에 의해 분리되고, 상기 제 1 서브세트의 서브이미지의 일 칼럼 내 한 쌍의 인접한 서브이미지들은 제 2 갭에 의해 분리되도록, 갭에 의해 분리되는 로우 및 칼럼으로 이루어지는 제 1 서브세트의 서브이미지로 상기 입력 이미지를 분할하는 과정과, 제 2 서브세트의 서브이미지들 각각이 한 쌍의 인접한 서브이미지들 사이에서 제 2 갭 또는 제 1 갭에 걸쳐, 상기 제 1 서브세트의 서브이미지 내 적어도 한 쌍의 인접한 서브이미지들과 부분적으로 오버랩되도록 위치하도록 제 2 서브세트의 서브이미지를 생성하는 과정을 포함한다.
일부 실시예에서, 수신되는 서브이미지 각각을 순차적으로 처리하는 단계는, 수신되는 서브이미지에 대해 한 세트의 컨볼루션 계층 내 일 컨볼루션 계층, 한 세트의 ReLU 계층 내 일 ReLU 계층, 및 한 세트의 풀링 계층 내 일 풀링 계층을 교대로 적용하는 단계를 포함한다.
일부 실시예에서, 수신되는 서브이미지 각각을 순차적으로 처리하는 단계는, 수신되는 서브이미지에 한 세트의 필터를 적용하는 단계를 더 포함하고, 처리되는 서브이미지 각각과 관련된 출력 세트는 필터 세트에 대응한다.
일부 실시예에서, 상기 한 세트의 병합된 특징 맵은, 입력 이미지 분할없이, 입력 이미지를 전체로서 처리하는 대규모 CNN 시스템의 컨볼루션-ReLU-풀링 계층에 의해 생성된 한 세트의 특징 맵과 실질적으로 동일하다.
일부 실시예에서, 상기 한 세트의 병합된 특징 맵을 처리하는 단계는, 상기 한 세트의 병합된 특징 맵에 대해 한 세트의 FC 계층 내 일 FC 계층과 한 세트의 ReLU 계층 내 일 ReLU 계층을 교대로 적용하는 단계를 포함한다.
일부 실시예에서, 상기 한 세트의 병합된 특징 맵을 처리하는 단계는, 제 2 하드웨어 CNN 모듈을 이용하는 단계를 포함한다.
또 다른 실시 형태에서, 다른 서브이미지-기반 CNN 시스템이 개시된다. 이러한 CNN 시스템은, 제 1 이미지 크기의 입력 이미지를 수신하기 위한 수신 모듈을 포함하고, 상기 수신 모듈은 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하는데 사용될 수 있다. CNN 시스템은 제 1 하드웨어 CNN 모듈 및 제 2 하드웨어 CNN 모듈을 포함하는 제 1 처리 스테이지를 포함하고, 상기 제 1 및 제 2 하드웨어 CNN 모듈 각각은 최대 입력 이미지 크기로 구성된다. 상기 제 1 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 중 제 1 서브세트의 서브이미지 각각을 수신하고, 제 1 출력 세트를 생성하도록 수신되는 서브이미지 각각을 순차적으로 처리하도록 또한 구성된다. 상기 제 2 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 중 제 2 서브세트의 서브이미지 각각을 수신하고, 제 2 출력 세트를 생성하도록 수신되는 서브이미지 각각을 처리하도록 또한 구성된다. 일부 실시예에서, 상기 제 1 하드웨어 CNN 모듈 및 상기 제 2 하드웨어 CNN 모듈은 상기 제 1 서브세트의 서브이미지 및 제 2 서브세트의 서브이미지를 병렬로 처리하도록 구성된다. CNN 시스템은 상기 제 1 처리 스테이지로부터 제 1 출력 세트 및 제 2 출력 세트를 순차적으로 수신하여 상기 제 1 및 제 2 출력 세트를 한 세트의 병합된 특징 맵으로 병합하도록 구성되는 병합 모듈을 더 포함한다. CNN 시스템은 상기 한 세트의 특징 맵을 수신하고 상기 한 세트의 특징 맵을 처리하여 상기 CNN 시스템의 출력을 생성하도록 구성되는 제 2 처리 스테이지를 추가로 포함하며, 상기 출력은 상기 입력 이미지에 대한 적어도 하나의 예측치를 포함한다.
또 다른 실시 형태에서, 이미지에 대한 심화 학습을 수행할 수 있는 시스템이 개시된다. 상기 시스템은, 프로세서와, 상기 프로세서에 연결된 메모리와, 상기 프로세서 및 메모리에 연결되고, 상기 제 1 이미지 크기의 이미지를 캡처하도록 구성되는 이미지 캡처 장치를 포함한다. 시스템은 상기 프로세서 및 메모리에 연결되는 컨볼루션 뉴트럴 네트워크(CNN) 서브시스템을 또한 포함한다. 상기 CNN 서브시스템은, 상기 이미지 캡처 장치에 의해 캡처되는 제 1 이미지 크기의 입력 이미지를 수신하도록 구성되는 수신 모듈을 포함하고, 상기 수신 모듈은 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하도록 구성된다. CNN 서브시스템은 최대 입력 이미지 크기로 구성된 제 1 하드웨어 CNN 모듈을 포함하는 제 1 처리 스테이지를 또한 포함한다. 상기 제 1 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 각각을 수신하여, 수신된 서브이미지 각각을 순차적으로 처리하여 한 세트의 출력을 생성하도록 또한 구성된다. CNN 서브시스템은 상기 제 1 처리 스테이지로부터 출력 세트를 순차적으로 수신하여 출력 세트를 한 세트의 병합된 특징 맵으로 병합하도록 구성되는 병합 모듈을 더 포함한다. CNN 서브시스템은 상기 한 세트의 특징 맵을 수신하고 상기 한 세트의 특징 맵을 처리하여 상기 CNN 서브시스템의 출력을 생성하도록 구성되는 제 2 처리 스테이지를 추가로 포함하고, 상기 출력은 상기 입력 이미지에 대한 적어도 하나의 예측치를 포함한다. 일부 실시예에서, 상기 제 1 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크고, 상기 제 2 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 작거나 동일하다.
일부 실시예에서, 상기 시스템은 감시 카메라와 같은 임베디드 시스템 또는 모바일 장치를 포함한다.
도 1a는 여기서 기술되는 일부 실시예에 따른, 저해상도 입력 이미지를 처리하기 위한 소규모 하드웨어 CNN 모듈의 블록도를 도시한다.
도 1b는 여기서 기술되는 일부 실시예에 따른, 도 1a의 하드웨어 CNN 모듈의 상세한 구현예를 도시한다.
도 2a는 고해상도 입력 이미지를 처리하기 위한 기존 풀-이미지-기반 CNN 시스템의 블록도를 도시한다.
도 2b는 여기서 기술되는 일부 실시예에 따른, 개시되는 서브이미지-기반 CNN 시스템의 블록도를 도시한다.
도 2c는 여기서 기술되는 일부 실시예에 따른, 3-계층 서브이미지-기반 CNN 시스템의 블록도를 도시한다.
도 3a는 여기서 기술되는 일부 실시예에 따른, 인접 서브이미지들 간에 적절히 설계된 갭을 가진, 한 세트 4개의 서브이미지로 입력 이미지의 분할을 도시한다.
도 3b는 여기서 기술되는 일부 실시예에 따른, 동일 입력 이미지에 대한 한 세트 5개의 경계 서브이미지를 생성하기 위한 프로세스를 도시한다.
도 3c는 여기서 기술되는 일부 실시예에 따른, 도 3a의 서브이미지와 도 3b의 경계 서브이미지를 모두 포함하는 입력 이미지의 조합된 한 세트의 서브이미지들을 도시한다.
도 4는 여기서 기술되는 일부 실시예에 따른 논-오버랩 서브이미지 및 경계 서브이미지를 모두 포함하는 86x62 입력 이미지의 예시적인 입력 이미지 분할 기법을 도시한다.
도 5는 여기서 기술되는 일부 실시예에 따른, 개시되는 서브이미지-기반 CNN 시스템을 이용한 이미지 처리 수행 프로세스를 나타내는 순서도를 제시한다.
도 6은 여기서 기술되는 일부 실시예에 따른, 캡처된 이미지에 대한 심화 학습(DL) 이미지 처리 수행에 사용되는, 개시되는 서브이미지-기반 CNN 시스템의 예시적인 임베디드 시스템을 도시한다.
이하에 설명되는 상세한 설명은 본 기술의 다양한 구성에 대한 설명으로서 의도되며, 본 기술이 실시될 수 있는 유일한 구성을 나타내기 위한 것이 아니다. 첨부된 도면은 본 명세서에 통합되어 상세한 설명의 일부를 구성한다. 자세한 설명에는 해당 기술에 대한 철저한 이해를 돕기 위한 구체적인 세부 정보가 포함된다. 그러나 본 기술은 여기에 명시된 특정 세부 사항에 국한되지 않으며 이러한 특정 세부 사항 없이도 실행될 수 있다. 경우에 따라, 주제 기술의 개념을 모호하게하지 않도록 구조와 구성 요소가 블록도 형태로 표시된다.
여기서 기술되는 실시예는 소규모 저비용 하드웨어 CNN 모듈에 기초하여 구성되는 컨볼루션 뉴트럴 네트워크(CNN)의 다양한 예를 제공한다. 개시되는 CNN 구조 및 시스템은 대규모의 고도로 복잡하고 값비싼 CNN 시스템을 통상적으로 필요로하는 작업을 이러한 시스템들로 하여금 수행할 수 있도록 리소스-제한 저비용 시스템에서 구현될 수 있다. 개시되는 CNN 구조 및 시스템은 시스템 비용을 크게 절감하기 위해 고도로 복잡한 대규모의 CNN 모듈을 대체하도록 기존 DL 시스템에서 또한 구현될 수 있다. 예를 들어, 개시되는 CNN 구조 및 시스템은 리소스-제한 임베디드 시스템용으로 가능하지 않을 고해상도 입력 이미지 처리와 같은 고복잡도 CNN 응용예에 대해 저비용 CNN-가능 임베디드 시스템을 이용할 수 있게 한다.
개시되는 CNN 시스템의 다양한 실시예들은 분할 정복(divide and conquer) 기법에 기초하여 복잡한 작업을 관리한다. 일부 실시예에서, 개시되는 CNN 시스템은 2개 이상의 계층/단계로 구성되며, 2개 이상의 계층/단계 각각은 저해상도 입력에 대해 작동하는 소프트웨어로 또는 하나 이상의 소규모 저비용 하드웨어 CNN 모듈로 구현된다. 이와 같이, 2개 이상의 계층/단계 각각은 매우 낮은 복잡도를 가질 수 있다. 특히, 개시되는 CNN 시스템을 이용하기 위해, 원래의 고해상도 입력 이미지가 원래의 입력 이미지 크기보다 훨씬 작은, 동일 크기 또는 실질적으로 동일한 크기의 한 세트의 서브이미지들로 분할될 수 있고, 이러한 분할은 인접 서브이미지들 간에 적절히 설계된 갭 및/또는 오버랩을 포함할 수 있다. 이러한 서브이미지들은 저해상도 입력 이미지를 취급하도록 설계된 하나 이상의 소규모 하드웨어 CNN 모듈을 포함하는, 개시되는 CNN 시스템의 제 1 계층/단계로 순차적으로 공급된다. 특히, 상기 한 세트의 서브이미지들은 서브이미지들의 세트 또는 서브세트에 대해 주어진 하나 이상의 소규모 하드웨어 CNN 모듈을 반복적으로 재이용함으로써 순차적으로 처리될 수 있다. 이러한 방식으로, 고해상도 입력 이미지가 한 세트의 서브이미지에 대해 하나 이상의 소규모 하드웨어 CNN 모듈의 재이용을 통해 하나 이상의 소규모 하드웨어 CNN 모듈에 의해 처리될 수 있다. 한 세트의 서브이미지에 기초한 제 1 계층/단계로부터의 출력들이 순차적으로 병합된다. 일부 실시예에서, 개시되는 CNN 시스템은 병합된 결과가 입력 이미지 분할없이 전체 고해상도 입력 이미지를 처리하는 대규모 고복잡도 CNN 모듈의 출력과 실질적으로 또는 정확히 동일함을 보장하기 위해 입력 이미지 및 서브이미지들의 크기에 대한 프로비전을 포함한다. 그 다음, 병합된 결과가, 개시되는 CNN 시스템의 제 2 계층/단계에 의해 처리될 수 있고, 이는 하나 이상의 저복잡도 처리 유닛으로 또한 구현될 수 있다. 이러한 방식으로, 개시되는 CNN 시스템은 고도로 복잡하고 값비싼 대규모 하드웨어 모듈을 필요로하지 않으면서 고해상도 입력 이미지의 처리와 같은 고복잡도 작업을 관리하여, 성능과 비용 간의 절충을 개선시킬 수 있다.
일 실시 형태에서, 서브이미지-기반 컨볼루션 뉴트럴 네트워크(CNN) 시스템이 개시된다. 이러한 CNN 시스템은 제 1 이미지 크기의 입력 이미지를 수신하기 위한 수신 모듈을 포함하고, 상기 수신 모듈은 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하는데 사용될 수 있다. CNN 시스템은 최대 입력 이미지 크기로 구성된 제 1 하드웨어 CNN 모듈을 포함하는 제 1 처리 스테이지를 또한 포함한다. 상기 제 1 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 각각을 수신하여, 수신된 서브이미지 각각을 순차적으로 처리하여 한 세트의 출력을 생성하도록 구성된다. CNN 시스템은 상기 제 1 처리 스테이지로부터 출력 세트를 순차적으로 수신하여 출력 세트를 한 세트의 병합된 특징 맵으로 병합하도록 구성되는 병합 모듈을 더 포함한다. CNN 시스템은 상기 한 세트의 특징 맵을 수신하고 상기 한 세트의 특징 맵을 처리하여 상기 CNN 시스템의 출력을 생성하도록 구성되는 제 2 처리 스테이지를 추가로 포함하며, 상기 출력은 상기 입력 이미지에 대한 적어도 하나의 예측치를 포함한다. 일부 실시예에서, 상기 제 1 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크고, 상기 제 2 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 작거나 동일하다.
다른 실시 형태에서, 서브이미지 기반 CNN을 이용한 이미지 처리 수행 프로세스가 개시된다. 이 프로세스는 제 1 이미지 크기의 입력 이미지를 수신하는 단계와, 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하는 단계와, 최대 입력 이미지 크기로 구성되는 제 1 하드웨어 CNN 모듈을 이용하여 상기 한 세트의 서브이미지를 처리하는 단계를 포함하며, 상기 처리는 상기 한 세트의 서브이미지 각각을 순차적으로 수신하는 과정과, 한 세트의 출력을 생성하도록 수신된 서브이미지 각각을 순차적으로 처리하는 과정을 포함한다. 이 프로세스는 출력 세트를 한 세트의 병합된 특징 맵으로 병합하는 단계와, 상기 입력 이미지에 대한 적어도 하나의 예측치를 생성하도록 상기 한 세트의 특징 맵을 처리하는 단계를 더 포함한다. 일부 실시예에서, 상기 제 1 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크고, 상기 제 2 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 작거나 동일하다.
또 다른 실시 형태에서, 다른 서브이미지-기반 CNN 시스템이 개시된다. 이러한 CNN 시스템은, 제 1 이미지 크기의 입력 이미지를 수신하기 위한 수신 모듈을 포함하고, 상기 수신 모듈은 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하는데 사용될 수 있다. CNN 시스템은 제 1 하드웨어 CNN 모듈 및 제 2 하드웨어 CNN 모듈을 포함하는 제 1 처리 스테이지를 또한 포함하고, 상기 제 1 및 제 2 하드웨어 CNN 모듈 각각은 최대 입력 이미지 크기로 구성된다. 상기 제 1 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 중 제 1 서브세트의 서브이미지 각각을 수신하고, 제 1 출력 세트를 생성하도록 수신되는 서브이미지 각각을 순차적으로 처리하도록 또한 구성된다. 상기 제 2 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 중 제 2 서브세트의 서브이미지 각각을 수신하고, 제 2 출력 세트를 생성하도록 수신되는 서브이미지 각각을 처리하도록 또한 구성된다. 일부 실시예에서, 상기 제 1 하드웨어 CNN 모듈 및 상기 제 2 하드웨어 CNN 모듈은 상기 제 1 서브세트의 서브이미지 및 제 2 서브세트의 서브이미지를 병렬로 처리하도록 구성된다. CNN 시스템은 상기 제 1 처리 스테이지로부터 제 1 출력 세트 및 제 2 출력 세트를 순차적으로 수신하여 상기 제 1 및 제 2 출력 세트를 한 세트의 병합된 특징 맵으로 병합하도록 구성되는 병합 모듈을 더 포함한다. CNN 시스템은 상기 한 세트의 특징 맵을 수신하고 상기 한 세트의 특징 맵을 처리하여 상기 CNN 시스템의 출력을 생성하도록 구성되는 제 2 처리 스테이지를 추가로 포함하며, 상기 출력은 상기 입력 이미지에 대한 적어도 하나의 예측치를 포함한다.
또 다른 실시 형태에서, 이미지에 대한 심화 학습을 수행할 수 있는 시스템이 개시된다. 상기 시스템은, 프로세서와, 상기 프로세서에 연결된 메모리와, 상기 프로세서 및 메모리에 연결되고, 상기 제 1 이미지 크기의 이미지를 캡처하도록 구성되는 이미지 캡처 장치를 포함한다. 시스템은 상기 프로세서 및 메모리에 연결되는 컨볼루션 뉴트럴 네트워크(CNN) 서브시스템을 또한 포함한다. 상기 CNN 서브시스템은, 상기 이미지 캡처 장치에 의해 캡처되는 제 1 이미지 크기의 입력 이미지를 수신하도록 구성되는 수신 모듈을 포함하고, 상기 수신 모듈은 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하도록 구성된다. CNN 서브시스템은 최대 입력 이미지 크기로 구성된 제 1 하드웨어 CNN 모듈을 포함하는 제 1 처리 스테이지를 또한 포함한다. 상기 제 1 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 각각을 수신하여, 수신된 서브이미지 각각을 순차적으로 처리하여 한 세트의 출력을 생성하도록 또한 구성된다. CNN 서브시스템은 상기 제 1 처리 스테이지로부터 출력 세트를 순차적으로 수신하여 출력 세트를 한 세트의 병합된 특징 맵으로 병합하도록 구성되는 병합 모듈을 더 포함한다. CNN 서브시스템은 상기 한 세트의 특징 맵을 수신하고 상기 한 세트의 특징 맵을 처리하여 상기 CNN 서브시스템의 출력을 생성하도록 구성되는 제 2 처리 스테이지를 추가로 포함하고, 상기 출력은 상기 입력 이미지에 대한 적어도 하나의 예측치를 포함한다. 일부 실시예에서, 상기 제 1 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크고, 상기 제 2 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 작거나 동일하다.
상술한 바와 같이, 기존 CNN 구조 및 시스템은 많은 임베디드 시스템 응용예에 대해 가격 경쟁력이 없다. 게다가, 저비용 칩셋에 기초한 일부 저비용 CNN-가능 임베디드 시스템이 나타나기 시작했다. 한가지 주목할만한 예가 Huawei Technologies Co. Ltd.의 자회사인 HiSilicon Semiconductor Co. Ltd.가 개발한 Hi3519 칩셋이다. Hi3519 칩셋은 NvidiaTM TK1/TX1 칩셋보다 훨씬 저렴하다. Hi3519 칩셋은 일부 유망한 특징들을 가진 내장형 하드웨어 CNN 모듈을 또한 포함한다. 예를 들어, Hi3519 칩셋 내 내장 CNN 모듈의 파라미터들은 재구성가능하다 - 즉, 사용자들이 네트워크 구조 및 파라미터를 수정할 수 있고, 이는 상이한 응용예에 대해 미리 학습될 수 있다. 더욱이, 내장 CNN 모듈은 매우 빠를 수 있고, 가령, 32x40 입력 이미지 처리에 약 1ms가 걸릴 것이다. 그러나, Hi3519 칩셋은 매우 제한된 연산 용량을 가지며, 따라서, 수기(손으로 쓴) 숫자 인식 또는 번호판 인식과 같은 간단한 응용예에만 사용될 수 있다.
본 개시에서, 임베디드 시스템 및 모바일 장치와 같은, 리소스-제한 시스템에 적합한 신규한 CNN 구조 및 시스템이 개시된다. 일부 실시예에서, 개시되는 CNN 구조 및 시스템은 Hi3519 칩셋 내의 기언급한 내장형 하드웨어 CNN 모듈과 같은, 저해상도의 입력 이미지를 처리하도록 설계된 하나 이상의 소규모 하드웨어 CNN 모듈(따라서 이후 "해상도-제한 CNN 모듈"이라 지칭됨)을 재사용하여, 제안되는 CNN 구조 및 시스템이 값비싼 대규모 하드웨어 CNN 모듈의 처리 능력을 통상적으로 필요로하는 고해상도 입력 이미지 및 더욱 어려운 작업에 적용될 수 있다.
개시되는 CNN 시스템은 분할 정복 기법에 기초하여 복잡한 작업을 관리하도록 구성된 계층형 시스템이다. 일부 실시예에서, 개시되는 CNN 시스템은 2개 이상의 계층/단계로 구성된다. 2개 이상의 단계 각각은 하나 이상의 소규모 하드웨어 CNN 모듈 각각을 재사용함으로써 (통상적으로 임베디드 시스템에서 발견되는) 하나 이상의 소규모 저비용 하드웨어 CNN 모듈로 구현될 수 있다. 이와 같이, 2개 이상의 계층/단계 각각은 매우 낮은 복잡도를 가질 수 있다. 특히, 개시되는 CNN 시스템을 재사용하기 위해, 원본 고해상도 입력 이미지가 원본 입력 이미지의 크기보다 훨씬 작은 동일 크기 또는 실질적으로 동일한 크기의 한 세트의 서브이미지들로 분할될 수 있고, 이러한 분할은 인접 서브이미지들 간에 적절히 설계된 갭 및/또는 오버랩을 포함할 수 있다. 이러한 서브이미지들은 저해상도 입력 이미지를 취급하도록 설계된 적어도 하나의 소규모 하드웨어 CNN 모듈을 포함하는 개시되는 CNN 시스템의 제 1 스테이지로 순차적으로 공급되고, 처리되는 한 세트의 서브이미지들의 제 1 계층으로부터의 출력들이 이어서 병합된다. 특히, 한 세트의 서브이미지들은 한 세트의 서브이미지들에 대해 반복적으로 적어도 하나의 소규모 하드웨어 CNN 모듈을 재사용함으로써 순차적으로 처리될 수 있다. 이러한 방식으로, 고해상도 입력 이미지가 한 세트의 서브이미지들에 대해 적어도 하나의 소규모 하드웨어 CNN 모듈의 재사용을 통해 소규모 하드웨어 CNN 모듈에 의해 처리될 수 있다. 적절히 선택된 크기의 원본 입력 이미지 및 서브이미지로, 병합된 결과가, 분할없이 전체 고해상도 입력 이미지를 처리하는 대규모 고복잡도 CNN 모듈의 출력과 실질적으로 또는 정확히 동일할 수 있다. 그 다음, 병합된 결과는 하나 이상의 해상도-제한 소규모 하드웨어 CNN 모듈 또는 소프트웨어에 기초할 수 있는, 개시되는 CNN 시스템의 제 2 스테이지에 의해 처리된다. 이와 같이 제안된 계층형 CNN 시스템은 하나 이상의 소규모 저복잡도 하드웨어 CNN 모듈을 재사용함으로써 대규모 고복잡도 CNN 시스템을 본질적으로 구축하여, 제안되는 CNN 시스템을, 다양한 감시 카메라, 기계 비전 카메라, 드론, 로봇, 자가 운전 차량, 및 이동 전화와 같은, 저비용 리소스-제한 시스템에 적용가능하게 한다.
다음의 논의에서, 우리는 제안된 계층형 CNN 시스템의 일부 예시적인 구현예를 나타내기 위해 일례로서 Hi3519 칩셋 내의 내장형 하드웨어 CNN 모듈을 이용할 수 있다. 그러나, 제안되는 CNN 시스템 및 기술은 Hi3519 칩셋과 같은 특정 칩셋에 제한되지 않는다. 고복잡도 DL 및 AI 응용예를 위한 소규모 저비용 하드웨어 CNN 모듈을 재사용하는, 개시되는 개념은 임의의 소규모 저비용 하드웨어 CNN 모듈에 적용될 수 있다. 더욱이, 개시되는 시스템 및 기술은 단일 필드 프로그래머블 게이트 어레이(FPGA) 모듈로 구현될 수 있고, 많은 저비용 임베디드 플랫폼과 통합될 수 있다.
소규모 저비용 하드웨어 CNN 모듈
도 1a는 저해상도 입력 이미지를 처리하기 위한 소규모 하드웨어 CNN 모듈(100)의 블록도를 도시한다. 일부 실시예에서, CNN 모듈(100)은 해상도 제한 입력 이미지의 특징부를 추출하고 애플리케이션에 따라 다양한 DL 추론을 하도록 구성된다. 도 1a에서 알 수 있는 바와 같이, CNN 모듈(100)은 CNN1 및 CNN2로 표시된 적어도 2 개의 서브모듈을 포함한다. 일부 실시예에서, CNN 모듈(100)은 입력 이미지(102) 크기를 1280 픽셀 이하, 예를 들어, 32×40 픽셀의 이미지 해상도로 제한하도록 구성된다. 입력 이미지 크기에 대한 이러한 제한은 또한 CNN 모듈(100)에 적합한 애플리케이션 유형을 상당히 제한한다.
도 1b는 하드웨어 CNN 모듈(100)의 보다 상세한 구현을 도시한다. 도 1b에서, 도 1a의 제 1 서브모듈(CNN1)은 직렬로 연결된 다수의 교번 컨볼루션(CONV) 층, 정류된 선형 유닛(ReLU) 층(도시되지 않음) 및 풀링 층(pooling layers)을 더 포함한다. 또한, 이러한 CONV(1)층과 같은 CONV 층의 각각에 대해, 컨볼루션 필터들의 세트는 입력 이미지(102)로부터 특정 특징부들의 세트를 추출하는데 이용된다. 서브모듈(CNN1) 내 CONV층 각각 다음에 대응하는 ReLU층(도시되지 않음) 및 풀링층, 가령, POOL(1)층이 나타나고, 이는 추출되는 특징부의 일부를 보존하면서 대응하는 CONV층에 의해 생성된 필터링된 이미지의 크기를 감소시키도록 구성된다.
또한 도 1b에 도시된 바와 같이, 도 1a의 제 2 서브모듈(CNN2)은 직렬로 연결된 복수의 교번 완전-연결(FC: fully connected) 층 및 ReLU층(도시되지 않음)을 더 포함한다. 서브모듈(CNN2)에서의 FC(1)층과 같은 각각의 FC 계층은 매트릭스 곱셈을 수행하도록 구성된다. 각각의 FC 층들(마지막 FC 층을 제외하고)에는 대응하는 ReLU 층(도시되지 않음)이 뒤따른다. 도 1b에 명시적으로 도시되지 않았지만, CNN1 및 CNN2의 각각의 ReLU 층은 CNN 시스템에 비선형 특성을 제공하도록 구성된다. 마지막으로, 최종 FC 층(예를 들어, FC(n) 층)의 출력에서, 최종 FC 층의 출력에 기초하여 예측을 행하여 CNN 모듈(100)의 출력을 발생시키도록 결정 모듈(역시 도시되지 않음)이 구성된다. 일부 실시예에서, 제 2 서브모듈(CNN2)이 3 ~ 8개의 완전-연결(FC)층 및 ReLU 층을 포함하는 반면, 제 1 서브모듈(CNN1)은 1 ~ 8 개의 CONV, ReLU 및 풀링 층을 포함한다.
일부 실시예들에서, 각각의 CONV 층들 내의 컨볼루션 필터들의 개수는 최대 50이고, 단지 3×3 필터들이 허용된다. 더욱이, 컨볼루션 스트라이드는 1로 고정되고 제로 패딩은 사용되지 않는다. 일부 실시예에서, CNN1의 풀링 계층은 필터 이미지의 2×2 영역 각각으로부터 최대 값을 선택하기 위해 최대-풀링 기술을 사용할 수 있다. 일부 실시예들에서, 최대-풀링 및 평균 풀링 모두가 지원되지만, 풀링 윈도우 크기는 2×2로 고정되고, 스트라이드는 2로 고정된다. 다시 말해서, 이미지 폭 및 높이 각각은 각각의 풀링 계층 후 절반으로 감소한다.
Hi3519의 SoC 내의 하드웨어 CNN 모듈의 예를 들면, 제 1 FC 층의 최대 입력 크기는 1024이고, 중간 FC 층 내 뉴런의 수가 많아야 256이다. CNN 모듈의 출력의 크기가 많아야 256이다. 이러한 제약으로 인해 Hi3519 SoC 내의 하드웨어 CNN 모듈은 일반적으로 손으로 쓴 숫자 인식 및 번호판 인식과 같은 간단한 응용 프로그램을 수행하는 데만 적합하다. 얼굴 인식과 같은 더욱 까다로운 애플리케이션의 경우 CNN 모듈 100과 같은 소규모 CNN 모듈을 직접 적용하는 것은 적어도 다음과 같은 이유 때문에 실행 불가능하다. 첫째,(40X32와 같은) 1280 화소의 최대 입력 해상도는 매우 제한적인데, 왜냐하면, 이러한 해상도로 다운샘플링된 얼굴 이미지는 중요한 얼굴 정보를 너무 많이 상실하기 때문이다. 두번째로, 소규모 CNN 모듈(100)의 학습 용량이 또한 극히 제한적이다.
계층화된 서브이미지 기반 CNN 아키텍처 및 시스템
도 2a는 고해상도 입력 이미지를 처리하기 위한 종래의 풀 이미지 기반 CNN 시스템(200)의 블록도를 도시한다. 도시된 바와 같이, 종래의 CNN 시스템(200)은 제 1 컨볼루션 계층(CONV(1))에서 전체 고해상도 입력 이미지(202)를 수신할 수 있고 고해상도 입력 이미지(202) 상에서 특징 추출 동작을 수행하기 시작할 수 있다. 이와 같이, 종래의 CNN 시스템(200)은 입력 이미지를 분할하지 않고 전체 고해상도 입력 이미지(202)를 직접 처리할 수 있다. 그러나, 종래의 CNN 시스템(200)은 또한 전술한 NvidiaTM 칩과 같은 고해상도 입력 이미지를 처리할 수 있는 고가의 대규모 칩을 사용할 것을 요구한다.
도 2b는 서브이미지 기반 CNN 시스템(210)의 블록도를 도시한다. 개시된 CNN 시스템(210)에서, 도 1a 및 도 1b와 관련하여 기술된 CNN 모듈(100)과 같은 해상도 제한 소규모 CNN 모듈, 또는, Hi3519 SoC 내부의 하드웨어 CNN 모듈은 서브이미지 기반 CNN 시스템(210)의 빌딩 블록으로 사용될 수 있다. 앞서 언급한 바와 같이, 이러한 소규모 CNN 모듈은 예를 들어, 1280화소에 이르는, 최대 입력 이미지 크기에 대한 제한을 가진다. CNN 시스템(210)은 고해상도 입력 이미지(202)(예를 들어,> 1280 픽셀을 갖는 이미지) 상에 이 소규모 CNN 모듈을 사용할 수 있도록, 고해상도 입력 이미지(202)를 보다 작은 서브이미지(204)들의 세트로 분할하도록 구성되는 입력 모듈(212)을 포함하며, 각각의 서브이미지(204)는 CNN 시스템(210)의 빌딩 블록으로 사용되는 소규모 CNN 모듈에 의해 허용되는 최대 입력 크기보다 작거나 동일한 크기를 가진다. 일부 실시예에서, 입력 모듈(212)은 도 2b에 도시된 바와 같이, 인접한 서브이미지(204) 사이에 적절하게 설계된 오버랩을 포함함으로써 고해상도 입력 이미지(202)를 분할하도록 구성된다. 도시된 갭 및 오버랩을 갖는 2 개의 행 및 2 개의 열의 4 개의 서브이미지(204)로 이루어지는 세트가 개념 이해의 편의를 위해 도 2b에 도시되어 있지만, 실제 파티션을 나타내는 것은 아니다.
도 2b에 도시된 바와 같이, CNN 시스템(210)은 도 1a 및 도 1b에서 설명된 소규모 CNN 모듈(100)의 2 개의 하드웨어 서브모듈(CNN1 및 CNN2) 중 하나 또는 둘 모두를 사용 및/또는 재사용하는 것에 기초한 2-계층 처리 구조를 포함한다. 입력 모듈(212)에 추가하여, CNN 시스템(210)은 제 1 처리 스테이지(220), 병합 모듈(222), 및 제 2 처리 스테이지(224)를 또한 포함한다. 더 구체적으로는, CNN 시스템(210)의 제 1 처리 스테이지(220)는 CNN1 모듈(214)과 같은 적어도 하나의 CNN1 처리 모듈을 포함한다. 일부 실시예에서, CNN1 모듈(214)은 도 1a 및 1b에 설명된 하드웨어 서브모듈 CNN1에 의해 구현된다. 다른 실시예에서, CNN1 모듈(214)은 CNN1 및 CNN2 서브모듈을 모두 포함하는 도 1a 및 1b에 설명된 전체 CNN 모듈(100)에 의해 구현된다. 제 1 처리 스테이지(220) 내에 도시된 CNN1 모듈(214)의 다수의 인스턴스는 각각의 인스턴스에 대해 지시된 바와 같이 상이한 시간 t1, t2, t3,... 및 tn에서 사용되는 동일한 CNN1 모듈(214)을 나타낸다. 결과적으로, 도 2b에 도시된 "t1에서 CNN1(214)", "t2에서 CNN1(214)", "t3에서 CNN1(214)",... 및 "tn에서 CNN1(214)"는 서로 상이한 처리 시간에서의 단일 CNN1 모듈(214)에 대응하며, 동일 번호(214)를 가진 복수의 CNN1 모듈로 해석되어서는 안된다. 도시되지는 않았지만, 제 1 처리 스테이지(220)는 CNN 모듈(214)과 유사한 추가의 CNN1 모듈을 포함할 수 있다. 예를 들어, 제 1 처리 스테이지(220)는 둘 이상의 동일한 CNN1 모듈을 포함할 수 있다.
CNN 시스템(210)의 제 2 처리 스테이지(224)는 적어도 하나의 CNN2 모듈(216)을 포함한다. 일부 실시예에서, CNN2 모듈(216)은 도 1a 및 도 1b에서 설명한 하드웨어 서브모듈 CNN2에 의해 구현된다. 다른 실시예에서, CNN2 모듈(216)은 CNN1 및 CNN2 서브모듈을 모두 포함하는 도 1a 및 도 1b에서 설명한 전체 CNN 모듈(100)에 의해 구현된다. 일부 다른 실시예들에서, 제 2 처리 스테이지(224) 내의 CNN2 모듈(216)은 하드웨어 대신에 소프트웨어에 의해 구현될 수 있다.
특히, 입력 모듈(212)에 의해 생성된 서브이미지(204)의 세트를 처리하기 위해, 단일 CNN1 모듈(214)은 한 번에 하나의 서브이미지씩, 서브이미지 세트(204)를 순차적으로 처리함으로써 여러 번 사용된다. 즉, CNN 시스템(210)의 제 1 처리 스테이지(220) 내의 CNN1 블록(214)의 각각의 인스턴스는 상이한 프로세싱 시간에서 서브이미지 세트(204) 중 하나에서 동일한 CNN1 모듈(214)의 다수의 애플리케이션 중 하나를 나타낸다. 그러나, CNN1 모듈(214)에 의한 각각의 서브이미지(204)의 처리 속도가 매우 빠를 수 있기 때문에, 서브이미지들(204)의 세트를 처리하기 위한 전체 처리 시간 또한 매우 빠를 수 있다. CNN1 모듈(214)의 다수의 애플리케이션들의 출력들은 컨볼루션, ReLU 및 풀링 동작들의 다중 계층 후에 서브이미지들(204)의 세트에 대응하는 특징 맵들의 어레이(206)를 포함한다.
도 2b에 도시된 실시예가 CNN 시스템(210)의 제 1 처리 스테이지(220)에서 단일 하드웨어 CNN1 모듈(214)을 재사용하는 것에 기초하고 있으나, 다른 실시예들은 CNN 시스템(210)의 제 1 처리 스테이지(220)에서 CNN1 모듈(214)과 유사하거나 동일한 추가적인 하드웨어 CNN1 모듈을 이용하여, 서브이미지(204) 세트가 다수의 하드웨어 CNN1 모듈에 의해 병렬로 처리될 수 있다. 주어진 설계에서 사용되는 CNN1 모듈의 실제 개수는 하드웨어 비용 제약과 속도 요구 사이의 절충에 기반하여 결정될 수 있다. 예를 들어, CNN 시스템(210)에 대한 일부 변형은 제 1 처리 스테이지에서 3 내지 5 개의 CNN1 모듈을 포함할 수 있다.
전술한 바와 같이, CNN1 모듈(214)은 도 1a 및 도 1b와 관련하여 기술된 것과 같은 전용 하드웨어 서브모듈 CNN1에 의해, 또는, CNN1 및 CNN2 서브모듈을 모두 포함하는 도 1a 및 도 1b와 관련하여 설명된 전체 CNN 모듈(100)에 의해 구현될 수 있다. 제 1 시나리오에서, CNN 시스템(210) 내의 CNN1 모듈(214)은 CONV, ReLU 및 풀링 계층만을 포함할 수 있다. 제 2 시나리오에서, CNN 시스템(210)에서 CNN1 모듈(214)을 구현하는 것은 FC 계층 및 대응하는 ReLU 계층을 우회하는 것, 즉, CNN 모듈(100) 내의 서브모듈 CNN2를 우회하는 것을 더 포함한다. CNN2 서브모듈을 우회할 때, CNN1 모듈(214)로부터의 출력이 추후 처리를 위해 병합되기 때문에, 출력 위치 맵에서 공간 위치 정보를 CNN1 모듈(214)이 보존할 필요가 있다. Hi3519 SoC 내의 하드웨어 CNN 모듈과 같은 일부 내장형 하드웨어 CNN 모듈의 경우, 내장형 CNN 모듈의 파라미터가 재구성가능하다. 이러한 내장된 하드웨어 CNN 모듈이 사용될 때 서브모듈 CNN2의 우회는, CNN 모듈(100) 내의 FC 계층 각각을 항등 매트릭스(identity matrix)가 되도록 함으로써 실현될 수 있고, FC 계층 각각으로부터의 출력은 2차원 특징 맵을 1차원 벡터로 단순히 재조직화하는 것이 된다. 각 FC 계층 다음의 ReLU 계층은 평소와 같이 적용될 수 있다. 분할 실시예에서, 3 개의 FC-ReLU 계층 CNN2 서브모듈 구성에 대해, 복수의 ReLU 계층의 연결(concetanation)은 단 하나의 ReLU 계층과 동일하기 때문에, 마지막 2 개의 ReLU 계층은 어떠한 데이터도 변경하지 않는다.
다시 도 2b를 참조하면, CNN1 모듈(214)을 서브이미지 세트(204)의 각각에 순차적으로 적용한 후에, 특징 맵 어레이(206)를 포함하는 CNN1 모듈(214)로부터의 출력은 특징 맵(206)의 어레이를 병합하도록 구성된 병합 모듈에 대한 입력이 되어, 전체 입력 이미지(202)의 완전 특징 맵을 형성하게 된다. 병합된 특징 맵은 CNN 시스템(210)의 제 2 처리 스테이지(224)에 대한 입력으로서 사용될 수 있다. 일부 실시예에서, 제 2 처리 스테이지(224)로부터의 출력(228)은 CNN2 모듈(216)의 최종 FC 계층으로부터의 출력이다. 출력(228)은 도 2a의 종래의 CNN 시스템(200)의 출력(226)과 동일하다.
일부 실시예에서, 특성 맵(206)의 어레이는 3 차원(3D) 매트릭스의 세트(즉, 소정의 특징 맵에 대한 2차원과, 특징 맵의 수에 대한 1차원)를 포함한다. 예를 들어, 특징 맵(206)의 어레이는 2×2×48 크기의 9 개의(즉, 3×3 어레이의) 3 차원 매트릭스로 구성될 수 있으며, 여기서 9는 0, 1, 2, lll, 8의 인덱스를 갖는 서브이미지의 개수이고(즉, 3 행×3 열의 서브이미지들), 2x2는 각 서브이미지에 대한 CNN1 모듈(214) 이후의 단일 출력 특성 맵의 크기이고, 48은 각 서브이미지에 대한 특성 맵의 수이다. 일부 실시예에서, 병합 모듈(222)은 서브이미지(204) 세트의 공간 관계를 보존하면서 병합된 3D 특징-맵 매트릭스를 형성하기 위해 대응하는 인덱스에 기초하여 3D 출력 매트릭스 세트를 연결함으로써 특징 맵(206)의 어레이를 병합하도록 구성된다. 상기 예에서, 이 단계는 6×6×48의 3D 매트릭스를 생성한다. 다음으로, 병합된 3D 매트릭스를 1 차원(1D) 벡터로 평탄화할 수 있다. 상기 예에서, 이는 1728의 크기를 갖는 1D 벡터를 생성한다. 마지막으로, 평탄화된 1D 벡터가 제 2 처리 스테이지(224)로 공급된다.
도 2b는 병합 모듈(222)에 의해 생성된 병합된 특성 맵(208)이 추가 프로세싱을 위해 CNN 시스템(210)의 제 2 처리 스테이지(224)에 공급되는 것을 도시한다. 보다 구체적으로는, CNN 시스템(210)의 제 2 처리 스테이지(224)는 전술한 FC 계층 및 ReLU 계층들의 세트를 더 포함하는 적어도 하나의 CNN2 모듈(216)을 포함한다. 전술한 바와 같이, CNN 시스템(210)의 CNN2 모듈(216)은 도 1a 및 도 1b와 관련하여 기술된 전용 하드웨어 서브모듈(CNN2)에 의해 구현될 수 있다. 이들 실시예에서, CNN 시스템(210) 내의 CNN2 모듈(216)은 FC 계층 및 ReLU 계층만을 포함할 수 있다. 일부 실시예에서, CNN2 모듈(216)은 CNN1 및 CNN2 서브모듈 모두를 포함하는 도 1a 및 도 1b에 기술된 전체 하드웨어 CNN 모듈(100)을 취함으로써 구현될 수 있다. 이들 실시예에서, CNN 시스템(210)에서 CNN2 모듈(216)을 구현하는 것은 CONV-ReLU-풀링 계층을 우회하는 것, 즉, CNN 모듈(100) 내의 서브모듈CNN1을 우회하는 것을 더 포함한다. Hi3519와 같은 일부 시스템에서는 CONV-ReLU-풀링 계층을 우회하여 FC 계층 및 ReLU 계층을 직접 사용하는 것이 어려울 수 있다. 이러한 경우, CNN2 모듈(216), 즉 FC 층 및 ReLU 층은 소프트웨어에 의해 구현될 수 있다. CNN 시스템(210)의 계산 복잡성의 대부분이 CONV 층에 있기 때문에, 소프트웨어적으로 FC 및 ReLU 층을 구현하는 것은 일반적으로 시스템의 전반적인 속도에 약간의 영향을 미칠 뿐이다. 또한 Hi3519와 같은 시스템은 이러한 소프트웨어 구현의 속도를 최적화하기 위한 추가 도구를 제공하다.
전술한 바와 같이, 제 2 처리 스테이지(224) 내의 CNN2 모듈(216)은 하드웨어 CNN 모듈 대신에 소프트웨어적으로 구현될 수 있다. FC 계층 및 ReLU 계층의 복잡도는 일반적으로 컨볼루션 계층보다 훨씬 낮기 때문에, CNN 시스템(210)의 계산 복잡도의 대부분은 CNN1 모듈(214)에 의해 구현된 컨볼루션 계층에 있다. 결과적으로, CNN 시스템(210)의 하드웨어 CNN2 모듈(216)에 의해 구현되는 낮은 계산 복잡도 동작은 전술한 하드웨어 CNN2 또는 CNN 모듈 대신에 소프트웨어에 의해 구현될 수 있다. 또한, 이러한 소프트웨어 접근은 하드웨어 CNN 모듈에 기초한 실시예보다 더 많은 유연성을 제공할 수 있다.
개시되는 서브이미지-기반 CNN 시스템(210)이 하나 이상의 CNN1 모듈에 기초한 제 1 스테이지와, CNN2 모듈에 기초한 제 2 스테이지를 포함하는 2-계층 시스템으로 구성되지만, 개시되는 서브이미지 기반 CNN 시스템의 다른 실시예는 2개보다 많은 계층을 포함할 수 있다. 예를 들어, 도 2c는 여기서 기술되는 일부 실시예에 따른, 3-계층 서브이미지 기반 CNN 시스템(230)의 블록도를 도시한다.
도 2c에서 알 수 있듯이, 3-계층 CNN 시스템(230)은 제 1 분할 모듈(232), 제 1 처리 스테이지(234), 제 1 병합 모듈(236), 제 2 분할 모듈(238), 제 2 처리 스테이지(240), 제 2 병합 모듈(242), 및 제 3 처리 스테이지(244)를 포함한다. 더욱이, 제 1 처리 스테이지(234)는 제 1 CNN1 모듈(246)을 포함하고, 제 1 처리 스테이지에 이어지는 제 2 처리 스테이지(240)는 제 2 CNN1 모듈(248)을 포함하며, 제 2 처리 스테이지에 이어지는 제 3 처리 스테이지(244)는 CNN2 모듈(250)을 포함한다.
일 실시예에서, 고해상도 입력 이미지(202)는 제 1 분할 모듈(232)에 의해 한 세트의 서브이미지로 먼저 분할될 수 있고, 그 후, 제 1 CNN1 모듈(246)에 의해 순차적으로 처리된다. 일부 실시예에서, 제 1 처리 스테이지(234)로부터의 출력은 제 1 병합 모듈(236)에 의해 제 1 세트의 특징 맵으로 병합되고, 이는 제 3 처리 스테이지(244) 내 CNN2 모듈(250)에 의해 허용되는 최대 입력 크기보다 큰 크기를 가진다. 따라서, 병합 모듈(236)에 의해 생성된 병합된 특징 맵은 제 2 병합 모듈(238)에 의해 제 2 세트의 서브이미지로 다시 분할되며, 이어서 제 2 CNN1 모듈(248)에 의해 처리된다. 제 2 처리 스테이지(240)로부터의 출력들은 제 2 병합 모듈(242)에 의해, CNN2 모듈(250)의 입력 크기 요건을 충족시키는 제 2 세트의 특징 맵으로 병합되며, 잉는 그 후 추가 처리를 위해 제 3 처리 스테이지(244)의 CNN2 모듈(250)에 공급된다. 3-계층 CNN 시스템(230)이 2개의 CNN1 스테이지 및 하나의 CNN2 스테이지를 갖는 것으로 기술되지만, 3-계층 CNN 시스템의 다른 구현예는 본 개시의 범위로부터 벗어나지 않으면서 3개의 처리 스테이지 각각 내에서 상이한 처리 모듈 구성을 가질 수 있다.
도 2b를 참조하면, 이상적인 경우, 도 2a의 대규모 CNN 시스템(200)에 의해 전체 고해상도 입력 이미지(202)를 처리함으로써 제 1 FC 계층에 앞서 생성되는 특징 맵과, CNN1 모듈(214)에 의해 한 세트의 서브이미지(204)를 처리함으로써 생성되는 병합된 특징 맵(208)은, 서로 동일하거나 실질적으로 동일하다. 현실적으로, 모든 서브이미지(204)들이 독립적으로 처리될 경우, 이러한 서브이미지들의 경계 간에 어떤 컨볼루션 연산도 수행될 수 없다. 이는 서브이미지 경계부의 특징들이 적절히 캡처되지 않는다는 문제를 야기할 수 있다.
상술한 경계 효과는 DCT 기반 이미지 코딩의 구획화 현상(blocking artifact)과 유사하다. 이미지 코딩 분야에서, 구획화 현상은 "중복 변환"(lapped transform)이라 지칭되는 이미지 블록 경계 간에 필터를 적용함으로써 해상될 수 있다. 중복 변환의 개념은 T. D. Tran, et al., “Lapped transform via time-domain pre/post-processing,” IEEE Trans. Signal Processing, vol. 51, No. 6, pp. 1557-1571, Jun. 2003에 상세히 기술되어 있다. 일부 실시예에서, 중복 변환의 개념은 기언급한 경계 효과의 완화를 위해 CNN 시스템(210)에 적용될 수 있다. 이러한 "중복 변환" 기술은 한 세트의 서브이미지의 경계부 간에 추가의 한 세트의 경계 서브이미지들을 생성하는 과정과, 한 세트의 서브이미지 및 한 세트의 경계 서브이미지들 모두에 CNN 시스템(210)의 제 1 처리 스테이지(220)를 적용하는 과정을 포함할 수 있다.
도 3a-3c는 여기서 기술되는 일부 실시예에 따라 입력 이미지를 ks 세트의 서브이미지로 분할하고, 경계 효과를 완화시키기 위해 한 세트의 경계 서브이미지들을 또한 생성하는 일례의 프로세스를 도시한다. 일부 실시예에서, 도 3a-3c에 도시되는 예시적인 분할은 CNN 시스템(210) 내 입력 모듈(212)에 의해 또는 CNN 시스템(230) 내 제 1 및 제 2 분할 모듈(232, 238)에 의해 수행될 수 있다.
특히, 도 3a는 여기서 기술되는 일부 실시예에 따라 인접 서브이미지(302)들 간에 적절히 설계된 갭(308, 310)으로 한 세트 4개의 서브이미지(302)로 입력 이미지(300)의 분할을 도시한다. 일부 실시예에서, 한 세트의 서브이미지(302)는 동일 크기를 가진 이미지들이다. 도 3b는 여기서 기술되는 일부 실시예에 EK라 동일 입력 이미지(300)에 대한 한 세트 5개의 경계 서브이미지(304)를 생성하는 프로세스를 도시한다. 도 3b에서 알 수 있듯이, 각각의 경계 서브이미지(304)는 도 3a에 도시된 적어도 2개의 인접한 서브이미지(302)들의 경계와 오버랩되도록 위치한다. 경계 서브이미지(304) 중 하나가 입력 이미지(300)의 실질적으로 중심에 위치하고, 반면 다른 4개의 경계 서브이미지들은 중앙 경계 서브이미지(304)의 좌, 우, 위, 아래에 위치한다. 서브이미지(302) 및 경계 서브이미지(304)들이 동일 크기를 가질 수 있다. 더욱이, 4개의 파선(310, 312, 314, 316)이 중앙 경계 서브이미지(304)의 4개의 변을 표시 및 연장하기 위해 도 3b에 의도적으로 배치되었다. 파선, 둥근 모서리, 및 상이한 선폭은 이러한 서브이미지들의 오버랩 성질로 인해 단지 이러한 경계 서브이미지들을 분별 및 용이하게 시각화하기 위한 용도로 경계 서브이미지(304)들을 나타내는데 사용된다. 따라서, 도 3b에 도시되는 경계 서브이미지(304)의 둥근 모서리는 서브이미지(304)의 실제 기하특성과는 관계가 없다. 다시 말해서, 각각의 경계 서브이미지(304)는 화소들의 2D-어레이 영역을 유지한다.
도 3c는 여기서 기술되는 일부 실시예에 따라 도 3a로부터 한 세트 4개의 서브이미지(302)와 도 3b로부터 한 세트 5개의 경계 서브이미지(304)를 모두 포함하는 입력 이미지(300)의 서브이미지들의 조합 세트를 도시한다(입력 이미지(300)는 도시되지 않음). 도 3c에서, 한 세트 4개의 서브이미지(302)가 실선 직선 모서리로 도시되고, 한 세트 5개의 경계 서브이미지(304)는 파선의 둥근 모서리로 도시된다. 또한, 한 세트 4개의 서브이미지(302)들에 대해 상이한 선폭들이 사용되며, 한 세트 4개의 경계 서브이미지(304)는 변을 따라 위치하고, 단일 서브이미지(304)는 중앙에 위치한다. 도시되는 특정 실시예에서, 모두 9개의 서브이미지들이 동일한 이미지 크기를 가진다.
도 3c는 경계 서브이미지(304)들 각각이 서브이미지(302)들의 경계 영역 간에 위치하는지를 명확히 도시한다. 한 세트 9개의 서브이미지들이 또한 "0"부터 "8"까지 번호표시된다. 그 다음, 개시되는 CNN 시스템(210)을 이용하여 입력 이미지(300)를 처리할 때, CNN1 모듈(214)은 한 세트의 서브이미지(302) 및 한 세트의 경계 서브이미지(304) 모두에 순차적으로 적용될 수 있다. 따라서, CNN 시스템(210)의 제 1 처리 스테이지(220)로부터의 출력들은 서브이미지(302)와 관련된 특징 맵과, 경계 서브이미지(304)들과 관련된 특징 맵들을 모두 포함한다. 일부 실시예에서, 이러한 특징 맵들 모두가 병합되어, 기언급한 경계 효과로부터 자유로운 전체 입력 이미지(300)를 위한 한 세트의 병합된 특징 맵을 형성하게 된다. CNN 시스템(210)을 이용한 경계 효과 교정으로 입력 이미지를 처리하는 상세한 예가 아래에서 도 4와 연계하여 제공된다.
도 2b를 다시 참조하면, 제 1 처리 스테이지(220)의 CNN 모듈(214)이 컨볼루션 연산자만을 포함할 경우, 서브이미지(204)에 기존 오버랩-앤드-애드 기법을 적용하고 여전이 경계 부작용을 피하는 것이 가능하다. 그러나, CNN1 모듈(214) 내 풀링 연산자(pooling operator)로 인해, 오버랩-앤드-애드 기법의 결과가, 서브이미지 경계들 간에 컨볼루션을 적용하는 기언급한 중복 변환 기술과 통상적으로 동등하지 않다. 아래의 논의에서, 우리는 기존 풀 이미지 기반 CNN 시스템(200)과 서브이미지 기반 CNN 시스템(210) 간의 등가성을 실현하기 위한 조건 및 해법을 도출한다.
등가 컨볼루션 풀링 연산을 위한 조건 및 해법
일부 실시예에서, 기존 풀 이미지 기반 CNN 시스템(200)과 서브이미지 기반 CNN 시스템(210) 간의 컨볼루션 및 맥스-풀링 연산의 등가 결과를 실현하기 위해, 2개의 조건이 충족되어야 한다. 즉, (1) CNN 시스템(210) 내 컨볼루션 연산의 경계 효과가 앞서 기술된 바와 같이 회피되어야 하고, (2) 두 시스템 모두 각각의 맥스-풀링 연산자에 대한 입력 이미지 크기가 짝수어야 한다. 이는 맥스-풀링 연산자에 대한 입력이 이미지 경계를 제외하고 통상적으로 2x2-화소 영역이기 때문이다. 그 결과, 2개의 기법 간의 미스매치를 방지하기 위해, 서브이미지 기반 기법에서 맥스-풀링 연산자에 대한 입력이 서브이미지 경계에서도 2x2-화소 영역임을 보장하는 것이 필요하다.
등가성을 위한 가능한 이미지 크기에 대한 다음의 논의에서, 우리는 3개의 계층의 컨볼루션 및 맥스-풀링 연산자, 3x3 컨볼루션 필터, 및 2x2 맥스-풀링 크기를 포함하는 서브이미지 기반 CNN 시스템(210)의 예시적 구현예에 초점을 맞춘다. 그러나, 이러한 시스템 구성에 기초한 논의는 더 많은 컨볼루션 및 풀링 계층을 가진 시스템으로 용이하게 확장될 수 있다. 이러한 예시적 구현예의 CNN1 모듈 내의 ReLU 계층들은 ReLU 계층이 통상적으로 이미지 크기에 영향을 미치지 않기 때문에 여기서 고려될 필요가 없다.
K가 입력 이미지의 로우 또는 칼럼의 수라고 가정한다. 제 1 컨볼루션 계층 후, 제로 패딩을 갖는 K+2개의 출력 계수가 존재할 것이다. K+2개의 출력 계수 중에서, K-2개의 계수만이 경계 효과에 의해 영향받지 않는다(컨볼루션 필터가 각각의 방향으로 3개의 탭을 갖기 때문임). 이러한 출력 계수들은 제 1 맥스-풀링 연산자에게로 전달될 것이고, 풀링 연산 후 결과는 (K-2)/2 개의 계수를 가진다. 따라서, 경계 효과를 방지하기 위해, 우리는 K-2가 짝수일 필요가 있다. 즉,
K - 2 = 2x1 -> K = 2x1 + 2 (1)
여기서 x1은 양의 정수다.
제 2 계층에서, 컨볼루션 연산 후 크기는 (K-2)/2 - 2일 것이고, 이 역시 짝수여야 한다. 즉,
(K - 2)/2 - 2 = 2x2 -> K = 4x2 + 6 (2)
여기서 x2는 다른 양의 정수다.
제 2 맥스-풀링 연산 후, 처리되는 이미지의 크기는 (K - 2)/4 - 1로 감소한다. 마찬가지로, 제 3 계층에서, 컨볼루션 연산 후 처리된 이미지의 크기는 (K-2)/4 - 3 일 것이고, 이 역시 짝수여야 한다. 즉,
(K - 2)/4 - 3 = 2x3 -> K = 8x3 + 14 (3)
여기서 x3 역시 정수다.
수식 (3)에 의해 주어진 K의 가능한 해가 수식 (2)의 해의 서브세트이고, 이 역시 수식 (1)에 대해 주어진 K의 해의 서브세트이다. 그 결과, 수식 (3)의 해가 수식 (1) 내지 수식 (3)의 모두 3개의 제약사항을 충족시킬 수 있다. CNN1 모듈(214) 내에 3개보다 많은 계층이 존재할 경우, 이러한 해는 최종 계층으로부터의 제약사항에 의해 또한 주어지며, 이는 또한 모든 이전 계층들의 가능한 해들의 서브세트이다. 따라서, 가능한 해들이 여전히 존재한다.
가능한 이미지 크기가 8의 배수만큼 다르다는 것을 수식 (3)으로부터 알 수 있다. 이는 이미지 크기를 8의 인수로 다운샘플링하는 풀링 연산의 3개의 계층의 결과다. 수식 (3)에 의해 주어지는 첫번째 몇가지 가능한 해는 K = 22, 30, 38, 46 을 포함할 수 있다. Hi3519 칩셋을 한 예로 이용할 경우, Hi3519 내 임베디드 CNN 모듈을 위한 입력 화소의 최대 개수가 1280이기 때문에, 따라서, 가장 가까운 서브이미지 치수는 38x30 이다(즉, 1140 화소를 가짐). 이러한 선택을 위해, 제 1 컨볼루션 연산자 다음의 크기는 36x28이다. 제 1 맥스-풀링 연산자 이후, 크기는 18x14가 된다. 제 2 컨볼루션 및 맥스-풀링 연산자 이후, 크기는 각각 16x12 및 8x6 이 된다. 마지막으로, 제 3 컨볼루션 연산자 이후 크기는 6x4로 감소하고, 제 3 맥스-풀링 연산자 이후 최종 출력은 3x2다.
다른 한편, 전체 입력 이미지의 크기가 수식 (3)을 또한 충족하여야 한다. 이는 입력 이미지를 단순히 일부 나란한 서브이미지들로 단순히 나눔으로써, 각각의 서브이미지 크기가 수식 (3)을 충족하더라도, 기존 CNN 시스템(200) 및 서브이미지 기반 CNN 시스템 기술(210)의 전역 컨볼루션 및 풀링 기법 간의 등가성을 보장할 수 없다는 것을 의미한다. 예를 들어, 76x60 크기의 이미지는 전역 CNN 기법과 서브이미지 기반 CNN 기술 간에 동일한 결과를 실현할 수 없는데, 이는 입력 이미지가 38x30 화소의 4개의 서브이미지로 나누어질 수 있음에도 불구하고, 숫자 76과 60이 수식 (3)을 충족시키지 못하기 때문이다.
일부 실시예에서, 등가성을 위해 가능한 서브이미지 크기 및 전체 입력 이미지 크기를 모두 실현하기 위해, 갭으로 사용되는 일부 엑스트라 화소들이 서브이미지 기반 기술 내 인접 서브이미지들 사이에 포함되어야 한다. 위 예에서, 가장 가까운 가능한 해법은 78x82다. 즉, 수평방향으로 그리고 수직방향으로, 2개의 인접 서브이미지들 사이에 갭으로 사용되는 엑스트라 화소가 2개 존재한다. 그러나, 입력 이미지 분할의 다른 실시예는 전체 이미지 크기가 수식 (3)을 충족시키는 한, 2보다 큰 갭을 이용할 수 있다. 인접 서브이미지들 사이의 이러한 엑스트라 화소들은, CNN 시스템(200)의 전역 컨볼루션 기법과 동일한 결과를 실현하기 위해, 인접 서브이미지들의 경계에 걸치는 소정의 특별한 서브이미지들에 의해 필터링될 수 있다. 상술한 바와 같이, 경계 서브이미지를 이용하는 이러한 기술은 중복 변환 내 프리/포스트 필터와 유사하다. 이러한 경계 서브이미지의 컨볼루션 및 풀링 결과가 다른 서브이미지의 컨볼루션 및 풀링 출력과 병합될 수 있다.
많은 하드웨어 CNN 모듈의 다른 공통적인 제약사항은 FC 계층이 이용될 때 네트워크가 특정 응용예용으로 교육되면, 통상적으로 고정된 입력 이미지 크기만을 지원할 것이다. 그 결과, 인접 서브이미지들 사이에 걸친 것들을 포함한 모든 서브이미지(가령, 도 3의 서브이미지(304))들이 동일한 크기, 예를 들어, 38x30을 가져야만 한다. 이러한 추가적인 제약사항으로, 상이한 서브이미지로부터의 출력 병합을 단순화시키도록(가령, 병합된 결과에 갭 또는 오버랩이 전혀 없음) 인접 서브이미지들 사이의 적절한 갭을 선택할 필요가 있다.
각각의 38x30 서브이미지의 출력이 3개의 계층의 컨볼루션 및 풀링 연산자 이후 3x2 이기 때문에, 2개의 오버랩 서브이미지(가령, 도 3의 분할 맵의 좌상 코너의 서브이미지(302(0))과 중앙 상측의 경계 서브이미지(304(4)))들의 출력이 수직으로 3칸 그리고 수평으로 2칸 이동하도록 갭을 선택할 필요가 있다. 이러한 방식으로, 도 3의 분할 맵의 서브이미지(302(0))와 경계 서브이미지(304(4))와 같은, 이러한 오버랩 서브이미지들의 출력이 이들 사이에 오버랩 또는 갭 없이 인접한 특징 맵이 된다. 그렇지 않을 경우, 출력에 갭이 존재할 것이고, 따라서 등가성을 보장할 수 없으며, 또는 중복된 출력이 존재하여, 컴퓨팅 리소스에 낭비를 일으키게 된다.
각각의 풀링 계층이 서브이미지 크기를 절반으로 감소시키기 때문에, 이러한 풀링 계층 이후의 각각의 출력은 8개의 입력 화소에 대응한다. 그 결과, 출력을 각각 2 및 3만큼 이동시키기 위해, 우리는 각각 16 및 24 화소만큼 서브이미지를 이동시킬 필요가 있다. 따라서, 출력에서 갭 또는 중복을 피하기 위해, 78x62의 기언급한 이미지 크기가 86x62로 조정될 수 있고, 여기서 86 = 38 + 24 x 2 이고, 62 = 30 + 16 x 2 다. 다시 말해서, 수평 서브이미지들 사이의 갭은 2 화소일 수 있고, 수직 서브이미지들 사이의 갭은 10 화소일 수 있다. 이러한 해상도는 얼굴 인식과 같은 과제형 작업에 합리적인 정확도를 유도할 수 있다.
도 4는 여기서 기술되는 일부 실시예에 따라 논-오버랩 서브이미지와 경계 서브이미지를 모두 포함하는 86x62 입력 이미지(400)의 예시적 입력 이미지 분할 기법을 도시한다. 도 4에서 알 수 있듯이, 입력 이미지(400)는, 도 3에 도시된 서브이미지 구성과 유사하게 4개의 논-오버랩 서브이미지와 5개의 경계 서브이미지를 포함한, 한 세트 9개의 38x30 서브이미지로 분할된다. 4개의 논-오버랩 서브이미지가 실선으로 도시되고, 5개의 경계 서브이미지가 파선으로 도시된다. 작은 인위적 오프셋이 5개의 경계 서브이미지를 약간 분리시키는데 사용되어, 이들을 서로로부터 그리고 4개의 논-오버랩 서브이미지로부터 더욱 쉽게 구별할 수 있게 한다. 그러나, 이러한 인위적 오프셋은 이러한 오버랩 서브이미지들을 시각화하는 용도로만 사용되며, 이러한 서브이미지들 사이의 실제 오프셋으로 간주되어서는 안된다. 실제로, 이러한 9개의 서브이미지들의 로우 좌표는 각각 1, 25, 49에서 시작되고, 9개의 서브이미지의 칼럼 좌표는 1, 17, 33에서 각각 시작된다. 예를 들어, 중앙의 경계 서브이미지의 4개의 코너 화소는 각각 (25, 17), (25, 46), (62, 17), (62, 46)의 (로우, 칼럼) 좌표를 가진다.
86x62 입력 이미지(400)의 경우에, 개시되는 CNN 시스템(210)은 단일 CNN1 모듈(214)을 9회 재사용할 수 있고, 매번 38x40의 입력 서브이미지 크기를 처리한다. 도 4에서 알 수 있듯이, CNN1 모듈(214)의 출력은, 풀 입력 이미지(400)에 대응하는 9x6-화소 병합 특징 맵(402)으로 병합될 수 있도록 적절히 설계된 시프트를 갖는 3x2-화소 특징 맵의 2D 어레이(즉, 3x3)다(즉, 병합된 특징 맵(402) 내 인접한 3x2-화소 특징 맵의 임의의 주어진 쌍 사이에 갭 또는 오버랩이 존재하지 않음). Hi3519 칩셋의 예에서, 각각의 서브이미지 처리에는 약 1ms가 걸리고, 출력 특징 맵의 최대 개수는 50(50개의 필터에 대응)이다. 따라서, Hi3519 칩셋의 경우에, 각각의 서브이미지의 출력 크기는 3x2x50이고, 총 출력 크기는 9x6x50 이다. FC 게층 및 ReLU 계층의 소프트웨어 구현에는 3ms 미만이 걸린다. 결과적으로, 86x62 입력 이미지에 대한 얼굴 인식 응용예를 위한 총 구동 시간은 Hi3519 칩셋 내 내장 하드웨어 CNN 모듈을 이용할 때 약 12ms만 걸린다.
앞서 논의한 바와 같이, 한 세트의 오버랩 서브이미지에 하나 이상의 소규모 CNN1 모듈을 적용하도록 구성되어 출력을 병합하는, 제안된 서브이미지 기반 CNN 시스템(210)은, 전체 입력 이미지에 동일한 한 세트의 필터를 적용하는 기존 풀-이미지 기반 CNN 시스템(200)과 정확히 또는 실질적으로 동일한 결과를 생성할 수 있다. 결과적으로, 일부 실시예에서, 제안된 서브이미지-기반 CNN 시스템은 기존 풀 이미지 기반 CNN 시스템(200)을 훈련시킴으로써 설계될 수 있고, 훈련된 한 세트의 필터, 즉, CNN 시스템(200)의 네트워크 웨이트를, 제안된 CNN1 및 CNN2 모듈 내 대응하는 한 세트의 필터에 복제할 수 있다. 기존 풀 이미지 기반 CNN 시스템(200)의 훈련 중, 서브이미지 기반 구현예의 시뮬레이션없이, 풀 이미지 크기가 수식 (3)을 충족시킴을 보장하기만 하면 된다. 이러한 실시예에서, 제안된 서브이미지 기반 CNN의 설계 복잡도는 증가하지 않는다.
본 특허 개시에서, 소규모 하드웨어 CNN 모듈의 재사용에 기초한 서브이미지 기반 CNN 구조 및 시스템이 기술된다. 개시되는 CNN 구조 및 시스템은 일부 임베디드 시스템 및 모바일 장치와 같은 리소스-제한 시스템에 적합하다. 일부 실시예에서, 원본 입력 이미지는 동일 크기의 한 세트의 서브이미지로 분할되고, 이는 한 세트의 서브이미지들 간에 적절히 설계된 갭 및/또는 오버랩을 포함한다. 이러한 서브이미지들은 컨볼루션-ReLU-풀링 연산을 위해 순차적으로 해상도-제한 소규모 하드웨어 CNN 모듈에 공급될 수 있다. 한 세트의 서브이미지로부터의 출력들은 그 후 병합되어 병합된 특징 맵을 형성할 수 있고, 병합된 특징 맵은 입력 이미지 분할없이 전체 입력 이미지에 풀 이미지 기반 대규모 CNN 시스템을 적용함으로써 생성되는 특징 맵과 정확히 또는 실질적으로 동일할 수 있다.
병합된 특징 맵은 그 후 개시되는 CNN 구조 및 시스템의 다음 단계에 의해 처리될 수 있고, 이는 소규모 하드웨어 CNN 모듈에 의해 하드웨어적으로 또는 전적으로 소프트웨어적으로 구현될 수 있다. 개시되는 CNN 구조 및 시스템은 따라서 해상도 제한 소규모 CNN 모듈의 이용에 기초하여 리소스 제한 임베디드 시스템에 대한 고복잡도 CNN 작업을 수행할 수 있다.
도 5는 여기서 기술되는 일부 실시예에 따라 개시된 서브이미지 기반 CNN 시스템을 이용하여 이미지 처리를 수행하기 위한 프로세스를 나타내는 순서도를 제시한다. 이 프로세스는 고해상도 이미지가 CNN 시스템(210)과 같은 개시되는 서브이미지 기반 CNN 시스템의 입력에서 수신될 때 시작될 수 있다(단계(502)). 일부 실시예에서, 고해상도 입력 이미지는 감시 카메라, 기계 비전 카메라, 자가 운전 차량 상의 카메라 또는 이동 전화 카메라와 같은 고해상도 카메라에 의해 캡처된다. 그 다음, 고해상도 입력 이미지가 CNN 시스템의 입력 모듈에서 보다 작은 이미지 크기의 한 세트의 서브이미지로 분할된다(단계(504)). 일부 실시예에서, 단계(504)로부터의 한 세트의 서브이미지들은 논-오버랩 서브이미지들의 2차원 어레이와, 논-오버랩 서브이미지 세트의 경계부 간에 위치하는 한 세트의 경계 서브이미지를 모두 포함한다.
그 다음, 한 세트의 서브이미지들이 CNN 시스템의 제 1 처리 스테이지 내의 제 1 하드웨어 CNN 모듈에 의해 순차적으로 처리되어 특징 맵의 어레이를 생성할 수 있다(단계(506)). 일부 실시예에서, 제 1 하드웨어 CNN 모듈은 저해상도 입력 이미지를 처리하도록 구성된, 그리고 최대 입력 이미지 크기를 갖는, 소규모 저비용 하드웨어 CNN 모듈이다. 이와 같이, 고해상도 입력 이미지의 이미지 크기는 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크다. 일부 실시예에서, 제 1 하드웨어 CNN 모듈은 직렬로 연결되는 한 세트의 컨볼루션(CONV) 계층, 한 세트의 ReLU 계층, 및 한 세트의 풀링 계층을 포함할 수 있고, 제 1 하드웨어 CNN 모듈을 이용하여 수신되는 서브이미지 각각을 처리하는 과정은, 수신되는 서브이미지에 대해 한 세트의 CONV 계층 내 일 CONV 계층과 한 세트의 풀링 계층 내 일 풀링 계층을 교대로 적용하는 과정을 포함한다. 단계(506)에 대한 대안으로서, 한 세트의 서브이미지가 CNN 시스템의 제 1 처리 스테이지 내에서 2개 이상의 동일한 하드웨어 CNN 모듈에 의해 처리되어, 특징 맵의 동일 어레이를 생성할 수 있다. 특히, 한 세트의 서브이미지는 서브이미지의 2개 이상의 서브세트로 나누어질 수 있고, 서브이미지의 2개 이상의 서브세트가 2개 이상의 하드웨어 CNN 모듈 중 하나에 의해 순차적으로 처리될 수 있고, 반면 서브이미지들의 2개 이상의 서브세트가 2개 이상의 하드웨어 CNN 모듈에 의해 병렬로 처리될 수 있다.
도 5를 다시 참조하면, 제 1 하드웨어 CNN 모듈에 의해 출력되는 특징 맵의 어레이는 CNN 시스템의 병합 모듈에 의해 한 세트의 병합된 특징 맵으로 병합된다(단계(508)). 특히, 병합된 특징 맵은 전체 고해상도 입력 이미지에 대한 풀 특징 맵을 나타낸다. 일부 실시예에서, 한 세트의 병합된 특징 맵은, 고해상도 입력 이미지의 분할없이, 전체적으로 고해상도 입력 이미지를 처리하는 대규모 CNN 시스템의 컨볼루션-ReLU-풀링 계층에 의해 생성되는 한 세트의 특징 맵과 실질적으로 동일하다. 그 다음, 한 세트의 병합된 특징 맵은 고해상도 입력 이미지에 대한 적어도 하나의 예측치를 생성하기 위해 CNN 시스템의 제 2 처리 스테이지 내의 제 2 CNN 모듈에 의해 처리된다(단계(510)). 일부 실시예에서, 한 세트의 병합된 특징 맵을 처리하는 과정은, 한 세트의 병합된 특징 맵에 대한 한 세트의 FC 계층 내 일 FC 계층과, 한 세트의 ReLU 계층 내 ReLU 계층을 교대로 적용하는 단계를 포함한다.
도 6은 본 명세서에 설명된 일부 실시예에 따라 캡처된 이미지에 대한 심화 학습(DL) 이미지 처리의 수행에 사용되는 개시된 서브이미지 기반 CNN 시스템 내부의 예시적인 임베디드 시스템(600)을 도시한다. 임베디드 시스템(600)은 감시 카메라 시스템, 머신 비젼 시스템, 무인 항공기, 로봇 또는 자가 운전 차량과 통합되거나 그러한 형태로 구현될 수 있다. 도 6에서 알 수 있는 바와 같이, 임베디드 시스템(600)은 버스(602), 프로세서(604), 메모리(606), 저장 장치(608), 카메라(610), CNN 서브 시스템(612), 출력 장치 인터페이스(614) 및 네트워크 인터페이스(616)를 포함할 수 있다.
버스(602)는 임베디드 시스템(600)의 다양한 구성요소들을 통신가능하게 연결하는 모든 시스템, 주변 장치, 및 칩셋 버스를 집합적으로 나타낸다. 예를 들어, 버스(602)는 프로세서(604)를 메모리(606), 저장 장치(608), 카메라(610), CNN 서브 시스템(612), 출력 장치 인터페이스(614), 및 네트워크 인터페이스(616)와 통신가능하게 연결한다.
메모리(606)로부터, 프로세서(604)는 임베디드 시스템(600)의 다양한 구성요소를 제어하기 위해 실행할 명령어 및 처리할 데이터를 불러들인다. 프로세서(604)는 마이크로 프로세서, 메인프레임 컴퓨터, 디지털 신호 프로세서, 개인용 전자 수첩, 장치 제어기 및 기기 내의 연산 엔진, 및 현재 공지되거나 추후 개발되는 임의의 다른 프로세서를 포함한, 그러나 이에 제한되지 않는, 임의의 유형의 프로세서를 포함할 수 있다. 또한, 프로세서(604)는 하나 이상의 코어를 포함할 수 있다. 프로세서(604) 자체가 프로세서(604)에 의한 실행을 위한 코드 및 데이터를 저장하는 캐시를 포함할 수 있다.
메모리(606)는 프로세서(604)에 의한 실행을 위한 코드 및 데이터를 저장할 수 있는 임의의 유형의 메모리를 포함할 수 있다. 이는 DRAM(dynamic random access memory), SRAM(static random access memory), 플래시 메모리, 판독 전용 메모리(ROM) 및 현재 알려진 또는 나중에 개발된 다른 유형의 메모리를 포함하지만 이에 제한되지 않는다.
저장 장치(608)는 임베디드 시스템(600)과 통합될 수 있는 임의의 유형의 비휘발성 저장 장치를 포함할 수 있다. 이는 자기, 광학 및 광-자기 저장 장치뿐만 아니라 플래시 메모리 및/또는 배터리-백업 메모리에 기반한 저장 장치를 포함하지만, 이에 제한되지 않는다.
버스(602)는 또한 카메라(610)에 연결된다. 카메라(610)는 정지 이미지 및/또는 비디오 이미지를 소정의 해상도로 캡처하여 캡처된 이미지 데이터를 버스(602)를 통해 임베디드 시스템(600) 내 다양한 구성요소에, 가령, 버퍼링을 위해 메모리(606)에, 그리고, DL 이미지 처리를 위해 CNN 서브시스템(612)에, 연결하도록 구성된다. 카메라(610)는 디지털 카메라일 수 있다. 일부 실시예에서, 카메라(610)는 광각 렌즈가 장착된 디지털 카메라이다. 카메라(610)에 의해 캡쳐된 이미지는 1280x720p, 1920x1080p 또는 다른 고해상도와 같은 고해상도를 포함하는 상이한 해상도를 가질 수 있다.
CNN 서브 시스템(612)은 버스(602)를 통해 캡처된 고해상도 이미지와 같은 캡처된 이미지를 수신하고, 수신된 이미지에 대해 전술한 DL 이미지 처리를 수행하고, 캡처된 이미지에 대한 결과를 생성하도록 구성된다. 특히, CNN 서브 시스템(612)은 본 개시의 개시된 서브이미지-기반 시스템의 다양한 실시예들 중 하나에 의해 구현될 수 있다.
또한 버스(602)에 결합된 출력 장치 인터페이스(614)는 예를 들어 CNN 서브 시스템(612)에 의해 생성된 결과의 디스플레이를 가능하게한다. 출력 장치 인터페이스(614)와 함께 사용되는 출력 장치는 예를 들어, 음극선관 디스플레이(CRT), 발광 다이오드 디스플레이(LED), 액정 디스플레이(LCD), 유기 발광 다이오드 디스플레이(OLED), 플라즈마 디스플레이 또는 전자 종이와 같은 디스플레이 장치 및 프린터를 포함할 수 있다.
마지막으로, 도 6에 도시된 바와 같이, 버스(602)는 또한 네트워크 인터페이스(616)를 통해 네트워크(도시되지 않음)에 임베디드 시스템(600)을 연결한다. 이러한 방식으로, 임베디드 시스템(600)은 LAN(local area network), WAN(wide area network), 또는 인트라넷, 또는 인터넷과 같은 네트워크의 네트워크와 같은, 네트워크의 일부분일 수 있다. 임베디드 시스템(600)의 임의의 구성요소들이 본 개시와 연계하여 사용될 수 있다.
여기에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로 및 알고리즘 단계는 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로서 구현될 수 있다. 이러한 하드웨어 및 소프트웨어의 상호 교환 가능성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트, 블록, 모듈, 회로 및 단계가 일반적으로 기능의 관점에서 설명되었다. 그러한 기능성이 하드웨어 또는 소프트웨어로 구현되는지 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약에 의존한다. 숙련된 기술자는 각 특정 애플리케이션에 대해 다양한 방식으로 설명된 기능을 구현할 수 있지만, 이러한 구현 결정은 본 개시의 범위를 벗어나는 것으로 해석되어서는 안된다.
본 명세서에 개시된 양상과 관련하여 설명된 다양한 예시적인 로직, 논리 블록, 모듈 및 회로를 구현하는데 사용된 하드웨어는 범용 프로세서, 디지털 신호 프로세서(DSP), 애플리케이션 특유의 애플리케이션(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 또는 다른 프로그래머블 로직 장치, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성요소, 또는 여기에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합을 포함할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로 컨트롤러 또는 상태 머신일 수 있다. 프로세서는 또한 수신기 장치들의 조합, 예를 들어, DSP와 마이크로 프로세서의 조합, 복수의 마이크로 프로세서, DSP 코어와 관련된 하나 이상의 마이크로 프로세서, 또는 임의의 다른 그러한 구성으로 구현될 수 있다. 대안으로, 소정의 단계 또는 방법은 주어진 기능에 특정한 회로에 의해 수행될 수 있다.
하나 이상의 예시적인 양상들에서, 기술된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능은 하나 이상의 명령 또는 코드로서 일시적이지 않은 컴퓨터 판독 가능 저장 매체 또는 비 일시적 프로세서 판독 가능 저장 매체 상에 저장될 수 있다. 본 명세서에 개시된 방법 또는 알고리즘의 단계들은 일시적이지 않은 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체 상에 상주할 수 있는 프로세서 실행 가능 명령어로 구현될 수 있다. 비 일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체는 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 저장 매체 일 수 있다. 예를 들어 비 제한적으로, 이러한 일시적이지 않은 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM 또는 다른 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치를 포함할 수 있으며, 또는 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 여기에 사용된 디스크 및 디스크에는 CD(Compact Disc), 레이저 디스크, 광학 디스크, DVD(Digital Versatile Disc), 플로피 디스크 및 블루 레이 디스크가 포함되며 디스크(disks)는 일반적으로 데이터를 자기적으로 재생하며 디스크(discs)는 레이저로 광학적으로 데이터를 재생한다. 상기의 조합들이 또한 컴퓨터 판독 가능 및 프로세서 판독 가능 매체의 범위에 포함된다. 또한, 방법 또는 알고리즘의 동작은 비 일시적인 프로세서 판독 가능 저장 매체 및/또는 컴퓨터 판독 가능 저장 매체상의 코드 및/또는 명령의 하나 또는 임의의 조합 또는 세트로서 존재할 수 있으며, 이들은 컴퓨터 프로그램 제품에 포함될 수 있다.
이 특허 문헌은 많은 세부 사항을 포함하지만, 이들은 개시된 기술 또는 청구될 수 있는 범위의 제한으로서 해석되어서는 안되고, 오히려 특정 기술의 특정 실시예에 특정될 수 있는 특징의 설명으로 해석되어서는 안된다. 별도의 실시예와 관련하여이 특허 문헌에 기술된 특정 특징은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥에서 설명된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 서브 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하고 심지어 초기에는 그러한 것으로서 주장되는 경우조차도 상기에서 설명될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제거될 수 있고, 청구된 조합은 서브 조합 또는 변형으로 유도될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이는 그러한 동작들이 도시된 특정 순서로 또는 순차적 순서로 수행되거나, 또는 모든 예시된 동작들이 수행되어, 바람직한 동작을 달성할 것을 요구하는 것으로 이해되어서는 안된다. 또한, 이 특허 문헌에 개시된 실시예에서 다양한 시스템 구성 요소의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안된다.
단지 소수의 구현 및 예만이 설명되고, 다른 구현, 개선 및 변형이 이 특허 문헌에 기술되고 도시된 것에 기초하여 이루어질 수 있다.

Claims (24)

  1. 컨볼루션 뉴트럴 네트워크(CNN) 시스템에 있어서,
    제 1 이미지 크기의 입력 이미지를 수신하기 위한 수신 모듈 - 상기 수신 모듈은 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하도록 구성됨 - 과,
    최대 입력 이미지 크기로 구성된 제 1 하드웨어 CNN 모듈을 포함하는 제 1 처리 스테이지 - 상기 제 1 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 각각을 수신하여, 수신된 서브이미지 각각을 처리하여 한 세트의 출력을 생성하도록 또한 구성됨 - 와,
    상기 제 1 처리 스테이지로부터 출력 세트를 순차적으로 수신하여 출력 세트를 한 세트의 병합된 특징 맵으로 병합하도록 구성되는 병합 모듈과,
    상기 한 세트의 병합된 특징 맵을 수신하고 상기 한 세트의 병합된 특징 맵을 처리하여 상기 CNN 시스템의 출력을 생성하도록 구성되는 제 2 처리 스테이지 - 상기 출력은 상기 입력 이미지에 대한 적어도 하나의 예측치를 포함함 - 를 포함하는
    CNN 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크고,
    상기 제 2 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 작거나 동일한, CNN 시스템.
  3. 제 1 항에 있어서,
    상기 한 세트의 서브이미지는 제 1 서브세트의 서브이미지 및 제 2 서브세트의 서브이미지를 포함하고,
    상기 수신 모듈은 입력 이미지를 분할함에 있어서,
    - 입력 이미지를 갭에 의해 분리되는 로우 및 칼럼의 상기 제 1 서브세트의 서브이미지로 분할하고, 상기 제 1 서브세트의 서브이미지의 일 로우 내 한 쌍의 인접한 서브이미지들이 제 1 갭에 의해 분리되고, 상기 제 1 서브세트의 서브이미지 중 일 칼럼 내 한 쌍의 인접한 서브이미지들이 제 2 갭에 의해 분리되며,
    - 상기 제 2 서브세트의 서브이미지 각각이, 한 쌍의 인접한 서브이미지들 사이의 제 1 갭 또는 제 2 갭에 걸쳐, 상기 제 1 서브세트의 서브이미지 내 적어도 한 쌍의 인접한 서브이미지들과 부분적으로 오버랩되도록 위치하도록, 상기 제 2 서브세트의 서브이미지들을 생성하는
    CNN 시스템.
  4. 제 1 항에 있어서,
    상기 제 1 하드웨어 CNN 모듈은 직렬로 연결되는 한 세트의 컨볼루션(CONV) 계층, 한 세트의 ReLU 계층, 및 한 세트의 풀링 계층을 포함하고, 제 1 하드웨어 CNN 모듈을 이용하여 수신되는 서브이미지 각각을 처리하는 과정은, 수신되는 서브이미지에 대하여 상기 한 세트의 CONV 계층 내 일 CONV 계층, 상기 한 세트의 ReLU 계층 내 일 ReLU 계층, 및 상기 한 세트의 풀링 계층 내 일 풀링 계층을 교대로 적용하는 과정을 포함하는, CNN 시스템.
  5. 제 1 항에 있어서,
    상기 제 1 하드웨어 CNN 모듈은 한 세트의 필터를 더 포함하고, 처리되는 서브이미지 각각과 관련된 상기 한 세트의 출력은 상기 한 세트의 필터에 대응하는
    CNN 시스템.
  6. 제 1 항에 있어서,
    상기 한 세트의 병합된 특징 맵은 입력 이미지의 분할없이 입력 이미지를 전체로서 처리하는 대규모 CNN 시스템의 컨볼루션-ReLU-풀링 계층에 의해 생성되는 한 세트의 특징 맵과 실질적으로 동일한, CNN 시스템.
  7. 제 1 항에 있어서,
    상기 제 2 처리 스테이지는 직렬로 연결된 한 세트의 완전-연결(FC) 계층 및 한 세트의 ReLU 계층을 포함하고, 한 세트의 병합된 특징 맵을 처리하는 과정은, 상기 한 세트의 병합된 특징 맵에 대하여 상기 한 세트의 FC 계층 내 일 FC 계층과 상기 한 세트의 ReLU 계층 내 일 ReLU 계층을 교대로 적용하는 과정을 포함하는, CNN 시스템.
  8. 제 1 항에 있어서,
    상기 제 2 처리 스테이지가 소프트웨어적으로 구현되는, CNN 시스템.
  9. 제 1 항에 있어서,
    상기 제 2 처리 스테이지가 제 2 하드웨어 CNN 모듈로 하드웨어적으로 구현되는, CNN 시스템.
  10. 제 9 항에 있어서,
    상기 제 1 하드웨어 CNN 모듈 및 제 2 하드웨어 CNN 모듈 모두가 한 세트의 컨볼루션 계층, 제 1 세트의 ReLU 계층, 한 세트의 풀링 계층, 한 세트의 완전-연결(FC) 계층, 및 제 2 세트의 ReLU 계층을 포함하는 임베디드 시스템의 소규모 하드웨어 CNN 모듈에 기초하여 구현되고,
    상기 제 1 하드웨어 CNN 모듈은 상기 소규모 하드웨어 CNN 모듈 내 상기 한 세트의 FC 계층 및 제 2 세트의 ReLU 계층을 우회함으로써 구현되고,
    상기 제 2 하드웨어 CNN 모듈은 상기 소규모 하드웨어 CNN 모듈 내 상기 한 세트의 컨볼루션 계층, 제 1 세트의 ReLU 계층, 및 한 세트의 풀링 계층을 우회함으로써 구현되는, CNN 시스템.
  11. 제 1 항에 있어서,
    상기 제 1 하드웨어 CNN 모듈은 수기 숫자 인식 및 번호판 인식과 같은 응용예를 위한 저해상도 입력 이미지를 처리하도록 구성된 소규모 저비용 하드웨어 CNN 모듈인, CNN 시스템.
  12. 컨볼루션 뉴트럴 네트워크(CNN)를 이용한 이미지 처리 수행 방법에 있어서,
    제 1 이미지 크기의 입력 이미지를 수신하는 단계와,
    상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하는 단계와,
    최대 입력 이미지 크기로 구성되는 제 1 하드웨어 CNN 모듈을 이용하여 상기 한 세트의 서브이미지를 처리하는 단계 - 상기 처리는 상기 한 세트의 서브이미지 각각을 순차적으로 수신하는 과정과, 한 세트의 출력을 생성하도록 수신된 서브이미지 각각을 순차적으로 처리하는 과정을 포함함 - 와,
    출력 세트를 한 세트의 병합된 특징 맵으로 병합하는 단계와,
    상기 입력 이미지에 대한 적어도 하나의 예측치를 생성하도록 상기 한 세트의 병합된 특징 맵을 처리하는 단계를 포함하는, 이미지 처리 수행 방법.
  13. 제 12 항에 있어서,
    상기 제 1 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크고,
    상기 제 2 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 작거나 동일한, 이미지 처리 수행 방법.
  14. 제 12 항에 있어서,
    상기 한 세트의 서브이미지는 제 1 서브세트의 서브이미지와 제 2 서브세트의 서브이미지를 포함하고, 상기 입력 이미지를 분할하는 단계는,
    갭에 의해 분리되는 로우 및 칼럼으로 이루어지는 제 1 서브세트의 서브이미지로 상기 입력 이미지를 분할하는 과정 - 상기 제 1 서브세트의 서브이미지의 일 로우 내 한 쌍의 인접한 서브이미지들은 제 1 갭에 의해 분리되고, 상기 제 1 서브세트의 서브이미지의 일 칼럼 내 한 쌍의 인접한 서브이미지들은 제 2 갭에 의해 분리됨 - 과,
    제 2 서브세트의 서브이미지들 각각이 한 쌍의 인접한 서브이미지들 사이에서 제 2 갭 또는 제 1 갭에 걸쳐, 상기 제 1 서브세트의 서브이미지 내 적어도 한 쌍의 인접한 서브이미지들과 부분적으로 오버랩되도록 위치하도록 제 2 서브세트의 서브이미지를 생성하는 과정을 포함하는,
    이미지 처리 수행 방법.
  15. 제 12 항에 있어서,
    수신되는 서브이미지 각각을 순차적으로 처리하는 단계는, 수신되는 서브이미지에 대해 한 세트의 컨볼루션 계층 내 일 컨볼루션 계층, 한 세트의 ReLU 계층 내 일 ReLU 계층, 및 한 세트의 풀링 계층 내 일 풀링 계층을 교대로 적용하는 단계를 포함하는, 이미지 처리 수행 방법.
  16. 제 12 항에 있어서,
    수신되는 서브이미지 각각을 순차적으로 처리하는 단계는, 수신되는 서브이미지에 한 세트의 필터를 적용하는 단계를 더 포함하고, 처리되는 서브이미지 각각과 관련된 출력 세트는 필터 세트에 대응하는, 이미지 처리 수행 방법.
  17. 제 12 항에 있어서,
    상기 한 세트의 병합된 특징 맵은, 입력 이미지 분할없이, 입력 이미지를 전체로서 처리하는 대규모 CNN 시스템의 컨볼루션-ReLU-풀링 계층에 의해 생성된 한 세트의 특징 맵과 실질적으로 동일한, 이미지 처리 수행 방법.
  18. 제 12 항에 있어서,
    상기 한 세트의 병합된 특징 맵을 처리하는 단계는, 상기 한 세트의 병합된 특징 맵에 대해 한 세트의 FC 계층 내 일 FC 계층과 한 세트의 ReLU 계층 내 일 ReLU 계층을 교대로 적용하는 단계를 포함하는, 이미지 처리 수행 방법.
  19. 제 12 항에 있어서,
    상기 한 세트의 병합된 특징 맵을 처리하는 단계는, 제 2 하드웨어 CNN 모듈을 이용하는 단계를 포함하는, 이미지 처리 수행 방법.
  20. 제 19 항에 있어서,
    상기 제 1 하드웨어 CNN 모듈 및 제 2 하드웨어 CNN 모듈 모두는 한 세트의 컨볼루션 계층, 제 1 세트의 ReLU, 한 세트의 풀링 계층, 한 세트의 FC 계층, 및 제 2 세트의 ReLU 계층을 포함하는 임베디드 시스템의 소규모 하드웨어 CNN 모듈에 기초하여 구현되고,
    상기 제 1 하드웨어 CNN 모듈은 상기 소규모 하드웨어 CNN 모듈 내 상기 한 세트의 FC 계층 및 제 2 세트의 ReLU 계층을 우회함으로써 구현되고,
    상기 제 2 하드웨어 CNN 모듈은 상기 소규모 하드웨어 CNN 모듈 내 상기 한 세트의 컨볼루션 계층, 제 1 세트의 ReLU 계층, 및 상기 한 세트의 풀링 계층을 우회함으로써 구현되는
    이미지 처리 수행 방법.
  21. 제 1 이미지 크기의 입력 이미지를 수신하기 위한 수신 모듈 - 상기 수신 모듈은 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하도록 구성됨 - 과,
    제 1 하드웨어 CNN 모듈 및 제 2 하드웨어 CNN 모듈을 포함하는 제 1 처리 스테이지 - 상기 제 1 및 제 2 하드웨어 CNN 모듈 각각은 최대 입력 이미지 크기로 구성됨 - 와,
    상기 제 1 처리 스테이지로부터 제 1 출력 세트 및 제 2 출력 세트를 수신하여 상기 제 1 및 제 2 출력 세트를 한 세트의 병합된 특징 맵으로 병합하도록 구성되는 병합 모듈과,
    상기 한 세트의 병합된 특징 맵을 수신하고 상기 한 세트의 병합된 특징 맵을 처리하여 상기 CNN 시스템의 출력을 생성하도록 구성되는 제 2 처리 스테이지 - 상기 출력은 상기 입력 이미지에 대한 적어도 하나의 예측치를 포함함 - 를 포함하며,
    상기 제 1 하드웨어 CNN 모듈은 순차적으로,
    - 상기 한 세트의 서브이미지 중 제 1 서브세트의 서브이미지 각각을 수신하고,
    - 제 1 출력 세트를 생성하도록 수신되는 서브이미지 각각을 처리하도록 또한 구성되며,
    상기 제 2 하드웨어 CNN 모듈은 순차적으로,
    - 상기 한 세트의 서브이미지 중 제 2 서브세트의 서브이미지 각각을 수신하고,
    - 제 2 출력 세트를 생성하도록 수신되는 서브이미지 각각을 처리하도록 또한 구성되며,
    상기 제 1 하드웨어 CNN 모듈 및 상기 제 2 하드웨어 CNN 모듈은 상기 제 1 서브세트의 서브이미지 및 제 2 서브세트의 서브이미지를 병렬로 처리하도록 구성되는
    CNN 시스템.
  22. 이미지에 대한 심화 학습을 수행할 수 있는 시스템에 있어서, 상기 시스템은,
    프로세서와,
    상기 프로세서에 연결된 메모리와,
    상기 프로세서 및 메모리에 연결되고, 상기 제 1 이미지 크기의 이미지를 캡처하도록 구성되는 이미지 캡처 장치와,
    상기 프로세서 및 메모리에 연결되는 컨볼루션 뉴트럴 네트워크(CNN) 서브시스템을 포함하며, 상기 CNN 서브시스템은,
    상기 이미지 캡처 장치에 의해 캡처되는 제 1 이미지 크기의 입력 이미지를 수신하도록 구성되는 수신 모듈 - 상기 수신 모듈은 상기 입력 이미지를 제 2 이미지 크기의 한 세트의 서브이미지로 분할하도록 또한 구성됨 - 과,
    최대 입력 이미지 크기로 구성된 제 1 하드웨어 CNN 모듈을 포함하는 제 1 처리 스테이지 - 상기 제 1 하드웨어 CNN 모듈은 순차적으로, 상기 한 세트의 서브이미지 각각을 수신하여, 수신된 서브이미지 각각을 처리하여 한 세트의 출력을 생성하도록 또한 구성됨 - 와,
    상기 제 1 처리 스테이지로부터 출력 세트를 순차적으로 수신하여 출력 세트를 한 세트의 병합된 특징 맵으로 병합하도록 구성되는 병합 모듈과,
    상기 한 세트의 병합된 특징 맵을 수신하고 상기 한 세트의 병합된 특징 맵을 처리하여 상기 CNN 서브시스템의 출력을 생성하도록 구성되는 제 2 처리 스테이지 - 상기 출력은 상기 입력 이미지에 대한 적어도 하나의 예측치를 포함함 - 를 포함하는
    심화 학습 수행 시스템.
  23. 제 22 항에 있어서,
    상기 제 1 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 훨씬 크고,
    상기 제 2 이미지 크기는 상기 제 1 하드웨어 CNN 모듈의 최대 입력 이미지 크기보다 작거나 동일한
    심화 학습 수행 시스템.
  24. 제 22 항에 있어서,
    상기 시스템은 모바일 장치 또는 임베디드 시스템을 포함하는, 심화 학습 수행 시스템.
KR1020170162650A 2016-11-30 2017-11-30 해상도-제한 소규모 cnn 모듈에 기초한 컨볼루션 뉴트럴 네트워크(cnn) 시스템 KR20180062422A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662428497P 2016-11-30 2016-11-30
US62/428,497 2016-11-30

Publications (1)

Publication Number Publication Date
KR20180062422A true KR20180062422A (ko) 2018-06-08

Family

ID=62190214

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020170162656A KR20180062423A (ko) 2016-11-30 2017-11-30 임베디드 시스템용 소규모 컨볼루션 뉴트럴 네트워크(cnn) 모듈을 이용한 얼굴 인식
KR1020170162650A KR20180062422A (ko) 2016-11-30 2017-11-30 해상도-제한 소규모 cnn 모듈에 기초한 컨볼루션 뉴트럴 네트워크(cnn) 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020170162656A KR20180062423A (ko) 2016-11-30 2017-11-30 임베디드 시스템용 소규모 컨볼루션 뉴트럴 네트워크(cnn) 모듈을 이용한 얼굴 인식

Country Status (4)

Country Link
US (3) US10360494B2 (ko)
KR (2) KR20180062423A (ko)
CA (2) CA2986860A1 (ko)
SG (2) SG10201709943RA (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101942219B1 (ko) 2018-07-05 2019-01-24 고재성 컨볼루션 뉴럴 네트워크를 이용한 폐기물 이미지 식별 장치 및 방법
WO2020017871A1 (ko) * 2018-07-16 2020-01-23 삼성전자 주식회사 영상 처리 장치 및 그 동작방법
KR102083166B1 (ko) * 2019-04-22 2020-03-02 한국과학기술원 이미지 처리 방법 및 장치
KR102092205B1 (ko) * 2018-12-03 2020-03-23 한국과학기술원 초해상화, 역톤매핑 및 동시 초해상화-역톤매핑 처리된 다중 출력 이미지를 생성하는 이미지 처리 방법 및 장치
WO2020116745A1 (ko) * 2018-12-07 2020-06-11 아주대학교 산학협력단 고속 딥러닝을 위한 컨볼루션 방법
US11017264B2 (en) 2018-12-03 2021-05-25 Samsung Electronics Co., Ltd. Method and apparatus with dilated convolution
WO2021153861A1 (ko) * 2020-01-31 2021-08-05 중앙대학교 산학협력단 다중 객체 검출 방법 및 그 장치
WO2022154337A1 (ko) * 2021-01-13 2022-07-21 삼성전자 주식회사 이미지를 업스케일하는 전자 장치 및 이의 제어 방법

Families Citing this family (142)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10559091B2 (en) * 2015-09-11 2020-02-11 Nec Corporation Object counting device, object counting method, object counting program, and object counting system
US10592729B2 (en) * 2016-01-21 2020-03-17 Samsung Electronics Co., Ltd. Face detection method and apparatus
CN106157307B (zh) * 2016-06-27 2018-09-11 浙江工商大学 一种基于多尺度cnn和连续crf的单目图像深度估计方法
US10303977B2 (en) * 2016-06-28 2019-05-28 Conduent Business Services, Llc System and method for expanding and training convolutional neural networks for large size input images
US10366302B2 (en) * 2016-10-10 2019-07-30 Gyrfalcon Technology Inc. Hierarchical category classification scheme using multiple sets of fully-connected networks with a CNN based integrated circuit as feature extractor
US10360494B2 (en) * 2016-11-30 2019-07-23 Altumview Systems Inc. Convolutional neural network (CNN) system based on resolution-limited small-scale CNN modules
CN106778856A (zh) * 2016-12-08 2017-05-31 深圳大学 一种物体识别方法及装置
US10318827B2 (en) 2016-12-19 2019-06-11 Waymo Llc Object detection neural networks
US10546231B2 (en) * 2017-01-23 2020-01-28 Fotonation Limited Method for synthesizing a neural network
WO2018152741A1 (en) * 2017-02-23 2018-08-30 Nokia Technologies Oy Collaborative activation for deep learning field
CN106952269B (zh) * 2017-02-24 2019-09-20 北京航空航天大学 近邻可逆的视频前景物体序列检测分割方法及***
EP3590113B1 (en) * 2017-03-03 2024-05-29 Pindrop Security, Inc. Method and apparatus for detecting spoofing conditions
CN106683680B (zh) * 2017-03-10 2022-03-25 百度在线网络技术(北京)有限公司 说话人识别方法及装置、计算机设备及计算机可读介质
US10185895B1 (en) * 2017-03-23 2019-01-22 Gopro, Inc. Systems and methods for classifying activities captured within images
US10496895B2 (en) * 2017-03-28 2019-12-03 Facebook, Inc. Generating refined object proposals using deep-learning models
US10810371B2 (en) 2017-04-06 2020-10-20 AIBrain Corporation Adaptive, interactive, and cognitive reasoner of an autonomous robotic system
US10929759B2 (en) 2017-04-06 2021-02-23 AIBrain Corporation Intelligent robot software platform
US11151992B2 (en) * 2017-04-06 2021-10-19 AIBrain Corporation Context aware interactive robot
US10839017B2 (en) 2017-04-06 2020-11-17 AIBrain Corporation Adaptive, interactive, and cognitive reasoner of an autonomous robotic system utilizing an advanced memory graph structure
US10963493B1 (en) 2017-04-06 2021-03-30 AIBrain Corporation Interactive game with robot system
US10621725B2 (en) * 2017-04-12 2020-04-14 Here Global B.V. Small object detection from a large image
US10515199B2 (en) * 2017-04-19 2019-12-24 Qualcomm Incorporated Systems and methods for facial authentication
JP7184488B2 (ja) * 2017-04-21 2022-12-06 株式会社半導体エネルギー研究所 画像処理方法および受像装置
CN107124609A (zh) * 2017-04-27 2017-09-01 京东方科技集团股份有限公司 一种视频图像的处理***、其处理方法及显示装置
US10410314B2 (en) * 2017-04-27 2019-09-10 Apple Inc. Systems and methods for crossfading image data
US10552663B2 (en) * 2017-05-02 2020-02-04 Techcyte, Inc. Machine learning classification and training for digital microscopy cytology images
CN110892349B (zh) 2017-05-23 2023-05-23 沃尔玛阿波罗有限责任公司 自动化检查***
US10282589B2 (en) * 2017-08-29 2019-05-07 Konica Minolta Laboratory U.S.A., Inc. Method and system for detection and classification of cells using convolutional neural networks
CN107491771A (zh) * 2017-09-21 2017-12-19 百度在线网络技术(北京)有限公司 人脸检测方法和装置
CN107644209A (zh) * 2017-09-21 2018-01-30 百度在线网络技术(北京)有限公司 人脸检测方法和装置
KR102468729B1 (ko) * 2017-09-29 2022-11-21 삼성전자주식회사 전자 장치 및 전자 장치의 객체 센싱 방법
WO2019076467A1 (en) * 2017-10-20 2019-04-25 Toyota Motor Europe METHOD AND SYSTEM FOR PROCESSING IMAGE AND DETERMINING POINTS OF VIEW OF OBJECTS
CN107742107B (zh) * 2017-10-20 2019-03-01 北京达佳互联信息技术有限公司 人脸图像分类方法、装置及服务器
CN108052862B (zh) * 2017-11-09 2019-12-06 北京达佳互联信息技术有限公司 年龄预估方法和装置
CN111656367A (zh) * 2017-12-04 2020-09-11 优创半导体科技有限公司 神经网络加速器的***和体系结构
US20190188729A1 (en) * 2017-12-18 2019-06-20 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for detecting counterfeit product based on deep learning
TWI649698B (zh) * 2017-12-21 2019-02-01 財團法人工業技術研究院 物件偵測裝置、物件偵測方法及電腦可讀取媒體
EP3738099A1 (en) * 2018-01-10 2020-11-18 Institut de Recherche sur les Cancers de l'Appareil Digestif IRCAD Automatic segmentation process of a 3d medical image by several neural networks through structured convolution according to the geometry of the 3d medical image
US11448632B2 (en) 2018-03-19 2022-09-20 Walmart Apollo, Llc System and method for the determination of produce shelf life
WO2019204700A1 (en) * 2018-04-19 2019-10-24 University Of South Florida Neonatal pain identification from neonatal facial expressions
IT201800003188A1 (it) * 2018-05-25 2019-11-25 Dispositivo contateste e metodo di processamento di immagini digitali
WO2019236885A1 (en) 2018-06-06 2019-12-12 Cognex Corporation System and method for finding and classifying patterns in an image with a vision system
CN110581970A (zh) * 2018-06-07 2019-12-17 北京华泰科捷信息技术股份有限公司 一种带有人脸识别分析功能的网络视频存储装置及方法
KR20210028185A (ko) * 2018-06-29 2021-03-11 렌치 잉크. 사람 자세 분석 시스템 및 방법
KR102108391B1 (ko) * 2018-07-18 2020-05-12 주식회사 영국전자 다수개의 카메라를 활용한 이동물체 연계추적시스템 및 방법
CN109285157A (zh) * 2018-07-24 2019-01-29 深圳先进技术研究院 左心室心肌分割方法、装置及计算机可读存储介质
US11393082B2 (en) * 2018-07-26 2022-07-19 Walmart Apollo, Llc System and method for produce detection and classification
CN109272107A (zh) * 2018-08-10 2019-01-25 广东工业大学 一种改进深层卷积神经网络的参数个数的方法
US10747989B2 (en) * 2018-08-21 2020-08-18 Software Ag Systems and/or methods for accelerating facial feature vector matching with supervised machine learning
KR101941994B1 (ko) * 2018-08-24 2019-01-24 전북대학교산학협력단 결합심층네트워크에 기반한 보행자 인식 및 속성 추출 시스템
US11579921B2 (en) * 2018-08-29 2023-02-14 Alibaba Group Holding Limited Method and system for performing parallel computations to generate multiple output feature maps
KR102553146B1 (ko) 2018-09-13 2023-07-07 삼성전자주식회사 영상 처리 장치 및 그 동작방법
JP6695947B2 (ja) * 2018-09-21 2020-05-20 ソニーセミコンダクタソリューションズ株式会社 固体撮像システム、画像処理方法及びプログラム
US10733742B2 (en) 2018-09-26 2020-08-04 International Business Machines Corporation Image labeling
US11176427B2 (en) 2018-09-26 2021-11-16 International Business Machines Corporation Overlapping CNN cache reuse in high resolution and streaming-based deep learning inference engines
CN109271957B (zh) * 2018-09-30 2020-10-20 厦门市巨龙信息科技有限公司 人脸性别识别方法以及装置
DE102018216962A1 (de) * 2018-10-02 2020-04-02 Robert Bosch Gmbh Verfahren zur hochauflösenden, skalierbaren Domänen-Übersetzung
KR102108854B1 (ko) 2018-10-05 2020-05-12 재단법인대구경북과학기술원 딥러닝 네트워크 모델에 의한 실시간 객체 검출 방법 및 장치
EP3864573A1 (en) 2018-10-11 2021-08-18 Tesla, Inc. Systems and methods for training machine models with augmented data
US11715059B2 (en) 2018-10-12 2023-08-01 Walmart Apollo, Llc Systems and methods for condition compliance
KR102127369B1 (ko) * 2018-10-17 2020-06-26 엔에이치엔 주식회사 손금 검출 뉴럴 네트워크 시스템 및 손금 기반 운세 예측 서비스 제공방법
CN111079473A (zh) * 2018-10-19 2020-04-28 北京奇虎科技有限公司 性别识别方法、装置、电子设备及计算机可读存储介质
KR102169543B1 (ko) 2018-11-08 2020-10-23 주식회사 소이넷 인공지능 실행가속을 위한 인공지능 실행모델 설정방법 및 인공지능 실행가속시스템
WO2020106332A1 (en) 2018-11-20 2020-05-28 Walmart Apollo, Llc Systems and methods for assessing products
US10977548B2 (en) 2018-12-05 2021-04-13 Bank Of America Corporation Generation of capsule neural networks for enhancing image processing platforms
KR102096617B1 (ko) * 2018-12-12 2020-04-02 충남대학교산학협력단 이미지와 ppg 데이터를 이용한 멀티모달 딥러닝 기반의 운전자 졸음감지 시스템
DE102018222202A1 (de) * 2018-12-18 2020-06-18 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Betreiben eines Maschinenlernmodells
CN109726678B (zh) * 2018-12-28 2023-02-28 深圳市捷顺科技实业股份有限公司 一种车牌识别的方法及相关装置
CN109711413B (zh) * 2018-12-30 2023-04-07 陕西师范大学 基于深度学习的图像语义分割方法
CN109753927A (zh) * 2019-01-02 2019-05-14 腾讯科技(深圳)有限公司 一种人脸检测方法和装置
CN109753931A (zh) * 2019-01-04 2019-05-14 广州广电卓识智能科技有限公司 卷积神经网络训练方法、***及人脸特征点检测方法
CN109711384A (zh) * 2019-01-09 2019-05-03 江苏星云网格信息技术有限公司 一种基于深度卷积神经网络的人脸识别方法
US11080835B2 (en) 2019-01-09 2021-08-03 Disney Enterprises, Inc. Pixel error detection system
CN109726703B (zh) * 2019-01-11 2021-06-18 浙江工业大学 一种基于改进集成学习策略的人脸图像年龄识别方法
US10402695B1 (en) * 2019-01-23 2019-09-03 StradVision, Inc. Learning method and learning device for convolutional neural network using 1×H convolution for image recognition to be used for hardware optimization, and testing method and testing device using the same
CN109840489A (zh) * 2019-01-24 2019-06-04 深圳市云恩科技有限公司 一种渡口行人运动跟踪检测***及其检测方法
CN111488475A (zh) 2019-01-29 2020-08-04 北京三星通信技术研究有限公司 图像检索方法、装置、电子设备及计算机可读存储介质
US10915809B2 (en) 2019-02-04 2021-02-09 Bank Of America Corporation Neural network image recognition with watermark protection
CN109886241A (zh) * 2019-03-05 2019-06-14 天津工业大学 基于长短期记忆网络的驾驶员疲劳检测
CN109934149B (zh) * 2019-03-06 2022-08-09 百度在线网络技术(北京)有限公司 用于输出信息的方法和装置
US10872258B2 (en) * 2019-03-15 2020-12-22 Huawei Technologies Co., Ltd. Adaptive image cropping for face recognition
US11222069B2 (en) * 2019-03-31 2022-01-11 Cortica Ltd. Low-power calculation of a signature of a media unit
CN110046595B (zh) * 2019-04-23 2022-08-09 福州大学 一种基于级联式多尺度的密集人脸检测方法
CN110022466A (zh) * 2019-04-24 2019-07-16 中科院成都信息技术股份有限公司 一种基于智慧大数据的视频分析平台及其控制方法
CN111027366B (zh) * 2019-04-30 2020-11-27 六安木子可科技有限公司 自适应面部信号处理平台
CN110222566A (zh) * 2019-04-30 2019-09-10 北京迈格威科技有限公司 一种人脸特征的获取方法、装置、终端及存储介质
CN110334577B (zh) * 2019-05-05 2022-09-16 四川盛通智联网络科技有限公司 一种基于海思安防芯片的人脸识别方法
CN110135313A (zh) * 2019-05-07 2019-08-16 西安募格网络科技有限公司 一种基于卷积神经网络的年龄判断方法
CN110097021B (zh) * 2019-05-10 2022-09-06 电子科技大学 基于mtcnn的人脸姿态估计方法
KR102420104B1 (ko) * 2019-05-16 2022-07-12 삼성전자주식회사 영상 처리 장치 및 그 동작방법
US10831417B1 (en) * 2019-06-17 2020-11-10 Kyocera Document Solutions Inc. Convolutional neural network based copy or print wizard
CN112115740B (zh) * 2019-06-19 2024-04-09 京东科技信息技术有限公司 用于处理图像的方法和装置
CN112149449A (zh) * 2019-06-26 2020-12-29 北京华捷艾米科技有限公司 一种基于深度学习的人脸属性识别方法及***
US10748650B1 (en) * 2019-07-17 2020-08-18 Richard Ricci Machine learning of dental images for E-commerce
CN110351526A (zh) * 2019-07-23 2019-10-18 北京中安信合科技有限公司 一种基于人工智能技术的人员监管***
US11113822B2 (en) * 2019-08-14 2021-09-07 International Business Machines Corporation Moving object identification from a video stream
KR102641117B1 (ko) * 2019-08-26 2024-02-27 삼성전자주식회사 영상을 증강하는 방법 및 장치
CN110706200B (zh) * 2019-09-02 2022-08-05 杭州深睿博联科技有限公司 数据预测的方法及装置
CN110619391B (zh) * 2019-09-19 2023-04-18 华南理工大学 一种检测模型压缩方法、装置和计算机可读存储介质
KR102405867B1 (ko) * 2019-10-02 2022-06-08 (주)디앤아이파비스 인공지능 모델을 이용한 특허문서의 중요도 판단 방법, 장치 및 시스템
KR102095892B1 (ko) * 2019-10-02 2020-04-01 (주)디앤아이파비스 인공지능 모델을 이용한 특허문서의 유사도 판단 방법, 장치 및 시스템
US11568062B2 (en) * 2019-10-10 2023-01-31 Baidu Usa Llc Methods to protect neural network models
US11087163B2 (en) * 2019-11-01 2021-08-10 Vannevar Labs, Inc. Neural network-based optical character recognition
KR20210062477A (ko) 2019-11-21 2021-05-31 삼성전자주식회사 전자 장치 및 그 제어 방법
CN110929794B (zh) * 2019-11-28 2022-12-13 哈尔滨工程大学 一种基于多任务学习的侧扫声呐图像分类方法
CN111028177B (zh) * 2019-12-12 2023-07-21 武汉大学 一种基于边缘的深度学习图像去运动模糊方法
CN111179175B (zh) * 2019-12-27 2023-04-07 深圳力维智联技术有限公司 基于卷积神经网络的图像处理方法、装置及存储介质
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
CN113111679A (zh) * 2020-01-09 2021-07-13 北京君正集成电路股份有限公司 一种人形上半身监测网络结构的设计方法
US20210248462A1 (en) * 2020-02-07 2021-08-12 Nec Laboratories America, Inc. Interpreting convolutional sequence model by learning local and resolution-controllable prototypes
CN111401516B (zh) * 2020-02-21 2024-04-26 华为云计算技术有限公司 一种神经网络通道参数的搜索方法及相关设备
CN113496775A (zh) * 2020-03-19 2021-10-12 上海联影医疗科技股份有限公司 一种放射线设备的控制方法和***
US20210295150A1 (en) * 2020-03-20 2021-09-23 Robert Bosch Gmbh System and method for distributed neural networks on edge devices
US11508143B2 (en) 2020-04-03 2022-11-22 Disney Enterprises, Inc. Automated salience assessment of pixel anomalies
US11568249B2 (en) 2020-04-07 2023-01-31 International Business Machines Corporation Automated decision making for neural architecture search
US11386656B2 (en) * 2020-04-08 2022-07-12 Moxa Inc. Device and method of handling video content analysis
US11379697B2 (en) * 2020-05-20 2022-07-05 Bank Of America Corporation Field programmable gate array architecture for image analysis
KR20230028481A (ko) * 2020-06-30 2023-02-28 로레알 공간 인식 조건부 gan들을 이용하는 고해상도 제어가능한 얼굴 노화
CN111862030B (zh) * 2020-07-15 2024-02-09 北京百度网讯科技有限公司 一种人脸合成图检测方法、装置、电子设备及存储介质
US20220028088A1 (en) * 2020-07-23 2022-01-27 Vingroup Joint Stock Company Multi-scale segmentation system
US10885387B1 (en) * 2020-08-04 2021-01-05 SUPERB Al CO., LTD. Methods for training auto-labeling device and performing auto-labeling by using hybrid classification and devices using the same
US10902291B1 (en) * 2020-08-04 2021-01-26 Superb Ai Co., Ltd. Methods for training auto labeling device and performing auto labeling related to segmentation while performing automatic verification by using uncertainty scores and devices using the same
US10902290B1 (en) * 2020-08-04 2021-01-26 Superb Ai Co., Ltd. Methods for training auto labeling device and performing auto labeling related to object detection while performing automatic verification by using uncertainty scores and devices using the same
US11889049B2 (en) 2020-08-14 2024-01-30 Raytheon Company Gain map generation with rotation compensation
US11563899B2 (en) * 2020-08-14 2023-01-24 Raytheon Company Parallelization technique for gain map generation using overlapping sub-images
CN112016432A (zh) * 2020-08-24 2020-12-01 高新兴科技集团股份有限公司 基于深度学习的车牌字符识别方法、存储介质及电子设备
US11978260B2 (en) 2020-08-25 2024-05-07 Axon Enterprise, Inc. Systems and methods for rapid license plate reading
CN112035683A (zh) * 2020-09-30 2020-12-04 北京百度网讯科技有限公司 用户交互信息处理模型生成方法和用户交互信息处理方法
CN112215245A (zh) * 2020-11-05 2021-01-12 中国联合网络通信集团有限公司 一种图像识别方法及装置
CN112464009A (zh) * 2020-11-17 2021-03-09 百度(中国)有限公司 用于生成配对图像的方法、装置、电子设备及存储介质
CN112580453A (zh) * 2020-12-08 2021-03-30 成都数之联科技有限公司 一种基于遥感影像和深度学习的土地利用分类方法及***
WO2022139438A1 (ko) * 2020-12-22 2022-06-30 인텔렉추얼디스커버리 주식회사 딥러닝 기반 이미지 코딩 방법 및 장치
US20220198539A1 (en) * 2020-12-23 2022-06-23 Panasonic Intellectual Property Management Co., Ltd. Checkout system and checkout method
CN112434678B (zh) * 2021-01-27 2021-06-04 成都无糖信息技术有限公司 基于人工神经网络的人脸测量特征空间搜索***及方法
CN113095251B (zh) * 2021-04-20 2022-05-27 清华大学深圳国际研究生院 一种人体姿态估计方法及***
US20220383037A1 (en) * 2021-05-27 2022-12-01 Adobe Inc. Extracting attributes from arbitrary digital images utilizing a multi-attribute contrastive classification neural network
US20220392209A1 (en) * 2021-06-04 2022-12-08 Apple Inc. Object recognition
CN113392899B (zh) * 2021-06-10 2022-05-10 电子科技大学 一种基于二值化图像分类网络的图像分类方法
US11798117B2 (en) * 2021-06-16 2023-10-24 Bank Of America Corporation Systems and methods for intelligent steganographic protection
KR102635607B1 (ko) * 2021-11-04 2024-02-08 중앙대학교 산학협력단 코스-투-파인 컨볼루션 뉴럴 네트워크 기반 다중 레이블 클래스 분류 방법 및 장치
US11527074B1 (en) 2021-11-24 2022-12-13 Continental Automotive Technologies GmbH Systems and methods for deep multi-task learning for embedded machine vision applications
CN114973727B (zh) * 2022-08-02 2022-09-30 成都工业职业技术学院 一种基于乘客特征的智能驾驶方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990217B1 (en) * 1999-11-22 2006-01-24 Mitsubishi Electric Research Labs. Inc. Gender classification with support vector machines
DE60130742T2 (de) * 2001-05-28 2008-07-17 Honda Research Institute Europe Gmbh Mustererkennung mit hierarchischen Netzen
US7912246B1 (en) * 2002-10-28 2011-03-22 Videomining Corporation Method and system for determining the age category of people based on facial images
WO2004055735A1 (ja) * 2002-12-16 2004-07-01 Canon Kabushiki Kaisha パターン識別方法、その装置及びそのプログラム
US20050047647A1 (en) * 2003-06-10 2005-03-03 Ueli Rutishauser System and method for attentional selection
US7219085B2 (en) * 2003-12-09 2007-05-15 Microsoft Corporation System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit
JP4532915B2 (ja) * 2004-01-29 2010-08-25 キヤノン株式会社 パターン認識用学習方法、パターン認識用学習装置、画像入力装置、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体
JP4546157B2 (ja) * 2004-06-03 2010-09-15 キヤノン株式会社 情報処理方法、情報処理装置、撮像装置
WO2006114003A1 (en) * 2005-04-27 2006-11-02 The Governors Of The University Of Alberta A method and system for automatic detection and segmentation of tumors and associated edema (swelling) in magnetic resonance (mri) images
US7747070B2 (en) * 2005-08-31 2010-06-29 Microsoft Corporation Training convolutional neural networks on graphics processing units
WO2008133951A2 (en) * 2007-04-24 2008-11-06 Massachusetts Institute Of Technology Method and apparatus for image processing
US8027521B1 (en) * 2008-03-25 2011-09-27 Videomining Corporation Method and system for robust human gender recognition using facial feature localization
US8135202B2 (en) * 2008-06-02 2012-03-13 Nec Laboratories America, Inc. Automated method and system for nuclear analysis of biopsy images
US8582807B2 (en) * 2010-03-15 2013-11-12 Nec Laboratories America, Inc. Systems and methods for determining personal characteristics
US8615123B2 (en) * 2010-09-15 2013-12-24 Identicoin, Inc. Coin identification method and apparatus
US8498491B1 (en) * 2011-08-10 2013-07-30 Google Inc. Estimating age using multiple classifiers
US9311564B2 (en) * 2012-10-05 2016-04-12 Carnegie Mellon University Face age-estimation and methods, systems, and software therefor
US9626597B2 (en) * 2013-05-09 2017-04-18 Tencent Technology (Shenzhen) Company Limited Systems and methods for facial age identification
US10198689B2 (en) * 2014-01-30 2019-02-05 Hrl Laboratories, Llc Method for object detection in digital image and video using spiking neural networks
IL231862A (en) * 2014-04-01 2015-04-30 Superfish Ltd Image representation using a neural network
US9659341B2 (en) * 2014-06-25 2017-05-23 Qualcomm Incorporated Texture pipe as an image processing engine
FR3025344B1 (fr) * 2014-08-28 2017-11-24 Commissariat Energie Atomique Reseau de neurones convolutionnels
US10255547B2 (en) * 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system
US10481696B2 (en) * 2015-03-03 2019-11-19 Nvidia Corporation Radar based user interface
US9786036B2 (en) * 2015-04-28 2017-10-10 Qualcomm Incorporated Reducing image resolution in deep convolutional networks
US9741107B2 (en) * 2015-06-05 2017-08-22 Sony Corporation Full reference image quality assessment based on convolutional neural network
US10410096B2 (en) * 2015-07-09 2019-09-10 Qualcomm Incorporated Context-based priors for object detection in images
US9633282B2 (en) * 2015-07-30 2017-04-25 Xerox Corporation Cross-trained convolutional neural networks using multimodal images
US10204299B2 (en) * 2015-11-04 2019-02-12 Nec Corporation Unsupervised matching in fine-grained datasets for single-view object reconstruction
US9881234B2 (en) * 2015-11-25 2018-01-30 Baidu Usa Llc. Systems and methods for end-to-end object detection
US10095957B2 (en) * 2016-03-15 2018-10-09 Tata Consultancy Services Limited Method and system for unsupervised word image clustering
WO2017177367A1 (en) * 2016-04-11 2017-10-19 Xiaogang Wang Method and system for object tracking
US9904871B2 (en) * 2016-04-14 2018-02-27 Microsoft Technologies Licensing, LLC Deep convolutional neural network prediction of image professionalism
US9953679B1 (en) * 2016-05-24 2018-04-24 Gopro, Inc. Systems and methods for generating a time lapse video
US20170344876A1 (en) * 2016-05-31 2017-11-30 Samsung Electronics Co., Ltd. Efficient sparse parallel winograd-based convolution scheme
US10185891B1 (en) * 2016-07-08 2019-01-22 Gopro, Inc. Systems and methods for compact convolutional neural networks
US10169647B2 (en) * 2016-07-27 2019-01-01 International Business Machines Corporation Inferring body position in a scan
US20180060719A1 (en) * 2016-08-29 2018-03-01 International Business Machines Corporation Scale-space label fusion using two-stage deep neural net
US10354362B2 (en) * 2016-09-08 2019-07-16 Carnegie Mellon University Methods and software for detecting objects in images using a multiscale fast region-based convolutional neural network
US10360494B2 (en) * 2016-11-30 2019-07-23 Altumview Systems Inc. Convolutional neural network (CNN) system based on resolution-limited small-scale CNN modules
US10467458B2 (en) * 2017-07-21 2019-11-05 Altumview Systems Inc. Joint face-detection and head-pose-angle-estimation using small-scale convolutional neural network (CNN) modules for embedded systems
US10185895B1 (en) * 2017-03-23 2019-01-22 Gopro, Inc. Systems and methods for classifying activities captured within images
WO2019027505A1 (en) * 2017-08-01 2019-02-07 Apple Inc. FACE DETECTION, ESTIMATED INSTALLATION AND ESTIMATED DISTANCE BETWEEN THE FACE AND THE SHOOTING DEVICE USING A SINGLE ARRAY
US20190063932A1 (en) * 2017-08-28 2019-02-28 Nec Laboratories America, Inc. Autonomous Vehicle Utilizing Pose Estimation
US10282589B2 (en) * 2017-08-29 2019-05-07 Konica Minolta Laboratory U.S.A., Inc. Method and system for detection and classification of cells using convolutional neural networks
US10366166B2 (en) * 2017-09-07 2019-07-30 Baidu Usa Llc Deep compositional frameworks for human-like language acquisition in virtual environments
US10671083B2 (en) * 2017-09-13 2020-06-02 Tusimple, Inc. Neural network architecture system for deep odometry assisted by static scene optical flow
US20190079533A1 (en) * 2017-09-13 2019-03-14 TuSimple Neural network architecture method for deep odometry assisted by static scene optical flow
US10223610B1 (en) * 2017-10-15 2019-03-05 International Business Machines Corporation System and method for detection and classification of findings in images

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101942219B1 (ko) 2018-07-05 2019-01-24 고재성 컨볼루션 뉴럴 네트워크를 이용한 폐기물 이미지 식별 장치 및 방법
WO2020017871A1 (ko) * 2018-07-16 2020-01-23 삼성전자 주식회사 영상 처리 장치 및 그 동작방법
US11871144B2 (en) 2018-07-16 2024-01-09 Samsung Electronics Co., Ltd. Image processing apparatus and operation method thereof
KR102092205B1 (ko) * 2018-12-03 2020-03-23 한국과학기술원 초해상화, 역톤매핑 및 동시 초해상화-역톤매핑 처리된 다중 출력 이미지를 생성하는 이미지 처리 방법 및 장치
US11017264B2 (en) 2018-12-03 2021-05-25 Samsung Electronics Co., Ltd. Method and apparatus with dilated convolution
US11854241B2 (en) 2018-12-03 2023-12-26 Samsung Electronics Co., Ltd. Method and apparatus with dilated convolution
WO2020116745A1 (ko) * 2018-12-07 2020-06-11 아주대학교 산학협력단 고속 딥러닝을 위한 컨볼루션 방법
KR102083166B1 (ko) * 2019-04-22 2020-03-02 한국과학기술원 이미지 처리 방법 및 장치
WO2021153861A1 (ko) * 2020-01-31 2021-08-05 중앙대학교 산학협력단 다중 객체 검출 방법 및 그 장치
US11816881B2 (en) 2020-01-31 2023-11-14 Chung Ang University Industry Academic Cooperation Multiple object detection method and apparatus
WO2022154337A1 (ko) * 2021-01-13 2022-07-21 삼성전자 주식회사 이미지를 업스케일하는 전자 장치 및 이의 제어 방법

Also Published As

Publication number Publication date
CA2986860A1 (en) 2018-05-30
SG10201709945UA (en) 2018-06-28
CA2986863A1 (en) 2018-05-30
US20180150681A1 (en) 2018-05-31
US10558908B2 (en) 2020-02-11
SG10201709943RA (en) 2018-06-28
US10360494B2 (en) 2019-07-23
KR20180062423A (ko) 2018-06-08
US10268947B2 (en) 2019-04-23
US20180150684A1 (en) 2018-05-31
US20180150740A1 (en) 2018-05-31

Similar Documents

Publication Publication Date Title
KR20180062422A (ko) 해상도-제한 소규모 cnn 모듈에 기초한 컨볼루션 뉴트럴 네트워크(cnn) 시스템
CN107368886B (zh) 基于重复使用小规模卷积神经网络模块的神经网络***
CN107506707B (zh) 采用嵌入式***中的小规模卷积神经网络模块的人脸检测
US10394929B2 (en) Adaptive execution engine for convolution computing systems
CN107895150B (zh) 基于嵌入式***小规模卷积神经网络模块的人脸检测和头部姿态角评估
Shi et al. Spsequencenet: Semantic segmentation network on 4d point clouds
US10467458B2 (en) Joint face-detection and head-pose-angle-estimation using small-scale convolutional neural network (CNN) modules for embedded systems
JP2020119568A (ja) コンピュータビジョンのシステムおよび方法
De Geus et al. Fast panoptic segmentation network
KR20190051697A (ko) 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법
JP7450815B2 (ja) 階層的重み疎畳み込み処理のための方法とシステム
KR20200066952A (ko) 확장 컨벌루션 연산을 수행하는 장치 및 방법
KR20200058440A (ko) 이미지들을 프로세싱하기 위한 이미지 신호 프로세서
US11875255B2 (en) Method and apparatus for processing data
KR20200081044A (ko) 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치
US11164032B2 (en) Method of performing data processing operation
WO2021212420A1 (en) Method and device for 3d object detection
CN114648446A (zh) 视频处理方法和装置
US12014505B2 (en) Method and apparatus with convolution neural network processing using shared operand
Zhang et al. Cross-cbam: A lightweight network for scene segmentation
EP2924649B1 (en) Method and an apparatus for generating an approximate nearest neighbor field (annf) for images and video sequences
US20220067429A1 (en) Method and apparatus with image processing
KR102393629B1 (ko) 다중 디콘볼루션 레이어를 갖는 인공 신경망을 이용하는 이미지 업스케일링 장치 및 이의 디콘볼루션 레이어 다중화 방법
CN115511690A (zh) 一种图像处理方法和图像处理芯片
Zhuang et al. Improved Convolutional Neural Networks by Integrating High-frequency Information for Image Classification