KR20220105024A - Method for Computing Convolutional neural network - Google Patents

Method for Computing Convolutional neural network Download PDF

Info

Publication number
KR20220105024A
KR20220105024A KR1020210007555A KR20210007555A KR20220105024A KR 20220105024 A KR20220105024 A KR 20220105024A KR 1020210007555 A KR1020210007555 A KR 1020210007555A KR 20210007555 A KR20210007555 A KR 20210007555A KR 20220105024 A KR20220105024 A KR 20220105024A
Authority
KR
South Korea
Prior art keywords
convolutional
layer
pooling
neural network
filter
Prior art date
Application number
KR1020210007555A
Other languages
Korean (ko)
Other versions
KR102466156B1 (en
Inventor
유상덕
Original Assignee
주식회사 에이아이웨어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에이아이웨어 filed Critical 주식회사 에이아이웨어
Priority to KR1020210007555A priority Critical patent/KR102466156B1/en
Publication of KR20220105024A publication Critical patent/KR20220105024A/en
Application granted granted Critical
Publication of KR102466156B1 publication Critical patent/KR102466156B1/en

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/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
    • 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
    • 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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Error Detection And Correction (AREA)
  • Image Analysis (AREA)

Abstract

Disclosed is a method for computing a convolutional neural network, comprising: an input image provision step to provide an input image to be computed; a Fourier transform step to perform the Fourier transform on image data of the input image; a first convolutional step to compute the image data by the Fourier transform with a first convolutional filter and output a first convolutional layer; a first pooling step to apply a first pooling filter to the first convolutional layer, and output a first pooling layer which is relatively simplified compared with the first convolutional layer; a second convolutional step to apply a second convolutional filter to the first pooling layer and output a second convolutional layer; a second pooling step to apply a second pooling filter to the second convolutional layer and output a second pooling layer which is relatively simplified compared with the second convolutional layer; a hidden layer step to receive the second pooling layer and forming a hidden layer; and an image information output step to output image information of the hidden layer. The present invention aims to provide a method for computing a convolutional neural network, which is capable of conducting the computation more simply.

Description

컨벌루셔널 신경망 연산 방법{Method for Computing Convolutional neural network}Method for Computing Convolutional Neural Network

본 발명은 의미론적 분할(semantic segmentation)을 위한 완전 컨벌루셔널 신경망을 연산하는 컨벌루셔널 신경망 연산 방법에 관한 것이다.The present invention relates to a convolutional neural network computation method for computing a fully convolutional neural network for semantic segmentation.

이미지 데이터의 딥러닝(Deep Learning) 연산에서 사용되는 컨벌루셔널 신경망(Convolutional neural Network)은 컨벌루션 필터가 입력 이미지 데이터를 순회하면서 컨벌루션(Convolution; 합성곱) 과정을 이용하여 특징 맵(feature map)을 만들 수 있다. 이때, 상기 컨벌루션층(Convolution layer)은 Stride, padding, max pooling 크기에 따라서 이미지 데이터의 쉐입(shape)이 변경된다. 상기 컨벌루션(Convolution) 과정은 컨벌루션 필터와 이미지 데이터의 합성곱으로 계산될 수 있다. 특히, 딥러닝의 경우 많은 컨벌루션층을 보유하고 있을 수 있다. 또한, 히든 레이어(Hidden Layer)가 많아 질 수록 컨벌루션 과정에서의 연산이 많아지게 되어 연산량이 기하급수적으로 증가할 수 있다.A convolutional neural network used in deep learning operation of image data uses a convolution (convolution) process while a convolutional filter traverses input image data to generate a feature map. can make In this case, the shape of the image data of the convolution layer is changed according to the stride, padding, and max pooling sizes. The convolution process may be calculated as a convolution of a convolution filter and image data. In particular, deep learning may have many convolutional layers. In addition, as the number of hidden layers increases, the number of operations in the convolution process increases, so that the amount of operations may increase exponentially.

본 발명은 컨벌루셔널 신경망의 컨벌루션 과정에서 연산량을 줄일 수 있는 컨벌루셔널 신경망 연산 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a convolutional neural network computation method capable of reducing the amount of computation in a convolution process of a convolutional neural network.

상기와 같은 과제를 해결하기 위한 본 발명의 컨벌루셔널 신경망 연산 방법은 연산 대상이 되는 입력 이미지를 제공하는 입력 이미지 제공 과정과, 상기 입력 이미지의 이미지 데이터를 퓨리에 변환하는 퓨리에 변환 과정과, 상기 퓨리에 변환에 의한 상기 이미지 데이터를 제 1 컨벌루셔널 필터와 연산하여 제 1 컨벌루셔널 레이어를 출력하는 제 1 컨벌루셔널 과정과, 제 1 컨벌루셔널 레이어에 제 1 풀링 필터를 적용하여 제 1 컨벌루셔널 레이어보다 상대적으로 단순화된 제 1 풀링 레이어를 출력하는 제 1 풀링 과정과, 제 1 풀링 레이어에 제 2 컨벌루셔널 필터를 적용하여 제 2 컨벌루셔널 레이어를 출력하는 제 2 컨벌루셔널 과정과, 제 2 컨벌루셔널 레이어에 제 2 풀링 필터를 적용하여 제 2 컨벌루셔널 레이어보다 상대적으로 단순화된 제 2 풀링 레이어를 출력하는 제 2 풀링 과정과, 상기 제 2 풀링 레이어를 입력받아 히든 레이어를 형성하는 히든 레이어 과정 및 상기 히든 레이어의 이미지 정보를 출력하는 이미지 정보 출력 과정을 포함하는 것을 특징으로 한다.The convolutional neural network computation method of the present invention for solving the above problems includes an input image providing process for providing an input image to be computed, a Fourier transform process for Fourier transforming image data of the input image, and the Fourier A first convolutional process for outputting a first convolutional layer by calculating the image data by transformation with a first convolutional filter, and a first convolutional process by applying a first pooling filter to the first convolutional layer A first pooling process for outputting a first pooling layer that is relatively simplified than a convolutional layer, and a second convolutional process for outputting a second convolutional layer by applying a second convolutional filter to the first pooling layer and a second pooling process of applying a second pooling filter to the second convolutional layer to output a second pooling layer that is relatively simpler than the second convolutional layer, and a hidden layer by receiving the second pooling layer It characterized in that it comprises a hidden layer process for forming and an image information output process for outputting image information of the hidden layer.

또한, 상기 컨벌루셔널 신경망 연산 방법은 상기 제 2 풀링 과정 후에 상기 제 2 풀링 레이어의 데이터를 다시 인버스 변환하는 인버스 변환 과정을 더 포함하며, 상기 히든 레이어 과정은 상기 인버스 변환된 이미지 데이터를 입력받아 진행할 수 있다.In addition, the convolutional neural network calculation method further includes an inverse transformation process of inverse transforming the data of the second pooling layer again after the second pooling process, wherein the hidden layer process receives the inverse transformed image data can proceed.

또한, 상기 컨벌루셔널 신경망 연산 방법은 상기 제 1 컨벌루셔널 과정이 상기 퓨리에 변환되어 복소수의 형태를 가지는 이미지 데이터의 진폭만으로 연산을 진행할 수 있다.Also, in the convolutional neural network calculation method, the first convolutional process may be Fourier transformed and the calculation may be performed only with amplitudes of image data having a form of a complex number.

본 발명의 컨벌루셔널 신경망 연산 방법은 컨벌루션 과정을 퓨리에 영역에서 진행하여 컨벌루션 필터와 이미지 데이터의 연산이 합성곱이 아닌 덧셈과 뺄셈으로 정의되므로 간단하게 연산을 진행할 수 있다.In the convolutional neural network calculation method of the present invention, since the convolution process is performed in the Fourier domain, the operation of the convolution filter and the image data is defined as addition and subtraction rather than convolution, so the operation can be performed simply.

또한, 상기 컨벌루션 신경망 연산 방법은 퓨리에 계수를 이용하여 이미지 데이터를 진폭과 위상으로 분할하며, 컨벌루션 과정이 진폭만의 연산만으로 진행되므로 연산량을 절반으로 감소시킬 수 있다. In addition, the convolutional neural network calculation method divides image data into amplitude and phase using Fourier coefficients, and since the convolution process is performed only by calculating only the amplitude, the amount of computation can be reduced by half.

또한, 상기 컨벌루셔널 신경망 연산 방법은 분할된 위상이 컨벌루션 과정에서 변화하지 않으므로 위상에 의한 위치 정보를 변화없이 보존이 가능할 수 있다.In addition, in the convolutional neural network calculation method, since the divided phase does not change during the convolution process, it may be possible to preserve the position information by the phase without change.

도 1은 본 발명의 일 실시예에 따른 컨벌루셔널 신경망의 개략적인 구성도이다.
도 2는 본 발명의 일 실시예에 따른 컨벌루셔널 신경망 연산 방법의 순서도이다.
1 is a schematic configuration diagram of a convolutional neural network according to an embodiment of the present invention.
2 is a flowchart of a method for calculating a convolutional neural network according to an embodiment of the present invention.

이하에서 실시예와 첨부한 도면을 참조하여 본 발명의 컨벌루셔널 신경망 연산 방법에 대하여 보다 구체적으로 설명한다.Hereinafter, a method for calculating a convolutional neural network of the present invention will be described in more detail with reference to embodiments and accompanying drawings.

먼저, 본 발명의 컨벌루셔널 신경망 연산 방법이 적용되는 컨벌루셔널 신경망의 구성에 대하여 개략적으로 설명한다.First, a configuration of a convolutional neural network to which the convolutional neural network calculation method of the present invention is applied will be schematically described.

도 1은 본 발명의 일 실시예에 따른 컨벌루셔널 신경망의 개략적인 구성도이다.1 is a schematic configuration diagram of a convolutional neural network according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 컨벌루셔널 신경망 연산 방법이 적용되는 컨벌루셔널 신경망은, 도 1을 참조하면, 입력 이미지와, 복수 개의 컨벌루셔널 레이어와 복수 개의 풀링 레이어와 히든 레이어 및 출력 이미지를 포함할 수 있다.Referring to FIG. 1 , a convolutional neural network to which the convolutional neural network calculation method according to an embodiment of the present invention is applied is an input image, a plurality of convolutional layers, a plurality of pooling layers, a hidden layer, and an output image. may include

상기 컨벌루셔널 신경망은 컨벌루셔널 레이어를 포함할 수 있다. 상기 컨벌루셔널 신경망은 하나 또는 복수 개의 컨벌루셔널 레이어 및 이들과 결합되는 인공 신경망 계층들로 구성될 수 있다. 상기 컨벌루셔널 신경망은 하나 또는 복수 개의 풀링 레이어를 포함할 수 있다. 상기 컨벌루셔널 신경망은 상기와 같은 구조로 인하여 2차원 구조의 입력 이미지를 충분히 활용할 수 있다. 상기 컨벌루셔널 신경망은 입력 이미지의 이미지 데이터를 차원을 가진 행렬로 나타내어 처리할 수 있다.The convolutional neural network may include a convolutional layer. The convolutional neural network may be composed of one or a plurality of convolutional layers and artificial neural network layers combined therewith. The convolutional neural network may include one or a plurality of pooling layers. The convolutional neural network can fully utilize an input image having a two-dimensional structure due to the structure as described above. The convolutional neural network may process image data of an input image by representing it as a matrix having a dimension.

상기 컨벌루셔널 신경망은 컨벌루셔널 과정을 통하여 이미지로부터 컨벌루셔널 레이어를 출력할 수 있다. 상기 컨벌루셔널 과정은 컨벌루셔널 필터와 이미지의 정보를 이용하여 컨벌루셔널 레이어를 출력하는 과정이다. 여기서, 상기 컨벌루셔널 필터는 n*n 형태의 행렬로 구성될 수 있다. 상기 컨벌루셔널 필터는 이미지로부터 추출하고자 하는 성분에 따라 다양한 형태로 형성될 수 있다. 상기 컨벌루셔널 필터는 추출하고자 하는 성분의 개수에 따라 복수 개로 구성될 수 있다. 상기 컨벌루셔널 레이어는 입력 이미지에 컨벌루셔널 필터를 적용하여 입력 이미지에서 컨벌루셔널 필터와 매칭되는 특징(feature)를 포함할 수 있다. The convolutional neural network may output a convolutional layer from an image through a convolutional process. The convolutional process is a process of outputting a convolutional layer by using a convolutional filter and image information. Here, the convolutional filter may be configured as an n*n matrix. The convolutional filter may be formed in various forms according to components to be extracted from the image. The convolutional filter may be configured in plurality according to the number of components to be extracted. The convolutional layer may include a feature matching the convolutional filter in the input image by applying the convolutional filter to the input image.

상기 풀링 과정은 풀링 필터를 컨벌루셔널 레이어에 적용하여 컨벌루셔널 레이어보다 상대적으로 단순화된 풀링 레이어를 출력하는 과정이다. 상기 풀링 필터는 컨벌루셔널 필터의 n*n 형태의 행렬보다 작은 m*m 형태의 행렬로 형성될 수 있다. 예를 들면, 상기 컨벌류셔널 필터가 3*3 형태의 행렬이면, 풀링 필터는 2*2 형태의 행렬을 가질 수 있다. 상기 풀링 과정에서는 컨벌루셔널 레이어의 이미지의 각 픽셀에서 풀링 필터의 m*m 패치마다 각 패치에 포함되는 최대값을 출력하여 이미지를 압축할 수 있다. 또한, 상기 풀링 과정은 패치에서 최소값을 출력하거나 패치의 평균값을 출력하여 이미지를 압축할 수 있다.The pooling process is a process of applying a pooling filter to the convolutional layer to output a pooling layer that is relatively simpler than the convolutional layer. The pooling filter may be formed as an m*m matrix smaller than the n*n matrix of the convolutional filter. For example, if the convolutional filter is a 3*3 matrix, the pooling filter may have a 2*2 matrix. In the pooling process, for each m*m patch of the pooling filter in each pixel of the image of the convolutional layer, the maximum value included in each patch may be output to compress the image. In addition, the pooling process may compress an image by outputting a minimum value from the patch or outputting an average value of the patch.

상기 컨벌루셔널 신경망은 컨벌루셔널 과정과 풀링 과정을 반복적으로 수행하여 입력 이미지에서 특징을 추출할 수 있다. The convolutional neural network may extract features from an input image by repeatedly performing a convolutional process and a pooling process.

상기 히든 레이어는 컨벌루셔널 레이어 또는 풀링 레이어의 출력을 입력받을 수 있다. 상기 히든 레이어는 하나의 레이어에 있는 모든 뉴런과 이웃하는 레이어에 있는 뉴런이 연결되는 레이어일 수 있다. 상기 히든 레이어는 신경망에서 각 레이어의 모든 노드가 다른 레이어의 모든 노드에 연결되는 레이어일 수 있다. The hidden layer may receive an output of a convolutional layer or a pooling layer. The hidden layer may be a layer in which all neurons in one layer and neurons in a neighboring layer are connected. The hidden layer may be a layer in which all nodes of each layer are connected to all nodes of other layers in the neural network.

다음은 본 발명의 일 실시예에 따른 컨벌루셔널 신경망 연산 방법에 대하여 설명한다.Next, a method for calculating a convolutional neural network according to an embodiment of the present invention will be described.

도 2는 본 발명의 일 실시예에 따른 컨벌루셔널 신경망 연산 방법의 순서도이다.2 is a flowchart of a method for calculating a convolutional neural network according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 컨벌루셔널 신경망 연산 방법은, 도 2를 참조하면, 입력 이미지 제공 과정과 퓨리에(Fourier) 변환 과정과 제 1 컨벌루셔널 과정과 제 1 풀링 과정과 제 2 컨벌루셔널 과정과 제 2 풀링 과정과 인버스 변환 과정과 히든 레이어(hidden layer) 과정 및 이미지 정보 출력 과정을 포함할 수 있다. Referring to FIG. 2 , a method for calculating a convolutional neural network according to an embodiment of the present invention includes an input image providing process, a Fourier transform process, a first convolutional process, a first pooling process, and a second convolutional process. It may include a shunal process, a second pooling process, an inverse transformation process, a hidden layer process, and an image information output process.

상기 컨벌루셔널 신경망 연산 방법은 컨벌루셔널 과정과 풀링 과정을 반복적으로 수행하여 입력 이미지에서 특징을 추출할 수 있다. 상기 컨벌루셔널 신경망 연산 방법은 2개의 컨벌루셔널 과정과 2개의 풀링 과정을 포함하는 것으로 기재하였으나, 입력 이미지의 특징과 추출하고자 하는 이미지의 특성에 따라 1개의 컨벌루셔널 과정과 1개의 풀링 과정 또는 복수 개의 컨벌루셔널 과정과 복수 개의 폴링 과정을 포함하여 이루어질 수 있다.The convolutional neural network calculation method may extract features from an input image by repeatedly performing a convolutional process and a pooling process. Although the convolutional neural network calculation method has been described as including two convolutional processes and two pooling processes, one convolutional process and one pooling process are described according to the characteristics of the input image and the characteristics of the image to be extracted. Alternatively, a plurality of convolutional processes and a plurality of polling processes may be included.

상기 입력 이미지 제공 과정은 연산 대상이 되는 입력 이미지를 제공하는 과정이다. 상기 입력 이미지는 카메라에 의하여 생성된 이미지일 수 있다. 상기 입력 이미지는 딥러닝에 의하여 학습이 진행되어야 하는 이미지일 수 있다. 예를 들면, 상기 입력 이미지는 제품 제조 공정 라인에서 획득한 이미지일 수 있으며, 제조 공정이 진행되는 제조 장치를 포함하는 이미지일 수 있다.The process of providing the input image is a process of providing an input image to be calculated. The input image may be an image generated by a camera. The input image may be an image to be learned through deep learning. For example, the input image may be an image acquired in a product manufacturing process line, and may be an image including a manufacturing device in which the manufacturing process is performed.

상기 퓨리에 변환 과정은 입력 이미지의 이미지 데이터를 퓨리에 변환하는 과정이다. 상기 입력 이미지의 이미지 데이터는 퓨리에 변환을 통하여 진폭과 위상으로 분할될 수 있다. 상기 이미지 데이터는 진폭과 연결되는 특징과 위상과 연계되는 위치 정보로 분리될 수 있다. 따라서, 상기 이미지 데이터에서 데이터 값의 특징은 진폭에 연계되고, 이미지 데이터의 위치 정보는 위상에 독립적으로 존재할 수 있다. 따라서, 상기 이미지 데이터에 대한 연산 과정에서 진폭으로 연산이 진행되고 연산 후에 위상으로 이미지 데이터의 위치를 복원할 수 있다. The Fourier transform process is a process of Fourier transform image data of an input image. Image data of the input image may be divided into amplitude and phase through Fourier transform. The image data may be divided into features related to amplitude and position information related to phase. Accordingly, the characteristic of the data value in the image data may be related to the amplitude, and the position information of the image data may exist independently of the phase. Therefore, in the process of calculating the image data, the calculation is performed with the amplitude, and the position of the image data can be restored with the phase after the calculation.

상기 퓨리에 변환 과정은 입력되는 이미지 데이터를 Sine 함수와 Cosine 함수를 이용하여 주파수 영역으로 변환하는 과정이며, 주파수에 해당하는 계수들과 위상 값으로 변환된다.The Fourier transform process is a process of transforming input image data into a frequency domain using a sine function and a cosine function, and is converted into coefficients corresponding to frequencies and phase values.

상기 이미지 데이터에 대한 Fourier 변환 과정은 아래의 식 1)에 의하여 정의될 수 있다. The Fourier transform process for the image data may be defined by Equation 1) below.

Figure pat00001
... 식 1)
Figure pat00001
... Equation 1)

이때에, 본래의 이미지 데이터는 xn, 퓨리에 변환된 이미지 데이터는 Xn으로 복소수로 변환된다.At this time, the original image data is converted to xn, and the Fourier transformed image data is converted to a complex number by Xn.

2차원 변환의 경우 m개의 행과 n개의 열이 있는 행렬의 퓨리에 변환은 아래의 식 2)와 같이 정의될 수 있다.In the case of a two-dimensional transform, the Fourier transform of a matrix having m rows and n columns can be defined as Equation 2) below.

Figure pat00002
... 식 2)
Figure pat00002
... Equation 2)

상기 제 1 컨벌루셔널 과정은 퓨리에 변환에 의한 입력 이미지의 이미지 데이터를 제 1 컨벌루셔널 필터와 연산하여 제 1 컨벌루셔널 레이어를 출력하는 과정이다. 상기 제 1 컨벌루셔널 필터는 추출하고자 하는 입력 이미지의 특징에 따라 적정한 행렬의 형태로 형성될 수 있다. 상기 제 1 컨벌루셔널 과정은 복소수의 형태를 가지는 이미지 데이터의 진폭만으로 연산을 진행하므로 기존의 복잡한 2차원의 컨벌루셔널 과정과 달리 덧셈과 뺄셈에 의하여 상대적으로 간단하게 진행될 수 있다. 또한, 상기 제 1 컨벌루셔널 과정은 이미지 데이터의 진폭만의 연산만으로 진행되므로 연산량을 절반으로 감소시킬 수 있다.The first convolutional process is a process of outputting a first convolutional layer by calculating image data of an input image by Fourier transform with a first convolutional filter. The first convolutional filter may be formed in an appropriate matrix form according to the characteristics of the input image to be extracted. Since the first convolutional process operates only with the amplitude of image data having the form of a complex number, it can be performed relatively simply by addition and subtraction, unlike the existing complex two-dimensional convolutional process. In addition, since the first convolutional process is performed only by calculating the amplitude of the image data, the amount of computation can be reduced by half.

상기 제 1 풀링 과정은 제 1 컨벌루셔널 레이어에 제 1 풀링 필터를 적용하여 제 1 컨벌루셔널 레이어보다 상대적으로 단순화된 제 1 풀링 레이어를 출력하는 과정이다. 상기 제 1 풀링 필터는 제 1 컨벌루셔널 필터의 n*n 형태의 행렬보다 작은 m*m 형태의 행렬로 형성될 수 있다. 상기 제 1 풀링 과정에서는 제 1 컨벌루셔널 레이어의 이미지의 각 픽셀에서 풀링 필터의 m*m 패치마다 각 패치에 포함되는 최대값을 출력하여 이미지를 압축할 수 있다. 또한, 상기 제 1 풀링 과정은 패치에서 최소값을 출력하거나 패치의 평균값을 출력하여 이미지를 압축할 수 있다.The first pooling process is a process of applying a first pooling filter to the first convolutional layer to output a first pooling layer that is relatively simplified compared to the first convolutional layer. The first pooling filter may be formed as an m*m matrix that is smaller than an n*n matrix of the first convolutional filter. In the first pooling process, in each pixel of the image of the first convolutional layer, for each m*m patch of the pooling filter, the maximum value included in each patch may be output to compress the image. Also, in the first pooling process, the image may be compressed by outputting a minimum value from the patch or outputting an average value of the patch.

상기 제 2 컨벌루셔널 과정은 제 1 풀링 레이어에 제 2 컨벌루셔널 필터를 적용하여 제 2 컨벌루셔널 레이어를 출력하는 과정이다. 상기 제 2 컨벌루셔널 필터는 입력되는 제 1 풀링 레이어의 형태와 추출하고자 하는 이미지의 특징에 따라 적정한 행렬의 형태로 형성될 수 있다. 상기 제 2 컨벌루셔널 과정은 제 1 컨벌루셔널 과정과 동일하게 이미지 데이터의 진폭만으로 연산을 진행하므로 덧셈과 뺄셈에 의하여 상대적으로 간단하게 진행될 수 있다.The second convolutional process is a process of outputting a second convolutional layer by applying a second convolutional filter to the first pooling layer. The second convolutional filter may be formed in the form of an appropriate matrix according to the shape of the input first pooling layer and the characteristics of the image to be extracted. As in the first convolutional process, the second convolutional process can be performed relatively simply by addition and subtraction because the operation is performed only with the amplitude of the image data.

상기 제 2 풀링 과정은 제 2 컨벌루셔널 레이어에 제 2 풀링 필터를 적용하여 제 2 컨벌루셔널 레이어보다 상대적으로 단순화된 제 2 풀링 레이어를 출력하는 과정이다. 상기 제 2 풀링 과정은 제 1 풀링 과정과 동일하게 진행될 수 있다.The second pooling process is a process of applying a second pooling filter to the second convolutional layer to output a second pooling layer that is relatively simpler than the second convolutional layer. The second pooling process may be performed in the same manner as the first pulling process.

상기 인버스 변환 과정은 제 2 풀링 레이어의 데이터를 다시 인버스 변환하는 과정이다. 상기 인버스 변환 과정은 제 2 풀링 레이어의 진폭과 입력 이미지의 퓨리에 변환 과정에서 생성된 위치 정보에 대한 위상 값을 이용하여 진행될 수 있다. 따라서, 상기 인버스 변환 과정에 의하여 이미지 데이터는 입력 이미지의 이미지 데이터와 동일한 행렬의 형태를 가질 수 있다.The inverse transformation process is a process of inverse transformation of data of the second pooling layer again. The inverse transform process may be performed using the amplitude of the second pooling layer and the phase value of the position information generated in the Fourier transform process of the input image. Accordingly, the image data may have the same matrix form as the image data of the input image by the inverse transformation process.

한편, 상기 인버스 변환 과정은 이미지 데이터의 위치 정보가 필요한 경우에 진행될 수 있다. Meanwhile, the inverse conversion process may be performed when location information of image data is required.

상기 히든 레이어 과정은 제 2 풀링 레이어 또는 인버스 변환된 이미지 데이터를 입력받아 히든 레이어를 형성하는 과정이다. 상기 인버스 변환 과정이 진행되는 경우에 히든 레이어 과정은 인버스 변환된 이미지 데이터를 입력받아 진행될 수 있다. 상기 히든 레이어 과정은 행렬 형태의 이미지 데이터를 입력받아 진행하므로 종래의 과정과 동일한 방식으로 진행될 수 있다. 상기 히든 레이어는 하나의 레이어에 있는 모든 뉴런과 이웃하는 레이어에 있는 뉴런이 연결되는 레이어일 수 있다. 상기 히든 레이어는 신경망에서 각 레이어의 모든 노드가 다른 레이어의 모든 노드에 연결되는 레이어일 수 있다. The hidden layer process is a process of forming a hidden layer by receiving the second pooling layer or inverse-converted image data. When the inverse transformation process is performed, the hidden layer process may be performed by receiving inverse-converted image data. The hidden layer process may be performed in the same manner as the conventional process because it receives image data in the form of a matrix and proceeds. The hidden layer may be a layer in which all neurons in one layer and neurons in a neighboring layer are connected. The hidden layer may be a layer in which all nodes of each layer are connected to all nodes of other layers in the neural network.

상기 이미지 정보 출력 과정은 히든 레이어의 이미지 정보를 출력하는 과정이다. The image information output process is a process of outputting image information of the hidden layer.

이상에서 설명한 것은 본 발명에 따른 컨벌루셔널 신경망 연산 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.What has been described above is only one embodiment for implementing the method for calculating a convolutional neural network according to the present invention, and the present invention is not limited to the above-described embodiment, and as claimed in the claims below, the present invention Without departing from the gist, it will be said that the technical spirit of the present invention exists to the extent that various modifications can be made by anyone having ordinary knowledge in the field to which the invention pertains.

Claims (3)

연산 대상이 되는 입력 이미지를 제공하는 입력 이미지 제공 과정과,
상기 입력 이미지의 이미지 데이터를 퓨리에 변환하는 퓨리에 변환 과정과,
상기 퓨리에 변환에 의한 상기 이미지 데이터를 제 1 컨벌루셔널 필터와 연산하여 제 1 컨벌루셔널 레이어를 출력하는 제 1 컨벌루셔널 과정과,
제 1 컨벌루셔널 레이어에 제 1 풀링 필터를 적용하여 제 1 컨벌루셔널 레이어보다 상대적으로 단순화된 제 1 풀링 레이어를 출력하는 제 1 풀링 과정과,
제 1 풀링 레이어에 제 2 컨벌루셔널 필터를 적용하여 제 2 컨벌루셔널 레이어를 출력하는 제 2 컨벌루셔널 과정과,
제 2 컨벌루셔널 레이어에 제 2 풀링 필터를 적용하여 제 2 컨벌루셔널 레이어보다 상대적으로 단순화된 제 2 풀링 레이어를 출력하는 제 2 풀링 과정 과,
상기 제 2 풀링 레이어를 입력받아 히든 레이어를 형성하는 히든 레이어 과정 및
상기 히든 레이어의 이미지 정보를 출력하는 이미지 정보 출력 과정을 포함하는 것을 특징으로 하는 컨벌루셔널 신경망 연산 방법.
An input image providing process for providing an input image to be calculated;
a Fourier transform process of Fourier transforming the image data of the input image;
a first convolutional process of calculating the image data by the Fourier transform with a first convolutional filter to output a first convolutional layer;
A first pooling process of applying a first pooling filter to the first convolutional layer to output a first pooling layer that is relatively simplified than the first convolutional layer;
a second convolutional process of applying a second convolutional filter to the first pooling layer to output a second convolutional layer;
a second pooling process of applying a second pooling filter to the second convolutional layer to output a second pooling layer that is relatively simpler than the second convolutional layer;
a hidden layer process of receiving the second pooling layer and forming a hidden layer; and
and an image information output process of outputting image information of the hidden layer.
제 1 항에 있어서,
상기 제 2 풀링 과정 후에 상기 제 2 풀링 레이어의 데이터를 다시 인버스 변환하는 인버스 변환 과정을 더 포함하며,
상기 히든 레이어 과정은 상기 인버스 변환된 이미지 데이터를 입력받아 진행하는 것을 특징으로 하는 컨벌루셔널 신경망 연산 방법.
The method of claim 1,
After the second pooling process, the method further includes an inverse transform process of inverse transforming the data of the second pooling layer again,
The hidden layer process is a convolutional neural network calculation method, characterized in that the inverse-transformed image data is received and performed.
제 1 항에 있어서,
상기 제 1 컨벌루셔널 과정은 상기 퓨리에 변환되어 복소수의 형태를 가지는 이미지 데이터의 진폭만으로 연산을 진행하는 것을 특징으로 하는 컨벌루셔널 신경망 연산 방법.
The method of claim 1,
The first convolutional process is a convolutional neural network calculation method, characterized in that the calculation is performed only with the amplitude of the image data having the form of a complex number after being Fourier transformed.
KR1020210007555A 2021-01-19 2021-01-19 Method for Computing Convolutional neural network KR102466156B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210007555A KR102466156B1 (en) 2021-01-19 2021-01-19 Method for Computing Convolutional neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210007555A KR102466156B1 (en) 2021-01-19 2021-01-19 Method for Computing Convolutional neural network

Publications (2)

Publication Number Publication Date
KR20220105024A true KR20220105024A (en) 2022-07-26
KR102466156B1 KR102466156B1 (en) 2022-11-14

Family

ID=82609764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210007555A KR102466156B1 (en) 2021-01-19 2021-01-19 Method for Computing Convolutional neural network

Country Status (1)

Country Link
KR (1) KR102466156B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101890538B1 (en) * 2017-12-29 2018-08-30 (주)제이엘케이인스펙션 Method and apparatus for transforming image
KR101979115B1 (en) * 2017-11-20 2019-05-15 경일대학교산학협력단 Apparatus for protecting personal information of real time image, method thereof and computer recordable medium storing program to perform the method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101979115B1 (en) * 2017-11-20 2019-05-15 경일대학교산학협력단 Apparatus for protecting personal information of real time image, method thereof and computer recordable medium storing program to perform the method
KR101890538B1 (en) * 2017-12-29 2018-08-30 (주)제이엘케이인스펙션 Method and apparatus for transforming image

Also Published As

Publication number Publication date
KR102466156B1 (en) 2022-11-14

Similar Documents

Publication Publication Date Title
Zhang et al. Efficient long-range attention network for image super-resolution
CN106991646B (en) Image super-resolution method based on dense connection network
US20190340510A1 (en) Sparsifying neural network models
CN109361934B (en) Image processing method, device, equipment and storage medium
Xu et al. A fast patch-dictionary method for whole image recovery
CN104285239A (en) Image processing device, image processing method, program, print medium, and recording medium
JP2007298564A (en) Signal separation device, signal separation method and program
CN114742911A (en) Image compressed sensing reconstruction method, system, equipment and medium
WO2023154006A2 (en) Method and system for a high-frequency attention network for efficient single image super-resolution
Li et al. Mulut: Cooperating multiple look-up tables for efficient image super-resolution
KR102420104B1 (en) Image processing apparatus and operating method for the same
CN113256519A (en) Image restoration method, apparatus, storage medium, and program product
CN112906874A (en) Convolutional neural network characteristic graph data compression method and device
KR102466156B1 (en) Method for Computing Convolutional neural network
Yuan et al. Ichv: a new compression approach for industrial images
WO2021179117A1 (en) Method and apparatus for searching number of neural network channels
JP2020027245A5 (en) Information processing method, information processing apparatus, and program
Yu et al. MACFNet: multi-attention complementary fusion network for image denoising
Acar et al. Scale input adapted attention for image denoising using a densely connected u-Net: Sade-net
US20240160928A1 (en) Training framework method with non-linear enhanced kernel reparameterization
Valantinas et al. Improving space localization properties of the discrete wavelet transform
US20230410475A1 (en) Polynomial self-attention
Colak et al. Image denoising using patch ordering and 3D transformation of patches
Liu et al. Stylized image resolution enhancement scheme based on an improved convolutional neural network in cyber‐physical systems
US20240029203A1 (en) Method for generating a high resolution image from a low resolution image by an arbitrary-scale blind super resolution model

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant