WO2022259427A1 - 画像処理装置、画像処理方法、及び画像処理プログラム - Google Patents

画像処理装置、画像処理方法、及び画像処理プログラム Download PDF

Info

Publication number
WO2022259427A1
WO2022259427A1 PCT/JP2021/021935 JP2021021935W WO2022259427A1 WO 2022259427 A1 WO2022259427 A1 WO 2022259427A1 JP 2021021935 W JP2021021935 W JP 2021021935W WO 2022259427 A1 WO2022259427 A1 WO 2022259427A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
convolution
small region
small
result
Prior art date
Application number
PCT/JP2021/021935
Other languages
English (en)
French (fr)
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 PCT/JP2021/021935 priority Critical patent/WO2022259427A1/ja
Priority to PCT/JP2021/045206 priority patent/WO2022259574A1/ja
Priority to JP2023526848A priority patent/JPWO2022259574A1/ja
Priority to EP21945243.0A priority patent/EP4354387A1/en
Publication of WO2022259427A1 publication Critical patent/WO2022259427A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Definitions

  • the technology of the present disclosure relates to an image processing device, an image processing method, and an image processing program.
  • CNN Convolutional Neural Network
  • the network is composed of multiple layers, and the convolutional layer performs convolutional processing.
  • Convolution processing performs sum-of-products operation and activation processing.
  • FIGS. 15 shows an example of performing a convolution operation on a 3 ⁇ 3 input feature map using a 3 ⁇ 3 kernel. In this example, 9 product-sum operations are performed to output a 1 ⁇ 1 output feature map.
  • FIG. 16 shows an example of performing a convolution operation on an input feature map of (W+2) ⁇ (H+2) using a 3 ⁇ 3 kernel.
  • the product-sum operation is repeated nine times while moving the kernel on the input feature map, and a W ⁇ H output feature map is output.
  • FIG. 17 In order to increase the throughput of the hardware that performs the CNN convolution operation, it is possible to divide the input feature map into small regions of a certain fixed size and prepare a circuit that can perform the sum-of-products operation for each small region at once. There are many (see FIG. 17).
  • a 26 ⁇ 14 input feature map is divided into nine 10 ⁇ 6 subregions, and an arithmetic circuit performs convolution processing on 32 points (8 ⁇ 4 points) simultaneously using a 3 ⁇ 3 kernel. and outputs an 8 ⁇ 4 output feature map.
  • the dot portion of the input feature map is one small area, and the arithmetic circuit convolves each of the nine small areas at 32 points simultaneously, resulting in 24 ⁇ 12 outputs. Output a feature map.
  • FIG. 18 shows an example in which the output small area size is 4 ⁇ 2, the kernel size is 3 ⁇ 3, and 4-bit data representing 0 to 15 is used.
  • the size of the small regions of the input feature map is 6 ⁇ 4, and the values of the small regions represented by dotted lines are all zero. Since the result of the sum-of-products operation for 0 is 0, there is no need to perform convolution processing in the arithmetic circuit, and it is possible to skip the convolution processing of the small region.
  • the values of the small regions of the input feature map will be less likely to all be zero, and sufficient speedup of computation cannot be expected.
  • the dotted line of the input feature map All the values of the represented subregion are zero.
  • the dotted line of the input feature map contains non-zero values.
  • the disclosed technology has been made in view of the above points, and provides an image processing device, an image processing method, and an image processing program capable of speeding up processing using a neural network including convolution processing. With the goal.
  • a first aspect of the present disclosure is an image processing apparatus including a neural network including convolution processing for an image, using an acquisition unit that acquires a target image to be processed and a neural network including the convolution processing. and a processing unit that processes the target image with a processing unit that, when performing the convolution processing, performs the convolution processing for each small region obtained by dividing an input feature map that is an input for the convolution processing, and When performing the convolution process for each small area, if the feature that constitutes the small area is the same as a predetermined feature or a feature of a previously processed small area, perform the convolution process on the small area. First, the result of processing the predetermined feature or the result of processing in the past is output as the result of processing the small region.
  • a second aspect of the present disclosure is an image processing method in an image processing apparatus including a neural network including convolution processing for an image, wherein an acquisition unit acquires a target image to be processed, and a processing unit, processing the target image using a neural network including the convolution process, and when the processing unit performs the convolution process, the When convolution processing is performed and the convolution processing is performed for each of the small regions, if the feature that constitutes the small region is the same as a predetermined feature or a feature of a previously processed small region, the small region without performing the convolution processing on the predetermined feature, or the result of processing in the past, is output as the result of processing the small region.
  • a third aspect of the present disclosure obtains a target image to be processed by a computer including a neural network including convolution processing for an image, and processes the target image using the neural network including the convolution processing.
  • the convolution processing is performed for each small region obtained by dividing the input feature map that is the input of the convolution processing, and for each of the small regions, the When the convolution process is performed, if the feature that constitutes the small area is the same as a predetermined feature or a feature of a previously processed small area, the convolution process is not performed on the small area, and the predetermined A result of processing the feature obtained or a result of processing in the past is output as a result of processing the small region.
  • FIG. 4 is a diagram for explaining a small region of an input feature map
  • FIG. FIG. 4 is a diagram for explaining a method of skipping convolution processing on small regions of an input feature map
  • 2 is a schematic block diagram of an example of a computer functioning as an image processing apparatus according to the first and second embodiments
  • FIG. 1 is a block diagram showing the functional configuration of an image processing apparatus according to first and second embodiments
  • FIG. 3 is a block diagram showing the functional configuration of a learning unit of the image processing apparatuses according to the first embodiment and the second embodiment
  • FIG. 3 is a block diagram showing the functional configuration of an inference unit of the image processing apparatuses of the first embodiment and the second embodiment
  • FIG. 10 is a diagram for explaining a method of performing convolution processing on a plurality of small regions in parallel;
  • FIG. 11 is a diagram for explaining a method of skipping convolution processing for small regions of an input feature map in a modified example;
  • FIG. 10 is a diagram for explaining a method of performing convolution processing on a plurality of small regions in parallel;
  • FIG. 11 is a diagram for explaining a method of skipping convolution processing for small regions of an input feature map in a modified example;
  • FIG. 10 is a diagram for explaining a method of performing convolution processing on a plurality of small regions in parallel;
  • FIG. 11 is a diagram for explaining a method of skipping convolution processing for small regions of an input feature map in a modified example;
  • FIG. 10 is a diagram for explaining a method of performing convolution processing on a plurality of small regions in parallel;
  • FIG. 11 is a diagram for explaining a method of skipping convolution processing for small regions of an input feature map in a modified example;
  • FIG. 11 is a diagram for explaining a method of skipping convolution processing for small regions of an input feature map in a modified example;
  • FIG. 11 is a diagram for explaining a method of skipping convolution processing for small regions of an input feature map in a modified example; It is a figure which shows an example of a convolution process. It is a figure which shows an example of a convolution process.
  • FIG. 10 is a diagram showing an example of convolution processing for each small area; It is a figure which shows an example of the small area
  • FIG. 2 shows an example in which processing is skipped for the small region 4 because the features in the small region 3 and the features in the small region 4 are the same.
  • the processing results are limited for small areas with the same value.
  • the characteristic value is 4 bits
  • the processing results are 16 patterns
  • the characteristic value is 8 bits
  • the processing result is 256 patterns.
  • the processing results of all patterns are precalculated and the precalculation result table is stored in the RAM, and the precalculation result table is read from the RAM into the internal memory of the arithmetic circuit for each layer processing.
  • the processing result can be obtained only by referring to the internal memory without performing the convolution processing for the small regions of the same value, so that the processing speed is increased.
  • FIG. 2 since the small region 2 is a small region with the same value, processing is skipped for the small region 2, and the processing result when all the features are 4, which is stored in the precomputation result table, is referred to.
  • the following shows an example of outputting
  • the output feature map which is the result of convolution processing by the arithmetic circuit, is written to RAM or the like.
  • the written output feature map is used as an input feature map in subsequent layers, and the above-described determination processing and convolution processing using the processing skip are repeated.
  • FIG. 3 is a block diagram showing the hardware configuration of the image processing apparatus 10 of the first embodiment.
  • the image processing apparatus 10 includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM 13, a storage 14, an input section 15, a display section 16, and a communication interface (I/F) 17. , and an arithmetic circuit 18 .
  • Each component is communicatively connected to each other via a bus 19 .
  • the CPU 11 is a central processing unit that executes various programs and controls each section. That is, the CPU 11 reads a program from the ROM 12 or the storage 14 and executes the program using the RAM 13 as a work area. The CPU 11 performs control of each configuration and various arithmetic processing according to programs stored in the ROM 12 or the storage 14 .
  • the ROM 12 or the storage 14 stores a learning processing program for performing neural network learning processing and an image processing program for performing image processing using the neural network.
  • the learning processing program and the image processing program may be a single program, or may be a program group composed of a plurality of programs or modules.
  • the ROM 12 stores various programs and various data.
  • the RAM 13 temporarily stores programs or data as a work area.
  • the storage 14 is composed of a HDD (Hard Disk Drive) or an SSD (Solid State Drive), and stores various programs including an operating system and various data.
  • the input unit 15 includes a pointing device such as a mouse and a keyboard, and is used for various inputs.
  • the input unit 15 receives learning data for learning the neural network as an input.
  • the input unit 15 receives, as an input, learning data including a target image to be processed and a processing result obtained in advance for the target image.
  • the input unit 15 receives as an input a target image to be processed.
  • the display unit 16 is, for example, a liquid crystal display, and displays various information including processing results.
  • the display unit 16 may employ a touch panel system and function as the input unit 15 .
  • the communication interface 17 is an interface for communicating with other devices, and uses standards such as Ethernet (registered trademark), FDDI, and Wi-Fi (registered trademark), for example.
  • the arithmetic circuit 18 executes convolution processing in the convolution layer of the neural network. Specifically, the arithmetic circuit 18 receives a small region of the input feature map and a kernel, and outputs a small region of the output feature map, which is the result of convolution processing of each point in the small region.
  • FIG. 4 is a block diagram showing an example of the functional configuration of the image processing apparatus 10. As shown in FIG.
  • the image processing device 10 functionally includes a learning unit 20 and an inference unit 22, as shown in FIG.
  • the learning unit 20 includes an acquisition unit 30, a processing unit 32, and an updating unit 34, as shown in FIG.
  • the acquisition unit 30 acquires the target image and the processing result of the input learning data.
  • the processing unit 32 processes the target image using a neural network including convolution processing.
  • the processing unit 32 performs the convolution process for each small area obtained by dividing the input feature map that is the input for the convolution process. Convolution processing for each small area is performed using the arithmetic circuit 18 .
  • the small area data of the input feature map and the kernel are input to the arithmetic circuit 18, and the arithmetic circuit 18 outputs an output feature map representing the result of convolution processing for each small area.
  • the input feature map is divided into small regions as shown in Fig. 1 above.
  • the regions corresponding to the small regions of the output feature map are indicated by thick-lined frames. It is an area including an overlap area.
  • the subregions obtained by dividing the input feature map are overlapping regions that overlap adjacent subregions, and have overlapping regions that correspond to the kernel size of convolution processing. It should be noted that division into small regions is determined at the time of design. For example, it may be determined by balancing hardware constraints (size and power) and desired throughput (xxfps, etc.).
  • the kernel size is 3.times.3, the input feature map subregion is 10.times.6, and the output feature map subregion is 8.times.4, a throughput capable of simultaneously outputting 32 points can be obtained.
  • the input feature map has 6 ⁇ 4 small regions and the output feature map has 4 ⁇ 2 small regions, the throughput is such that only 8 points are output at the same time.
  • the arithmetic circuit 18 When performing convolution processing for each small region, the arithmetic circuit 18 does not perform the convolution processing for the small region if all the features that make up the small region have the same value, and performs the convolution processing on the predetermined small region. The result of processing for the case where all the constituent features have the same value is output as the result of processing the small region.
  • the processing unit 32 determines whether or not all the features forming the small area have the same value. If it is determined that all the features that make up the small region are of the same value, the arithmetic circuit 18 does not perform convolution processing on the small region, and uses all the features that make up the small region stored in the pre-computation result table. is the equivalent value, is output as the result of processing the small region.
  • the arithmetic circuit 18 performs the convolution processing for each small region, if the features forming the small region are the same as the features of the previously processed small region, the arithmetic circuit 18 does not perform the convolution processing for the small region.
  • the result of processing the small area processed immediately before is output as the result of processing the small area.
  • the processing unit 32 determines whether or not the features that make up the small area are the same as the features of the previously processed small area. If it is determined that the features forming the small region are the same as the features of the previously processed small region, the arithmetic circuit 18 does not perform the convolution processing on the small region, and uses the previously processed small region. is output as the result of processing the small region.
  • the updating unit 34 updates the parameters of the neural network so that the result of processing the target image using the neural network matches the processing result obtained in advance.
  • the updating unit 34 also updates the pre-calculation result table of each convolutional layer based on the updated parameters of the neural network.
  • Each process of the processing unit 32 and the update unit 34 is repeatedly performed until a predetermined repetition end condition is satisfied. This allows the neural network to learn.
  • the inference unit 22 includes an acquisition unit 40 and a processing unit 42, as shown in FIG.
  • the acquisition unit 40 acquires the input target image to be processed.
  • the processing unit 42 processes the target image using a neural network including convolution processing.
  • the processing unit 42 performs the convolution process for each small area obtained by dividing the input feature map that is the input for the convolution process. Convolution processing for each small area is performed using the arithmetic circuit 18 .
  • the small area data of the input feature map and the kernel are input to the arithmetic circuit 18, and the arithmetic circuit 18 outputs an output feature map representing the result of convolution processing for each small area.
  • the processing unit 42 determines for each small region whether or not all the features that make up the small region have the same value. If it is determined that all the features that make up the small region are of the same value, the arithmetic circuit 18 does not perform convolution processing on the small region, and uses all the features that make up the small region stored in the pre-computation result table. is the equivalent value, is output as the result of processing the small region.
  • the processing unit 42 determines whether or not the features forming the small region are the same as the features of the previously processed small region. If it is determined that the features forming the small region are the same as the features of the previously processed small region, the arithmetic circuit 18 does not perform the convolution processing on the small region, and uses the previously processed small region. is output as the result of processing the small region.
  • the display unit 16 displays the result of processing the target image using the neural network.
  • FIG. 7 is a flowchart showing the flow of learning processing by the image processing device 10.
  • the learning process is performed by the CPU 11 reading out the learning process program from the ROM 12 or the storage 14, developing it in the RAM 13, and executing it. Learning data is also input to the image processing apparatus 10 .
  • step S100 the CPU 11, as the acquisition unit 30, acquires the target image to be processed of the input learning data and the processing result.
  • step S102 the CPU 11, as the processing unit 32, uses a neural network including convolution processing to process the target image of the learning data.
  • step S104 the CPU 11, as the update unit 34, updates the parameters of the neural network so that the result of processing the target image of the learning data using the neural network matches the previously obtained processing result. and update the precomputed result table.
  • step S106 the CPU 11 determines whether or not a predetermined repetition end condition is satisfied. If the repetition end condition is not satisfied, the process returns to step S102, and the processes of the processing section 32 and the updating section 34 are repeatedly performed. This allows the neural network to learn.
  • the above step S102 performs arithmetic processing for each layer of the neural network.
  • the arithmetic processing of the convolution layer is realized by the processing routine shown in FIG.
  • step S110 the CPU 11, as the processing unit 32, divides the input feature map, which is the input of the convolutional layer, into small regions.
  • step S112 the CPU 11, as the processing unit 32, reads out the pre-calculation result table of the convolutional layer from the RAM 13.
  • step S114 the CPU 11, as the processing unit 32, sequentially treats the divided small regions as processing targets, and the features forming the small regions to be processed have the same value or are the same as the features of the previously processed small region. Determine whether it is
  • step S116 the CPU 11, as the processing unit 32, outputs to the arithmetic circuit 18 each small region data of the input feature map, the pre-computation result table, and the same value flag and continuity flag indicating the determination result of step S114. Then, the arithmetic circuit 18 performs convolution processing for each small area. At this time, if the small regions to be processed are not the same small regions and are not consecutively the same small region, the arithmetic circuit 18 performs convolution processing on the small regions to be processed. When the small region to be processed is a small region with the same value, the arithmetic circuit 18 does not perform convolution processing on the small region to be processed, and the features constituting the small region stored in the pre-computation result table are the relevant ones. The result of processing for the case of the same value is output as the result of processing the small region to be processed.
  • the arithmetic circuit 18 does not perform the convolution process on the small region to be processed, and processes the small region processed immediately before. The result obtained is output as the result of processing the small area to be processed.
  • FIG. 9 is a flowchart showing the flow of image processing by the image processing device 10.
  • Image processing is performed by the CPU 11 reading out an image processing program from the ROM 12 or the storage 14, developing it in the RAM 13, and executing it.
  • a target image is also input to the image processing apparatus 10 .
  • step S120 the CPU 11, as the acquisition unit 40, acquires the input target image.
  • step S122 the CPU 11, as the processing unit 42, processes the target image using the neural network learned by the learning process described above. Then, the result of processing the target image using the neural network is displayed by the display unit 16 .
  • step S122 performs arithmetic processing for each layer of the neural network.
  • the arithmetic processing of the convolution layer is realized by the processing routine shown in FIG.
  • the image processing apparatus when the image processing apparatus according to the first embodiment performs convolution processing for each small region of the input feature map, if the features forming the small regions have the same value, or if the features that are processed immediately before are If the feature of the small region is the same as the feature of the small region, the convolution processing is not performed on the small region, and the result of the processing of the small region of the predetermined equivalent value or the result of the processing immediately before is used to process the small region. output as a result. As a result, processing using a neural network including convolution processing can be speeded up.
  • the conventional method requires The internals are less likely to be all zero, and the speed of computation cannot be increased in many cases.
  • FIG. 10A when the features of the input feature map are represented by 4-bit data, the inside of the small region is all zero. When represented by data, the inside of the small region is not entirely zero.
  • the calculation speed will be sufficiently increased in comparison with the conventional method in small regions of the same value or consecutively identical small regions.
  • the second embodiment differs from the first embodiment in that convolution processing is performed in parallel on a plurality of small regions in an arithmetic circuit.
  • the arithmetic circuit performs convolution processing on a plurality of small regions of the input feature map in parallel.
  • FIG. 11 shows an example in which the arithmetic circuit sets the size of the subregions of the input feature map to 6 ⁇ 4, performs convolution processing on four subregions in parallel, and simultaneously outputs the convolution processing results of 32 points. showing.
  • each small region has the same value or is continuously the same small region.
  • the small region 1 is the same small region
  • the small region 3 is the same small region continuously
  • the convolution processing of the small regions 1 and 3 is skipped. Further, convolution processing is performed in parallel on small regions 0, 2, 4, and 5, and as a result, processing results for six small regions are obtained at once.
  • each small region has the same value or is continuously the same small region.
  • the hardware configuration of the image processing device 210 of the second embodiment is the same as the hardware configuration of the image processing device 10 shown in FIG.
  • the arithmetic circuit 18 of the image processing device 210 accepts the small area data of the input feature map and the kernel, and repeats convolution processing for a predetermined number of small areas in parallel. Outputs the output feature map, which is the result of the convolution process.
  • the processing unit 32 of the learning unit 20 processes the target image using a neural network including convolution processing.
  • the processing unit 32 performs the convolution process for each small area obtained by dividing the input feature map that is the input for the convolution process. Convolution processing for each small area is performed using the arithmetic circuit 18 .
  • the processing unit 32 determines whether or not each small region has the same value, and whether or not the small regions are consecutively the same small region.
  • the small area data of the input feature map, the kernel, the determination result for each small area, and the precalculated result table are input to the arithmetic circuit 18, and the arithmetic circuit 18 outputs an output feature map.
  • the processing unit 32 determines for each small area whether or not all the features forming the small area have the same value. If it is determined that all the features that make up the small region are of the same value, the arithmetic circuit 18 does not perform convolution processing on the small region, and uses all the features that make up the small region stored in the pre-computation result table. is the equivalent value, is output as the result of processing the small region.
  • the processing unit 32 determines for each small area whether or not the features forming the small area are the same as the features of the previously processed small area. If it is determined that the features forming the small region are the same as the features of the previously processed small region, the arithmetic circuit 18 does not perform the convolution processing on the small region, and uses the previously processed small region. is output as the result of processing the small region.
  • the arithmetic circuit 18 performs convolution processing in parallel on a predetermined number of small regions in which all the features forming the small regions are not the same value and the features are not the same as those of the previously processed small region.
  • the output feature map which is the result of the convolution process performed for each small region as described above, becomes the input for the next layer of the neural network.
  • the processing unit 42 of the inference unit 22 processes the target image using a neural network including convolution processing.
  • the processing unit 42 performs the convolution process for each small area obtained by dividing the input feature map that is the input for the convolution process. Convolution processing for each small area is performed using the arithmetic circuit 18 .
  • the processing unit 42 determines whether or not each small region has the same value, and whether or not the small regions are consecutively the same small region.
  • the small area data of the input feature map, the kernel, the determination result for each small area, and the precalculated result table are input to the arithmetic circuit 18, and the arithmetic circuit 18 outputs an output feature map.
  • the processing unit 42 determines for each small region whether or not all the features forming the small region have the same value when performing the convolution processing. If it is determined that all the features that make up the small region are of the same value, the arithmetic circuit 18 does not perform convolution processing on the small region, and uses all the features that make up the small region stored in the pre-computation result table. is the equivalent value, is output as the result of processing the small region.
  • the processing unit 42 determines for each small region whether or not the features forming the small region are the same as the features of the previously processed small region. If it is determined that the features forming the small region are the same as the features of the previously processed small region, the arithmetic circuit 18 does not perform the convolution processing on the small region, and uses the previously processed small region. is output as the result of processing the small region.
  • the arithmetic circuit 18 performs convolution processing in parallel on a predetermined number of small regions in which all the features forming the small regions are not the same value and the features are not the same as those of the previously processed small region.
  • the output feature map which is the result of the convolution process performed for each small region as described above, becomes the input for the next layer of the neural network.
  • the above step S102 performs arithmetic processing for each layer of the neural network.
  • the arithmetic processing of the convolution layer is realized by the processing routine shown in FIG.
  • step S116 if the features forming the small area to be processed have the same value, the arithmetic circuit 18 does not perform the convolution process on the small area to be processed, and uses the small area stored in the pre-calculation result table.
  • the result of processing for the case where the constituent features have the same value is output as the result of processing the small region to be processed.
  • the arithmetic circuit 18 does not perform convolution processing on the small area to be processed, and The result of processing the small area is output as the result of processing the small area to be processed.
  • the arithmetic circuit 18 performs convolution processing in parallel on a predetermined number of small regions in which the features forming the small regions are not the same as the features of the previously processed small region.
  • the CPU 11 of the image processing device 210 reads the image processing program from the ROM 12 or the storage 14, develops it in the RAM 13, and executes it, thereby performing the same processing as the image processing shown in FIG. A target image is also input to the image processing device 210 .
  • step S122 performs arithmetic processing for each layer of the neural network.
  • the arithmetic processing of the convolution layer is realized by the processing routine shown in FIG.
  • the image processing apparatus configures the arithmetic circuit to perform convolution processing on a plurality of small regions in parallel, and performs convolution processing for each small region of the input feature map.
  • the convolution process if the features that make up the small area have the same value, or if they are the same as the features of the previously processed small area, the small area is not subjected to convolution processing, and a predetermined equivalent small area is selected.
  • the result of processing for the small region or the result of processing immediately before is output as the result of processing the small region.
  • the processing results are calculated in advance for each value (for example, 16 values when the feature is represented by 4-bit data) and stored in memory. , but it is not limited to this. Values of features that are highly likely to appear as small regions of the same value are determined in advance by performing simulations, etc., and processing results for the small regions of the same value are calculated in advance only for some feature values with the highest appearance probability. It may be obtained in advance and stored in the pre-calculation result table (see FIG. 12). If it is a small region of the same value and the processing result is obtained in advance, the processing result obtained in advance is output without performing the convolution processing. In FIG.
  • the processing results are obtained only for each of the same small regions with a feature value of 1, the same small regions with a feature value of 4, and the same small regions with a feature value of 15.
  • An example obtained in advance is shown.
  • the processing result is 0 for the same small area with the feature value of 0, it is not stored in the pre-computation result table.
  • the size of the precomputation result table that stores the processing results obtained in advance can be reduced, leading to a reduction in the amount of hardware memory.
  • the processing result is calculated in advance for each of all values (for example, 16 values when the feature is represented by 4-bit data) and stored in memory is an example. , but it is not limited to this.
  • the processing result may be read from the calculation result table without performing the convolution processing (see FIG. 13).
  • FIG. 13 shows an example in which a small area having the same feature value of 4 appears for the first time in small area 2, convolution processing is performed, and the processing result is stored in the calculation result table.
  • the processing result is read from the calculation result table without performing the convolution processing when the same small region having the feature value of 4 appears for the second time or later. Also, the calculation result table is reset each time each layer is processed. This eliminates the need for pre-calculation processing. In addition, since it is not necessary to transfer the pre-calculation result of each layer from the RAM or the like to the internal memory of the arithmetic circuit for each layer, it is possible to reduce the amount of data transferred to the RAM or the like.
  • the case of determining whether or not the small areas are continuously the same has been described as an example, but the present invention is not limited to this.
  • FIG. 14 in addition to the same flag indicating whether or not it is the same as the previously processed small region, a small region interval parameter indicating how many previous small regions are the same is used to determine the small region 4 is the same as the small region 1, and the same processing result as the small region 1 is output without convolution processing.
  • determining whether or not small areas are equivalent small areas has been described as an example, but the present invention is not limited to this. It may be determined whether or not the small region is the same as a predetermined feature pattern other than the small region of the same value. For example, a processing result for a predetermined frequent feature pattern is obtained in advance, and it is determined whether or not the small area is the same as the predetermined frequent feature pattern. If the feature pattern is the same as the frequently appearing feature pattern, the pre-obtained processing result may be output without performing the convolution processing.
  • the image processing device includes a learning unit and an inference unit
  • the device with the learning unit and the device with the inference unit may be configured as separate devices.
  • a device equipped with an inference unit may be mounted on a drone or used as an IoT or edge device.
  • one device is generally configured to include a learning unit and an inference unit in the case of high-speed learning using hardware located in a data center, such as cloud computing.
  • the various processes executed by the CPU by reading the software (program) in the above embodiment may be executed by various processors other than the CPU.
  • the processor is a PLD (Programmable Logic Device) whose circuit configuration can be changed after manufacturing, such as an FPGA (Field-Programmable Gate Array), and an ASIC (Application Specific Integrated Circuit) to execute specific processing.
  • a dedicated electric circuit or the like which is a processor having a specially designed circuit configuration, is exemplified.
  • the learning processing and image processing may be performed by one of these various processors, or a combination of two or more processors of the same or different type (for example, multiple FPGAs, and a CPU and an FPGA). , etc.).
  • the hardware structure of these various processors is an electric circuit in which circuit elements such as semiconductor elements are combined.
  • the mode in which the learning processing program and the image processing program are pre-stored (installed) in the storage 14 has been described, but the present invention is not limited to this.
  • Programs are stored in non-transitory storage media such as CD-ROM (Compact Disk Read Only Memory), DVD-ROM (Digital Versatile Disk Read Only Memory), and USB (Universal Serial Bus) memory.
  • CD-ROM Compact Disk Read Only Memory
  • DVD-ROM Digital Versatile Disk Read Only Memory
  • USB Universal Serial Bus
  • An image processing device including a neural network including convolution processing for images, memory; at least one processor connected to the memory; including The processor Acquire the target image to be processed, An image processing program for processing the target image using a neural network including the convolution process, When performing the convolution processing, performing the convolution processing for each small region obtained by dividing the input feature map that is the input of the convolution processing, When performing the convolution processing for each of the small regions, if the feature that constitutes the small region is the same as a predetermined feature or a feature of a previously processed small region, perform the convolution processing on the small region. an image processing apparatus that outputs a result of processing the predetermined feature or a result of processing in the past as a result of processing the small region.
  • a non-transitory storage medium storing a computer-executable program including a neural network including convolution processing on an image so as to perform image processing,
  • the image processing includes Acquire the target image to be processed,
  • An image processing program for processing the target image using a neural network including the convolution process When performing the convolution processing, performing the convolution processing for each small region obtained by dividing the input feature map that is the input of the convolution processing, When performing the convolution processing for each of the small regions, if the feature that constitutes the small region is the same as a predetermined feature or a feature of a previously processed small region, perform the convolution processing on the small region.
  • a non-temporary storage medium that outputs a result of processing the predetermined feature or a result of processing in the past as a result of processing the small region.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

畳み込み処理を行う際に、畳み込み処理の入力となる入力特徴マップを小領域に分割し、小領域を構成する特徴が、予め定められた特徴、又は過去に処理された小領域の特徴と同じ場合、小領域に対する畳み込み処理を行わず、予め定められた特徴に対して処理された結果、又は過去に処理された結果を、小領域を処理した結果として出力する。

Description

画像処理装置、画像処理方法、及び画像処理プログラム
 本開示の技術は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
 CNN(Convolutional Neural Network)を用いた推論を行う場合,ネットワークは複数の層で構成され,畳み込み層(Convolutional layer)では畳み込み処理を行う。畳み込み処理は積和演算や活性化処理を行う。
 CNNを用いた推論においては、上記の畳み込み演算が全体処理量の大部分を占める。
 ハードウェアとしてCNNを用いた推論エンジンを実装する場合においても、畳み込み演算の性能がエンジン全体の性能に直結する。
 カーネルサイズが3×3である場合における畳み込み演算の例を図15、図16に示す。図15では、3×3のカーネルを用いて、3×3の入力特徴マップに対して畳み込み演算を行う例を示している。この例では、9回の積和演算を行い、1×1の出力特徴マップを出力する。
 また、図16では、3×3のカーネルを用いて、(W+2)×(H+2)の入力特徴マップに対して畳み込み演算を行う例を示している。この例では、カーネルを入力特徴マップ上で動かしながら9回の積和演算を繰り返し行い、W×Hの出力特徴マップを出力する。
 CNNの畳み込み演算を行うハードウェアでは、スループットを高めるため、入力特徴マップをある固定サイズの小領域に分割し、1つの小領域への積和演算を一度に行えるように回路を用意することが多い(図17参照)。図17では、26×14の入力特徴マップを、9個の10×6の小領域に分割し、演算回路が、3×3のカーネルを用いて32点(8×4点)同時に畳み込み処理を行い、8×4の出力特徴マップを出力する例を示している。この例では、入力特徴マップのドット部分が、1つの小領域であり、演算回路が、9個の小領域の各々に対して、32点同時の畳み込み処理を行うことにより、24×12の出力特徴マップを出力する。
 また、演算高速化手法の1つとして、図18に示すように、入力特徴マップの小領域の値が全てゼロの場合に演算をスキップする手法が知られている(例えば、非特許文献1)。図18では、出力される小領域のサイズが4×2であり、カーネルサイズが3×3であり、0~15を表す4ビットデータを用いる場合の例を示している。この例では、入力特徴マップの小領域のサイズが6×4であり、点線で表される小領域の値が全て0となっている。0に対する積和演算の結果は0になるため、演算回路で畳み込み処理を行う必要はなく、当該小領域の畳み込み処理をスキップすることが可能となる。
Angshuman Parashar, Minsoo Rhu, Anurag Mukkara, Antonio Puglielli, Rangharajan Venkatesan, Brucek Khailany, Joel Emer, Stephen W. Keckler, William J. Dally, "SCNN: An Accelerator for Compressed-sparse Convolutional Neural Networks", arXiv:1708.04485, 23 May 2017
 ここで、スループットを高めるために、小領域のサイズを大きくしようとすると、入力特徴マップの小領域の値が全てゼロとなることが少なくなり、十分な演算高速化が期待できない。例えば、図19Aに示すように、出力特徴マップの小領域のサイズが4×2である場合(入力特徴マップの小領域のサイズが6×4である場合)には、入力特徴マップの点線で表される小領域の値が全てゼロとなる。一方、図19Bに示すように、出力特徴マップの小領域のサイズが8×4である場合(入力特徴マップの小領域のサイズが10×6である場合)には、入力特徴マップの点線で表される小領域にゼロでない値が含まれる。
 また、小領域のサイズは演算スループットに直結するため、変更が難しい場合が多い。
 開示の技術は、上記の点に鑑みてなされたものであり、畳み込み処理を含むニューラルネットワークを用いた処理を高速化することができる画像処理装置、画像処理方法、及び画像処理プログラムを提供することを目的とする。
 本開示の第1態様は、画像を対象とする畳み込み処理を含むニューラルネットワークを含む画像処理装置であって、処理対象である対象画像を取得する取得部と、前記畳み込み処理を含むニューラルネットワークを用いて前記対象画像を処理する処理部とを含み、前記処理部は、前記畳み込み処理を行う際に、前記畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに前記畳み込み処理を行い、前記小領域ごとに前記畳み込み処理を行う際に、前記小領域を構成する特徴が、予め定められた特徴、又は過去に処理された小領域の特徴と同じ場合、前記小領域に対する前記畳み込み処理を行わず、前記予め定められた特徴に対して処理された結果、又は過去に処理された結果を、前記小領域を処理した結果として出力する。
 本開示の第2態様は、画像を対象とする畳み込み処理を含むニューラルネットワークを含む画像処理装置における画像処理方法であって、取得部が、処理対象である対象画像を取得し、処理部が、前記畳み込み処理を含むニューラルネットワークを用いて前記対象画像を処理することを含み、前記処理部が前記畳み込み処理を行う際に、前記畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに前記畳み込み処理を行い、前記小領域ごとに前記畳み込み処理を行う際に、前記小領域を構成する特徴が、予め定められた特徴、又は過去に処理された小領域の特徴と同じ場合、前記小領域に対する前記畳み込み処理を行わず、前記予め定められた特徴に対して処理された結果、又は過去に処理された結果を、前記小領域を処理した結果として出力する。
 本開示の第3態様は、画像を対象とする畳み込み処理を含むニューラルネットワークを含むコンピュータに、処理対象である対象画像を取得し、前記畳み込み処理を含むニューラルネットワークを用いて前記対象画像を処理することを実行させるための画像処理プログラムであって、前記畳み込み処理を行う際に、前記畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに前記畳み込み処理を行い、前記小領域ごとに前記畳み込み処理を行う際に、前記小領域を構成する特徴が、予め定められた特徴、又は過去に処理された小領域の特徴と同じ場合、前記小領域に対する前記畳み込み処理を行わず、前記予め定められた特徴に対して処理された結果、又は過去に処理された結果を、前記小領域を処理した結果として出力する。
 開示の技術によれば、畳み込み処理を含むニューラルネットワークを用いた処理を高速化することができる。
入力特徴マップの小領域を説明するための図である。 入力特徴マップの小領域に対する畳み込み処理をスキップする方法を説明するための図である。 第1実施形態及び第2実施形態の画像処理装置として機能するコンピュータの一例の概略ブロック図である。 第1実施形態及び第2実施形態の画像処理装置の機能構成を表すブロック図である。 第1実施形態及び第2実施形態の画像処理装置の学習部の機能構成を表すブロック図である。 第1実施形態及び第2実施形態の画像処理装置の推論部の機能構成を表すブロック図である。 第1実施形態及び第2実施形態の学習処理の流れを表すフローチャートである。 第1実施形態及び第2実施形態の学習処理及び画像処理における畳み込み処理の流れを表すフローチャートである。 第1実施形態及び第2実施形態の画像処理の流れを表すフローチャートである。 4bitデータを用いた小領域の一例を示す図である。 6bitデータを用いた小領域の一例を示す図である。 複数の小領域に対して並列に畳み込み処理を行う方法を説明するための図である。 変形例における入力特徴マップの小領域に対する畳み込み処理をスキップする方法を説明するための図である。 変形例における入力特徴マップの小領域に対する畳み込み処理をスキップする方法を説明するための図である。 変形例における入力特徴マップの小領域に対する畳み込み処理をスキップする方法を説明するための図である。 畳み込み処理の一例を示す図である。 畳み込み処理の一例を示す図である。 小領域ごとの畳み込み処理の一例を示す図である。 入力特徴マップの小領域の一例を示す図である。 入力特徴マップの小領域の一例を示す図である。 入力特徴マップの小領域の一例を示す図である。
 以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
<開示の技術の実施形態の概要>
 開示の技術では、畳み込み層の入力特徴マップのデータをRAM(Random Access Memory)等から読み込んだ後に、小領域ごとに、小領域内の全ての特徴が同値である小領域であるか、連続して同一の小領域であるかをそれぞれ判定する。以下、入力特徴マップの小領域の内部が全て同一の特徴となるものを「同値の小領域」と称する。また、小領域内の特徴が、一つ前の小領域と全く同一となるものを「連続して同一の小領域」と称する。図1では、「同値の小領域」の一例として、点線で囲まれている小領域内の全ての特徴が4である例を示している。また、「連続して同一の小領域」の一例として、細い破線で囲まれている小領域内の特徴と、太い破線で囲まれている小領域内の特徴とが、同一である例を示している。ここで、同値である小領域であるかを判定するのは、入力画像でも同値となっているときが多いためである。また、連続して同一の小領域であるかを判定するのは、入力画像でも同じような領域が続くときが多いためである。例えば、入力画像の10×6領域の上1行目の10点の値が10で下3行目の50点の値が12である場合である。同値である領域、連続して同一の小領域のどちらの場合も、入力画像が複雑な絵の領域ではなく平坦で均一気味な領域の場合があてはまる。
 また、図2に示すように、同値の小領域であるか否かの小領域ごとの判定結果を表す同値フラグと、連続して同一の小領域であるか否かの小領域ごとの判定結果を表す連続フラグと、入力特徴マップの各小領域のデータである小領域データとを、畳み込み処理を行う演算回路に入力する。
 演算回路において、処理対象となる小領域が、同値の小領域であるか、又は連続して同一の小領域である場合には、畳み込み処理を行わない処理スキップを行う。連続して同一の小領域である場合、直前に処理対象となった小領域と同じ処理結果となるため、直前に処理対象となった小領域の処理結果を連続して出力するだけでよく、処理が高速化される。図2では、小領域3内の特徴と小領域4内の特徴とが同一であるため、小領域4に対して処理スキップを行う例を示している。
 また、同値の小領域については、処理結果が限定される。特徴を示す値が4bitである場合には、処理結果は16パターンであり、特徴を示す値が8bitである場合には、処理結果は256パターンとなる。全パターンの処理結果を事前計算して事前計算結果テーブルをRAMに格納しておき、各層の処理ごとに、RAMから演算回路の内部メモリに事前計算結果テーブルを読み込んでおく。これにより、同値の小領域に対しては畳み込み処理を行わずに、内部メモリ参照のみで処理結果が得られるため、処理が高速化される。図2では、小領域2が同値の小領域であるため、小領域2に対して処理スキップを行い、事前計算結果テーブルに格納された、全ての特徴が4である場合の処理結果を参照して出力する例を示している。
 また、図2に示すように、演算回路による畳み込み処理の結果である出力特徴マップをRAM等に書き出す。書き出した出力特徴マップは次層以降で入力特徴マップとして使用され、再度、上述した判定処理と、処理スキップを用いた畳み込み処理を行うことが繰り返される。
[第1実施形態]
<第1実施形態に係る画像処理装置の構成>
 図3は、第1実施形態の画像処理装置10のハードウェア構成を示すブロック図である。
 図3に示すように、画像処理装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM13、ストレージ14、入力部15、表示部16、通信インタフェース(I/F)17、及び演算回路18を有する。各構成は、バス19を介して相互に通信可能に接続されている。
 CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、ニューラルネットワークの学習処理を行うための学習処理プログラム及びニューラルネットワークを用いた画像処理を行うための画像処理プログラムが格納されている。学習処理プログラム及び画像処理プログラムは、1つのプログラムであっても良いし、複数のプログラム又はモジュールで構成されるプログラム群であっても良い。
 ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
 入力部15は、マウス等のポインティングデバイス、及びキーボードを含み、各種の入力を行うために使用される。
 入力部15は、ニューラルネットワークを学習するための学習用データを、入力として受け付ける。例えば、入力部15は、処理対象となる対象画像と、予め求められた対象画像に対する処理結果とを含む学習用データを、入力として受け付ける。
 また、入力部15は、処理対象となる対象画像を、入力として受け付ける。
 表示部16は、例えば、液晶ディスプレイであり、処理結果を含む各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能しても良い。
 通信インタフェース17は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
 演算回路18は、ニューラルネットワークの畳み込み層における畳み込み処理を実行する。具体的には、演算回路18は、入力特徴マップの小領域と、カーネルとを受け付け、当該小領域内の各点の畳み込み処理の結果である、出力特徴マップの小領域を出力する。
 次に、画像処理装置10の機能構成について説明する。図4は、画像処理装置10の機能構成の例を示すブロック図である。
 画像処理装置10は、機能的には、図4に示すように、学習部20及び推論部22を備えている。
 学習部20は、図5に示すように、取得部30、処理部32、及び更新部34を備えている。
 取得部30は、入力された学習用データの対象画像及び処理結果を取得する。
 処理部32は、畳み込み処理を含むニューラルネットワークを用いて対象画像を処理する。処理部32は、畳み込み処理を行う際に、畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに畳み込み処理を行う。小領域ごとの畳み込み処理は、演算回路18を用いて実行される。このとき、入力特徴マップの小領域データとカーネルとが演算回路18に入力され、演算回路18から、小領域ごとの畳み込み処理の結果を表す出力特徴マップが出力される。
 ここで、入力特徴マップは、上記図1に示すように小領域に分割される。上記図1では、出力特徴マップの小領域に対応する領域を太線の枠で表示しており、入力特徴マップの小領域は、対応する出力特徴マップの小領域と、隣り合う小領域と重複した重複領域とを含む領域である。このように、入力特徴マップを分割した小領域は、隣り合う小領域と重複した重複領域であって、かつ、畳み込み処理のカーネルサイズに応じた重複領域を有する。なお、小領域の分割について、設計時に決めておく。例えば、ハードウェアの制約(サイズや電力)と所望のスループット(xxfpsなど)のバランスで決めればよい。カーネルサイズを3×3とし、入力特徴マップの小領域を10×6とし、出力特徴マップの小領域を8×4とすれば、同時に32点出力できるスループットが得られる。このとき、積和演算回路は、288個(=(3×3)×8×4)必要となる。また、入力特徴マップの小領域を6×4とし、出力特徴マップの小領域を4×2とすれば、同時に8点のみ出力するスループットになる。このとき、積和演算回路は72個(=(3×3)×4×2)必要となる。また、積和演算をハードウェアで実現する場合には、小領域の分割は設計時に決めるため、層によって小領域の分割は変化しない。
 演算回路18は、小領域ごとに畳み込み処理を行う際に、当該小領域を構成する全ての特徴が、同値である場合、当該小領域に対する畳み込み処理を行わず、予め定められた、小領域を構成する全ての特徴が当該同値である場合に対して処理された結果を、当該小領域を処理した結果として出力する。
 具体的には、処理部32が、小領域ごとに、当該小領域を構成する全ての特徴が、同値であるか否かを判定する。当該小領域を構成する全ての特徴が、同値であると判定された場合、演算回路18は、当該小領域に対する畳み込み処理を行わず、事前計算結果テーブルに格納された、小領域を構成する全ての特徴が当該同値である場合に対して処理された結果を、当該小領域を処理した結果として出力する。
 また、演算回路18は、小領域ごとに畳み込み処理を行う際に、当該小領域を構成する特徴が、直前に処理された小領域の特徴と同じ場合、当該小領域に対する畳み込み処理を行わず、直前に処理された小領域に対して処理された結果を、当該小領域を処理した結果として出力する。
 具体的には、処理部32が、小領域ごとに、当該小領域を構成する特徴が、直前に処理された小領域の特徴と同じであるか否かを判定する。当該小領域を構成する特徴が、直前に処理された小領域の特徴と同じであると判定された場合、演算回路18は、当該小領域に対する畳み込み処理を行わず、直前に処理された小領域に対して処理された結果を、当該小領域を処理した結果として出力する。
 更新部34は、対象画像に対してニューラルネットワークを用いて処理した結果と、予め求められた処理結果とが一致するように、ニューラルネットワークのパラメータを更新する。また、更新部34は、更新されたニューラルネットワークのパラメータに基づいて、各畳み込み層の事前計算結果テーブルを更新する。
 予め定められた反復終了条件を満たすまで、処理部32及び更新部34の各処理が繰り返し行われる。これにより、ニューラルネットワークが学習される。
 推論部22は、図6に示すように、取得部40及び処理部42を備えている。
 取得部40は、入力された処理対象である対象画像を取得する。
 処理部42は、畳み込み処理を含むニューラルネットワークを用いて対象画像を処理する。処理部42は、畳み込み処理を行う際に、畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに畳み込み処理を行う。小領域ごとの畳み込み処理は、演算回路18を用いて実行される。このとき、入力特徴マップの小領域データとカーネルとが演算回路18に入力され、演算回路18から、小領域ごとの畳み込み処理の結果を表す出力特徴マップが出力される。
 処理部42は、処理部32と同様に、小領域ごとに、当該小領域を構成する全ての特徴が、同値であるか否かを判定する。当該小領域を構成する全ての特徴が、同値であると判定された場合、演算回路18は、当該小領域に対する畳み込み処理を行わず、事前計算結果テーブルに格納された、小領域を構成する全ての特徴が当該同値である場合に対して処理された結果を、当該小領域を処理した結果として出力する。
 また、処理部42は、処理部32と同様に、当該小領域を構成する特徴が、直前に処理された小領域の特徴と同じであるか否かを判定する。当該小領域を構成する特徴が、直前に処理された小領域の特徴と同じであると判定された場合、演算回路18は、当該小領域に対する畳み込み処理を行わず、直前に処理された小領域に対して処理された結果を、当該小領域を処理した結果として出力する。
 対象画像に対してニューラルネットワークを用いて処理した結果が、表示部16により表示される。
<第1実施形態に係る画像処理装置の作用>
 次に、第1実施形態に係る画像処理装置10の作用について説明する。
 図7は、画像処理装置10による学習処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から学習処理プログラムを読み出して、RAM13に展開して実行することにより、学習処理が行なわれる。また、画像処理装置10に、学習用データが入力される。
 ステップS100で、CPU11は、取得部30として、入力された学習用データの処理対象である対象画像及び処理結果を取得する。
 ステップS102で、CPU11は、処理部32として、畳み込み処理を含むニューラルネットワークを用いて、学習用データの対象画像を処理する。
 ステップS104で、CPU11は、更新部34として、学習用データの対象画像に対してニューラルネットワークを用いて処理した結果と、予め求められた処理結果とが一致するように、ニューラルネットワークのパラメータを更新し、事前計算結果テーブルを更新する。
 ステップS106で、CPU11は、予め定められた反復終了条件を満たしたか否かを判定する。反復終了条件を満たしていない場合には、上記ステップS102へ戻り、処理部32、及び更新部34の各処理が繰り返し行われる。これにより、ニューラルネットワークが学習される。
 上記ステップS102は、ニューラルネットワークの各層の演算処理を行う。ここで、畳み込み層の演算処理は、図8に示す処理ルーチンによって実現される。
 ステップS110において、CPU11は、処理部32として、当該畳み込み層の入力となる入力特徴マップを小領域に分割する。
 ステップS112において、CPU11は、処理部32として、RAM13から、当該畳み込み層の事前計算結果テーブルを読み出す。
 ステップS114において、CPU11は、処理部32として、分割した小領域を順に処理対象とし、処理対象の小領域を構成する特徴が、同値であるか、又は直前に処理された小領域の特徴と同じであるかを判定する。
 ステップS116において、CPU11は、処理部32として、入力特徴マップの各小領域データ、事前計算結果テーブル、及び上記ステップS114の判定結果を示す同値フラグ及び連続フラグを、演算回路18に出力する。そして、演算回路18は、小領域ごとに畳み込み処理を行う。このとき、処理対象の小領域が、同値の小領域でなく、かつ、連続して同一の小領域でもない場合には、演算回路18は、処理対象の小領域に対する畳み込み処理を行う。処理対象の小領域が、同値の小領域である場合、演算回路18は、処理対象である小領域に対する畳み込み処理を行わず、事前計算結果テーブルに格納された、小領域を構成する特徴が当該同値である場合に対して処理された結果を、処理対象である小領域を処理した結果として出力する。
 また、処理対象である小領域が、連続して同一の小領域である場合、演算回路18は、処理対象である小領域に対する畳み込み処理を行わず、直前に処理された小領域に対して処理された結果を、処理対象である小領域を処理した結果として出力する。
 そして、処理ルーチンを終了し、各小領域に対する処理結果からなる出力特徴マップを出力し、次の層の入力特徴マップとする。
 図9は、画像処理装置10による画像処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から画像処理プログラムを読み出して、RAM13に展開して実行することにより、画像処理が行なわれる。また、画像処理装置10に、対象画像が入力される。
 ステップS120で、CPU11は、取得部40として、入力された対象画像を取得する。
 ステップS122で、CPU11は、処理部42として、上述した学習処理により学習されたニューラルネットワークを用いて、対象画像を処理する。そして、対象画像に対してニューラルネットワークを用いて処理した結果が、表示部16により表示される。
 上記ステップS122は、ニューラルネットワークの各層の演算処理を行う。ここで、畳み込み層の演算処理は、上記図8に示す処理ルーチンによって実現される。
 以上説明したように、第1実施形態に係る画像処理装置は、入力特徴マップの小領域ごとに畳み込み処理を行う際に、小領域を構成する特徴が、同値である場合、又は直前に処理された小領域の特徴と同じ場合、当該小領域に対する畳み込み処理を行わず、予め定められた同値の小領域に対して処理された結果、又は直前に処理された結果を、当該小領域を処理した結果として出力する。これにより、畳み込み処理を含むニューラルネットワークを用いた処理を高速化することができる。
 スループット向上のために入力特徴マップを分割した小領域のサイズを大きくする場合や、CNN演算精度を高めるために入力特徴マップを表現するビット深度を大きくする場合には、従来手法では、小領域の内部が全てゼロとなることが少なくなり、演算を高速化できないことが多い。例えば、図10Aに示すように、入力特徴マップの特徴を4bitデータで表す場合には、小領域の内部が全てゼロとなるのに対し、図10Bに示すように、入力特徴マップの特徴を6bitデータで表す場合には、小領域の内部が全てゼロとならない。一方、本実施形態では、同値の小領域又は連続して同一の小領域において、従来手法と比べて十分な演算高速化が見込める。
[第2実施形態]
 第2実施形態では、演算回路において複数の小領域に対して並列に畳み込み処理を行う点が、第1実施形態と異なっている。
<第2実施形態の概要>
 第2実施形態では、図11に示すように、演算回路において、入力特徴マップの複数の小領域に対して並列に畳み込み処理を行う。図11では、演算回路が、入力特徴マップの小領域のサイズを6×4とし、4個の小領域に対して並列に畳み込み処理を行い、32点の畳み込み処理の結果を同時に出力する例を示している。
 このとき、小領域ごとに、同値の小領域であるか、又は連続して同一の小領域であるかの判定を行う。図11の例では、小領域1が、同値の小領域であり、小領域3が、連続して同一の小領域であり、小領域1と小領域3の畳み込み処理がスキップされている。また、小領域0、小領域2、小領域4、及び小領域5に対して並列に畳み込み処理が行われ、結果として、1度に、6つの小領域に対する処理結果が得られている。
 このように、小領域ごとに、同値の小領域であるか、又は連続して同一の小領域であるかの判定を行い、演算回路を用いて、複数の小領域に対して並列に畳み込み処理を行うことにより、同値の小領域である確率、及び連続して同一の小領域である確率を増加させて、畳み込み処理をスキップさせる確率を増加させることができる。
<第2実施形態に係る画像処理装置の構成>
 第2実施形態の画像処理装置について説明する。第1実施形態と同様の構成となる部分については、同一符号を付して説明を省略する。
 第2実施形態の画像処理装置210のハードウェア構成は、上記図3に示す画像処理装置10のハードウェア構成と同様である。
 画像処理装置210の演算回路18は、入力特徴マップの小領域データと、カーネルとを受け付け、所定数の小領域に対して並列に畳み込み処理を行うことを繰り返し、各小領域内の各点の畳み込み処理の結果である、出力特徴マップを出力する。
 学習部20の処理部32は、畳み込み処理を含むニューラルネットワークを用いて対象画像を処理する。処理部32は、畳み込み処理を行う際に、畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに畳み込み処理を行う。小領域ごとの畳み込み処理は、演算回路18を用いて実行される。このとき、処理部32は、小領域ごとに、同値の小領域であるか否か、及び連続して同一の小領域であるか否かを判定する。入力特徴マップの小領域データとカーネルと小領域ごとの判定結果と事前計算結果テーブルとが演算回路18に入力され、演算回路18から、出力特徴マップが出力される。
 具体的には、処理部32は、畳み込み処理を行う際に、小領域ごとに、当該小領域を構成する全ての特徴が、同値であるか否かを判定する。当該小領域を構成する全ての特徴が、同値であると判定された場合、演算回路18は、当該小領域に対する畳み込み処理を行わず、事前計算結果テーブルに格納された、小領域を構成する全ての特徴が当該同値である場合に対して処理された結果を、当該小領域を処理した結果として出力する。
 また、処理部32が、小領域ごとに、当該小領域を構成する特徴が、直前に処理された小領域の特徴と同じであるか否かを判定する。当該小領域を構成する特徴が、直前に処理された小領域の特徴と同じであると判定された場合、演算回路18は、当該小領域に対する畳み込み処理を行わず、直前に処理された小領域に対して処理された結果を、当該小領域を処理した結果として出力する。
 また、演算回路18は、小領域を構成する全ての特徴が同値ではなく、かつ、直前に処理された小領域の特徴と同じでない、所定数の小領域に対して並列に畳み込み処理を行う。
 上記のように小領域ごとに行われた畳み込み処理の結果である出力特徴マップが、ニューラルネットワークの次の層の入力となる。
 推論部22の処理部42は、処理部32と同様に、畳み込み処理を含むニューラルネットワークを用いて対象画像を処理する。処理部42は、畳み込み処理を行う際に、畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに畳み込み処理を行う。小領域ごとの畳み込み処理は、演算回路18を用いて実行される。このとき、処理部42は、小領域ごとに、同値の小領域であるか否か、及び連続して同一の小領域であるか否かを判定する。入力特徴マップの小領域データとカーネルと小領域ごとの判定結果と事前計算結果テーブルとが演算回路18に入力され、演算回路18から、出力特徴マップが出力される。
 具体的には、処理部42は、処理部32と同様に、畳み込み処理を行う際に、小領域ごとに、当該小領域を構成する全ての特徴が、同値であるか否かを判定する。当該小領域を構成する全ての特徴が、同値であると判定された場合、演算回路18は、当該小領域に対する畳み込み処理を行わず、事前計算結果テーブルに格納された、小領域を構成する全ての特徴が当該同値である場合に対して処理された結果を、当該小領域を処理した結果として出力する。
 また、処理部42は、処理部32と同様に、小領域ごとに、当該小領域を構成する特徴が、直前に処理された小領域の特徴と同じであるか否かを判定する。当該小領域を構成する特徴が、直前に処理された小領域の特徴と同じであると判定された場合、演算回路18は、当該小領域に対する畳み込み処理を行わず、直前に処理された小領域に対して処理された結果を、当該小領域を処理した結果として出力する。
 また、演算回路18は、小領域を構成する全ての特徴が同値ではなく、かつ、直前に処理された小領域の特徴と同じでない、所定数の小領域に対して並列に畳み込み処理を行う。
 上記のように小領域ごとに行われた畳み込み処理の結果である出力特徴マップが、ニューラルネットワークの次の層の入力となる。
<第2実施形態に係る画像処理装置の作用>
 次に、第2実施形態に係る画像処理装置10の作用について説明する。
 画像処理装置210のCPU11がROM12又はストレージ14から学習処理プログラムを読み出して、RAM13に展開して実行することにより、は、上記図7に示す学習処理と同様の処理が行なわれる。また、画像処理装置10に、学習用データが入力される。
 上記ステップS102は、ニューラルネットワークの各層の演算処理を行う。ここで、畳み込み層の演算処理は、上記図8に示す処理ルーチンによって実現される。
 ステップS116では、処理対象の小領域を構成する特徴が、同値である場合、演算回路18は、処理対象である小領域に対する畳み込み処理を行わず、事前計算結果テーブルに格納された、小領域を構成する特徴が当該同値である場合に対して処理された結果を、処理対象である小領域を処理した結果として出力する。
 また、処理対象である小領域を構成する特徴が、直前に処理された小領域の特徴と同じ場合、演算回路18は、処理対象である小領域に対する畳み込み処理を行わず、直前に処理された小領域に対して処理された結果を、処理対象である小領域を処理した結果として出力する。
 また、演算回路18は、小領域を構成する特徴が、同値でなく、かつ、直前に処理された小領域の特徴と同じでない所定数の小領域に対して、並列に畳み込み処理を行う。
 画像処理装置210のCPU11がROM12又はストレージ14から画像処理プログラムを読み出して、RAM13に展開して実行することにより、上記図9に示す画像処理と同様の処理が行なわれる。また、画像処理装置210に、対象画像が入力される。
 上記ステップS122は、ニューラルネットワークの各層の演算処理を行う。ここで、畳み込み層の演算処理は、上記図8に示す処理ルーチンによって実現される。
 なお、第2実施形態の画像処理装置210の他の構成及び作用については第1実施形態と同様であるため、説明を省略する。
 以上説明したように、第2実施形態に係る画像処理装置は、演算回路を、複数の小領域に対して並列に畳み込み処理を行うように構成し、入力特徴マップの小領域ごとに畳み込み処理を行う際に、小領域を構成する特徴が、同値である場合、又は直前に処理された小領域の特徴と同じ場合、当該小領域に対する畳み込み処理を行わず、予め定められた同値の小領域に対して処理された結果、又は直前に処理された結果を、当該小領域を処理した結果として出力する。これにより、ビット深度や並列処理用単位が大きく、全てがゼロとなる小領域について畳み込み処理をスキップすることが期待できないような場合であっても、演算精度やスループットの低下なしで処理スキップによる高速化を期待できる。
 なお、本発明は、上述した実施形態の装置構成及び作用に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
 例えば、同値の小領域について、全ての値(例えば、特徴が4bitデータで表される場合、16つの値)の各々に対して事前に処理結果を計算してメモリに保存しておく場合を例に説明したが、これに限定されるものではない。同値の小領域として出現する可能性の高い特徴の値を、シミュレーション等を行って予め決めておき、出現確率の高い上位いくつかの特徴の値のみについてのみ、同値の小領域に対する処理結果を予め求めておき、事前計算結果テーブルに保存しておくようにしてもよい(図12参照)。同値の小領域であって、処理結果が予め求められたものである場合に、畳み込み処理を行わずに、予め求められた処理結果を出力する。図12では、特徴の値が1である同値の小領域、特徴の値が4である同値の小領域、及び特徴の値が15である同値の小領域の各々に対してのみ、処理結果を予め求めておく例を示している。また、特徴の値が0である同値の小領域に対しては、処理結果が0であるため、事前計算結果テーブルに保存していない。これにより、予め求められた処理結果を格納する事前計算結果テーブルのサイズを削減でき、ハードウェアのメモリ量削減につながる。
 また、同値の小領域について、全ての値(例えば、特徴が4bitデータで表される場合、16つの値)の各々に対して事前に処理結果を計算してメモリに保存しておく場合を例に説明したが、これに限定されるものではない。特徴の値がある値である同値の小領域が初めて出現したときには畳み込み処理を行ってその処理結果を計算結果テーブルに保存し、特徴の値が当該値である同値の小領域が2回目以降出現したときには、畳み込み処理を行わずに計算結果テーブルから処理結果を読み込むようにしてもよい(図13参照)。図13では、小領域2で、特徴の値が4である同値の小領域が初めて出現し、畳み込み処理を行って、処理結果を計算結果テーブルに格納する例を示している。この例では、特徴の値が4である同値の小領域が2回目以降出現したときに、畳み込み処理を行わずに、計算結果テーブルから処理結果を読み込む。また、各層を処理するたびに計算結果テーブルをリセットする。これにより、事前計算の処理の手間が不要となる。また、各層の事前計算結果を層ごとにRAM等から演算回路の内部メモリに転送する必要がないため、RAM等との転送データ量を削減することが可能である。
 また、連続して同一の小領域であるか否かを判定する場合を例に説明したが、これに限定されるものではない。例えば、いくつか前に処理した小領域と同一の小領域であるか否かを判定し、いくつか前に処理した小領域と同一の小領域である場合に、畳み込み処理を行わずに、当該いくつか前に処理した小領域の処理結果を出力するようにしてもよい(図14参照)。図14では、いくつか前に処理した小領域と同一であるか否かを示す同一フラグに加えて、いくつ前の小領域と同一であったかを示す小領域間隔のパラメータも用いて、小領域4が、小領域1と同一であると判断し、畳み込み処理を行わずに、小領域1と同一の処理結果を出力する例を示している。この場合、上限となる小領域間隔を設定し、上限となる小領域間隔の分だけ、小領域に対する処理結果を演算回路の内部メモリに保存しておく必要がある。これにより、処理スキップできる確率が増加するため高速化が期待できる。
 また、小領域が、同値の小領域であるか否かを判定する場合を例に説明したが、これに限定されるものではない。小領域が、同値の小領域以外の予め定められた特徴パターンと同一であるか否かを判定するようにしてもよい。例えば、予め定められた頻出の特徴パターンに対する処理結果を予め求めておき、小領域が、予め定められた頻出の特徴パターンと同一であるか否かを判定し、小領域が、予め定められた頻出の特徴パターンと同一である場合に、畳み込み処理を行わずに、予め求めた処理結果を出力するようにしてもよい。
 また、画像処理装置が、学習部と推論部とを備えている場合を例に説明したが、これに限定されるものではない。学習部を備えた装置と、推論部を備えた装置とを別の装置として構成してもよい。電力やサイズ等のハードウェアの制約が大きい場合に、学習部を備えた装置と、推論部を備えた装置とを別の装置として構成する方が好ましい。例えば、推論部を備えた装置を、ドローンにのせたり、IoTやエッジデバイスとして用いる場合である。また、一つの装置が学習部と推論部とを備えるように構成するのは、クラウドコンピューティングのようにデータセンタに置いてあるハードウェアを使って高速に学習させる場合が一般的である。
 また、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、学習処理及び画像処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
 また、上記各実施形態では、学習処理プログラム及び画像処理プログラムがストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
 以上の実施形態に関し、更に以下の付記を開示する。
 (付記項1)
 画像を対象とする畳み込み処理を含むニューラルネットワークを含む画像処理装置であって、
 メモリと、
 前記メモリに接続された少なくとも1つのプロセッサと、
 を含み、
 前記プロセッサは、
 処理対象である対象画像を取得し、
 前記畳み込み処理を含むニューラルネットワークを用いて前記対象画像を処理することを実行させるための画像処理プログラムであって、
 前記畳み込み処理を行う際に、前記畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに前記畳み込み処理を行い、
 前記小領域ごとに前記畳み込み処理を行う際に、前記小領域を構成する特徴が、予め定められた特徴、又は過去に処理された小領域の特徴と同じ場合、前記小領域に対する前記畳み込み処理を行わず、前記予め定められた特徴に対して処理された結果、又は過去に処理された結果を、前記小領域を処理した結果として出力する
 画像処理装置。
 (付記項2)
 画像処理を実行するように、画像を対象とする畳み込み処理を含むニューラルネットワークを含むコンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、
 前記画像処理は、
 処理対象である対象画像を取得し、
 前記畳み込み処理を含むニューラルネットワークを用いて前記対象画像を処理することを実行させるための画像処理プログラムであって、
 前記畳み込み処理を行う際に、前記畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに前記畳み込み処理を行い、
 前記小領域ごとに前記畳み込み処理を行う際に、前記小領域を構成する特徴が、予め定められた特徴、又は過去に処理された小領域の特徴と同じ場合、前記小領域に対する前記畳み込み処理を行わず、前記予め定められた特徴に対して処理された結果、又は過去に処理された結果を、前記小領域を処理した結果として出力する
 非一時的記憶媒体。
10、210  画像処理装置
11   CPU
13   RAM
18   演算回路
20   学習部
22   推論部
30、40    取得部
32、42    処理部
34   更新部

Claims (6)

  1.  画像を対象とする畳み込み処理を含むニューラルネットワークを含む画像処理装置であって、
     処理対象である対象画像を取得する取得部と、
     前記畳み込み処理を含むニューラルネットワークを用いて前記対象画像を処理する処理部とを含み、
     前記処理部は、前記畳み込み処理を行う際に、前記畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに前記畳み込み処理を行い、
     前記小領域ごとに前記畳み込み処理を行う際に、前記小領域を構成する特徴が、予め定められた特徴、又は過去に処理された小領域の特徴と同じ場合、前記小領域に対する前記畳み込み処理を行わず、前記予め定められた特徴に対して処理された結果、又は過去に処理された結果を、前記小領域を処理した結果として出力する
     画像処理装置。
  2.  前記予め定められた特徴は、前記小領域内の特徴が同一のものである請求項1記載の画像処理装置。
  3.  前記入力特徴マップを分割した小領域は、隣り合う前記小領域と重複した重複領域であって、かつ、前記畳み込み処理のカーネルサイズに応じた大きさの重複領域を有する請求項1又は2記載の画像処理装置。
  4.  前記処理部は、複数の小領域に対して並列に前記畳み込み処理を行う請求項1~請求項3の何れか1項記載の画像処理装置。
  5.  画像を対象とする畳み込み処理を含むニューラルネットワークを含む画像処理装置における画像処理方法であって、
     取得部が、処理対象である対象画像を取得し、
     処理部が、前記畳み込み処理を含むニューラルネットワークを用いて前記対象画像を処理することを含み、
     前記処理部が前記畳み込み処理を行う際に、前記畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに前記畳み込み処理を行い、
     前記小領域ごとに前記畳み込み処理を行う際に、前記小領域を構成する特徴が、予め定められた特徴、又は過去に処理された小領域の特徴と同じ場合、前記小領域に対する前記畳み込み処理を行わず、前記予め定められた特徴に対して処理された結果、又は過去に処理された結果を、前記小領域を処理した結果として出力する
     画像処理方法。
  6.  画像を対象とする畳み込み処理を含むニューラルネットワークを含むコンピュータに、
     処理対象である対象画像を取得し、
     前記畳み込み処理を含むニューラルネットワークを用いて前記対象画像を処理することを実行させるための画像処理プログラムであって、
     前記畳み込み処理を行う際に、前記畳み込み処理の入力となる入力特徴マップを分割した小領域ごとに前記畳み込み処理を行い、
     前記小領域ごとに前記畳み込み処理を行う際に、前記小領域を構成する特徴が、予め定められた特徴、又は過去に処理された小領域の特徴と同じ場合、前記小領域に対する前記畳み込み処理を行わず、前記予め定められた特徴に対して処理された結果、又は過去に処理された結果を、前記小領域を処理した結果として出力する
     画像処理プログラム。
PCT/JP2021/021935 2021-06-09 2021-06-09 画像処理装置、画像処理方法、及び画像処理プログラム WO2022259427A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2021/021935 WO2022259427A1 (ja) 2021-06-09 2021-06-09 画像処理装置、画像処理方法、及び画像処理プログラム
PCT/JP2021/045206 WO2022259574A1 (ja) 2021-06-09 2021-12-08 画像処理装置、画像処理方法、及び画像処理プログラム
JP2023526848A JPWO2022259574A1 (ja) 2021-06-09 2021-12-08
EP21945243.0A EP4354387A1 (en) 2021-06-09 2021-12-08 Image-processing device, image-processing method, and image-processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/021935 WO2022259427A1 (ja) 2021-06-09 2021-06-09 画像処理装置、画像処理方法、及び画像処理プログラム

Publications (1)

Publication Number Publication Date
WO2022259427A1 true WO2022259427A1 (ja) 2022-12-15

Family

ID=84424524

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2021/021935 WO2022259427A1 (ja) 2021-06-09 2021-06-09 画像処理装置、画像処理方法、及び画像処理プログラム
PCT/JP2021/045206 WO2022259574A1 (ja) 2021-06-09 2021-12-08 画像処理装置、画像処理方法、及び画像処理プログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/045206 WO2022259574A1 (ja) 2021-06-09 2021-12-08 画像処理装置、画像処理方法、及び画像処理プログラム

Country Status (3)

Country Link
EP (1) EP4354387A1 (ja)
JP (1) JPWO2022259574A1 (ja)
WO (2) WO2022259427A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018067154A (ja) * 2016-10-19 2018-04-26 ソニーセミコンダクタソリューションズ株式会社 演算処理回路および認識システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102561261B1 (ko) * 2017-11-14 2023-07-28 삼성전자주식회사 커널을 이용한 컨볼루션 연산 처리 방법 및 장치
DE102018203709A1 (de) * 2018-03-12 2019-09-12 Robert Bosch Gmbh Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes
WO2019234794A1 (ja) * 2018-06-04 2019-12-12 株式会社ソシオネクスト 演算方法
KR20210045225A (ko) * 2019-10-16 2021-04-26 삼성전자주식회사 뉴럴 네트워크에서 연산을 수행하는 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018067154A (ja) * 2016-10-19 2018-04-26 ソニーセミコンダクタソリューションズ株式会社 演算処理回路および認識システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AKIRA JINGUJI, MASAYUKI SHIMODA, HIROKI NAKAHARA: "Spatial-Separable Convolution: Low memory CNN for FPGA", IEICE TECHNICAL REPORT, vol. 119, no. 18 (RECONF2019-16), 2 May 2019 (2019-05-02), JP, pages 85 - 90, XP009542175 *
ANGSHUMAN PARASHAR, MINSOO RHU, ANURAG MUKKARA, ANTONIO PUGLIELLI, RANGHARAJAN VENKATESAN, BUCEK KHAILANY, JOL EMER, STEPHEN W. KE: "SCNN: An Accelerator for Compressed-sparse Convolutional Neural Networks", 23 May 2017 (2017-05-23), XP055506017, Retrieved from the Internet <URL:https://arxiv.org/pdf/1708.04485.pdf> [retrieved on 20180911] *
RUZICKA VIT; FRANCHETTI FRANZ: "Fast and accurate object detection in high resolution 4K and 8K video using GPUs", 2018 IEEE HIGH PERFORMANCE EXTREME COMPUTING CONFERENCE (HPEC), IEEE, 25 September 2018 (2018-09-25), pages 1 - 7, XP033457595, DOI: 10.1109/HPEC.2018.8547574 *

Also Published As

Publication number Publication date
EP4354387A1 (en) 2024-04-17
WO2022259574A1 (ja) 2022-12-15
JPWO2022259574A1 (ja) 2022-12-15

Similar Documents

Publication Publication Date Title
CN107862650B (zh) 加速计算二维图像cnn卷积的方法
CN104143990A (zh) 顶点参数数据压缩
US20220058450A1 (en) Tabular convolution and acceleration
CN111709415B (zh) 目标检测方法、装置、计算机设备和存储介质
WO2022259427A1 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
EP2940576A2 (en) Approximating functions
JP7387017B2 (ja) アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム
CN110738317A (zh) 基于fpga的可变形卷积网络运算方法、装置和系统
WO2020158384A1 (ja) 演算処理装置、演算処理方法及びコンフィグレーションプログラム
US11580387B2 (en) Combining point observations with raster data for machine learning
US20190310590A1 (en) Model calculating unit and control unit for selectively calculating an rbf model, a gaussian process model and an mlp model
WO2023238237A1 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
CN113989169A (zh) 一种膨胀卷积加速计算方法及装置
CN115578272A (zh) 一种图像处理方法、装置及计算设备
US20190392100A1 (en) Storage medium which stores instructions for a simulation method in a semiconductor design process, semiconductor design system that performs the simulation method in the semiconductor design process, and simulation method in the semiconductor design process
Bhatnagar et al. Simulated tempering and swapping on mean-field models
WO2020112152A1 (en) Systems and related methods for reducing the resource consumption of a convolutional neural network
CN110929854B (zh) 一种数据处理方法、装置及硬件加速器
CN115298669A (zh) 机器学习加速器的功率减小
JP7494940B2 (ja) 統合装置、統合方法、及び統合プログラム
WO2020194465A1 (ja) ニューラルネットワーク回路
WO2022269928A1 (ja) 畳み込みニューラルネットワーク推論処理装置、及び畳み込みニューラルネットワーク推論処理方法
US6314554B1 (en) Method of generating mask pattern data for graphics and apparatus for the same
JP7456501B2 (ja) 情報処理回路および情報処理回路の設計方法
WO2022113347A1 (ja) 統合装置、統合方法、及び統合プログラム

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: 21945103

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE