KR20240053525A - 하드웨어 친화적 다중 커널 콘볼루션 네트워크 - Google Patents

하드웨어 친화적 다중 커널 콘볼루션 네트워크 Download PDF

Info

Publication number
KR20240053525A
KR20240053525A KR1020230131819A KR20230131819A KR20240053525A KR 20240053525 A KR20240053525 A KR 20240053525A KR 1020230131819 A KR1020230131819 A KR 1020230131819A KR 20230131819 A KR20230131819 A KR 20230131819A KR 20240053525 A KR20240053525 A KR 20240053525A
Authority
KR
South Korea
Prior art keywords
feature maps
feature
applying
processing
channels
Prior art date
Application number
KR1020230131819A
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 KR20240053525A publication Critical patent/KR20240053525A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • 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
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/806Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
    • 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
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding

Landscapes

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

Abstract

하드웨어 친화적 다중 커널 콘볼루션 블록(HFMCB)을 사용하여 특징 맵을 처리하고 결합하기 위한 시스템 및 방법이 개시된다. 방법은 입력된 특징 맵을 복수의 특징 맵으로 분할하는 단계로, 복수의 특징 맵 각각은 감소된 수의 채널을 가지는 단계, 복수의 특징 맵의 각각을 서로 다른 일련의 커널로 처리하는 단계, 및 처리된 복수의 특징 맵을 결합하는 단계를 포함한다.

Description

하드웨어 친화적 다중 커널 콘볼루션 네트워크{HARDWARE FRIENDLY MULTI-KERNEL CONVOLUTION NETWORK}
본 개시는 일반적으로 하드웨어 친화적 다중 커널 콘볼루션 네트워크(HFMCN; hardware friendly multi-kernel convolution network)에 관한 것이다. 특히, 본 명세서에 개시된 주제는 HFMCN에 기초한 이미지 신호 처리의 개선에 관한 것이다.
콘볼루션 신경망(CNN)은 이미지 처리 효율 및 정확도의 상당한 개선을 제공했다. 슈퍼 해상도(SR), 이미지 노이즈 감소(NR) 및/또는 시간적 노이즈 감소(TNR)는 각각 CNN을 사용하여 수행될 수 있다. 그러나, CNN의 설계는 복잡하고 계산 집약적일 수 있으므로, 하드웨어에서 구현하기 어렵다.
이미지 신호 처리(ISP) 설계의 과제는 계산 비용을 최소화하는 것이다. 이것은 단일 코어 네트워크가 모든 애플리케이션에 사용되는 경우에만 달성될 수 있다. 그러나, SR, NR 및 TNR에 대한 네트워크는 일반적으로 공유되는 설계 특성이 거의 없이, 독립적으로 개발된다.
예를 들어, SR 네트워크는 입력 이미지를 다운샘플링하지 않고 주의 및 밀집 연결을 사용할 수 있는 반면, NR 네트워크는 입력 이미지를 다운샘플링하는 U-Net 구조(인코더와 디코더 사이의 U자형 네트워크 연결)를 사용할 수 있다.
이 문제를 해결하기 위해서, 하나 이상의 SR, NR 및 TNR 작업에 효율적으로 사용될 수 있는 HFMCN라고 하는 범용 네트워크가 개시된다. HFMCN은 하드웨어 구현을 위한 기존 네트워크 구성보다 더 적합할 수 있다.
ISP에서의 또 다른 과제는 하드웨어 인식 네트워크의 설계가 네트워크 구성 요소의 선택을 제한할 수 있다는 것이다. SR 및 NR 네트워크에서 널리 사용되는, 어텐션 메커니즘, 확장된 콘볼루션, 파라메트릭 정류 선형 단위(PreLU) 및 밀집 연결과 같은 특정 구성 요소는 종종 하드웨어에서 비효율적이다. 뿐만 아니라, 높은 수용 필드는 일반적으로 SR 및 NR에서의 더 나은 성능과 관련이 있지만, 현재 하드웨어 설계 구성은 계산 비용을 줄이기 위해 높은 수용 필드를 갖는 네트워크를 지원하지 않을 수 있다.
이들 과제를 극복하기 위해, 개시된 일반 네트워크의 기본 블록인 HFMCN을 소개한다. 이 기본 블록을 하드웨어 친화적 연산자를 포함하는 하드웨어 친화적 다중 커널 콘볼루션 블록(HFMCB)이라고 한다. HFMCB는 이미지 복원(예를 들어, ISP) 네트워크를 하드웨어에서 효율적으로 구현하기 위한 실용적인 솔루션을 제공하는 것으로 하드웨어 인식 네트워크 설계의 한계를 해결한다.
이들 문제를 해결하기 위해, 최신 성능 및 복잡성의 트레이드 오프를 달성할 수 있는 SR, NR 및 TNR 시스템을 제공하기 위한 시스템 및 방법이 본 명세서에서 설명된다.
본 개시는 상이한 수용 필드를 갖는 다양한 특징을 얻기 위한 HFMCB를 제공한다. 이는 비효율적인 계단식 구조 설계를 개선할 수 있으며, 병렬 처리를 효율적으로 활용하는 데 더욱 적합할 수 있다. 또한, HFMCB 내부의 연산은 또한 하드웨어 친화적일 수 있도록 신중하게 선택될 수 있다.
추가로, 본 개시는 SR, NR, 및 TNR 작업과 같은 다중 ISP 프로세스에 대한 정확도와 복잡성 간의 개선된 트레이드 오프를 달성하기 위해 하나 이상의 HFMCB를 적층하는 HFMCN을 제공한다.
일 실시 예에서, HFMCB를 사용하여 특징 맵을 처리하고 결합하는 방법이 제공된다. 상기 방법은 입력 특징 맵을 복수의 특징 맵으로 분할하는 단계 - 복수의 특징 맵 각각은 감소된 수의 채널을 가짐 -; 서로 다른 일련의 커널로 상기 복수의 특징 맵 각각을 처리하는 단계; 및 상기 처리된 복수의 특징 맵을 결합하는 단계를 포함한다.
일 실시 예에서, HFMCB을 사용하여 특징 맵을 처리하고 결합하기 위한 전자 장치가 제공된다. 상기 전자 장치는 적어도 하나의 프로세서; 및 상기 적어도 하나의 프로세서와 동작 가능하게 연결된 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리는 실행될 때 상기 적어도 하나의 프로세서로 하여금 입력된 특징 맵을 복수의 특징 맵으로 분할하고 - 상기 복수의 특징 맵 각각은 감소된 수의 채널을 가짐 -; 상기 복수의 특징 맵의 각각을 서로 다른 일련의 커널로 처리하고; 및 상기 처리된 복수의 특징 맵을 결합함으로써 상기 HFMCB를 사용하여 상기 특징 맵을 처리하고 결합하는 방법을 수행하도록 명령하는 명령어를 저장한다.
일 실시 예에서, 하나 이상의 HFMCB을 사용하여 입력 이미지에 HFMCN를 적용하는 방법이 제공된다. 상기 방법은 상기 방법은: 특징 맵의 채널 크기를 제1 채널 수에서 제2 채널 수로 증가시키는 깊이별 분리 가능 콘볼루션 함수를 상기 입력 이미지에 적용하는 단계; 상기 하나 이상의 HFMCB를 상기 제2 채널 수를 갖는 상기 특징 맵에 적용하는 단계 - 상기 하나 이상의 HFMCB를 적용하는 단계는: 상기 특징 맵을 복수의 특징 맵으로 분할하는 단계 - 상기 복수의 특징 맵의 각각은 상기 제2 채널 수보다 적은 제3 채널 수를 가짐 - ; 상기 복수의 특징 맵의 각각을 서로 다른 일련의 커널로 처리하는 단계; 및 상기 처리된 복수의 특징 맵을 결합하는 단계를 포함함- ; 및 애플리케이션 특정 계층(ASL)을 사용하여 상기 결합된 복수의 특징 맵을 처리하여 처리된 출력 이미지를 출력하는 단계를 포함한다.
이하 섹션에서, 본 명세서에 개시된 주제의 측면은 도면에 도시된 예시적인 실시 예를 참조하여 설명될 것이다:
도 1은 일 실시 예에 따른, HFMCB를 도시한다;
도 2는 일 실시 예에 따른, 정보 다중 증류 블록(IMDB)을 도시한다;
도 3은 일 실시 예에 따른, HFMCN을 도시한다;
도 4는 일 실시 예에 따른, SR 작업을 위한 HFMCN 네트워크 설계를 도시한다;
도 5는 일 실시 예에 따른, NR 작업을 위한 HFMCN 네트워크 설계를 도시한다;
도 6은 일 실시 예에 따른, TNR 작업을 위한 HFMCN 네트워크 설계를 도시한다; 및
도 7은 다양한 실시 예에 따른, 네트워크 환경의 전자 장치의 블록도이다.
이하 상세한 설명에서, 본 개시의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 설명된다. 그러나, 당업자라면 개시된 측면은 이러한 특정 세부 사항 없이 실시될 수 있다는 것이 이해될 것이다. 다른 예에서, 잘 알려진 방법, 절차, 구성 요소 및 회로는 본 명세서에 개시된 본 개시을 모호하게 하지 않기 위해 상세하게 설명되지 않았다.
본 명세서 전반에 걸쳐 "일 실시 예" 또는 "실시 예"에 대한 언급은 실시 예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 명세서에 개시된 적어도 하나의 실시 예에 포함될 수 있음을 의미한다. 따라서, 본 명세서 전반에 걸쳐 다양한 곳에서 "일 실시 예에서" 또는 "실시 예에서" 또는 "일 실시 예에 따른" (또는 유사한 의미를 갖는 다른 어구)의 언급은 반드시 모두 동일한 실시 예를 지칭하는 것은 아닐 수 있다. 또한, 특정 특징, 구조 또는 특성은 하나 이상의 실시 예에서 임의의 적절한 방식으로 결합될 수 있다. 이와 관련하여, 본 명세서에서 사용된 바와 같이, "예시적인"이라는 단어는 "예시, 실례 또는 예시로서의 역할을 한다"를 의미한다. 본 명세서에서 "예시적인" 것으로 설명된 임의의 실시 예는 다른 실시 예에 비해 반드시 바람직하거나 유리한 것으로 해석되어서는 안된다. 추가로, 특정 특징, 구조 또는 특성은 하나 이상의 실시 예에서 임의의 적절한 방식으로 결합될 수 있다. 또한, 본 명세서에서 논의한 내용에 따라, 단수형 용어는 대응하는 복수형을 포함할 수 있고 복수형 용어는 대응하는 단수형을 포함할 수 있다. 유사하게, 하이픈으로 연결된 용어(예를 들어, "2-차원", "미리-결정된", "픽셀-특정" 등)는 때때로 해당하는 하이픈 없는 버전(예를 들어 "2차원", "미리 결정된", "픽셀 특정" 등)과 상호 교환적으로 사용될 수 있으며, 대문자 항목(예를 들어, "Counter Clock", "Row Select", "PIXOUT" 등)은 해당하는 비 대문자 버전(예를 들어, "counter clock", "row select", "pixout" 등)과 상호 교환적으로 사용될 수 있다. 이러한 상호 교환하여 사용하는 것을 서로 불일치하다고 간주해서 안된다.
또한, 본 명세서의 문맥에 따라, 단수형은 대응하는 복수형을 포함할 수 있고, 복수형은 대응하는 단수형을 포함할 수 있다. 본 명세서에 도시되고 논의된 다양한 도면(구성 요소도 포함함)은 단지 예시를 위한 것으로, 비율대로 그련지는 것은 아니라는 것에 유의한다. 예를 들어, 일부 요소의 치수는 명확하게 하기 위해 다른 요소에 비해 과장될 수 있다. 또한, 적절하다고 간주되는 경우, 도면간에 참조 번호가 반복되어 대응 및/또는 유사한 요소를 표시한다.
본 명세서에서 사용된 용어는 일부 예시적인 실시 예를 설명하기 위한 것이며 청구된 본 개시의 요지를 제한하려는 것은 아니다. 본 명세서에서 사용된 바와 같이, 단수 형태는 문맥 상 명백하게 달리 나타내지 않는 한 복수 형태도 포함하는 것이다. 본 명세서에서 사용될 때 "포함하다" 및/또는 "포함하는" 이라는 용어는 언급된 특징, 정수, 단계, 연산, 요소 및/또는 구성 요소의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 연산, 요소, 구성 요소 및/또는 그 그룹의 존재 또는 추가를 배제하지 않는다는 것이 이해될 것이다.
하나의 요소 또는 층이 다른 요소 또는 층에 "연결되거나" "결합되는" 것으로 언급될 때, 다른 요소 또는 층에 대해 바로 위에 있거나, 연결되거나 결합될 수 있거나, 중간 요소 또는 층이 존재할 수도 있다. 대조적으로, 하나의 요소가 다른 요소 또는 층의 "바로 위에 있거나", "직접 연결되거나", "직접 결합되는" 것으로 언급될 때, 중간 요소 또는 층이 존재하지 않는다. 동일한 숫자는 전체에 걸쳐 동일한 요소를 나타낸다. 본 명세서에서 사용되는 용어 "및/또는"은 하나 이상의 연관된 열거된 항목의 임의의 및 모든 조합을 포함한다.
본 명세서에서 사용되는 용어 "제1", "제2" 등은 선행하는 명사의 라벨로 사용되며, 명시적으로 정의하지 않는 한, 어떤 유형의 순서(예를 들어, 공간적, 시간적, 논리적 등)도 암시하지 않는다. 또한, 동일하거나 유사한 기능을 갖는 부품, 구성 요소, 블록, 회로, 유닛 또는 모듈을 지칭하기 위해 동일한 참조 번호가 둘 이상의 도면에 걸쳐 사용될 수 있다. 그러나 이러한 사용법은 설명의 단순성과 논의의 용이성을 위한 것이고; 그러한 구성 요소 또는 유닛의 구조 또는 구조적 세부 사항이 모든 실시 예에 걸쳐 동일하거나 일반적으로 참조되는 부품/모듈이 본 명세서에 개시된 예시적인 실시 예의 일부를 구현하는 유일한 방법이라는 것을 의미하지는 않는다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함하여 본 명세서에서 사용되는 모든 용어는 이 주제가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 것과 같은 용어는 관련 기술의 맥락에서 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며 본 명세서에서 명확하게 정의되지 않는 한 이상화되거나 지나치게 형식적인 의미로 해석되지 않는다는 것이 이해될 것이다.
본 명세서에서 사용되는 용어 "모듈"은 모듈과 관련하여 본 명세서에 설명된 기능을 제공하도록 구성된 소프트웨어, 펌웨어 및/또는 하드웨어의 임의의 조합을 지칭한다. 예를 들어, 소프트웨어는 소프트웨어 패키지, 코드 및/또는 명령어 세트 또는 명령어로 구현될 수 있으며, 본 명세서에 설명된 임의의 구현에서 사용되는 용어 "하드웨어"는 예를 들어, 단일 또는 임의의 조합으로, 어셈블리, 하드 와이어드 회로, 프로그래밍 가능 회로, 상태 기계 회로 및/또는 프로그래밍 가능 회로에 의해 실행되는 명령어를 저장하는 펌웨어를 포함할 수 있다. 모듈은 세트적으로 또는 개별적으로, 예를 들어, 집적 회로(IC), 시스템 온칩(SoC), 어셈블리 등과 같은 더 큰 시스템의 일부를 형성하는 회로로 구현될 수 있다.
일 실시 예에 따르면, 본 발명은 서로 다른 수용 필드를 갖는 다양한 특징을 얻을 수 있는 HFMCB를 제공한다. 이는 하드웨어 비효율적인 계단식 구조 설계를 해결할 수 있으며, 병렬 처리를 활용하는 데 더욱 적합할 수 있다. 또한, HFMCB 내부의 동작은 하드웨어에 친숙하도록 신중하게 선택될 수 있다.
또한, 일 실시 예에 따르면, 본 발명은 또한 SR, NR 및 TNR 작업과 같은 다중 ISP 프로세스에 대한 정확성과 복잡성의 개선된 트레이드 오프를 달성하기 위해 HFMCB를 적층하는 HFMCN을 제공한다.
도 1은 실시 예에 따른 HFMCB를 도시한다.
HFMCB는 하드웨어 또는 소프트웨어로 구현될 수 있다. 예를 들어, HFMCB는 도 7의 프로세서(720), 카메라(780), 센서(776) 또는 다른 전자 장치로부터 획득된 입력 이미지 상에 구현될 수 있다. HFMCB의 하나 이상의 단계는 프로세서(720)(또는 컨트롤러)에 의해 수행되도록 지시될 수 있고, 전자 장치(701)에서 수행될 수 있다. 또한, HFMCB의 출력은 추가 처리를 위해 추가 프로세서 또는 전자 장치에 제공(예를 들어, 전송)될 수 있다.
도 1을 참조하면, HFMCB의 상세한 블록 설계가 도시되어 있다. (m,n,t)는 블록을 설명하는 튜플로 정의된다. 이러한 파라미터는 입력 채널 크기(m), 확장 채널 크기(n) 및 각 블록의 출력 채널 크기(t)를 포함한다. 튜플은 정렬된, 불변의 값 시퀀스일 수 있다.
각각의 입력 특징에 대해 (예를 들어, 각각의 입력 데이터세트에 대해), 단계 101에서, 깊이별 분리 가능 콘볼루션(예를 들어, 깊이별 분리 가능 콘볼루션 루틴 또는 함수)은 입력 특징(예를 들어, 특징 맵)의 채널 크기를 m에서 n으로 늘리는 3x3 커널 크기의 확장 블록으로 적용되고, 단계 102에서 1x1 커널 크기의 포인트별 콘볼루션이 수행된다. 깊이별 콘볼루션은 각 입력 채널에 별도의 필터를 적용하여, 각 입력 채널에 하나씩 출력 특징 맵 세트를 생성한다. 특징 맵은 콘볼루션 계층의 출력을 나타내는 숫자의 배열(예를 들어, 2차원 배열)일 수 있다.
콘볼루션의 연산을 깊이별 및 포인트별 단계로 분리함으로써, 이미지 분류, 객체 감지 및 의미론적 분할과 같은 작업에서 여전히 높은 정확도를 달성하면서 필요한 매개변수 및 계산의 수를 크게 줄일 수 있다.
단계 103에서, 정류된 선형 유닛(ReLU)은 활성화 함수로 사용된다.
이후, 단계 104 및 105에서, 각 단계에서 1x1 콘볼루션 함수를 적용하여 채널 차원을 따라 특징 맵을 두 그룹으로 나누고, 이 때 각 브랜치는 특징 크기(채널 크기) n/2를 가진다.
제1 브랜치에서, 단계 106에서, 깊이별 분리 가능한 콘볼루션 및 단계 107에서 포인트별 콘볼루션은 제2 브랜치로부터 다른 특징의 수용 필드를 획득하기 사용된다. 두 브랜치는 모두 제1 브랜치에 대해 단계 108에서 제2 브랜치에 대해 단계 109에서 ReLU를 활성화 함수로 적용한다.
마지막으로, 2개의 브랜치는 요소별 합계 연산을 사용하여 함께 합산되어 병합된 특징을 형성한 다음 단계 110에서 1x1 콘볼루션 함수를 수행하여 특징 맵 크기(채널 크기)를 t로 조정한다. 입력 및 출력 채널 크기가 동일한 경우, 즉 m=t이면, 정보가 네트워크에서 하나 이상의 계층을 우회하고 더 깊은 계층의 출력에 직접 추가되도록 하기 위해 스킵 연결(예를 들어, 잔여 연결)이 적용될 수 있다.
따라서, 복수의 특징 맵은 서로 다른 계층 세트로 연속적으로 처리될 수 있으며, 각 계층은 서로 다른 커널로 처리될 수 있다.
도 2는 일 실시 예에 따른, IMDB를 예시한다.
IMDB(information multi-distillation block)는 하드웨어 또는 소프트웨어 상에서 구현될 수 있다. 예를 들어, IMDB는 프로세서(720), 카메라(780), 센서(776) 또는 다른 전자 장치로부터 획득된 입력 이미지 상에서 구현될 수 있다. IMDB의 하나 이상의 단계는 프로세서(720)(또는 컨트롤러)에 의해 수행되도록 지시될 수 있고, 전자 장치(701)에서 수행될 수 있다. 뿐만 아니라, IMDB의 출력은 추가 처리를 위해 추가 프로세서 또는 전자 장치에 제공(예를 들어, 전송)될 수 있다.
도 2를 참조하면, 계층적(계단식) 특징은 단계별로 추출된 다음에, 1×1 콘볼루션 연산을 사용하여 집계된다. 단계 201, 203, 205, 207에서 수행되는 3x3 콘볼루션(예를 들어, 스퀘어 콘볼루션)과 단계 202, 204, 206에서 수행되는 분할이 계층적으로 수행되기 때문에, 도 2에 예시된 캐스케이딩 구성은 하드웨어에서 다른 ISP 함수를 수행하는 데 적합하지 않을 수 있고, 이에 의해 상이한 채널 크기(예를 들어, m, 2m/3, m/3 등)를 갖는 많은 상이한 데이터 세트를 생성한다. 단계 208에서 연결 연산에서 이러한 데이터 세트를 결합하고, 단계 209에서 1x1 콘볼루션 연산을 수행하고, 데이터를 합산하는 것은 많은 ISP 프로세스에 대해 비효율적인 하드웨어 설계일 수 있다. 따라서, 본 명세서에서 개시된 HFMCB 및 HFMCN은 ISP 프로세스를 위한 하드웨어 설계를 위한 개선된 솔루션을 제공한다.
따라서, 본 명세서에 개시된 HFMCB는 정보 다중 증류 네트워크(IMDN)에 상당한 변화를 갖는, 시간차 네트워크(TDN) 및 넓은 잔여 네트워크를 사용할 수 있다. HFMCB는 하드웨어를 효율적인 활용하기 위해 향상된 계산 비용과 정확도 트레이드오프, 네트워크의 깊이의 감소 및 네트워크의 넓이의 증가를 위해, 더 작은 확장률을 가진 3x3 콘볼루션 함수를 사용할 수 있으며, 효율성 향상을 위해 일반 콘볼루션이 아닌 깊이별 분리 가능 콘볼루션을 사용한다. HFMCB는 또한 대비 인식 채널 주의 및 IMDB 내부의 계단식 구조(들)와 같이, 하드웨어를 효율적으로 사용하지 않는 구성 요소를 도한 폐기할 수 있다(예를 들어, 하드웨어에 친숙하지 않은 구성 요소는 폐기될 수 있음). 채널 분할 연산 및 연결 연산은 보다 하드웨어 친화적 연산으로 대체될 수 있다.
일 실시 예에 따르면, HFMCB는 3x3 콘볼루션 및 ReLU 활성화로 구성된 일련의 블록을 포함한다. 블록은 또한 계산 비용을 줄이고 효율성을 높이기 위해 깊이별 분리 가능 콘볼루션과 1x1 콘볼루션의 조합을 사용한다. HFMCB에는 스킵 연결도 포함되어 있어 정보가 네트워크의 하나 이상의 계층을 우회하고 더 깊은 계층의 출력에 직접 추가되어 학습 및 정확도가 향상된다.
HFMCB는 확장 콘볼루션이 블록 내부에서 사용되는 TDN의 기본 아이디어를 사용한다. 하지만, TDN에서와 같이 1x1 콘볼루션을 사용하는 대신에, HFMCB는 계산 비용 및 정확도 절충을 개선하기 위해 확장 속도가 훨씬 더 작은 3x3 콘볼루션을 사용한다. HFMCB는 또한 네트워크의 깊이를 줄이고 네트워크의 폭을 늘리는 더 넓은 잔여 네트워크(ResNet)를 사용하고, 이는 하드웨어가 선호하는 수용 필드를 줄이면서 여전히 개선된 결과를 얻는다.
또한, HFMCB는 IMDN을 기반으로 할 수 있지만 원래 IMDN에 대한 중요한 변경 사항을 포함한다. HFMCB는 대비 인식 채널 주의 및 IMDB 내부의 계단식 구조와 같이 하드웨어에 친숙하지 않은 구성 요소를 폐기할 수 있다. HFMCB는 또한 채널 분할의 동작을 모방하기 위한 2개의 1x1 콘볼루션 및 채널 연결을 대체하기 위한 요소별 합 연산과 같은, 보다 하드웨어 친화적 연산으로 채널 분할 연산 및 연결 연산을 대체할 수 있다. 추가적으로, HFMCB는 소비되는 하드웨어 리소스의 양을 줄이기 위해서, 파라메트릭 ReLU(PReLU)가 아닌 정류된 선형 유닛(ReLU) 함수를 사용한다.
도 3은 일 실시 예에 따른, HFMCN을 예시한다.
HFMCN은 하드웨어 또는 소프트웨어 상에서 구현될 수 있다. 예를 들어, HFMCN은 프로세서(720), 카메라(780), 센서(776) 또는 다른 전자 장치로부터 획득된 입력 이미지 상에 구현될 수 있다. HFMCN의 하나 이상의 단계는 프로세서(720)(또는 제어기)에 의해 수행되도록 지시될 수 있고, 전자 장치(701)에서 수행될 수 있다. 뿐만 아니라, HFMCN의 출력은 추가 처리를 위해 추가 프로세서 또는 전자 장치에 제공(예를 들어, 전송)될 수 있다. 또한, HFMCN은 하드웨어 또는 소프트웨어로 구현되는 다수의 HFMCB를 포함할 수 있다.
도 3을 참조하면, HFMCN은 튜플(m,n,t,k)을 특징으로 한다. 이들 파라미터는 각 HFMCB의 입력 채널 크기(m), 확장 채널 크기(n), 각 블록의 출력 채널 크기(t) 및 HFMCB가 반복되는 횟수(k)를 나타낸다.
입력 이미지는 단계 301에서 제공된다. 입력 영상을 처리하기 위해서, 3x3 콘볼루션 함수를 이용하여 저 수준 특징을 추출하는 콘볼루션 계층을 입력 영상에 적용한다(단계 302). 이러한 특징은 입력 및 출력 채널 크기가 동일한 경우(예를 들어, m=t) 애플리케이션 특정 계층(ASL)을 통과하기 전에 스킵 연결을 사용할 수 있다.
다음으로, 일련의 HFMCB 블록이 단계 303(1) 내지 303(n)에서 함께 적층된다. 각 HFMCB 블록은 도 1에 도시된 HFMCB와 등가일 수 있다. 이 경우, 함께 적층되는 HFMCB 블록의 수는 k일 수 있다. 예를 들어, 5개의 HFMCB 블록이 함께 쌓이면, k는 5이고, 5개의 HFMCB 연산이 발생한다(303(1), 303(2), 303(3), 303(4) 및 303(5)). 단계 304에서, 1x1 콘볼루션 함수가 단계 303(1) 내지 303(n)에서 일련의 HFMCB 블록의 출력에 적용된다.
다음으로, ASL(application-specific layer) 절차는 단계 305에서 수행된다. ASL 절차는 수행 중인 특정 작업에 따라 다르다. 예를 들어, 서브픽셀 업샘플링은 SR 작업을 위해 ASL에서 사용되며, 3x3 콘볼루션 블록은 NR 작업에 사용되며, 3x3 콘볼루션 후 시그모이드 계층이 TNR 관련 작업에서 ASL에 사용된다.
서로 다른 작업에 대해 공통 코어 네트워크 설계를 사용하는 한 가지 이점은 다양한 하드웨어 설계와 호환 가능하고 최적의 복잡성을 제공한다는 것이다.
예를 들어, SR 작업을 위한 HFMCN 네트워크 설계가 아래에 제공된다.
도 4는 일 실시 예에 따른, SR 작업을 위한 HFMCN 네트워크 설계를 도시한다.
도 4를 참조하면, HFMCN의 설계는 (6,8,6,2)의 특정 (m,n,t,k) 구성을 갖는다. 단계 401, 402, 403(1) 내지 403(n) 및 404는 각각 도 3의 단계 301, 302, 303(1) 내지 303(n) 및 304와 유사하고, 단계 401, 402, 403(1) 내지 403(n) 및 404의 설명은 단계 301, 302, 303(1) 내지 303(n) 및 304의 각각의 대응 부분에 대응할 수 있다.
단계 405는 단계 401 내지 404가 수행된 후의 ASL 프로세스(예를 들어, 도 3의 단계(305)와 동일함)를 말한다. 그러나, 단계 405에서 SR의 ASL 프로세스는 성능을 향상하기 위해 서브픽셀 업샘플링을 사용한다.
전반적으로, SR 프로세스에 기초하여 설계된 HFMCN 네트워크는 전통적인 SR 프로세스에 비해 상당한 개선을 제공한다.
도 5는 일 실시 예에 따른, NR 작업을 위한 HFMCN 네트워크 설계를 도시한다.
도 5를 참조하면. HFMCN의 설계는 (6,8,6,2)의 특정한 (m,n,t,k) 구성을 갖는다. 단계 501, 502, 503(1) 내지 503(n) 및 504는 각각 도 3의 단계 301, 302, 303(1) 내지 303(n) 및 304와 유사하고, 단계 501, 502, 503(1) 내지 503(n) 및 504의 설명은 단계 301, 302, 303(1) 내지 303(n) 및 304의 각각의 대응 부분에 대응할 수 있다.
단계 505는 단계 501 내지 504가 수행된 후의 ASL 프로세스(예를 들어, 도 3의 단계(305)와 동일)를 말한다. 그러나, 단계 505에서, NR의 ASL 프로세스는 성능을 향상시키기 위해 3x3 콘볼루션 프로세스를 사용한다.
또한, HFMCN 설계는 TNR 작업에 사용될 수 있다. TNR 작업은 융합 구현과 동일할 수 있다. 예를 들어, HFMCN 설계를 사용하여 효율적인 다단계 비디오 노이즈 제거(EMVD) 프로세스를 구성할 수 있다.
EMVD는 자연 영상에 내재된 공간적 시간적 상관관계를 시간적 융합, 공간적 노이즈 제거, 공간-시간적 세정과 같은, 반복적 형식으로 적용한 처리 단계를 통해 재귀적으로 사용하는 효율적인 영상 노이즈 제거 방법이다.
일 실시 예에 따르면, TNR 작업을 수행하기 위한 HFMCN 융합 구현은 색 변환 단계, 주파수 또는 역주파수 변환 단계 및 융합 단계를 포함할 수 있다. 또한, HFMCN은 4개의 채널 입력과 1개의 채널 출력을 가질 수 있다.
색상 변환 단계에서, 입력 영상이 레드 그린 블루(RGB) 데이터셋에서 YUV 데이터셋으로 변환될 수 있다.
주파수 또는 역주파수 변환 단계는 분해 단계 및 재구성 단계를 포함할 수 있다. 분해 단계는 단일 채널 입력(YUV 데이터 세트로 표시됨)을 wavelet_haar 변환을 사용하여 반해상도 4채널 특징 맵으로 변환하는 단계를 포함할 수 있다.
분해 단계는 1x2x2x4 커널을 입력에 적용하는 2x2 커널 크기, 스트라이드 2 콘볼루션 프로세스를 사용하여 수행될 수 있다. 이 프로세스는 쌍직교 웨이블릿에 기초할 수 있고 입력 주파수를 4개의 서브밴드로 비상관시키도록 설계될 수 있다. 이들 부대역은 저역 통과 부대역(LL) 및 3개의 고역 통과 부대역(LH, HL 및 HH)을 포함할 수 있다.
wavelet_haar 변환의 결과 출력은 주파수 또는 역주파수 변환 단계에서 추가 처리를 위해 사용될 수 있는 반해상도 4채널 특징 맵일 수 있다.
재구성 단계는 wavelet_haar_inverse 함수를 사용하는 단계를 포함할 수 있다. 이 프로세스는 wavelet_haar 변환을 사용하여 4개의 부대역으로 변환된 후에, 입력 신호의 원래 해상도를 복구하는 데 사용될 수 있다.
재구성 단계는 4x1x1x4 커널을 사용하여 1x1 커널 크기, 스트라이드 1 콘볼루션을 수행하는 단계를 포함할 수 있다. 입력 신호의 원래 해상도를 복구하기 위해, 서브픽셀 업샘플링 기술을 적용할 수 있다. 서브픽셀 업샘플링은 이웃 픽셀의 값을 보간하여 이미지의 공간 해상도를 높이는 단계를 포함할 수 있다. 이 경우, 서브픽셀 업샘플링 기술을 사용하여 4개의 부대역에서 반해상도 표현으로부터 입력 신호의 원래 해상도를 복구할 수 있다.
융합 단계에서, 융합을 위한 가중치를 얻기 위해 HFMCN이 사용될 수 있다.
HFMCN은 4개의 채널 입력과 1개의 채널 출력을 가질 수 있다.
도 6은 일 실시 예에 따른, TNR 작업(예를 들어, 융합 구현)을 위한 HFMCN 네트워크 설계를 도시한다.
도 6을 참조하면, HFMCN의 설계는 (6,8,6,2)의 특정 (m,n,t,k) 구성을 갖는다. 단계 601, 602, 603(1) 내지 603(n) 및 604는 각각 도 3의 단계 301, 302, 303(1) 내지 303(n) 및 304와 유사하다. 단계 601, 602, 603(1) 내지 603(n) 및 604의 설명은 단계 301, 302, 303(1) 내지 303(n) 및 304의 각각의 대응 부분에 대응할 수 있다.
단계 605는 단계 601 내지 604가 수행된 후의 ASL 프로세스(예를 들어, 도 3의 단계 305와 동일함)를 말한다. 그러나, 단계 605에서, 융합 작업을 위한 ASL 프로세스는 성능을 향상시키기 위해 3x3 콘볼루션 시그모이드 함수를 사용한다. 도 6의 HFMCN 네트워크 설계는 기존 TDN 네트워크 설계보다 덜 복잡할 수 있다.
도 7은 일 실시 예에 따른 네트워크 환경(700)의 전자 장치의 블록도이다.
도 7을 참조하면, 네트워크 환경(700) 내의 전자 장치(701)는 제 1 네트워크(798)(예: 근거리 무선 통신 네트워크)를 통해 전자 장치(702)와, 또는 제2 네트워크(799)(예: 장거리 무선 통신 네트워크)를 통해 전자 장치(704) 또는 서버(708)와 통신할 수 있다. 전자 장치(701)는 서버(708)를 통하여 전자 장치(704)와 통신할 수 있다. 전자 장치(701)는 프로세서(720), 메모리(730), 입력 장치(750), 출력 장치(755), 디스플레이 장치(760), 오디오 장치(770), 센서 모듈(776), 인터페이스(777), 햅틱 모듈(779), 카메라 모듈(780), 전력 관리 모듈(788), 배터리(789), 통신 모듈(790), 가입자 식별 모듈(SIM) 카드(796) 또는 안테나 모듈(797)를 포함한다. 일 실시 예에서, 구성 요소 중 적어도 하나(예를 들어, 디스플레이 장치(760) 또는 카메라 모듈(780))는 전자 장치(701)에서 생략되거나, 하나 이상의 다른 구성 요소는 전자 장치(701)에 추가될 수 있다. 구성 요소 중 일부는 단일 집적 회로(IC)로 구현될 수 있다. 예를 들어, 센서 모듈(776)(예를 들어, 지문 센서, 홍채 센서 또는 조도 센서)은 디스플레이 장치(760)(예를 들어, 디스플레이)에 내장될 수 있다.
프로세서(720)는 예를 들어, 소프트웨어(예를 들어, 프로그램(740))를 실행하여 프로세서(720)과 연결된 전자 장치(701)의 적어도 하나의 다른 구성 요소(예를 들어, 하드웨어 또는 소프트웨어 구성 요소)를 제어할 수 있으며, 다양한 데이터 처리 또는 계산을 수행할 수 있다.
데이터 처리 또는 계산의 적어도 일부로서, 프로세서(720)는 휘발성 메모리(732)의 다른 구성 요소(예를 들어, 센서 모듈(776) 또는 통신 모듈(790))로부터 수신된 명령 또는 데이터를 로드할 수 있으며, 휘발성 메모리(732)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(734)에 저장한다. 프로세서(720)는 메인 프로세서(721)(예를 들어, CPU 또는 애플리케이션 프로세서(AP)), 및 메인 프로세서(721)와 독립적으로 또는 함께 동작할 수 있는 보조 프로세서(712)(예를 들어, GPU, 이미지 신호 프로세서(ISP)), 센서 허브 프로세서 또는 통신 프로세서(CP))를 포함할 수 있다. 추가적으로 또는 대안적으로, 보조 프로세서(712)는 메인 프로세서(721)보다 적은 전력을 소비하거나 특정 능력을 실행하도록 구성될 수 있다. 보조 프로세서(723)는 메인 프로세서(721)와 별개로 구현될 수도 있고, 그 일부로 구현될 수도 있다.
보조 프로세서(723)는 메인 프로세서(2321)가 비활성(예를 들어, 슬립) 상태에 있는 동안 메인 프로세서(2321) 대신에, 또는 메인 프로세서(721)가 활성 상태(예를 들어, 애플리케이션 실행중)에 있는 동안 메인 프로세서(721)와 함께, 전자 장치(701)의 구성 요소 중 적어도 하나의 구성 요소(예를 들어, 디스플레이 장치(760), 센서 모듈(776) 또는 통신 모듈(790))와 관련된 기능 또는 상태 중 적어도 일부를 제어할 수 있다. 보조 프로세서(712)(예를 들어, 이미지 신호 프로세서 또는 통신 프로세서)는 보조 프로세서(712)와 기능적으로 관련된 다른 구성 요소(예를 들어, 카메라 모듈(780) 또는 통신 모듈(790))의 일부로 구현될 수 있다.
메모리(730)는 전자 장치(701)의 적어도 하나의 구성 요소(예를 들어, 프로세서(720) 또는 센서 모듈(776))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 다양한 데이터는 예를 들어, 소프트웨어(예를 들어, 프로그램(740)) 및 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(730)는 휘발성 메모리(732) 또는 비휘발성 메모리(734)를 포함할 수 있다. 비휘발성 메모리(734)는 내부 메모리(736)와 외부 메모리(738)를 포함할 수 있다.
프로그램(740)은 소프트웨어로서 메모리(730)에 저장될 수 있으며, 예를 들어, 운영 체제(OS)(742), 미들웨어(744) 또는 애플리케이션(746)을 포함할 수 있다.
입력 장치(750)는 전자 장치(701)의 외부(예를 들어, 사용자)로부터 전자 장치(701)의 다른 구성 요소(예를 들어, 프로세서(720))에 의해 사용될 명령 또는 데이터를 수신할 수 있다. 입력 장치(750)는 예를 들어, 마이크, 마우스 또는 키보드를 포함할 수 있다.
음향 출력 장치(755)는 전자 장치(701)의 외부로 음향 신호를 출력할 수 있다. 음향 출력 장치(755)는 예를 들어, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음과 같은 일반적인 용도로 사용될 수 있으며, 수신기는 수신 전화를 수신하는 데 사용될 수 있다. 수신기는 스피커와 분리되거나 스피커의 일부로 구현될 수 있다.
디스플레이 장치(760)는 전자 장치(701)의 외부(예를 들어, 사용자)에게 시각적으로 정보를 제공할 수 있다. 디스플레이 장치(760)는, 예를 들어, 디스플레이, 홀로그램 장치 또는 프로젝터 및 제어 회로를 포함하여 디스플레이, 홀로그램 장치 및 프로젝터 중 대응하는 것을 제어할 수 있다. 디스플레이 장치(760)는 터치를 탐지하도록 구성된 터치 회로, 또는 터치에 의해 발생하는 힘의 강도를 측정하도록 구성된 센서 회로(예를 들어, 압력 센서)를 포함할 수 있다.
오디오 모듈(770)은 소리를 전기적 신호로 변환하거나 그 반대로 변환할 수 있다. 오디오 모듈(770)은 입력 장치(750)을 통해 사운드를 획득하거나, 사운드를 음향 출력 장치(755) 또는 외부 전자 장치(702)의 헤드폰을 통해 전자 장치(701)와 직접(예를 들어, 유선으로) 또는 무선으로 출력한다.
센서 모듈(776)은 전자 장치(701)의 동작 상태(예를 들어, 전원 또는 온도) 또는 전자 장치(701) 외부의 환경 상태(예를 들어, 사용자의 상태)를 탐지하고, 다음에 탐지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성한다. 센서 모듈(776)은, 예를 들어 제스처 센서, 자이로 센서, 대기압 센서, 자기 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, 적외선(IR) 센서, 생체 인식 센서, 온도 센서, 습도 센서 또는 조도 센서일 수 있다.
인터페이스(777)는 전자 장치(701)가 외부 전자 장치(702)와 직접(예를 들어, 유선으로) 또는 무선으로 연결되는 데 사용될 하나 이상의 지정된 프로토콜을 지원할 수 있다. 인터페이스(777)는 예를 들어, 고 해상도 멀티미디어 인터페이스(HDMI), 범용 직렬 버스(USB) 인터페이스, 시큐어 디지털(SD) 카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(778)는 전자 장치(701)가 외부 전자 장치(702)와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 연결 단자(778)는 예를 들어, HDMI 커넥터, USB 커넥터, SD 카드 커넥터 또는 오디오 커넥터(예를 들어, 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(779)은 전기적 신호를 기계적 자극(예를 들어, 진동 또는 움직임) 또는 촉감 또는 운동 감각을 통해 사용자가 인식할 수 있는 전기적 자극으로 변환할 수 있다. 햅틱 모듈(779)은 예를 들어, 모터, 압전 소자 또는 전기 자극기를 포함할 수 있다.
카메라 모듈(780)은 정지 영상 또는 동영상을 촬영할 수 있다. 카메라 모듈(780)은 하나 이상의 렌즈, 이미지 센서, ISP 또는 플래시를 포함할 수 있다.
전력 관리 모듈(788)은 전자 장치(701)에 공급되는 전력을 관리할 수 있다. 전력 관리 모듈(788)은 예를 들어, 전력 관리 집적 회로(PMIC)의 적어도 일부로 구현될 수 있다.
배터리(789)는 전자 장치(701)의 적어도 하나의 구성 요소에 전원을 공급할 수 있다. 배터리(789)는 예를 들어, 충전이 불가능한 1 차 전지, 충전 가능한 2 차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(790)은 전자 장치(701)과 외부 전자 장치(예를 들어, 전자 장치(702), 전자 장치(704) 또는 서버(708)) 간의 직접적인(예를 들어, 유선) 통신 채널 또는 무선 통신 채널 설정을 지원하고, 설정된 통신 채널을 통해 통신을 수행하는 것을 지원할 수 있다. 통신 모듈(790)은 프로세서(720)(예를 들어, AP)와 독립적으로 동작할 수 있는 하나 이상의 CP를 포함할 수 있으며, 직접(예를 들어, 유선) 통신 또는 무선 통신을 지원한다. 통신 모듈(790)은 무선 통신 모듈(792)(예를 들어, 셀룰러 통신 모듈, 근거리 무선 통신 모듈 또는 글로벌 위성 항법 시스템(GNSS) 통신 모듈) 또는 유선 통신 모듈(794)(예를 들어, 근거리 통신망(LAN) 통신 모듈 또는 전력선 통신(PLC) 모듈)를 포함할 수 있다. 이러한 통신 모듈 중 해당하는 모듈은 제1 네트워크(798)(예를 들어, Bluetooth®, 무선 피델리티(Wi-Fi) 다이렉트, 또는 적외선 데이터 협회(IrDA) 표준과 같은 단거리 통신 네트워크) 또는 제2 네트워크(799)(예를 들어, 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예를 들어, LAN 또는 광역 네트워크(WAN))와 같은 장거리 통신 네트워크)를 통해 외부 전자 장치와 통신할 수 있다. Bluetooth®는 워싱턴 커클랜드 소재의 Bluetooth SIG, Inc.의 등록 상표이다. 이러한 다양한 유형의 통신 모듈은 단일 구성 요소(예를 들어, 단일 IC)로 구현될 수 있으며, 서로 분리된 여러 구성 요소(예를 들어, 다수의 IC)로 구현될 수 있다. 무선 통신 모듈(792)는 가입자 식별 모듈(796)에 저장된 가입자 정보(예를 들어, 국제 모바일 가입자 식별자(IMSI))를 사용하여, 제1 네트워크(798) 또는 제2 네트워크(799)와 같은 통신 네트워크에서 전자 장치(701)를 식별하고 인증할 수 있다.
안테나 모듈(797)은 전자 장치(701)의 외부(예를 들어, 외부 전자 장치)와 신호 또는 전원을 송수신할 수 있다. 안테나 모듈(797)은 하나 이상의 안테나를 포함할 수 있으며, 이중에서, 제1 네트워크(798) 또는 제2 네트워크(799)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나를 통신 모듈(790)(예를 들어, 무선 통신 모듈(792))에 의해 선택할 수 있다. 그러면 선택된 적어도 하나의 안테나를 통해 통신 모듈(790)과 외부 전자 장치간에 신호 또는 전력이 송수신될 수 있다.
명령 또는 데이터는 제2 네트워크(799)와 결합된 서버(708)를 통해 전자 장치(701)와 외부 전자 장치(704) 사이에서 송수신될 수 있다. 각각의 전자 장치(702, 704)는 전자 장치(701)와 동일한 유형 또는 이와 다른 유형의 장치일 수 있다. 전자 장치(701)에서 실행될 동작의 전부 또는 일부는 외부 전자 장치(702, 704, 708) 중 하나 이상에서 실행될 수 있다. 예를 들어, 전자 장치(701)가 자동으로 또는 사용자 또는 다른 장치의 요청에 따라, 기능 또는 서비스를 수행해야 하는 경우, 전자 장치(701)는 기능 또는 서비스를 실행하는 대신에, 또는 그에 추가하여, 하나 이상의 외부 전자 장치에 기능 또는 서비스의 적어도 일부를 수행하도록 요청할 수 있다. 요청을 수신한 하나 이상의 외부 전자 장치는 요청된 기능 또는 서비스의 적어도 일부, 또는 요청과 관련된 추가 기능 또는 추가 서비스를 수행할 수 있으며, 수행의 결과를 전자 장치(701)로 전달한다. 전자 장치(701)는 결과를, 요청에 대한 응답의 적어도 일부로서, 결과의 추가 처리를 포함하거나 포함하지 않고 제공할 수 있다. 이를 위해, 예를 들어 클라우드 컴퓨팅, 분산 컴퓨팅 또는 클라이언트-서버 컴퓨팅 기술이 사용될 수 있다.
본 명세서에 기술된 주제 및 동작의 실시 예는 본 명세서에서 개시된 구조 및 이들의 구조적 등가물, 또는 이들 중 하나 이상의 조합을 포함하여, 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 본 명세서에서 설명하는 주제의 실시 예는 하나 이상의 컴퓨터 프로그램, 즉, 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 작동을 제어하기 위해 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 대안으로 또는 추가적으로, 프로그램 명령어는 인위적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있으며, 이는 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하도록 생성된다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 장치, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들의 조합일 수 있거나 이에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령어의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 하나 이상의 별도의 물리적 구성 요소 또는 매체(예를 들어, 여러 CD, 디스크 또는 기타 저장 장치)이거나 이에 포함될 수 있다. 또한, 본 명세서에서 설명하는 동작은 하나 이상의 컴퓨터 판독 가능 저장 장치에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로 구현될 수 있다.
본 명세서는 많은 특정 구현 세부사항을 포함할 수 있지만, 구현 세부 사항은 청구된 주제의 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 실시 예에 특정한 특징에 대한 설명으로 해석되어야 한다. 별도의 실시 예의 맥락에서 본 명세서에 설명된 특정 특징은 또한 단일 실시 예에서 조합하여 구현될 수 있다. 역으로, 단일 실시 예의 맥락에서 설명된 다양한 특징이 또한 다수의 실시 예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 더구나, 기능이 특정 조합으로 작용하는 것으로 설명되고 초기에 이와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 경우에 따라 이 조합에서 배제될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작이 특정 순서로 도면에 도시되어 있지만, 이것은 이러한 동작이 바람직한 결과를 달성하기 위해서 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 예시된 모든 동작이이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술된 실시 예에서 다양한 시스템 구성요소의 분리는 모든 실시 예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 구성 요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품으로 패키지화될 수 있음을 이해해야 한다.
따라서, 본 주제의 특정 실시 예는 본 명세서에 기술되었다. 다른 실시 예는 다음 청구 범위 내에 있다. 경우에 따라, 청구범위에 명시된 조치가 다른 순서로 수행되어도 원하는 결과를 얻을 수 있다. 추가적으로, 첨부된 도면에 도시된 프로세스는 원하는 결과를 얻기 위해서, 표시된 특정 순서 또는 순차적인 순서를 반드시 요구하지 않는다. 특정 구현에서, 멀티태스킹 및 병렬 처리가 바람직할 수 있다.
당업자가 인식하는 바와 같이, 본 명세서에서 설명된 혁신적인 개념은 광범위한 애플리케이션에 걸쳐 수정 및 변경될 수 있다. 따라서, 청구된 주제의 범위는 상술된 특정한 예시적인 교시에 제한되어서는 안되고, 대신 다음 청구범위에 의해 정의되어야 한다.

Claims (20)

  1. 하드웨어 친화적 다중 커널 콘볼루션 블럭(HFMCB; hardware friendly multi-kernel convolution block)을 사용하여 특징 맵을 처리하고 결합하는 방법에 있어서,
    입력된 특징 맵을 복수의 특징 맵으로 분할하는 단계로, 상기 복수의 특징 맵의 각각은 감소된 채널 수를 가지는 단계;
    상기 복수의 특징 맵의 각각을 서로 다른 일련의 커널(series of kernels)로 처리하는 단계; 및
    상기 처리된 복수의 특징 맵을 결합하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 입력된 특징 맵을 상기 복수의 특징 맵으로 분할하는 단계는,
    상기 복수의 특징 맵의 각각에 대한 채널 수를 줄이기 위해 1x1 콘볼루션 함수를 적용하는 단계를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 복수의 특징 맵의 각각에 대해 상기 감소된 채널 수는 동일한, 방법.
  4. 제3항에 있어서,
    상기 처리된 복수의 특징 맵을 결합하는 단계는, 상기 복수의 특징 맵의 가중 합을 적용하는 단계를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 복수의 특징 맵의 각각을 처리하는 단계는,
    상기 복수의 특징 맵에 포함된 특징 맵의 진부분 집합(proper subset)에 깊이별 분리 가능 콘볼루션 함수를 적용하는 단계를 포함하는, 방법.
  6. 제1항에 있어서,
    상기 복수의 특징 맵의 각각은 상기 서로 다른 일련의 커널과 병렬로 처리되는, 방법.
  7. 제1항에 있어서,
    상기 복수의 특징 맵의 각각은 고유한 수용 필드(unique receptive field)를 포함하는, 방법.
  8. 하드웨어 친화적 다중 커널 콘볼루션 블럭(HFMCB)을 사용하여 특징 맵을 처리하고 결합하기 위한 전자 장치에 있어서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 동작 가능하게 연결된 적어도 하나의 메모리
    를 포함하고,
    상기 적어도 하나의 메모리는, 실행될 때 상기 적어도 하나의 프로세서로 하여금,
    입력된 특징 맵을 복수의 특징 맵으로 분할하는 단계로, 상기 복수의 특징 맵 각각은 감소된 수의 채널을 가지는 단계,
    상기 복수의 특징 맵의 각각을 서로 다른 일련의 커널로 처리하는 단계,
    상기 처리된 복수의 특징 맵을 결합하는 단계를 수행함으로써,
    상기 HFMCB를 사용하여 상기 특징 맵을 처리하고 결합하는 방법을 수행하도록 명령하는 명령어를 저장하는, 전자 장치.
  9. 제8항에 있어서,
    상기 입력된 특징 맵을 상기 복수의 특징 맵으로 분할하는 단계는,
    상기 복수의 특징 맵의 각각에 대한 채널 수를 줄이기 위해 1x1 콘볼루션 함수를 적용하는 단계를 포함하는, 전자 장치.
  10. 제8항에 있어서,
    상기 복수의 특징 맵의 각각에 대해 상기 감소된 수의 채널은 동일한, 전자 장치.
  11. 제10항에 있어서,
    상기 처리된 복수의 특징 맵을 결합하는 단계는, 상기 복수의 특징 맵의 가중 합을 적용하는 단계를 포함하는, 전자 장치.
  12. 제8항에 있어서,
    상기 복수의 특징 맵의 각각을 처리하는 단계는, 상기 복수의 특징 맵에 포함된 특징 맵의 진부분 집합(proper subset)에 깊이별 분리 가능 콘볼루션 함수를 적용하는 단계를 포함하는, 전자 장치.
  13. 제8항에 있어서,
    상기 복수의 특징 맵의 각각은 상기 서로 다른 일련의 커널과 병렬로 처리되는, 전자 장치.
  14. 제8항에 있어서,
    상기 복수의 특징 맵의 각각은 고유한 수용 필드를 포함하는, 전자 장치.
  15. 하나 이상의 하드웨어 친화적 다중 커널 콘볼루션 블록(HFMCB)을 사용하여 입력 이미지에 하드웨어 친화적 다중 커널 콘볼루션 네트워크(HFMCN)를 적용하는 방법에 있어서,
    특징 맵의 채널 크기를 제1 채널 수에서 제2 채널 수로 증가시키는 깊이별 분리 가능 콘볼루션 함수를 상기 입력 이미지에 적용하는 단계;
    상기 하나 이상의 HFMCB를 상기 제2 채널 수를 갖는 상기 특징 맵에 적용하는 단계로서, 상기 하나 이상의 HFMCB를 적용하는 단계는,
    상기 특징 맵을 복수의 특징 맵으로 분할하는 단계로, 상기 복수의 특징 맵의 각각은 상기 제2 채널 수보다 적은 제3 채널 수를 가지는 단계와,
    상기 복수의 특징 맵의 각각을 서로 다른 일련의 커널로 처리하는 단계를 포함하는 단계;
    상기 처리된 복수의 특징 맵을 결합하는 단계; 및
    애플리케이션 특정 계층(ASL)을 사용하여 상기 결합된 복수의 특징 맵을 처리하여 처리된 출력 이미지를 출력하는 단계를 포함하는, 방법.
  16. 제15항에 있어서,
    상기 ASL을 사용하여 상기 결합된 복수의 특징 맵을 처리하는 단계는,
    상기 결합된 복수의 특징 맵에 서브픽셀 업샘플링 함수를 적용하는 단계,
    상기 복수의 특징 맵에 제곱 콘볼루션 함수를 적용하는 단계, 또는
    기 처리된 출력 이미지를 획득하기 위해 상기 복수의 특징 맵에 제곱 콘볼루션 시그모이드 함수를 적용하는 단계 중 적어도 하나를 포함하는, 방법.
  17. 제15항에 있어서,
    상기 입력 이미지에 상기 깊이별 분리 가능 콘볼루션 함수를 적용하는 단계는, 상기 특징 맵의 상기 채널 크기를 상기 제1 채널 수에서 상기 제2 채널 수로 늘리기 위해 스퀘어 콘볼루션 함수를 상기 입력 이미지에 적용하는 단계를 포함하는, 방법.
  18. 제15항에 있어서,
    상기 복수의 특징 맵의 각각을 처리하는 단계는, 상기 복수의 특징 맵에 포함된 특징 맵의 진부분 집합(proper subset)에 상기 깊이별 분리 가능 콘볼루션 함수를 적용하는 단계를 포함하는, 방법.
  19. 제15항에 있어서,
    상기 처리된 복수의 특징 맵을 결합하는 단계는, 상기 복수의 특징 맵의 가중 합을 적용하는 단계를 포함하는, 방법.
  20. 제15항에 있어서,
    상기 복수의 특징 맵의 각각은 고유한 수용 필드를 포함하는, 방법.
KR1020230131819A 2022-10-17 2023-10-04 하드웨어 친화적 다중 커널 콘볼루션 네트워크 KR20240053525A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263416781P 2022-10-17 2022-10-17
US63/416,781 2022-10-17
US18/320,745 US20240127589A1 (en) 2022-10-17 2023-05-19 Hardware friendly multi-kernel convolution network
US18/320,745 2023-05-19

Publications (1)

Publication Number Publication Date
KR20240053525A true KR20240053525A (ko) 2024-04-24

Family

ID=90469666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230131819A KR20240053525A (ko) 2022-10-17 2023-10-04 하드웨어 친화적 다중 커널 콘볼루션 네트워크

Country Status (3)

Country Link
US (1) US20240127589A1 (ko)
KR (1) KR20240053525A (ko)
DE (1) DE102023121895A1 (ko)

Also Published As

Publication number Publication date
DE102023121895A1 (de) 2024-04-18
US20240127589A1 (en) 2024-04-18

Similar Documents

Publication Publication Date Title
Wu et al. Shift: A zero flop, zero parameter alternative to spatial convolutions
US11341399B2 (en) Reducing power consumption in a neural network processor by skipping processing operations
Paszke et al. Enet: A deep neural network architecture for real-time semantic segmentation
US11861484B2 (en) Neural processing unit (NPU) direct memory access (NDMA) hardware pre-processing and post-processing
CN110263909A (zh) 图像识别方法及装置
WO2020074989A1 (en) Data representation for dynamic precision in neural network cores
TWI834814B (zh) 用於提供旋轉不變神經網路的方法及系統
CN114519667A (zh) 一种图像超分辨率重建方法及系统
CN111178495B (zh) 用于检测图像中极小物体的轻量卷积神经网络
CN111882053B (zh) 一种基于拼接卷积的神经网络模型压缩方法
WO2017112087A1 (en) Reconstruction of signals using a gramian matrix
US11569843B2 (en) Compressing device and method using parameters of quadtree method
KR20240053525A (ko) 하드웨어 친화적 다중 커널 콘볼루션 네트워크
US11403782B2 (en) Static channel filtering in frequency domain
CN109711538B (zh) 运算方法、装置及相关产品
CN117910524A (zh) 硬件友好的多内核卷积网络
TW202418145A (zh) 使用硬體友好多核心卷積區塊處理和組合特徵圖的方法、電子設備以及應用硬體友好多核心卷積網路的方法
US11556768B2 (en) Optimization of sparsified neural network layers for semi-digital crossbar architectures
EP4053753A1 (en) Operation apparatus and related product
WO2021179117A1 (zh) 神经网络通道数搜索方法和装置
TW202240535A (zh) 用於影像處理的方法及系統
CN112580772B (zh) 卷积神经网络的压缩方法及装置
US11507349B2 (en) Neural processing element with single instruction multiple data (SIMD) compute lanes
CN111242299A (zh) 基于ds结构的cnn模型压缩方法、装置及存储介质
KR20240027526A (ko) 신경 아키텍처 검색을 위한 시스템 및 방법