WO2022244331A1 - 演算装置、認識装置および制御装置 - Google Patents

演算装置、認識装置および制御装置 Download PDF

Info

Publication number
WO2022244331A1
WO2022244331A1 PCT/JP2022/004491 JP2022004491W WO2022244331A1 WO 2022244331 A1 WO2022244331 A1 WO 2022244331A1 JP 2022004491 W JP2022004491 W JP 2022004491W WO 2022244331 A1 WO2022244331 A1 WO 2022244331A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
information
filter
deletion
cnn
Prior art date
Application number
PCT/JP2022/004491
Other languages
English (en)
French (fr)
Inventor
真 岸本
晃 北山
理宇 平井
浩朗 伊藤
Original Assignee
日立Astemo株式会社
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 日立Astemo株式会社 filed Critical 日立Astemo株式会社
Priority to DE112022001612.4T priority Critical patent/DE112022001612T5/de
Publication of WO2022244331A1 publication Critical patent/WO2022244331A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Definitions

  • the present invention relates to an arithmetic device that executes arithmetic operations based on input data and an arithmetic method thereof.
  • the present invention also relates to a recognition device that recognizes input data and a control device that performs control according to the input data using the arithmetic device.
  • a recognition device that recognizes input data
  • a control device that performs control according to the input data using the arithmetic device.
  • it relates to technology that collects external world information using sensors such as cameras and LIDAR (Light Detection and Ranging), and detects the type of object and the existing coordinates from that information.
  • LIDAR Light Detection and Ranging
  • CNN Convolutional Neural Network
  • DNN Deep Neural Network
  • a CNN is a neural network that receives image data, which is information about the external world, and consists of multiple convolution layers that are connected in series.
  • the convolution layer is composed of sum-of-products operation and activation function operation. Pixels in the input data are multiplied by the corresponding weight parameters, and the results are cumulatively added a certain number of times to create output data. It is a series of operations that perform a function calculation and output the result.
  • the first layer performs a product-sum operation on the input image data and the weight parameter of the convolution operation of the first layer, and outputs the result of the convolution operation.
  • the j-th convolution layer of multiple neural networks is called the j-th layer, and the j-th layer (an integer that satisfies 1 ⁇ j ⁇ L) is the output data of the j-1-th layer and the convolution operation of the j-th layer. From the weight parameter, output the operation result of the j-th convolutional layer.
  • the output data of the L-1th layer preceding the Lth layer and the weight parameter of the convolution operation of the Lth layer are input, and the type of the object and the existing coordinates are output.
  • Each convolution layer performs a convolution operation using input data and weight parameters, and then performs an activation function operation and outputs the result.
  • the arithmetic unit is composed of a memory, a model storage unit, a parameter storage unit, and a plurality of convolution operation units, and outputs recognition results such as the type of object and the existing coordinates.
  • the external world information stored in the memory is sent to the convolution calculation unit.
  • the model storage unit stores data that has been learned in advance, and stores the learned data in the parameter storage unit.
  • the parameter storage unit selects the weight parameter for each layer, the number of channels for each layer, and the number of filters for each layer from the received learned data, and transmits them to the convolution calculation units for the first to Lth layers.
  • the convolution calculation unit receives the input data from the memory in the first layer, the weight parameter in the first layer, the number of channels in the first layer, and the number of filters in the first layer, and outputs the calculation result to the second layer. Also, the convolution calculation units are connected in succession.
  • the convolution operation unit of the j-th layer which is the j-th layer
  • the output of the convolution operation unit of the j ⁇ 1 layer, the weight parameter of the j-th layer, the number of channels of the j-th layer, and the j-th layer The number of filters is input, and the operation result is output to the j+1th layer.
  • the convolution operation unit performs a convolution operation based on the input data transmitted from the memory, the weight parameter, the number of channels, and the number of filters transmitted from the parameter storage unit, and then performs an activation function operation. It works to output the result to the next layer.
  • Patent Document 1 has been proposed as a method and apparatus for efficiently executing CNN calculations with limited calculation performance in CNN-related calculations.
  • 1 shows the configuration of Patent Document 1.
  • FIG. First the arithmetic device described in Patent Document 1 is composed of a divider, a calculator, and a generator. Next, the connection relationship of Patent Document 1 is shown.
  • the output from the divider is input to the calculator.
  • the computing unit outputs to the generator, and the generator receives input from the computing unit.
  • a divider divides the weight parameter of the selected layer of the convolutional neural network in at least one of the depth dimension and the number of kernels dimension. Then, an operation parameter array containing a plurality of operation parameters is obtained. Next, using each operation parameter in the operation parameter array, the operation of the selected layer is executed by the operation unit to obtain a partial operation result array. Finally, the generator generates the output of the layer based on the partial operation result array. As a result, the weighting parameter is transmitted to the calculator after dividing by the divider according to the unit of calculation of the calculator. This improves the operational efficiency or utilization of the computing unit and avoids hardware limitations due to the size of the parameters.
  • the weight parameters input to the computing unit in advance are divided in at least one direction of the depth direction of the computation of the CNN or the dimension of the number of kernels, and the divided data is transferred from the dividing unit to the computing unit and convoluted. perform calculations. Then, a convolution operation is performed using the weight parameters divided into sizes that can be calculated by the arithmetic unit for the arithmetic unit having a limited size based on the result of the arithmetic operation.
  • Patent Document 1 a division operation for obtaining a partial array of weight parameters in advance by a divider outside the arithmetic unit and an operation in a generator for recombining the partial array operations of the divided weight parameters are performed. is necessary. Furthermore, in the convolution operation, it is necessary to maintain the consistency of operations before and after division. For this reason, there are restrictions on the division method of the weight parameter and the size of the weight parameter after division, and there is a problem that the calculator cannot be fully utilized.
  • filter information is deleted based on the sensitivity and computation direction (execution order) in the convolution computation.
  • a model storage unit that stores a model used in the CNN computation, and using the model, executes convolution computation for each of a plurality of convolution layers.
  • the CNN calculation unit that performs the CNN calculation
  • the weight parameter acquisition unit that acquires the weight parameter of the convolution filter used in the convolution calculation from the model storage unit, and the model stored in the model storage unit
  • a channel information acquisition unit for acquiring channel information for each of the plurality of convolution layers
  • a filter information acquisition unit for acquiring filter information for each of the plurality of convolution layers from the model storage unit
  • a computation allocation unit that allocates combinations of weight information and computations and transmits them to the CNN computation unit, the maximum number of computations that can be performed by the CNN computation unit, the execution order of the CNN computations, and the CNN computation unit that is acquired from the channel information acquisition unit.
  • Part of the filter information used in the convolution operation based on the channel information for each convolution layer of and the weight information obtained from the weight parameter obtaining unit and the filter information for each of the plurality of convolution layers obtained from the filter information obtaining unit is a computing device having a deletion index determination unit that deletes the .
  • the utilization rate of computing units can be improved. Problems, configurations, and effects other than those described above will be clarified by the following description of the embodiments.
  • FIG. 2 is a functional block diagram of a recognition device, which is an arithmetic device in Embodiment 1.
  • FIG. 10 is an explanatory diagram for explaining deletion channel index information according to the first embodiment
  • FIG. 10 is an explanatory diagram for explaining deletion filter index information according to the first embodiment
  • 4 is a diagram showing the internal configuration of a CNN calculation unit in Example 1.
  • FIG. 4 is a diagram showing the internal configuration of a deletion index determination unit according to the first embodiment
  • FIG. 4 is a diagram showing the internal configuration of a convolution calculation unit in Example 1.
  • FIG. 10 is an explanatory diagram for explaining deletion channel index information according to the first embodiment
  • FIG. 10 is an explanatory diagram for explaining deletion filter index information according to the first embodiment
  • 4 is a diagram showing the internal configuration of a CNN calculation unit in Example 1.
  • FIG. 4 is a diagram showing the internal configuration of a deletion index determination unit according to the first embodiment
  • FIG. 4 is a diagram showing the internal configuration of a convolution calculation unit in Example 1.
  • FIG. 10 is a flow chart showing a processing flow of a deletion filter determination unit according to the first embodiment; 10 is a flow chart showing a processing flow of a deletion channel determination unit according to the first embodiment; 7 is a flow chart showing a processing flow of an operation assigning unit in Embodiment 1.
  • FIG. FIG. 4 is a diagram for explaining examples of strides and removable filters in Example 1;
  • FIG. 10 is an explanatory diagram exemplifying a state of a deletion filter according to the first embodiment;
  • FIG. 10 is a functional block diagram of a recognition device, which is an arithmetic device in Example 2;
  • FIG. 12 is a diagram showing the internal configuration of a deletion index determination unit in Example 2;
  • FIG. 10 is an explanatory diagram showing how filters are stored when the computing unit in the second embodiment performs computation;
  • FIG. 11 is a functional block diagram of a control device in Example 3;
  • FIG. 1 is a functional block diagram of the recognition device 1000 according to the first embodiment.
  • the recognition device 1000 is a type of arithmetic device, and is a device that recognizes the situation of the external world using external world information from a camera or LIDAR.
  • the recognition device 1000 in FIG. 1 is connected to the external world information acquisition device 101. It is composed of CNN calculation section 102 , model storage section 104 , channel information acquisition section 105 , weight parameter acquisition section 106 , filter information acquisition section 107 , deletion index determination section 108 , and calculation allocation section 109 . As a result, the recognition device 1000 outputs recognition results 103 .
  • the external world information acquisition device 101 acquires external world information and transmits the acquired information to the CNN calculation unit 102 .
  • This external world information acquisition device 101 can be realized by a sensor such as a camera or LIDAR.
  • the channel information acquisition unit 105 receives the model information 110 output from the model storage unit 104 .
  • the weight parameter acquisition unit 106 receives the model information 110 output from the model storage unit 104 .
  • the filter information acquisition unit 107 receives model information 110 output from the model storage unit 104 . Further, deletion index determination section 108 receives channel information 111 indicating the number of channels in each layer from channel information acquisition section 105 . Furthermore, deletion index determination section 108 receives weight parameter information 112 indicating the weight parameter of each layer, which is the output of weight parameter acquisition section 106 . Furthermore, deletion index determination section 108 receives filter information 113 indicating the number of filters in each layer, which is the output of filter information acquisition section 107 .
  • the operation allocation unit 109 receives model information 110 that is the output of the model storage unit 104 . Furthermore, the operation assigning unit 109 receives the deletion filter index information 114 for each layer, which is the output of the deletion index determination unit. Furthermore, operation allocation section 109 receives deletion channel index information 116 for each layer.
  • the CNN calculation unit 102 receives input data 117 that is the external world information of the external world information acquisition device 101 , CNN calculation control signal 115 that is the output of the calculation assignment unit 109 , channel information 111 and filter information 113 . Then, the CNN calculation unit 102 outputs the recognition result 103 using these.
  • the external world information is transmitted from the external world information acquisition device 101 to the CNN calculation unit 102 .
  • CNN computation section 102 performs computation based on model information 110 in model storage section 104 , CNN computation control signal 115 , channel information 111 and filter information 113 in computation allocation section 109 .
  • arrows indicating the input channel information 111 and filter information 113 are omitted.
  • the CNN calculation unit 102 calculates and outputs the recognition result 103 .
  • channel information acquisition section 105 extracts the number of channels in each layer from the model information in model storage section 104 and outputs channel information 111 to deletion index determination section 108 .
  • Weight parameter acquisition section 106 also extracts the weight parameter of each layer from model information 110 received from model storage section 104 and outputs weight parameter information 112 to deletion index determination section 108 .
  • the filter information acquisition unit 107 acquires the number of filters in each layer from the model information 110 in the model storage unit 104, and outputs the filter information 113 of each layer including this number to the deletion index determination unit 108.
  • deletion index determination section 108 calculates the indices of filters and channels for which computation is to be deleted from channel information 111 , weight parameter information 112 and filter information 113 . Then, deletion index determination section 108 outputs deletion filter index information 114 and deletion channel index information 116 including these indices to operation allocation section 109 .
  • the computation allocation unit 109 determines the order of computation and specifies filters and channels to be deleted from the model.
  • operation allocation section 109 may specify at least one of filters and channels as deletion targets.
  • the deletion target be a filter.
  • Calculation allocation section 109 then transmits CNN calculation control signal 115 including the specified filter and channel to CNN calculation section 102 .
  • the deletion channel index information 116 will be explained using FIG.
  • the deletion filter index information 114 will be described with reference to FIG.
  • details of the operation of the deletion index determination unit 108 will be described using FIG.
  • the recognition device of this embodiment can also be realized by a so-called computer.
  • the functions of each section are executed by a processing device such as a CPU according to a program.
  • this program is stored in a storage medium.
  • each part can also be realized by dedicated hardware such as FPGA (Field Programmable Gate Array) or a dedicated circuit.
  • FIG. 2 is an explanatory diagram for explaining the deleted channel index information 116.
  • FIG. First there are L layers of the CNN of this embodiment, and the first layer to the L-th layer are cascade-connected. Channels 251 exist for each layer, and channels 251 in one layer are connected to all channels 251 in the next layer.
  • a different index is given to each channel for each layer, and the channel index to be deleted for each layer is specified in the deletion channel index information 116 .
  • This designated index number is hereinafter referred to as a deleted channel index.
  • FIG. 3 is an explanatory diagram for explaining the deletion filter index information 114.
  • filters 351 exist from the first layer to the L-th layer.
  • FIG. 3 exemplifies a 3 ⁇ 3 filter. Note that the number of filters is merely an example, and is not limited to this.
  • This deletion filter index information 114 designates a filter index 352 to be deleted for each layer. This designated index number is hereinafter referred to as a deletion filter index.
  • FIG. 4 is a diagram showing the internal configuration of the CNN calculation unit 102.
  • CNN calculation section 102 has memory 201 , parameter storage section 202 , and convolution calculation section 203 .
  • the CNN calculation unit 102 includes input data 117, CNN calculation control signal 115, model information 110, CNN calculation control signal 204 for one layer, weight parameters for all layers 205, number of filters for all layers 206, number of channels for all layers. 207, 1 layer, that is, the individual weight parameter 208 which is the weight parameter of each layer, the number of individual filters 209 of each layer, and the number of individual channels 210 of each layer are handled.
  • CNN calculation section 102 uses these to output recognition result 103 .
  • Input data 117 is input to the memory 201 .
  • This input data 117 is the above-described external world information.
  • the parameter storage unit 202 holds the model information 110 .
  • An individual CNN operation control signal 204-1 branched from the CNN operation control signal 115, that is, a one-layer CNN operation control signal Stored data 211 (input data 117) stored in memory 201
  • Individual weight parameter 208-1 branched from weight parameter 205 output from parameter storage unit 202
  • Individual filter number 209-1 branched from filter number 206 output from parameter storage unit 202
  • Number of individual channels 210-1 branched from number of channels output from parameter storage unit 202
  • An individual CNN operation control signal 204-j branched from the CNN operation control signal 115 that is, a j-layer CNN operation control signal 204-j Output data 212-j of the convolution operation unit of the j-1 layer
  • Number of individual channels 210-j branched from the number of channels output from the parameter storage unit 202
  • the following signals or information are input to the L-th layer convolution calculation unit 203-L of the final layer.
  • Individual CNN calculation control signal 204-L branched from CNN calculation control signal 115 Output data 212-L of the L-1th layer convolution operation unit 203-j Individual weight parameter 208-L branched from weight parameter 205 output from parameter storage unit 202 Individual filter number 209-L branched from filter number 206 output from parameter storage unit 202 Number of individual channels 210-L branched from the number of channels output from the parameter storage unit 202 Then, the L-th layer convolution calculation unit 203-L outputs the recognition result 103 recognized using these.
  • the CNN calculation unit 102 performs a convolution calculation based on the input data 117 and the model information 110 and outputs the recognition result 103 .
  • each convolution calculation unit 203 receives a CNN calculation control signal 204 for each layer branched from the CNN calculation control signal 115, and skips some filter and channel calculations. Skipping this operation is an example of deletion in this application.
  • deletion in the present application includes passive processing such as omitting or ignoring calculations.
  • filters and channels that are deleted, that is, skipped are the same until the model information 110 is changed due to model update from the outside.
  • the skipped object may be one of the filter and the channel.
  • at least one of the filter information and the channel information used for convolution is deleted.
  • the memory 201 also stores input data 117 . Then, the stored data 211 that is the input data 117 is output to the convolution calculation unit 203 . Next, the convolution calculation unit 203 performs a convolution calculation based on the input stored data 211 (output data 212) and the individual weight parameters 208.
  • FIG. As a result of this convolution operation, the CNN operation control signal 204, which is a signal for controlling the order of operation and data reading, the number of operations, the number of output data, and the allocation of data to the arithmetic unit are determined by the number of individual filters 209 and the number of individual channels 210. is determined.
  • the convolution calculation unit 203 outputs output data 212 which is the calculation result determined in this way. This is repeated from the first layer to the Lth layer.
  • the weight parameter 205 of each layer, the number of filters 206 of each layer, and the number of channels 207 of each layer are divided from the model information 110 received in the parameter storage unit 202 and output to the convolution operation unit 203 .
  • FIG. 5 is a diagram showing the internal configuration of the deletion index determination unit 108. As shown in FIG.
  • deletion index determination section 108 receives channel information 111, weight parameter information 112, and filter information 113 as inputs. Then, deletion index determination section 108 outputs deletion channel index information 116 and deletion filter index information 114 based on these inputs.
  • the deletion index determination unit 108 includes a target processing speed storage unit 301, a maximum operation number storage unit 302, an operation speed analysis unit 303, a sensitivity information analysis unit 304, a deletion channel determination unit 305, and a deletion filter. It has a determination section 306, a deletion channel index output section 307, and a deletion filter index output section.
  • Calculation speed analysis unit 303 stores target processing speed 310 which is the output of target processing speed storage unit 301, maximum number of calculations per calculator 315 which is the output of maximum number of calculations storage unit 302, channel information 111, Receives filter information 113 as input.
  • the sensitivity information analysis unit 304 receives channel information 111, weight parameter information 112, and filter information 113 as inputs. Also, the deletion channel determination section 305 receives as input the number of deletion channels 311 that is the result of the calculation speed analysis section 303 and the sensitivity information 313 that is the result of the sensitivity information analysis section 304 .
  • the deletion filter determination unit 306 receives the number of deletion filters 312 output from the calculation speed analysis unit 303 and the sensitivity information 316 output from the sensitivity information analysis unit 304 as inputs.
  • the deletion channel index output unit 307 receives the priority information 317 output from the deletion channel determination unit 305 and the number of operations 315 output from the maximum number of operations storage unit 302 as inputs, and stores the deletion channel index information for each layer. 116 is output.
  • deletion filter index output unit 308 receives the output 318 of the deletion filter determination unit 306 and the number of operations 315 output from the maximum number of operations storage unit 302 as inputs, and outputs the deletion filter index information 114 for each layer.
  • the operation speed analysis unit 303 calculates the time and target for the convolution operation for each layer. Calculate the difference between the processing speed and the time required for the convolution operation.
  • sensitivity information analysis section 304 estimates sensitivity information for recognition accuracy of all channels of each layer and sensitivity information for recognition accuracy of all filters of each layer from channel information 111 , weight parameter information 112 , and filter information 113 .
  • deletion channel determination unit 305 receives difference information between the calculation speed of each layer and the target processing speed input from the calculation speed analysis unit 303, and sensitivity information for recognition accuracy for each layer output from the sensitivity information analysis unit 304. 313 and the sensitivity information 313 of the channels in the layer. Based on these, deletion channel determination section 305 sets the priority of channels to be deleted so that the difference from the target processing speed becomes 0 in descending order of sensitivity to recognition accuracy. Details of the operation of deletion channel determination section 305 will be described later using FIG.
  • the deletion filter determination unit 306 ranks the filters to be deleted for each layer based on the difference information between the processing speed of each layer and the target processing speed from the operation speed analysis unit 303 and the sensitivity information 316 of the filters. conduct.
  • the deletion channel index output unit 307 the priority information 317 of the channel to be deleted in each layer determined by the deletion channel determination unit 305, accept information. Based on these, the deleted channel index output unit 307 sets index numbers so that the number of remaining channels is a multiple of the maximum number of operations that can be performed by the calculator or a divisor other than 1. Output.
  • the deletion channel index output unit 307 sets Cd that satisfies (Equation 1), and sets the computation order of the Cd channels in the j-layer deletion channel index information 116 in descending order of priority information.
  • the deletion filter index output unit 308 determines whether the number of remaining filters is a multiple of the maximum number of operations that can be performed by the computing unit or other than 1, based on the priority of the filters to be deleted set by the deletion filter determination unit 306. Set the index information so that it is a divisor of . Then, the deletion filter index output unit 308 outputs this.
  • the identification of the filter priority order by the deletion filter determining unit 306 will be described later with reference to FIG.
  • the deletion filter index output unit 308 where Mf is the maximum number of filters that can be calculated, F is the number of filters in a certain j layer, and Fd is the number of filters to be deleted in the j layer, the deletion filter index output unit 308 follows (Formula 2) below. process. That is, the deletion filter index output unit 308 sets Fd that satisfies (Equation 2), and sets the deletion filter index information 114 of the j layer for the order of operation of the Fd filters in order from the lowest priority information. .
  • FIG. 6 is a diagram showing the internal configuration of the convolution calculation unit 203 in this embodiment.
  • Convolution operation section 203 receives CNN operation control signal 204, individual channel number 210, individual filter number 209, previous layer output data 212-j, and individual weight parameter 208 as inputs. Then, the convolution calculation unit 203 uses these to output the output data 212-j that is the calculation result.
  • an arithmetic control unit 401 an input data temporary storage unit 402 , an arithmetic unit 403 , and an output data temporary storage unit 404 are provided.
  • the calculation control unit 401 receives the CNN calculation control signal 204, the number of individual channels 210, and the number of individual filters 209 as inputs.
  • the input data temporary storage unit 402 stores the output data 212-j of the previous layer, the individual weight parameters 208, and the control signal 410 that controls the output order and output timing of the stored data output from the arithmetic control unit 401. takes as input.
  • the calculation unit 403 receives as inputs the order of calculation, the calculation start, and the calculation stop control signal 412 for stopping the calculation, and the input data 411 necessary for the calculation.
  • the output data temporary storage unit 404 receives the calculation result 413 of the calculation unit 403 and the control signal 414 for controlling the output timing of the stored data as inputs, and outputs output data 212-j+1 which is the calculation result.
  • the input data temporary storage unit 402 stores the previous layer output data 212 - j and the individual weight parameter 208 . Then, based on the information of the CNN calculation control signal 204, the number of individual channels 210, and the number of individual filters 209, the calculation control unit 401 selects the data output timing, the channels to skip the output, and the filters in accordance with the order in which calculations are executed. Output information. Further, the calculation control unit 401 outputs a calculation stop control signal 412 for controlling the number of calculations, calculation start timing, and calculation end timing to the calculation unit 403 .
  • the output data temporary storage unit 404 holds the control signal 414 that controls the timing of outputting the data after the calculation, and makes it possible to use it in other parts. Further, the calculation unit 403 performs convolution calculation and activation function processing on the input data, and outputs the calculation result 413 to the output data temporary storage unit 404 . The output data temporary storage unit 404 sequentially outputs the output data 212-j+1, which are the calculation results, in accordance with the control signal 414 from the calculation control unit 401.
  • FIG. As for the CNN operation control signal 204, the number of individual channels 210, and the number of individual filters 209, the operation control unit 401 continues to hold the data unless the model information 110 is updated.
  • FIG. 7 is a flowchart of the operation of setting the priority of filters to be deleted by the deletion filter determination unit 306 .
  • the deletion filter determination unit 306 starts operating (step S1001).
  • the criterion for deletion is not limited to the amount of deterioration, and may be any criterion that satisfies a predetermined rule. In addition to deterioration in recognition accuracy, the amount of deterioration in calculation accuracy may be used.
  • deletion filter determining unit 306 decrements i by one and returns to step S1004 (step S1007).
  • the deletion filter determination unit 306 outputs the filter deletion priority information calculated individually for n layers (step S1006).
  • FIG. 8 is a flow chart showing the operation of the deletion channel determination unit 305. As shown in FIG.
  • the deletion channel determination unit 305 starts operating (step S2001).
  • the deletion channel determination unit 305 determines the number of channels to be deleted based on the sensitivity information 313 output from the sensitivity information analysis unit 304 and the number of deletion channels 311 output from the operation speed analysis unit 303 for the i-layer channels. number of channels. It is desirable to calculate the number of channels required for deletion to be calculated until the processing speed of the i layer exceeds the target processing speed. Then, the deletion channel determination unit 305 performs deletion priority setting in descending order of sensitivity to recognition accuracy (step S2005).
  • the deletion channel determination unit 305 outputs the channel deletion priority information calculated individually for n layers (step S2006).
  • FIG. 9 is a flowchart of the operation of the operation allocation unit 109. As shown in FIG. The processing flow will be described below.
  • step S3001 when the deletion channel index information 116 and the deletion filter index information 114 from the deletion index determination unit 108 are input, the operation allocation unit 109 starts operation (step S3001). Next, operation allocation section 109 stores the input deletion channel index information (step S3002).
  • the operation allocation unit 109 stores the deletion filter index information and the deletion priority (step S3002).
  • the operation allocation unit 109 determines whether the filters to be deleted are located at both ends of the stride direction of the deletion filter index information (step S3004). Note that the stride direction and both ends will be described later with reference to FIG. If it is determined to be on both ends, the process proceeds to step S3007. If it is determined not to be at both ends, the process proceeds to step S3005.
  • the operation allocation unit 109 determines whether or not it is possible to change the stride direction in terms of implementation (step S3005). For this reason, it is desirable for the operation allocation unit 109 to make determinations based on implementation constraints. As a result of this determination, if change is possible, the process proceeds to step S3009. If it cannot be changed, the process proceeds to step S3006.
  • the operation assigning unit 109 changes the priority of the deletion filter index to the next highest priority on both ends (step S3006).
  • the operation allocation unit 109 Delete channel index information is output (step S3007).
  • the operation allocation unit 109 outputs the deletion filter index information and the stride direction (step S3008).
  • step S3006 the calculation allocation unit 109 changes the stride direction by 90 degrees (step S3009). Then, the process proceeds to step S3007.
  • FIG. 10 is a diagram for explaining an example of filters that can be strided and deleted.
  • the convolution filter 803 and the filter 805 are moved in the stride directions 802 and 804 on the intermediate data 801 shown in FIGS. 8A and 8B.
  • the filter is 3 ⁇ 3 here, the size of the filter is not limited to this.
  • the two ends of the filter are the filters shown in gray in the convolution filter 803 in FIG. 8(a) and the filter 805 in FIG. 8(b).
  • the stride direction 802 of the convolution filter 803 is left and right, the filters at both ends are left and right.
  • the stride direction 804 of the filter 805 is vertical, the filters at both ends are vertical.
  • FIG. 11 shows an example of deleting a 3 ⁇ 3 filter.
  • the maximum number of operations is 8 here as an example, it is not limited to this and may be 2 n (n ⁇ 1). In this way, when the maximum operable number is eight, the number of filters to be deleted is one. Therefore, one filter in the gray area shown in FIG. 11 is deleted.
  • Deleted filter 913 is the filter after deletion with lateral stride 912 .
  • a deleted filter 914 is a filter after being deleted by a stride 915 in the vertical direction. This completes the description of the first embodiment.
  • Example 2 A second embodiment is an example in which the recognition device 1000 of the first embodiment is applied to recognition of the external world while the vehicle is running. For this reason, in the second embodiment, the processing speed of the convolution operation is changed according to the speed required for the operation and the speed required for the operation, such as when traveling on an unlimited speed road, when traveling on a normal highway, or when traveling in an urban area. change.
  • the processing speed required by the ECU differs between normal expressway driving, urban driving, and speed limit road driving. Also, the width of the road surface and the surrounding conditions are different. Therefore, in the present embodiment, an example is shown in which the change in running speed is observed, and the number of calculations for performing a plurality of calculations in one calculator is increased to cope with the increase in requested processing speed.
  • the running speed information is acquired, and when the average speed V per unit time exceeds the running speed upper limit value X predetermined at the time of design, the target processing speed is changed, and the number of deletion indexes is changed. increase.
  • This is an embodiment for increasing the number of operations and improving the processing speed.
  • the same reference numerals are given to the same parts as in the first embodiment, and the description thereof will be omitted.
  • FIG. 12 is a functional block diagram of the recognition device 1000, which is the arithmetic device in the second embodiment.
  • a running speed acquisition unit 901 is added to the recognition device 1000 of the second embodiment.
  • this embodiment has a deletion index determination unit 903 having a configuration different from that of the first embodiment.
  • the connection relationship of the recognition device 1000 of the second embodiment will be explained.
  • the travel speed acquisition unit 901 outputs the travel speed to the deletion index determination unit 903 .
  • Deletion index determination section 108 receives outputs from running speed acquisition section 901 , channel information acquisition section 105 , weight parameter acquisition section 106 , and filter information acquisition section 107 .
  • the traveling speed acquisition unit 901 monitors the vehicle traveling speed and continuously outputs the current traveling speed to the deletion index determining unit 108 .
  • the recognition device 1000 of this embodiment can also be realized by a so-called computer.
  • the functions of each section are executed by a processing device such as a CPU according to a program.
  • this program is stored in a storage medium.
  • each part can also be realized by dedicated hardware such as FPGA (Field Programmable Gate Array) or a dedicated circuit.
  • FIG. 13 is a diagram showing the internal configuration of the deletion index determination unit 903 according to the second embodiment.
  • the configuration of the deletion index determination unit 903 will be described with respect to differences from the deletion index determination unit 108.
  • FIG. 13 is a diagram showing the internal configuration of the deletion index determination unit 903 according to the second embodiment.
  • the deletion index determination unit 903 further includes a target processing speed determination unit 902 and an operation speed analysis unit 905 in addition to the deletion index determination unit 108 of the first embodiment.
  • the target processing speed determination unit 902 uses the traveling speed information output from the traveling speed acquisition unit 901 as an additional input.
  • the calculation speed analysis unit 905 receives the output 916 from the maximum calculation number storage unit 302 and the target processing speed 310 output from the target processing speed determination unit as additional inputs, and outputs the maximum calculation number 906 .
  • traveling speed information is input to the target processing speed determination unit 902 .
  • the output 916 of the maximum number of operations storage unit 302 , the target processing speed 310 output from the target processing speed determination unit 902 , the channel information 111 and the filter information 113 are input to the operation speed analysis unit 905 .
  • the calculation speed analysis unit 905 outputs the number of channels to be deleted 311, the number of filters to be deleted 312, and the changed maximum number of operations 906.
  • the changed maximum number of operations 906 is input to the deletion channel index output section 307 and the deletion filter index output section 308 .
  • a target processing speed determination unit 902 calculates a traveling speed V per unit time from the input traveling speed information.
  • V ⁇ X is satisfied
  • the target processing speed determination unit 902 maintains the existing target processing speed G.
  • the target processing speed determination unit 902 changes the target processing speed G to 2 G when V>X is satisfied, and transmits the changed target processing speed to the operation speed analysis unit 905 .
  • the target processing speed determination unit 902 changes the maximum computable number 2 n to 2 n ⁇ 1 when the target processing speed increases in the calculation speed analysis unit 905 . In addition, the target processing speed determination unit 902 returns to 2n when it decreases. Next, the target processing speed determination unit 902 obtains the number of deletion filter channels based on the changed maximum number of computable operations. Target processing speed determination section 902 then transmits changed maximum number of operations 906 to deletion channel index output section 307 and deletion filter index output section 308 . Other operations are the same as those in FIG. 5 and are omitted.
  • FIG. 14 is an explanatory diagram of how filters are stored when performing calculations in the calculator.
  • FIG. 14(a) shows an example before the maximum number of operations is reduced
  • FIG. 14(b) shows an example after the maximum number of operations is reduced. Also, these are configured based on the calculator 151 and the weight parameter 152 .
  • Example 3 is an example in which the recognition device 1000 of Example 1 and Example 2 is applied to the control device 2000 .
  • FIG. 15 is a functional block diagram of the control device 2000 according to the third embodiment. This control device 2000 is implemented as an ECU, for example.
  • the control device 2000 has a recognition device 1000 and a control signal generation section 2001 . Then, the recognition result 103 output from the recognition device 1000 that executes the processes of the first and second embodiments is transmitted to the control signal generator 2001 . Next, the control signal generation unit 2001 generates a control signal 2002 according to the recognition result, and controls the controlled object 3000 based on this.
  • the controlled object 3000 is a vehicle.
  • automatic driving and driving assistance of the vehicle can be realized based on the processing described in each embodiment.
  • each embodiment the recognition device 1000 is described as an example, but the scope of each embodiment also includes an arithmetic device that performs calculations that are not limited to recognition.
  • the utilization rate of the calculator is about 50%. It can be expected that the utilization rate of the system will be improved to nearly 100%. That is, the utilization rate can be improved.
  • deletion index information which is a number indicating the position or order of a filter or channel that is different for each layer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

本発明は、演算器の演算効率を向上させることを課題とする。上記の課題を解決するための本発明の構成は、入力データをもとにCNN演算を行う演算装置において、モデルを用いて、複数の畳み込み層毎に畳み込み演算を実行することで、前記CNN演算を行うCNN演算部と、前記CNN演算に必要となる重み情報と演算の組み合わせを割り当て、前記CNN演算部へ送信する演算割り当て部と、CNN演算部の最大演算可能数、前記CNN演算の実行順、前記CNN演算部の各層のチャネル情報および重み情報および複数の畳み込み層ごとのフィルタ情報に基づき、前記畳み込み演算に使用するフィルタ情報の一部を削除する削除インデックス決定部を有する演算装置である。

Description

演算装置、認識装置および制御装置
 本発明は、入力データに基づく演算を実行する演算装置およびその演算方法に関する。また、本発明は、当該演算装置を用いて、入力データを認識する認識装置や入力データに応じた制御を行う制御装置にも関する。これらの中でも特に、カメラやLIDAR(Light Detection and Ranging)などセンサを用いて外界情報を収集し、その情報から物体の種類や存在する座標を検出する技術に関する。
 近年は、交通事故が社会問題となっており、車両による移動時の安全性に対する要求が高まっている。その要求に対応するため、様々な自動運転や運転支援向けの技術が提案されている。それらの技術の中で特にDNN(Deep Neural Network)のひとつであるCNN(Convolutional Neural Network)を用いた物体認識手法や行動予測手法は高い認識性能を有することが知られており、自動運転への適用が進展している。
 CNNは、外界情報である画像データを入力とし、複数の畳み込み層から構成され、縦続的に接続されているニューラルネットワークである。ここで畳み込み層とは積和演算と活性化関数演算により構成され、入力データ内の画素と対応する重みパラメータの乗算を行い、その結果を一定回数累積加算して出力データを作成し、その後活性化関数演算を行い、その結果を出力する一連の演算のことである。
 画像データに対して畳み込み層の演算を行うことで、入力された画像データ内の特定の物体の種類や存在する座標を出力する。まず具体的な構成を説明する。本特許で述べる認識装置では、第1層は入力された画像データと第1層の畳み込み演算の重みパラメータを積和演算することで、畳み込み演算結果を出力する。複数のニューラルネットワークの第j番目の畳み込み層を第j層と呼び、その第j層(1≦j≦Lを満たす整数)は第j-1層の出力データと、第j層の畳み込み演算の重みパラメータから、第j層の畳み込み層の演算結果を出力する。最終層をL層とすると第L層の前段の第L-1層の出力データと第L層目の畳み込み演算の重みパラメータとを入力とし、物体の種類と存在する座標を出力する。それぞれの畳み込み層は、入力データと重みパラメータを用いて畳み込み演算を行った後、活性化関数演算を、その行い結果を出力する。
 ここで、CNNのような積和演算を主体とする演算量が多い処理を、車載用ECU(Electronic Control Unit)に実装する場合には、外界情報取得装置の処理速度と同等のスループットと、車両制御周期以下のレイテンシを満たす必要がある。従来、CNNを実装する際には、エッジデバイス向けに設計されたGPU(Graphic Processing Unit)やFPGA(Field Programmable Logic Array)などを用いるのが一般的である。しかし車載用途のデバイスは、使用条件、実装コスト、搭載可能なデバイスサイズの制限から、限られた演算性能しか持たず、要求される演算性能を満たせない課題が発生する。そこで、要求演算性能を満たすためにデバイス自体の改良やCNN演算に特化した演算器を利用することで目標処理速度を満たすことが一般的である。
 次に、CNNを演算装置としてハードウェアに実装した場合の従来技術について述べる。外部からの入力はカメラやLIDARなどの外界情報取得装置を用いて取得する。取得した情報はメモリに格納される。演算装置は、メモリ、モデル保存部、パラメータ格納部、複数の畳み込み演算部で構成され、物体の種類や存在する座標などの認識結果を出力するものである。
 ここで、メモリに格納された外界情報は、畳み込み演算部に送信される。またモデル保存部は事前に学習を行ったデータを保管し、その学習済みデータをパラメータ格納部へ保存する。パラメータ格納部は受け取った学習済みデータから、層ごとの重みパラメータ、層ごとのチャネル数、層ごとのフィルタ数を選択し、1層目からL層目までの畳み込み演算部に送信する。畳み込み演算部は、1層目はメモリからの入力データと、1層目の重みパラメータ、1層目のチャネル数、1層目のフィルタ数を入力として2層目に演算結果を出力する。また、畳み込み演算部は、続接続される。そして、そのj番目の層である第j層の畳み込み演算部では、第j-1層の畳み込み演算部の出力と、第j層の重みパラメータと、第j層のチャネル数と、第j層のフィルタ数を入力とし、第j+1層に演算結果を出力する。
 また、畳み込み演算部は、メモリから送信された入力データと、パラメータ格納部から送信された重みパラメータとチャネル数とフィルタ数をもとに畳み込み演算を行った後、活性化関数演算を行い、演算結果を次層に出力する働きを行う。
 しかしながら、演算器の演算性能が限られる車載用演算デバイスでは、演算デバイスの演算単位と、畳み込み演算に使用するフィルタやチャネルの数の不整合により、演算デバイスを十分活用できず、処理速度が低下するという課題があった。
 そこで、CNNに関する演算で、限られた演算性能の中でCNN演算を効率的に実行できる手法及び装置として、特許文献1の方式が提案されている。特許文献1の構成を示す。まず、特許文献1に記載の演算装置は、分割器、演算器、生成器から構成される。次に、特許文献1の接続関係を示す。
 演算器には、分割器からの出力が入力される。演算器は生成器へ出力を行い、生成器は演算器からの入力を受け付ける。
 次に、特許文献1提案の演算装置の動作を示す。まず、分割器で、畳み込みニューラルネットワークの選択された層の重みパラメータを深さ方向の次元及びカーネル数の次元の少なくとも一方において分割する。そして、複数の演算パラメータを含む演算パラメータ配列を得る。次に、演算パラメータ配列の中の各演算パラメータを使用し、選択された層の演算を演算部で実行することで、部分演算結果配列を得る。最後に、生成器で部分演算結果配列をもとに層の出力を生成する。これにより、分割器で演算器の演算単位に合わせて分割してから、演算器へ重みパラメータを送信する。このことで、演算器の動作効率または利用率を改善し、パラメータのサイズによってハードウェアが限定されることを回避している。
特開2019-82996号公報
 特許文献1では、事前に演算器へ入力される重みパラメータをCNNの演算の深さ方向もしくはカーネル数の次元の少なくとも一方向に関して分割し、分割したデータを分割器から演算器に転送して畳み込み演算を行う。そして、この演算結果により限られた大きさの演算器に対し、演算器で演算可能なサイズに分割した重みパラメータを用いて畳み込み演算を行う。
 しかし、特許文献1では、事前に演算器外の分割器で重みパラメータの部分配列を得るための分割演算、及び、分割した重みパラメータの部分配列演算を再度結合するための生成器での演算が必要である。さらに、畳み込み演算では、分割前後での演算の整合性を保つ必要がある。このため、重みパラメータの分割方法や、分割後の重みパラメータのサイズに制約があり、演算器を十全に活用することができない課題がある。
 上記の課題を解決するために、本発明では、畳み込み演算における感度および演算方向(実行順)に基づいてフィルタ情報の削除を行う。
 より具体的には、入力データをもとにCNN演算を行う演算装置において、前記CNN演算に用いるモデルを保存するモデル保存部と、前記モデルを用いて、複数の畳み込み層毎に畳み込み演算を実行することで、前記CNN演算を行うCNN演算部と、前記モデル保存部から、前記畳み込み演算に用いる畳み込みフィルタの重みパラメータを取得する重みパラメータ取得部と、前記モデル保存部に保存された前記モデルから、前記複数の畳み込み層ごとのチャネル情報を取得するチャネル情報取得部と、前記モデル保存部から、前記複数の畳み込み層ごとのフィルタ情報を取得するフィルタ情報取得部と、前記CNN演算に必要となる重み情報と演算の組み合わせを割り当て、前記CNN演算部へ送信する演算割り当て部と、前記CNN演算部の最大演算可能数、前記CNN演算の実行順、前記チャネル情報取得部から取得した前記CNN演算部の畳み込み層ごとのチャネル情報および前記重みパラメータ取得部から取得した重み情報および前記フィルタ情報取得部から取得した前記複数の畳み込み層ごとのフィルタ情報に基づき、前記畳み込み演算に使用するフィルタ情報の一部を削除する削除インデックス決定部を有する演算装置である。
 本発明の代表的な実施によれば、演算器の活用率を向上できる。なお、前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1における演算装置である認識装置の機能ブロック図である。 実施例1における削除チャネルインデックス情報を説明するための説明図である。 実施例1における削除フィルタインデックス情報を説明するための説明図である。 実施例1におけるCNN演算部の内部構成を示す図である。 実施例1における削除インデックス決定部の内部構成を示す図である。 実施例1における畳み込み演算部の内部構成を示す図である。 実施例1における削除フィルタ決定部の処理フローを示すフローチャートである。 実施例1における削除チャネル決定部の処理フローを示すフローチャートである。 実施例1における演算割り当て部の処理フローを示すフローチャートである。 実施例1におけるストライドおよび削除可能なフィルタの例を説明するための図である。 実施例1における削除フィルタの様子を例示した説明図である 実施例2における演算装置である認識装置の機能ブロック図である。 実施例2における削除インデックス決定部の内部構成を示す図である。 実施例2における演算器で演算する際のフィルタの格納の様子を示す説明図である。 実施例3における制御装置の機能ブロック図である。
 図1は、実施例1における認識装置1000の機能ブロック図である。認識装置1000は、演算装置の一種であり、カメラやLIDARからの外界情報を用いて、外界の状況を認識する装置である。
 図1の認識装置1000は、外界情報取得装置101と接続する。そして、CNN演算部102と、モデル保存部104と、チャネル情報取得部105と、重みパラメータ取得部106と、フィルタ情報取得部107と削除インデックス決定部108と、演算割り当て部109から構成される。この結果、認識装置1000は、認識結果103を出力する。
 ここで、各構成要素について説明する。まず、外界情報取得装置101は、外界情報を取得し、これをCNN演算部102に取得情報を送信する。この外界情報取得装置101は、カメラやLIDARといったセンサで実現できる。また、チャネル情報取得部105は、モデル保存部104からの出力であるモデル情報110を受け取る。また、重みパラメータ取得部106は、モデル保存部104からの出力であるモデル情報110を受け取る。
 また、フィルタ情報取得部107は、モデル保存部104からの出力であるモデル情報110を受け取る。また、削除インデックス決定部108は、チャネル情報取得部105から、各層のチャネル数を示すチャネル情報111と受け取る。さらに、削除インデックス決定部108は、重みパラメータ取得部106の出力である各層の重みパラメータを示す重みパラメータ情報112を受け取る。またさらに、削除インデックス決定部108は、フィルタ情報取得部107の出力である各層のフィルタ数を示すフィルタ情報113を受け取る。
 また、演算割り当て部109は、モデル保存部104の出力であるモデル情報110を受け取る。さらに、演算割り当て部109は、削除インデックス決定部の出力である各層の削除フィルタインデックス情報114を受け取る。またさらに、演算割り当て部109は、各層の削除チャネルインデックス情報116を受け取る。
 また、CNN演算部102は、外界情報取得装置101の外界情報である入力データ117と、演算割り当て部109の出力であるCNN演算制御信号115と、チャネル情報111およびフィルタ情報113を受け取る。そして、CNN演算部102は、これらを用いて認識結果103を出力する。
 次に、認識装置1000の動作および信号の流れを説明する。まず、外界情報取得装置101からCNN演算部102へ、外界情報を送信する。次に、CNN演算部102は、モデル保存部104のモデル情報110および演算割り当て部109のCNN演算制御信号115、チャネル情報111およびフィルタ情報113をもとに演算を行う。なお、図1では、入力されるチャネル情報111およびフィルタ情報113を示す矢印は省略する。そして、CNN演算部102は、これらを用いて、認識結果103を算出し出力する。
 次に、チャネル情報取得部105は、モデル保存部104のモデル情報から各層のチャネル数を抽出し、チャネル情報111を削除インデックス決定部108に出力する。また、重みパラメータ取得部106は、モデル保存部104から受け取ったモデル情報110から各層の重みパラメータを抽出し、重みパラメータ情報112を削除インデックス決定部108に出力する。
 また、フィルタ情報取得部107は、モデル保存部104のモデル情報110から各層のフィルタ数を取得し、これを含む各層のフィルタ情報113を削除インデックス決定部108に出力する。
 また、削除インデックス決定部108は、チャネル情報111、重みパラメータ情報112およびフィルタ情報113から演算を削除するフィルタ及びチャネルのインデックスを算出する。そして、削除インデックス決定部108は、これらインデックスを含む削除フィルタインデックス情報114及び削除チャネルインデックス情報116を、演算割り当て部109に出力する。
 また、演算割り当て部109では、削除フィルタインデックス情報114と各層ごとの削除チャネルインデックス情報116とモデル情報110をもとに、演算順の決定とモデルから削除するフィルタやチャネルを特定する。ここで、演算割り当て部109は、削除の対象として、フィルタおよびチャネルの少なくとも一方を特定すればよい。特に、削除の対象を、フィルタとすることが望ましい。そして、演算割り当て部109は、CNN演算部102に、特定されたフィルタやチャネルを含むCNN演算制御信号115を送信する。
 ここで、削除チャネルインデックス情報116ついては、図2を用いて説明する。また、削除フィルタインデックス情報114については図3を用いて説明する。さらに、削除インデックス決定部108の動作の詳細については、図5を用いて説明する。なお、本実施例の認識装置は、いわゆるコンピュータでも実現できる。この場合、各部の機能をプログラムに従ってCPUのような処理装置で実行することになる。また、このプログラムは記憶媒体に格納される。また、各部は、FPGA(Field Programmable Gate Array)のような専用ハードウェアや専用回路でも実現できる。
 図2は、削除チャネルインデックス情報116を説明するための説明図である。まず、本実施例のCNNの層はL層存在して、それぞれ1層目からL層目まで従属接続されている。また、各層ごとにチャネル251が存在しており、ある1層のチャネル251は次の層のすべてのチャネル251に対して接続されている。ここで、各層ごとにチャネルに対してそれぞれ異なるインデックスをあたえ、削除チャネルインデックス情報116では、各層ごとに削除するべきチャネルインデックスを指定する。この指定されたインデックス番号を、以下、削除チャネルインデックスと呼ぶ。
 次に、図3は、削除フィルタインデックス情報114を説明するための説明図である。まず、CNNでは1層目からL層目までそれぞれフィルタ351が存在している。図3において、あるj層(1≦j≦L)については、図3では3×3のフィルタを例示している。なお、フィルタの数については、あくまでも一例であり、これに限定されるものではない。
 ここで、本実施例では、各層ごとに一つの層のすべてのフィルタに同じインデックス番号352を与える。この削除フィルタインデックス情報114では、各層ごとに削除するべきフィルタインデックス352を指定する。この指定されたインデックス番号を以下で削除フィルタインデックスと呼ぶ。
 図4は、CNN演算部102の内部構成を示す図である。図4において、CNN演算部102は、メモリ201、パラメータ格納部202、畳み込み演算部203を有する。また、CNN演算部102は、入力データ117、CNN演算制御信号115、モデル情報110、1層のCNN演算制御信号204、全層の重みパラメータ205、全層のフィルタ数206、全層のチャネル数207、1層、つまり、各層の重みパラメータである個別重みパラメータ208、各層の個別フィルタ数209および各層の個別チャネル数210を扱う。そして、CNN演算部102は、これらお用いて、認識結果103を出力する。
 次に、図4に示すCNN演算部102の接続関係を説明する。メモリ201には、入力データ117が入力される。この入力データ117は、上述の外界情報である。また、パラメータ格納部202は、モデル情報110が保持される。
 また、1層目の畳み込み演算部203-1には、以下の信号ないし情報が入力される。
CNN演算制御信号115から分岐した個別、つまり、1層のCNN演算制御信号204-1
メモリ201に保存される保存データ211(入力データ117)
パラメータ格納部202から出力される重みパラメータ205から分岐した個別重みパラメータ208-1
パラメータ格納部202から出力されるフィルタ数206から分岐した個別フィルタ数209-1
パラメータ格納部202から出力されるチャネル数から分岐した個別チャネル数210-1
 以降、2層目以降の畳み込み演算部、つまり、j層目の畳み込み演算部203-jについては、以下の信号ないし情報が入力される。
CNN演算制御信号115から分岐した個別の、つまり、j層のCNN演算制御信号204-j
j-1層の畳み込み演算部の出力データ212-j
パラメータ格納部202から出力される重みパラメータ205から分岐した個別重みパラメータ208-j
パラメータ格納部202から出力されるフィルタ数206から分岐した個別フィルタ数209-j
パラメータ格納部202から出力されるチャネル数から分岐した個別チャネル数210-j
 また、最終層の第L層目の畳み込み演算部203-Lには、以下の信号ないし情報が入力される。
CNN演算制御信号115から分岐した個別のCNN演算制御信号204-L
L-1層目の畳み込み演算部203―jの出力データ212-L
パラメータ格納部202から出力される重みパラメータ205から分岐した個別重みパラメータ208-L
パラメータ格納部202から出力されるフィルタ数206から分岐した個別フィルタ数209-L
パラメータ格納部202から出力されるチャネル数から分岐した個別チャネル数210-L
 そして、第L層目の畳み込み演算部203-Lは、これらを用いて認識した認識結果103を出力する。
 次に、CNN演算部102の動作の詳細を説明する。まず、CNN演算部102では、入力データ117およびモデル情報110をもとに畳み込み演算を行い、その認識結果103を出力する。この際、各畳み込み演算部203は、CNN演算制御信号115から分岐した各層それぞれに対するCNN演算制御信号204を受信し、一部のフィルタ及びチャネルの演算をスキップする。この演算のスキップが、本願の削除の一例である。ここで、本願の削除には、演算の省略、無視といった受動的な処理も含まれる。ここで、削除、つまり、スキップされるフィルタおよびチャネルは外部からのモデル更新に伴い、モデル情報110が変更されるまで同じものである。なお、上述のように、スキップされる対象は、フィルタおよびチャネルの一方であってもよい。この結果、本実施例では、言い換えると、本願では、畳み込みに使用するフィルタ情報とチャネル情報の少なくとも一方を削除することになる。
 また、メモリ201は、入力データ117を格納する。そして、畳み込み演算部203へ入力データ117である保存データ211が出力される。次に、畳み込み演算部203は、入力された保存データ211(出力データ212)と個別重みパラメータ208をもとに畳み込み演算を行う。この畳み込み演算の結果、演算順やデータ読み込みを制御するための信号であるCNN演算制御信号204と、個別フィルタ数209と個別チャネル数210により演算回数や出力データ数、演算器へのデータの割り当てが決定される。畳み込み演算部203は、このように決定された演算結果である出力データ212を出力する。これを第1層から第L層まで繰り返す。
 また、パラメータ格納部202での受け取ったモデル情報110から各層の重みパラメータ205、各層のフィルタ数206、各層のチャネル数207を分割し畳み込み演算部203へ出力される。
 以上で、CNN演算部102の説明を終わり、次に、削除インデックス決定部108について、説明する。図5は、削除インデックス決定部108の内部構成を示す図である。
 図5において、削除インデックス決定部108は、チャネル情報111と、重みパラメータ情報112と、フィルタ情報113を入力として受け取る。そして、削除インデックス決定部108は、これらの入力に基づいて、削除チャネルインデックス情報116および削除フィルタインデックス情報114を出力する。このために、削除インデックス決定部108は、目標処理速度格納部301と、最大演算数保存部302と、演算速度解析部303と、感度情報解析部304と、削除チャネル決定部305と、削除フィルタ決定部306と、削除チャネルインデックス出力部307と、削除フィルタインデックス出力部を有する。
 次に、図5を用いて、削除インデックス決定部108の接続関係を示す。演算速度解析部303は、目標処理速度格納部301の出力である目標処理速度310と最大演算数保存部302の出力である演算器当たりの最大演算可能な演算数315と、チャネル情報111と、フィルタ情報113を入力として受け取る。
 また、感度情報解析部304は、チャネル情報111と、重みパラメータ情報112と、フィルタ情報113を入力として受け取る。また、削除チャネル決定部305は、演算速度解析部303の結果である削除チャネル数311と感度情報解析部304の結果である感度情報313を入力として受け取る。
 また、削除フィルタ決定部306は、演算速度解析部303の出力である削除フィルタ数312と感度情報解析部304の出力である感度情報316を入力として受け取る。また、削除チャネルインデックス出力部307は、削除チャネル決定部305の出力である優先度情報317と、最大演算数保存部302の出力である演算数315を入力として受け取り、各層ごとの削除チャネルインデックス情報116を出力する。
 またさらに、削除フィルタインデックス出力部308は、削除フィルタ決定部306の出力318と、最大演算数保存部302の出力である演算数315を入力として受け取り、各層の削除フィルタインデックス情報114を出力する。
 次に、図5を用いて、削除インデックス決定部108の動作について説明する。まず、演算速度解析部303は、入力されたチャネル情報111と、フィルタ情報113と、演算器1つ当たりの最大演算可能な演算数315をもとに、各層ごとに畳み込み演算にかかる時間と目標処理速度と畳み込み演算にかかる時間の差分を試算する。
 また、感度情報解析部304は、チャネル情報111と、重みパラメータ情報112と、フィルタ情報113から、各層のチャネル全ての認識精度に対する感度情報と、各層のフィルタすべての認識精度に対する感度情報を見積もる。
 また、削除チャネル決定部305は、演算速度解析部303から入力された各層の演算速度及び目標処理速度との差分情報と、感度情報解析部304から出力された各層ごとの認識精度への感度情報313と、層内のチャネルの感度情報313を受け付ける。そして、削除チャネル決定部305は、これらに基づいて、認識精度への感度が低いチャネルから順に目標処理速度との差分が0となるように、削除するチャネルの優先度を設定する。なお、削除チャネル決定部305での動作の詳細は、図8を用いて、後述する。
 また、削除フィルタ決定部306では、演算速度解析部303からの各層の処理速度と目標処理速度との差分情報と、フィルタの感度情報316をもとに各層ごとに削除を行うフィルタの順位付けを行う。
 また、削除チャネルインデックス出力部307では、削除チャネル決定部305で決められた各層の削除を行うチャネルの優先度情報317と、最大演算数保存部302から出力される演算器の最大演算可能数の情報を受け付ける。そして、削除チャネルインデックス出力部307では、これらに基づいて、残るチャネルの数が、演算器の最大演算可能な演算数の倍数もしくは1以外の約数となるようにインデックス番号を設定し、これを出力する。
 ここで、削除チャネルインデックス出力部307は、チャネルの最大演算可能数をMc、あるj層(1≦j≦L)のチャネル数をC、j層の削除するチャネル数をCdとしたとき、以下の(数1)に従った処理を行う。つまり、削除チャネルインデックス出力部307は、(数1)を満たすCdを設定し、優先度情報が低いものから順番にCd個のチャネルの演算順をj層の削除チャネルインデックス情報116に設定する。
Figure JPOXMLDOC01-appb-M000001
 また、削除フィルタインデックス出力部308は、削除フィルタ決定部306で設定した削除を行うフィルタの優先順位をもとに、残るフィルタの数が、演算器の最大演算可能な演算数の倍数もしくは1以外の約数となるようにインデックス情報を設定する。そして、削除フィルタインデックス出力部308は、これを出力する。なお、削除フィルタ決定部306でのフィルタの優先順位の特定については、図7を用いて後述する。
 ここで、削除フィルタインデックス出力部308は、フィルタの最大演算可能数をMf、あるj層のフィルタ数をF、j層の削除するフィルタ数をFdとしたとき、以下の(数2)に従った処理を行う。つまり、削除フィルタインデックス出力部308は、(数2)を満たすFdを設定し、優先度情報が低いものから順番にFd個のフィルタの演算順に対してj層の削除フィルタインデックス情報114を設定する。
Figure JPOXMLDOC01-appb-M000002
 次に、畳み込み演算部203について、説明する。図6は、本実施例における畳み込み演算部203の内部構成を示す図である。
 まず、畳み込み演算部203の構成について、説明する。ここでは、第j層を例に挙げて説明する。畳み込み演算部203は、CNN演算制御信号204、個別チャネル数210、個別フィルタ数209、前層の出力データ212-j、個別重みパラメータ208を入力として受け取る。そして、畳み込み演算部203は、これらを用いて、演算結果である出力データ212-jを出力する。このために、演算制御部401、入力データ一時保存部402、演算部403、出力データ一時格納部404を有する。
 次に、畳み込み演算部203の内部構成の接続関係を示す。演算制御部401は、CNN演算制御信号204と個別チャネル数210と個別フィルタ数209を入力として受け取る。また、入力データ一時保存部402は、前層の出力データ212-jと個別重みパラメータ208と、演算制御部401から出力される、保存されたデータの出力順及び出力タイミングを制御する制御信号410を入力として受け取る。
 また、演算部403は、演算順及び演算開始、演算停止の演算停止制御信号412と演算に必要となる入力データ411を入力として受け取る。また、出力データ一時格納部404は、演算部403の演算結果413と格納データの出力タイミングを制御する制御信号414を入力として受け取り、演算結果である出力データ212-j+1を出力する。
 以下で、畳み込み演算部203の動作を説明する。まず、入力データ一時保存部402に、前層の出力データ212-jと個別重みパラメータ208を格納する。そして、演算制御部401は、CNN演算制御信号204、個別チャネル数210、個別フィルタ数209の情報をもとに、演算を実行させる順番に合わせ、データ出力タイミング、出力をスキップするチャネル及びフィルタの情報を出力する。また、演算制御部401は、演算部403に対しては演算回数、演算開始タイミング、終了タイミングを制御する演算停止制御信号412を出力する。
 そして、出力データ一時格納部404では、演算後のデータを出力するタイミングを制御する制御信号414を保持し、他の部位で利用することを可能とする。また、演算部403では、入力されたデータから、畳み込み演算と活性化関数処理を行い、出力データ一時格納部404へ演算結果413を出力する。出力データ一時格納部404では、演算制御部401からの制御信号414に合わせて演算結果である出力データ212-j+1を順次出力する。CNN演算制御信号204、個別チャネル数210、個別フィルタ数209については、モデル情報110が更新されない限り、演算制御部401でデータを保持し続ける。
 次に、削除フィルタ決定部306の動作の詳細について、説明する。図7は、削除フィルタ決定部306での削除するフィルタの優先度を設定する動作についてのフローチャートである。
 まず、削除フィルタ決定部306は、演算速度解析部303の出力である削除チャネル数311と感度情報解析部304の出力である感度情報313が入力されると、動作を開始する(ステップS1001)。
 次に、削除フィルタ決定部306は、演算速度解析部303の出力をもとに目標処理速度以下の処理速度の層をn層分(nはn>=0を満たす整数)抽出する。そして、削除フィルタ決定部306は、処理速度が遅い順に並べる(ステップS1002)。
 次に、削除フィルタ決定部306は、処理速度以下の層を並べた場合に、現在対象にしている層を表すパラメータとしてiを設定し、i=nと設定する(ステップS1003)。
 次に、削除フィルタ決定部306は、i=0かどうか判定する(ステップS1004)。この結果、i=0の場合はステップS1006に進む。iが0ではない場合はステップS1005に進む。
 また、削除フィルタ決定部306は、認識精度への感度情報をもとにフィルタの大きさごとに、感度が低いものから順に削除優先度を設定する(ステップS1005)。例えば、3×3=9個の重みパラメータで構成されるフィルタの場合には、9個の重みパラメータの内、削除されたときに認識精度の劣化量が小さいものから順番に優先度が設定される。なお、フィルタの数については、この例に限定されない。また、削除の基準は、劣化量に限定されず、所定規則を満たすものであればよい。また、認識精度の劣化以外にも、演算精度の劣化量を用いてもよい。
 また、削除フィルタ決定部306は、iを一つ減らしてステップS1004へ戻る(ステップS1007)。
 そして、最終的に削除フィルタ決定部306は、n層分個別に算出したフィルタの削除優先度情報を出力する(ステップS1006)。
 以上で、削除フィルタ決定部306での削除するフィルタの優先度を設定する動作についての説明を終わる。
 次に、削除チャネル決定部305の動作について説明する。図8は、削除チャネル決定部305の動作を示すフローチャートである。
 まず、削除チャネル決定部305は、演算速度解析部303の出力である削除チャネル数311と感度情報解析部304の出力である感度情報313が入力されると、動作を開始する(ステップS2001)。
 次に、削除チャネル決定部305は、演算速度解析部の出力である削除チャネル数311をもとに処理速度が目標以下の層をn層分(nはn>=0を満たす整数)抽出し処理速度が遅い順に並べる(ステップS2002)。
 次に、削除チャネル決定部305は、処理速度以下の層を並べた場合に現在対象にしている層を表すパラメータとしてiを設定し、i=nと設定する(ステップS2003)。
 次に、削除チャネル決定部305は、i=0かどうか判定する(ステップS2004)。この結果、i=0の場合は、ステップS2006に進む。iが0でない場合は、ステップS2005に進む。
 また、削除チャネル決定部305は、i層のチャネルについて感度情報解析部304の出力である感度情報313と演算速度解析部303の出力である削除チャネル数311の情報をもとに、削除が必要なチャネル数を算出する。算出される削除に必要なチャネル数は、i層の処理速度が目標処理速度を上回るまで算出することが望ましい。そして、削除チャネル決定部305は、認識精度への感度が小さい順に削除優先度設定を行う(ステップS2005)。
 最後に、削除チャネル決定部305は、n層分個別に算出したチャネルの削除優先度情報を出力する(ステップS2006)。
 次に、演算割り当て部109での動作について説明する。図9は、演算割り当て部109での動作についてのフローチャートである。以下処理フローについて説明する。
 まず、演算割り当て部109は、削除インデックス決定部108からの削除チャネルインデックス情報116と削除フィルタインデックス情報114が入力されると、動作を開始する(ステップS3001)。次に、演算割り当て部109は、入力された削除チャネルインデックス情報を格納する(ステップS3002)。
 次に、演算割り当て部109は、削除フィルタインデックス情報および削除優先度を格納する(ステップS3002)。次に、演算割り当て部109は、削除を行うフィルタが削除フィルタインデックス情報のストライド方向から見て両端にあるかどうか判定する(ステップS3004)。なお、ストライド方向や両端に関しては、図10を用いて後述する。両端にあると判定された場合には、ステップS3007へ進む。両端でないと判定された場合には、ステップS3005へ進む。
 また、演算割り当て部109は、ストライド方向の変更が実装上可能かどうか判定する(ステップS3005)。このために、演算割り当て部109は、実装上の制約条件に基づいて判定することが望ましい。この判定の結果、変更可能な場合はステップS3009へ進む。変更不可能な場合はステップS3006へ進む。
 次に、演算割り当て部109は、削除フィルタインデックスの優先度を両端の次点で優先度が高いものに変更する(ステップS3006)。次に、演算割り当て部109は、
削除チャネルインデックス情報を出力する(ステップS3007)。
 そして、演算割り当て部109は、削除フィルタインデックス情報及びストライドの方向を出力する(ステップS3008)。
 また、演算割り当て部109は、ステップS3006において不可能と判定された場合に、ストライドの方向を90度変更させる(ステップS3009)。そして、ステップS3007に進む。
 次に、ストライドおよび削除可能なフィルタについて説明する。図10は、ストライドおよび削除可能なフィルタの例を説明するための図である。畳み込み演算では、図8(a)(b)の中間データ801上を、畳み込みフィルタ803およびフィルタ805がストライド方向802及び804の方向へ移動しながら当該畳み込み演算がされる。ここではフィルタを3×3としているが、フィルタの大きさはこれに限定されない。
 フィルタの両端とは、図8(a)の畳み込みフィルタ803及び図8(b)のフィルタ805において灰色で示すフィルタのことである。ここで、畳み込みフィルタ803はストライド方向802が左右のため、両端のフィルタは左右となる。また、フィルタ805はストライド方向804が上下のため、両端のフィルタは上下となる。
 次に、図11に、3×3のフィルタについて削除を行った例を示す。ここでは、最大演算可能数が8とした場合における実際に削除した例を示す。最大演算数は、ここでは例として8としているが、これに限定されず2(n≧1)であればよい。このように、最大演算可能数が8の場合には、削除するフィルタの数は1つとなる。そのため、図11に示した灰色の領域の内1つのフィルタを削除する。削除済みのフィルタ913が、横方向のストライド912で削除を行った後のフィルタである。また、削除済みのフィルタ914が、縦方向のストライド915で削除を行った後のフィルタである。以上で、実施例1の説明を終わる。
 次に、実施例2について説明する。実施例2は、実施例1の認識装置1000を、車両の走行の際における外界の認識に適用した例である。このため、実施例2では、速度無制限道路走行の際と、通常の高速道走行の際や市街地走行の際など、走行する速度及び演算処理に要求される速度に応じて畳み込み演算の処理速度を変更する。
 ここで、通常の高速道路走行の際や市街地走行の際と、速度無制限道路走行の際では、ECUで必要とされる処理速度が異なる。また、走行する路面の幅や周辺状況も異なる。そこで、本実施例では走行速度の変化を観測し、一つの演算器で複数の演算を行う演算数を増やすことで、要求処理速度の増加に対応させている例を示す。
 また、実施例2では、走行速度情報を取得し、単位時間当たりの平均時速Vがあらかじめ設計時に定めた走行速度上限値Xを上回ったときに、目標処理速度を変更し、削除インデックスの数を増加させる。このことで、演算数を増加させ処理速度を向上させるための実施例である。なお実施例1と共通部分については図に同一符号を付し、その説明を省略する。
 図12は、実施例2における演算装置である認識装置1000の機能ブロック図である。ここで、図12を用いて、実施例1との差異について説明する。実施例2の認識装置1000では、走行速度取得部901が、追加されている。また、本実施例では、実施例1とは異なる構成である削除インデックス決定部903を有する。つづいて、本実施例2の認識装置1000の接続関係について説明する。まず、走行速度取得部901は、削除インデックス決定部903へ走行速度を出力する。削除インデックス決定部108は、走行速度取得部901、チャネル情報取得部105、重みパラメータ取得部106、フィルタ情報取得部107の出力を受け取る。
 次に、実施例2の認識装置1000の動作のうち、実施例1との差分について説明する。まず、走行速度取得部901で車両走行速度を監視しており、現在の走行速度を継続的に削除インデックス決定部108へ出力する。
 なお、本実施例の認識装置1000も、いわゆるコンピュータでも実現できる。この場合、各部の機能をプログラムに従ってCPUのような処理装置で実行することになる。また、このプログラムは記憶媒体に格納される。また、各部は、FPGA(Field Programmable Gate Array)のような専用ハードウェアや専用回路でも実現できる。
 図13は、実施例2における削除インデックス決定部903の内部構成を示す図である。ここで、図13を用いて、削除インデックス決定部903の構成について、削除インデックス決定部108との差分について説明する。
 削除インデックス決定部903は、実施例1の削除インデックス決定部108に加えて、目標処理速度判定部902と演算速度解析部905をさらに有する。ここで、目標処理速度判定部902は、走行速度取得部901から出力された走行速度情報を追加の入力とする。また、演算速度解析部905は、最大演算数保存部302からの出力916と目標処理速度判定部からの出力である目標処理速度310を追加の入力とし、最大演算数906を出力する。
 次に、実施例2における削除インデックス決定部903の接続関係について、説明する。まず、目標処理速度判定部902に、走行速度情報が入力される。また、演算速度解析部905に、最大演算数保存部302の出力916と、目標処理速度判定部902の出力である目標処理速度310と、チャネル情報111とフィルタ情報113が入力される。そして、演算速度解析部905は、削除チャネル数311と削除フィルタ数312と変更された最大演算数906を出力する。また、変更された最大演算数906は、削除チャネルインデックス出力部307と削除フィルタインデックス出力部308に入力される。
 以下、実施例2における削除インデックス決定部903の動作について説明する。目標処理速度判定部902では、入力された走行速度情報から単位時間当たりの走行速度Vを算出する。ここで、V<Xを満たす場合には、目標処理速度判定部902は、既存の目標処理速度Gを維持する。一方、目標処理速度判定部902は、V>Xを満たす場合には目標処理速度Gを2Gに変更して、変更された目標処理速度を演算速度解析部905へ送信する。
 また、目標処理速度判定部902は、演算速度解析部905では目標処理速度が増加したときに、最大演算可能数2nを2n-1へと変更する。また、目標処理速度判定部902は、減少したときには2へ戻す。次に、目標処理速度判定部902は、変更した最大演算可能数をもとに削除フィルタチャネル数を求める。そして、目標処理速度判定部902は、変更した最大演算数906を削除チャネルインデックス出力部307と削除フィルタインデックス出力部308に送信する。それ以外の動作については、図5と同様ため省略する。
 次に、図14は、演算器で演算する際のフィルタの格納の様子についての説明図である。図14(a)が、最大演算数を減少させる前の例を表し、図14(b)が最大演算数を減少させた後の例を示す。また、これらは、演算器151、重みパラメータ152をもとに構成される。
 ここで、最大演算数が8(n=3)、フィルタサイズが9の場合について、図14(a)を用いて、説明する。最大演算数が8の場合、フィルタから1つインデックスを削除し、演算器151に重みパラメータ152をセットして演算する。また、走行速度が上昇し、最大演算数が4となったときの例について、図14(b)を用いて説明する。最大演算数が4のときには、フィルタから5削除して演算器151にセットする。この場合に、図14(a)と比較すると倍の重みパラメータ152を演算器151に入れることができることになる。以上で、実施例2についての説明を終わる。
 実施例3は、実施例1および実施例2の認識装置1000を、制御装置2000に適用した実施例である。図15は、実施例3における制御装置2000の機能ブロック図である。この制御装置2000は、例えば、ECUとして実装される。
 図3において、制御装置2000は、認識装置1000、制御信号生成部2001を有する。そして、実施例1や2の処理を実行する認識装置1000から出力される認識結果103を、制御信号生成部2001に送信する。次に、制御信号生成部2001では、認識結果に応じて、制御信号2002を生成し、これに基づいて制御対象3000の制御を行う。
 ここで、制御装置2000がECUで実行される場合、制御対象3000は車両となる。この場合、各実施例に記載した処理に基づいて、車両の自動運転や運転支援を実現できる。
 以上で、各実施例の説明を終わるが、各実施例には様々な変形例や適用例が想定される。例えば、各実施例では、認識装置1000を例に説明したが、認識に限定しない演算を行う演算装置も各実施例の範疇に含まれる。
 また、各実施例によれば、一般的な画像データを用いて演算を行った場合に、演算器の活用率は50%程度であり、本発明による演算の削除機構を用いることで、演算器の活用率を約100%近くまで向上させることが期待できる。つまり、活用率を向上できる。
 さらに、本実施例では、畳み込みニューラルネットワークでの演算の際に、畳み込み演算で使用するフィルタ及びチャネルの一部を削除する。このため、層ごとに異なるフィルタ、チャネルの位置、もしくは順番を示す番号である削除インデックス情報を演算制御部へ与える。このことで、演算器の演算単位に合わせて、畳み込み演算の入力データの一部、および重みパラメータの一部の読み込みをスキップし、畳み込み演算の一部を削除する。これにより限られた演算性能を持つデバイスで演算器を効率よく使用することができる。
101…外界情報取得装置、102… CNN演算部、104… モデル保存部、105…チャネル情報取得部、106…重みパラメータ取得部、107…フィルタ情報取得部、108…削除インデックス決定部、109…演算割り当て部、111…チャネル情報、112…重みパラメータ情報、113…フィルタ情報、114…削除フィルタインデックス情報、115…CNN演算制御信号、116…削除チャネルインデックス情報、117…入力データ、202…パラメータ格納部、203…畳み込み演算部、204…分岐したCNN演算制御信号、208…個別重みパラメータ、209…個別フィルタ数、210…個別チャネル数、211…保存データ、301…目標処理速度格納部、302…最大演算数保存部、303…演算速度解析部、304…感度情報解析部、305…削除チャネル決定部、306…削除フィルタ決定部、401…演算制御部、412…演算停止制御信号、801…中間データ、802…ストライド方向、803…畳み込みフィルタ、901…走行速度取得部、902…目標処理速度判定部

Claims (10)

  1.  入力データをもとにCNN演算を行う演算装置において、
     前記CNN演算に用いるモデルを保存するモデル保存部と、
     前記モデルを用いて、複数の畳み込み層毎に畳み込み演算を実行することで、前記CNN演算を行うCNN演算部と、
     前記モデル保存部から、前記畳み込み演算に用いる畳み込みフィルタの重みパラメータを取得する重みパラメータ取得部と、
     前記モデル保存部に保存された前記モデルから、前記複数の畳み込み層ごとのチャネル情報を取得するチャネル情報取得部と、
     前記モデル保存部から、前記複数の畳み込み層ごとのフィルタ情報を取得するフィルタ情報取得部と、
     前記CNN演算に必要となる重み情報と演算の組み合わせを割り当て、前記CNN演算部へ送信する演算割り当て部と、
     前記CNN演算部の最大演算可能数、前記CNN演算の実行順、前記チャネル情報取得部から取得した前記CNN演算部の畳み込み層ごとのチャネル情報および前記重みパラメータ取得部から取得した重み情報および前記フィルタ情報取得部から取得した前記複数の畳み込み層ごとのフィルタ情報に基づき、前記畳み込み演算に使用するフィルタ情報の一部を削除する削除インデックス決定部を有する演算装置。
  2.  請求項1に記載の演算装置において、
     前記削除インデックス決定部は、さらに、前記畳み込み演算に使用するチャネル情報の一部を削除する演算装置。
  3.  請求項1に記載の演算装置において、
     前記削除インデックス決定部は、削除するフィルタ情報を、前記重み情報の変更に応じて決定する演算装置。
  4.  請求項2に記載の演算装置において、
     前記削除インデックス決定部は、削除するチャネル情報を、前記重み情報の変更に応じて決定する演算装置。
  5.  請求項1に記載の演算装置において、
     前記フィルタ情報が示すフィルタは、複数の重みパラメータで構成され、
     前記削除インデックス決定部は、前記複数のパラメータのうち、所定規則を満たす重みパラメータを決定する演算装置。
  6.  請求項5に記載の演算装置において、
     前記削除インデックス決定部は、前記所定規則として、演算精度の劣化量に基づいて、削除する重みパラメータを決定する演算装置。
  7.  請求項1に記載の演算装置において、
     前記削除インデックス決定部は、処理速度に応じて、削除するフィルタ情報を決定する演算装置。
  8.  請求項7に記載の演算装置において、
     前記削除インデックス決定部は、さらに、前記複数の畳み込み層の感度を示す感度情報および前記フィルタの大きさに基づいて、削除するフィルタ情報を決定する演算装置。
  9.  請求項1乃至8のいずれかに記載の演算装置により、
     前記入力データとして、外界取得装置から取得される外界情報を用い、
     前記外界情報を用いて、外界の状況を認識することを特徴とする認識装置。
  10.  請求項9に記載の認識装置を有し、
     前記認識された外界の状況に応じて、前記認識装置での演算の結果を、対象に対する制御信号として出力することを特徴とする制御装置。
PCT/JP2022/004491 2021-05-20 2022-02-04 演算装置、認識装置および制御装置 WO2022244331A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE112022001612.4T DE112022001612T5 (de) 2021-05-20 2022-02-04 Rechenvorrichtung, erkennungsvorrichtung und steuervorrichtung

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021085284A JP2022178465A (ja) 2021-05-20 2021-05-20 演算装置、認識装置および制御装置
JP2021-085284 2021-05-20

Publications (1)

Publication Number Publication Date
WO2022244331A1 true WO2022244331A1 (ja) 2022-11-24

Family

ID=84140179

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/004491 WO2022244331A1 (ja) 2021-05-20 2022-02-04 演算装置、認識装置および制御装置

Country Status (3)

Country Link
JP (1) JP2022178465A (ja)
DE (1) DE112022001612T5 (ja)
WO (1) WO2022244331A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096634A1 (ja) * 2004-03-30 2005-10-13 Kanazawa University Technolgy Licensing Organization Ltd. マルチタスク処理システム、及び、マルチタスク処理方法
JP2018190045A (ja) * 2017-04-28 2018-11-29 日立オートモティブシステムズ株式会社 車両電子制御装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832839B (zh) 2017-10-31 2020-02-14 南京地平线机器人技术有限公司 执行卷积神经网络中的运算的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096634A1 (ja) * 2004-03-30 2005-10-13 Kanazawa University Technolgy Licensing Organization Ltd. マルチタスク処理システム、及び、マルチタスク処理方法
JP2018190045A (ja) * 2017-04-28 2018-11-29 日立オートモティブシステムズ株式会社 車両電子制御装置

Also Published As

Publication number Publication date
DE112022001612T5 (de) 2024-01-18
JP2022178465A (ja) 2022-12-02

Similar Documents

Publication Publication Date Title
Lv et al. Lc-rnn: A deep learning model for traffic speed prediction.
CN110785814B (zh) 使用深度神经网络预测测序结果的质量
US10996877B2 (en) Semiconductor device and memory access setup method
US20210264266A1 (en) Split Architecture for Artificial Intelligence-Based Base Caller
CN114529081B (zh) 一种时空联合的交通流量预测方法及装置
CN112884193A (zh) 预测装置、预测方法及记录介质
CN111160523B (zh) 基于特征值区域的动态量化方法、系统及介质
CN112651441A (zh) 细粒度非机动车特征检测方法、存储介质及计算机设备
CN111223296B (zh) 信号灯的控制方法、装置、计算机设备和存储介质
WO2022244331A1 (ja) 演算装置、認識装置および制御装置
CN116824543A (zh) 一种基于od-yolo的自动驾驶目标检测方法
Savino et al. Civil infrastructure defect assessment using pixel-wise segmentation based on deep learning
US20190392249A1 (en) Image feature amount output device, image recognition device, the image feature amount output program, and image recognition program
CN112710316A (zh) 专注于构造和本地化技术领域的动态地图生成
CN115661771A (zh) 一种基于不均匀锚的车道线边沿实时检测方法和系统
CN115320637A (zh) 一种自动驾驶方法、装置及存储介质
CN115136149A (zh) 信息处理装置、车载控制装置
CN113658228B (zh) 一种基于卷积神经网络的行人轨迹预测系统和方法
JP2024041325A (ja) 演算装置
Belean et al. FPGA technology and parallel computing towards automatic microarray image processing
JP6583111B2 (ja) 演算装置
US11893086B2 (en) Shape-biased image classification using deep convolutional networks
CN117087483A (zh) 一种电动汽车充电控制方法及系统
CN115761400A (zh) 目标识别模型训练方法、装置和终端设备
CN117409387A (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: 22804253

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 112022001612

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22804253

Country of ref document: EP

Kind code of ref document: A1