WO2020116745A1 - 고속 딥러닝을 위한 컨볼루션 방법 - Google Patents

고속 딥러닝을 위한 컨볼루션 방법 Download PDF

Info

Publication number
WO2020116745A1
WO2020116745A1 PCT/KR2019/010624 KR2019010624W WO2020116745A1 WO 2020116745 A1 WO2020116745 A1 WO 2020116745A1 KR 2019010624 W KR2019010624 W KR 2019010624W WO 2020116745 A1 WO2020116745 A1 WO 2020116745A1
Authority
WO
WIPO (PCT)
Prior art keywords
convolution
feature map
main control
control unit
point
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2019/010624
Other languages
English (en)
French (fr)
Inventor
선우명훈
김태선
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ajou University Industry Academic Cooperation Foundation
Original Assignee
Ajou University Industry Academic Cooperation Foundation
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 Ajou University Industry Academic Cooperation Foundation filed Critical Ajou University Industry Academic Cooperation Foundation
Priority to US17/291,186 priority Critical patent/US12481717B2/en
Publication of WO2020116745A1 publication Critical patent/WO2020116745A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • the present invention relates to a convolution method for high-speed deep learning, and more specifically, by performing a convolution operation and a Rectified Linear Unit (ReLU) operation by making a difference between two operation points in the coarse step by 2 in the convolutional neural network. It relates to a convolution method for high-speed deep learning that can increase the inference speed in deep learning by reducing the convolution operation.
  • ReLU Rectified Linear Unit
  • the convolution operation is computationally intensive with a multiplication and accumulation (MAC) operation that multiplies and accumulates each weight of the filter while sliding it in the image.
  • MAC multiplication and accumulation
  • the convolution operation of a convolutional neural network for processing an image occupies most of the neural network operation. As the size of the image increases and the depth of the neural network increases, the amount of computation increases, and accordingly, the power consumption increases. There is a problem that makes it difficult to efficiently manage power of the system.
  • the purpose is to provide a convolution method for high-speed deep learning that can speed up inference.
  • a convolution method for high-speed deep learning for achieving the above object comprises: (a) receiving a feature map consisting of N channels by a feature map receiver of the convolution system; (b) selecting a ⁇ 0 ⁇ -th channel from a feature map composed of N channels by a main control unit of the convolution system; (c) checking the coordinates in which the x and y coordinates are ⁇ 0 ⁇ in the feature map of the ⁇ 0 ⁇ -th channel; (d) a course in which the convolution calculation unit of the convolution system moves by 2 in the horizontal and vertical directions with respect to the feature map, and performs convolution calculation and rectified liner unit (ReLU) operation; (e) a fine step of filling the x and y coordinates, which are emptied by one column as the main control unit moves by two in the coarse step; (f) when the channel changing unit of the convolution system completes the fine step, changing the channel to the next channel; (g) determining whether the channel in which the main control unit is changed is greater
  • step (d) of the convolution method for high-speed deep learning according to the present invention to achieve the above object is (d-1) the convolution calculation unit at any point (x, y) of the feature map Performing a convolution operation and a ReLU (Rectified Liner Unit) operation; (d-2) determining whether a convolution calculation value at an arbitrary point (x, y) calculated by the convolution calculation unit is greater than ⁇ 0 ⁇ ; (d-3) if the main control unit has a convolution calculation value at a point (x, y) greater than ⁇ 0 ⁇ , the convolution calculation unit 130 calculates points adjacent to the calculation point; (d-4) when the convolution operation value at the point (x, y) is not greater than ⁇ 0 ⁇ , the main control unit moves the operation point of the x-coordinate to a point that differs by 2 from the previous operation point; (d-5) comparing the size between the x-coordinate of the operation point moved by the main control unit and the width (W) of the feature map
  • the x-coordinate value is smaller than the width (W), 2 It is characterized in that it repeats the step after step (d-1), which performs a convolution operation at the x-coordinate point (x, y) of the moved point.
  • the y-coordinate value is less than the height (H), 2 It is characterized in that it repeats the step after step (d-1), which performs a convolution operation at the x-coordinate point (x, y) of the moved point.
  • step (d-7) of the convolution method for high-speed deep learning according to the present invention for achieving the above object the y-coordinate value of the point where the main control unit has moved by 2 from the previous operation point is the height (H). If it is larger, it is characterized by performing a fine step.
  • step (e) of the convolution method for high-speed deep learning according to the present invention for achieving the above object comprises: (e-1) determining whether the main control unit has an x, y output coordinate of a feature map; (e-2) calculating convolution between adjacent points when the main control unit has the x and y output coordinates of 1; (e-3) moving the main control unit by 1 at the calculation point if the x and y output coordinates are not 1; (e-4) comparing the size of the x-coordinate moved by the main control unit by 1 with the width (W) of the feature map; And (e-5) repeating step (e-1) if the x-coordinate is smaller than the width (W), and changing the row if the x-coordinate is larger than the width (W) to move the y-coordinate by 1 It characterized in that it comprises a step.
  • step (e-5) of the convolution method for high-speed deep learning according to the present invention for achieving the above object if the y-coordinate value of the point where the channel change unit moves by 1 is greater than the height (H) Characterized in that the step (f) for changing the channel is performed.
  • step (g ⁇ ) if the changed channel is smaller than the accumulated N-th channel the main control unit of the changed channel It characterized in that it comprises; repeating the step after the step (c) to check the coordinates of the x, y coordinates '0' in the feature map.
  • step (d) of the convolution method for high-speed deep learning according to the present invention to achieve the above object
  • in_idx input feature map of the i-th channel
  • x, y x, y coordinates of the feature map
  • n, m convolution operation with weighted weight filter x and y coordinates and ReLU (Rectified Liner Unit) It is characterized by performing the operation.
  • the convolution method for high-speed deep learning according to the present invention has an effect of increasing the speed of inference in deep learning by reducing the convolution operation that occupies most of the convolutional neural network, and has an effect of reducing power consumption.
  • FIG. 1 is a block diagram of a convolution system for high-speed deep learning according to the present invention.
  • FIG. 2 is a flowchart of a convolution method for high-speed deep learning according to the present invention.
  • FIG. 3 is a flowchart of a coarse step of a convolution method for high-speed deep learning according to the present invention.
  • FIG. 4 is a flowchart of a fine step of a convolution method for high-speed deep learning according to the present invention.
  • FIG. 5 is a diagram showing a feature map structure used in convolution for high-speed deep learning according to the present invention.
  • first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • the term and/or includes a combination of a plurality of related description items or any one of a plurality of related description items.
  • FIG. 1 is a block diagram of a convolution system for high-speed deep learning according to the present invention.
  • the convolution system for high-speed deep learning includes a feature map receiving unit 110, a main control unit 120, a convolution calculation unit 130, a channel changing unit 140, and a feature map output. Includes part 150.
  • FIG. 2 is a flowchart of a convolution method for high-speed deep learning according to the present invention.
  • the feature map receiver 110 of the convolution system for high-speed deep learning performs a step of receiving a feature map (S100 ).
  • the feature map is a result of extracting feature values by applying a convolution kernel to an image or video frame composed of a plurality of pixels, and is composed of a matrix including a plurality of convolution values. .
  • the feature map has a width of W in the horizontal direction, a height of H in the vertical direction, and is composed of N channels stacked in a layer format as shown in FIG. 5.
  • the main control unit 120 selects the ⁇ 0 ⁇ -th channel from the feature map composed of a plurality of channels received by the feature map receiving unit 110 (S200).
  • the main control unit 120 performs a step of checking coordinates in which x and y coordinates are ⁇ 0 ⁇ in the feature map of the selected channel (S300).
  • ReLU Rectified Liner Unit
  • step S400 the calculation by the convolution calculation unit 130 in step S400 is performed by [Equation 1] below.
  • in_idx is an input feature map of the i-th channel
  • x, y are x
  • n,m are x and y coordinates of a weight filter to weight.
  • the convolution calculator 130 performs a step of performing a convolution operation at any point (x, y) of the feature map (S410).
  • the main control unit 120 performs a step of determining whether the convolution calculation value at an arbitrary point (x, y) calculated by the convolution calculation unit 130 is greater than '0' (S420).
  • the convolution calculation unit 130 calculates points adjacent to the operation point Perform (S430).
  • [Table 2] shows part of the feature map of VGG16. As shown in [Table 2] above, it can be seen that adjacent pixel values exhibit a similar tendency (a decreasing tendency).
  • the probability of the convolution operation value of the adjacent point is also higher than ⁇ 0 ⁇ .
  • step (S420) when the convolution operation value at an arbitrary point (x, y) is not greater than ⁇ 0 ⁇ , the main control unit 120 is x
  • step (S440) The step of moving the operation point of the coordinates to a point that differs by 2 from the previous operation point is performed (S440).
  • the main control unit 120 performs a step of comparing the size of the x coordinate of the moved operation point and the width W of the feature map (S450).
  • the main control unit 120 performs a convolution operation at the x-coordinate point (x, y) of the point moved by 2
  • the steps after step S410 are repeatedly performed.
  • the main control unit 120 moves the y coordinate by 2, that is, moves the row down by 2 (S460) ).
  • the main control unit 120 performs a step of comparing the size of the y coordinate and the height H of the feature map (S470).
  • the main control unit 120 performs a convolution operation at the x-coordinate point (x, y) of the point moved by 2 when the y-coordinate value of the point moved by 2 from the previous operation point is less than the height (H).
  • the steps after step S410 are repeatedly performed.
  • the main control unit 120 performs a fine step when the y-coordinate value of the point moved by 2 from the previous operation point is greater than the height H (S500).
  • the fine step (S500) is a step of filling the empty x and y coordinates by one space as it moves by 2 in the coarse step, and the flowchart of the fine step (S500) shown in FIG. It will be described in detail with reference.
  • the main control unit 120 performs a step of determining whether the x and y output coordinates of the feature map are 1 (S510), and if 1, calculates convolutions between adjacent points (S520), and if not 1, calculates A step of moving by 1 at a point is performed (S530).
  • the main control unit 120 performs a step by comparing the size of the x-coordinate moved by 1 and the width (W) of the feature map (S540), and repeats the S510 step if the x-coordinate is smaller than the width (W).
  • the y-coordinate is moved by 1, that is, the row is moved down by 1 (S550).
  • the channel changing unit 140 performs a step of changing the channel when the y-coordinate value of the point moved by 1 from the previous operation point is greater than the height H (S600).
  • the main control unit 120 performs a step of determining whether the changed channel is larger or smaller than the Nth channel accumulated in the layer format (S700).
  • step S700 if the changed channel is smaller than the accumulated N-th channel, the main control unit 120 checks the coordinates of which the x and y coordinates are ⁇ 0 ⁇ in the feature map of the changed channel (S300) Repeat the steps.
  • step S700 if the changed channel is larger than the accumulated N-th channel, the main control unit 120 completes the convolution operation for all channels and outputs a feature map through the feature map output unit 150 Step is performed (S800).
  • VGG16 has a simple network structure and contains many convolution operations, it is very suitable for showing the performance of the proposed algorithm.
  • the proposed algorithm for ease of convolution layer implementation is implemented in C++, and the parameters pre-trained with ILSVRC-2012 are used.
  • 1000 images were randomly selected and simulated among the images included in ILSVRC-2012.
  • [Table 3] is a comparison of the MAC computation amount for each convolution layer of the original VGG16[1] and VGG16 to which the algorithm used in the system according to the present invention is applied.
  • Table 4 is a comparison of VGG16 to which the algorithm of the convolution method according to the present invention is applied and VGG16 to which it is not.
  • the algorithm of the convolution method according to the present invention has a Top1 and Top5 accuracy of 2.5% and 0.9%, respectively, compared to the existing VGG16 [1], but the number of MACs in the convolution layer per image is reduced by 34.1%.
  • the algorithm of the convolution method according to the present invention can use the existing parameter as it is without having to re-learn the parameter. Therefore, the algorithm of the convolution method according to the present invention can be applied to most other CNNs.

Landscapes

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

Abstract

본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법은 (a) 상기 컨볼루션 시스템의 피쳐 맵 수신부가 N개의 채널로 구성된 피쳐 맵을 수신하는 단계; (b) 상기 컨볼루션 시스템의 주제어부가 N개의 채널로 구성된 피쳐 맵에서 `0`번째 채널을 선택하는 단계; (c) 상기 주제어부가 `0`번째 채널의 피쳐 맵에서 x, y 좌표가 `0`인 좌표를 확인하는 단계; (d) 상기 컨볼루션 시스템의 컨볼루션 계산부가 상기 피쳐 맵에 대해 가로방향 및 세로방향으로 2만큼 이동해가며 컨볼루션 연산과 ReLU(Rectified Liner Unit)연산을 수행하는 코스(coarse)단계; (e) 상기 컨볼루션 시스템의 채널 변경부가 `0`번째 채널의 피쳐 맵에 대해 코스(coarse)단계가 완료되면 다음 채널로 채널을 변경하는 단계; (f) 상기 주제어부가 변경된 채널이 N보다 큰지 작은지 판단하는 단계; 및 (g) 상기 주제어부가 상기 (f)단계에서 변경된 채널이 N보다 큰 경우 모든 채널에 대한 컨볼루션 연산이 완료된 것으로 판단하고 피쳐 맵 출력부를 통해 피쳐맵을 출력하는 단계;를 포함하여 컨볼루션 신경망에서 대부분을 차지하는 컨볼루션 연산을 줄여 딥러닝에서의 추론 속도를 높일 수 있는 효과가 있다.

Description

고속 딥러닝을 위한 컨볼루션 방법
본 발명은 고속 딥러닝을 위한 컨볼루션 방법에 관한 것으로써, 더욱 상세하게는 coarse 단계에서 연산 지점 간의 차이가 2씩 나도록 하여 convolution 연산과 Rectified Linear Unit (ReLU) 연산을 진행하여 컨볼루션 신경망에서의 컨볼루션 연산을 줄임으로써 딥러닝에서의 추론 속도를 높일 수 있는 고속 딥러닝을 위한 컨볼루션 방법에 관한 것이다.
컨볼루션 연산은 필터의 각 가중치를 이미지에서 sliding 해가면서 픽셀과 곱하고 이를 누적하는, MAC(multiplication and accumulation)연산으로 계산량이 많다. 이미지를 처리하기 위한 컨볼루션 신경망의 컨볼루션 연산은 신경망 연산의 대부분을 차지하고 있으며 이미지의 크기가 커지고 신경망 깊이가 깊어질수록 연산량이 증가하게 되고, 이에 따라 전력소비가 증가하게 되어 이미지의 실시간 처리와 시스템의 효율적 전력관리를 어렵게 하는 문제점이 있다.
본 발명은 상술한 문제점을 해결하기 위해 coarse 단계에서 연산 지점 간의 차이가 2만큼 나도록 하여 convolution 연산과 Rectified Linear Unit (ReLU) 연산을 진행하여 컨볼루션 신경망에서의 컨볼루션 연산을 줄임으로써 딥러닝에서의 추론 속도를 높일 수 있는 고속 딥러닝을 위한 컨볼루션 방법을 제공하는데 목적이 있다.
상술한 목적을 달성하기 위한 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법은 (a) 상기 컨볼루션 시스템의 피쳐 맵 수신부가 N개의 채널로 구성된 피쳐 맵을 수신하는 단계; (b) 상기 컨볼루션 시스템의 주제어부가 N개의 채널로 구성된 피쳐 맵에서 `0`번째 채널을 선택하는 단계; (c) 상기 주제어부가 `0`번째 채널의 피쳐 맵에서 x, y 좌표가 `0`인 좌표를 확인하는 단계; (d) 상기 컨볼루션 시스템의 컨볼루션 계산부가 상기 피쳐 맵에 대해 가로방향 및 세로방향으로 2만큼 이동해가며 컨볼루션 연산과 ReLU(Rectified Liner Unit)연산을 수행하는 코스(coarse)단계; (e) 상기 주제어부가 상기 코스(coarse)단계에서 2만큼 이동함에 따라 한 칸씩 비워진 x, y좌표를 채우는 파인(fine) 단계; (f) 상기 컨볼루션 시스템의 채널 변경부가 파인(fine)단계가 완료되면 다음 채널로 채널을 변경하는 단계; (g) 상기 주제어부가 변경된 채널이 N보다 큰지 작은지 판단하는 단계; 및 (h) 상기 주제어부가 상기 (g)단계에서 변경된 채널이 N보다 큰 경우 모든 채널에 대한 컨볼루션 연산이 완료된 것으로 판단하고 피쳐 맵 출력부를 통해 피쳐맵을 출력하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 (d)단계는 (d-1) 상기 컨볼루션 계산부가 상기 피쳐 맵의 임의의 지점(x, y)에서 컨볼루션 연산과 ReLU(Rectified Liner Unit)연산을 수행하는 단계; (d-2) 상기 컨볼루션 계산부가 연산한 임의의 지점(x, y)에서의 컨볼루션 연산 값이 `0`보다 큰지 판단하는 단계; (d-3) 상기 주제어부가 지점(x, y)에서의 컨볼루션 연산 값이 `0`보다 큰 경우, 상기 컨볼루션 계산부(130)는 연산지점과 인접한 지점들을 연산하는 단계; (d-4) 상기 주제어부가 지점(x, y)에서의 컨볼루션 연산 값이 `0`보다 크지 않은 경우, x좌표의 연산지점을 이전 연산지점과 2씩 차이가 나는 지점으로 이동시키는 단계; (d-5) 상기 주제어부가 이동한 연산지점의 x좌표와 피쳐 맵의 너비(W)와의 크기를 비교하는 단계; (d-6) 상기 주제어부가 이전 연산지점에서 2만큼 이동한 지점의 x좌표 값이 너비(W)보다 크면, y 좌표를 2만큼 이동 즉, 행을 아래로 2만큼 이동하는 단계; 및 (d-7) 상기 주제어부가 이동한 연산지점의 y좌표와 피쳐 맵의 높이(H)와의 크기를 비교하여 단계;를 포함하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 (d-5)단계에서 상기 주제어부가 비교단계 후, 상기 x좌표 값이 너비(W)보다 작으면, 2만큼 이동한 지점의 x좌표 지점(x, y)에서 컨볼루션 연산을 수행하는 상기 (d-1)단계 이후의 단계를 반복 수행하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 (d-7)단계에서 상기 주제어부가 비교단계 후, 상기 y좌표 값이 높이(H)보다 작으면, 2만큼 이동한 지점의 x좌표 지점(x, y)에서 컨볼루션 연산을 수행하는 상기 (d-1)단계 이후의 단계를 반복 수행하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 (d-7)단계에서 상기 주제어부가 이전 연산지점에서 2만큼 이동한 지점의 y좌표 값이 높이(H)보다 크면 파인(fine) 단계를 수행하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 (e)단계는 (e-1) 상기 주제어부가 피쳐 맵의 x, y 출력 좌표가 1인지 판단하는 단계; (e-2) 상기 주제어부가 상기 x, y 출력 좌표가 1이면 인접한 지점들간 컨볼루션을 계산하는 단계; (e-3) 상기 주제어부가 상기 x, y 출력 좌표가 1이 아니면 계산지점에서 1만큼 이동하는 단계; (e-4) 상기 주제어부가 1만큼 이동한 x좌표와 피쳐 맵의 너비(W)와의 크기를 비교하여 단계; 및 (e-5) 상기 주제어부가 상기 너비(W)보다 x좌표가 작으면 상기 (e-1) 단계를 반복 수행하고 너비(W)보다 x좌표가 크면 행을 변경하여 y 좌표를 1만큼 이동 단계;를 포함하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 (e-5)단계 이후, 상기 채널 변경부가 1만큼 이동한 지점의 y좌표 값이 높이(H)보다 크면 채널을 변경하는 상기 (f)단계를 수행하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 (f)단계 이후, (g`) 변경된 채널이 누적된 N번째 채널보다 작으면, 상기 주제어부가 변경된 채널의 피쳐 맵에서 x, y 좌표가 `0`인 좌표를 확인하는 상기 (c)단계 이후의 단계를 반복수행 단계;를 포함하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 (d)단계에서 컨볼루션 계산부는
Figure PCTKR2019010624-appb-I000001
in_idx : i번째 채널의 입력 피쳐 맵, x, y : 피쳐 맵의 x, y 좌표, n, m : 가중치를 주는 가중필터(weight filter)의 x, y 좌표로 컨볼루션 연산과 ReLU(Rectified Liner Unit)연산을 수행하는 것을 특징으로 한다.
본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법은 컨볼루션 신경망에서 대부분을 차지하는 컨볼루션 연산을 줄여 딥러닝에서의 추론 속도를 높일 수 있는 효과가 있고, 전력소비를 줄일 수 있는 효과가 있다.
도 1은 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 시스템의 블록도 이다.
도 2는 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 흐름도 이다.
도 3은 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 코스(coarse)단계의 흐름도 이다.
도 4는 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 파인(fine)단계의 흐름도 이다.
도 5는 본 발명에 따른 고속 딥러닝을 위한 컨볼루션에 사용되는 피쳐 맵 구조를 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면을 참조하여 상세하게 설명하도록 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재 항목들의 조합 또는 복수의 관련된 기재 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급될 때에는 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 시스템의 블록도 이다.
도 1에 도시된 바와 같이 본 발명에 따른 고속 딥러닝 위한 컨볼루션 시스템은 피쳐 맵 수신부(110), 주제어부(120), 컨볼루션 계산부(130), 채널 변경부(140), 피쳐 맵 출력부(150)를 포함한다.
도 2는 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 방법의 흐름도 이다.
도 2에 도시된 바와 같이 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 시스템의 피쳐 맵 수신부(110)가 피쳐 맵을 수신하는 단계를 수행한다(S100).
참고로, 상기 피쳐 맵은 복수의 픽셀(pixel)로 구성된 이미지 또는 영상 프레임에 컨볼루션 커널(convolution kernel)을 적용하여 특징값을 추출해낸 결과물로서, 복수의 컨볼루션 값을 포함하는 행렬로 구성된다.
특히, 본 발명에서 상기 피쳐 맵은 도 5에 도시된 바와 같이 가로방향으로 W의 너비를 가지고, 세로방향으로 H의 높이를 가지며, 레이어 형식으로 누적된 N개의 채널로 구성되어 있는 것을 가정한다.
상기 주제어부(120)는 상기 피쳐 맵 수신부(110)가 수신한 복수의 채널로 구성된 피쳐 맵에서 `0`번째 채널을 선택하는 단계를 수행한다(S200).
이후, 상기 주제어부(120)는 선택한 채널의 상기 피쳐 맵에서 x, y 좌표가 `0`인 좌표를 확인하는 단계를 수행한다(S300).
상기 컨볼루션 계산부(130)는 상기 주제어부(120)가 확인한 좌표(x=0, y=0)에서 시작하여 아래의 [표 1]과 같이 가로방향 세로방향으로 2만큼 이동해가며 컨볼루션 연산과 ReLU(Rectified Liner Unit)연산을 수행하는 코스(coarse)단계를 수행한다(S400).
Figure PCTKR2019010624-appb-T000001
특히, 상기 S400 단계에서 컨볼루션 계산부(130)에 의한 계산은 아래의 [수학식 1]에 의해 수행된다.
Figure PCTKR2019010624-appb-M000001
상기 [수학식 1]에서 in_idx는 i번째 채널의 입력 피쳐 맵, x, y는 피쳐 맵의 x, y 좌표, n,m은 가중치를 주는 가중필터(weight filter)의 x, y 좌표이다.
이하에서 상기 코스(coarse)단계에 대하여, 도 3을 참조하여 좀 더 상세히 설명한다.
상기 컨볼루션 계산부(130)는 상기 피쳐 맵의 임의의 지점(x, y)에서 컨볼루션 연산을 수행하는 단계를 수행한다(S410).
상기 주제어부(120)는 상기 컨볼루션 계산부(130)가 연산한 임의의 지점(x, y)에서의 컨볼루션 연산 값이 `0`보다 큰지 판단하는 단계를 수행한다(S420).
상기 주제어부(120)에 의한 판단결과 임의의 지점(x, y)에서의 컨볼루션 연산 값이 `0`보다 큰 경우, 상기 컨볼루션 계산부(130)는 연산지점과 인접한 지점들을 연산하는 단계를 수행한다(S430).
Figure PCTKR2019010624-appb-T000002
<VGG16 NET feature map 의 일부>
일반적으로 자연 이미지에서 대부분의 이웃하는 pixel은 같은 대상(object)에 속해 있어 비슷한 값을 가질 확률이 높다. 또한 인접한 pixel은 값이 비슷하므로 임의의 두 지점의 컨볼루션 연산 값도 비슷하다.
상기 [표 2]는 VGG16의 feature map 일부를 나타낸 것이다. 상기 [표 2]에서 볼수 있듯이 인접한 pixel의 값은 비슷한 경향(줄어드는 경향)을 나타내는 것을 알 수 있다.
따라서, 임의의 지점에서 컨볼루션이 `0` 이상의 값이 나오면 인접한 지점의 컨볼루션 연산 값도 `0`이상의 값이 나올 확률이 높다.
한편, 상기 (S420)단계에서의 상기 주제어부(120)에 의한 판단결과 임의의 지점(x, y)에서의 컨볼루션 연산 값이 `0`보다 크지 않은 경우, 상기 주제어부(120)는 x좌표의 연산지점을 이전 연산지점과 2씩 차이가 나는 지점으로 이동시키는 단계를 수행한다(S440).
상기 주제어부(120)는 이동한 연산지점의 x좌표와 피쳐 맵의 너비(W)와의 크기를 비교하는 단계를 수행한다(S450).
상기 주제어부(120)는 이전 연산지점에서 2만큼 이동한 지점의 x좌표 값이 너비(W)보다 작으면, 2만큼 이동한 지점의 x좌표 지점(x, y)에서 컨볼루션 연산을 수행하는 상기 S410단계 이후의 단계를 반복 수행한다.
상기 주제어부(120)는 이전 연산지점에서 2만큼 이동한 지점의 x좌표 값이 너비(W)보다 크면, y 좌표를 2만큼 이동 즉, 행을 아래로 2만큼 이동하는 단계를 진행한다(S460).
상기 주제어부(120)는 y좌표와 피쳐 맵의 높이(H)와의 크기를 비교하는 단계를 수행한다(S470).
상기 주제어부(120)는 이전 연산지점에서 2만큼 이동한 지점의 y좌표 값이 높이(H)보다 작으면, 2만큼 이동한 지점의 x좌표 지점(x, y)에서 컨볼루션 연산을 수행하는 상기 S410단계 이후의 단계를 반복 수행한다.
상기 주제어부(120)는 이전 연산지점에서 2만큼 이동한 지점의 y좌표 값이 높이(H)보다 크면 파인(fine) 단계를 수행한다(S500).
상기 파인(fine) 단계(S500)는 상기 코스(coarse)단계에서 2만큼 이동함에 따라 한 칸씩 비워진 x, y좌표를 채우는 단계로, 도 4에 도시된 파인(fine) 단계(S500)의 흐름도를 참고하여 상세히 설명한다.
상기 주제어부(120)는 피쳐 맵의 x, y 출력 좌표가 1인지 판단하는 단계를 수행하고(S510), 1이면 인접한 지점들간 컨볼루션을 계산하는 단계를 수행하고(S520), 1이 아니면 계산지점에서 1만큼 이동하는 단계를 수행한다(S530).
상기 주제어부(120)는 1만큼 이동한 x좌표와 피쳐 맵의 너비(W)와의 크기를 비교하여 단계를 수행하여(S540), 너비(W)보다 x좌표가 작으면 상기 S510 단계를 반복 수행하고 너비(W)보다 x좌표가 크면 y 좌표를 1만큼 이동 즉, 행을 아래로 1만큼 이동하는 단계를 진행한다(S550).
상기 채널 변경부(140)는 이전 연산지점에서 1만큼 이동한 지점의 y좌표 값이 높이(H)보다 크면 채널을 변경하는 단계를 수행한다(S600)
상기 주제어부(120)는 변경된 채널이 레이어 형식으로 누적된 N번째 채널보다 큰지 작은지 판단하는 단계를 수행한다(S700).
상기 S700 단계에서 판단 결과, 변경된 채널이 누적된 N번째 채널보다 작으면 상기 주제어부(120)는 변경된 채널의 피쳐 맵에서 x, y 좌표가 `0`인 좌표를 확인하는 단계(S300) 단계 이후 단계를 반복수행 한다.
상기 S700 단계에서 판단 결과, 변경된 채널이 누적된 N번째 채널보다 크면 상기 주제어부(120)는 모든 채널에 대한 컨볼루션 연산을 완료하고, 상기 피쳐 맵 출력부(150)를 통해 피쳐 맵을 출력하는 단계를 수행한다(S800).
본 발명에 따른 본 발명에 따른 고속 딥러닝을 위한 컨볼루션 시스템 알고리즘의 성능을 측정하기 위해 VGG16 network에 적용하였다. VGG16 은 단순한 network 구조를 가지고 있고 많은 convolution 연산을 포함하고 있기 때문에 제안하는 알고리즘의 성능을 보여주기에 매우 알맞다.
또한, convolution layer구현의 용이성을 위해 제안하는 알고리즘은 C++로 구현되었으며 ILSVRC-2012로 pre-trained 된 parameter을 사용하였다. 성능 비교를 위해 ILSVRC-2012에 포함된 이미지 중 1000개의 이미지를 임의로 뽑아 시뮬레이션 하였다.
그 결과를 아래의 표로 나타내면 아래와 같다.
Figure PCTKR2019010624-appb-T000003
<VGG16와 본 발명에 따른 컨볼루션 방법의 알고리즘 MAC 비교>
상기 [표 3]은 원본 VGG16[1]과 본 발명에 따른 시스템에 사용되는 알고리즘을 적용한 VGG16의 각 convolution layer 마다 MAC 연산량을 비교한 것이다.
각 convolution layer가 높아질수록 MAC 연산 감소량이 점점 증가하는 추세를 보인다. 이를 통하여 본 발명에 따른 시스템에 사용되는 알고리즘은 피쳐 맵의 크기가 큰 저단의 convolution layer에서보다 피쳐 맵의 크기가 작은 고단의 convolution layer에서 더 잘 작용하는 것을 확인할 수 있다.
Figure PCTKR2019010624-appb-T000004
<본 발명에 따른 컨볼루션 방법의 알고리즘과 VGG16비교>
상기 [표 4]는 본 발명에 따른 컨볼루션 방법의 알고리즘을 적용한 VGG16과 그렇지 않은 VGG16을 비교한 것이다.
본 발명에 다른 컨볼루션 방법의 알고리즘은 기존의 VGG16 [1]에 비해 Top1, Top5 정확도가 각각 2.5%, 0.9%떨어지나 image당 convolution layer 에서 MAC의 수가 34.1% 가량 감소한다. 본 발명에 다른 컨볼루션 방법의 알고리즘은 parameter을 다시 학습시킬 필요가 없이 기존의 parameter을 그대로 사용할 수 있다. 따라서, 본 발명에 다른 컨볼루션 방법의 알고리즘은 대부분의 다른 CNN에도 적용할 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 사람이라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (9)

  1. 고속 딥러닝을 위한 컨볼루션 시스템에 의한 컨볼루션 방법에 있어서,
    (a) 상기 컨볼루션 시스템의 피쳐 맵 수신부가 N개의 채널로 구성된 피쳐 맵을 수신하는 단계;
    (b) 상기 컨볼루션 시스템의 주제어부가 N개의 채널로 구성된 피쳐 맵에서 `0`번째 채널을 선택하는 단계;
    (c) 상기 주제어부가 `0`번째 채널의 피쳐 맵에서 x, y 좌표가 `0`인 좌표를 확인하는 단계;
    (d) 상기 컨볼루션 시스템의 컨볼루션 계산부가 상기 피쳐 맵에 대해 가로방향 및 세로방향으로 2만큼 이동해가며 컨볼루션 연산과 ReLU(Rectified Liner Unit)연산을 수행하는 코스(coarse)단계;
    (e) 상기 주제어부가 상기 코스(coarse)단계에서 2만큼 이동함에 따라 한 칸씩 비워진 x, y좌표를 채우는 파인(fine) 단계;
    (f) 상기 컨볼루션 시스템의 채널 변경부가 파인(fine)단계가 완료되면 다음 채널로 채널을 변경하는 단계;
    (g) 상기 주제어부가 변경된 채널이 N보다 큰지 작은지 판단하는 단계; 및
    (h) 상기 주제어부가 상기 (g)단계에서 변경된 채널이 N보다 큰 경우 모든 채널에 대한 컨볼루션 연산이 완료된 것으로 판단하고 피쳐 맵 출력부를 통해 피쳐맵을 출력하는 단계;를 포함하는 고속 딥러닝을 위한 컨볼루션 방법.
  2. 제 1항에 있어서,
    상기 (d)단계는
    (d-1) 상기 컨볼루션 계산부가 상기 피쳐 맵의 임의의 지점(x, y)에서 컨볼루션 연산과 ReLU(Rectified Liner Unit)연산을 수행하는 단계;
    (d-2) 상기 컨볼루션 계산부가 연산한 임의의 지점(x, y)에서의 컨볼루션 연산 값이 `0`보다 큰지 판단하는 단계;
    (d-3) 상기 주제어부가 지점(x, y)에서의 컨볼루션 연산 값이 `0`보다 큰 경우, 상기 컨볼루션 계산부(130)는 연산지점과 인접한 지점들을 연산하는 단계;
    (d-4) 상기 주제어부가 지점(x, y)에서의 컨볼루션 연산 값이 `0`보다 크지 않은 경우, x좌표의 연산지점을 이전 연산지점과 2씩 차이가 나는 지점으로 이동시키는 단계;
    (d-5) 상기 주제어부가 이동한 연산지점의 x좌표와 피쳐 맵의 너비(W)와의 크기를 비교하는 단계;
    (d-6) 상기 주제어부가 이전 연산지점에서 2만큼 이동한 지점의 x좌표 값이 너비(W)보다 크면, y 좌표를 2만큼 이동 즉, 행을 아래로 2만큼 이동하는 단계; 및
    (d-7) 상기 주제어부가 이동한 연산지점의 y좌표와 피쳐 맵의 높이(H)와의 크기를 비교하여 단계;를 포함하는 고속 딥러닝을 위한 컨볼루션 방법.
  3. 제 2항에 있어서,
    상기 (d-5)단계에서
    상기 주제어부가 비교단계 후, 상기 x좌표 값이 너비(W)보다 작으면, 2만큼 이동한 지점의 x좌표 지점(x, y)에서 컨볼루션 연산을 수행하는 상기 (d-1)단계 이후의 단계를 반복 수행하는 고속 딥러닝을 위한 컨볼루션 방법.
  4. 제 2항에 있어서,
    상기 (d-7)단계에서
    상기 주제어부가 비교단계 후, 상기 y좌표 값이 높이(H)보다 작으면, 2만큼 이동한 지점의 x좌표 지점(x, y)에서 컨볼루션 연산을 수행하는 상기 (d-1)단계 이후의 단계를 반복 수행하는 고속 딥러닝을 위한 컨볼루션 방법.
  5. 제 2항에 있어서,
    상기 (d-7)단계에서
    상기 주제어부가 이전 연산지점에서 2만큼 이동한 지점의 y좌표 값이 높이(H)보다 크면 파인(fine) 단계를 수행하는 고속 딥러닝을 위한 컨볼루션 방법.
  6. 제 1항에 있어서,
    상기 (e)단계는
    (e-1) 상기 주제어부가 피쳐 맵의 x, y 출력 좌표가 1인지 판단하는 단계;
    (e-2) 상기 주제어부가 상기 x, y 출력 좌표가 1이면 인접한 지점들간 컨본루션을 계산하는 단계;
    (e-3) 상기 주제어부가 상기 x, y 출력 좌표가 1이 아니면 계산지점에서 1만큼 이동하는 단계;
    (e-4) 상기 주제어부가 1만큼 이동한 x좌표와 피쳐 맵의 너비(W)와의 크기를 비교하여 단계; 및
    (e-5) 상기 주제어부가 상기 너비(W)보다 x좌표가 작으면 상기 (e-1) 단계를 반복 수행하고 너비(W)보다 x좌표가 크면 행을 변경하여 y 좌표를 1만큼 이동 단계;를 포함하는 고속 딥러닝을 위한 컨볼루션 방법.
  7. 제 6항에 있어서,
    상기 (e-5)단계 이후,
    상기 채널 변경부가 1만큼 이동한 지점의 y좌표 값이 높이(H)보다 크면 채널을 변경하는 상기 (f)단계를 수행하는 고속 딥러닝을 위한 컨볼루션 방법.
  8. 제 1항 내지 제 7항 중 어느 한 항에 있어서,
    상기 (f)단계 이후,
    (g`) 변경된 채널이 누적된 N번째 채널보다 작으면, 상기 주제어부가 변경된 채널의 피쳐 맵에서 x, y 좌표가 `0`인 좌표를 확인하는 상기 (c)단계 이후의 단계를 반복수행 단계;를 포함하는 고속 딥러닝을 위한 컨볼루션 방법.
  9. 제 1항 내지 제 7항 중 어느 한 항에 있어서,
    상기 (d)단계에서
    상기 컨볼루션 계산부는
    Figure PCTKR2019010624-appb-I000002
    in_idx : i번째 채널의 입력 피쳐 맵,
    x, y : 피쳐 맵의 x, y 좌표,
    n, m : 가중치를 주는 가중필터(weight filter)의 x, y 좌표
    로 컨볼루션 연산과 ReLU(Rectified Liner Unit)연산을 수행하는 고속 딥러닝을 위한 컨볼루션 방법.
PCT/KR2019/010624 2018-12-07 2019-08-21 고속 딥러닝을 위한 컨볼루션 방법 Ceased WO2020116745A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/291,186 US12481717B2 (en) 2018-12-07 2019-08-21 Convolution method for high speed deep learning

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180156777A KR102055645B1 (ko) 2018-12-07 2018-12-07 고속 딥러닝을 위한 컨볼루션 방법
KR10-2018-0156777 2018-12-07

Publications (1)

Publication Number Publication Date
WO2020116745A1 true WO2020116745A1 (ko) 2020-06-11

Family

ID=69368165

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/010624 Ceased WO2020116745A1 (ko) 2018-12-07 2019-08-21 고속 딥러닝을 위한 컨볼루션 방법

Country Status (3)

Country Link
US (1) US12481717B2 (ko)
KR (1) KR102055645B1 (ko)
WO (1) WO2020116745A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180062422A (ko) * 2016-11-30 2018-06-08 알텀뷰 시스템즈 인크. 해상도-제한 소규모 cnn 모듈에 기초한 컨볼루션 뉴트럴 네트워크(cnn) 시스템
US20180181858A1 (en) * 2016-12-22 2018-06-28 Samsung Electronics Co., Ltd. Convolutional neural network (cnn) processing method and apparatus

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779786B1 (en) * 2016-10-26 2017-10-03 Xilinx, Inc. Tensor operations and acceleration
KR102415508B1 (ko) 2017-03-28 2022-07-01 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180062422A (ko) * 2016-11-30 2018-06-08 알텀뷰 시스템즈 인크. 해상도-제한 소규모 cnn 모듈에 기초한 컨볼루션 뉴트럴 네트워크(cnn) 시스템
US20180181858A1 (en) * 2016-12-22 2018-06-28 Samsung Electronics Co., Ltd. Convolutional neural network (cnn) processing method and apparatus

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CNN, CONVOLUTIONAL NEURAL NETWORK, 27 March 2017 (2017-03-27), XP055717983, Retrieved from the Internet <URL:https://umbum.tistory.com/223> [retrieved on 20191126] *
KEIRON O'SHEA O: "An Introduction to Convolutional Neural Networks", ARXIV: 1511.08458V2, 2 December 2015 (2015-12-02), XP055491019, Retrieved from the Internet <URL:https://arxiv.org/abs/1511.08458> [retrieved on 20191126] *
XINGYU LIU: "EFFICIENT SPARSE-WINOGRAD CONVOLUTIONAL NEURAL NETWORKS", ARXIV: 1802.06367V1, 18 February 2018 (2018-02-18), XP081216300, Retrieved from the Internet <URL:https://arxiv.org/abs/1802.06367> [retrieved on 20191126] *

Also Published As

Publication number Publication date
US12481717B2 (en) 2025-11-25
KR102055645B1 (ko) 2020-01-22
US20220222316A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
WO2021133001A1 (ko) 시멘틱 이미지 추론 방법 및 장치
WO2018217019A1 (ko) 신경망 학습 기반의 변종 악성 코드를 탐지하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
WO2015182904A1 (ko) 관심객체 검출을 위한 관심영역 학습장치 및 방법
KR20030091794A (ko) 화상 분할 처리 방법, 화상 분할 처리 장치, 화상 처리방법 및 화상 처리 장치
WO2022146080A1 (ko) 딥러닝 네트워크의 동적 양자화 정밀도 가변 알고리즘 및 방법
WO2017099510A1 (ko) 영상 통계정보에 기반한 정지장면 분할장치 및 그 방법
WO2022131720A1 (ko) 건축물 이미지를 생성하는 장치 및 방법
WO2014003254A1 (ko) 움직임 벡터의 예측을 위한 탐색영역 설정 장치 및 방법
WO2021241804A1 (ko) 다중 플로우 기반 프레임 보간 장치 및 방법
WO2011136407A1 (ko) 스테레오 카메라를 이용한 영상인식장치 및 방법
WO2021132829A1 (ko) 머신러닝을 이용한 태양광패널 설치용 지붕 가장자리 이미지 추출 방법
WO2022260392A1 (ko) 단말에서 동작하는 이미지 프로세싱 인공 신경망 모델 생성 방법 및 시스템
WO2019045147A1 (ko) 딥러닝을 pc에 적용하기 위한 메모리 최적화 방법
WO2020116745A1 (ko) 고속 딥러닝을 위한 컨볼루션 방법
WO2016114574A2 (ko) 패치 쉬프트를 이용한 텍스처 필터링 방법 및 장치
WO2022103171A1 (en) Method and device of depth densification using rgb image and sparse depth
WO2023171930A1 (ko) 신경망 모델 경량화 방법, 및 신경망 모델 경량화 장치
CN115423085A (zh) 脉动阵列、脉动阵列系统及其运算方法、装置、存储介质
CN113994379B (zh) 信息处理装置
WO2019009579A1 (ko) 지원점 보간법을 이용한 스테레오 매칭 방법 및 장치
WO2022107925A1 (ko) 딥러닝 객체 검출 처리 장치
CN114693697A (zh) 图像处理方法、装置、设备及计算机可读存储介质
WO2021071258A1 (ko) 인공지능 기반의 휴대용 보안영상 학습장치 및 방법
WO2023096133A1 (ko) 경량화된 자세 추정 모델 제공 장치 및 방법
CN114723772B (zh) 一种图像处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19894156

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19894156

Country of ref document: EP

Kind code of ref document: A1

WWG Wipo information: grant in national office

Ref document number: 17291186

Country of ref document: US