EP4115344A1 - Computerimplementiertes verfahren zur berechnung von faltungsnetzwerken, computersystem, computerprogramm und automatisiert betreibbares fahrzeug - Google Patents

Computerimplementiertes verfahren zur berechnung von faltungsnetzwerken, computersystem, computerprogramm und automatisiert betreibbares fahrzeug

Info

Publication number
EP4115344A1
EP4115344A1 EP21709929.0A EP21709929A EP4115344A1 EP 4115344 A1 EP4115344 A1 EP 4115344A1 EP 21709929 A EP21709929 A EP 21709929A EP 4115344 A1 EP4115344 A1 EP 4115344A1
Authority
EP
European Patent Office
Prior art keywords
image
convolution
filter
size
convolution network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP21709929.0A
Other languages
English (en)
French (fr)
Inventor
Jonas Schmidt
Michael Hertkorn
Martin Damian TROCHOWSKI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZF Friedrichshafen AG
Original Assignee
ZF Friedrichshafen AG
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 ZF Friedrichshafen AG filed Critical ZF Friedrichshafen AG
Publication of EP4115344A1 publication Critical patent/EP4115344A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning

Definitions

  • the invention relates to a computer-implemented method for calculating convolution networks, to a computer system, to a computer program and to a vehicle that can be operated in an automated manner.
  • Convolutional networks are known from the prior art, see for example “Gradient-Based Learning Applied to Document Recognition, ILA. Convolutional Networks, "Y. LeCun et al., Proc. of the IEEE, November 1998.
  • Computer systems are also known from the prior art, for example systems-on-a-chip or microcontrollers.
  • a microcontroller has a relatively limited computing and storage capacity. This makes the use of artificial neural networks difficult because many arithmetic operations are required to calculate the output of the artificial neural network. This depends on the architecture of the artificial neural network. In general, the size of the network has a positive effect on the ability to classify and / or localize.
  • the object of the invention was to find out how an artificial neural network that is as large as possible, which requires a large number of arithmetic operations, can be run on a microcontroller.
  • the invention solves this problem by saving computing steps. This means that much larger artificial neural networks can be executed on computer systems with limited computing and storage capacity and, at the same time, better classification and / or localization results can be obtained. According to the invention, intermediate results are noted in the correct places in hidden layers of the artificial neural network during the execution of an artificial neural network, that is to say cached to these results Reuse the past and thus determine a recognition result with fewer calculation steps.
  • the invention provides a computer-implemented method for computing convolution networks.
  • the process comprises the steps:
  • a first dimension of the first convolutional image is reduced by the update size and the reduced first convolutional image is stored in a first memory area of a computer system
  • the first filter is applied in the first dimension of the second image, restricted to the sum of the update size and a corresponding dimension of the first filter reduced by a font size of the first filter, and values of the reduced first convolution image from the first Storage area can be obtained.
  • the invention provides a computer system.
  • the computer system comprises at least one processor unit and a memory area.
  • the processor unit and the memory area are adapted so that the computer system can execute a convolution network and the steps of the method according to the invention.
  • the invention provides a computer program.
  • the computer program comprises commands which, when the computer program is executed by a computer system according to the invention, cause the Steps of the method according to the invention and thereby lead trainees a convolution network.
  • the invention provides a vehicle that can be operated in an automated manner.
  • the vehicle includes
  • At least four acoustic sensors the acoustic sensors arranged in a front and rear respective right and left area of the vehicle and
  • a computer system designed as a microcontroller that receives signals from the acoustic sensors
  • a multi-core processor of the computer system comprises at least four cores and each core carries out a convolution network and the steps of the method according to the invention based on signals from one of the acoustic sensors and the results are merged.
  • Computer-implemented means that the steps of the method are carried out by a data processing device, for example a computer system, or parts thereof. According to one aspect of the invention, the method is carried out on a microcontroller.
  • the commands of the computer program include software code sections, machine code or binary code.
  • the invention provides a computer-readable data carrier on which the computer program according to the invention is stored.
  • the data carrier is, for example, an SSD, volatile, RAM, non-volatile, ROM, or flash disk.
  • the computer system is a one-chip system, also called a system-on-a-chip.
  • a one-chip system for example a One-chip computer system, all or at least a large part of the functions of a programmable electronic system, for example a computer, are integrated on a chip, that is to say a die.
  • the convolution network comprises the following structure:
  • an image is entered into an input layer.
  • the image is stored, for example, in a memory unit of the microcontroller.
  • This storage unit is also called an image buffer.
  • the image buffer stores and provides the inputs for the first layer of the convolution network.
  • the microcontroller comprises two image buffers, an active one, from which is currently being read, and a passive one for intermediate storage.
  • the image is folded with the filter kernel and its dimensions are reduced.
  • filter kernels are used to filter different features or to weight different areas of the input image differently.
  • 10, 20, 30, 40, 50, 60, 70, 80, 90 or 100 filter kernels are used.
  • 64 filter kernels are used.
  • the filter kernels include, for example, Sobel or Scharr operators in order to classify so-called low-level features in the input image, for example edges.
  • 64 folding images are obtained from the input image.
  • the parameters of the filter kernel are stored, for example, in a second memory unit of the microcontroller and are read out from this.
  • neuron connections of the convolution network to each image point, that is, pixels, of the convolution images obtained are activated with activation functions.
  • the activation function is, for example, a so-called rectifier function known to the person skilled in the art.
  • the output of a rectifier function is the maximum of input and zero.
  • the activation functions for each pixel are rectifier functions, that is to say the convolution network comprises so-called rectifier linear units.
  • different activation functions are activated individually or in groups on different pixels applied. The activation results are saved and are input for further calculations in the following layers of the convolution network.
  • the activation results i.e. images again, are read out and the dimensions of the output of the input layer are reduced in each case using maxpooling.
  • the results after maxpooling are temporarily stored, for example, in a memory area of a fourth memory unit of the microcontroller.
  • the results in the most up-to-date area which corresponds to the corresponding dimension of the filter kernel reduced by the step size of the filter kernel, cached.
  • the outputs of the first layer are read from the buffer and convoluted with the filter kernel. Since the dimensions are reduced again. Subsequently, neuron connections to each image point, i.e. pixels, of the convolution images now obtained are activated by rectifier linear units and the activation results are temporarily stored.
  • Maxpooling and intermediate storage, repeated folding and intermediate storage are carried out alternately in the subsequent third to sixth layers, where the dimensions of the images obtained in the layers decrease from layer to layer, until finally the sixth layer images of the dimension 1x1, i.e. 1x1 pixels in x- and y-direction, outputs.
  • the seventh layer there is an intermediate storage in order to record associations between all pixels of all images in a completely connected layer. This is also called dense.
  • the outputs of the seventh layer are linearized using so-called flattening. Flattening is carried out, for example, with the softmax function known to the person skilled in the art. Each node of the convolution network of this layer is connected to each pixel of the input images and activated with the Softmax function.
  • the eighth layer is a so-called dense layer.
  • the output of the eighth layer is, for example, 64 numerical values.
  • the layer immediately before the output layer of the convolution network comprises several dense layers, for example eight.
  • a subsequent ninth layer is again a dense layer.
  • an output layer which, for example, supplies a prediction about a classified and / or localized siren signal.
  • the first to eighth layers are hidden layers between the input and output and are called hidden layers.
  • the convolution network comprises recurrent layers, for example long-short-term memories, in order to remember intermediate results.
  • the series of measurements includes initial data and is expanded with further data in each update.
  • the convolution network is output for each update.
  • the interval from which the data is obtained in order to process the first and second images has a fixed width. This means that the second, updated interval still partially includes the first data, depending on the size of the update.
  • the series of measurements includes audio data.
  • the convolution network is trained to classify and / or localize sirens of emergency vehicles in the audio data. In Germany, the siren sounds of emergency vehicles are specified in the DIN 14610 standard.
  • the siren sound comprises two main frequencies in the range between 360 Hz and 630 Hz with a ratio of 1: 1,333, which alternate in a standardized sequence.
  • the siren signal is a time-discrete signal.
  • the interval is 1 s wide, which is sufficient to detect the siren tones.
  • the update size is 100 ms. This means that for each update the first 90% of an image is the same as the following. Only 10% new data is added. In other words, in this example the second image matches the first image by 90%. This overlap enables intermediate results to be reused.
  • Environment detection sensors are sensors with which an autonomous system, for example a robot, a robotic vehicle, or even partially automated vehicles, records its environment in order to perceive the environment and move around in it.
  • an acoustic sensor is an environment detection sensor that emits sound waves the environment.
  • an ultrasonic sensor is an environment detection sensor.
  • Environment detection sensors also include, for example, radiation sensors that scan or scan an environment with rays.
  • a radar, a lidar or a time-of-flight camera is a radiation sensor.
  • the first and second images are, for example, two-dimensional pixel arrays.
  • a first dimension is spanned, for example, in an x-direction of a Cartesian coordinate system.
  • a second dimension is spanned, for example, in a y-direction of a Cartesian coordinate system.
  • the font size of the filter kernel indicates how far the filter kernel moves from application to application.
  • the font size is 1. That is, each time the filter kernel is used, a pixel column / row in the input image changes. If the first and the second image, also called the input image, each have the dimension AxB and the filter kernel the dimension UxV, then the resulting convolution image with a font size of 1 has the dimension [A- (U- 1)] x [B - (V-1)].
  • A, U, and A- (U-1) indicate the extent, that is to say the number of pixels, in the y-direction, which corresponds to the lines of a pixel array.
  • B, V, and B- (V-1) indicate the extent, that is, the number of pixels, in the x-direction, which corresponds to the columns of a pixel array.
  • the first and second images are each obtained, for example, as follows:
  • the siren signals detected with acoustic sensors are broken down into their frequency components by means of an algorithm, for example by means of fast Fourier transformation, abbreviated FFT.
  • Mel-frequency-cepstrum coefficients are calculated from the frequency spectrum obtained in this way.
  • the first and second images are a representation of the frequency spectrum in mel-frequency-cepstrum coefficients.
  • the x-direction then indicates the time.
  • the y-direction indicates the features.
  • the second picture is the same size as the first picture. If the first image has a number of B-pixels in the x-direction, for example, then after updating the second image in the x-direction also has a number of B-pixels. If the update size in the x direction corresponds, for example, to a number of US pixels, then (B-US) pixels in the x direction of the second image are identical to the corresponding pixels of the first image. Only US pixels are added to the known (B-US) pixels in the positive x direction.
  • a first dimension of the convolution image to reduce the update size means that the reduced convolution image in the x direction comprises a number of [B- (V-1) - US] pixels, where B- (V-1) is the number of Pixels of the convolution image in the x-direction and US correspond to the update size in the x-direction.
  • the filter kernel when the second image is folded, the filter kernel only needs to be used in the x direction over the area [US + (V-1) j.
  • the values for the remaining area [B- (V-1) -US] are known from the reduced convolution image and are read out from the memory area when the second image is folded without having to be recalculated again. This saves computing power.
  • the first convolution image and the second convolution image are each discretized in a second layer of the convolution network with at least one second filter. The discretized first convolutional image is reduced in the first dimension and the reduced, discretized first convolutional image is stored in a second memory area of the computer system.
  • the second filter in the first dimension of the second convolutional image is restricted to the corresponding dimension of the first convolutional image reduced by the update value, if the value of the corresponding dimension of the first convolutional image reduced by the updated value is divisible by is the value of the corresponding dimension of the second filter. Otherwise, the second filter in the first dimension of the second convolutional image is restricted to the corresponding dimension of the first convolutional image reduced by the update size and is applied modulo the value of the dimension of the second filter. Values of the reduced, discretized first convolutional image are obtained from the second memory area.
  • the discretization reduces the dimensions of the convolution images. This corresponds to reducing the dimensions of the input images by means of convolution.
  • maxpooling is used to discretize.
  • the size of the maxpooling kernel is different in the individual layers of the convolution network. With the maxpooling filter, the size of the maxpooling kernel is shifted and the maximum is output in the corresponding area of the respective input image, here the convolution images.
  • zero padding is used in maxpooling. This means that zeros are entered in the rows and columns of the maxpooling kernel until the dimension of the maxpooling kernel corresponds to the dimension of the input image. This advantageously ensures that each pixel of the input image, here the convolution image, lies once in the center of the maxpooling kernel in order to evaluate the pixels of the input image as homogeneously as possible.
  • the first and second images are convoluted with a plurality of first filters in the first layer.
  • first filters are applied. That is, 64 convolution images are obtained from each of the first and second images.
  • first filters several low-level features are advantageously recorded, which leads to an improved understanding of the first and second images.
  • the at least first and / or second filters are used in a plurality of layers in order to fold images that are input into the respective layers and / or to discretize respective convolution images.
  • the series of measurements is updated several times and the method according to the invention is repeated for each update variable in each layer.
  • the method according to the invention is thus carried out on larger convolution networks, for example in the convolution network described by way of example at the beginning, comprising eight hidden layers.
  • the method is therefore applied to the subsequent convolution and maxpooling layers of the convolution network.
  • the sizes of the first and / or second filters differ in the respective layers of the convolution network.
  • results of the individual layers are temporarily stored.
  • the computer system comprises a microcontroller.
  • the series of measurements includes audio data from at least one acoustic sensor that detects traffic noise.
  • the first and second images are each a Mel Frequency Cepstrum Coefficient representation of the audio data.
  • a microcontroller is a one-chip computer system which comprises a processor, a memory area comprising read-only memories and read / write memories, an input / output capability and peripheral functions.
  • the individual elements are connected to each other via a bus system to transmit signals.
  • the periphery includes input and output devices, external memories and the corresponding interfaces.
  • Peripheral functions are, for example, Controller Area Network, abbreviated CAN, Local Interconnect Network, abbreviated to LIN, Universal Serial Bus, abbreviated to USB, serial or Ethernet interfaces.
  • the computer system is a microcontroller of a control device, also called an electronic control unit, which has been developed for use in the automotive sector.
  • the control unit prepares input signals, processes them by means of the microcontroller and provides logic and / or power levels as rule and / or control signals, in particular for the automated operation of a vehicle.
  • the subject matter of the invention can advantageously be used in Fahrzeu conditions.
  • the convolution network is trained to classify and / or localize operational noises from emergency vehicles, where the interval of the measurement series from which the inputs for the convolution network are obtained comprises a period of 1 s and the update size in the range from 10 ms to 100 ms, preferably in the range from 50 ms to 100 ms, and particularly preferably 100 ms.
  • a further advantage of the invention is that in the event of a siren detection it can be output as often as desired whether a siren can currently be heard. If the update size and thus the output interval are reduced to 50 ms, for example, only 5% of the data is new. Accordingly, fewer operations need to be calculated.
  • the computer system comprises a multi-core processor.
  • the storage area comprises at least four storage units, wherein
  • a first storage unit stores classification and / or localization results of the convolution network
  • a second storage unit stores parameters of the convolution network
  • a third storage unit stores at least one look-up table for transformations with which a series of measurements is preprocessed
  • the multi-core processor reads and / or writes to the storage units during the execution of the convolution network.
  • Multi-core processors achieve higher computing power and are cheaper to implement in a chip compared to multi-processor systems in which each individual core is arranged in a processor socket and the individual processor sockets are arranged on a motherboard.
  • the individual processors are, for example, central processors, so-called central processing units, abbreviated CPU.
  • the central processors have a 64-bit architecture, for example.
  • the first storage unit stores, for example, the predictions of the convolution network from its output layer.
  • the first memory unit is, for example, a local memory unit, abbreviated LMU.
  • the local memory unit comprises hardware interfaces to a CPU core, for example via so-called shared resource interconnection, abbreviated SRI, connections.
  • the multi-core processor comprises four processor cores, each of which calculates the convolution network and thereby executes the method according to the invention.
  • the individual predictions of the processor cores, obtained after the respective execution of the convolution network, are stored in the first memory unit and, for example, on a first of the four processor cores and, for this purpose, redundantly on a second of the four processor cores plausibility checked. This increases operational reliability in accordance with the ISO 26262 standard and the final prediction can be validated, in particular through the detection of a siren signal.
  • Parameters of the convolution network include, for example, weights for connections from nodes of the convolution network.
  • the second memory unit is also a local memory unit, for example.
  • the first and second memory units each have a size of 512 kB, for example.
  • the third memory unit is, for example, a local memory unit distributed over the individual processor cores, also called distributed local memory unit, abbreviated DLMU.
  • the third memory unit has a size of 64 kB, for example. This increases the performance of read and write operations on the memory area.
  • the fourth memory unit is, for example, a so-called data scratchpad ram main memory, abbreviated DSPR.
  • the fourth memory unit has a size of 96 kB, for example.
  • each processor core of the multi-core processor comprises its own DSPR memory unit.
  • a scratchpad memory is a processor core of internal high-speed memory. This accelerates the temporary storage of the convolution images and the discretized convolution images.
  • the fourth memory unit comprises a first and a second buffer memory.
  • the first buffer stores inputs for layers of the convolution network.
  • the second buffer stores outputs from the layers.
  • the first buffer has a size of 26.25 kB and stores the entries for the first, fourth, sixth and eighth layers of the convolution network.
  • the second buffer has, for example, a size of 16.25 kB and stores the outputs of the second, fourth, sixth and eighth shift. This improves the storage process, the reading and writing of the storage area in the individual layers of the convolution network.
  • the microcontroller is, for example, a microcontroller from the Infineon Automotive Realtime Integrated NeXT Generation Architecture family, AURIX for short.
  • Automated operable vehicle for example with internal combustion engine, electrical Shem drive, hybrid electric vehicles or fuel cell vehicles, preferably road vehicles with one of these drive technologies, include technical equipment to control the vehicle to cope with driver tasks.
  • the invention for driving functions of Levels SAE J3016 Level 2 to Level 5 used.
  • the multi-core processor includes, for example, four processor cores, one for each acoustic sensor.
  • the results are merged as follows, for example: Using beam finder and beam tracker algorithms, each processor core detects the stem frequencies of the siren signal starting from the ceptrum by executing the convolution network and the method according to the invention. A detection occurs when a jump in frequency is detected between successive detected frequencies. For example, a first processor core evaluates the audio data of an acoustic sensor arranged on the front left of the vehicle and a second processor core correspondingly evaluates the audio data of an acoustic sensor arranged on the front right of the vehicle.
  • a third processor core evaluates the audio data of an acoustic sensor arranged on the rear left of the vehicle and a fourth processor core correspondingly evaluates the audio data of an acoustic sensor arranged on the rear right of the vehicle.
  • the detections of the first, second, third and fourth processor core are merged in a first fusion result on the first processor core.
  • a redundancy is achieved by the first and second merger result, which is advantageous in terms of operational safety in accordance with the ISO 26262 standard.
  • the first and second fusion results are checked for plausibility on the first processor core.
  • a front direction angle on the first processor core determines a front direction angle on the first processor core.
  • a rearward direction angle is determined on the third processor core. The results of the front and rear direction angle determination are merged on the first processor core and a direction determination is obtained from which the siren signal arrives.
  • cepstrum it is determined on the basis of the siren signal whether an emergency vehicle is approaching or moving away relative to the host vehicle, for example according to the disclosure of the application DE 10 2019 213 697.4, the content of which is explicitly stated here with regard to the detection of approaching or removal of an audio signal source by means of cepstrums Reference is included.
  • FIG. 3 shows a schematic representation of the buffering according to the invention for maxpooling
  • FIG. 6 shows an embodiment of an output image of a first layer of the folding network
  • FIG. 7 shows an exemplary embodiment of a memory area of a computer system according to the invention and 8 to 18 exemplary embodiments of a method according to the invention in respective layers of an exemplary embodiment of a convolution network.
  • Fig. 1 shows, for example, an input image for a convolution network F.
  • the input image comprises X Y pixels.
  • a first filter 31, also convolutional, for short conv., Filter kernel of the dimension or size V ⁇ U pixels is applied to this input image.
  • the convolution image has the size (X- (V-1)) x (Y- (U-1)) pixels.
  • This convolution image is now discretized with a second filter 32, for example maxpooling kernel of size T x S.
  • the resulting image has the size [(X- (V-1)) / T] x [(Y- (U-1) ) / S] pixels.
  • any number of kernel filters is used in each layer of the convolution network F.
  • U is the update rate in the x direction. After the update rate U, new data is added to the measurement series.
  • the new input image for the convolution network is shown. If the first filter 31 of size V x U runs over the new input image, it only has to run over [U + (V-1)] x Y, since the results of the remaining area have already been calculated in the previous step.
  • the hatched area of the right sketch is the result of the first filter 31 over the hatched area of the left sketch. All values that are contained in the non-hatched area of the right-hand sketch have already been calculated and can therefore be called up from an intermediate memory, for example from a memory area of a fourth memory unit DSPR of a microcontroller.
  • FIG. 3 shows which values of a following second filter, the maxpooling kernel, have to be recalculated and which values can be accessed via the buffer.
  • FIGS. 2 and 4 the principle of FIGS. 2 and 4 is repeatedly applied to subsequent layers of the convolution network, see FIGS. 8 to 18.
  • FIG. 4 An example of the method according to the invention is shown in FIG. 4.
  • a first procedural step V1 a first image is used as input for the convolution network F from an interval R of a series of measurements of at least one surroundings detection sensor and a second image of the same size as the first image is used as input for the convolution network F obtained from the interval R of the measurement series updated by an update variable U.
  • the first and second images are input into the convolution network F, folded with at least the first filter 31 and a first and second convolution image are obtained.
  • a first dimension of the first convolution image is reduced by the update size U and the reduced first convolution image is stored in a first memory area of a computer system in a third method step V3.
  • the first filter 31 is applied in the first dimension of the second image, restricted to the sum of the update size U and a corresponding dimension of the first filter 31 reduced by a step size of the first filter 31 and obtain values of the reduced first convolution image from the first memory area.
  • the 5 shows a Mel Frequency Cepstrum Coefficient representation of audio data of at least one acoustic sensor that detects traffic noise.
  • This representation is the first and second images that are entered into the convolution network.
  • the x-axis is the time t axis.
  • the features f of the frequency spectrum are plotted on the y-axis.
  • the image size is 32 x 100 pixels. 10 pixels correspond to 100 ms.
  • the update size U is 100 ms.
  • the interval R is 1 s, which means that new data is added every 100 ms and the interval shifts to the left by 100 ms in the positive time direction.
  • 6 shows the result image of the first layer of the convolution network F.
  • the area W of the image that is to say reuse, is reused from a previous output. Only one area C, i.e. calculation, has to be recalculated.
  • the memory unit of the microcontroller includes a first memory unit LMUO which, among other things, stores classification and / or localization results of the convolution network F.
  • a second memory unit LMU1 stores parameters P of the convolution network F.
  • the first and second memory units are designed, for example, as local memory units and have a size of 512 kB. About 485 kB are required to save the results and the parameters.
  • a third storage unit DLMU stores at least one look-up table for transformations with which a series of measurements is preprocessed, for example Fourier transformations and coefficients.
  • the third memory unit is designed as a distributed local memory unit. The method requires approx.
  • a fourth storage unit DSPR stores the convolutional images and discretized convolutional images.
  • the fourth memory unit is designed, for example, as a data scratchpad ram main memory. The method requires approx. 78 kB of the 96 kB provided by the third storage unit, for example.
  • the fourth storage unit DSPR comprises a storage unit 21 with a size of 3 kB for storing the input images of the convolution network F.
  • the fourth storage unit DSPR comprises a first buffer 23 of size 26.25 kB and a second buffer 24 of size 16.25 kB.
  • the first buffer store 23 stores inputs for layers of the convolution network F and the second buffer store 24 stores outputs of the layers. This includes results from previous layers as described for FIGS. 2 and 3.
  • the memory unit comprises a further memory unit 22.
  • the memory unit 22 is, for example, an expanded memory, abbreviated EMEM.
  • An exemplary layer structure of the convolution network is shown in FIGS. 8 to 18.
  • the zeroth layer LO is the input layer of the convolution network F.
  • the 32 x 12 pixel image is read from the storage unit 21, entered into the convolution network F and convoluted 3 x 3 with the first filter. For example, 64 first 3 x 3 filters are applied to the 32 x 12 pixel image. This means that 64 images of the size 30 ⁇ 10 are created. Each pixel of these images is activated with the activation function A and the images obtained in this way are stored in the memory unit 22.
  • the output of the zeroth layer LO are 64 images with a size of 30 x 10 pixels.
  • the input is the 64 images with a size of 30 x 10 pixels from the storage unit 22. These are discretized with the second filter 32, a maxpooling kernel with a size of 2 x 2 pixels. 64 images with a size of 15 x 5 pixels are obtained.
  • the results in the most up-to-date area which corresponds to the dimension of the filter kernel reduced by the step size of the filter kernel, are displayed corresponds to, cached. That is 64 pictures of the size 15 x 2 pixels.
  • 64 images of the size 15 ⁇ 7 pixels are then obtained and stored in the first buffer memory 23.
  • the output of the first layer L1 is 64 images with a size of 15 x 7 pixels.
  • Fig. 10 shows the second layer L2.
  • the input is the 64 images of the size 15 x 7 pixels from the first buffer memory 23. These are convoluted with the first filter 31, the 3 x 3 kernel filter. 64 images with a size of 13 x 5 pixels are obtained. Each pixel of these images is activated with the activation function A and the images obtained in this way are stored in the second buffer memory 24.
  • the output of the second layer L2 is 64 images with a size of 13 x 5 pixels.
  • 11 shows the third layer L3.
  • the input is the 64 images with a size of 13 x 5 pixels from the second buffer memory 24. These are discretized with the second filter 32, a maxpooling kernel with a size of 2 x 3 pixels. 64 images with a size of 7 x 2 pixels are obtained.
  • the results in the most current area are displayed of the filter kernel, cached. That is 64 pictures of the size 7 x 2 pixels. 64 images of the size 7 ⁇ 4 pixels are then obtained and stored in the first buffer memory 23.
  • the output of the third layer L3 is 64 images with a size of 7 x 4 pixels.
  • Fig. 12 shows the fourth layer L4.
  • the input is the 64 images of the size 7 x 4 pixels from the first buffer memory 23. These are convoluted with the first filter 31, the 3 x 3 kernel filter. 64 images with a size of 5 x 2 pixels are obtained. Each pixel of these images is activated with the activation function A and the images obtained in this way are stored in the second buffer memory 24.
  • the output of the fourth layer L4 is 64 images with a size of 5 x 2 pixels.
  • the input is the 64 images with a size of 5 x 2 pixels from the second buffer memory 24. These are discretized with the second filter 32, a maxpooling kernel with a size of 2 x 3 pixels. 64 images with a size of 3 x 1 pixels are obtained.
  • the results in the most current area are displayed Filter kernels, cached. That is 64 pictures of the size 3 x 2 pixels. 64 images of the size 3 ⁇ 3 pixels are then obtained and stored in the first buffer memory 23.
  • the output of the fifth layer L5 is 64 images with a size of 3 x 3 pixels.
  • 14 shows the sixth layer L6.
  • the input is the 64 images of the size 3 x 3 pixels from the first buffer memory 23. These are convoluted with the first filter 31, the 3 x 3 kernel filter. 64 images with a size of 1 x 1 pixel are obtained. Each pixel of these images is activated with the activation function A and the images obtained in this way are stored in the second buffer memory 24.
  • the output of the sixth layer L6 is 64 images with a size of 1 x 1 pixel.
  • Fig. 15 shows the seventh layer L7.
  • the input is the 64 images of the size 1 x 1 pixel from the second buffer memory 24. These are discretized with the second filter 32, a maxpooling kernel of the size 2 x 2 pixels. 64 images with a size of 1 x 1 pixel are obtained.
  • the results in the most current area which corresponds to the dimension of the reduced by the step size of the filter kernel, are displayed Filter kernels, cached. That is 64 pictures of the size 1 x 1 pixel.
  • 64 images with a size of 1 ⁇ 2 pixels are then obtained and stored in the first buffer memory 23.
  • the output of the seventh layer L7 are 64 images with a size of 1 ⁇ 2 pixels.
  • the 16 shows the eighth layer L8.
  • the input is the 64 images of the size 1 x 2 pixels from the first buffer memory 23. These are flattened. 64 rows or column vectors with 128 entries each are obtained. The vectors are transformed into numerical values with a corresponding matrix multiplication M. 64 numerical values are obtained and stored in the second buffer memory 24. The output of the eighth layer L8 is 64 numerical values.
  • the eighth layer is a dense layer.
  • FIG. 17 shows the ninth layer L9, which, analogously to the eighth layer L8, is a dense layer.
  • the input of the ninth layer L9 is 64 numerical values.
  • Output O of the ninth layer L9 are also 64 numerical values.
  • 18 shows the tenth layer L10.
  • the tenth layer L10 is the output layer of the convolution network F.
  • the output O is a prediction of a detected siren signal.
  • the prediction is stored in the first memory unit LMUO.

Landscapes

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

Abstract

Die Erfindung bezieht sich auf ein computerimplementiertes Verfahren zur Berechnung von Faltungsnetzwerken, auf ein Computerprogramm und ein automatisiert betreibbares Fahrzeug. Die Erfindung befasst sich mit der Berechnung von Faltungsnetzwerken auf Mikrokontrollern.

Description

Computerimplementiertes Verfahren zur Berechnung von Faltunqsnetzwerken, Computersvstem, Computerproqramm und automatisiert betreibbares Fahrzeug
Die Erfindung bezieht sich auf ein computerimplementiertes Verfahren zur Berech nung von Faltungsnetzwerken, auf ein Computersystem, auf ein Computerprogramm und auf ein automatisiert betreibbares Fahrzeug.
Aus dem Stand der Technik sind Faltungsnetzwerke, im Englischen convolutional neu ral networks, bekannt, siehe beispielsweise „Gradient-Based Learning Applied to Document Recognition, ILA. Convolutional Networks“, Y. LeCun et al., Proc. of the IEEE, November 1998.
Aus dem Stand der Technik sind auch Computersysteme bekannt, beispielsweise Sys- tems-on-a-Chip oder Mikrokontroller.
Ein Mikrocontroller hat eine relativ begrenzte Rechen- und Speicherkapazität. Dies macht die Anwendung von künstlichen neuronalen Netzen schwierig, weil zu der Be rechnung des Outputs des künstlichen neuronalen Netzwerks viele Rechenoperatio nen benötigt werden. Dies ist abhängig von der Architektur des künstlichen neuronalen Netzwerks. Im Allgemeinen wirkt sich die Größe des Netzes positiv auf die Fähigkeit zur Klassifikation und/oder Lokalisation aus.
Aufgabe der Erfindung war es, wie ein möglichst großes künstliches neuronales Netzwerk, das viele Rechenoperationen benötigt, auf einem Mikrokontroller lauffähig ausgeführt werden kann.
Die Erfindung löst diese Aufgabe durch das Einsparen von Rechenschritten. Damit können wesentlich größere künstliche neuronale Netze auf Computersystemen mit begrenzten Rechen- und Speicherkapazität ausgeführt werden und gleichzeitig bes sere Klassifikations- und/oder Lokalisationsergebnisse erhalten werden. Erfindungs gemäß werden bei der Ausführung eines künstlichen neuronalen Netzwerks Zwi schenergebnisse an den richtigen Stellen in hidden-layers des künstlichen neurona len Netzwerks gemerkt, das heißt zwischengespeichert, um diese Ergebnisse der Vergangenheit wiederzuverwenden und so mit weniger Rechenschritten ein Erken nungsergebnis zu ermitteln.
Gemäß einem Aspekt stellt die Erfindung ein computerimplementiertes Verfahren zur Berechnung von Faltungsnetzwerken bereit. Das Verfahren umfassend die Schritte:
• Erhalten eines ersten Bildes als Eingabe für ein Faltungsnetzwerk aus einem Intervall einer Messreihe wenigstens eines Umfelderfassungssensors und Er halten eines zu dem ersten Bild gleichgroßen zweiten Bildes als Ein-gabe für das Faltungsnetzwerk aus dem Intervall der um eine Aktualisierungsgröße ak tualisierten Messreihe,
• Eingeben des ersten und zweiten Bildes in das Faltungsnetzwerk, Falten des ersten und zweiten Bildes mit wenigstens einem ersten Filter in einer ersten Schicht des Faltungsnetzwerks, und Erhalten eines ersten und zweiten Fal tungsbildes, wobei
• eine erste Dimension des ersten Faltungsbildes um die Aktualisierungsgröße reduziert und das reduzierte erste Faltungsbild in einem ersten Speicher-be- reich eines Computersystems gespeichert wird, und
• bei dem Falten des zweiten Bildes der erste Filter in der ersten Dimension des zweiten Bildes eingeschränkt auf die Summe der Aktualisierungsgröße und ei ner um eine Schriftgröße des ersten Filters verminderten entsprechenden Di mension des ersten Filters angewendet wird und Werte des reduzierten ersten Faltungsbildes aus dem ersten Speicherbereich erhalten werden.
Gemäß einem weiteren Aspekt stellt die Erfindung ein Computersystem bereit. Das Computersystem umfasst wenigstens eine Prozessoreinheit und einen Speicherbe reich. Die Prozessoreinheit und der Speicherbereich sind so angepasst, dass das Computersystem ein Faltungsnetzwerk und die Schritte des erfindungsgemäßen Ver fahrens ausführen kann.
Gemäß einem weiteren Aspekt stellt die Erfindung ein Computerprogramm bereit. Das Computerprogramm umfasst Befehle, die bei der Ausführung des Computerpro gramms durch ein erfindungsgemäßes Computersystem dieses veranlassen, die Schritte des erfindungsgemäßen Verfahrens und dabei ein Faltungsnetzwerk auszu führen.
Gemäß einem weiteren Aspekt stellt die Erfindung ein automatisiert betreibbares Fahrzeug bereit. Das Fahrzeug umfasst
• wenigstens vier Akustiksensoren, die Akustiksensoren angeordnet in einem vorderen und hinteren jeweiligen rechten und linken Bereich des Fahrzeuges und
• ein erfindungsgemäßes Computersystem ausgeführt als Mikrokontroller, der Signale von den Akustiksensoren erhält,
• wobei ein Mehrkernprozessor des Computersystems wenigstens vier Kerne umfasst und jeder Kern ein Faltungsnetzwerk und die Schritte des erfindungs gemäßen Verfahrens jeweils basierend auf Signalen eines der Akustiksenso ren ausführt und die Ergebnisse fusioniert werden.
Weitere Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen, den Zeichnungen und der Beschreibung bevorzugter Ausführungsbeispiele.
Computerimplementiert bedeutet, dass die Schritte des Verfahrens von einer Daten verarbeitungsvorrichtung, beispielsweise einem Computersystem, oder Teilen davon ausgeführt werden. Nach einem Aspekt der Erfindung wird das Verfahren auf einem Mikrokontroller durchgeführt.
Die Befehle des Computerprogramms umfassen Softwarecodeabschnitte, Maschi nencode oder Binärcode.
Gemäß einem weiteren Aspekt stellt die Erfindung einen computerlesbareren Daten träger bereit, auf dem das erfindungsgemäße Computerprogramm gespeichert ist. Der Datenträger ist beispielsweise ein SSD, volatiler, RAM, nicht volatiler, ROM, oder Flash Datenträger.
Das Computersystem ist nach einem Aspekt der Erfindung ein Ein-Chip-System, auch System-on-a-Chip genannt. Bei einem Ein-Chip-System, beispielsweise einem Ein-Chip-Computersystem, sind alle oder zumindest ein großer Teil der Funktionen eines programmierbaren elektronischen Systems, beispielsweise eines Computers, auf einem Chip, das heißt einem Die, integriert.
Das Faltungsnetzwerk umfasst nach einem Aspekt der Erfindung folgenden Aufbau:
In eine Eingangsschicht wird ein Bild eingegeben. Das Bild ist beispielsweise in einer Speichereinheit des Mikrokontrollers gespeichert. Diese Speichereinheit wird auch Image Buffer genannt. Der Image Buffer speichert und stellt bereit die Eingaben für die erste Schicht des Faltungsnetzwerks. Nach einem Aspekt der Erfindung umfasst der Mikrokontroller zwei Image Buffer, einen aktiven, aus dem aktuell ausgelesen wird, und einen passiven zur Zwischenspeicherung.
Das Bild wird mit Filterkernel gefaltet und in seinen Dimensionen verkleinert. Bei spielsweise werden mehrere verschiedene Filterkernel angewendet, um verschie dene Merkmale zu filtern oder verschiedene Bereiche des Eingangsbildes unter schiedlich zu gewichten. Beispielsweise werden 10, 20, 30, 40, 50, 60, 70, 80, 90 o- der 100 Filterkernel angewendet. Nach einem Aspekt der Erfindung werden 64 Filter kernel angewendet. Die Filterkernel umfassen beispielsweise Sobel- oder Scharr- Operatoren, um in dem Eingangsbild sogenannte low-level-features zu klassifizieren, beispielsweise Kanten. Aus dem Eingangsbild werden damit beispielsweise 64 Fal tungsbilder erhalten. Die Parameter der Filterkernel sind beispielsweise in einer zwei ten Speichereinheit des Mikrokontrollers gespeichert und werden aus dieser ausgele sen.
Anschließend werden Neuronenverbindungen des Faltungsnetzwerks zu jedem Bild punkt, das heißt Pixel, der erhaltenen Faltungsbilder mit Aktivierungsfunktionen akti viert. Die Aktivierungsfunktion ist beispielsweise eine sogenannte, dem Fachmann bekannte, rectifier Funktion. Die Ausgabe einer rectifier Funktion ist das Maximum aus Eingabe und Null. Beispielsweise sind die Aktivierungsfunktionen für jeden Pixel rectifier Funktionen, das heißt das Faltungsnetzwerk umfasst sogenannte rectifier li near units. Nach einem weiteren Aspekt der Erfindung sind werden auf unterschiedli che Pixel einzeln oder gruppenweise verschiedene Aktivierungsfunktionen angewendet. Die Aktivierungsergebnisse werden gespeichert und sind Eingabe für weitere Berechnungen in den folgenden Schichten des Faltungsnetzwerks.
In einer daran anschließenden ersten Schicht werden die Aktivierungsergebnisse, das sind erneut Bilder, ausgelesen und die Dimensionen der Ausgaben der Ein gangsschicht jeweils mit maxpooling verkleinert. Die Ergebnisse nach dem maxpoo- ling werden beispielsweise in einem Speicherbereich einer vierten Speichereinheit des Mikrokontrollers zwischengespeichert. In einer Ausgabe der ersten Schicht wer den für die anschließende aktuelle Berechnung in der folgenden zweiten Schicht in dem jeweiligen zeitlichen vorherigen gefalteten Bild der zweiten Schicht die Ergeb nisse in dem aktuellsten Bereich, welcher der um die Schrittgröße des Filterkernels verminderten entsprechenden Dimension des Filterkernels entspricht, zwischenge speichert. Diese Ergebnisse werden dann bei der anschließenden aktuellen Faltung in der zweiten Schicht ausgelesen und nicht mehr neu berechnet. Dadurch wird Re chenzeit vorteilhafterweise eingespart.
In einer daran anschließenden zweiten Schicht werden die Ausgaben der ersten Schicht aus dem Zwischenspeicher ausgelesen und mit dem Filterkernel gefaltet. Da bei werden die Dimensionen nochmals verkleinert. Anschließend werden Neuronen verbindungen zu jedem Bildpunkt, das heißt Pixel, der nun erhaltenen Faltungsbilder durch rectifier linear units aktiviert und die Aktivierungsergebnisse zwischengespei chert.
Maxpooling und Zwischenspeichern, erneutes Falten und Zwischenspeichern werden in daran anschließenden dritten bis sechsten Schichten alternierend ausgeführt, wo bei sich die Dimensionen der in den Schichten erhaltenen Bilder von Schicht zu Schicht verkleinern, bis schließlich die sechste Schicht Bilder der Dimension 1x1 , das heißt 1x1 Pixel in x- und y- Richtung, ausgibt.
In der siebten Schicht erfolgt eine Zwischenspeicherung, um in einer vollständig ver bundenen Schicht Assoziationen zwischen allen Pixeln aller Bilder zu erfassen. Dies wird auch dense genannt. In einer daran anschließenden achten Schicht werden die Ausgaben der siebten Schicht linearisiert mittels sogenanntem flatten. Geflattet wird beispielsweise mit der dem Fachmann bekannten Softmax-Funktion. Dabei ist jeder Knoten des Faltungs netzwerks dieser Schicht mit jedem Pixel der eingegebenen Bilder verbunden und mit Softmax-Funktion aktiviert. Die achte Schicht ist ein sogenannter dense layer. Die Ausgabe der achten Schicht sind beispielsweise 64 Zahlenwerte.
Nach einem Aspekt der Erfindung umfasst die Schicht unmittelbar vor der Ausgabe schicht des Faltungsnetzwerks mehrere dense layer, beispielsweise acht.
Eine daran anschließende neunte Schicht ist wieder ein dense layer.
Daran schließt sich eine Ausgabeschicht an, die beispielsweise eine Vorhersage über ein klassifiziertes und/oder lokalisiertes Sirenensignal liefert.
Die erste bis achte Schicht sind zwischen Ein- und Ausgang versteckte Schichten und werden hidden layers genannt.
Nach einem weiteren Aspekt der Erfindung umfasst das Faltungsnetzwerk rekurrente Schichten, beispielsweise long-short-term-memories, um sich Zwischenergebnisse zu merken.
Die Messreihe umfasst zu einem ersten Zeitpunkt erste Daten und wird in jeder Aktu alisierung mit weiteren Daten erweitert. Pro Aktualisierung erfolgt eine Ausgabe des Faltungsnetzwerks. Das Intervall, aus dem die Daten erhalten werden, um das erste und zweite Bild aufzubereiten, hat eine feste Breite. Das heißt, das zweite, aktuali sierte Intervall umfasst noch teilweise die ersten Daten, abhängig von der Aktualisie rungsgröße. Beispielsweise umfasst die Messreihe Audiodaten. Das Faltungsnetz werk ist trainiert, in den Audiodaten Sirenen von Einsatzfahrzeugen zu klassifizieren und/oder lokalisieren. In Deutschland sind die Sirenengeräusche von Einsatzfahrzeu gen in der Norm DIN 14610 spezifiziert. Das Sirenengeräusch umfasst zwei Stamm frequenzen im Bereich zwischen 360 Hz und 630 Hz im Verhältnis 1:1 .333, die in ei ner normierten Reihenfolge alternieren. Zwischen aufeinanderfolgenden Sirenenzyklen liegt eine Zeitspanne von 3+/- 0.5 s. Jeder Ton hat eine Dauer von 0.75 s. Das Sirenensignal ist ein zeitdiskretes Signal. Das Intervall hat die Breite von 1 s. Dies ist ausreichend, um die Sirenentöne zu erfassen. Die Aktualisierungsgröße beträgt 100 ms. Dies bedeutet, dass je Aktualisierung die ersten 90% eines Bildes zum Folgenden gleich sind. Es kommen nur 10% neue Daten hinzu. Das heißt, in diesem Beispiel stimmt das zweite Bild zu 90% mit dem ersten Bild überein. Diese Überschneidung ermöglicht die Wiederverwendung von Zwischenergebnissen.
Umfelderfassungssensors sind Sensoren, mit denen ein autonomes System, bei spielsweise ein Roboter, ein Roboterfahrzeug, oder auch teilautomatisierte Fahr zeuge, sein Umfeld erfasst, um das Umfeld wahrzunehmen und sich darin zu bewe gen. Beispielsweise ist ein Akustiksensor ein Umfelderfassungssensor, der Schall wellen aus dem Umfeld erfasst. Analog ist ein Ultraschallsensor ein Umfelderfas sungssensor. Umfelderfassungssensoren umfassen beispielsweise auch Strahlen sensoren, die ein Umfeld mit Strahlen abtasten oder scannen. Beispielsweise ist ein Radar, ein Lidar oder eine time-of-flight Kamera ein Strahlensensor.
Die ersten und zweiten Bilder sind beispielsweise zweidimensionale Pixelarrays. Eine erste Dimension ist beispielsweise in eine x-Richtung eines kartesischen Koordina tensystems aufgespannt. Eine zweite Dimension ist beispielsweise in eine y-Richtung eines kartesischen Koordinatensystems aufgespannt.
Beim Falten bewegen sich Filterkernel über die Bilder von links nach rechts bezogen auf die x-Richtung und von oben nach unten bezogen auf die y-Richtung. Bei jeder Bewegung ändern sich Pixelspalten/-zeilen. Die Schriftgröße des Filterkernels, auch stride size genannt, gibt an, wie weit sich der Filterkernel von Anwendung zu Anwen dung weiterbewegt. Nach einem Aspekt der Erfindung beträgt die Schriftgröße 1. Das heißt, bei jeder Anwendung des Filterkernels ändert sich eine Pixelspalte/-zeile im Eingangsbild. Wenn das erste und das zweite Bild, auch Eingangsbild jeweils ge nannt, jeweils die Dimension AxB haben, der Filterkernel die Dimension UxV, dann hat das resultierende Faltungsbild bei einer Schriftgröße von 1 die Dimension [A-(U- 1 )]x[B-(V-1 )]. Das heißt, das Faltungsbild ist in der Dimension reduziert. A, U, und A-(U-1) geben die Ausdehnung, das heißt Anzahl Pixel, in y-Richtung an, was den Zeilen eines Pixelarrays entspricht. B, V, und B-(V-1 ) geben die Ausdehnung, das heißt Anzahl Pixel, in x-Richtung an, was den Spalten eines Pixelarrays ent spricht.
Die ersten und zweiten Bilder werden beispielsweise folgendermaßen jeweils erhal ten: Die mit Akustiksensoren detektierten Sirenensignale werden mittels eines Algo rithmus in ihre Frequenzanteile zerlegt, beispielsweise mittels schneller Fourier- Transformation, abgekürzt FFT. Aus dem so erhaltenen Frequenzspektrum werden Mel-Frequenz-Cepstrum-Koeffizienten berechnet. Die ersten und zweiten Bilder sind eine Darstellung des Frequenzspektrums in Mel-Frequenz-Cepstrum-Koeffizienten. Die x-Richtung gibt dann die Zeit an. Die y-Richtung gibt die Merkmale an.
Das zweite Bild ist gleichgroß zu dem ersten Bild. Hat das erste Bild in x-Richtung beispielsweise eine Anzahl von B-Pixeln, dann hat nach Aktualisierung das zweite Bild in x-Richtung ebenfalls eine Anzahl von B-Pixeln. Entspricht die Aktualisierungs größe in x-Richtung beispielsweise einer Anzahl von US-Pixeln, dann sind in x-Rich- tung (B-US)-Pixel des zweiten Bildes identisch zu den entsprechenden Pixeln des ersten Bildes. Lediglich US-Pixel kommen zu den bekannten (B-US)-Pixeln in positi ver x-Richtung neu hinzu.
Eine erste Dimension des Faltungsbildes um die Aktualisierungsgröße zu reduzieren, bedeutet, dass das reduzierte Faltungsbild in x-Richtung eine Anzahl von [B-(V-1)- US]-Pixel umfasst, wobei B-(V-1) der Anzahl der Pixel des Faltungsbildes in x-Rich- tung und US der Aktualisierungsgröße in x-Richtung entsprechen.
Ein Vorteil der Erfindung ist es, dass bei dem Falten des zweiten Bildes der Filter kernel in x-Richtung nur über den Bereich [US+(V-1 )j angewendet werden braucht. Die Werte für den restlichen Bereich [B-(V-1)-US] sind aus dem reduzierten Faltungs bild bekannt und werden bei der Faltung des zweiten Bildes aus dem Speicherbe reich ausgelesen, ohne nochmal neu berechnet werden zu müssen. Damit wird Re chenleistung eingespart. Nach einem weiteren Aspekt der Erfindung werden das erste Faltungsbild und das zweite Faltungsbild in einer zweiten Schicht des Faltungsnetzwerkes jeweils diskreti- siert mit wenigstens einem zweiten Filter. Das diskretisierte erste Faltungsbild wird in der ersten Dimension reduziert und das reduzierte diskretisierte erste Faltungsbild in einem zweiten Speicherbereich des Computersystems gespeichert. Bei der Diskreti- sierung des zweiten Faltungsbildes wird der zweite Filter in der ersten Dimension des zweiten Faltungsbildes eingeschränkt auf die um die Aktualisierungsgröße vermin derte entsprechende Dimension des ersten Faltungsbildes angewendet wird, falls der Wert der um die Aktualisierungsgröße verminderten entsprechenden Dimension des ersten Faltungsbildes teilbar durch den Wert der entsprechenden Dimension des zweiten Filters ist. Andernfalls wird der zweite Filter in der ersten Dimension des zweiten Faltungsbildes eingeschränkt auf die um die Aktualisierungsgröße vermin derte entsprechende Dimension des ersten Faltungsbildes modulo dem Wert der Di mension des zweiten Filters angewendet wird. Werte des reduzierten diskretisierten ersten Faltungsbildes werden aus dem zweiten Speicherbereich erhalten.
Durch die Diskretisierung werden die Dimensionen der Faltungsbilder reduziert. Dies entspricht dem Reduzieren der Dimensionen der Eingangsbilder mittels Faltung.
Nach einem Aspekt der Erfindung wird mit maxpooling diskretisiert. Die Größe des maxpooling-Kernels ist nach einem Aspekt der Erfindung in den einzelnen Schichten des Faltungsnetzwerks unterschiedlich. Bei dem maxpooling Filter wird um die Größe des maxpooling-Kernels verschoben und dabei jeweils das Maximum in dem ent sprechenden Bereich des jeweiligen Eingangsbildes, hier die Faltungsbilder, ausge geben. Nach einem weiteren Aspekt der Erfindung wird bei dem maxpooling ein Zero-Padding verwendet. Dies bedeutet, dass in Zeilen und Spalten des maxpooling- Kernels jeweils Nullen eingetragen werden, bis die Dimension des maxpooling- Kernels der Dimension des Eingangsbildes entspricht. Damit wird vorteilhafterweise erreicht, dass jeder Pixel des Eingangsbildes, hier des Faltungsbildes, einmal im Zentrum des maxpooling-Kernels liegt, um die Pixel des Eingangsbildes möglichst homogen zu werten. Nach einem weiteren Aspekt der Erfindung werden das erste und zweite Bild mit mehreren ersten Filtern in der ersten Schicht gefaltet. Beispielsweise werden 64 erste Filter angewendet. Das heißt, aus dem ersten und zweiten Bild werden jeweils 64 Faltungsbilder erhalten. Mit mehreren ersten Filtern werden vorteilhafterweise mehrere low-level-features erfasst, was zu einem verbesserten Verständnis der ers ten und zweiten Bildern führt.
Nach einem weiteren Aspekt der Erfindung werden der wenigstens erste und/oder zweite Filter in mehreren Schichten angewendet werden um Bilder, die in die jeweili gen Schichten eingegeben werden, zu falten und/oder jeweilige Faltungsbilder zu diskretisieren. Die Messreihe wird mehrmals aktualisiert und das erfindungsgemäße Verfahren je Aktualisierungsgröße in jeder Schicht wiederholt.
Damit wird das erfindungsgemäße Verfahren auf größeren Faltungsnetzwerken aus geführt, beispielsweise in dem eingangs beispielhaft beschriebenen Faltungsnetz werk umfassend acht hidden layers. Das Verfahren wird also auf die nachkommen den Faltungs- und Maxpooling-Schichten des Faltungsnetzwerks angewendet. Nach einem Aspekt der Erfindung unterscheiden sich die Größen der ersten und/oder zweiten Filter in den jeweiligen Schichten des Faltungsnetzwerks. Erfindungsgemäß werden Ergebnisse der einzelnen Schichten zwischengespeichert.
Nach einem weiteren Aspekt der Erfindung umfasst das Computersystem einen Mikrokontroller. Die Messreihe umfasst Audiodaten wenigstens eines Verkehrsgeräu sche detektierenden Akustiksensors. Das erste und zweite Bild sind jeweils eine Mel Frequenz Cepstrum Koeffizienten Darstellung der Audiodaten.
Ein Mikrokontroller ist ein Ein-Chip-Computersystem, das einen Prozessor, einen Speicherbereich umfassend Festwertspeicher und Schreib-Lesespeicher, eine Ein- gabe-Ausgabe-Fähigkeit und Peripheriefunktionen umfasst. Die einzelnen Elemente sind über ein Bussystem miteinander Signal übertragend verbunden. Die Peripherie umfasst Ein- und Ausgabegeräte, externe Speicher und die entsprechenden Schnitt stellen. Peripheriefunktionen sind beispielsweise Controller Area Network, abgekürzt CAN, Local Interconnect Network, abgekürzt LIN, Universal Serial Bus, abgekürzt USB, serielle oder Ethernet-Schnittstellen.
Nach einem Aspekt der Erfindung ist das Computersystem ein für den Einsatz im au- tomotive Bereich entwickelter Mikrokontroller eines Steuergeräts, auch electronic control unit genannt. Das Steuergerät bereitet Eingangssignale auf, verarbeitet diese mittels des Mikrokontrollers und stellt Logik- und/oder Leistungspegel als Regel und/oder Steuersignale bereit, insbesondere zum automatisierten Betrieb eines Fahr zeuges. Damit kann der Gegenstand der Erfindung vorteilhafterweise bei Fahrzeu gen eingesetzt werden.
Nach einem weiteren Aspekt der Erfindung ist das Faltungsnetzwerk trainiert, Ein satzgeräusche von Einsatzfahrzeugen zu klassifizieren und/oder zu lokalisieren, wo bei das Intervall der Messreihe, aus dem die Eingaben für das Faltungsnetzwerk er halten werden, eine Zeitspanne von 1 s umfasst und die Aktualisierungsgröße im Be reich von 10 ms bis 100 ms, vorzugsweise im Bereich von 50 ms bis 100 ms, liegt und besonders vorzugsweise 100 ms beträgt.
Damit können vorteilhafterweise größere rechenintensive künstliche neuronale Netz werke zur Sirenenerkennung und Richtungsbestimmung auf Mikrokontrollern in Echt zeit ausgeführt werden. Da die Ausgabe des Faltungsnetzwerks pro Aktualisierungs größe erfolgt, ist ein weiterer Vorteil der Erfindung, dass bei einer Sirenenerkennung beliebig oft ausgegeben werden kann, ob aktuell eine Sirene zu hören ist. Wenn sich die Aktualisierungsgröße und damit das Ausgabeintervall beispielsweise auf 50 ms verringert, sind nur noch 5 % der Daten neu. Dementsprechend müssen weniger Operationen berechnet werden.
Trainieren ist ein Teilbereich des maschinellen Lernens, das heißt einer Technologie, die Computern und anderen Datenverarbeitungsvorrichtungen die Ausführung von Aufgaben durch Lernen aus Daten lehrt, anstatt für die Aufgaben programmiert zu werden. Nach einem Aspekt der Erfindung umfasst das Computersystem einen Mehrkernpro zessor. Der Speicherbereich umfasst wenigstens vier Speichereinheiten, wobei
• eine erste Speichereinheit Klassifikations- und/oder Lokalisationsergebnisse des Faltungsnetzwerkes speichert,
• eine zweite Speichereinheit Parameter des Faltungsnetzwerkes speichert,
• eine dritte Speichereinheit wenigstens eine Nachschlagtabelle für Transforma tionen, mit denen eine Messreihe vorprozessiert wird, speichert,
• und eine vierte Speichereinheit Faltungsbilder und diskretisierte Faltungsbilder speichert,
Der Mehrkernprozessor liest und/oder beschreibt die Speichereinheiten während der Ausführung des Faltungsnetzwerkes.
Bei einem Mehrkernprozessor sind mehrere Kerne auf einem einzigen Chip angeord net. Mehrkernprozessoren erreichen eine höhere Rechenleistung und sind kosten günstiger in einem Chip zu implementieren im Vergleich zu Mehrprozessorsystemen, bei denen jeder einzelne Kern in einem Prozessorsockel angeordnet ist und die ein zelnen Prozessorsockel auf einer Hauptplatine angeordnet sind. Die einzelnen Pro zessoren sind beispielsweise Zentralprozessoren, sogenannte central Processing units, abgekürzt CPU. Die Zentralprozessoren haben beispielsweise eine 64-bit Ar chitektur.
Die erste Speichereinheit speichert beispielsweise die Vorhersagen des Faltungs netzwerkes aus dessen Ausgabeschicht. Die erste Speichereinheit ist beispielsweise eine local memory unit, abgekürzt LMU. Die local memory unit umfasst Hardware schnittstellen zu einem CPU-Kern, beispielsweise über sogenannte shared resource interconnection, abgekürzt SRI, Anschlüsse.
Nach einem Aspekt der Erfindung umfasst der Mehrkernprozessor vier Prozessor kerne, von denen jeder einzelne das Faltungsnetzwerk berechnet und dabei das er findungsgemäße Verfahren ausführt. Die einzelnen Vorhersagen der Prozessor kerne, erhalten nach jeweiliger Ausführung des Faltungsnetzwerks, werden in der ersten Speichereinheit gespeichert und beispielsweise auf einem ersten der vier Pro zessorkerne und hierzu redundant auf einem zweiten der vier Prozessorkerne plausibilisiert. Damit wird die Betriebssicherheit im Sinne der Norm ISO 26262 erhöht und die finale Vorhersage, insbesondere über Erkennung eines Sirenensignals, vali dierbar.
Parameter des Faltungsnetzwerks umfassen beispielsweise Gewichte für Verbindun gen von Knoten des Faltungsnetzwerks.
Die zweite Speichereinheit ist beispielsweise auch eine local memory unit.
Die erste und die zweite Speichereinheit haben beispielsweise eine Größe von je weils 512 kB.
Die dritte Speichereinheit ist beispielsweise eine auf die einzelnen Prozessorkerne verteilte local memory unit, auch distributed local memory unit genannt, abgekürzt DLMU. Die dritte Speichereinheit hat beispielsweise eine Größe von 64 kB. Damit wird die Performanz von Lese- und Schreibvorgängen auf dem Speicherbereich er höht.
Die vierte Speichereinheit ist beispielsweise ein sogenannter Data-Scratchpad-Ram- Arbeitsspeicher, abgekürzt DSPR. Die vierte Speichereinheit hat beispielsweise eine Größe von 96 kB. Damit Nach einem Aspekt der Erfindung umfasst jeder Prozessor kern des Mehrkernprozessors eine eigene DSPR-Speichereinheit. Ein Scratchpad- Speicher ist ein Prozessorkern interner Hochgeschwindigkeitsspeicher. Dadurch wird das Zwischenspeichern der Faltungsbilder und der diskretisierten Faltungsbilder vor teilhafterweise beschleunigt.
Nach einem weiteren Aspekt der Erfindung umfasst die vierte Speichereinheit einen ersten und zweiten Zwischenspeicher. Der erste Zwischenspeicher speichert Einga ben für Schichten des Faltungsnetzwerkes. Der zweite Zwischenspeicher speichert Ausgaben der Schichten. Beispielsweise hat der erste Zwischenspeicher eine Größe von 26.25 kB und speichert die Eingaben für die erste, vierte, sechste und achte Schicht des Faltungsnetzwerks. Der zweite Zwischenspeicher hat beispielsweise eine Größe von 16.25 kB und speichert die Ausgaben der zweiten, vierten, sechsten und achten Schicht. Dadurch wird der Speicherprozess, das Lesen und Schreiben des Speicherbereich in den einzelne Schichten des Faltungsnetzwerks, verbessert.
Der Mikrokontroller ist beispielsweise ein Mikrokontroller der Familie Infineon Auto motive Realtime Integrated NeXT Generation Architecture, abgekürzt AURIX.
Automatisiert betreibbare Fahrzeug, beispielsweise mit Verbrennungsmotor, elektri schem Antrieb, Hybridelektrofahrzeuge oder Brennstoffzellenfahrzeuge, vorzugs weise Straßenfahrzeuge mit einer dieser Antriebstechnologien, umfassen eine tech nische Ausrüstung, um das Fahrzeug zur Bewältigung von Fahreraufgaben zu steu ern. Nach einem Aspekt wird die Erfindung für Fahrfunktionen der Stufen SAE J3016 Level 2 bis Level 5 eingesetzt.
Der Mehrkernprozessor umfasst beispielsweise vier Prozessorkerne, für jeden Akus tiksensor einen. Die Ergebnisse werden beispielsweise folgendermaßen fusioniert: Mittels Beamfinder- und Beamtracker-Algorithmen detektiert jeder Prozessorkern durch jeweiliges Ausführung des Faltungsnetzwerks und des erfindungsgemäßen Verfahrens die Stammfrequenzen des Sirenensignals ausgehend von dem Cepst- rum. Eine Detektion liegt vor, wenn zwischen aufeinanderfolgenden detektierten Fre quenzen ein Sprung in der Frequenz detektiert wird. Beispielsweise wertet ein erster Prozessorkern die Audiodaten eines an dem Fahrzeug vorne links angeordneten Akustiksensors aus und ein zweiter Prozessorkern entsprechend die Audiodaten ei nes an dem Fahrzeug vorne rechts angeordneten Akustiksensors. Entsprechend wertet ein dritter Prozessorkern die Audiodaten eines an dem Fahrzeug hinten links angeordneten Akustiksensors aus und ein vierter Prozessorkern entsprechend die Audiodaten eines an dem Fahrzeug hinten rechts angeordneten Akustiksensors. Die Detektionen des ersten, zweiten, dritten und vierten Prozessorkerns werden in einem ersten Fusionsergebnis fusioniert auf dem ersten Prozessorkern. Entsprechend wer den die Detektionen des ersten, zweiten, dritten und vierten Prozessorkerns in einem zweiten Fusionsergebnis fusioniert auf dem zweiten Prozessorkern. Durch das erste und zweite Fusionsergebnis wird eine Redundanz erreicht, was vorteilhaft hinsichtlich Betriebssicherheit gemäß der Norm ISO 26262 ist. Die ersten und zweiten Fusions ergebnisse werden auf dem ersten Prozessorkern plausibilisiert. Ferner wird anhand der Audiodaten der im vorderen Bereich des Fahrzeuges angeordneten Akus tiksensoren ein Frontrichtungswinkel bestimmt auf dem ersten Prozessorkern. Ent sprechend wird anhand der Audiodaten der im hinteren Bereich des Fahrzeuges an geordneten Akustiksensoren ein Rückrichtungswinkel bestimmt auf dem dritten Pro zessorkern. Die Ergebnisse der Front- und Rückrichtungswinkel Bestimmung werden auf dem ersten Prozessorkern fusioniert und es wird eine Richtungsbestimmung er halten, aus der das Sirenensignal eintrifft. Mittels des Cepstrums wird anhand des Si renensignals bestimmt, ob ein Einsatzfahrzeug sich nähert oder entfernt relativ zu dem Egofahrzeug, beispielsweise gemäß der Offenbarung der Anmeldung DE 10 2019 213 697.4, deren Inhalt hinsichtlich Erkennen von Annähern oder Entfernen ei ner Audiosignalquelle mittels Cepstrums hier durch expliziten Verweis miteinge schlossen ist.
Die Erfindung wird in den folgenden Ausführungsbeispielen verdeutlicht. Es zeigen:
Fig. 1 eine schematische Darstellung der Operationen Falten und Maxpooling,
Fig. 2 eine schematische Darstellung des erfindungsgemäßen Zwischenspeicherns für die Faltung,
Fig. 3 eine schematische Darstellung des erfindungsgemäßen Zwischenspeicherns für das Maxpooling,
Fig. 4 eine schematische Darstellung eines erfindungsgemäßen Verfahrens,
Fig. 5 ein Ausführungsbeispiel eines Eingangsbildes für ein Faltungsnetzwerk,
Fig. 6 ein Ausführungsbeispiel eines Ausgangsbildes einer ersten Schicht des Fal tungsnetzwerks,
Fig. 7 ein Ausführungsbeispiel eines Speicherbereichs eines erfindungsgemäßen Computersystems und Fig. 8 bis 18 Ausführungsbeispiel eines erfindungsgemäßen Verfahrens in jeweiligen Schichten eines Ausführungsbeispiel eines Faltungsnetzwerks.
In den Figuren bezeichnen gleiche Bezugszeichen gleiche oder funktionsähnliche Bezugsteile. Übersichtshalber werden in den einzelnen Figuren nur die jeweils rele vanten Bezugsteile hervorgehoben.
Fig. 1 zeigt beispielsweise ein Eingangsbild für ein Faltungsnetzwerk F. Das Ein gangsbild umfasst X Y Pixel. Auf dieses Eingangsbild wird ein erster Filter 31 , auch konvolutionaler, abgekürzt conv., Filterkernel der Dimension oder Größe V x U Pixel angewendet. Bei einer Schrittgröße von 1 des ersten Filters 31 hat das Faltungsbild die Größe (X- (V-1 )) x (Y-(U-1 )) Pixel. Dieses Faltungsbild wird nun diskretisiert mit einem zweiten Filter 32, beispielsweise maxpooling Kernel der Größe T x S. Das re sultierende Bild hat die Größe [(X- (V-1 ))/T] x [(Y-(U-1 ))/S] Pixel. Nach einem Aspekt der Erfindung wird in jeder Schicht des Faltu ngsnetzwerks F eine beliebige Anzahl an Kernel Filter verwendet.
In Fig. 2 ist U die Aktualisierungsrate in x-Richtung. Nach der Aktualisierungsrate U kommen neue Daten in die Messreihe hinzu. Dargestellt ist das neue Eingangsbild für das Faltungsnetzwerk. Wenn nun der erste Filter 31 der Größe V x U über das neue Eingangsbild läuft, muss dieser nur über [U+(V-1 )] x Y laufen, da die Ergeb nisse des übrigen Bereichs schon im vorherigen Schritt berechnet worden sind. Der schraffierte Bereich der rechten Skizze ist das Ergebnis des ersten Filters 31 über den schraffierten Bereich der linken Skizze. Alle Werte, die im nicht schraffierten Be reich der rechten Skizze enthalten sind, wurden schon einmal berechnet und können daher aus einem Zwischenspeicher abgerufen werden, beispielsweise aus einem Speicherbereich einer vierten Speichereinheit DSPR eines Mikrokontrollers.
Analog zeigt Fig. 3, welche Werte eines folgenden zweiten Filters, dem maxpooling Kernel, neu berechnet werden müssen und auf welche Werte über den Zwischen speicher zugegriffen werden kann. Dabei ist ein Ergebnis M1 = [X-(V-1)]/T und ein Ergebnis M2 = [(X-(V-1 )-U)mod T + U]/T. Der linke Bereich der rechten Skizze, das entspricht der Differenz M1 - M2, ist schon einmal im Vorfeld berechnet worden und kann daher aus einem Zwischenspeicher abgerufen werden.
Das Prinzip der Fig. 2 und 4 wird erfindungsgemäß auf nachkommende Schichten des Faltungsnetzwerks wiederholt angewendet, siehe Fig. 8 bis 18.
Ein Beispiel des erfindungsgemäßen Verfahrens zeigt Fig. 4. In einem ersten Verfah rensschritt V1 werden ein ersten Bildes als Eingabe für das Faltungsnetzwerk F aus einem Intervall R einer Messreihe wenigstens eines Umfelderfassungssensors und Ereines zu dem ersten Bild gleichgroßen zweiten Bildes als Eingabe für das Fal tungsnetzwerk F aus dem Intervall R der um eine Aktualisierungsgröße U aktualisier ten Messreihe erhalten. In einem zweiten Verfahrensschritt V2 werden das erste und zweite Bildes in das Faltungsnetzwerk F eingegeben, mit wenigstens dem ersten Fil ter 31 gefaltet und ein erstes und zweites Faltungsbild erhalten. Eine erste Dimen sion des ersten Faltungsbildes wird um die Aktualisierungsgröße U reduziert und das reduzierte erste Faltungsbild wird in einem dritten Verfahrensschritt V3 in einem ers ten Speicherbereich eines Computersystems gespeichert. Bei dem Falten des zwei ten Bildes wird in einem vierten Verfahrensschritt V4 der erste Filter 31 in der ersten Dimension des zweiten Bildes eingeschränkt auf die Summe der Aktualisierungs größe U und einer um eine Schrittgröße des ersten Filters 31 verminderten entspre chenden Dimension des ersten Filters 31 angewendet und Werte des reduzierten ersten Faltungsbildes aus dem ersten Speicherbereich erhalten.
Fig. 5 zeigt eine Mel Frequenz Cepstrum Koeffizienten Darstellung von Audiodaten wenigstens eines Verkehrsgeräusche detektierenden Akustiksensors. Diese Darstel lung ist das erste und zweite Bild, die in das Faltungsnetzwerk eingegeben werden. Die x-Achse ist die Zeit t Achse. Auf der y-Achse werden die Merkmale f des Fre quenzspektrums aufgetragen. Die Bildgröße ist beispielsweise 32 x 100 Pixel. 10 Pi xel entsprechen 100 ms. Die Aktualisierungsgröße U beträgt 100 ms. Das Intervall R beträgt 1 s. Das heißt, alle 100 ms kommen neue Daten hinzu und das Intervall ver schiebt sich um 100 ms in positiver Zeitrichtung nach links. Fig. 6 zeigt das Ergebnisbild der ersten Schicht des Faltungsnetzwerks F. Der Be reich W des Bildes, das heißt Wiederverwendung, wird aus einer vorherigen Aus gabe wiederverwendet. Lediglich ein Bereich C, das heißt Berechnung, muss neu be rechnet werden.
Fig. 7 zeigt die erfindungsgemäße Speicherallokation in einem Mikrokontroller zur Berechnung eines Faltungsnetzwerks. Die Speichereinheit des Mikrokontrollers um fasst eine erste Speichereinheit LMUO, die unter anderem Klassifikations- und/oder Lokalisationsergebnisse des Faltungsnetzwerkes F speichert. Eine zweite Speicher einheit LMU1 speichert Parameter P des Faltungsnetzwerkes F. Die erste und zweite Speichereinheit sind beispielsweise ausgeführt als local memory units und besitzen eine Größe von 512 kB. Für das Speichern der Ergebnisse und der Parameter wer den ca. 485 kB benötigt. Eine dritte Speichereinheit DLMU speichert wenigstens eine Nachschlagtabelle für Transformationen, mit denen eine Messreihe vorprozessiert wird, beispielsweise Fouriertransformationen und Koeffizienten. Die dritte Speicher einheit ist ausgeführt als distributed local memory unit. Das Verfahren benötigt ca. 60 kB der von der dritten Speichereinheit beispielsweise bereitgestellten 64 kB. Eine vierte Speichereinheit DSPR speichert die Faltungsbilder und diskretisierten Fal tungsbilder. Die vierte Speichereinheit ist beispielsweise ausgeführt als Data- Scratchpad-Ram-Arbeitsspeicher. Das Verfahren benötigt ca. 78 kB der von der drit ten Speichereinheit beispielsweise bereitgestellten 96 kB. Die vierte Speichereinheit DSPR umfasst eine Speichereinheit 21 mit einer Größe von 3 kB zur Speicherung der Eingangsbilder des Faltungsnetzwerks F. Ferner umfasst die vierte Speicherein heit DSPR einen erste Zwischenspeicher 23 der Größe 26.25 kB und einen zweiten Zwischenspeicher 24 der Größe 16.25 kB. Der erste Zwischenspeicher 23 speichert Eingaben für Schichten des Faltungsnetzwerkes F und der zweite Zwischenspeicher 24 speichert Ausgaben der Schichten. Dies umfasst Ergebnisse aus vorherigen Schichten wie zu Fig. 2 und 3 beschrieben.
Die Speichereinheit umfasst eine weitere Speichereinheit 22. Die Speichereinheit 22 ist beispielsweise ein expanded memory, abgekürzt EMEM. Ein beispielhafter Schichtaufbau des Faltungsnetzwerks ist in den Fig. 8 bis 18 ge zeigt.
Fig. 8 ist nullte Schicht LO des Faltungsnetzwerks. Die nullte Schicht LO ist die Einga beschicht des Faltungsnetzwerks F. Aus dem ersten Bild 10 wird der aktualisierte Be reich betrachtet, dass heißt der aktuellste Ausschnitt der Größe (32 x 10) + (32 x 2) = 32 x 12 Pixel, wobei die Aktualisierungsrate U 100 ms beträgt und der erste Filter kernel die Größe 3 x 3 Pixel hat. Das Bild der Größe 32 x 12 Pixel wird aus der Spei chereinheit 21 ausgelesen, in das Faltungsnetzwerk F eingegeben und mit dem ers ten Filter 3 x 3 gefaltet. Es werden beispielsweise 64 erste Filter der Größe 3 x 3 auf das 32 x 12 Pixel Bild angewendet. Das heißt es entstehen 64 Bilder der Größe 30 x 10. Jedes Pixel dieser Bilder wird mit der Aktivierungsfunktion A aktiviert und die so erhaltenen Bilder in der Speichereinheit 22 gespeichert. Ausgabe der nullten Schicht LO sind 64 Bilder der Größe 30 x 10 Pixel.
Fig. 9 zeigt die erste Schicht L1 . Eingabe sind die 64 Bilder der Größe 30 x 10 Pixel aus der Speichereinheit 22. Diese werden mit dem zweiten Filter 32, einem maxpoo- ling Kernel der Größe 2 x 2 Pixel, diskretisiert. Es werden 64 Bilder der Größe 15 x 5 Pixel erhalten. In einer Ausgabe der ersten Schicht L1 werden für die anschließende aktuelle Berechnung in der folgenden zweiten Schicht L2 in dem jeweiligen zeitlichen vorherigen gefalteten Bild der zweiten Schicht L2 die Ergebnisse in dem aktuellsten Bereich, welcher der um die Schrittgröße des Filterkernels verminderten entspre chenden Dimension des Filterkernels entspricht, zwischengespeichert. Das sind 64 Bilder der Größe 15 x 2 Pixel. Es werden dann 64 Bilder der Größe 15 x 7 Pixel er halten und in dem ersten Zwischenspeicher 23 gespeichert. Ausgabe der ersten Schicht L1 sind 64 Bilder der Größe 15 x 7 Pixel.
Fig. 10 zeigt die zweite Schicht L2. Eingabe sind die 64 Bilder der Größe 15 x 7 Pixel aus dem ersten Zwischenspeicher 23. Diese werden mit dem ersten Filter 31 , dem 3 x 3 Kernelfilter, gefaltet. Es werden 64 Bilder der Größe 13 x 5 Pixel erhalten. Jedes Pixel dieser Bilder wird mit der Aktivierungsfunktion A aktiviert und die so erhaltenen Bilder in dem zweiten Zwischenspeicher 24 gespeichert. Ausgabe der zweiten Schicht L2 sind 64 Bilder der Größe 13 x 5 Pixel. Fig. 11 zeigt die dritte Schicht L3. Eingabe sind die 64 Bilder der Größe 13 x 5 Pixel aus dem zweiten Zwischenspeicher 24. Diese werden mit dem zweiten Filter 32, ei nem maxpooling Kernel der Größe 2 x 3 Pixel, diskretisiert. Es werden 64 Bilder der Größe 7 x 2 Pixel erhalten. In einer Ausgabe der dritten Schicht L3 werden für die an schließende aktuelle Berechnung in der folgenden vierten Schicht L4 in dem jeweili gen zeitlichen vorherigen gefalteten Bild der vierten Schicht L4 die Ergebnisse in dem aktuellsten Bereich, welcher der um die Schrittgröße des Filterkernels vermin derten entsprechenden Dimension des Filterkernels entspricht, zwischengespeichert. Das sind 64 Bilder der Größe 7 x 2 Pixel. Es werden dann 64 Bilder der Größe 7 x 4 Pixel erhalten und in dem ersten Zwischenspeicher 23 gespeichert. Ausgabe der drit ten Schicht L3 sind 64 Bilder der Größe 7 x 4 Pixel.
Fig. 12 zeigt die vierte Schicht L4. Eingabe sind die 64 Bilder der Größe 7 x 4 Pixel aus dem ersten Zwischenspeicher 23. Diese werden mit dem ersten Filter 31 , dem 3 x 3 Kernelfilter, gefaltet. Es werden 64 Bilder der Größe 5 x 2 Pixel erhalten. Jedes Pixel dieser Bilder wird mit der Aktivierungsfunktion A aktiviert und die so erhaltenen Bilder in dem zweiten Zwischenspeicher 24 gespeichert. Ausgabe der vierten Schicht L4 sind 64 Bilder der Größe 5 x 2 Pixel.
Fig. 13 zeigt die fünfte Schicht L5. Eingabe sind die 64 Bilder der Größe 5 x 2 Pixel aus dem zweiten Zwischenspeicher 24. Diese werden mit dem zweiten Filter 32, ei nem maxpooling Kernel der Größe 2 x 3 Pixel, diskretisiert. Es werden 64 Bilder der Größe 3 x 1 Pixel erhalten. In einer Ausgabe der fünften Schicht L5 werden für die anschließende aktuelle Berechnung in der folgenden sechsten Schicht L6 in dem je weiligen zeitlichen vorherigen gefalteten Bild der sechsten Schicht L6 die Ergebnisse in dem aktuellsten Bereich, welcher der um die Schrittgröße des Filterkernels vermin derten entsprechenden Dimension des Filterkernels entspricht, zwischengespeichert. Das sind 64 Bilder der Größe 3 x 2 Pixel. Es werden dann 64 Bilder der Größe 3 x 3 Pixel erhalten und in dem ersten Zwischenspeicher 23 gespeichert. Ausgabe der fünften Schicht L5 sind 64 Bilder der Größe 3 x 3 Pixel. Fig. 14 zeigt die sechste Schicht L6. Eingabe sind die 64 Bilder der Größe 3 x 3 Pixel aus dem ersten Zwischenspeicher 23. Diese werden mit dem ersten Filter 31 , dem 3 x 3 Kernelfilter, gefaltet. Es werden 64 Bilder der Größe 1 x 1 Pixel erhalten. Jedes Pixel dieser Bilder wird mit der Aktivierungsfunktion A aktiviert und die so erhaltenen Bilder in dem zweiten Zwischenspeicher 24 gespeichert. Ausgabe der sechsten Schicht L6 sind 64 Bilder der Größe 1 x 1 Pixel.
Fig. 15 zeigt die siebte Schicht L7. Eingabe sind die 64 Bilder der Größe 1 x 1 Pixel aus dem zweiten Zwischenspeicher 24. Diese werden mit dem zweiten Filter 32, ei nem maxpooling Kernel der Größe 2 x 2 Pixel, diskretisiert. Es werden 64 Bilder der Größe 1 x 1 Pixel erhalten. In einer Ausgabe der siebten Schicht L7 werden für die anschließende aktuelle Berechnung in der folgenden achten Schicht L8 in dem jewei ligen zeitlichen vorherigen gefalteten Bild der achten Schicht L8 die Ergebnisse in dem aktuellsten Bereich, welcher der um die Schrittgröße des Filterkernels vermin derten entsprechenden Dimension des Filterkernels entspricht, zwischengespeichert. Das sind 64 Bilder der Größe 1 x 1 Pixel. Es werden dann 64 Bilder der Größe 1 x 2 Pixel erhalten und in dem ersten Zwischenspeicher 23 gespeichert. Ausgabe der siebten Schicht L7 sind 64 Bilder der Größe 1 x 2 Pixel.
Fig. 16 zeigt die achte Schicht L8. Eingabe sind die 64 Bilder der Größe 1 x 2 Pixel aus dem ersten Zwischenspeicher 23. Diese werden geflattet. Es werden 64 Zeilen oder Spaltenvektoren mit jeweils 128 Einträgen erhalten. Die Vektoren werden mit entsprechender Matrixmultiplikation M in Zahlenwerte transformiert. Es werden 64 Zahlenwerte erhalten und in dem zweiten Zwischenspeicher 24 gespeichert. Aus gabe der achten Schicht L8 sind 64 Zahlenwerte. Die achte Schicht ist ein dense layer.
Fig. 17 zeigt die neunte Schicht L9, die analog zu der achten Schicht L8 ein dense layer ist. Eingabe oder Input der neunten Schicht L9 sind 64 Zahlenwerte. Ausgabe oder Output O der neunten Schicht L9 sind ebenfalls 64 Zahlenwerte. Fig. 18 zeigt zehnte Schicht L10. Die zehnte Schicht L10 ist die Ausgabeschicht des Faltungsnetzwerks F. Der Output O ist eine Vorhersage überein erkanntes Sirenen signal. Die Vorhersage wird in der ersten Speichereinheit LMUO gespeichert.
Bezuqszeichen
10 erstes/zweites Bild
21 Speichereinheit
22 Speichereinheit
23 erster Zwischenspeicher
24 zweiter Zwischenspeicher
31 erster Filter
32 zweiter Filter
F Faltungsnetzwerk
P Parameter
A Aktivierungsfunktion
M Matrix Multiplikation
I Input
O Output
LMUO erste Speichereinheit LMU1 zweite Speichereinheit DLMU dritte Speichereinheit DSPRvierte Speichereinheit t Zeit f Merkmale
U Aktualisierungsgröße
C Berechnung
W Wiederverwendung
R Intervall
M1 Ergebnis
M2 Ergebnis
V1-V4 Verfahrensschritte

Claims

Patentansprüche
1. Computerimplementiertes Verfahren zur Berechnung von Faltungsnetzwerken (F) umfassend die Schritte:
• Erhalten eines ersten Bildes als Eingabe für ein Faltungsnetzwerk (F) aus ei nem Intervall (R) einer Messreihe wenigstens eines Umfelderfassungs sensors und Erhalten eines zu dem ersten Bild gleichgroßen zweiten Bildes als Eingabe für das Faltungsnetzwerk (F) aus dem Intervall (R)der um eine Aktualisierungsgröße (U) aktualisierten Messreihe (V1),
• Eingeben des ersten und zweiten Bildes in das Faltungsnetzwerk (F), Falten des ersten und zweiten Bildes mit wenigstens einem ersten Filter (31) in einer ersten Schicht des Faltungsnetzwerks (F), und Erhalten eines ersten und zweiten Faltungsbildes (V2), wobei
• eine erste Dimension des ersten Faltungsbildes um die Aktualisierungsgröße (U) reduziert und das reduzierte erste Faltungsbild in einem ersten Speicher bereich eines Computersystems gespeichert wird (V3), und
• bei dem Falten des zweiten Bildes der erste Filter (31 ) in der ersten Dimen sion des zweiten Bildes eingeschränkt auf die Summe der Aktualisierungs größe (U) und einer um eine Schrittgröße des ersten Filters (31) verminderten entsprechenden Dimension des ersten Filters (31) angewendet wird und Werte des reduzierten ersten Faltungsbildes aus dem ersten Speicherbereich erhalten werden (V4).
2. Verfahren nach Anspruch 1, wobei
• das erste Faltungsbild und das zweite Faltungsbild in einer zweiten Schicht des Faltungsnetzwerkes (F) jeweils diskretisiert werden mit wenigstens einem zweiten Filter (32),
• das diskretisierte erste Faltungsbild in der ersten Dimension reduziert und das reduzierte diskretisierte erste Faltungsbild in einem zweiten Speicherbereich des Computersystems gespeichert wird,
• und bei der Diskretisierung des zweiten Faltungsbildes der zweite Filter (32) in der ersten Dimension des zweiten Faltungsbildes o eingeschränkt auf die um die Aktualisierungsgröße (U) verminderte entsprechende Dimension des ersten Faltungsbildes angewendet wird, falls der Wert der um die Aktualisierungsgröße (U) verminderten ent sprechenden Dimension des ersten Faltungsbildes teilbar durch den Wert der entsprechenden Dimension des zweiten Filters (32) ist, oder o eingeschränkt auf die um die Aktualisierungsgröße (U) verminderte entsprechende Dimension des ersten Faltungsbildes modulo dem Wert der Dimension des zweiten Filters (32) angewendet wird, o und Werte des reduzierten diskretisierten ersten Faltungsbildes aus dem zweiten Speicherbereich erhalten werden.
3. Verfahren nach Anspruch 1 oder 2, wobei das erste und zweite Bild mit mehreren ersten Filtern (31) in der ersten Schicht gefaltet werden.
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei
• der wenigstens erste (31 ) und/oder zweite Filter (32) in mehreren Schichten angewendet werden um Bilder, die in die jeweiligen Schichten eingegeben werden, zu falten und/oder jeweilige Faltungsbilderzu diskretisieren,
• die Messreihe mehrmals aktualisiert wird und
• das Verfahren je Aktualisierungsgröße (U) in jeder Schicht wiederholt wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, wobei das Computersystem ein Mikrokontroller und die Messreihe Audiodaten wenigstens eines Verkehrsgeräusche detektierenden Akustiksensors umfasst und das erste und zweite Bild jeweils eine Mel Frequenz Cepstrum Koeffizienten Darstellung der Audiodaten sind.
6. Verfahren nach Anspruch 5, wobei das Faltungsnetzwerk (F) trainiert ist, Einsatz geräusche von Einsatzfahrzeugen zu klassifizieren und/oderzu lokalisieren, wobei das Intervall (R) der Messreihe, aus dem die Eingaben für das Faltungsnetzwerk (F) erhalten werden, eine Zeitspanne von 1 s umfasst und die Aktualisierungsgröße (U) im Bereich von 10 ms bis 100 ms, vorzugsweise im Bereich von 50 ms bis 100 ms, liegt und besonders vorzugsweise 100 ms beträgt.
7. Computersystem, umfassend wenigstens eine Prozessoreinheit und einen Spei cherbereich, die so angepasst sind, dass das Computersystem ein Faltungsnetzwerk (F) und die Schritte eines der Verfahren nach einem der Ansprüche 1 bis 6 ausführen kann.
8. Computersystem nach Anspruch 7 umfassend einen Mehrkernprozessor, wobei der Speicherbereich wenigstens vier Speichereinheiten umfasst, wobei
• eine erste Speichereinheit (LMUO) Klassifikations- und/oder Lokalisationser gebnisse des Faltungsnetzwerkes (F) speichert,
• eine zweite Speichereinheit (LMU1 ) Parameter (P) des Faltungsnetzwerkes (F) speichert,
• eine dritte Speichereinheit (DLMU) wenigstens eine Nachschlagtabelle für Transformationen, mit denen eine Messreihe vorprozessiert wird, speichert,
• und eine vierte Speichereinheit (DSPR) Faltungsbilder und diskretisierte Fal tungsbilder speichert, und wobei der Mehrkernprozessor die Speichereinheiten liest und/oder beschreibt während der Ausführung des Faltungsnetzwerkes (F).
9. Computersystem nach Anspruch 7 oder 8, wobei die vierte Speichereinheit (DSPR) einen ersten (23) und zweiten Zwischenspeicher (24) umfasst, wobei der erste Zwischenspeicher (23) Eingaben für Schichten des Faltungsnetzwerkes (F) und der zweite Zwischenspeicher (24) Ausgaben der Schichten speichert.
10. Computerprogramm, umfassend Befehle, die bei der Ausführung des Computer programms durch ein Computersystem nach einem der Ansprüche 7 bis 9 dieses veranlassen, die Schritte eines Verfahrens der Ansprüche 1 bis 6 und dabei ein Fal tungsnetzwerk (F) auszuführen.
11. Automatisiert betreibbares Fahrzeug umfassend
• wenigstens vier Akustiksensoren, die Akustiksensoren angeordnet in einem vorderen und hinteren jeweiligen rechten und linken Bereich des Fahrzeuges und • ein Computersystem nach Anspruch 8 oder 9 ausgeführt als Mikrokontroller, der Signale von den Akustiksensoren erhält,
• wobei ein Mehrkernprozessor des Computersystems wenigstens vier Kerne umfasst und jeder Kern ein Faltungsnetzwerk (F) und die Schritte eines der Verfahren nach einem der Ansprüche 1 bis 6 jeweils basierend auf Signalen eines der Akustiksensoren ausführt und die Ergebnisse fusioniert werden.
EP21709929.0A 2020-03-06 2021-03-02 Computerimplementiertes verfahren zur berechnung von faltungsnetzwerken, computersystem, computerprogramm und automatisiert betreibbares fahrzeug Withdrawn EP4115344A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020202871.0A DE102020202871B4 (de) 2020-03-06 2020-03-06 Computerimplementiertes Verfahren zur Berechnung von Faltungsnetzwerken, Computersystem, Computerprogramm und automatisiert betreibbares Fahrzeug
PCT/EP2021/055152 WO2021175834A1 (de) 2020-03-06 2021-03-02 Computerimplementiertes verfahren zur berechnung von faltungsnetzwerken, computersystem, computerprogramm und automatisiert betreibbares fahrzeug

Publications (1)

Publication Number Publication Date
EP4115344A1 true EP4115344A1 (de) 2023-01-11

Family

ID=74858410

Family Applications (1)

Application Number Title Priority Date Filing Date
EP21709929.0A Withdrawn EP4115344A1 (de) 2020-03-06 2021-03-02 Computerimplementiertes verfahren zur berechnung von faltungsnetzwerken, computersystem, computerprogramm und automatisiert betreibbares fahrzeug

Country Status (3)

Country Link
EP (1) EP4115344A1 (de)
DE (1) DE102020202871B4 (de)
WO (1) WO2021175834A1 (de)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019213697B4 (de) 2019-09-10 2021-09-16 Zf Friedrichshafen Ag Verfahren zum Erkennen einer Annäherung und/oder Entfernung eines Einsatzfahrzeugs relativ zu einem Fahrzeug

Also Published As

Publication number Publication date
DE102020202871B4 (de) 2022-12-29
DE102020202871A1 (de) 2021-09-09
WO2021175834A1 (de) 2021-09-10

Similar Documents

Publication Publication Date Title
DE102020128978A1 (de) Trainieren von tiefen neuronalen netzwerken mit synthetischen bildern
WO2019201400A1 (de) Steuergerätetesteinrichtung zum testen, absichern und entwickeln von funktionen
DE102021112616A1 (de) Selbstüberwachte schätzung einer beobachteten fahrzeugpose
EP3430423B1 (de) Verfahren zur verbesserung einer erfassung zumindest eines objekts in einer umgebung eines kraftfahrzeugs durch eine indirekte messung mit sensoren, steuereinrichtung, fahrerassistenzsystem sowie kraftfahrzeug
DE102018126511A1 (de) Lidar-signal-komprimierung
DE102021122407A1 (de) Segmentierung und klassifizierung von punktwolkendaten
DE102022121109A1 (de) Visuelle Wahrnehmung mit einem Fahrzeug basierend auf einem Kamerabild und einer Ultraschallkarte
DE102020127051A1 (de) Verfahren zur Bestimmung von sicherheitskritischen Ausgabewerten mittels einer Datenanalyseeinrichtung für eine technische Entität
EP4115344A1 (de) Computerimplementiertes verfahren zur berechnung von faltungsnetzwerken, computersystem, computerprogramm und automatisiert betreibbares fahrzeug
WO2021190922A1 (de) Vorrichtung, system und verfahren zur erkennung von objekten in einem umfeld eines automatisierten fahrsystems
DE102020132042A1 (de) Verfahren, System, Testsystem und Computerprogrammprodukt zur prädiktiven Bestimmung von Testergebnissen für ein technisches Testobjekt
DE112021005568T5 (de) Datenverarbeitungsvorrichtung und Datenverarbeitungsverfahren
DE102024114791A1 (de) Vorrichtung und verfahren zur objekterkennung
DE102023106974A1 (de) Verfahren zum erkennen von objekten mit eigenbewegung
DE102022119949A1 (de) Dynamischer fahrzeugbetrieb
DE102023206446A1 (de) Verfahren zum Verarbeiten einer Punktwolke
DE102018107838A1 (de) Verfahren zum simulativen Bestimmen von zumindest einer Messeigenschaft eines virtuellen Sensors, sowie Rechensystem
DE102015201868A1 (de) Optimierte Speicherung einer Umfeldkarte im Speicher eines Fahrzeugs
DE102020201544A1 (de) Verarbeitung von Messdaten
DE102020134331A1 (de) Verfahren zum Bestimmen eines Freiraums in einer Fahrzeugumgebung
DE102020213624A1 (de) Vorrichtung zur Vorverarbeitung von Sensordaten mehrerer Sensoren in einem Fahrzeug
DE102015103632B4 (de) Verfahren zum Überprüfen einer Auswirkung einer Veränderung von Sensordaten auf ein Fahrerassistenzsystem und programmierbare Hardwarekomponente
DE102020200875A1 (de) Verfahren zum Bereitstellen von Sensordaten durch eine Sensorik eines Fahrzeugs
DE102019111608A1 (de) Verfahren zum Bestimmen einer Eigenbewegung eines Kraftfahrzeugs, elektronische Recheneinrichtung sowie elektronisches Fahrzeugführungssystem
DE102023116653A1 (de) Verfahren zum segmentieren von objekten mit eigenbewegung

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20220707

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20250325

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20250726